pi-agent-browser-native 0.9.3 → 0.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +77 -5
- package/README.md +103 -81
- package/dist/extensions/agent-browser/index.js +43057 -2031
- package/dist/extensions/agent-browser/lib/argv-descriptor.js +49 -26
- package/dist/extensions/agent-browser/lib/argv-grammar.js +82 -93
- package/dist/extensions/agent-browser/lib/bash-guard.js +129 -126
- package/dist/extensions/agent-browser/lib/batch-lifecycle.js +112 -51
- package/dist/extensions/agent-browser/lib/browser-execution-claim-codec.js +61 -0
- package/dist/extensions/agent-browser/lib/browser-execution-claim-storage.js +232 -0
- package/dist/extensions/agent-browser/lib/browser-execution-claims.js +202 -0
- package/dist/extensions/agent-browser/lib/browser-execution-identity.js +77 -0
- package/dist/extensions/agent-browser/lib/browser-journal-branch.js +98 -0
- package/dist/extensions/agent-browser/lib/browser-journal-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/browser-journal-projection.js +221 -0
- package/dist/extensions/agent-browser/lib/browser-journal-reader.js +89 -0
- package/dist/extensions/agent-browser/lib/browser-journal-replay.js +246 -0
- package/dist/extensions/agent-browser/lib/browser-journal.js +103 -394
- package/dist/extensions/agent-browser/lib/browser-legacy-pages.js +220 -0
- package/dist/extensions/agent-browser/lib/browser-legacy-projection.js +282 -0
- package/dist/extensions/agent-browser/lib/browser-legacy-types.js +1 -0
- package/dist/extensions/agent-browser/lib/browser-session-conversion-stream.js +217 -0
- package/dist/extensions/agent-browser/lib/browser-session-conversion.js +80 -335
- package/dist/extensions/agent-browser/lib/browser-transcript-contracts.js +35 -0
- package/dist/extensions/agent-browser/lib/browser-transcript-validation.js +166 -0
- package/dist/extensions/agent-browser/lib/browser-transcript.js +137 -82
- package/dist/extensions/agent-browser/lib/browser-value-parsing.js +15 -0
- package/dist/extensions/agent-browser/lib/command-capabilities.js +340 -0
- package/dist/extensions/agent-browser/lib/command-policy.js +107 -88
- package/dist/extensions/agent-browser/lib/command-taxonomy.js +49 -322
- package/dist/extensions/agent-browser/lib/config-policy.js +138 -343
- package/dist/extensions/agent-browser/lib/config-providers.js +71 -0
- package/dist/extensions/agent-browser/lib/config-validation.js +218 -0
- package/dist/extensions/agent-browser/lib/config.js +19 -7
- package/dist/extensions/agent-browser/lib/electron/cdp.js +15 -7
- package/dist/extensions/agent-browser/lib/electron/cleanup.js +134 -55
- package/dist/extensions/agent-browser/lib/electron/discovery-darwin.js +109 -0
- package/dist/extensions/agent-browser/lib/electron/discovery-desktop.js +136 -0
- package/dist/extensions/agent-browser/lib/electron/discovery-evidence.js +89 -0
- package/dist/extensions/agent-browser/lib/electron/discovery-linux.js +93 -0
- package/dist/extensions/agent-browser/lib/electron/discovery-packages.js +162 -0
- package/dist/extensions/agent-browser/lib/electron/discovery-types.js +2 -0
- package/dist/extensions/agent-browser/lib/electron/discovery.js +140 -549
- package/dist/extensions/agent-browser/lib/electron/launch-monitor.js +102 -0
- package/dist/extensions/agent-browser/lib/electron/launch-process.js +209 -0
- package/dist/extensions/agent-browser/lib/electron/launch-types.js +2 -0
- package/dist/extensions/agent-browser/lib/electron/launch.js +249 -354
- package/dist/extensions/agent-browser/lib/executable-path.js +21 -12
- package/dist/extensions/agent-browser/lib/execution-cwd.js +35 -18
- package/dist/extensions/agent-browser/lib/input-modes/electron.js +162 -121
- package/dist/extensions/agent-browser/lib/input-modes/job.js +116 -313
- package/dist/extensions/agent-browser/lib/input-modes/lookup-network-evidence.js +104 -0
- package/dist/extensions/agent-browser/lib/input-modes/lookup-plan.js +132 -0
- package/dist/extensions/agent-browser/lib/input-modes/lookup-redaction.js +57 -0
- package/dist/extensions/agent-browser/lib/input-modes/lookup-source-evidence.js +151 -0
- package/dist/extensions/agent-browser/lib/input-modes/lookup-workspace.js +142 -0
- package/dist/extensions/agent-browser/lib/input-modes/lookups.js +57 -412
- package/dist/extensions/agent-browser/lib/input-modes/params.js +63 -17
- package/dist/extensions/agent-browser/lib/input-modes/qa-analysis.js +268 -0
- package/dist/extensions/agent-browser/lib/input-modes/qa-presentation.js +117 -0
- package/dist/extensions/agent-browser/lib/input-modes/script-child.js +396 -0
- package/dist/extensions/agent-browser/lib/input-modes/script-protocol.js +86 -0
- package/dist/extensions/agent-browser/lib/input-modes/script-types.js +1 -0
- package/dist/extensions/agent-browser/lib/input-modes/script-validation.js +60 -0
- package/dist/extensions/agent-browser/lib/input-modes/script.js +60 -409
- package/dist/extensions/agent-browser/lib/input-modes/semantic-action.js +218 -128
- package/dist/extensions/agent-browser/lib/input-modes/shared.js +15 -4
- package/dist/extensions/agent-browser/lib/input-modes/types.js +56 -7
- package/dist/extensions/agent-browser/lib/json-schema.js +22 -10
- package/dist/extensions/agent-browser/lib/launch-scoped-flags.js +17 -5
- package/dist/extensions/agent-browser/lib/managed-session-policy-lock.js +92 -425
- package/dist/extensions/agent-browser/lib/managed-session-posix-storage.js +58 -0
- package/dist/extensions/agent-browser/lib/managed-session-project-identity.js +244 -0
- package/dist/extensions/agent-browser/lib/managed-session-restore-context.js +84 -0
- package/dist/extensions/agent-browser/lib/managed-session-restore-policy.js +119 -0
- package/dist/extensions/agent-browser/lib/managed-session-restore-state.js +83 -0
- package/dist/extensions/agent-browser/lib/managed-session-restore.js +168 -300
- package/dist/extensions/agent-browser/lib/managed-session-snapshot-records.js +277 -0
- package/dist/extensions/agent-browser/lib/managed-session-snapshots.js +128 -305
- package/dist/extensions/agent-browser/lib/managed-session-storage.js +56 -253
- package/dist/extensions/agent-browser/lib/native-confirmation.js +140 -0
- package/dist/extensions/agent-browser/lib/native-output.js +43 -9
- package/dist/extensions/agent-browser/lib/orchestration/batch-stdin.js +106 -59
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/artifact-merge.js +14 -6
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/artifact-paths.js +109 -57
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/browser-observation-result.js +82 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/click-dispatch.js +164 -60
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/diagnostic-values.js +31 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/diagnostics.js +152 -781
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/electron-observation.js +202 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/electron-text-diagnostics.js +109 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/fill-diagnostics.js +119 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/final-result-action-recovery.js +147 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/final-result-actions.js +144 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/final-result-content.js +123 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/final-result-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/final-result-details.js +156 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/final-result-electron.js +179 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/final-result-evidence.js +39 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/final-result-missing-binary.js +89 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/final-result-recovery.js +97 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/final-result-redaction.js +106 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/final-result-timeout.js +110 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/final-result.js +41 -538
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/index.js +199 -154
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/interaction-diagnostics.js +290 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/managed-session-close.js +167 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/managed-session-daemon-inspection.js +108 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/managed-session-daemon-policy.js +127 -205
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/native-helper-observation.js +65 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/observation-types.js +1 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/overlay-diagnostics.js +120 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare/network-page-filter.js +113 -30
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare/scroll-shims.js +109 -28
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare/snapshot-filter-data.js +150 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare/snapshot-filter.js +138 -253
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare/snapshot-rendered-text.js +147 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare/wait-timeouts.js +59 -24
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare-artifacts.js +159 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare-command.js +131 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare-daemon.js +93 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare-failure.js +42 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare-guards.js +242 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare-input.js +75 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare-observations.js +92 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare-page-selection.js +254 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare-page-state.js +121 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare-refs.js +130 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare-resources.js +114 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare-semantic.js +121 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare-session-plan.js +222 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare-timeouts.js +68 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare.js +176 -1123
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-analysis.js +191 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-confirmation.js +152 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-diagnostics.js +182 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-electron.js +150 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-lifecycle-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-lifecycle-phase-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-lifecycle-phase.js +115 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-lifecycle.js +256 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-managed-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-managed.js +256 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-native-phase-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-native-phase.js +93 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-native.js +113 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-navigation-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-navigation.js +316 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-ownership.js +28 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-page-phase-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-page-phase.js +142 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-presentation-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-presentation.js +333 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-publication-phase-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-publication-phase.js +71 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-publication.js +201 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-receipts.js +183 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-refs.js +200 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output-tabs.js +142 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/process-output.js +18 -968
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/prompt-guards.js +23 -13
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/recording-receipt-reconciliation.js +198 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/recording-recovery-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/recording-recovery-presentation.js +154 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/recording-recovery.js +68 -151
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/screenshot-capture.js +14 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/screenshot-observation.js +169 -46
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/session-state-commands.js +130 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/session-state-electron.js +210 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/session-state-observations.js +61 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/session-state-outcomes.js +187 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/session-state-refs.js +171 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/session-state-tabs.js +228 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/session-state.js +77 -765
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/text-visibility-diagnostics.js +182 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/timeout-diagnostics.js +256 -0
- package/dist/extensions/agent-browser/lib/orchestration/browser-run/timeout-progress.js +108 -0
- package/dist/extensions/agent-browser/lib/orchestration/code-artifact-observation.js +39 -0
- package/dist/extensions/agent-browser/lib/orchestration/code-image-observation.js +119 -0
- package/dist/extensions/agent-browser/lib/orchestration/electron-host/branch.js +92 -0
- package/dist/extensions/agent-browser/lib/orchestration/electron-host/cleanup-result.js +58 -0
- package/dist/extensions/agent-browser/lib/orchestration/electron-host/cleanup.js +78 -0
- package/dist/extensions/agent-browser/lib/orchestration/electron-host/contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/orchestration/electron-host/discovery.js +106 -0
- package/dist/extensions/agent-browser/lib/orchestration/electron-host/index.js +48 -821
- package/dist/extensions/agent-browser/lib/orchestration/electron-host/policy.js +86 -0
- package/dist/extensions/agent-browser/lib/orchestration/electron-host/probe-collection.js +69 -0
- package/dist/extensions/agent-browser/lib/orchestration/electron-host/probe-data.js +167 -0
- package/dist/extensions/agent-browser/lib/orchestration/electron-host/probe-presentation.js +164 -0
- package/dist/extensions/agent-browser/lib/orchestration/electron-host/probe.js +161 -0
- package/dist/extensions/agent-browser/lib/orchestration/electron-host/status.js +165 -0
- package/dist/extensions/agent-browser/lib/orchestration/execution-queue.js +21 -9
- package/dist/extensions/agent-browser/lib/orchestration/extension-artifact-preflight.js +211 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-artifacts.js +23 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-attachment-replay.js +99 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-branch-restore.js +275 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-code.js +280 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-command-admission.js +303 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-command-output.js +36 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-command-result.js +335 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-command-run.js +227 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-command-state.js +1 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-electron-ownership.js +204 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-execution-locks.js +139 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-execution-queue.js +24 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-host-coordination.js +98 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-host-run.js +295 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-intent-replay.js +41 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-invocation.js +7 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-lifecycle.js +102 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-managed-ownership.js +133 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-observation.js +120 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-prompt.js +180 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-recording.js +290 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-resource-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-resource-replay.js +269 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-result-state.js +113 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-runtime.js +146 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-script-leases.js +58 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-tool-boundary.js +62 -0
- package/dist/extensions/agent-browser/lib/orchestration/extension-version-check.js +54 -0
- package/dist/extensions/agent-browser/lib/orchestration/input-plan-types.js +1 -0
- package/dist/extensions/agent-browser/lib/orchestration/input-plan.js +261 -185
- package/dist/extensions/agent-browser/lib/orchestration/input-redaction.js +62 -0
- package/dist/extensions/agent-browser/lib/orchestration/native-config.js +144 -0
- package/dist/extensions/agent-browser/lib/orchestration/native-root-launch.js +77 -0
- package/dist/extensions/agent-browser/lib/orchestration/native-session-defaults.js +210 -157
- package/dist/extensions/agent-browser/lib/orchestration/operation-paths.js +124 -58
- package/dist/extensions/agent-browser/lib/orchestration/output-file.js +197 -99
- package/dist/extensions/agent-browser/lib/orchestration/script-mode.js +199 -96
- package/dist/extensions/agent-browser/lib/owned-managed-session-context.js +55 -0
- package/dist/extensions/agent-browser/lib/page-target-batch.js +118 -0
- package/dist/extensions/agent-browser/lib/page-target-guards.js +50 -0
- package/dist/extensions/agent-browser/lib/page-target-navigation.js +104 -0
- package/dist/extensions/agent-browser/lib/page-target-validation.js +55 -246
- package/dist/extensions/agent-browser/lib/parsing.js +13 -4
- package/dist/extensions/agent-browser/lib/pi-tool-rendering.js +133 -68
- package/dist/extensions/agent-browser/lib/playbook.js +16 -12
- package/dist/extensions/agent-browser/lib/process-child.js +284 -0
- package/dist/extensions/agent-browser/lib/process-environment.js +13 -6
- package/dist/extensions/agent-browser/lib/process-errors.js +23 -0
- package/dist/extensions/agent-browser/lib/process-identity.js +47 -15
- package/dist/extensions/agent-browser/lib/process-socket-storage.js +256 -0
- package/dist/extensions/agent-browser/lib/process-stdout.js +74 -0
- package/dist/extensions/agent-browser/lib/process.js +145 -536
- package/dist/extensions/agent-browser/lib/prompt-artifacts.js +287 -0
- package/dist/extensions/agent-browser/lib/prompt-policy.js +15 -194
- package/dist/extensions/agent-browser/lib/read-command.js +41 -0
- package/dist/extensions/agent-browser/lib/read-confirmation.js +131 -68
- package/dist/extensions/agent-browser/lib/recording-reservations.js +118 -45
- package/dist/extensions/agent-browser/lib/redaction-fields.js +75 -0
- package/dist/extensions/agent-browser/lib/redaction-json.js +149 -0
- package/dist/extensions/agent-browser/lib/redaction-url.js +88 -0
- package/dist/extensions/agent-browser/lib/results/action-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/results/action-recommendations.js +28 -271
- package/dist/extensions/agent-browser/lib/results/artifact-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/results/artifact-manifest-validation.js +133 -0
- package/dist/extensions/agent-browser/lib/results/artifact-manifest.js +96 -94
- package/dist/extensions/agent-browser/lib/results/artifact-recommendations.js +73 -0
- package/dist/extensions/agent-browser/lib/results/categories.js +111 -54
- package/dist/extensions/agent-browser/lib/results/confirmation.js +29 -13
- package/dist/extensions/agent-browser/lib/results/editable-ref-evidence.js +62 -27
- package/dist/extensions/agent-browser/lib/results/electron-recommendations.js +83 -0
- package/dist/extensions/agent-browser/lib/results/envelope-decoding.js +48 -0
- package/dist/extensions/agent-browser/lib/results/envelope.js +90 -67
- package/dist/extensions/agent-browser/lib/results/evidence-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/results/failure-recommendations.js +180 -0
- package/dist/extensions/agent-browser/lib/results/network-routes.js +86 -45
- package/dist/extensions/agent-browser/lib/results/network.js +35 -12
- package/dist/extensions/agent-browser/lib/results/next-actions.js +49 -19
- package/dist/extensions/agent-browser/lib/results/presentation/artifact-files.js +320 -0
- package/dist/extensions/agent-browser/lib/results/presentation/artifact-format.js +138 -0
- package/dist/extensions/agent-browser/lib/results/presentation/artifact-images.js +113 -0
- package/dist/extensions/agent-browser/lib/results/presentation/artifact-verification.js +145 -0
- package/dist/extensions/agent-browser/lib/results/presentation/artifacts.js +99 -555
- package/dist/extensions/agent-browser/lib/results/presentation/batch-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/results/presentation/batch-recording.js +118 -0
- package/dist/extensions/agent-browser/lib/results/presentation/batch-redaction.js +68 -0
- package/dist/extensions/agent-browser/lib/results/presentation/batch-rendering.js +135 -0
- package/dist/extensions/agent-browser/lib/results/presentation/batch-step.js +227 -0
- package/dist/extensions/agent-browser/lib/results/presentation/batch-summary.js +91 -0
- package/dist/extensions/agent-browser/lib/results/presentation/batch.js +91 -460
- package/dist/extensions/agent-browser/lib/results/presentation/browser-profile-recovery.js +9 -5
- package/dist/extensions/agent-browser/lib/results/presentation/command-presenters.js +216 -0
- package/dist/extensions/agent-browser/lib/results/presentation/common.js +26 -9
- package/dist/extensions/agent-browser/lib/results/presentation/content.js +86 -29
- package/dist/extensions/agent-browser/lib/results/presentation/diagnostic-a11y.js +67 -0
- package/dist/extensions/agent-browser/lib/results/presentation/diagnostic-health.js +79 -0
- package/dist/extensions/agent-browser/lib/results/presentation/diagnostic-identity.js +199 -0
- package/dist/extensions/agent-browser/lib/results/presentation/diagnostic-logs.js +75 -0
- package/dist/extensions/agent-browser/lib/results/presentation/diagnostic-network-actions.js +216 -0
- package/dist/extensions/agent-browser/lib/results/presentation/diagnostic-network.js +124 -0
- package/dist/extensions/agent-browser/lib/results/presentation/diagnostic-redaction.js +64 -0
- package/dist/extensions/agent-browser/lib/results/presentation/diagnostic-storage.js +209 -0
- package/dist/extensions/agent-browser/lib/results/presentation/diagnostic-stream.js +69 -0
- package/dist/extensions/agent-browser/lib/results/presentation/diagnostic-summary.js +222 -0
- package/dist/extensions/agent-browser/lib/results/presentation/diagnostics.js +103 -1052
- package/dist/extensions/agent-browser/lib/results/presentation/early-result.js +70 -0
- package/dist/extensions/agent-browser/lib/results/presentation/errors.js +130 -60
- package/dist/extensions/agent-browser/lib/results/presentation/input-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/results/presentation/large-output.js +60 -145
- package/dist/extensions/agent-browser/lib/results/presentation/navigation.js +147 -88
- package/dist/extensions/agent-browser/lib/results/presentation/notices.js +75 -0
- package/dist/extensions/agent-browser/lib/results/presentation/observation-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/results/presentation/observation-rendering.js +127 -0
- package/dist/extensions/agent-browser/lib/results/presentation/outcomes.js +120 -0
- package/dist/extensions/agent-browser/lib/results/presentation/output-completion.js +77 -0
- package/dist/extensions/agent-browser/lib/results/presentation/output-spill.js +51 -0
- package/dist/extensions/agent-browser/lib/results/presentation/registry.js +116 -240
- package/dist/extensions/agent-browser/lib/results/presentation/semantic-action.js +35 -21
- package/dist/extensions/agent-browser/lib/results/presentation/skills.js +104 -73
- package/dist/extensions/agent-browser/lib/results/presentation/source.js +109 -0
- package/dist/extensions/agent-browser/lib/results/presentation.js +17 -261
- package/dist/extensions/agent-browser/lib/results/recommendation-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/results/recording.js +52 -14
- package/dist/extensions/agent-browser/lib/results/recovery-actions.js +14 -5
- package/dist/extensions/agent-browser/lib/results/recovery-next-actions.js +30 -22
- package/dist/extensions/agent-browser/lib/results/selector-recovery-target.js +83 -0
- package/dist/extensions/agent-browser/lib/results/selector-recovery.js +119 -119
- package/dist/extensions/agent-browser/lib/results/snapshot-compact.js +266 -0
- package/dist/extensions/agent-browser/lib/results/snapshot-content.js +32 -0
- package/dist/extensions/agent-browser/lib/results/snapshot-high-value-controls.js +104 -71
- package/dist/extensions/agent-browser/lib/results/snapshot-refs.js +31 -11
- package/dist/extensions/agent-browser/lib/results/snapshot-segments.js +125 -66
- package/dist/extensions/agent-browser/lib/results/snapshot-spill.js +26 -7
- package/dist/extensions/agent-browser/lib/results/snapshot.js +28 -248
- package/dist/extensions/agent-browser/lib/results/text.js +16 -5
- package/dist/extensions/agent-browser/lib/runtime-args-validation.js +133 -0
- package/dist/extensions/agent-browser/lib/runtime-compatibility.js +81 -0
- package/dist/extensions/agent-browser/lib/runtime-contracts.js +1 -0
- package/dist/extensions/agent-browser/lib/runtime-redaction.js +118 -0
- package/dist/extensions/agent-browser/lib/runtime-replay-events.js +144 -0
- package/dist/extensions/agent-browser/lib/runtime-session-identity.js +76 -0
- package/dist/extensions/agent-browser/lib/runtime-session-plan.js +114 -0
- package/dist/extensions/agent-browser/lib/runtime-session-replay.js +123 -0
- package/dist/extensions/agent-browser/lib/runtime-tab-correction.js +65 -0
- package/dist/extensions/agent-browser/lib/runtime-timeouts.js +28 -0
- package/dist/extensions/agent-browser/lib/runtime.js +137 -1041
- package/dist/extensions/agent-browser/lib/session-identity.js +51 -0
- package/dist/extensions/agent-browser/lib/session-page-observation.js +357 -0
- package/dist/extensions/agent-browser/lib/session-page-state.js +178 -333
- package/dist/extensions/agent-browser/lib/session-page-types.js +1 -0
- package/dist/extensions/agent-browser/lib/temp-artifact-budget.js +78 -0
- package/dist/extensions/agent-browser/lib/temp-mutation-queue.js +7 -0
- package/dist/extensions/agent-browser/lib/temp-root-ownership.js +234 -0
- package/dist/extensions/agent-browser/lib/temp-root.js +207 -0
- package/dist/extensions/agent-browser/lib/temp.js +33 -446
- package/dist/extensions/agent-browser/lib/tool-surface.js +94 -24
- package/dist/extensions/agent-browser/lib/upstream-version.js +3 -2
- package/dist/extensions/agent-browser/lib/web-search-providers.js +229 -0
- package/dist/extensions/agent-browser/lib/web-search-request.js +108 -0
- package/dist/extensions/agent-browser/lib/web-search-results.js +281 -0
- package/dist/extensions/agent-browser/lib/web-search-schema.js +82 -0
- package/dist/extensions/agent-browser/lib/web-search.js +109 -617
- package/dist/extensions/agent-browser/lib/webmcp-observation.js +13 -6
- package/dist/extensions/agent-browser/lib/windows-stock-launcher.js +63 -37
- package/dist/extensions/agent-browser/script-worker.js +80 -43
- package/dist/scripts/agent-browser-target.mjs +4 -2
- package/docs/ARCHITECTURE.md +17 -5
- package/docs/CODE_QUALITY.md +242 -0
- package/docs/COMMAND_REFERENCE.md +251 -220
- package/docs/ELECTRON.md +53 -44
- package/docs/RELEASE.md +18 -15
- package/docs/REQUIREMENTS.md +1 -0
- package/docs/SUPPORT_MATRIX.md +76 -75
- package/docs/TOOL_CONTRACT.md +145 -116
- package/docs/platform-smoke.md +5 -5
- package/package.json +143 -120
- package/scripts/agent-browser-capability-baseline.mjs +361 -957
- package/scripts/agent-browser-target.mjs +6 -2
- package/scripts/build.mjs +37 -8
- package/scripts/capability-core-commands.mjs +193 -0
- package/scripts/capability-options.mjs +283 -0
- package/scripts/capability-samples.mjs +133 -0
- package/scripts/capability-section.mjs +11 -0
- package/scripts/config.mjs +213 -114
- package/scripts/convert-browser-session.mjs +30 -9
- package/scripts/doctor-sources.mjs +195 -0
- package/scripts/doctor.mjs +92 -247
- package/scripts/platform-smoke/artifacts.mjs +38 -11
- package/scripts/platform-smoke/commands.mjs +104 -0
- package/scripts/platform-smoke/crabbox-runner.mjs +167 -80
- package/scripts/platform-smoke/doctor-support.mjs +157 -0
- package/scripts/platform-smoke/doctor-windows.mjs +230 -0
- package/scripts/platform-smoke/doctor.mjs +212 -320
- package/scripts/platform-smoke/lease-evidence.mjs +134 -0
- package/scripts/platform-smoke/suite-checks.mjs +98 -0
- package/scripts/platform-smoke/suite-evidence.mjs +281 -0
- package/scripts/platform-smoke/targets.mjs +158 -472
- package/scripts/platform-smoke.mjs +55 -40
- package/scripts/prepare.mjs +16 -7
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# Code quality
|
|
2
|
+
|
|
3
|
+
Oxlint owns maintained-code linting, Oxfmt owns supported formatting, and TypeScript,
|
|
4
|
+
tests, builds, and generated-document checks remain independent gates. Use the pinned
|
|
5
|
+
Node runtime and npm version in `package.json`, then `npm ci --ignore-scripts`.
|
|
6
|
+
|
|
7
|
+
Correctness, long-term maintainability, and reliable enforcement are equal
|
|
8
|
+
requirements. Keep production complexity, size, readonly, and safety checks even
|
|
9
|
+
when satisfying them requires substantial restructuring. A maintainability finding
|
|
10
|
+
does not need to identify a current runtime bug. Refactors must improve responsibility
|
|
11
|
+
boundaries, explicit ownership, failure/cancellation flow, and localized changes—not
|
|
12
|
+
just move lines, add forwarding layers, or pass a giant mutable context everywhere.
|
|
13
|
+
Use already authorized exceptions when their conditions are demonstrated; further
|
|
14
|
+
relaxations require concrete evidence and explicit approval.
|
|
15
|
+
|
|
16
|
+
## Commands
|
|
17
|
+
|
|
18
|
+
| Command | Purpose |
|
|
19
|
+
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
20
|
+
| `npm run quality` | Canonical non-modifying acceptance: clean build, checker preparation, scope/suppression policy, lint, formatting, compiler checks, tests with real-tool probes, and generated-doc/upstream-help checks |
|
|
21
|
+
| `npm run lint` | Policy checks followed by strict Oxlint over the complete maintained-code inventory |
|
|
22
|
+
| `npm run lint:agent` | Identical coverage with Oxlint agent diagnostics |
|
|
23
|
+
| `npm run lint:fix` | Identical policy and coverage; apply ordinary safe Oxlint fixes |
|
|
24
|
+
| `npm run format` | Format supported maintained files using Oxfmt |
|
|
25
|
+
| `npm run format:check` | Check formatting without modifying files |
|
|
26
|
+
| `npm run quality:policy` | Validate language coverage and parsed suppression comments; emit the current exception inventory |
|
|
27
|
+
| `npm run quality:scope -- --write` | Regenerate the final exact unchecked-JavaScript override after an intentional scope/tool change |
|
|
28
|
+
| `npm run quality:probes` | Run the focused `node:test` real-CLI regression suite |
|
|
29
|
+
| `npm run quality:mutations` | Require clean acceptance, then prove the real workflow rejects syntax, semantic, compiler, formatting, and allowance-isolation mutations in disposable copies |
|
|
30
|
+
|
|
31
|
+
Review fixes before committing; dangerous fixes and suggestion fixes are not part of
|
|
32
|
+
`lint:fix`. Run formatting after reviewed lint fixes and rerun acceptance. Failures
|
|
33
|
+
are never converted to success by these commands.
|
|
34
|
+
|
|
35
|
+
## Language and role scope
|
|
36
|
+
|
|
37
|
+
The root `.oxlintrc.json` enables type-aware rules and compiler diagnostics. The
|
|
38
|
+
canonical `tsconfig.json` includes maintained extension TypeScript, TypeScript
|
|
39
|
+
scripts, tests, and explicitly checked configuration-policy JavaScript; build configuration
|
|
40
|
+
continues to own emitted extension files.
|
|
41
|
+
|
|
42
|
+
`scripts/code-quality-policy.mjs` discovers maintained code and effective compiler
|
|
43
|
+
projects using the installed TypeScript CLI. It reads inherited settings with
|
|
44
|
+
`tsc --showConfig` and actual project/import membership with `tsc --listFilesOnly`.
|
|
45
|
+
Oxc's parser identifies genuine leading `@ts-check` comments without mistaking
|
|
46
|
+
strings or documentation for directives.
|
|
47
|
+
|
|
48
|
+
| Source | Syntactic lint | Semantic lint | Compiler | Formatting/tests |
|
|
49
|
+
| --------------------------------- | -------------- | ------------- | -------- | ---------------- |
|
|
50
|
+
| TypeScript | Yes | Yes | Yes | Yes |
|
|
51
|
+
| JS with effective `checkJs: true` | Yes | Yes | Yes | Yes |
|
|
52
|
+
| JS with leading `@ts-check` | Yes | Yes | Yes | Yes |
|
|
53
|
+
| Other maintained JS | Yes | No | No | Yes |
|
|
54
|
+
|
|
55
|
+
Unchecked JavaScript is **not ignored**. The final root override lists its exact
|
|
56
|
+
paths and disables only the installed metadata's type-dependent rules plus the
|
|
57
|
+
TypeScript-only module-boundary annotation requirement. It is generated explicitly,
|
|
58
|
+
not dynamically weakened during a lint run. The policy gate rejects drift in files,
|
|
59
|
+
projects, checking directives, metadata, or root lint inventory. Checked files must
|
|
60
|
+
be explicit compiler-project inputs: imported-only checked JS can otherwise fall
|
|
61
|
+
through Oxlint's compiler project assignment. Imported unchecked JS remains available for resolution
|
|
62
|
+
and its TypeScript consumers retain safety checks.
|
|
63
|
+
|
|
64
|
+
There are no extra lint-only JavaScript semantic opt-ins. Test role and language
|
|
65
|
+
scope are separate: unchecked JS tests keep ordinary lint and test checks without
|
|
66
|
+
accidentally inheriting type-dependent test rules. Production limits are complexity
|
|
67
|
+
10, depth 3, four parameters, 40 statements, 80 nonblank/noncomment function lines,
|
|
68
|
+
and 500 nonblank/noncomment file lines. Tests and verified `test/helpers` use
|
|
69
|
+
complexity 15, depth 4, six parameters, and no size/statement limits. Handwritten
|
|
70
|
+
declarations retain type/API checks without structural metrics.
|
|
71
|
+
|
|
72
|
+
## Responsibility and ownership changes
|
|
73
|
+
|
|
74
|
+
The major decompositions preserve the tool surface and lifecycle contracts; they
|
|
75
|
+
separate operations and owners rather than creating a new execution framework.
|
|
76
|
+
|
|
77
|
+
| Before | After and change locality |
|
|
78
|
+
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
79
|
+
| `index.ts` combined registration, prompt caching, command execution, branch replay, and browser/recording/Electron cleanup in one closure. | The entrypoint composes registration. `extension-command-run.ts` makes preparation, durable admission, dispatch, reconciliation, and finish publication explicit. Prompt, artifacts, recording reservations, Electron resources, managed identities, page resources, branch generations, and in-flight code have distinct owners. `BrowserRuntime` is readonly composition, not an exempt mutable bag; leaf helpers receive operations, readonly views, or primitives. |
|
|
80
|
+
| Browser preparation and output mixed input guards, observations, native lifecycle state, artifact handling, and presentation. | `prepare.ts` orders focused validation and preparation. `process-output.ts` exposes native observation, page observation, lifecycle commit, and publication, with owned stdout-spool cleanup in `finally`. Readonly phase results carry evidence; only the existing command, page, restore, probe, and presentation owners receive exact mutation allowances. |
|
|
81
|
+
| Presentation assembled diagnostics, artifact verification/images, notices, output compaction, and redaction together. | `results/presentation.ts` retains the visible assembly order; diagnostic families and artifact verification, image handling, and compaction live at their respective boundaries. Mutable presentation identity is retained only at assembly operations; successful data still passes through redaction. |
|
|
82
|
+
| `runtime.ts` combined argv planning, identity/replay, launch compatibility, timeout rules, and credential redaction. Storage conversion combined decoding, streaming, and publication. | Planning remains pre-spawn and filesystem-free, with focused planning/replay/redaction modules and preserved exports. Journal read/replay/projection and legacy conversion are separate responsibilities; conversion still verifies the unchanged source before exclusive separate-copy publication and releases only its owned resources. |
|
|
83
|
+
|
|
84
|
+
Ordering, branch-generation guards, cancellation, append-failure behavior, native
|
|
85
|
+
argument presence, and cleanup ownership remain independent behavioral contracts.
|
|
86
|
+
The real-CLI probes also reject mutable additions to qualified owners and verify
|
|
87
|
+
that ordinary runtime records and parameter-property writes remain checked.
|
|
88
|
+
|
|
89
|
+
## Corrected checker and allowance integrity
|
|
90
|
+
|
|
91
|
+
The locked baseline is Oxlint **1.87.0**, `oxlint-tsgolint` **7.0.2003**, Oxfmt
|
|
92
|
+
**0.72.0**, TypeScript **7.0.2**, and `oxc-parser` **0.153.0**. Framework rules use
|
|
93
|
+
`eslint-node-test` **1.0.1** through Oxlint's supported JS-plugin mechanism; ESLint
|
|
94
|
+
is its required runtime API dependency, not another configured lint owner.
|
|
95
|
+
|
|
96
|
+
The original backend has reproduced file-safe-call origin and readonly
|
|
97
|
+
intersection/container defects. `scripts/prepare-quality-checker.mjs` builds the
|
|
98
|
+
pinned backend revision `eb9339115edde6811ca94c3433adf69ea9852880` and compiler
|
|
99
|
+
submodule `2bd066d87f5bafd315be9f40889d0a60b9e58e0b`, applies
|
|
100
|
+
`patches/oxlint-tsgolint.patch`, and verifies the cached binary's fingerprint/hash.
|
|
101
|
+
It selects Go **1.27.1**. A clean install needs Git, Go, and network access for this
|
|
102
|
+
first build; no manual installed-package edits or install lifecycle hooks are needed.
|
|
103
|
+
|
|
104
|
+
All semantic lint goes through `scripts/oxlint.mjs`, which forces the verified
|
|
105
|
+
binary through upstream's `OXLINT_TSGOLINT_PATH`. CLI, probes, fixes, and the editor
|
|
106
|
+
must use this same launcher. The checked-in VS Code setting `oxc.path.oxlint` points
|
|
107
|
+
to `./scripts/oxlint.mjs`; the Oxc extension starts `.mjs` launchers with Node.
|
|
108
|
+
Keep Node 24.21.0+ available to the editor. Oxc normally resolves `node` from its
|
|
109
|
+
environment; an editor launched without that PATH can use its user-level
|
|
110
|
+
`oxc.path.node` setting to select the supported executable. Oxc 1.63+ also supports
|
|
111
|
+
`oxc.useExecPath: true` when the editor's bundled Node meets that floor. Do not
|
|
112
|
+
enable it blindly on an editor with an older bundled runtime.
|
|
113
|
+
For another editor, start the language server with `node scripts/oxlint.mjs --lsp`
|
|
114
|
+
using its documented executable mechanism. Do not substitute an independently
|
|
115
|
+
installed global Oxlint or the uncorrected raw backend. Root configuration is shared,
|
|
116
|
+
including JS scope and the actual Node test rules.
|
|
117
|
+
|
|
118
|
+
Oxlint 1.87's language server reports lint diagnostics but does not expose its CLI
|
|
119
|
+
compiler-diagnostic pass. Keep the editor's native TypeScript/JavaScript validation
|
|
120
|
+
enabled (the workspace settings do so), and retain `npm run typecheck` and the
|
|
121
|
+
canonical CLI as independent compiler gates. A successful lint-server handshake
|
|
122
|
+
does not establish compiler coverage. Oxlint 1.87 also does not merge unsaved
|
|
123
|
+
cross-file editor overlays into a dependent file's semantic project. Save referenced
|
|
124
|
+
files and reanalyze the dependent document; the canonical launcher diagnoses and
|
|
125
|
+
clears cross-module ownership at that save/re-pull boundary. This is an upstream
|
|
126
|
+
limitation shared by the unpatched backend, not a persistent native-checker cache.
|
|
127
|
+
|
|
128
|
+
`allowForKnownSafePromises` stays empty. The only safe-call registration group is
|
|
129
|
+
the declaration-qualified `node:test` package's `test`, `it`, `describe`, and `suite`.
|
|
130
|
+
Ordinary floating work, local shadows, and unrelated exports/packages retain
|
|
131
|
+
floating-Promise checking. The complete policy also requires owned native `t.test`
|
|
132
|
+
subtests; do not assume a diagnostic came from `no-floating-promises` when it came
|
|
133
|
+
from `node-test/no-unawaited-subtest`. `node-test/no-nested-tests` additionally rejects
|
|
134
|
+
imported test registration inside a test body; use an owned `t.test` subtest instead.
|
|
135
|
+
The repository uses direct imports, not custom registration reexports; requalify
|
|
136
|
+
framework scope before adopting a different registration pattern. Suite callbacks
|
|
137
|
+
receive an exemption only when their value uses establish exclusive native suite
|
|
138
|
+
ownership. Borrowing a native callable or namespace type does not establish native
|
|
139
|
+
value identity. Opaque module loading or native VM code execution withholds that
|
|
140
|
+
claim for exported callbacks, including when module resolution supplies only a
|
|
141
|
+
declaration or external-library target instead of maintained runtime code. The
|
|
142
|
+
Require analysis uses a precise target only for an explicit relative file operand
|
|
143
|
+
whose native resolved path equals the runtime operand; package conditions and
|
|
144
|
+
extension substitution remain opaque. The checker does not interpret code strings
|
|
145
|
+
or promise a runtime security boundary.
|
|
146
|
+
|
|
147
|
+
Native readonly allowances are declaration-qualified, not shape/name-only. They
|
|
148
|
+
accept the actual native contract, not mutable application additions or runtime
|
|
149
|
+
freezing. Generic `Map`, `Record`, `Readonly`, and callable shapes are not blanket
|
|
150
|
+
allowances. The correction checks native readonly map/set elements recursively
|
|
151
|
+
while preserving mutable-container and mutable-nested-value counterexamples.
|
|
152
|
+
Non-generic TS/JSDoc array aliases retain exact declared identity without introducing
|
|
153
|
+
wrapper types. Built-in browser `URL` and Node's `node:url` `URL` have distinct
|
|
154
|
+
origins; the filesystem `PathLike` contract requires the Node-qualified allowance.
|
|
155
|
+
|
|
156
|
+
`test/code-quality.test.ts` exercises actual language/compiler scope, consumer
|
|
157
|
+
resolution, test-role boundaries, framework diagnostics, declaration isolation,
|
|
158
|
+
mutable intersections, suppression policy, and formatting idempotence. Probes
|
|
159
|
+
check expected rule identities; setup/configuration/parser failures are not valid
|
|
160
|
+
negative evidence. Keep minimal unsuppressed checker reproductions when upgrading
|
|
161
|
+
the backend and retire the patch only after the same controls pass.
|
|
162
|
+
|
|
163
|
+
## Semantic exceptions
|
|
164
|
+
|
|
165
|
+
Native directives must be exact, single-rule `oxlint-disable-next-line` comments
|
|
166
|
+
with a specific adjacent explanation. Supported semantic rules are:
|
|
167
|
+
|
|
168
|
+
- `no-await-in-loop`: journals, dependency ordering, retries, backpressure, locks,
|
|
169
|
+
and ordered cleanup.
|
|
170
|
+
- `no-control-regex`: intentionally escaped field/protocol control-character
|
|
171
|
+
validation.
|
|
172
|
+
- `typescript/no-unnecessary-condition`: necessary live lifecycle checks whose
|
|
173
|
+
state can change during an awaited operation.
|
|
174
|
+
- `typescript/prefer-readonly-parameter-types`: reproduced plain generic callback
|
|
175
|
+
false positives, never mutable callable properties.
|
|
176
|
+
- `node-test/no-conditional-assertion`, **only in tests/test helpers**: exhaustive
|
|
177
|
+
variant validation or independently proven fail-closed narrowing.
|
|
178
|
+
|
|
179
|
+
An explanation is not semantic proof. Review the actual ownership/ordering/guard
|
|
180
|
+
contract and retain boundary tests, including interrupted and uninterrupted paths.
|
|
181
|
+
Do not suppress floating-Promise protection to compensate for a matcher defect.
|
|
182
|
+
Blanket disables, multi-rule disables, ESLint directives, `@ts-ignore`, and
|
|
183
|
+
`@ts-nocheck` are forbidden. Described `@ts-expect-error` is accepted only in
|
|
184
|
+
dedicated `*.test-d.ts` negative type tests with at least ten explanation characters.
|
|
185
|
+
Unused native disables remain errors.
|
|
186
|
+
|
|
187
|
+
The policy command prints current paths, locations, rules, and reasons for every
|
|
188
|
+
comment exception. Exact configuration exceptions are reviewable in root config:
|
|
189
|
+
|
|
190
|
+
`scripts/code-quality-boundaries.mjs` is the canonical inventory of exact local
|
|
191
|
+
declaration and mutation boundaries, including their reasons. `quality:scope -- --write`
|
|
192
|
+
generates their complete rule options immediately before the final JS override;
|
|
193
|
+
overlapping boundaries retain all allowed declarations and the entire strict native
|
|
194
|
+
baseline. Never hand-edit those generated overrides or turn generic maps/sets into
|
|
195
|
+
blanket allowances. The inventory covers diagnostics collectors, next-action
|
|
196
|
+
accumulators, replay fixtures, canonical runtime/resource owners, presentation
|
|
197
|
+
assembly, and the browser-run reducer—not arbitrary input records or read-only views.
|
|
198
|
+
|
|
199
|
+
Reviewed native-resource readonly exceptions remain single-site directives:
|
|
200
|
+
`browser-journal-projection.ts` receives its native async cursor in `projectJson`;
|
|
201
|
+
`browser-session-conversion-stream.ts` receives native async cursors in `writeBytes`
|
|
202
|
+
and `inject`; `recording-reservations.ts` deliberately mutates its existing index
|
|
203
|
+
only in `applyRecordingArtifactsToReservations` and `retireRecordingReservation`.
|
|
204
|
+
These contracts do not exempt generic `AsyncIterable` or `Map` inputs elsewhere.
|
|
205
|
+
|
|
206
|
+
The exact site-policy map in `code-quality-policy.mjs` additionally permits only
|
|
207
|
+
the reviewed native `promisify` callback contracts, sanitized secret-error propagation,
|
|
208
|
+
native cancellation reason identity, and the private numeric generation-token
|
|
209
|
+
constructor. Their unused directives remain errors and their actual locations and
|
|
210
|
+
reasons appear in the emitted inventory.
|
|
211
|
+
|
|
212
|
+
| Scope | Exception | Contract/verification |
|
|
213
|
+
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
|
|
214
|
+
| Tests and test-only helpers | `no-useless-undefined.checkArguments: false` | Preserve argument presence and negative input fixtures; other rule checks remain active |
|
|
215
|
+
| `test/agent-browser.tool-surface.test.ts`, `test/verify-package.test.ts`, `test/doctor.test.ts` | Additionally `checkArrowFunctionBody: false` | Preserve required undefined-returning fixture callbacks |
|
|
216
|
+
| `managed-session-policy-lock.ts`, `browser-execution-claims.ts`, `browser-execution-claim-storage.ts`, `temp-mutation-queue.ts`, `temp-artifact-budget.ts`, `temp-root-ownership.ts`, `temp-root.ts` under the extension library | `checkArrowFunctionBody: false` only | Required undefined-returning release/error callbacks; argument checking remains active |
|
|
217
|
+
| `test/agent-browser.batch-fidelity.test.ts`, `test/agent-browser.native-lifecycle.test.mjs` | `no-await-in-loop: off` | Cohesive inherently ordered native lifecycle suites; original behavior tests retained |
|
|
218
|
+
| `scripts/verify-recording-native.mjs`, `scripts/verify-agent-browser-dogfood.ts` | Exact test role, including `checkTypePredicates: false` | Actual nonpackaged assertion harnesses, not production helpers |
|
|
219
|
+
| `tool-surface.ts`, `web-search.ts`, `orchestration/extension-tool-boundary.ts`, `config-validation.js`, `redaction-fields.ts` under the extension library | `max-params: 5` | Fixed SDK/public config/regex replacement callback arity; other production limits remain active |
|
|
220
|
+
|
|
221
|
+
## Formatting, generation, and CI
|
|
222
|
+
|
|
223
|
+
Oxfmt preserves the repository's tabs, LF endings, semicolons, and existing import
|
|
224
|
+
order. Optional sorting and JSDoc rewriting remain off. The package manager owns
|
|
225
|
+
`package-lock.json`; compiled output and task artifact directories are excluded.
|
|
226
|
+
Generator-owned documentation must converge with Oxfmt through its generator,
|
|
227
|
+
not by hand-editing generated blocks or ignoring maintained documents.
|
|
228
|
+
|
|
229
|
+
`.github/workflows/code-quality.yml` installs locked dependencies, the selected Go
|
|
230
|
+
toolchain, and the separately installed command-reference upstream target. It runs
|
|
231
|
+
the real acceptance and mutation controls without modifying maintained artifacts.
|
|
232
|
+
The release workflow requires this job before publishing. Existing official/fork
|
|
233
|
+
Pi qualification and lifecycle checks remain separate and are not replaced by
|
|
234
|
+
quality acceptance.
|
|
235
|
+
|
|
236
|
+
Classify findings accurately: scope/configuration reductions, checker-integrity
|
|
237
|
+
fixes, genuine source improvements, fixture corrections, and production runtime
|
|
238
|
+
bugs are different outcomes. Zero diagnostics is meaningful only with scope,
|
|
239
|
+
suppression, allowance, typecheck, test, build, generation, and formatting gates
|
|
240
|
+
all passing on the exact integrated revision. Major refactors also require review
|
|
241
|
+
of their resulting responsibilities, ownership, API surface, asynchronous phases,
|
|
242
|
+
and before/after change locality. Green checks do not substitute for that review.
|