@reticlehq/server 3.8.2 → 3.10.0
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/LICENSE +201 -104
- package/NOTICE +5 -0
- package/README.md +1 -1
- package/SKILL.md +13 -12
- package/bin/launch.js +13 -0
- package/bin/package.json +3 -0
- package/bin/reticle.js +66 -8
- package/dist/chromium-launch-options.d.ts +25 -0
- package/dist/chromium-launch-options.js +21 -1
- package/dist/command/cli/adhoc-suite.js +2 -0
- package/dist/command/cli/adhoc-verdict.d.ts +2 -43
- package/dist/command/cli/adhoc-verdict.js +50 -160
- package/dist/command/cli/answers/gate-exit.d.ts +6 -2
- package/dist/command/cli/answers/gate-exit.js +12 -2
- package/dist/command/cli/answers/mcp-connection-hint.d.ts +2 -0
- package/dist/command/cli/answers/mcp-connection-hint.js +6 -0
- package/dist/command/cli/ci-hint.d.ts +44 -0
- package/dist/command/cli/ci-hint.js +72 -0
- package/dist/command/cli/cli-doctor.d.ts +6 -1
- package/dist/command/cli/cli-doctor.js +46 -5
- package/dist/command/cli/cli-flow-commands.d.ts +7 -1
- package/dist/command/cli/cli-flow-commands.js +39 -24
- package/dist/command/cli/cli-kill.d.ts +21 -0
- package/dist/command/cli/cli-kill.js +47 -4
- package/dist/command/cli/cli-parse-compare.d.ts +22 -0
- package/dist/command/cli/cli-parse-compare.js +75 -0
- package/dist/command/cli/cli-parse-grade.d.ts +36 -0
- package/dist/command/cli/cli-parse-grade.js +75 -0
- package/dist/command/cli/cli-parse-grammar.d.ts +2 -0
- package/dist/command/cli/cli-parse-grammar.js +18 -20
- package/dist/command/cli/cli-parse-verify.d.ts +10 -0
- package/dist/command/cli/cli-parse-verify.js +63 -14
- package/dist/command/cli/cli-parse.d.ts +22 -17
- package/dist/command/cli/cli-parse.js +54 -32
- package/dist/command/cli/cli-update-commands.d.ts +1 -1
- package/dist/command/cli/cli-update-commands.js +29 -20
- package/dist/command/cli/cli-usage.js +61 -31
- package/dist/command/cli/cli-verify.d.ts +17 -3
- package/dist/command/cli/cli-verify.js +59 -21
- package/dist/command/cli/cloud-cli.js +2 -119
- package/dist/command/cli/daemon-link/daemon-client.d.ts +45 -0
- package/dist/command/cli/daemon-link/daemon-client.js +205 -0
- package/dist/command/cli/doctor/browser/chromium-hint.d.ts +6 -1
- package/dist/command/cli/doctor/browser/chromium-hint.js +11 -5
- package/dist/command/cli/doctor/doctor-daemon-line.js +6 -3
- package/dist/command/cli/doctor/doctor-fix.d.ts +44 -0
- package/dist/command/cli/doctor/doctor-fix.js +89 -0
- package/dist/command/cli/doctor/doctor-launcher-line.d.ts +23 -0
- package/dist/command/cli/doctor/doctor-launcher-line.js +60 -0
- package/dist/command/cli/doctor/doctor-rows.d.ts +4 -0
- package/dist/command/cli/doctor/doctor-rows.js +4 -0
- package/dist/command/cli/doctor-repairs.d.ts +64 -0
- package/dist/command/cli/doctor-repairs.js +214 -0
- package/dist/command/cli/drive/drive-command.js +3 -7
- package/dist/command/cli/ensure-daemon.d.ts +26 -0
- package/dist/command/cli/ensure-daemon.js +57 -0
- package/dist/command/cli/finished-run/grade-command.d.ts +23 -0
- package/dist/command/cli/finished-run/grade-command.js +180 -0
- package/dist/command/cli/first-use-checks.d.ts +41 -0
- package/dist/command/cli/first-use-checks.js +127 -0
- package/dist/command/cli/first-verdict-node.d.ts +3 -0
- package/dist/command/cli/first-verdict-node.js +189 -0
- package/dist/command/cli/first-verdict.d.ts +126 -0
- package/dist/command/cli/first-verdict.js +267 -0
- package/dist/command/cli/launch/sdk-version-match.d.ts +3 -2
- package/dist/command/cli/launch/sdk-version-match.js +3 -2
- package/dist/command/cli/lifecycle/daemon-lifecycle.d.ts +1 -1
- package/dist/command/cli/lifecycle/daemon-lifecycle.js +7 -6
- package/dist/command/cli/mcp-command.js +13 -4
- package/dist/command/cli/ports/port-holder.d.ts +11 -0
- package/dist/command/cli/ports/port-holder.js +36 -4
- package/dist/command/cli/setup-mcp-cli.d.ts +27 -1
- package/dist/command/cli/setup-mcp-cli.js +98 -23
- package/dist/command/cli/status/status-lines.d.ts +2 -0
- package/dist/command/cli/status/status-lines.js +72 -17
- package/dist/command/cli/status-fields.d.ts +5 -1
- package/dist/command/cli/status-fields.js +24 -6
- package/dist/command/cli/try-command.d.ts +7 -0
- package/dist/command/cli/try-command.js +11 -3
- package/dist/command/cli/two-builds/compare-command.d.ts +48 -0
- package/dist/command/cli/two-builds/compare-command.js +314 -0
- package/dist/command/cli/verify-against.d.ts +61 -0
- package/dist/command/cli/verify-against.js +187 -0
- package/dist/command/cli/verify-no-session.d.ts +2 -0
- package/dist/command/cli/verify-no-session.js +13 -0
- package/dist/command/cli/verify-results.d.ts +35 -2
- package/dist/command/cli/verify-results.js +76 -10
- package/dist/command/cli.js +112 -70
- package/dist/command/daemon/binding/daemon-status-probe.d.ts +3 -1
- package/dist/command/daemon/binding/daemon-status-probe.js +4 -2
- package/dist/command/daemon/daemon-argv.d.ts +9 -0
- package/dist/command/daemon/daemon-argv.js +11 -0
- package/dist/command/daemon/daemon-resolve.d.ts +8 -1
- package/dist/command/daemon/daemon-resolve.js +27 -1
- package/dist/command/daemon/daemon.d.ts +22 -4
- package/dist/command/daemon/daemon.js +52 -10
- package/dist/command/daemon/lifetime/daemon-exit.d.ts +24 -0
- package/dist/command/daemon/lifetime/daemon-exit.js +39 -0
- package/dist/command/daemon/lifetime/death-cause.d.ts +15 -0
- package/dist/command/daemon/lifetime/death-cause.js +149 -0
- package/dist/command/daemon/lifetime/heartbeat.d.ts +7 -15
- package/dist/command/daemon/lifetime/heartbeat.js +11 -15
- package/dist/command/daemon/lifetime/startup-failure.d.ts +29 -0
- package/dist/command/daemon/lifetime/startup-failure.js +62 -0
- package/dist/command/daemon/port-state.d.ts +14 -0
- package/dist/command/daemon/port-state.js +31 -0
- package/dist/command/setup/agent-configs.d.ts +2 -0
- package/dist/command/setup/agent-configs.js +42 -15
- package/dist/command/setup/agent-next-steps.d.ts +77 -0
- package/dist/command/setup/agent-next-steps.js +284 -0
- package/dist/command/setup/agent-writer.js +11 -6
- package/dist/command/setup/bringup/dev-server-files.d.ts +9 -0
- package/dist/command/setup/bringup/dev-server-files.js +17 -0
- package/dist/command/setup/bringup/static-page-server.d.ts +14 -2
- package/dist/command/setup/bringup/static-page-server.js +43 -9
- package/dist/command/setup/init/init-host.js +2 -0
- package/dist/command/setup/init/init-runtime.d.ts +6 -1
- package/dist/command/setup/init/init-runtime.js +63 -21
- package/dist/command/setup/mcp-launcher.d.ts +3 -0
- package/dist/command/setup/mcp-launcher.js +11 -0
- package/dist/command/setup/node-effects.d.ts +3 -2
- package/dist/command/setup/node-effects.js +9 -3
- package/dist/command/setup/remaining-steps.d.ts +8 -0
- package/dist/command/setup/remaining-steps.js +10 -0
- package/dist/command/setup/run-setup.d.ts +2 -0
- package/dist/command/setup/run-setup.js +9 -1
- package/dist/command/setup/setup-command.js +36 -15
- package/dist/command/setup/setup-mcp.d.ts +8 -0
- package/dist/command/setup/setup-mcp.js +47 -20
- package/dist/command/setup/start-dev-server.d.ts +8 -0
- package/dist/command/setup/start-dev-server.js +43 -0
- package/dist/command/update/updater.js +6 -0
- package/dist/command/version/identity/server-version.d.ts +2 -0
- package/dist/command/version/identity/server-version.js +2 -0
- package/dist/command/version/version-skew.d.ts +7 -0
- package/dist/command/version/version-skew.js +14 -3
- package/dist/features/compare/action-plan.d.ts +260 -0
- package/dist/features/compare/action-plan.js +543 -0
- package/dist/features/compare/behaviour-compare.d.ts +24 -0
- package/dist/features/compare/behaviour-compare.js +85 -0
- package/dist/features/compare/behaviour-diff.d.ts +97 -0
- package/dist/features/compare/behaviour-diff.js +202 -0
- package/dist/features/compare/behaviour-report.d.ts +40 -0
- package/dist/features/compare/behaviour-report.js +128 -0
- package/dist/features/compare/build-readings.d.ts +106 -0
- package/dist/features/compare/build-readings.js +250 -0
- package/dist/features/compare/compare-diff.d.ts +62 -0
- package/dist/features/compare/compare-diff.js +177 -0
- package/dist/features/compare/compare-report-html.d.ts +6 -0
- package/dist/features/compare/compare-report-html.js +102 -0
- package/dist/features/compare/compare-report.d.ts +15 -0
- package/dist/features/compare/compare-report.js +73 -0
- package/dist/features/compare/compare-run.d.ts +60 -0
- package/dist/features/compare/compare-run.js +123 -0
- package/dist/features/compare/outside/effect-lines.d.ts +26 -0
- package/dist/features/compare/outside/effect-lines.js +103 -0
- package/dist/features/compare/outside/state-sources.d.ts +76 -0
- package/dist/features/compare/outside/state-sources.js +164 -0
- package/dist/features/compare/outside/value-dictionary.d.ts +51 -0
- package/dist/features/compare/outside/value-dictionary.js +227 -0
- package/dist/features/compare/visible-content.d.ts +20 -0
- package/dist/features/compare/visible-content.js +125 -0
- package/dist/features/crawl/crawl-empty.js +2 -1
- package/dist/features/crawl/crawl-exhaustive.d.ts +55 -0
- package/dist/features/crawl/crawl-exhaustive.js +138 -0
- package/dist/features/crawl/crawl-tools.d.ts +9 -2
- package/dist/features/crawl/crawl-tools.js +28 -12
- package/dist/features/crawl/crawl.d.ts +8 -9
- package/dist/features/crawl/crawl.js +61 -65
- package/dist/features/exhaust/app-coverage.d.ts +5 -1
- package/dist/features/exhaust/app-coverage.js +3 -1
- package/dist/features/exhaust/code-coverage.js +8 -4
- package/dist/features/exhaust/edge-cases.d.ts +133 -0
- package/dist/features/exhaust/edge-cases.js +310 -0
- package/dist/features/exhaust/edges/edge-drive.d.ts +42 -0
- package/dist/features/exhaust/edges/edge-drive.js +364 -0
- package/dist/features/exhaust/edges/edge-run.d.ts +59 -0
- package/dist/features/exhaust/edges/edge-run.js +169 -0
- package/dist/features/exhaust/explorer.d.ts +87 -14
- package/dist/features/exhaust/explorer.js +159 -25
- package/dist/features/exhaust/failure-branches.d.ts +5 -0
- package/dist/features/exhaust/failure-branches.js +29 -11
- package/dist/features/exhaust/invariants.d.ts +112 -0
- package/dist/features/exhaust/invariants.js +188 -0
- package/dist/features/exhaust/ledger.d.ts +68 -0
- package/dist/features/exhaust/ledger.js +121 -13
- package/dist/features/exhaust/session-fold.d.ts +10 -0
- package/dist/features/exhaust/session-fold.js +46 -3
- package/dist/features/exhaust/session-port.d.ts +3 -1
- package/dist/features/exhaust/session-port.js +97 -28
- package/dist/features/grade/grade-answer.d.ts +99 -0
- package/dist/features/grade/grade-answer.js +112 -0
- package/dist/features/grade/grade-noise.d.ts +27 -0
- package/dist/features/grade/grade-noise.js +55 -0
- package/dist/features/grade/grade-renumber.d.ts +12 -0
- package/dist/features/grade/grade-renumber.js +86 -0
- package/dist/features/grade/grade-state.d.ts +50 -0
- package/dist/features/grade/grade-state.js +93 -0
- package/dist/features/grade/grade-suggest.d.ts +33 -0
- package/dist/features/grade/grade-suggest.js +98 -0
- package/dist/features/license/license.d.ts +11 -71
- package/dist/features/license/license.js +43 -136
- package/dist/features/visual/desktop-capture.d.ts +33 -0
- package/dist/features/visual/desktop-capture.js +94 -0
- package/dist/features/visual/step-shots.js +139 -35
- package/dist/features/visual/visual-tools.d.ts +0 -18
- package/dist/features/visual/visual-tools.js +67 -99
- package/dist/import-graph.js +5 -6
- package/dist/index.d.ts +3 -1
- package/dist/index.js +19 -7
- package/dist/judgement/capsule/causal-summary.js +9 -2
- package/dist/judgement/runs/artifact/replay-mapping.d.ts +13 -1
- package/dist/judgement/runs/artifact/replay-mapping.js +1 -1
- package/dist/judgement/runs/reticle-runner.js +16 -2
- package/dist/judgement/runs/run-ledger.d.ts +7 -5
- package/dist/judgement/runs/run-ledger.js +98 -69
- package/dist/judgement/runs/runner-port.d.ts +2 -0
- package/dist/judgement/runs/runner-port.js +23 -5
- package/dist/judgement/runs/verification-sync.d.ts +6 -3
- package/dist/judgement/runs/verification-sync.js +21 -10
- package/dist/language/flows/affected-tools.d.ts +1 -1
- package/dist/language/flows/affected-tools.js +49 -30
- package/dist/language/flows/change/git-changed.d.ts +2 -1
- package/dist/language/flows/change/git-changed.js +19 -2
- package/dist/language/flows/fields/flow-secret-field.d.ts +1 -13
- package/dist/language/flows/fields/flow-secret-field.js +77 -21
- package/dist/language/flows/flow-anchor.d.ts +60 -2
- package/dist/language/flows/flow-anchor.js +125 -20
- package/dist/language/flows/flow-classify.d.ts +20 -0
- package/dist/language/flows/flow-classify.js +90 -12
- package/dist/language/flows/flow-cross-step.d.ts +7 -1
- package/dist/language/flows/flow-cross-step.js +25 -1
- package/dist/language/flows/flow-journey.d.ts +38 -4
- package/dist/language/flows/flow-journey.js +138 -8
- package/dist/language/flows/flow-replay-run.d.ts +0 -16
- package/dist/language/flows/flow-replay-run.js +76 -14
- package/dist/language/flows/flow-replay-types.d.ts +4 -2
- package/dist/language/flows/flow-replay.d.ts +19 -1
- package/dist/language/flows/flow-replay.js +169 -52
- package/dist/language/flows/flow-replayable.js +7 -1
- package/dist/language/flows/flow-start-path.d.ts +34 -5
- package/dist/language/flows/flow-start-path.js +202 -15
- package/dist/language/flows/flow-step-runners.d.ts +14 -13
- package/dist/language/flows/flow-step-runners.js +184 -109
- package/dist/language/flows/flow-store-for-session.d.ts +26 -25
- package/dist/language/flows/flow-store-for-session.js +51 -5
- package/dist/language/flows/flow-tools.js +46 -33
- package/dist/language/flows/flows.js +176 -76
- package/dist/language/flows/recording/tape/recordings.d.ts +21 -16
- package/dist/language/flows/recording/tape/recordings.js +112 -49
- package/dist/language/flows/replay.d.ts +36 -12
- package/dist/language/flows/replay.js +193 -50
- package/dist/language/flows/steps/page-steps.d.ts +68 -0
- package/dist/language/flows/steps/page-steps.js +198 -0
- package/dist/language/flows/suite/sequential-run.d.ts +68 -0
- package/dist/language/flows/suite/sequential-run.js +96 -0
- package/dist/language/flows/verify-change-tools.js +26 -15
- package/dist/launch-chromium.d.ts +1 -0
- package/dist/launch-chromium.js +49 -12
- package/dist/memory/cloud/background-sync.d.ts +13 -0
- package/dist/memory/cloud/background-sync.js +24 -3
- package/dist/memory/cloud/sync-daemon.js +26 -27
- package/dist/memory/cloud/sync-screenshots.js +6 -1
- package/dist/memory/journal/attach-journal.js +2 -1
- package/dist/memory/journal/drive-flow.d.ts +7 -0
- package/dist/memory/journal/drive-flow.js +44 -13
- package/dist/memory/journal/journal-recorder.d.ts +4 -2
- package/dist/memory/journal/session-journal.d.ts +7 -0
- package/dist/memory/journal/session-journal.js +58 -10
- package/dist/memory/project/root-claims.d.ts +9 -0
- package/dist/memory/project/root-claims.js +9 -4
- package/dist/portal/bridge/bridge.d.ts +13 -4
- package/dist/portal/bridge/bridge.js +10 -9
- package/dist/portal/input/download-capture.d.ts +7 -0
- package/dist/portal/input/download-capture.js +92 -0
- package/dist/portal/input/network-detail.d.ts +6 -0
- package/dist/portal/input/network-detail.js +12 -1
- package/dist/portal/input/network-mock-tools.js +49 -13
- package/dist/portal/input/network-mock.d.ts +8 -0
- package/dist/portal/input/network-mock.js +30 -10
- package/dist/portal/input/page-capture.d.ts +24 -0
- package/dist/portal/input/page-capture.js +33 -0
- package/dist/portal/input/real-input.d.ts +35 -18
- package/dist/portal/input/real-input.js +99 -33
- package/dist/portal/input/viewport-tools.d.ts +8 -0
- package/dist/portal/input/viewport-tools.js +81 -21
- package/dist/portal/pool/browser-pool.d.ts +16 -30
- package/dist/portal/pool/browser-pool.js +64 -52
- package/dist/portal/pool/context-permissions.d.ts +34 -17
- package/dist/portal/pool/context-permissions.js +94 -1
- package/dist/portal/pool/csp-widen.d.ts +62 -0
- package/dist/portal/pool/csp-widen.js +132 -0
- package/dist/portal/pool/determinism.d.ts +52 -0
- package/dist/portal/pool/determinism.js +259 -0
- package/dist/portal/pool/lease-emulation.d.ts +34 -1
- package/dist/portal/pool/lease-emulation.js +18 -0
- package/dist/portal/pool/lease-marker-stamp.d.ts +6 -0
- package/dist/portal/pool/lease-marker-stamp.js +15 -1
- package/dist/portal/pool/lease-page-error.d.ts +56 -0
- package/dist/portal/pool/lease-page-error.js +160 -0
- package/dist/portal/pool/page-error-journal.d.ts +63 -0
- package/dist/portal/pool/page-error-journal.js +208 -0
- package/dist/portal/pool/playwright-launcher.js +71 -15
- package/dist/portal/pool/pool-contract.d.ts +49 -1
- package/dist/portal/pool/pool-lease.d.ts +70 -2
- package/dist/portal/pool/pool-lease.js +23 -0
- package/dist/portal/pool/zero-install.d.ts +8 -0
- package/dist/portal/pool/zero-install.js +91 -1
- package/dist/portal/session/dev-server/dev-command.d.ts +11 -2
- package/dist/portal/session/dev-server/dev-command.js +110 -16
- package/dist/portal/session/dev-server/dev-server-probe.d.ts +7 -0
- package/dist/portal/session/dev-server/dev-server-probe.js +9 -0
- package/dist/portal/session/dev-server/project-ports.d.ts +21 -0
- package/dist/portal/session/dev-server/project-ports.js +62 -0
- package/dist/portal/session/facts/departed-network.d.ts +66 -0
- package/dist/portal/session/facts/departed-network.js +142 -0
- package/dist/portal/session/no-session-diagnosis.d.ts +9 -0
- package/dist/portal/session/no-session-diagnosis.js +76 -27
- package/dist/portal/session/no-session-next-action.d.ts +14 -0
- package/dist/portal/session/no-session-next-action.js +56 -7
- package/dist/portal/session/no-session-watch.d.ts +6 -0
- package/dist/portal/session/no-session-watch.js +41 -4
- package/dist/portal/session/page-commands/undeclared-command.d.ts +9 -3
- package/dist/portal/session/page-commands/undeclared-command.js +16 -7
- package/dist/portal/session/recorded-gaps.d.ts +1 -1
- package/dist/portal/session/recorded-gaps.js +5 -2
- package/dist/portal/session/serving-directory.d.ts +10 -0
- package/dist/portal/session/serving-directory.js +39 -8
- package/dist/portal/session/session-manager.d.ts +10 -0
- package/dist/portal/session/session-manager.js +211 -81
- package/dist/portal/session/session.js +4 -3
- package/dist/portal/session/zero-install-first-call.d.ts +20 -1
- package/dist/portal/session/zero-install-first-call.js +34 -2
- package/dist/start-wiring.d.ts +30 -2
- package/dist/start-wiring.js +74 -9
- package/dist/surface/mcp/mcp-proxy.js +10 -2
- package/dist/surface/mcp/mcp.js +8 -5
- package/dist/surface/mcp/peer/agents-connected.d.ts +6 -0
- package/dist/surface/mcp/peer/agents-connected.js +58 -0
- package/dist/surface/mcp/proxy/proxy-daemon-probe.js +17 -5
- package/dist/surface/mcp/shared-params.d.ts +2 -0
- package/dist/surface/mcp/shared-params.js +31 -0
- package/dist/surface/tools/act/act-observation.d.ts +40 -2
- package/dist/surface/tools/act/act-observation.js +118 -12
- package/dist/surface/tools/act/act-preflight.js +38 -18
- package/dist/surface/tools/act/act-sequence-retry.d.ts +23 -2
- package/dist/surface/tools/act/act-sequence-retry.js +61 -5
- package/dist/surface/tools/act/act-target.js +3 -1
- package/dist/surface/tools/act/after-match.d.ts +10 -0
- package/dist/surface/tools/act/after-match.js +40 -0
- package/dist/surface/tools/act/already-true.js +1 -1
- package/dist/surface/tools/act/navigation/reload-result.d.ts +12 -1
- package/dist/surface/tools/act/navigation/reload-result.js +25 -2
- package/dist/surface/tools/act/resolve-target.d.ts +17 -1
- package/dist/surface/tools/act/resolve-target.js +59 -9
- package/dist/surface/tools/act/sequence-grade.d.ts +15 -1
- package/dist/surface/tools/act/sequence-grade.js +45 -27
- package/dist/surface/tools/act/settle-in-flight.js +27 -15
- package/dist/surface/tools/act-command.d.ts +23 -0
- package/dist/surface/tools/act-command.js +50 -0
- package/dist/surface/tools/act-sequence-tool.js +81 -50
- package/dist/surface/tools/act-tools.d.ts +1 -13
- package/dist/surface/tools/act-tools.js +83 -95
- package/dist/surface/tools/agent/build-staleness.d.ts +1 -1
- package/dist/surface/tools/agent/build-staleness.js +1 -1
- package/dist/surface/tools/assert/assert-verdict.js +18 -12
- package/dist/surface/tools/browser-tools.js +87 -13
- package/dist/surface/tools/compare-tools.d.ts +11 -0
- package/dist/surface/tools/compare-tools.js +94 -0
- package/dist/surface/tools/coverage-tools.js +1 -1
- package/dist/surface/tools/dynamic-tools.js +11 -3
- package/dist/surface/tools/empty-session-list.d.ts +2 -0
- package/dist/surface/tools/empty-session-list.js +4 -2
- package/dist/surface/tools/error-recovery.d.ts +12 -1
- package/dist/surface/tools/error-recovery.js +131 -40
- package/dist/surface/tools/explore-tools.js +1 -1
- package/dist/surface/tools/invoke-tool.js +29 -21
- package/dist/surface/tools/lease-coverage-tools.d.ts +49 -0
- package/dist/surface/tools/lease-coverage-tools.js +128 -0
- package/dist/surface/tools/lease-hint.d.ts +42 -1
- package/dist/surface/tools/lease-hint.js +52 -3
- package/dist/surface/tools/lease-readiness.d.ts +47 -0
- package/dist/surface/tools/lease-readiness.js +126 -0
- package/dist/surface/tools/lease-seed.d.ts +16 -1
- package/dist/surface/tools/lease-seed.js +37 -4
- package/dist/surface/tools/lease-tools.d.ts +3 -41
- package/dist/surface/tools/lease-tools.js +104 -124
- package/dist/surface/tools/lease-url-identity.d.ts +46 -0
- package/dist/surface/tools/lease-url-identity.js +97 -0
- package/dist/surface/tools/merge-tools.js +99 -2
- package/dist/surface/tools/merged-name-redirect.js +5 -1
- package/dist/surface/tools/observe-tools.js +15 -9
- package/dist/surface/tools/read/console-pre-attach.d.ts +19 -0
- package/dist/surface/tools/read/console-pre-attach.js +23 -0
- package/dist/surface/tools/read-tools.js +33 -30
- package/dist/surface/tools/real-input-attempt.d.ts +0 -8
- package/dist/surface/tools/real-input-attempt.js +143 -28
- package/dist/surface/tools/repeat-hint.d.ts +40 -0
- package/dist/surface/tools/repeat-hint.js +171 -0
- package/dist/surface/tools/run-report.d.ts +2 -2
- package/dist/surface/tools/run-report.js +27 -15
- package/dist/surface/tools/session-ports.d.ts +14 -0
- package/dist/surface/tools/session-ports.js +53 -0
- package/dist/surface/tools/tool-kit.d.ts +18 -0
- package/dist/surface/tools/tool-kit.js +9 -3
- package/dist/surface/tools/tool-surface.js +0 -1
- package/dist/surface/tools/tools.js +54 -18
- package/dist/surface/tools/type-spelling.d.ts +13 -0
- package/dist/surface/tools/type-spelling.js +36 -0
- package/dist/telemetry/agent-client.d.ts +6 -0
- package/dist/telemetry/agent-client.js +10 -0
- package/dist/telemetry/argument-shape.js +17 -7
- package/dist/telemetry/cli-telemetry.d.ts +10 -1
- package/dist/telemetry/cli-telemetry.js +15 -0
- package/dist/telemetry/init-telemetry.d.ts +2 -1
- package/dist/telemetry/init-telemetry.js +47 -2
- package/dist/telemetry/install-trace.js +23 -4
- package/dist/telemetry/onboarding-funnel.d.ts +19 -2
- package/dist/telemetry/onboarding-funnel.js +25 -3
- package/dist/telemetry/proxy-telemetry.d.ts +2 -1
- package/dist/telemetry/proxy-telemetry.js +2 -2
- package/dist/telemetry/session-metrics.d.ts +1 -1
- package/dist/telemetry/session-metrics.js +67 -27
- package/dist/telemetry/telemetry.d.ts +3 -1
- package/dist/telemetry/telemetry.js +60 -28
- package/dist/telemetry/tool-refused.d.ts +6 -3
- package/dist/telemetry/tool-refused.js +15 -3
- package/docs/actions.mdx +3 -3
- package/docs/agent-cheatsheet.md +1 -1
- package/docs/architecture.md +3 -6
- package/docs/capabilities.mdx +61 -1
- package/docs/cli/affected.mdx +9 -7
- package/docs/cli/cloud.mdx +3 -3
- package/docs/cli/compare.mdx +94 -0
- package/docs/cli/doctor.mdx +41 -2
- package/docs/cli/grade.mdx +97 -0
- package/docs/cli/help.mdx +4 -2
- package/docs/cli/license.mdx +13 -12
- package/docs/cli/restart.mdx +7 -5
- package/docs/cli/rollback.mdx +5 -5
- package/docs/cli/setup.mdx +13 -2
- package/docs/cli/status.mdx +4 -0
- package/docs/cli/stop.mdx +3 -3
- package/docs/cli/update.mdx +2 -2
- package/docs/cli/verify.mdx +23 -1
- package/docs/cli.mdx +34 -24
- package/docs/deploy-checks.md +25 -0
- package/docs/desktop.mdx +1 -1
- package/docs/enterprise.md +17 -22
- package/docs/environment.mdx +1 -0
- package/docs/first-drive.md +1 -1
- package/docs/flows.md +11 -1
- package/docs/frameworks.mdx +9 -9
- package/docs/getting-started.md +1 -1
- package/docs/install-manual.mdx +16 -1
- package/docs/license-activation.mdx +3 -3
- package/docs/packages/engine.mdx +1 -1
- package/docs/packages/server.mdx +1 -1
- package/docs/packages/tauri.mdx +1 -1
- package/docs/packages/test.mdx +1 -1
- package/docs/packages.mdx +1 -1
- package/docs/platform-integration.md +1 -1
- package/docs/predicates.mdx +1 -1
- package/docs/quickstart.mdx +68 -49
- package/docs/skill-setup.md +1 -1
- package/docs/skill.md +14 -13
- package/docs/telemetry.md +6 -4
- package/docs/tools/navigate.mdx +1 -1
- package/docs/tools/verify.mdx +4 -1
- package/docs/troubleshooting.mdx +1 -1
- package/docs/usage.md +17 -14
- package/package.json +18 -14
- package/LICENSE-ENTERPRISE +0 -37
- package/dist/features/ee/audit-log.d.ts +0 -14
- package/dist/features/ee/audit-log.js +0 -11
- package/dist/features/exhaust/exhaust-run.d.ts +0 -33
- package/dist/features/exhaust/exhaust-run.js +0 -82
|
@@ -11,30 +11,32 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { z } from 'zod';
|
|
13
13
|
import { timeoutMsSchema } from './args/numeric-bounds.js';
|
|
14
|
-
import { compileSequenceStep,
|
|
14
|
+
import { compileSequenceStep, pageOf, wroteSince } from '../../language/flows/replay.js';
|
|
15
15
|
import { DEFAULT_SEQUENCE_STEP_TIMEOUT_MS } from '../../language/flows/flow-step-runners.js';
|
|
16
16
|
import { sequenceStepArgs } from './act/act-preflight.js';
|
|
17
|
-
import { REPLAY_PROGRAM_VERSION, ReticleTool, Verified, VerifiedReason, checkIntent, } from '@reticlehq/core';
|
|
17
|
+
import { REPLAY_PROGRAM_VERSION, ReticleCommand, ReticleTool, Verified, VerifiedReason, checkIntent, } from '@reticlehq/core';
|
|
18
18
|
import { healthEnvelope } from '../../portal/session/session-health.js';
|
|
19
19
|
import { pausedShortCircuit, pausedOutputShape, withControl, } from '../../portal/session/control-envelope.js';
|
|
20
|
-
import { asRecord, isAbsenceDerived, isAdvisory } from '@reticlehq/core';
|
|
20
|
+
import { asRecord, asString, isAbsenceDerived, isAdvisory } from '@reticlehq/core';
|
|
21
|
+
import { couldNotEvaluate } from '@reticlehq/engine/evidence/verified.js';
|
|
21
22
|
import { sessionIdFromArgs } from './tools-helpers.js';
|
|
22
|
-
import { describeStepResult, runStepWithStaleRetry } from './act/act-sequence-retry.js';
|
|
23
|
+
import { BURST_MAX_GAP_MS, describeStepResult, runStepWithStaleRetry, } from './act/act-sequence-retry.js';
|
|
23
24
|
import { assertSequenceSteps } from './act/act-preflight.js';
|
|
24
25
|
import { EnvelopeKey, sessionIdShape } from './tool-kit.js';
|
|
25
26
|
import { takeStepShot } from '../../features/visual/step-shots.js';
|
|
26
|
-
import { actCommand } from './act-
|
|
27
|
+
import { actCommand } from './act-command.js';
|
|
27
28
|
import { PredicateSchema, waitForPredicate, } from '@reticlehq/engine/question/predicate/predicate.js';
|
|
28
29
|
import { DeviationMode, gradeSequence, JOURNEY_RECORDING, offerToKeep, } from './act/sequence-grade.js';
|
|
29
30
|
import { stepEffect, appScope } from '@reticlehq/engine/evidence/step-effect.js';
|
|
30
31
|
// resolveActTarget moved out of act-tools into its own module on this branch; #706 was written
|
|
31
32
|
// against the older layout where act-tools re-exported it.
|
|
32
33
|
import { resolveActTarget } from './act/act-target.js';
|
|
34
|
+
import { hiddenTargetField } from './act/resolve-target.js';
|
|
33
35
|
import { gradeOfPredicate } from './assert/assert-grade.js';
|
|
34
36
|
import { describeWaitTarget } from '@reticlehq/engine/evidence/unsettled.js';
|
|
35
37
|
import { sourceOf } from './tools-helpers.js';
|
|
36
38
|
import { confirmedByDeclaration } from './act/act-danger.js';
|
|
37
|
-
import { unreachableTargetNote } from './act/act-observation.js';
|
|
39
|
+
import { diagnoseTimeout, unreachableTargetNote } from './act/act-observation.js';
|
|
38
40
|
/**
|
|
39
41
|
* The step's effect record, best-effort.
|
|
40
42
|
*
|
|
@@ -54,20 +56,43 @@ function effectOf(session, since, expect) {
|
|
|
54
56
|
return {};
|
|
55
57
|
}
|
|
56
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Why a step's check decided nothing, when the target was reachable.
|
|
61
|
+
*
|
|
62
|
+
* A read that could not be evaluated gets the sentence `reticle_act_and_wait` gives for it, with the
|
|
63
|
+
* same diagnosis of a timed-out read. The plan gave the raw error only, so it named no fix (#2204).
|
|
64
|
+
*/
|
|
65
|
+
function whyUndecided(verdict, session) {
|
|
66
|
+
if (true === verdict.observationLost) {
|
|
67
|
+
return `${verdict.failureReason ?? 'the observation was lost'} (the page left)`;
|
|
68
|
+
}
|
|
69
|
+
const missing = diagnoseTimeout(verdict.inconclusive, session);
|
|
70
|
+
if (missing !== undefined) {
|
|
71
|
+
return couldNotEvaluate(missing);
|
|
72
|
+
}
|
|
73
|
+
return verdict.failureReason ?? 'the predicate could not be read';
|
|
74
|
+
}
|
|
75
|
+
/** The step's action, for the sentence that names a step nobody could judge. */
|
|
76
|
+
function actionOf(step) {
|
|
77
|
+
const action = asString(step['action']);
|
|
78
|
+
return action === undefined ? {} : { action };
|
|
79
|
+
}
|
|
80
|
+
/** One step's verdict and its reason. */
|
|
81
|
+
function stepVerdict(check) {
|
|
82
|
+
if (check.held) {
|
|
83
|
+
return 0 < check.contradicted.length
|
|
84
|
+
? { verified: Verified.NO, reason: VerifiedReason.CONTRADICTED }
|
|
85
|
+
: { verified: Verified.YES, reason: undefined };
|
|
86
|
+
}
|
|
87
|
+
if (check.undecided) {
|
|
88
|
+
const reason = true === check.unreachable ? VerifiedReason.INCONCLUSIVE : VerifiedReason.OBSERVATION_LOST;
|
|
89
|
+
return { verified: Verified.UNKNOWN, reason };
|
|
90
|
+
}
|
|
91
|
+
return { verified: Verified.NO, reason: VerifiedReason.ASSERTION_FAILED };
|
|
92
|
+
}
|
|
57
93
|
/** The verdict effect for one step: the same rules act_and_wait applies to one action. */
|
|
58
94
|
function stepVerdictEffect(check) {
|
|
59
|
-
const { verified, reason } = check
|
|
60
|
-
? 0 < check.contradicted.length
|
|
61
|
-
? { verified: Verified.NO, reason: VerifiedReason.CONTRADICTED }
|
|
62
|
-
: { verified: Verified.YES, reason: undefined }
|
|
63
|
-
: check.undecided
|
|
64
|
-
? {
|
|
65
|
-
verified: Verified.UNKNOWN,
|
|
66
|
-
reason: true === check.unreachable
|
|
67
|
-
? VerifiedReason.INCONCLUSIVE
|
|
68
|
-
: VerifiedReason.OBSERVATION_LOST,
|
|
69
|
-
}
|
|
70
|
-
: { verified: Verified.NO, reason: VerifiedReason.ASSERTION_FAILED };
|
|
95
|
+
const { verified, reason } = stepVerdict(check);
|
|
71
96
|
const source = sourceOf(check.source);
|
|
72
97
|
return {
|
|
73
98
|
claim: describeWaitTarget(check.expect),
|
|
@@ -93,18 +118,6 @@ function journalStep(session, args, effect) {
|
|
|
93
118
|
// ponytail: a session without a journal (a test double, journaling off) keeps no check.
|
|
94
119
|
}
|
|
95
120
|
}
|
|
96
|
-
/**
|
|
97
|
-
* Ceiling for a burst gap. Past this it is not a burst, it is a paced walk.
|
|
98
|
-
*
|
|
99
|
-
* HOW TO PICK A GAP, because both edges are real and neither is guessable. It must outlast the
|
|
100
|
-
* handler committing and dispatching its request, and undercut the response it is racing.
|
|
101
|
-
* Measured against a superseded-filter race (the superseded query 700ms, the one replacing it 90ms):
|
|
102
|
-
* at 0ms the first request was never issued at all, and at the ordinary settle (~500ms in a
|
|
103
|
-
* throttled tab, where rAF never fires and the frame budget always times out) the two clicks
|
|
104
|
-
* serialised and never overlapped. 50ms sat in the window. A different app needs a different
|
|
105
|
-
* number: read its own slow endpoint.
|
|
106
|
-
*/
|
|
107
|
-
const BURST_MAX_GAP_MS = 500;
|
|
108
121
|
/** A step error that means nothing was acted on, or the page went away with the observation. */
|
|
109
122
|
const UNJUDGED_STEP = /matched no element|no longer resolves|session disconnected|session (was )?replaced/i;
|
|
110
123
|
export const ACT_SEQUENCE_TOOL = {
|
|
@@ -153,6 +166,8 @@ export const ACT_SEQUENCE_TOOL = {
|
|
|
153
166
|
stopped_at: z.number().optional(),
|
|
154
167
|
/** THE field to gate on: "yes" | "no" | "unknown" — see `because`. */
|
|
155
168
|
verified: z.string().optional(),
|
|
169
|
+
/** The deciding clause of `verified`, from the same list as every other verdict. */
|
|
170
|
+
verifiedReason: z.string().optional(),
|
|
156
171
|
because: z.string().optional(),
|
|
157
172
|
/**
|
|
158
173
|
* Present only when the plan PROVED something — see `offerToKeep`. A plan that declared nothing
|
|
@@ -181,10 +196,11 @@ export const ACT_SEQUENCE_TOOL = {
|
|
|
181
196
|
handler: async (deps, args) => {
|
|
182
197
|
const session = deps.sessions.resolve(sessionIdFromArgs(args));
|
|
183
198
|
const paused = pausedShortCircuit(session);
|
|
184
|
-
if (paused !== undefined)
|
|
199
|
+
if (paused !== undefined) {
|
|
185
200
|
return paused;
|
|
201
|
+
}
|
|
186
202
|
const since = session.elapsed();
|
|
187
|
-
const pageBefore =
|
|
203
|
+
const pageBefore = pageOf(session.url);
|
|
188
204
|
session.beginAction(ReticleTool.ACT_SEQUENCE, asRecord(args));
|
|
189
205
|
try {
|
|
190
206
|
const inputSteps = Array.isArray(args['steps']) ? args['steps'] : [];
|
|
@@ -226,13 +242,17 @@ export const ACT_SEQUENCE_TOOL = {
|
|
|
226
242
|
// Resolve `target` with the same helper reticle_act uses, then dispatch by ref. Passing
|
|
227
243
|
// the unresolved step through used to send `ref: undefined` and the browser blamed a
|
|
228
244
|
// stale empty ref — the caller went looking for a re-render instead of a missing locator.
|
|
245
|
+
// Set by the resolve below, so the step row names a hidden match the step acted on.
|
|
246
|
+
let hidden = {};
|
|
229
247
|
const outcome = await runStepWithStaleRetry(async () => {
|
|
230
248
|
const resolved = await resolveActTarget(session, step, perStepTimeout);
|
|
231
|
-
if ('error' === resolved.kind)
|
|
249
|
+
if ('error' === resolved.kind) {
|
|
232
250
|
return { ok: false, error: resolved.message };
|
|
251
|
+
}
|
|
252
|
+
hidden = hiddenTargetField(resolved);
|
|
233
253
|
// In burst mode every step carries a zero settle budget, so step N+1 is dispatched
|
|
234
254
|
// while step N is still in flight. That overlap IS the test — see `burst` above.
|
|
235
|
-
return actCommand(deps, session, {
|
|
255
|
+
return actCommand(deps, session, ReticleCommand.ACT, {
|
|
236
256
|
ref: resolved.ref,
|
|
237
257
|
action: step['action'],
|
|
238
258
|
// `sequenceStepArgs` reads a step's arguments flat OR nested — keep it, it is the
|
|
@@ -253,8 +273,9 @@ export const ACT_SEQUENCE_TOOL = {
|
|
|
253
273
|
if (burstGapMs !== undefined && i < inputSteps.length - 1) {
|
|
254
274
|
const elapsed = session.elapsed() - stepSince;
|
|
255
275
|
const remaining = burstGapMs - elapsed;
|
|
256
|
-
if (remaining > 0)
|
|
276
|
+
if (remaining > 0) {
|
|
257
277
|
await new Promise((r) => setTimeout(r, remaining));
|
|
278
|
+
}
|
|
258
279
|
}
|
|
259
280
|
if (!outcome.ok) {
|
|
260
281
|
stalledAt = i;
|
|
@@ -266,6 +287,7 @@ export const ACT_SEQUENCE_TOOL = {
|
|
|
266
287
|
});
|
|
267
288
|
const error = outcome.error ?? 'the step could not be performed';
|
|
268
289
|
expectations.push({
|
|
290
|
+
...actionOf(step),
|
|
269
291
|
declared: undefined !== step['expect'],
|
|
270
292
|
held: false,
|
|
271
293
|
observed: error,
|
|
@@ -285,6 +307,7 @@ export const ACT_SEQUENCE_TOOL = {
|
|
|
285
307
|
const describe = () => ({
|
|
286
308
|
...describeStepResult(step, asRecord(outcome.result)),
|
|
287
309
|
...effectOf(session, stepSince, step['expect']),
|
|
310
|
+
...hidden,
|
|
288
311
|
});
|
|
289
312
|
const deciding = (step) => (step.contradictions ?? [])
|
|
290
313
|
.map((c) => c.kind)
|
|
@@ -302,8 +325,15 @@ export const ACT_SEQUENCE_TOOL = {
|
|
|
302
325
|
if (!parsed.success) {
|
|
303
326
|
const described = describe();
|
|
304
327
|
const contradicted = deciding(described);
|
|
328
|
+
// What a quiet, undeclared plan is graded on — see gradeSequence.
|
|
329
|
+
const doubted = (described.contradictions ?? [])
|
|
330
|
+
.map((c) => c.kind)
|
|
331
|
+
.filter((kind) => !isAdvisory(kind) && isAbsenceDerived(kind));
|
|
305
332
|
expectations.push({
|
|
333
|
+
...actionOf(step),
|
|
306
334
|
declared: false,
|
|
335
|
+
settled: true === asRecord(outcome.result)['settled'],
|
|
336
|
+
...(0 === doubted.length ? {} : { doubted }),
|
|
307
337
|
...(0 === contradicted.length ? {} : { contradicted }),
|
|
308
338
|
...(unreachable === undefined ? {} : { undecided: unreachable }),
|
|
309
339
|
});
|
|
@@ -337,15 +367,12 @@ export const ACT_SEQUENCE_TOOL = {
|
|
|
337
367
|
assertion: verdict.assertion,
|
|
338
368
|
}));
|
|
339
369
|
expectations.push({
|
|
370
|
+
...actionOf(step),
|
|
340
371
|
declared: true,
|
|
341
372
|
held,
|
|
342
373
|
...(undecided
|
|
343
374
|
? {
|
|
344
|
-
undecided: unreachable
|
|
345
|
-
? unreachable
|
|
346
|
-
: true === verdict.observationLost
|
|
347
|
-
? `${verdict.failureReason ?? 'the observation was lost'} (the page left)`
|
|
348
|
-
: (verdict.failureReason ?? 'the predicate could not be read'),
|
|
375
|
+
undecided: unreachable ?? whyUndecided(verdict, session),
|
|
349
376
|
}
|
|
350
377
|
: {}),
|
|
351
378
|
...disagreement,
|
|
@@ -364,8 +391,9 @@ export const ACT_SEQUENCE_TOOL = {
|
|
|
364
391
|
});
|
|
365
392
|
if (!held) {
|
|
366
393
|
stoppedAt ??= i;
|
|
367
|
-
if (DeviationMode.HALT === onDeviation)
|
|
394
|
+
if (DeviationMode.HALT === onDeviation) {
|
|
368
395
|
break;
|
|
396
|
+
}
|
|
369
397
|
}
|
|
370
398
|
}
|
|
371
399
|
}
|
|
@@ -393,11 +421,8 @@ export const ACT_SEQUENCE_TOOL = {
|
|
|
393
421
|
* The halted step counts: it WAS dispatched, and only the consequence it declared failed
|
|
394
422
|
* afterwards. A stalled step never ran, which is why that index stays exclusive.
|
|
395
423
|
*/
|
|
396
|
-
const
|
|
397
|
-
|
|
398
|
-
: stoppedAt !== undefined
|
|
399
|
-
? stoppedAt + 1
|
|
400
|
-
: (stalledAt ?? inputSteps.length);
|
|
424
|
+
const halted = DeviationMode.CONTINUE === onDeviation ? undefined : stoppedAt;
|
|
425
|
+
const completed = halted === undefined ? (stalledAt ?? inputSteps.length) : halted + 1;
|
|
401
426
|
if (completed > 0) {
|
|
402
427
|
session.lastAct.markActed(since, undefined, undefined);
|
|
403
428
|
}
|
|
@@ -417,8 +442,9 @@ export const ACT_SEQUENCE_TOOL = {
|
|
|
417
442
|
const compiled = (steps) => {
|
|
418
443
|
const step = compileSequenceStep({ ...args, steps }, { count: completed, steps: stepResults.slice(0, completed) });
|
|
419
444
|
// The journey sent a write request: saved `writes`, so a replay does not repeat it unasked.
|
|
420
|
-
if (wroteSince(session, since))
|
|
445
|
+
if (wroteSince(session, since)) {
|
|
421
446
|
step.writes = true;
|
|
447
|
+
}
|
|
422
448
|
return step;
|
|
423
449
|
};
|
|
424
450
|
const recorded = compiled(proved);
|
|
@@ -426,9 +452,12 @@ export const ACT_SEQUENCE_TOOL = {
|
|
|
426
452
|
const onPage = (step) => pageBefore === undefined ? step : { ...step, page: pageBefore };
|
|
427
453
|
// Every step was on Reticle's own panel: nothing of the app's journey to record.
|
|
428
454
|
const onApp = asRecord(recorded.args)['steps'];
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
455
|
+
// The route as act_and_wait gives it: the ambient tape is cut into journeys by route, and a
|
|
456
|
+
// step with none started a journey of its own and lost the act that came after it.
|
|
457
|
+
if (Array.isArray(onApp) && 0 < onApp.length) {
|
|
458
|
+
deps.recordings.capture(onPage(compiled(ran)), pageBefore, session.id, onPage(recorded));
|
|
459
|
+
}
|
|
460
|
+
deps.recordings.markEnded(pageOf(session.url), session.id);
|
|
432
461
|
}
|
|
433
462
|
/*
|
|
434
463
|
* The grade, and the coverage it is never allowed to hide.
|
|
@@ -440,6 +469,7 @@ export const ACT_SEQUENCE_TOOL = {
|
|
|
440
469
|
const grade = gradeSequence(expectations, {
|
|
441
470
|
planned: inputSteps.length,
|
|
442
471
|
dispatched: completed > 0,
|
|
472
|
+
captureLost: session.lostSince(since),
|
|
443
473
|
});
|
|
444
474
|
// The journey a `keep` offer names, held as a stopped recording so `reticle_flow_save
|
|
445
475
|
// { flowName: JOURNEY_RECORDING, saveAs }` saves exactly what was just driven. The offer used
|
|
@@ -464,6 +494,7 @@ export const ACT_SEQUENCE_TOOL = {
|
|
|
464
494
|
...(stalledAt !== undefined ? { stalled_at: stalledAt } : {}),
|
|
465
495
|
...(stoppedAt !== undefined ? { stopped_at: stoppedAt } : {}),
|
|
466
496
|
verified: grade.verified,
|
|
497
|
+
verifiedReason: grade.reason,
|
|
467
498
|
because: grade.because,
|
|
468
499
|
// Offered at the one moment the compiled program is in hand and free to keep.
|
|
469
500
|
...(() => {
|
|
@@ -1,14 +1,2 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { type ToolDef, type ToolDeps } from './tool-kit.js';
|
|
3
|
-
/**
|
|
4
|
-
* Single dispatch point for every ACT and ACT_SEQUENCE command.
|
|
5
|
-
*
|
|
6
|
-
* reticle_act, act_and_wait and act_sequence rewrite uploads here, once. The path resolves against
|
|
7
|
-
* the session's project, not the daemon's folder, so a worktree uploads its own fixture (#1769).
|
|
8
|
-
*
|
|
9
|
-
* captureAct is called AFTER this, so the flow-recording captures the pre-rewrite args (the path
|
|
10
|
-
* the agent actually wrote) rather than the base64 blob — replay would otherwise send 750 KiB of
|
|
11
|
-
* base64 to the browser as if it were an inline content call.
|
|
12
|
-
*/
|
|
13
|
-
export declare function actCommand(deps: ToolDeps, session: Session, actArgs: Record<string, unknown>, timeoutMs?: number): Promise<import('@reticlehq/core').CommandResult>;
|
|
1
|
+
import { type ToolDef } from './tool-kit.js';
|
|
14
2
|
export declare const ACT_TOOLS: ToolDef[];
|