diff --git a/.agents/skills/release-openclaw-ci/SKILL.md b/.agents/skills/release-openclaw-ci/SKILL.md index 63983a391328..16d60b0d48d2 100644 --- a/.agents/skills/release-openclaw-ci/SKILL.md +++ b/.agents/skills/release-openclaw-ci/SKILL.md @@ -215,16 +215,15 @@ Stop watchers before ending the turn or switching strategy. failed child; never rebuild an immutable version that already published 7. If a required PR CI run is capacity-stalled with queued jobs and no active jobs, do not cancel unrelated work or accept a generic manual dispatch. - First check the target-owned workflow with `git show -:.github/workflows/ci.yml | rg -q '^ +pr_number:'`. When it - declares `pr_number`, dispatch the explicit exact-SHA fallback: + First verify the PR head carries the current fallback schema: + `gh api 'repos/openclaw/openclaw/contents/.github/workflows/ci.yml?ref=' +--jq .content | base64 --decode | rg -q 'pull_request_number:'`. If absent, + refresh the PR head from `main` and use the new head SHA; let normal CI run + before considering another fallback. + From the PR head branch, dispatch the explicit exact-SHA fallback: `gh workflow run ci.yml --repo openclaw/openclaw --ref -f -target_ref= -f pr_number= -f include_android=true -f -release_gate=true`. - The workflow authenticates that PR's head/base, validates GitHub's current - synthetic merge tree, and runs the LOC task from that tree. Older workflow - schemas cannot provide equivalent LOC evidence; update the head to contain the current `pr_number` workflow, then - restart exact-head proof on the new SHA instead of dispatching them. +target_ref= -f pull_request_number= -f +include_android=true -f release_gate=true`. It runs on GitHub-hosted runners and is accepted only when its run title is `CI release gate `. Record the stalled Blacksmith run and the fallback run in release evidence. diff --git a/.agents/skills/release-openclaw-maintainer/SKILL.md b/.agents/skills/release-openclaw-maintainer/SKILL.md index 4d5ad8c52ead..4e2d4e7c2a77 100644 --- a/.agents/skills/release-openclaw-maintainer/SKILL.md +++ b/.agents/skills/release-openclaw-maintainer/SKILL.md @@ -167,16 +167,14 @@ a workflow fix that the existing parent run cannot consume. gates on the newly pushed SHA, then run `prepare-run` again. - If an exact PR-head CI run has no active jobs because Blacksmith capacity is stalled, a maintainer may dispatch the explicit GitHub-hosted fallback from - the PR head branch. Check the target-owned workflow with `git show -:.github/workflows/ci.yml | rg -q '^ +pr_number:'`. When it - declares `pr_number`, run: + the PR head branch. First verify its workflow carries the current schema with + `gh api 'repos/openclaw/openclaw/contents/.github/workflows/ci.yml?ref=' +--jq .content | base64 --decode | rg -q 'pull_request_number:'`. If absent, + refresh the PR head from `main`, use the new SHA, and let normal CI run before + considering another fallback. Then dispatch: `gh workflow run ci.yml --repo openclaw/openclaw --ref -f -target_ref= -f pr_number= -f include_android=true -f -release_gate=true`. - The workflow authenticates that PR's head/base, validates GitHub's current - synthetic merge tree, and runs the LOC task from that tree. Older workflow - schemas cannot provide equivalent LOC evidence; update the head to contain the current `pr_number` workflow, then - restart exact-head proof on the new SHA instead of dispatching them. +target_ref= -f pull_request_number= -f +include_android=true -f release_gate=true`. Use it only for an observed provider queue stall, never for failed CI or as a routine shortcut. The run must be named `CI release gate ` and pass on that exact SHA; the native hosted-gate verifier rejects generic manual diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c76e3053a12c..9d5faa88bbc8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,16 +8,6 @@ on: required: false default: "" type: string - pr_number: - description: Pull request number required by the exact-SHA release gate - required: false - default: "" - type: string - loc_base_ref: - description: Optional exact LOC comparison-base SHA for standalone manual runs - required: false - default: "" - type: string include_android: description: Run Android lanes for this manual CI dispatch. required: false @@ -28,6 +18,11 @@ on: required: false default: false type: boolean + pull_request_number: + description: Pull request number required by the exact-SHA release gate. + required: false + default: "" + type: string dispatch_id: description: Optional parent workflow dispatch identifier required: false @@ -89,15 +84,12 @@ jobs: preflight: permissions: contents: read - pull-requests: read needs: [runner-admission] if: github.event_name != 'pull_request' || !github.event.pull_request.draft runs-on: ${{ github.event_name == 'workflow_dispatch' && 'ubuntu-24.04' || (github.repository == 'openclaw/openclaw' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-24.04') }} timeout-minutes: 20 outputs: checkout_revision: ${{ steps.checkout_ref.outputs.sha }} - loc_base_sha: ${{ steps.release_gate_loc_tree.outputs.base_sha || inputs.loc_base_ref || '' }} - loc_head_sha: ${{ steps.release_gate_loc_tree.outputs.head_sha || '' }} docs_only: ${{ steps.manifest.outputs.docs_only }} docs_changed: ${{ steps.manifest.outputs.docs_changed }} run_node: ${{ steps.manifest.outputs.run_node }} @@ -141,7 +133,8 @@ jobs: - name: Validate release-gate dispatch if: github.event_name == 'workflow_dispatch' && inputs.release_gate env: - PR_NUMBER: ${{ inputs.pr_number }} + HISTORICAL_TARGET_TAG: ${{ inputs.historical_target_tag }} + PULL_REQUEST_NUMBER: ${{ inputs.pull_request_number }} TARGET_REF: ${{ inputs.target_ref }} run: | set -euo pipefail @@ -151,8 +144,8 @@ jobs: exit 1 fi - if [[ ! "$PR_NUMBER" =~ ^[1-9][0-9]*$ ]]; then - echo "release_gate requires pr_number to identify an open pull request" >&2 + if [[ ! "$PULL_REQUEST_NUMBER" =~ ^[1-9][0-9]*$ ]]; then + echo "release_gate requires pull_request_number" >&2 exit 1 fi @@ -161,14 +154,8 @@ jobs: exit 1 fi - - name: Validate manual LOC base input - if: github.event_name == 'workflow_dispatch' && inputs.loc_base_ref != '' - env: - LOC_BASE_REF: ${{ inputs.loc_base_ref }} - run: | - set -euo pipefail - if [[ ! "$LOC_BASE_REF" =~ ^[0-9a-f]{40}$ ]]; then - echo "loc_base_ref must be a full commit SHA" >&2 + if [[ -n "$HISTORICAL_TARGET_TAG" ]]; then + echo "release_gate cannot be combined with historical_target_tag" >&2 exit 1 fi @@ -255,67 +242,6 @@ jobs: id: checkout_ref run: echo "sha=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT" - - name: Validate release-gate PR merge tree - id: release_gate_loc_tree - if: github.event_name == 'workflow_dispatch' && inputs.release_gate - env: - GH_TOKEN: ${{ github.token }} - PR_NUMBER: ${{ inputs.pr_number }} - TARGET_REF: ${{ inputs.target_ref }} - run: | - set -euo pipefail - merge_sha="" - pr_base_sha="" - for attempt in {1..12}; do - pr_json="$(gh api --method GET "repos/${GITHUB_REPOSITORY}/pulls/${PR_NUMBER}")" - pr_state="$(jq -r '.state // ""' <<<"$pr_json")" - pr_head_sha="$(jq -r '.head.sha // ""' <<<"$pr_json")" - pr_base_sha="$(jq -r '.base.sha // ""' <<<"$pr_json")" - pr_base_repo="$(jq -r '.base.repo.full_name // ""' <<<"$pr_json")" - if [[ "$pr_state" != "open" || "$pr_base_repo" != "$GITHUB_REPOSITORY" ]]; then - echo "release_gate pr_number must identify an open pull request in ${GITHUB_REPOSITORY}" >&2 - exit 1 - fi - if [[ "$pr_head_sha" != "$TARGET_REF" ]]; then - echo "release_gate target_ref must match pull request ${PR_NUMBER} head ${pr_head_sha}" >&2 - exit 1 - fi - if [[ ! "$pr_base_sha" =~ ^[0-9a-f]{40}$ ]]; then - echo "Could not resolve pull request ${PR_NUMBER} base SHA." >&2 - exit 1 - fi - mergeable="$(jq -r 'if .mergeable == null then "pending" else (.mergeable | tostring) end' <<<"$pr_json")" - if [[ "$mergeable" == "true" ]]; then - merge_sha="$(jq -r '.merge_commit_sha // ""' <<<"$pr_json")" - if [[ ! "$merge_sha" =~ ^[0-9a-f]{40}$ ]]; then - echo "Could not resolve pull request ${PR_NUMBER} test merge commit." >&2 - exit 1 - fi - break - fi - if [[ "$mergeable" == "false" ]]; then - echo "Pull request ${PR_NUMBER} is not mergeable with its current base." >&2 - exit 1 - fi - if [[ "$attempt" == "12" ]]; then - echo "Timed out waiting for pull request ${PR_NUMBER} mergeability." >&2 - exit 1 - fi - sleep 2 - done - merge_ref="refs/remotes/origin/release-gate-merge" - git fetch --no-tags --depth=2 origin \ - "+refs/pull/${PR_NUMBER}/merge:${merge_ref}" - resolved_merge_sha="$(git rev-parse "$merge_ref")" - merge_base_parent="$(git rev-parse "${merge_ref}^1")" - merge_head_parent="$(git rev-parse "${merge_ref}^2")" - if [[ "$resolved_merge_sha" != "$merge_sha" || "$merge_base_parent" != "$pr_base_sha" || "$merge_head_parent" != "$TARGET_REF" ]]; then - echo "release_gate pull request merge ref does not match the current base and head" >&2 - exit 1 - fi - echo "base_sha=${pr_base_sha}" >> "$GITHUB_OUTPUT" - echo "head_sha=${merge_sha}" >> "$GITHUB_OUTPUT" - - name: Validate historical release target id: historical_target if: inputs.historical_target_tag != '' @@ -404,7 +330,6 @@ jobs: OPENCLAW_CI_RUN_CONTROL_UI_I18N: ${{ github.event_name == 'workflow_dispatch' && 'true' || steps.changed_scope.outputs.run_control_ui_i18n || 'false' }} OPENCLAW_CI_RUN_UI_TESTS: ${{ github.event_name == 'workflow_dispatch' && 'true' || steps.changed_scope.outputs.run_ui_tests || 'false' }} OPENCLAW_CI_RUN_NATIVE_I18N: ${{ github.event_name == 'workflow_dispatch' && 'true' || steps.changed_scope.outputs.run_native_i18n || 'false' }} - OPENCLAW_CI_RUN_TS_LOC: ${{ github.event_name == 'workflow_dispatch' && 'true' || steps.changed_scope.outputs.run_ts_loc || 'false' }} OPENCLAW_CI_CHANGED_PATHS_JSON: ${{ steps.changed_scope.outputs.changed_paths_json || 'null' }} OPENCLAW_CI_CHECKOUT_REVISION: ${{ steps.checkout_ref.outputs.sha }} OPENCLAW_CI_HISTORICAL_TARGET: ${{ steps.historical_target.outputs.eligible || 'false' }} @@ -551,7 +476,6 @@ jobs: parseBoolean(process.env.OPENCLAW_CI_RUN_NATIVE_I18N) && !docsOnly && (!frozenTarget || supportsNativeI18n); - const runTsLoc = parseBoolean(process.env.OPENCLAW_CI_RUN_TS_LOC) && !docsOnly; const targetWorkflow = existsSync(".github/workflows/ci.yml") ? readFileSync(".github/workflows/ci.yml", "utf8") : ""; @@ -560,8 +484,15 @@ jobs: const supportsFormatCheck = targetWorkflow.split("pnpm format:check").length - 1 >= 2; const runFormatCheck = !frozenTarget || supportsFormatCheck; - const checksFastCoreTasks = runTsLoc - ? [{ check_name: "checks-fast-loc-ratchet", runtime: "node", task: "loc-ratchet" }] + const checksFastCoreTasks = + runNode && !frozenTarget + ? [ + { + check_name: "checks-fast-max-lines-ratchet", + runtime: "node", + task: "max-lines-ratchet", + }, + ] : []; if (runNodeFull) { checksFastCoreTasks.push( @@ -1233,6 +1164,7 @@ jobs: checks-fast-core: permissions: contents: read + pull-requests: read name: ${{ matrix.check_name }} needs: [preflight] if: needs.preflight.outputs.run_checks_fast_core == 'true' @@ -1244,26 +1176,56 @@ jobs: matrix: ${{ fromJson(needs.preflight.outputs.checks_fast_core_matrix) }} steps: - *linux_node_checkout_step - - name: Checkout verified release-gate LOC merge tree - if: matrix.task == 'loc-ratchet' && needs.preflight.outputs.loc_head_sha != '' + - name: Prepare release-gate max-lines merge tree + if: matrix.task == 'max-lines-ratchet' && github.event_name == 'workflow_dispatch' && inputs.release_gate env: - LOC_HEAD_SHA: ${{ needs.preflight.outputs.loc_head_sha }} - LOC_PR_NUMBER: ${{ inputs.pr_number }} + GH_TOKEN: ${{ github.token }} + PULL_REQUEST_NUMBER: ${{ inputs.pull_request_number }} + TARGET_SHA: ${{ inputs.target_ref }} shell: bash run: | set -euo pipefail - if [[ ! "$LOC_PR_NUMBER" =~ ^[1-9][0-9]*$ ]]; then - echo "A release-gate LOC head requires a pull request number." >&2 + prepared=false + for attempt in {1..6}; do + pr_info="$( + gh api --method GET "repos/${GITHUB_REPOSITORY}/pulls/${PULL_REQUEST_NUMBER}" | + jq -r --arg repo "$GITHUB_REPOSITORY" --arg target "$TARGET_SHA" ' + select(.state == "open" and .head.sha == $target and .base.repo.full_name == $repo) + | [.base.sha, (if .mergeable == null then "unknown" else (.mergeable | tostring) end)] + | @tsv + ' + )" + if [[ -z "$pr_info" ]]; then + echo "release-gate pull request must be open and match the target head" >&2 + exit 1 + fi + IFS=$'\t' read -r base_sha mergeable <<<"$pr_info" + if [[ "$mergeable" == "false" ]]; then + echo "release-gate pull request is not mergeable" >&2 + exit 1 + fi + if [[ "$mergeable" == "true" ]] && + git fetch --no-tags --depth=2 origin \ + "+refs/pull/${PULL_REQUEST_NUMBER}/merge:refs/remotes/origin/ci-max-lines-merge"; then + merge_sha="$(git rev-parse refs/remotes/origin/ci-max-lines-merge)" + read -r merge_base merge_head extra_parent <<<"$(git show -s --format=%P "$merge_sha")" + if [[ "$merge_base" == "$base_sha" && "$merge_head" == "$TARGET_SHA" && -z "$extra_parent" ]]; then + prepared=true + break + fi + fi + if [[ "$attempt" != "6" ]]; then + sleep 5 + fi + done + if [[ "$prepared" != "true" ]]; then + echo "release-gate merge tree did not refresh to the current pull request base and head" >&2 exit 1 fi - git fetch --no-tags --depth=2 origin \ - "+refs/pull/${LOC_PR_NUMBER}/merge:refs/remotes/origin/ci-head" - resolved_loc_head="$(git rev-parse refs/remotes/origin/ci-head)" - if [[ "$resolved_loc_head" != "$LOC_HEAD_SHA" ]]; then - echo "Pull request ${LOC_PR_NUMBER} merge ref moved before the LOC check." >&2 - exit 1 - fi - git checkout --detach refs/remotes/origin/ci-head + git checkout --detach "$merge_sha" + echo "RATCHET_RELEASE_BASE_SHA=${base_sha}" >> "$GITHUB_ENV" + echo "RATCHET_RELEASE_MERGE_TREE=true" >> "$GITHUB_ENV" + - name: Setup Node environment uses: ./.github/actions/setup-node-env with: @@ -1271,10 +1233,12 @@ jobs: - name: Run ${{ matrix.task }} (${{ matrix.runtime }}) env: - HISTORICAL_TARGET: ${{ needs.preflight.outputs.compatibility_target }} - LOC_BASE_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event_name == 'push' && github.event.before || needs.preflight.outputs.loc_base_sha || '' }} - LOC_EXPECTED_PR_HEAD: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || needs.preflight.outputs.loc_head_sha != '' && inputs.target_ref || '' }} + GH_TOKEN: ${{ matrix.task == 'max-lines-ratchet' && github.token || '' }} OPENCLAW_TEST_PROJECTS_PARALLEL: 3 + RATCHET_DEFAULT_BRANCH: ${{ github.event.repository.default_branch }} + RATCHET_EVENT_BASE_SHA: ${{ github.event_name == 'push' && github.event.before || '' }} + RATCHET_MANUAL_TARGET_SHA: ${{ github.event_name == 'workflow_dispatch' && !inputs.release_gate && needs.preflight.outputs.checkout_revision || '' }} + RATCHET_PR_HEAD_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || '' }} TASK: ${{ matrix.task }} shell: bash run: | @@ -1297,33 +1261,61 @@ jobs: ci-routing) pnpm test src/commands/status.scan-result.test.ts src/scripts/ci-changed-scope.test.ts test/scripts/changed-lanes.test.ts test/scripts/ci-changed-node-test-plan.test.ts test/scripts/ci-workflow-guards.test.ts test/scripts/run-vitest.test.ts test/scripts/test-projects.test.ts ;; - loc-ratchet) - # Frozen compatibility targets were governed by their original CI. Comparing - # them with moving main would turn unrelated branch drift into release failures. - if [[ "$HISTORICAL_TARGET" != "true" ]] && [ -n "$LOC_BASE_SHA" ] && [[ ! "$LOC_BASE_SHA" =~ ^0+$ ]]; then - loc_base_ref="refs/remotes/origin/ci-base" - if [ -n "$LOC_EXPECTED_PR_HEAD" ]; then - # Pull-request merge refs can advance past the event base as main moves. - # Compare with the base parent of the exact merge tree under test. - if ! git rev-parse --verify HEAD^1 >/dev/null 2>&1 || ! git rev-parse --verify HEAD^2 >/dev/null 2>&1; then - loc_merge_sha="$(git rev-parse HEAD)" - git fetch --no-tags --depth=2 origin "+${loc_merge_sha}:refs/remotes/origin/ci-loc-merge" - fi - merge_head="$(git rev-parse HEAD^2)" - if [[ "$merge_head" != "$LOC_EXPECTED_PR_HEAD" ]]; then - echo "LOC merge tree head ${merge_head} does not match expected pull-request head ${LOC_EXPECTED_PR_HEAD}." >&2 - exit 1 - fi - loc_base_ref="$(git rev-parse HEAD^1)" - else - git fetch --no-tags --depth=1 origin "+${LOC_BASE_SHA}:${loc_base_ref}" - fi - if has_package_script "check:loc"; then - pnpm check:loc --base "$loc_base_ref" --head HEAD - else - echo "Current CI targets must provide the check:loc package script." >&2 + max-lines-ratchet) + if ! has_package_script "check:max-lines-ratchet"; then + echo "Current CI targets must provide check:max-lines-ratchet." >&2 + exit 1 + fi + base_sha="${RATCHET_EVENT_BASE_SHA:-${RATCHET_RELEASE_BASE_SHA:-}}" + if [[ "$base_sha" == "0000000000000000000000000000000000000000" ]]; then + base_sha="" + fi + base_ref="" + if [[ -n "${RATCHET_PR_HEAD_SHA:-}" ]]; then + mapfile -t merge_parents < <(git cat-file -p HEAD | sed -n 's/^parent //p') + if [[ "${#merge_parents[@]}" != "2" || "${merge_parents[1]:-}" != "$RATCHET_PR_HEAD_SHA" ]]; then + echo "Pull request checkout is not the expected two-parent merge tree." >&2 exit 1 fi + merge_base="${merge_parents[0]}" + git fetch --no-tags --depth=1 origin \ + "+${merge_base}:refs/remotes/origin/ci-max-lines-base" + base_ref="refs/remotes/origin/ci-max-lines-base" + elif [[ -n "$base_sha" ]]; then + git fetch --no-tags --depth=1 origin \ + "+${base_sha}:refs/remotes/origin/ci-max-lines-base" + base_ref="refs/remotes/origin/ci-max-lines-base" + elif [[ -n "${RATCHET_MANUAL_TARGET_SHA:-}" ]]; then + default_branch="${RATCHET_DEFAULT_BRANCH:-main}" + default_sha="$( + git ls-remote origin "refs/heads/${default_branch}" | awk 'NR == 1 { print $1 }' + )" + if [[ ! "$default_sha" =~ ^[0-9a-f]{40}$ ]]; then + echo "Could not resolve the default branch head for the max-lines ratchet." >&2 + exit 1 + fi + merge_base_sha="$( + gh api --method GET \ + "repos/${GITHUB_REPOSITORY}/compare/${default_sha}...${RATCHET_MANUAL_TARGET_SHA}" \ + --jq '.merge_base_commit.sha' + )" + if [[ ! "$merge_base_sha" =~ ^[0-9a-f]{40}$ ]]; then + echo "Could not resolve the manual target merge base for the max-lines ratchet." >&2 + exit 1 + fi + git fetch --no-tags --depth=1 origin \ + "+${merge_base_sha}:refs/remotes/origin/ci-max-lines-base" + base_ref="refs/remotes/origin/ci-max-lines-base" + else + default_branch="${RATCHET_DEFAULT_BRANCH:-main}" + git fetch --no-tags --depth=1 origin \ + "+refs/heads/${default_branch}:refs/remotes/origin/ci-max-lines-base" + base_ref="refs/remotes/origin/ci-max-lines-base" + fi + unset GH_TOKEN + pnpm check:max-lines-ratchet --base "$base_ref" + if [[ "${RATCHET_RELEASE_MERGE_TREE:-}" == "true" ]]; then + node scripts/run-oxlint.mjs src ui/src packages extensions fi ;; bun-launcher) diff --git a/.oxlintrc.json b/.oxlintrc.json index 6f646aebe7f1..2b2ef5f5b2ff 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -271,6 +271,96 @@ "rules": { "typescript/no-explicit-any": "off" } + }, + { + "files": [ + "src/**/*.{js,ts,mts,cts}", + "ui/src/**/*.{js,ts,mts,cts}", + "packages/**/*.{js,ts,mts,cts}", + "extensions/**/*.{js,ts,mts,cts}" + ], + "excludeFiles": [ + "**/*.test.*", + "**/*.spec.*", + "**/__generated__/**", + "**/generated/**", + "**/protocol-gen/**", + "**/*.generated.*", + "**/dist/**", + "ui/src/i18n/locales/**", + "src/wizard/i18n/locales/**" + ], + "rules": { + "max-lines": ["error", { "max": 700, "skipBlankLines": true, "skipComments": true }] + } + }, + { + "files": [ + "src/**/*.{jsx,tsx}", + "ui/src/**/*.{jsx,tsx}", + "packages/**/*.{jsx,tsx}", + "extensions/**/*.{jsx,tsx}" + ], + "excludeFiles": [ + "**/*.test.*", + "**/*.spec.*", + "**/__generated__/**", + "**/generated/**", + "**/protocol-gen/**", + "**/*.generated.*", + "**/dist/**", + "ui/src/i18n/locales/**", + "src/wizard/i18n/locales/**" + ], + "rules": { + "max-lines": ["error", { "max": 700, "skipBlankLines": true, "skipComments": true }] + } + }, + { + "files": [ + "src/**/*.{mjs,cjs}", + "ui/src/**/*.{mjs,cjs}", + "packages/**/*.{mjs,cjs}", + "extensions/**/*.{mjs,cjs}" + ], + "excludeFiles": [ + "**/*.test.*", + "**/*.spec.*", + "**/__generated__/**", + "**/generated/**", + "**/protocol-gen/**", + "**/*.generated.*", + "**/dist/**", + "ui/src/i18n/locales/**", + "src/wizard/i18n/locales/**" + ], + "rules": { + "max-lines": ["error", { "max": 800, "skipBlankLines": true, "skipComments": true }] + } + }, + { + "files": [ + "src/**/*.test.*", + "src/**/*.spec.*", + "ui/src/**/*.test.*", + "ui/src/**/*.spec.*", + "packages/**/*.test.*", + "packages/**/*.spec.*", + "extensions/**/*.test.*", + "extensions/**/*.spec.*" + ], + "excludeFiles": [ + "**/__generated__/**", + "**/generated/**", + "**/protocol-gen/**", + "**/*.generated.*", + "**/dist/**", + "ui/src/i18n/locales/**", + "src/wizard/i18n/locales/**" + ], + "rules": { + "max-lines": ["error", { "max": 1000, "skipBlankLines": true, "skipComments": true }] + } } ] } diff --git a/AGENTS.md b/AGENTS.md index ed15bbb9da46..7e1b479f3fe8 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -265,6 +265,7 @@ Skills own workflows; root owns hard policy and routing. - Cycles: keep `pnpm check:import-cycles` + architecture/madge green. - Classes: no prototype mixins/mutations. Prefer inheritance/composition. Tests prefer per-instance stubs. - Split files around ~700 LOC when clarity/testability improves. +- Never add a `max-lines` suppression. Existing suppressions are grandfathered TODOs; split the file and remove its suppression plus baseline entry. - Naming: **OpenClaw** product/docs; `openclaw` CLI/package/path/config. - English: American spelling. diff --git a/config/max-lines-baseline.txt b/config/max-lines-baseline.txt new file mode 100644 index 000000000000..6041517c31bd --- /dev/null +++ b/config/max-lines-baseline.txt @@ -0,0 +1,1235 @@ +# Files currently allowed to exceed the oxlint max-lines budget. +# Ratchet: this list may only shrink. Split files; never add entries. +# Existing suppressions carry a TODO at the file site. + +extensions/acpx/src/codex-auth-bridge.ts +extensions/acpx/src/runtime.test.ts +extensions/acpx/src/runtime.ts +extensions/active-memory/index.test.ts +extensions/amazon-bedrock/index.test.ts +extensions/amazon-bedrock/stream.runtime.ts +extensions/anthropic/index.test.ts +extensions/anthropic/register.runtime.ts +extensions/anthropic/session-catalog.test.ts +extensions/anthropic/session-catalog.ts +extensions/browser/src/browser-tool.test.ts +extensions/browser/src/browser-tool.ts +extensions/browser/src/browser/cdp.ts +extensions/browser/src/browser/chrome-mcp.test.ts +extensions/browser/src/browser/chrome-mcp.ts +extensions/browser/src/browser/chrome.executables.ts +extensions/browser/src/browser/chrome.internal.test.ts +extensions/browser/src/browser/chrome.ts +extensions/browser/src/browser/config.test.ts +extensions/browser/src/browser/extension-relay/relay-bridge.ts +extensions/browser/src/browser/pw-session.create-page.navigation-guard.test.ts +extensions/browser/src/browser/pw-session.ts +extensions/browser/src/browser/pw-tools-core.browser-ssrf-guard.test.ts +extensions/browser/src/browser/pw-tools-core.interactions.navigation-guard.test.ts +extensions/browser/src/browser/pw-tools-core.interactions.ts +extensions/browser/src/browser/routes/agent.act.ts +extensions/browser/src/browser/routes/agent.snapshot.ts +extensions/browser/src/cli/browser-cli-manage.ts +extensions/codex/doctor-contract-api.test.ts +extensions/codex/src/app-server/approval-bridge.test.ts +extensions/codex/src/app-server/approval-bridge.ts +extensions/codex/src/app-server/attempt-context.ts +extensions/codex/src/app-server/auth-bridge.test.ts +extensions/codex/src/app-server/auth-bridge.ts +extensions/codex/src/app-server/client.ts +extensions/codex/src/app-server/compact.test.ts +extensions/codex/src/app-server/compact.ts +extensions/codex/src/app-server/computer-use.test.ts +extensions/codex/src/app-server/computer-use.ts +extensions/codex/src/app-server/config.test.ts +extensions/codex/src/app-server/config.ts +extensions/codex/src/app-server/dynamic-tool-build.test.ts +extensions/codex/src/app-server/dynamic-tool-build.ts +extensions/codex/src/app-server/dynamic-tools.test.ts +extensions/codex/src/app-server/dynamic-tools.ts +extensions/codex/src/app-server/elicitation-bridge.test.ts +extensions/codex/src/app-server/elicitation-bridge.ts +extensions/codex/src/app-server/event-projector.test.ts +extensions/codex/src/app-server/event-projector.ts +extensions/codex/src/app-server/native-subagent-monitor.test.ts +extensions/codex/src/app-server/native-subagent-monitor.ts +extensions/codex/src/app-server/plugin-thread-config.test.ts +extensions/codex/src/app-server/rate-limits.ts +extensions/codex/src/app-server/run-attempt.context-engine.test.ts +extensions/codex/src/app-server/run-attempt.test.ts +extensions/codex/src/app-server/run-attempt.turn-watches.test.ts +extensions/codex/src/app-server/runtime-artifact.ts +extensions/codex/src/app-server/session-binding.test.ts +extensions/codex/src/app-server/session-binding.ts +extensions/codex/src/app-server/shared-client.test.ts +extensions/codex/src/app-server/shared-client.ts +extensions/codex/src/app-server/side-question.test.ts +extensions/codex/src/app-server/side-question.ts +extensions/codex/src/app-server/thread-lifecycle.binding.test.ts +extensions/codex/src/app-server/thread-lifecycle.test.ts +extensions/codex/src/app-server/thread-lifecycle.ts +extensions/codex/src/app-server/transcript-mirror.test.ts +extensions/codex/src/command-handlers.ts +extensions/codex/src/commands.test.ts +extensions/codex/src/conversation-binding.test.ts +extensions/codex/src/conversation-binding.ts +extensions/codex/src/migration/provider.test.ts +extensions/codex/src/migration/session-binding-sidecars.ts +extensions/codex/src/session-catalog.test.ts +extensions/codex/src/session-catalog.ts +extensions/codex/src/supervision-tools.ts +extensions/comfy/image-generation-provider.test.ts +extensions/comfy/workflow-runtime.ts +extensions/copilot/harness.test.ts +extensions/copilot/harness.ts +extensions/copilot/src/attempt.test.ts +extensions/copilot/src/attempt.ts +extensions/copilot/src/event-bridge.test.ts +extensions/copilot/src/tool-bridge.test.ts +extensions/crabbox/src/crabbox-worker-provider.test.ts +extensions/device-pair/index.test.ts +extensions/device-pair/index.ts +extensions/diagnostics-otel/src/service.test.ts +extensions/diagnostics-prometheus/src/service.ts +extensions/discord/src/actions/runtime.guild.ts +extensions/discord/src/actions/runtime.test.ts +extensions/discord/src/channel.ts +extensions/discord/src/monitor.test.ts +extensions/discord/src/monitor/message-handler.preflight.test.ts +extensions/discord/src/monitor/message-handler.preflight.ts +extensions/discord/src/monitor/message-handler.process.test.ts +extensions/discord/src/monitor/message-handler.process.ts +extensions/discord/src/monitor/message-utils.test.ts +extensions/discord/src/monitor/model-picker.test.ts +extensions/discord/src/monitor/model-picker.view.ts +extensions/discord/src/monitor/native-command-model-picker-interaction.ts +extensions/discord/src/monitor/native-command.model-picker.test.ts +extensions/discord/src/monitor/native-command.plugin-dispatch.test.ts +extensions/discord/src/monitor/native-command.ts +extensions/discord/src/monitor/provider.test.ts +extensions/discord/src/monitor/thread-bindings.lifecycle.test.ts +extensions/discord/src/outbound-adapter.test.ts +extensions/discord/src/send.sends-basic-channel-messages.test.ts +extensions/discord/src/voice/manager.e2e.test.ts +extensions/discord/src/voice/manager.ts +extensions/discord/src/voice/realtime.ts +extensions/fal/image-generation-provider.test.ts +extensions/fal/image-generation-provider.ts +extensions/feishu/src/bot.test.ts +extensions/feishu/src/bot.ts +extensions/feishu/src/channel.test.ts +extensions/feishu/src/channel.ts +extensions/feishu/src/doctor.ts +extensions/feishu/src/docx.ts +extensions/feishu/src/drive.test.ts +extensions/feishu/src/drive.ts +extensions/feishu/src/media.ts +extensions/feishu/src/monitor.comment.ts +extensions/feishu/src/outbound.test.ts +extensions/feishu/src/outbound.ts +extensions/feishu/src/reply-dispatcher.test.ts +extensions/feishu/src/reply-dispatcher.ts +extensions/feishu/src/send.ts +extensions/feishu/src/streaming-card.test.ts +extensions/file-transfer/src/shared/node-invoke-policy.ts +extensions/firecrawl/src/firecrawl-tools.test.ts +extensions/github-copilot/index.test.ts +extensions/google-meet/index.test.ts +extensions/google-meet/index.ts +extensions/google-meet/src/cli.test.ts +extensions/google-meet/src/cli.ts +extensions/google-meet/src/meet.ts +extensions/google-meet/src/realtime-node.ts +extensions/google-meet/src/realtime.ts +extensions/google-meet/src/runtime.ts +extensions/google-meet/src/transports/chrome.ts +extensions/google/oauth.test.ts +extensions/google/realtime-voice-provider.test.ts +extensions/google/realtime-voice-provider.ts +extensions/google/transport-stream.test.ts +extensions/google/transport-stream.ts +extensions/imessage/src/actions.test.ts +extensions/imessage/src/actions.ts +extensions/imessage/src/approval-reactions.test.ts +extensions/imessage/src/approval-reactions.ts +extensions/imessage/src/monitor.last-route.test.ts +extensions/imessage/src/monitor/inbound-processing.ts +extensions/imessage/src/monitor/monitor-provider.ts +extensions/imessage/src/send.test.ts +extensions/imessage/src/send.ts +extensions/line/src/bot-handlers.test.ts +extensions/lmstudio/src/setup.test.ts +extensions/lmstudio/src/setup.ts +extensions/matrix/src/cli.test.ts +extensions/matrix/src/cli.ts +extensions/matrix/src/matrix/actions/verification.test.ts +extensions/matrix/src/matrix/client/config.ts +extensions/matrix/src/matrix/monitor/events.test.ts +extensions/matrix/src/matrix/monitor/handler.test.ts +extensions/matrix/src/matrix/monitor/handler.ts +extensions/matrix/src/matrix/sdk.test.ts +extensions/matrix/src/matrix/sdk.ts +extensions/matrix/src/matrix/sdk/verification-manager.ts +extensions/matrix/src/matrix/send.test.ts +extensions/matrix/src/onboarding.ts +extensions/mattermost/src/channel.test.ts +extensions/mattermost/src/channel.ts +extensions/mattermost/src/mattermost/monitor.inbound-system-event.test.ts +extensions/mattermost/src/mattermost/monitor.ts +extensions/mattermost/src/mattermost/slash-http.ts +extensions/memory-core/doctor-contract-api.test.ts +extensions/memory-core/doctor-contract-api.ts +extensions/memory-core/src/cli.runtime.ts +extensions/memory-core/src/cli.test.ts +extensions/memory-core/src/dreaming-narrative.test.ts +extensions/memory-core/src/dreaming-narrative.ts +extensions/memory-core/src/dreaming-phases.test.ts +extensions/memory-core/src/dreaming-phases.ts +extensions/memory-core/src/dreaming.test.ts +extensions/memory-core/src/dreaming.ts +extensions/memory-core/src/memory/index.test.ts +extensions/memory-core/src/memory/manager-embedding-ops.ts +extensions/memory-core/src/memory/manager-search.test.ts +extensions/memory-core/src/memory/manager-search.ts +extensions/memory-core/src/memory/manager-sync-ops.ts +extensions/memory-core/src/memory/manager.ts +extensions/memory-core/src/memory/qmd-manager.test.ts +extensions/memory-core/src/memory/qmd-manager.ts +extensions/memory-core/src/memory/search-manager.test.ts +extensions/memory-core/src/memory/search-manager.ts +extensions/memory-core/src/rem-evidence.ts +extensions/memory-core/src/short-term-promotion.test.ts +extensions/memory-core/src/short-term-promotion.ts +extensions/memory-core/src/tools.test.ts +extensions/memory-core/src/tools.ts +extensions/memory-lancedb/index.test.ts +extensions/memory-lancedb/index.ts +extensions/memory-wiki/src/chatgpt-import.ts +extensions/memory-wiki/src/cli.ts +extensions/memory-wiki/src/compile.ts +extensions/memory-wiki/src/markdown.ts +extensions/memory-wiki/src/query.test.ts +extensions/memory-wiki/src/query.ts +extensions/microsoft-foundry/index.test.ts +extensions/microsoft-foundry/shared.ts +extensions/migrate-hermes/config.test.ts +extensions/migrate-hermes/secrets.test.ts +extensions/msteams/src/channel.actions.test.ts +extensions/msteams/src/channel.ts +extensions/msteams/src/monitor-handler/message-handler.ts +extensions/mxc/test/mxc-backend.test.ts +extensions/oc-path/src/oc-path/find.ts +extensions/oc-path/src/oc-path/universal.ts +extensions/ollama/index.test.ts +extensions/ollama/index.ts +extensions/ollama/src/setup.ts +extensions/ollama/src/stream-runtime.test.ts +extensions/ollama/src/stream.ts +extensions/openai/image-generation-provider.test.ts +extensions/openai/image-generation-provider.ts +extensions/openai/openai-provider.test.ts +extensions/openai/openai-provider.ts +extensions/openai/realtime-voice-provider.test.ts +extensions/openai/realtime-voice-provider.ts +extensions/openrouter/index.test.ts +extensions/openshell/src/backend.ts +extensions/openshell/src/openshell-core.test.ts +extensions/phone-control/index.test.ts +extensions/policy/src/cli.test.ts +extensions/policy/src/doctor/register.base.test-utils.ts +extensions/policy/src/doctor/register.gateway-data-and-approvals.test-utils.ts +extensions/policy/src/doctor/register.ingress-and-secrets.test-utils.ts +extensions/policy/src/doctor/register.models-and-mcp.test-utils.ts +extensions/policy/src/doctor/register.sandbox-and-tools.test-utils.ts +extensions/policy/src/policy-state.ts +extensions/qa-lab/src/cli.runtime.test.ts +extensions/qa-lab/src/cli.runtime.ts +extensions/qa-lab/src/cli.ts +extensions/qa-lab/src/confidence-report.ts +extensions/qa-lab/src/evidence-gallery.ts +extensions/qa-lab/src/evidence-summary.ts +extensions/qa-lab/src/gateway-child.test.ts +extensions/qa-lab/src/gateway-child.ts +extensions/qa-lab/src/gateway-process-boundary.ts +extensions/qa-lab/src/lab-server.test.ts +extensions/qa-lab/src/lab-server.ts +extensions/qa-lab/src/live-transports/discord/discord-live.runtime.ts +extensions/qa-lab/src/live-transports/slack/slack-live.runtime.test.ts +extensions/qa-lab/src/live-transports/telegram/telegram-live.runtime.test.ts +extensions/qa-lab/src/live-transports/telegram/telegram-live.runtime.ts +extensions/qa-lab/src/live-transports/whatsapp/whatsapp-live.runtime.test.ts +extensions/qa-lab/src/mantis/slack-desktop-smoke.runtime.test.ts +extensions/qa-lab/src/mantis/slack-desktop-smoke.runtime.ts +extensions/qa-lab/src/mantis/telegram-desktop-builder.runtime.ts +extensions/qa-lab/src/mantis/visual-task.runtime.ts +extensions/qa-lab/src/providers/mock-openai/server.test.ts +extensions/qa-lab/src/providers/mock-openai/server.ts +extensions/qa-lab/src/runtime-parity.ts +extensions/qa-lab/src/runtime-tool-fixture.test.ts +extensions/qa-lab/src/runtime-tool-fixture.ts +extensions/qa-lab/src/scorecard-taxonomy.ts +extensions/qa-lab/src/suite-launch.runtime.test.ts +extensions/qa-lab/src/suite-launch.runtime.ts +extensions/qa-lab/src/suite.ts +extensions/qa-lab/src/test-file-scenario-runner.test.ts +extensions/qa-lab/web/src/app.ts +extensions/qa-matrix/src/runners/contract/runtime.ts +extensions/qa-matrix/src/runners/contract/scenario-catalog.ts +extensions/qa-matrix/src/runners/contract/scenario-runtime-approval.ts +extensions/qa-matrix/src/runners/contract/scenario-runtime-e2ee-destructive.ts +extensions/qa-matrix/src/runners/contract/scenario-runtime-e2ee.ts +extensions/qa-matrix/src/runners/contract/scenario-runtime-room.ts +extensions/qa-matrix/src/runners/contract/scenarios.test.ts +extensions/qa-matrix/src/substrate/client.ts +extensions/qqbot/src/engine/gateway/outbound-dispatch.test.ts +extensions/qqbot/src/engine/gateway/outbound-dispatch.ts +extensions/qqbot/src/engine/messaging/outbound-deliver.ts +extensions/qqbot/src/engine/messaging/outbound-media-send.ts +extensions/qqbot/src/engine/messaging/streaming-c2c.ts +extensions/signal/src/approval-reactions.ts +extensions/signal/src/channel.ts +extensions/signal/src/client-container.test.ts +extensions/signal/src/client-container.ts +extensions/signal/src/core.test.ts +extensions/signal/src/monitor/event-handler.inbound-context.test.ts +extensions/signal/src/monitor/event-handler.ts +extensions/slack/src/action-runtime.test.ts +extensions/slack/src/action-runtime.ts +extensions/slack/src/approval-native.test.ts +extensions/slack/src/channel.test.ts +extensions/slack/src/channel.ts +extensions/slack/src/message-action-dispatch.test.ts +extensions/slack/src/monitor/context.ts +extensions/slack/src/monitor/events/interactions.block-actions.ts +extensions/slack/src/monitor/events/interactions.test.ts +extensions/slack/src/monitor/media.test.ts +extensions/slack/src/monitor/message-handler/dispatch.preview-fallback.test.ts +extensions/slack/src/monitor/message-handler/dispatch.ts +extensions/slack/src/monitor/message-handler/prepare.test.ts +extensions/slack/src/monitor/message-handler/prepare.ts +extensions/slack/src/monitor/provider.ts +extensions/slack/src/monitor/replies.test.ts +extensions/slack/src/monitor/slash.test.ts +extensions/slack/src/monitor/slash.ts +extensions/slack/src/outbound-payload.test.ts +extensions/slack/src/send.blocks.test.ts +extensions/slack/src/send.ts +extensions/telegram/src/action-runtime.test.ts +extensions/telegram/src/action-runtime.ts +extensions/telegram/src/bot-message-context.session.ts +extensions/telegram/src/bot-message-dispatch.test.ts +extensions/telegram/src/bot-message-dispatch.ts +extensions/telegram/src/bot-native-commands.session-meta.test.ts +extensions/telegram/src/bot-native-commands.ts +extensions/telegram/src/bot.create-telegram-bot.test.ts +extensions/telegram/src/bot.test.ts +extensions/telegram/src/bot/delivery.replies.ts +extensions/telegram/src/bot/delivery.resolve-media-retry.test.ts +extensions/telegram/src/bot/delivery.test.ts +extensions/telegram/src/channel.ts +extensions/telegram/src/draft-stream.test.ts +extensions/telegram/src/draft-stream.ts +extensions/telegram/src/fetch.test.ts +extensions/telegram/src/fetch.ts +extensions/telegram/src/format.ts +extensions/telegram/src/lane-delivery.test.ts +extensions/telegram/src/message-cache.test.ts +extensions/telegram/src/message-cache.ts +extensions/telegram/src/polling-session.test.ts +extensions/telegram/src/polling-session.ts +extensions/telegram/src/send.test.ts +extensions/telegram/src/send.ts +extensions/telegram/src/thread-bindings.ts +extensions/telegram/src/webhook.test.ts +extensions/telegram/src/webhook.ts +extensions/tlon/src/monitor/index.ts +extensions/voice-call/index.test.ts +extensions/voice-call/index.ts +extensions/voice-call/src/cli.ts +extensions/voice-call/src/media-stream.ts +extensions/voice-call/src/webhook.test.ts +extensions/voice-call/src/webhook.ts +extensions/voice-call/src/webhook/realtime-handler.test.ts +extensions/voice-call/src/webhook/realtime-handler.ts +extensions/webhooks/src/http.ts +extensions/whatsapp/src/auto-reply.web-auto-reply.connection-and-logging.e2e.test.ts +extensions/whatsapp/src/auto-reply/monitor/inbound-dispatch.test.ts +extensions/whatsapp/src/auto-reply/monitor/inbound-dispatch.ts +extensions/whatsapp/src/connection-controller.ts +extensions/whatsapp/src/inbound/monitor.ts +extensions/whatsapp/src/monitor-inbox.streams-inbound-messages.test-support.ts +extensions/workboard/src/sqlite-store.ts +extensions/workboard/src/store-card-helpers.ts +extensions/workboard/src/store-core.ts +extensions/workboard/src/store-normalizers.ts +extensions/workboard/src/store.test.ts +extensions/workboard/src/tools.ts +extensions/workspaces/src/gateway.ts +extensions/workspaces/src/tools.ts +extensions/xai/realtime-voice-provider.test.ts +extensions/xai/web-search.test.ts +extensions/zalo/src/monitor.ts +extensions/zalouser/src/monitor.ts +extensions/zalouser/src/zalo-js.ts +packages/agent-core/src/agent-loop.test.ts +packages/agent-core/src/agent-loop.ts +packages/agent-core/src/harness/agent-harness.ts +packages/agent-core/src/harness/compaction/compaction.ts +packages/ai/src/providers/agent-tools-parameter-schema.ts +packages/ai/src/providers/anthropic.test.ts +packages/ai/src/providers/anthropic.ts +packages/ai/src/providers/google-shared.ts +packages/ai/src/providers/mistral.ts +packages/ai/src/providers/openai-chatgpt-responses.ts +packages/ai/src/providers/openai-completions.test.ts +packages/ai/src/providers/openai-completions.ts +packages/ai/src/providers/openai-responses-shared.test.ts +packages/ai/src/providers/openai-responses-shared.ts +packages/gateway-client/src/client.ts +packages/gateway-protocol/src/index.ts +packages/gateway-protocol/src/schema/agents-models-skills.ts +packages/gateway-protocol/src/schema/protocol-schemas.ts +packages/markdown-core/src/ir.ts +packages/memory-host-sdk/src/host/session-files.ts +packages/model-catalog-core/src/model-catalog-normalize.ts +packages/sdk/src/client.ts +packages/sdk/src/index.test.ts +packages/speech-core/src/tts.test.ts +packages/speech-core/src/tts.ts +packages/tool-call-repair/src/stream-normalizer.test.ts +packages/tool-call-repair/src/stream-normalizer.ts +src/acp/control-plane/manager.test.ts +src/acp/control-plane/manager.turn-results.test.ts +src/acp/event-ledger.ts +src/acp/translator.ts +src/agents/acp-spawn-parent-stream.test.ts +src/agents/acp-spawn-parent-stream.ts +src/agents/acp-spawn.test.ts +src/agents/acp-spawn.ts +src/agents/agent-bundle-mcp-runtime.test.ts +src/agents/agent-bundle-mcp-runtime.ts +src/agents/agent-command.live-model-switch.test.ts +src/agents/agent-command.ts +src/agents/agent-hooks/compaction-safeguard.test.ts +src/agents/agent-hooks/compaction-safeguard.ts +src/agents/agent-scope.test.ts +src/agents/agent-tools.before-tool-call.e2e.test.ts +src/agents/agent-tools.before-tool-call.integration.e2e.test.ts +src/agents/agent-tools.before-tool-call.ts +src/agents/agent-tools.create-openclaw-coding-tools.test.ts +src/agents/agent-tools.read.ts +src/agents/agent-tools.schema.test.ts +src/agents/agent-tools.ts +src/agents/anthropic-transport-stream.test.ts +src/agents/anthropic-transport-stream.ts +src/agents/auth-profiles/oauth-manager.ts +src/agents/auth-profiles/oauth.openai-codex-refresh-fallback.test.ts +src/agents/auth-profiles/persisted.ts +src/agents/auth-profiles/profiles.test.ts +src/agents/auth-profiles/store.ts +src/agents/auth-profiles/usage.test.ts +src/agents/auth-profiles/usage.ts +src/agents/bash-tools.exec-host-gateway.test.ts +src/agents/bash-tools.exec-host-gateway.ts +src/agents/bash-tools.exec-host-node.test.ts +src/agents/bash-tools.exec-runtime.ts +src/agents/bash-tools.exec.approval-id.test.ts +src/agents/bash-tools.exec.ts +src/agents/bash-tools.process.ts +src/agents/btw.test.ts +src/agents/btw.ts +src/agents/cli-auth-epoch.test.ts +src/agents/cli-backends.test.ts +src/agents/cli-output.test.ts +src/agents/cli-output.ts +src/agents/cli-runner.reliability.test.ts +src/agents/cli-runner.spawn.test.ts +src/agents/cli-runner.ts +src/agents/cli-runner/claude-live-session.ts +src/agents/cli-runner/execute.supervisor-capture.test.ts +src/agents/cli-runner/execute.ts +src/agents/cli-runner/prepare.test.ts +src/agents/cli-runner/prepare.ts +src/agents/code-mode-namespaces.ts +src/agents/code-mode.test.ts +src/agents/code-mode.ts +src/agents/command/attempt-execution.cli.test.ts +src/agents/command/attempt-execution.test.ts +src/agents/command/attempt-execution.ts +src/agents/command/cli-compaction.test.ts +src/agents/command/cli-compaction.ts +src/agents/command/delivery.test.ts +src/agents/command/delivery.ts +src/agents/command/session-store.test.ts +src/agents/embedded-agent-helpers.isbillingerrormessage.test.ts +src/agents/embedded-agent-helpers/errors.ts +src/agents/embedded-agent-runner-extraparams.test.ts +src/agents/embedded-agent-runner.cache.live.test.ts +src/agents/embedded-agent-runner.e2e.test.ts +src/agents/embedded-agent-runner.run-embedded-agent.auth-profile-rotation.e2e.test.ts +src/agents/embedded-agent-runner.sanitize-session-history.test.ts +src/agents/embedded-agent-runner/compact.hooks.harness.ts +src/agents/embedded-agent-runner/compact.hooks.test.ts +src/agents/embedded-agent-runner/compact.queued.ts +src/agents/embedded-agent-runner/compact.ts +src/agents/embedded-agent-runner/context-engine-maintenance.test.ts +src/agents/embedded-agent-runner/extra-params.ts +src/agents/embedded-agent-runner/model.provider-runtime.test-support.ts +src/agents/embedded-agent-runner/model.test.ts +src/agents/embedded-agent-runner/model.ts +src/agents/embedded-agent-runner/replay-history.ts +src/agents/embedded-agent-runner/run.incomplete-turn.test.ts +src/agents/embedded-agent-runner/run.overflow-compaction.harness.ts +src/agents/embedded-agent-runner/run.overflow-compaction.loop.test.ts +src/agents/embedded-agent-runner/run.overflow-compaction.test.ts +src/agents/embedded-agent-runner/run.ts +src/agents/embedded-agent-runner/run/attempt.model-diagnostic-events.test.ts +src/agents/embedded-agent-runner/run/attempt.model-diagnostic-events.ts +src/agents/embedded-agent-runner/run/attempt.session-lock.test.ts +src/agents/embedded-agent-runner/run/attempt.session-lock.ts +src/agents/embedded-agent-runner/run/attempt.spawn-workspace.context-engine.test.ts +src/agents/embedded-agent-runner/run/attempt.spawn-workspace.test-support.ts +src/agents/embedded-agent-runner/run/attempt.test.ts +src/agents/embedded-agent-runner/run/attempt.tool-call-argument-repair.ts +src/agents/embedded-agent-runner/run/attempt.tool-call-normalization.test.ts +src/agents/embedded-agent-runner/run/attempt.tool-call-normalization.ts +src/agents/embedded-agent-runner/run/incomplete-turn.ts +src/agents/embedded-agent-runner/run/payloads.errors.test.ts +src/agents/embedded-agent-runner/run/payloads.ts +src/agents/embedded-agent-runner/runs.ts +src/agents/embedded-agent-runner/thinking.test.ts +src/agents/embedded-agent-runner/tool-result-context-guard.test.ts +src/agents/embedded-agent-runner/tool-result-truncation.test.ts +src/agents/embedded-agent-runner/tool-result-truncation.ts +src/agents/embedded-agent-runner/transcript-file-state.test.ts +src/agents/embedded-agent-runner/transcript-file-state.ts +src/agents/embedded-agent-subscribe.handlers.lifecycle.test.ts +src/agents/embedded-agent-subscribe.handlers.messages.test.ts +src/agents/embedded-agent-subscribe.handlers.messages.ts +src/agents/embedded-agent-subscribe.handlers.tools.test.ts +src/agents/embedded-agent-subscribe.handlers.tools.ts +src/agents/embedded-agent-subscribe.subscribe-embedded-agent-session.subscribeembeddedagentsession.test.ts +src/agents/embedded-agent-subscribe.tools.ts +src/agents/embedded-agent-subscribe.ts +src/agents/failover-error.test.ts +src/agents/failover-error.ts +src/agents/harness/native-hook-relay.test.ts +src/agents/harness/native-hook-relay.ts +src/agents/harness/selection.test.ts +src/agents/harness/selection.ts +src/agents/live-cache-regression-runner.ts +src/agents/main-session-restart-recovery.test.ts +src/agents/main-session-restart-recovery.ts +src/agents/model-auth-availability.ts +src/agents/model-auth.profiles.test.ts +src/agents/model-auth.test.ts +src/agents/model-auth.ts +src/agents/model-catalog.test.ts +src/agents/model-catalog.ts +src/agents/model-fallback.test.ts +src/agents/model-fallback.ts +src/agents/model-selection-shared.ts +src/agents/model-selection.test.ts +src/agents/models.profiles.live.test.ts +src/agents/modes/interactive/theme/theme.ts +src/agents/openai-completions-transport.ts +src/agents/openai-responses-transport.ts +src/agents/openai-transport-stream.base.test-utils.ts +src/agents/openai-transport-stream.deepseek-and-shaping.test-utils.ts +src/agents/openai-transport-stream.inline-reasoning-and-tool-calls.test-utils.ts +src/agents/openai-transport-stream.reasoning-and-cache.test-utils.ts +src/agents/openai-transport-stream.replay-and-tools.test-utils.ts +src/agents/openai-transport-stream.streaming.test-utils.ts +src/agents/openai-transport-stream.usage-and-calls.test-utils.ts +src/agents/openclaw-tools.media-factory-plan.test.ts +src/agents/openclaw-tools.session-status.test.ts +src/agents/openclaw-tools.sessions.test.ts +src/agents/provider-attribution.test.ts +src/agents/provider-attribution.ts +src/agents/provider-local-service.ts +src/agents/provider-request-config.ts +src/agents/provider-transport-fetch.test.ts +src/agents/provider-transport-fetch.ts +src/agents/runtime-plan/prepare-auth.test.ts +src/agents/sandbox/ssh.ts +src/agents/session-file-repair.test.ts +src/agents/session-file-repair.ts +src/agents/session-tool-result-guard.ts +src/agents/session-transcript-repair.test.ts +src/agents/session-transcript-repair.ts +src/agents/session-write-lock.test.ts +src/agents/session-write-lock.ts +src/agents/sessions/agent-session.ts +src/agents/sessions/extensions/runner.ts +src/agents/sessions/extensions/types.ts +src/agents/sessions/model-registry.ts +src/agents/sessions/package-manager.ts +src/agents/sessions/resource-loader.ts +src/agents/sessions/session-manager.test.ts +src/agents/sessions/session-manager.ts +src/agents/sessions/settings-manager.ts +src/agents/subagent-announce-delivery.test.ts +src/agents/subagent-announce-delivery.ts +src/agents/subagent-announce.format.e2e.test.ts +src/agents/subagent-control.test.ts +src/agents/subagent-control.ts +src/agents/subagent-registry-lifecycle.test.ts +src/agents/subagent-registry-lifecycle.ts +src/agents/subagent-registry-run-manager.ts +src/agents/subagent-registry.persistence.test.ts +src/agents/subagent-registry.steer-restart.test.ts +src/agents/subagent-registry.test.ts +src/agents/subagent-registry.ts +src/agents/subagent-spawn.test.ts +src/agents/subagent-spawn.ts +src/agents/system-prompt.test.ts +src/agents/system-prompt.ts +src/agents/tool-display-common.ts +src/agents/tool-loop-detection.test.ts +src/agents/tool-loop-detection.ts +src/agents/tool-search.test.ts +src/agents/tool-search.ts +src/agents/tools/computer-tool.ts +src/agents/tools/cron-tool.test.ts +src/agents/tools/cron-tool.ts +src/agents/tools/image-generate-tool.test.ts +src/agents/tools/image-generate-tool.ts +src/agents/tools/image-tool.test.ts +src/agents/tools/image-tool.ts +src/agents/tools/media-generate-background-shared.test.ts +src/agents/tools/media-generate-background-shared.ts +src/agents/tools/message-tool.test.ts +src/agents/tools/message-tool.ts +src/agents/tools/music-generate-tool.test.ts +src/agents/tools/music-generate-tool.ts +src/agents/tools/session-status-tool.ts +src/agents/tools/sessions-send-tool.ts +src/agents/tools/sessions-spawn-tool.test.ts +src/agents/tools/sessions.test.ts +src/agents/tools/video-generate-tool.test.ts +src/agents/tools/video-generate-tool.ts +src/agents/tools/web-fetch.ts +src/agents/transcript-redact.test.ts +src/agents/workspace.ts +src/agents/worktrees/service.ts +src/auto-reply/command-control.test.ts +src/auto-reply/commands-registry.shared.ts +src/auto-reply/inbound.test.ts +src/auto-reply/reply/abort.test.ts +src/auto-reply/reply/agent-runner-execution.test.ts +src/auto-reply/reply/agent-runner-execution.ts +src/auto-reply/reply/agent-runner-memory.test.ts +src/auto-reply/reply/agent-runner-memory.ts +src/auto-reply/reply/agent-runner-payloads.test.ts +src/auto-reply/reply/agent-runner.misc.runreplyagent.test.ts +src/auto-reply/reply/agent-runner.runreplyagent.e2e.test.ts +src/auto-reply/reply/agent-runner.ts +src/auto-reply/reply/commands-acp.test.ts +src/auto-reply/reply/commands-acp/lifecycle.ts +src/auto-reply/reply/commands-approve.test.ts +src/auto-reply/reply/commands-models.ts +src/auto-reply/reply/commands-session.ts +src/auto-reply/reply/commands-status.test.ts +src/auto-reply/reply/directive-handling.impl.ts +src/auto-reply/reply/directive-handling.model.test.ts +src/auto-reply/reply/dispatch-acp.test.ts +src/auto-reply/reply/dispatch-acp.ts +src/auto-reply/reply/dispatch-from-config.abort-and-dedupe.test-utils.ts +src/auto-reply/reply/dispatch-from-config.acp-abort.test.ts +src/auto-reply/reply/dispatch-from-config.base.test-utils.ts +src/auto-reply/reply/dispatch-from-config.delivery-and-tts.test-utils.ts +src/auto-reply/reply/dispatch-from-config.hooks-and-send-policy.test-utils.ts +src/auto-reply/reply/dispatch-from-config.lifecycle-and-bindings.test-utils.ts +src/auto-reply/reply/dispatch-from-config.progress.test-utils.ts +src/auto-reply/reply/dispatch-from-config.routing.test-utils.ts +src/auto-reply/reply/dispatch-from-config.send-policy-routing.test-utils.ts +src/auto-reply/reply/dispatch-from-config.shared.test-harness.ts +src/auto-reply/reply/dispatch-from-config.ts +src/auto-reply/reply/followup-runner.test.ts +src/auto-reply/reply/followup-runner.ts +src/auto-reply/reply/get-reply-inline-actions.skip-when-config-empty.test.ts +src/auto-reply/reply/get-reply-run.media-only.test.ts +src/auto-reply/reply/get-reply-run.ts +src/auto-reply/reply/get-reply.ts +src/auto-reply/reply/inbound-meta.test.ts +src/auto-reply/reply/inbound-meta.ts +src/auto-reply/reply/model-selection.test.ts +src/auto-reply/reply/queue.collect.test.ts +src/auto-reply/reply/queue/drain.ts +src/auto-reply/reply/reply-run-registry.test.ts +src/auto-reply/reply/reply-run-registry.ts +src/auto-reply/reply/reply-turn-admission.test.ts +src/auto-reply/reply/reply-utils.test.ts +src/auto-reply/reply/session.test.ts +src/auto-reply/reply/session.ts +src/auto-reply/status.test.ts +src/channels/message/ingress-queue.ts +src/channels/plugins/bundled.shape-guard.test.ts +src/channels/plugins/bundled.ts +src/channels/plugins/message-actions.security.test.ts +src/channels/plugins/outbound/interactive.test.ts +src/channels/plugins/read-only.test.ts +src/channels/plugins/read-only.ts +src/channels/plugins/setup-wizard-helpers.test.ts +src/channels/plugins/setup-wizard-helpers.ts +src/channels/plugins/types.adapters.ts +src/channels/streaming.ts +src/channels/turn/kernel.test.ts +src/channels/turn/kernel.ts +src/cli/capability-cli.test.ts +src/cli/capability-cli.ts +src/cli/command-secret-gateway.test.ts +src/cli/command-secret-gateway.ts +src/cli/command-secret-targets.test.ts +src/cli/command-secret-targets.ts +src/cli/config-cli.test.ts +src/cli/config-cli.ts +src/cli/cron-cli.test.ts +src/cli/daemon-cli/status.gather.test.ts +src/cli/daemon-cli/status.gather.ts +src/cli/daemon-cli/status.print.test.ts +src/cli/devices-cli.runtime.ts +src/cli/devices-cli.test.ts +src/cli/exec-approvals-cli.ts +src/cli/gateway-cli/register.ts +src/cli/gateway-cli/run-loop.test.ts +src/cli/gateway-cli/run-loop.ts +src/cli/gateway-cli/run.option-collisions.test.ts +src/cli/gateway-cli/run.ts +src/cli/logs-cli.test.ts +src/cli/logs-cli.ts +src/cli/mcp-cli.ts +src/cli/plugins-authoring-command.ts +src/cli/plugins-cli-test-helpers.ts +src/cli/plugins-cli.install.test.ts +src/cli/plugins-cli.runtime.ts +src/cli/plugins-cli.update.test.ts +src/cli/plugins-install-command.ts +src/cli/program/register.status-health-sessions.ts +src/cli/run-main.exit.test.ts +src/cli/run-main.ts +src/cli/skills-cli.commands.test.ts +src/cli/skills-cli.ts +src/cli/update-cli.test.ts +src/cli/update-cli/update-command-service.ts +src/cli/update-cli/update-command.ts +src/commands/agent-via-gateway.test.ts +src/commands/agent-via-gateway.ts +src/commands/agent.test.ts +src/commands/auth-choice.test.ts +src/commands/backup-verify.test.ts +src/commands/backup-verify.ts +src/commands/channels.add.test.ts +src/commands/configure.wizard.ts +src/commands/daemon-install-helpers.test.ts +src/commands/daemon-install-helpers.ts +src/commands/doctor-auth-flat-profiles.test.ts +src/commands/doctor-auth-flat-profiles.ts +src/commands/doctor-config-flow.test.ts +src/commands/doctor-gateway-services.test.ts +src/commands/doctor-gateway-services.ts +src/commands/doctor-legacy-config.migrations.test.ts +src/commands/doctor-memory-search.test.ts +src/commands/doctor-memory-search.ts +src/commands/doctor-session-sqlite-migration-run.ts +src/commands/doctor-session-sqlite.test.ts +src/commands/doctor-session-sqlite.ts +src/commands/doctor-state-integrity.ts +src/commands/doctor-state-migrations.test.ts +src/commands/doctor.warns-state-directory-is-missing.e2e.test.ts +src/commands/doctor/cron/index.test.ts +src/commands/doctor/repair-sequencing.test.ts +src/commands/doctor/shared/channel-plugin-blockers.test.ts +src/commands/doctor/shared/codex-route-warnings.test.ts +src/commands/doctor/shared/codex-route-warnings.ts +src/commands/doctor/shared/legacy-config-core-normalizers.ts +src/commands/doctor/shared/legacy-config-migrate.test.ts +src/commands/doctor/shared/legacy-config-migrations.runtime.agents.ts +src/commands/doctor/shared/legacy-config-migrations.runtime.models.ts +src/commands/doctor/shared/missing-configured-plugin-install.test.ts +src/commands/doctor/shared/missing-configured-plugin-install.ts +src/commands/doctor/shared/preview-warnings.test.ts +src/commands/doctor/shared/preview-warnings.ts +src/commands/doctor/shared/stale-auth-order.test.ts +src/commands/gateway-status.test.ts +src/commands/health.ts +src/commands/migrate.test.ts +src/commands/model-picker.test.ts +src/commands/models/auth.test.ts +src/commands/models/auth.ts +src/commands/models/list.list-command.forward-compat.test.ts +src/commands/models/list.probe.ts +src/commands/models/list.rows.ts +src/commands/models/list.status-command.ts +src/commands/models/list.status.test.ts +src/commands/onboard-channels.e2e.test.ts +src/commands/onboarding-plugin-install.test.ts +src/commands/onboarding-plugin-install.ts +src/commands/status.test.ts +src/config/config-misc.test.ts +src/config/config.plugin-validation.test.ts +src/config/env-preserve.ts +src/config/io.observe-recovery.test.ts +src/config/io.observe-recovery.ts +src/config/io.ts +src/config/io.write-config.test.ts +src/config/io.write-prepare.test.ts +src/config/io.write-prepare.ts +src/config/mutate.test.ts +src/config/mutate.ts +src/config/plugin-auto-enable.core.test.ts +src/config/plugin-auto-enable.shared.ts +src/config/redact-snapshot.test.ts +src/config/redact-snapshot.ts +src/config/schema.help.quality.test.ts +src/config/schema.help.ts +src/config/schema.labels.ts +src/config/schema.test.ts +src/config/schema.ts +src/config/sessions/disk-budget.ts +src/config/sessions/session-accessor.conformance.test.ts +src/config/sessions/session-accessor.sqlite.ts +src/config/sessions/session-accessor.test.ts +src/config/sessions/session-accessor.ts +src/config/sessions/sessions.test.ts +src/config/sessions/store.pruning.integration.test.ts +src/config/sessions/store.ts +src/config/sessions/transcript.test.ts +src/config/sessions/transcript.ts +src/config/validation.ts +src/config/zod-schema.agent-runtime.ts +src/config/zod-schema.core.ts +src/config/zod-schema.providers-core.ts +src/config/zod-schema.ts +src/context-engine/context-engine.test.ts +src/context-engine/registry.ts +src/crestodian/agent-turn.test.ts +src/crestodian/chat-engine.test.ts +src/crestodian/chat-engine.ts +src/crestodian/operations.test.ts +src/crestodian/operations.ts +src/crestodian/setup-inference.test.ts +src/crestodian/setup-inference.ts +src/crestodian/verified-inference.test.ts +src/crestodian/verified-inference.ts +src/cron/isolated-agent/delivery-dispatch.double-announce.test.ts +src/cron/isolated-agent/delivery-dispatch.ts +src/cron/isolated-agent/delivery-target.test.ts +src/cron/isolated-agent/run-executor.ts +src/cron/isolated-agent/run.message-tool-policy.test.ts +src/cron/isolated-agent/run.test-harness.ts +src/cron/isolated-agent/run.ts +src/cron/normalize.ts +src/cron/service.jobs.test.ts +src/cron/service/jobs.ts +src/cron/service/ops.test.ts +src/cron/service/ops.ts +src/cron/service/timer.regression.test.ts +src/cron/service/timer.ts +src/cron/store.test.ts +src/daemon/launchd.test.ts +src/daemon/launchd.ts +src/daemon/schtasks.startup-fallback.test.ts +src/daemon/schtasks.ts +src/daemon/systemd.test.ts +src/daemon/systemd.ts +src/docker-setup.e2e.test.ts +src/fleet/backup.runtime.ts +src/fleet/containers.runtime.ts +src/fleet/service.runtime.ts +src/flows/channel-setup.test.ts +src/flows/channel-setup.ts +src/flows/doctor-core-checks.runtime.test.ts +src/flows/doctor-core-checks.runtime.ts +src/flows/doctor-core-checks.ts +src/flows/doctor-health-contributions.test.ts +src/flows/doctor-health-contributions.ts +src/flows/model-picker.ts +src/gateway/auth.test.ts +src/gateway/call.test.ts +src/gateway/call.ts +src/gateway/chat-display-projection.ts +src/gateway/cli-session-history.test.ts +src/gateway/client.test.ts +src/gateway/config-reload.test.ts +src/gateway/config-reload.ts +src/gateway/control-ui.http.test.ts +src/gateway/control-ui.ts +src/gateway/exec-approval-manager.ts +src/gateway/gateway-acp-bind.live.test.ts +src/gateway/gateway-codex-harness.live.test.ts +src/gateway/gateway-models.profiles.live.test.ts +src/gateway/managed-image-attachments.test.ts +src/gateway/managed-image-attachments.ts +src/gateway/mcp-http.test.ts +src/gateway/model-pricing-cache.test.ts +src/gateway/model-pricing-cache.ts +src/gateway/node-registry.test.ts +src/gateway/node-registry.ts +src/gateway/openai-http.test.ts +src/gateway/openai-http.ts +src/gateway/openresponses-http.test.ts +src/gateway/openresponses-http.ts +src/gateway/operator-approval-store.ts +src/gateway/server-channels.test.ts +src/gateway/server-channels.ts +src/gateway/server-chat.agent-events.test.ts +src/gateway/server-chat.ts +src/gateway/server-close.test.ts +src/gateway/server-close.ts +src/gateway/server-cron.test.ts +src/gateway/server-cron.ts +src/gateway/server-http.ts +src/gateway/server-methods.ts +src/gateway/server-methods/agent.abort-integration.test-utils.ts +src/gateway/server-methods/agent.base.test-utils.ts +src/gateway/server-methods/agent.events-and-subagents.test-utils.ts +src/gateway/server-methods/agent.media-and-routing.test-utils.ts +src/gateway/server-methods/agent.reset-and-identity.test-utils.ts +src/gateway/server-methods/agent.sessions-and-models.test-utils.ts +src/gateway/server-methods/agent.test-harness.ts +src/gateway/server-methods/agents-mutate.test.ts +src/gateway/server-methods/agents.ts +src/gateway/server-methods/approval-shared.test.ts +src/gateway/server-methods/approval.test.ts +src/gateway/server-methods/chat.abort-persistence.test.ts +src/gateway/server-methods/chat.directive-tags.test.ts +src/gateway/server-methods/chat.ts +src/gateway/server-methods/config.ts +src/gateway/server-methods/cron.ts +src/gateway/server-methods/cron.validation.test.ts +src/gateway/server-methods/devices.test.ts +src/gateway/server-methods/devices.ts +src/gateway/server-methods/doctor.test.ts +src/gateway/server-methods/doctor.ts +src/gateway/server-methods/models-auth-status.test.ts +src/gateway/server-methods/models.test.ts +src/gateway/server-methods/nodes.invoke-wake.test.ts +src/gateway/server-methods/nodes.ts +src/gateway/server-methods/send.test.ts +src/gateway/server-methods/send.ts +src/gateway/server-methods/server-methods.test.ts +src/gateway/server-methods/sessions-files.ts +src/gateway/server-methods/sessions.ts +src/gateway/server-methods/skills.ts +src/gateway/server-methods/talk.test.ts +src/gateway/server-methods/talk.ts +src/gateway/server-methods/usage.ts +src/gateway/server-node-events.test.ts +src/gateway/server-node-events.ts +src/gateway/server-plugins.test.ts +src/gateway/server-plugins.ts +src/gateway/server-reload-handlers.test.ts +src/gateway/server-reload-handlers.ts +src/gateway/server-restart-sentinel.test.ts +src/gateway/server-startup-config.secrets.test.ts +src/gateway/server-startup-post-attach.test.ts +src/gateway/server-startup-post-attach.ts +src/gateway/server.auth.control-ui.suite.ts +src/gateway/server.chat.gateway-server-chat-b.test.ts +src/gateway/server.chat.gateway-server-chat.test.ts +src/gateway/server.config-patch.test.ts +src/gateway/server.cron.test.ts +src/gateway/server.impl.ts +src/gateway/server.sessions.compaction.test.ts +src/gateway/server.sessions.create.test.ts +src/gateway/server.sessions.list-changed.test.ts +src/gateway/server/ws-connection/message-handler.post-connect-health.test.ts +src/gateway/session-compaction-checkpoints.ts +src/gateway/session-create-service.ts +src/gateway/session-message-events.test.ts +src/gateway/session-reset-service.ts +src/gateway/session-transcript-readers.ts +src/gateway/session-utils.fs.test.ts +src/gateway/session-utils.fs.ts +src/gateway/session-utils.subagent.test.ts +src/gateway/session-utils.test.ts +src/gateway/session-utils.ts +src/gateway/sessions-history-http.test.ts +src/gateway/sessions-patch.test.ts +src/gateway/sessions-patch.ts +src/gateway/talk-realtime-relay.test.ts +src/gateway/talk-realtime-relay.ts +src/gateway/test-helpers.server.ts +src/gateway/tools-invoke-http.test.ts +src/gateway/watch-node-http.ts +src/gateway/worker-environments/bootstrap.ts +src/gateway/worker-environments/inference-runtime.ts +src/gateway/worker-environments/live-events.ts +src/gateway/worker-environments/service.test.ts +src/gateway/worker-environments/service.ts +src/gateway/worker-environments/store.ts +src/gateway/worker-environments/worker-turn-launcher.test.ts +src/hooks/install.ts +src/infra/approval-handler-runtime.ts +src/infra/backup-create.test.ts +src/infra/backup-create.ts +src/infra/clawhub-install-trust.ts +src/infra/clawhub.test.ts +src/infra/clawhub.ts +src/infra/command-explainer/extract.ts +src/infra/device-pairing.test.ts +src/infra/device-pairing.ts +src/infra/diagnostic-events.ts +src/infra/exec-approval-forwarder.ts +src/infra/exec-approvals-allow-always.test.ts +src/infra/exec-approvals-allowlist.ts +src/infra/exec-approvals-store.test.ts +src/infra/exec-approvals.ts +src/infra/exec-authorization-plan.ts +src/infra/heartbeat-runner.returns-default-unset.test.ts +src/infra/heartbeat-runner.ts +src/infra/host-env-security.test.ts +src/infra/infra-runtime.test.ts +src/infra/net/fetch-guard.ssrf.test.ts +src/infra/npm-managed-root.test.ts +src/infra/npm-managed-root.ts +src/infra/outbound/deliver.test.ts +src/infra/outbound/deliver.ts +src/infra/outbound/delivery-queue-recovery.ts +src/infra/outbound/delivery-queue.recovery.test.ts +src/infra/outbound/message-action-runner.media.test.ts +src/infra/outbound/message-action-runner.plugin-dispatch.test.ts +src/infra/outbound/message-action-runner.ts +src/infra/outbound/outbound-send-service.test.ts +src/infra/outbound/targets.test.ts +src/infra/package-update-steps.ts +src/infra/push-apns.ts +src/infra/restart-stale-pids.test.ts +src/infra/restart.ts +src/infra/run-node.test.ts +src/infra/session-cost-usage.test.ts +src/infra/session-cost-usage.ts +src/infra/sqlite-snapshot.ts +src/infra/state-migrations.doctor.ts +src/infra/state-migrations.runtime-state.ts +src/infra/state-migrations.session-store.ts +src/infra/state-migrations.storage.ts +src/infra/state-migrations.test.ts +src/infra/update-global.ts +src/infra/update-managed-service-handoff.ts +src/infra/update-runner.test.ts +src/infra/update-runner.ts +src/infra/update-startup.test.ts +src/infra/update-startup.ts +src/infra/windows-gateway-firewall-diagnostics.ts +src/interactive/payload.ts +src/llm/providers/stream-wrappers/openai.ts +src/logging/diagnostic-stability-bundle.ts +src/logging/diagnostic-stability.ts +src/logging/diagnostic-support-export.ts +src/logging/diagnostic.test.ts +src/logging/diagnostic.ts +src/logging/logger.ts +src/logging/redact.test.ts +src/logging/redact.ts +src/media-understanding/apply.test.ts +src/media-understanding/image.test.ts +src/media-understanding/runner.entries.ts +src/media-understanding/runner.ts +src/media-understanding/runner.vision-skip.test.ts +src/media/fetch.test.ts +src/media/web-media.test.ts +src/media/web-media.ts +src/node-host/invoke-system-run-plan.test.ts +src/node-host/invoke-system-run-plan.ts +src/node-host/invoke-system-run.test.ts +src/node-host/invoke-system-run.ts +src/node-host/invoke.ts +src/plugin-sdk/approval-native-helpers.ts +src/plugin-sdk/core.ts +src/plugin-sdk/provider-auth.test.ts +src/plugin-sdk/provider-stream-shared.test.ts +src/plugin-sdk/provider-stream-shared.ts +src/plugin-sdk/test-helpers/plugin-runtime-mock.ts +src/plugin-sdk/test-helpers/provider-discovery-contract.ts +src/plugin-sdk/test-helpers/provider-runtime-contract.ts +src/plugin-state/plugin-state-store.sqlite.ts +src/plugins/bundled-plugin-metadata.test.ts +src/plugins/capability-provider-runtime.test.ts +src/plugins/channel-plugin-ids.test.ts +src/plugins/clawhub.test.ts +src/plugins/clawhub.ts +src/plugins/commands.test.ts +src/plugins/compat/registry.ts +src/plugins/contracts/host-hooks.contract.test.ts +src/plugins/contracts/plugin-sdk-subpaths.test.ts +src/plugins/contracts/scheduled-turns.contract.test.ts +src/plugins/contracts/tts-contract-suites.ts +src/plugins/conversation-binding.test.ts +src/plugins/conversation-binding.ts +src/plugins/discovery.test.ts +src/plugins/discovery.ts +src/plugins/gateway-startup-plugin-ids.ts +src/plugins/hook-types.ts +src/plugins/hooks.ts +src/plugins/install-security-scan.runtime.ts +src/plugins/install.npm-spec.e2e.test.ts +src/plugins/install.npm-spec.test.ts +src/plugins/install.test.ts +src/plugins/install.ts +src/plugins/installed-plugin-index.test.ts +src/plugins/loader.activation.test-utils.ts +src/plugins/loader.base.test-utils.ts +src/plugins/loader.cli-metadata.test.ts +src/plugins/loader.discovery-and-security.test-utils.ts +src/plugins/loader.hooks-and-runtime.test-utils.ts +src/plugins/loader.registration.test-utils.ts +src/plugins/loader.test-harness.ts +src/plugins/loader.ts +src/plugins/management-service.ts +src/plugins/manifest-registry.test.ts +src/plugins/manifest-registry.ts +src/plugins/manifest.ts +src/plugins/marketplace.test.ts +src/plugins/marketplace.ts +src/plugins/official-external-plugin-catalog.test.ts +src/plugins/official-external-plugin-catalog.ts +src/plugins/plugin-metadata-snapshot.ts +src/plugins/plugin-registry-snapshot.test.ts +src/plugins/provider-runtime.test.ts +src/plugins/provider-runtime.ts +src/plugins/providers.test.ts +src/plugins/providers.ts +src/plugins/registry-runtime.ts +src/plugins/schema-validator.test.ts +src/plugins/sdk-alias.test.ts +src/plugins/sdk-alias.ts +src/plugins/setup-registry.test.ts +src/plugins/setup-registry.ts +src/plugins/tools.optional.test.ts +src/plugins/tools.ts +src/plugins/types.ts +src/plugins/uninstall.test.ts +src/plugins/update.test.ts +src/plugins/update.ts +src/proxy-capture/store.sqlite.ts +src/routing/resolve-route.test.ts +src/routing/resolve-route.ts +src/scripts/test-projects.test.ts +src/secrets/apply.test.ts +src/secrets/apply.ts +src/secrets/configure.ts +src/secrets/resolve.ts +src/secrets/runtime-state.test.ts +src/secrets/runtime-state.ts +src/secrets/runtime-web-tools.test.ts +src/secrets/runtime-web-tools.ts +src/security/audit-extra.async.ts +src/security/audit-extra.sync.ts +src/security/audit.ts +src/security/install-policy.ts +src/sessions/session-state-events.ts +src/shared/json-schema-defaults.ts +src/shared/text/assistant-visible-text.ts +src/skills/lifecycle/clawhub.test.ts +src/skills/lifecycle/clawhub.ts +src/skills/lifecycle/install.ts +src/skills/loading/workspace-load.test.ts +src/skills/loading/workspace.ts +src/skills/security/scanner.ts +src/skills/workshop/service.test.ts +src/skills/workshop/service.ts +src/snapshot/local-repository.test.ts +src/snapshot/local-repository.ts +src/state/openclaw-agent-db.test.ts +src/state/openclaw-agent-db.ts +src/state/openclaw-state-db.test.ts +src/state/openclaw-state-db.ts +src/status/status-message.ts +src/tasks/task-executor.test.ts +src/tasks/task-flow-registry.ts +src/tasks/task-registry.maintenance.ts +src/tasks/task-registry.store.test.ts +src/tasks/task-registry.test.ts +src/tasks/task-registry.ts +src/trajectory/export.test.ts +src/trajectory/export.ts +src/tui/embedded-backend.test.ts +src/tui/embedded-backend.ts +src/tui/tui-command-handlers.test.ts +src/tui/tui-command-handlers.ts +src/tui/tui-event-handlers.test.ts +src/tui/tui-event-handlers.ts +src/tui/tui-pty-local.e2e.test.ts +src/tui/tui-session-actions.test.ts +src/tui/tui.ts +src/video-generation/runtime.test.ts +src/web-search/runtime.test.ts +src/wizard/clack-navigation-prompts.ts +src/wizard/setup.finalize.test.ts +src/wizard/setup.finalize.ts +src/wizard/setup.test.ts +src/worker/worker.runtime.test.ts +ui/src/api/gateway.node.test.ts +ui/src/api/types.ts +ui/src/app/app-host.ts +ui/src/components/app-sidebar.test.ts +ui/src/components/app-sidebar.ts +ui/src/components/browser/browser-panel.ts +ui/src/components/config-form.node.ts +ui/src/components/lobster-pet.ts +ui/src/components/markdown.ts +ui/src/components/terminal/terminal-panel.ts +ui/src/e2e/chat-flow.e2e.test.ts +ui/src/e2e/new-session-page.e2e.test.ts +ui/src/e2e/session-management.e2e.test.ts +ui/src/lib/config/index.test.ts +ui/src/lib/config/index.ts +ui/src/lib/cron/index.test.ts +ui/src/lib/cron/index.ts +ui/src/lib/nodes/index.ts +ui/src/lib/sessions/index.ts +ui/src/lib/skills/index.test.ts +ui/src/lib/workboard/index.test.ts +ui/src/pages/agents/agents-page.ts +ui/src/pages/agents/memory/dreaming.test.ts +ui/src/pages/agents/memory/dreaming.ts +ui/src/pages/agents/memory/view.ts +ui/src/pages/agents/panels-tools-skills.ts +ui/src/pages/chat/chat-command-executor.test.ts +ui/src/pages/chat/chat-command-executor.ts +ui/src/pages/chat/chat-gateway.test.ts +ui/src/pages/chat/chat-history.ts +ui/src/pages/chat/chat-pane.ts +ui/src/pages/chat/chat-responsive.browser.test.ts +ui/src/pages/chat/chat-send.test.ts +ui/src/pages/chat/chat-send.ts +ui/src/pages/chat/chat-state.test.ts +ui/src/pages/chat/chat-state.ts +ui/src/pages/chat/chat-thread.test.ts +ui/src/pages/chat/chat-thread.ts +ui/src/pages/chat/chat-view.test.ts +ui/src/pages/chat/components/chat-composer.ts +ui/src/pages/chat/components/chat-message.test.ts +ui/src/pages/chat/components/chat-message.ts +ui/src/pages/chat/components/chat-model-controls.ts +ui/src/pages/chat/components/chat-session-workspace.ts +ui/src/pages/chat/components/chat-sidebar.ts +ui/src/pages/chat/components/chat-thread.ts +ui/src/pages/chat/components/chat-tool-cards.ts +ui/src/pages/chat/composer-persistence.test.ts +ui/src/pages/chat/composer-persistence.ts +ui/src/pages/chat/realtime-talk-gateway-relay.test.ts +ui/src/pages/chat/tool-stream.ts +ui/src/pages/config/config-page.ts +ui/src/pages/config/quick.ts +ui/src/pages/config/view.browser.test.ts +ui/src/pages/config/view.ts +ui/src/pages/cron/view.ts +ui/src/pages/new-session/new-session-page.ts +ui/src/pages/plugin/workspace-view.ts +ui/src/pages/plugins/plugins-page.ts +ui/src/pages/plugins/view.ts +ui/src/pages/sessions/sessions-page.ts +ui/src/pages/sessions/view.test.ts +ui/src/pages/sessions/view.ts +ui/src/pages/skill-workshop/view.ts +ui/src/pages/skills/view.ts +ui/src/pages/usage/metrics.ts +ui/src/pages/usage/view-details.ts +ui/src/pages/usage/view-overview.ts +ui/src/pages/usage/view.ts +ui/src/pages/workboard/view.test.ts +ui/src/pages/workboard/view.ts +ui/src/test-helpers/control-ui-e2e.ts diff --git a/docs/ci.md b/docs/ci.md index 98708b25ab48..aa1a2a3afa1b 100644 --- a/docs/ci.md +++ b/docs/ci.md @@ -33,7 +33,7 @@ dispatch. | `pnpm-store-warmup` | Warm the lockfile-pinned pnpm store cache without blocking Linux Node shards | Node or docs-check lanes selected | | `build-artifacts` | Build `dist/`, Control UI, built-CLI smoke checks, startup memory, and embedded built-artifact checks | Node-relevant changes | | `control-ui-i18n` | Verify generated Control UI locale bundles, metadata, and translation memory; advisory on automatic runs, blocking on manual release CI | Control UI i18n-relevant changes and manual CI | -| `checks-fast-core` | Fast Linux correctness lanes: changed-file TypeScript LOC ratchet, bundled + protocol, Bun launcher, and the CI-routing fast task | Node-relevant or production TypeScript changes | +| `checks-fast-core` | Fast Linux correctness lanes: suppression-baseline max-lines ratchet, bundled + protocol, Bun launcher, and the CI-routing fast task | Node-relevant changes | | `qa-smoke-ci-profile` | Two self-contained balanced parts of the bounded automatic QA Smoke representative set; full taxonomy coverage remains available through explicit QA profiles | Node-relevant changes | | `checks-fast-contracts-plugins-*` | Two weighted plugin contract shards | Node-relevant changes | | `checks-fast-contracts-channels-*` | Two weighted channel contract shards | Node-relevant changes | @@ -148,7 +148,7 @@ Treat GitHub titles, comments, bodies, review text, branch names, and commit mes Manual CI dispatches run the same job graph as normal CI but force every non-Android scoped lane on: Linux Node shards, bundled-plugin shards, plugin and channel contract shards, Node 22 compatibility, `check-*`, `check-additional-*`, built-artifact smoke checks, docs checks, Python skills, Windows, macOS, iOS build, and Control UI i18n. Control UI locale parity is advisory on automatic PR and `main` runs because the standalone refresh workflow repairs generated drift in the background; it is blocking on manual CI and therefore on Full Release Validation. Standalone manual CI dispatches run Android only with `include_android=true` (the `release_gate` input also forces Android); the full release umbrella enables Android by passing `include_android=true`. Plugin prerelease static checks, the release-only `agentic-plugins` shard, the full extension batch sweep, and plugin prerelease Docker lanes are excluded from CI. The Docker prerelease suite runs only when `Full Release Validation` dispatches the separate `Plugin Prerelease` workflow with the release-validation gate enabled. -Manual runs use a unique concurrency group so a release-candidate full suite is not cancelled by another push or PR run on the same ref. The optional `target_ref` input lets a trusted caller run that graph against a branch, tag, or full commit SHA while using the workflow file from the selected dispatch ref. The optional `loc_base_ref` supplies an exact comparison SHA for standalone manual runs. The `release_gate` input is an exact-SHA maintainer fallback for capacity-stalled PR CI: it requires `target_ref` to be a full commit SHA that matches the dispatched branch head and `pr_number` to identify the open pull request. The workflow authenticates that PR's current head and base, waits for GitHub to finish computing mergeability, pins the reported test merge commit, fetches GitHub's synthetic pull-request merge ref, verifies its SHA and both parents, then checks out that tree before installing dependencies and running the changed-file TypeScript LOC ratchet. This matches automatic PR CI's merged tree and policy implementation. Target-owned workflow revisions without `pr_number` cannot provide equivalent merge-tree evidence; update the PR head to the current workflow and restart exact-head proof instead of using the fallback. +PR max-lines checks derive the baseline from the checked-out synthetic merge tree and verify its head parent against the event head. Manual runs use a unique concurrency group so a release-candidate full suite is not cancelled by another push or PR run on the same ref. The optional `target_ref` input lets a trusted caller run that graph against a branch, tag, or full commit SHA while using the workflow file from the selected dispatch ref; the max-lines baseline is compared with the target's merge base against the default-branch head resolved for that run. The `release_gate` input is an exact-SHA maintainer fallback for capacity-stalled PR CI: it requires `target_ref` to be a full commit SHA that matches the dispatched branch head and `pull_request_number` to identify the open PR whose merge tree is validated. ```bash gh workflow run ci.yml --ref release/YYYY.M.PATCH diff --git a/extensions/acpx/src/codex-auth-bridge.ts b/extensions/acpx/src/codex-auth-bridge.ts index 8320e88232b3..eaacb4b87b3e 100644 --- a/extensions/acpx/src/codex-auth-bridge.ts +++ b/extensions/acpx/src/codex-auth-bridge.ts @@ -788,3 +788,4 @@ export async function prepareAcpxCodexAuthConfig(params: { }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/acpx/src/runtime.test.ts b/extensions/acpx/src/runtime.test.ts index dba47642605a..fda6cba4ce34 100644 --- a/extensions/acpx/src/runtime.test.ts +++ b/extensions/acpx/src/runtime.test.ts @@ -2232,3 +2232,4 @@ describe("AcpxRuntime fresh reset wrapper", () => { expect(defaultProbe).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/acpx/src/runtime.ts b/extensions/acpx/src/runtime.ts index 7b4c8b776ced..e083630effb4 100644 --- a/extensions/acpx/src/runtime.ts +++ b/extensions/acpx/src/runtime.ts @@ -1400,3 +1400,4 @@ export const testing = { export type { AcpAgentRegistry, AcpRuntimeOptions, AcpSessionRecord, AcpSessionStore }; export { testing as __testing }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/active-memory/index.test.ts b/extensions/active-memory/index.test.ts index 44a66a70f8de..d4fad3884caa 100644 --- a/extensions/active-memory/index.test.ts +++ b/extensions/active-memory/index.test.ts @@ -6460,3 +6460,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/amazon-bedrock/index.test.ts b/extensions/amazon-bedrock/index.test.ts index 6c8932db0f81..bfda30e27f60 100644 --- a/extensions/amazon-bedrock/index.test.ts +++ b/extensions/amazon-bedrock/index.test.ts @@ -1594,3 +1594,4 @@ describe("amazon-bedrock provider plugin", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/amazon-bedrock/stream.runtime.ts b/extensions/amazon-bedrock/stream.runtime.ts index 741f0a6385b0..cebddd6cceb9 100644 --- a/extensions/amazon-bedrock/stream.runtime.ts +++ b/extensions/amazon-bedrock/stream.runtime.ts @@ -1182,3 +1182,4 @@ export const testing = { resolveSimpleBedrockOptions, shouldUseExplicitBedrockEndpoint, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/anthropic/index.test.ts b/extensions/anthropic/index.test.ts index 35e2769bb9a4..310c72524e0c 100644 --- a/extensions/anthropic/index.test.ts +++ b/extensions/anthropic/index.test.ts @@ -1258,3 +1258,4 @@ describe("anthropic provider replay hooks", () => { ]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/anthropic/register.runtime.ts b/extensions/anthropic/register.runtime.ts index 2fc3f7e09421..80d0ce193edc 100644 --- a/extensions/anthropic/register.runtime.ts +++ b/extensions/anthropic/register.runtime.ts @@ -924,3 +924,4 @@ export function registerAnthropicPlugin(api: OpenClawPluginApi): void { api.registerNodeInvokePolicy(policy); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/anthropic/session-catalog.test.ts b/extensions/anthropic/session-catalog.test.ts index d61c752bd09a..4d4cd767e72e 100644 --- a/extensions/anthropic/session-catalog.test.ts +++ b/extensions/anthropic/session-catalog.test.ts @@ -1164,3 +1164,4 @@ describe("Claude session catalog", () => { ]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/anthropic/session-catalog.ts b/extensions/anthropic/session-catalog.ts index c43623c3b796..c6d67f170871 100644 --- a/extensions/anthropic/session-catalog.ts +++ b/extensions/anthropic/session-catalog.ts @@ -1336,3 +1336,4 @@ export function registerClaudeSessionCatalog(api: OpenClawPluginApi): void { }; api.registerSessionCatalog(provider); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/browser/src/browser-tool.test.ts b/extensions/browser/src/browser-tool.test.ts index f74665909849..23f2ea8de1cc 100644 --- a/extensions/browser/src/browser-tool.test.ts +++ b/extensions/browser/src/browser-tool.test.ts @@ -2530,3 +2530,4 @@ describe("browser tool upload inbound media fallback (#83544)", () => { ).rejects.toThrow("path outside allowed directories"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/browser/src/browser-tool.ts b/extensions/browser/src/browser-tool.ts index f6c9a98d3cf4..241fc9994448 100644 --- a/extensions/browser/src/browser-tool.ts +++ b/extensions/browser/src/browser-tool.ts @@ -1013,3 +1013,4 @@ export function createBrowserTool(opts?: { }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/browser/src/browser/cdp.ts b/extensions/browser/src/browser/cdp.ts index f6fb822a6010..9e39a2b8e150 100644 --- a/extensions/browser/src/browser/cdp.ts +++ b/extensions/browser/src/browser/cdp.ts @@ -934,3 +934,4 @@ export async function snapshotRoleViaCdp(opts: { { commandTimeoutMs: opts.timeoutMs ?? 5000 }, ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/browser/src/browser/chrome-mcp.test.ts b/extensions/browser/src/browser/chrome-mcp.test.ts index 537c1f101ead..e1a3990b1e95 100644 --- a/extensions/browser/src/browser/chrome-mcp.test.ts +++ b/extensions/browser/src/browser/chrome-mcp.test.ts @@ -3039,3 +3039,4 @@ describe("chrome MCP page parsing", () => { expect(closeMock).toHaveBeenCalledTimes(1); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/browser/src/browser/chrome-mcp.ts b/extensions/browser/src/browser/chrome-mcp.ts index ebb29d806715..d71aa4db7e20 100644 --- a/extensions/browser/src/browser/chrome-mcp.ts +++ b/extensions/browser/src/browser/chrome-mcp.ts @@ -2495,3 +2495,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/browser/src/browser/chrome.executables.ts b/extensions/browser/src/browser/chrome.executables.ts index 2eb9eb2f6529..00b16f21119d 100644 --- a/extensions/browser/src/browser/chrome.executables.ts +++ b/extensions/browser/src/browser/chrome.executables.ts @@ -905,3 +905,4 @@ export function resolveBrowserExecutableForPlatform( } return null; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/browser/src/browser/chrome.internal.test.ts b/extensions/browser/src/browser/chrome.internal.test.ts index 063aff4252b4..1251510d8cb6 100644 --- a/extensions/browser/src/browser/chrome.internal.test.ts +++ b/extensions/browser/src/browser/chrome.internal.test.ts @@ -2147,3 +2147,4 @@ describe("chrome.ts internal", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/browser/src/browser/chrome.ts b/extensions/browser/src/browser/chrome.ts index 616a6799ef66..e4e598fa5567 100644 --- a/extensions/browser/src/browser/chrome.ts +++ b/extensions/browser/src/browser/chrome.ts @@ -1465,3 +1465,4 @@ export async function stopOpenClawChrome( ); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/browser/src/browser/config.test.ts b/extensions/browser/src/browser/config.test.ts index f53a505042a6..4d16954fb118 100644 --- a/extensions/browser/src/browser/config.test.ts +++ b/extensions/browser/src/browser/config.test.ts @@ -1193,3 +1193,4 @@ describe("browser config", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/browser/src/browser/extension-relay/relay-bridge.ts b/extensions/browser/src/browser/extension-relay/relay-bridge.ts index 9ea855148c61..fac5ccb436c4 100644 --- a/extensions/browser/src/browser/extension-relay/relay-bridge.ts +++ b/extensions/browser/src/browser/extension-relay/relay-bridge.ts @@ -898,3 +898,4 @@ export class ExtensionRelayBridge { this.childSessions.clear(); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/browser/src/browser/pw-session.create-page.navigation-guard.test.ts b/extensions/browser/src/browser/pw-session.create-page.navigation-guard.test.ts index dbc57d3a9baf..6f6a41506a76 100644 --- a/extensions/browser/src/browser/pw-session.create-page.navigation-guard.test.ts +++ b/extensions/browser/src/browser/pw-session.create-page.navigation-guard.test.ts @@ -1220,3 +1220,4 @@ describe("pw-session selected-page interaction request guard", () => { ).rejects.toBe(cleanupError); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/browser/src/browser/pw-session.ts b/extensions/browser/src/browser/pw-session.ts index 3ddf3dbba78d..a137ca7a3941 100644 --- a/extensions/browser/src/browser/pw-session.ts +++ b/extensions/browser/src/browser/pw-session.ts @@ -2445,3 +2445,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/browser/src/browser/pw-tools-core.browser-ssrf-guard.test.ts b/extensions/browser/src/browser/pw-tools-core.browser-ssrf-guard.test.ts index af8e4f30a6d4..c415a808df02 100644 --- a/extensions/browser/src/browser/pw-tools-core.browser-ssrf-guard.test.ts +++ b/extensions/browser/src/browser/pw-tools-core.browser-ssrf-guard.test.ts @@ -1316,3 +1316,4 @@ describe("pw-tools-core browser SSRF guards", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/browser/src/browser/pw-tools-core.interactions.navigation-guard.test.ts b/extensions/browser/src/browser/pw-tools-core.interactions.navigation-guard.test.ts index 49097c0636aa..931c6a859465 100644 --- a/extensions/browser/src/browser/pw-tools-core.interactions.navigation-guard.test.ts +++ b/extensions/browser/src/browser/pw-tools-core.interactions.navigation-guard.test.ts @@ -1736,3 +1736,4 @@ describe("pw-tools-core interaction navigation guard", () => { expect(dispose).toHaveBeenCalledOnce(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/browser/src/browser/pw-tools-core.interactions.ts b/extensions/browser/src/browser/pw-tools-core.interactions.ts index 73bd6c73c526..276ad9920612 100644 --- a/extensions/browser/src/browser/pw-tools-core.interactions.ts +++ b/extensions/browser/src/browser/pw-tools-core.interactions.ts @@ -2139,3 +2139,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/browser/src/browser/routes/agent.act.ts b/extensions/browser/src/browser/routes/agent.act.ts index 2dbd061c6349..e25e9eecbe3a 100644 --- a/extensions/browser/src/browser/routes/agent.act.ts +++ b/extensions/browser/src/browser/routes/agent.act.ts @@ -877,3 +877,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/browser/src/browser/routes/agent.snapshot.ts b/extensions/browser/src/browser/routes/agent.snapshot.ts index 839d96b977b9..7b21d349d626 100644 --- a/extensions/browser/src/browser/routes/agent.snapshot.ts +++ b/extensions/browser/src/browser/routes/agent.snapshot.ts @@ -882,3 +882,4 @@ export function registerBrowserAgentSnapshotRoutes( } }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/browser/src/cli/browser-cli-manage.ts b/extensions/browser/src/cli/browser-cli-manage.ts index 57f28b095336..0071eda3e73a 100644 --- a/extensions/browser/src/cli/browser-cli-manage.ts +++ b/extensions/browser/src/cli/browser-cli-manage.ts @@ -893,3 +893,4 @@ export function registerBrowserManageCommands( }); }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/doctor-contract-api.test.ts b/extensions/codex/doctor-contract-api.test.ts index e815c36ebedb..8102d5811450 100644 --- a/extensions/codex/doctor-contract-api.test.ts +++ b/extensions/codex/doctor-contract-api.test.ts @@ -1175,3 +1175,4 @@ describe("codex doctor contract", () => { expect(original.plugins.entries.codex.config.appServer.approvalPolicy).toBe("on-failure"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/approval-bridge.test.ts b/extensions/codex/src/app-server/approval-bridge.test.ts index 819499f565ab..568a5c1fd6d3 100644 --- a/extensions/codex/src/app-server/approval-bridge.test.ts +++ b/extensions/codex/src/app-server/approval-bridge.test.ts @@ -2636,3 +2636,4 @@ describe("Codex app-server approval bridge", () => { expect(payload.description).toBe(`${"d".repeat(252)}...`); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/approval-bridge.ts b/extensions/codex/src/app-server/approval-bridge.ts index 22e73eabc8d8..945db76a2de3 100644 --- a/extensions/codex/src/app-server/approval-bridge.ts +++ b/extensions/codex/src/app-server/approval-bridge.ts @@ -1393,3 +1393,4 @@ function joinDescriptionLinesWithinLimit(lines: string[], maxLength: number): st function formatErrorMessage(error: unknown): string { return error instanceof Error ? error.message : String(error); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/attempt-context.ts b/extensions/codex/src/app-server/attempt-context.ts index 7a1bc0ba16e4..ee95d3ac5d4e 100644 --- a/extensions/codex/src/app-server/attempt-context.ts +++ b/extensions/codex/src/app-server/attempt-context.ts @@ -1062,3 +1062,4 @@ function normalizeCodexDynamicToolName(name: string): string { function isNonEmptyString(value: unknown): value is string { return typeof value === "string" && value.length > 0; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/auth-bridge.test.ts b/extensions/codex/src/app-server/auth-bridge.test.ts index fe67fe52cea1..3276b287ed67 100644 --- a/extensions/codex/src/app-server/auth-bridge.test.ts +++ b/extensions/codex/src/app-server/auth-bridge.test.ts @@ -2634,3 +2634,4 @@ describe("bridgeCodexAppServerStartOptions", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/auth-bridge.ts b/extensions/codex/src/app-server/auth-bridge.ts index 32a5dcc47a51..e599f7c23a6d 100644 --- a/extensions/codex/src/app-server/auth-bridge.ts +++ b/extensions/codex/src/app-server/auth-bridge.ts @@ -1,3 +1,4 @@ +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ // Codex plugin module implements auth bridge behavior. import { createHash } from "node:crypto"; import fsSync from "node:fs"; diff --git a/extensions/codex/src/app-server/client.ts b/extensions/codex/src/app-server/client.ts index 77c8d7ae80af..a6783551b1bb 100644 --- a/extensions/codex/src/app-server/client.ts +++ b/extensions/codex/src/app-server/client.ts @@ -1025,3 +1025,4 @@ function formatExitValue(value: unknown): string { } return "unknown"; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/compact.test.ts b/extensions/codex/src/app-server/compact.test.ts index 02586b4dc3e2..8e1899f9a4e1 100644 --- a/extensions/codex/src/app-server/compact.test.ts +++ b/extensions/codex/src/app-server/compact.test.ts @@ -2025,3 +2025,4 @@ function createFakeCodexClient( completeCompaction, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/compact.ts b/extensions/codex/src/app-server/compact.ts index 58864e5dddc8..096f722726df 100644 --- a/extensions/codex/src/app-server/compact.ts +++ b/extensions/codex/src/app-server/compact.ts @@ -914,3 +914,4 @@ function formatCompactionError(error: unknown): string { } return String(error); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/computer-use.test.ts b/extensions/codex/src/app-server/computer-use.test.ts index b0e9e5cee051..ba645fdee4ed 100644 --- a/extensions/codex/src/app-server/computer-use.test.ts +++ b/extensions/codex/src/app-server/computer-use.test.ts @@ -1403,3 +1403,4 @@ function pluginSummary( interface: null, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/computer-use.ts b/extensions/codex/src/app-server/computer-use.ts index fc12d018f46e..5ca8251b95e3 100644 --- a/extensions/codex/src/app-server/computer-use.ts +++ b/extensions/codex/src/app-server/computer-use.ts @@ -1261,3 +1261,4 @@ function resolveComputerUseConfig( overrides, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/config.test.ts b/extensions/codex/src/app-server/config.test.ts index 0322a93a3121..bb185e7bbc7d 100644 --- a/extensions/codex/src/app-server/config.test.ts +++ b/extensions/codex/src/app-server/config.test.ts @@ -2881,3 +2881,4 @@ allowed_sandbox_modes = ["read-only", "workspace-write"] expect(appServerProperties.approvalsReviewer?.default).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/config.ts b/extensions/codex/src/app-server/config.ts index d26b1129eede..d5087588fcc2 100644 --- a/extensions/codex/src/app-server/config.ts +++ b/extensions/codex/src/app-server/config.ts @@ -2487,3 +2487,4 @@ function splitShellWords(value: string): string[] { } return words; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/dynamic-tool-build.test.ts b/extensions/codex/src/app-server/dynamic-tool-build.test.ts index cf61d32cd09f..8b8778b17be0 100644 --- a/extensions/codex/src/app-server/dynamic-tool-build.test.ts +++ b/extensions/codex/src/app-server/dynamic-tool-build.test.ts @@ -1584,3 +1584,4 @@ describe("Codex app-server dynamic tool build", () => { expect(automaticSchema.properties).not.toHaveProperty("final"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/dynamic-tool-build.ts b/extensions/codex/src/app-server/dynamic-tool-build.ts index 2117912afd21..c2024fc9eb26 100644 --- a/extensions/codex/src/app-server/dynamic-tool-build.ts +++ b/extensions/codex/src/app-server/dynamic-tool-build.ts @@ -934,3 +934,4 @@ function shouldForceMessageTool(params: EmbeddedRunAttemptParams): boolean { params.disableMessageTool !== true && params.sourceReplyDeliveryMode === "message_tool_only" ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/dynamic-tools.test.ts b/extensions/codex/src/app-server/dynamic-tools.test.ts index 3b50038e5f85..1d98af13328b 100644 --- a/extensions/codex/src/app-server/dynamic-tools.test.ts +++ b/extensions/codex/src/app-server/dynamic-tools.test.ts @@ -3766,3 +3766,4 @@ describe("createCodexDynamicToolBridge", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/dynamic-tools.ts b/extensions/codex/src/app-server/dynamic-tools.ts index c7385bdc3dc4..bf91be74f089 100644 --- a/extensions/codex/src/app-server/dynamic-tools.ts +++ b/extensions/codex/src/app-server/dynamic-tools.ts @@ -1514,3 +1514,4 @@ function isCronAddAction(args: Record): boolean { const action = args.action; return typeof action === "string" && action.trim().toLowerCase() === "add"; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/elicitation-bridge.test.ts b/extensions/codex/src/app-server/elicitation-bridge.test.ts index f848f276e1f3..52dbeb7918d0 100644 --- a/extensions/codex/src/app-server/elicitation-bridge.test.ts +++ b/extensions/codex/src/app-server/elicitation-bridge.test.ts @@ -1770,3 +1770,4 @@ describe("Codex app-server elicitation bridge", () => { expect(() => encodeURIComponent(approvalCallParams.description ?? "")).not.toThrow(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/elicitation-bridge.ts b/extensions/codex/src/app-server/elicitation-bridge.ts index 47ce7aeaf739..7dccb910b4df 100644 --- a/extensions/codex/src/app-server/elicitation-bridge.ts +++ b/extensions/codex/src/app-server/elicitation-bridge.ts @@ -991,3 +991,4 @@ function readFirstString(record: JsonObject | undefined, keys: string[]): string } return undefined; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/event-projector.test.ts b/extensions/codex/src/app-server/event-projector.test.ts index 18905a2e890b..4a4375905f4e 100644 --- a/extensions/codex/src/app-server/event-projector.test.ts +++ b/extensions/codex/src/app-server/event-projector.test.ts @@ -6055,3 +6055,4 @@ describe("CodexAppServerEventProjector", () => { expect(started.scope).toBe("thread"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/event-projector.ts b/extensions/codex/src/app-server/event-projector.ts index e158f1a513bf..2fee22d855cd 100644 --- a/extensions/codex/src/app-server/event-projector.ts +++ b/extensions/codex/src/app-server/event-projector.ts @@ -3498,3 +3498,4 @@ function readItem(value: JsonValue | undefined): CodexThreadItem | undefined { } return value as CodexThreadItem; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/native-subagent-monitor.test.ts b/extensions/codex/src/app-server/native-subagent-monitor.test.ts index 477bc63d9836..0279e7fff40a 100644 --- a/extensions/codex/src/app-server/native-subagent-monitor.test.ts +++ b/extensions/codex/src/app-server/native-subagent-monitor.test.ts @@ -1826,3 +1826,4 @@ describe("CodexNativeSubagentMonitor", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/native-subagent-monitor.ts b/extensions/codex/src/app-server/native-subagent-monitor.ts index 2c8d409d5757..1db5d2877f19 100644 --- a/extensions/codex/src/app-server/native-subagent-monitor.ts +++ b/extensions/codex/src/app-server/native-subagent-monitor.ts @@ -1629,3 +1629,4 @@ function unrefTimer(timer: ReturnType): void { (timer as { unref: () => void }).unref(); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/plugin-thread-config.test.ts b/extensions/codex/src/app-server/plugin-thread-config.test.ts index 0ba0dc009cb6..c4e134b506bf 100644 --- a/extensions/codex/src/app-server/plugin-thread-config.test.ts +++ b/extensions/codex/src/app-server/plugin-thread-config.test.ts @@ -1967,3 +1967,4 @@ async function buildReadyGoogleCalendarThreadConfig( }, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/rate-limits.ts b/extensions/codex/src/app-server/rate-limits.ts index 71ec781533c7..9b87e3013112 100644 --- a/extensions/codex/src/app-server/rate-limits.ts +++ b/extensions/codex/src/app-server/rate-limits.ts @@ -774,3 +774,4 @@ function normalizeText(value: string | null | undefined): string | undefined { const text = value?.trim(); return text ? text : undefined; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/run-attempt.context-engine.test.ts b/extensions/codex/src/app-server/run-attempt.context-engine.test.ts index 5ad6564a7b7e..b1fba8225494 100644 --- a/extensions/codex/src/app-server/run-attempt.context-engine.test.ts +++ b/extensions/codex/src/app-server/run-attempt.context-engine.test.ts @@ -2121,3 +2121,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/run-attempt.test.ts b/extensions/codex/src/app-server/run-attempt.test.ts index c48142336a2a..e59f683f72f6 100644 --- a/extensions/codex/src/app-server/run-attempt.test.ts +++ b/extensions/codex/src/app-server/run-attempt.test.ts @@ -6532,3 +6532,4 @@ describe("runCodexAppServerAttempt", () => { expect(fastEvents.map((event) => event.data?.summary)).toEqual(["💨Fast: auto-on"]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/run-attempt.turn-watches.test.ts b/extensions/codex/src/app-server/run-attempt.turn-watches.test.ts index f106f42c70e2..a0a8c5c77010 100644 --- a/extensions/codex/src/app-server/run-attempt.turn-watches.test.ts +++ b/extensions/codex/src/app-server/run-attempt.turn-watches.test.ts @@ -5389,3 +5389,4 @@ describe("runCodexAppServerAttempt turn watches", () => { expect(result.timedOut).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/runtime-artifact.ts b/extensions/codex/src/app-server/runtime-artifact.ts index 31b24c2ba3b0..f8efc084bee5 100644 --- a/extensions/codex/src/app-server/runtime-artifact.ts +++ b/extensions/codex/src/app-server/runtime-artifact.ts @@ -833,3 +833,4 @@ export async function validateCodexAppServerRuntimeArtifact( return false; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/session-binding.test.ts b/extensions/codex/src/app-server/session-binding.test.ts index fdd50a94c1c1..9d9b3d2f928b 100644 --- a/extensions/codex/src/app-server/session-binding.test.ts +++ b/extensions/codex/src/app-server/session-binding.test.ts @@ -1425,3 +1425,4 @@ describe("Codex app-server binding store", () => { ).toThrow("requires an agent id"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/session-binding.ts b/extensions/codex/src/app-server/session-binding.ts index 2cb8b1a95618..c6ae3aed3673 100644 --- a/extensions/codex/src/app-server/session-binding.ts +++ b/extensions/codex/src/app-server/session-binding.ts @@ -1429,3 +1429,4 @@ export function resolveCodexAppServerBindingModelProvider( (isCodexAppServerNativeAuthProfile(params) ? PUBLIC_OPENAI_MODEL_PROVIDER : undefined) ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/shared-client.test.ts b/extensions/codex/src/app-server/shared-client.test.ts index 6b9714c21acd..13fc1f683171 100644 --- a/extensions/codex/src/app-server/shared-client.test.ts +++ b/extensions/codex/src/app-server/shared-client.test.ts @@ -1871,3 +1871,4 @@ function rawDataToText(data: RawData): string { } return Buffer.from(data).toString("utf8"); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/shared-client.ts b/extensions/codex/src/app-server/shared-client.ts index 17aac7eaacdb..a2d58fd82110 100644 --- a/extensions/codex/src/app-server/shared-client.ts +++ b/extensions/codex/src/app-server/shared-client.ts @@ -1237,3 +1237,4 @@ function collectSharedClients(state: SharedCodexAppServerClientState): CodexAppS ), ]; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/side-question.test.ts b/extensions/codex/src/app-server/side-question.test.ts index 6193b06c53a1..352263f3381d 100644 --- a/extensions/codex/src/app-server/side-question.test.ts +++ b/extensions/codex/src/app-server/side-question.test.ts @@ -3083,3 +3083,4 @@ describe("runCodexAppServerSideQuestion", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/side-question.ts b/extensions/codex/src/app-server/side-question.ts index 30bba839bd04..b960df30f6c7 100644 --- a/extensions/codex/src/app-server/side-question.ts +++ b/extensions/codex/src/app-server/side-question.ts @@ -1322,3 +1322,4 @@ function formatCodexErrorMessage(params: JsonObject, rateLimits: JsonValue | und "Codex /btw side thread failed."; return new Error(formatErrorMessage(message)); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/thread-lifecycle.binding.test.ts b/extensions/codex/src/app-server/thread-lifecycle.binding.test.ts index 3c9c0732e7a7..793dbb951b85 100644 --- a/extensions/codex/src/app-server/thread-lifecycle.binding.test.ts +++ b/extensions/codex/src/app-server/thread-lifecycle.binding.test.ts @@ -2883,3 +2883,4 @@ describe("Codex app-server thread lifecycle bindings", () => { expect(binding.modelProvider).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/thread-lifecycle.test.ts b/extensions/codex/src/app-server/thread-lifecycle.test.ts index 105ca824918b..7ec9e04caada 100644 --- a/extensions/codex/src/app-server/thread-lifecycle.test.ts +++ b/extensions/codex/src/app-server/thread-lifecycle.test.ts @@ -2995,3 +2995,4 @@ describe("native Codex Ultra turn mapping", () => { expect(request).not.toHaveProperty("multiAgentMode"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/thread-lifecycle.ts b/extensions/codex/src/app-server/thread-lifecycle.ts index fc54f0b7f40d..c89859b0d01c 100644 --- a/extensions/codex/src/app-server/thread-lifecycle.ts +++ b/extensions/codex/src/app-server/thread-lifecycle.ts @@ -3195,3 +3195,4 @@ export function resolveReasoningEffort( } return null; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/app-server/transcript-mirror.test.ts b/extensions/codex/src/app-server/transcript-mirror.test.ts index ece82199ae66..a2e3a9abcc52 100644 --- a/extensions/codex/src/app-server/transcript-mirror.test.ts +++ b/extensions/codex/src/app-server/transcript-mirror.test.ts @@ -1196,3 +1196,4 @@ describe("mirrorCodexAppServerTranscript", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/command-handlers.ts b/extensions/codex/src/command-handlers.ts index 64db22ee3dea..7b367f25929f 100644 --- a/extensions/codex/src/command-handlers.ts +++ b/extensions/codex/src/command-handlers.ts @@ -2559,3 +2559,4 @@ function normalizeComputerUseStringOverrides( } return normalized; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/commands.test.ts b/extensions/codex/src/commands.test.ts index 8109e8c0fc66..db6903ba7593 100644 --- a/extensions/codex/src/commands.test.ts +++ b/extensions/codex/src/commands.test.ts @@ -5128,3 +5128,4 @@ function computerUseReadyStatus(): CodexComputerUseStatus { message: "Computer Use is ready.", }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/conversation-binding.test.ts b/extensions/codex/src/conversation-binding.test.ts index 128db8d776b2..5ba84ca1fae8 100644 --- a/extensions/codex/src/conversation-binding.test.ts +++ b/extensions/codex/src/conversation-binding.test.ts @@ -2334,3 +2334,4 @@ describe("codex conversation binding", () => { expect(sharedClientMocks.getSharedCodexAppServerClient).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/conversation-binding.ts b/extensions/codex/src/conversation-binding.ts index 0e7ceac32460..5d9d3cc438c0 100644 --- a/extensions/codex/src/conversation-binding.ts +++ b/extensions/codex/src/conversation-binding.ts @@ -1241,3 +1241,4 @@ export const codexConversationBindingRuntime = { handleInboundClaim: handleCodexConversationInboundClaim, handleBindingResolved: handleCodexConversationBindingResolved, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/migration/provider.test.ts b/extensions/codex/src/migration/provider.test.ts index 3f989d8084fb..5198fac9cb44 100644 --- a/extensions/codex/src/migration/provider.test.ts +++ b/extensions/codex/src/migration/provider.test.ts @@ -2583,3 +2583,4 @@ function pluginSummary(id: string, overrides: Partial = {}): v ...overrides, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/migration/session-binding-sidecars.ts b/extensions/codex/src/migration/session-binding-sidecars.ts index 79068e0af227..09123fff3af4 100644 --- a/extensions/codex/src/migration/session-binding-sidecars.ts +++ b/extensions/codex/src/migration/session-binding-sidecars.ts @@ -891,3 +891,4 @@ export const stateMigrations: PluginDoctorStateMigration[] = [ }, }, ]; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/session-catalog.test.ts b/extensions/codex/src/session-catalog.test.ts index b80c9e2b300b..7934e821604a 100644 --- a/extensions/codex/src/session-catalog.test.ts +++ b/extensions/codex/src/session-catalog.test.ts @@ -3429,3 +3429,4 @@ describe("Codex supervision actions", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/session-catalog.ts b/extensions/codex/src/session-catalog.ts index a19ffa91f050..ccefed0d4758 100644 --- a/extensions/codex/src/session-catalog.ts +++ b/extensions/codex/src/session-catalog.ts @@ -1336,3 +1336,4 @@ export const codexSessionCatalogRuntime = { continueNode: continueNodeCodexSession, archiveLocal: archiveLocalCodexSession, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/codex/src/supervision-tools.ts b/extensions/codex/src/supervision-tools.ts index 697c9e1eccef..af47084fdecc 100644 --- a/extensions/codex/src/supervision-tools.ts +++ b/extensions/codex/src/supervision-tools.ts @@ -1222,3 +1222,4 @@ export function createCodexSupervisionTools(options: CodexSupervisionToolsOption }, ]; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/comfy/image-generation-provider.test.ts b/extensions/comfy/image-generation-provider.test.ts index 407e9adf8c69..763c89108bd1 100644 --- a/extensions/comfy/image-generation-provider.test.ts +++ b/extensions/comfy/image-generation-provider.test.ts @@ -1087,3 +1087,4 @@ describe("comfy image-generation provider", () => { expect(extraData?.api_key_comfy_org).toBe("profile-key"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/comfy/workflow-runtime.ts b/extensions/comfy/workflow-runtime.ts index e89248f9a32f..d63f1610dbdd 100644 --- a/extensions/comfy/workflow-runtime.ts +++ b/extensions/comfy/workflow-runtime.ts @@ -877,3 +877,4 @@ export async function runComfyWorkflow(params: { outputNodeIds: uniqueStrings(outputFiles.map((entry) => entry.nodeId)), }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/copilot/harness.test.ts b/extensions/copilot/harness.test.ts index 1277b3362ea8..56b0e78df29e 100644 --- a/extensions/copilot/harness.test.ts +++ b/extensions/copilot/harness.test.ts @@ -2667,3 +2667,4 @@ describe("createCopilotAgentHarness", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/copilot/harness.ts b/extensions/copilot/harness.ts index 0b9fddb1c271..d71c996e1cc3 100644 --- a/extensions/copilot/harness.ts +++ b/extensions/copilot/harness.ts @@ -1132,3 +1132,4 @@ export function createCopilotAgentHarness( }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/copilot/src/attempt.test.ts b/extensions/copilot/src/attempt.test.ts index bab800282bc3..2a418ca448b1 100644 --- a/extensions/copilot/src/attempt.test.ts +++ b/extensions/copilot/src/attempt.test.ts @@ -3628,3 +3628,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/copilot/src/attempt.ts b/extensions/copilot/src/attempt.ts index 7db862dc8901..90055a8a3aa4 100644 --- a/extensions/copilot/src/attempt.ts +++ b/extensions/copilot/src/attempt.ts @@ -1783,3 +1783,4 @@ function isSdkSendAndWaitTimeoutError(error: unknown): boolean { } return /^Timeout after \d+ms waiting for session\.idle$/.test(message); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/copilot/src/event-bridge.test.ts b/extensions/copilot/src/event-bridge.test.ts index f7faa8fddde9..639afdd9a656 100644 --- a/extensions/copilot/src/event-bridge.test.ts +++ b/extensions/copilot/src/event-bridge.test.ts @@ -1152,3 +1152,4 @@ describe("attachEventBridge", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/copilot/src/tool-bridge.test.ts b/extensions/copilot/src/tool-bridge.test.ts index e44039ed53d7..a4fb0b5d255a 100644 --- a/extensions/copilot/src/tool-bridge.test.ts +++ b/extensions/copilot/src/tool-bridge.test.ts @@ -1763,3 +1763,4 @@ describe("convertOpenClawToolToSdkTool", () => { expect(getError(result as ToolResultObject)).toBe("aborted during execute"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/crabbox/src/crabbox-worker-provider.test.ts b/extensions/crabbox/src/crabbox-worker-provider.test.ts index ce1c8f826bbd..a4cd535b7b9a 100644 --- a/extensions/crabbox/src/crabbox-worker-provider.test.ts +++ b/extensions/crabbox/src/crabbox-worker-provider.test.ts @@ -1175,6 +1175,7 @@ describe("Crabbox worker provider", () => { ]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ describe("Crabbox binary resolution", () => { it("prefers explicit, then sibling, then PATH, then the bare command", () => { diff --git a/extensions/device-pair/index.test.ts b/extensions/device-pair/index.test.ts index 0a74c35adade..73d1c67351e9 100644 --- a/extensions/device-pair/index.test.ts +++ b/extensions/device-pair/index.test.ts @@ -1459,3 +1459,4 @@ describe("device-pair /pair approve", () => { expect(result).toEqual({ text: "✅ Paired Victim Phone (ios)." }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/device-pair/index.ts b/extensions/device-pair/index.ts index a6f2258f9959..18630d9779b1 100644 --- a/extensions/device-pair/index.ts +++ b/extensions/device-pair/index.ts @@ -1011,3 +1011,4 @@ export default definePluginEntry({ }); }, }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/diagnostics-otel/src/service.test.ts b/extensions/diagnostics-otel/src/service.test.ts index 050f48d40441..61172be210df 100644 --- a/extensions/diagnostics-otel/src/service.test.ts +++ b/extensions/diagnostics-otel/src/service.test.ts @@ -5494,3 +5494,4 @@ describe("diagnostics-otel service", () => { await service.stop?.(ctx); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/diagnostics-prometheus/src/service.ts b/extensions/diagnostics-prometheus/src/service.ts index a5a0427e6cd5..5d27b4cf7331 100644 --- a/extensions/diagnostics-prometheus/src/service.ts +++ b/extensions/diagnostics-prometheus/src/service.ts @@ -1065,3 +1065,4 @@ export const testApi = { recordDiagnosticEvent, renderPrometheusMetrics, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/actions/runtime.guild.ts b/extensions/discord/src/actions/runtime.guild.ts index b871e510c047..252b17e5866f 100644 --- a/extensions/discord/src/actions/runtime.guild.ts +++ b/extensions/discord/src/actions/runtime.guild.ts @@ -735,3 +735,4 @@ export async function handleDiscordGuildAction( throw new Error(`Unknown action: ${action}`); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/actions/runtime.test.ts b/extensions/discord/src/actions/runtime.test.ts index 0da67eac1f8a..5e45675094a1 100644 --- a/extensions/discord/src/actions/runtime.test.ts +++ b/extensions/discord/src/actions/runtime.test.ts @@ -3470,3 +3470,4 @@ describe("handleDiscordAction per-account gating", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/channel.ts b/extensions/discord/src/channel.ts index 3bc15f610f35..53d613e98b84 100644 --- a/extensions/discord/src/channel.ts +++ b/extensions/discord/src/channel.ts @@ -789,3 +789,4 @@ export const discordPlugin: ChannelPlugin }), }, }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/monitor.test.ts b/extensions/discord/src/monitor.test.ts index 31e4783b92cf..1d04a82b5cba 100644 --- a/extensions/discord/src/monitor.test.ts +++ b/extensions/discord/src/monitor.test.ts @@ -1421,3 +1421,4 @@ describe("discord reaction notification modes", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/monitor/message-handler.preflight.test.ts b/extensions/discord/src/monitor/message-handler.preflight.test.ts index 446abaeddd45..085231f54d2f 100644 --- a/extensions/discord/src/monitor/message-handler.preflight.test.ts +++ b/extensions/discord/src/monitor/message-handler.preflight.test.ts @@ -2415,3 +2415,4 @@ describe("shouldIgnoreBoundThreadWebhookMessage", () => { ).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/monitor/message-handler.preflight.ts b/extensions/discord/src/monitor/message-handler.preflight.ts index 41a4916c6d80..c01e68b25763 100644 --- a/extensions/discord/src/monitor/message-handler.preflight.ts +++ b/extensions/discord/src/monitor/message-handler.preflight.ts @@ -862,3 +862,4 @@ export async function preflightDiscordMessage( historyEntry, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/monitor/message-handler.process.test.ts b/extensions/discord/src/monitor/message-handler.process.test.ts index 189d1c0178cf..52725080f32f 100644 --- a/extensions/discord/src/monitor/message-handler.process.test.ts +++ b/extensions/discord/src/monitor/message-handler.process.test.ts @@ -4564,3 +4564,4 @@ describe("processDiscordMessage reply session init conflict retry", () => { expect(dispatchInboundMessage).toHaveBeenCalledTimes(1); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/monitor/message-handler.process.ts b/extensions/discord/src/monitor/message-handler.process.ts index 07d491c3011b..4b57600a17ef 100644 --- a/extensions/discord/src/monitor/message-handler.process.ts +++ b/extensions/discord/src/monitor/message-handler.process.ts @@ -1357,3 +1357,4 @@ async function processDiscordMessageInner( ); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/monitor/message-utils.test.ts b/extensions/discord/src/monitor/message-utils.test.ts index bf304c93f44a..fb2724c5e31f 100644 --- a/extensions/discord/src/monitor/message-utils.test.ts +++ b/extensions/discord/src/monitor/message-utils.test.ts @@ -1287,3 +1287,4 @@ describe("resolveDiscordChannelInfo", () => { expect(fetchChannel).toHaveBeenCalledTimes(2); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/monitor/model-picker.test.ts b/extensions/discord/src/monitor/model-picker.test.ts index ce1a307f3dd3..62091d21a75d 100644 --- a/extensions/discord/src/monitor/model-picker.test.ts +++ b/extensions/discord/src/monitor/model-picker.test.ts @@ -1484,3 +1484,4 @@ describe("Discord model picker recents view", () => { expect(recentBtn.label).toContain("anthropic/claude-sonnet-4-5"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/monitor/model-picker.view.ts b/extensions/discord/src/monitor/model-picker.view.ts index c825aac30902..7aba67d34701 100644 --- a/extensions/discord/src/monitor/model-picker.view.ts +++ b/extensions/discord/src/monitor/model-picker.view.ts @@ -1012,3 +1012,4 @@ export function toDiscordModelPickerMessagePayload( components: view.components, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/monitor/native-command-model-picker-interaction.ts b/extensions/discord/src/monitor/native-command-model-picker-interaction.ts index 432d3089ae9b..0bf9feb1b9eb 100644 --- a/extensions/discord/src/monitor/native-command-model-picker-interaction.ts +++ b/extensions/discord/src/monitor/native-command-model-picker-interaction.ts @@ -780,3 +780,4 @@ export function createDiscordModelPickerFallbackSelect( ): StringSelectMenu { return new DiscordModelPickerFallbackSelect(params); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/monitor/native-command.model-picker.test.ts b/extensions/discord/src/monitor/native-command.model-picker.test.ts index 5f64dc59b8af..3f7a6f1c08eb 100644 --- a/extensions/discord/src/monitor/native-command.model-picker.test.ts +++ b/extensions/discord/src/monitor/native-command.model-picker.test.ts @@ -1234,3 +1234,4 @@ describe("Discord model picker interactions", () => { expect(payload).toContain(";pb="); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/monitor/native-command.plugin-dispatch.test.ts b/extensions/discord/src/monitor/native-command.plugin-dispatch.test.ts index 1a2de24ffec3..910d83cc8585 100644 --- a/extensions/discord/src/monitor/native-command.plugin-dispatch.test.ts +++ b/extensions/discord/src/monitor/native-command.plugin-dispatch.test.ts @@ -1399,3 +1399,4 @@ describe("Discord native plugin command dispatch", () => { expect(blockedReply).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/monitor/native-command.ts b/extensions/discord/src/monitor/native-command.ts index 368a3c3b5d7b..96d7770f4cb8 100644 --- a/extensions/discord/src/monitor/native-command.ts +++ b/extensions/discord/src/monitor/native-command.ts @@ -734,3 +734,4 @@ export function createDiscordModelPickerFallbackSelect( dispatchCommandInteraction: dispatchDiscordCommandInteraction, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/monitor/provider.test.ts b/extensions/discord/src/monitor/provider.test.ts index cdf077ece68e..baf838e6f33c 100644 --- a/extensions/discord/src/monitor/provider.test.ts +++ b/extensions/discord/src/monitor/provider.test.ts @@ -1266,3 +1266,4 @@ describe("monitorDiscordProvider", () => { expect(messages.join("\n")).not.toContain("discord startup ["); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/monitor/thread-bindings.lifecycle.test.ts b/extensions/discord/src/monitor/thread-bindings.lifecycle.test.ts index 87685dd65dd4..5783a8ba2ddf 100644 --- a/extensions/discord/src/monitor/thread-bindings.lifecycle.test.ts +++ b/extensions/discord/src/monitor/thread-bindings.lifecycle.test.ts @@ -1910,3 +1910,4 @@ describe("thread binding lifecycle", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/outbound-adapter.test.ts b/extensions/discord/src/outbound-adapter.test.ts index f2cca625f29e..39d620137f96 100644 --- a/extensions/discord/src/outbound-adapter.test.ts +++ b/extensions/discord/src/outbound-adapter.test.ts @@ -1191,3 +1191,4 @@ describe("discordOutbound", () => { ).toBe("default"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/send.sends-basic-channel-messages.test.ts b/extensions/discord/src/send.sends-basic-channel-messages.test.ts index f5a489f85742..dc971cb0f81a 100644 --- a/extensions/discord/src/send.sends-basic-channel-messages.test.ts +++ b/extensions/discord/src/send.sends-basic-channel-messages.test.ts @@ -1286,3 +1286,4 @@ describe("searchMessagesDiscord", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/voice/manager.e2e.test.ts b/extensions/discord/src/voice/manager.e2e.test.ts index 72d6df64a90b..3fa6a06080a9 100644 --- a/extensions/discord/src/voice/manager.e2e.test.ts +++ b/extensions/discord/src/voice/manager.e2e.test.ts @@ -6825,3 +6825,4 @@ describe("DiscordVoiceManager", () => { expect(autoJoinSpy).toHaveBeenCalledTimes(1); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/voice/manager.ts b/extensions/discord/src/voice/manager.ts index a03f828bf8c5..4cd25ba5eb49 100644 --- a/extensions/discord/src/voice/manager.ts +++ b/extensions/discord/src/voice/manager.ts @@ -1904,3 +1904,4 @@ export { DiscordVoiceResumedListener, DiscordVoiceStateUpdateListener, } from "./listeners.js"; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/discord/src/voice/realtime.ts b/extensions/discord/src/voice/realtime.ts index 91922e904b46..c3932bb8b60a 100644 --- a/extensions/discord/src/voice/realtime.ts +++ b/extensions/discord/src/voice/realtime.ts @@ -1813,3 +1813,4 @@ function buildDiscordRealtimeInstructions(params: { .filter(Boolean) .join("\n\n"); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/fal/image-generation-provider.test.ts b/extensions/fal/image-generation-provider.test.ts index 363a663c4999..4350aa457564 100644 --- a/extensions/fal/image-generation-provider.test.ts +++ b/extensions/fal/image-generation-provider.test.ts @@ -1618,3 +1618,4 @@ describe("fal image-generation provider", () => { expectFalDownload({ call: 2, url: "http://media.relay.internal/files/generated.png" }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/fal/image-generation-provider.ts b/extensions/fal/image-generation-provider.ts index 71a4f76ab179..37f27ccbff17 100644 --- a/extensions/fal/image-generation-provider.ts +++ b/extensions/fal/image-generation-provider.ts @@ -837,3 +837,4 @@ export function buildFalImageGenerationProvider(): ImageGenerationProvider { }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/feishu/src/bot.test.ts b/extensions/feishu/src/bot.test.ts index d90ec2cad451..be2368b01c7b 100644 --- a/extensions/feishu/src/bot.test.ts +++ b/extensions/feishu/src/bot.test.ts @@ -4591,3 +4591,4 @@ describe("createFeishuMessageReceiveHandler media dedupe", () => { expect(secondCall.processingClaimHeld).toBe(true); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/feishu/src/bot.ts b/extensions/feishu/src/bot.ts index aa82dd598386..3d8300d3c13c 100644 --- a/extensions/feishu/src/bot.ts +++ b/extensions/feishu/src/bot.ts @@ -1700,3 +1700,4 @@ export async function handleFeishuMessage(params: { error(`feishu[${account.accountId}]: failed to dispatch message: ${String(err)}`); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/feishu/src/channel.test.ts b/extensions/feishu/src/channel.test.ts index 535ea310cbb0..34ca2c8ad7d1 100644 --- a/extensions/feishu/src/channel.test.ts +++ b/extensions/feishu/src/channel.test.ts @@ -2359,3 +2359,4 @@ describe("looksLikeFeishuId", () => { expect(looksLikeFeishuId("channel:oc_456")).toBe(true); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/feishu/src/channel.ts b/extensions/feishu/src/channel.ts index 857f604fc777..617e939cfd68 100644 --- a/extensions/feishu/src/channel.ts +++ b/extensions/feishu/src/channel.ts @@ -1884,3 +1884,4 @@ export const feishuPlugin: ChannelPlugin await runFeishuDoctorSequence({ cfg, env, shouldRepair }), }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/feishu/src/docx.ts b/extensions/feishu/src/docx.ts index 8302566752e8..d5f241283b2f 100644 --- a/extensions/feishu/src/docx.ts +++ b/extensions/feishu/src/docx.ts @@ -1607,3 +1607,4 @@ export function registerFeishuDocTools(api: OpenClawPluginApi) { registered.push("feishu_app_scopes"); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/feishu/src/drive.test.ts b/extensions/feishu/src/drive.test.ts index 1fcd80115d8c..ce9169c4b97a 100644 --- a/extensions/feishu/src/drive.test.ts +++ b/extensions/feishu/src/drive.test.ts @@ -1494,3 +1494,4 @@ describe("registerFeishuDriveTools", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/feishu/src/drive.ts b/extensions/feishu/src/drive.ts index 29785e230ff3..cd20631617fd 100644 --- a/extensions/feishu/src/drive.ts +++ b/extensions/feishu/src/drive.ts @@ -898,3 +898,4 @@ export function registerFeishuDriveTools(api: OpenClawPluginApi) { { name: "feishu_drive" }, ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/feishu/src/media.ts b/extensions/feishu/src/media.ts index bf41653cf537..3738167fedd9 100644 --- a/extensions/feishu/src/media.ts +++ b/extensions/feishu/src/media.ts @@ -981,3 +981,4 @@ export async function sendMediaFeishu(params: { ...(voiceIntentDegradedToFile ? { voiceIntentDegradedToFile: true } : {}), }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/feishu/src/monitor.comment.ts b/extensions/feishu/src/monitor.comment.ts index 657a06d92c92..c48e4e8fd799 100644 --- a/extensions/feishu/src/monitor.comment.ts +++ b/extensions/feishu/src/monitor.comment.ts @@ -1387,3 +1387,4 @@ export async function resolveDriveCommentEventTurn( preview, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/feishu/src/outbound.test.ts b/extensions/feishu/src/outbound.test.ts index 6bbb331802b0..2b1004084184 100644 --- a/extensions/feishu/src/outbound.test.ts +++ b/extensions/feishu/src/outbound.test.ts @@ -2366,3 +2366,4 @@ describe("feishuOutbound.sendMedia renderMode", () => { expect(sendMessageCall()?.accountId).toBe("main"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/feishu/src/outbound.ts b/extensions/feishu/src/outbound.ts index e84cb14d184b..54cec45e8112 100644 --- a/extensions/feishu/src/outbound.ts +++ b/extensions/feishu/src/outbound.ts @@ -824,3 +824,4 @@ export const feishuOutbound: ChannelOutboundAdapter = { }, }), }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/feishu/src/reply-dispatcher.test.ts b/extensions/feishu/src/reply-dispatcher.test.ts index d87804b3224d..cca84e190bd5 100644 --- a/extensions/feishu/src/reply-dispatcher.test.ts +++ b/extensions/feishu/src/reply-dispatcher.test.ts @@ -2245,3 +2245,4 @@ describe("createFeishuReplyDispatcher streaming behavior", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/feishu/src/reply-dispatcher.ts b/extensions/feishu/src/reply-dispatcher.ts index 4362d9a251f0..f720448df2f3 100644 --- a/extensions/feishu/src/reply-dispatcher.ts +++ b/extensions/feishu/src/reply-dispatcher.ts @@ -947,3 +947,4 @@ export function createFeishuReplyDispatcher(params: CreateFeishuReplyDispatcherP }), }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/feishu/src/send.ts b/extensions/feishu/src/send.ts index 80fd0a12156d..88b7650b6090 100644 --- a/extensions/feishu/src/send.ts +++ b/extensions/feishu/src/send.ts @@ -846,3 +846,4 @@ export async function sendMarkdownCardFeishu(params: { accountId, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/feishu/src/streaming-card.test.ts b/extensions/feishu/src/streaming-card.test.ts index 2f025475cd26..f7f2f5b1685f 100644 --- a/extensions/feishu/src/streaming-card.test.ts +++ b/extensions/feishu/src/streaming-card.test.ts @@ -1188,3 +1188,4 @@ describe("resolveStreamingCardSendMode", () => { expect(resolveStreamingCardSendMode()).toBe("create"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/file-transfer/src/shared/node-invoke-policy.ts b/extensions/file-transfer/src/shared/node-invoke-policy.ts index dd429856b967..58855066d325 100644 --- a/extensions/file-transfer/src/shared/node-invoke-policy.ts +++ b/extensions/file-transfer/src/shared/node-invoke-policy.ts @@ -968,3 +968,4 @@ export const testing = { listDirFetchArchiveEntries, readAuditSizeBytes, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/firecrawl/src/firecrawl-tools.test.ts b/extensions/firecrawl/src/firecrawl-tools.test.ts index 1cca96f89010..7f04c234b3e2 100644 --- a/extensions/firecrawl/src/firecrawl-tools.test.ts +++ b/extensions/firecrawl/src/firecrawl-tools.test.ts @@ -1350,3 +1350,4 @@ describe("firecrawl tools", () => { ).toThrow("Firecrawl scrape returned no content."); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/github-copilot/index.test.ts b/extensions/github-copilot/index.test.ts index a48ee110c7e0..2f80c63536dc 100644 --- a/extensions/github-copilot/index.test.ts +++ b/extensions/github-copilot/index.test.ts @@ -1467,3 +1467,4 @@ describe("github-copilot plugin", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/google-meet/index.test.ts b/extensions/google-meet/index.test.ts index b9b42c67b4a2..ad04654e2e00 100644 --- a/extensions/google-meet/index.test.ts +++ b/extensions/google-meet/index.test.ts @@ -7697,3 +7697,4 @@ describe("google-meet plugin", () => { ).rejects.toThrow("url required"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/google-meet/index.ts b/extensions/google-meet/index.ts index 14c989282cbd..c4d1e06b5875 100644 --- a/extensions/google-meet/index.ts +++ b/extensions/google-meet/index.ts @@ -1318,3 +1318,4 @@ export default definePluginEntry({ ); }, }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/google-meet/src/cli.test.ts b/extensions/google-meet/src/cli.test.ts index 369ce0e48b72..85b4854b3fc1 100644 --- a/extensions/google-meet/src/cli.test.ts +++ b/extensions/google-meet/src/cli.test.ts @@ -1387,3 +1387,4 @@ describe("google-meet CLI", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/google-meet/src/cli.ts b/extensions/google-meet/src/cli.ts index ab875bcedbb5..3a30133517cb 100644 --- a/extensions/google-meet/src/cli.ts +++ b/extensions/google-meet/src/cli.ts @@ -2357,3 +2357,4 @@ export function registerGoogleMeetCli(params: { writeStdoutLine("speaking on %s", sessionId); }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/google-meet/src/meet.ts b/extensions/google-meet/src/meet.ts index e0d192538cf6..8bfb5704fe58 100644 --- a/extensions/google-meet/src/meet.ts +++ b/extensions/google-meet/src/meet.ts @@ -1025,3 +1025,4 @@ export function buildGoogleMeetPreflightReport(params: { blockers, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/google-meet/src/realtime-node.ts b/extensions/google-meet/src/realtime-node.ts index e8af2161dd2c..8ddd21607af9 100644 --- a/extensions/google-meet/src/realtime-node.ts +++ b/extensions/google-meet/src/realtime-node.ts @@ -769,3 +769,4 @@ export async function startNodeRealtimeAudioBridge(params: { stop, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/google-meet/src/realtime.ts b/extensions/google-meet/src/realtime.ts index 568ad1cd1626..6505aac7d385 100644 --- a/extensions/google-meet/src/realtime.ts +++ b/extensions/google-meet/src/realtime.ts @@ -1353,3 +1353,4 @@ export async function startCommandRealtimeAudioBridge(params: { stop, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/google-meet/src/runtime.ts b/extensions/google-meet/src/runtime.ts index 42eb47ef09b0..35ad8ee54956 100644 --- a/extensions/google-meet/src/runtime.ts +++ b/extensions/google-meet/src/runtime.ts @@ -1552,3 +1552,4 @@ export class GoogleMeetRuntime { } } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/google-meet/src/transports/chrome.ts b/extensions/google-meet/src/transports/chrome.ts index 0bf83dd0cd85..90cb1abcf0e3 100644 --- a/extensions/google-meet/src/transports/chrome.ts +++ b/extensions/google-meet/src/transports/chrome.ts @@ -1727,3 +1727,4 @@ export async function launchChromeMeetOnNode(params: { tab: browserControl.tab, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/google/oauth.test.ts b/extensions/google/oauth.test.ts index 501dcce93608..ffee7d4251f2 100644 --- a/extensions/google/oauth.test.ts +++ b/extensions/google/oauth.test.ts @@ -1286,3 +1286,4 @@ describe("loginGeminiCliOAuth", () => { expect(result.email).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/google/realtime-voice-provider.test.ts b/extensions/google/realtime-voice-provider.test.ts index 0f03bbb33cf9..060730cea352 100644 --- a/extensions/google/realtime-voice-provider.test.ts +++ b/extensions/google/realtime-voice-provider.test.ts @@ -1483,3 +1483,4 @@ describe("buildGoogleRealtimeVoiceProvider", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/google/realtime-voice-provider.ts b/extensions/google/realtime-voice-provider.ts index 4732706ed3f4..653a9d776c5d 100644 --- a/extensions/google/realtime-voice-provider.ts +++ b/extensions/google/realtime-voice-provider.ts @@ -1056,3 +1056,4 @@ export function buildGoogleRealtimeVoiceProvider(): RealtimeVoiceProviderPlugin createBrowserSession: createGoogleRealtimeBrowserSession, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/google/transport-stream.test.ts b/extensions/google/transport-stream.test.ts index 816f7574f56a..bea654c5dd3f 100644 --- a/extensions/google/transport-stream.test.ts +++ b/extensions/google/transport-stream.test.ts @@ -2896,3 +2896,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/google/transport-stream.ts b/extensions/google/transport-stream.ts index 7f7c49b71679..502219bbc76b 100644 --- a/extensions/google/transport-stream.ts +++ b/extensions/google/transport-stream.ts @@ -1497,3 +1497,4 @@ export function createGoogleGenerativeAiTransportStreamFn(): StreamFn { export function createGoogleVertexTransportStreamFn(): StreamFn { return createGoogleTransportStreamFn("google-vertex"); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/imessage/src/actions.test.ts b/extensions/imessage/src/actions.test.ts index 23317eac4417..c3e4ff3e0b86 100644 --- a/extensions/imessage/src/actions.test.ts +++ b/extensions/imessage/src/actions.test.ts @@ -1402,3 +1402,4 @@ describe("imessage message actions", () => { }, ); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/imessage/src/actions.ts b/extensions/imessage/src/actions.ts index af33a59a413d..b0fbf946f1dc 100644 --- a/extensions/imessage/src/actions.ts +++ b/extensions/imessage/src/actions.ts @@ -908,3 +908,4 @@ export const imessageMessageActions: ChannelMessageActionAdapter = { throw new Error(`Action ${action} is not supported for provider ${providerId}.`); }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/imessage/src/approval-reactions.test.ts b/extensions/imessage/src/approval-reactions.test.ts index ee39bfde8004..181e65805cdb 100644 --- a/extensions/imessage/src/approval-reactions.test.ts +++ b/extensions/imessage/src/approval-reactions.test.ts @@ -1196,3 +1196,4 @@ describe("iMessage approval reactions", () => { expect(resolverMocks.resolveIMessageApproval).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/imessage/src/approval-reactions.ts b/extensions/imessage/src/approval-reactions.ts index 6896eba2bba5..f82af64e023c 100644 --- a/extensions/imessage/src/approval-reactions.ts +++ b/extensions/imessage/src/approval-reactions.ts @@ -989,3 +989,4 @@ export function clearIMessageApprovalReactionTargetsForTest(): void { pendingReactionPollTargets.clear(); resolverRuntimeLoader.clear(); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/imessage/src/monitor.last-route.test.ts b/extensions/imessage/src/monitor.last-route.test.ts index 02ec5f0641ca..dd26d13e17b2 100644 --- a/extensions/imessage/src/monitor.last-route.test.ts +++ b/extensions/imessage/src/monitor.last-route.test.ts @@ -2349,3 +2349,4 @@ describe("iMessage monitor last-route updates", () => { expect(debouncerOptions?.debounceMsOverride).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/imessage/src/monitor/inbound-processing.ts b/extensions/imessage/src/monitor/inbound-processing.ts index 233ee5add439..6f1b3ad733ae 100644 --- a/extensions/imessage/src/monitor/inbound-processing.ts +++ b/extensions/imessage/src/monitor/inbound-processing.ts @@ -1112,3 +1112,4 @@ function describeIMessageEchoDropLog(params: { messageText: string; messageId?: const messageIdPart = params.messageId ? ` id=${params.messageId}` : ""; return `imessage: skipping echo message${messageIdPart}: "${preview}"`; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/imessage/src/monitor/monitor-provider.ts b/extensions/imessage/src/monitor/monitor-provider.ts index 3969741143c1..1708800c1760 100644 --- a/extensions/imessage/src/monitor/monitor-provider.ts +++ b/extensions/imessage/src/monitor/monitor-provider.ts @@ -1876,3 +1876,4 @@ export async function monitorIMessageProvider(opts: MonitorIMessageOpts = {}): P await activeClient.stop(); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/imessage/src/send.test.ts b/extensions/imessage/src/send.test.ts index 65add522248e..6a9c008deeeb 100644 --- a/extensions/imessage/src/send.test.ts +++ b/extensions/imessage/src/send.test.ts @@ -1291,3 +1291,4 @@ describe("sendMessageIMessage CLI wrapper errors", () => { ).rejects.toBe(wrapperError); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/imessage/src/send.ts b/extensions/imessage/src/send.ts index 162b0eede5ac..b1f495e42bbb 100644 --- a/extensions/imessage/src/send.ts +++ b/extensions/imessage/src/send.ts @@ -1089,3 +1089,4 @@ export async function sendMessageIMessage( await stopOwnedClient(); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/line/src/bot-handlers.test.ts b/extensions/line/src/bot-handlers.test.ts index c68b5dd769af..506d56f0017d 100644 --- a/extensions/line/src/bot-handlers.test.ts +++ b/extensions/line/src/bot-handlers.test.ts @@ -1163,3 +1163,4 @@ describe("handleLineWebhookEvents", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/lmstudio/src/setup.test.ts b/extensions/lmstudio/src/setup.test.ts index 1bb93d4d912c..8359fc517007 100644 --- a/extensions/lmstudio/src/setup.test.ts +++ b/extensions/lmstudio/src/setup.test.ts @@ -1627,3 +1627,4 @@ describe("lmstudio setup", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/lmstudio/src/setup.ts b/extensions/lmstudio/src/setup.ts index 96e29c02c7a8..3a4ebaf6492e 100644 --- a/extensions/lmstudio/src/setup.ts +++ b/extensions/lmstudio/src/setup.ts @@ -879,3 +879,4 @@ export async function prepareLmstudioDynamicModels( }), ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/matrix/src/cli.test.ts b/extensions/matrix/src/cli.test.ts index 2a00a9796fa9..3e55f2d3e730 100644 --- a/extensions/matrix/src/cli.test.ts +++ b/extensions/matrix/src/cli.test.ts @@ -1985,3 +1985,4 @@ describe("matrix CLI verification commands", () => { expect(console.log).toHaveBeenCalledWith("Backup trusted by this device: yes"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/matrix/src/cli.ts b/extensions/matrix/src/cli.ts index 48792fb93ce4..037b4ed282af 100644 --- a/extensions/matrix/src/cli.ts +++ b/extensions/matrix/src/cli.ts @@ -2312,3 +2312,4 @@ export function registerMatrixCli(params: { program: Command }): void { }); }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/matrix/src/matrix/actions/verification.test.ts b/extensions/matrix/src/matrix/actions/verification.test.ts index 3ef07f2c15d7..423c805984d1 100644 --- a/extensions/matrix/src/matrix/actions/verification.test.ts +++ b/extensions/matrix/src/matrix/actions/verification.test.ts @@ -1094,3 +1094,4 @@ describe("matrix verification actions", () => { expect(summary.error).toMatch(/verifier rejected mid-protocol/); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/matrix/src/matrix/client/config.ts b/extensions/matrix/src/matrix/client/config.ts index 9b1499291b0c..0b0d6baf54d0 100644 --- a/extensions/matrix/src/matrix/client/config.ts +++ b/extensions/matrix/src/matrix/client/config.ts @@ -842,3 +842,4 @@ export async function backfillMatrixAuthDeviceIdAfterStartup(params: { ); return saved === "saved" ? deviceId : undefined; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/matrix/src/matrix/monitor/events.test.ts b/extensions/matrix/src/matrix/monitor/events.test.ts index 6eafc48bcc69..38a8c664e1c3 100644 --- a/extensions/matrix/src/matrix/monitor/events.test.ts +++ b/extensions/matrix/src/matrix/monitor/events.test.ts @@ -1843,3 +1843,4 @@ describe("registerMatrixMonitorEvents verification routing", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/matrix/src/matrix/monitor/handler.test.ts b/extensions/matrix/src/matrix/monitor/handler.test.ts index 7ff8fb72ae6f..130795494a1d 100644 --- a/extensions/matrix/src/matrix/monitor/handler.test.ts +++ b/extensions/matrix/src/matrix/monitor/handler.test.ts @@ -4509,3 +4509,4 @@ describe("matrix monitor handler block streaming config", () => { expect(capturedDisableBlockStreaming).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/matrix/src/matrix/monitor/handler.ts b/extensions/matrix/src/matrix/monitor/handler.ts index cea175814a58..d8128ef2ddbd 100644 --- a/extensions/matrix/src/matrix/monitor/handler.ts +++ b/extensions/matrix/src/matrix/monitor/handler.ts @@ -2583,3 +2583,4 @@ export function createMatrixRoomMessageHandler(params: MatrixMonitorHandlerParam } }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/matrix/src/matrix/sdk.test.ts b/extensions/matrix/src/matrix/sdk.test.ts index f18ef94fdf1c..55da3aa201de 100644 --- a/extensions/matrix/src/matrix/sdk.test.ts +++ b/extensions/matrix/src/matrix/sdk.test.ts @@ -3970,3 +3970,4 @@ describe("MatrixClient crypto bootstrapping", () => { ).toBe(0); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/matrix/src/matrix/sdk.ts b/extensions/matrix/src/matrix/sdk.ts index a56c6c6dffa5..5daa5f6b86be 100644 --- a/extensions/matrix/src/matrix/sdk.ts +++ b/extensions/matrix/src/matrix/sdk.ts @@ -2177,3 +2177,4 @@ export class MatrixClient { return true; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/matrix/src/matrix/sdk/verification-manager.ts b/extensions/matrix/src/matrix/sdk/verification-manager.ts index 2d40b6de7b36..e9692b353193 100644 --- a/extensions/matrix/src/matrix/sdk/verification-manager.ts +++ b/extensions/matrix/src/matrix/sdk/verification-manager.ts @@ -799,3 +799,4 @@ export class MatrixVerificationManager { }; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/matrix/src/matrix/send.test.ts b/extensions/matrix/src/matrix/send.test.ts index 1e00a7b9468a..77cf7dff818f 100644 --- a/extensions/matrix/src/matrix/send.test.ts +++ b/extensions/matrix/src/matrix/send.test.ts @@ -1228,3 +1228,4 @@ describe("sendTypingMatrix", () => { expect(setTyping).toHaveBeenCalledWith("!room:example", true, 12_345); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/matrix/src/onboarding.ts b/extensions/matrix/src/onboarding.ts index 90537744e425..7e3061d999fd 100644 --- a/extensions/matrix/src/onboarding.ts +++ b/extensions/matrix/src/onboarding.ts @@ -769,3 +769,4 @@ export const matrixOnboardingAdapter: ChannelSetupWizardAdapter = { }, }), }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/mattermost/src/channel.test.ts b/extensions/mattermost/src/channel.test.ts index a1cb01391b0e..57e8a04474fa 100644 --- a/extensions/mattermost/src/channel.test.ts +++ b/extensions/mattermost/src/channel.test.ts @@ -1506,3 +1506,4 @@ describe("mattermostPlugin", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/mattermost/src/channel.ts b/extensions/mattermost/src/channel.ts index 36793bfd38d9..eb1d90cbc914 100644 --- a/extensions/mattermost/src/channel.ts +++ b/extensions/mattermost/src/channel.ts @@ -959,3 +959,4 @@ export const mattermostPlugin: ChannelPlugin = create security: mattermostSecurityAdapter, outbound: mattermostOutbound, }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/mattermost/src/mattermost/monitor.inbound-system-event.test.ts b/extensions/mattermost/src/mattermost/monitor.inbound-system-event.test.ts index d9bdea8433cf..b06b05d1be00 100644 --- a/extensions/mattermost/src/mattermost/monitor.inbound-system-event.test.ts +++ b/extensions/mattermost/src/mattermost/monitor.inbound-system-event.test.ts @@ -1660,3 +1660,4 @@ describe("mattermost inbound user posts", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/mattermost/src/mattermost/monitor.ts b/extensions/mattermost/src/mattermost/monitor.ts index eb80e4f2bd92..3a95e58f5d37 100644 --- a/extensions/mattermost/src/mattermost/monitor.ts +++ b/extensions/mattermost/src/mattermost/monitor.ts @@ -2144,3 +2144,4 @@ export async function monitorMattermostProvider(opts: MonitorMattermostOpts = {} await Promise.resolve(slashShutdownCleanupPromise); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/mattermost/src/mattermost/slash-http.ts b/extensions/mattermost/src/mattermost/slash-http.ts index cb3de44796ea..4dea911f2543 100644 --- a/extensions/mattermost/src/mattermost/slash-http.ts +++ b/extensions/mattermost/src/mattermost/slash-http.ts @@ -946,3 +946,4 @@ async function handleSlashCommandAsync(params: { }), }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/doctor-contract-api.test.ts b/extensions/memory-core/doctor-contract-api.test.ts index 458ddde7a527..87d680153e88 100644 --- a/extensions/memory-core/doctor-contract-api.test.ts +++ b/extensions/memory-core/doctor-contract-api.test.ts @@ -1504,3 +1504,4 @@ describe("memory-core doctor dreaming migration", () => { await expect(fs.access(`${legacyPath}.migrated`)).rejects.toThrow(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/doctor-contract-api.ts b/extensions/memory-core/doctor-contract-api.ts index d0ce302edab9..08e458d5c0bc 100644 --- a/extensions/memory-core/doctor-contract-api.ts +++ b/extensions/memory-core/doctor-contract-api.ts @@ -1259,3 +1259,4 @@ export const stateMigrations: PluginDoctorStateMigration[] = [ }, }, ]; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/cli.runtime.ts b/extensions/memory-core/src/cli.runtime.ts index 4ef3d864106c..6a71557e2e95 100644 --- a/extensions/memory-core/src/cli.runtime.ts +++ b/extensions/memory-core/src/cli.runtime.ts @@ -2043,3 +2043,4 @@ export async function runMemoryRemBackfill( }, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/cli.test.ts b/extensions/memory-core/src/cli.test.ts index d81df3fb408d..bc8b337fd9ad 100644 --- a/extensions/memory-core/src/cli.test.ts +++ b/extensions/memory-core/src/cli.test.ts @@ -2452,3 +2452,4 @@ describe("memory cli", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/dreaming-narrative.test.ts b/extensions/memory-core/src/dreaming-narrative.test.ts index 9ec903005f43..76fab43d57fd 100644 --- a/extensions/memory-core/src/dreaming-narrative.test.ts +++ b/extensions/memory-core/src/dreaming-narrative.test.ts @@ -1234,3 +1234,4 @@ describe("runDetachedDreamNarrative", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/dreaming-narrative.ts b/extensions/memory-core/src/dreaming-narrative.ts index 14eb0cccfb24..2f53e9d821fa 100644 --- a/extensions/memory-core/src/dreaming-narrative.ts +++ b/extensions/memory-core/src/dreaming-narrative.ts @@ -1015,3 +1015,4 @@ export function runDetachedDreamNarrative( }); }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/dreaming-phases.test.ts b/extensions/memory-core/src/dreaming-phases.test.ts index ee24dc907abb..21f2c3113cf4 100644 --- a/extensions/memory-core/src/dreaming-phases.test.ts +++ b/extensions/memory-core/src/dreaming-phases.test.ts @@ -3149,3 +3149,4 @@ describe("previewRemHarness", () => { expect(preview.deep.candidates[0]?.snippet).toContain("Always check weather"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/dreaming-phases.ts b/extensions/memory-core/src/dreaming-phases.ts index 7e328f574223..bf4931b1660a 100644 --- a/extensions/memory-core/src/dreaming-phases.ts +++ b/extensions/memory-core/src/dreaming-phases.ts @@ -1969,3 +1969,4 @@ export async function runDreamingSweepPhases(params: { } } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/dreaming.test.ts b/extensions/memory-core/src/dreaming.test.ts index 5b52c7e8e2e4..460fb1fe574b 100644 --- a/extensions/memory-core/src/dreaming.test.ts +++ b/extensions/memory-core/src/dreaming.test.ts @@ -1899,3 +1899,4 @@ describe("gateway startup reconciliation", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/dreaming.ts b/extensions/memory-core/src/dreaming.ts index 55fb1d69b23a..35c3b1ab7217 100644 --- a/extensions/memory-core/src/dreaming.ts +++ b/extensions/memory-core/src/dreaming.ts @@ -980,3 +980,4 @@ export function registerShortTermPromotionDreaming(api: OpenClawPluginApi): void } }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/memory/index.test.ts b/extensions/memory-core/src/memory/index.test.ts index 4acffc02e638..d5f580cdab7c 100644 --- a/extensions/memory-core/src/memory/index.test.ts +++ b/extensions/memory-core/src/memory/index.test.ts @@ -3004,3 +3004,4 @@ describe("memory index", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/memory/manager-embedding-ops.ts b/extensions/memory-core/src/memory/manager-embedding-ops.ts index 39f3a6772ff4..44bb437f0c55 100644 --- a/extensions/memory-core/src/memory/manager-embedding-ops.ts +++ b/extensions/memory-core/src/memory/manager-embedding-ops.ts @@ -1038,3 +1038,4 @@ export abstract class MemoryManagerEmbeddingOps extends MemoryManagerSyncOps { ); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/memory/manager-search.test.ts b/extensions/memory-core/src/memory/manager-search.test.ts index 4ed74ebe3d56..fd4d712bb28e 100644 --- a/extensions/memory-core/src/memory/manager-search.test.ts +++ b/extensions/memory-core/src/memory/manager-search.test.ts @@ -1800,3 +1800,4 @@ describe("searchVector sqlite-vec KNN", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/memory/manager-search.ts b/extensions/memory-core/src/memory/manager-search.ts index bdca01b636ad..30980630cae8 100644 --- a/extensions/memory-core/src/memory/manager-search.ts +++ b/extensions/memory-core/src/memory/manager-search.ts @@ -988,3 +988,4 @@ export async function searchPathKeyword(params: { const resultLimit = hasExplicitExactPathHeadroom ? exactPathLimit + params.limit : params.limit; return [...byId.values()].toSorted(comparePathKeywordSearchResults).slice(0, resultLimit); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/memory/manager-sync-ops.ts b/extensions/memory-core/src/memory/manager-sync-ops.ts index b3e8af32b127..85e4e250e11d 100644 --- a/extensions/memory-core/src/memory/manager-sync-ops.ts +++ b/extensions/memory-core/src/memory/manager-sync-ops.ts @@ -2953,3 +2953,4 @@ export abstract class MemoryManagerSyncOps { this.lastMetaSerialized = value; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/memory/manager.ts b/extensions/memory-core/src/memory/manager.ts index 9fffb6b9463d..6b588efd8abe 100644 --- a/extensions/memory-core/src/memory/manager.ts +++ b/extensions/memory-core/src/memory/manager.ts @@ -1669,3 +1669,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/memory/qmd-manager.test.ts b/extensions/memory-core/src/memory/qmd-manager.test.ts index 22991de5cb5d..b09d3d375810 100644 --- a/extensions/memory-core/src/memory/qmd-manager.test.ts +++ b/extensions/memory-core/src/memory/qmd-manager.test.ts @@ -7345,3 +7345,4 @@ function createDeferred() { } return { promise, resolve, reject }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/memory/qmd-manager.ts b/extensions/memory-core/src/memory/qmd-manager.ts index 12944195f777..60f8b2ae1522 100644 --- a/extensions/memory-core/src/memory/qmd-manager.ts +++ b/extensions/memory-core/src/memory/qmd-manager.ts @@ -2177,3 +2177,4 @@ function resolveQmdManagerRuntimeConfig( contextLimits: resolveAgentContextLimits(cfg, agentId), }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/memory/search-manager.test.ts b/extensions/memory-core/src/memory/search-manager.test.ts index 860502f9b5fe..e57313830056 100644 --- a/extensions/memory-core/src/memory/search-manager.test.ts +++ b/extensions/memory-core/src/memory/search-manager.test.ts @@ -1298,3 +1298,4 @@ describe("getMemorySearchManager caching", () => { expect(mockCloseAllMemoryIndexManagers).toHaveBeenCalledTimes(1); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/memory/search-manager.ts b/extensions/memory-core/src/memory/search-manager.ts index 619ff96df241..ab275479a171 100644 --- a/extensions/memory-core/src/memory/search-manager.ts +++ b/extensions/memory-core/src/memory/search-manager.ts @@ -809,3 +809,4 @@ function resolveQmdManagerRuntimeConfig( contextLimits: resolveAgentContextLimits(cfg, agentId), }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/rem-evidence.ts b/extensions/memory-core/src/rem-evidence.ts index 04f0bedbf670..345a42d20437 100644 --- a/extensions/memory-core/src/rem-evidence.ts +++ b/extensions/memory-core/src/rem-evidence.ts @@ -1098,3 +1098,4 @@ export async function previewGroundedRemMarkdown(params: { files: previews, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/short-term-promotion.test.ts b/extensions/memory-core/src/short-term-promotion.test.ts index 67891b3dcf91..b10208d16344 100644 --- a/extensions/memory-core/src/short-term-promotion.test.ts +++ b/extensions/memory-core/src/short-term-promotion.test.ts @@ -3455,3 +3455,4 @@ describe("short-term promotion", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/short-term-promotion.ts b/extensions/memory-core/src/short-term-promotion.ts index c065b6071032..9cad13b31ce5 100644 --- a/extensions/memory-core/src/short-term-promotion.ts +++ b/extensions/memory-core/src/short-term-promotion.ts @@ -2869,3 +2869,4 @@ export async function removeGroundedShortTermCandidates(params: { return { removed, storePath }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/tools.test.ts b/extensions/memory-core/src/tools.test.ts index 4b061b5c4439..a4588edb7108 100644 --- a/extensions/memory-core/src/tools.test.ts +++ b/extensions/memory-core/src/tools.test.ts @@ -1350,3 +1350,4 @@ describe("memory_search corpus labels", () => { ]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-core/src/tools.ts b/extensions/memory-core/src/tools.ts index db424e12ee4e..8ae1b5a752fc 100644 --- a/extensions/memory-core/src/tools.ts +++ b/extensions/memory-core/src/tools.ts @@ -903,3 +903,4 @@ export function createMemoryGetTool(options: { }, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-lancedb/index.test.ts b/extensions/memory-lancedb/index.test.ts index 6ad04cd8f735..3beffbafee19 100644 --- a/extensions/memory-lancedb/index.test.ts +++ b/extensions/memory-lancedb/index.test.ts @@ -3949,3 +3949,4 @@ describe("lancedb runtime loader", () => { expect(importBundled).toHaveBeenCalledTimes(2); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-lancedb/index.ts b/extensions/memory-lancedb/index.ts index 8eeb9715ef6c..d780c3e1ee9d 100644 --- a/extensions/memory-lancedb/index.ts +++ b/extensions/memory-lancedb/index.ts @@ -2019,3 +2019,4 @@ export default definePluginEntry({ }); }, }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-wiki/src/chatgpt-import.ts b/extensions/memory-wiki/src/chatgpt-import.ts index 5791db1fa26c..e3293b8f2c46 100644 --- a/extensions/memory-wiki/src/chatgpt-import.ts +++ b/extensions/memory-wiki/src/chatgpt-import.ts @@ -925,3 +925,4 @@ export async function rollbackChatGptImportRun(params: { alreadyRolledBack: false, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-wiki/src/cli.ts b/extensions/memory-wiki/src/cli.ts index 60bf3869c5e0..3886559a074d 100644 --- a/extensions/memory-wiki/src/cli.ts +++ b/extensions/memory-wiki/src/cli.ts @@ -1265,3 +1265,4 @@ export function registerWikiCli(program: Command, registration: MemoryWikiCliReg await runWikiObsidianDailyCli({ config, json: opts.json }); }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-wiki/src/compile.ts b/extensions/memory-wiki/src/compile.ts index 74dc533a2539..60f1b5ed5795 100644 --- a/extensions/memory-wiki/src/compile.ts +++ b/extensions/memory-wiki/src/compile.ts @@ -1526,3 +1526,4 @@ export async function refreshMemoryWikiIndexesAfterImport(params: { compile, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-wiki/src/markdown.ts b/extensions/memory-wiki/src/markdown.ts index fad6f1c81baf..de056bc1214a 100644 --- a/extensions/memory-wiki/src/markdown.ts +++ b/extensions/memory-wiki/src/markdown.ts @@ -759,3 +759,4 @@ export function toWikiPageSummary(params: { const result = scanWikiPageSummary(params); return result.status === "valid" ? result.page : null; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-wiki/src/query.test.ts b/extensions/memory-wiki/src/query.test.ts index f53a0eacb57c..7fe7af3fc9b5 100644 --- a/extensions/memory-wiki/src/query.test.ts +++ b/extensions/memory-wiki/src/query.test.ts @@ -1830,3 +1830,4 @@ describe("getMemoryWikiPage", () => { expect(manager.readFile).toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/memory-wiki/src/query.ts b/extensions/memory-wiki/src/query.ts index 6c6d28bba367..2b0c764d2faa 100644 --- a/extensions/memory-wiki/src/query.ts +++ b/extensions/memory-wiki/src/query.ts @@ -1664,3 +1664,4 @@ export async function getMemoryWikiPage(params: { return null; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/microsoft-foundry/index.test.ts b/extensions/microsoft-foundry/index.test.ts index 3d76929098a3..5cb87e8971ab 100644 --- a/extensions/microsoft-foundry/index.test.ts +++ b/extensions/microsoft-foundry/index.test.ts @@ -2039,3 +2039,4 @@ describe("isAnthropicFoundryDeployment", () => { }, ); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/microsoft-foundry/shared.ts b/extensions/microsoft-foundry/shared.ts index 05edcf5093d2..fc33b05210f8 100644 --- a/extensions/microsoft-foundry/shared.ts +++ b/extensions/microsoft-foundry/shared.ts @@ -772,3 +772,4 @@ export function resolveFoundryTargetProfileId(config: FoundryConfigShape): strin (configuredProfileEntries.length === 1 ? configuredProfileEntries[0]?.[0] : undefined) ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/migrate-hermes/config.test.ts b/extensions/migrate-hermes/config.test.ts index ab526304028f..14755bdd5701 100644 --- a/extensions/migrate-hermes/config.test.ts +++ b/extensions/migrate-hermes/config.test.ts @@ -1154,3 +1154,4 @@ describe("Hermes migration config mapping", () => { ).toBe("beta"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/migrate-hermes/secrets.test.ts b/extensions/migrate-hermes/secrets.test.ts index 816292494171..f7813724dbb7 100644 --- a/extensions/migrate-hermes/secrets.test.ts +++ b/extensions/migrate-hermes/secrets.test.ts @@ -1550,3 +1550,4 @@ describe("Hermes migration secret items", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/msteams/src/channel.actions.test.ts b/extensions/msteams/src/channel.actions.test.ts index e1353368daa4..92d6960c16ca 100644 --- a/extensions/msteams/src/channel.actions.test.ts +++ b/extensions/msteams/src/channel.actions.test.ts @@ -1419,3 +1419,4 @@ describe("msteamsPlugin.threading.buildToolContext", () => { expect(result?.currentGraphChannelId).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/msteams/src/channel.ts b/extensions/msteams/src/channel.ts index 14dc6ab7763f..e58cabc2df2e 100644 --- a/extensions/msteams/src/channel.ts +++ b/extensions/msteams/src/channel.ts @@ -1342,3 +1342,4 @@ export const msteamsPlugin: ChannelPlugin { expect(ollamaMedia.autoPriority).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/ollama/index.ts b/extensions/ollama/index.ts index 32abb3ff6d35..7865b5334529 100644 --- a/extensions/ollama/index.ts +++ b/extensions/ollama/index.ts @@ -770,3 +770,4 @@ export default definePluginEntry({ }); }, }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/ollama/src/setup.ts b/extensions/ollama/src/setup.ts index fce1ccc31b2a..4d20e4dd5369 100644 --- a/extensions/ollama/src/setup.ts +++ b/extensions/ollama/src/setup.ts @@ -775,3 +775,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/ollama/src/stream-runtime.test.ts b/extensions/ollama/src/stream-runtime.test.ts index f39c2ae67247..55ea4e148712 100644 --- a/extensions/ollama/src/stream-runtime.test.ts +++ b/extensions/ollama/src/stream-runtime.test.ts @@ -3052,3 +3052,4 @@ describe("createConfiguredOllamaStreamFn", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/ollama/src/stream.ts b/extensions/ollama/src/stream.ts index 562639124ae7..94ee15a98795 100644 --- a/extensions/ollama/src/stream.ts +++ b/extensions/ollama/src/stream.ts @@ -1463,3 +1463,4 @@ export function createConfiguredOllamaStreamFn(params: { resolveOllamaModelHeaders(params.model), ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/openai/image-generation-provider.test.ts b/extensions/openai/image-generation-provider.test.ts index 6cfc5a2ae669..afaa469b3885 100644 --- a/extensions/openai/image-generation-provider.test.ts +++ b/extensions/openai/image-generation-provider.test.ts @@ -2278,3 +2278,4 @@ describe("openai image generation provider", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/openai/image-generation-provider.ts b/extensions/openai/image-generation-provider.ts index d974bcf3a390..e86b2b0e7856 100644 --- a/extensions/openai/image-generation-provider.ts +++ b/extensions/openai/image-generation-provider.ts @@ -1077,3 +1077,4 @@ export function buildOpenAIImageGenerationProvider(): ImageGenerationProvider { }, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/openai/openai-provider.test.ts b/extensions/openai/openai-provider.test.ts index 03af4036fb6a..7b4297c1af7b 100644 --- a/extensions/openai/openai-provider.test.ts +++ b/extensions/openai/openai-provider.test.ts @@ -2221,3 +2221,4 @@ describe("buildOpenAIProvider", () => { await expect(provider.refreshOAuth?.(credential)).resolves.toEqual(credential); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/openai/openai-provider.ts b/extensions/openai/openai-provider.ts index 1fd6e0ce8669..ead49db45d02 100644 --- a/extensions/openai/openai-provider.ts +++ b/extensions/openai/openai-provider.ts @@ -1066,3 +1066,4 @@ export function buildOpenAIProvider(): ProviderPlugin { export function buildOpenAICodexProviderPlugin(): ProviderPlugin { return buildOpenAIProvider(); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/openai/realtime-voice-provider.test.ts b/extensions/openai/realtime-voice-provider.test.ts index 7f1406862e6a..04ed436e4802 100644 --- a/extensions/openai/realtime-voice-provider.test.ts +++ b/extensions/openai/realtime-voice-provider.test.ts @@ -2758,3 +2758,4 @@ describe("buildOpenAIRealtimeVoiceProvider", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/openai/realtime-voice-provider.ts b/extensions/openai/realtime-voice-provider.ts index ee30af20df21..9068019f154d 100644 --- a/extensions/openai/realtime-voice-provider.ts +++ b/extensions/openai/realtime-voice-provider.ts @@ -1585,3 +1585,4 @@ export function buildOpenAIRealtimeVoiceProvider(): RealtimeVoiceProviderPlugin createBrowserSession: createOpenAIRealtimeBrowserSession, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/openrouter/index.test.ts b/extensions/openrouter/index.test.ts index de3071c12d01..170047cffb25 100644 --- a/extensions/openrouter/index.test.ts +++ b/extensions/openrouter/index.test.ts @@ -1232,3 +1232,4 @@ describe("openrouter provider hooks", () => { expect(payloads[1]?.reasoning).toEqual({ effort: "high" }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/openshell/src/backend.ts b/extensions/openshell/src/backend.ts index 559c40b3e472..8d49cc057f32 100644 --- a/extensions/openshell/src/backend.ts +++ b/extensions/openshell/src/backend.ts @@ -1001,3 +1001,4 @@ function isRemotePathInside(root: string, candidate: string): boolean { (relative !== ".." && !relative.startsWith("../") && !path.posix.isAbsolute(relative)) ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/openshell/src/openshell-core.test.ts b/extensions/openshell/src/openshell-core.test.ts index 222dfcac5387..b5f211aae914 100644 --- a/extensions/openshell/src/openshell-core.test.ts +++ b/extensions/openshell/src/openshell-core.test.ts @@ -1320,3 +1320,4 @@ describe("openshell fs bridges", () => { expect(await bridge.readFile({ filePath: "/agent/note.txt" })).toEqual(Buffer.from("agent")); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/phone-control/index.test.ts b/extensions/phone-control/index.test.ts index b9215a963718..b6fa21f6fabc 100644 --- a/extensions/phone-control/index.test.ts +++ b/extensions/phone-control/index.test.ts @@ -1167,3 +1167,4 @@ describe("phone-control plugin", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/policy/src/cli.test.ts b/extensions/policy/src/cli.test.ts index eb9e68e5336c..768383e3c9f8 100644 --- a/extensions/policy/src/cli.test.ts +++ b/extensions/policy/src/cli.test.ts @@ -1113,3 +1113,4 @@ describe("policy commands", () => { ]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/policy/src/doctor/register.base.test-utils.ts b/extensions/policy/src/doctor/register.base.test-utils.ts index 2e2f90ad8909..af3b1e6e41dd 100644 --- a/extensions/policy/src/doctor/register.base.test-utils.ts +++ b/extensions/policy/src/doctor/register.base.test-utils.ts @@ -2029,3 +2029,4 @@ describe("registerPolicyDoctorChecks", () => { expect(cfg.tools?.deny).toEqual(["read"]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/policy/src/doctor/register.gateway-data-and-approvals.test-utils.ts b/extensions/policy/src/doctor/register.gateway-data-and-approvals.test-utils.ts index 0efe7e086d30..6104fcc36101 100644 --- a/extensions/policy/src/doctor/register.gateway-data-and-approvals.test-utils.ts +++ b/extensions/policy/src/doctor/register.gateway-data-and-approvals.test-utils.ts @@ -1490,3 +1490,4 @@ describe("registerPolicyDoctorChecks", () => { ]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/policy/src/doctor/register.ingress-and-secrets.test-utils.ts b/extensions/policy/src/doctor/register.ingress-and-secrets.test-utils.ts index ac7421008cd9..e7dfe6060358 100644 --- a/extensions/policy/src/doctor/register.ingress-and-secrets.test-utils.ts +++ b/extensions/policy/src/doctor/register.ingress-and-secrets.test-utils.ts @@ -2274,3 +2274,4 @@ describe("registerPolicyDoctorChecks", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/policy/src/doctor/register.models-and-mcp.test-utils.ts b/extensions/policy/src/doctor/register.models-and-mcp.test-utils.ts index 58c44d23fa76..909f3da992b4 100644 --- a/extensions/policy/src/doctor/register.models-and-mcp.test-utils.ts +++ b/extensions/policy/src/doctor/register.models-and-mcp.test-utils.ts @@ -1655,3 +1655,4 @@ describe("registerPolicyDoctorChecks", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/policy/src/doctor/register.sandbox-and-tools.test-utils.ts b/extensions/policy/src/doctor/register.sandbox-and-tools.test-utils.ts index 4f246cfdc7c1..3505cf626882 100644 --- a/extensions/policy/src/doctor/register.sandbox-and-tools.test-utils.ts +++ b/extensions/policy/src/doctor/register.sandbox-and-tools.test-utils.ts @@ -2055,3 +2055,4 @@ describe("registerPolicyDoctorChecks", () => { expect(result.findings).toHaveLength(2); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/policy/src/policy-state.ts b/extensions/policy/src/policy-state.ts index 14b15e012dd4..8cc53ff49f02 100644 --- a/extensions/policy/src/policy-state.ts +++ b/extensions/policy/src/policy-state.ts @@ -3079,3 +3079,4 @@ function stableJson(value: unknown): string { } return JSON.stringify(value); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/cli.runtime.test.ts b/extensions/qa-lab/src/cli.runtime.test.ts index b9076c6513c5..34bf8c2375f7 100644 --- a/extensions/qa-lab/src/cli.runtime.test.ts +++ b/extensions/qa-lab/src/cli.runtime.test.ts @@ -2815,3 +2815,4 @@ describe("qa cli runtime", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/cli.runtime.ts b/extensions/qa-lab/src/cli.runtime.ts index 6548727ee6ec..b4c732a99476 100644 --- a/extensions/qa-lab/src/cli.runtime.ts +++ b/extensions/qa-lab/src/cli.runtime.ts @@ -1781,3 +1781,4 @@ export const testing = { resolveRepoRelativeOutputDir, }; export { testing as __testing }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/cli.ts b/extensions/qa-lab/src/cli.ts index 14acf512841b..79d505953f29 100644 --- a/extensions/qa-lab/src/cli.ts +++ b/extensions/qa-lab/src/cli.ts @@ -997,3 +997,4 @@ export function registerQaLabCli(program: Command) { lane.register(qa); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/confidence-report.ts b/extensions/qa-lab/src/confidence-report.ts index 0665458f1f42..2537a77827ce 100644 --- a/extensions/qa-lab/src/confidence-report.ts +++ b/extensions/qa-lab/src/confidence-report.ts @@ -1300,3 +1300,4 @@ export async function writeQaConfidenceSelfTestArtifacts(params: { await fs.writeFile(summaryPath, `${JSON.stringify(summary, null, 2)}\n`, "utf8"); return { reportPath, summaryPath, summary }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/evidence-gallery.ts b/extensions/qa-lab/src/evidence-gallery.ts index e3bcdc72f293..a3722e1b28d4 100644 --- a/extensions/qa-lab/src/evidence-gallery.ts +++ b/extensions/qa-lab/src/evidence-gallery.ts @@ -945,3 +945,4 @@ export async function buildQaEvidenceGalleryModel(params: { schemaVersion: summary.schemaVersion, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/evidence-summary.ts b/extensions/qa-lab/src/evidence-summary.ts index 3fdff0525209..2a806f635bf1 100644 --- a/extensions/qa-lab/src/evidence-summary.ts +++ b/extensions/qa-lab/src/evidence-summary.ts @@ -800,3 +800,4 @@ export function buildLiveTransportEvidenceSummary( profile, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/gateway-child.test.ts b/extensions/qa-lab/src/gateway-child.test.ts index 32425a9f4b22..f5dd56e29fc8 100644 --- a/extensions/qa-lab/src/gateway-child.test.ts +++ b/extensions/qa-lab/src/gateway-child.test.ts @@ -2253,3 +2253,4 @@ describe("qa bundled plugin dir", () => { ).resolves.toBe("2026.4.9"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/gateway-child.ts b/extensions/qa-lab/src/gateway-child.ts index 5d07e86e655d..25c1ca865b0d 100644 --- a/extensions/qa-lab/src/gateway-child.ts +++ b/extensions/qa-lab/src/gateway-child.ts @@ -1603,3 +1603,4 @@ export async function startQaGatewayChild(params: { throw new Error(message, { cause: error }); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/gateway-process-boundary.ts b/extensions/qa-lab/src/gateway-process-boundary.ts index d5415f59d444..acfeda114a97 100644 --- a/extensions/qa-lab/src/gateway-process-boundary.ts +++ b/extensions/qa-lab/src/gateway-process-boundary.ts @@ -856,3 +856,4 @@ const testing = { }; export { testing as __testing }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/lab-server.test.ts b/extensions/qa-lab/src/lab-server.test.ts index 9bdd9fe7068f..f3a042057d6e 100644 --- a/extensions/qa-lab/src/lab-server.test.ts +++ b/extensions/qa-lab/src/lab-server.test.ts @@ -1155,3 +1155,4 @@ describe("qa-lab server", () => { expect(query.rows[0]?.duplicateCount).toBe(2); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/lab-server.ts b/extensions/qa-lab/src/lab-server.ts index c551a362465d..c2a444136cea 100644 --- a/extensions/qa-lab/src/lab-server.ts +++ b/extensions/qa-lab/src/lab-server.ts @@ -889,3 +889,4 @@ function serializeSelfCheck(result: QaSelfCheckResult) { scenario: result.scenarioResult, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/live-transports/discord/discord-live.runtime.ts b/extensions/qa-lab/src/live-transports/discord/discord-live.runtime.ts index f1bb5f503734..436c221e2b9b 100644 --- a/extensions/qa-lab/src/live-transports/discord/discord-live.runtime.ts +++ b/extensions/qa-lab/src/live-transports/discord/discord-live.runtime.ts @@ -1960,3 +1960,4 @@ export const discordQaLiveRuntime = { run: runDiscordQaLive, testing, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/live-transports/slack/slack-live.runtime.test.ts b/extensions/qa-lab/src/live-transports/slack/slack-live.runtime.test.ts index bf2902c50411..f2b37585e360 100644 --- a/extensions/qa-lab/src/live-transports/slack/slack-live.runtime.test.ts +++ b/extensions/qa-lab/src/live-transports/slack/slack-live.runtime.test.ts @@ -1709,3 +1709,4 @@ describe("Slack live QA runtime helpers", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/live-transports/telegram/telegram-live.runtime.test.ts b/extensions/qa-lab/src/live-transports/telegram/telegram-live.runtime.test.ts index 88f37f7c4739..0dcb3c342efe 100644 --- a/extensions/qa-lab/src/live-transports/telegram/telegram-live.runtime.test.ts +++ b/extensions/qa-lab/src/live-transports/telegram/telegram-live.runtime.test.ts @@ -1376,3 +1376,4 @@ describe("telegram live qa runtime", () => { expect(testing.formatTelegramQaProgressDetails("a".repeat(241))).toBe(`${"a".repeat(237)}...`); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/live-transports/telegram/telegram-live.runtime.ts b/extensions/qa-lab/src/live-transports/telegram/telegram-live.runtime.ts index d0176dd3a616..ab34804c8988 100644 --- a/extensions/qa-lab/src/live-transports/telegram/telegram-live.runtime.ts +++ b/extensions/qa-lab/src/live-transports/telegram/telegram-live.runtime.ts @@ -2061,3 +2061,4 @@ const testing = { waitForObservedMessage, }; export { testing as __testing }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/live-transports/whatsapp/whatsapp-live.runtime.test.ts b/extensions/qa-lab/src/live-transports/whatsapp/whatsapp-live.runtime.test.ts index ac4420b6225f..9c0f29592bf1 100644 --- a/extensions/qa-lab/src/live-transports/whatsapp/whatsapp-live.runtime.test.ts +++ b/extensions/qa-lab/src/live-transports/whatsapp/whatsapp-live.runtime.test.ts @@ -2945,3 +2945,4 @@ describe("WhatsApp QA live runtime", () => { expect(testing.isTransientWhatsAppQaDriverError(new Error("timed out waiting"))).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/mantis/slack-desktop-smoke.runtime.test.ts b/extensions/qa-lab/src/mantis/slack-desktop-smoke.runtime.test.ts index 5fb20b871623..fbcb4b47a586 100644 --- a/extensions/qa-lab/src/mantis/slack-desktop-smoke.runtime.test.ts +++ b/extensions/qa-lab/src/mantis/slack-desktop-smoke.runtime.test.ts @@ -1133,3 +1133,4 @@ describe("mantis Slack desktop smoke runtime", () => { vi.doUnmock("./cli.runtime.js"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/mantis/slack-desktop-smoke.runtime.ts b/extensions/qa-lab/src/mantis/slack-desktop-smoke.runtime.ts index acf1f7a60ead..f669a78f57ad 100644 --- a/extensions/qa-lab/src/mantis/slack-desktop-smoke.runtime.ts +++ b/extensions/qa-lab/src/mantis/slack-desktop-smoke.runtime.ts @@ -1581,3 +1581,4 @@ export async function runMantisSlackDesktopSmoke( function toErrorObject(error: unknown): Error { return error instanceof Error ? error : new Error(formatErrorMessage(error)); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/mantis/telegram-desktop-builder.runtime.ts b/extensions/qa-lab/src/mantis/telegram-desktop-builder.runtime.ts index 3de3f222f4d9..4b86137dd913 100644 --- a/extensions/qa-lab/src/mantis/telegram-desktop-builder.runtime.ts +++ b/extensions/qa-lab/src/mantis/telegram-desktop-builder.runtime.ts @@ -830,3 +830,4 @@ export async function runMantisTelegramDesktopBuilder( function toErrorObject(error: unknown): Error { return error instanceof Error ? error : new Error(formatErrorMessage(error)); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/mantis/visual-task.runtime.ts b/extensions/qa-lab/src/mantis/visual-task.runtime.ts index 98b6c31138eb..d038284f4726 100644 --- a/extensions/qa-lab/src/mantis/visual-task.runtime.ts +++ b/extensions/qa-lab/src/mantis/visual-task.runtime.ts @@ -818,3 +818,4 @@ export async function runMantisVisualTask( } } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/providers/mock-openai/server.test.ts b/extensions/qa-lab/src/providers/mock-openai/server.test.ts index 3599ff82fdd1..45aba84e942b 100644 --- a/extensions/qa-lab/src/providers/mock-openai/server.test.ts +++ b/extensions/qa-lab/src/providers/mock-openai/server.test.ts @@ -5959,3 +5959,4 @@ describe("qa mock openai server provider variant tagging", () => { expect(debug.providerVariant).toBe("unknown"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/providers/mock-openai/server.ts b/extensions/qa-lab/src/providers/mock-openai/server.ts index 9103d2488de5..2f67a2c25ac7 100644 --- a/extensions/qa-lab/src/providers/mock-openai/server.ts +++ b/extensions/qa-lab/src/providers/mock-openai/server.ts @@ -1551,3 +1551,4 @@ export async function startQaMockOpenAiServer(params?: { }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/runtime-parity.ts b/extensions/qa-lab/src/runtime-parity.ts index b8da01906ed0..2aba52437c39 100644 --- a/extensions/qa-lab/src/runtime-parity.ts +++ b/extensions/qa-lab/src/runtime-parity.ts @@ -1165,3 +1165,4 @@ const testing = { }; export { testing as __testing }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/runtime-tool-fixture.test.ts b/extensions/qa-lab/src/runtime-tool-fixture.test.ts index afe4f6085016..b25f5b69d359 100644 --- a/extensions/qa-lab/src/runtime-tool-fixture.test.ts +++ b/extensions/qa-lab/src/runtime-tool-fixture.test.ts @@ -1379,3 +1379,4 @@ describe("runtime tool fixture", () => { ).rejects.toThrow("web_search not present in effective tools"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/runtime-tool-fixture.ts b/extensions/qa-lab/src/runtime-tool-fixture.ts index e2dd28d2b59f..833d848514fc 100644 --- a/extensions/qa-lab/src/runtime-tool-fixture.ts +++ b/extensions/qa-lab/src/runtime-tool-fixture.ts @@ -862,3 +862,4 @@ export async function runRuntimeToolFixture( .filter(Boolean) .join("\n"); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/scorecard-taxonomy.ts b/extensions/qa-lab/src/scorecard-taxonomy.ts index 7ffe0eb9c7f1..fc097e13014d 100644 --- a/extensions/qa-lab/src/scorecard-taxonomy.ts +++ b/extensions/qa-lab/src/scorecard-taxonomy.ts @@ -1154,3 +1154,4 @@ export function readQaScorecardTaxonomyReport(scenarios: readonly QaSeedScenario scenarios, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/suite-launch.runtime.test.ts b/extensions/qa-lab/src/suite-launch.runtime.test.ts index 1bd85f772748..51510ed185c2 100644 --- a/extensions/qa-lab/src/suite-launch.runtime.test.ts +++ b/extensions/qa-lab/src/suite-launch.runtime.test.ts @@ -1157,3 +1157,4 @@ describe("qa suite runtime launcher", () => { expect(runQaTestFileScenarios).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/suite-launch.runtime.ts b/extensions/qa-lab/src/suite-launch.runtime.ts index efd99bcc1c55..f8e864bfde33 100644 --- a/extensions/qa-lab/src/suite-launch.runtime.ts +++ b/extensions/qa-lab/src/suite-launch.runtime.ts @@ -783,3 +783,4 @@ export async function runQaFlowSuiteFromRuntime( await loadQaFlowSuiteRuntime() )(args[0]); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/suite.ts b/extensions/qa-lab/src/suite.ts index 3bd58d829f91..a2b56aa35a37 100644 --- a/extensions/qa-lab/src/suite.ts +++ b/extensions/qa-lab/src/suite.ts @@ -2057,3 +2057,4 @@ export const qaSuiteProgressTesting = { waitForQaLabReadyOrStopOwned, writeQaSuiteArtifacts, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/src/test-file-scenario-runner.test.ts b/extensions/qa-lab/src/test-file-scenario-runner.test.ts index bf6133d805be..1fbee852ed5f 100644 --- a/extensions/qa-lab/src/test-file-scenario-runner.test.ts +++ b/extensions/qa-lab/src/test-file-scenario-runner.test.ts @@ -1149,3 +1149,4 @@ describe("qa test file scenario runner", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-lab/web/src/app.ts b/extensions/qa-lab/web/src/app.ts index 745eafcf50c1..5b4b1c3eec27 100644 --- a/extensions/qa-lab/web/src/app.ts +++ b/extensions/qa-lab/web/src/app.ts @@ -1769,3 +1769,4 @@ export async function createQaLabApp(root: HTMLDivElement) { setInterval(() => void refresh(), 1_000); setInterval(() => void pollUiVersion(), 1_000); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-matrix/src/runners/contract/runtime.ts b/extensions/qa-matrix/src/runners/contract/runtime.ts index 1671889ce40c..eac55e1ef6dd 100644 --- a/extensions/qa-matrix/src/runners/contract/runtime.ts +++ b/extensions/qa-matrix/src/runners/contract/runtime.ts @@ -1346,3 +1346,4 @@ export const testing = { waitForMatrixChannelReady, withMatrixQaRunDeadline, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-matrix/src/runners/contract/scenario-catalog.ts b/extensions/qa-matrix/src/runners/contract/scenario-catalog.ts index 6f964e552c8f..7ed716912fa6 100644 --- a/extensions/qa-matrix/src/runners/contract/scenario-catalog.ts +++ b/extensions/qa-matrix/src/runners/contract/scenario-catalog.ts @@ -1189,3 +1189,4 @@ export function resolveMatrixQaScenarioRoomId( } return findMatrixQaProvisionedRoom(context.topology, roomKey).roomId; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-matrix/src/runners/contract/scenario-runtime-approval.ts b/extensions/qa-matrix/src/runners/contract/scenario-runtime-approval.ts index 98065d6798b9..44e07e46adf7 100644 --- a/extensions/qa-matrix/src/runners/contract/scenario-runtime-approval.ts +++ b/extensions/qa-matrix/src/runners/contract/scenario-runtime-approval.ts @@ -729,3 +729,4 @@ export async function runApprovalChannelTargetBothScenario(context: MatrixQaScen ].join("\n"), } satisfies MatrixQaScenarioExecution; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-matrix/src/runners/contract/scenario-runtime-e2ee-destructive.ts b/extensions/qa-matrix/src/runners/contract/scenario-runtime-e2ee-destructive.ts index dc097a520d52..bdc4bf11d186 100644 --- a/extensions/qa-matrix/src/runners/contract/scenario-runtime-e2ee-destructive.ts +++ b/extensions/qa-matrix/src/runners/contract/scenario-runtime-e2ee-destructive.ts @@ -1729,3 +1729,4 @@ export async function runMatrixQaE2eeHistoryExistsBackupEmptyScenario( export const testing = { findMatrixQaCliAccountRoot, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-matrix/src/runners/contract/scenario-runtime-e2ee.ts b/extensions/qa-matrix/src/runners/contract/scenario-runtime-e2ee.ts index 8182f65f70c6..9242475fa42d 100644 --- a/extensions/qa-matrix/src/runners/contract/scenario-runtime-e2ee.ts +++ b/extensions/qa-matrix/src/runners/contract/scenario-runtime-e2ee.ts @@ -3667,3 +3667,4 @@ export async function runMatrixQaE2eeKeyBootstrapFailureScenario( ].join("\n"), }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-matrix/src/runners/contract/scenario-runtime-room.ts b/extensions/qa-matrix/src/runners/contract/scenario-runtime-room.ts index 9178769c996a..708dcf330803 100644 --- a/extensions/qa-matrix/src/runners/contract/scenario-runtime-room.ts +++ b/extensions/qa-matrix/src/runners/contract/scenario-runtime-room.ts @@ -1254,3 +1254,4 @@ export async function runReactionThreadedScenario(context: MatrixQaScenarioConte ].join("\n"), } satisfies MatrixQaScenarioExecution; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-matrix/src/runners/contract/scenarios.test.ts b/extensions/qa-matrix/src/runners/contract/scenarios.test.ts index 343d3f0e3d6c..393371cc4bc1 100644 --- a/extensions/qa-matrix/src/runners/contract/scenarios.test.ts +++ b/extensions/qa-matrix/src/runners/contract/scenarios.test.ts @@ -6455,3 +6455,4 @@ describe("matrix live qa scenarios", () => { expect(stop).toHaveBeenCalledTimes(1); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qa-matrix/src/substrate/client.ts b/extensions/qa-matrix/src/substrate/client.ts index dc84aa440d77..16e60b36e2d0 100644 --- a/extensions/qa-matrix/src/substrate/client.ts +++ b/extensions/qa-matrix/src/substrate/client.ts @@ -926,3 +926,4 @@ export const testing = { createMatrixQaRoomObserver, resolveNextRegistrationAuth, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qqbot/src/engine/gateway/outbound-dispatch.test.ts b/extensions/qqbot/src/engine/gateway/outbound-dispatch.test.ts index 583c41bb37b9..9b3d05c6f842 100644 --- a/extensions/qqbot/src/engine/gateway/outbound-dispatch.test.ts +++ b/extensions/qqbot/src/engine/gateway/outbound-dispatch.test.ts @@ -1478,3 +1478,4 @@ describe("dispatchOutbound", () => { ]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qqbot/src/engine/gateway/outbound-dispatch.ts b/extensions/qqbot/src/engine/gateway/outbound-dispatch.ts index 1a417c7b559a..bdcce731ec5e 100644 --- a/extensions/qqbot/src/engine/gateway/outbound-dispatch.ts +++ b/extensions/qqbot/src/engine/gateway/outbound-dispatch.ts @@ -852,3 +852,4 @@ async function buildCtxPayload( }, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qqbot/src/engine/messaging/outbound-deliver.ts b/extensions/qqbot/src/engine/messaging/outbound-deliver.ts index 21675d20f398..efaf08d40198 100644 --- a/extensions/qqbot/src/engine/messaging/outbound-deliver.ts +++ b/extensions/qqbot/src/engine/messaging/outbound-deliver.ts @@ -952,3 +952,4 @@ async function sendPlainTextReply( log?.error(`Send failed: ${formatErrorMessage(err)}`); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/qqbot/src/engine/messaging/outbound-media-send.ts b/extensions/qqbot/src/engine/messaging/outbound-media-send.ts index b709d1fd4c44..5fff436f984f 100644 --- a/extensions/qqbot/src/engine/messaging/outbound-media-send.ts +++ b/extensions/qqbot/src/engine/messaging/outbound-media-send.ts @@ -961,3 +961,4 @@ async function downloadToFallbackDir(httpUrl: string, caller: string): Promise = }, }, }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/signal/src/client-container.test.ts b/extensions/signal/src/client-container.test.ts index 1523349be739..f52d677900b3 100644 --- a/extensions/signal/src/client-container.test.ts +++ b/extensions/signal/src/client-container.test.ts @@ -1582,3 +1582,4 @@ describe("containerRemoveReaction", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/signal/src/client-container.ts b/extensions/signal/src/client-container.ts index b6ccada92c37..86da3c0647d6 100644 --- a/extensions/signal/src/client-container.ts +++ b/extensions/signal/src/client-container.ts @@ -862,3 +862,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/signal/src/core.test.ts b/extensions/signal/src/core.test.ts index d45b34a4d57a..4fa1651b557e 100644 --- a/extensions/signal/src/core.test.ts +++ b/extensions/signal/src/core.test.ts @@ -1290,3 +1290,4 @@ describe("signal setup parsing", () => { expect(next.channels?.signal?.accounts?.work?.allowFrom).toEqual(["+15555550123", "*"]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/signal/src/monitor/event-handler.inbound-context.test.ts b/extensions/signal/src/monitor/event-handler.inbound-context.test.ts index 34fea6ae5d86..4cb8f6e4a5bb 100644 --- a/extensions/signal/src/monitor/event-handler.inbound-context.test.ts +++ b/extensions/signal/src/monitor/event-handler.inbound-context.test.ts @@ -2159,3 +2159,4 @@ describe("signal createSignalEventHandler inbound context", () => { expect(dispatchInboundMessageMock).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/signal/src/monitor/event-handler.ts b/extensions/signal/src/monitor/event-handler.ts index 4cc983cba6f4..e0764bc8b242 100644 --- a/extensions/signal/src/monitor/event-handler.ts +++ b/extensions/signal/src/monitor/event-handler.ts @@ -1318,3 +1318,4 @@ export function createSignalEventHandler(deps: SignalEventHandlerDeps) { } }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/action-runtime.test.ts b/extensions/slack/src/action-runtime.test.ts index a4f10c6d1140..4c6a3cb7b077 100644 --- a/extensions/slack/src/action-runtime.test.ts +++ b/extensions/slack/src/action-runtime.test.ts @@ -1672,3 +1672,4 @@ describe("handleSlackAction", () => { expect(listSlackEmojis).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/action-runtime.ts b/extensions/slack/src/action-runtime.ts index 452feb9372e1..da86f71c92ee 100644 --- a/extensions/slack/src/action-runtime.ts +++ b/extensions/slack/src/action-runtime.ts @@ -949,3 +949,4 @@ export async function handleSlackAction( throw new Error(`Unknown action: ${action}`); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/approval-native.test.ts b/extensions/slack/src/approval-native.test.ts index 5bccb14b9060..6ff1fc522111 100644 --- a/extensions/slack/src/approval-native.test.ts +++ b/extensions/slack/src/approval-native.test.ts @@ -1217,3 +1217,4 @@ describe("slack native approval adapter", () => { ).toEqual({ authorized: true }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/channel.test.ts b/extensions/slack/src/channel.test.ts index 5517a1126310..2bb73377ed38 100644 --- a/extensions/slack/src/channel.test.ts +++ b/extensions/slack/src/channel.test.ts @@ -1661,3 +1661,4 @@ describe("slackPlugin config", () => { expect(snapshot?.signingSecretStatus).toBe("configured_unavailable"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/channel.ts b/extensions/slack/src/channel.ts index fc48d8357ebd..5d683d184d05 100644 --- a/extensions/slack/src/channel.ts +++ b/extensions/slack/src/channel.ts @@ -948,3 +948,4 @@ export const slackPlugin: ChannelPlugin = crea }, outbound: slackChannelOutbound, }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/message-action-dispatch.test.ts b/extensions/slack/src/message-action-dispatch.test.ts index 87c387222d04..2d4ceedd7e7a 100644 --- a/extensions/slack/src/message-action-dispatch.test.ts +++ b/extensions/slack/src/message-action-dispatch.test.ts @@ -1206,3 +1206,4 @@ describe("extractSlackToolSend", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/monitor/context.ts b/extensions/slack/src/monitor/context.ts index 9ba2a23f361b..1fd050fbe228 100644 --- a/extensions/slack/src/monitor/context.ts +++ b/extensions/slack/src/monitor/context.ts @@ -799,3 +799,4 @@ export function createSlackMonitorContext(params: { setSlackAssistantSuggestedPrompts, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/monitor/events/interactions.block-actions.ts b/extensions/slack/src/monitor/events/interactions.block-actions.ts index 93cfaf34d945..d453726e08f3 100644 --- a/extensions/slack/src/monitor/events/interactions.block-actions.ts +++ b/extensions/slack/src/monitor/events/interactions.block-actions.ts @@ -1153,3 +1153,4 @@ export function registerSlackBlockActionHandler(params: { }); }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/monitor/events/interactions.test.ts b/extensions/slack/src/monitor/events/interactions.test.ts index d7db098fda60..9dff30b22684 100644 --- a/extensions/slack/src/monitor/events/interactions.test.ts +++ b/extensions/slack/src/monitor/events/interactions.test.ts @@ -3863,3 +3863,4 @@ describe("registerSlackInteractionEvents", () => { }); }); const selectedDateTimeEpoch = 1_771_632_300; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/monitor/media.test.ts b/extensions/slack/src/monitor/media.test.ts index f1b6c04705cd..1ed5fc26885a 100644 --- a/extensions/slack/src/monitor/media.test.ts +++ b/extensions/slack/src/monitor/media.test.ts @@ -1350,3 +1350,4 @@ describe("resolveSlackThreadStarter", () => { expectVerboseLogContains("rate_limited"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/monitor/message-handler/dispatch.preview-fallback.test.ts b/extensions/slack/src/monitor/message-handler/dispatch.preview-fallback.test.ts index 0274478e4c82..daf17a1b4208 100644 --- a/extensions/slack/src/monitor/message-handler/dispatch.preview-fallback.test.ts +++ b/extensions/slack/src/monitor/message-handler/dispatch.preview-fallback.test.ts @@ -4417,3 +4417,4 @@ describe("dispatchPreparedSlackMessage preview fallback", () => { expect(postMessageMock).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/monitor/message-handler/dispatch.ts b/extensions/slack/src/monitor/message-handler/dispatch.ts index 35e43a823e90..d1e7d4c19d15 100644 --- a/extensions/slack/src/monitor/message-handler/dispatch.ts +++ b/extensions/slack/src/monitor/message-handler/dispatch.ts @@ -2240,3 +2240,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/monitor/message-handler/prepare.test.ts b/extensions/slack/src/monitor/message-handler/prepare.test.ts index 0f07c4eeecdd..2107ce213ed4 100644 --- a/extensions/slack/src/monitor/message-handler/prepare.test.ts +++ b/extensions/slack/src/monitor/message-handler/prepare.test.ts @@ -4600,3 +4600,4 @@ describe("slack thread.requireExplicitMention", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/monitor/message-handler/prepare.ts b/extensions/slack/src/monitor/message-handler/prepare.ts index 8650f2d55f7b..b56a3ba6492e 100644 --- a/extensions/slack/src/monitor/message-handler/prepare.ts +++ b/extensions/slack/src/monitor/message-handler/prepare.ts @@ -1713,3 +1713,4 @@ export async function prepareSlackMessage(params: { ackReactionPromise, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/monitor/provider.ts b/extensions/slack/src/monitor/provider.ts index f9ccf4492ba3..8c5099562bc3 100644 --- a/extensions/slack/src/monitor/provider.ts +++ b/extensions/slack/src/monitor/provider.ts @@ -775,3 +775,4 @@ export async function monitorSlackProvider(opts: MonitorSlackOpts = {}) { } export const resolveSlackRuntimeGroupPolicy = resolveOpenProviderRuntimeGroupPolicy; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/monitor/replies.test.ts b/extensions/slack/src/monitor/replies.test.ts index 713f7165812f..6be710fd5a2f 100644 --- a/extensions/slack/src/monitor/replies.test.ts +++ b/extensions/slack/src/monitor/replies.test.ts @@ -1308,3 +1308,4 @@ describe("deliverReplies message_sent hook", () => { expect(internalCalls[0]?.[0]?.context).toMatchObject({ isGroup: true, groupId: "C123" }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/monitor/slash.test.ts b/extensions/slack/src/monitor/slash.test.ts index 0cb7bcbe0d52..c8a834b1c316 100644 --- a/extensions/slack/src/monitor/slash.test.ts +++ b/extensions/slack/src/monitor/slash.test.ts @@ -1679,3 +1679,4 @@ describe("slack slash command session metadata", () => { expect(dispatchMock).toHaveBeenCalledTimes(1); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/monitor/slash.ts b/extensions/slack/src/monitor/slash.ts index 5c790b6afca7..229a7faeb025 100644 --- a/extensions/slack/src/monitor/slash.ts +++ b/extensions/slack/src/monitor/slash.ts @@ -1096,3 +1096,4 @@ export async function registerSlackMonitorSlashCommands(params: { registerArgAction(SLACK_COMMAND_ARG_ACTION_LISTENER); return registration; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/outbound-payload.test.ts b/extensions/slack/src/outbound-payload.test.ts index cca6d430677f..3d48564940cd 100644 --- a/extensions/slack/src/outbound-payload.test.ts +++ b/extensions/slack/src/outbound-payload.test.ts @@ -1215,3 +1215,4 @@ describe("Slack outbound payload contract", () => { createHarness: createSlackOutboundPayloadHarness, }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/send.blocks.test.ts b/extensions/slack/src/send.blocks.test.ts index afa2f07d928d..31c3191f7d3f 100644 --- a/extensions/slack/src/send.blocks.test.ts +++ b/extensions/slack/src/send.blocks.test.ts @@ -1356,3 +1356,4 @@ describe("sendMessageSlack blocks", () => { expect(client.chat.postMessage).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/slack/src/send.ts b/extensions/slack/src/send.ts index 34ccf1cee15e..033a57cc7d3a 100644 --- a/extensions/slack/src/send.ts +++ b/extensions/slack/src/send.ts @@ -1413,3 +1413,4 @@ async function sendMessageSlackQueuedInner(params: { }), }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/action-runtime.test.ts b/extensions/telegram/src/action-runtime.test.ts index f42fc1ec4f5d..a07a40edafaf 100644 --- a/extensions/telegram/src/action-runtime.test.ts +++ b/extensions/telegram/src/action-runtime.test.ts @@ -2150,3 +2150,4 @@ describe("handleTelegramAction per-account gating", () => { expect(options.accountId).toBe("media"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/action-runtime.ts b/extensions/telegram/src/action-runtime.ts index fd31cba6e7e6..4cdf3f0115dd 100644 --- a/extensions/telegram/src/action-runtime.ts +++ b/extensions/telegram/src/action-runtime.ts @@ -916,3 +916,4 @@ export async function handleTelegramAction( throw new Error(`Unsupported Telegram action: ${String(action)}`); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/bot-message-context.session.ts b/extensions/telegram/src/bot-message-context.session.ts index 0b889664f75a..baec49d899c1 100644 --- a/extensions/telegram/src/bot-message-context.session.ts +++ b/extensions/telegram/src/bot-message-context.session.ts @@ -721,3 +721,4 @@ export async function buildTelegramInboundContextPayload(params: { }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/bot-message-dispatch.test.ts b/extensions/telegram/src/bot-message-dispatch.test.ts index fadafe0bdf2d..92f20648685e 100644 --- a/extensions/telegram/src/bot-message-dispatch.test.ts +++ b/extensions/telegram/src/bot-message-dispatch.test.ts @@ -8403,3 +8403,4 @@ describe("dispatchTelegramMessage draft streaming", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/bot-message-dispatch.ts b/extensions/telegram/src/bot-message-dispatch.ts index d80b71661470..8289bc48dea5 100644 --- a/extensions/telegram/src/bot-message-dispatch.ts +++ b/extensions/telegram/src/bot-message-dispatch.ts @@ -3107,3 +3107,4 @@ export const dispatchTelegramMessage = async ({ } return { kind: "completed" }; }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/bot-native-commands.session-meta.test.ts b/extensions/telegram/src/bot-native-commands.session-meta.test.ts index 446784a31454..5a66d8711730 100644 --- a/extensions/telegram/src/bot-native-commands.session-meta.test.ts +++ b/extensions/telegram/src/bot-native-commands.session-meta.test.ts @@ -2067,3 +2067,4 @@ describe("registerTelegramNativeCommands — session metadata", () => { expect(deliveryCall.replies).toEqual([{ text: "No response generated. Please try again." }]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/bot-native-commands.ts b/extensions/telegram/src/bot-native-commands.ts index 317c707d75c0..6def74051f33 100644 --- a/extensions/telegram/src/bot-native-commands.ts +++ b/extensions/telegram/src/bot-native-commands.ts @@ -1968,3 +1968,4 @@ export const registerTelegramNativeCommands = ({ }).catch(() => {}); } }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/bot.create-telegram-bot.test.ts b/extensions/telegram/src/bot.create-telegram-bot.test.ts index 1485bea519bb..28b29bada93d 100644 --- a/extensions/telegram/src/bot.create-telegram-bot.test.ts +++ b/extensions/telegram/src/bot.create-telegram-bot.test.ts @@ -6086,3 +6086,4 @@ describe("createTelegramBot", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/bot.test.ts b/extensions/telegram/src/bot.test.ts index 55d8706e9183..b4391af54ea7 100644 --- a/extensions/telegram/src/bot.test.ts +++ b/extensions/telegram/src/bot.test.ts @@ -6996,3 +6996,4 @@ describe("createTelegramBot", () => { expect(enqueueSystemEventSpy).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/bot/delivery.replies.ts b/extensions/telegram/src/bot/delivery.replies.ts index 0394a74505a7..5f48a07158ad 100644 --- a/extensions/telegram/src/bot/delivery.replies.ts +++ b/extensions/telegram/src/bot/delivery.replies.ts @@ -1045,3 +1045,4 @@ export async function deliverReplies(params: { return { delivered: progress.hasDelivered }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/bot/delivery.resolve-media-retry.test.ts b/extensions/telegram/src/bot/delivery.resolve-media-retry.test.ts index 2c089103d1f4..3a0187021773 100644 --- a/extensions/telegram/src/bot/delivery.resolve-media-retry.test.ts +++ b/extensions/telegram/src/bot/delivery.resolve-media-retry.test.ts @@ -1226,3 +1226,4 @@ describe("resolveMedia original filename preservation", () => { requireResolvedMedia(result, "custom apiRoot sticker URL"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/bot/delivery.test.ts b/extensions/telegram/src/bot/delivery.test.ts index 05327fa7091e..7ece619d6e4f 100644 --- a/extensions/telegram/src/bot/delivery.test.ts +++ b/extensions/telegram/src/bot/delivery.test.ts @@ -2149,3 +2149,4 @@ describe("deliverReplies", () => { expect(observer).toHaveBeenCalledWith({ messageId: 303, text: "Voice fallback" }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/channel.ts b/extensions/telegram/src/channel.ts index e1b95d21ae66..2e91fdbb5109 100644 --- a/extensions/telegram/src/channel.ts +++ b/extensions/telegram/src/channel.ts @@ -1227,3 +1227,4 @@ export const telegramPlugin = createChatChannelPlugin({ }, outbound: telegramChannelOutbound, }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/draft-stream.test.ts b/extensions/telegram/src/draft-stream.test.ts index 7624f99b300f..aab94c9a362f 100644 --- a/extensions/telegram/src/draft-stream.test.ts +++ b/extensions/telegram/src/draft-stream.test.ts @@ -1933,3 +1933,4 @@ describe("draft stream initial message debounce", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/draft-stream.ts b/extensions/telegram/src/draft-stream.ts index 7e3ba9e844bf..ca4f609e3268 100644 --- a/extensions/telegram/src/draft-stream.ts +++ b/extensions/telegram/src/draft-stream.ts @@ -912,3 +912,4 @@ export function createTelegramDraftStream(params: { sendMayHaveLanded: () => messageSendAttempted && typeof streamMessageId !== "number", }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/fetch.test.ts b/extensions/telegram/src/fetch.test.ts index b5dd99fd0d39..b9611dad91a6 100644 --- a/extensions/telegram/src/fetch.test.ts +++ b/extensions/telegram/src/fetch.test.ts @@ -1358,3 +1358,4 @@ describe("resolveTelegramFetch", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/fetch.ts b/extensions/telegram/src/fetch.ts index 07ea00f08779..54025f2d63f5 100644 --- a/extensions/telegram/src/fetch.ts +++ b/extensions/telegram/src/fetch.ts @@ -898,3 +898,4 @@ export function resolveTelegramFetch( export function resolveTelegramApiBase(apiRoot?: string): string { return normalizeTelegramApiRoot(apiRoot); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/format.ts b/extensions/telegram/src/format.ts index f73586208b42..c39293f3de89 100644 --- a/extensions/telegram/src/format.ts +++ b/extensions/telegram/src/format.ts @@ -1542,3 +1542,4 @@ export function markdownToTelegramHtmlChunks( ): string[] { return markdownToTelegramChunks(markdown, limit, options).map((chunk) => chunk.html); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/lane-delivery.test.ts b/extensions/telegram/src/lane-delivery.test.ts index 4960157fa326..5bba95e139d6 100644 --- a/extensions/telegram/src/lane-delivery.test.ts +++ b/extensions/telegram/src/lane-delivery.test.ts @@ -1181,3 +1181,4 @@ describe("createLaneTextDeliverer", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/message-cache.test.ts b/extensions/telegram/src/message-cache.test.ts index cda34a778308..e79b4b124c6b 100644 --- a/extensions/telegram/src/message-cache.test.ts +++ b/extensions/telegram/src/message-cache.test.ts @@ -1473,3 +1473,4 @@ describe("telegram message cache", () => { expect(context.map((entry) => entry.node.body)).not.toContain("tools.toolSearch: true"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/message-cache.ts b/extensions/telegram/src/message-cache.ts index 367e4924e03d..8acfc1ab7ac4 100644 --- a/extensions/telegram/src/message-cache.ts +++ b/extensions/telegram/src/message-cache.ts @@ -882,3 +882,4 @@ export async function buildTelegramConversationContext(params: { compareCachedMessageNodes(left.node, right.node), ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/polling-session.test.ts b/extensions/telegram/src/polling-session.test.ts index 2b60bfcd23b3..f60cd9e2d5fb 100644 --- a/extensions/telegram/src/polling-session.test.ts +++ b/extensions/telegram/src/polling-session.test.ts @@ -5818,3 +5818,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/polling-session.ts b/extensions/telegram/src/polling-session.ts index 59ece14bd66a..0f96421e843a 100644 --- a/extensions/telegram/src/polling-session.ts +++ b/extensions/telegram/src/polling-session.ts @@ -1790,3 +1790,4 @@ export const testing = { resolveSpooledUpdateHandlerAbortGraceMs: (valueMs: unknown): number => resolvePositiveTimerTimeoutMs(valueMs, TELEGRAM_SPOOLED_HANDLER_ABORT_GRACE_MS), }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/send.test.ts b/extensions/telegram/src/send.test.ts index c4a287bebd77..fad41b8a0c95 100644 --- a/extensions/telegram/src/send.test.ts +++ b/extensions/telegram/src/send.test.ts @@ -4742,3 +4742,4 @@ describe("createForumTopicTelegram", () => { expect(botCtorSpy).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/send.ts b/extensions/telegram/src/send.ts index 5bd850e52b00..c9eb0fed4461 100644 --- a/extensions/telegram/src/send.ts +++ b/extensions/telegram/src/send.ts @@ -2717,3 +2717,4 @@ async function createForumTopicTelegramWithContext( chatId: normalizedChatId, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/thread-bindings.ts b/extensions/telegram/src/thread-bindings.ts index 7ee8773a10d4..602001928879 100644 --- a/extensions/telegram/src/thread-bindings.ts +++ b/extensions/telegram/src/thread-bindings.ts @@ -1031,3 +1031,4 @@ export const testing = { resolveStoredBindingKey, }; export { testing as __testing }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/webhook.test.ts b/extensions/telegram/src/webhook.test.ts index 61033fca772d..44aab795690c 100644 --- a/extensions/telegram/src/webhook.test.ts +++ b/extensions/telegram/src/webhook.test.ts @@ -1773,3 +1773,4 @@ describe("startTelegramWebhook", () => { expect(transportCloseSpies[0]).toHaveBeenCalledTimes(1); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/telegram/src/webhook.ts b/extensions/telegram/src/webhook.ts index 9290fa25930b..8b12ccfbf805 100644 --- a/extensions/telegram/src/webhook.ts +++ b/extensions/telegram/src/webhook.ts @@ -1107,3 +1107,4 @@ export async function startTelegramWebhook(opts: { return { server, bot, stop: shutdown }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/tlon/src/monitor/index.ts b/extensions/tlon/src/monitor/index.ts index 5fb4221a7a4f..2787e8e34ef4 100644 --- a/extensions/tlon/src/monitor/index.ts +++ b/extensions/tlon/src/monitor/index.ts @@ -1522,3 +1522,4 @@ export async function monitorTlonProvider(opts: MonitorTlonOpts = {}): Promise { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/voice-call/index.ts b/extensions/voice-call/index.ts index aa6a9622de40..033565621b50 100644 --- a/extensions/voice-call/index.ts +++ b/extensions/voice-call/index.ts @@ -908,3 +908,4 @@ export default definePluginEntry({ }); }, }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/voice-call/src/cli.ts b/extensions/voice-call/src/cli.ts index d3e4c9013f55..a55ea32843f9 100644 --- a/extensions/voice-call/src/cli.ts +++ b/extensions/voice-call/src/cli.ts @@ -926,3 +926,4 @@ export function registerVoiceCallCli(params: { }, ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/voice-call/src/media-stream.ts b/extensions/voice-call/src/media-stream.ts index e6572ff1fc19..f7cb027447ab 100644 --- a/extensions/voice-call/src/media-stream.ts +++ b/extensions/voice-call/src/media-stream.ts @@ -865,3 +865,4 @@ interface TwilioMediaMessage { name: string; }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/voice-call/src/webhook.test.ts b/extensions/voice-call/src/webhook.test.ts index d6d96ba8fe24..e9f0d27185a9 100644 --- a/extensions/voice-call/src/webhook.test.ts +++ b/extensions/voice-call/src/webhook.test.ts @@ -2350,3 +2350,4 @@ describe("VoiceCallWebhookServer webhook event path auto-response (#79118)", () } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/voice-call/src/webhook.ts b/extensions/voice-call/src/webhook.ts index f6d070c8fa5a..f43c260156a7 100644 --- a/extensions/voice-call/src/webhook.ts +++ b/extensions/voice-call/src/webhook.ts @@ -1035,3 +1035,4 @@ export class VoiceCallWebhookServer { } } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/voice-call/src/webhook/realtime-handler.test.ts b/extensions/voice-call/src/webhook/realtime-handler.test.ts index ace5805c2d04..e3be4767f55b 100644 --- a/extensions/voice-call/src/webhook/realtime-handler.test.ts +++ b/extensions/voice-call/src/webhook/realtime-handler.test.ts @@ -1892,3 +1892,4 @@ describe("RealtimeCallHandler websocket hardening", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/voice-call/src/webhook/realtime-handler.ts b/extensions/voice-call/src/webhook/realtime-handler.ts index cef5b87ea77a..c7e40e4c8893 100644 --- a/extensions/voice-call/src/webhook/realtime-handler.ts +++ b/extensions/voice-call/src/webhook/realtime-handler.ts @@ -1499,3 +1499,4 @@ export class RealtimeCallHandler { } } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/webhooks/src/http.ts b/extensions/webhooks/src/http.ts index 6af0c024100e..fddfac3670a9 100644 --- a/extensions/webhooks/src/http.ts +++ b/extensions/webhooks/src/http.ts @@ -809,3 +809,4 @@ export function createTaskFlowWebhookRequestHandler(params: { }); }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/whatsapp/src/auto-reply.web-auto-reply.connection-and-logging.e2e.test.ts b/extensions/whatsapp/src/auto-reply.web-auto-reply.connection-and-logging.e2e.test.ts index ec5da5f5d5e2..7fe050747301 100644 --- a/extensions/whatsapp/src/auto-reply.web-auto-reply.connection-and-logging.e2e.test.ts +++ b/extensions/whatsapp/src/auto-reply.web-auto-reply.connection-and-logging.e2e.test.ts @@ -1327,3 +1327,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/whatsapp/src/auto-reply/monitor/inbound-dispatch.test.ts b/extensions/whatsapp/src/auto-reply/monitor/inbound-dispatch.test.ts index 9d9eac0da6c5..275f05dbf08a 100644 --- a/extensions/whatsapp/src/auto-reply/monitor/inbound-dispatch.test.ts +++ b/extensions/whatsapp/src/auto-reply/monitor/inbound-dispatch.test.ts @@ -1658,3 +1658,4 @@ describe("whatsapp inbound dispatch", () => { ).toBe("+15550003333"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/whatsapp/src/auto-reply/monitor/inbound-dispatch.ts b/extensions/whatsapp/src/auto-reply/monitor/inbound-dispatch.ts index 2df3c83e45ad..6749f3518c6a 100644 --- a/extensions/whatsapp/src/auto-reply/monitor/inbound-dispatch.ts +++ b/extensions/whatsapp/src/auto-reply/monitor/inbound-dispatch.ts @@ -907,3 +907,4 @@ async function finalizeWhatsAppStatusReaction(params: { } await params.controller.restoreInitial(); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/whatsapp/src/connection-controller.ts b/extensions/whatsapp/src/connection-controller.ts index 8d32e42e6791..3ec1796666c0 100644 --- a/extensions/whatsapp/src/connection-controller.ts +++ b/extensions/whatsapp/src/connection-controller.ts @@ -883,3 +883,4 @@ export class WhatsAppConnectionController { } } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/whatsapp/src/inbound/monitor.ts b/extensions/whatsapp/src/inbound/monitor.ts index f863bcf74083..1d6f002670b2 100644 --- a/extensions/whatsapp/src/inbound/monitor.ts +++ b/extensions/whatsapp/src/inbound/monitor.ts @@ -1859,3 +1859,4 @@ export async function monitorWebInbox(options: MonitorWebInboxOptions) { baileysGroupMetaCache, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/whatsapp/src/monitor-inbox.streams-inbound-messages.test-support.ts b/extensions/whatsapp/src/monitor-inbox.streams-inbound-messages.test-support.ts index 0d5788875621..6fd98dcd02a5 100644 --- a/extensions/whatsapp/src/monitor-inbox.streams-inbound-messages.test-support.ts +++ b/extensions/whatsapp/src/monitor-inbox.streams-inbound-messages.test-support.ts @@ -1948,3 +1948,4 @@ describe("web monitor inbox", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/workboard/src/sqlite-store.ts b/extensions/workboard/src/sqlite-store.ts index a1f3794646ba..19789598e236 100644 --- a/extensions/workboard/src/sqlite-store.ts +++ b/extensions/workboard/src/sqlite-store.ts @@ -1428,3 +1428,4 @@ export function createWorkboardSqliteStores( }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/workboard/src/store-card-helpers.ts b/extensions/workboard/src/store-card-helpers.ts index 6ef9509f6451..ea995b4c8b0d 100644 --- a/extensions/workboard/src/store-card-helpers.ts +++ b/extensions/workboard/src/store-card-helpers.ts @@ -742,3 +742,4 @@ export function compareNotifications(a: WorkboardNotification, b: WorkboardNotif } return a.id.localeCompare(b.id); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/workboard/src/store-core.ts b/extensions/workboard/src/store-core.ts index 7c205d90a8d6..15b25459441e 100644 --- a/extensions/workboard/src/store-core.ts +++ b/extensions/workboard/src/store-core.ts @@ -914,3 +914,4 @@ export class WorkboardCoreStore { return await this.updateCard(card.id, { status: target }); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/workboard/src/store-normalizers.ts b/extensions/workboard/src/store-normalizers.ts index 993a88832150..2ff38c7d6aa8 100644 --- a/extensions/workboard/src/store-normalizers.ts +++ b/extensions/workboard/src/store-normalizers.ts @@ -1337,3 +1337,4 @@ export function trimMetadataToBudget(metadata: WorkboardMetadata): WorkboardMeta } return next; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/workboard/src/store.test.ts b/extensions/workboard/src/store.test.ts index 7031b8fedb4a..81798f127207 100644 --- a/extensions/workboard/src/store.test.ts +++ b/extensions/workboard/src/store.test.ts @@ -3038,3 +3038,4 @@ describe("WorkboardStore", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/workboard/src/tools.ts b/extensions/workboard/src/tools.ts index ab5320e74078..ee7ce759a928 100644 --- a/extensions/workboard/src/tools.ts +++ b/extensions/workboard/src/tools.ts @@ -1034,3 +1034,4 @@ export function createWorkboardTools(params: { }, ]; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/workspaces/src/gateway.ts b/extensions/workspaces/src/gateway.ts index f71dbc9390c5..032f0c5784bf 100644 --- a/extensions/workspaces/src/gateway.ts +++ b/extensions/workspaces/src/gateway.ts @@ -828,3 +828,4 @@ function readSlugOrder(value: unknown): string[] { return entry; }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/workspaces/src/tools.ts b/extensions/workspaces/src/tools.ts index 9c1f999a87d1..24bd5ea2c871 100644 --- a/extensions/workspaces/src/tools.ts +++ b/extensions/workspaces/src/tools.ts @@ -903,3 +903,4 @@ export function createWorkspaceTools(params: WorkspaceToolParams): AnyAgentTool[ }, ]; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/xai/realtime-voice-provider.test.ts b/extensions/xai/realtime-voice-provider.test.ts index 6bd2a90c5ea0..f928acef0562 100644 --- a/extensions/xai/realtime-voice-provider.test.ts +++ b/extensions/xai/realtime-voice-provider.test.ts @@ -1748,3 +1748,4 @@ describe("buildXaiRealtimeVoiceProvider", () => { expect(session.tool_choice).toBe("auto"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/xai/web-search.test.ts b/extensions/xai/web-search.test.ts index ae142baf8281..b2d753c8ccda 100644 --- a/extensions/xai/web-search.test.ts +++ b/extensions/xai/web-search.test.ts @@ -1306,3 +1306,4 @@ describe("xai provider models", () => { expect(model).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/zalo/src/monitor.ts b/extensions/zalo/src/monitor.ts index 63caf3f12045..09dee2a56a8b 100644 --- a/extensions/zalo/src/monitor.ts +++ b/extensions/zalo/src/monitor.ts @@ -1025,3 +1025,4 @@ export const testing = { clearHostedMediaRouteRefsForTest: () => hostedMediaRouteRefs.clear(), handleZaloWebhookRequest, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/zalouser/src/monitor.ts b/extensions/zalouser/src/monitor.ts index e0d638431402..4e89c2cc7913 100644 --- a/extensions/zalouser/src/monitor.ts +++ b/extensions/zalouser/src/monitor.ts @@ -1059,3 +1059,4 @@ const testing = { }, }; export { testing as __testing }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/extensions/zalouser/src/zalo-js.ts b/extensions/zalouser/src/zalo-js.ts index 04b39b87d4e4..689d3429225c 100644 --- a/extensions/zalouser/src/zalo-js.ts +++ b/extensions/zalouser/src/zalo-js.ts @@ -1993,3 +1993,4 @@ export async function resolveZaloAllowFromEntries(params: { }; }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/package.json b/package.json index 720ebda3f748..8d4075facc2d 100644 --- a/package.json +++ b/package.json @@ -1562,7 +1562,7 @@ "check:docs": "pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-mdx && pnpm docs:check-i18n-glossary && pnpm docs:check-links && pnpm docs:map:check", "check:host-env-policy:swift": "node scripts/generate-host-env-security-policy-swift.mjs --check", "check:import-cycles": "node --import tsx scripts/check-import-cycles.ts", - "check:loc": "node --import tsx scripts/check-ts-max-loc.ts", + "check:max-lines-ratchet": "node scripts/check-max-lines-ratchet.mjs", "check:madge-import-cycles": "node --import tsx scripts/check-madge-import-cycles.ts", "check:media-download-helpers": "node scripts/check-media-download-helper-roundtrip.mjs", "check:no-conflict-markers": "node scripts/check-no-conflict-markers.mjs", diff --git a/packages/agent-core/src/agent-loop.test.ts b/packages/agent-core/src/agent-loop.test.ts index ec2fe3b02a9c..167e2f84c68f 100644 --- a/packages/agent-core/src/agent-loop.test.ts +++ b/packages/agent-core/src/agent-loop.test.ts @@ -1570,3 +1570,4 @@ describe("agentLoop thinking state", () => { expect(observedReasoning).toEqual(expected); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/agent-core/src/agent-loop.ts b/packages/agent-core/src/agent-loop.ts index 99eb0944c616..37466082afac 100644 --- a/packages/agent-core/src/agent-loop.ts +++ b/packages/agent-core/src/agent-loop.ts @@ -1126,3 +1126,4 @@ async function emitToolResultMessage( await emit({ type: "message_start", message: toolResultMessage }); await emit({ type: "message_end", message: toolResultMessage }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/agent-core/src/harness/agent-harness.ts b/packages/agent-core/src/harness/agent-harness.ts index 1533af3feadf..ba29b556748d 100644 --- a/packages/agent-core/src/harness/agent-harness.ts +++ b/packages/agent-core/src/harness/agent-harness.ts @@ -1195,3 +1195,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/agent-core/src/harness/compaction/compaction.ts b/packages/agent-core/src/harness/compaction/compaction.ts index 516e953cb77a..f48ace5bea27 100644 --- a/packages/agent-core/src/harness/compaction/compaction.ts +++ b/packages/agent-core/src/harness/compaction/compaction.ts @@ -923,3 +923,4 @@ async function generateTurnPrefixSummary( errorLabel: "Turn prefix summarization", }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/ai/src/providers/agent-tools-parameter-schema.ts b/packages/ai/src/providers/agent-tools-parameter-schema.ts index c2fd1000cee5..d770f07c0e43 100644 --- a/packages/ai/src/providers/agent-tools-parameter-schema.ts +++ b/packages/ai/src/providers/agent-tools-parameter-schema.ts @@ -969,3 +969,4 @@ export function normalizeToolParameterSchema( normalizeToolParameterSchemaUncached(schema, options), ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/ai/src/providers/anthropic.test.ts b/packages/ai/src/providers/anthropic.test.ts index f9451763c39f..0ed55a259767 100644 --- a/packages/ai/src/providers/anthropic.test.ts +++ b/packages/ai/src/providers/anthropic.test.ts @@ -2373,3 +2373,4 @@ describe("Anthropic provider", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/ai/src/providers/anthropic.ts b/packages/ai/src/providers/anthropic.ts index 50839278545c..df5364366812 100644 --- a/packages/ai/src/providers/anthropic.ts +++ b/packages/ai/src/providers/anthropic.ts @@ -1663,3 +1663,4 @@ function mapStopReason(reason: string): StopReason { throw new Error(`Unhandled stop reason: ${reason}`); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/ai/src/providers/google-shared.ts b/packages/ai/src/providers/google-shared.ts index b6d6df9682b3..bf0171197dff 100644 --- a/packages/ai/src/providers/google-shared.ts +++ b/packages/ai/src/providers/google-shared.ts @@ -917,3 +917,4 @@ export async function consumeGoogleGenerateContentStream { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/ai/src/providers/openai-completions.ts b/packages/ai/src/providers/openai-completions.ts index c97579e6317f..cf852f8714cb 100644 --- a/packages/ai/src/providers/openai-completions.ts +++ b/packages/ai/src/providers/openai-completions.ts @@ -1454,3 +1454,4 @@ function getCompat(model: Model<"openai-completions">): ResolvedOpenAICompletion model.compat.supportsLongCacheRetention ?? detected.supportsLongCacheRetention, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/ai/src/providers/openai-responses-shared.test.ts b/packages/ai/src/providers/openai-responses-shared.test.ts index db8c295c2591..ab10d4ae1411 100644 --- a/packages/ai/src/providers/openai-responses-shared.test.ts +++ b/packages/ai/src/providers/openai-responses-shared.test.ts @@ -2580,3 +2580,4 @@ describe("Azure OpenAI Responses content type support", () => { expect(liveTextSignatures).toEqual([undefined, undefined, undefined]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/ai/src/providers/openai-responses-shared.ts b/packages/ai/src/providers/openai-responses-shared.ts index a43d245491fd..be55eda6534d 100644 --- a/packages/ai/src/providers/openai-responses-shared.ts +++ b/packages/ai/src/providers/openai-responses-shared.ts @@ -1313,3 +1313,4 @@ function mapStopReason(status: OpenAI.Responses.ResponseStatus | undefined): Sto } } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/gateway-client/src/client.ts b/packages/gateway-client/src/client.ts index 62ee97cdc3a4..968f61adfa85 100644 --- a/packages/gateway-client/src/client.ts +++ b/packages/gateway-client/src/client.ts @@ -1228,3 +1228,4 @@ function createGatewayRequestAbortError(method: string): Error { err.name = "AbortError"; return err; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/gateway-protocol/src/index.ts b/packages/gateway-protocol/src/index.ts index b34ecd0579a4..6b960c7b26ed 100644 --- a/packages/gateway-protocol/src/index.ts +++ b/packages/gateway-protocol/src/index.ts @@ -1701,3 +1701,4 @@ type GatewayAgentRuntime = { | "session" | "session-key"; }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/gateway-protocol/src/schema/agents-models-skills.ts b/packages/gateway-protocol/src/schema/agents-models-skills.ts index c6cc643363d8..31c72a171581 100644 --- a/packages/gateway-protocol/src/schema/agents-models-skills.ts +++ b/packages/gateway-protocol/src/schema/agents-models-skills.ts @@ -963,3 +963,4 @@ export type SkillsUploadChunkParams = Static; export type SkillsInstallParams = Static; export type SkillsUpdateParams = Static; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/gateway-protocol/src/schema/protocol-schemas.ts b/packages/gateway-protocol/src/schema/protocol-schemas.ts index a17b50e950c0..0e7259073187 100644 --- a/packages/gateway-protocol/src/schema/protocol-schemas.ts +++ b/packages/gateway-protocol/src/schema/protocol-schemas.ts @@ -979,3 +979,4 @@ export { MIN_PROBE_PROTOCOL_VERSION, PROTOCOL_VERSION, } from "../version.js"; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/markdown-core/src/ir.ts b/packages/markdown-core/src/ir.ts index 9c2b9ef57f50..22b097a60088 100644 --- a/packages/markdown-core/src/ir.ts +++ b/packages/markdown-core/src/ir.ts @@ -1138,3 +1138,4 @@ export function chunkMarkdownIR(ir: MarkdownIR, limit: number): MarkdownIR[] { return results; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/memory-host-sdk/src/host/session-files.ts b/packages/memory-host-sdk/src/host/session-files.ts index 5ee002604e58..8b2f5e671f39 100644 --- a/packages/memory-host-sdk/src/host/session-files.ts +++ b/packages/memory-host-sdk/src/host/session-files.ts @@ -898,3 +898,4 @@ export async function buildSessionEntry( return null; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/model-catalog-core/src/model-catalog-normalize.ts b/packages/model-catalog-core/src/model-catalog-normalize.ts index aa0403cfcf6b..9e80e91c9650 100644 --- a/packages/model-catalog-core/src/model-catalog-normalize.ts +++ b/packages/model-catalog-core/src/model-catalog-normalize.ts @@ -763,3 +763,4 @@ export function normalizeModelCatalogProviderRows(params: { return rows.toSorted((a, b) => a.provider.localeCompare(b.provider) || a.id.localeCompare(b.id)); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/sdk/src/client.ts b/packages/sdk/src/client.ts index 0bf074dec509..4e00c4c92141 100644 --- a/packages/sdk/src/client.ts +++ b/packages/sdk/src/client.ts @@ -974,3 +974,4 @@ export class EnvironmentsNamespace extends RpcNamespace { return unsupportedGatewayApi("oc.environments.delete"); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/sdk/src/index.test.ts b/packages/sdk/src/index.test.ts index 8ed0de5e9b86..71a99b8c6db8 100644 --- a/packages/sdk/src/index.test.ts +++ b/packages/sdk/src/index.test.ts @@ -1655,3 +1655,4 @@ describe("OpenClaw SDK", () => { expect(timedOut.data).toEqual({ phase: "end", stopReason: "timeout" }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/speech-core/src/tts.test.ts b/packages/speech-core/src/tts.test.ts index d5be0efad0f7..bfa37124b6ac 100644 --- a/packages/speech-core/src/tts.test.ts +++ b/packages/speech-core/src/tts.test.ts @@ -1538,3 +1538,4 @@ describe("speech-core per-agent TTS config", () => { expect(({} as Record).polluted).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/speech-core/src/tts.ts b/packages/speech-core/src/tts.ts index 9e72487ae00a..0a3a400debc5 100644 --- a/packages/speech-core/src/tts.ts +++ b/packages/speech-core/src/tts.ts @@ -2136,3 +2136,4 @@ export const testApi = { formatTtsProviderError, sanitizeTtsErrorForLog, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/tool-call-repair/src/stream-normalizer.test.ts b/packages/tool-call-repair/src/stream-normalizer.test.ts index 044e80378087..2f25a72d614d 100644 --- a/packages/tool-call-repair/src/stream-normalizer.test.ts +++ b/packages/tool-call-repair/src/stream-normalizer.test.ts @@ -1184,3 +1184,4 @@ describe("normalizePlainTextToolCallStreamEvents over-cap XML", () => { expect(events).toEqual([]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/packages/tool-call-repair/src/stream-normalizer.ts b/packages/tool-call-repair/src/stream-normalizer.ts index 9fb1a1359136..6007d9e123dd 100644 --- a/packages/tool-call-repair/src/stream-normalizer.ts +++ b/packages/tool-call-repair/src/stream-normalizer.ts @@ -1629,3 +1629,4 @@ export async function* normalizePlainTextToolCallStreamEvents( yield event; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/scripts/check-changed.mjs b/scripts/check-changed.mjs index 6e48816b457d..2f4ae3a6a704 100644 --- a/scripts/check-changed.mjs +++ b/scripts/check-changed.mjs @@ -27,7 +27,6 @@ import { resolveLocalHeavyCheckEnv, } from "./lib/local-heavy-check-runtime.mjs"; import { runManagedCommand } from "./lib/managed-child-process.mjs"; -import { isProductionTypeScriptFile } from "./lib/ts-loc-policy.mjs"; import { createSparseTsgoSkipEnv } from "./lib/tsgo-sparse-guard.mjs"; const SHRINKWRAP_POLICY_PATH_RE = @@ -399,14 +398,18 @@ export function createChangedCheckPlan(result, options = {}) { }; add("conflict markers", ["check:no-conflict-markers"]); - if (result.paths.some(isProductionTypeScriptFile)) { - // Deliberately omit --head here: local changed checks must inspect worktree and untracked - // content. Exact-tree CI calls check:loc directly with both refs. - add("TypeScript LOC ratchet", [ - "check:loc", - ...(options.staged ? ["--staged"] : ["--base", options.base ?? "origin/main"]), - "--", - ...result.paths, + if ( + result.paths.some((filePath) => + /^(?:src\/|ui\/src\/|packages\/|extensions\/|\.oxlintrc\.json$|config\/max-lines-baseline\.txt$|scripts\/check-max-lines-ratchet\.mjs$)/u.test( + filePath, + ), + ) + ) { + add("max-lines suppression ratchet", [ + "check:max-lines-ratchet", + ...(options.staged ? ["--staged"] : []), + "--base", + options.staged ? "HEAD" : (options.base ?? "origin/main"), ]); } add("changelog attributions", ["check:changelog-attributions"]); diff --git a/scripts/check-max-lines-ratchet.d.mts b/scripts/check-max-lines-ratchet.d.mts new file mode 100644 index 000000000000..6f6dbe483805 --- /dev/null +++ b/scripts/check-max-lines-ratchet.d.mts @@ -0,0 +1,20 @@ +export function isGovernedSourcePath(filePath: string): boolean; +export function collectLintDisableDirectives(source: string, filePath?: string): string[][]; +export function isMaxLinesRule(rule: string): boolean; +export function hasMaxLinesDisable(source: string, filePath?: string): boolean; +export function hasAllRuleDisable(source: string, filePath?: string): boolean; +export function parseBaseline(source: string): Set; +export function diffBaseline( + current: Iterable, + baseline: ReadonlySet, +): { added: string[]; stale: string[] }; +export function findBaselineExpansion( + current: Iterable, + base: ReadonlySet, +): string[]; +export function collectCurrentSuppressions(root?: string, options?: { staged?: boolean }): string[]; +export function collectCurrentSuppressionState( + root?: string, + options?: { staged?: boolean }, +): { allRules: string[]; explicit: string[] }; +export function main(root?: string, argv?: string[]): number; diff --git a/scripts/check-max-lines-ratchet.mjs b/scripts/check-max-lines-ratchet.mjs new file mode 100644 index 000000000000..4765d7231c61 --- /dev/null +++ b/scripts/check-max-lines-ratchet.mjs @@ -0,0 +1,389 @@ +import { execFileSync, spawnSync } from "node:child_process"; +import fs from "node:fs"; +import path from "node:path"; +import { pathToFileURL } from "node:url"; +import ts from "typescript"; + +const BASELINE_PATH = "config/max-lines-baseline.txt"; +const GIT_MAX_BUFFER = 256 * 1024 * 1024; +const SOURCE_ROOTS = ["src", "ui/src", "packages", "extensions"]; +const SOURCE_EXTENSIONS = new Set([".js", ".jsx", ".ts", ".tsx", ".mjs", ".cjs", ".mts", ".cts"]); +const BASELINE_HEADER = [ + "# Files currently allowed to exceed the oxlint max-lines budget.", + "# Ratchet: this list may only shrink. Split files; never add entries.", + "# Existing suppressions carry a TODO at the file site.", + "", +].join("\n"); +const compareStrings = (left, right) => left.localeCompare(right); + +export function isGovernedSourcePath(filePath) { + const normalized = filePath.replaceAll("\\", "/"); + if (!SOURCE_ROOTS.some((root) => normalized === root || normalized.startsWith(root + "/"))) { + return false; + } + if (!SOURCE_EXTENSIONS.has(path.posix.extname(normalized))) { + return false; + } + return !( + normalized.startsWith("ui/src/i18n/locales/") || + normalized.startsWith("src/wizard/i18n/locales/") || + /(?:^|\/)(?:__generated__|generated|protocol-gen|dist)(?:\/|$)/u.test(normalized) || + /\.generated\.[^/]+$/u.test(normalized) + ); +} + +export function collectLintDisableDirectives(source, filePath = "source.ts") { + if (!source.includes("oxlint-disable") && !source.includes("eslint-disable")) { + return []; + } + const directive = /^(?:eslint|oxlint)-disable(?:-next-line|-line)?(?=$|\s)([\s\S]*)$/u; + const scriptKind = /\.[cm]?[jt]sx$/u.test(filePath) ? ts.ScriptKind.TSX : ts.ScriptKind.TS; + const sourceFile = ts.createSourceFile( + filePath, + source, + ts.ScriptTarget.Latest, + false, + scriptKind, + ); + const comments = new Map(); + const addComments = (ranges) => { + for (const range of ranges ?? []) { + comments.set(range.pos, source.slice(range.pos, range.end)); + } + }; + const visit = (node) => { + addComments(ts.getLeadingCommentRanges(source, node.pos)); + addComments(ts.getTrailingCommentRanges(source, node.end)); + // getChildren includes delimiter tokens; forEachChild misses directives before closing tokens. + for (const child of node.getChildren(sourceFile)) { + visit(child); + } + }; + visit(sourceFile); + addComments(ts.getLeadingCommentRanges(source, sourceFile.endOfFileToken.pos)); + + const directives = []; + for (const text of comments.values()) { + const comment = text.slice(2, text.startsWith("/*") ? -2 : undefined); + const match = directive.exec(comment.trim()); + if (!match) { + continue; + } + const directiveBody = match[1] ?? ""; + const reason = /--|(?<=\s)-(?=\s)/u.exec(directiveBody); + const rules = (reason ? directiveBody.slice(0, reason.index) : directiveBody).trim(); + directives.push(rules === "" ? [] : rules.split(/[\s,]+/u)); + } + return directives; +} + +export function isMaxLinesRule(rule) { + return rule === "max-lines" || rule.endsWith("/max-lines"); +} + +export function hasMaxLinesDisable(source, filePath = "source.ts") { + return collectLintDisableDirectives(source, filePath).some((rules) => rules.some(isMaxLinesRule)); +} + +export function hasAllRuleDisable(source, filePath = "source.ts") { + return collectLintDisableDirectives(source, filePath).some((rules) => rules.length === 0); +} + +export function parseBaseline(source) { + return new Set( + source + .split(/\r?\n/u) + .map((line) => line.trim()) + .filter((line) => line && !line.startsWith("#")), + ); +} + +export function diffBaseline(current, baseline) { + const currentSet = new Set(current); + return { + added: [...currentSet].filter((entry) => !baseline.has(entry)).toSorted(compareStrings), + stale: [...baseline].filter((entry) => !currentSet.has(entry)).toSorted(compareStrings), + }; +} + +export function findBaselineExpansion(current, base) { + return [...current].filter((entry) => !base.has(entry)).toSorted(compareStrings); +} + +function baselineWithVerifiedRenames(root, baseRef, staged, baseline, baseBaseline) { + const args = ["diff", "--name-status", "-z", "--find-renames"]; + if (staged) { + args.push("--cached"); + } + args.push(baseRef, "--", ...SOURCE_ROOTS); + const fields = execFileSync("git", args, { cwd: root, maxBuffer: GIT_MAX_BUFFER }) + .toString("utf8") + .split("\0"); + const allowed = new Set(baseBaseline); + for (let index = 0; index < fields.length;) { + const status = fields[index++]; + if (!status) { + break; + } + const oldPath = fields[index++]; + if (status.startsWith("R") || status.startsWith("C")) { + const newPath = fields[index++]; + if ( + status.startsWith("R") && + oldPath && + newPath && + baseBaseline.has(oldPath) && + !baseline.has(oldPath) && + baseline.has(newPath) + ) { + allowed.delete(oldPath); + allowed.add(newPath); + } + } + } + return allowed; +} + +function readSnapshotFile(root, filePath, staged) { + if (staged) { + return execFileSync("git", ["show", ":" + filePath], { + cwd: root, + encoding: "utf8", + stdio: ["ignore", "pipe", "ignore"], + }); + } + return fs.readFileSync(path.join(root, filePath), "utf8"); +} + +function listStagedSuppressionCandidates(root) { + // The staged policy covers the whole index. Narrow candidates once so a one-file + // check does not spawn a Git process for every governed source. + const result = spawnSync( + "git", + [ + "grep", + "--cached", + "-z", + "-l", + "-e", + "oxlint-disable", + "-e", + "eslint-disable", + "--", + ...SOURCE_ROOTS, + ], + { cwd: root, maxBuffer: GIT_MAX_BUFFER }, + ); + if (result.status === 1) { + return []; + } + if (result.status !== 0) { + throw new Error(result.stderr.toString("utf8").trim() || "git grep failed"); + } + return result.stdout.toString("utf8").split("\0").filter(Boolean); +} + +function readStagedSources(root, filePaths) { + if (filePaths.length === 0) { + return new Map(); + } + const output = execFileSync("git", ["cat-file", "--batch", "-z"], { + cwd: root, + input: filePaths.map((filePath) => ":" + filePath).join("\0") + "\0", + maxBuffer: GIT_MAX_BUFFER, + }); + const sources = new Map(); + let offset = 0; + // -z keeps request paths NUL-framed on older Git; response headers remain newline-framed. + for (const filePath of filePaths) { + const headerEnd = output.indexOf(10, offset); + if (headerEnd < 0) { + throw new Error("Invalid git cat-file response for " + filePath); + } + const header = output.subarray(offset, headerEnd).toString("utf8").split(" "); + const size = Number(header[2]); + if (!Number.isSafeInteger(size)) { + throw new Error("Could not read staged source " + filePath); + } + const sourceStart = headerEnd + 1; + const sourceEnd = sourceStart + size; + if (output[sourceEnd] !== 10) { + throw new Error("Invalid git cat-file framing for " + filePath); + } + sources.set(filePath, output.subarray(sourceStart, sourceEnd).toString("utf8")); + offset = sourceEnd + 1; + } + return sources; +} + +export function collectCurrentSuppressionState(root = process.cwd(), options = {}) { + const staged = options.staged === true; + const filePaths = staged + ? listStagedSuppressionCandidates(root) + : execFileSync( + "git", + ["ls-files", "-z", "--cached", "--others", "--exclude-standard", "--", ...SOURCE_ROOTS], + { cwd: root, maxBuffer: GIT_MAX_BUFFER }, + ) + .toString("utf8") + .split("\0"); + const stagedSources = staged ? readStagedSources(root, filePaths) : null; + const sources = filePaths + .filter(Boolean) + .filter(isGovernedSourcePath) + .filter((filePath) => staged || fs.existsSync(path.join(root, filePath))) + .map((filePath) => [ + filePath, + staged ? stagedSources.get(filePath) : fs.readFileSync(path.join(root, filePath), "utf8"), + ]); + return { + allRules: sources + .filter(([filePath, source]) => hasAllRuleDisable(source, filePath)) + .map(([filePath]) => filePath) + .toSorted(compareStrings), + explicit: sources + .filter(([filePath, source]) => hasMaxLinesDisable(source, filePath)) + .map(([filePath]) => filePath) + .toSorted(compareStrings), + }; +} + +export function collectCurrentSuppressions(root = process.cwd(), options = {}) { + return collectCurrentSuppressionState(root, options).explicit; +} + +function readBaselineAtRef(root, ref) { + execFileSync("git", ["rev-parse", "--verify", ref + "^{commit}"], { + cwd: root, + stdio: "ignore", + }); + const entry = execFileSync("git", ["ls-tree", "--name-only", ref, "--", BASELINE_PATH], { + cwd: root, + encoding: "utf8", + stdio: ["ignore", "pipe", "ignore"], + }).trim(); + if (entry !== BASELINE_PATH) { + return null; + } + return parseBaseline( + execFileSync("git", ["show", ref + ":" + BASELINE_PATH], { + cwd: root, + encoding: "utf8", + stdio: ["ignore", "pipe", "ignore"], + }), + ); +} + +function resolveDefaultBase(root, staged) { + const candidates = staged ? ["HEAD"] : ["origin/main", "HEAD"]; + return ( + candidates.find((ref) => { + try { + execFileSync("git", ["rev-parse", "--verify", ref + "^{commit}"], { + cwd: root, + stdio: "ignore", + }); + return true; + } catch { + return false; + } + }) ?? null + ); +} + +function writeBaseline(root, entries) { + fs.writeFileSync(path.join(root, BASELINE_PATH), BASELINE_HEADER + entries.join("\n") + "\n"); +} + +function parseArgs(argv) { + const args = { base: undefined, prune: false, staged: false }; + for (let index = 0; index < argv.length; index += 1) { + const arg = argv[index]; + if (arg === "--prune") { + args.prune = true; + continue; + } + if (arg === "--staged") { + args.staged = true; + continue; + } + if (arg === "--base" && argv[index + 1]) { + args.base = argv[index + 1]; + index += 1; + continue; + } + throw new Error("Unknown or incomplete argument: " + arg); + } + return args; +} + +function printEntries(title, entries) { + console.error(title); + for (const entry of entries) { + console.error(" " + entry); + } +} + +export function main(root = process.cwd(), argv = process.argv.slice(2)) { + try { + const args = parseArgs(argv); + if (args.staged && args.prune) { + throw new Error("--prune cannot be combined with --staged"); + } + + let baselineSource; + try { + baselineSource = readSnapshotFile(root, BASELINE_PATH, args.staged); + } catch { + throw new Error("Missing " + BASELINE_PATH + (args.staged ? " in the index" : "")); + } + const baseline = parseBaseline(baselineSource); + const { allRules, explicit: current } = collectCurrentSuppressionState(root, { + staged: args.staged, + }); + const { added, stale } = diffBaseline(current, baseline); + const baseRef = args.base ?? resolveDefaultBase(root, args.staged); + const baseBaseline = baseRef ? readBaselineAtRef(root, baseRef) : null; + const allowedBaseline = + baseRef && baseBaseline + ? baselineWithVerifiedRenames(root, baseRef, args.staged, baseline, baseBaseline) + : baseBaseline; + const expanded = allowedBaseline ? findBaselineExpansion(baseline, allowedBaseline) : []; + + if (added.length > 0) { + printEntries("New max-lines suppressions are forbidden; split these files:", added); + } + if (expanded.length > 0) { + printEntries("The max-lines baseline may only shrink; remove these entries:", expanded); + } + if (allRules.length > 0) { + printEntries("All-rule lint disables are forbidden; name only the required rules:", allRules); + } + if (added.length > 0 || expanded.length > 0 || allRules.length > 0) { + return 1; + } + + if (args.prune) { + const kept = [...baseline] + .filter((entry) => current.includes(entry)) + .toSorted(compareStrings); + writeBaseline(root, kept); + console.log("Pruned " + BASELINE_PATH + ": " + baseline.size + " -> " + kept.length + "."); + return 0; + } + if (stale.length > 0) { + printEntries("Remove stale max-lines baseline entries (or run with --prune):", stale); + return 1; + } + + console.log("max-lines ratchet OK: " + current.length + " grandfathered suppressions."); + return 0; + } catch (error) { + console.error(error instanceof Error ? error.message : String(error)); + return 1; + } +} + +if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) { + process.exitCode = main(); +} diff --git a/scripts/check-ts-max-loc.ts b/scripts/check-ts-max-loc.ts deleted file mode 100644 index 21a9fbdf7ee1..000000000000 --- a/scripts/check-ts-max-loc.ts +++ /dev/null @@ -1,348 +0,0 @@ -// Enforces a changed-file TypeScript size ratchet without a repository-wide baseline. -import { execFileSync } from "node:child_process"; -import { readFile } from "node:fs/promises"; -import { resolve } from "node:path"; -import { pathToFileURL } from "node:url"; -import { isProductionTypeScriptFile } from "./lib/ts-loc-policy.mjs"; - -export { isProductionTypeScriptFile } from "./lib/ts-loc-policy.mjs"; - -const DEFAULT_MAX_LINES = 500; -const GIT_OUTPUT_MAX_BUFFER = 64 * 1024 * 1024; - -type ComparisonMode = "head" | "staged" | "worktree"; - -export type ParsedArgs = { - base: string; - head?: string; - maxLines: number; - paths: string[]; - staged: boolean; -}; - -export type GitDiffEntry = { - path: string; - previousPath?: string; - status: string; -}; - -export type ChangedFileLoc = GitDiffEntry & { - baseLines?: number; - lines: number; -}; - -export type LocRatchetViolation = ChangedFileLoc & { - reason: "crossed-limit" | "grew" | "new-file"; -}; - -function readValue(argv: string[], index: number, option: string): string { - const value = argv[index + 1]; - if (!value || value.startsWith("-")) { - throw new Error(`${option} requires a value`); - } - return value; -} - -export function parseArgs(argv: string[]): ParsedArgs { - let base = "origin/main"; - let baseWasExplicit = false; - let head: string | undefined; - let maxLines = DEFAULT_MAX_LINES; - let staged = false; - const separatorIndex = argv.indexOf("--"); - const optionArgs = separatorIndex === -1 ? argv : argv.slice(0, separatorIndex); - const paths = separatorIndex === -1 ? [] : argv.slice(separatorIndex + 1).map(normalizePath); - - for (let index = 0; index < optionArgs.length; index += 1) { - const arg = optionArgs[index]; - if (arg === "--base") { - base = readValue(optionArgs, index, "--base"); - baseWasExplicit = true; - index += 1; - continue; - } - if (arg === "--head") { - head = readValue(optionArgs, index, "--head"); - index += 1; - continue; - } - if (arg === "--max") { - const value = readValue(optionArgs, index, "--max"); - if (!/^\d+$/u.test(value)) { - throw new Error("--max requires a positive integer"); - } - maxLines = Number(value); - if (!Number.isSafeInteger(maxLines) || maxLines <= 0) { - throw new Error("--max requires a positive integer"); - } - index += 1; - continue; - } - if (arg === "--staged") { - staged = true; - continue; - } - throw new Error(`Unknown argument: ${arg}`); - } - - if (staged && (baseWasExplicit || head)) { - throw new Error("--staged cannot be combined with --base or --head"); - } - return { base, head, maxLines, paths: paths.filter(Boolean), staged }; -} - -export function normalizePath(filePath: string): string { - return filePath.replaceAll("\\", "/").replace(/^\.\//u, "").replace(/\/$/u, ""); -} - -export function countPhysicalLines(content: string): number { - if (content.length === 0) { - return 0; - } - const splitCount = content.split("\n").length; - return content.endsWith("\n") ? splitCount - 1 : splitCount; -} - -export function parseNameStatusZ(output: string): GitDiffEntry[] { - const fields = output.split("\0"); - const entries: GitDiffEntry[] = []; - for (let index = 0; index < fields.length;) { - const statusField = fields[index++]; - if (!statusField) { - continue; - } - const status = statusField[0] ?? ""; - if (status === "R" || status === "C") { - const previousPath = fields[index++]; - const filePath = fields[index++]; - if (!previousPath || !filePath) { - throw new Error(`Malformed git name-status entry: ${statusField}`); - } - entries.push({ - path: normalizePath(filePath), - previousPath: normalizePath(previousPath), - status, - }); - continue; - } - const filePath = fields[index++]; - if (!filePath) { - throw new Error(`Malformed git name-status entry: ${statusField}`); - } - entries.push({ path: normalizePath(filePath), status }); - } - return entries; -} - -function runGit(args: string[], cwd: string): string { - return execFileSync("git", args, { - cwd, - encoding: "utf8", - maxBuffer: GIT_OUTPUT_MAX_BUFFER, - stdio: ["ignore", "pipe", "pipe"], - }); -} - -function tryRunGit(args: string[], cwd: string): string | undefined { - try { - return runGit(args, cwd).trim(); - } catch { - return undefined; - } -} - -function resolveCommit(ref: string, cwd: string): string { - const commit = tryRunGit(["rev-parse", "--verify", `${ref}^{commit}`], cwd); - if (!commit) { - throw new Error(`Invalid TypeScript LOC comparison ref: ${ref}`); - } - return commit; -} - -export function resolveComparisonBase(params: { base: string; cwd: string; head: string }): string { - const baseCommit = resolveCommit(params.base, params.cwd); - const headCommit = resolveCommit(params.head, params.cwd); - // Shallow CI checkouts may not contain ancestry between the exact event base and head. - // The event base is still the correct merge target, so fall back to it when needed. - return tryRunGit(["merge-base", baseCommit, headCommit], params.cwd) ?? baseCommit; -} - -function listChangedEntries(params: { - base: string; - cwd: string; - head?: string; - mode: ComparisonMode; -}): GitDiffEntry[] { - const args = ["diff", "--name-status", "-z", "--find-renames", "--find-copies"]; - if (params.mode === "staged") { - args.push("--cached", params.base); - } else if (params.mode === "head") { - args.push(params.base, params.head ?? "HEAD"); - } else { - args.push(params.base); - } - args.push("--"); - const entries = parseNameStatusZ(runGit(args, params.cwd)); - if (params.mode !== "worktree") { - return entries; - } - - const trackedEntryIndices = new Map(entries.map((entry, index) => [entry.path, index])); - for (const filePath of runGit(["ls-files", "--others", "--exclude-standard", "-z"], params.cwd) - .split("\0") - .filter(Boolean) - .map(normalizePath)) { - const trackedIndex = trackedEntryIndices.get(filePath); - if (trackedIndex === undefined) { - entries.push({ path: filePath, status: "A" }); - } else if (entries[trackedIndex]?.status === "D") { - // A staged deletion can hide a recreated untracked file at the same path. - // Treat the worktree content as a modification against the base blob. - entries[trackedIndex] = { path: filePath, status: "M" }; - } - } - return entries; -} - -function pathMatchesScope(filePath: string, scopes: string[]): boolean { - return scopes.some((scope) => filePath === scope || filePath.startsWith(`${scope}/`)); -} - -function entryMatchesScopes(entry: GitDiffEntry, scopes: string[]): boolean { - return ( - scopes.length === 0 || - pathMatchesScope(entry.path, scopes) || - (entry.previousPath !== undefined && pathMatchesScope(entry.previousPath, scopes)) - ); -} - -function readBlob(ref: string, filePath: string, cwd: string): string | undefined { - try { - return runGit(["show", `${ref}:${filePath}`], cwd); - } catch { - return undefined; - } -} - -async function readCurrentContent(params: { - cwd: string; - head?: string; - mode: ComparisonMode; - path: string; -}): Promise { - if (params.mode === "worktree") { - return await readFile(resolve(params.cwd, params.path), "utf8"); - } - return runGit(["show", `${params.head ?? "HEAD"}:${params.path}`], params.cwd); -} - -function readIndexBlob(filePath: string, cwd: string): string { - return runGit(["show", `:${filePath}`], cwd); -} - -export async function collectChangedFileLocs(params: { - base?: string; - cwd?: string; - head?: string; - paths?: string[]; - staged?: boolean; -}): Promise { - const cwd = params.cwd ?? process.cwd(); - const mode: ComparisonMode = params.staged ? "staged" : params.head ? "head" : "worktree"; - const head = params.head ?? "HEAD"; - const requestedBase = params.base ?? "origin/main"; - const base = params.staged - ? resolveCommit("HEAD", cwd) - : mode === "head" - ? resolveCommit(requestedBase, cwd) - : resolveComparisonBase({ base: requestedBase, cwd, head }); - const scopes = (params.paths ?? []).map(normalizePath).filter(Boolean); - const entries = listChangedEntries({ base, cwd, head, mode }); - const results: ChangedFileLoc[] = []; - - for (const entry of entries) { - if ( - entry.status === "D" || - !entryMatchesScopes(entry, scopes) || - !isProductionTypeScriptFile(entry.path) - ) { - continue; - } - const currentContent = - mode === "staged" - ? readIndexBlob(entry.path, cwd) - : await readCurrentContent({ cwd, head, mode, path: entry.path }); - - let basePath: string | undefined; - if ( - entry.status === "R" && - entry.previousPath && - isProductionTypeScriptFile(entry.previousPath) - ) { - basePath = entry.previousPath; - } else if (entry.status !== "A" && entry.status !== "C") { - basePath = entry.path; - } - const baseContent = basePath ? readBlob(base, basePath, cwd) : undefined; - results.push({ - ...entry, - ...(baseContent === undefined ? {} : { baseLines: countPhysicalLines(baseContent) }), - lines: countPhysicalLines(currentContent), - }); - } - - return results.toSorted((left, right) => left.path.localeCompare(right.path)); -} - -export function findLocRatchetViolations( - results: ChangedFileLoc[], - maxLines = DEFAULT_MAX_LINES, -): LocRatchetViolation[] { - const violations: LocRatchetViolation[] = []; - for (const result of results) { - if (result.lines <= maxLines) { - continue; - } - if (result.baseLines === undefined) { - violations.push({ ...result, reason: "new-file" }); - } else if (result.baseLines <= maxLines) { - violations.push({ ...result, reason: "crossed-limit" }); - } else if (result.lines > result.baseLines) { - violations.push({ ...result, reason: "grew" }); - } - } - return violations.toSorted( - (left, right) => right.lines - left.lines || left.path.localeCompare(right.path), - ); -} - -export async function main(argv = process.argv.slice(2)): Promise { - const args = parseArgs(argv); - const results = await collectChangedFileLocs(args); - const violations = findLocRatchetViolations(results, args.maxLines); - for (const violation of violations) { - process.stderr.write( - `${violation.lines}\t${violation.baseLines ?? "-"}\t${violation.reason}\t${violation.path}\n`, - ); - } - if (violations.length > 0) { - process.stderr.write( - `TypeScript LOC ratchet failed: new files must stay at or below ${args.maxLines} lines; oversized legacy files may not grow.\n`, - ); - return 1; - } - process.stdout.write( - `TypeScript LOC ratchet: checked ${results.length} changed production files.\n`, - ); - return 0; -} - -const invokedPath = process.argv[1] ? pathToFileURL(resolve(process.argv[1])).href : undefined; -if (invokedPath === import.meta.url) { - try { - process.exitCode = await main(); - } catch (error) { - process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n`); - process.exitCode = 1; - } -} diff --git a/scripts/check.mjs b/scripts/check.mjs index 52940c731729..e8e2e4ef13a3 100644 --- a/scripts/check.mjs +++ b/scripts/check.mjs @@ -87,7 +87,7 @@ export async function main(argv = process.argv.slice(2)) { parallel: true, commands: [ { name: "conflict markers", args: ["check:no-conflict-markers"] }, - { name: "TypeScript LOC ratchet", args: ["check:loc"] }, + { name: "max-lines suppression ratchet", args: ["check:max-lines-ratchet"] }, { name: "changelog attributions", args: ["check:changelog-attributions"] }, { name: "database-first legacy-store guard", args: ["check:database-first-legacy-stores"] }, { diff --git a/scripts/ci-changed-scope.d.mts b/scripts/ci-changed-scope.d.mts index 2bde49ccb82c..a8d3cb3f8b5a 100644 --- a/scripts/ci-changed-scope.d.mts +++ b/scripts/ci-changed-scope.d.mts @@ -29,7 +29,6 @@ export type ChangedScopeArgs = { export function detectChangedScope(changedPaths: string[]): ChangedScope; export function shouldRunNativeI18n(changedPaths: string[]): boolean; -export function shouldRunTsLoc(changedPaths: string[]): boolean; export function detectNodeFastScope(changedPaths: string[]): NodeFastScope; export function detectInstallSmokeScope(changedPaths: string[]): InstallSmokeScope; export function listChangedPaths( @@ -44,7 +43,6 @@ export function writeGitHubOutput( installSmokeScope?: InstallSmokeScope, nodeFastScope?: NodeFastScope, runNativeI18n?: boolean, - runTsLoc?: boolean, changedPaths?: string[] | null, ): void; diff --git a/scripts/ci-changed-scope.mjs b/scripts/ci-changed-scope.mjs index 2b8ffa43e4f7..6bbf3f080574 100644 --- a/scripts/ci-changed-scope.mjs +++ b/scripts/ci-changed-scope.mjs @@ -4,7 +4,6 @@ import { appendFileSync } from "node:fs"; import { getChangedPathFacts } from "./lib/changed-path-facts.mjs"; import { isDirectRunUrl } from "./lib/direct-run.mjs"; import { resolveMergeHeadDiffBase } from "./lib/merge-head-diff-base.mjs"; -import { isProductionTypeScriptFile } from "./lib/ts-loc-policy.mjs"; /** @typedef {{ runNode: boolean; runMacos: boolean; runIosBuild: boolean; runAndroid: boolean; runWindows: boolean; runSkillsPython: boolean; runChangedSmoke: boolean; runControlUiI18n: boolean; runUiTests: boolean }} ChangedScope */ /** @typedef {{ runFastOnly: boolean; runPluginContracts: boolean; runCiRouting: boolean }} NodeFastScope */ @@ -190,14 +189,6 @@ export function shouldRunNativeI18n(changedPaths) { ); } -/** Returns whether the changed paths include TypeScript governed by the LOC ratchet. */ -export function shouldRunTsLoc(changedPaths) { - return ( - !Array.isArray(changedPaths) || - changedPaths.some((path) => isProductionTypeScriptFile(path.trim())) - ); -} - /** * @param {string[]} changedPaths * @returns {NodeFastScope} @@ -331,7 +322,6 @@ export function writeGitHubOutput( }, nodeFastScope = { runFastOnly: false, runPluginContracts: false, runCiRouting: false }, runNativeI18n = true, - runTsLoc = true, changedPaths = null, ) { if (!outputPath) { @@ -364,7 +354,6 @@ export function writeGitHubOutput( appendFileSync(outputPath, `run_control_ui_i18n=${scope.runControlUiI18n}\n`, "utf8"); appendFileSync(outputPath, `run_ui_tests=${scope.runUiTests}\n`, "utf8"); appendFileSync(outputPath, `run_native_i18n=${runNativeI18n}\n`, "utf8"); - appendFileSync(outputPath, `run_ts_loc=${runTsLoc}\n`, "utf8"); const changedPathsJson = JSON.stringify(changedPaths); appendFileSync( outputPath, @@ -417,15 +406,7 @@ if (isDirectRun()) { args.mergeHeadFirstParent, ); if (changedPaths.length === 0) { - writeGitHubOutput( - EMPTY_SCOPE, - process.env.GITHUB_OUTPUT, - undefined, - undefined, - false, - false, - [], - ); + writeGitHubOutput(EMPTY_SCOPE, process.env.GITHUB_OUTPUT, undefined, undefined, false, []); process.exit(0); } writeGitHubOutput( @@ -434,18 +415,9 @@ if (isDirectRun()) { detectInstallSmokeScope(changedPaths), detectNodeFastScope(changedPaths), shouldRunNativeI18n(changedPaths), - shouldRunTsLoc(changedPaths), changedPaths, ); } catch { - writeGitHubOutput( - FULL_SCOPE, - process.env.GITHUB_OUTPUT, - undefined, - undefined, - true, - true, - null, - ); + writeGitHubOutput(FULL_SCOPE, process.env.GITHUB_OUTPUT, undefined, undefined, true, null); } } diff --git a/scripts/lib/ts-loc-policy.d.mts b/scripts/lib/ts-loc-policy.d.mts deleted file mode 100644 index 86facf5a0a75..000000000000 --- a/scripts/lib/ts-loc-policy.d.mts +++ /dev/null @@ -1 +0,0 @@ -export function isProductionTypeScriptFile(filePath: string): boolean; diff --git a/scripts/lib/ts-loc-policy.mjs b/scripts/lib/ts-loc-policy.mjs deleted file mode 100644 index 25fa64216b1b..000000000000 --- a/scripts/lib/ts-loc-policy.mjs +++ /dev/null @@ -1,29 +0,0 @@ -const CONTROL_UI_LOCALE_BUNDLE_PATTERN = /^ui\/src\/i18n\/locales\/[^/]+\.ts$/u; -const GENERATED_SEGMENT_PATTERN = /(^|\/)(?:__generated__|generated)(?:\/|$)/u; -const GENERATED_SUFFIX_PATTERN = /\.generated(?:\.d)?\.[cm]?tsx?$/u; -const TEST_LIKE_SEGMENT_PATTERN = - /(^|\/)(?:__tests__|fixtures|mocks?|test|tests|test-fixtures?|test-helpers?|test-support|test-utils?)(?:\/|$)/u; -const TEST_LIKE_SUFFIX_PATTERN = /\.(?:e2e|fixture|mocks?|spec|suite|test)\.[cm]?tsx?$/u; -const TEST_HELPER_PATH_TOKEN_PATTERN = - /(?:^|[/.-])test-(?:fixtures?|harness|helpers?|support|utils?)(?:[/.-]|$)/u; -const TEST_HELPER_STEM_PATTERN = - /(?:^|[.-])(?:e2e-harness|mock-(?:harness|setup))(?:\.|$)|(?:^|\.)mocks(?:\.|$)|(?:^|\.)[^.]*-mocks?(?:\.|$)/u; - -function typeScriptStem(filePath) { - const basename = filePath.slice(filePath.lastIndexOf("/") + 1); - return basename.replace(/\.(?:ts|tsx|mts|cts)$/u, ""); -} - -/** Returns whether a path is production TypeScript governed by the LOC ratchet. */ -export function isProductionTypeScriptFile(filePath) { - return ( - /\.(?:ts|tsx|mts|cts)$/u.test(filePath) && - !CONTROL_UI_LOCALE_BUNDLE_PATTERN.test(filePath) && - !GENERATED_SEGMENT_PATTERN.test(filePath) && - !GENERATED_SUFFIX_PATTERN.test(filePath) && - !TEST_LIKE_SEGMENT_PATTERN.test(filePath) && - !TEST_LIKE_SUFFIX_PATTERN.test(filePath) && - !TEST_HELPER_PATH_TOKEN_PATTERN.test(filePath) && - !TEST_HELPER_STEM_PATTERN.test(typeScriptStem(filePath)) - ); -} diff --git a/scripts/test-projects.test-support.mjs b/scripts/test-projects.test-support.mjs index fb55a9a9d965..cadac34e1c8a 100644 --- a/scripts/test-projects.test-support.mjs +++ b/scripts/test-projects.test-support.mjs @@ -734,6 +734,9 @@ const TOOLING_SOURCE_TEST_TARGETS = new Map([ ["scripts/lib/ci-changed-node-test-plan.mjs", ["test/scripts/ci-changed-node-test-plan.test.ts"]], ["scripts/check.mjs", ["test/scripts/check.test.ts"]], ["scripts/check-changed.mjs", ["test/scripts/changed-lanes.test.ts"]], + ["scripts/check-max-lines-ratchet.mjs", ["test/scripts/check-max-lines-ratchet.test.ts"]], + ["config/max-lines-baseline.txt", ["test/scripts/check-max-lines-ratchet.test.ts"]], + [".oxlintrc.json", ["test/scripts/oxlint-config.test.ts"]], [ "scripts/check-changelog-attributions.mjs", ["test/scripts/check-changelog-attributions.test.ts"], diff --git a/src/acp/control-plane/manager.test.ts b/src/acp/control-plane/manager.test.ts index 83de17cdff40..08d4295e6222 100644 --- a/src/acp/control-plane/manager.test.ts +++ b/src/acp/control-plane/manager.test.ts @@ -1690,3 +1690,4 @@ describe("AcpSessionManager", () => { ).rejects.toThrow("disk locked"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/acp/control-plane/manager.turn-results.test.ts b/src/acp/control-plane/manager.turn-results.test.ts index f64f2004480b..3acc81f478d0 100644 --- a/src/acp/control-plane/manager.turn-results.test.ts +++ b/src/acp/control-plane/manager.turn-results.test.ts @@ -1122,3 +1122,4 @@ describe("AcpSessionManager turn results", () => { expect(scenario.runtimeState.ensureSession).toHaveBeenCalledTimes(1); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/acp/event-ledger.ts b/src/acp/event-ledger.ts index ebaacaf436c6..c60063f04f45 100644 --- a/src/acp/event-ledger.ts +++ b/src/acp/event-ledger.ts @@ -974,3 +974,4 @@ export function createSqliteAcpEventLedger( }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/acp/translator.ts b/src/acp/translator.ts index 21eb9af59990..df624299e71c 100644 --- a/src/acp/translator.ts +++ b/src/acp/translator.ts @@ -1754,3 +1754,4 @@ export class AcpGatewayAgent implements Agent { ); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/acp-spawn-parent-stream.test.ts b/src/agents/acp-spawn-parent-stream.test.ts index a804fc275636..5b3fb1bf0e6f 100644 --- a/src/agents/acp-spawn-parent-stream.test.ts +++ b/src/agents/acp-spawn-parent-stream.test.ts @@ -1467,3 +1467,4 @@ describe("startAcpSpawnParentStreamRelay", () => { expect(options.storePath).toBe("/tmp/openclaw/agents/codex/sessions/sessions.json"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/acp-spawn-parent-stream.ts b/src/agents/acp-spawn-parent-stream.ts index c61debe2aa19..ece106808a12 100644 --- a/src/agents/acp-spawn-parent-stream.ts +++ b/src/agents/acp-spawn-parent-stream.ts @@ -773,3 +773,4 @@ export type AcpSpawnParentRelayHandle = { dispose: () => void; notifyStarted: () => void; }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/acp-spawn.test.ts b/src/agents/acp-spawn.test.ts index dbef01a956c3..899ba28652a5 100644 --- a/src/agents/acp-spawn.test.ts +++ b/src/agents/acp-spawn.test.ts @@ -3253,3 +3253,4 @@ describe("spawnAcpDirect", () => { expect(hoisted.startAcpSpawnParentStreamRelayMock).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/acp-spawn.ts b/src/agents/acp-spawn.ts index 3be1e9a18733..78b432c223a5 100644 --- a/src/agents/acp-spawn.ts +++ b/src/agents/acp-spawn.ts @@ -1727,3 +1727,4 @@ export async function spawnAcpDirect( note: spawnMode === "session" ? ACP_SPAWN_SESSION_ACCEPTED_NOTE : ACP_SPAWN_ACCEPTED_NOTE, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/agent-bundle-mcp-runtime.test.ts b/src/agents/agent-bundle-mcp-runtime.test.ts index be8efa8351ca..57b9f120a930 100644 --- a/src/agents/agent-bundle-mcp-runtime.test.ts +++ b/src/agents/agent-bundle-mcp-runtime.test.ts @@ -4697,3 +4697,4 @@ process.on("SIGINT", shutdown);`, }, ); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/agent-bundle-mcp-runtime.ts b/src/agents/agent-bundle-mcp-runtime.ts index 787d1e555268..858ed9cd9990 100644 --- a/src/agents/agent-bundle-mcp-runtime.ts +++ b/src/agents/agent-bundle-mcp-runtime.ts @@ -996,3 +996,4 @@ export const testing = { resolveSessionMcpRuntimeIdleTtlMs, mergeMcpToolCatalogs, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/agent-command.live-model-switch.test.ts b/src/agents/agent-command.live-model-switch.test.ts index e5fcea8cab42..bf3a50bbaeb8 100644 --- a/src/agents/agent-command.live-model-switch.test.ts +++ b/src/agents/agent-command.live-model-switch.test.ts @@ -4601,3 +4601,4 @@ describe("agentCommand – LiveSessionModelSwitchError retry", () => { expectFallbackOverrideCalls(false, true); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/agent-command.ts b/src/agents/agent-command.ts index 708b98a0eb3b..fa69a3be2877 100644 --- a/src/agents/agent-command.ts +++ b/src/agents/agent-command.ts @@ -3031,3 +3031,4 @@ export const testing = { /** @deprecated Use `testing`. */ export { testing as __testing }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/agent-hooks/compaction-safeguard.test.ts b/src/agents/agent-hooks/compaction-safeguard.test.ts index ea157a351b53..9ca811057953 100644 --- a/src/agents/agent-hooks/compaction-safeguard.test.ts +++ b/src/agents/agent-hooks/compaction-safeguard.test.ts @@ -2822,3 +2822,4 @@ describe("readWorkspaceContextForSummary", () => { }, ); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/agent-hooks/compaction-safeguard.ts b/src/agents/agent-hooks/compaction-safeguard.ts index 0b793e2b117c..35970fd05e56 100644 --- a/src/agents/agent-hooks/compaction-safeguard.ts +++ b/src/agents/agent-hooks/compaction-safeguard.ts @@ -1362,3 +1362,4 @@ export const testing = { MAX_FILE_OPS_LIST_CHARS, SUMMARY_TRUNCATED_MARKER, } as const; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/agent-scope.test.ts b/src/agents/agent-scope.test.ts index bf7f93672d79..50e0a79fd872 100644 --- a/src/agents/agent-scope.test.ts +++ b/src/agents/agent-scope.test.ts @@ -1359,3 +1359,4 @@ describe("resolveAgentSkillsFilter", () => { expect(resolveAgentSkillsFilter(cfg, "writer")).toStrictEqual([]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/agent-tools.before-tool-call.e2e.test.ts b/src/agents/agent-tools.before-tool-call.e2e.test.ts index a4284ecd6baa..b97173d3f0d6 100644 --- a/src/agents/agent-tools.before-tool-call.e2e.test.ts +++ b/src/agents/agent-tools.before-tool-call.e2e.test.ts @@ -2758,3 +2758,4 @@ describe("before_tool_call tool content private-data capture", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/agent-tools.before-tool-call.integration.e2e.test.ts b/src/agents/agent-tools.before-tool-call.integration.e2e.test.ts index 2ef371928029..e12d11d67c9c 100644 --- a/src/agents/agent-tools.before-tool-call.integration.e2e.test.ts +++ b/src/agents/agent-tools.before-tool-call.integration.e2e.test.ts @@ -1424,3 +1424,4 @@ describe("before_tool_call hook integration for client tools", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/agent-tools.before-tool-call.ts b/src/agents/agent-tools.before-tool-call.ts index 313c42fa37d9..9016bd87ac24 100644 --- a/src/agents/agent-tools.before-tool-call.ts +++ b/src/agents/agent-tools.before-tool-call.ts @@ -2082,3 +2082,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/agent-tools.create-openclaw-coding-tools.test.ts b/src/agents/agent-tools.create-openclaw-coding-tools.test.ts index 97bea2b77178..71dab6a4378f 100644 --- a/src/agents/agent-tools.create-openclaw-coding-tools.test.ts +++ b/src/agents/agent-tools.create-openclaw-coding-tools.test.ts @@ -1918,3 +1918,4 @@ describe("createOpenClawCodingTools", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/agent-tools.read.ts b/src/agents/agent-tools.read.ts index 712536095919..e86052516890 100644 --- a/src/agents/agent-tools.read.ts +++ b/src/agents/agent-tools.read.ts @@ -1184,3 +1184,4 @@ function createFsAccessError(code: string, filePath: string): NodeJS.ErrnoExcept error.code = code; return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/agent-tools.schema.test.ts b/src/agents/agent-tools.schema.test.ts index d8631bedf433..5cbe359ea5e8 100644 --- a/src/agents/agent-tools.schema.test.ts +++ b/src/agents/agent-tools.schema.test.ts @@ -1322,3 +1322,4 @@ describe("normalizeToolParameters", () => { expect(params.required).toEqual(["name"]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/agent-tools.ts b/src/agents/agent-tools.ts index 32016a7b1040..888cb89e5ac7 100644 --- a/src/agents/agent-tools.ts +++ b/src/agents/agent-tools.ts @@ -1176,3 +1176,4 @@ function createOpenClawCodingToolsInternal(options?: OpenClawCodingToolsOptions) export function createOpenClawCodingTools(options?: OpenClawCodingToolsOptions): AnyAgentTool[] { return createOpenClawCodingToolsInternal(options); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/anthropic-transport-stream.test.ts b/src/agents/anthropic-transport-stream.test.ts index 6436d5272e30..bbd1e0bd7b26 100644 --- a/src/agents/anthropic-transport-stream.test.ts +++ b/src/agents/anthropic-transport-stream.test.ts @@ -4064,3 +4064,4 @@ describe("anthropic transport stream", () => { expect(eventTypes).not.toContain("start"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/anthropic-transport-stream.ts b/src/agents/anthropic-transport-stream.ts index ab869309dd54..d72e780523fd 100644 --- a/src/agents/anthropic-transport-stream.ts +++ b/src/agents/anthropic-transport-stream.ts @@ -1880,3 +1880,4 @@ export function createAnthropicMessagesTransportStreamFn(): StreamFn { return eventStream as ReturnType; }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/auth-profiles/oauth-manager.ts b/src/agents/auth-profiles/oauth-manager.ts index ded3e2456792..7831745f7fa4 100644 --- a/src/agents/auth-profiles/oauth-manager.ts +++ b/src/agents/auth-profiles/oauth-manager.ts @@ -846,3 +846,4 @@ export function createOAuthManager(adapter: OAuthManagerAdapter) { resetRefreshQueuesForTest, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/auth-profiles/oauth.openai-codex-refresh-fallback.test.ts b/src/agents/auth-profiles/oauth.openai-codex-refresh-fallback.test.ts index 72251289a7ec..265348e607cd 100644 --- a/src/agents/auth-profiles/oauth.openai-codex-refresh-fallback.test.ts +++ b/src/agents/auth-profiles/oauth.openai-codex-refresh-fallback.test.ts @@ -1212,3 +1212,4 @@ describe("resolveApiKeyForProfile openai refresh fallback", () => { ).rejects.toThrow(/OAuth token refresh failed for openai/); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/auth-profiles/persisted.ts b/src/agents/auth-profiles/persisted.ts index fcb2c52fdd8b..bd880bc6d796 100644 --- a/src/agents/auth-profiles/persisted.ts +++ b/src/agents/auth-profiles/persisted.ts @@ -830,3 +830,4 @@ export function loadPersistedAuthProfileStore( export function loadLegacyAuthProfileStore(agentDir?: string): LegacyAuthStore | null { return coerceLegacyAuthStore(loadJsonFile(resolveLegacyAuthStorePath(agentDir))); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/auth-profiles/profiles.test.ts b/src/agents/auth-profiles/profiles.test.ts index 1841210c79cc..e3bb1b87d45d 100644 --- a/src/agents/auth-profiles/profiles.test.ts +++ b/src/agents/auth-profiles/profiles.test.ts @@ -1358,3 +1358,4 @@ describe("promoteAuthProfileInOrder", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/auth-profiles/store.ts b/src/agents/auth-profiles/store.ts index a8b955647508..f1d7bae88ae3 100644 --- a/src/agents/auth-profiles/store.ts +++ b/src/agents/auth-profiles/store.ts @@ -1710,3 +1710,4 @@ export function restoreAuthProfileStorePersistenceSnapshot( }); publishRuntimeSnapshotsAfterCommit(publishRuntimeSnapshots); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/auth-profiles/usage.test.ts b/src/agents/auth-profiles/usage.test.ts index 0d15e548039a..cdb1a75dc39b 100644 --- a/src/agents/auth-profiles/usage.test.ts +++ b/src/agents/auth-profiles/usage.test.ts @@ -1475,3 +1475,4 @@ describe("markAuthProfileFailure — per-model cooldown metadata", () => { expect(stats?.cooldownModel).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/auth-profiles/usage.ts b/src/agents/auth-profiles/usage.ts index 0c7e2baf2fa6..1a35f136fe18 100644 --- a/src/agents/auth-profiles/usage.ts +++ b/src/agents/auth-profiles/usage.ts @@ -971,3 +971,4 @@ export async function clearAuthProfileCooldown(params: { logDroppedAuthProfileBookkeeping("clear_cooldown", profileId); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/bash-tools.exec-host-gateway.test.ts b/src/agents/bash-tools.exec-host-gateway.test.ts index 3905f6759e51..6abe1a6cc28a 100644 --- a/src/agents/bash-tools.exec-host-gateway.test.ts +++ b/src/agents/bash-tools.exec-host-gateway.test.ts @@ -2704,3 +2704,4 @@ EOF`, expect(runExecProcessMock).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/bash-tools.exec-host-gateway.ts b/src/agents/bash-tools.exec-host-gateway.ts index e3d164569898..02faca02cf2b 100644 --- a/src/agents/bash-tools.exec-host-gateway.ts +++ b/src/agents/bash-tools.exec-host-gateway.ts @@ -1262,3 +1262,4 @@ export async function processGatewayAllowlist( return { execCommandOverride: enforcedCommand }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/bash-tools.exec-host-node.test.ts b/src/agents/bash-tools.exec-host-node.test.ts index 46840d0275d7..865553907132 100644 --- a/src/agents/bash-tools.exec-host-node.test.ts +++ b/src/agents/bash-tools.exec-host-node.test.ts @@ -3819,3 +3819,4 @@ describe("executeNodeHostCommand", () => { expect(callGatewayToolMock).toHaveBeenCalledTimes(1); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/bash-tools.exec-runtime.ts b/src/agents/bash-tools.exec-runtime.ts index 41569f7d507b..3a9d4174206d 100644 --- a/src/agents/bash-tools.exec-runtime.ts +++ b/src/agents/bash-tools.exec-runtime.ts @@ -1015,3 +1015,4 @@ export async function runExecProcess(opts: { }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/bash-tools.exec.approval-id.test.ts b/src/agents/bash-tools.exec.approval-id.test.ts index 3b3a522f1d4a..09fdf652e886 100644 --- a/src/agents/bash-tools.exec.approval-id.test.ts +++ b/src/agents/bash-tools.exec.approval-id.test.ts @@ -1680,3 +1680,4 @@ describe("exec approvals", () => { ).rejects.toThrow("Cron runs cannot wait for interactive exec approval"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/bash-tools.exec.ts b/src/agents/bash-tools.exec.ts index c130595a474b..04a3ada11c31 100644 --- a/src/agents/bash-tools.exec.ts +++ b/src/agents/bash-tools.exec.ts @@ -2130,3 +2130,4 @@ export function createExecTool( /** Default exec tool instance used by agent tool registries. */ export const execTool = createExecTool(); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/bash-tools.process.ts b/src/agents/bash-tools.process.ts index 9790a2f1ebb8..c68138910a17 100644 --- a/src/agents/bash-tools.process.ts +++ b/src/agents/bash-tools.process.ts @@ -779,3 +779,4 @@ export function createProcessTool( /** Shared process-control tool instance used by the default Bash tool barrel. */ export const processTool = createProcessTool(); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/btw.test.ts b/src/agents/btw.test.ts index 7c6e21586e9f..21ad058eaf11 100644 --- a/src/agents/btw.test.ts +++ b/src/agents/btw.test.ts @@ -2691,3 +2691,4 @@ describe("runBtwSideQuestion", () => { expectNoAssistantMessages(context); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/btw.ts b/src/agents/btw.ts index 18df6e721606..3939b4704a45 100644 --- a/src/agents/btw.ts +++ b/src/agents/btw.ts @@ -1297,3 +1297,4 @@ export async function runBtwSideQuestion( return { text: answer }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/cli-auth-epoch.test.ts b/src/agents/cli-auth-epoch.test.ts index f9b81d551fb8..3bb8b4b174fd 100644 --- a/src/agents/cli-auth-epoch.test.ts +++ b/src/agents/cli-auth-epoch.test.ts @@ -1134,3 +1134,4 @@ describe("resolveCliAuthEpoch", () => { ).resolves.toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/cli-backends.test.ts b/src/agents/cli-backends.test.ts index f03ca0e1178e..280c7327e929 100644 --- a/src/agents/cli-backends.test.ts +++ b/src/agents/cli-backends.test.ts @@ -1193,3 +1193,4 @@ describe("resolveCliBackendConfig alias precedence", () => { expect(resolved?.config.args).toEqual(["--canonical"]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/cli-output.test.ts b/src/agents/cli-output.test.ts index bedc3ea0e6c4..fc0c16ee7205 100644 --- a/src/agents/cli-output.test.ts +++ b/src/agents/cli-output.test.ts @@ -2592,3 +2592,4 @@ describe("createCliJsonlStreamingParser", () => { expect(commentaryTexts).toEqual(["Reading the file now.", "Now searching."]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/cli-output.ts b/src/agents/cli-output.ts index 6605bbf0f1bb..b143f9759fd8 100644 --- a/src/agents/cli-output.ts +++ b/src/agents/cli-output.ts @@ -1662,3 +1662,4 @@ export function extractCliErrorMessage(raw: string): string | null { return errorText || null; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/cli-runner.reliability.test.ts b/src/agents/cli-runner.reliability.test.ts index 917e8dde5d82..3b49cc425799 100644 --- a/src/agents/cli-runner.reliability.test.ts +++ b/src/agents/cli-runner.reliability.test.ts @@ -4417,3 +4417,4 @@ describe("resolveCliRunTimeoutOverrideMs", () => { ).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/cli-runner.spawn.test.ts b/src/agents/cli-runner.spawn.test.ts index 25175d1aaf98..e252011a2cb6 100644 --- a/src/agents/cli-runner.spawn.test.ts +++ b/src/agents/cli-runner.spawn.test.ts @@ -5557,3 +5557,4 @@ ${JSON.stringify({ } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/cli-runner.ts b/src/agents/cli-runner.ts index edd7f73dcfc0..6b32d67c0e01 100644 --- a/src/agents/cli-runner.ts +++ b/src/agents/cli-runner.ts @@ -1436,3 +1436,4 @@ export async function runPreparedCliAgent( } return runResult; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/cli-runner/claude-live-session.ts b/src/agents/cli-runner/claude-live-session.ts index cc9bb3507f9e..a739b9d7474c 100644 --- a/src/agents/cli-runner/claude-live-session.ts +++ b/src/agents/cli-runner/claude-live-session.ts @@ -1646,3 +1646,4 @@ export async function runClaudeLiveSessionTurn(params: { } } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/cli-runner/execute.supervisor-capture.test.ts b/src/agents/cli-runner/execute.supervisor-capture.test.ts index 1da7b63f7150..a1f986c143ab 100644 --- a/src/agents/cli-runner/execute.supervisor-capture.test.ts +++ b/src/agents/cli-runner/execute.supervisor-capture.test.ts @@ -2321,3 +2321,4 @@ describe("executePreparedCliRun supervisor output capture", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/cli-runner/execute.ts b/src/agents/cli-runner/execute.ts index 666789303451..08b5b1a32a33 100644 --- a/src/agents/cli-runner/execute.ts +++ b/src/agents/cli-runner/execute.ts @@ -2103,3 +2103,4 @@ export async function executePreparedCliRun( } } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/cli-runner/prepare.test.ts b/src/agents/cli-runner/prepare.test.ts index 3eb1fe17deb4..c30a1eb8bd32 100644 --- a/src/agents/cli-runner/prepare.test.ts +++ b/src/agents/cli-runner/prepare.test.ts @@ -4818,3 +4818,4 @@ describe("shouldSkipLocalCliCredentialEpoch", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/cli-runner/prepare.ts b/src/agents/cli-runner/prepare.ts index acad273b7e2d..4a432568eade 100644 --- a/src/agents/cli-runner/prepare.ts +++ b/src/agents/cli-runner/prepare.ts @@ -1492,3 +1492,4 @@ export async function prepareCliRunContext( throw err; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/code-mode-namespaces.ts b/src/agents/code-mode-namespaces.ts index ac4da84f7757..3c54f2ce3544 100644 --- a/src/agents/code-mode-namespaces.ts +++ b/src/agents/code-mode-namespaces.ts @@ -1125,3 +1125,4 @@ export async function createCodeModeNamespaceRuntime( }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/code-mode.test.ts b/src/agents/code-mode.test.ts index 1aa821f580e6..ee0f06855149 100644 --- a/src/agents/code-mode.test.ts +++ b/src/agents/code-mode.test.ts @@ -2441,3 +2441,4 @@ describe("Code Mode", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/code-mode.ts b/src/agents/code-mode.ts index f682df365fcb..9c18529731a0 100644 --- a/src/agents/code-mode.ts +++ b/src/agents/code-mode.ts @@ -1747,3 +1747,4 @@ export const testing = { typescriptRuntimeForTest = runtime; }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/command/attempt-execution.cli.test.ts b/src/agents/command/attempt-execution.cli.test.ts index e6e14dee59c6..fa7b132bf418 100644 --- a/src/agents/command/attempt-execution.cli.test.ts +++ b/src/agents/command/attempt-execution.cli.test.ts @@ -3549,3 +3549,4 @@ describe("embedded attempt harness pinning", () => { expect(firstEmbeddedAgentArg()).not.toHaveProperty("agentHarnessId", "claude-cli"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/command/attempt-execution.test.ts b/src/agents/command/attempt-execution.test.ts index 986bd515013a..e118b4849cf3 100644 --- a/src/agents/command/attempt-execution.test.ts +++ b/src/agents/command/attempt-execution.test.ts @@ -1177,3 +1177,4 @@ describe("createAcpVisibleTextAccumulator", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/command/attempt-execution.ts b/src/agents/command/attempt-execution.ts index 443d9229a254..1f9222022b4b 100644 --- a/src/agents/command/attempt-execution.ts +++ b/src/agents/command/attempt-execution.ts @@ -1425,3 +1425,4 @@ export function emitAcpAssistantDelta(params: { runId: string; text: string; del }, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/command/cli-compaction.test.ts b/src/agents/command/cli-compaction.test.ts index a39b2994071a..f148119e5d39 100644 --- a/src/agents/command/cli-compaction.test.ts +++ b/src/agents/command/cli-compaction.test.ts @@ -1859,3 +1859,4 @@ describe("runCliTurnCompactionLifecycle", () => { expect(recordCliCompactionInStore).toHaveBeenCalledTimes(1); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/command/cli-compaction.ts b/src/agents/command/cli-compaction.ts index 1d2a1c050a38..01605d3f2dbb 100644 --- a/src/agents/command/cli-compaction.ts +++ b/src/agents/command/cli-compaction.ts @@ -807,3 +807,4 @@ export async function runCliTurnCompactionLifecycle(params: { })) ?? params.sessionEntry ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/command/delivery.test.ts b/src/agents/command/delivery.test.ts index f35b4e328dff..f02b3769adc4 100644 --- a/src/agents/command/delivery.test.ts +++ b/src/agents/command/delivery.test.ts @@ -2066,3 +2066,4 @@ describe("deliverAgentCommandResult payload normalization", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/command/delivery.ts b/src/agents/command/delivery.ts index ac24e0b8256f..30c022f9525d 100644 --- a/src/agents/command/delivery.ts +++ b/src/agents/command/delivery.ts @@ -966,3 +966,4 @@ export async function deliverAgentCommandResult( deliveryStatus, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/command/session-store.test.ts b/src/agents/command/session-store.test.ts index 575453afdb40..d8921edd5eeb 100644 --- a/src/agents/command/session-store.test.ts +++ b/src/agents/command/session-store.test.ts @@ -2964,3 +2964,4 @@ describe("clearCliSessionInStore", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-helpers.isbillingerrormessage.test.ts b/src/agents/embedded-agent-helpers.isbillingerrormessage.test.ts index 636cbbf54aea..40260e616d95 100644 --- a/src/agents/embedded-agent-helpers.isbillingerrormessage.test.ts +++ b/src/agents/embedded-agent-helpers.isbillingerrormessage.test.ts @@ -1698,3 +1698,4 @@ describe("classifyProviderRuntimeFailureKind", () => { expect(classifyFailoverReason(INTERNAL_SERVER_ERROR_STATUS_WITH_500_SAMPLE)).toBe("timeout"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-helpers/errors.ts b/src/agents/embedded-agent-helpers/errors.ts index bf6a22df4c98..b56a0fdfe202 100644 --- a/src/agents/embedded-agent-helpers/errors.ts +++ b/src/agents/embedded-agent-helpers/errors.ts @@ -1779,3 +1779,4 @@ export function isFailoverErrorMessage(raw: string, opts?: { provider?: string } export function isFailoverAssistantError(msg: AssistantMessage | undefined): boolean { return classifyAssistantFailoverReason(msg) !== null; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner-extraparams.test.ts b/src/agents/embedded-agent-runner-extraparams.test.ts index 86c26e63683b..0842aadad1a1 100644 --- a/src/agents/embedded-agent-runner-extraparams.test.ts +++ b/src/agents/embedded-agent-runner-extraparams.test.ts @@ -4453,3 +4453,4 @@ describe("applyExtraParamsToAgent", () => { expect(payload.prompt_cache_retention).toBe("24h"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner.cache.live.test.ts b/src/agents/embedded-agent-runner.cache.live.test.ts index 860bf1c1cfc5..9260f14fd1e4 100644 --- a/src/agents/embedded-agent-runner.cache.live.test.ts +++ b/src/agents/embedded-agent-runner.cache.live.test.ts @@ -1434,3 +1434,4 @@ describeCacheLive("embedded agent runner prompt caching (live)", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner.e2e.test.ts b/src/agents/embedded-agent-runner.e2e.test.ts index 8ea6b12bc125..780fcc9a99c3 100644 --- a/src/agents/embedded-agent-runner.e2e.test.ts +++ b/src/agents/embedded-agent-runner.e2e.test.ts @@ -1207,3 +1207,4 @@ describe("runEmbeddedAgent", () => { expect(result.payloads?.[0]?.text).toBe("ok"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner.run-embedded-agent.auth-profile-rotation.e2e.test.ts b/src/agents/embedded-agent-runner.run-embedded-agent.auth-profile-rotation.e2e.test.ts index 10487fe384c8..64af341ee700 100644 --- a/src/agents/embedded-agent-runner.run-embedded-agent.auth-profile-rotation.e2e.test.ts +++ b/src/agents/embedded-agent-runner.run-embedded-agent.auth-profile-rotation.e2e.test.ts @@ -1622,3 +1622,4 @@ describe("runEmbeddedAgent auth profile rotation", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner.sanitize-session-history.test.ts b/src/agents/embedded-agent-runner.sanitize-session-history.test.ts index ee6c5adf7b31..85201f2707b5 100644 --- a/src/agents/embedded-agent-runner.sanitize-session-history.test.ts +++ b/src/agents/embedded-agent-runner.sanitize-session-history.test.ts @@ -2658,3 +2658,4 @@ describe("sanitizeSessionHistory", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/compact.hooks.harness.ts b/src/agents/embedded-agent-runner/compact.hooks.harness.ts index c03e7d1557ed..3fbe9b84e6b9 100644 --- a/src/agents/embedded-agent-runner/compact.hooks.harness.ts +++ b/src/agents/embedded-agent-runner/compact.hooks.harness.ts @@ -1063,3 +1063,4 @@ export async function loadCompactHooksHarness(): Promise<{ onInternalSessionTranscriptUpdate: transcriptEvents.onInternalSessionTranscriptUpdate, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/compact.hooks.test.ts b/src/agents/embedded-agent-runner/compact.hooks.test.ts index d74fbbc9efd6..5fca669df660 100644 --- a/src/agents/embedded-agent-runner/compact.hooks.test.ts +++ b/src/agents/embedded-agent-runner/compact.hooks.test.ts @@ -4235,3 +4235,4 @@ describe("compactEmbeddedAgentSession hooks (ownsCompaction engine)", () => { expect(contextEngineCompactMock).toHaveBeenCalledTimes(1); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/compact.queued.ts b/src/agents/embedded-agent-runner/compact.queued.ts index f2576e08ac62..6a7ce31085ea 100644 --- a/src/agents/embedded-agent-runner/compact.queued.ts +++ b/src/agents/embedded-agent-runner/compact.queued.ts @@ -1069,3 +1069,4 @@ function buildCompactionContextEngineRuntimeContext(params: { currentTokenCount: params.params.currentTokenCount, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/compact.ts b/src/agents/embedded-agent-runner/compact.ts index 99004df44061..af9d38f3156a 100644 --- a/src/agents/embedded-agent-runner/compact.ts +++ b/src/agents/embedded-agent-runner/compact.ts @@ -1911,3 +1911,4 @@ export const testing = { runAfterCompactionHooks, runPostCompactionSideEffects, } as const; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/context-engine-maintenance.test.ts b/src/agents/embedded-agent-runner/context-engine-maintenance.test.ts index 3800a8c14ab2..d85407ff0808 100644 --- a/src/agents/embedded-agent-runner/context-engine-maintenance.test.ts +++ b/src/agents/embedded-agent-runner/context-engine-maintenance.test.ts @@ -1670,3 +1670,4 @@ describe("runContextEngineMaintenance", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/extra-params.ts b/src/agents/embedded-agent-runner/extra-params.ts index 3f128df9a5e8..0b217d82f15a 100644 --- a/src/agents/embedded-agent-runner/extra-params.ts +++ b/src/agents/embedded-agent-runner/extra-params.ts @@ -1157,3 +1157,4 @@ export function applyExtraParamsToAgent( return { effectiveExtraParams }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/model.provider-runtime.test-support.ts b/src/agents/embedded-agent-runner/model.provider-runtime.test-support.ts index 95dfb2dfc1e2..230f5d42abac 100644 --- a/src/agents/embedded-agent-runner/model.provider-runtime.test-support.ts +++ b/src/agents/embedded-agent-runner/model.provider-runtime.test-support.ts @@ -799,3 +799,4 @@ export function createProviderRuntimeTestMock(options: ProviderRuntimeTestMockOp }) => normalizeTransport(params), }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/model.test.ts b/src/agents/embedded-agent-runner/model.test.ts index 8c304ae26319..b2ddfd096de6 100644 --- a/src/agents/embedded-agent-runner/model.test.ts +++ b/src/agents/embedded-agent-runner/model.test.ts @@ -4482,3 +4482,4 @@ describe("resolveModel", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/model.ts b/src/agents/embedded-agent-runner/model.ts index f0d0d1af357e..b698f3da08c7 100644 --- a/src/agents/embedded-agent-runner/model.ts +++ b/src/agents/embedded-agent-runner/model.ts @@ -1993,3 +1993,4 @@ function buildMissingProviderModelRegistrationHint(params: { } return `Found agents.defaults.models["${agentModelKey}"], but no matching models.providers["${params.provider}"].models[] entry. Add { "id": "${params.modelId}", "name": "${params.modelId}" } to models.providers["${params.provider}"].models[] to register this provider model. For custom or proxy providers, also set api and baseUrl so requests route to the intended endpoint. See https://docs.openclaw.ai/concepts/model-providers.`; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/replay-history.ts b/src/agents/embedded-agent-runner/replay-history.ts index 8cc456af492b..14a86bc3ade6 100644 --- a/src/agents/embedded-agent-runner/replay-history.ts +++ b/src/agents/embedded-agent-runner/replay-history.ts @@ -935,3 +935,4 @@ export async function validateReplayTurns(params: { : params.messages; return policy.validateAnthropicTurns ? validateAnthropicTurns(validatedGemini) : validatedGemini; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/run.incomplete-turn.test.ts b/src/agents/embedded-agent-runner/run.incomplete-turn.test.ts index e93f5f730649..8549718a591f 100644 --- a/src/agents/embedded-agent-runner/run.incomplete-turn.test.ts +++ b/src/agents/embedded-agent-runner/run.incomplete-turn.test.ts @@ -3933,3 +3933,4 @@ describe("runEmbeddedAgent incomplete-turn safety", () => { expectNoWarnMessageWith("planning"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/run.overflow-compaction.harness.ts b/src/agents/embedded-agent-runner/run.overflow-compaction.harness.ts index 6dbdccfe78fc..a9610a5cf1c0 100644 --- a/src/agents/embedded-agent-runner/run.overflow-compaction.harness.ts +++ b/src/agents/embedded-agent-runner/run.overflow-compaction.harness.ts @@ -951,3 +951,4 @@ export async function warmRunOverflowCompactionHarness( runId: params?.runId ?? "run-overflow-compaction-harness-warmup", }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/run.overflow-compaction.loop.test.ts b/src/agents/embedded-agent-runner/run.overflow-compaction.loop.test.ts index 90b891ff4014..b22878e64157 100644 --- a/src/agents/embedded-agent-runner/run.overflow-compaction.loop.test.ts +++ b/src/agents/embedded-agent-runner/run.overflow-compaction.loop.test.ts @@ -1278,3 +1278,4 @@ describe("overflow compaction in run loop", () => { expect(result.meta.error).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/run.overflow-compaction.test.ts b/src/agents/embedded-agent-runner/run.overflow-compaction.test.ts index 8623cd5ff0e7..cf9c11efa8ea 100644 --- a/src/agents/embedded-agent-runner/run.overflow-compaction.test.ts +++ b/src/agents/embedded-agent-runner/run.overflow-compaction.test.ts @@ -4072,3 +4072,4 @@ describe("runEmbeddedAgent overflow compaction trigger routing", () => { expect(mockedResolveFailoverStatus).toHaveBeenCalledWith("rate_limit"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/run.ts b/src/agents/embedded-agent-runner/run.ts index 45ebcdb62656..835fa8444412 100644 --- a/src/agents/embedded-agent-runner/run.ts +++ b/src/agents/embedded-agent-runner/run.ts @@ -4400,3 +4400,4 @@ export const testing = { EMBEDDED_RUN_LANE_TIMEOUT_GRACE_MS, resolveEmbeddedRunLaneTimeoutMs, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/run/attempt.model-diagnostic-events.test.ts b/src/agents/embedded-agent-runner/run/attempt.model-diagnostic-events.test.ts index 951455893f42..77d6873a62ea 100644 --- a/src/agents/embedded-agent-runner/run/attempt.model-diagnostic-events.test.ts +++ b/src/agents/embedded-agent-runner/run/attempt.model-diagnostic-events.test.ts @@ -1253,3 +1253,4 @@ describe("wrapStreamFnWithDiagnosticModelCallEvents", () => { expect(events[1]).not.toHaveProperty("errorCategory"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/run/attempt.model-diagnostic-events.ts b/src/agents/embedded-agent-runner/run/attempt.model-diagnostic-events.ts index 216e09205eb0..ab85a930c273 100644 --- a/src/agents/embedded-agent-runner/run/attempt.model-diagnostic-events.ts +++ b/src/agents/embedded-agent-runner/run/attempt.model-diagnostic-events.ts @@ -892,3 +892,4 @@ export function wrapStreamFnWithDiagnosticModelCallEvents( } }) as StreamFn; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/run/attempt.session-lock.test.ts b/src/agents/embedded-agent-runner/run/attempt.session-lock.test.ts index 6197e9f30dfd..db0969c80463 100644 --- a/src/agents/embedded-agent-runner/run/attempt.session-lock.test.ts +++ b/src/agents/embedded-agent-runner/run/attempt.session-lock.test.ts @@ -3807,3 +3807,4 @@ describe("embedded attempt session lock lifecycle", () => { expect(controller.hasSessionTakeover()).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/run/attempt.session-lock.ts b/src/agents/embedded-agent-runner/run/attempt.session-lock.ts index 56a9413ec40b..17d038620436 100644 --- a/src/agents/embedded-agent-runner/run/attempt.session-lock.ts +++ b/src/agents/embedded-agent-runner/run/attempt.session-lock.ts @@ -2207,3 +2207,4 @@ export function installPromptSubmissionLockRelease(params: { wrappedStreamFn["__openclawSessionLockPromptReleaseInstalled"] = true; agent.streamFn = wrappedStreamFn; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/run/attempt.spawn-workspace.context-engine.test.ts b/src/agents/embedded-agent-runner/run/attempt.spawn-workspace.context-engine.test.ts index b912c55027d8..5138566848d9 100644 --- a/src/agents/embedded-agent-runner/run/attempt.spawn-workspace.context-engine.test.ts +++ b/src/agents/embedded-agent-runner/run/attempt.spawn-workspace.context-engine.test.ts @@ -3768,3 +3768,4 @@ describe("runEmbeddedAttempt tool-result guard budget wiring", () => { expect(hoisted.preemptiveCompactionCalls).toHaveLength(0); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/run/attempt.spawn-workspace.test-support.ts b/src/agents/embedded-agent-runner/run/attempt.spawn-workspace.test-support.ts index 3b92dd293222..56b35b97a6ce 100644 --- a/src/agents/embedded-agent-runner/run/attempt.spawn-workspace.test-support.ts +++ b/src/agents/embedded-agent-runner/run/attempt.spawn-workspace.test-support.ts @@ -1419,3 +1419,4 @@ export async function createContextEngineAttemptRunner(params: { } } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/run/attempt.test.ts b/src/agents/embedded-agent-runner/run/attempt.test.ts index 71a038fa596a..c8ba75e289bb 100644 --- a/src/agents/embedded-agent-runner/run/attempt.test.ts +++ b/src/agents/embedded-agent-runner/run/attempt.test.ts @@ -3619,3 +3619,4 @@ describe("buildAfterTurnRuntimeContext", () => { expect(legacy.currentMessageId).toBe("msg-42"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/run/attempt.tool-call-argument-repair.ts b/src/agents/embedded-agent-runner/run/attempt.tool-call-argument-repair.ts index 0c7f8348496c..67c70c790168 100644 --- a/src/agents/embedded-agent-runner/run/attempt.tool-call-argument-repair.ts +++ b/src/agents/embedded-agent-runner/run/attempt.tool-call-argument-repair.ts @@ -796,3 +796,4 @@ export function shouldRepairMalformedToolCallArguments(params: { export function wrapStreamFnDecodeXaiToolCallArguments(baseFn: StreamFn): StreamFn { return createHtmlEntityToolCallArgumentDecodingWrapper(baseFn); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/run/attempt.tool-call-normalization.test.ts b/src/agents/embedded-agent-runner/run/attempt.tool-call-normalization.test.ts index 4ec8dcb4db2d..145bd556402e 100644 --- a/src/agents/embedded-agent-runner/run/attempt.tool-call-normalization.test.ts +++ b/src/agents/embedded-agent-runner/run/attempt.tool-call-normalization.test.ts @@ -1626,3 +1626,4 @@ describe("sanitizeOpenAIResponsesReplayForStream", () => { expect(danglingResult.content).toEqual([{ type: "text", text: "aborted" }]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/run/attempt.tool-call-normalization.ts b/src/agents/embedded-agent-runner/run/attempt.tool-call-normalization.ts index 51b6f15a6b29..fac44b706f92 100644 --- a/src/agents/embedded-agent-runner/run/attempt.tool-call-normalization.ts +++ b/src/agents/embedded-agent-runner/run/attempt.tool-call-normalization.ts @@ -1209,3 +1209,4 @@ export function wrapStreamFnSanitizeMalformedToolCalls( return baseFn(model, nextContext as typeof context, options); }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/run/incomplete-turn.ts b/src/agents/embedded-agent-runner/run/incomplete-turn.ts index 4712d4f58234..ba3fc553ab19 100644 --- a/src/agents/embedded-agent-runner/run/incomplete-turn.ts +++ b/src/agents/embedded-agent-runner/run/incomplete-turn.ts @@ -821,3 +821,4 @@ function isIncompleteTurnRecoverySupportedProviderModel(params: { const modelId = typeof params.modelId === "string" ? params.modelId : ""; return GEMINI_INCOMPLETE_TURN_MODEL_ID_PATTERN.test(stripProviderPrefix(modelId)); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/run/payloads.errors.test.ts b/src/agents/embedded-agent-runner/run/payloads.errors.test.ts index 5a98ca520d00..517d38933049 100644 --- a/src/agents/embedded-agent-runner/run/payloads.errors.test.ts +++ b/src/agents/embedded-agent-runner/run/payloads.errors.test.ts @@ -1202,3 +1202,4 @@ describe("buildEmbeddedRunPayloads", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/run/payloads.ts b/src/agents/embedded-agent-runner/run/payloads.ts index c0cdbd0b9273..da5f36af1b48 100644 --- a/src/agents/embedded-agent-runner/run/payloads.ts +++ b/src/agents/embedded-agent-runner/run/payloads.ts @@ -966,3 +966,4 @@ export function buildEmbeddedRunPayloads(params: { return true; }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/runs.ts b/src/agents/embedded-agent-runner/runs.ts index b498207285f2..4bfb9745e936 100644 --- a/src/agents/embedded-agent-runner/runs.ts +++ b/src/agents/embedded-agent-runner/runs.ts @@ -947,3 +947,4 @@ export const testing = { ABANDONED_EMBEDDED_RUN_SESSION_IDS_BY_FILE.clear(); }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/thinking.test.ts b/src/agents/embedded-agent-runner/thinking.test.ts index eff5524bb50f..d03168ae9f55 100644 --- a/src/agents/embedded-agent-runner/thinking.test.ts +++ b/src/agents/embedded-agent-runner/thinking.test.ts @@ -1277,3 +1277,4 @@ describe("stripStaleThinkingSignaturesForCompactionReplay", () => { expect(result).toBe(messages); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/tool-result-context-guard.test.ts b/src/agents/embedded-agent-runner/tool-result-context-guard.test.ts index f185e46f8a2b..3ffb0c52b8cf 100644 --- a/src/agents/embedded-agent-runner/tool-result-context-guard.test.ts +++ b/src/agents/embedded-agent-runner/tool-result-context-guard.test.ts @@ -1237,3 +1237,4 @@ describe("installContextEngineLoopHook", () => { expect(engine.assemble).toHaveBeenCalledTimes(1); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/tool-result-truncation.test.ts b/src/agents/embedded-agent-runner/tool-result-truncation.test.ts index 95f050285429..f0fb612900f7 100644 --- a/src/agents/embedded-agent-runner/tool-result-truncation.test.ts +++ b/src/agents/embedded-agent-runner/tool-result-truncation.test.ts @@ -1711,3 +1711,4 @@ describe("truncateToolResultText head+tail strategy", () => { expect(result).toContain("truncated"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/tool-result-truncation.ts b/src/agents/embedded-agent-runner/tool-result-truncation.ts index 40908175496a..809cf2a6d9f0 100644 --- a/src/agents/embedded-agent-runner/tool-result-truncation.ts +++ b/src/agents/embedded-agent-runner/tool-result-truncation.ts @@ -1548,3 +1548,4 @@ export function sessionLikelyHasOversizedToolResults(params: { const estimate = estimateToolResultReductionPotential(params); return estimate.oversizedCount > 0 || estimate.aggregateReducibleChars > 0; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/transcript-file-state.test.ts b/src/agents/embedded-agent-runner/transcript-file-state.test.ts index 5bc4c0bea170..9e5592d0f066 100644 --- a/src/agents/embedded-agent-runner/transcript-file-state.test.ts +++ b/src/agents/embedded-agent-runner/transcript-file-state.test.ts @@ -1477,3 +1477,4 @@ describe("readTranscriptFileState", () => { expect(branchText).toEqual(["before malformed row", "after malformed row"]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-runner/transcript-file-state.ts b/src/agents/embedded-agent-runner/transcript-file-state.ts index 448a4df59ff6..e067fe556afe 100644 --- a/src/agents/embedded-agent-runner/transcript-file-state.ts +++ b/src/agents/embedded-agent-runner/transcript-file-state.ts @@ -1011,3 +1011,4 @@ export async function persistTranscriptStateMutation(params: { rejectSymlinkParents: true, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-subscribe.handlers.lifecycle.test.ts b/src/agents/embedded-agent-subscribe.handlers.lifecycle.test.ts index c6fcc68822b2..0c15048dc834 100644 --- a/src/agents/embedded-agent-subscribe.handlers.lifecycle.test.ts +++ b/src/agents/embedded-agent-subscribe.handlers.lifecycle.test.ts @@ -1170,3 +1170,4 @@ describe("handleAgentEnd", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-subscribe.handlers.messages.test.ts b/src/agents/embedded-agent-subscribe.handlers.messages.test.ts index 7819a3bbda14..9c588d2ce1ad 100644 --- a/src/agents/embedded-agent-subscribe.handlers.messages.test.ts +++ b/src/agents/embedded-agent-subscribe.handlers.messages.test.ts @@ -1950,3 +1950,4 @@ describe("handleMessageEnd", () => { expect(event?.data?.replace).toBe(true); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-subscribe.handlers.messages.ts b/src/agents/embedded-agent-subscribe.handlers.messages.ts index 08b2e19d6e00..d72439ef4fa3 100644 --- a/src/agents/embedded-agent-subscribe.handlers.messages.ts +++ b/src/agents/embedded-agent-subscribe.handlers.messages.ts @@ -1505,3 +1505,4 @@ export function handleMessageEnd( finalizeMessageEnd(); return undefined; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-subscribe.handlers.tools.test.ts b/src/agents/embedded-agent-subscribe.handlers.tools.test.ts index 24556a32a052..d8efa58c3939 100644 --- a/src/agents/embedded-agent-subscribe.handlers.tools.test.ts +++ b/src/agents/embedded-agent-subscribe.handlers.tools.test.ts @@ -3451,3 +3451,4 @@ describe("control UI credential redaction (issue #72283)", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-subscribe.handlers.tools.ts b/src/agents/embedded-agent-subscribe.handlers.tools.ts index 41d8caa9e821..5d23dca128a4 100644 --- a/src/agents/embedded-agent-subscribe.handlers.tools.ts +++ b/src/agents/embedded-agent-subscribe.handlers.tools.ts @@ -1727,3 +1727,4 @@ export async function handleToolExecutionEnd( }); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-subscribe.subscribe-embedded-agent-session.subscribeembeddedagentsession.test.ts b/src/agents/embedded-agent-subscribe.subscribe-embedded-agent-session.subscribeembeddedagentsession.test.ts index e5745136eb55..4e171ff02190 100644 --- a/src/agents/embedded-agent-subscribe.subscribe-embedded-agent-session.subscribeembeddedagentsession.test.ts +++ b/src/agents/embedded-agent-subscribe.subscribe-embedded-agent-session.subscribeembeddedagentsession.test.ts @@ -1593,3 +1593,4 @@ describe("subscribeEmbeddedAgentSession", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-subscribe.tools.ts b/src/agents/embedded-agent-subscribe.tools.ts index b5bcab27ecac..82dc4099c925 100644 --- a/src/agents/embedded-agent-subscribe.tools.ts +++ b/src/agents/embedded-agent-subscribe.tools.ts @@ -1157,3 +1157,4 @@ export function extractMessagingToolSendResult( threadSuppressed: threadEvidence.threadSuppressed === true ? true : undefined, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/embedded-agent-subscribe.ts b/src/agents/embedded-agent-subscribe.ts index 7cb099bb9991..a6633e9b480e 100644 --- a/src/agents/embedded-agent-subscribe.ts +++ b/src/agents/embedded-agent-subscribe.ts @@ -1508,3 +1508,4 @@ export function subscribeEmbeddedAgentSession(params: SubscribeEmbeddedAgentSess }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/failover-error.test.ts b/src/agents/failover-error.test.ts index 3affcc0c2ca3..144ca4e577c1 100644 --- a/src/agents/failover-error.test.ts +++ b/src/agents/failover-error.test.ts @@ -1548,3 +1548,4 @@ describe("isSignalTimeoutReason", () => { expect(isSignalTimeoutReason(undefined)).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/failover-error.ts b/src/agents/failover-error.ts index 9a36b7bcac2c..858ff412d63a 100644 --- a/src/agents/failover-error.ts +++ b/src/agents/failover-error.ts @@ -857,3 +857,4 @@ export function resolveModelFallbackError( } return { kind: "unknown", error: err }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/harness/native-hook-relay.test.ts b/src/agents/harness/native-hook-relay.test.ts index e42da947eea6..5cdb9ab4c21a 100644 --- a/src/agents/harness/native-hook-relay.test.ts +++ b/src/agents/harness/native-hook-relay.test.ts @@ -3512,3 +3512,4 @@ describe("native hook relay command builder", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/harness/native-hook-relay.ts b/src/agents/harness/native-hook-relay.ts index 9e3b6a8cea18..5d644f9cc251 100644 --- a/src/agents/harness/native-hook-relay.ts +++ b/src/agents/harness/native-hook-relay.ts @@ -2478,3 +2478,4 @@ export const testing = { nativeHookRelayDeferredToolApprovalRequester = requester; }, } as const; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/harness/selection.test.ts b/src/agents/harness/selection.test.ts index 64f71936dc69..c95b77323524 100644 --- a/src/agents/harness/selection.test.ts +++ b/src/agents/harness/selection.test.ts @@ -2652,3 +2652,4 @@ describe("selectAgentHarness", () => { ).toThrow('Requested agent harness "google-gemini-cli" is not registered'); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/harness/selection.ts b/src/agents/harness/selection.ts index e3dd00caa26c..0ecce51e3ed9 100644 --- a/src/agents/harness/selection.ts +++ b/src/agents/harness/selection.ts @@ -771,3 +771,4 @@ function logAgentHarnessSelection( function formatProviderModel(params: { provider: string; modelId?: string }): string { return params.modelId ? `${params.provider}/${params.modelId}` : params.provider; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/live-cache-regression-runner.ts b/src/agents/live-cache-regression-runner.ts index 36aacf961a26..cfe0d12acc7a 100644 --- a/src/agents/live-cache-regression-runner.ts +++ b/src/agents/live-cache-regression-runner.ts @@ -881,3 +881,4 @@ export async function runLiveCacheRegression(): Promise { expect(callGateway).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/main-session-restart-recovery.ts b/src/agents/main-session-restart-recovery.ts index b8a56877f079..e1cbe60f3bcb 100644 --- a/src/agents/main-session-restart-recovery.ts +++ b/src/agents/main-session-restart-recovery.ts @@ -1326,3 +1326,4 @@ export function scheduleRestartAbortedMainSessionRecovery( scheduleAttempt(1, initialDelay); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/model-auth-availability.ts b/src/agents/model-auth-availability.ts index 9eadfabe637a..62c83b2962f3 100644 --- a/src/agents/model-auth-availability.ts +++ b/src/agents/model-auth-availability.ts @@ -1018,3 +1018,4 @@ export function createModelAuthAvailabilityResolver( }), }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/model-auth.profiles.test.ts b/src/agents/model-auth.profiles.test.ts index 4795be0d69ac..e467c1365add 100644 --- a/src/agents/model-auth.profiles.test.ts +++ b/src/agents/model-auth.profiles.test.ts @@ -1961,3 +1961,4 @@ describe("resolveApiKeyForProvider — per-entry apiKey as profile ID reference" ).rejects.toThrow(/matched a stored profile but failed to resolve/); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/model-auth.test.ts b/src/agents/model-auth.test.ts index 5459c7adaffd..2750ff54ab0b 100644 --- a/src/agents/model-auth.test.ts +++ b/src/agents/model-auth.test.ts @@ -2327,3 +2327,4 @@ describe("applyAuthHeaderOverride", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/model-auth.ts b/src/agents/model-auth.ts index c7220e3d6e1a..51bd1bc99f11 100644 --- a/src/agents/model-auth.ts +++ b/src/agents/model-auth.ts @@ -2039,3 +2039,4 @@ export function applyAuthHeaderOverride( headers, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/model-catalog.test.ts b/src/agents/model-catalog.test.ts index ab1ea0f6e600..cf5eb7196a84 100644 --- a/src/agents/model-catalog.test.ts +++ b/src/agents/model-catalog.test.ts @@ -2225,3 +2225,4 @@ describe("loadModelCatalog", () => { expect(modelSupportsInput(catalog[2], "image")).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/model-catalog.ts b/src/agents/model-catalog.ts index 326bb6c4c2bf..a9d8b0017241 100644 --- a/src/agents/model-catalog.ts +++ b/src/agents/model-catalog.ts @@ -996,3 +996,4 @@ export function modelSupportsVision(entry: ModelCatalogEntry | undefined): boole export function modelSupportsDocument(entry: ModelCatalogEntry | undefined): boolean { return modelCatalogEntrySupportsInput(entry, "document"); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/model-fallback.test.ts b/src/agents/model-fallback.test.ts index b5840d941f0a..835bdbb56ac3 100644 --- a/src/agents/model-fallback.test.ts +++ b/src/agents/model-fallback.test.ts @@ -4416,3 +4416,4 @@ describe("runWithModelFallback preserved prompt errors", () => { expect(run).toHaveBeenCalledTimes(1); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/model-fallback.ts b/src/agents/model-fallback.ts index de06d3314d7b..90c4e3cf83c1 100644 --- a/src/agents/model-fallback.ts +++ b/src/agents/model-fallback.ts @@ -2078,3 +2078,4 @@ export async function runWithImageModelFallback(params: { cfg: params.cfg, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/model-selection-shared.ts b/src/agents/model-selection-shared.ts index 3f1c0e440b6a..56e648b3a7a4 100644 --- a/src/agents/model-selection-shared.ts +++ b/src/agents/model-selection-shared.ts @@ -1671,3 +1671,4 @@ export function createModelVisibilityPolicyWithFallbacks( }; return policy; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/model-selection.test.ts b/src/agents/model-selection.test.ts index 4e42b8a2587d..3782be1a2b55 100644 --- a/src/agents/model-selection.test.ts +++ b/src/agents/model-selection.test.ts @@ -3061,3 +3061,4 @@ describe("resolveSubagentSpawnModelSelection", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/models.profiles.live.test.ts b/src/agents/models.profiles.live.test.ts index 3bb530e87039..ffe9288c75ef 100644 --- a/src/agents/models.profiles.live.test.ts +++ b/src/agents/models.profiles.live.test.ts @@ -2378,3 +2378,4 @@ describeLive("live models (profile keys)", () => { LIVE_TEST_TIMEOUT_MS, ); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/modes/interactive/theme/theme.ts b/src/agents/modes/interactive/theme/theme.ts index 3e3bea755037..7dcbe6655966 100644 --- a/src/agents/modes/interactive/theme/theme.ts +++ b/src/agents/modes/interactive/theme/theme.ts @@ -855,3 +855,4 @@ export function getLanguageFromPath(filePath: string): string | undefined { return extToLang[ext]; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/openai-completions-transport.ts b/src/agents/openai-completions-transport.ts index 661035afb4aa..19616b2486f4 100644 --- a/src/agents/openai-completions-transport.ts +++ b/src/agents/openai-completions-transport.ts @@ -1926,3 +1926,4 @@ export const completionsTesting = { processOpenAICompletionsStream, shouldEmitOpenAICompletionsReasoningForModel, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/openai-responses-transport.ts b/src/agents/openai-responses-transport.ts index 08456cf76b03..009d7d86a9a1 100644 --- a/src/agents/openai-responses-transport.ts +++ b/src/agents/openai-responses-transport.ts @@ -2599,3 +2599,4 @@ export const responsesTesting = { stringifyRedactedEvent, stringifyRedactedPayload, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/openai-transport-stream.base.test-utils.ts b/src/agents/openai-transport-stream.base.test-utils.ts index 1cfc4cbda50a..1d6efc896b97 100644 --- a/src/agents/openai-transport-stream.base.test-utils.ts +++ b/src/agents/openai-transport-stream.base.test-utils.ts @@ -1396,3 +1396,4 @@ describe("openai transport stream", () => { expect(client.constructor.name).toBe("AzureOpenAI"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/openai-transport-stream.deepseek-and-shaping.test-utils.ts b/src/agents/openai-transport-stream.deepseek-and-shaping.test-utils.ts index 377d223813cb..020373d52b0d 100644 --- a/src/agents/openai-transport-stream.deepseek-and-shaping.test-utils.ts +++ b/src/agents/openai-transport-stream.deepseek-and-shaping.test-utils.ts @@ -1326,3 +1326,4 @@ describe("openai transport stream", () => { expect(functionCall?.id).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/openai-transport-stream.inline-reasoning-and-tool-calls.test-utils.ts b/src/agents/openai-transport-stream.inline-reasoning-and-tool-calls.test-utils.ts index bbbe24a9c78a..376426fe0e88 100644 --- a/src/agents/openai-transport-stream.inline-reasoning-and-tool-calls.test-utils.ts +++ b/src/agents/openai-transport-stream.inline-reasoning-and-tool-calls.test-utils.ts @@ -1804,3 +1804,4 @@ describe("openai transport stream", () => { ).rejects.toThrow("Exceeded tool-call argument buffer limit"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/openai-transport-stream.reasoning-and-cache.test-utils.ts b/src/agents/openai-transport-stream.reasoning-and-cache.test-utils.ts index 8bdab18116d0..42f999f2b32e 100644 --- a/src/agents/openai-transport-stream.reasoning-and-cache.test-utils.ts +++ b/src/agents/openai-transport-stream.reasoning-and-cache.test-utils.ts @@ -1233,3 +1233,4 @@ describe("openai transport stream", () => { expect(params).not.toHaveProperty("max_tokens"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/openai-transport-stream.replay-and-tools.test-utils.ts b/src/agents/openai-transport-stream.replay-and-tools.test-utils.ts index ee1c7d80212f..cf24c9c29459 100644 --- a/src/agents/openai-transport-stream.replay-and-tools.test-utils.ts +++ b/src/agents/openai-transport-stream.replay-and-tools.test-utils.ts @@ -1955,3 +1955,4 @@ describe("openai transport stream", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/openai-transport-stream.streaming.test-utils.ts b/src/agents/openai-transport-stream.streaming.test-utils.ts index 8c1782961bb5..9d044bddba90 100644 --- a/src/agents/openai-transport-stream.streaming.test-utils.ts +++ b/src/agents/openai-transport-stream.streaming.test-utils.ts @@ -2064,3 +2064,4 @@ describe("openai transport stream", () => { ).toBe(true); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/openai-transport-stream.usage-and-calls.test-utils.ts b/src/agents/openai-transport-stream.usage-and-calls.test-utils.ts index 9aabb0fc8021..b1e774b9e7c8 100644 --- a/src/agents/openai-transport-stream.usage-and-calls.test-utils.ts +++ b/src/agents/openai-transport-stream.usage-and-calls.test-utils.ts @@ -1509,3 +1509,4 @@ describe("openai transport stream", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/openclaw-tools.media-factory-plan.test.ts b/src/agents/openclaw-tools.media-factory-plan.test.ts index 7c7899df8036..a2fc500d4b37 100644 --- a/src/agents/openclaw-tools.media-factory-plan.test.ts +++ b/src/agents/openclaw-tools.media-factory-plan.test.ts @@ -1089,3 +1089,4 @@ describe("optional media tool factory planning", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/openclaw-tools.session-status.test.ts b/src/agents/openclaw-tools.session-status.test.ts index 517c04255d99..dfa556550f78 100644 --- a/src/agents/openclaw-tools.session-status.test.ts +++ b/src/agents/openclaw-tools.session-status.test.ts @@ -2490,3 +2490,4 @@ describe("session_status tool", () => { expect(saved.liveModelSwitchPending).toBe(true); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/openclaw-tools.sessions.test.ts b/src/agents/openclaw-tools.sessions.test.ts index b5d3cebe36c5..fcd8dfa9e8a9 100644 --- a/src/agents/openclaw-tools.sessions.test.ts +++ b/src/agents/openclaw-tools.sessions.test.ts @@ -2268,3 +2268,4 @@ describe("sessions tools", () => { expect(sendParams.threadId).toBe("99"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/provider-attribution.test.ts b/src/agents/provider-attribution.test.ts index 666350db85fe..6e7013ea1c96 100644 --- a/src/agents/provider-attribution.test.ts +++ b/src/agents/provider-attribution.test.ts @@ -1487,3 +1487,4 @@ describe("provider attribution", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/provider-attribution.ts b/src/agents/provider-attribution.ts index f8e64fd42b71..5e46bf6e5daa 100644 --- a/src/agents/provider-attribution.ts +++ b/src/agents/provider-attribution.ts @@ -862,3 +862,4 @@ export function describeProviderRequestRoutingSummary( `policy=${routingPolicy}`, ].join(" "); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/provider-local-service.ts b/src/agents/provider-local-service.ts index 16e1d6998879..4263f10a0a09 100644 --- a/src/agents/provider-local-service.ts +++ b/src/agents/provider-local-service.ts @@ -783,3 +783,4 @@ export function hasLocalServiceProcessExited( ): boolean { return child.exitCode !== null || child.signalCode !== null; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/provider-request-config.ts b/src/agents/provider-request-config.ts index 29312979a97b..40664cc101e2 100644 --- a/src/agents/provider-request-config.ts +++ b/src/agents/provider-request-config.ts @@ -844,3 +844,4 @@ export function getModelProviderRequestTransport( ): ModelProviderRequestTransportOverrides | undefined { return (model as ModelWithProviderRequestTransport)[MODEL_PROVIDER_REQUEST_TRANSPORT_SYMBOL]; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/provider-transport-fetch.test.ts b/src/agents/provider-transport-fetch.test.ts index 7fd621ac7ff9..1b09bddda86b 100644 --- a/src/agents/provider-transport-fetch.test.ts +++ b/src/agents/provider-transport-fetch.test.ts @@ -2234,3 +2234,4 @@ describe("buildGuardedModelFetch", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/provider-transport-fetch.ts b/src/agents/provider-transport-fetch.ts index 79746afcc217..f458448f6566 100644 --- a/src/agents/provider-transport-fetch.ts +++ b/src/agents/provider-transport-fetch.ts @@ -923,3 +923,4 @@ export function buildGuardedModelFetch( : sanitizeOpenAISdkSseResponse(response, { synthesizeJsonAsSse }); }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/runtime-plan/prepare-auth.test.ts b/src/agents/runtime-plan/prepare-auth.test.ts index 354bc1d79eeb..a5555245b626 100644 --- a/src/agents/runtime-plan/prepare-auth.test.ts +++ b/src/agents/runtime-plan/prepare-auth.test.ts @@ -2059,3 +2059,4 @@ describe("prepareAgentRuntimeAuthPlan", () => { ).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/sandbox/ssh.ts b/src/agents/sandbox/ssh.ts index 7f91125d526c..d4eda5e707ca 100644 --- a/src/agents/sandbox/ssh.ts +++ b/src/agents/sandbox/ssh.ts @@ -929,3 +929,4 @@ async function writeSecretMaterial( await fs.chmod(pathname, 0o600); return pathname; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/session-file-repair.test.ts b/src/agents/session-file-repair.test.ts index bd2e981809e2..f2a2fef3da62 100644 --- a/src/agents/session-file-repair.test.ts +++ b/src/agents/session-file-repair.test.ts @@ -1246,3 +1246,4 @@ describe("repairSessionFileIfNeeded", () => { expect(after).toBe(`${content}\n`); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/session-file-repair.ts b/src/agents/session-file-repair.ts index 6b3a1ead39f4..ed883db97c44 100644 --- a/src/agents/session-file-repair.ts +++ b/src/agents/session-file-repair.ts @@ -981,3 +981,4 @@ export async function repairSessionFileIfNeeded(params: { ...(retainedBackupPath ? { backupPath: retainedBackupPath } : {}), }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/session-tool-result-guard.ts b/src/agents/session-tool-result-guard.ts index 98e3a3a9b4cf..a5c5002040ee 100644 --- a/src/agents/session-tool-result-guard.ts +++ b/src/agents/session-tool-result-guard.ts @@ -942,3 +942,4 @@ export function installSessionToolResultGuard( getPendingIds: pendingState.getPendingIds, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/session-transcript-repair.test.ts b/src/agents/session-transcript-repair.test.ts index c458728ce2d5..88977c6963b2 100644 --- a/src/agents/session-transcript-repair.test.ts +++ b/src/agents/session-transcript-repair.test.ts @@ -1375,3 +1375,4 @@ describe("stripToolResultDetails", () => { expect(out).toBe(input); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/session-transcript-repair.ts b/src/agents/session-transcript-repair.ts index 4aca01fbae16..dc1c37d45d78 100644 --- a/src/agents/session-transcript-repair.ts +++ b/src/agents/session-transcript-repair.ts @@ -825,3 +825,4 @@ export function repairToolUseResultPairing( moved: changedOrMoved, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/session-write-lock.test.ts b/src/agents/session-write-lock.test.ts index facefb24674c..11a9258d68a1 100644 --- a/src/agents/session-write-lock.test.ts +++ b/src/agents/session-write-lock.test.ts @@ -1507,3 +1507,4 @@ describe("acquireSessionWriteLock", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/session-write-lock.ts b/src/agents/session-write-lock.ts index 43185f9ee757..77424d583898 100644 --- a/src/agents/session-write-lock.ts +++ b/src/agents/session-write-lock.ts @@ -1101,3 +1101,4 @@ export function resetSessionWriteLockStateForTest(): void { unregisterCleanupHandlers(); resolveProcessStartTimeForLock = getProcessStartTime; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/sessions/agent-session.ts b/src/agents/sessions/agent-session.ts index 7840223989d9..f9aa0f17fbc5 100644 --- a/src/agents/sessions/agent-session.ts +++ b/src/agents/sessions/agent-session.ts @@ -3334,3 +3334,4 @@ export class AgentSession { return this.currentExtensionRunner; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/sessions/extensions/runner.ts b/src/agents/sessions/extensions/runner.ts index 93b6c844ff03..81c51cfe0ad1 100644 --- a/src/agents/sessions/extensions/runner.ts +++ b/src/agents/sessions/extensions/runner.ts @@ -1145,3 +1145,4 @@ export class ExtensionRunner { : { action: "continue" }; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/sessions/extensions/types.ts b/src/agents/sessions/extensions/types.ts index 2df0e3594e32..d5325c7c3682 100644 --- a/src/agents/sessions/extensions/types.ts +++ b/src/agents/sessions/extensions/types.ts @@ -1694,3 +1694,4 @@ export interface ExtensionError { error: string; stack?: string; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/sessions/model-registry.ts b/src/agents/sessions/model-registry.ts index b422a37a05c9..badf975b5481 100644 --- a/src/agents/sessions/model-registry.ts +++ b/src/agents/sessions/model-registry.ts @@ -953,3 +953,4 @@ export interface ProviderConfigInput { compat?: Model["compat"]; }>; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/sessions/package-manager.ts b/src/agents/sessions/package-manager.ts index 8ba3fe43d1d6..155602487a99 100644 --- a/src/agents/sessions/package-manager.ts +++ b/src/agents/sessions/package-manager.ts @@ -1467,3 +1467,4 @@ export class DefaultPackageManager implements PackageManager { }; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/sessions/resource-loader.ts b/src/agents/sessions/resource-loader.ts index 5c2a45d53bc4..0f11e6713c8c 100644 --- a/src/agents/sessions/resource-loader.ts +++ b/src/agents/sessions/resource-loader.ts @@ -1036,3 +1036,4 @@ export class DefaultResourceLoader implements ResourceLoader { return conflicts; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/sessions/session-manager.test.ts b/src/agents/sessions/session-manager.test.ts index 91bc45c4eb7b..57659182f480 100644 --- a/src/agents/sessions/session-manager.test.ts +++ b/src/agents/sessions/session-manager.test.ts @@ -3243,3 +3243,4 @@ function buildMessageEntry(index: number, parentId: string | null): SessionEntry message: { role: "user", content: `message ${index}`, timestamp: index }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/sessions/session-manager.ts b/src/agents/sessions/session-manager.ts index 81a877bfd775..bc162b199b10 100644 --- a/src/agents/sessions/session-manager.ts +++ b/src/agents/sessions/session-manager.ts @@ -3307,3 +3307,4 @@ export class SessionManager { } } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/sessions/settings-manager.ts b/src/agents/sessions/settings-manager.ts index 4e36c7b0749f..f0b225316231 100644 --- a/src/agents/sessions/settings-manager.ts +++ b/src/agents/sessions/settings-manager.ts @@ -1076,3 +1076,4 @@ export class SettingsManager { this.save(); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/subagent-announce-delivery.test.ts b/src/agents/subagent-announce-delivery.test.ts index efadaef1a440..953786bf0399 100644 --- a/src/agents/subagent-announce-delivery.test.ts +++ b/src/agents/subagent-announce-delivery.test.ts @@ -5342,3 +5342,4 @@ describe("deliverSubagentAnnouncement completion delivery", () => { expect(testing.hasSessionFileChangedAnnounceError(wrapperErr)).toBe(true); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/subagent-announce-delivery.ts b/src/agents/subagent-announce-delivery.ts index 7cc94504005c..628c05382e83 100644 --- a/src/agents/subagent-announce-delivery.ts +++ b/src/agents/subagent-announce-delivery.ts @@ -1980,3 +1980,4 @@ export const testing = { hasSessionFileChangedAnnounceError, isSessionFileChangedAnnounceError, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/subagent-announce.format.e2e.test.ts b/src/agents/subagent-announce.format.e2e.test.ts index e5d81410044b..57e91e384d7e 100644 --- a/src/agents/subagent-announce.format.e2e.test.ts +++ b/src/agents/subagent-announce.format.e2e.test.ts @@ -3653,3 +3653,4 @@ describe("subagent announce formatting", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/subagent-control.test.ts b/src/agents/subagent-control.test.ts index fcf2cc2893af..e611adf20d27 100644 --- a/src/agents/subagent-control.test.ts +++ b/src/agents/subagent-control.test.ts @@ -2170,3 +2170,4 @@ describe("listControlledSubagentRuns", () => { }, ); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/subagent-control.ts b/src/agents/subagent-control.ts index 5c2123e9bab7..e2702a37f6cb 100644 --- a/src/agents/subagent-control.ts +++ b/src/agents/subagent-control.ts @@ -934,3 +934,4 @@ export const testing = { : defaultSubagentControlDeps; }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/subagent-registry-lifecycle.test.ts b/src/agents/subagent-registry-lifecycle.test.ts index 8b609ca5d76b..40e533a55735 100644 --- a/src/agents/subagent-registry-lifecycle.test.ts +++ b/src/agents/subagent-registry-lifecycle.test.ts @@ -3406,3 +3406,4 @@ describe("subagent registry lifecycle hardening", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/subagent-registry-lifecycle.ts b/src/agents/subagent-registry-lifecycle.ts index 78ed1fee8bad..dee53bbb6582 100644 --- a/src/agents/subagent-registry-lifecycle.ts +++ b/src/agents/subagent-registry-lifecycle.ts @@ -2068,3 +2068,4 @@ export function createSubagentRegistryLifecycleController(params: { startSubagentAnnounceCleanupFlow, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/subagent-registry-run-manager.ts b/src/agents/subagent-registry-run-manager.ts index 0606ff975bb9..43de84b98cf1 100644 --- a/src/agents/subagent-registry-run-manager.ts +++ b/src/agents/subagent-registry-run-manager.ts @@ -1041,3 +1041,4 @@ export function createSubagentRunManager(params: { waitForSubagentCompletion, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/subagent-registry.persistence.test.ts b/src/agents/subagent-registry.persistence.test.ts index bdea081e3063..31ce0f051308 100644 --- a/src/agents/subagent-registry.persistence.test.ts +++ b/src/agents/subagent-registry.persistence.test.ts @@ -1131,3 +1131,4 @@ describe("subagent registry persistence", () => { expect(registryPath).toContain(path.join(os.tmpdir(), "openclaw-test-state")); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/subagent-registry.steer-restart.test.ts b/src/agents/subagent-registry.steer-restart.test.ts index aa87c69cb0f7..03329d72f53d 100644 --- a/src/agents/subagent-registry.steer-restart.test.ts +++ b/src/agents/subagent-registry.steer-restart.test.ts @@ -1162,3 +1162,4 @@ describe("subagent registry steer restarts", () => { expect(parent?.cleanupHandled).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/subagent-registry.test.ts b/src/agents/subagent-registry.test.ts index 9635e445a8d6..490c6cfa17ea 100644 --- a/src/agents/subagent-registry.test.ts +++ b/src/agents/subagent-registry.test.ts @@ -6069,3 +6069,4 @@ describe("subagent registry seam flow", () => { await expect(mod.testing.runSweeperTickForTests()).resolves.toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/subagent-registry.ts b/src/agents/subagent-registry.ts index 0640301cf930..03a7c7f62667 100644 --- a/src/agents/subagent-registry.ts +++ b/src/agents/subagent-registry.ts @@ -2049,3 +2049,4 @@ export function initSubagentRegistry() { // Importing this module also registers the subagent maintenance preserve-key // provider as a side effect (see subagent-registry-maintenance.ts). export { listSessionMaintenanceProtectedSubagentSessionKeys } from "./subagent-registry-maintenance.js"; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/subagent-spawn.test.ts b/src/agents/subagent-spawn.test.ts index b9171cbbd58b..02a65bff6273 100644 --- a/src/agents/subagent-spawn.test.ts +++ b/src/agents/subagent-spawn.test.ts @@ -1105,3 +1105,4 @@ describe("spawnSubagentDirect seam flow", () => { ).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/subagent-spawn.ts b/src/agents/subagent-spawn.ts index 2e223fc5071a..00e603b759fc 100644 --- a/src/agents/subagent-spawn.ts +++ b/src/agents/subagent-spawn.ts @@ -1742,3 +1742,4 @@ export const testing = { : defaultSubagentSpawnDeps; }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/system-prompt.test.ts b/src/agents/system-prompt.test.ts index 29647e6488ea..afa85c873829 100644 --- a/src/agents/system-prompt.test.ts +++ b/src/agents/system-prompt.test.ts @@ -1712,3 +1712,4 @@ describe("buildSubagentSystemPrompt", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/system-prompt.ts b/src/agents/system-prompt.ts index 14e93f1ad6a1..c320711f63f4 100644 --- a/src/agents/system-prompt.ts +++ b/src/agents/system-prompt.ts @@ -1442,3 +1442,4 @@ function buildRuntimeLine( .filter(Boolean) .join(" | ")}`; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tool-display-common.ts b/src/agents/tool-display-common.ts index 174b32b77860..e77cb89e0f6c 100644 --- a/src/agents/tool-display-common.ts +++ b/src/agents/tool-display-common.ts @@ -816,3 +816,4 @@ export function formatToolDetailText( } return opts.prefixWithWith ? `with ${normalized}` : normalized; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tool-loop-detection.test.ts b/src/agents/tool-loop-detection.test.ts index 27ac1c1a2ef2..71224ab79c1f 100644 --- a/src/agents/tool-loop-detection.test.ts +++ b/src/agents/tool-loop-detection.test.ts @@ -1265,3 +1265,4 @@ describe("tool-loop-detection", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tool-loop-detection.ts b/src/agents/tool-loop-detection.ts index 4dd408191b18..6b153f12f20c 100644 --- a/src/agents/tool-loop-detection.ts +++ b/src/agents/tool-loop-detection.ts @@ -818,3 +818,4 @@ export function recordToolCallOutcome( } return recordedOutcome; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tool-search.test.ts b/src/agents/tool-search.test.ts index 68f3a2b8d94a..d80b98926263 100644 --- a/src/agents/tool-search.test.ts +++ b/src/agents/tool-search.test.ts @@ -1904,3 +1904,4 @@ describe("Tool Search", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tool-search.ts b/src/agents/tool-search.ts index 2dbfd3098943..a3b6b9bd4d73 100644 --- a/src/agents/tool-search.ts +++ b/src/agents/tool-search.ts @@ -2413,3 +2413,4 @@ export const testing = { appendToolSearchCodeStderrTail, runCodeModeChild, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/computer-tool.ts b/src/agents/tools/computer-tool.ts index f96442583069..69aa939348d0 100644 --- a/src/agents/tools/computer-tool.ts +++ b/src/agents/tools/computer-tool.ts @@ -952,3 +952,4 @@ export function createComputerTool(options?: { }), }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/cron-tool.test.ts b/src/agents/tools/cron-tool.test.ts index 82ab7180ff78..d779314f64bc 100644 --- a/src/agents/tools/cron-tool.test.ts +++ b/src/agents/tools/cron-tool.test.ts @@ -2699,3 +2699,4 @@ describe("cron tool", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/cron-tool.ts b/src/agents/tools/cron-tool.ts index 66fac6702cf5..56e13ccbb502 100644 --- a/src/agents/tools/cron-tool.ts +++ b/src/agents/tools/cron-tool.ts @@ -1331,3 +1331,4 @@ Restricted isolated runs may only self status/list, current get/runs, and remove }; return setToolTerminalPresentation(tool, formatCronTerminalPresentation); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/image-generate-tool.test.ts b/src/agents/tools/image-generate-tool.test.ts index c421809448c1..6de5c9a94d3b 100644 --- a/src/agents/tools/image-generate-tool.test.ts +++ b/src/agents/tools/image-generate-tool.test.ts @@ -2732,3 +2732,4 @@ describe("createImageGenerateTool", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/image-generate-tool.ts b/src/agents/tools/image-generate-tool.ts index 6027247e8280..2d651c760773 100644 --- a/src/agents/tools/image-generate-tool.ts +++ b/src/agents/tools/image-generate-tool.ts @@ -1220,3 +1220,4 @@ export function createImageGenerateTool(options?: { }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/image-tool.test.ts b/src/agents/tools/image-tool.test.ts index 033565d81783..ee76927096c0 100644 --- a/src/agents/tools/image-tool.test.ts +++ b/src/agents/tools/image-tool.test.ts @@ -3221,3 +3221,4 @@ describe("image compression policy", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/image-tool.ts b/src/agents/tools/image-tool.ts index b32187bc11e7..d2ee07670c36 100644 --- a/src/agents/tools/image-tool.ts +++ b/src/agents/tools/image-tool.ts @@ -1093,3 +1093,4 @@ export function createImageTool(options?: { }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/media-generate-background-shared.test.ts b/src/agents/tools/media-generate-background-shared.test.ts index 56f08b59857a..36b4e4ab69de 100644 --- a/src/agents/tools/media-generate-background-shared.test.ts +++ b/src/agents/tools/media-generate-background-shared.test.ts @@ -1172,3 +1172,4 @@ describe("createMediaGenerationTaskLifecycle", () => { expect(taskRegistryDeliveryRuntimeMocks.sendMessage).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/media-generate-background-shared.ts b/src/agents/tools/media-generate-background-shared.ts index d1b3848a1b7f..a671b1053757 100644 --- a/src/agents/tools/media-generate-background-shared.ts +++ b/src/agents/tools/media-generate-background-shared.ts @@ -863,3 +863,4 @@ export function createMediaGenerationTaskLifecycle(params: { }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/message-tool.test.ts b/src/agents/tools/message-tool.test.ts index 218b518e24ea..7c01ae0113e0 100644 --- a/src/agents/tools/message-tool.test.ts +++ b/src/agents/tools/message-tool.test.ts @@ -3647,3 +3647,4 @@ describe("message tool sandbox passthrough", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/message-tool.ts b/src/agents/tools/message-tool.ts index 959ceb3d385b..afd0c6ffeb60 100644 --- a/src/agents/tools/message-tool.ts +++ b/src/agents/tools/message-tool.ts @@ -1731,3 +1731,4 @@ export function createMessageTool(options?: MessageToolOptions): AnyAgentTool { }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/music-generate-tool.test.ts b/src/agents/tools/music-generate-tool.test.ts index 098ea18c9043..415c120c23d1 100644 --- a/src/agents/tools/music-generate-tool.test.ts +++ b/src/agents/tools/music-generate-tool.test.ts @@ -1161,3 +1161,4 @@ describe("createMusicGenerateTool", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/music-generate-tool.ts b/src/agents/tools/music-generate-tool.ts index dcfed5bac4d3..58f6712e95b2 100644 --- a/src/agents/tools/music-generate-tool.ts +++ b/src/agents/tools/music-generate-tool.ts @@ -851,3 +851,4 @@ export function createMusicGenerateTool(options?: { }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/session-status-tool.ts b/src/agents/tools/session-status-tool.ts index 18056aeddc4a..6155f84db7b5 100644 --- a/src/agents/tools/session-status-tool.ts +++ b/src/agents/tools/session-status-tool.ts @@ -932,3 +932,4 @@ export function createSessionStatusTool(opts?: { }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/sessions-send-tool.ts b/src/agents/tools/sessions-send-tool.ts index d7e25779723f..0925793984e4 100644 --- a/src/agents/tools/sessions-send-tool.ts +++ b/src/agents/tools/sessions-send-tool.ts @@ -811,3 +811,4 @@ export function createSessionsSendTool(opts?: { }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/sessions-spawn-tool.test.ts b/src/agents/tools/sessions-spawn-tool.test.ts index e5fe224e1e8d..bf710da5a183 100644 --- a/src/agents/tools/sessions-spawn-tool.test.ts +++ b/src/agents/tools/sessions-spawn-tool.test.ts @@ -1162,3 +1162,4 @@ describe("sessions_spawn tool", () => { expect(registration.requesterDisplayKey).toBe("agent:main:main"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/sessions.test.ts b/src/agents/tools/sessions.test.ts index ca54f55d1392..5100104a7e03 100644 --- a/src/agents/tools/sessions.test.ts +++ b/src/agents/tools/sessions.test.ts @@ -1346,3 +1346,4 @@ describe("sessions_send gating", () => { expect(waitTimeouts).toEqual([MAX_TIMER_TIMEOUT_MS]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/video-generate-tool.test.ts b/src/agents/tools/video-generate-tool.test.ts index 4442e1a79b56..e51a487a8bcf 100644 --- a/src/agents/tools/video-generate-tool.test.ts +++ b/src/agents/tools/video-generate-tool.test.ts @@ -1692,3 +1692,4 @@ describe("createVideoGenerateTool", () => { expect(input.resolution).toBe("draft-large"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/video-generate-tool.ts b/src/agents/tools/video-generate-tool.ts index 6ece28205988..d83784544f1e 100644 --- a/src/agents/tools/video-generate-tool.ts +++ b/src/agents/tools/video-generate-tool.ts @@ -1316,3 +1316,4 @@ export function createVideoGenerateTool(options?: { }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/tools/web-fetch.ts b/src/agents/tools/web-fetch.ts index 8dc4ac97f06b..ed3bc4ccdf66 100644 --- a/src/agents/tools/web-fetch.ts +++ b/src/agents/tools/web-fetch.ts @@ -882,3 +882,4 @@ export function createWebFetchTool(options?: { formatWebFetchTerminalPresentation(result), ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/transcript-redact.test.ts b/src/agents/transcript-redact.test.ts index 35ba893d0722..34da5e857911 100644 --- a/src/agents/transcript-redact.test.ts +++ b/src/agents/transcript-redact.test.ts @@ -1457,3 +1457,4 @@ describe("redactTranscriptMessage", () => { expect(() => redactTranscriptMessage(msg, cfg("tools"))).not.toThrow(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/workspace.ts b/src/agents/workspace.ts index e27d7a46476b..5af3c67e334b 100644 --- a/src/agents/workspace.ts +++ b/src/agents/workspace.ts @@ -1326,3 +1326,4 @@ export async function loadExtraBootstrapFilesWithDiagnostics( } return { files, diagnostics }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/agents/worktrees/service.ts b/src/agents/worktrees/service.ts index f15ad7af9b87..9c1d81d8d9a2 100644 --- a/src/agents/worktrees/service.ts +++ b/src/agents/worktrees/service.ts @@ -987,3 +987,4 @@ export type { ManagedWorktreeRecord, RemoveManagedWorktreeResult, } from "./types.js"; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/command-control.test.ts b/src/auto-reply/command-control.test.ts index feccade17909..69f33b028e31 100644 --- a/src/auto-reply/command-control.test.ts +++ b/src/auto-reply/command-control.test.ts @@ -1230,3 +1230,4 @@ describe("control command parsing", () => { expect(hasControlCommand(metaWrapped)).toBe(true); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/commands-registry.shared.ts b/src/auto-reply/commands-registry.shared.ts index 19c00af01253..f353e292dcdb 100644 --- a/src/auto-reply/commands-registry.shared.ts +++ b/src/auto-reply/commands-registry.shared.ts @@ -1059,3 +1059,4 @@ export function buildBuiltinChatCommands( assertCommandRegistry(commands); return commands; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/inbound.test.ts b/src/auto-reply/inbound.test.ts index ebc337353f45..42f67afd349e 100644 --- a/src/auto-reply/inbound.test.ts +++ b/src/auto-reply/inbound.test.ts @@ -1454,3 +1454,4 @@ describe("resolveGroupRequireMention", () => { await expect(resolveGroupRequireMention({ cfg, ctx, groupResolution })).resolves.toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/abort.test.ts b/src/auto-reply/reply/abort.test.ts index 9222822b0812..5a2a98f39ae7 100644 --- a/src/auto-reply/reply/abort.test.ts +++ b/src/auto-reply/reply/abort.test.ts @@ -1593,3 +1593,4 @@ describe("abort detection", () => { expect(subagentRegistryMocks.markSubagentRunTerminated).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/agent-runner-execution.test.ts b/src/auto-reply/reply/agent-runner-execution.test.ts index 15f0a84d2284..b9d0209a001a 100644 --- a/src/auto-reply/reply/agent-runner-execution.test.ts +++ b/src/auto-reply/reply/agent-runner-execution.test.ts @@ -9238,3 +9238,4 @@ describe("runAgentTurnWithFallback", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/agent-runner-execution.ts b/src/auto-reply/reply/agent-runner-execution.ts index 77bfedaa28fc..eee704e45acf 100644 --- a/src/auto-reply/reply/agent-runner-execution.ts +++ b/src/auto-reply/reply/agent-runner-execution.ts @@ -3395,3 +3395,4 @@ export async function runAgentTurnWithFallback( commitTerminalOutcome(); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/agent-runner-memory.test.ts b/src/auto-reply/reply/agent-runner-memory.test.ts index 81d7cf0ba343..1ba0b2687a63 100644 --- a/src/auto-reply/reply/agent-runner-memory.test.ts +++ b/src/auto-reply/reply/agent-runner-memory.test.ts @@ -2660,3 +2660,4 @@ describe("runMemoryFlushIfNeeded", () => { expect(flushCall.bootstrapPromptWarningSignature).toBe("sig-b"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/agent-runner-memory.ts b/src/auto-reply/reply/agent-runner-memory.ts index fde5edf5ce99..c4d71b8df871 100644 --- a/src/auto-reply/reply/agent-runner-memory.ts +++ b/src/auto-reply/reply/agent-runner-memory.ts @@ -1584,3 +1584,4 @@ export async function runMemoryFlushIfNeeded(params: { return { sessionEntry: activeSessionEntry, outcome }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/agent-runner-payloads.test.ts b/src/auto-reply/reply/agent-runner-payloads.test.ts index e7929fba05af..906d34ee3c9c 100644 --- a/src/auto-reply/reply/agent-runner-payloads.test.ts +++ b/src/auto-reply/reply/agent-runner-payloads.test.ts @@ -1568,3 +1568,4 @@ describe("buildReplyPayloads media filter integration", () => { expect(replyPayloads[0]?.text).toBe("hello world!"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/agent-runner.misc.runreplyagent.test.ts b/src/auto-reply/reply/agent-runner.misc.runreplyagent.test.ts index cafbc16f3d65..8cd766a1afcd 100644 --- a/src/auto-reply/reply/agent-runner.misc.runreplyagent.test.ts +++ b/src/auto-reply/reply/agent-runner.misc.runreplyagent.test.ts @@ -3827,3 +3827,4 @@ describe("runReplyAgent private message_tool_only final warning (#85714)", () => expect(scheduleFollowupDrain).toHaveBeenCalledTimes(1); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/agent-runner.runreplyagent.e2e.test.ts b/src/auto-reply/reply/agent-runner.runreplyagent.e2e.test.ts index cc352570fb9e..64983b40ac67 100644 --- a/src/auto-reply/reply/agent-runner.runreplyagent.e2e.test.ts +++ b/src/auto-reply/reply/agent-runner.runreplyagent.e2e.test.ts @@ -3334,3 +3334,4 @@ describe("runReplyAgent typing (heartbeat)", () => { import { getReplyPayloadMetadata } from "../reply-payload.js"; import type { ReplyPayload } from "../types.js"; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/agent-runner.ts b/src/auto-reply/reply/agent-runner.ts index 8029d366af44..4083f10639c6 100644 --- a/src/auto-reply/reply/agent-runner.ts +++ b/src/auto-reply/reply/agent-runner.ts @@ -2801,3 +2801,4 @@ export async function runReplyAgent(params: { typing.markDispatchIdle(); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/commands-acp.test.ts b/src/auto-reply/reply/commands-acp.test.ts index 0af8cfe2bf23..86560e895296 100644 --- a/src/auto-reply/reply/commands-acp.test.ts +++ b/src/auto-reply/reply/commands-acp.test.ts @@ -2227,3 +2227,4 @@ describe("/acp command", () => { expect(result?.reply?.text).toContain("then: /acp doctor"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/commands-acp/lifecycle.ts b/src/auto-reply/reply/commands-acp/lifecycle.ts index 4588c8310dde..7c7b9c3f4a31 100644 --- a/src/auto-reply/reply/commands-acp/lifecycle.ts +++ b/src/auto-reply/reply/commands-acp/lifecycle.ts @@ -893,3 +893,4 @@ export async function handleAcpCloseAction( }, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/commands-approve.test.ts b/src/auto-reply/reply/commands-approve.test.ts index 66760489b941..0631c50b10ac 100644 --- a/src/auto-reply/reply/commands-approve.test.ts +++ b/src/auto-reply/reply/commands-approve.test.ts @@ -1099,3 +1099,4 @@ describe("handleApproveCommand", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/commands-models.ts b/src/auto-reply/reply/commands-models.ts index 4e2e18216063..5fcefab10cbe 100644 --- a/src/auto-reply/reply/commands-models.ts +++ b/src/auto-reply/reply/commands-models.ts @@ -767,3 +767,4 @@ export const handleModelsCommand: CommandHandler = async (params, allowTextComma } return { reply, shouldContinue: false }; }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/commands-session.ts b/src/auto-reply/reply/commands-session.ts index 24feba1ca18d..2899a6913740 100644 --- a/src/auto-reply/reply/commands-session.ts +++ b/src/auto-reply/reply/commands-session.ts @@ -822,3 +822,4 @@ export const handleRestartCommand: CommandHandler = async (params, allowTextComm }; export { handleAbortTrigger, handleStopCommand }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/commands-status.test.ts b/src/auto-reply/reply/commands-status.test.ts index 55ee29f1dec0..3c5c89bd7f98 100644 --- a/src/auto-reply/reply/commands-status.test.ts +++ b/src/auto-reply/reply/commands-status.test.ts @@ -2307,3 +2307,4 @@ describe("buildStatusReply subagent summary", () => { expect(normalizeTestText(text)).toContain("Runtime: OpenAI Codex"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/directive-handling.impl.ts b/src/auto-reply/reply/directive-handling.impl.ts index 0892aaf04b9c..68039dfe35b4 100644 --- a/src/auto-reply/reply/directive-handling.impl.ts +++ b/src/auto-reply/reply/directive-handling.impl.ts @@ -813,3 +813,4 @@ export async function handleDirectiveOnly( } return { text: ack || "OK." }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/directive-handling.model.test.ts b/src/auto-reply/reply/directive-handling.model.test.ts index 54c068aa93ba..72c87a6eddcf 100644 --- a/src/auto-reply/reply/directive-handling.model.test.ts +++ b/src/auto-reply/reply/directive-handling.model.test.ts @@ -2838,3 +2838,4 @@ describe("persistInlineDirectives session directive persistence policy", () => { expect(sessionEntry.verboseLevel).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/dispatch-acp.test.ts b/src/auto-reply/reply/dispatch-acp.test.ts index 7aee42ac4610..a15bb89c7478 100644 --- a/src/auto-reply/reply/dispatch-acp.test.ts +++ b/src/auto-reply/reply/dispatch-acp.test.ts @@ -2254,3 +2254,4 @@ describe("tryDispatchAcpReply", () => { expect(ttsMocks.maybeApplyTtsToPayload).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/dispatch-acp.ts b/src/auto-reply/reply/dispatch-acp.ts index 89dd732c38cf..4381dfe9d193 100644 --- a/src/auto-reply/reply/dispatch-acp.ts +++ b/src/auto-reply/reply/dispatch-acp.ts @@ -810,3 +810,4 @@ export async function tryDispatchAcpReply(params: { }); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/dispatch-from-config.abort-and-dedupe.test-utils.ts b/src/auto-reply/reply/dispatch-from-config.abort-and-dedupe.test-utils.ts index ccf7132e10aa..9d19bb5f76dc 100644 --- a/src/auto-reply/reply/dispatch-from-config.abort-and-dedupe.test-utils.ts +++ b/src/auto-reply/reply/dispatch-from-config.abort-and-dedupe.test-utils.ts @@ -1646,3 +1646,4 @@ describe("dispatchReplyFromConfig", () => { expect(internalHookMocks.triggerInternalHook).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/dispatch-from-config.acp-abort.test.ts b/src/auto-reply/reply/dispatch-from-config.acp-abort.test.ts index 338ac61f4d33..5a41b5e4053b 100644 --- a/src/auto-reply/reply/dispatch-from-config.acp-abort.test.ts +++ b/src/auto-reply/reply/dispatch-from-config.acp-abort.test.ts @@ -1344,3 +1344,4 @@ describe("dispatchReplyFromConfig ACP abort", () => { expect(getActiveReplyRunCount()).toBe(0); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/dispatch-from-config.base.test-utils.ts b/src/auto-reply/reply/dispatch-from-config.base.test-utils.ts index 60f97f1b0823..ef34f7d5a55c 100644 --- a/src/auto-reply/reply/dispatch-from-config.base.test-utils.ts +++ b/src/auto-reply/reply/dispatch-from-config.base.test-utils.ts @@ -1826,3 +1826,4 @@ describe("dispatchReplyFromConfig", () => { expect(routeCall?.accountId).toBe("default"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/dispatch-from-config.delivery-and-tts.test-utils.ts b/src/auto-reply/reply/dispatch-from-config.delivery-and-tts.test-utils.ts index d6f83209a894..d06b5d00fec9 100644 --- a/src/auto-reply/reply/dispatch-from-config.delivery-and-tts.test-utils.ts +++ b/src/auto-reply/reply/dispatch-from-config.delivery-and-tts.test-utils.ts @@ -1451,3 +1451,4 @@ describe("dispatchReplyFromConfig", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/dispatch-from-config.hooks-and-send-policy.test-utils.ts b/src/auto-reply/reply/dispatch-from-config.hooks-and-send-policy.test-utils.ts index cdb09e5d6032..e5b4ec3fc2f5 100644 --- a/src/auto-reply/reply/dispatch-from-config.hooks-and-send-policy.test-utils.ts +++ b/src/auto-reply/reply/dispatch-from-config.hooks-and-send-policy.test-utils.ts @@ -1730,3 +1730,4 @@ describe("sendPolicy deny — suppress delivery, not processing (#53328)", () => expect(dispatcher.sendToolResult).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/dispatch-from-config.lifecycle-and-bindings.test-utils.ts b/src/auto-reply/reply/dispatch-from-config.lifecycle-and-bindings.test-utils.ts index de4647030c3b..56f09211b1ec 100644 --- a/src/auto-reply/reply/dispatch-from-config.lifecycle-and-bindings.test-utils.ts +++ b/src/auto-reply/reply/dispatch-from-config.lifecycle-and-bindings.test-utils.ts @@ -1861,3 +1861,4 @@ describe("dispatchReplyFromConfig", () => { expect(replyResolver).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/dispatch-from-config.progress.test-utils.ts b/src/auto-reply/reply/dispatch-from-config.progress.test-utils.ts index cf1f0594aff4..45e300b4cd1a 100644 --- a/src/auto-reply/reply/dispatch-from-config.progress.test-utils.ts +++ b/src/auto-reply/reply/dispatch-from-config.progress.test-utils.ts @@ -1488,3 +1488,4 @@ describe("dispatchReplyFromConfig", () => { expect(dispatcher.sendFinalReply).toHaveBeenCalledWith({ text: "done" }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/dispatch-from-config.routing.test-utils.ts b/src/auto-reply/reply/dispatch-from-config.routing.test-utils.ts index 7ea3382696b3..2cbe276a7e6b 100644 --- a/src/auto-reply/reply/dispatch-from-config.routing.test-utils.ts +++ b/src/auto-reply/reply/dispatch-from-config.routing.test-utils.ts @@ -1181,3 +1181,4 @@ describe("dispatchReplyFromConfig", () => { expect(dispatcher.sendToolResult).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/dispatch-from-config.send-policy-routing.test-utils.ts b/src/auto-reply/reply/dispatch-from-config.send-policy-routing.test-utils.ts index 70fa64b4f944..9deec41cef32 100644 --- a/src/auto-reply/reply/dispatch-from-config.send-policy-routing.test-utils.ts +++ b/src/auto-reply/reply/dispatch-from-config.send-policy-routing.test-utils.ts @@ -1270,3 +1270,4 @@ describe("sendPolicy deny — suppress delivery, not processing (#53328)", () => expect(firstFinalReplyPayload(dispatcher)?.text).toBe("final reply"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/dispatch-from-config.shared.test-harness.ts b/src/auto-reply/reply/dispatch-from-config.shared.test-harness.ts index 9c820dac2b18..09c6b4bead2a 100644 --- a/src/auto-reply/reply/dispatch-from-config.shared.test-harness.ts +++ b/src/auto-reply/reply/dispatch-from-config.shared.test-harness.ts @@ -765,3 +765,4 @@ export function createHookCtx() { SessionKey: "agent:test:session", }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/dispatch-from-config.ts b/src/auto-reply/reply/dispatch-from-config.ts index b97cc5c72ae1..88670bb64f2e 100644 --- a/src/auto-reply/reply/dispatch-from-config.ts +++ b/src/auto-reply/reply/dispatch-from-config.ts @@ -2825,3 +2825,4 @@ async function dispatchReplyFromConfigInner( throw err; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/followup-runner.test.ts b/src/auto-reply/reply/followup-runner.test.ts index 5e7bdd48c4c9..a14b6b9a4d53 100644 --- a/src/auto-reply/reply/followup-runner.test.ts +++ b/src/auto-reply/reply/followup-runner.test.ts @@ -7126,3 +7126,4 @@ describe("createFollowupRunner queued user message idempotency across fallback", expect(secondAttempt.suppressAssistantErrorPersistence).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/followup-runner.ts b/src/auto-reply/reply/followup-runner.ts index 34e3c3494f3f..42b9a3b81fe4 100644 --- a/src/auto-reply/reply/followup-runner.ts +++ b/src/auto-reply/reply/followup-runner.ts @@ -2067,3 +2067,4 @@ export function createFollowupRunner(params: { }; return runFollowupTurn; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/get-reply-inline-actions.skip-when-config-empty.test.ts b/src/auto-reply/reply/get-reply-inline-actions.skip-when-config-empty.test.ts index 173223fb0e5a..aa0f2870e518 100644 --- a/src/auto-reply/reply/get-reply-inline-actions.skip-when-config-empty.test.ts +++ b/src/auto-reply/reply/get-reply-inline-actions.skip-when-config-empty.test.ts @@ -1398,3 +1398,4 @@ describe("handleInlineActions", () => { ).toBe(true); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/get-reply-run.media-only.test.ts b/src/auto-reply/reply/get-reply-run.media-only.test.ts index d45ffaa3d914..c09890e191de 100644 --- a/src/auto-reply/reply/get-reply-run.media-only.test.ts +++ b/src/auto-reply/reply/get-reply-run.media-only.test.ts @@ -3646,3 +3646,4 @@ describe("runPreparedReply media-only handling", () => { expect(call.followupRun.prompt).toContain("low steer this conversation"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/get-reply-run.ts b/src/auto-reply/reply/get-reply-run.ts index f59617dca350..697e4cfb0293 100644 --- a/src/auto-reply/reply/get-reply-run.ts +++ b/src/auto-reply/reply/get-reply-run.ts @@ -1697,3 +1697,4 @@ export async function runPreparedReply( replyOperation: providedReplyOperation, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/get-reply.ts b/src/auto-reply/reply/get-reply.ts index c37fbcad4f4f..7cfbc0ec74ed 100644 --- a/src/auto-reply/reply/get-reply.ts +++ b/src/auto-reply/reply/get-reply.ts @@ -1141,3 +1141,4 @@ export async function getReplyFromConfig( logResolverTiming("completed", "prepared_reply"); return replyResult; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/inbound-meta.test.ts b/src/auto-reply/reply/inbound-meta.test.ts index 7bacd36761a6..e5ae040f0b64 100644 --- a/src/auto-reply/reply/inbound-meta.test.ts +++ b/src/auto-reply/reply/inbound-meta.test.ts @@ -1499,3 +1499,4 @@ describe("buildInboundUserContextPrefix", () => { expect(text).not.toContain("Chat history since last reply (untrusted, for context):\n```json"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/inbound-meta.ts b/src/auto-reply/reply/inbound-meta.ts index 9a73ec706753..030fac08d6d4 100644 --- a/src/auto-reply/reply/inbound-meta.ts +++ b/src/auto-reply/reply/inbound-meta.ts @@ -812,3 +812,4 @@ export function buildInboundUserContextPrefix( return blocks.filter(Boolean).join("\n\n"); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/model-selection.test.ts b/src/auto-reply/reply/model-selection.test.ts index 34ab2d01c423..a2bec34507e1 100644 --- a/src/auto-reply/reply/model-selection.test.ts +++ b/src/auto-reply/reply/model-selection.test.ts @@ -2063,3 +2063,4 @@ describe("createModelSelectionState resolveDefaultReasoningLevel", () => { await expect(state.resolveDefaultReasoningLevel()).resolves.toBe("off"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/queue.collect.test.ts b/src/auto-reply/reply/queue.collect.test.ts index 8aea18a91e2a..e6e6748fecf3 100644 --- a/src/auto-reply/reply/queue.collect.test.ts +++ b/src/auto-reply/reply/queue.collect.test.ts @@ -4314,3 +4314,4 @@ describe("resolveFollowupAuthorizationKey", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/queue/drain.ts b/src/auto-reply/reply/queue/drain.ts index 4ba45f6459ef..f69df49b0ac8 100644 --- a/src/auto-reply/reply/queue/drain.ts +++ b/src/auto-reply/reply/queue/drain.ts @@ -1366,3 +1366,4 @@ export function scheduleFollowupDrain( defaultRuntime.error?.(`followup queue drain admission failed for ${key}: ${String(err)}`); }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/reply-run-registry.test.ts b/src/auto-reply/reply/reply-run-registry.test.ts index 4d1de0b98229..70dff21d8ee0 100644 --- a/src/auto-reply/reply/reply-run-registry.test.ts +++ b/src/auto-reply/reply/reply-run-registry.test.ts @@ -1292,3 +1292,4 @@ describe("reply run registry", () => { operation.complete(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/reply-run-registry.ts b/src/auto-reply/reply/reply-run-registry.ts index 7370e7b8ce1f..ac5fb118c1b2 100644 --- a/src/auto-reply/reply/reply-run-registry.ts +++ b/src/auto-reply/reply/reply-run-registry.ts @@ -1304,3 +1304,4 @@ export const testing = { replyRunState.followupAdmissionBarriersByKey.clear(); }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/reply-turn-admission.test.ts b/src/auto-reply/reply/reply-turn-admission.test.ts index f828cdb535bd..1283824cdfff 100644 --- a/src/auto-reply/reply/reply-turn-admission.test.ts +++ b/src/auto-reply/reply/reply-turn-admission.test.ts @@ -1278,3 +1278,4 @@ describe("reply turn admission", () => { reservation.complete(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/reply-utils.test.ts b/src/auto-reply/reply/reply-utils.test.ts index 6a58dcc1e6d5..4a51ba2b14d4 100644 --- a/src/auto-reply/reply/reply-utils.test.ts +++ b/src/auto-reply/reply/reply-utils.test.ts @@ -1504,3 +1504,4 @@ describe("extractShortModelName", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/session.test.ts b/src/auto-reply/reply/session.test.ts index 258b7f220629..7c8b5e9272d4 100644 --- a/src/auto-reply/reply/session.test.ts +++ b/src/auto-reply/reply/session.test.ts @@ -6730,3 +6730,4 @@ describe("initSessionState internal channel routing preservation", () => { expect(result.sessionEntry.deliveryContext?.accountId).toBe("work"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/reply/session.ts b/src/auto-reply/reply/session.ts index a51b7204ed6a..f836075e945e 100644 --- a/src/auto-reply/reply/session.ts +++ b/src/auto-reply/reply/session.ts @@ -1203,3 +1203,4 @@ async function initSessionStateAttemptLocked( }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/auto-reply/status.test.ts b/src/auto-reply/status.test.ts index ce0a650f9568..6c9441c2fe0e 100644 --- a/src/auto-reply/status.test.ts +++ b/src/auto-reply/status.test.ts @@ -2785,3 +2785,4 @@ describe("buildCommandsMessagePaginated", () => { expect(pluginPage.text).toContain("/plugin_cmd (demo-plugin) - Plugin command"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/channels/message/ingress-queue.ts b/src/channels/message/ingress-queue.ts index 1cad782e5f65..3eddac69d602 100644 --- a/src/channels/message/ingress-queue.ts +++ b/src/channels/message/ingress-queue.ts @@ -1243,3 +1243,4 @@ export function createChannelIngressQueue< prune, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/channels/plugins/bundled.shape-guard.test.ts b/src/channels/plugins/bundled.shape-guard.test.ts index 2eb3f2311097..f1a94b062f42 100644 --- a/src/channels/plugins/bundled.shape-guard.test.ts +++ b/src/channels/plugins/bundled.shape-guard.test.ts @@ -1371,3 +1371,4 @@ module.exports = { expect(offenders).toStrictEqual([]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/channels/plugins/bundled.ts b/src/channels/plugins/bundled.ts index 7ba3668123b3..c299f4b86039 100644 --- a/src/channels/plugins/bundled.ts +++ b/src/channels/plugins/bundled.ts @@ -957,3 +957,4 @@ export function setBundledChannelRuntime(id: ChannelId, runtime: PluginRuntime): } setter(runtime); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/channels/plugins/message-actions.security.test.ts b/src/channels/plugins/message-actions.security.test.ts index 9932191a8083..01cc8820b939 100644 --- a/src/channels/plugins/message-actions.security.test.ts +++ b/src/channels/plugins/message-actions.security.test.ts @@ -1168,3 +1168,4 @@ describe("dispatchChannelMessageAction conversation-read provenance", () => { }, ); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/channels/plugins/outbound/interactive.test.ts b/src/channels/plugins/outbound/interactive.test.ts index d68068bebd13..e5ad891ea795 100644 --- a/src/channels/plugins/outbound/interactive.test.ts +++ b/src/channels/plugins/outbound/interactive.test.ts @@ -1117,3 +1117,4 @@ describe("presentation capability limits", () => { expect(fallbackBlocks.slice(1).join("")).toBe(`- Value: ${value}`); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/channels/plugins/read-only.test.ts b/src/channels/plugins/read-only.test.ts index b07edea1aefb..80ceb0780e21 100644 --- a/src/channels/plugins/read-only.test.ts +++ b/src/channels/plugins/read-only.test.ts @@ -1466,3 +1466,4 @@ describe("listReadOnlyChannelPluginsForConfig", () => { expect(fs.existsSync(fullMarker)).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/channels/plugins/read-only.ts b/src/channels/plugins/read-only.ts index 8a54fa0c8c9a..4685dee3ac42 100644 --- a/src/channels/plugins/read-only.ts +++ b/src/channels/plugins/read-only.ts @@ -1040,3 +1040,4 @@ export function resolveReadOnlyChannelPluginsForConfig( } return cloneReadOnlyChannelPluginResolution(resolution); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/channels/plugins/setup-wizard-helpers.test.ts b/src/channels/plugins/setup-wizard-helpers.test.ts index 99ba41ade170..38a0ad769a02 100644 --- a/src/channels/plugins/setup-wizard-helpers.test.ts +++ b/src/channels/plugins/setup-wizard-helpers.test.ts @@ -1974,3 +1974,4 @@ describe("resolveAccountIdForConfigure", () => { expect(prompter.text).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/channels/plugins/setup-wizard-helpers.ts b/src/channels/plugins/setup-wizard-helpers.ts index 20c19dd0df81..9512d2c5094d 100644 --- a/src/channels/plugins/setup-wizard-helpers.ts +++ b/src/channels/plugins/setup-wizard-helpers.ts @@ -1589,3 +1589,4 @@ export async function promptLegacyChannelAllowFromForAccount(params: { // Backwards-compatible aliases for existing setup SDK consumers. export const setLegacyChannelDmPolicyWithAllowFrom = setCompatChannelDmPolicyWithAllowFrom; export const createLegacyCompatChannelDmPolicy = createCompatChannelDmPolicy; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/channels/plugins/types.adapters.ts b/src/channels/plugins/types.adapters.ts index f17e710cca21..ea6c7218eb35 100644 --- a/src/channels/plugins/types.adapters.ts +++ b/src/channels/plugins/types.adapters.ts @@ -884,3 +884,4 @@ export type ChannelSecurityAdapter = { }> >; }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/channels/streaming.ts b/src/channels/streaming.ts index 11a3d2b8df0d..75d2d61f2fb3 100644 --- a/src/channels/streaming.ts +++ b/src/channels/streaming.ts @@ -1208,3 +1208,4 @@ export function formatChannelProgressDraftText(params: { } return renderedLines.join("\n"); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/channels/turn/kernel.test.ts b/src/channels/turn/kernel.test.ts index 2da12666127e..f865785bb9b3 100644 --- a/src/channels/turn/kernel.test.ts +++ b/src/channels/turn/kernel.test.ts @@ -1504,3 +1504,4 @@ describe("channel turn kernel", () => { expect(finalizedResult.routeSessionKey).toBe("agent:main:test:peer"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/channels/turn/kernel.ts b/src/channels/turn/kernel.ts index 42500db3bca7..46f533869570 100644 --- a/src/channels/turn/kernel.ts +++ b/src/channels/turn/kernel.ts @@ -793,3 +793,4 @@ async function runChannelTurn< } export const runChannelInboundEvent = runChannelTurn; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/capability-cli.test.ts b/src/cli/capability-cli.test.ts index d3bf4235054f..22eb0a24db06 100644 --- a/src/cli/capability-cli.test.ts +++ b/src/cli/capability-cli.test.ts @@ -3924,3 +3924,4 @@ describe("capability cli", () => { ]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/capability-cli.ts b/src/cli/capability-cli.ts index cd561d06efad..89eb5e910c41 100644 --- a/src/cli/capability-cli.ts +++ b/src/cli/capability-cli.ts @@ -3017,3 +3017,4 @@ export function registerCapabilityCli(program: Command) { }); }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/command-secret-gateway.test.ts b/src/cli/command-secret-gateway.test.ts index 2f9578c93181..10cf15e3cee6 100644 --- a/src/cli/command-secret-gateway.test.ts +++ b/src/cli/command-secret-gateway.test.ts @@ -1443,3 +1443,4 @@ describe("resolveCommandSecretRefsViaGateway", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/command-secret-gateway.ts b/src/cli/command-secret-gateway.ts index d69f1cba0a14..58abf42ca378 100644 --- a/src/cli/command-secret-gateway.ts +++ b/src/cli/command-secret-gateway.ts @@ -1180,3 +1180,4 @@ export async function resolveCommandSecretRefsViaGateway(params: { hadUnresolvedTargets: Object.values(targetStatesByPath).includes("unresolved"), }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/command-secret-targets.test.ts b/src/cli/command-secret-targets.test.ts index 0c458987870e..c4d4ff44d209 100644 --- a/src/cli/command-secret-targets.test.ts +++ b/src/cli/command-secret-targets.test.ts @@ -1159,3 +1159,4 @@ describe("command secret target ids", () => { expect(scoped.allowedPaths).toEqual(new Set()); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/command-secret-targets.ts b/src/cli/command-secret-targets.ts index af4754172a4c..7d3ea6498d06 100644 --- a/src/cli/command-secret-targets.ts +++ b/src/cli/command-secret-targets.ts @@ -1024,3 +1024,4 @@ export function getStatusCommandSecretTargetIds( export function getSecurityAuditCommandSecretTargetIds(): Set { return toTargetIdSet(getCommandSecretTargets().securityAudit); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/config-cli.test.ts b/src/cli/config-cli.test.ts index 0713ad320a45..557f0e4510b0 100644 --- a/src/cli/config-cli.test.ts +++ b/src/cli/config-cli.test.ts @@ -3820,3 +3820,4 @@ describe("config cli", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/config-cli.ts b/src/cli/config-cli.ts index ebd7d3ceebea..39063bf8e959 100644 --- a/src/cli/config-cli.ts +++ b/src/cli/config-cli.ts @@ -2836,3 +2836,4 @@ export function registerConfigCli(program: Command) { await runConfigValidate({ json: Boolean(opts.json) }); }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/cron-cli.test.ts b/src/cli/cron-cli.test.ts index 7ba0be7d6627..4e5e7390a7de 100644 --- a/src/cli/cron-cli.test.ts +++ b/src/cli/cron-cli.test.ts @@ -1751,3 +1751,4 @@ describe("cron cli", () => { expect(callGatewayFromCli).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/daemon-cli/status.gather.test.ts b/src/cli/daemon-cli/status.gather.test.ts index f486d540bc53..dfd778722086 100644 --- a/src/cli/daemon-cli/status.gather.test.ts +++ b/src/cli/daemon-cli/status.gather.test.ts @@ -1340,3 +1340,4 @@ describe("gatherDaemonStatus", () => { expect(status.pluginVersionDrift?.drifts.map((d) => d.pluginId)).toEqual(["whatsapp"]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/daemon-cli/status.gather.ts b/src/cli/daemon-cli/status.gather.ts index 07553e95e1f9..e3493e0da9fa 100644 --- a/src/cli/daemon-cli/status.gather.ts +++ b/src/cli/daemon-cli/status.gather.ts @@ -846,3 +846,4 @@ export function resolvePortListeningAddresses(status: DaemonStatus): string[] { ); return addrs; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/daemon-cli/status.print.test.ts b/src/cli/daemon-cli/status.print.test.ts index 828a36102ec4..04036ef7bfdd 100644 --- a/src/cli/daemon-cli/status.print.test.ts +++ b/src/cli/daemon-cli/status.print.test.ts @@ -1079,3 +1079,4 @@ describe("printDaemonStatus", () => { expect(logged).not.toContain("Gateway process is"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/devices-cli.runtime.ts b/src/cli/devices-cli.runtime.ts index 1640fef7a006..de8fb8a4ad85 100644 --- a/src/cli/devices-cli.runtime.ts +++ b/src/cli/devices-cli.runtime.ts @@ -1209,3 +1209,4 @@ export async function runDevicesRevokeCommand(opts: DevicesRpcOpts): Promise { approveDevicePairing.mockResolvedValue(undefined); summarizeDeviceTokens.mockReturnValue(undefined); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/exec-approvals-cli.ts b/src/cli/exec-approvals-cli.ts index 5126af90fd61..b6586dfd380b 100644 --- a/src/cli/exec-approvals-cli.ts +++ b/src/cli/exec-approvals-cli.ts @@ -908,3 +908,4 @@ export const testing = { formatCliError, readStdin, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/gateway-cli/register.ts b/src/cli/gateway-cli/register.ts index 80b014129533..9bbe5681cd54 100644 --- a/src/cli/gateway-cli/register.ts +++ b/src/cli/gateway-cli/register.ts @@ -925,3 +925,4 @@ export function registerGatewayCli(program: Command) { }, "gateway discover failed"); }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/gateway-cli/run-loop.test.ts b/src/cli/gateway-cli/run-loop.test.ts index a0fb353e4a89..4f43de314a87 100644 --- a/src/cli/gateway-cli/run-loop.test.ts +++ b/src/cli/gateway-cli/run-loop.test.ts @@ -2286,3 +2286,4 @@ describe("gateway discover routing helpers", () => { expect(pickGatewayPort(beacon)).toBeNull(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/gateway-cli/run-loop.ts b/src/cli/gateway-cli/run-loop.ts index ac004c56f9c8..2505b88839ea 100644 --- a/src/cli/gateway-cli/run-loop.ts +++ b/src/cli/gateway-cli/run-loop.ts @@ -996,3 +996,4 @@ export async function runGatewayLoop(params: { cleanupSignals(); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/gateway-cli/run.option-collisions.test.ts b/src/cli/gateway-cli/run.option-collisions.test.ts index 1566a39eefce..2653db75aef2 100644 --- a/src/cli/gateway-cli/run.option-collisions.test.ts +++ b/src/cli/gateway-cli/run.option-collisions.test.ts @@ -1707,3 +1707,4 @@ describe("gateway run option collisions", () => { expect(runtimeErrors[0]).toContain("Use either --password or --password-file."); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/gateway-cli/run.ts b/src/cli/gateway-cli/run.ts index 9b8e0cce95e6..1185f13d4274 100644 --- a/src/cli/gateway-cli/run.ts +++ b/src/cli/gateway-cli/run.ts @@ -1098,3 +1098,4 @@ export const testing = { resolveGatewayStartupFailureExitCode, runGatewayLoopWithSupervisedLockRecovery, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/logs-cli.test.ts b/src/cli/logs-cli.test.ts index ab3cbfeea895..a9aca194e987 100644 --- a/src/cli/logs-cli.test.ts +++ b/src/cli/logs-cli.test.ts @@ -1139,3 +1139,4 @@ describe("logs cli", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/logs-cli.ts b/src/cli/logs-cli.ts index efab2980f686..ce1c86be24c5 100644 --- a/src/cli/logs-cli.ts +++ b/src/cli/logs-cli.ts @@ -827,3 +827,4 @@ export function registerLogsCli(program: Command) { } }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/mcp-cli.ts b/src/cli/mcp-cli.ts index f7f64846c3ff..ce6f11d747f5 100644 --- a/src/cli/mcp-cli.ts +++ b/src/cli/mcp-cli.ts @@ -1345,3 +1345,4 @@ export function registerMcpCli(program: Command) { applyParentDefaultHelpAction(mcp); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/plugins-authoring-command.ts b/src/cli/plugins-authoring-command.ts index f0f4702b6641..eb3ce862b103 100644 --- a/src/cli/plugins-authoring-command.ts +++ b/src/cli/plugins-authoring-command.ts @@ -809,3 +809,4 @@ export async function runPluginsInitCommand( writeScaffoldVitestConfig(rootDir); defaultRuntime.log(`Created ${formatOutputPath(rootDir, ".")}`); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/plugins-cli-test-helpers.ts b/src/cli/plugins-cli-test-helpers.ts index 61ffbb5d175f..ab5094f2569b 100644 --- a/src/cli/plugins-cli-test-helpers.ts +++ b/src/cli/plugins-cli-test-helpers.ts @@ -913,3 +913,4 @@ export function resetPluginsCliTestState() { ((cfg: OpenClawConfig) => cfg) as (...args: unknown[]) => unknown, ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/plugins-cli.install.test.ts b/src/cli/plugins-cli.install.test.ts index cc3f075c3f60..50496e6d3f79 100644 --- a/src/cli/plugins-cli.install.test.ts +++ b/src/cli/plugins-cli.install.test.ts @@ -2695,3 +2695,4 @@ describe("plugins cli install", () => { expect(hookNpmInstallCall().mode).toBe("update"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/plugins-cli.runtime.ts b/src/cli/plugins-cli.runtime.ts index 729e5f8046bf..31cc10ba2443 100644 --- a/src/cli/plugins-cli.runtime.ts +++ b/src/cli/plugins-cli.runtime.ts @@ -934,3 +934,4 @@ export async function runPluginMarketplaceListCommand( defaultRuntime.log(`${theme.command(plugin.name)}${suffix}${desc}`); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/plugins-cli.update.test.ts b/src/cli/plugins-cli.update.test.ts index e3913144e925..2f3f8781760b 100644 --- a/src/cli/plugins-cli.update.test.ts +++ b/src/cli/plugins-cli.update.test.ts @@ -1405,3 +1405,4 @@ describe("plugins cli update", () => { expect(runtimeLogs).toContain('Failed to update hook pack "demo-hooks": registry timeout'); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/plugins-install-command.ts b/src/cli/plugins-install-command.ts index fa2d6eb60303..ea58e98c97a9 100644 --- a/src/cli/plugins-install-command.ts +++ b/src/cli/plugins-install-command.ts @@ -1371,3 +1371,4 @@ export async function runPluginInstallCommand(params: { return runtime.exit(1); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/program/register.status-health-sessions.ts b/src/cli/program/register.status-health-sessions.ts index ae84757c93b7..8e9cdad7258f 100644 --- a/src/cli/program/register.status-health-sessions.ts +++ b/src/cli/program/register.status-health-sessions.ts @@ -763,3 +763,4 @@ export function registerStatusHealthSessionsCommands(program: Command) { }); }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/run-main.exit.test.ts b/src/cli/run-main.exit.test.ts index 762abbb3238c..90dbfb8d3e1d 100644 --- a/src/cli/run-main.exit.test.ts +++ b/src/cli/run-main.exit.test.ts @@ -3869,3 +3869,4 @@ describe("runCli exit behavior", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/run-main.ts b/src/cli/run-main.ts index 740abc45f258..2da43de40dd0 100644 --- a/src/cli/run-main.ts +++ b/src/cli/run-main.ts @@ -1428,3 +1428,4 @@ export async function runCli(argv: string[] = process.argv) { flushExitAfterOneShotOutput(); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/skills-cli.commands.test.ts b/src/cli/skills-cli.commands.test.ts index f40f748ae96a..101c455c2415 100644 --- a/src/cli/skills-cli.commands.test.ts +++ b/src/cli/skills-cli.commands.test.ts @@ -1467,3 +1467,4 @@ describe("skills cli commands", () => { expect(runtimeStdout.at(-1)).toContain("openclaw skills search"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/skills-cli.ts b/src/cli/skills-cli.ts index 077ff03729f4..3e1d53942fcf 100644 --- a/src/cli/skills-cli.ts +++ b/src/cli/skills-cli.ts @@ -1107,3 +1107,4 @@ export function registerSkillsCli(program: Command) { }); }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/update-cli.test.ts b/src/cli/update-cli.test.ts index c774070606d9..119686fb6241 100644 --- a/src/cli/update-cli.test.ts +++ b/src/cli/update-cli.test.ts @@ -7825,3 +7825,4 @@ describe("update-cli", () => { ]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/update-cli/update-command-service.ts b/src/cli/update-cli/update-command-service.ts index 79551aae55ce..dde19d10cae3 100644 --- a/src/cli/update-cli/update-command-service.ts +++ b/src/cli/update-cli/update-command-service.ts @@ -1428,3 +1428,4 @@ export async function maybeRestartService(params: { } return true; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cli/update-cli/update-command.ts b/src/cli/update-cli/update-command.ts index 5bbe0fa876c7..ee295f5f4b9e 100644 --- a/src/cli/update-cli/update-command.ts +++ b/src/cli/update-cli/update-command.ts @@ -1499,3 +1499,4 @@ async function updateCommandInternal( defaultRuntime.writeJson(resultWithPostUpdate); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/agent-via-gateway.test.ts b/src/commands/agent-via-gateway.test.ts index 395a87c0d2cb..57beeb3b40e7 100644 --- a/src/commands/agent-via-gateway.test.ts +++ b/src/commands/agent-via-gateway.test.ts @@ -2129,3 +2129,4 @@ describe("agentCliCommand", () => { expect(runtime.exit).not.toHaveBeenCalledWith(1); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/agent-via-gateway.ts b/src/commands/agent-via-gateway.ts index a178d85fc573..fecdf16566b4 100644 --- a/src/commands/agent-via-gateway.ts +++ b/src/commands/agent-via-gateway.ts @@ -1016,3 +1016,4 @@ export async function agentCliCommand( signalBridge.dispose(); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/agent.test.ts b/src/commands/agent.test.ts index 58601b870bc9..cc81ac618dda 100644 --- a/src/commands/agent.test.ts +++ b/src/commands/agent.test.ts @@ -2002,3 +2002,4 @@ describe("agentCommand", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/auth-choice.test.ts b/src/commands/auth-choice.test.ts index add4fed4bcac..a6a53f8b9014 100644 --- a/src/commands/auth-choice.test.ts +++ b/src/commands/auth-choice.test.ts @@ -1231,3 +1231,4 @@ describe("applyAuthChoice", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/backup-verify.test.ts b/src/commands/backup-verify.test.ts index eba4733875b3..f6cb0e1593fd 100644 --- a/src/commands/backup-verify.test.ts +++ b/src/commands/backup-verify.test.ts @@ -1140,3 +1140,4 @@ describe("backupVerifyCommand", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/backup-verify.ts b/src/commands/backup-verify.ts index ca28cd149e93..34de3e9ffc24 100644 --- a/src/commands/backup-verify.ts +++ b/src/commands/backup-verify.ts @@ -792,3 +792,4 @@ export async function backupVerifyCommand( export const testApi = { assertSqliteExtractionBudget, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/channels.add.test.ts b/src/commands/channels.add.test.ts index 54ebeb56c3df..7fa61855fe35 100644 --- a/src/commands/channels.add.test.ts +++ b/src/commands/channels.add.test.ts @@ -1217,3 +1217,4 @@ describe("channelsAddCommand", () => { expect(afterAccountConfigWritten).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/configure.wizard.ts b/src/commands/configure.wizard.ts index 876c2a1d9155..c2784b38da9c 100644 --- a/src/commands/configure.wizard.ts +++ b/src/commands/configure.wizard.ts @@ -884,3 +884,4 @@ export async function runConfigureWizard( throw err; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/daemon-install-helpers.test.ts b/src/commands/daemon-install-helpers.test.ts index 554f114cb427..ba586355f841 100644 --- a/src/commands/daemon-install-helpers.test.ts +++ b/src/commands/daemon-install-helpers.test.ts @@ -1810,3 +1810,4 @@ describe("collectPreservedExistingServiceEnvVars — operator opt-in allowlist", expect(result.OPENCLAW_BAZ).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/daemon-install-helpers.ts b/src/commands/daemon-install-helpers.ts index e16207465d30..e58bf1a8f27e 100644 --- a/src/commands/daemon-install-helpers.ts +++ b/src/commands/daemon-install-helpers.ts @@ -847,3 +847,4 @@ export function gatewayInstallErrorHint(platform = process.platform): string { ? "Tip: native Windows now falls back to a per-user Startup-folder login item when Scheduled Task creation is denied; if install still fails, rerun from an elevated PowerShell or skip service install." : `Tip: rerun \`${formatCliCommand("openclaw gateway install")}\` after fixing the error.`; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor-auth-flat-profiles.test.ts b/src/commands/doctor-auth-flat-profiles.test.ts index d37a7483f3de..16ae447e37ce 100644 --- a/src/commands/doctor-auth-flat-profiles.test.ts +++ b/src/commands/doctor-auth-flat-profiles.test.ts @@ -1375,3 +1375,4 @@ describe("maybeRepairOpenAICodexAuthProfileStores", () => { ).toEqual(legacy); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor-auth-flat-profiles.ts b/src/commands/doctor-auth-flat-profiles.ts index ec66f01d668d..8966b628f3a8 100644 --- a/src/commands/doctor-auth-flat-profiles.ts +++ b/src/commands/doctor-auth-flat-profiles.ts @@ -1759,3 +1759,4 @@ export async function maybeRepairOpenAICodexAuthProfileStores(params: { clearRuntimeAuthProfileStoreSnapshots(); return result; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor-config-flow.test.ts b/src/commands/doctor-config-flow.test.ts index 60dadcec43a5..31610c2b7103 100644 --- a/src/commands/doctor-config-flow.test.ts +++ b/src/commands/doctor-config-flow.test.ts @@ -3166,3 +3166,4 @@ describe("doctor config flow", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor-gateway-services.test.ts b/src/commands/doctor-gateway-services.test.ts index 272d00bb7d8f..974a4c97c04d 100644 --- a/src/commands/doctor-gateway-services.test.ts +++ b/src/commands/doctor-gateway-services.test.ts @@ -1787,3 +1787,4 @@ describe("maybeScanExtraGatewayServices", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor-gateway-services.ts b/src/commands/doctor-gateway-services.ts index b0b9f34fab11..d17bc7c52e07 100644 --- a/src/commands/doctor-gateway-services.ts +++ b/src/commands/doctor-gateway-services.ts @@ -932,3 +932,4 @@ export async function maybeScanExtraGatewayServices( "Gateway recommendation", ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor-legacy-config.migrations.test.ts b/src/commands/doctor-legacy-config.migrations.test.ts index a4222a34678a..d3afd8b2ad21 100644 --- a/src/commands/doctor-legacy-config.migrations.test.ts +++ b/src/commands/doctor-legacy-config.migrations.test.ts @@ -1915,3 +1915,4 @@ describe("normalizeCompatibilityConfigValues", () => { ]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor-memory-search.test.ts b/src/commands/doctor-memory-search.test.ts index a9cb233618cf..623c82c98b8d 100644 --- a/src/commands/doctor-memory-search.test.ts +++ b/src/commands/doctor-memory-search.test.ts @@ -1580,3 +1580,4 @@ describe("formatRootMemoryFilesWarning", () => { expect(message).toContain("doctor --fix"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor-memory-search.ts b/src/commands/doctor-memory-search.ts index 3baa08d6f891..e1dee1ab709f 100644 --- a/src/commands/doctor-memory-search.ts +++ b/src/commands/doctor-memory-search.ts @@ -785,3 +785,4 @@ function buildGatewayProbeWarning( ? `Gateway memory probe for default agent is not ready: ${detail}` : "Gateway memory probe for default agent is not ready."; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor-session-sqlite-migration-run.ts b/src/commands/doctor-session-sqlite-migration-run.ts index 073446bc6dcd..7537eb8bc7ab 100644 --- a/src/commands/doctor-session-sqlite-migration-run.ts +++ b/src/commands/doctor-session-sqlite-migration-run.ts @@ -996,3 +996,4 @@ function redactAbsoluteHomePaths(value: string): string { } return value.split(home).join("~"); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor-session-sqlite.test.ts b/src/commands/doctor-session-sqlite.test.ts index 2dcb3d60d6bd..8a5bd5fcf681 100644 --- a/src/commands/doctor-session-sqlite.test.ts +++ b/src/commands/doctor-session-sqlite.test.ts @@ -2462,3 +2462,4 @@ function restoreEnvValue(key: keyof NodeJS.ProcessEnv, value: string | undefined } process.env[key] = value; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor-session-sqlite.ts b/src/commands/doctor-session-sqlite.ts index 514087d4505b..0a9976e938e9 100644 --- a/src/commands/doctor-session-sqlite.ts +++ b/src/commands/doctor-session-sqlite.ts @@ -1252,3 +1252,4 @@ function sumTargets( ): number { return targets.reduce((total, target) => total + target[key], 0); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor-state-integrity.ts b/src/commands/doctor-state-integrity.ts index 2e9d14b33e56..3bc35c9d5c8b 100644 --- a/src/commands/doctor-state-integrity.ts +++ b/src/commands/doctor-state-integrity.ts @@ -1493,3 +1493,4 @@ export function noteWorkspaceBackupTip(workspaceDir: string) { note(tip, "Workspace"); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor-state-migrations.test.ts b/src/commands/doctor-state-migrations.test.ts index a2a659762008..b20c04b91891 100644 --- a/src/commands/doctor-state-migrations.test.ts +++ b/src/commands/doctor-state-migrations.test.ts @@ -3707,3 +3707,4 @@ describe("doctor legacy state migrations", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor.warns-state-directory-is-missing.e2e.test.ts b/src/commands/doctor.warns-state-directory-is-missing.e2e.test.ts index 65b7aa898757..9a7eda7d378f 100644 --- a/src/commands/doctor.warns-state-directory-is-missing.e2e.test.ts +++ b/src/commands/doctor.warns-state-directory-is-missing.e2e.test.ts @@ -1123,3 +1123,4 @@ describe("doctor command", () => { expect(warned).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor/cron/index.test.ts b/src/commands/doctor/cron/index.test.ts index b24a0a63c1fb..e24b895f3402 100644 --- a/src/commands/doctor/cron/index.test.ts +++ b/src/commands/doctor/cron/index.test.ts @@ -2060,3 +2060,4 @@ describe("legacy WhatsApp crontab health check", () => { expect(noteMock).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor/repair-sequencing.test.ts b/src/commands/doctor/repair-sequencing.test.ts index 881932b87cea..a982ff2b7c0a 100644 --- a/src/commands/doctor/repair-sequencing.test.ts +++ b/src/commands/doctor/repair-sequencing.test.ts @@ -1119,3 +1119,4 @@ describe("doctor repair sequencing", () => { ]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor/shared/channel-plugin-blockers.test.ts b/src/commands/doctor/shared/channel-plugin-blockers.test.ts index 35d9b37feacb..0d0f66683ed2 100644 --- a/src/commands/doctor/shared/channel-plugin-blockers.test.ts +++ b/src/commands/doctor/shared/channel-plugin-blockers.test.ts @@ -1264,3 +1264,4 @@ describe("channel plugin blockers", () => { ]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor/shared/codex-route-warnings.test.ts b/src/commands/doctor/shared/codex-route-warnings.test.ts index 822647aad030..754ec345d57a 100644 --- a/src/commands/doctor/shared/codex-route-warnings.test.ts +++ b/src/commands/doctor/shared/codex-route-warnings.test.ts @@ -4491,3 +4491,4 @@ describe("collectCodexRouteWarnings", () => { }); } }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor/shared/codex-route-warnings.ts b/src/commands/doctor/shared/codex-route-warnings.ts index a916363bb6c8..b301e15b8a7d 100644 --- a/src/commands/doctor/shared/codex-route-warnings.ts +++ b/src/commands/doctor/shared/codex-route-warnings.ts @@ -3233,3 +3233,4 @@ export async function maybeRepairCodexSessionRoutes(params: { : [], }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor/shared/legacy-config-core-normalizers.ts b/src/commands/doctor/shared/legacy-config-core-normalizers.ts index be23dd6d485e..5c9a567caf11 100644 --- a/src/commands/doctor/shared/legacy-config-core-normalizers.ts +++ b/src/commands/doctor/shared/legacy-config-core-normalizers.ts @@ -1535,3 +1535,4 @@ export function normalizeLegacyMistralModelDefaults( }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor/shared/legacy-config-migrate.test.ts b/src/commands/doctor/shared/legacy-config-migrate.test.ts index 5210f80143f3..ad451a5caf7a 100644 --- a/src/commands/doctor/shared/legacy-config-migrate.test.ts +++ b/src/commands/doctor/shared/legacy-config-migrate.test.ts @@ -3731,3 +3731,4 @@ describe("legacy model compat migrate", () => { ]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor/shared/legacy-config-migrations.runtime.agents.ts b/src/commands/doctor/shared/legacy-config-migrations.runtime.agents.ts index 7f43f609f4ca..eb8e201b5484 100644 --- a/src/commands/doctor/shared/legacy-config-migrations.runtime.agents.ts +++ b/src/commands/doctor/shared/legacy-config-migrations.runtime.agents.ts @@ -1465,3 +1465,4 @@ export const LEGACY_CONFIG_MIGRATIONS_RUNTIME_AGENTS: LegacyConfigMigrationSpec[ }, }), ]; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor/shared/legacy-config-migrations.runtime.models.ts b/src/commands/doctor/shared/legacy-config-migrations.runtime.models.ts index 9619156f0050..62d05c84095b 100644 --- a/src/commands/doctor/shared/legacy-config-migrations.runtime.models.ts +++ b/src/commands/doctor/shared/legacy-config-migrations.runtime.models.ts @@ -1738,3 +1738,4 @@ export const LEGACY_CONFIG_MIGRATIONS_RUNTIME_MODELS: LegacyConfigMigrationSpec[ }, }), ]; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor/shared/missing-configured-plugin-install.test.ts b/src/commands/doctor/shared/missing-configured-plugin-install.test.ts index 1117877f65dd..7fd24c67d380 100644 --- a/src/commands/doctor/shared/missing-configured-plugin-install.test.ts +++ b/src/commands/doctor/shared/missing-configured-plugin-install.test.ts @@ -5013,3 +5013,4 @@ describe("repairMissingConfiguredPluginInstalls", () => { expect(result).toEqual({ changes: [], warnings: [], records: {} }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor/shared/missing-configured-plugin-install.ts b/src/commands/doctor/shared/missing-configured-plugin-install.ts index ad9ca70e4fac..6682955eb672 100644 --- a/src/commands/doctor/shared/missing-configured-plugin-install.ts +++ b/src/commands/doctor/shared/missing-configured-plugin-install.ts @@ -2199,3 +2199,4 @@ async function repairMissingPluginInstalls(params: { records: nextRecords, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor/shared/preview-warnings.test.ts b/src/commands/doctor/shared/preview-warnings.test.ts index b7acb5ecc5d0..d4b7018134ff 100644 --- a/src/commands/doctor/shared/preview-warnings.test.ts +++ b/src/commands/doctor/shared/preview-warnings.test.ts @@ -1616,3 +1616,4 @@ describe("doctor preview warnings", () => { expect(warnings.join("\n")).not.toContain("personal-agent"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor/shared/preview-warnings.ts b/src/commands/doctor/shared/preview-warnings.ts index 048939132068..91f3e8214353 100644 --- a/src/commands/doctor/shared/preview-warnings.ts +++ b/src/commands/doctor/shared/preview-warnings.ts @@ -916,3 +916,4 @@ export async function collectDoctorPreviewNotes(params: { return { infoNotes, warningNotes: warnings }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/doctor/shared/stale-auth-order.test.ts b/src/commands/doctor/shared/stale-auth-order.test.ts index 82e031f02625..42538373fb7a 100644 --- a/src/commands/doctor/shared/stale-auth-order.test.ts +++ b/src/commands/doctor/shared/stale-auth-order.test.ts @@ -1490,3 +1490,4 @@ describe("repairStaleConfiguredAuthOrders", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/gateway-status.test.ts b/src/commands/gateway-status.test.ts index d7182c2f4008..4c1bf75a2218 100644 --- a/src/commands/gateway-status.test.ts +++ b/src/commands/gateway-status.test.ts @@ -1205,3 +1205,4 @@ describe("gateway-status command", () => { expect(call.identity).toBe("/tmp/explicit_id"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/health.ts b/src/commands/health.ts index f5325393339c..0506aa8ea46c 100644 --- a/src/commands/health.ts +++ b/src/commands/health.ts @@ -1077,3 +1077,4 @@ async function readRuntimeHealthConfig(): Promise { const { getRuntimeConfig } = await loadConfigRuntime(); return getRuntimeConfig(); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/migrate.test.ts b/src/commands/migrate.test.ts index 85460554e2a5..f1aad935a2b5 100644 --- a/src/commands/migrate.test.ts +++ b/src/commands/migrate.test.ts @@ -1543,3 +1543,4 @@ describe("migrateApplyCommand", () => { expect(logPayload.warnings).toEqual([warning]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/model-picker.test.ts b/src/commands/model-picker.test.ts index 0abf9fe0219a..deb41cee104c 100644 --- a/src/commands/model-picker.test.ts +++ b/src/commands/model-picker.test.ts @@ -2896,3 +2896,4 @@ describe("applyModelFallbacksFromSelection", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/models/auth.test.ts b/src/commands/models/auth.test.ts index 4e776f7c7e77..7ee02a1411fe 100644 --- a/src/commands/models/auth.test.ts +++ b/src/commands/models/auth.test.ts @@ -1738,3 +1738,4 @@ describe("modelsAuthLoginCommand", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/models/auth.ts b/src/commands/models/auth.ts index 3a2cb8494b5e..298aa2ae313e 100644 --- a/src/commands/models/auth.ts +++ b/src/commands/models/auth.ts @@ -1122,3 +1122,4 @@ export async function modelsAuthLoginCommand(opts: LoginOptions, runtime: Runtim prompter: createClackPrompter(), }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/models/list.list-command.forward-compat.test.ts b/src/commands/models/list.list-command.forward-compat.test.ts index f8b1a84668b5..6ddfdfa81a04 100644 --- a/src/commands/models/list.list-command.forward-compat.test.ts +++ b/src/commands/models/list.list-command.forward-compat.test.ts @@ -1421,3 +1421,4 @@ describe("modelsListCommand forward-compat", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/models/list.probe.ts b/src/commands/models/list.probe.ts index 790f7d0e50ab..c41b9bd9db61 100644 --- a/src/commands/models/list.probe.ts +++ b/src/commands/models/list.probe.ts @@ -967,3 +967,4 @@ export function describeProbeSummary(summary: AuthProbeSummary): string { } return `Probed ${summary.totalTargets} target${summary.totalTargets === 1 ? "" : "s"} in ${formatMs(summary.durationMs)}`; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/models/list.rows.ts b/src/commands/models/list.rows.ts index c9d02383d5c4..3bcf13d7d8b6 100644 --- a/src/commands/models/list.rows.ts +++ b/src/commands/models/list.rows.ts @@ -791,3 +791,4 @@ export async function appendConfiguredRows(params: { ); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/models/list.status-command.ts b/src/commands/models/list.status-command.ts index d519bae56f73..3c75cf24ccb5 100644 --- a/src/commands/models/list.status-command.ts +++ b/src/commands/models/list.status-command.ts @@ -1623,3 +1623,4 @@ export async function modelsStatusCommand( cleanupPluginMetadataSnapshot(); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/models/list.status.test.ts b/src/commands/models/list.status.test.ts index 4cc62629e86d..8300ff8252df 100644 --- a/src/commands/models/list.status.test.ts +++ b/src/commands/models/list.status.test.ts @@ -1495,3 +1495,4 @@ describe("modelsStatusCommand auth overview", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/onboard-channels.e2e.test.ts b/src/commands/onboard-channels.e2e.test.ts index be655a00bc6d..b0933211372f 100644 --- a/src/commands/onboard-channels.e2e.test.ts +++ b/src/commands/onboard-channels.e2e.test.ts @@ -1273,3 +1273,4 @@ describe("setupChannels", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/onboarding-plugin-install.test.ts b/src/commands/onboarding-plugin-install.test.ts index 484b62268580..3b999a0dceef 100644 --- a/src/commands/onboarding-plugin-install.test.ts +++ b/src/commands/onboarding-plugin-install.test.ts @@ -1846,3 +1846,4 @@ describe("ensureOnboardingPluginInstalled", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/onboarding-plugin-install.ts b/src/commands/onboarding-plugin-install.ts index 0e41323c5630..50fbed57899a 100644 --- a/src/commands/onboarding-plugin-install.ts +++ b/src/commands/onboarding-plugin-install.ts @@ -1511,3 +1511,4 @@ export async function ensureOnboardingPluginInstalled(params: { error: errorDetail, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/commands/status.test.ts b/src/commands/status.test.ts index 7acb3f23fb9f..06f4ef926a7a 100644 --- a/src/commands/status.test.ts +++ b/src/commands/status.test.ts @@ -1551,3 +1551,4 @@ describe("statusCommand", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/config-misc.test.ts b/src/config/config-misc.test.ts index 5d5c50fdd3db..40e3477aac36 100644 --- a/src/config/config-misc.test.ts +++ b/src/config/config-misc.test.ts @@ -1498,3 +1498,4 @@ describe("config strict validation", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/config.plugin-validation.test.ts b/src/config/config.plugin-validation.test.ts index 60c9a66c763a..9c4dddb634e8 100644 --- a/src/config/config.plugin-validation.test.ts +++ b/src/config/config.plugin-validation.test.ts @@ -2271,3 +2271,4 @@ describe("config plugin validation", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/env-preserve.ts b/src/config/env-preserve.ts index d3778585ab17..b56a514db9f5 100644 --- a/src/config/env-preserve.ts +++ b/src/config/env-preserve.ts @@ -833,3 +833,4 @@ export function restoreEnvVarRefs( // Mismatched types or primitives — keep incoming return incoming; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/io.observe-recovery.test.ts b/src/config/io.observe-recovery.test.ts index 7ecc0241d880..b9a124dea85f 100644 --- a/src/config/io.observe-recovery.test.ts +++ b/src/config/io.observe-recovery.test.ts @@ -1300,3 +1300,4 @@ describe("config observe recovery", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/io.observe-recovery.ts b/src/config/io.observe-recovery.ts index e6f56eab6e9f..84e24f117b4a 100644 --- a/src/config/io.observe-recovery.ts +++ b/src/config/io.observe-recovery.ts @@ -987,3 +987,4 @@ export async function recoverConfigFromLastKnownGood(params: { ); return true; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/io.ts b/src/config/io.ts index f8c8a98dfe4d..55bd7287731d 100644 --- a/src/config/io.ts +++ b/src/config/io.ts @@ -3251,3 +3251,4 @@ export async function writeConfigFile( } return { ...writeResult, persistedConfig: canonicalSourceConfig }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/io.write-config.test.ts b/src/config/io.write-config.test.ts index 04d888003b95..95b36e9abbb5 100644 --- a/src/config/io.write-config.test.ts +++ b/src/config/io.write-config.test.ts @@ -3528,3 +3528,4 @@ describe("config io write", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/io.write-prepare.test.ts b/src/config/io.write-prepare.test.ts index ff30abb216bf..ab9dcf496a02 100644 --- a/src/config/io.write-prepare.test.ts +++ b/src/config/io.write-prepare.test.ts @@ -1495,3 +1495,4 @@ describe("config io write prepare", () => { ).toThrow("Config write would flatten $include-owned config at agents.defaults"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/io.write-prepare.ts b/src/config/io.write-prepare.ts index 0c4aee51962d..9edcea435138 100644 --- a/src/config/io.write-prepare.ts +++ b/src/config/io.write-prepare.ts @@ -1272,3 +1272,4 @@ export function resolveWriteEnvSnapshotForPath(params: { } return undefined; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/mutate.test.ts b/src/config/mutate.test.ts index 76e98b58bb9d..aaf92f8fc135 100644 --- a/src/config/mutate.test.ts +++ b/src/config/mutate.test.ts @@ -2553,3 +2553,4 @@ describe("config mutate helpers", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/mutate.ts b/src/config/mutate.ts index d9e5d460b75c..491b72e1ad3f 100644 --- a/src/config/mutate.ts +++ b/src/config/mutate.ts @@ -1236,3 +1236,4 @@ export async function mutateConfigFileWithRetry(params: { }, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/plugin-auto-enable.core.test.ts b/src/config/plugin-auto-enable.core.test.ts index 6d8baf7f3a5f..a1630254dcfe 100644 --- a/src/config/plugin-auto-enable.core.test.ts +++ b/src/config/plugin-auto-enable.core.test.ts @@ -1360,3 +1360,4 @@ describe("applyPluginAutoEnable core", () => { expect(result.changes).toStrictEqual([]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/plugin-auto-enable.shared.ts b/src/config/plugin-auto-enable.shared.ts index 6da0d96e1643..70b5611cd230 100644 --- a/src/config/plugin-auto-enable.shared.ts +++ b/src/config/plugin-auto-enable.shared.ts @@ -1152,3 +1152,4 @@ export function materializePluginAutoEnableCandidatesInternal(params: { return { config: next, changes, autoEnabledReasons: autoEnabledReasonRecord }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/redact-snapshot.test.ts b/src/config/redact-snapshot.test.ts index 760ceb161712..db1562402233 100644 --- a/src/config/redact-snapshot.test.ts +++ b/src/config/redact-snapshot.test.ts @@ -1476,3 +1476,4 @@ describe("redactConfigSnapshot", () => { expect(restored.browser.profiles.local.cdpUrl).toBe("ws://localhost:9222"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/redact-snapshot.ts b/src/config/redact-snapshot.ts index 15aa36e625ea..d45cf6ae3d29 100644 --- a/src/config/redact-snapshot.ts +++ b/src/config/redact-snapshot.ts @@ -888,3 +888,4 @@ function restoreRedactedValuesGuessing( } return result; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/schema.help.quality.test.ts b/src/config/schema.help.quality.test.ts index 36c64dd08e99..bf9e29bb42f3 100644 --- a/src/config/schema.help.quality.test.ts +++ b/src/config/schema.help.quality.test.ts @@ -1105,3 +1105,4 @@ describe("config help copy quality", () => { expect(/today \+ yesterday|default:\s*2/i.test(dailyMemoryDays)).toBe(true); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/schema.help.ts b/src/config/schema.help.ts index 77c3fb5e41d7..a9ae37ac36ee 100644 --- a/src/config/schema.help.ts +++ b/src/config/schema.help.ts @@ -2087,3 +2087,4 @@ export const FIELD_HELP: Record = { "messages.inbound.debounceMs": "Debounce window (ms) for batching rapid inbound messages from the same sender (0 to disable).", }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/schema.labels.ts b/src/config/schema.labels.ts index 4ca0abfadc08..451a872f20e5 100644 --- a/src/config/schema.labels.ts +++ b/src/config/schema.labels.ts @@ -1131,3 +1131,4 @@ export const FIELD_LABELS: Record = { "plugins.entries.*.env": "Plugin Environment Variables", "plugins.entries.*.config": "Plugin Config", }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/schema.test.ts b/src/config/schema.test.ts index b24ca213bf88..2830a05e86e4 100644 --- a/src/config/schema.test.ts +++ b/src/config/schema.test.ts @@ -1207,3 +1207,4 @@ describe("config schema", () => { expect(lookupConfigSchema(baseSchema, "gateway.notReal.path")).toBeNull(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/schema.ts b/src/config/schema.ts index bc058c77f843..386b409ae1f2 100644 --- a/src/config/schema.ts +++ b/src/config/schema.ts @@ -843,3 +843,4 @@ export function lookupConfigSchema( ), }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/sessions/disk-budget.ts b/src/config/sessions/disk-budget.ts index 0071883c20c9..ffb1f6130e86 100644 --- a/src/config/sessions/disk-budget.ts +++ b/src/config/sessions/disk-budget.ts @@ -845,3 +845,4 @@ export async function enforceSessionDiskBudget(params: { overBudget: true, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/sessions/session-accessor.conformance.test.ts b/src/config/sessions/session-accessor.conformance.test.ts index 48a3ff0f4421..b46e5eaa877d 100644 --- a/src/config/sessions/session-accessor.conformance.test.ts +++ b/src/config/sessions/session-accessor.conformance.test.ts @@ -2123,3 +2123,4 @@ describe("sqlite session normalization", () => { expect(fs.existsSync(path.join(paths.tempDir, `${result.entry.sessionId}.jsonl`))).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/sessions/session-accessor.sqlite.ts b/src/config/sessions/session-accessor.sqlite.ts index c6584c65f7c6..80112fbe610c 100644 --- a/src/config/sessions/session-accessor.sqlite.ts +++ b/src/config/sessions/session-accessor.sqlite.ts @@ -5815,3 +5815,4 @@ function writeSqliteForkedChildTranscriptInTransaction( }); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/sessions/session-accessor.test.ts b/src/config/sessions/session-accessor.test.ts index 985ae1c72369..be04f908b86b 100644 --- a/src/config/sessions/session-accessor.test.ts +++ b/src/config/sessions/session-accessor.test.ts @@ -3068,3 +3068,4 @@ describe("session accessor seam", () => { expect(target.sessionFile).toContain("sqlite:main:custom-topic-session:"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/sessions/session-accessor.ts b/src/config/sessions/session-accessor.ts index 8c843d899fb0..fd52ddd131c6 100644 --- a/src/config/sessions/session-accessor.ts +++ b/src/config/sessions/session-accessor.ts @@ -3232,3 +3232,4 @@ async function publishTranscriptTurnUpdate(params: { sessionFile: params.target.sessionFile, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/sessions/sessions.test.ts b/src/config/sessions/sessions.test.ts index 16397da33517..43b862ae1305 100644 --- a/src/config/sessions/sessions.test.ts +++ b/src/config/sessions/sessions.test.ts @@ -1182,3 +1182,4 @@ describe("resolveAndPersistSessionFile", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/sessions/store.pruning.integration.test.ts b/src/config/sessions/store.pruning.integration.test.ts index dc9a00767d5f..4741139969f3 100644 --- a/src/config/sessions/store.pruning.integration.test.ts +++ b/src/config/sessions/store.pruning.integration.test.ts @@ -1763,3 +1763,4 @@ describe("Integration: saveSessionStore with pruning", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/sessions/store.ts b/src/config/sessions/store.ts index a2b47be2d516..24f017642e96 100644 --- a/src/config/sessions/store.ts +++ b/src/config/sessions/store.ts @@ -1359,3 +1359,4 @@ export async function patchSessionEntryWithKey( }; }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/sessions/transcript.test.ts b/src/config/sessions/transcript.test.ts index 914f4ab44b1b..9f8215b3921a 100644 --- a/src/config/sessions/transcript.test.ts +++ b/src/config/sessions/transcript.test.ts @@ -2690,3 +2690,4 @@ describe("appendAssistantMessageToSessionTranscript", () => { expect(messages[2]?.parentId).toBe("legacy-second"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/sessions/transcript.ts b/src/config/sessions/transcript.ts index c788902c33d7..5990f1300dd5 100644 --- a/src/config/sessions/transcript.ts +++ b/src/config/sessions/transcript.ts @@ -840,3 +840,4 @@ async function findLatestEquivalentAssistantMessageId( return undefined; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/validation.ts b/src/config/validation.ts index c6518b2018c8..4c64ee3f7961 100644 --- a/src/config/validation.ts +++ b/src/config/validation.ts @@ -2122,3 +2122,4 @@ function validateConfigObjectWithPluginsBase( return { ok: true, config: mutatedConfig, warnings }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/zod-schema.agent-runtime.ts b/src/config/zod-schema.agent-runtime.ts index c4c9891af1f5..64730ec07b37 100644 --- a/src/config/zod-schema.agent-runtime.ts +++ b/src/config/zod-schema.agent-runtime.ts @@ -1163,3 +1163,4 @@ export const ToolsSchema = z ); }) .optional(); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/zod-schema.core.ts b/src/config/zod-schema.core.ts index 5b2ed463380a..0dbcb0c29c32 100644 --- a/src/config/zod-schema.core.ts +++ b/src/config/zod-schema.core.ts @@ -1151,3 +1151,4 @@ export const ProviderCommandsSchema = z }) .strict() .optional(); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/zod-schema.providers-core.ts b/src/config/zod-schema.providers-core.ts index f39180a0378b..03b5c424d404 100644 --- a/src/config/zod-schema.providers-core.ts +++ b/src/config/zod-schema.providers-core.ts @@ -1588,3 +1588,4 @@ export const MSTeamsConfigSchema = z // so we cannot require them in the config object itself. // Runtime validation happens in resolveMSTeamsCredentials(). }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/config/zod-schema.ts b/src/config/zod-schema.ts index 607b77c88547..76dd762a84fa 100644 --- a/src/config/zod-schema.ts +++ b/src/config/zod-schema.ts @@ -1495,3 +1495,4 @@ export const OpenClawSchema = z } } }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/context-engine/context-engine.test.ts b/src/context-engine/context-engine.test.ts index 2562d5f9273d..3b1d82c03791 100644 --- a/src/context-engine/context-engine.test.ts +++ b/src/context-engine/context-engine.test.ts @@ -1969,3 +1969,4 @@ describe("Bundle chunk isolation (#40096)", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/context-engine/registry.ts b/src/context-engine/registry.ts index 698a1e32d1c0..0aef3ac5d195 100644 --- a/src/context-engine/registry.ts +++ b/src/context-engine/registry.ts @@ -1073,3 +1073,4 @@ async function resolveDefaultContextEngine( engineId: defaultEngineId, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/crestodian/agent-turn.test.ts b/src/crestodian/agent-turn.test.ts index cb5101c360ea..bc508c9bdc9e 100644 --- a/src/crestodian/agent-turn.test.ts +++ b/src/crestodian/agent-turn.test.ts @@ -1074,3 +1074,4 @@ describe("runCrestodianAgentTurn", () => { expect(session.cliSession).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/crestodian/chat-engine.test.ts b/src/crestodian/chat-engine.test.ts index a966642159ee..9f64d93072fb 100644 --- a/src/crestodian/chat-engine.test.ts +++ b/src/crestodian/chat-engine.test.ts @@ -1836,3 +1836,4 @@ function fakeOverviewLoader( }, }) as never; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/crestodian/chat-engine.ts b/src/crestodian/chat-engine.ts index c1c1545a69e8..478f0bd6c7bc 100644 --- a/src/crestodian/chat-engine.ts +++ b/src/crestodian/chat-engine.ts @@ -1102,3 +1102,4 @@ export class CrestodianChatEngine { return await this.pumpWizardBridge(); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/crestodian/operations.test.ts b/src/crestodian/operations.test.ts index f293f970ef15..c9daf1952142 100644 --- a/src/crestodian/operations.test.ts +++ b/src/crestodian/operations.test.ts @@ -1740,3 +1740,4 @@ describe("parseCrestodianOperation", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/crestodian/operations.ts b/src/crestodian/operations.ts index 84f6db2c9a60..b53ddbcd1cb6 100644 --- a/src/crestodian/operations.ts +++ b/src/crestodian/operations.ts @@ -1527,3 +1527,4 @@ export async function executeCrestodianOperation( return { applied: false }; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/crestodian/setup-inference.test.ts b/src/crestodian/setup-inference.test.ts index 73d309077709..cf57bdeba24c 100644 --- a/src/crestodian/setup-inference.test.ts +++ b/src/crestodian/setup-inference.test.ts @@ -5266,3 +5266,4 @@ describe("verifySetupInference", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/crestodian/setup-inference.ts b/src/crestodian/setup-inference.ts index fc40d152e1b2..a726d74736f8 100644 --- a/src/crestodian/setup-inference.ts +++ b/src/crestodian/setup-inference.ts @@ -2939,3 +2939,4 @@ async function runSetupInferenceTest(params: { }; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/crestodian/verified-inference.test.ts b/src/crestodian/verified-inference.test.ts index 6de30dea4459..24976f8a933b 100644 --- a/src/crestodian/verified-inference.test.ts +++ b/src/crestodian/verified-inference.test.ts @@ -1475,3 +1475,4 @@ describe("verified Crestodian inference binding", () => { expect(route).toBe(remainsValid ? binding.execution : null); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/crestodian/verified-inference.ts b/src/crestodian/verified-inference.ts index 72698608b7de..afe7e93677e0 100644 --- a/src/crestodian/verified-inference.ts +++ b/src/crestodian/verified-inference.ts @@ -926,3 +926,4 @@ export async function resolveCrestodianVerifiedInferenceRoute( } return binding.execution; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cron/isolated-agent/delivery-dispatch.double-announce.test.ts b/src/cron/isolated-agent/delivery-dispatch.double-announce.test.ts index 2229c34be0bb..880ac2a352fd 100644 --- a/src/cron/isolated-agent/delivery-dispatch.double-announce.test.ts +++ b/src/cron/isolated-agent/delivery-dispatch.double-announce.test.ts @@ -2745,3 +2745,4 @@ describe("dispatchCronDelivery — double-announce guard", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cron/isolated-agent/delivery-dispatch.ts b/src/cron/isolated-agent/delivery-dispatch.ts index 4fa8c002997c..b16f26c061e2 100644 --- a/src/cron/isolated-agent/delivery-dispatch.ts +++ b/src/cron/isolated-agent/delivery-dispatch.ts @@ -1573,3 +1573,4 @@ export async function dispatchCronDelivery( return buildDeliveryState(); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cron/isolated-agent/delivery-target.test.ts b/src/cron/isolated-agent/delivery-target.test.ts index efd6372097a9..71113dcdadf5 100644 --- a/src/cron/isolated-agent/delivery-target.test.ts +++ b/src/cron/isolated-agent/delivery-target.test.ts @@ -1611,3 +1611,4 @@ describe("resolveDeliveryTarget", () => { expect(result.accountId).toBe("explicit"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cron/isolated-agent/run-executor.ts b/src/cron/isolated-agent/run-executor.ts index 24097a2b414a..01f848a69c8a 100644 --- a/src/cron/isolated-agent/run-executor.ts +++ b/src/cron/isolated-agent/run-executor.ts @@ -836,3 +836,4 @@ export async function executeCronRun(params: { liveSelection: params.liveSelection, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cron/isolated-agent/run.message-tool-policy.test.ts b/src/cron/isolated-agent/run.message-tool-policy.test.ts index d99c018ffc28..de8d44ea55d0 100644 --- a/src/cron/isolated-agent/run.message-tool-policy.test.ts +++ b/src/cron/isolated-agent/run.message-tool-policy.test.ts @@ -2021,3 +2021,4 @@ describe("runCronIsolatedAgentTurn delivery instruction", () => { ]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cron/isolated-agent/run.test-harness.ts b/src/cron/isolated-agent/run.test-harness.ts index de87983ac248..220ff073fc02 100644 --- a/src/cron/isolated-agent/run.test-harness.ts +++ b/src/cron/isolated-agent/run.test-harness.ts @@ -838,3 +838,4 @@ export async function loadRunCronIsolatedAgentTurn() { const { runCronIsolatedAgentTurn } = await import("./run.js"); return runCronIsolatedAgentTurn; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cron/isolated-agent/run.ts b/src/cron/isolated-agent/run.ts index d2894993dc8e..ccb324e2adb8 100644 --- a/src/cron/isolated-agent/run.ts +++ b/src/cron/isolated-agent/run.ts @@ -1858,3 +1858,4 @@ export async function runCronIsolatedAgentTurn(params: { } } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cron/normalize.ts b/src/cron/normalize.ts index 734c97f2863f..396c3be2d3f7 100644 --- a/src/cron/normalize.ts +++ b/src/cron/normalize.ts @@ -770,3 +770,4 @@ export function normalizeCronJobPatch( ...options, }) as CronJobPatch | null; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cron/service.jobs.test.ts b/src/cron/service.jobs.test.ts index 3c661625976e..f3b13d5943ee 100644 --- a/src/cron/service.jobs.test.ts +++ b/src/cron/service.jobs.test.ts @@ -1511,3 +1511,4 @@ describe("recomputeNextRuns", () => { expect(job.state.scheduleErrorCount).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cron/service/jobs.ts b/src/cron/service/jobs.ts index 9bc4e5a9343f..012f9cd45b9e 100644 --- a/src/cron/service/jobs.ts +++ b/src/cron/service/jobs.ts @@ -1487,3 +1487,4 @@ export function resolveJobPayloadTextForMain(job: CronJob): string | undefined { const text = normalizePayloadToSystemText(job.payload); return text.trim() ? text : undefined; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cron/service/ops.test.ts b/src/cron/service/ops.test.ts index e6918fb3619e..1e7d419a7cbd 100644 --- a/src/cron/service/ops.test.ts +++ b/src/cron/service/ops.test.ts @@ -1292,3 +1292,4 @@ describe("cron service ops persist rollback", () => { expect(requestHeartbeat).toHaveBeenCalledTimes(1); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cron/service/ops.ts b/src/cron/service/ops.ts index ed9970758c28..f9463232d529 100644 --- a/src/cron/service/ops.ts +++ b/src/cron/service/ops.ts @@ -1271,3 +1271,4 @@ export function wakeNow( ) { return wake(state, opts); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cron/service/timer.regression.test.ts b/src/cron/service/timer.regression.test.ts index 70106f8d6564..03e2f2281e3f 100644 --- a/src/cron/service/timer.regression.test.ts +++ b/src/cron/service/timer.regression.test.ts @@ -3784,3 +3784,4 @@ describe("cron service timer regressions", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cron/service/timer.ts b/src/cron/service/timer.ts index 6a3db0639dcb..e3c95996293e 100644 --- a/src/cron/service/timer.ts +++ b/src/cron/service/timer.ts @@ -2456,3 +2456,4 @@ export function stopTimer(state: CronServiceState) { } state.timer = null; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/cron/store.test.ts b/src/cron/store.test.ts index 236c8004a00c..db7a1ab9224b 100644 --- a/src/cron/store.test.ts +++ b/src/cron/store.test.ts @@ -1186,3 +1186,4 @@ describe("saveCronStore", () => { await expectPathMissing(`${storePath}.bak`); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/daemon/launchd.test.ts b/src/daemon/launchd.test.ts index 23845796b847..7bec883fd2d7 100644 --- a/src/daemon/launchd.test.ts +++ b/src/daemon/launchd.test.ts @@ -2444,3 +2444,4 @@ describe("resolveLaunchAgentPlistPath", () => { ).toThrow("Invalid launchd label"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/daemon/launchd.ts b/src/daemon/launchd.ts index 71ce5803ecc0..13a491b22ed3 100644 --- a/src/daemon/launchd.ts +++ b/src/daemon/launchd.ts @@ -1353,3 +1353,4 @@ export async function restartLaunchAgent({ writeLaunchAgentActionLine(stdout, "Restarted LaunchAgent", serviceTarget); return { outcome: "completed" }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/daemon/schtasks.startup-fallback.test.ts b/src/daemon/schtasks.startup-fallback.test.ts index a167bad6eb5b..b6afd8aad7fb 100644 --- a/src/daemon/schtasks.startup-fallback.test.ts +++ b/src/daemon/schtasks.startup-fallback.test.ts @@ -1986,3 +1986,4 @@ describe("Windows startup fallback", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/daemon/schtasks.ts b/src/daemon/schtasks.ts index 14143b3b201e..26119d5792c7 100644 --- a/src/daemon/schtasks.ts +++ b/src/daemon/schtasks.ts @@ -2060,3 +2060,4 @@ export async function readScheduledTaskRuntime( ...(derived.detail ? { detail: derived.detail } : {}), }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/daemon/systemd.test.ts b/src/daemon/systemd.test.ts index efed98a46946..a80f5c5a1d7f 100644 --- a/src/daemon/systemd.test.ts +++ b/src/daemon/systemd.test.ts @@ -2364,3 +2364,4 @@ describe("systemd service control", () => { await assertRestartSuccess({ USER: "debian" }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/daemon/systemd.ts b/src/daemon/systemd.ts index bb7cf4a65a28..7833743b5af6 100644 --- a/src/daemon/systemd.ts +++ b/src/daemon/systemd.ts @@ -1548,3 +1548,4 @@ export async function uninstallLegacySystemdUnits({ return units; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/docker-setup.e2e.test.ts b/src/docker-setup.e2e.test.ts index 62964e7d6436..23525db7439c 100644 --- a/src/docker-setup.e2e.test.ts +++ b/src/docker-setup.e2e.test.ts @@ -1200,3 +1200,4 @@ describe("scripts/docker/setup.sh", () => { expect(argLine).toBe("ARG OPENCLAW_IMAGE_APT_PACKAGES"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/fleet/backup.runtime.ts b/src/fleet/backup.runtime.ts index 73dda1667e58..86db1d9edca9 100644 --- a/src/fleet/backup.runtime.ts +++ b/src/fleet/backup.runtime.ts @@ -811,3 +811,4 @@ export async function restoreFleetCell(params: { } } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/fleet/containers.runtime.ts b/src/fleet/containers.runtime.ts index ac6fbaacc492..5bebab91e4e9 100644 --- a/src/fleet/containers.runtime.ts +++ b/src/fleet/containers.runtime.ts @@ -810,3 +810,4 @@ export function createFleetContainerRuntime( }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/fleet/service.runtime.ts b/src/fleet/service.runtime.ts index f011369b50b4..e1c1c34c1024 100644 --- a/src/fleet/service.runtime.ts +++ b/src/fleet/service.runtime.ts @@ -796,3 +796,4 @@ export function createFleetService(options: FleetServiceOptions = {}) { }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/flows/channel-setup.test.ts b/src/flows/channel-setup.test.ts index 5318db133cc2..1acc2c0644bb 100644 --- a/src/flows/channel-setup.test.ts +++ b/src/flows/channel-setup.test.ts @@ -1284,3 +1284,4 @@ describe("setupChannels workspace shadow exclusion", () => { }, ); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/flows/channel-setup.ts b/src/flows/channel-setup.ts index 246128628c37..e25ba43ff6b8 100644 --- a/src/flows/channel-setup.ts +++ b/src/flows/channel-setup.ts @@ -833,3 +833,4 @@ export async function setupChannels( return next; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/flows/doctor-core-checks.runtime.test.ts b/src/flows/doctor-core-checks.runtime.test.ts index 2af737710446..69ae03b0e268 100644 --- a/src/flows/doctor-core-checks.runtime.test.ts +++ b/src/flows/doctor-core-checks.runtime.test.ts @@ -1161,3 +1161,4 @@ describe("doctor provider catalog projection checks", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/flows/doctor-core-checks.runtime.ts b/src/flows/doctor-core-checks.runtime.ts index 5e8d47d959c3..267ce83528f8 100644 --- a/src/flows/doctor-core-checks.runtime.ts +++ b/src/flows/doctor-core-checks.runtime.ts @@ -1171,3 +1171,4 @@ export async function collectRuntimeToolSchemaFindings( } return findings; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/flows/doctor-core-checks.ts b/src/flows/doctor-core-checks.ts index b2256b54a7a7..81bab11629cd 100644 --- a/src/flows/doctor-core-checks.ts +++ b/src/flows/doctor-core-checks.ts @@ -1192,3 +1192,4 @@ export function createCoreHealthChecks( } export const CORE_HEALTH_CHECKS: readonly SplitHealthCheckInput[] = createCoreHealthChecks(); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/flows/doctor-health-contributions.test.ts b/src/flows/doctor-health-contributions.test.ts index 75445d1a01eb..350384929d73 100644 --- a/src/flows/doctor-health-contributions.test.ts +++ b/src/flows/doctor-health-contributions.test.ts @@ -3491,3 +3491,4 @@ describe("doctor health contributions", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/flows/doctor-health-contributions.ts b/src/flows/doctor-health-contributions.ts index 26ae7123945d..977681ca1a0c 100644 --- a/src/flows/doctor-health-contributions.ts +++ b/src/flows/doctor-health-contributions.ts @@ -2280,3 +2280,4 @@ export async function runDoctorHealthContributions(ctx: DoctorHealthFlowContext) await contribution.run(ctx); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/flows/model-picker.ts b/src/flows/model-picker.ts index fa64f61ced3d..a3aeb214297a 100644 --- a/src/flows/model-picker.ts +++ b/src/flows/model-picker.ts @@ -1689,3 +1689,4 @@ function mergeFallbackSelection(params: { } return fallbacks; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/auth.test.ts b/src/gateway/auth.test.ts index 7e45837969d8..5e25a5a62459 100644 --- a/src/gateway/auth.test.ts +++ b/src/gateway/auth.test.ts @@ -1394,3 +1394,4 @@ describe("trusted-proxy auth", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/call.test.ts b/src/gateway/call.test.ts index a866791f9e24..996574631ba6 100644 --- a/src/gateway/call.test.ts +++ b/src/gateway/call.test.ts @@ -2824,3 +2824,4 @@ describe("callGateway password resolution", () => { expect(lastClientOptions?.[testCase.authKey]).toBe(testCase.explicitValue); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/call.ts b/src/gateway/call.ts index e66121cc5754..ca193eb341d9 100644 --- a/src/gateway/call.ts +++ b/src/gateway/call.ts @@ -1334,3 +1334,4 @@ export function randomIdempotencyKey() { return randomUUID(); } export { testing as __testing }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/chat-display-projection.ts b/src/gateway/chat-display-projection.ts index 11948c44a1c6..cce3697c6c01 100644 --- a/src/gateway/chat-display-projection.ts +++ b/src/gateway/chat-display-projection.ts @@ -1930,3 +1930,4 @@ export function projectChatDisplayMessage( ): Record | undefined { return projectChatDisplayMessages([message], options)[0]; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/cli-session-history.test.ts b/src/gateway/cli-session-history.test.ts index 98d4b7448651..b3c408aba7dd 100644 --- a/src/gateway/cli-session-history.test.ts +++ b/src/gateway/cli-session-history.test.ts @@ -1318,3 +1318,4 @@ describe("readClaudeCliFallbackSeed", () => { expect(seed?.summaryText).toBe("trailing summary without boundary"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/client.test.ts b/src/gateway/client.test.ts index f3ce8c85ed5a..d3bb89efd0c9 100644 --- a/src/gateway/client.test.ts +++ b/src/gateway/client.test.ts @@ -2125,3 +2125,4 @@ describe("GatewayClient connect auth payload", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/config-reload.test.ts b/src/gateway/config-reload.test.ts index 7e673edce4e2..4baa85d88a70 100644 --- a/src/gateway/config-reload.test.ts +++ b/src/gateway/config-reload.test.ts @@ -4036,3 +4036,4 @@ describe("startGatewayConfigReloader skills invalidation", () => { await reloader.stop(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/config-reload.ts b/src/gateway/config-reload.ts index e61c399e39ee..ac2d38131f01 100644 --- a/src/gateway/config-reload.ts +++ b/src/gateway/config-reload.ts @@ -991,3 +991,4 @@ export function startGatewayConfigReloader(opts: { hotReloadStatus: () => hotReloadStatus, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/control-ui.http.test.ts b/src/gateway/control-ui.http.test.ts index f31046e5cd64..90127a62f65e 100644 --- a/src/gateway/control-ui.http.test.ts +++ b/src/gateway/control-ui.http.test.ts @@ -2458,3 +2458,4 @@ describe("handleControlUiHttpRequest", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/control-ui.ts b/src/gateway/control-ui.ts index fee79d974487..f5e8ea8e9be9 100644 --- a/src/gateway/control-ui.ts +++ b/src/gateway/control-ui.ts @@ -1150,3 +1150,4 @@ export async function handleControlUiHttpRequest( respondControlUiNotFound(res); return true; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/exec-approval-manager.ts b/src/gateway/exec-approval-manager.ts index 1cda5f155cc8..482cd28b9131 100644 --- a/src/gateway/exec-approval-manager.ts +++ b/src/gateway/exec-approval-manager.ts @@ -1139,3 +1139,4 @@ export class ExecApprovalManager { return this.lookupApprovalId(input); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/gateway-acp-bind.live.test.ts b/src/gateway/gateway-acp-bind.live.test.ts index 1149bfea621a..8556dfbc15ba 100644 --- a/src/gateway/gateway-acp-bind.live.test.ts +++ b/src/gateway/gateway-acp-bind.live.test.ts @@ -1094,3 +1094,4 @@ describeLive("gateway live (ACP bind)", () => { LIVE_TIMEOUT_MS + 360_000, ); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/gateway-codex-harness.live.test.ts b/src/gateway/gateway-codex-harness.live.test.ts index 7523ffb20d4d..fd961c54f6fd 100644 --- a/src/gateway/gateway-codex-harness.live.test.ts +++ b/src/gateway/gateway-codex-harness.live.test.ts @@ -1420,3 +1420,4 @@ describeDisabled("gateway live (Codex harness disabled)", () => { expect(CODEX_HARNESS_LIVE).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/gateway-models.profiles.live.test.ts b/src/gateway/gateway-models.profiles.live.test.ts index 2c4057ea5cdf..88fff90bca53 100644 --- a/src/gateway/gateway-models.profiles.live.test.ts +++ b/src/gateway/gateway-models.profiles.live.test.ts @@ -5890,3 +5890,4 @@ describeLive("gateway live (dev agent, profile keys)", () => { } }, 180_000); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/managed-image-attachments.test.ts b/src/gateway/managed-image-attachments.test.ts index 994b688277fc..ee22394e27d1 100644 --- a/src/gateway/managed-image-attachments.test.ts +++ b/src/gateway/managed-image-attachments.test.ts @@ -1311,3 +1311,4 @@ describe("cleanupManagedOutgoingImageRecords", () => { await expectPathMissing(fixture.originalPath); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/managed-image-attachments.ts b/src/gateway/managed-image-attachments.ts index ab4484621b59..90e2eb957524 100644 --- a/src/gateway/managed-image-attachments.ts +++ b/src/gateway/managed-image-attachments.ts @@ -1154,3 +1154,4 @@ export async function handleManagedOutgoingImageHttpRequest( res.end(body); return true; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/mcp-http.test.ts b/src/gateway/mcp-http.test.ts index dfd0f225e01d..31126cd572c7 100644 --- a/src/gateway/mcp-http.test.ts +++ b/src/gateway/mcp-http.test.ts @@ -3188,3 +3188,4 @@ describe("createMcpLoopbackServerConfig", () => { expect(res.status).toBe(403); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/model-pricing-cache.test.ts b/src/gateway/model-pricing-cache.test.ts index da8cb37ad21c..408a7febc837 100644 --- a/src/gateway/model-pricing-cache.test.ts +++ b/src/gateway/model-pricing-cache.test.ts @@ -1277,3 +1277,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/model-pricing-cache.ts b/src/gateway/model-pricing-cache.ts index 09d9e5a417f6..e2fc7602c594 100644 --- a/src/gateway/model-pricing-cache.ts +++ b/src/gateway/model-pricing-cache.ts @@ -1441,3 +1441,4 @@ export function startGatewayModelPricingRefresh( clearRefreshTimer(); }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/node-registry.test.ts b/src/gateway/node-registry.test.ts index 43f4b1b47ae0..d1c5aedb8a82 100644 --- a/src/gateway/node-registry.test.ts +++ b/src/gateway/node-registry.test.ts @@ -1717,3 +1717,4 @@ describe("gateway/node-registry", () => { expect(updated?.commands).toEqual(["device.info"]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/node-registry.ts b/src/gateway/node-registry.ts index 4f6dd2393d1a..22db98e8800f 100644 --- a/src/gateway/node-registry.ts +++ b/src/gateway/node-registry.ts @@ -1033,3 +1033,4 @@ export class NodeRegistry { return true; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/openai-http.test.ts b/src/gateway/openai-http.test.ts index f1e408f27327..b1a6d919e4b9 100644 --- a/src/gateway/openai-http.test.ts +++ b/src/gateway/openai-http.test.ts @@ -2761,3 +2761,4 @@ describe("OpenAI-compatible HTTP API (e2e)", () => { }, ); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/openai-http.ts b/src/gateway/openai-http.ts index 983f35bed10d..9c11161e1870 100644 --- a/src/gateway/openai-http.ts +++ b/src/gateway/openai-http.ts @@ -1435,3 +1435,4 @@ export async function handleOpenAiHttpRequest( return true; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/openresponses-http.test.ts b/src/gateway/openresponses-http.test.ts index dc9feb41951a..fba87fab7b02 100644 --- a/src/gateway/openresponses-http.test.ts +++ b/src/gateway/openresponses-http.test.ts @@ -2117,3 +2117,4 @@ describe("OpenResponses HTTP API (e2e)", () => { }, ); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/openresponses-http.ts b/src/gateway/openresponses-http.ts index 39347ef5576e..a8b707697691 100644 --- a/src/gateway/openresponses-http.ts +++ b/src/gateway/openresponses-http.ts @@ -1370,3 +1370,4 @@ export async function handleOpenResponsesHttpRequest( return true; } export { testing as __testing }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/operator-approval-store.ts b/src/gateway/operator-approval-store.ts index 3294be544b00..c12859caf9f6 100644 --- a/src/gateway/operator-approval-store.ts +++ b/src/gateway/operator-approval-store.ts @@ -1220,3 +1220,4 @@ export function pruneTerminalOperatorApprovals(params: { return Number(result.numAffectedRows ?? 0n); }, params.databaseOptions); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-channels.test.ts b/src/gateway/server-channels.test.ts index ce4eb65e9d7d..3a47238726e6 100644 --- a/src/gateway/server-channels.test.ts +++ b/src/gateway/server-channels.test.ts @@ -1654,3 +1654,4 @@ describe("server-channels auto restart", () => { expect(manager.isHealthMonitorEnabled("discord", "")).toBe(true); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-channels.ts b/src/gateway/server-channels.ts index 9c949ace6b7e..542084700294 100644 --- a/src/gateway/server-channels.ts +++ b/src/gateway/server-channels.ts @@ -1083,3 +1083,4 @@ export function createChannelManager(opts: ChannelManagerOptions): ChannelManage isHealthMonitorEnabled, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-chat.agent-events.test.ts b/src/gateway/server-chat.agent-events.test.ts index 7e7bbc48c2a5..45249eec962d 100644 --- a/src/gateway/server-chat.agent-events.test.ts +++ b/src/gateway/server-chat.agent-events.test.ts @@ -4984,3 +4984,4 @@ describe("agent event handler", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-chat.ts b/src/gateway/server-chat.ts index 2c10ed07ff03..f1f4a1bf49fa 100644 --- a/src/gateway/server-chat.ts +++ b/src/gateway/server-chat.ts @@ -1612,3 +1612,4 @@ export function createAgentEventHandler({ } }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-close.test.ts b/src/gateway/server-close.test.ts index e658dcc040dd..99a054dc7c05 100644 --- a/src/gateway/server-close.test.ts +++ b/src/gateway/server-close.test.ts @@ -1687,3 +1687,4 @@ describe("createGatewayCloseHandler", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-close.ts b/src/gateway/server-close.ts index d1e4d373c607..7ae1fa4e268e 100644 --- a/src/gateway/server-close.ts +++ b/src/gateway/server-close.ts @@ -1051,3 +1051,4 @@ export function createGatewayCloseHandler( return { durationMs, warnings }; }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-cron.test.ts b/src/gateway/server-cron.test.ts index 0a4beb7b0cf4..caca285126a7 100644 --- a/src/gateway/server-cron.test.ts +++ b/src/gateway/server-cron.test.ts @@ -1882,3 +1882,4 @@ describe("fireOnExitJob (on-exit fire routing)", () => { expect(wake).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-cron.ts b/src/gateway/server-cron.ts index 22285ca04a8c..0700e7b3d99d 100644 --- a/src/gateway/server-cron.ts +++ b/src/gateway/server-cron.ts @@ -855,3 +855,4 @@ export function buildGatewayCronService(params: { stopExitWatchers, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-http.ts b/src/gateway/server-http.ts index 2308ca3d95c9..1dffbc58705e 100644 --- a/src/gateway/server-http.ts +++ b/src/gateway/server-http.ts @@ -1098,3 +1098,4 @@ export function attachWorkerGatewayUpgradeHandler(params: { } }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods.ts b/src/gateway/server-methods.ts index 5fa122f4286f..9e401ccb39eb 100644 --- a/src/gateway/server-methods.ts +++ b/src/gateway/server-methods.ts @@ -941,3 +941,4 @@ export async function handleGatewayRequest( rootWorkAdmission.release(); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/agent.abort-integration.test-utils.ts b/src/gateway/server-methods/agent.abort-integration.test-utils.ts index d8b18f295b6b..98a7c6a85c62 100644 --- a/src/gateway/server-methods/agent.abort-integration.test-utils.ts +++ b/src/gateway/server-methods/agent.abort-integration.test-utils.ts @@ -2092,3 +2092,4 @@ describe("gateway agent handler chat.abort integration", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/agent.base.test-utils.ts b/src/gateway/server-methods/agent.base.test-utils.ts index d1b6822a49d2..cecb31c18554 100644 --- a/src/gateway/server-methods/agent.base.test-utils.ts +++ b/src/gateway/server-methods/agent.base.test-utils.ts @@ -1621,3 +1621,4 @@ describe("gateway agent handler", () => { expectSqliteSessionFileMarkerForEntry(capturedEntry); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/agent.events-and-subagents.test-utils.ts b/src/gateway/server-methods/agent.events-and-subagents.test-utils.ts index 5cf7bcd5d688..93fc1e4cd5ff 100644 --- a/src/gateway/server-methods/agent.events-and-subagents.test-utils.ts +++ b/src/gateway/server-methods/agent.events-and-subagents.test-utils.ts @@ -1421,3 +1421,4 @@ describe("gateway agent handler", () => { expect(callArgs).not.toHaveProperty("bashElevated"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/agent.media-and-routing.test-utils.ts b/src/gateway/server-methods/agent.media-and-routing.test-utils.ts index 96ead4662fe1..13b21ff3e73f 100644 --- a/src/gateway/server-methods/agent.media-and-routing.test-utils.ts +++ b/src/gateway/server-methods/agent.media-and-routing.test-utils.ts @@ -2001,3 +2001,4 @@ describe("gateway agent handler", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/agent.reset-and-identity.test-utils.ts b/src/gateway/server-methods/agent.reset-and-identity.test-utils.ts index d64a1a7648dc..490f848e8bad 100644 --- a/src/gateway/server-methods/agent.reset-and-identity.test-utils.ts +++ b/src/gateway/server-methods/agent.reset-and-identity.test-utils.ts @@ -1190,3 +1190,4 @@ describe("gateway agent handler", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/agent.sessions-and-models.test-utils.ts b/src/gateway/server-methods/agent.sessions-and-models.test-utils.ts index 398406f8f10f..9c648d7abf4c 100644 --- a/src/gateway/server-methods/agent.sessions-and-models.test-utils.ts +++ b/src/gateway/server-methods/agent.sessions-and-models.test-utils.ts @@ -2048,3 +2048,4 @@ describe("gateway agent handler", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/agent.test-harness.ts b/src/gateway/server-methods/agent.test-harness.ts index b42de789bcad..048d466bcd78 100644 --- a/src/gateway/server-methods/agent.test-harness.ts +++ b/src/gateway/server-methods/agent.test-harness.ts @@ -1003,3 +1003,4 @@ export function prime(sessionId = "existing-session-id", cfg: Record { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/agents.ts b/src/gateway/server-methods/agents.ts index 226d398ddce2..eed28bd39536 100644 --- a/src/gateway/server-methods/agents.ts +++ b/src/gateway/server-methods/agents.ts @@ -886,3 +886,4 @@ export const agentsHandlers: GatewayRequestHandlers = { }, }; export { testing as __testing }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/approval-shared.test.ts b/src/gateway/server-methods/approval-shared.test.ts index 0690e4ad0654..f76fbe6a750a 100644 --- a/src/gateway/server-methods/approval-shared.test.ts +++ b/src/gateway/server-methods/approval-shared.test.ts @@ -1647,3 +1647,4 @@ describe("handlePendingApprovalRequest", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/approval.test.ts b/src/gateway/server-methods/approval.test.ts index 440d6dcc8ba0..073d7df61463 100644 --- a/src/gateway/server-methods/approval.test.ts +++ b/src/gateway/server-methods/approval.test.ts @@ -1337,3 +1337,4 @@ describe("unified approval handlers", () => { expect(context.broadcastToConnIds).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/chat.abort-persistence.test.ts b/src/gateway/server-methods/chat.abort-persistence.test.ts index a84cd3d48b29..c696dcc8f433 100644 --- a/src/gateway/server-methods/chat.abort-persistence.test.ts +++ b/src/gateway/server-methods/chat.abort-persistence.test.ts @@ -1373,3 +1373,4 @@ describe("chat.abort session identity matching", () => { expect(active.controller.signal.aborted).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/chat.directive-tags.test.ts b/src/gateway/server-methods/chat.directive-tags.test.ts index 0f090db31021..b60f9f5ea6b1 100644 --- a/src/gateway/server-methods/chat.directive-tags.test.ts +++ b/src/gateway/server-methods/chat.directive-tags.test.ts @@ -6986,3 +6986,4 @@ describe("chat.send operator UI client sender context", () => { expect(mockState.lastTaskSuggestionDeliveryMode).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/chat.ts b/src/gateway/server-methods/chat.ts index 45baeeaee805..2b446aa2f98a 100644 --- a/src/gateway/server-methods/chat.ts +++ b/src/gateway/server-methods/chat.ts @@ -1698,3 +1698,4 @@ export const chatHandlers: GatewayRequestHandlers = { respond(true, { ok: true, messageId: appended.messageId }); }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/config.ts b/src/gateway/server-methods/config.ts index 6c554d47a185..df4c10903cfb 100644 --- a/src/gateway/server-methods/config.ts +++ b/src/gateway/server-methods/config.ts @@ -1012,3 +1012,4 @@ export const configHandlers: GatewayRequestHandlers = { } }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/cron.ts b/src/gateway/server-methods/cron.ts index 4e2dcca9c1ac..007d77b8c8df 100644 --- a/src/gateway/server-methods/cron.ts +++ b/src/gateway/server-methods/cron.ts @@ -937,3 +937,4 @@ export const cronHandlers: GatewayRequestHandlers = { } }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/cron.validation.test.ts b/src/gateway/server-methods/cron.validation.test.ts index 58fd8a9680a4..d8b282838d78 100644 --- a/src/gateway/server-methods/cron.validation.test.ts +++ b/src/gateway/server-methods/cron.validation.test.ts @@ -2455,3 +2455,4 @@ describe("cron method validation", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/devices.test.ts b/src/gateway/server-methods/devices.test.ts index d71889200826..33811f7c2d77 100644 --- a/src/gateway/server-methods/devices.test.ts +++ b/src/gateway/server-methods/devices.test.ts @@ -1464,3 +1464,4 @@ describe("deviceHandlers", () => { expect(call[2]?.message).toContain("invalid device.pair.rename params"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/devices.ts b/src/gateway/server-methods/devices.ts index 9c2089b7da7e..abff04a88a3d 100644 --- a/src/gateway/server-methods/devices.ts +++ b/src/gateway/server-methods/devices.ts @@ -820,3 +820,4 @@ export const deviceHandlers: GatewayRequestHandlers = { }); }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/doctor.test.ts b/src/gateway/server-methods/doctor.test.ts index 6f22c602b47a..51272f9adcce 100644 --- a/src/gateway/server-methods/doctor.test.ts +++ b/src/gateway/server-methods/doctor.test.ts @@ -1760,3 +1760,4 @@ describe("doctor.memory.remHarness", () => { expect(payload.deep.candidateLimit).toBe(100); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/doctor.ts b/src/gateway/server-methods/doctor.ts index ea7dd6f5d21c..492d3a0be046 100644 --- a/src/gateway/server-methods/doctor.ts +++ b/src/gateway/server-methods/doctor.ts @@ -1070,3 +1070,4 @@ export const doctorHandlers: GatewayRequestHandlers = { } }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/models-auth-status.test.ts b/src/gateway/server-methods/models-auth-status.test.ts index 38987ae3fcd6..6160e3fb11ae 100644 --- a/src/gateway/server-methods/models-auth-status.test.ts +++ b/src/gateway/server-methods/models-auth-status.test.ts @@ -1625,3 +1625,4 @@ describe("aggregateRefreshableAuthStatus", () => { expect(result.remainingMs).toBe(5_000); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/models.test.ts b/src/gateway/server-methods/models.test.ts index 873d363e31a8..120eeb9c0d38 100644 --- a/src/gateway/server-methods/models.test.ts +++ b/src/gateway/server-methods/models.test.ts @@ -1347,3 +1347,4 @@ describe("models.list", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/nodes.invoke-wake.test.ts b/src/gateway/server-methods/nodes.invoke-wake.test.ts index 907b17c5077f..e64ca5ea395b 100644 --- a/src/gateway/server-methods/nodes.invoke-wake.test.ts +++ b/src/gateway/server-methods/nodes.invoke-wake.test.ts @@ -1314,3 +1314,4 @@ describe("node.invoke APNs wake path", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/nodes.ts b/src/gateway/server-methods/nodes.ts index 221f19f98cd6..477d91c98b61 100644 --- a/src/gateway/server-methods/nodes.ts +++ b/src/gateway/server-methods/nodes.ts @@ -1729,3 +1729,4 @@ export const nodeHandlers: GatewayRequestHandlers = { }); }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/send.test.ts b/src/gateway/server-methods/send.test.ts index b5a6288c234a..a50899b6342e 100644 --- a/src/gateway/server-methods/send.test.ts +++ b/src/gateway/server-methods/send.test.ts @@ -3032,3 +3032,4 @@ describe("gateway send mirroring", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/send.ts b/src/gateway/server-methods/send.ts index ba901d27ff93..5b0d90e499d7 100644 --- a/src/gateway/server-methods/send.ts +++ b/src/gateway/server-methods/send.ts @@ -1051,3 +1051,4 @@ export const sendHandlers: GatewayRequestHandlers = { await runGatewayInflightWork({ inflightMap, dedupeKey, work, respond }); }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/server-methods.test.ts b/src/gateway/server-methods/server-methods.test.ts index 38e8c43c1f41..ce6a6cf436b1 100644 --- a/src/gateway/server-methods/server-methods.test.ts +++ b/src/gateway/server-methods/server-methods.test.ts @@ -5422,3 +5422,4 @@ describe("logs.tail", () => { await fsPromises.rm(tempDir, { recursive: true, force: true }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/sessions-files.ts b/src/gateway/server-methods/sessions-files.ts index 2e643c578318..3a4e83e9eacb 100644 --- a/src/gateway/server-methods/sessions-files.ts +++ b/src/gateway/server-methods/sessions-files.ts @@ -778,3 +778,4 @@ export const sessionsFilesHandlers: GatewayRequestHandlers = { }); }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/sessions.ts b/src/gateway/server-methods/sessions.ts index 022c6a58ab8a..19fed22a31e3 100644 --- a/src/gateway/server-methods/sessions.ts +++ b/src/gateway/server-methods/sessions.ts @@ -3980,3 +3980,4 @@ export const sessionsHandlers: GatewayRequestHandlers = { } }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/skills.ts b/src/gateway/server-methods/skills.ts index b6338a29f696..4d57ad824681 100644 --- a/src/gateway/server-methods/skills.ts +++ b/src/gateway/server-methods/skills.ts @@ -744,3 +744,4 @@ export const skillsHandlers: GatewayRequestHandlers = { ); }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/talk.test.ts b/src/gateway/server-methods/talk.test.ts index c284ef156b34..7f155cef9600 100644 --- a/src/gateway/server-methods/talk.test.ts +++ b/src/gateway/server-methods/talk.test.ts @@ -3257,3 +3257,4 @@ describe("talk.client.create handler", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/talk.ts b/src/gateway/server-methods/talk.ts index 477775f36035..3eac8b773a3f 100644 --- a/src/gateway/server-methods/talk.ts +++ b/src/gateway/server-methods/talk.ts @@ -883,3 +883,4 @@ export const talkHandlers: GatewayRequestHandlers = { respond(true, payload, undefined); }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-methods/usage.ts b/src/gateway/server-methods/usage.ts index cba554ba6f52..f48f1944ec10 100644 --- a/src/gateway/server-methods/usage.ts +++ b/src/gateway/server-methods/usage.ts @@ -1721,3 +1721,4 @@ export const usageHandlers: GatewayRequestHandlers = { respond(true, { logs: logs ?? [] }, undefined); }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-node-events.test.ts b/src/gateway/server-node-events.test.ts index 4eddc1e4320a..6a41e6c9b510 100644 --- a/src/gateway/server-node-events.test.ts +++ b/src/gateway/server-node-events.test.ts @@ -1867,3 +1867,4 @@ describe("agent request events", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-node-events.ts b/src/gateway/server-node-events.ts index 25b5a727aa2d..9c78fcd3e75e 100644 --- a/src/gateway/server-node-events.ts +++ b/src/gateway/server-node-events.ts @@ -944,3 +944,4 @@ export const handleNodeEvent = async ( return undefined; } }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-plugins.test.ts b/src/gateway/server-plugins.test.ts index 796456bd255d..d027a5b627b7 100644 --- a/src/gateway/server-plugins.test.ts +++ b/src/gateway/server-plugins.test.ts @@ -2017,3 +2017,4 @@ describe("loadGatewayPlugins", () => { ).rejects.toThrow("No scope set and no fallback context available"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-plugins.ts b/src/gateway/server-plugins.ts index 9f9b985425f6..52ab38328b6b 100644 --- a/src/gateway/server-plugins.ts +++ b/src/gateway/server-plugins.ts @@ -847,3 +847,4 @@ export function loadGatewayPlugins(params: { ]); return { pluginRegistry, gatewayMethods }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-reload-handlers.test.ts b/src/gateway/server-reload-handlers.test.ts index 14c12bf96c33..1e0e9070e200 100644 --- a/src/gateway/server-reload-handlers.test.ts +++ b/src/gateway/server-reload-handlers.test.ts @@ -6436,3 +6436,4 @@ describe("deferred channel reload abort generation", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-reload-handlers.ts b/src/gateway/server-reload-handlers.ts index b07fc10eac2d..ce991ef76806 100644 --- a/src/gateway/server-reload-handlers.ts +++ b/src/gateway/server-reload-handlers.ts @@ -2236,3 +2236,4 @@ export function startManagedGatewayConfigReloader( hotReloadStatus: configReloader.hotReloadStatus, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-restart-sentinel.test.ts b/src/gateway/server-restart-sentinel.test.ts index 0d0bf71b84b0..27de0c60fcb1 100644 --- a/src/gateway/server-restart-sentinel.test.ts +++ b/src/gateway/server-restart-sentinel.test.ts @@ -1577,3 +1577,4 @@ describe("scheduleRestartSentinelWake", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-startup-config.secrets.test.ts b/src/gateway/server-startup-config.secrets.test.ts index 78ced6525d13..583037365b82 100644 --- a/src/gateway/server-startup-config.secrets.test.ts +++ b/src/gateway/server-startup-config.secrets.test.ts @@ -1254,3 +1254,4 @@ describe("gateway startup config secret preflight", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-startup-post-attach.test.ts b/src/gateway/server-startup-post-attach.test.ts index 97aca6b8ab34..88fa58978477 100644 --- a/src/gateway/server-startup-post-attach.test.ts +++ b/src/gateway/server-startup-post-attach.test.ts @@ -2575,3 +2575,4 @@ function createPostAttachParams(overrides: Partial = {}): Post ...overrides, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server-startup-post-attach.ts b/src/gateway/server-startup-post-attach.ts index 3528c78c3634..ddde73b6a947 100644 --- a/src/gateway/server-startup-post-attach.ts +++ b/src/gateway/server-startup-post-attach.ts @@ -1473,3 +1473,4 @@ export const testing = { stopPostReadySidecarsAfterCloseStarted, }; export { testing as __testing }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server.auth.control-ui.suite.ts b/src/gateway/server.auth.control-ui.suite.ts index 95285ef69fd1..f7553fbcb6cb 100644 --- a/src/gateway/server.auth.control-ui.suite.ts +++ b/src/gateway/server.auth.control-ui.suite.ts @@ -2481,3 +2481,4 @@ export function registerControlUiAndPairingSuite(): void { } }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server.chat.gateway-server-chat-b.test.ts b/src/gateway/server.chat.gateway-server-chat-b.test.ts index ce02d8f4cb82..efd025b8fc5c 100644 --- a/src/gateway/server.chat.gateway-server-chat-b.test.ts +++ b/src/gateway/server.chat.gateway-server-chat-b.test.ts @@ -6436,3 +6436,4 @@ describe("gateway server chat", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server.chat.gateway-server-chat.test.ts b/src/gateway/server.chat.gateway-server-chat.test.ts index c2b912678706..fada367e1d49 100644 --- a/src/gateway/server.chat.gateway-server-chat.test.ts +++ b/src/gateway/server.chat.gateway-server-chat.test.ts @@ -2284,3 +2284,4 @@ describe("gateway server chat", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server.config-patch.test.ts b/src/gateway/server.config-patch.test.ts index 6cd6577d5c3a..0628d5327a9b 100644 --- a/src/gateway/server.config-patch.test.ts +++ b/src/gateway/server.config-patch.test.ts @@ -1133,3 +1133,4 @@ describe("gateway server sessions", () => { expect(loadSessionEntry({ agentId: "ops", sessionKey: "main", storePath })).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server.cron.test.ts b/src/gateway/server.cron.test.ts index 93ba6011086c..6b6e9f03514f 100644 --- a/src/gateway/server.cron.test.ts +++ b/src/gateway/server.cron.test.ts @@ -2071,3 +2071,4 @@ describe("gateway server cron", () => { await cleanupCronTestRun({ prevSkipCron }); }, 45_000); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server.impl.ts b/src/gateway/server.impl.ts index c7a7241ada95..5eb97217d00f 100644 --- a/src/gateway/server.impl.ts +++ b/src/gateway/server.impl.ts @@ -2336,3 +2336,4 @@ export async function startGatewayServer( }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server.sessions.compaction.test.ts b/src/gateway/server.sessions.compaction.test.ts index ba269d7744ba..f2d113753bac 100644 --- a/src/gateway/server.sessions.compaction.test.ts +++ b/src/gateway/server.sessions.compaction.test.ts @@ -1691,3 +1691,4 @@ test("sessions.patch preserves nested model ids under provider overrides", async expect(mainSession?.model).toBe("moonshotai/kimi-k2.5"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server.sessions.create.test.ts b/src/gateway/server.sessions.create.test.ts index 716d7a6030a1..e2c3a54ae05e 100644 --- a/src/gateway/server.sessions.create.test.ts +++ b/src/gateway/server.sessions.create.test.ts @@ -1878,3 +1878,4 @@ test("sessions.create rejects replacing its parent key", async () => { message: "sessions.create key must differ from parentSessionKey", }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server.sessions.list-changed.test.ts b/src/gateway/server.sessions.list-changed.test.ts index 186b2b01595e..62f25a007dc3 100644 --- a/src/gateway/server.sessions.list-changed.test.ts +++ b/src/gateway/server.sessions.list-changed.test.ts @@ -1199,3 +1199,4 @@ test("sessions.changed mutation events include subagent ownership metadata", asy subagentControlScope: "children", }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/server/ws-connection/message-handler.post-connect-health.test.ts b/src/gateway/server/ws-connection/message-handler.post-connect-health.test.ts index 5ff89415d673..8f06224b0a57 100644 --- a/src/gateway/server/ws-connection/message-handler.post-connect-health.test.ts +++ b/src/gateway/server/ws-connection/message-handler.post-connect-health.test.ts @@ -1086,3 +1086,4 @@ describe("resolvePinnedClientMetadata", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/session-compaction-checkpoints.ts b/src/gateway/session-compaction-checkpoints.ts index d8e77ce443bc..f514cdfe009f 100644 --- a/src/gateway/session-compaction-checkpoints.ts +++ b/src/gateway/session-compaction-checkpoints.ts @@ -973,3 +973,4 @@ export function getSessionCompactionCheckpoint(params: { (checkpoint) => checkpoint.checkpointId === checkpointId, ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/session-create-service.ts b/src/gateway/session-create-service.ts index afa5e0bc5d01..e351e4c5ba5a 100644 --- a/src/gateway/session-create-service.ts +++ b/src/gateway/session-create-service.ts @@ -798,3 +798,4 @@ export async function createGatewaySession(params: { } return result; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/session-message-events.test.ts b/src/gateway/session-message-events.test.ts index 5e7fcb0fccf0..fd1b5e9a41ee 100644 --- a/src/gateway/session-message-events.test.ts +++ b/src/gateway/session-message-events.test.ts @@ -1440,3 +1440,4 @@ describe("session.message websocket events", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/session-reset-service.ts b/src/gateway/session-reset-service.ts index 6985ff0266bd..d25f40c877c8 100644 --- a/src/gateway/session-reset-service.ts +++ b/src/gateway/session-reset-service.ts @@ -1340,3 +1340,4 @@ export async function performGatewaySessionReset(params: { }, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/session-transcript-readers.ts b/src/gateway/session-transcript-readers.ts index 076bb8ded6a6..fed1cc1aaac4 100644 --- a/src/gateway/session-transcript-readers.ts +++ b/src/gateway/session-transcript-readers.ts @@ -763,3 +763,4 @@ export function readSessionPreviewItemsFromTranscript( maxChars, ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/session-utils.fs.test.ts b/src/gateway/session-utils.fs.test.ts index 7c2516d0b5b0..bb1a8afe6228 100644 --- a/src/gateway/session-utils.fs.test.ts +++ b/src/gateway/session-utils.fs.test.ts @@ -2036,3 +2036,4 @@ describe("oversized transcript line guards", () => { expect(asyncResult.lastMessagePreview).toBe("Bot says hello"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/session-utils.fs.ts b/src/gateway/session-utils.fs.ts index 5603c28f2bb2..f0e57755a58c 100644 --- a/src/gateway/session-utils.fs.ts +++ b/src/gateway/session-utils.fs.ts @@ -1788,3 +1788,4 @@ export function readSessionPreviewItemsFromTranscript( return []; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/session-utils.subagent.test.ts b/src/gateway/session-utils.subagent.test.ts index fc27674a5ef5..4ec2a01b2cde 100644 --- a/src/gateway/session-utils.subagent.test.ts +++ b/src/gateway/session-utils.subagent.test.ts @@ -1327,3 +1327,4 @@ describe("loadCombinedSessionStoreForGateway includes disk-only agents (#32804)" }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/session-utils.test.ts b/src/gateway/session-utils.test.ts index d2a60f37e475..789cd237e3a0 100644 --- a/src/gateway/session-utils.test.ts +++ b/src/gateway/session-utils.test.ts @@ -2843,3 +2843,4 @@ describe("resolveGatewayModelSupportsImages", () => { ).resolves.toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/session-utils.ts b/src/gateway/session-utils.ts index 258d908a82d7..a991b58fc47f 100644 --- a/src/gateway/session-utils.ts +++ b/src/gateway/session-utils.ts @@ -2927,3 +2927,4 @@ export async function listSessionsFromStoreAsync(params: { }; }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/sessions-history-http.test.ts b/src/gateway/sessions-history-http.test.ts index 5ec5485be3c7..8702988c6a9d 100644 --- a/src/gateway/sessions-history-http.test.ts +++ b/src/gateway/sessions-history-http.test.ts @@ -1123,3 +1123,4 @@ describe("session history HTTP endpoints", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/sessions-patch.test.ts b/src/gateway/sessions-patch.test.ts index c4ec007a27f9..e36f547c989f 100644 --- a/src/gateway/sessions-patch.test.ts +++ b/src/gateway/sessions-patch.test.ts @@ -1322,3 +1322,4 @@ describe("gateway sessions patch", () => { expect(entry.authProfileOverride).toBe("work"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/sessions-patch.ts b/src/gateway/sessions-patch.ts index dda651f4c34a..ea287d64a249 100644 --- a/src/gateway/sessions-patch.ts +++ b/src/gateway/sessions-patch.ts @@ -771,3 +771,4 @@ export async function applySessionsPatchToStore(params: { } return projected; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/talk-realtime-relay.test.ts b/src/gateway/talk-realtime-relay.test.ts index 6cdebdee9d37..8c00df1dcb53 100644 --- a/src/gateway/talk-realtime-relay.test.ts +++ b/src/gateway/talk-realtime-relay.test.ts @@ -3047,3 +3047,4 @@ describe("talk realtime gateway relay", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/talk-realtime-relay.ts b/src/gateway/talk-realtime-relay.ts index 8778ad47ecee..912e4c330a72 100644 --- a/src/gateway/talk-realtime-relay.ts +++ b/src/gateway/talk-realtime-relay.ts @@ -1451,3 +1451,4 @@ export function stopTalkRealtimeRelaySession(params: { const session = getRelaySession(params.relaySessionId, params.connId); closeRelaySession(session, "completed"); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/test-helpers.server.ts b/src/gateway/test-helpers.server.ts index 45abf0d8bea8..3c6cdbaf48e1 100644 --- a/src/gateway/test-helpers.server.ts +++ b/src/gateway/test-helpers.server.ts @@ -1253,3 +1253,4 @@ export async function waitForSystemEvent(timeoutMs = 2000) { } throw new Error("timeout waiting for system event"); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/tools-invoke-http.test.ts b/src/gateway/tools-invoke-http.test.ts index 3f871a402b8e..c5e1c1c999f1 100644 --- a/src/gateway/tools-invoke-http.test.ts +++ b/src/gateway/tools-invoke-http.test.ts @@ -1313,3 +1313,4 @@ describe("tools.invoke Gateway RPC", () => { expect(error?.message).toContain("invalid tools.invoke params"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/watch-node-http.ts b/src/gateway/watch-node-http.ts index 6d9f0cba625f..95d39da19c48 100644 --- a/src/gateway/watch-node-http.ts +++ b/src/gateway/watch-node-http.ts @@ -1080,3 +1080,4 @@ export function createWatchNodeHttpRuntime(options: WatchNodeHttpRuntimeOptions) }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/worker-environments/bootstrap.ts b/src/gateway/worker-environments/bootstrap.ts index 0e311002f6b7..533618bcae28 100644 --- a/src/gateway/worker-environments/bootstrap.ts +++ b/src/gateway/worker-environments/bootstrap.ts @@ -783,3 +783,4 @@ export async function bootstrapWorker( await prepared.dispose(); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/worker-environments/inference-runtime.ts b/src/gateway/worker-environments/inference-runtime.ts index 5142d8cec59b..94bc064fa836 100644 --- a/src/gateway/worker-environments/inference-runtime.ts +++ b/src/gateway/worker-environments/inference-runtime.ts @@ -751,3 +751,4 @@ export function createWorkerInferenceExecutor( } export const executeWorkerInference: WorkerInferenceExecutor = createWorkerInferenceExecutor(); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/worker-environments/live-events.ts b/src/gateway/worker-environments/live-events.ts index be9a632bda5a..0336d12991f6 100644 --- a/src/gateway/worker-environments/live-events.ts +++ b/src/gateway/worker-environments/live-events.ts @@ -788,3 +788,4 @@ export function createWorkerLiveEventReceiver(options: WorkerLiveEventReceiverOp } export type WorkerLiveEventReceiver = ReturnType; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/worker-environments/service.test.ts b/src/gateway/worker-environments/service.test.ts index 209bd556f296..b91f4cff00bd 100644 --- a/src/gateway/worker-environments/service.test.ts +++ b/src/gateway/worker-environments/service.test.ts @@ -2450,3 +2450,4 @@ describe("worker environment service", () => { } satisfies Partial); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/worker-environments/service.ts b/src/gateway/worker-environments/service.ts index a8c2c3381232..6a936a3a2362 100644 --- a/src/gateway/worker-environments/service.ts +++ b/src/gateway/worker-environments/service.ts @@ -1550,3 +1550,4 @@ export function createWorkerEnvironmentService(options: WorkerEnvironmentService } export type WorkerEnvironmentService = ReturnType; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/worker-environments/store.ts b/src/gateway/worker-environments/store.ts index 389d96f26d54..0f6eebde8675 100644 --- a/src/gateway/worker-environments/store.ts +++ b/src/gateway/worker-environments/store.ts @@ -886,3 +886,4 @@ export function createWorkerEnvironmentStore( } export type WorkerEnvironmentStore = ReturnType; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/gateway/worker-environments/worker-turn-launcher.test.ts b/src/gateway/worker-environments/worker-turn-launcher.test.ts index 0a0fba95be53..02325709c4fa 100644 --- a/src/gateway/worker-environments/worker-turn-launcher.test.ts +++ b/src/gateway/worker-environments/worker-turn-launcher.test.ts @@ -1303,3 +1303,4 @@ describe("worker turn launcher", () => { expect(placements.get(SESSION_ID)?.turnClaim).toBeNull(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/hooks/install.ts b/src/hooks/install.ts index 07a0935968c4..cce1c24bd62c 100644 --- a/src/hooks/install.ts +++ b/src/hooks/install.ts @@ -773,3 +773,4 @@ export async function installHooksFromPath( ...forwardParams, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/approval-handler-runtime.ts b/src/infra/approval-handler-runtime.ts index ba6cb86e4ff5..c5a0672423c2 100644 --- a/src/infra/approval-handler-runtime.ts +++ b/src/infra/approval-handler-runtime.ts @@ -735,3 +735,4 @@ export async function createChannelApprovalHandlerFromCapability(params: { }, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/backup-create.test.ts b/src/infra/backup-create.test.ts index d983a9034cef..35384e063892 100644 --- a/src/infra/backup-create.test.ts +++ b/src/infra/backup-create.test.ts @@ -1627,3 +1627,4 @@ describe("createBackupArchive", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/backup-create.ts b/src/infra/backup-create.ts index 2201d96d055a..f10e3d793b68 100644 --- a/src/infra/backup-create.ts +++ b/src/infra/backup-create.ts @@ -829,3 +829,4 @@ export async function createBackupArchive( return result; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/clawhub-install-trust.ts b/src/infra/clawhub-install-trust.ts index b7582f8397d0..856c5db02a30 100644 --- a/src/infra/clawhub-install-trust.ts +++ b/src/infra/clawhub-install-trust.ts @@ -1096,3 +1096,4 @@ export async function ensureClawHubPackageTrustAcknowledged(params: { version: params.version, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/clawhub.test.ts b/src/infra/clawhub.test.ts index a06eb575c139..1d77c4f23c2a 100644 --- a/src/infra/clawhub.test.ts +++ b/src/infra/clawhub.test.ts @@ -1385,3 +1385,4 @@ describe("clawhub helpers", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/clawhub.ts b/src/infra/clawhub.ts index 99e89704f5cc..f67e122855c5 100644 --- a/src/infra/clawhub.ts +++ b/src/infra/clawhub.ts @@ -1943,3 +1943,4 @@ export async function fetchClawHubPromotionsFeed( const etag = response.headers.get("etag") ?? undefined; return { status: "ok", feed, payload, ...(etag ? { etag } : {}) }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/command-explainer/extract.ts b/src/infra/command-explainer/extract.ts index 8d03a7c27c16..73bb8543716d 100644 --- a/src/infra/command-explainer/extract.ts +++ b/src/infra/command-explainer/extract.ts @@ -1389,3 +1389,4 @@ export async function explainShellCommand(source: string): Promise { await expect(getPairedDevice("device-1", baseDir)).resolves.toBeNull(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/device-pairing.ts b/src/infra/device-pairing.ts index acc7601a5407..0581660f61a3 100644 --- a/src/infra/device-pairing.ts +++ b/src/infra/device-pairing.ts @@ -1536,3 +1536,4 @@ export async function revokeDeviceToken(params: { return { ok: true, entry }; }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/diagnostic-events.ts b/src/infra/diagnostic-events.ts index dbb1fb19df3a..db4c7c459179 100644 --- a/src/infra/diagnostic-events.ts +++ b/src/infra/diagnostic-events.ts @@ -1474,3 +1474,4 @@ export function resetDiagnosticEventsForTest(): void { state.asyncDroppedUntrustedEvents = 0; state.asyncDroppedPriorityEvents = 0; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/exec-approval-forwarder.ts b/src/infra/exec-approval-forwarder.ts index 3b0fe8014a79..7ec496f96002 100644 --- a/src/infra/exec-approval-forwarder.ts +++ b/src/infra/exec-approval-forwarder.ts @@ -835,3 +835,4 @@ export function createExecApprovalForwarder( }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/exec-approvals-allow-always.test.ts b/src/infra/exec-approvals-allow-always.test.ts index 6fdfca444cc7..1a5ac351b726 100644 --- a/src/infra/exec-approvals-allow-always.test.ts +++ b/src/infra/exec-approvals-allow-always.test.ts @@ -1692,3 +1692,4 @@ $0 \\"$1\\"" touch {marker}`, expect(second.allowlistSatisfied).toBe(true); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/exec-approvals-allowlist.ts b/src/infra/exec-approvals-allowlist.ts index 895f9a0c2ff0..73088f4c4b8d 100644 --- a/src/infra/exec-approvals-allowlist.ts +++ b/src/infra/exec-approvals-allowlist.ts @@ -1500,3 +1500,4 @@ export async function evaluateExecAllowlistWithAuthorization( authorizationPlan, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/exec-approvals-store.test.ts b/src/infra/exec-approvals-store.test.ts index 0d16203f4f00..2b411bcba35a 100644 --- a/src/infra/exec-approvals-store.test.ts +++ b/src/infra/exec-approvals-store.test.ts @@ -1970,3 +1970,4 @@ describe("exec approvals store helpers", () => { ).resolves.toBe("deny"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/exec-approvals.ts b/src/infra/exec-approvals.ts index bdf6d37fbf6f..4e3fe6b6cf0b 100644 --- a/src/infra/exec-approvals.ts +++ b/src/infra/exec-approvals.ts @@ -2865,3 +2865,4 @@ export async function requestExecApprovalViaSocket(params: { }, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/exec-authorization-plan.ts b/src/infra/exec-authorization-plan.ts index 16e647608ed2..b800c8b15fe0 100644 --- a/src/infra/exec-authorization-plan.ts +++ b/src/infra/exec-authorization-plan.ts @@ -918,3 +918,4 @@ export async function planExecAuthorization(params: { operators: [], }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/heartbeat-runner.returns-default-unset.test.ts b/src/infra/heartbeat-runner.returns-default-unset.test.ts index 831723c70361..b0a8cbc83e31 100644 --- a/src/infra/heartbeat-runner.returns-default-unset.test.ts +++ b/src/infra/heartbeat-runner.returns-default-unset.test.ts @@ -1927,3 +1927,4 @@ tasks: } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/heartbeat-runner.ts b/src/infra/heartbeat-runner.ts index 9a5483080d51..0efaa128d706 100644 --- a/src/infra/heartbeat-runner.ts +++ b/src/infra/heartbeat-runner.ts @@ -2887,3 +2887,4 @@ export function startHeartbeatRunner(opts: { return { stop: cleanup, updateConfig }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/host-env-security.test.ts b/src/infra/host-env-security.test.ts index d3a732383c0c..ff5e550a095f 100644 --- a/src/infra/host-env-security.test.ts +++ b/src/infra/host-env-security.test.ts @@ -2165,3 +2165,4 @@ describe("make env exploit regression", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/infra-runtime.test.ts b/src/infra/infra-runtime.test.ts index 8816ed02349c..e3905b0e18a3 100644 --- a/src/infra/infra-runtime.test.ts +++ b/src/infra/infra-runtime.test.ts @@ -1343,3 +1343,4 @@ describe("infra runtime", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/net/fetch-guard.ssrf.test.ts b/src/infra/net/fetch-guard.ssrf.test.ts index 1a5460cd1185..b95c4e8c9b5a 100644 --- a/src/infra/net/fetch-guard.ssrf.test.ts +++ b/src/infra/net/fetch-guard.ssrf.test.ts @@ -2314,3 +2314,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/npm-managed-root.test.ts b/src/infra/npm-managed-root.test.ts index 1a46189d572d..f40c1e743682 100644 --- a/src/infra/npm-managed-root.test.ts +++ b/src/infra/npm-managed-root.test.ts @@ -1580,3 +1580,4 @@ describe("managed npm root", () => { await expectPathMissing(path.join(npmRoot, "node_modules", ".package-lock.json")); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/npm-managed-root.ts b/src/infra/npm-managed-root.ts index 7a749a99e087..2518c6c18b79 100644 --- a/src/infra/npm-managed-root.ts +++ b/src/infra/npm-managed-root.ts @@ -1233,3 +1233,4 @@ export async function removeManagedNpmRootDependency(params: { }; await writeJson(manifestPath, next, { trailingNewline: true }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/outbound/deliver.test.ts b/src/infra/outbound/deliver.test.ts index 24d52c3ebdcf..fb633c1b183b 100644 --- a/src/infra/outbound/deliver.test.ts +++ b/src/infra/outbound/deliver.test.ts @@ -5615,3 +5615,4 @@ const defaultRegistry = createTestRegistry([ source: "test", }, ]); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/outbound/deliver.ts b/src/infra/outbound/deliver.ts index 9aa5173104bc..19a7d2ae1d68 100644 --- a/src/infra/outbound/deliver.ts +++ b/src/infra/outbound/deliver.ts @@ -2568,3 +2568,4 @@ async function deliverOutboundPayloadsCore( return results; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/outbound/delivery-queue-recovery.ts b/src/infra/outbound/delivery-queue-recovery.ts index b5ef3ec14fac..6711993ae47d 100644 --- a/src/infra/outbound/delivery-queue-recovery.ts +++ b/src/infra/outbound/delivery-queue-recovery.ts @@ -1011,3 +1011,4 @@ export async function recoverPendingDeliveries(opts: { ); return summary; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/outbound/delivery-queue.recovery.test.ts b/src/infra/outbound/delivery-queue.recovery.test.ts index 3107b90c149f..6246cb223057 100644 --- a/src/infra/outbound/delivery-queue.recovery.test.ts +++ b/src/infra/outbound/delivery-queue.recovery.test.ts @@ -1632,3 +1632,4 @@ describe("delivery-queue recovery", () => { expect(deliver).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/outbound/message-action-runner.media.test.ts b/src/infra/outbound/message-action-runner.media.test.ts index 068845e3e6b5..9cc62f7f519b 100644 --- a/src/infra/outbound/message-action-runner.media.test.ts +++ b/src/infra/outbound/message-action-runner.media.test.ts @@ -1511,3 +1511,4 @@ describe("runMessageAction media behavior", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/outbound/message-action-runner.plugin-dispatch.test.ts b/src/infra/outbound/message-action-runner.plugin-dispatch.test.ts index fb7a1036fbf9..2c487372101d 100644 --- a/src/infra/outbound/message-action-runner.plugin-dispatch.test.ts +++ b/src/infra/outbound/message-action-runner.plugin-dispatch.test.ts @@ -3007,3 +3007,4 @@ describe("runMessageAction plugin dispatch", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/outbound/message-action-runner.ts b/src/infra/outbound/message-action-runner.ts index 4f96a601fa11..3500da5f20b3 100644 --- a/src/infra/outbound/message-action-runner.ts +++ b/src/infra/outbound/message-action-runner.ts @@ -1789,3 +1789,4 @@ export async function runMessageAction( abortSignal: input.abortSignal, }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/outbound/outbound-send-service.test.ts b/src/infra/outbound/outbound-send-service.test.ts index 9105d3e41fc6..ecd03d5e8e3f 100644 --- a/src/infra/outbound/outbound-send-service.test.ts +++ b/src/infra/outbound/outbound-send-service.test.ts @@ -1164,3 +1164,4 @@ describe("executeSendAction", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/outbound/targets.test.ts b/src/infra/outbound/targets.test.ts index 26f1e08ae1cc..9b7d431d311f 100644 --- a/src/infra/outbound/targets.test.ts +++ b/src/infra/outbound/targets.test.ts @@ -1798,3 +1798,4 @@ describe("resolveSessionDeliveryTarget — cross-channel reply guard (#24152)", expect(resolved.to).toBe("room-one"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/package-update-steps.ts b/src/infra/package-update-steps.ts index b80d4c03ce6b..1e0da7598c7f 100644 --- a/src/infra/package-update-steps.ts +++ b/src/infra/package-update-steps.ts @@ -762,3 +762,4 @@ export async function runGlobalPackageUpdateSteps(params: { } } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/push-apns.ts b/src/infra/push-apns.ts index e2eb8486e727..b237c1929c16 100644 --- a/src/infra/push-apns.ts +++ b/src/infra/push-apns.ts @@ -1197,3 +1197,4 @@ export async function sendApnsExecApprovalResolvedWake( } export { type ApnsRelayConfig, resolveApnsRelayConfigFromEnv }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/restart-stale-pids.test.ts b/src/infra/restart-stale-pids.test.ts index 4743cf5201d8..f4c7bff12968 100644 --- a/src/infra/restart-stale-pids.test.ts +++ b/src/infra/restart-stale-pids.test.ts @@ -1395,3 +1395,4 @@ describe.skipIf(isWindows)("restart-stale-pids", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/restart.ts b/src/infra/restart.ts index 4bd9e1ae4a6b..ffad724427ec 100644 --- a/src/infra/restart.ts +++ b/src/infra/restart.ts @@ -1167,3 +1167,4 @@ export function scheduleGatewaySigusr1Restart(opts?: { emitHooksQueued: opts?.emitHooks !== undefined, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/run-node.test.ts b/src/infra/run-node.test.ts index 470c6021fbea..44ae34d94f67 100644 --- a/src/infra/run-node.test.ts +++ b/src/infra/run-node.test.ts @@ -3069,3 +3069,4 @@ describe("run-node script", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/session-cost-usage.test.ts b/src/infra/session-cost-usage.test.ts index ca86c20f0e0c..8c1460df713e 100644 --- a/src/infra/session-cost-usage.test.ts +++ b/src/infra/session-cost-usage.test.ts @@ -2117,3 +2117,4 @@ example expect(logs?.map((log) => log.content)).toEqual(["third", "fourth"]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/session-cost-usage.ts b/src/infra/session-cost-usage.ts index bd4740213b6a..74d7671a4a0e 100644 --- a/src/infra/session-cost-usage.ts +++ b/src/infra/session-cost-usage.ts @@ -2752,3 +2752,4 @@ export async function loadSessionLogs(params: { return sortedLogs; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/sqlite-snapshot.ts b/src/infra/sqlite-snapshot.ts index ed5e35f34d1b..ca8bd2191738 100644 --- a/src/infra/sqlite-snapshot.ts +++ b/src/infra/sqlite-snapshot.ts @@ -862,3 +862,4 @@ export async function createVerifiedSqliteSnapshot( await fs.rm(stagingDir, { force: true, recursive: true }).catch(() => undefined); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/state-migrations.doctor.ts b/src/infra/state-migrations.doctor.ts index 7f6f433ac753..c4082743f5a8 100644 --- a/src/infra/state-migrations.doctor.ts +++ b/src/infra/state-migrations.doctor.ts @@ -1254,3 +1254,4 @@ export async function autoMigrateLegacyState(params: { ...(notices.length > 0 ? { notices } : {}), }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/state-migrations.runtime-state.ts b/src/infra/state-migrations.runtime-state.ts index e289bfcdbe01..8c26c2151d85 100644 --- a/src/infra/state-migrations.runtime-state.ts +++ b/src/infra/state-migrations.runtime-state.ts @@ -959,3 +959,4 @@ export function migrateLegacyCurrentConversationBindings(params: { } return { changes, warnings }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/state-migrations.session-store.ts b/src/infra/state-migrations.session-store.ts index 69d72b7ca233..e66726265fb9 100644 --- a/src/infra/state-migrations.session-store.ts +++ b/src/infra/state-migrations.session-store.ts @@ -1390,3 +1390,4 @@ export function resolveSessionStoreOwnership(params: { const targetStoreAliases = resolveSessionStoreAliasPlan(targetStorePath, candidateStorePaths); return { preserveAmbiguousKeys, preserveForeignMainAliases, targetStoreAliases }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/state-migrations.storage.ts b/src/infra/state-migrations.storage.ts index 07375f1ad674..ea817c3e32a0 100644 --- a/src/infra/state-migrations.storage.ts +++ b/src/infra/state-migrations.storage.ts @@ -1165,3 +1165,4 @@ export async function migrateLegacyDeliveryQueues(params: { } return { changes, warnings }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/state-migrations.test.ts b/src/infra/state-migrations.test.ts index e2ee600a0f7a..6d2aaa8205af 100644 --- a/src/infra/state-migrations.test.ts +++ b/src/infra/state-migrations.test.ts @@ -2875,3 +2875,4 @@ describe("state migrations", () => { await expectMissingPath(path.join(stateDir, "sessions", "sessions.json")); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/update-global.ts b/src/infra/update-global.ts index cb34a04c982e..8ea80ae5a472 100644 --- a/src/infra/update-global.ts +++ b/src/infra/update-global.ts @@ -1013,3 +1013,4 @@ export async function cleanupGlobalRenameDirs(params: { } return { removed }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/update-managed-service-handoff.ts b/src/infra/update-managed-service-handoff.ts index 82bcc54d1e1c..e5b8c6f242ed 100644 --- a/src/infra/update-managed-service-handoff.ts +++ b/src/infra/update-managed-service-handoff.ts @@ -828,3 +828,4 @@ export function buildManagedServiceHandoffUnavailableMessage(command: string): s `Run \`${command}\` from a shell outside the gateway service, or restart/update from the host UI.`, ].join("\n"); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/update-runner.test.ts b/src/infra/update-runner.test.ts index 3a62d5267f21..a2dbb64a7c0f 100644 --- a/src/infra/update-runner.test.ts +++ b/src/infra/update-runner.test.ts @@ -3199,3 +3199,4 @@ describe("runGatewayUpdate", () => { expect(result.steps.at(-1)?.name).toMatch(/^git rollback/); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/update-runner.ts b/src/infra/update-runner.ts index 0e1a80a0e528..a1a3478723ff 100644 --- a/src/infra/update-runner.ts +++ b/src/infra/update-runner.ts @@ -1872,3 +1872,4 @@ export async function runGatewayUpdate(opts: UpdateRunnerOptions = {}): Promise< durationMs: Date.now() - startedAt, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/update-startup.test.ts b/src/infra/update-startup.test.ts index 65376522990a..ec0ee7ca42a6 100644 --- a/src/infra/update-startup.test.ts +++ b/src/infra/update-startup.test.ts @@ -1211,3 +1211,4 @@ describe("update-startup", () => { stop(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/update-startup.ts b/src/infra/update-startup.ts index 102024b213ff..203f826d789c 100644 --- a/src/infra/update-startup.ts +++ b/src/infra/update-startup.ts @@ -807,3 +807,4 @@ export function scheduleGatewayUpdateCheck(params: { } }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/infra/windows-gateway-firewall-diagnostics.ts b/src/infra/windows-gateway-firewall-diagnostics.ts index 6b642f85a3f1..2cb0a5a56c0a 100644 --- a/src/infra/windows-gateway-firewall-diagnostics.ts +++ b/src/infra/windows-gateway-firewall-diagnostics.ts @@ -1026,3 +1026,4 @@ export function formatWindowsGatewayFirewallGuidance(params: { "Windows firewall: if another device cannot connect to the LAN URL, run `openclaw gateway status --deep` from this Windows host.", ]; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/interactive/payload.ts b/src/interactive/payload.ts index d5dd481091be..e66cbf7b6fa2 100644 --- a/src/interactive/payload.ts +++ b/src/interactive/payload.ts @@ -1005,3 +1005,4 @@ export function resolveInteractiveTextFallback(params: { .join("\n\n"); return interactiveText || params.text; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/llm/providers/stream-wrappers/openai.ts b/src/llm/providers/stream-wrappers/openai.ts index 5d3763620ffc..d9ddc358f1fb 100644 --- a/src/llm/providers/stream-wrappers/openai.ts +++ b/src/llm/providers/stream-wrappers/openai.ts @@ -838,3 +838,4 @@ export function createOpenAIAttributionHeadersWrapper( }); }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/logging/diagnostic-stability-bundle.ts b/src/logging/diagnostic-stability-bundle.ts index 94b5c01ab4da..11fb88d6d7fe 100644 --- a/src/logging/diagnostic-stability-bundle.ts +++ b/src/logging/diagnostic-stability-bundle.ts @@ -1421,3 +1421,4 @@ export function uninstallDiagnosticStabilityFatalHook(): void { export function resetDiagnosticStabilityBundleForTest(): void { uninstallDiagnosticStabilityFatalHook(); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/logging/diagnostic-stability.ts b/src/logging/diagnostic-stability.ts index ebaa9e28addb..0fb9dae54b9b 100644 --- a/src/logging/diagnostic-stability.ts +++ b/src/logging/diagnostic-stability.ts @@ -789,3 +789,4 @@ export function resetDiagnosticStabilityRecorderForTest(): void { }; globalStore["__openclawDiagnosticStabilityState"] = next; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/logging/diagnostic-support-export.ts b/src/logging/diagnostic-support-export.ts index 125ab72bbeb1..82e9775e6d56 100644 --- a/src/logging/diagnostic-support-export.ts +++ b/src/logging/diagnostic-support-export.ts @@ -814,3 +814,4 @@ export async function writeDiagnosticSupportExport( manifest: artifact.manifest, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/logging/diagnostic.test.ts b/src/logging/diagnostic.test.ts index 64121d973aa7..021d802fc0f8 100644 --- a/src/logging/diagnostic.test.ts +++ b/src/logging/diagnostic.test.ts @@ -3127,3 +3127,4 @@ describe("stuck session recovery activity reconciliation", () => { expect(activity.activeToolName).toBe("ReplyTool"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/logging/diagnostic.ts b/src/logging/diagnostic.ts index 860a171070d9..f7ee1afb6a37 100644 --- a/src/logging/diagnostic.ts +++ b/src/logging/diagnostic.ts @@ -1407,3 +1407,4 @@ export function resetDiagnosticStateForTest(): void { resetDiagnosticStabilityRecorderForTest(); resetDiagnosticStabilityBundleForTest(); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/logging/logger.ts b/src/logging/logger.ts index 2be688fe7756..ab5604ecd504 100644 --- a/src/logging/logger.ts +++ b/src/logging/logger.ts @@ -835,3 +835,4 @@ function rotateLogFile(file: string): boolean { return false; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/logging/redact.test.ts b/src/logging/redact.test.ts index 9de8cec565bc..b1570f90713e 100644 --- a/src/logging/redact.test.ts +++ b/src/logging/redact.test.ts @@ -1395,3 +1395,4 @@ describe("redactSensitiveLines", () => { ]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/logging/redact.ts b/src/logging/redact.ts index b584753790c0..0fdc48a754cb 100644 --- a/src/logging/redact.ts +++ b/src/logging/redact.ts @@ -1240,3 +1240,4 @@ export function redactSensitiveLines(lines: string[], resolved: ResolvedRedactOp : lines; return redactText(redactedLines.join("\n"), resolved.patterns).split("\n"); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/media-understanding/apply.test.ts b/src/media-understanding/apply.test.ts index 15805231bf22..95b0ed7fe40c 100644 --- a/src/media-understanding/apply.test.ts +++ b/src/media-understanding/apply.test.ts @@ -2024,3 +2024,4 @@ describe("applyMediaUnderstanding", () => { expect(ctx.Body).toContain("vendor-json"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/media-understanding/image.test.ts b/src/media-understanding/image.test.ts index 82f26e3db57a..bab1e8286678 100644 --- a/src/media-understanding/image.test.ts +++ b/src/media-understanding/image.test.ts @@ -1782,3 +1782,4 @@ describe("describeImageWithModel", () => { expect(options.maxTokens).toBe(1024); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/media-understanding/runner.entries.ts b/src/media-understanding/runner.entries.ts index 0e9b251293d8..68d0e39ed6bb 100644 --- a/src/media-understanding/runner.entries.ts +++ b/src/media-understanding/runner.entries.ts @@ -1120,3 +1120,4 @@ export async function runCliEntry(params: { await fs.rm(outputDir, { recursive: true, force: true }).catch(() => {}); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/media-understanding/runner.ts b/src/media-understanding/runner.ts index 28453f83a303..b4bcf97d1a9c 100644 --- a/src/media-understanding/runner.ts +++ b/src/media-understanding/runner.ts @@ -1104,3 +1104,4 @@ export async function runCapability(params: { decision, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/media-understanding/runner.vision-skip.test.ts b/src/media-understanding/runner.vision-skip.test.ts index f2a0898f8e24..0829a98df56a 100644 --- a/src/media-understanding/runner.vision-skip.test.ts +++ b/src/media-understanding/runner.vision-skip.test.ts @@ -1080,3 +1080,4 @@ describe("runCapability image skip", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/media/fetch.test.ts b/src/media/fetch.test.ts index 958cb7aca636..5c773799fcb4 100644 --- a/src/media/fetch.test.ts +++ b/src/media/fetch.test.ts @@ -1282,3 +1282,4 @@ describe("readRemoteMediaBuffer", () => { expect(fetchImpl).toHaveBeenCalledTimes(1); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/media/web-media.test.ts b/src/media/web-media.test.ts index 17b8e15cea3c..6e3a04c1679b 100644 --- a/src/media/web-media.test.ts +++ b/src/media/web-media.test.ts @@ -1184,3 +1184,4 @@ describe("loadWebMedia", () => { await expectLoadWebMediaErrorCode(loadWebMedia("media://inbound/"), "invalid-path"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/media/web-media.ts b/src/media/web-media.ts index 2c921877b846..f5c9e3314767 100644 --- a/src/media/web-media.ts +++ b/src/media/web-media.ts @@ -1157,3 +1157,4 @@ export async function optimizeImageToJpeg( } export { optimizeImageToPng } from "./media-services.js"; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/node-host/invoke-system-run-plan.test.ts b/src/node-host/invoke-system-run-plan.test.ts index c4ae27f22d04..b915efdd1d8c 100644 --- a/src/node-host/invoke-system-run-plan.test.ts +++ b/src/node-host/invoke-system-run-plan.test.ts @@ -1120,3 +1120,4 @@ describe("hardenApprovedExecutionPaths", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/node-host/invoke-system-run-plan.ts b/src/node-host/invoke-system-run-plan.ts index c4c814a7758d..65a8f31d901a 100644 --- a/src/node-host/invoke-system-run-plan.ts +++ b/src/node-host/invoke-system-run-plan.ts @@ -1174,3 +1174,4 @@ export function buildSystemRunApprovalPlan(params: { }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/node-host/invoke-system-run.test.ts b/src/node-host/invoke-system-run.test.ts index 39aaa88475d8..64e350abb588 100644 --- a/src/node-host/invoke-system-run.test.ts +++ b/src/node-host/invoke-system-run.test.ts @@ -3627,3 +3627,4 @@ describe("handleSystemRunInvoke mac app exec host routing", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/node-host/invoke-system-run.ts b/src/node-host/invoke-system-run.ts index ad48bb5a8817..672d0782805d 100644 --- a/src/node-host/invoke-system-run.ts +++ b/src/node-host/invoke-system-run.ts @@ -1095,3 +1095,4 @@ export async function handleSystemRunInvoke(opts: HandleSystemRunInvokeOptions): } await executeSystemRunPhase(opts, policyPhase); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/node-host/invoke.ts b/src/node-host/invoke.ts index cdb0afadbb99..a4ff01d73e5d 100644 --- a/src/node-host/invoke.ts +++ b/src/node-host/invoke.ts @@ -1093,3 +1093,4 @@ export const testing = { clarifyNodeExecCwdSpawnError, runCommand, } as const; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugin-sdk/approval-native-helpers.ts b/src/plugin-sdk/approval-native-helpers.ts index 3db8abb82661..254c5c82114d 100644 --- a/src/plugin-sdk/approval-native-helpers.ts +++ b/src/plugin-sdk/approval-native-helpers.ts @@ -973,3 +973,4 @@ export function createChannelApproverDmTargetResolver< return targets; }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugin-sdk/core.ts b/src/plugin-sdk/core.ts index 014c7d5c276f..1fd79b6b4879 100644 --- a/src/plugin-sdk/core.ts +++ b/src/plugin-sdk/core.ts @@ -868,3 +868,4 @@ export function createChannelPluginBase( setup: params.setup, } as CreatedChannelPluginBase; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugin-sdk/provider-auth.test.ts b/src/plugin-sdk/provider-auth.test.ts index f4726ddf5ed9..1ed00ded0b78 100644 --- a/src/plugin-sdk/provider-auth.test.ts +++ b/src/plugin-sdk/provider-auth.test.ts @@ -1208,3 +1208,4 @@ describe("Copilot data-residency domain resolution", () => { expect(result.baseUrl).toBe("https://copilot-api.acme.ghe.com"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugin-sdk/provider-stream-shared.test.ts b/src/plugin-sdk/provider-stream-shared.test.ts index d2fc3a8b54a7..f10493e69f51 100644 --- a/src/plugin-sdk/provider-stream-shared.test.ts +++ b/src/plugin-sdk/provider-stream-shared.test.ts @@ -2966,3 +2966,4 @@ describe("createAnthropicThinkingPrefillPayloadWrapper", () => { expect(strippedCount).toBe(1); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugin-sdk/provider-stream-shared.ts b/src/plugin-sdk/provider-stream-shared.ts index 4ba4799659f6..57a775186197 100644 --- a/src/plugin-sdk/provider-stream-shared.ts +++ b/src/plugin-sdk/provider-stream-shared.ts @@ -993,3 +993,4 @@ export { createToolStreamWrapper, createZaiToolStreamWrapper, } from "../llm/providers/stream-wrappers/zai.js"; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugin-sdk/test-helpers/plugin-runtime-mock.ts b/src/plugin-sdk/test-helpers/plugin-runtime-mock.ts index 00ba0260aad6..e19cbcf13179 100644 --- a/src/plugin-sdk/test-helpers/plugin-runtime-mock.ts +++ b/src/plugin-sdk/test-helpers/plugin-runtime-mock.ts @@ -864,3 +864,4 @@ export function createPluginRuntimeMock(overrides: DeepPartial = return mergeDeep(base, overrides); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugin-sdk/test-helpers/provider-discovery-contract.ts b/src/plugin-sdk/test-helpers/provider-discovery-contract.ts index f49501e7288f..31c9ede866a0 100644 --- a/src/plugin-sdk/test-helpers/provider-discovery-contract.ts +++ b/src/plugin-sdk/test-helpers/provider-discovery-contract.ts @@ -912,3 +912,4 @@ export function describeCloudflareAiGatewayProviderDiscoveryContract( }); }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugin-sdk/test-helpers/provider-runtime-contract.ts b/src/plugin-sdk/test-helpers/provider-runtime-contract.ts index d002674ad3e4..52c8a386a627 100644 --- a/src/plugin-sdk/test-helpers/provider-runtime-contract.ts +++ b/src/plugin-sdk/test-helpers/provider-runtime-contract.ts @@ -859,3 +859,4 @@ export function describeZAIProviderRuntimeContract(load: ProviderRuntimeContract }); }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugin-state/plugin-state-store.sqlite.ts b/src/plugin-state/plugin-state-store.sqlite.ts index 3923f81669a1..15006cb8a19e 100644 --- a/src/plugin-state/plugin-state-store.sqlite.ts +++ b/src/plugin-state/plugin-state-store.sqlite.ts @@ -1005,3 +1005,4 @@ export function closePluginStateDatabase(): void { cachedDatabase = null; closeOpenClawStateDatabase(); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/bundled-plugin-metadata.test.ts b/src/plugins/bundled-plugin-metadata.test.ts index bea08690b46e..be50bdcc7c6d 100644 --- a/src/plugins/bundled-plugin-metadata.test.ts +++ b/src/plugins/bundled-plugin-metadata.test.ts @@ -1184,3 +1184,4 @@ function toLintErrorObject(value: unknown, fallbackMessage: string): Error { } return error; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/capability-provider-runtime.test.ts b/src/plugins/capability-provider-runtime.test.ts index 8e3f2af3b253..8c65e27566da 100644 --- a/src/plugins/capability-provider-runtime.test.ts +++ b/src/plugins/capability-provider-runtime.test.ts @@ -1950,3 +1950,4 @@ describe("resolvePluginCapabilityProviders", () => { expectActiveRegistryLookup(["microsoft"]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/channel-plugin-ids.test.ts b/src/plugins/channel-plugin-ids.test.ts index d1be29666ff3..442cc89ac154 100644 --- a/src/plugins/channel-plugin-ids.test.ts +++ b/src/plugins/channel-plugin-ids.test.ts @@ -4082,3 +4082,4 @@ describe("listConfiguredChannelIdsForReadOnlyScope", () => { ).toBe(true); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/clawhub.test.ts b/src/plugins/clawhub.test.ts index 14793c21ea04..ecc6405b20bd 100644 --- a/src/plugins/clawhub.test.ts +++ b/src/plugins/clawhub.test.ts @@ -3257,3 +3257,4 @@ describe("installPluginFromClawHub", () => { await expectClawHubInstallError({ setup, spec, expected }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/clawhub.ts b/src/plugins/clawhub.ts index b253edfcbfaa..b4b9f7a06b3c 100644 --- a/src/plugins/clawhub.ts +++ b/src/plugins/clawhub.ts @@ -1509,3 +1509,4 @@ export async function installPluginFromClawHub( await archive.cleanup().catch(() => undefined); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/commands.test.ts b/src/plugins/commands.test.ts index adc354aecd98..0593398dbf1a 100644 --- a/src/plugins/commands.test.ts +++ b/src/plugins/commands.test.ts @@ -1507,3 +1507,4 @@ describe("registerPluginCommand", () => { expect(receivedCtx?.accountId).toBe("work"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/compat/registry.ts b/src/plugins/compat/registry.ts index 93a74085d637..9300ecba65c1 100644 --- a/src/plugins/compat/registry.ts +++ b/src/plugins/compat/registry.ts @@ -1147,3 +1147,4 @@ export function getPluginCompatRecord(code: PluginCompatCode): KnownPluginCompat } return record; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/contracts/host-hooks.contract.test.ts b/src/plugins/contracts/host-hooks.contract.test.ts index 3090fa912091..002af8e2ba7e 100644 --- a/src/plugins/contracts/host-hooks.contract.test.ts +++ b/src/plugins/contracts/host-hooks.contract.test.ts @@ -3048,3 +3048,4 @@ describe("host-hook fixture plugin contract", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/contracts/plugin-sdk-subpaths.test.ts b/src/plugins/contracts/plugin-sdk-subpaths.test.ts index 5df742ebac4f..d84c29b75fd0 100644 --- a/src/plugins/contracts/plugin-sdk-subpaths.test.ts +++ b/src/plugins/contracts/plugin-sdk-subpaths.test.ts @@ -1489,3 +1489,4 @@ describe("plugin-sdk subpath exports", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/contracts/scheduled-turns.contract.test.ts b/src/plugins/contracts/scheduled-turns.contract.test.ts index ff5200c707bf..30e0e12261c8 100644 --- a/src/plugins/contracts/scheduled-turns.contract.test.ts +++ b/src/plugins/contracts/scheduled-turns.contract.test.ts @@ -1225,3 +1225,4 @@ describe("plugin scheduled turns", () => { expect(workflowMocks.cronRemove).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/contracts/tts-contract-suites.ts b/src/plugins/contracts/tts-contract-suites.ts index ebd414010ee3..1a59e0ba041d 100644 --- a/src/plugins/contracts/tts-contract-suites.ts +++ b/src/plugins/contracts/tts-contract-suites.ts @@ -1328,3 +1328,4 @@ export function describeTtsAutoApplyContract() { }); }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/conversation-binding.test.ts b/src/plugins/conversation-binding.test.ts index a5ff4d24fcca..6bdf1e54e284 100644 --- a/src/plugins/conversation-binding.test.ts +++ b/src/plugins/conversation-binding.test.ts @@ -1161,3 +1161,4 @@ describe("plugin conversation binding approvals", () => { expect(binding.conversationId).toBe(expectedBinding.conversationId); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/conversation-binding.ts b/src/plugins/conversation-binding.ts index 4cc149739da1..2895117e8d9d 100644 --- a/src/plugins/conversation-binding.ts +++ b/src/plugins/conversation-binding.ts @@ -1002,3 +1002,4 @@ export function buildPluginBindingResolvedText(params: PluginBindingResolveResul } return `Allowed ${params.request.pluginName ?? params.request.pluginId} to bind this conversation once.${summarySuffix}`; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/discovery.test.ts b/src/plugins/discovery.test.ts index de179e6c90f9..b77eb45d8414 100644 --- a/src/plugins/discovery.test.ts +++ b/src/plugins/discovery.test.ts @@ -2586,3 +2586,4 @@ describe("discoverOpenClawPlugins", () => { expectCandidateOrder(second.candidates, ["beta", "alpha"]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/discovery.ts b/src/plugins/discovery.ts index cd7614319ec8..a0ed9d7d5a7c 100644 --- a/src/plugins/discovery.ts +++ b/src/plugins/discovery.ts @@ -1721,3 +1721,4 @@ export function discoverOpenClawPlugins(params: { addMissingRequiredPluginDiagnostics(result); return result; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/gateway-startup-plugin-ids.ts b/src/plugins/gateway-startup-plugin-ids.ts index dc4a2b076d62..ee7adc118510 100644 --- a/src/plugins/gateway-startup-plugin-ids.ts +++ b/src/plugins/gateway-startup-plugin-ids.ts @@ -2325,3 +2325,4 @@ export function resolveGatewayStartupPluginIds(params: { }): string[] { return [...loadGatewayStartupPluginPlan(params).pluginIds]; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/hook-types.ts b/src/plugins/hook-types.ts index c1e4bb4e416e..3eab6cdb6e36 100644 --- a/src/plugins/hook-types.ts +++ b/src/plugins/hook-types.ts @@ -1316,3 +1316,4 @@ export type PluginHookRegistration = timeoutMs?: number; source: string; }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/hooks.ts b/src/plugins/hooks.ts index fb12f006b953..98e686ca4af9 100644 --- a/src/plugins/hooks.ts +++ b/src/plugins/hooks.ts @@ -1643,3 +1643,4 @@ export type SubagentLifecycleHookRunner = Pick< HookRunner, "hasHooks" | "runSubagentSpawning" | "runSubagentSpawned" | "runSubagentEnded" >; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/install-security-scan.runtime.ts b/src/plugins/install-security-scan.runtime.ts index 3dfd27877c24..bd1f8f16d6c2 100644 --- a/src/plugins/install-security-scan.runtime.ts +++ b/src/plugins/install-security-scan.runtime.ts @@ -1304,3 +1304,4 @@ export async function evaluateSkillInstallPolicyRuntime(params: { }); return hookResult; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/install.npm-spec.e2e.test.ts b/src/plugins/install.npm-spec.e2e.test.ts index b798b85cc1be..c7e9a4a55e6b 100644 --- a/src/plugins/install.npm-spec.e2e.test.ts +++ b/src/plugins/install.npm-spec.e2e.test.ts @@ -1311,3 +1311,4 @@ describe("installPluginFromNpmSpec e2e", () => { expect(installedLockEntry?.version).toBe("1.0.0"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/install.npm-spec.test.ts b/src/plugins/install.npm-spec.test.ts index be7e47d2f551..bb0ded1e6caa 100644 --- a/src/plugins/install.npm-spec.test.ts +++ b/src/plugins/install.npm-spec.test.ts @@ -3271,3 +3271,4 @@ describe("installPluginFromNpmSpec", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/install.test.ts b/src/plugins/install.test.ts index 96c813b45ea1..af2c2d96c9ab 100644 --- a/src/plugins/install.test.ts +++ b/src/plugins/install.test.ts @@ -4172,3 +4172,4 @@ describe("linkOpenClawPeerDependencies (via installPluginFromDir)", () => { expectWarningIncludes(warnings, "Could not locate openclaw package root"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/install.ts b/src/plugins/install.ts index e4d7ed64b8fb..c6c8fd4ce3b5 100644 --- a/src/plugins/install.ts +++ b/src/plugins/install.ts @@ -3271,3 +3271,4 @@ export async function installPluginFromPath( "Plain file plugin installs are not supported. Install a plugin directory or archive that contains openclaw.plugin.json, or list standalone plugin files in plugins.load.paths.", }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/installed-plugin-index.test.ts b/src/plugins/installed-plugin-index.test.ts index e88e7ad1c4ee..955c02e0fa7d 100644 --- a/src/plugins/installed-plugin-index.test.ts +++ b/src/plugins/installed-plugin-index.test.ts @@ -1158,3 +1158,4 @@ describe("installed plugin index", () => { expect(diffInstalledPluginIndexInvalidationReasons(current, moved)).toContain("source-changed"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/loader.activation.test-utils.ts b/src/plugins/loader.activation.test-utils.ts index db729cd2a0d3..994ff99b1153 100644 --- a/src/plugins/loader.activation.test-utils.ts +++ b/src/plugins/loader.activation.test-utils.ts @@ -1636,3 +1636,4 @@ describe("loadOpenClawPlugins", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/loader.base.test-utils.ts b/src/plugins/loader.base.test-utils.ts index fd24d3c34377..82aa90801075 100644 --- a/src/plugins/loader.base.test-utils.ts +++ b/src/plugins/loader.base.test-utils.ts @@ -1882,3 +1882,4 @@ describe("loadOpenClawPlugins", () => { clearInternalHooks(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/loader.cli-metadata.test.ts b/src/plugins/loader.cli-metadata.test.ts index 7328fa0b34ef..a85b65b28495 100644 --- a/src/plugins/loader.cli-metadata.test.ts +++ b/src/plugins/loader.cli-metadata.test.ts @@ -1085,3 +1085,4 @@ module.exports = { expect(memory?.error ?? "").toContain('memory slot set to "memory-other"'); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/loader.discovery-and-security.test-utils.ts b/src/plugins/loader.discovery-and-security.test-utils.ts index 06510f3a4320..33415cce07a1 100644 --- a/src/plugins/loader.discovery-and-security.test-utils.ts +++ b/src/plugins/loader.discovery-and-security.test-utils.ts @@ -1849,3 +1849,4 @@ describe("loadOpenClawPlugins", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/loader.hooks-and-runtime.test-utils.ts b/src/plugins/loader.hooks-and-runtime.test-utils.ts index 1b58e095c370..36cc3ccea9db 100644 --- a/src/plugins/loader.hooks-and-runtime.test-utils.ts +++ b/src/plugins/loader.hooks-and-runtime.test-utils.ts @@ -1836,3 +1836,4 @@ describe("loadOpenClawPlugins", () => { ).toBe(true); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/loader.registration.test-utils.ts b/src/plugins/loader.registration.test-utils.ts index 0835e9f9b061..763d275027ed 100644 --- a/src/plugins/loader.registration.test-utils.ts +++ b/src/plugins/loader.registration.test-utils.ts @@ -1737,3 +1737,4 @@ describe("loadOpenClawPlugins", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/loader.test-harness.ts b/src/plugins/loader.test-harness.ts index d021a5c7164b..e6666be5e365 100644 --- a/src/plugins/loader.test-harness.ts +++ b/src/plugins/loader.test-harness.ts @@ -1002,3 +1002,4 @@ export const globalAfterAll1 = () => { cachedBundledTelegramDir = ""; cachedBundledMemoryDir = ""; }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/loader.ts b/src/plugins/loader.ts index b3217ced2e2d..3e24ce00b5bc 100644 --- a/src/plugins/loader.ts +++ b/src/plugins/loader.ts @@ -2995,3 +2995,4 @@ function resolveCliMetadataEntrySource(rootDir: string): string | null { } return null; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/management-service.ts b/src/plugins/management-service.ts index 39ce33a22a8b..91e424b4423b 100644 --- a/src/plugins/management-service.ts +++ b/src/plugins/management-service.ts @@ -981,3 +981,4 @@ export async function uninstallManagedPlugin(params: { export function formatManagedPluginLifecycleError(error: unknown): string { return formatErrorMessage(error); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/manifest-registry.test.ts b/src/plugins/manifest-registry.test.ts index 7eee96d17ee5..badd468a38d0 100644 --- a/src/plugins/manifest-registry.test.ts +++ b/src/plugins/manifest-registry.test.ts @@ -3167,3 +3167,4 @@ describe("loadPluginManifestRegistry", () => { expectNoRegistryDiagnosticContains(newerHost, "this host is 2026.3.21"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/manifest-registry.ts b/src/plugins/manifest-registry.ts index ac3cd06a316f..ad7cdd3b22c1 100644 --- a/src/plugins/manifest-registry.ts +++ b/src/plugins/manifest-registry.ts @@ -1220,3 +1220,4 @@ export function loadPluginManifestRegistry( const registry = { plugins: records, diagnostics: dedupePluginDiagnostics(diagnostics) }; return registry; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/manifest.ts b/src/plugins/manifest.ts index edce57fcbbe7..0ff64ea28362 100644 --- a/src/plugins/manifest.ts +++ b/src/plugins/manifest.ts @@ -2102,3 +2102,4 @@ export function resolvePackageExtensionEntries( } return { status: "ok", entries }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/marketplace.test.ts b/src/plugins/marketplace.test.ts index a1306f2374f7..d551d05b5b0b 100644 --- a/src/plugins/marketplace.test.ts +++ b/src/plugins/marketplace.test.ts @@ -1323,3 +1323,4 @@ describe("marketplace plugins", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/marketplace.ts b/src/plugins/marketplace.ts index d594d2ffa65d..6a425dd14cfd 100644 --- a/src/plugins/marketplace.ts +++ b/src/plugins/marketplace.ts @@ -1332,3 +1332,4 @@ export async function installPluginFromMarketplace( await loaded.marketplace.cleanup?.(); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/official-external-plugin-catalog.test.ts b/src/plugins/official-external-plugin-catalog.test.ts index bab2d4685be3..668a46e44b2d 100644 --- a/src/plugins/official-external-plugin-catalog.test.ts +++ b/src/plugins/official-external-plugin-catalog.test.ts @@ -1203,3 +1203,4 @@ describe("official external plugin catalog", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/official-external-plugin-catalog.ts b/src/plugins/official-external-plugin-catalog.ts index 94c94eba82d6..efe19d0f1bc2 100644 --- a/src/plugins/official-external-plugin-catalog.ts +++ b/src/plugins/official-external-plugin-catalog.ts @@ -1434,3 +1434,4 @@ export function getOfficialExternalPluginCatalogEntryForPackage( (entry) => normalizeOptionalString(entry.name) === normalized, ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/plugin-metadata-snapshot.ts b/src/plugins/plugin-metadata-snapshot.ts index 6f5095321c8f..31719cabd786 100644 --- a/src/plugins/plugin-metadata-snapshot.ts +++ b/src/plugins/plugin-metadata-snapshot.ts @@ -755,3 +755,4 @@ function loadPluginMetadataSnapshotImpl(params: LoadPluginMetadataSnapshotParams }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/plugin-registry-snapshot.test.ts b/src/plugins/plugin-registry-snapshot.test.ts index ad324f7dfac2..3e4a74b9f66d 100644 --- a/src/plugins/plugin-registry-snapshot.test.ts +++ b/src/plugins/plugin-registry-snapshot.test.ts @@ -1125,3 +1125,4 @@ describe("loadPluginRegistrySnapshotWithMetadata", () => { expect(result.diagnostics).toStrictEqual([]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/provider-runtime.test.ts b/src/plugins/provider-runtime.test.ts index db3cf6198cb3..f449ce4dc5ba 100644 --- a/src/plugins/provider-runtime.test.ts +++ b/src/plugins/provider-runtime.test.ts @@ -2714,3 +2714,4 @@ describe("provider-runtime", () => { expect(resolvePluginProvidersMock).toHaveBeenCalledTimes(2); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/provider-runtime.ts b/src/plugins/provider-runtime.ts index 5eb1cde5804a..7795282572f8 100644 --- a/src/plugins/provider-runtime.ts +++ b/src/plugins/provider-runtime.ts @@ -1079,3 +1079,4 @@ export async function augmentModelCatalogWithProviderPlugins(params: { } return supplemental; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/providers.test.ts b/src/plugins/providers.test.ts index a3237eaff424..c1060ce4d320 100644 --- a/src/plugins/providers.test.ts +++ b/src/plugins/providers.test.ts @@ -1856,3 +1856,4 @@ describe("resolvePluginProviders", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/providers.ts b/src/plugins/providers.ts index 611c15490c18..dee5fb94ea00 100644 --- a/src/plugins/providers.ts +++ b/src/plugins/providers.ts @@ -888,3 +888,4 @@ export function resolveUsageHookProviderPluginContracts(params: { return providerIds.length > 0 ? [{ pluginId, providerIds }] : []; }); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/registry-runtime.ts b/src/plugins/registry-runtime.ts index a96a1981dbad..a7e2f6db2f81 100644 --- a/src/plugins/registry-runtime.ts +++ b/src/plugins/registry-runtime.ts @@ -748,3 +748,4 @@ export function createPluginRuntimeResolver(state: PluginRegistryState) { } export type PluginRuntimeResolver = ReturnType; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/schema-validator.test.ts b/src/plugins/schema-validator.test.ts index 07dd0592985f..b342261f0d00 100644 --- a/src/plugins/schema-validator.test.ts +++ b/src/plugins/schema-validator.test.ts @@ -2129,3 +2129,4 @@ describe("schema validator", () => { expect(Format.Get("uuid")?.("not a uuid")).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/sdk-alias.test.ts b/src/plugins/sdk-alias.test.ts index 5d981406383e..aa6066dbe1d1 100644 --- a/src/plugins/sdk-alias.test.ts +++ b/src/plugins/sdk-alias.test.ts @@ -2805,3 +2805,4 @@ describe("buildPluginLoaderJitiOptions", () => { expect(buildPluginLoaderJitiOptions({})).not.toHaveProperty("alias"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/sdk-alias.ts b/src/plugins/sdk-alias.ts index a4a7529d044f..d8d50ac7cbde 100644 --- a/src/plugins/sdk-alias.ts +++ b/src/plugins/sdk-alias.ts @@ -2102,3 +2102,4 @@ export function resolvePluginLoaderModuleConfig(params: { pluginLoaderModuleConfigCache.set(configCacheKey, result); return result; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/setup-registry.test.ts b/src/plugins/setup-registry.test.ts index 35c4d735202f..cf710ba200a7 100644 --- a/src/plugins/setup-registry.test.ts +++ b/src/plugins/setup-registry.test.ts @@ -1135,3 +1135,4 @@ describe("setup-registry module loader", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/setup-registry.ts b/src/plugins/setup-registry.ts index 21889d6e6f01..250545c92992 100644 --- a/src/plugins/setup-registry.ts +++ b/src/plugins/setup-registry.ts @@ -917,3 +917,4 @@ export function resolvePluginSetupAutoEnableReasons(params: { return reasons; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/tools.optional.test.ts b/src/plugins/tools.optional.test.ts index dfbf14499cdf..0a3d0502272f 100644 --- a/src/plugins/tools.optional.test.ts +++ b/src/plugins/tools.optional.test.ts @@ -3479,3 +3479,4 @@ describe("buildPluginToolMetadataKey", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/tools.ts b/src/plugins/tools.ts index f4640340648a..2efcb1e54f38 100644 --- a/src/plugins/tools.ts +++ b/src/plugins/tools.ts @@ -1562,3 +1562,4 @@ export function resolvePluginTools(params: { return tools; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/types.ts b/src/plugins/types.ts index 9d8ec27c58f2..02a32a3700a0 100644 --- a/src/plugins/types.ts +++ b/src/plugins/types.ts @@ -3048,3 +3048,4 @@ export type OpenClawPluginApi = { // Plugin hook contracts now live in hook-types.ts so hook runners can import a // leaf contract surface instead of pulling the full plugin runtime barrel. +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/uninstall.test.ts b/src/plugins/uninstall.test.ts index 492d2cbdddc1..7ddec25f4c73 100644 --- a/src/plugins/uninstall.test.ts +++ b/src/plugins/uninstall.test.ts @@ -1741,3 +1741,4 @@ describe("uninstallPlugin", () => { expect(linkStat.isSymbolicLink()).toBe(true); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/update.test.ts b/src/plugins/update.test.ts index e081ee8c9198..bd26bc1bebb3 100644 --- a/src/plugins/update.test.ts +++ b/src/plugins/update.test.ts @@ -5635,3 +5635,4 @@ describe("syncPluginsForUpdateChannel", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/plugins/update.ts b/src/plugins/update.ts index b8ca35192afb..505b39c831f3 100644 --- a/src/plugins/update.ts +++ b/src/plugins/update.ts @@ -2740,3 +2740,4 @@ export async function syncPluginsForUpdateChannel(params: { return { config: next, changed, summary }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/proxy-capture/store.sqlite.ts b/src/proxy-capture/store.sqlite.ts index 02f05ad7985e..80731facf949 100644 --- a/src/proxy-capture/store.sqlite.ts +++ b/src/proxy-capture/store.sqlite.ts @@ -941,3 +941,4 @@ export function safeJsonString(value: unknown): string | undefined { const raw = serializeJson(value); return raw ?? undefined; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/routing/resolve-route.test.ts b/src/routing/resolve-route.test.ts index ae567a43f90a..589a6c495551 100644 --- a/src/routing/resolve-route.test.ts +++ b/src/routing/resolve-route.test.ts @@ -1277,3 +1277,4 @@ describe("binding evaluation cache scalability", () => { expect(defaultRoute.matchedBy).toBe("default"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/routing/resolve-route.ts b/src/routing/resolve-route.ts index 3b65f01ee461..1b4298709a39 100644 --- a/src/routing/resolve-route.ts +++ b/src/routing/resolve-route.ts @@ -819,3 +819,4 @@ export function resolveAgentRoute(input: ResolveAgentRouteInput): ResolvedAgentR return choose(resolveDefaultAgentId(input.cfg), "default"); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/scripts/ci-changed-scope.test.ts b/src/scripts/ci-changed-scope.test.ts index 70b3b21ed119..f93857b3eb74 100644 --- a/src/scripts/ci-changed-scope.test.ts +++ b/src/scripts/ci-changed-scope.test.ts @@ -13,7 +13,6 @@ const { listChangedPaths, parseArgs, shouldRunNativeI18n, - shouldRunTsLoc, writeGitHubOutput, } = await import("../../scripts/ci-changed-scope.mjs"); @@ -121,13 +120,6 @@ describe("detectChangedScope", () => { expect(shouldRunNativeI18n(["scripts/install.sh"])).toBe(false); }); - it("routes production TypeScript to the LOC ratchet independent of native lanes", () => { - expect(shouldRunTsLoc(["apps/android/scripts/build-release-artifacts.ts"])).toBe(true); - expect(shouldRunTsLoc(["apps/macos/Sources/Foo.swift"])).toBe(false); - expect(shouldRunTsLoc(["src/state/openclaw-state-schema.generated.ts"])).toBe(false); - expect(shouldRunTsLoc(["src/runtime.test.ts"])).toBe(false); - }); - it("fails safe when no paths are provided", () => { expect(detectChangedScope([])).toEqual({ runNode: true, @@ -1016,7 +1008,6 @@ describe("detectChangedScope", () => { undefined, undefined, false, - false, changedPaths, ); @@ -1057,7 +1048,6 @@ describe("detectChangedScope", () => { run_control_ui_i18n: "false", run_ui_tests: "false", run_native_i18n: "false", - run_ts_loc: "false", changed_paths_json: "[]", }); }); diff --git a/src/scripts/test-projects.test.ts b/src/scripts/test-projects.test.ts index 5c7ad98165e9..78ac48fbf2b1 100644 --- a/src/scripts/test-projects.test.ts +++ b/src/scripts/test-projects.test.ts @@ -1241,3 +1241,4 @@ describe("test-projects args", () => { ).toThrow("watch mode with mixed test suites is not supported"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/secrets/apply.test.ts b/src/secrets/apply.test.ts index c10e033d0dd8..b70be86c2e19 100644 --- a/src/secrets/apply.test.ts +++ b/src/secrets/apply.test.ts @@ -1609,3 +1609,4 @@ describe("secrets apply", () => { expect(nextConfig.plugins?.entries?.vault).toEqual({ enabled: true }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/secrets/apply.ts b/src/secrets/apply.ts index a2e9fe0c1e94..c29c912417f3 100644 --- a/src/secrets/apply.ts +++ b/src/secrets/apply.ts @@ -1042,3 +1042,4 @@ export const testing = { }, }; export { testing as __testing }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/secrets/configure.ts b/src/secrets/configure.ts index eb9cb3629c41..94eb642bb76a 100644 --- a/src/secrets/configure.ts +++ b/src/secrets/configure.ts @@ -1077,3 +1077,4 @@ export async function runSecretsConfigureInteractive( return { plan, preflight }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/secrets/resolve.ts b/src/secrets/resolve.ts index 258ed1fb2a76..e4cf280ec15b 100644 --- a/src/secrets/resolve.ts +++ b/src/secrets/resolve.ts @@ -915,3 +915,4 @@ export async function resolveSecretRefString( } return resolved; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/secrets/runtime-state.test.ts b/src/secrets/runtime-state.test.ts index 651a9d4b62a8..341984b9abef 100644 --- a/src/secrets/runtime-state.test.ts +++ b/src/secrets/runtime-state.test.ts @@ -2424,3 +2424,4 @@ describe("secrets runtime state", () => { }, ); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/secrets/runtime-state.ts b/src/secrets/runtime-state.ts index aa3bbeca1aa0..03dbd9d8bbfa 100644 --- a/src/secrets/runtime-state.ts +++ b/src/secrets/runtime-state.ts @@ -1019,3 +1019,4 @@ export function clearSecretsRuntimeSnapshot(): void { clearHook(); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/secrets/runtime-web-tools.test.ts b/src/secrets/runtime-web-tools.test.ts index 871684582003..16cbcf53e955 100644 --- a/src/secrets/runtime-web-tools.test.ts +++ b/src/secrets/runtime-web-tools.test.ts @@ -1822,3 +1822,4 @@ describe("runtime web tools resolution", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/secrets/runtime-web-tools.ts b/src/secrets/runtime-web-tools.ts index 19bf903ad61f..839eebe9515e 100644 --- a/src/secrets/runtime-web-tools.ts +++ b/src/secrets/runtime-web-tools.ts @@ -850,3 +850,4 @@ export async function resolveRuntimeWebTools(params: { diagnostics, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/security/audit-extra.async.ts b/src/security/audit-extra.async.ts index 1a5ffa23d269..9bef764a4204 100644 --- a/src/security/audit-extra.async.ts +++ b/src/security/audit-extra.async.ts @@ -930,3 +930,4 @@ export async function collectInstalledSkillsCodeSafetyFindings(params: { return findings; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/security/audit-extra.sync.ts b/src/security/audit-extra.sync.ts index 4a999577021f..f409c13916cf 100644 --- a/src/security/audit-extra.sync.ts +++ b/src/security/audit-extra.sync.ts @@ -1259,3 +1259,4 @@ export function collectLikelyMultiUserSetupFindings(cfg: OpenClawConfig): Securi return findings; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/security/audit.ts b/src/security/audit.ts index cf943a0f14b2..031117619183 100644 --- a/src/security/audit.ts +++ b/src/security/audit.ts @@ -1541,3 +1541,4 @@ export async function runSecurityAudit(opts: SecurityAuditOptions): Promise(schema: JsonSchemaValue, value: T): T { return applySchemaDefaults(schema, value) as T; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/shared/text/assistant-visible-text.ts b/src/shared/text/assistant-visible-text.ts index 1ee52d29be94..065e0db5919c 100644 --- a/src/shared/text/assistant-visible-text.ts +++ b/src/shared/text/assistant-visible-text.ts @@ -1096,3 +1096,4 @@ export function sanitizeAssistantVisibleTextWithOptions( const profile = options?.trim === "none" ? "history" : "delivery"; return sanitizeAssistantVisibleTextWithProfile(text, profile); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/skills/lifecycle/clawhub.test.ts b/src/skills/lifecycle/clawhub.test.ts index d9357bb0eaf8..2bc965bc60b5 100644 --- a/src/skills/lifecycle/clawhub.test.ts +++ b/src/skills/lifecycle/clawhub.test.ts @@ -2796,3 +2796,4 @@ describe("ClawHub origin provenance readback", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/skills/lifecycle/clawhub.ts b/src/skills/lifecycle/clawhub.ts index ce922a7f805f..689bc297f189 100644 --- a/src/skills/lifecycle/clawhub.ts +++ b/src/skills/lifecycle/clawhub.ts @@ -1679,3 +1679,4 @@ export async function untrackClawHubSkill(workspaceDir: string, slug: string): P delete lock.skills[trackedSlug]; await writeClawHubSkillsLockfile(workspaceDir, lock); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/skills/lifecycle/install.ts b/src/skills/lifecycle/install.ts index 7320243422d6..90f1ca5c68dc 100644 --- a/src/skills/lifecycle/install.ts +++ b/src/skills/lifecycle/install.ts @@ -828,3 +828,4 @@ export const testing = { }; }, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/skills/loading/workspace-load.test.ts b/src/skills/loading/workspace-load.test.ts index dc35a2878a76..8978f809e793 100644 --- a/src/skills/loading/workspace-load.test.ts +++ b/src/skills/loading/workspace-load.test.ts @@ -1340,3 +1340,4 @@ describe("loadWorkspaceSkillEntries", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/skills/loading/workspace.ts b/src/skills/loading/workspace.ts index 7d50f239b99f..726c0c86f91c 100644 --- a/src/skills/loading/workspace.ts +++ b/src/skills/loading/workspace.ts @@ -1803,3 +1803,4 @@ export function filterWorkspaceSkillEntriesWithOptions( return filterSkillEntries(entries, opts?.config, opts?.skillFilter, opts?.eligibility); } export { testing as __testing }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/skills/security/scanner.ts b/src/skills/security/scanner.ts index f894c4bd4345..b0dc285bb02c 100644 --- a/src/skills/security/scanner.ts +++ b/src/skills/security/scanner.ts @@ -813,3 +813,4 @@ export async function scanDirectoryWithSummary( findings: allFindings, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/skills/workshop/service.test.ts b/src/skills/workshop/service.test.ts index c3ee2150c63c..332f7a571ad3 100644 --- a/src/skills/workshop/service.test.ts +++ b/src/skills/workshop/service.test.ts @@ -1194,3 +1194,4 @@ describe("skill workshop proposals", () => { ).rejects.toThrow(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/skills/workshop/service.ts b/src/skills/workshop/service.ts index 197b61feba49..9790a44358f4 100644 --- a/src/skills/workshop/service.ts +++ b/src/skills/workshop/service.ts @@ -935,3 +935,4 @@ function normalizeRequired(value: string, label: string): string { function toPortableRelativePath(relativePath: string): string { return relativePath.split(path.sep).join("/"); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/snapshot/local-repository.test.ts b/src/snapshot/local-repository.test.ts index 55cc096ed506..9938ea619d35 100644 --- a/src/snapshot/local-repository.test.ts +++ b/src/snapshot/local-repository.test.ts @@ -1665,3 +1665,4 @@ describe("snapshot manifest parser", () => { await expect(readSnapshotManifest(snapshotDir, expectedId)).rejects.toThrow(error); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/snapshot/local-repository.ts b/src/snapshot/local-repository.ts index 3056a81fde0d..c297eb8f17b6 100644 --- a/src/snapshot/local-repository.ts +++ b/src/snapshot/local-repository.ts @@ -1477,3 +1477,4 @@ async function removePublishedSnapshotDirectoryIfOwned( await fs.rmdir(directoryPath); return true; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/state/openclaw-agent-db.test.ts b/src/state/openclaw-agent-db.test.ts index af6b07b427da..aa4ad62ef30f 100644 --- a/src/state/openclaw-agent-db.test.ts +++ b/src/state/openclaw-agent-db.test.ts @@ -1862,3 +1862,4 @@ describe("openclaw agent database", () => { expect(walBytesAfterExit).toBe(0); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/state/openclaw-agent-db.ts b/src/state/openclaw-agent-db.ts index 35e747c3ce33..8107401a83a0 100644 --- a/src/state/openclaw-agent-db.ts +++ b/src/state/openclaw-agent-db.ts @@ -1095,3 +1095,4 @@ export function closeOpenClawAgentDatabases(): void { /** Test alias for closing cached agent database handles from teardown code. */ export const closeOpenClawAgentDatabasesForTest = closeOpenClawAgentDatabases; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/state/openclaw-state-db.test.ts b/src/state/openclaw-state-db.test.ts index 71677b16a41d..b156580d7a1a 100644 --- a/src/state/openclaw-state-db.test.ts +++ b/src/state/openclaw-state-db.test.ts @@ -2871,3 +2871,4 @@ describe("openclaw state database", () => { ).not.toThrow(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/state/openclaw-state-db.ts b/src/state/openclaw-state-db.ts index 73e6618482f3..573c459edee3 100644 --- a/src/state/openclaw-state-db.ts +++ b/src/state/openclaw-state-db.ts @@ -1669,3 +1669,4 @@ export function isOpenClawStateDatabaseOpen(): boolean { /** Test alias for closing shared state handles from teardown code. */ export const closeOpenClawStateDatabaseForTest = closeOpenClawStateDatabase; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/status/status-message.ts b/src/status/status-message.ts index cd78edef38ef..0959dd58614f 100644 --- a/src/status/status-message.ts +++ b/src/status/status-message.ts @@ -1158,3 +1158,4 @@ export function buildStatusMessage(args: StatusArgs): string { .filter((line): line is string => Boolean(line)) .join("\n"); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/tasks/task-executor.test.ts b/src/tasks/task-executor.test.ts index 7547a1c820fc..c245b4e49db1 100644 --- a/src/tasks/task-executor.test.ts +++ b/src/tasks/task-executor.test.ts @@ -1131,3 +1131,4 @@ describe("task-executor", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/tasks/task-flow-registry.ts b/src/tasks/task-flow-registry.ts index 324ca280d0e7..575e934bc360 100644 --- a/src/tasks/task-flow-registry.ts +++ b/src/tasks/task-flow-registry.ts @@ -821,3 +821,4 @@ export function resetTaskFlowRegistryForTests(opts?: { persist?: boolean }) { } getTaskFlowRegistryStore().close?.(); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/tasks/task-registry.maintenance.ts b/src/tasks/task-registry.maintenance.ts index 7f1c4e2690be..c23a67c5ee3b 100644 --- a/src/tasks/task-registry.maintenance.ts +++ b/src/tasks/task-registry.maintenance.ts @@ -1158,3 +1158,4 @@ export function configureTaskRegistryMaintenance(options?: { configuredRuntimeAuthoritative = options.runtimeAuthoritative; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/tasks/task-registry.store.test.ts b/src/tasks/task-registry.store.test.ts index 3d7714dd1e03..cf1af86fa924 100644 --- a/src/tasks/task-registry.store.test.ts +++ b/src/tasks/task-registry.store.test.ts @@ -1467,3 +1467,4 @@ describe("task-registry store runtime", () => { expect(deleteDeliveryState).not.toHaveBeenCalled(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/tasks/task-registry.test.ts b/src/tasks/task-registry.test.ts index b3b3549c2fda..81fade65067e 100644 --- a/src/tasks/task-registry.test.ts +++ b/src/tasks/task-registry.test.ts @@ -5495,3 +5495,4 @@ describe("task-registry", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/tasks/task-registry.ts b/src/tasks/task-registry.ts index 70696a6ede97..4b62b0ea6c32 100644 --- a/src/tasks/task-registry.ts +++ b/src/tasks/task-registry.ts @@ -2781,3 +2781,4 @@ export function setTaskRegistryControlRuntimeForTests(runtime: TaskRegistryContr ] = runtime; controlRuntimeLoader.clear(); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/trajectory/export.test.ts b/src/trajectory/export.test.ts index 8174492bcd2d..07074c620e5a 100644 --- a/src/trajectory/export.test.ts +++ b/src/trajectory/export.test.ts @@ -1683,3 +1683,4 @@ describe("exportTrajectoryBundle", () => { expect(eventTypes(bundle.events)).toEqual(["user.message", "assistant.message"]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/trajectory/export.ts b/src/trajectory/export.ts index 2d9aba273c81..8d0935940cf0 100644 --- a/src/trajectory/export.ts +++ b/src/trajectory/export.ts @@ -1216,3 +1216,4 @@ export async function exportTrajectoryBundle(params: BuildTrajectoryBundleParams supplementalFiles, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/tui/embedded-backend.test.ts b/src/tui/embedded-backend.test.ts index d2b4c99583e8..4e9b4076af67 100644 --- a/src/tui/embedded-backend.test.ts +++ b/src/tui/embedded-backend.test.ts @@ -2520,3 +2520,4 @@ describe("EmbeddedTuiBackend", () => { expect(defaultRuntime.error).toBe(originalRuntimeError); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/tui/embedded-backend.ts b/src/tui/embedded-backend.ts index b0a16dbddbb0..e64fe1eabe71 100644 --- a/src/tui/embedded-backend.ts +++ b/src/tui/embedded-backend.ts @@ -1329,3 +1329,4 @@ export class EmbeddedTuiBackend implements TuiBackend { } } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/tui/tui-command-handlers.test.ts b/src/tui/tui-command-handlers.test.ts index 7814a132da8a..77479f4af5bd 100644 --- a/src/tui/tui-command-handlers.test.ts +++ b/src/tui/tui-command-handlers.test.ts @@ -1848,3 +1848,4 @@ describe("tui command handlers", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/tui/tui-command-handlers.ts b/src/tui/tui-command-handlers.ts index f14f8e47b21d..459aa5885afc 100644 --- a/src/tui/tui-command-handlers.ts +++ b/src/tui/tui-command-handlers.ts @@ -967,3 +967,4 @@ export function createCommandHandlers(context: CommandHandlerContext) { setAgent, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/tui/tui-event-handlers.test.ts b/src/tui/tui-event-handlers.test.ts index 4f27654ffecf..93b64b95a5f0 100644 --- a/src/tui/tui-event-handlers.test.ts +++ b/src/tui/tui-event-handlers.test.ts @@ -2730,3 +2730,4 @@ describe("tui-event-handlers: streaming watchdog", () => { handlers.dispose?.(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/tui/tui-event-handlers.ts b/src/tui/tui-event-handlers.ts index 69643b7e1f8c..73567203c11a 100644 --- a/src/tui/tui-event-handlers.ts +++ b/src/tui/tui-event-handlers.ts @@ -1205,3 +1205,4 @@ export function createEventHandlers(context: EventHandlerContext) { dispose, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/tui/tui-pty-local.e2e.test.ts b/src/tui/tui-pty-local.e2e.test.ts index bda3483be5db..3d1a29e74af4 100644 --- a/src/tui/tui-pty-local.e2e.test.ts +++ b/src/tui/tui-pty-local.e2e.test.ts @@ -1311,3 +1311,4 @@ describe("TUI PTY real backends", () => { registerValidationLoopTest("gateway"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/tui/tui-session-actions.test.ts b/src/tui/tui-session-actions.test.ts index 985b7bd43c45..da7e48a2f323 100644 --- a/src/tui/tui-session-actions.test.ts +++ b/src/tui/tui-session-actions.test.ts @@ -1482,3 +1482,4 @@ describe("tui session actions", () => { expect(state.currentSessionId).toBe("session-work-global"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/tui/tui.ts b/src/tui/tui.ts index 77db8ede28ef..dc13b9a138da 100644 --- a/src/tui/tui.ts +++ b/src/tui/tui.ts @@ -1728,3 +1728,4 @@ export async function runTui(opts: RunTuiOptions): Promise { } return exitResult; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/video-generation/runtime.test.ts b/src/video-generation/runtime.test.ts index 8bfb7d63fd7f..733917101005 100644 --- a/src/video-generation/runtime.test.ts +++ b/src/video-generation/runtime.test.ts @@ -1168,3 +1168,4 @@ describe("video-generation runtime", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/web-search/runtime.test.ts b/src/web-search/runtime.test.ts index d368dcbf887a..3564c5b1f59b 100644 --- a/src/web-search/runtime.test.ts +++ b/src/web-search/runtime.test.ts @@ -1247,3 +1247,4 @@ describe("web search runtime", () => { ).rejects.toThrow("web_search is enabled but no provider is currently available."); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/wizard/clack-navigation-prompts.ts b/src/wizard/clack-navigation-prompts.ts index bcff169ef97a..ed6a769da9c4 100644 --- a/src/wizard/clack-navigation-prompts.ts +++ b/src/wizard/clack-navigation-prompts.ts @@ -796,3 +796,4 @@ export function confirmWithNavigationFooter( }, }).prompt() as Promise; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/wizard/setup.finalize.test.ts b/src/wizard/setup.finalize.test.ts index 6904702babb2..1f922ab8f12e 100644 --- a/src/wizard/setup.finalize.test.ts +++ b/src/wizard/setup.finalize.test.ts @@ -1732,3 +1732,4 @@ describe("finalizeSetupWizard", () => { expect(note.mock.calls.filter((call) => call[1] === "Codex native search")).toEqual([]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/wizard/setup.finalize.ts b/src/wizard/setup.finalize.ts index 3862777b393d..d7862ca26bfb 100644 --- a/src/wizard/setup.finalize.ts +++ b/src/wizard/setup.finalize.ts @@ -921,3 +921,4 @@ export async function finalizeSetupWizard( } } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/wizard/setup.test.ts b/src/wizard/setup.test.ts index bd7cd9c5c755..ffddad7efe85 100644 --- a/src/wizard/setup.test.ts +++ b/src/wizard/setup.test.ts @@ -1828,3 +1828,4 @@ describe("runSetupWizard", () => { expect(verifySetupInference).toHaveBeenCalledTimes(2); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/src/worker/worker.runtime.test.ts b/src/worker/worker.runtime.test.ts index 6ca2737ff8ef..639c3c8f6457 100644 --- a/src/worker/worker.runtime.test.ts +++ b/src/worker/worker.runtime.test.ts @@ -1296,3 +1296,4 @@ describe("worker reconnect clients", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/test/scripts/changed-lanes.test.ts b/test/scripts/changed-lanes.test.ts index 454b77cec675..e4e66d79a097 100644 --- a/test/scripts/changed-lanes.test.ts +++ b/test/scripts/changed-lanes.test.ts @@ -1429,6 +1429,7 @@ describe("scripts/changed-lanes", () => { }); expect(plan.commands.map((command) => command.name)).toEqual([ "conflict markers", + "max-lines suppression ratchet", "changelog attributions", "guarded extension wildcard re-exports", "plugin-sdk wildcard re-exports", @@ -2233,17 +2234,17 @@ describe("scripts/changed-lanes", () => { }); }); - it("adds the changed-file LOC ratchet with worktree and staged scopes", () => { + it("adds the max-lines suppression ratchet with worktree and staged bases", () => { const result = detectChangedLanes(["src/runtime.ts"]); const worktreePlan = createChangedCheckPlan(result, { base: "main", head: "feature" }); const stagedPlan = createChangedCheckPlan(result, { staged: true }); expect( - worktreePlan.commands.find((command) => command.name === "TypeScript LOC ratchet"), - ).toMatchObject({ args: ["check:loc", "--base", "main", "--", "src/runtime.ts"] }); + worktreePlan.commands.find((command) => command.name === "max-lines suppression ratchet"), + ).toMatchObject({ args: ["check:max-lines-ratchet", "--base", "main"] }); expect( - stagedPlan.commands.find((command) => command.name === "TypeScript LOC ratchet"), - ).toMatchObject({ args: ["check:loc", "--staged", "--", "src/runtime.ts"] }); + stagedPlan.commands.find((command) => command.name === "max-lines suppression ratchet"), + ).toMatchObject({ args: ["check:max-lines-ratchet", "--staged", "--base", "HEAD"] }); }); it("keeps the temp creation report out of non-test changed paths", () => { diff --git a/test/scripts/check-max-lines-ratchet.test.ts b/test/scripts/check-max-lines-ratchet.test.ts new file mode 100644 index 000000000000..9b9ff7f2a19d --- /dev/null +++ b/test/scripts/check-max-lines-ratchet.test.ts @@ -0,0 +1,300 @@ +import { execFileSync } from "node:child_process"; +import fs from "node:fs"; +import os from "node:os"; +import path from "node:path"; +import { afterEach, describe, expect, it, vi } from "vitest"; +import { + collectCurrentSuppressions, + diffBaseline, + findBaselineExpansion, + hasAllRuleDisable, + hasMaxLinesDisable, + isGovernedSourcePath, + main, + parseBaseline, +} from "../../scripts/check-max-lines-ratchet.mjs"; + +const tempDirs: string[] = []; +const nestedGitEnvKeys = [ + "GIT_ALTERNATE_OBJECT_DIRECTORIES", + "GIT_COMMON_DIR", + "GIT_CONFIG", + "GIT_CONFIG_COUNT", + "GIT_CONFIG_PARAMETERS", + "GIT_DIR", + "GIT_GRAFT_FILE", + "GIT_IMPLICIT_WORK_TREE", + "GIT_INDEX_FILE", + "GIT_NAMESPACE", + "GIT_NO_REPLACE_OBJECTS", + "GIT_OBJECT_DIRECTORY", + "GIT_PREFIX", + "GIT_QUARANTINE_PATH", + "GIT_REPLACE_REF_BASE", + "GIT_SHALLOW_FILE", + "GIT_WORK_TREE", +] as const; + +function git(cwd: string, args: string[]): void { + const env: NodeJS.ProcessEnv = { + ...process.env, + GIT_CONFIG_NOSYSTEM: "1", + GIT_TERMINAL_PROMPT: "0", + }; + for (const key of nestedGitEnvKeys) { + delete env[key]; + } + execFileSync("git", args, { cwd, env, stdio: "ignore" }); +} + +afterEach(() => { + vi.restoreAllMocks(); + for (const dir of tempDirs.splice(0)) { + fs.rmSync(dir, { force: true, recursive: true }); + } +}); + +describe("check-max-lines-ratchet", () => { + it("recognizes suppressions without matching reason prose", () => { + expect(hasMaxLinesDisable("/* oxlint-disable max-lines -- TODO: split. */\n")).toBe(true); + expect(hasMaxLinesDisable("// eslint-disable-next-line no-console, max-lines\n")).toBe(true); + expect(hasMaxLinesDisable("/* oxlint-disable */\n")).toBe(false); + expect(hasMaxLinesDisable("// oxlint-disable-line -- all rules\n")).toBe(false); + expect(hasMaxLinesDisable("/* oxlint-disable max-lines - TODO: split. */\n")).toBe(true); + expect(hasMaxLinesDisable("/* oxlint-disable max-lines--temporary */\n")).toBe(true); + expect(hasMaxLinesDisable("/* oxlint-disable - all rules */\n")).toBe(false); + expect(hasMaxLinesDisable("/* oxlint-disable eslint/max-lines */\n")).toBe(true); + expect(hasMaxLinesDisable("/* oxlint-disable\nmax-lines\n-- TODO: split. */\n")).toBe(true); + expect( + hasMaxLinesDisable( + "export const value = 1;\n/* oxlint-disable max-lines -- TODO: split. */\n", + ), + ).toBe(true); + expect( + hasMaxLinesDisable("if (true) {\n const value = 1;\n /* oxlint-disable max-lines */\n}\n"), + ).toBe(true); + expect(hasMaxLinesDisable("/* oxlint-disable no-console -- mentions max-lines */\n")).toBe( + false, + ); + expect(hasMaxLinesDisable("// Example: oxlint-disable max-lines\n")).toBe(false); + expect(hasMaxLinesDisable('const example = "/* oxlint-disable max-lines */";\n')).toBe(false); + expect(hasAllRuleDisable("/* oxlint-disable */\n")).toBe(true); + expect(hasAllRuleDisable("// oxlint-disable-line -- all rules\n")).toBe(true); + expect(hasAllRuleDisable("/* oxlint-disable max-lines */\n")).toBe(false); + }); + + it("limits source roots and excludes generated output", () => { + expect(isGovernedSourcePath("src/runtime.ts")).toBe(true); + expect(isGovernedSourcePath("extensions/demo/index.mjs")).toBe(true); + expect(isGovernedSourcePath("scripts/tool.mjs")).toBe(false); + expect(isGovernedSourcePath("packages/api/protocol-gen/types.ts")).toBe(false); + expect(isGovernedSourcePath("ui/src/i18n/locales/en.ts")).toBe(false); + expect(isGovernedSourcePath("src/wizard/i18n/locales/en.ts")).toBe(false); + expect(isGovernedSourcePath("src/schema.generated.ts")).toBe(false); + }); + + it("reports new suppressions, stale debt, and baseline growth", () => { + const baseline = parseBaseline("# debt\nsrc/a.ts\nsrc/b.ts\n"); + expect(diffBaseline(["src/b.ts", "src/c.ts"], baseline)).toEqual({ + added: ["src/c.ts"], + stale: ["src/a.ts"], + }); + expect(findBaselineExpansion(baseline, new Set(["src/a.ts"]))).toEqual(["src/b.ts"]); + }); + + it("rejects baseline growth even when the new suppression is listed", () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), "openclaw-max-lines-")); + tempDirs.push(root); + fs.mkdirSync(path.join(root, "config"), { recursive: true }); + fs.mkdirSync(path.join(root, "src"), { recursive: true }); + fs.writeFileSync(path.join(root, "config/max-lines-baseline.txt"), "src/a.ts\n"); + fs.writeFileSync( + path.join(root, "src/a.ts"), + "/* oxlint-disable max-lines -- TODO: split. */\n", + ); + for (const args of [ + ["init"], + ["config", "user.email", "test@example.com"], + ["config", "user.name", "Test"], + ["add", "."], + ["commit", "-m", "base"], + ]) { + git(root, args); + } + + fs.writeFileSync(path.join(root, "config/max-lines-baseline.txt"), "src/a.ts\nsrc/b.ts\n"); + fs.writeFileSync( + path.join(root, "src/b.ts"), + "/* oxlint-disable max-lines -- TODO: split. */\n", + ); + git(root, ["add", "."]); + vi.spyOn(console, "error").mockImplementation(() => {}); + + expect(main(root, ["--base", "HEAD"])).toBe(1); + }); + + it("rejects replacing an explicit max-lines suppression with an all-rule disable", () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), "openclaw-max-lines-all-rule-")); + tempDirs.push(root); + fs.mkdirSync(path.join(root, "config"), { recursive: true }); + fs.mkdirSync(path.join(root, "src"), { recursive: true }); + fs.writeFileSync(path.join(root, "config/max-lines-baseline.txt"), "src/a.ts\n"); + fs.writeFileSync(path.join(root, "src/a.ts"), "/* oxlint-disable max-lines */\n"); + for (const args of [ + ["init"], + ["config", "user.email", "test@example.com"], + ["config", "user.name", "Test"], + ["add", "."], + ["commit", "-m", "base"], + ]) { + git(root, args); + } + + fs.writeFileSync(path.join(root, "src/a.ts"), "/* oxlint-disable */\n"); + vi.spyOn(console, "error").mockImplementation(() => {}); + + expect(main(root, ["--base", "HEAD"])).toBe(1); + }); + + it("rejects a new all-rule disable without baseline growth", () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), "openclaw-max-lines-all-rule-new-")); + tempDirs.push(root); + fs.mkdirSync(path.join(root, "config"), { recursive: true }); + fs.mkdirSync(path.join(root, "src"), { recursive: true }); + fs.writeFileSync(path.join(root, "config/max-lines-baseline.txt"), ""); + fs.writeFileSync(path.join(root, "src/a.ts"), "export const a = 1;\n"); + for (const args of [ + ["init"], + ["config", "user.email", "test@example.com"], + ["config", "user.name", "Test"], + ["add", "."], + ["commit", "-m", "base"], + ]) { + git(root, args); + } + + fs.writeFileSync(path.join(root, "src/a.ts"), "/* oxlint-disable */\n"); + vi.spyOn(console, "error").mockImplementation(() => {}); + + expect(main(root, ["--base", "HEAD"])).toBe(1); + }); + + it("transfers grandfathered debt across a verified rename", () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), "openclaw-max-lines-rename-")); + tempDirs.push(root); + fs.mkdirSync(path.join(root, "config"), { recursive: true }); + fs.mkdirSync(path.join(root, "src"), { recursive: true }); + fs.writeFileSync(path.join(root, "config/max-lines-baseline.txt"), "src/a.ts\n"); + fs.writeFileSync( + path.join(root, "src/a.ts"), + "export const a = 1;\n/* oxlint-disable max-lines -- TODO: split. */\n", + ); + for (const args of [ + ["init"], + ["config", "user.email", "test@example.com"], + ["config", "user.name", "Test"], + ["add", "."], + ["commit", "-m", "base"], + ]) { + git(root, args); + } + git(root, ["update-ref", "refs/remotes/origin/main", "HEAD"]); + + git(root, ["mv", "src/a.ts", "src/b.ts"]); + fs.writeFileSync(path.join(root, "config/max-lines-baseline.txt"), "src/b.ts\n"); + + expect(main(root)).toBe(0); + }); + + it("defaults worktree comparisons to origin/main", () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), "openclaw-max-lines-default-base-")); + tempDirs.push(root); + fs.mkdirSync(path.join(root, "config"), { recursive: true }); + fs.mkdirSync(path.join(root, "src"), { recursive: true }); + fs.writeFileSync(path.join(root, "config/max-lines-baseline.txt"), "src/a.ts\n"); + fs.writeFileSync(path.join(root, "src/a.ts"), "/* oxlint-disable max-lines */\n"); + for (const args of [ + ["init"], + ["config", "user.email", "test@example.com"], + ["config", "user.name", "Test"], + ["add", "."], + ["commit", "-m", "base"], + ]) { + git(root, args); + } + git(root, ["update-ref", "refs/remotes/origin/main", "HEAD"]); + + fs.writeFileSync(path.join(root, "config/max-lines-baseline.txt"), "src/a.ts\nsrc/b.ts\n"); + fs.writeFileSync(path.join(root, "src/b.ts"), "/* oxlint-disable max-lines */\n"); + git(root, ["add", "."]); + git(root, ["commit", "-m", "grow baseline"]); + vi.spyOn(console, "error").mockImplementation(() => {}); + + expect(main(root)).toBe(1); + }); + + it("checks staged content instead of unstaged worktree edits", () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), "openclaw-max-lines-staged-")); + tempDirs.push(root); + fs.mkdirSync(path.join(root, "config"), { recursive: true }); + fs.mkdirSync(path.join(root, "src"), { recursive: true }); + fs.writeFileSync(path.join(root, "config/max-lines-baseline.txt"), ""); + fs.writeFileSync(path.join(root, "src/a.ts"), "export const a = 1;\n"); + for (const args of [ + ["init"], + ["config", "user.email", "test@example.com"], + ["config", "user.name", "Test"], + ["add", "."], + ["commit", "-m", "base"], + ]) { + git(root, args); + } + + fs.writeFileSync(path.join(root, "config/max-lines-baseline.txt"), "src/a.ts\n"); + fs.writeFileSync(path.join(root, "src/a.ts"), "/* oxlint-disable */\n"); + git(root, ["add", "."]); + fs.writeFileSync(path.join(root, "config/max-lines-baseline.txt"), ""); + fs.writeFileSync(path.join(root, "src/a.ts"), "export const a = 1;\n"); + vi.spyOn(console, "error").mockImplementation(() => {}); + + expect(main(root, ["--staged", "--base", "HEAD"])).toBe(1); + }); + + it.skipIf(process.platform === "win32")("keeps staged filenames NUL-framed", () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), "openclaw-max-lines-nul-")); + tempDirs.push(root); + fs.mkdirSync(path.join(root, "src"), { recursive: true }); + git(root, ["init"]); + const filePath = "src/newline\nname.ts"; + fs.writeFileSync(path.join(root, filePath), "/* oxlint-disable max-lines */\n"); + git(root, ["add", "."]); + + expect(collectCurrentSuppressions(root, { staged: true })).toEqual([filePath]); + }); + + it("checks untracked sources and tolerates unstaged deletions", () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), "openclaw-max-lines-worktree-")); + tempDirs.push(root); + fs.mkdirSync(path.join(root, "config"), { recursive: true }); + fs.mkdirSync(path.join(root, "src"), { recursive: true }); + fs.writeFileSync(path.join(root, "config/max-lines-baseline.txt"), ""); + fs.writeFileSync(path.join(root, "src/deleted.ts"), "export const deleted = true;\n"); + for (const args of [ + ["init"], + ["config", "user.email", "test@example.com"], + ["config", "user.name", "Test"], + ["add", "."], + ["commit", "-m", "base"], + ]) { + git(root, args); + } + git(root, ["update-ref", "refs/remotes/origin/main", "HEAD"]); + fs.rmSync(path.join(root, "src/deleted.ts")); + expect(main(root)).toBe(0); + + fs.writeFileSync(path.join(root, "src/untracked.ts"), "/* oxlint-disable max-lines */\n"); + vi.spyOn(console, "error").mockImplementation(() => {}); + + expect(main(root)).toBe(1); + }); +}); diff --git a/test/scripts/check-ts-max-loc.test.ts b/test/scripts/check-ts-max-loc.test.ts deleted file mode 100644 index 8985b6f6ba1c..000000000000 --- a/test/scripts/check-ts-max-loc.test.ts +++ /dev/null @@ -1,279 +0,0 @@ -import { execFileSync } from "node:child_process"; -import { copyFileSync, mkdirSync, writeFileSync } from "node:fs"; -import path from "node:path"; -import { afterEach, describe, expect, it } from "vitest"; -import { - collectChangedFileLocs, - countPhysicalLines, - findLocRatchetViolations, - isProductionTypeScriptFile, - parseArgs, - parseNameStatusZ, -} from "../../scripts/check-ts-max-loc.js"; -import { cleanupTempDirs, makeTempRepoRoot } from "../helpers/temp-repo.js"; - -const tempDirs: string[] = []; - -function nestedGitEnv(): NodeJS.ProcessEnv { - const env: NodeJS.ProcessEnv = { - ...process.env, - GIT_CONFIG_NOSYSTEM: "1", - GIT_TERMINAL_PROMPT: "0", - }; - for (const key of [ - "GIT_ALTERNATE_OBJECT_DIRECTORIES", - "GIT_DIR", - "GIT_INDEX_FILE", - "GIT_OBJECT_DIRECTORY", - "GIT_QUARANTINE_PATH", - "GIT_WORK_TREE", - ]) { - delete env[key]; - } - return env; -} - -function git(cwd: string, args: string[]): string { - return execFileSync("git", args, { cwd, encoding: "utf8", env: nestedGitEnv() }).trim(); -} - -function writeLines(cwd: string, filePath: string, lines: number): void { - const absolutePath = path.join(cwd, filePath); - mkdirSync(path.dirname(absolutePath), { recursive: true }); - writeFileSync( - absolutePath, - Array.from({ length: lines }, (_, index) => `// line ${index + 1}`).join("\n") + "\n", - "utf8", - ); -} - -function createRepo(files: Record): string { - const cwd = makeTempRepoRoot(tempDirs, "openclaw-loc-ratchet-"); - git(cwd, ["init", "-q", "--initial-branch=main"]); - for (const [filePath, lines] of Object.entries(files)) { - writeLines(cwd, filePath, lines); - } - git(cwd, ["add", "."]); - git(cwd, [ - "-c", - "user.email=test@example.com", - "-c", - "user.name=Test User", - "commit", - "-q", - "-m", - "initial", - ]); - return cwd; -} - -afterEach(() => cleanupTempDirs(tempDirs)); - -describe("scripts/check-ts-max-loc", () => { - it("parses comparison modes and rejects ambiguous staged refs", () => { - expect(parseArgs(["--base", "main", "--head", "feature", "--", "src/a.ts"])).toEqual({ - base: "main", - head: "feature", - maxLines: 500, - paths: ["src/a.ts"], - staged: false, - }); - expect(parseArgs(["--staged", "--max", "700"])).toMatchObject({ - maxLines: 700, - staged: true, - }); - expect(() => parseArgs(["--staged", "--base", "HEAD"])).toThrow("--staged cannot be combined"); - expect(() => parseArgs(["--max", "0"])).toThrow("--max requires a positive integer"); - }); - - it("counts physical lines and excludes test and generated locale files", () => { - expect(countPhysicalLines("")).toBe(0); - expect(countPhysicalLines("one\n")).toBe(1); - expect(countPhysicalLines("one\ntwo")).toBe(2); - expect(isProductionTypeScriptFile("src/runtime.ts")).toBe(true); - expect(isProductionTypeScriptFile("src/runtime.test.ts")).toBe(false); - expect(isProductionTypeScriptFile("test/helpers/runtime.ts")).toBe(false); - expect(isProductionTypeScriptFile("src/test-utils/command-runner.ts")).toBe(false); - expect(isProductionTypeScriptFile("src/gateway/test-helpers.e2e.ts")).toBe(false); - expect(isProductionTypeScriptFile("test-fixtures/runtime.ts")).toBe(false); - expect(isProductionTypeScriptFile("src/plugins/runtime.test-fixtures.ts")).toBe(false); - expect(isProductionTypeScriptFile("src/agents/model.e2e-harness.ts")).toBe(false); - expect(isProductionTypeScriptFile("extensions/qa-lab/src/auth-profile.fixture.ts")).toBe(false); - expect(isProductionTypeScriptFile("extensions/browser/src/session.mock.ts")).toBe(false); - expect(isProductionTypeScriptFile("src/commands/agent-command.test-mocks.ts")).toBe(false); - expect(isProductionTypeScriptFile("src/commands/channels.mock-harness.ts")).toBe(false); - expect(isProductionTypeScriptFile("src/commands/doctor.fast-path-mocks.ts")).toBe(false); - expect(isProductionTypeScriptFile("src/cli/test-runtime-mock.ts")).toBe(false); - expect(isProductionTypeScriptFile("test-harness/runtime.ts")).toBe(false); - expect(isProductionTypeScriptFile("src/acme-test-support/runner.ts")).toBe(false); - expect(isProductionTypeScriptFile("src/test-helper-runtime.ts")).toBe(false); - expect(isProductionTypeScriptFile("src/state/openclaw-state-schema.generated.ts")).toBe(false); - expect(isProductionTypeScriptFile("src/state/openclaw-state-db.generated.d.ts")).toBe(false); - expect(isProductionTypeScriptFile("src/generated/runtime.ts")).toBe(false); - expect(isProductionTypeScriptFile("src/regenerated-runtime.ts")).toBe(true); - expect(isProductionTypeScriptFile("extensions/voice-call/src/providers/mock.ts")).toBe(true); - expect(isProductionTypeScriptFile("scripts/control-ui-mock-dev.ts")).toBe(true); - expect(isProductionTypeScriptFile("src/fixture-loader.ts")).toBe(true); - expect(isProductionTypeScriptFile("src/test-supportability.ts")).toBe(true); - expect(isProductionTypeScriptFile("ui/src/i18n/locales/en.ts")).toBe(false); - }); - - it("parses NUL-delimited renames and copies without path ambiguity", () => { - expect( - parseNameStatusZ("M\0src/a.ts\0R100\0src/old.ts\0src/new.ts\0C100\0src/a.ts\0src/copy.ts\0"), - ).toEqual([ - { path: "src/a.ts", status: "M" }, - { path: "src/new.ts", previousPath: "src/old.ts", status: "R" }, - { path: "src/copy.ts", previousPath: "src/a.ts", status: "C" }, - ]); - }); - - it("rejects new oversized files and path-scopes the worktree check", async () => { - const cwd = createRepo({ "src/existing.ts": 10 }); - writeLines(cwd, "src/too-large.ts", 501); - writeLines(cwd, "src/ignored.ts", 600); - - const results = await collectChangedFileLocs({ - base: "HEAD", - cwd, - paths: ["src/too-large.ts"], - }); - - expect(results).toEqual([{ path: "src/too-large.ts", status: "A", lines: 501 }]); - expect(findLocRatchetViolations(results)).toEqual([ - { path: "src/too-large.ts", status: "A", lines: 501, reason: "new-file" }, - ]); - }); - - it("allows legacy files to hold or shrink but rejects growth and limit crossings", async () => { - const cwd = createRepo({ "src/legacy.ts": 600, "src/small.ts": 500 }); - writeLines(cwd, "src/legacy.ts", 601); - writeLines(cwd, "src/small.ts", 501); - - const results = await collectChangedFileLocs({ base: "HEAD", cwd }); - expect(findLocRatchetViolations(results)).toEqual([ - { - baseLines: 600, - lines: 601, - path: "src/legacy.ts", - reason: "grew", - status: "M", - }, - { - baseLines: 500, - lines: 501, - path: "src/small.ts", - reason: "crossed-limit", - status: "M", - }, - ]); - - writeLines(cwd, "src/legacy.ts", 599); - writeLines(cwd, "src/small.ts", 500); - expect(findLocRatchetViolations(await collectChangedFileLocs({ base: "HEAD", cwd }))).toEqual( - [], - ); - }); - - it("inherits production rename size but treats an untracked copy as new", async () => { - const cwd = createRepo({ "src/legacy.ts": 600 }); - git(cwd, ["mv", "src/legacy.ts", "src/renamed.ts"]); - copyFileSync(path.join(cwd, "src/renamed.ts"), path.join(cwd, "src/copied.ts")); - - const results = await collectChangedFileLocs({ base: "HEAD", cwd }); - expect(results).toEqual([ - { lines: 600, path: "src/copied.ts", status: "A" }, - { - baseLines: 600, - lines: 600, - path: "src/renamed.ts", - previousPath: "src/legacy.ts", - status: "R", - }, - ]); - expect(findLocRatchetViolations(results)).toEqual([ - { lines: 600, path: "src/copied.ts", reason: "new-file", status: "A" }, - ]); - }); - - it("checks recreated untracked content after a staged deletion", async () => { - const cwd = createRepo({ "src/recreated.ts": 10 }); - git(cwd, ["rm", "src/recreated.ts"]); - writeLines(cwd, "src/recreated.ts", 501); - - const results = await collectChangedFileLocs({ base: "HEAD", cwd }); - expect(results).toEqual([{ baseLines: 10, lines: 501, path: "src/recreated.ts", status: "M" }]); - expect(findLocRatchetViolations(results)).toEqual([ - { - baseLines: 10, - lines: 501, - path: "src/recreated.ts", - reason: "crossed-limit", - status: "M", - }, - ]); - }); - - it("reads staged content instead of later unstaged edits", async () => { - const cwd = createRepo({ "src/existing.ts": 10 }); - writeLines(cwd, "src/staged.ts", 501); - git(cwd, ["add", "src/staged.ts"]); - writeLines(cwd, "src/staged.ts", 1); - - const results = await collectChangedFileLocs({ cwd, staged: true }); - expect(findLocRatchetViolations(results)).toEqual([ - { lines: 501, path: "src/staged.ts", reason: "new-file", status: "A" }, - ]); - }); - - it("reads an explicit head tree and ignores deleted production files", async () => { - const cwd = createRepo({ "src/deleted.ts": 10 }); - const base = git(cwd, ["rev-parse", "HEAD"]); - writeLines(cwd, "src/new.ts", 501); - git(cwd, ["add", "."]); - git(cwd, ["rm", "src/deleted.ts"]); - git(cwd, [ - "-c", - "user.email=test@example.com", - "-c", - "user.name=Test User", - "commit", - "-q", - "-m", - "change", - ]); - writeLines(cwd, "src/new.ts", 1); - - const results = await collectChangedFileLocs({ base, cwd, head: "HEAD" }); - expect(results).toEqual([{ path: "src/new.ts", status: "A", lines: 501 }]); - }); - - it("uses the exact requested base for divergent explicit head comparisons", async () => { - const cwd = createRepo({ "src/legacy.ts": 600 }); - git(cwd, ["branch", "feature"]); - writeLines(cwd, "src/legacy.ts", 400); - git(cwd, ["add", "src/legacy.ts"]); - git(cwd, [ - "-c", - "user.email=test@example.com", - "-c", - "user.name=Test User", - "commit", - "-q", - "-m", - "shrink on base", - ]); - - const results = await collectChangedFileLocs({ base: "main", cwd, head: "feature" }); - expect(results).toEqual([{ baseLines: 400, lines: 600, path: "src/legacy.ts", status: "M" }]); - expect(findLocRatchetViolations(results)).toEqual([ - { - baseLines: 400, - lines: 600, - path: "src/legacy.ts", - reason: "crossed-limit", - status: "M", - }, - ]); - }); -}); diff --git a/test/scripts/ci-workflow-guards.test.ts b/test/scripts/ci-workflow-guards.test.ts index 9d75d32ee356..75a6a80575ca 100644 --- a/test/scripts/ci-workflow-guards.test.ts +++ b/test/scripts/ci-workflow-guards.test.ts @@ -85,7 +85,6 @@ function runCiManifestFixture(options: { nodeFastPluginContracts?: boolean; nodeFastCiRouting?: boolean; runNode?: boolean; - runTsLoc?: boolean; }) { const root = mkdtempSync(path.join(tmpdir(), "openclaw-ci-manifest-")); try { @@ -134,6 +133,7 @@ function runCiManifestFixture(options: { } : {}), ...(iosBuildCapability ? { "ios:build": "true" } : {}), + "check:max-lines-ratchet": "true", } : {}; writeFileSync( @@ -236,7 +236,6 @@ function runCiManifestFixture(options: { options.nodeFastPluginContracts ?? false, ), OPENCLAW_CI_RUN_SKILLS_PYTHON: "true", - OPENCLAW_CI_RUN_TS_LOC: String(options.runTsLoc ?? true), OPENCLAW_CI_RUN_WINDOWS: "true", OPENCLAW_CI_WORKFLOW_REVISION: "b".repeat(40), }, @@ -681,18 +680,14 @@ describe("ci workflow guards", () => { default: "", type: "string", }); - expect(workflow.on.workflow_dispatch.inputs.loc_base_ref).toEqual({ - description: "Optional exact LOC comparison-base SHA for standalone manual runs", - required: false, - default: "", - type: "string", - }); - expect(workflow.on.workflow_dispatch.inputs.pr_number).toEqual({ - description: "Pull request number required by the exact-SHA release gate", + expect(workflow.on.workflow_dispatch.inputs.pull_request_number).toEqual({ + description: "Pull request number required by the exact-SHA release gate.", required: false, default: "", type: "string", }); + expect(workflow.on.workflow_dispatch.inputs).not.toHaveProperty("loc_base_ref"); + expect(workflow.on.workflow_dispatch.inputs).not.toHaveProperty("pr_number"); expect(readFileSync(".github/workflows/ci.yml", "utf8")).toContain( "run-name: ${{ github.event_name == 'workflow_dispatch' && inputs.dispatch_id != '' && format('CI {0}', inputs.dispatch_id) || (github.event_name == 'workflow_dispatch' && inputs.release_gate && format('CI release gate {0}', inputs.target_ref) || 'CI') }}", ); @@ -703,60 +698,15 @@ describe("ci workflow guards", () => { expect(validationStep.if).toBe( "github.event_name == 'workflow_dispatch' && inputs.release_gate", ); - expect(validationStep.env.PR_NUMBER).toBe("${{ inputs.pr_number }}"); expect(validationStep.run).toContain( "release_gate requires target_ref to be a full commit SHA", ); - expect(validationStep.run).toContain( - "release_gate requires pr_number to identify an open pull request", - ); + expect(validationStep.run).toContain("release_gate requires pull_request_number"); expect(validationStep.run).toContain("release_gate must run from the branch at target_ref"); - const manualLocBaseStep = preflightSteps.find( - (step: WorkflowStep) => step.name === "Validate manual LOC base input", + expect(validationStep.run).toContain( + "release_gate cannot be combined with historical_target_tag", ); - expect(manualLocBaseStep.if).toBe( - "github.event_name == 'workflow_dispatch' && inputs.loc_base_ref != ''", - ); - expect(manualLocBaseStep.run).toContain("loc_base_ref must be a full commit SHA"); - const mergeTreeStep = preflightSteps.find( - (step: WorkflowStep) => step.name === "Validate release-gate PR merge tree", - ); - expect(mergeTreeStep.id).toBe("release_gate_loc_tree"); - expect(mergeTreeStep.if).toBe( - "github.event_name == 'workflow_dispatch' && inputs.release_gate", - ); - expect(mergeTreeStep.env.PR_NUMBER).toBe("${{ inputs.pr_number }}"); - expect(mergeTreeStep.env.TARGET_REF).toBe("${{ inputs.target_ref }}"); - expect(mergeTreeStep.run).toContain( - 'gh api --method GET "repos/${GITHUB_REPOSITORY}/pulls/${PR_NUMBER}"', - ); - expect(mergeTreeStep.run).toContain(".head.sha"); - expect(mergeTreeStep.run).toContain(".base.sha"); - expect(mergeTreeStep.run).toContain('[[ "$pr_head_sha" != "$TARGET_REF" ]]'); - expect(mergeTreeStep.run).toContain("for attempt in {1..12}"); - expect(mergeTreeStep.run).toContain(".mergeable == null"); - expect(mergeTreeStep.run).toContain(".merge_commit_sha"); - expect(mergeTreeStep.run).toContain('[[ "$mergeable" == "false" ]]'); - expect(mergeTreeStep.run).toContain("sleep 2"); - expect(mergeTreeStep.run).toContain('"+refs/pull/${PR_NUMBER}/merge:${merge_ref}"'); - expect(mergeTreeStep.run).toContain('[[ "$resolved_merge_sha" != "$merge_sha"'); - expect(mergeTreeStep.run).toContain('git rev-parse "${merge_ref}^1"'); - expect(mergeTreeStep.run).toContain('git rev-parse "${merge_ref}^2"'); - expect(mergeTreeStep.run).toContain('echo "base_sha=${pr_base_sha}" >> "$GITHUB_OUTPUT"'); - expect(mergeTreeStep.run).toContain('echo "head_sha=${merge_sha}" >> "$GITHUB_OUTPUT"'); - expect(workflow.jobs.preflight.permissions["pull-requests"]).toBe("read"); - expect(workflow.jobs.preflight.outputs.loc_base_sha).toContain( - "steps.release_gate_loc_tree.outputs.base_sha", - ); - expect(workflow.jobs.preflight.outputs.loc_base_sha).toContain("inputs.loc_base_ref"); - expect(workflow.jobs.preflight.outputs.loc_head_sha).toContain( - "steps.release_gate_loc_tree.outputs.head_sha", - ); - const ciDocs = readFileSync("docs/ci.md", "utf8"); - expect(ciDocs).toContain("`pr_number`"); - expect(ciDocs).toContain("synthetic pull-request merge ref"); - expect(ciDocs).toContain("matches automatic PR CI's merged tree and policy implementation"); - expect(ciDocs).toContain("cannot provide equivalent merge-tree evidence"); + expect(workflow.jobs.preflight.permissions).toEqual({ contents: "read" }); expect(readFileSync(".github/workflows/ci.yml", "utf8")).toContain( "OPENCLAW_CI_RUN_ANDROID: ${{ github.event_name == 'workflow_dispatch' && (inputs.release_gate || inputs.include_android) && 'true' || steps.changed_scope.outputs.run_android || 'false' }}", ); @@ -2034,47 +1984,88 @@ describe("ci workflow guards", () => { expect(checkShardRun).not.toContain("check:protocol-coverage"); }); - it("runs the changed-file TypeScript LOC ratchet against the exact tested tree", () => { + it("runs the suppression-baseline max-lines ratchet against the exact tested tree", () => { const workflow = readCiWorkflow(); const checksFastSteps = workflow.jobs["checks-fast-core"].steps; - const mergeCheckout = checksFastSteps.find( - (step: WorkflowStep) => step.name === "Checkout verified release-gate LOC merge tree", - ); const checksFastRun = checksFastSteps.find( (step: WorkflowStep) => step.name === "Run ${{ matrix.task }} (${{ matrix.runtime }})", ); + const releaseGateMerge = checksFastSteps.find( + (step: WorkflowStep) => step.name === "Prepare release-gate max-lines merge tree", + ); - expect(checksFastRun.env.LOC_BASE_SHA).toContain("github.event.before"); - expect(checksFastRun.env.LOC_BASE_SHA).toContain("github.event.pull_request.base.sha"); - expect(checksFastRun.env.LOC_BASE_SHA).toContain("needs.preflight.outputs.loc_base_sha"); - expect(checksFastRun.env.LOC_BASE_SHA).not.toContain("github.event.repository.default_branch"); - expect(checksFastRun.env.LOC_EXPECTED_PR_HEAD).toContain("github.event.pull_request.head.sha"); - expect(checksFastRun.env.LOC_EXPECTED_PR_HEAD).toContain("inputs.target_ref"); - expect(mergeCheckout.if).toContain("matrix.task == 'loc-ratchet'"); - expect(mergeCheckout.if).toContain("needs.preflight.outputs.loc_head_sha != ''"); - expect(mergeCheckout.env.LOC_HEAD_SHA).toBe("${{ needs.preflight.outputs.loc_head_sha }}"); - expect(mergeCheckout.env.LOC_PR_NUMBER).toBe("${{ inputs.pr_number }}"); - expect(mergeCheckout.run).toContain( - '"+refs/pull/${LOC_PR_NUMBER}/merge:refs/remotes/origin/ci-head"', + expect(workflow.jobs["checks-fast-core"].permissions).toEqual({ + contents: "read", + "pull-requests": "read", + }); + expect(releaseGateMerge.if).toBe( + "matrix.task == 'max-lines-ratchet' && github.event_name == 'workflow_dispatch' && inputs.release_gate", ); - expect(mergeCheckout.run).toContain('[[ "$resolved_loc_head" != "$LOC_HEAD_SHA" ]]'); - expect(mergeCheckout.run).toContain("git checkout --detach refs/remotes/origin/ci-head"); - expect(checksFastSteps.indexOf(mergeCheckout)).toBeLessThan( - checksFastSteps.findIndex((step: WorkflowStep) => step.name === "Setup Node environment"), + expect(checksFastRun.run).toContain("max-lines-ratchet)"); + expect(checksFastRun.run).toContain('has_package_script "check:max-lines-ratchet"'); + expect(checksFastRun.env.RATCHET_EVENT_BASE_SHA).toBe( + "${{ github.event_name == 'push' && github.event.before || '' }}", ); - expect(checksFastRun.run).toContain('[[ "$HISTORICAL_TARGET" != "true" ]]'); - expect(checksFastRun.run).toContain("git rev-parse --verify HEAD^1"); - expect(checksFastRun.run).toContain("git rev-parse --verify HEAD^2"); + expect(checksFastRun.env.RATCHET_PR_HEAD_SHA).toBe( + "${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || '' }}", + ); + expect(checksFastRun.env.RATCHET_MANUAL_TARGET_SHA).toBe( + "${{ github.event_name == 'workflow_dispatch' && !inputs.release_gate && needs.preflight.outputs.checkout_revision || '' }}", + ); + expect(checksFastRun.env.GH_TOKEN).toBe( + "${{ matrix.task == 'max-lines-ratchet' && github.token || '' }}", + ); + expect(releaseGateMerge.run).toContain( + 'gh api --method GET "repos/${GITHUB_REPOSITORY}/pulls/${PULL_REQUEST_NUMBER}"', + ); + expect(releaseGateMerge.run).toContain( + "release-gate pull request must be open and match the target head", + ); + expect(releaseGateMerge.run).toContain("for attempt in {1..6}"); + expect(releaseGateMerge.run).toContain('if [[ "$mergeable" == "false" ]]'); + expect(releaseGateMerge.run).toContain("release-gate pull request is not mergeable"); + expect(releaseGateMerge.run).toContain("sleep 5"); + expect(releaseGateMerge.run).toContain( + '"+refs/pull/${PULL_REQUEST_NUMBER}/merge:refs/remotes/origin/ci-max-lines-merge"', + ); + expect(releaseGateMerge.run).toContain("git fetch --no-tags --depth=2 origin \\"); + expect(releaseGateMerge.run).toContain( + "release-gate merge tree did not refresh to the current pull request base and head", + ); + expect(releaseGateMerge.run).toContain('git checkout --detach "$merge_sha"'); + expect(releaseGateMerge.run).toContain( + 'echo "RATCHET_RELEASE_BASE_SHA=${base_sha}" >> "$GITHUB_ENV"', + ); + expect(releaseGateMerge.run).toContain( + 'echo "RATCHET_RELEASE_MERGE_TREE=true" >> "$GITHUB_ENV"', + ); + expect(checksFastRun.run).toContain("git fetch --no-tags --depth=1 origin \\"); + expect(checksFastRun.run).toContain('git ls-remote origin "refs/heads/${default_branch}"'); expect(checksFastRun.run).toContain( - 'git fetch --no-tags --depth=2 origin "+${loc_merge_sha}:refs/remotes/origin/ci-loc-merge"', + '"repos/${GITHUB_REPOSITORY}/compare/${default_sha}...${RATCHET_MANUAL_TARGET_SHA}"', ); - expect(checksFastRun.run).toContain('merge_head="$(git rev-parse HEAD^2)"'); - expect(checksFastRun.run).toContain('[[ "$merge_head" != "$LOC_EXPECTED_PR_HEAD" ]]'); - expect(checksFastRun.run).toContain('loc_base_ref="$(git rev-parse HEAD^1)"'); + expect(checksFastRun.run).toContain("--jq '.merge_base_commit.sha'"); expect(checksFastRun.run).toContain( - 'git fetch --no-tags --depth=1 origin "+${LOC_BASE_SHA}:${loc_base_ref}"', + '"+${merge_base_sha}:refs/remotes/origin/ci-max-lines-base"', + ); + expect(checksFastRun.run).toContain( + 'if [[ "$base_sha" == "0000000000000000000000000000000000000000" ]]', + ); + expect(checksFastRun.run).toContain( + "mapfile -t merge_parents < <(git cat-file -p HEAD | sed -n 's/^parent //p')", + ); + expect(checksFastRun.run).toContain('"${#merge_parents[@]}" != "2"'); + expect(checksFastRun.run).toContain('"${merge_parents[1]:-}" != "$RATCHET_PR_HEAD_SHA"'); + expect(checksFastRun.run).toContain('"+${merge_base}:refs/remotes/origin/ci-max-lines-base"'); + expect(checksFastRun.run).not.toContain("ci-max-lines-target^"); + expect(checksFastRun.run).toContain("unset GH_TOKEN"); + expect(checksFastRun.run).toContain('pnpm check:max-lines-ratchet --base "$base_ref"'); + expect(checksFastRun.run).toContain( + 'if [[ "${RATCHET_RELEASE_MERGE_TREE:-}" == "true" ]]; then', + ); + expect(checksFastRun.run).toContain( + "node scripts/run-oxlint.mjs src ui/src packages extensions", ); - expect(checksFastRun.run).toContain('pnpm check:loc --base "$loc_base_ref" --head HEAD'); const fastOnly = runCiManifestFixture({ bundledPlanner: true, @@ -2089,23 +2080,13 @@ describe("ci workflow guards", () => { expect( JSON.parse(expectDefined(fastOnly.outputs.checks_fast_core_matrix, "fast-only checks matrix")) .include, - ).toEqual([{ check_name: "checks-fast-loc-ratchet", runtime: "node", task: "loc-ratchet" }]); - - const nativeTypeScript = runCiManifestFixture({ - bundledPlanner: true, - eventName: "pull_request", - historicalCompatibility: false, - runNode: false, - runTsLoc: true, - }); - expect(nativeTypeScript.status, nativeTypeScript.output).toBe(0); - expect(nativeTypeScript.outputs.run_node).toBe("false"); - expect(nativeTypeScript.outputs.run_checks_fast_core).toBe("true"); - expect( - JSON.parse( - expectDefined(nativeTypeScript.outputs.checks_fast_core_matrix, "native TS checks matrix"), - ).include, - ).toEqual([{ check_name: "checks-fast-loc-ratchet", runtime: "node", task: "loc-ratchet" }]); + ).toEqual([ + { + check_name: "checks-fast-max-lines-ratchet", + runtime: "node", + task: "max-lines-ratchet", + }, + ]); }); it("uses target-owned CI plans and capabilities for older release checkouts", () => { diff --git a/test/scripts/lint-suppressions.test.ts b/test/scripts/lint-suppressions.test.ts index 470b01f1d200..bdb4220e10c1 100644 --- a/test/scripts/lint-suppressions.test.ts +++ b/test/scripts/lint-suppressions.test.ts @@ -3,6 +3,10 @@ import { spawnSync } from "node:child_process"; import fs from "node:fs"; import path from "node:path"; import { describe, expect, it } from "vitest"; +import { + collectLintDisableDirectives, + isMaxLinesRule, +} from "../../scripts/check-max-lines-ratchet.mjs"; import { expectNoReaddirSyncDuring } from "../../src/test-utils/fs-scan-assertions.js"; import { listGitTrackedFiles, toRepoRelativePath } from "../../src/test-utils/repo-files.js"; @@ -10,7 +14,6 @@ const repoRoot = path.resolve(import.meta.dirname, "../.."); const CODE_EXTENSIONS = new Set([".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"]); const IGNORED_DIRS = new Set([".cache", ".git", "build", "coverage", "dist", "node_modules"]); const ROOTS = ["src", "extensions", "scripts", "ui"] as const; -const SUPPRESSION_PATTERN = /(?:oxlint|eslint)-disable(?:-next-line)?\s+([@/\w-]+)(?:\s+--|$)/u; type SuppressionEntry = { file: string; @@ -20,6 +23,12 @@ type SuppressionEntry = { let productionLintSuppressionsCache: SuppressionEntry[] | null = null; let productionCodeFilesCache: string[] | null = null; +function collectFileSuppressions(file: string, source: string): SuppressionEntry[] { + return collectLintDisableDirectives(source, file).flatMap((rules) => + rules.filter((rule) => !isMaxLinesRule(rule)).map((rule) => ({ file, rule })), + ); +} + function isProductionCodeFile(relativePath: string): boolean { const basename = path.posix.basename(relativePath); if (!CODE_EXTENSIONS.has(path.extname(relativePath))) { @@ -89,20 +98,7 @@ function collectProductionLintSuppressions(): SuppressionEntry[] { const files = listProductionCodeFiles(); for (const relativePath of files) { const source = fs.readFileSync(path.join(repoRoot, relativePath), "utf8"); - for (const line of source.split("\n")) { - const match = line.match(SUPPRESSION_PATTERN); - if (!match) { - continue; - } - const rule = match[1]; - if (rule === undefined) { - continue; - } - entries.push({ - file: relativePath, - rule, - }); - } + entries.push(...collectFileSuppressions(relativePath, source)); } productionLintSuppressionsCache = entries; return [...entries]; @@ -111,14 +107,7 @@ function collectProductionLintSuppressions(): SuppressionEntry[] { function collectProductionLintSuppressionsFromGit(): SuppressionEntry[] | null { const result = spawnSync( "git", - [ - "grep", - "-n", - "-E", - String.raw`(oxlint|eslint)-disable(-next-line)?[[:space:]]+[@/[:alnum:]_-]+`, - "--", - ...ROOTS, - ], + ["grep", "-z", "-l", "-e", "oxlint-disable", "-e", "eslint-disable", "--", ...ROOTS], { cwd: repoRoot, encoding: "utf8", @@ -133,24 +122,13 @@ function collectProductionLintSuppressionsFromGit(): SuppressionEntry[] | null { return null; } const entries: SuppressionEntry[] = []; - for (const line of result.stdout.split("\n")) { - const match = /^([^:]+):\d+:(.*)$/u.exec(line); - if (!match) { + for (const file of result.stdout.split("\0").filter(Boolean)) { + if (!isProductionCodeFile(file) || !fs.existsSync(path.join(repoRoot, file))) { continue; } - const file = match[1]; - const sourceLine = match[2]; - if (file === undefined || sourceLine === undefined || !isProductionCodeFile(file)) { - continue; - } - const suppression = sourceLine.match(SUPPRESSION_PATTERN); - if (!suppression) { - continue; - } - const rule = suppression[1]; - if (rule !== undefined) { - entries.push({ file, rule }); - } + entries.push( + ...collectFileSuppressions(file, fs.readFileSync(path.join(repoRoot, file), "utf8")), + ); } return entries; } @@ -181,6 +159,22 @@ function filterExpectedSuppressionsForPresentFiles(entries: readonly string[]): collectProductionLintSuppressions(); describe("production lint suppressions", () => { + it("keeps companion rules visible beside max-lines suppressions", () => { + expect( + collectFileSuppressions( + "src/example.ts", + "/* oxlint-disable\nmax-lines, no-console\n-- TODO: split this file. */", + ), + ).toEqual([{ file: "src/example.ts", rule: "no-console" }]); + expect( + collectFileSuppressions( + "src/example.ts", + "/* oxlint-disable eslint/max-lines, no-debugger */", + ), + ).toEqual([{ file: "src/example.ts", rule: "no-debugger" }]); + expect(collectFileSuppressions("src/example.ts", "/* oxlint-disable - reason */")).toEqual([]); + }); + it("lists production files from git without walking source roots", () => { expectNoReaddirSyncDuring(() => { const files = listProductionCodeFiles(); @@ -203,6 +197,8 @@ describe("production lint suppressions", () => { "extensions/matrix/src/onboarding.test-harness.ts|typescript/no-unnecessary-type-parameters|1", "extensions/reef/src/transport.ts|no-useless-assignment|1", "extensions/slack/src/monitor/provider-support.ts|typescript/no-unnecessary-type-parameters|1", + "scripts/changed-lanes.mjs|typescript/no-base-to-string|2", + "scripts/changed-lanes.mjs|typescript/restrict-template-expressions|2", "src/agents/agent-bundle-mcp-runtime.ts|unicorn/prefer-add-event-listener|1", "src/audit/audit-event-writer.ts|unicorn/require-post-message-target-origin|2", "src/channels/plugins/channel-runtime-surface.types.ts|typescript/no-unnecessary-type-parameters|1", diff --git a/test/scripts/oxlint-config.test.ts b/test/scripts/oxlint-config.test.ts index caa1589898b8..3ff372602f50 100644 --- a/test/scripts/oxlint-config.test.ts +++ b/test/scripts/oxlint-config.test.ts @@ -5,7 +5,11 @@ import { describe, expect, it } from "vitest"; type OxlintConfig = { ignorePatterns?: string[]; - overrides?: Array<{ files?: string[]; rules?: Record }>; + overrides?: Array<{ + excludeFiles?: string[]; + files?: string[]; + rules?: Record; + }>; rules?: Record; }; @@ -160,10 +164,10 @@ describe("oxlint config", () => { ]); }); - it("keeps lint overrides limited to the indexed-access and test-file policies", () => { + it("preserves the indexed-access and test-file policies", () => { const config = readJson(".oxlintrc.json") as OxlintConfig; - expect(config.overrides).toEqual([ + expect(config.overrides?.slice(0, 3)).toEqual([ { files: ["extensions/browser/src/browser/routes/*.ts"], rules: { @@ -211,6 +215,27 @@ describe("oxlint config", () => { ]); }); + it("enforces scoped max-lines budgets while excluding generated output", () => { + const config = readJson(".oxlintrc.json") as OxlintConfig; + const maxLinesOverrides = (config.overrides ?? []).filter( + (override) => override.rules?.["max-lines"], + ); + + expect(maxLinesOverrides).toHaveLength(4); + expect(maxLinesOverrides.map((override) => override.rules?.["max-lines"])).toEqual([ + ["error", { max: 700, skipBlankLines: true, skipComments: true }], + ["error", { max: 700, skipBlankLines: true, skipComments: true }], + ["error", { max: 800, skipBlankLines: true, skipComments: true }], + ["error", { max: 1000, skipBlankLines: true, skipComments: true }], + ]); + for (const override of maxLinesOverrides) { + expect(override.excludeFiles).toContain("**/protocol-gen/**"); + expect(override.excludeFiles).toContain("**/*.generated.*"); + expect(override.excludeFiles).toContain("ui/src/i18n/locales/**"); + expect(override.excludeFiles).toContain("src/wizard/i18n/locales/**"); + } + }); + it("enables strict empty object type lint with named single-extends interfaces allowed", () => { const config = readJson(".oxlintrc.json") as OxlintConfig; diff --git a/test/scripts/plugin-prerelease-test-plan.test.ts b/test/scripts/plugin-prerelease-test-plan.test.ts index 5b6f4eaff5ff..578ce008627a 100644 --- a/test/scripts/plugin-prerelease-test-plan.test.ts +++ b/test/scripts/plugin-prerelease-test-plan.test.ts @@ -397,8 +397,6 @@ describe("scripts/lib/plugin-prerelease-test-plan.mjs", () => { "${{ github.event_name == 'workflow_dispatch' && 'false' || steps.changed_scope.outputs.run_node_fast_plugin_contracts || 'false' }}", OPENCLAW_CI_RUN_SKILLS_PYTHON: "${{ github.event_name == 'workflow_dispatch' && 'true' || steps.changed_scope.outputs.run_skills_python || 'false' }}", - OPENCLAW_CI_RUN_TS_LOC: - "${{ github.event_name == 'workflow_dispatch' && 'true' || steps.changed_scope.outputs.run_ts_loc || 'false' }}", OPENCLAW_CI_RUN_UI_TESTS: "${{ github.event_name == 'workflow_dispatch' && 'true' || steps.changed_scope.outputs.run_ui_tests || 'false' }}", OPENCLAW_CI_RUN_WINDOWS: diff --git a/ui/src/api/gateway.node.test.ts b/ui/src/api/gateway.node.test.ts index 1b25d0b144ff..d1b9f8d5ff3e 100644 --- a/ui/src/api/gateway.node.test.ts +++ b/ui/src/api/gateway.node.test.ts @@ -1642,3 +1642,4 @@ describe("GatewayBrowserClient", () => { vi.useRealTimers(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/api/types.ts b/ui/src/api/types.ts index 3e00c00bfcf3..d7e01d85aaae 100644 --- a/ui/src/api/types.ts +++ b/ui/src/api/types.ts @@ -880,3 +880,4 @@ export type ModelAuthStatusResult = import("../../../src/gateway/server-methods/models-auth-status.js").ModelAuthStatusResult; export type ModelsProbeResult = import("../../../packages/gateway-protocol/src/schema.js").ModelsProbeResult; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/app/app-host.ts b/ui/src/app/app-host.ts index 999a692ae9c2..2cbed4b119f8 100644 --- a/ui/src/app/app-host.ts +++ b/ui/src/app/app-host.ts @@ -1379,3 +1379,4 @@ if (!customElements.get("openclaw-app")) { if (!customElements.get("openclaw-app-shell")) { customElements.define("openclaw-app-shell", OpenClawShell); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/components/app-sidebar.test.ts b/ui/src/components/app-sidebar.test.ts index 142a21e61df0..b38c6345926d 100644 --- a/ui/src/components/app-sidebar.test.ts +++ b/ui/src/components/app-sidebar.test.ts @@ -2940,3 +2940,4 @@ describe("AppSidebar group mutation collapsed state", () => { confirmSpy.mockRestore(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/components/app-sidebar.ts b/ui/src/components/app-sidebar.ts index 11b61b4eb143..719ba8985129 100644 --- a/ui/src/components/app-sidebar.ts +++ b/ui/src/components/app-sidebar.ts @@ -3046,3 +3046,4 @@ class AppSidebar extends OpenClawLightDomContentsElement { if (!customElements.get("openclaw-app-sidebar")) { customElements.define("openclaw-app-sidebar", AppSidebar); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/components/browser/browser-panel.ts b/ui/src/components/browser/browser-panel.ts index c9a7558e7e93..31ba49acc1d5 100644 --- a/ui/src/components/browser/browser-panel.ts +++ b/ui/src/components/browser/browser-panel.ts @@ -1303,3 +1303,4 @@ declare global { "openclaw-browser-panel": OpenClawBrowserPanel; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/components/config-form.node.ts b/ui/src/components/config-form.node.ts index f81ad42afc04..f0c5c4754642 100644 --- a/ui/src/components/config-form.node.ts +++ b/ui/src/components/config-form.node.ts @@ -1160,3 +1160,4 @@ function renderMapField(params: { `; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/components/lobster-pet.ts b/ui/src/components/lobster-pet.ts index 70b2781ff0f2..fcfea3b1d531 100644 --- a/ui/src/components/lobster-pet.ts +++ b/ui/src/components/lobster-pet.ts @@ -1786,3 +1786,4 @@ class LobsterPet extends LitElement { if (!customElements.get("openclaw-lobster-pet")) { customElements.define("openclaw-lobster-pet", LobsterPet); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/components/markdown.ts b/ui/src/components/markdown.ts index 862c4b27c313..05b72e8cd760 100644 --- a/ui/src/components/markdown.ts +++ b/ui/src/components/markdown.ts @@ -1409,3 +1409,4 @@ export function toStreamingMarkdownHtml( : toStreamingTailHtml(streamingTail, renderOptions); return `${stableHtml}${tailHtml}`; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/components/terminal/terminal-panel.ts b/ui/src/components/terminal/terminal-panel.ts index bdd5c6f54da0..8301db25beee 100644 --- a/ui/src/components/terminal/terminal-panel.ts +++ b/ui/src/components/terminal/terminal-panel.ts @@ -977,3 +977,4 @@ declare global { "openclaw-terminal-panel": OpenClawTerminalPanel; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/e2e/chat-flow.e2e.test.ts b/ui/src/e2e/chat-flow.e2e.test.ts index 4dc23ef303cf..edb0c97ffdf1 100644 --- a/ui/src/e2e/chat-flow.e2e.test.ts +++ b/ui/src/e2e/chat-flow.e2e.test.ts @@ -3316,3 +3316,4 @@ describeControlUiE2e("Control UI mocked Gateway E2E", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/e2e/new-session-page.e2e.test.ts b/ui/src/e2e/new-session-page.e2e.test.ts index a51ddac7e78c..34b87ee40254 100644 --- a/ui/src/e2e/new-session-page.e2e.test.ts +++ b/ui/src/e2e/new-session-page.e2e.test.ts @@ -1948,3 +1948,4 @@ describeControlUiE2e("Control UI new-session page mocked Gateway E2E", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/e2e/session-management.e2e.test.ts b/ui/src/e2e/session-management.e2e.test.ts index 1b310cfdf691..272ca3326cce 100644 --- a/ui/src/e2e/session-management.e2e.test.ts +++ b/ui/src/e2e/session-management.e2e.test.ts @@ -1484,3 +1484,4 @@ describeControlUiE2e("Control UI session management mocked Gateway E2E", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/lib/config/index.test.ts b/ui/src/lib/config/index.test.ts index 03e588b3ef52..a09b7206e498 100644 --- a/ui/src/lib/config/index.test.ts +++ b/ui/src/lib/config/index.test.ts @@ -2137,3 +2137,5 @@ describe("agent config helpers", () => { ).toBe(1); }); }); + +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/lib/config/index.ts b/ui/src/lib/config/index.ts index cf4ba24ff662..7d046dab046b 100644 --- a/ui/src/lib/config/index.ts +++ b/ui/src/lib/config/index.ts @@ -1725,3 +1725,4 @@ export function createRuntimeConfigCapability( }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/lib/cron/index.test.ts b/ui/src/lib/cron/index.test.ts index 5cb6c7c68ae3..598ca1699fc3 100644 --- a/ui/src/lib/cron/index.test.ts +++ b/ui/src/lib/cron/index.test.ts @@ -2079,3 +2079,4 @@ describe("loadCronScopeStats", () => { ); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/lib/cron/index.ts b/ui/src/lib/cron/index.ts index 9988c79d2eb2..cc523dd0b854 100644 --- a/ui/src/lib/cron/index.ts +++ b/ui/src/lib/cron/index.ts @@ -1308,3 +1308,4 @@ export function cancelCronEdit(state: CronState) { clearCronEditState(state); resetCronFormToDefaults(state); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/lib/nodes/index.ts b/ui/src/lib/nodes/index.ts index 0b51896799c3..8661148ca7dd 100644 --- a/ui/src/lib/nodes/index.ts +++ b/ui/src/lib/nodes/index.ts @@ -890,3 +890,4 @@ export async function signDevicePayload(privateKeyBase64Url: string, payload: st const sig = await signAsync(data, key); return base64UrlEncode(sig); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/lib/sessions/index.ts b/ui/src/lib/sessions/index.ts index 429c2d4d4306..a123283b588f 100644 --- a/ui/src/lib/sessions/index.ts +++ b/ui/src/lib/sessions/index.ts @@ -1534,3 +1534,4 @@ export function createSessionCapability(gateway: SessionGateway): SessionCapabil }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/lib/skills/index.test.ts b/ui/src/lib/skills/index.test.ts index cf9efad83905..db4dbae1f453 100644 --- a/ui/src/lib/skills/index.test.ts +++ b/ui/src/lib/skills/index.test.ts @@ -1205,3 +1205,4 @@ describe("reconcileSkillsAgentId", () => { expect(state.skillOperation).toEqual({ kind: "clawhub", slug: "calendar" }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/lib/workboard/index.test.ts b/ui/src/lib/workboard/index.test.ts index d48e84f67cd4..901e5bfacfa9 100644 --- a/ui/src/lib/workboard/index.test.ts +++ b/ui/src/lib/workboard/index.test.ts @@ -6791,3 +6791,4 @@ describe("workboard controller", () => { expect(state.cards).toEqual([linked]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/agents/agents-page.ts b/ui/src/pages/agents/agents-page.ts index 1c3e9b76fdc9..d5e17247c7c4 100644 --- a/ui/src/pages/agents/agents-page.ts +++ b/ui/src/pages/agents/agents-page.ts @@ -940,3 +940,4 @@ class AgentsPage extends OpenClawLightDomElement implements AgentsState { if (!customElements.get("openclaw-agents-page")) { customElements.define("openclaw-agents-page", AgentsPage); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/agents/memory/dreaming.test.ts b/ui/src/pages/agents/memory/dreaming.test.ts index ea4b53534b1d..87a90a9797ca 100644 --- a/ui/src/pages/agents/memory/dreaming.test.ts +++ b/ui/src/pages/agents/memory/dreaming.test.ts @@ -1387,3 +1387,4 @@ describe("dreaming controller", () => { expect(state.dreamDiaryActionMessage).toBeNull(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/agents/memory/dreaming.ts b/ui/src/pages/agents/memory/dreaming.ts index a4dd8f84c641..425ba777d059 100644 --- a/ui/src/pages/agents/memory/dreaming.ts +++ b/ui/src/pages/agents/memory/dreaming.ts @@ -1272,3 +1272,4 @@ export async function updateDreamingEnabled( } return ok; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/agents/memory/view.ts b/ui/src/pages/agents/memory/view.ts index 8e25bdcb41ff..64db66b38c03 100644 --- a/ui/src/pages/agents/memory/view.ts +++ b/ui/src/pages/agents/memory/view.ts @@ -1557,3 +1557,4 @@ function renderDiarySection(props: DreamingProps) { `; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/agents/panels-tools-skills.ts b/ui/src/pages/agents/panels-tools-skills.ts index 21a3ad054744..67100c61503d 100644 --- a/ui/src/pages/agents/panels-tools-skills.ts +++ b/ui/src/pages/agents/panels-tools-skills.ts @@ -905,3 +905,4 @@ function renderAgentSkillRow( `; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/chat-command-executor.test.ts b/ui/src/pages/chat/chat-command-executor.test.ts index e0a43f732056..9ac63c03159a 100644 --- a/ui/src/pages/chat/chat-command-executor.test.ts +++ b/ui/src/pages/chat/chat-command-executor.test.ts @@ -1740,3 +1740,4 @@ describe("executeSlashCommand /redirect (hard kill-and-restart)", () => { expect(result.content).toBe("Failed to redirect: Error: connection lost"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/chat-command-executor.ts b/ui/src/pages/chat/chat-command-executor.ts index eb28e5e60904..f55b833e394e 100644 --- a/ui/src/pages/chat/chat-command-executor.ts +++ b/ui/src/pages/chat/chat-command-executor.ts @@ -788,3 +788,4 @@ async function executeRedirect( return { content: `Failed to redirect: ${String(err)}`, failed: true }; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/chat-gateway.test.ts b/ui/src/pages/chat/chat-gateway.test.ts index e6573c4854ec..b5728da77d08 100644 --- a/ui/src/pages/chat/chat-gateway.test.ts +++ b/ui/src/pages/chat/chat-gateway.test.ts @@ -3504,3 +3504,4 @@ describe("loadChatHistory retry handling", () => { expect(state.chatThinkingLevel).toBeNull(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/chat-history.ts b/ui/src/pages/chat/chat-history.ts index fbcdf82bfc93..ab8a25647ef2 100644 --- a/ui/src/pages/chat/chat-history.ts +++ b/ui/src/pages/chat/chat-history.ts @@ -1118,3 +1118,4 @@ async function loadChatHistoryUncached( } return undefined; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/chat-pane.ts b/ui/src/pages/chat/chat-pane.ts index 0d377579d52e..920313571edc 100644 --- a/ui/src/pages/chat/chat-pane.ts +++ b/ui/src/pages/chat/chat-pane.ts @@ -2116,3 +2116,4 @@ declare global { "openclaw-chat-pane": ChatPane; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/chat-responsive.browser.test.ts b/ui/src/pages/chat/chat-responsive.browser.test.ts index 83e01e32f31d..c8bb2d8e1d3b 100644 --- a/ui/src/pages/chat/chat-responsive.browser.test.ts +++ b/ui/src/pages/chat/chat-responsive.browser.test.ts @@ -2062,3 +2062,4 @@ describeBrowserLayout.concurrent("chat responsive browser layout", () => { } }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/chat-send.test.ts b/ui/src/pages/chat/chat-send.test.ts index 252c2f128d7e..9493fadf997c 100644 --- a/ui/src/pages/chat/chat-send.test.ts +++ b/ui/src/pages/chat/chat-send.test.ts @@ -7513,3 +7513,4 @@ describe("handleAbortChat", () => { expect(host.chatMessage).toBe("draft"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/chat-send.ts b/ui/src/pages/chat/chat-send.ts index f2318c46d4a4..b056c70b5b17 100644 --- a/ui/src/pages/chat/chat-send.ts +++ b/ui/src/pages/chat/chat-send.ts @@ -2477,3 +2477,4 @@ function escapeMarkdownInline(value: string): string { } export const flushChatQueueForEvent = flushChatQueue; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/chat-state.test.ts b/ui/src/pages/chat/chat-state.test.ts index b34881b63f3b..d50e25d3b11a 100644 --- a/ui/src/pages/chat/chat-state.test.ts +++ b/ui/src/pages/chat/chat-state.test.ts @@ -1345,3 +1345,4 @@ describe("refreshChatMetadata", () => { expect(SLASH_COMMANDS.some((command) => command.name === "work-command")).toBe(false); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/chat-state.ts b/ui/src/pages/chat/chat-state.ts index ca4fdbab02cf..db1e5f3204fc 100644 --- a/ui/src/pages/chat/chat-state.ts +++ b/ui/src/pages/chat/chat-state.ts @@ -1919,3 +1919,4 @@ export class ChatStateController implements Reactiv this.pendingCreatedSessionComposer = null; } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/chat-thread.test.ts b/ui/src/pages/chat/chat-thread.test.ts index 1de57fddafc2..429218bfb1a7 100644 --- a/ui/src/pages/chat/chat-thread.test.ts +++ b/ui/src/pages/chat/chat-thread.test.ts @@ -2613,3 +2613,4 @@ describe("tool turn outcome annotation (#89683)", () => { expect(tools.map((group) => group.turnSucceeded)).toEqual([true, false]); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/chat-thread.ts b/ui/src/pages/chat/chat-thread.ts index 2bb7d3537486..8640fce2ce61 100644 --- a/ui/src/pages/chat/chat-thread.ts +++ b/ui/src/pages/chat/chat-thread.ts @@ -1993,3 +1993,4 @@ function messageKey(message: unknown, index: number): string { } return `msg:${role}:${index}`; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/chat-view.test.ts b/ui/src/pages/chat/chat-view.test.ts index 9b2271946f97..483b3669b68f 100644 --- a/ui/src/pages/chat/chat-view.test.ts +++ b/ui/src/pages/chat/chat-view.test.ts @@ -5564,3 +5564,4 @@ describe("right-click Reply", () => { expect(document.querySelector(".chat-reply-context-menu")).toBeNull(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/components/chat-composer.ts b/ui/src/pages/chat/components/chat-composer.ts index 260f1f94d555..b62fa19b5ab8 100644 --- a/ui/src/pages/chat/components/chat-composer.ts +++ b/ui/src/pages/chat/components/chat-composer.ts @@ -2292,3 +2292,4 @@ export function renderChatComposer(props: ChatComposerProps) { `; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/components/chat-message.test.ts b/ui/src/pages/chat/components/chat-message.test.ts index 59ce618e451f..7345899710dd 100644 --- a/ui/src/pages/chat/components/chat-message.test.ts +++ b/ui/src/pages/chat/components/chat-message.test.ts @@ -3148,3 +3148,4 @@ describe("grouped chat rendering", () => { expect(sidebar.fullMessageRequest).toBeUndefined(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/components/chat-message.ts b/ui/src/pages/chat/components/chat-message.ts index e7a8824c64a1..638d7296ce27 100644 --- a/ui/src/pages/chat/components/chat-message.ts +++ b/ui/src/pages/chat/components/chat-message.ts @@ -2429,3 +2429,4 @@ function renderMarkdownText( `; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/components/chat-model-controls.ts b/ui/src/pages/chat/components/chat-model-controls.ts index 093859062ce2..ed4c552618f7 100644 --- a/ui/src/pages/chat/components/chat-model-controls.ts +++ b/ui/src/pages/chat/components/chat-model-controls.ts @@ -746,3 +746,4 @@ function renderChatModelReasoningSelect(params: { `; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/components/chat-session-workspace.ts b/ui/src/pages/chat/components/chat-session-workspace.ts index 040d944525eb..28b4ff95c660 100644 --- a/ui/src/pages/chat/components/chat-session-workspace.ts +++ b/ui/src/pages/chat/components/chat-session-workspace.ts @@ -1270,3 +1270,4 @@ export function renderSessionWorkspaceRail( `; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/components/chat-sidebar.ts b/ui/src/pages/chat/components/chat-sidebar.ts index 275111f337c1..04f4c38c993b 100644 --- a/ui/src/pages/chat/components/chat-sidebar.ts +++ b/ui/src/pages/chat/components/chat-sidebar.ts @@ -1284,3 +1284,4 @@ class ChatDetailPanel extends OpenClawLightDomElement { if (!customElements.get("openclaw-chat-detail-panel")) { customElements.define("openclaw-chat-detail-panel", ChatDetailPanel); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/components/chat-thread.ts b/ui/src/pages/chat/components/chat-thread.ts index 7b1e59e24658..04825b0e75ff 100644 --- a/ui/src/pages/chat/components/chat-thread.ts +++ b/ui/src/pages/chat/components/chat-thread.ts @@ -1017,3 +1017,4 @@ export function renderChatThread(props: ChatThreadProps) { `; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/components/chat-tool-cards.ts b/ui/src/pages/chat/components/chat-tool-cards.ts index 9cb165f7bd8b..029c48c6f391 100644 --- a/ui/src/pages/chat/components/chat-tool-cards.ts +++ b/ui/src/pages/chat/components/chat-tool-cards.ts @@ -976,3 +976,4 @@ export function renderExpandedToolCardContent( `; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/composer-persistence.test.ts b/ui/src/pages/chat/composer-persistence.test.ts index 465e71d8c0e0..76e5a05d204f 100644 --- a/ui/src/pages/chat/composer-persistence.test.ts +++ b/ui/src/pages/chat/composer-persistence.test.ts @@ -1656,3 +1656,4 @@ describe("chat composer persistence", () => { expect(loadChatComposerSnapshot(state, state.sessionKey)?.draft).toBe("retry this write"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/composer-persistence.ts b/ui/src/pages/chat/composer-persistence.ts index e9e529fd9c21..867c8ea6673a 100644 --- a/ui/src/pages/chat/composer-persistence.ts +++ b/ui/src/pages/chat/composer-persistence.ts @@ -1744,3 +1744,4 @@ export class ChatComposerPersistence { return loadChatComposerDraftRevisionState(state, sessionKey, agentId); } } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/realtime-talk-gateway-relay.test.ts b/ui/src/pages/chat/realtime-talk-gateway-relay.test.ts index 2db51c9712f8..65ab2dfd6e98 100644 --- a/ui/src/pages/chat/realtime-talk-gateway-relay.test.ts +++ b/ui/src/pages/chat/realtime-talk-gateway-relay.test.ts @@ -1264,3 +1264,4 @@ describe("GatewayRelayRealtimeTalkTransport", () => { }); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/chat/tool-stream.ts b/ui/src/pages/chat/tool-stream.ts index 58e98674efcc..8b5e351b6d9e 100644 --- a/ui/src/pages/chat/tool-stream.ts +++ b/ui/src/pages/chat/tool-stream.ts @@ -790,3 +790,4 @@ export function handleAgentEvent(host: ToolStreamHost, payload?: AgentEventPaylo trimToolStream(host); scheduleToolStreamSync(host, phase === "result"); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/config/config-page.ts b/ui/src/pages/config/config-page.ts index 6cbaa22f2eda..73b70b5762e8 100644 --- a/ui/src/pages/config/config-page.ts +++ b/ui/src/pages/config/config-page.ts @@ -980,3 +980,4 @@ export class ConfigPage extends OpenClawLightDomElement { } customElements.define("openclaw-config-page", ConfigPage); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/config/quick.ts b/ui/src/pages/config/quick.ts index dd6866f0fb12..c526b0c91c18 100644 --- a/ui/src/pages/config/quick.ts +++ b/ui/src/pages/config/quick.ts @@ -1085,3 +1085,4 @@ export function renderQuickSettings(props: QuickSettingsProps) { ${renderConnectionFooter(props)} `); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/config/view.browser.test.ts b/ui/src/pages/config/view.browser.test.ts index 45894eacd937..a9f7835eda65 100644 --- a/ui/src/pages/config/view.browser.test.ts +++ b/ui/src/pages/config/view.browser.test.ts @@ -1307,3 +1307,4 @@ describe("config view", () => { expect(microphoneSelect.getAttribute("aria-label")).toBe("Microphone input"); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/config/view.ts b/ui/src/pages/config/view.ts index 2ade23798a5c..288af1683650 100644 --- a/ui/src/pages/config/view.ts +++ b/ui/src/pages/config/view.ts @@ -2020,3 +2020,4 @@ export function renderConfig(props: ConfigProps) { `; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/cron/view.ts b/ui/src/pages/cron/view.ts index 95a5d95c02dc..1e2c30b906dc 100644 --- a/ui/src/pages/cron/view.ts +++ b/ui/src/pages/cron/view.ts @@ -1878,3 +1878,4 @@ function renderFailureAlertRows(props: CronProps, channelOptions: string[]) { : nothing} `; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/new-session/new-session-page.ts b/ui/src/pages/new-session/new-session-page.ts index efcb5556251d..e685c8213cbf 100644 --- a/ui/src/pages/new-session/new-session-page.ts +++ b/ui/src/pages/new-session/new-session-page.ts @@ -1279,3 +1279,4 @@ if (!customElements.get("openclaw-new-session-page")) { } export type { NewSessionPage }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/plugin/workspace-view.ts b/ui/src/pages/plugin/workspace-view.ts index 84408ffb5334..c7a634ac2c3e 100644 --- a/ui/src/pages/plugin/workspace-view.ts +++ b/ui/src/pages/plugin/workspace-view.ts @@ -961,3 +961,4 @@ function renderWorkspacesHeader(tab: WorkspaceTab): TemplateResult { `; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/plugins/plugins-page.ts b/ui/src/pages/plugins/plugins-page.ts index 5c8924832ad0..32b723697c79 100644 --- a/ui/src/pages/plugins/plugins-page.ts +++ b/ui/src/pages/plugins/plugins-page.ts @@ -913,3 +913,4 @@ declare global { } export { PluginsPage }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/plugins/view.ts b/ui/src/pages/plugins/view.ts index 606ea9c63f0f..8b665e863b2c 100644 --- a/ui/src/pages/plugins/view.ts +++ b/ui/src/pages/plugins/view.ts @@ -1257,3 +1257,4 @@ export function renderPlugins(props: PluginsViewProps) { { wide: true }, ); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/sessions/sessions-page.ts b/ui/src/pages/sessions/sessions-page.ts index 1bd569d3d56d..f17b46f86d73 100644 --- a/ui/src/pages/sessions/sessions-page.ts +++ b/ui/src/pages/sessions/sessions-page.ts @@ -1246,3 +1246,4 @@ class SessionsPage extends OpenClawLightDomElement { if (!customElements.get("openclaw-sessions-page")) { customElements.define("openclaw-sessions-page", SessionsPage); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/sessions/view.test.ts b/ui/src/pages/sessions/view.test.ts index 12fbb6130f4f..e6f39ed9b19b 100644 --- a/ui/src/pages/sessions/view.test.ts +++ b/ui/src/pages/sessions/view.test.ts @@ -1551,3 +1551,4 @@ describe("sessions view", () => { expect(container.querySelector(".sessions-overview")).toBeNull(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/sessions/view.ts b/ui/src/pages/sessions/view.ts index 389f4c6e0217..32bfe3554645 100644 --- a/ui/src/pages/sessions/view.ts +++ b/ui/src/pages/sessions/view.ts @@ -1842,3 +1842,4 @@ function renderSessionDetailsRow(params: { `; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/skill-workshop/view.ts b/ui/src/pages/skill-workshop/view.ts index 7010816fc1e1..2ba7a85adb86 100644 --- a/ui/src/pages/skill-workshop/view.ts +++ b/ui/src/pages/skill-workshop/view.ts @@ -972,3 +972,4 @@ function formatRelative(ms: number): string { } return new Date(ms).toLocaleDateString(); } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/skills/view.ts b/ui/src/pages/skills/view.ts index dc229ecf34d1..a59c1a0a2afd 100644 --- a/ui/src/pages/skills/view.ts +++ b/ui/src/pages/skills/view.ts @@ -825,3 +825,4 @@ function renderInstalledSkillCard(skill: SkillStatusEntry, props: SkillsProps) { `; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/usage/metrics.ts b/ui/src/pages/usage/metrics.ts index 2b43817e70d7..ab528a9b6a78 100644 --- a/ui/src/pages/usage/metrics.ts +++ b/ui/src/pages/usage/metrics.ts @@ -856,3 +856,4 @@ export { renderUsageMosaic, sessionTouchesSelectedHours, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/usage/view-details.ts b/ui/src/pages/usage/view-details.ts index 7bd8faed8f6b..d644d6b6271f 100644 --- a/ui/src/pages/usage/view-details.ts +++ b/ui/src/pages/usage/view-details.ts @@ -1235,3 +1235,4 @@ function renderSessionLogsCompact( } export { renderSessionDetailPanel }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/usage/view-overview.ts b/ui/src/pages/usage/view-overview.ts index 416fc1780b3e..c6e78be48325 100644 --- a/ui/src/pages/usage/view-overview.ts +++ b/ui/src/pages/usage/view-overview.ts @@ -1144,3 +1144,4 @@ export { renderSessionsCard, renderUsageInsights, }; +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/usage/view.ts b/ui/src/pages/usage/view.ts index 33786226849b..b3914cdab343 100644 --- a/ui/src/pages/usage/view.ts +++ b/ui/src/pages/usage/view.ts @@ -890,3 +890,4 @@ export function renderUsage(props: UsageProps) { } // Exposed for Playwright/Vitest browser unit tests. +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/workboard/view.test.ts b/ui/src/pages/workboard/view.test.ts index abf3e3feb384..98a42c02e1a0 100644 --- a/ui/src/pages/workboard/view.test.ts +++ b/ui/src/pages/workboard/view.test.ts @@ -3496,3 +3496,4 @@ describe("renderWorkboard", () => { expect(onReloadConfig).toHaveBeenCalledOnce(); }); }); +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/pages/workboard/view.ts b/ui/src/pages/workboard/view.ts index 8000a40b3d55..63df03b04a0e 100644 --- a/ui/src/pages/workboard/view.ts +++ b/ui/src/pages/workboard/view.ts @@ -2282,3 +2282,4 @@ export function renderWorkboard(props: WorkboardProps) { `; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */ diff --git a/ui/src/test-helpers/control-ui-e2e.ts b/ui/src/test-helpers/control-ui-e2e.ts index 016672f9c50d..2e40501c2945 100644 --- a/ui/src/test-helpers/control-ui-e2e.ts +++ b/ui/src/test-helpers/control-ui-e2e.ts @@ -1349,3 +1349,4 @@ function createMockGatewayControls(page: Page, defaultSessionKey: string): MockG }, }; } +/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */