diff --git a/.agents/skills/release-openclaw-ci/SKILL.md b/.agents/skills/release-openclaw-ci/SKILL.md index 63983a39132..16d60b0d48d 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 4d5ad8c52ea..4e2d4e7c2a7 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 c76e3053a12..9d5faa88bbc 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 6f646aebe7f..2b2ef5f5b2f 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 ed15bbb9da4..7e1b479f3fe 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 00000000000..6041517c31b --- /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 98708b25ab4..aa1a2a3afa1 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 8320e88232b..eaacb4b87b3 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 dba47642605..fda6cba4ce3 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 7b4c8b776ce..e083630effb 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 44a66a70f8d..d4fad3884ca 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 6c8932db0f8..bfda30e27f6 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 741f0a6385b..cebddd6cceb 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 35e2769bb9a..310c72524e0 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 2fc3f7e0942..80d0ce193ed 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 d61c752bd09..4d4cd767e72 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 c43623c3b79..c6d67f17087 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 f7466590984..23f2ea8de1c 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 f6c9a98d3cf..241fc999444 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 f6fb822a601..9e39a2b8e15 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 537c1f101ea..e1a3990b1e9 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 ebb29d80671..d71aa4db7e2 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 2eb9eb2f652..00b16f21119 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 063aff4252b..1251510d8cb 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 616a6799ef6..e4e598fa556 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 f53a505042a..4d16954fb11 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 9ea855148c6..fac5ccb436c 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 dbc57d3a9ba..6f6a41506a7 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 3ddf3dbba78..a137ca7a394 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 af8e4f30a6d..c415a808df0 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 49097c0636a..931c6a85946 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 73bd6c73c52..276ad992061 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 2dbd061c634..e25e9eecbe3 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 839d96b977b..7b21d349d62 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 57f28b09533..0071eda3e73 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 e815c36ebed..8102d581145 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 819499f565a..568a5c1fd6d 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 22e73eabc8d..945db76a2de 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 7a1bc0ba16e..ee95d3ac5d4 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 fe67fe52cea..3276b287ed6 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 32a5dcc47a5..e599f7c23a6 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 77c8d7ae80a..a6783551b1b 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 02586b4dc3e..8e1899f9a4e 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 58864e5dddc..096f722726d 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 b0e9e5cee05..ba645fdee4e 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 fc12d018f46..5ca8251b95e 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 0322a93a312..bb185e7bbc7 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 d26b1129eed..d5087588fcc 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 cf61d32cd09..8b8778b17be 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 2117912afd2..c2024fc9eb2 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 3b50038e5f8..1d98af13328 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 c7385bdc3dc..bf91be74f08 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 f848f276e1f..52dbeb7918d 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 47ce7aeaf73..7dccb910b4d 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 18905a2e890..4a4375905f4 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 e158f1a513b..2fee22d855c 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 477bc63d983..0279e7fff40 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 2c8d409d575..1db5d2877f1 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 0ba0dc009cb..c4e134b506b 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 71ec781533c..9b87e301311 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 5ad6564a7b7..b1fba822549 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 c48142336a2..e59f683f72f 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 f106f42c70e..a0a8c5c7701 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 31b24c2ba3b..f8efc084bee 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 fdd50a94c1c..9d9b3d2f928 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 2cb8b1a9561..c6ae3aed367 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 6b9714c21ac..13fc1f68317 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 17aac7eaacd..a2d58fd8211 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 6193b06c53a..352263f3381 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 30bba839bd0..b960df30f6c 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 3c9c0732e7a..793dbb951b8 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 105ca824918..7ec9e04caad 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 fc54f0b7f40..c89859b0d01 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 ece82199ae6..a2e3a9abcc5 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 64db22ee3de..7b367f25929 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 8109e8c0fc6..db6903ba759 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 128db8d776b..5ba84ca1fae 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 0e7ceac3246..5d9d3cc438c 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 3f989d8084f..5198fac9cb4 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 79068e0af22..09123fff3af 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 b80c9e2b300..7934e821604 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 a19ffa91f05..ccefed0d475 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 697c9e1ecce..af47084fdec 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 407e9adf8c6..763c89108bd 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 e89248f9a32..d63f1610dbd 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 1277b3362ea..56b0e78df29 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 0b9fddb1c27..d71c996e1cc 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 bab800282bc..2a418ca448b 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 7db862dc890..90055a8a3aa 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 f7faa8fddde..639afdd9a65 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 e44039ed53d..a4fb0b5d255 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 ce1c8f826bb..a4cd535b7b9 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 0a74c35adad..73d1c67351e 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 a6f2258f995..18630d9779b 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 050f48d4044..61172be210d 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 a5a0427e6cd..5d27b4cf733 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 b871e510c04..252b17e5866 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 0da67eac1f8..5e45675094a 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 3bc15f610f3..53d613e98b8 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 31e4783b92c..1d04a82b5cb 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 446abaeddd4..085231f54d2 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 41a4916c6d8..c01e68b2576 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 189d1c0178c..52725080f32 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 07d491c3011..4b57600a17e 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 bf304c93f44..fb2724c5e31 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 ce1a307f3dd..62091d21a75 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 c825aac3090..7aba67d3470 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 432d3089ae9..0bf9feb1b9e 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 5f64dc59b8a..3f7a6f1c08e 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 1a2de24ffec..910d83cc858 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 368a3c3b5d7..96d7770f4cb 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 cdf077ece68..baf838e6f33 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 87685dd65dd..5783a8ba2dd 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 f2cca625f29..39d620137f9 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 f5a489f8574..dc971cb0f81 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 72d6df64a90..3fa6a06080a 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 a03f828bf8c..4cd25ba5eb4 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 91922e904b4..c3932bb8b60 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 363a663c499..4350aa45756 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 71a4f76ab17..37f27ccbff1 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 d90ec2cad45..be2368b01c7 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 aa82dd59838..3d8300d3c13 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 535ea310cbb..34ca2c8ad7d 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 857f604fc77..617e939cfd6 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 8302566752e..d5f241283b2 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 1fcd80115d8..ce9169c4b97 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 29785e230ff..cd20631617f 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 bf41653cf53..3738167fedd 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 657a06d92c9..c48e4e8fd79 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 6bbb331802b..2b100408418 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 e84cb14d184..54cec45e811 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 d87804b3224..cca84e190bd 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 4362d9a251f..f720448df2f 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 80fd0a12156..88b7650b609 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 2f025475cd2..f7f2f5b1685 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 dd429856b96..58855066d32 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 1cca96f8901..7f04c234b3e 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 a48ee110c7e..2f80c63536d 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 b9b42c67b4a..ad04654e2e0 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 14c989282cb..c4d1e06b587 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 369ce0e48b7..85b4854b3fc 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 ab875bcedbb..3a30133517c 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 e0d192538cf..8bfb5704fe5 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 e8af2161dd2..8ddd21607af 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 568ad1cd162..6505aac7d38 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 42eb47ef09b..35ad8ee5495 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 0bf83dd0cd8..90cb1abcf0e 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 501dcce9360..ffee7d4251f 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 0f03bbb33cf..060730cea35 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 4732706ed3f..653a9d776c5 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 816f7574f56..bea654c5dd3 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 7f7c49b7167..502219bbc76 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 23317eac441..c3e4ff3e0b8 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 af33a59a413..b0fbf946f1d 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 ee39bfde800..181e65805cd 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 6896eba2bba..f82af64e023 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 02ec5f0641c..dd26d13e17b 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 233ee5add43..6f1b3ad733a 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 3969741143c..1708800c176 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 65add522248..6a9c008deee 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 162b0eede5a..b1f495e42bb 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 c68b5dd769a..506d56f0017 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 1bb93d4d912..8359fc51700 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 96e29c02c7a..3a4ebaf6492 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 2a00a9796fa..3e55f2d3e73 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 48792fb93ce..037b4ed282a 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 3ef07f2c15d..423c805984d 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 9b1499291b0..0b0d6baf54d 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 6eafc48bcc6..38a8c664e1c 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 7ff8fb72ae6..130795494a1 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 cea175814a5..d8128ef2ddb 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 f18ef94fdf1..55da3aa201d 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 a56c6c6dffa..5daa5f6b86b 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 2d40b6de7b3..e9692b35319 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 1e00a7b9468..77cf7dff818 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 90537744e42..7e3061d999f 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 a1cb01391b0..57e8a04474f 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 36793bfd38d..eb1d90cbc91 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 d9bdea8433c..b06b05d1be0 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 eb80e4f2bd9..3a95e58f5d3 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 cb3de44796e..4dea911f254 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 458ddde7a52..87d680153e8 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 d0ce302edab..08e458d5c0b 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 4ef3d864106..6a71557e2e9 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 d81df3fb408..bc8b337fd9a 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 9ec903005f4..76fab43d57f 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 14eb0cccfb2..2f53e9d821f 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 ee24dc907ab..21f2c3113cf 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 7e328f57422..bf4931b1660 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 5b52c7e8e2e..460fb1fe574 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 55fb1d69b23..35c3b1ab721 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 4acffc02e63..d5f580cdab7 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 39f3a6772ff..44bb437f0c5 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 4ed74ebe3d5..fd4d712bb28 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 bdca01b636a..30980630cae 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 b3e8af32b12..85e4e250e11 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 9fffb6b9463..6b588efd8ab 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 22991de5cb5..b09d3d37581 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 12944195f77..60f8b2ae152 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 860502f9b5f..e5731383005 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 619ff96df24..ab275479a17 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 04f0bedbf67..345a42d2043 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 67891b3dcf9..b10208d1634 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 c065b607103..9cad13b31ce 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 4b061b5c443..a4588edb710 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 db424e12ee4..8ae1b5a752f 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 6ad04cd8f73..3beffbafee1 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 8eeb9715ef6..d780c3e1ee9 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 5791db1fa26..e3293b8f2c4 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 60bf3869c5e..3886559a074 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 74dc533a253..60f1b5ed579 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 fad6f1c81ba..de056bc1214 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 f53a0eacb57..7fe7af3fc9b 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 6c6d28bba36..2b0c764d2fa 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 3d76929098a..5cb87e8971a 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 05edcf5093d..fc33b05210f 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 ab526304028..14755bdd570 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 81629249417..f7813724dbb 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 e1353368daa..92d6960c16c 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 14dc6ab7763..e58cabc2df2 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 32abb3ff6d3..7865b533452 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 fce1ccc31b2..4d20e4dd536 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 f39c2ae6724..55ea4e14871 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 562639124ae..94ee15a9879 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 6cfc5a2ae66..afaa469b388 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 d974bcf3a39..e86b2b0e785 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 03af4036fb6..7b4297c1af7 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 1fd6e0ce866..ead49db45d0 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 7f1406862e6..04ed436e480 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 ee30af20df2..9068019f154 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 de3071c12d0..170047cffb2 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 559c40b3e47..8d49cc057f3 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 222dfcac538..b5f211aae91 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 b9215a96371..b6fa21f6fab 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 eb9e68e5336..768383e3c9f 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 2e2f90ad890..af3b1e6e41d 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 0efe7e086d3..6104fcc3610 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 ac7421008cd..e7dfe606035 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 58c44d23fa7..909f3da992b 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 4f246cfdc7c..3505cf62688 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 14b15e012dd..8cc53ff49f0 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 b9076c6513c..34bf8c2375f 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 6548727ee6e..b4c732a9947 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 14acf512841..79d505953f2 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 0665458f1f4..2537a77827c 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 e3bcdc72f29..a3722e1b28d 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 3fdff052520..2a806f635bf 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 32425a9f4b2..f5dd56e29fc 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 5d07e86e655..25c1ca865b0 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 d5415f59d44..acfeda114a9 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 9bdd9fe7068..f3a042057d6 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 c551a362465..c2a444136ce 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 f1bb5f50373..436c221e2b9 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 bf2902c5041..f2b37585e36 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 88f37f7c473..0dcb3c342ef 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 d0176dd3a61..ab34804c898 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 ac4420b6225..9c0f29592bf 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 5fb20b87162..fbcb4b47a58 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 acf1f7a60ea..f669a78f57a 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 3de3f222f4d..4b86137dd91 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 98b6c31138e..d038284f472 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 3599ff82fdd..45aba84e942 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 9103d2488de..2f67a2c25ac 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 b8da01906ed..2aba52437c3 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 afe4f608501..b25f5b69d35 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 e2dd28d2b59..833d848514f 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 7ffe0eb9c7f..fc097e13014 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 1bd85f77274..51510ed185c 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 efd99bcc1c5..f8e864bfde3 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 3bd58d829f9..a2b56aa35a3 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 bf6133d805b..1fbee852ed5 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 745eafcf50c..5b4b1c3eec2 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 1671889ce40..eac55e1ef6d 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 6f964e552c8..7ed716912fa 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 98065d6798b..44e07e46adf 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 dc097a520d5..bdc4bf11d18 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 8182f65f70c..9242475fa42 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 9178769c996..708dcf33080 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 343d3f0e3d6..393371cc4bc 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 dc84aa440d7..16e60b36e2d 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 583c41bb37b..9b3d05c6f84 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 1a417c7b559..bdcce731ec5 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 21675d20f39..efaf08d4019 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 b709d1fd4c4..5fff436f984 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 1523349be73..f52d677900b 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 b6ccada92c3..86da3c0647d 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 d45b34a4d57..4fa1651b557 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 34fea6ae5d8..4cb8f6e4a5b 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 4cc983cba6f..e0764bc8b24 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 a4f10c6d114..4c6a3cb7b07 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 452feb9372e..da86f71c92e 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 5bccb14b906..6ff1fc52211 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 5517a112631..2bb73377ed3 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 fc48d8357eb..5d683d184d0 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 87c387222d0..2d4ceedd7e7 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 9ba2a23f361..1fd050fbe22 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 93cfaf34d94..d453726e08f 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 d7db098fda6..9dff30b2268 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 f1b6c04705c..1ed5fc26885 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 0274478e4c8..daf17a1b420 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 35e43a823e9..d1e7d4c19d1 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 0f07c4eeecd..2107ce213ed 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 8650f2d55f7..b56a3ba6492 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 f9ccf4492ba..8c5099562bc 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 713f7165812..6be710fd5a2 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 0cb7bcbe0d5..c8a834b1c31 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 5c790b6afca..229a7faeb02 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 cca6d430677..3d48564940c 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 afa2f07d928..31c3191f7d3 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 34ccf1cee15..033a57cc7d3 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 f42fc1ec4f5..a07a40edafa 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 fd31cba6e7e..4cdf3f0115d 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 0b889664f75..baec49d899c 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 fadafe0bdf2..92f20648685 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 d80b7166147..8289bc48dea 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 446784a3145..5a66d871173 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 317c707d75c..6def74051f3 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 1485bea519b..28b29bada93 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 55d8706e918..b4391af54ea 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 0394a74505a..5f48a07158a 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 2c089103d1f..3a018702177 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 05327fa7091..7ece619d6e4 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 e1b95d21ae6..2e91fdbb510 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 7624f99b300..aab94c9a362 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 7e3ba9e844b..ca4f609e326 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 b5dd99fd0d3..b9611dad91a 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 07ea00f0877..54025f2d63f 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 f73586208b4..c39293f3de8 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 4960157fa32..5bba95e139d 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 cda34a77830..e79b4b124c6 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 367e4924e03..8acfc1ab7ac 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 2b60bfcd23b..f60cd9e2d5f 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 59ece14bd66..0f96421e843 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 c4a287bebd7..fad41b8a0c9 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 5bd850e52b0..c9eb0fed446 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 7ee8773a10d..60200192887 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 61033fca772..44aab795690 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 9290fa25930..8b12ccfbf80 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 5fb4221a7a4..2787e8e34ef 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 aa6a9622de4..033565621b5 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 d3e4c9013f5..a55ea32843f 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 e6572ff1fc1..f7cb027447a 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 d6d96ba8fe2..e9f0d27185a 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 f6d070c8fa5..f43c260156a 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 ace5805c2d0..e3be4767f55 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 cef5b87ea77..c7e40e4c889 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 6af0c024100..fddfac3670a 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 ec5da5f5d5e..7fe05074730 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 9d9eac0da6c..275f05dbf08 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 2df3c83e45a..6749f3518c6 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 8d32e42e679..3ec1796666c 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 f863bcf7408..1d6f002670b 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 0d578887562..6fd98dcd02a 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 a1f3794646b..19789598e23 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 6ef9509f645..ea995b4c8b0 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 7c205d90a8d..15b25459441 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 993a8883215..2ff38c7d6aa 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 7031b8fedb4..81798f12720 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 ab5320e7407..ee7ce759a92 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 f71dbc9390c..032f0c5784b 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 9c1f999a87d..24bd5ea2c87 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 6bd2a90c5ea..f928acef056 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 ae142baf828..b2d753c8ccd 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 63caf3f1204..09dee2a56a8 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 e0d63843140..4e89c2cc791 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 04b39b87d4e..689d3429225 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 720ebda3f74..8d4075facc2 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 ec2fe3b02a9..167e2f84c68 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 99eb0944c61..37466082afa 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 1533af3fead..ba29b556748 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 516e953cb77..f48ace5bea2 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 c2fd1000cee..d770f07c0e4 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 f9451763c39..0ed55a25976 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 50839278545..df536436681 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 b6d6df9682b..bf0171197df 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 c97579e6317..cf852f8714c 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 db8c295c259..ab10d4ae141 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 a43d245491f..be55eda6534 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 62ee97cdc3a..968f61adfa8 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 b34ecd0579a..6b960c7b26e 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 c6cc643363d..31c72a17158 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 a17b50e950c..0e725907318 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 9c2b9ef57f5..22b097a6008 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 5ee002604e5..8b2f5e671f3 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 aa0403cfcf6..9e80e91c965 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 0bf074dec50..4e00c4c9214 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 8ed0de5e9b8..71a99b8c6db 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 d5be0efad0f..bfa37124b6a 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 9e72487ae00..0a3a400debc 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 044e8037808..2f25a72d614 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 9fb1a135913..6007d9e123d 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 6e48816b457..2f4ae3a6a70 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 00000000000..6f6dbe48380 --- /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 00000000000..4765d7231c6 --- /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 21a9fbdf7ee..00000000000 --- 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 52940c73172..e8e2e4ef13a 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 2bde49ccb82..a8d3cb3f8b5 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 2b8ffa43e4f..6bbf3f08057 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 86facf5a0a7..00000000000 --- 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 25fa64216b1..00000000000 --- 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 fb55a9a9d96..cadac34e1c8 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 83de17cdff4..08d4295e622 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 f64f2004480..3acc81f478d 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 ebaacaf436c..c60063f04f4 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 21eb9af5999..df624299e71 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 a804fc27563..5b3fb1bf0e6 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 c61debe2aa1..ece106808a1 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 dbef01a956c..899ba28652a 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 3be1e9a1873..78b432c223a 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 be8efa8351c..57b9f120a93 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 787d1e55526..858ed9cd999 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 e5fcea8cab4..bf3a50bbaeb 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 708b98a0eb3..fa69a3be287 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 ea157a351b5..9ca81105795 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 0b793e2b117..35970fd05e5 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 bf7f93672d7..50e0a79fd87 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 a4284ecd6ba..b97173d3f0d 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 2ef37192802..e12d11d67c9 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 313c42fa37d..9016bd87ac2 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 97bea2b7717..71dab6a4378 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 71253609591..e8605251689 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 d8631bedf43..5cbe359ea5e 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 32016a7b104..888cb89e5ac 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 6436d5272e3..bbd1e0bd7b2 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 ab869309dd5..d72e780523f 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 ded3e245679..7831745f7fa 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 72251289a7e..265348e607c 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 fcb2c52fdd8..bd880bc6d79 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 1841210c79c..e3bb1b87d45 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 a8b95564750..f1d7bae88ae 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 0d15e548039..cdb1a75dc39 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 0c7e2baf2fa..1a35f136fe1 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 3905f6759e5..6abe1a6cc28 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 e3d16456989..02faca02cf2 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 46840d0275d..86555390713 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 41569f7d507..3a9d4174206 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 3b3a522f1d4..09fdf652e88 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 c130595a474..04a3ada11c3 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 9790a2f1ebb..c68138910a1 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 7c6e21586e9..21ad058eaf1 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 18df6e72160..3939b4704a4 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 f9b81d551fb..3bb8b4b174f 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 f03ca0e1178..280c7327e92 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 bedc3ea0e6c..fc0c16ee720 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 6605bbf0f1b..b143f9759fd 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 917e8dde5d8..3b49cc42579 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 25175d1aaf9..e252011a2cb 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 edd7f73dcfc..6b32d67c0e0 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 cc9bb3507f9..a739b9d7474 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 1da7b63f715..a1f986c143a 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 66678930345..08b5b1a32a3 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 3eb1fe17deb..c30a1eb8bd3 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 acad273b7e2..4a432568ead 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 ac4da84f775..3c54f2ce354 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 1aa821f580e..ee0f0685514 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 f682df365fc..9c18529731a 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 e6e14dee59c..fa7b132bf41 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 986bd515013..e118b4849cf 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 443d9229a25..1f9222022b4 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 a39b2994071..f148119e5d3 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 1d2a1c050a3..01605d3f2db 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 f35b4e328df..f02b3769adc 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 ac24e0b8256..30c022f9525 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 575453afdb4..d8921edd5ee 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 636cbbf54ae..40260e616d9 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 bf6a22df4c9..b56a0fdfe20 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 86c26e63683..0842aadad1a 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 860bf1c1cfc..9260f14fd1e 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 8ea6b12bc12..780fcc9a99c 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 10487fe384c..64af341ee70 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 ee6c5adf7b3..85201f2707b 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 c03e7d1557e..3fbe9b84e6b 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 d74fbbc9efd..5fca669df66 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 f2576e08ac6..6a7ce31085e 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 99004df4406..af9d38f3156 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 3800a8c14ab..d85407ff080 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 3f128df9a5e..0b217d82f15 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 95dfb2dfc1e..230f5d42aba 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 8c304ae2631..b2ddfd096de 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 f0d0d1af357..b698f3da08c 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 8cc456af492..14a86bc3ade 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 e93f5f73064..8549718a591 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 6dbdccfe78f..a9610a5cf1c 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 90b891ff401..b22878e6415 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 8623cd5ff0e..cf9c11efa8e 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 45ebcdb6265..835fa844441 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 951455893f4..77d6873a62e 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 216e09205eb..ab85a930c27 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 6197e9f30df..db0969c8046 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 56a9413ec40..17d03862043 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 b912c55027d..5138566848d 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 3b92dd29322..56b35b97a6c 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 71a038fa596..c8ba75e289b 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 0c7f8348496..67c70c79016 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 4ec8dcb4db2..145bd556402 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 51b6f15a6b2..fac44b706f9 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 4712d4f5823..ba3fc553ab1 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 5a98ca520d0..517d3893304 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 c0cdbd0b927..da5f36af1b4 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 b498207285f..4bfb9745e93 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 eff5524bb50..d03168ae9f5 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 f185e46f8a2..3ffb0c52b8c 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 95f05028542..f0fb612900f 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 40908175496..809cf2a6d9f 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 5bc4c0bea17..9e5592d0f06 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 448a4df59ff..e067fe556af 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 c6fcc68822b..0c15048dc83 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 7819a3bbda1..9c588d2ce1a 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 08b2e19d6e0..d72439ef4fa 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 24556a32a05..d8efa58c393 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 41d8caa9e82..5d23dca128a 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 e5745136eb5..4e171ff0219 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 b5bcab27eca..82dc4099c92 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 7cb099bb999..a6633e9b480 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 3affcc0c2ca..144ca4e577c 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 9a36b7bcac2..858ff412d63 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 e42da947eea..5cdb9ab4c21 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 9e3b6a8cea1..5d644f9cc25 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 64f71936dc6..c95b7732352 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 e3dd00caa26..0ecce51e3ed 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 36aacf961a2..cfe0d12acc7 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 b8a56877f07..e1cbe60f3bc 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 9eadfabe637..62c83b2962f 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 4795be0d69a..e467c1365ad 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 5459c7adaff..2750ff54ab0 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 c7220e3d6e1..51bd1bc99f1 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 ab1ea0f6e60..cf5eb7196a8 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 326bb6c4c2b..a9d8b001724 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 b5840d941f0..835bdbb56ac 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 de06d3314d7..90c4e3cf83c 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 3f1c0e440b6..56e648b3a7a 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 4e42b8a2587..3782be1a2b5 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 3bb530e8703..ffe9288c75e 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 3e3bea75503..7dcbe665596 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 661035afb4a..19616b2486f 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 08456cf76b0..009d7d86a9a 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 1cfc4cbda50..1d6efc896b9 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 377d223813c..020373d52b0 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 bbbe24a9c78..376426fe0e8 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 8bdab18116d..42f999f2b32 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 ee1c7d80212..cf24c9c2945 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 8c1782961bb..9d044bddba9 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 9aabb0fc802..b1e774b9e7c 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 7c7899df803..a2fc500d4b3 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 517c04255d9..dfa556550f7 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 b5d3cebe36c..fcd8dfa9e8a 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 666350db85f..6e7013ea1c9 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 f8e64fd42b7..5e46bf6e5da 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 16e1d699887..4263f10a0a0 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 29312979a97..40664cc101e 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 7fd621ac7ff..1b09bddda86 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 79746afcc21..f458448f656 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 354bc1d79ee..a5555245b62 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 7f91125d526..d4eda5e707c 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 bd2e981809e..f2a2fef3da6 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 6b3a1ead39f..ed883db97c4 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 98e3a3a9b4c..a5c5002040e 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 c458728ce2d..88977c6963b 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 4aca01fbae1..dc1c37d45d7 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 facefb24674..11a9258d68a 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 43185f9ee75..77424d58389 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 7840223989d..f9aa0f17fbc 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 93b6c844ff0..81c51cfe0ad 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 2df0e3594e3..d5325c7c368 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 b422a37a05c..badf975b548 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 8ba3fe43d1d..155602487a9 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 5c2a45d53bc..0f11e6713c8 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 91bc45c4eb7..57659182f48 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 81a877bfd77..bc162b199b1 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 4e36c7b0749..f0b22531623 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 efadaef1a44..953786bf039 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 7cc94504005..628c05382e8 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 e5d81410044..57e91e384d7 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 fcf2cc2893a..e611adf20d2 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 5c2123e9bab..e2702a37f6c 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 8b609ca5d76..40e533a5573 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 78ed1fee8ba..dee53bbb658 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 0606ff975bb..43de84b98cf 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 bdea081e306..31ce0f05130 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 aa87c69cb0f..03329d72f53 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 9635e445a8d..490c6cfa17e 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 0640301cf93..03a7c7f6266 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 b9171cbbd58..02a65bff627 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 2e223fc5071..00e603b759f 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 29647e6488e..afa85c87382 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 14e93f1ad6a..c320711f63f 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 174b32b7786..e77cb89e0f6 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 27ac1c1a2ef..71224ab79c1 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 4dd408191b1..6b153f12f20 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 68f3a2b8d94..d80b9892626 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 2dbfd309894..a3b6b9bd4d7 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 f9644258306..69aa939348d 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 82ab7180ff7..d779314f64b 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 66fac6702cf..56e13ccbb50 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 c421809448c..6de5c9a94d3 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 6027247e828..2d651c76077 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 033565d8178..ee76927096c 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 b32187bc11e..d2ee07670c3 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 56f08b59857..36b4e4ab69d 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 d1b3848a1b7..a671b105375 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 218b518e24e..7c01ae0113e 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 959ceb3d385..afd0c6ffeb6 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 098ea18c904..415c120c23d 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 dcfed5bac4d..58f6712e95b 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 18056aeddc4..6155f84db7b 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 d7e25779723..0925793984e 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 e5fe224e1e8..bf710da5a18 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 ca54f55d139..5100104a7e0 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 4442e1a79b5..e51a487a8bc 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 6ece2820598..d83784544f1 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 8dc4ac97f06..ed3bc4ccdf6 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 35ba893d072..34da5e85791 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 e27d7a46476..5af3c67e334 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 f15ad7af9b8..9c1d81d8d9a 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 feccade1790..69f33b028e3 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 19c00af0125..f353e292dcd 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 ebc337353f4..42f67afd349 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 9222822b081..5a2a98f39ae 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 15f0a84d228..b9d0209a001 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 77bfedaa28f..eee704e45ac 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 81d7cf0ba34..1ba0b2687a6 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 fde5edf5ce9..c4d71b8df87 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 e7929fba05a..906d34ee3c9 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 cafbc16f3d6..8cd766a1afc 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 cc352570fb9..64983b40ac6 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 8029d366af4..4083f10639c 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 0af8cfe2bf2..86560e89529 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 4588c8310dd..7c7b9c3f4a3 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 66760489b94..0631c50b10a 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 4e2e1821606..5fcefab10cb 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 24feba1ca18..2899a691374 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 55ee29f1dec..3c5c89bd7f9 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 0892aaf04b9..68039dfe35b 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 54c068aa93b..72c87a6eddc 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 7aee42ac461..a15bb89c747 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 89dd732c38c..4381dfe9d19 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 ccf7132e10a..9d19bb5f76d 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 338ac61f4d3..5a41b5e4053 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 60f97f1b082..ef34f7d5a55 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 d6f83209a89..d06b5d00fec 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 cdb09e5d603..e5b4ec3fc2f 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 de4647030c3..56f09211b1e 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 cf1f0594aff..45e300b4cd1 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 7ea3382696b..2cbe276a7e6 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 70fa64b4f94..9deec41cef3 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 9c820dac2b1..09c6b4bead2 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 b97cc5c72ae..88670bb64f2 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 5e7bdd48c4c..a14b6b9a4d5 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 34e3c3494f3..42b9a3b81fe 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 173223fb0e5..aa0f2870e51 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 d45ffaa3d91..c09890e191d 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 f59617dca35..697e4cfb029 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 c37fbcad4f4..7cfbc0ec74e 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 7bacd36761a..e5ae040f0b6 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 9a73ec70675..030fac08d6d 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 34ab2d01c42..a2bec34507e 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 8aea18a91e2..e6e6748fecf 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 4ba45f6459e..f69df49b0ac 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 4d1de0b9822..70dff21d8ee 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 7370e7b8ce1..ac5fb118c1b 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 f828cdb535b..1283824cdff 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 6a58dcc1e6d..4a51ba2b14d 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 258b7f22062..7c8b5e9272d 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 a51b7204ed6..f836075e945 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 ce0a650f956..6c9441c2fe0 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 1cad782e5f6..3eddac69d60 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 2eb3f231109..f1a94b062f4 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 7ba3668123b..c299f4b8603 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 9932191a808..01cc8820b93 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 d68068bebd1..e5ad891ea79 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 b07edea1aef..80ceb0780e2 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 8a54fa0c8c9..4685dee3ac4 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 99ba41ade17..38a0ad769a0 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 20c19dd0df8..9512d2c5094 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 f17e710cca2..ea6c7218eb3 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 11a3d2b8df0..75d2d61f2fb 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 2da12666127..f865785bb9b 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 42500db3bca..46f53386957 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 d3bf4235054..22eb0a24db0 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 cd561d06efa..89eb5e910c4 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 2f9578c9318..10cf15e3cee 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 d69f1cba0a1..58abf42ca37 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 0c458987870..c4d4ff44d20 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 af4754172a4..7d3ea6498d0 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 0713ad320a4..557f0e4510b 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 ebd7d3ceebe..39063bf8e95 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 7ba0be7d662..4e5e7390a7d 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 f486d540bc5..dfd77872208 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 07553e95e1f..e3493e0da9f 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 828a36102ec..04036ef7bfd 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 1640fef7a00..de8fb8a4ad8 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 5126af90fd6..b6586dfd380 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 80b01412953..9bbe5681cd5 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 a0fb353e4a8..4f43de314a8 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 ac004c56f9c..2505b88839e 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 1566a39eefc..2653db75aef 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 9b8e0cce95e..1185f13d427 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 ab3cbfeea89..a9aca194e98 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 efab2980f68..ce1c86be24c 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 f7f64846c3f..ce6f11d747f 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 f0f4702b664..eb3ce862b10 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 61ffbb5d175..ab5094f2569 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 cc3f075c3f6..50496e6d3f7 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 729e5f8046b..31cc10ba244 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 e3913144e92..2f3f8781760 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 fa2d6eb6030..ea58e98c97a 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 ae84757c93b..8e9cdad7258 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 762abbb3238..90dbfb8d3e1 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 740abc45f25..2da43de40dd 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 f40f748ae96..101c455c241 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 077ff03729f..3e1d53942fc 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 c774070606d..119686fb624 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 79551aae55c..dde19d10cae 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 5bbe0fa876c..ee295f5f4b9 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 395a87c0d2c..57beeb3b40e 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 a178d85fc57..fecdf16566b 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 58601b870bc..cc81ac618dd 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 add4fed4bca..a6a53f8b901 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 eba4733875b..f6cb0e1593f 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 ca28cd149e9..34de3e9ffc2 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 54ebeb56c3d..7fa61855fe3 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 876c2a1d915..c2784b38da9 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 554f114cb42..ba586355f84 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 e16207465d3..e58bf1a8f27 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 d37a7483f3d..16ae447e37c 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 ec66f01d668..8966b628f3a 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 60dadcec43a..31610c2b710 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 272d00bb7d8..974a4c97c04 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 b0b9f34fab1..d17bc7c52e0 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 a4222a34678..d3afd8b2ad2 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 a9cb233618c..623c82c98b8 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 3baa08d6f89..e1dee1ab709 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 073446bc6dc..7537eb8bc7a 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 2dcb3d60d6b..8a5bd5fcf68 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 514087d4505..0a9976e938e 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 2e9d14b33e5..3bc35c9d5c8 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 a2a65976200..b20c04b9189 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 65b7aa89875..9a7eda7d378 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 b24a0a63c1f..e24b895f340 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 881932b87ce..a982ff2b7c0 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 35d9b37feac..0d0f66683ed 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 822647aad03..754ec345d57 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 a916363bb6c..b301e15b8a7 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 be23dd6d485..5c9a567caf1 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 5210f80143f..ad451a5caf7 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 7f43f609f4c..eb8e201b548 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 9619156f005..62d05c84095 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 1117877f65d..7fd24c67d38 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 ad9ca70e4fa..6682955eb67 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 b7acb5ecc5d..d4b7018134f 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 04893913206..91f3e821435 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 82e031f0262..42538373fb7 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 d7182c2f400..4c1bf75a221 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 f5325393339..0506aa8ea46 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 85460554e2a..f1aad935a2b 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 0abf9fe0219..deb41cee104 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 4e776f7c7e7..7ee02a1411f 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 3a2cb8494b5..298aa2ae313 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 f8b1a84668b..6ddfdfa81a0 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 790f7d0e50a..c41b9bd9db6 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 c9d02383d5c..3bcf13d7d8b 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 d519bae56f7..3c75cf24ccb 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 4cc62629e86..8300ff8252d 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 be655a00bc6..b0933211372 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 484b6226858..3b999a0dcee 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 0e41323c563..50fbed57899 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 7acb3f23fb9..06f4ef926a7 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 5d5c50fdd3d..40e3477aac3 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 60c9a66c763..9c4dddb634e 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 d3778585ab1..b56a514db9f 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 7ecc0241d88..b9a124dea85 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 e6f56eab6e9..84e24f117b4 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 f8c8a98dfe4..55bd7287731 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 04d888003b9..95b36e9abbb 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 ff30abb216b..ab9dcf496a0 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 0c4aee51962..9edcea43513 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 76e98b58bb9..aaf92f8fc13 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 d9e5d460b75..491b72e1ad3 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 6d8baf7f3a5..a1630254dcf 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 6da0d96e164..70b5611cd23 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 760ceb16171..db156240223 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 15aa36e625e..d45cf6ae3d2 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 36c64dd08e9..bf9e29bb42f 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 77c3fb5e41d..a9ae37ac36e 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 4ca0abfadc0..451a872f20e 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 b24ca213bf8..2830a05e86e 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 bc058c77f84..386b409ae1f 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 0071883c20c..ffb1f6130e8 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 48a3ff0f442..b46e5eaa877 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 c6584c65f7c..80112fbe610 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 985ae1c7236..be04f908b86 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 8c843d899fb..fd52ddd131c 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 16397da3351..43b862ae130 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 dc9a00767d5..4741139969f 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 a2b47be2d51..24f017642e9 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 914f4ab44b1..9f8215b3921 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 c788902c33d..5990f1300dd 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 c6518b2018c..4c64ee3f796 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 c4c9891af1f..64730ec07b3 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 5b2ed463380..0dbcb0c29c3 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 f39180a0378..03b5c424d40 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 607b77c8854..76dd762a84f 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 2562d5f9273..3b1d82c0379 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 698a1e32d1c..0aef3ac5d19 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 cb5101c360e..bc508c9bdc9 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 a966642159e..9f64d93072f 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 c1c1545a69e..478f0bd6c7b 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 f293f970ef1..c9daf195214 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 84f6db2c9a6..b53ddbcd1cb 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 73d30907770..cf57bdeba24 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 fc40d152e1b..a726d74736f 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 6de30dea445..24976f8a933 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 72698608b7d..afe7e93677e 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 2229c34be0b..880ac2a352f 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 4fa8c002997..b16f26c061e 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 efd6372097a..71113dcdadf 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 24097a2b414..01f848a69c8 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 d99c018ffc2..de8d44ea55d 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 de87983ac24..220ff073fc0 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 d2894993dc8..ccb324e2adb 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 734c97f2863..396c3be2d3f 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 3c661625976..f3b13d5943e 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 9bc4e5a9343..012f9cd45b9 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 e6918fb3619..1e7d419a7cb 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 ed9970758c2..f9463232d52 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 70106f8d656..03e2f2281e3 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 6a3db0639dc..e3c95996293 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 236c8004a00..db7a1ab9224 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 23845796b84..7bec883fd2d 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 71ce5803ecc..13a491b22ed 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 a167bad6eb5..b6afd8aad7f 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 14143b3b201..26119d5792c 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 efed98a4694..a80f5c5a1d7 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 bb7cf4a65a2..7833743b5af 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 62964e7d643..23525db7439 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 73dda1667e5..86db1d9edca 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 ac6fbaacc49..5bebab91e4e 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 f011369b50b..e1c1c34c102 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 5318db133cc..1acc2c0644b 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 246128628c3..e25ba43ff6b 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 2af73771044..69ae03b0e26 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 5e8d47d959c..267ce83528f 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 b2256b54a7a..81bab11629c 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 75445d1a01e..350384929d7 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 26ae7123945..977681ca1a0 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 fa64f61ced3..a3aeb214297 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 7e45837969d..5e25a5a6245 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 a866791f9e2..996574631ba 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 e66121cc575..ca193eb341d 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 11948c44a1c..cce3697c6c0 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 98d4b744865..b3c408aba7d 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 f3ce8c85ed5..d3bb89efd0c 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 7e673edce4e..4baa85d88a7 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 e61c399e39e..ac2d38131f0 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 f31046e5cd6..90127a62f65 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 fee79d97448..f5e8ea8e9be 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 1cda5f155cc..482cd28b913 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 1149bfea621..8556dfbc15b 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 7523ffb20d4..fd961c54f6f 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 2c4057ea5cd..88fff90bca5 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 994b688277f..ee22394e27d 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 ab4484621b5..90e2eb95752 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 dfd0f225e01..31126cd572c 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 da8cb37ad21..408a7febc83 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 09d9e5a417f..e2fc7602c59 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 43f4b1b47ae..d1c5aedb8a8 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 4f6dd2393d1..22db98e8800 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 f1e408f2732..b1a6d919e4b 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 983f35bed10..9c11161e187 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 dc9feb41951..fba87fab7b0 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 39347ef5576..a8b70769769 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 3294be544b0..c12859caf9f 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 ce4eb65e9d7..3a47238726e 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 9c949ace6b7..54208470029 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 7e7bbc48c2a..45249eec962 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 2c10ed07ff0..f1f4a1bf49f 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 e658dcc040d..99a054dc7c0 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 d1e4d373c60..7ae1fa4e268 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 0a4beb7b0cf..caca285126a 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 22285ca04a8..0700e7b3d99 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 2308ca3d95c..1dffbc58705 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 5fa122f4286..9e401ccb39e 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 d8b18f295b6..98a7c6a85c6 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 d1b6822a49d..cecb31c1855 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 5cf7bcd5d68..93fc1e4cd5f 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 96ead4662fe..13b21ff3e73 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 d64a1a7648d..490f848e8ba 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 398406f8f10..9c648d7abf4 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 b42de789bca..048d466bcd7 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 226d398ddce..eed28bd3953 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 0690e4ad065..f76fbe6a750 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 440d6dcc8ba..073d7df6146 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 a84cd3d48b2..c696dcc8f43 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 0f090db3102..b60f9f5ea6b 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 45baeeaee80..2b446aa2f98 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 6c554d47a18..df4c10903cf 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 4e2dcca9c1a..007d77b8c8d 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 58fd8a9680a..d8b282838d7 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 d7188920082..33811f7c2d7 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 9c2089b7da7..abff04a88a3 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 6f22c602b47..51272f9adcc 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 ea7dd6f5d21..492d3a0be04 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 38987ae3fcd..6160e3fb11a 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 873d363e31a..120eeb9c0d3 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 907b17c5077..e64ca5ea395 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 221f19f98cd..477d91c98b6 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 b5a6288c234..a50899b6342 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 ba901d27ff9..5b0d90e499d 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 38e8c43c1f4..ce6a6cf436b 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 2e643c57831..3a4e83e9eac 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 022c6a58ab8..19fed22a31e 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 b6338a29f69..4d57ad82468 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 c284ef156b3..7f155cef960 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 477775f3603..3eac8b773a3 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 cba554ba6f5..f48f1944ec1 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 4eddc1e4320..6a41e6c9b51 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 25b5a727aa2..9c78fcd3e75 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 796456bd255..d027a5b627b 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 9f9b985425f..52ab38328b6 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 14c12bf96c3..1e0e9070e20 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 b07fc10eac2..ce991ef7680 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 0d0bf71b84b..27de0c60fcb 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 78ced6525d1..583037365b8 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 97aca6b8ab3..88fa5897847 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 3528c78c363..ddde73b6a94 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 95285ef69fd..f7553fbcb6c 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 ce02d8f4cb8..efd025b8fc5 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 c2b91267870..fada367e1d4 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 6cd6577d5c3..0628d5327a9 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 93ba6011086..6b6e9f03514 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 c7a7241ada9..5eb97217d00 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 ba269d7744b..f2d113753ba 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 716d7a6030a..e2c3a54ae05 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 186b2b01595..62f25a007dc 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 5ff89415d67..8f06224b0a5 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 d8e77ce443b..f514cdfe009 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 afa5e0bc5d0..e351e4c5ba5 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 5e7fcb0fccf..fd1b5e9a41e 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 6985ff0266b..d25f40c877c 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 076bb8ded6a..fed1cc1aaac 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 7c2516d0b5b..bb1a8afe622 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 5603c28f2bb..f0e57755a58 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 fc27674a5ef..4ec2a01b2cd 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 d2a60f37e47..789cd237e3a 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 258d908a82d..a991b58fc47 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 5ec5485be3c..8702988c6a9 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 c4ec007a27f..e36f547c989 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 dda651f4c34..ea287d64a24 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 6cdebdee9d3..8c00df1dcb5 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 8778ad47ece..912e4c330a7 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 45abf0d8bea..3c6cdbaf48e 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 3f871a402b8..c5e1c1c999f 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 6d9f0cba625..95d39da19c4 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 0e311002f6b..533618bcae2 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 5142d8cec59..94bc064fa83 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 be9a632bda5..0336d12991f 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 209bd556f29..b91f4cff00b 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 a8c2c338123..6a936a3a236 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 389d96f26d5..0f6eebde867 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 0a0fba95be5..02325709c4f 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 07a0935968c..cce1c24bd62 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 ba6cb86e4ff..c5a0672423c 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 d983a9034ce..35384e06389 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 2201d96d055..f10e3d793b6 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 b7582f8397d..856c5db02a3 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 a06eb575c13..1d77c4f23c2 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 99e89704f5c..f67e122855c 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 8d03a7c27c1..73bb8543716 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 acc7601a540..0581660f61a 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 dbb1fb19df3..db4c7c45917 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 3b0fe8014a7..7ec496f9600 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 6fdfca444cc..1a5ac351b72 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 895f9a0c2ff..73088f4c4b8 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 0d16203f4f0..2b411bcba35 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 bdf6d37fbf6..4e3fe6b6cf0 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 16e647608ed..b800c8b15fe 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 831723c7036..b0a8cbc83e3 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 9a5483080d5..0efaa128d70 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 d3a732383c0..ff5e550a095 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 8816ed02349..e3905b0e18a 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 1a5460cd118..b95c4e8c9b5 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 1a46189d572..f40c1e74368 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 7a749a99e08..2518c6c18b7 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 24d52c3ebdc..fb633c1b183 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 9aa5173104b..19a7d2ae1d6 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 b5ef3ec14fa..6711993ae47 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 3107b90c149..6246cb22305 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 068845e3e6b..9cc62f7f519 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 fb7a1036fbf..2c487372101 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 4f96a601fa1..3500da5f20b 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 9105d3e41fc..ecd03d5e8e3 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 26f1e08ae1c..9b7d431d311 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 b80d4c03ce6..1e0da7598c7 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 e2eb8486e72..b237c1929c1 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 4743cf5201d..f4c7bff1296 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 4bd9e1ae4a6..ffad724427e 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 470c6021fbe..44ae34d94f6 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 ca86c20f0e0..8c1460df713 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 bd4740213b6..74d7671a4a0 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 ed5e35f34d1..ca8bd219173 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 7f6f433ac75..c4082743f5a 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 e289bfcdbe0..8c26c2151d8 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 69d72b7ca23..e66726265fb 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 07375f1ad67..ea817c3e32a 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 e2ee600a0f7..6d2aaa8205a 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 cb34a04c982..8ea80ae5a47 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 82bcc54d1e1..e5b8c6f242e 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 3a62d5267f2..a2dbb64a7c0 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 0e1a80a0e52..a1a3478723f 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 65376522990..ec0ee7ca42a 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 102024b213f..203f826d789 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 6b642f85a3f..2cb0a5a56c0 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 d5dd481091b..e66cbf7b6fa 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 5d3763620ff..d9ddc358f1f 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 94b5c01ab4d..11fb88d6d7f 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 ebaa9e28add..0fb9dae54b9 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 125ab72bbeb..82e9775e6d5 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 64121d973aa..021d802fc0f 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 860a171070d..f7ee1afb6a3 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 2be688fe775..ab5604ecd50 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 9de8cec565b..b1570f90713 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 b584753790c..0fdc48a754c 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 15805231bf2..95b0ed7fe40 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 82f26e3db57..bab1e828667 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 0e9b251293d..68d0e39ed6b 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 28453f83a30..b4bcf97d1a9 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 f2a0898f8e2..0829a98df56 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 958cb7aca63..5c773799fcb 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 17b8e15cea3..6e3a04c1679 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 2c921877b84..f5c9e331476 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 c4ae27f22d0..b915efdd1d8 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 c4c814a7758..65a8f31d901 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 39aaa88475d..64e350abb58 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 ad48bb5a881..672d0782805 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 cdb0afadbb9..a4ff01d73e5 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 3db8abb8266..254c5c82114 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 014c7d5c276..1fd79b6b487 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 f4726ddf5ed..1ed00ded0b7 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 d2fc3a8b54a..f10493e69f5 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 4ba4799659f..57a77518619 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 00ba0260aad..e19cbcf1317 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 f49501e7288..31c9ede866a 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 d002674ad3e..52c8a386a62 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 3923f81669a..15006cb8a19 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 bea08690b46..be50bdcc7c6 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 8e3f2af3b25..8c65e27566d 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 d1be29666ff..442cc89ac15 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 14793c21ea0..ecc6405b20b 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 b253edfcbfa..b4b9f7a06b3 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 adc354aecd9..0593398dbf1 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 93a74085d63..9300ecba65c 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 3090fa91209..002af8e2ba7 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 5df742ebac4..d84c29b75fd 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 ff5200c707b..30e0e12261c 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 ebd414010ee..1a59e0ba041 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 a5ff4d24fcc..6bdf1e54e28 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 4cc149739da..2895117e8d9 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 de179e6c90f..b77eb45d841 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 cd7614319ec..a0ed9d7d5a7 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 dc4a2b076d6..ee7adc11851 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 c1e4bb4e416..3eab6cdb6e3 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 fb12f006b95..98e686ca4af 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 3dfd27877c2..bd1f8f16d6c 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 b798b85cc1b..c7e9a4a55e6 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 be7e47d2f55..bb0ded1e6ca 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 96c813b45ea..af2c2d96c9a 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 e4d7ed64b8f..c6c8fd4ce3b 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 e88e7ad1c4e..955c02e0fa7 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 db729cd2a0d..994ff99b115 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 fd24d3c3437..82aa9080107 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 7328fa0b34e..a85b65b2849 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 06510f3a432..33415cce07a 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 1b58e095c37..36cc3ccea9d 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 0835e9f9b06..763d275027e 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 d021a5c7164..e6666be5e36 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 b3217ced2e2..3e24ce00b5b 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 39ce33a22a8..91e424b4423 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 7eee96d17ee..badd468a38d 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 ac3cd06a316..ad7cdd3b22c 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 edce57fcbbe..0ff64ea2836 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 a1306f2374f..d551d05b5b0 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 d594d2ffa65..6a425dd14cf 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 bab2d4685be..668a46e44b2 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 94c94eba82d..efe19d0f1bc 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 6f5095321c8..31719cabd78 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 ad324f7dfac..3e4a74b9f66 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 db3cf6198cb..f449ce4dc5b 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 5eb1cde5804..7795282572f 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 a3237eaff42..c1060ce4d32 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 611c15490c1..dee5fb94ea0 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 a96a1981dba..a7e2f6db2f8 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 07dd0592985..b342261f0d0 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 5d981406383..aa6066dbe1d 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 a4a7529d044..d8d50ac7cbd 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 35c4d735202..cf710ba200a 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 21889d6e6f0..250545c9299 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 dfbf14499cd..0a3d0502272 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 f4640340648..2efcb1e54f3 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 9d8ec27c58f..02a32a3700a 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 492d2cbdddc..7ddec25f4c7 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 e081ee8c919..bd26bc1bebb 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 b8ca35192af..505b39c831f 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 02f05ad7985..80731facf94 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 ae567a43f90..589a6c49555 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 3b65f01ee46..1b4298709a3 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 70b3b21ed11..f93857b3eb7 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 5c7ad98165e..78ac48fbf2b 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 c10e033d0dd..b70be86c2e1 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 a2e9fe0c1e9..c29c912417f 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 eb9cb3629c4..94eb642bb76 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 258ed1fb2a7..e4cf280ec15 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 651a9d4b62a..341984b9abe 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 aa3bbeca1aa..03dbd9d8bbf 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 87168458200..16cbcf53e95 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 19bf903ad61..839eebe9515 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 1a5ffa23d26..9bef764a420 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 4a999577021..f409c13916c 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 cf943a0f14b..03111761918 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 1ee52d29be9..065e0db5919 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 d9357bb0eaf..2bc965bc60b 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 ce922a7f805..689bc297f18 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 7320243422d..90f1ca5c68d 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 dc35a2878a7..8978f809e79 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 7d50f239b99..726c0c86f91 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 f894c4bd434..b0dc285bb02 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 c3ee2150c63..332f7a571ad 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 197b61feba4..9790a44358f 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 55cc096ed50..9938ea619d3 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 3056a81fde0..c297eb8f17b 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 af6b07b427d..aa4ad62ef30 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 35e747c3ce3..8107401a83a 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 71677b16a41..b156580d7a1 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 73e6618482f..573c459edee 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 cd78edef38e..0959dd58614 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 7547a1c820f..c245b4e49db 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 324ca280d0e..575e934bc36 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 7f1c4e2690b..c23a67c5ee3 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 3d7714dd1e0..cf1af86fa92 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 b3b3549c2fd..81fade65067 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 70696a6ede9..4b62b0ea6c3 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 8174492bcd2..07074c620e5 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 2d9aba273c8..8d0935940cf 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 d2b4c99583e..4e9b4076af6 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 b0a16dbddbb..e64fe1eabe7 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 7814a132da8..77479f4af5b 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 f14f8e47b21..459aa5885af 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 4f27654ffec..93b64b95a5f 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 69643b7e1f8..73567203c11 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 bda3483be5d..3d1a29e74af 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 985b7bd43c4..da7e48a2f32 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 77db8ede28e..dc13b9a138d 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 8bfb7d63fd7..73391710100 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 d368dcbf887..3564c5b1f59 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 bcff169ef97..ed6a769da9c 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 6904702babb..1f922ab8f12 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 3862777b393..d7862ca26bf 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 bd7cd9c5c75..ffddad7efe8 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 6ca2737ff8e..639c3c8f645 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 454b77cec67..e4e66d79a09 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 00000000000..9b9ff7f2a19 --- /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 8985b6f6ba1..00000000000 --- 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 9d75d32ee35..75a6a80575c 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 470b01f1d20..bdb4220e10c 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 caa1589898b..3ff372602f5 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 5b6f4eaff5f..578ce008627 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 1b25d0b144f..d1b9f8d5ff3 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 3e00c00bfcf..d7e01d85aaa 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 999a692ae9c..2cbed4b119f 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 142a21e61df..b38c6345926 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 11b61b4eb14..719ba898512 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 c9a7558e7e9..31ba49acc1d 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 f81ad42afc0..f0c5c475464 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 70b2781ff0f..fcfea3b1d53 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 862c4b27c31..05b72e8cd76 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 bdd5c6f54da..8301db25bee 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 4dc23ef303c..edb0c97ffdf 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 a51ddac7e78..34b87ee4025 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 1b310cfdf69..272ca3326cc 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 03e588b3ef5..a09b7206e49 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 cf4ba24ff66..7d046dab046 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 5cb6c7c68ae..598ca1699fc 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 9988c79d2eb..cc523dd0b85 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 0b51896799c..8661148ca7d 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 429c2d4d430..a123283b588 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 cf9efad8390..db4dbae1f45 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 d48e84f67cd..901e5bfacfa 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 1c3e9b76fdc..d5e17247c7c 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 ea4b53534b1..87a90a9797c 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 a4dd8f84c64..425ba777d05 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 8e25bdcb41f..64db66b38c0 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 21a3ad05474..67100c61503 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 e0a43f73205..9ac63c03159 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 eb28e5e6090..f55b833e394 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 e6573c4854e..b5728da77d0 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 fbcdf82bfc9..ab8a25647ef 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 0d377579d52..920313571ed 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 83e01e32f31..c8bb2d8e1d3 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 252c2f128d7..9493fadf997 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 f2318c46d4a..b056c70b5b1 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 b34881b63f3..d50e25d3b11 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 ca4fdbab02c..db1e5f3204f 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 1de57fddafc..429218bfb1a 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 2bb7d353748..8640fce2ce6 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 9b2271946f9..483b3669b68 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 260f1f94d55..b62fa19b5ab 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 59ce618e451..7345899710d 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 e7a8824c64a..638d7296ce2 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 093859062ce..ed4c552618f 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 040d944525e..28b4ff95c66 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 275111f337c..04f4c38c993 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 7b1e59e2465..04825b0e75f 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 9cb165f7bd8..029c48c6f39 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 465e71d8c0e..76e5a05d204 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 e9e529fd9c2..867c8ea6673 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 2db51c9712f..65ab2dfd6e9 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 58e98674efc..8b5e351b6d9 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 6cbaa22f2ed..73b70b5762e 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 dd6866f0fb1..c526b0c91c1 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 45894eacd93..a9f7835eda6 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 2ade23798a5..288af168365 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 95a5d95c02d..1e2c30b906d 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 efcb5556251..e685c8213cb 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 84408ffb533..c7a634ac2c3 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 5c8924832ad..32b723697c7 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 606ea9c63f0..8b665e863b2 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 1bd569d3d56..f17b46f86d7 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 12fbb6130f4..e6f39ed9b19 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 389f4c6e021..32bfe355464 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 7010816fc1e..2ba7a85adb8 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 dc229ecf34d..a59c1a0a2af 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 2b43817e70d..ab528a9b6a7 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 7bd8faed8f6..d644d6b6271 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 416fc1780b3..c6e78be4832 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 33786226849..b3914cdab34 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 abf3e3feb38..98a42c02e1a 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 8000a40b3d5..63df03b04a0 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 016672f9c50..2e40501c294 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. */