@reticlehq/server 2.14.0 → 3.2.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/SKILL.md +54 -136
- package/bin/reticle.js +1 -1
- package/dist/command/cli/adhoc-verdict.d.ts +64 -0
- package/dist/command/cli/adhoc-verdict.js +144 -0
- package/dist/command/cli/answers/status-next-action.d.ts +61 -0
- package/dist/command/cli/answers/status-next-action.js +84 -0
- package/dist/command/cli/auth/cloud-keystore.js +97 -0
- package/dist/command/cli/auth/device-flow.d.ts +76 -0
- package/dist/command/cli/auth/device-flow.js +56 -0
- package/dist/command/cli/cli-doctor.js +215 -0
- package/dist/command/cli/cli-flow-commands.d.ts +47 -0
- package/dist/command/cli/cli-flow-commands.js +255 -0
- package/dist/command/cli/cli-kill.d.ts +59 -0
- package/dist/command/cli/cli-kill.js +162 -0
- package/dist/command/cli/cli-parse-grammar.d.ts +29 -0
- package/dist/command/cli/cli-parse-grammar.js +39 -0
- package/dist/command/cli/cli-parse-verify.d.ts +22 -0
- package/dist/command/cli/cli-parse-verify.js +143 -0
- package/dist/command/cli/cli-parse.d.ts +193 -0
- package/dist/command/cli/cli-parse.js +833 -0
- package/dist/command/cli/cli-update-commands.js +112 -0
- package/dist/command/cli/cli-verify.d.ts +124 -0
- package/dist/command/cli/cli-verify.js +426 -0
- package/dist/command/cli/cloud-cli.js +694 -0
- package/dist/command/cli/cloud-kit.d.ts +37 -0
- package/dist/command/cli/cloud-kit.js +117 -0
- package/dist/command/cli/cloud-login.js +183 -0
- package/dist/command/cli/config/config-discovery.d.ts +48 -0
- package/dist/command/cli/config/config-discovery.js +183 -0
- package/dist/command/cli/daemon-start-options.d.ts +33 -0
- package/dist/command/cli/demo/demo-page.d.ts +78 -0
- package/dist/command/cli/demo/demo-page.js +238 -0
- package/dist/command/cli/demo/demo-run.d.ts +38 -0
- package/dist/command/cli/demo/demo-run.js +138 -0
- package/dist/command/cli/doctor/doctor-daemon-line.js +47 -0
- package/dist/command/cli/doctor/doctor-rows.d.ts +75 -0
- package/dist/command/cli/doctor/doctor-rows.js +77 -0
- package/dist/command/cli/doctor/doctor-sessions-line.js +69 -0
- package/dist/command/cli/drive/drive-attach.d.ts +113 -0
- package/dist/command/cli/drive/drive-attach.js +221 -0
- package/dist/command/cli/drive/drive-command.js +107 -0
- package/dist/command/cli/launch/cli-launch.d.ts +100 -0
- package/dist/command/cli/launch/cli-launch.js +216 -0
- package/dist/command/cli/lifecycle/daemon-lifecycle.d.ts +33 -0
- package/dist/command/cli/lifecycle/daemon-lifecycle.js +198 -0
- package/dist/command/cli/mcp-command.js +176 -0
- package/dist/command/cli/ports/port-holder.js +123 -0
- package/dist/command/cli/ports/resolve/cli-port.d.ts +71 -0
- package/dist/command/cli/ports/resolve/cli-port.js +140 -0
- package/dist/command/cli/setup-mcp-cli.d.ts +29 -0
- package/dist/command/cli/setup-mcp-cli.js +107 -0
- package/dist/command/cli/status/status-lines.d.ts +28 -0
- package/dist/command/cli/status/status-lines.js +117 -0
- package/dist/command/cli/status-fields.d.ts +28 -0
- package/dist/command/cli/status-fields.js +29 -0
- package/dist/command/cli/tutorial.d.ts +116 -0
- package/dist/command/cli/tutorial.js +189 -0
- package/dist/command/cli-onboarding.d.ts +21 -0
- package/dist/command/cli-onboarding.js +27 -0
- package/dist/command/cli.d.ts +6 -0
- package/dist/command/cli.js +710 -0
- package/dist/command/daemon/binding/daemon-status-probe.d.ts +2 -0
- package/dist/command/daemon/binding/daemon-status-probe.js +48 -0
- package/dist/command/daemon/binding/loopback-reach.d.ts +42 -0
- package/dist/command/daemon/binding/loopback-reach.js +63 -0
- package/dist/command/daemon/daemon-resilience.d.ts +86 -0
- package/dist/command/daemon/daemon-resilience.js +339 -0
- package/dist/command/daemon/daemon-resolve.d.ts +113 -0
- package/dist/command/daemon/daemon-resolve.js +187 -0
- package/dist/command/daemon/daemon.d.ts +86 -0
- package/dist/command/daemon/daemon.js +333 -0
- package/dist/command/daemon/idle-shutdown.d.ts +54 -0
- package/dist/command/daemon/idle-shutdown.js +98 -0
- package/dist/command/daemon/lifetime/daemon-usefulness.d.ts +60 -0
- package/dist/command/daemon/lifetime/daemon-usefulness.js +61 -0
- package/dist/command/daemon/lifetime/heartbeat.d.ts +119 -0
- package/dist/command/daemon/lifetime/heartbeat.js +151 -0
- package/dist/command/daemon/lifetime/idle-grace.d.ts +32 -0
- package/dist/command/daemon/lifetime/idle-grace.js +41 -0
- package/dist/command/daemon/lifetime/log-cap.d.ts +68 -0
- package/dist/command/daemon/lifetime/log-cap.js +115 -0
- package/dist/command/daemon/state-dir.js +59 -0
- package/dist/command/daemon/wake-decision.d.ts +32 -0
- package/dist/command/daemon/wake-decision.js +38 -0
- package/dist/command/dev/stale-issue-guard.d.ts +35 -0
- package/dist/command/dev/stale-issue-guard.js +69 -0
- package/dist/command/setup/agent-configs.d.ts +111 -0
- package/dist/command/setup/agent-configs.js +365 -0
- package/dist/command/setup/agent-notice-memory.d.ts +16 -0
- package/dist/command/setup/agent-notice-memory.js +65 -0
- package/dist/command/setup/agent-writer.d.ts +52 -0
- package/dist/command/setup/agent-writer.js +116 -0
- package/dist/command/setup/auto-approve.js +153 -0
- package/dist/command/setup/bringup/bridge-port.d.ts +15 -0
- package/dist/command/setup/bringup/bridge-port.js +24 -0
- package/dist/command/setup/bringup/dev-server-wait.d.ts +69 -0
- package/dist/command/setup/bringup/dev-server-wait.js +83 -0
- package/dist/command/setup/bringup/ensure-daemon.js +58 -0
- package/dist/command/setup/init/init-host.js +37 -0
- package/dist/command/setup/init/init-runtime.d.ts +39 -0
- package/dist/command/setup/init/init-runtime.js +168 -0
- package/dist/command/setup/node-effects.d.ts +63 -0
- package/dist/command/setup/node-effects.js +225 -0
- package/dist/command/setup/probe/page-probe.d.ts +71 -0
- package/dist/command/setup/probe/page-probe.js +89 -0
- package/dist/command/setup/remaining-steps.js +53 -0
- package/dist/command/setup/run-setup.d.ts +123 -0
- package/dist/command/setup/run-setup.js +316 -0
- package/dist/command/setup/setup-command.d.ts +48 -0
- package/dist/command/setup/setup-command.js +224 -0
- package/dist/command/setup/setup-install.d.ts +18 -0
- package/dist/command/setup/setup-install.js +40 -0
- package/dist/command/setup/setup-mcp.d.ts +57 -0
- package/dist/command/setup/setup-mcp.js +92 -0
- package/dist/command/setup/setup-options.d.ts +66 -0
- package/dist/command/setup/setup-options.js +63 -0
- package/dist/command/setup/terminal/confirm.js +206 -0
- package/dist/command/setup/terminal/crash.d.ts +55 -0
- package/dist/command/setup/terminal/crash.js +74 -0
- package/dist/command/update/nudge-credit.js +53 -0
- package/dist/command/update/sdk-sync.d.ts +20 -0
- package/dist/command/update/sdk-sync.js +22 -0
- package/dist/command/update/update-checker.js +122 -0
- package/dist/command/update/update-nudge.d.ts +90 -0
- package/dist/command/update/update-nudge.js +211 -0
- package/dist/command/update/updater.d.ts +81 -0
- package/dist/command/update/updater.js +223 -0
- package/dist/command/version/identity/server-version.js +50 -0
- package/dist/command/version/peer-announce.js +32 -0
- package/dist/command/version/sdk-fix.js +127 -0
- package/dist/command/version/version-nudge.js +61 -0
- package/dist/command/version/version-skew.d.ts +113 -0
- package/dist/command/version/version-skew.js +192 -0
- package/dist/features/crawl/crawl-tools.d.ts +7 -0
- package/dist/features/crawl/crawl-tools.js +89 -0
- package/dist/features/crawl/crawl.d.ts +98 -0
- package/dist/features/crawl/crawl.js +444 -0
- package/dist/features/ee/audit-log.js +11 -0
- package/dist/features/harness/drive-report.d.ts +73 -0
- package/dist/features/harness/drive-report.js +196 -0
- package/dist/features/harness/driver.d.ts +50 -0
- package/dist/features/harness/driver.js +239 -0
- package/dist/features/harness/drivers.d.ts +19 -0
- package/dist/features/harness/drivers.js +19 -0
- package/dist/features/harness/fill-values.d.ts +67 -0
- package/dist/features/harness/fill-values.js +153 -0
- package/dist/features/harness/harness.d.ts +159 -0
- package/dist/features/harness/harness.js +203 -0
- package/dist/features/harness/jev-driver.d.ts +188 -0
- package/dist/features/harness/jev-driver.js +664 -0
- package/dist/features/harness/openai-driver.d.ts +46 -0
- package/dist/features/harness/openai-driver.js +197 -0
- package/dist/features/harness/platform-config.d.ts +52 -0
- package/dist/features/harness/platform-config.js +89 -0
- package/dist/features/harness/with-timeout.d.ts +18 -0
- package/dist/features/harness/with-timeout.js +34 -0
- package/dist/features/license/license-env.d.ts +24 -0
- package/dist/features/license/license-env.js +140 -0
- package/dist/features/license/license.d.ts +161 -0
- package/dist/features/license/license.js +287 -0
- package/dist/features/visual/visual-store.d.ts +22 -0
- package/dist/features/visual/visual-store.js +66 -0
- package/dist/features/visual/visual-tools.d.ts +26 -0
- package/dist/features/visual/visual-tools.js +352 -0
- package/dist/hooks/hook-bus.d.ts +53 -0
- package/dist/hooks/hook-bus.js +106 -0
- package/dist/hooks/hook-commands.d.ts +59 -0
- package/dist/hooks/hook-commands.js +184 -0
- package/dist/hooks/hook-emit.d.ts +44 -0
- package/dist/hooks/hook-emit.js +85 -0
- package/dist/import-graph.d.ts +48 -0
- package/dist/import-graph.js +106 -0
- package/dist/index.d.ts +91 -125
- package/dist/index.js +250 -160
- package/dist/judgement/capsule/capsule-store.d.ts +70 -0
- package/dist/judgement/capsule/capsule-store.js +113 -0
- package/dist/judgement/capsule/capsule.d.ts +42 -0
- package/dist/judgement/capsule/capsule.js +73 -0
- package/dist/judgement/capsule/causal-summary.d.ts +119 -0
- package/dist/judgement/capsule/causal-summary.js +172 -0
- package/dist/judgement/capsule/divergence.d.ts +26 -0
- package/dist/judgement/domain/domain-model.js +126 -0
- package/dist/judgement/domain/domain-tools.d.ts +2 -0
- package/dist/judgement/domain/domain-tools.js +96 -0
- package/dist/judgement/domain/flow-risk.js +80 -0
- package/dist/judgement/oracles/propose-consequences.d.ts +22 -0
- package/dist/judgement/oracles/propose-consequences.js +106 -0
- package/dist/judgement/outcome/predicate-to-expect.d.ts +44 -0
- package/dist/judgement/outcome/predicate-to-expect.js +148 -0
- package/dist/judgement/runs/artifact/build-verification-run.d.ts +34 -0
- package/dist/judgement/runs/artifact/build-verification-run.js +83 -0
- package/dist/judgement/runs/artifact/render-report.js +84 -0
- package/dist/judgement/runs/artifact/replay-mapping.js +34 -0
- package/dist/judgement/runs/artifact/run-store.d.ts +54 -0
- package/dist/judgement/runs/artifact/run-store.js +150 -0
- package/dist/judgement/runs/artifact/to-artifact.d.ts +119 -0
- package/dist/judgement/runs/artifact/to-artifact.js +83 -0
- package/dist/judgement/runs/context-tools.d.ts +2 -0
- package/dist/judgement/runs/context-tools.js +70 -0
- package/dist/judgement/runs/default-run-id.d.ts +8 -0
- package/dist/judgement/runs/default-run-id.js +11 -0
- package/dist/judgement/runs/drive-run.d.ts +61 -0
- package/dist/judgement/runs/drive-run.js +130 -0
- package/dist/judgement/runs/late-answer.d.ts +55 -0
- package/dist/judgement/runs/late-answer.js +81 -0
- package/dist/judgement/runs/reticle-runner.d.ts +60 -0
- package/dist/judgement/runs/reticle-runner.js +95 -0
- package/dist/judgement/runs/run-tools.d.ts +17 -0
- package/dist/judgement/runs/run-tools.js +97 -0
- package/dist/judgement/runs/runner-port.d.ts +11 -0
- package/dist/judgement/runs/runner-port.js +18 -0
- package/dist/judgement/runs/verification-sync.d.ts +13 -0
- package/dist/judgement/runs/verification-sync.js +93 -0
- package/dist/language/flows/affected-tools.d.ts +18 -0
- package/dist/language/flows/affected-tools.js +83 -0
- package/dist/language/flows/annotate-tools.d.ts +15 -0
- package/dist/language/flows/annotate-tools.js +179 -0
- package/dist/language/flows/change/affected.d.ts +24 -0
- package/dist/language/flows/change/affected.js +35 -0
- package/dist/language/flows/change/flow-sources.d.ts +19 -0
- package/dist/language/flows/change/flow-sources.js +55 -0
- package/dist/language/flows/change/gate.js +33 -0
- package/dist/language/flows/decision.d.ts +45 -0
- package/dist/language/flows/decision.js +371 -0
- package/dist/language/flows/empty-flow.js +24 -0
- package/dist/language/flows/fields/flow-secret-field.d.ts +53 -0
- package/dist/language/flows/fields/flow-secret-field.js +75 -0
- package/dist/language/flows/fields/flow-upload-resolve.d.ts +23 -0
- package/dist/language/flows/fields/flow-upload-resolve.js +46 -0
- package/dist/language/flows/flow-anchor.d.ts +59 -0
- package/dist/language/flows/flow-anchor.js +240 -0
- package/dist/language/flows/flow-classify.d.ts +73 -0
- package/dist/language/flows/flow-classify.js +146 -0
- package/dist/language/flows/flow-expect-grammar.d.ts +33 -0
- package/dist/language/flows/flow-expect-grammar.js +155 -0
- package/dist/language/flows/flow-intent.d.ts +52 -0
- package/dist/language/flows/flow-intent.js +123 -0
- package/dist/language/flows/flow-learning.d.ts +52 -0
- package/dist/language/flows/flow-learning.js +76 -0
- package/dist/language/flows/flow-mutate-tools.d.ts +14 -0
- package/dist/language/flows/flow-mutate-tools.js +82 -0
- package/dist/language/flows/flow-replay-run.d.ts +91 -0
- package/dist/language/flows/flow-replay-run.js +748 -0
- package/dist/language/flows/flow-replay-types.d.ts +37 -0
- package/dist/language/flows/flow-replay-types.js +1 -0
- package/dist/language/flows/flow-replay.d.ts +91 -0
- package/dist/language/flows/flow-replay.js +487 -0
- package/dist/language/flows/flow-result.d.ts +35 -0
- package/dist/language/flows/flow-result.js +26 -0
- package/dist/language/flows/flow-step-runners.d.ts +54 -0
- package/dist/language/flows/flow-step-runners.js +369 -0
- package/dist/language/flows/flow-store-for-session.d.ts +32 -0
- package/dist/language/flows/flow-success.d.ts +32 -0
- package/dist/language/flows/flow-success.js +181 -0
- package/dist/language/flows/flow-tools.d.ts +15 -0
- package/dist/language/flows/flow-tools.js +842 -0
- package/dist/language/flows/flows.d.ts +114 -0
- package/dist/language/flows/flows.js +492 -0
- package/dist/language/flows/heal-precondition.d.ts +28 -0
- package/dist/language/flows/heal-precondition.js +38 -0
- package/dist/language/flows/heal-run.d.ts +17 -0
- package/dist/language/flows/heal-run.js +186 -0
- package/dist/language/flows/heal.js +97 -0
- package/dist/language/flows/mutation-run.d.ts +33 -0
- package/dist/language/flows/mutation-run.js +60 -0
- package/dist/language/flows/narrow-write.d.ts +32 -0
- package/dist/language/flows/narrow-write.js +26 -0
- package/dist/language/flows/recording/flake.d.ts +56 -0
- package/dist/language/flows/recording/recording-backtrack.js +73 -0
- package/dist/language/flows/recording/tape/recordings.d.ts +134 -0
- package/dist/language/flows/recording/tape/recordings.js +144 -0
- package/dist/language/flows/replay.d.ts +83 -0
- package/dist/language/flows/replay.js +397 -0
- package/dist/language/flows/role-anchor-nearest.js +45 -0
- package/dist/language/flows/stores/assertion-tiers-store.d.ts +26 -0
- package/dist/language/flows/stores/assertion-tiers-store.js +107 -0
- package/dist/language/flows/stores/flake-store.d.ts +18 -0
- package/dist/language/flows/stores/flake-store.js +58 -0
- package/dist/language/flows/suite/server-verify.d.ts +15 -0
- package/dist/language/flows/suite/server-verify.js +56 -0
- package/dist/language/flows/suite/suite-flakes.d.ts +34 -0
- package/dist/language/flows/suite/suite-flakes.js +32 -0
- package/dist/language/flows/suite-selection.d.ts +45 -0
- package/dist/language/flows/suite-selection.js +84 -0
- package/dist/language/flows/verify-change-tools.d.ts +2 -0
- package/dist/language/flows/verify-change-tools.js +244 -0
- package/dist/machine/clock.d.ts +24 -0
- package/dist/machine/clock.js +1 -0
- package/dist/machine/repo-root.d.ts +16 -0
- package/dist/machine/repo-root.js +20 -0
- package/dist/memory/cloud/account-state.d.ts +20 -0
- package/dist/memory/cloud/account-state.js +70 -0
- package/dist/memory/cloud/cloud-config.d.ts +79 -0
- package/dist/memory/cloud/cloud-config.js +156 -0
- package/dist/memory/cloud/cloud-sync.d.ts +195 -0
- package/dist/memory/cloud/cloud-sync.js +359 -0
- package/dist/memory/cloud/harness-config.d.ts +10 -0
- package/dist/memory/cloud/harness-config.js +58 -0
- package/dist/memory/cloud/harness-offer.d.ts +44 -0
- package/dist/memory/cloud/harness-offer.js +146 -0
- package/dist/memory/cloud/harness-switch.d.ts +11 -0
- package/dist/memory/cloud/harness-switch.js +53 -0
- package/dist/memory/cloud/sync-cycle.d.ts +121 -0
- package/dist/memory/cloud/sync-cycle.js +295 -0
- package/dist/memory/cloud/sync-daemon.d.ts +73 -0
- package/dist/memory/cloud/sync-daemon.js +297 -0
- package/dist/memory/cloud/sync-disk.js +193 -0
- package/dist/memory/impact/impact-recorder.d.ts +54 -0
- package/dist/memory/impact/impact-recorder.js +160 -0
- package/dist/memory/impact/impact-store.d.ts +52 -0
- package/dist/memory/impact/impact-store.js +274 -0
- package/dist/memory/intent/inline-intent.d.ts +60 -0
- package/dist/memory/intent/inline-intent.js +206 -0
- package/dist/memory/intent/intent-shard-store.d.ts +87 -0
- package/dist/memory/intent/intent-shard-store.js +215 -0
- package/dist/memory/intent/intent-shard.d.ts +389 -0
- package/dist/memory/intent/intent-shard.js +153 -0
- package/dist/memory/intent/intent-store.d.ts +47 -0
- package/dist/memory/intent/intent-store.js +133 -0
- package/dist/memory/intent/intent-subject.d.ts +46 -0
- package/dist/memory/intent/intent-subject.js +175 -0
- package/dist/memory/intent/intent-tools.d.ts +2 -0
- package/dist/memory/intent/intent-tools.js +157 -0
- package/dist/memory/intent/open-intents.d.ts +36 -0
- package/dist/memory/intent/open-intents.js +58 -0
- package/dist/memory/journal/ambient-store.d.ts +13 -0
- package/dist/memory/journal/ambient-store.js +52 -0
- package/dist/memory/journal/attach-journal.d.ts +37 -0
- package/dist/memory/journal/attach-journal.js +26 -0
- package/dist/memory/journal/drive-flow.d.ts +74 -0
- package/dist/memory/journal/drive-flow.js +157 -0
- package/dist/memory/journal/drive-run-flush.d.ts +42 -0
- package/dist/memory/journal/drive-run-flush.js +82 -0
- package/dist/memory/journal/envelope-store.d.ts +16 -0
- package/dist/memory/journal/envelope-store.js +61 -0
- package/dist/memory/journal/envelope.d.ts +230 -0
- package/dist/memory/journal/journal-query.d.ts +66 -0
- package/dist/memory/journal/journal-query.js +98 -0
- package/dist/memory/journal/journal-recorder.d.ts +109 -0
- package/dist/memory/journal/journal-recorder.js +153 -0
- package/dist/memory/journal/on-disk/ambient-file.d.ts +21 -0
- package/dist/memory/journal/on-disk/ambient-file.js +15 -0
- package/dist/memory/journal/on-disk/retention.d.ts +141 -0
- package/dist/memory/journal/on-disk/retention.js +291 -0
- package/dist/memory/journal/on-disk/workspace-gitignore.d.ts +21 -0
- package/dist/memory/journal/on-disk/workspace-gitignore.js +93 -0
- package/dist/memory/journal/self-observation.d.ts +3 -0
- package/dist/memory/journal/self-observation.js +67 -0
- package/dist/memory/journal/session-end.d.ts +112 -0
- package/dist/memory/journal/session-end.js +179 -0
- package/dist/memory/journal/session-journal.d.ts +134 -0
- package/dist/memory/journal/session-journal.js +614 -0
- package/dist/memory/project/artifact-root-resolver.d.ts +3 -0
- package/dist/memory/project/artifact-root-resolver.js +89 -0
- package/dist/memory/project/artifact-root.d.ts +109 -0
- package/dist/memory/project/artifact-root.js +157 -0
- package/dist/memory/project/dir/fill-value-store.d.ts +32 -0
- package/dist/memory/project/dir/fill-value-store.js +88 -0
- package/dist/memory/project/dir/reticle-dir.d.ts +139 -0
- package/dist/memory/project/dir/reticle-dir.js +229 -0
- package/dist/memory/project/fs/fs-port.d.ts +68 -0
- package/dist/memory/project/fs/fs-port.js +82 -0
- package/dist/memory/project/learned-routes.d.ts +38 -0
- package/dist/memory/project/learned-routes.js +79 -0
- package/dist/memory/project/memory-fs.d.ts +10 -0
- package/dist/memory/project/project-for-root.d.ts +30 -0
- package/dist/memory/project/project-for-root.js +43 -0
- package/dist/memory/project/project-store.d.ts +54 -0
- package/dist/memory/project/project-store.js +244 -0
- package/dist/memory/project/project-tools.d.ts +8 -0
- package/dist/memory/project/project-tools.js +160 -0
- package/dist/memory/project/reticle-deps.d.ts +15 -0
- package/dist/memory/project/reticle-deps.js +33 -0
- package/dist/memory/project/session-root.d.ts +52 -0
- package/dist/memory/project/session-root.js +100 -0
- package/dist/memory/recall/memory-tools.d.ts +2 -0
- package/dist/memory/recall/memory-tools.js +81 -0
- package/dist/memory/recall/prior/connection-memory.d.ts +65 -0
- package/dist/memory/recall/prior/connection-memory.js +114 -0
- package/dist/memory/recall/project-memory.d.ts +33 -0
- package/dist/portal/bridge/auth-failure-reason.d.ts +32 -0
- package/dist/portal/bridge/auth-failure-reason.js +68 -0
- package/dist/portal/bridge/bridge-security.d.ts +30 -0
- package/dist/portal/bridge/bridge-security.js +53 -0
- package/dist/portal/bridge/bridge.d.ts +109 -0
- package/dist/portal/bridge/bridge.js +808 -0
- package/dist/portal/input/drive-url-stamp.d.ts +14 -0
- package/dist/portal/input/drive-url-stamp.js +33 -0
- package/dist/portal/input/network-detail.d.ts +97 -0
- package/dist/portal/input/network-detail.js +138 -0
- package/dist/portal/input/network-mock-tools.d.ts +21 -0
- package/dist/portal/input/network-mock-tools.js +124 -0
- package/dist/portal/input/network-mock.js +83 -0
- package/dist/portal/input/network-mutation.d.ts +47 -0
- package/dist/portal/input/network-mutation.js +53 -0
- package/dist/portal/input/real-input.d.ts +261 -0
- package/dist/portal/input/real-input.js +488 -0
- package/dist/portal/input/scroll-find.js +111 -0
- package/dist/portal/input/scroll-tools.d.ts +2 -0
- package/dist/portal/input/scroll-tools.js +76 -0
- package/dist/portal/input/storage-fixture.d.ts +57 -0
- package/dist/portal/input/storage-fixture.js +92 -0
- package/dist/portal/input/viewport-tools.d.ts +2 -0
- package/dist/portal/input/viewport-tools.js +72 -0
- package/dist/portal/pool/browser-pool.d.ts +174 -0
- package/dist/portal/pool/browser-pool.js +559 -0
- package/dist/portal/pool/lease-reaper.js +40 -0
- package/dist/portal/pool/playwright-launcher.js +150 -0
- package/dist/portal/pool/pool-contract.d.ts +116 -0
- package/dist/portal/pool/pool-contract.js +8 -0
- package/dist/portal/pool/storage-seed.d.ts +23 -0
- package/dist/portal/realm/conformance-client.d.ts +43 -0
- package/dist/portal/realm/conformance-client.js +227 -0
- package/dist/portal/realm/http-witness.d.ts +48 -0
- package/dist/portal/realm/http-witness.js +135 -0
- package/dist/portal/realm/web-realm.d.ts +225 -0
- package/dist/portal/realm/web-realm.js +661 -0
- package/dist/portal/session/daemon-answers.d.ts +20 -0
- package/dist/portal/session/daemon-answers.js +20 -0
- package/dist/portal/session/dev-server/dev-server-probe.js +147 -0
- package/dist/portal/session/facts/handshake-facts.d.ts +56 -0
- package/dist/portal/session/facts/handshake-facts.js +1 -0
- package/dist/portal/session/facts/observed-state.d.ts +60 -0
- package/dist/portal/session/facts/observed-state.js +121 -0
- package/dist/portal/session/facts/session-replaced.d.ts +43 -0
- package/dist/portal/session/facts/session-replaced.js +51 -0
- package/dist/portal/session/live-control-tools.d.ts +15 -0
- package/dist/portal/session/live-control-tools.js +242 -0
- package/dist/portal/session/no-session-diagnosis.d.ts +176 -0
- package/dist/portal/session/no-session-diagnosis.js +457 -0
- package/dist/portal/session/no-session-next-action.d.ts +76 -0
- package/dist/portal/session/no-session-next-action.js +211 -0
- package/dist/portal/session/no-session-watch.js +351 -0
- package/dist/portal/session/output-budget.d.ts +82 -0
- package/dist/portal/session/output-budget.js +108 -0
- package/dist/portal/session/page-commands/undeclared-command.d.ts +30 -0
- package/dist/portal/session/page-commands/undeclared-command.js +44 -0
- package/dist/portal/session/presence/session-recommendation.js +29 -0
- package/dist/portal/session/rebind.d.ts +18 -0
- package/dist/portal/session/rebind.js +38 -0
- package/dist/portal/session/session-health.d.ts +145 -0
- package/dist/portal/session/session-health.js +154 -0
- package/dist/portal/session/session-manager.d.ts +81 -0
- package/dist/portal/session/session-manager.js +504 -0
- package/dist/portal/session/session-reaper.d.ts +36 -0
- package/dist/portal/session/session-reaper.js +93 -0
- package/dist/portal/session/session-tools.d.ts +8 -0
- package/dist/portal/session/session-tools.js +42 -0
- package/dist/portal/session/session.d.ts +279 -0
- package/dist/portal/session/session.js +875 -0
- package/dist/portal/session/stall-clock.js +48 -0
- package/dist/portal/session/timing/command-timeout.d.ts +40 -0
- package/dist/portal/session/timing/command-timeout.js +42 -0
- package/dist/start-options.d.ts +51 -0
- package/dist/start-options.js +7 -0
- package/dist/status-payload.d.ts +16 -10
- package/dist/status-payload.js +5 -2
- package/dist/surface/http-server.d.ts +52 -0
- package/dist/surface/http-server.js +379 -0
- package/dist/surface/mcp/consumer-verdict-guard.d.ts +40 -0
- package/dist/surface/mcp/consumer-verdict-guard.js +57 -0
- package/dist/surface/mcp/faults/mcp-is-error.d.ts +13 -0
- package/dist/surface/mcp/faults/mcp-is-error.js +18 -0
- package/dist/surface/mcp/faults/mcp-outage.d.ts +33 -0
- package/dist/surface/mcp/faults/mcp-outage.js +71 -0
- package/dist/surface/mcp/mcp-proxy.d.ts +119 -0
- package/dist/surface/mcp/mcp-proxy.js +882 -0
- package/dist/surface/mcp/mcp.d.ts +89 -0
- package/dist/surface/mcp/mcp.js +676 -0
- package/dist/surface/mcp/proxy/mcp-post-transport.js +109 -0
- package/dist/surface/mcp/proxy/proxy-daemon-probe.d.ts +22 -0
- package/dist/surface/mcp/proxy/proxy-daemon-probe.js +71 -0
- package/dist/surface/mcp/proxy/proxy-handshake.js +192 -0
- package/dist/surface/mcp/proxy/proxy-lifecycle.d.ts +90 -0
- package/dist/surface/mcp/proxy/proxy-lifecycle.js +98 -0
- package/dist/surface/mcp/proxy/proxy-log.d.ts +57 -0
- package/dist/surface/mcp/proxy/proxy-log.js +117 -0
- package/dist/surface/mcp/server-instructions.d.ts +26 -0
- package/dist/surface/mcp/server-instructions.js +156 -0
- package/dist/surface/mcp/surface-vocabulary.d.ts +47 -0
- package/dist/surface/mcp/surface-vocabulary.js +56 -0
- package/dist/surface/mcp/tool-catalog-cache.d.ts +45 -0
- package/dist/surface/mcp/tool-catalog-cache.js +77 -0
- package/dist/surface/tools/act/act-danger.js +69 -0
- package/dist/surface/tools/act/act-helpers.d.ts +17 -0
- package/dist/surface/tools/act/act-helpers.js +40 -0
- package/dist/surface/tools/act/act-observation.d.ts +42 -0
- package/dist/surface/tools/act/act-observation.js +36 -0
- package/dist/surface/tools/act/act-preflight.d.ts +27 -0
- package/dist/surface/tools/act/act-preflight.js +168 -0
- package/dist/surface/tools/act/act-target.d.ts +10 -0
- package/dist/surface/tools/act/act-target.js +100 -0
- package/dist/surface/tools/act/navigation/navigate-arrival.d.ts +68 -0
- package/dist/surface/tools/act/resolve-target.js +115 -0
- package/dist/surface/tools/act/sequence-grade.d.ts +79 -0
- package/dist/surface/tools/act/sequence-grade.js +104 -0
- package/dist/surface/tools/act-capsule.d.ts +33 -0
- package/dist/surface/tools/act-capsule.js +79 -0
- package/dist/surface/tools/act-merged.d.ts +20 -0
- package/dist/surface/tools/act-merged.js +53 -0
- package/dist/surface/tools/act-sequence-tool.js +330 -0
- package/dist/surface/tools/act-tools.d.ts +24 -0
- package/dist/surface/tools/act-tools.js +835 -0
- package/dist/surface/tools/args/numeric-bounds.d.ts +97 -0
- package/dist/surface/tools/args/numeric-bounds.js +133 -0
- package/dist/surface/tools/assert/assert-grade.d.ts +42 -0
- package/dist/surface/tools/assert/assert-grade.js +125 -0
- package/dist/surface/tools/assert/assert-source.d.ts +52 -0
- package/dist/surface/tools/assert/assert-source.js +74 -0
- package/dist/surface/tools/assert/assert-verdict.d.ts +48 -0
- package/dist/surface/tools/assert/assert-verdict.js +247 -0
- package/dist/surface/tools/browser-tools.d.ts +2 -0
- package/dist/surface/tools/browser-tools.js +115 -0
- package/dist/surface/tools/contract-tools.d.ts +2 -0
- package/dist/surface/tools/contract-tools.js +112 -0
- package/dist/surface/tools/coverage-tools.d.ts +18 -0
- package/dist/surface/tools/coverage-tools.js +178 -0
- package/dist/surface/tools/dynamic-tools.d.ts +17 -0
- package/dist/surface/tools/dynamic-tools.js +282 -0
- package/dist/surface/tools/error-recovery.d.ts +116 -0
- package/dist/surface/tools/error-recovery.js +527 -0
- package/dist/surface/tools/explore-tools.d.ts +14 -0
- package/dist/surface/tools/explore-tools.js +162 -0
- package/dist/surface/tools/feature-capture.d.ts +151 -0
- package/dist/surface/tools/feature-capture.js +235 -0
- package/dist/surface/tools/feedback-invite.d.ts +48 -0
- package/dist/surface/tools/feedback-invite.js +71 -0
- package/dist/surface/tools/feedback-tools.d.ts +35 -0
- package/dist/surface/tools/feedback-tools.js +280 -0
- package/dist/surface/tools/first-sentence.d.ts +24 -0
- package/dist/surface/tools/first-sentence.js +0 -0
- package/dist/surface/tools/gap-novelty.d.ts +39 -0
- package/dist/surface/tools/gap-novelty.js +69 -0
- package/dist/surface/tools/gaps/capability-absences.d.ts +39 -0
- package/dist/surface/tools/gaps/capability-absences.js +46 -0
- package/dist/surface/tools/harness-explore.d.ts +177 -0
- package/dist/surface/tools/harness-explore.js +453 -0
- package/dist/surface/tools/harness-plan.d.ts +76 -0
- package/dist/surface/tools/harness-plan.js +156 -0
- package/dist/surface/tools/harness-toolset.d.ts +35 -0
- package/dist/surface/tools/harness-toolset.js +144 -0
- package/dist/surface/tools/inspect-tool.d.ts +4 -0
- package/dist/surface/tools/inspect-tool.js +142 -0
- package/dist/surface/tools/invoke-tool.d.ts +10 -0
- package/dist/surface/tools/invoke-tool.js +668 -0
- package/dist/surface/tools/lease-hint.d.ts +50 -0
- package/dist/surface/tools/lease-hint.js +125 -0
- package/dist/surface/tools/lease-tools.d.ts +195 -0
- package/dist/surface/tools/lease-tools.js +797 -0
- package/dist/surface/tools/lineage-tools.d.ts +14 -0
- package/dist/surface/tools/lineage-tools.js +64 -0
- package/dist/surface/tools/live-call-text.d.ts +25 -0
- package/dist/surface/tools/live-call-text.js +191 -0
- package/dist/surface/tools/merge-tools.d.ts +68 -0
- package/dist/surface/tools/merge-tools.js +110 -0
- package/dist/surface/tools/merged-name-redirect.d.ts +36 -0
- package/dist/surface/tools/merged-name-redirect.js +107 -0
- package/dist/surface/tools/observe-tools.js +700 -0
- package/dist/surface/tools/read/query-windowed.d.ts +54 -0
- package/dist/surface/tools/read/query-windowed.js +75 -0
- package/dist/surface/tools/read/snapshot-delta.d.ts +92 -0
- package/dist/surface/tools/read/snapshot-delta.js +356 -0
- package/dist/surface/tools/read-tools.js +569 -0
- package/dist/surface/tools/real-input-attempt.d.ts +68 -0
- package/dist/surface/tools/real-input-attempt.js +360 -0
- package/dist/surface/tools/reconcile-tools.js +211 -0
- package/dist/surface/tools/tool-hit-rate.js +90 -0
- package/dist/surface/tools/tool-kit.d.ts +254 -0
- package/dist/surface/tools/tool-kit.js +123 -0
- package/dist/surface/tools/tool-surface.d.ts +195 -0
- package/dist/surface/tools/tool-surface.js +429 -0
- package/dist/surface/tools/tools-helpers.d.ts +40 -0
- package/dist/surface/tools/tools-helpers.js +76 -0
- package/dist/surface/tools/tools.d.ts +76 -0
- package/dist/surface/tools/tools.js +799 -0
- package/dist/surface/tools/unadvertised-help.js +60 -0
- package/dist/surface/tools/verify-next-baton.js +52 -0
- package/dist/telemetry/app-instrumented.d.ts +3 -5
- package/dist/telemetry/app-instrumented.js +17 -6
- package/dist/telemetry/argument-shape.js +4 -4
- package/dist/telemetry/bug-found.js +49 -27
- package/dist/telemetry/cli-telemetry.js +27 -10
- package/dist/telemetry/daemon-telemetry.d.ts +7 -13
- package/dist/telemetry/daemon-telemetry.js +15 -22
- package/dist/telemetry/error-fingerprint.js +26 -1
- package/dist/telemetry/feedback-cli.d.ts +1 -1
- package/dist/telemetry/feedback-cli.js +2 -2
- package/dist/telemetry/feedback-context.js +4 -4
- package/dist/telemetry/feedback.js +1 -1
- package/dist/telemetry/harness-drive.d.ts +6 -0
- package/dist/telemetry/harness-drive.js +39 -0
- package/dist/telemetry/install-source.js +1 -1
- package/dist/telemetry/install-trace.d.ts +8 -0
- package/dist/telemetry/install-trace.js +74 -0
- package/dist/telemetry/license-activation.js +1 -1
- package/dist/telemetry/mcp-connection.d.ts +14 -1
- package/dist/telemetry/mcp-connection.js +17 -2
- package/dist/telemetry/onboarding-firsts.d.ts +40 -0
- package/dist/telemetry/onboarding-firsts.js +109 -0
- package/dist/telemetry/onboarding-funnel.d.ts +26 -0
- package/dist/telemetry/onboarding-funnel.js +60 -0
- package/dist/telemetry/project-profile.js +1 -1
- package/dist/telemetry/run-telemetry.js +13 -0
- package/dist/telemetry/session-metrics.d.ts +6 -7
- package/dist/telemetry/session-metrics.js +14 -21
- package/dist/telemetry/telemetry.d.ts +8 -1
- package/dist/telemetry/telemetry.js +6 -5
- package/dist/telemetry/verification-of.d.ts +6 -8
- package/dist/telemetry/verification-of.js +38 -12
- package/dist/workspace-packages.d.ts +22 -0
- package/dist/workspace-packages.js +57 -0
- package/docs/README.md +29 -23
- package/docs/actions.mdx +4 -4
- package/docs/adapters.md +75 -0
- package/docs/agent-cheatsheet.md +37 -27
- package/docs/architecture.md +3 -2
- package/docs/autodrive.md +99 -0
- package/docs/benchmarks.md +1 -1
- package/docs/best-practices.mdx +3 -3
- package/docs/capabilities.mdx +4 -4
- package/docs/cli/cloud.mdx +4 -4
- package/docs/cli/doctor.mdx +1 -0
- package/docs/cli/feedback.mdx +1 -1
- package/docs/cli/init.mdx +3 -3
- package/docs/cli/mcp.mdx +1 -1
- package/docs/cli/status.mdx +35 -20
- package/docs/cli/watch.mdx +1 -1
- package/docs/cli.mdx +15 -25
- package/docs/desktop.mdx +1 -1
- package/docs/enterprise.md +3 -2
- package/docs/faq.mdx +4 -4
- package/docs/first-drive.md +5 -5
- package/docs/flows.md +5 -5
- package/docs/for-agents.md +2 -1
- package/docs/frameworks.mdx +1 -1
- package/docs/getting-started.md +30 -21
- package/docs/http-transport.md +1 -1
- package/docs/index.mdx +28 -10
- package/docs/install-agentic.mdx +12 -4
- package/docs/install-manual.mdx +23 -7
- package/docs/instrumentation.mdx +3 -3
- package/docs/local-registry.md +15 -4
- package/docs/packages/babel-plugin.mdx +1 -1
- package/docs/packages/browser.mdx +2 -2
- package/docs/packages/core.mdx +2 -2
- package/docs/packages/engine.mdx +40 -0
- package/docs/packages/open-verification.mdx +40 -0
- package/docs/packages/tauri.mdx +1 -1
- package/docs/packages.mdx +22 -2
- package/docs/platform-integration.md +3 -3
- package/docs/predicates.mdx +19 -3
- package/docs/protocol.mdx +60 -0
- package/docs/quickstart.mdx +48 -13
- package/docs/recipes.mdx +1 -1
- package/docs/required-checks.md +37 -0
- package/docs/skill-file.mdx +2 -2
- package/docs/skill-setup.md +104 -0
- package/docs/state-files.md +46 -0
- package/docs/state-management.mdx +1 -1
- package/docs/system-map.md +8 -6
- package/docs/telemetry.md +4 -3
- package/docs/testing.md +12 -3
- package/docs/token-efficiency.md +3 -3
- package/docs/tools/act-and-wait.mdx +173 -0
- package/docs/tools/act-sequence.mdx +160 -0
- package/docs/tools/act.mdx +95 -0
- package/docs/tools/assert.mdx +129 -0
- package/docs/tools/console.mdx +70 -0
- package/docs/tools/inspect.mdx +95 -0
- package/docs/tools/navigate.mdx +107 -0
- package/docs/tools/network.mdx +126 -0
- package/docs/tools/observe.mdx +145 -0
- package/docs/tools/overview.mdx +163 -0
- package/docs/tools/query.mdx +133 -0
- package/docs/tools/sessions.mdx +101 -0
- package/docs/tools/snapshot.mdx +136 -0
- package/docs/tools/state.mdx +111 -0
- package/docs/tools/wait-for.mdx +92 -0
- package/docs/troubleshooting.mdx +43 -9
- package/docs/usage.md +59 -59
- package/package.json +31 -13
- package/dist/bridge/auth-failure-reason.d.ts +0 -23
- package/dist/bridge/auth-failure-reason.js +0 -47
- package/dist/bridge/bridge-security.d.ts +0 -30
- package/dist/bridge/bridge-security.js +0 -53
- package/dist/bridge/bridge.d.ts +0 -95
- package/dist/bridge/bridge.js +0 -713
- package/dist/bridge/bridge.test-harness.d.ts +0 -65
- package/dist/bridge/bridge.test-harness.js +0 -230
- package/dist/capsule/capsule-store.d.ts +0 -71
- package/dist/capsule/capsule-store.js +0 -114
- package/dist/capsule/capsule.d.ts +0 -18
- package/dist/capsule/capsule.js +0 -35
- package/dist/capsule/causal-summary.d.ts +0 -119
- package/dist/capsule/causal-summary.js +0 -172
- package/dist/capsule/divergence.d.ts +0 -35
- package/dist/capsule/predicate-to-links.d.ts +0 -8
- package/dist/capsule/predicate-to-links.js +0 -33
- package/dist/cli/adhoc-verdict.d.ts +0 -58
- package/dist/cli/adhoc-verdict.js +0 -115
- package/dist/cli/cli-doctor.js +0 -195
- package/dist/cli/cli-flow-commands.d.ts +0 -46
- package/dist/cli/cli-flow-commands.js +0 -255
- package/dist/cli/cli-kill.d.ts +0 -59
- package/dist/cli/cli-kill.js +0 -162
- package/dist/cli/cli-launch.d.ts +0 -92
- package/dist/cli/cli-launch.js +0 -223
- package/dist/cli/cli-parse.d.ts +0 -171
- package/dist/cli/cli-parse.js +0 -874
- package/dist/cli/cli-port.d.ts +0 -70
- package/dist/cli/cli-port.js +0 -136
- package/dist/cli/cli-update-commands.js +0 -112
- package/dist/cli/cli-verify.d.ts +0 -86
- package/dist/cli/cli-verify.js +0 -340
- package/dist/cli/cloud-cli.js +0 -694
- package/dist/cli/cloud-keystore.js +0 -97
- package/dist/cli/cloud-kit.d.ts +0 -37
- package/dist/cli/cloud-kit.js +0 -121
- package/dist/cli/cloud-login.js +0 -183
- package/dist/cli/config-discovery.d.ts +0 -36
- package/dist/cli/config-discovery.js +0 -164
- package/dist/cli/daemon-start-options.d.ts +0 -33
- package/dist/cli/device-flow.d.ts +0 -76
- package/dist/cli/device-flow.js +0 -56
- package/dist/cli/doctor-daemon-line.js +0 -47
- package/dist/cli/doctor-rows.d.ts +0 -63
- package/dist/cli/doctor-rows.js +0 -65
- package/dist/cli/doctor-sessions-line.js +0 -69
- package/dist/cli/drive-attach.d.ts +0 -113
- package/dist/cli/drive-attach.js +0 -221
- package/dist/cli/drive-command.js +0 -107
- package/dist/cli/mcp-command.js +0 -174
- package/dist/cli/port-holder.js +0 -123
- package/dist/cli/status-next-action.d.ts +0 -51
- package/dist/cli/status-next-action.js +0 -60
- package/dist/cli.d.ts +0 -6
- package/dist/cli.js +0 -828
- package/dist/cloud/account-state.d.ts +0 -20
- package/dist/cloud/account-state.js +0 -65
- package/dist/cloud/cloud-config.d.ts +0 -57
- package/dist/cloud/cloud-config.js +0 -145
- package/dist/cloud/cloud-sync.d.ts +0 -190
- package/dist/cloud/cloud-sync.js +0 -354
- package/dist/cloud/sync-cycle.d.ts +0 -111
- package/dist/cloud/sync-cycle.js +0 -270
- package/dist/cloud/sync-daemon.d.ts +0 -53
- package/dist/cloud/sync-daemon.js +0 -260
- package/dist/cloud/sync-disk.js +0 -191
- package/dist/crawl/crawl-tools.d.ts +0 -7
- package/dist/crawl/crawl-tools.js +0 -87
- package/dist/crawl/crawl.d.ts +0 -98
- package/dist/crawl/crawl.js +0 -441
- package/dist/daemon/daemon-resilience.d.ts +0 -74
- package/dist/daemon/daemon-resilience.js +0 -318
- package/dist/daemon/daemon-resolve.d.ts +0 -113
- package/dist/daemon/daemon-resolve.js +0 -187
- package/dist/daemon/daemon-usefulness.d.ts +0 -61
- package/dist/daemon/daemon-usefulness.js +0 -62
- package/dist/daemon/daemon.d.ts +0 -95
- package/dist/daemon/daemon.js +0 -336
- package/dist/daemon/heartbeat.d.ts +0 -111
- package/dist/daemon/heartbeat.js +0 -141
- package/dist/daemon/idle-grace.d.ts +0 -32
- package/dist/daemon/idle-grace.js +0 -41
- package/dist/daemon/idle-shutdown.d.ts +0 -54
- package/dist/daemon/idle-shutdown.js +0 -98
- package/dist/daemon/state-dir.js +0 -59
- package/dist/daemon/wake-decision.d.ts +0 -32
- package/dist/daemon/wake-decision.js +0 -38
- package/dist/dev/stale-issue-guard.d.ts +0 -41
- package/dist/dev/stale-issue-guard.js +0 -75
- package/dist/domain/domain-model.js +0 -126
- package/dist/domain/domain-tools.d.ts +0 -2
- package/dist/domain/domain-tools.js +0 -94
- package/dist/domain/flow-risk.js +0 -80
- package/dist/ee/audit-log.js +0 -11
- package/dist/events/body-failures.d.ts +0 -4
- package/dist/events/body-failures.js +0 -113
- package/dist/events/contradiction-folds.d.ts +0 -45
- package/dist/events/contradiction-folds.js +0 -42
- package/dist/events/contradictions.d.ts +0 -170
- package/dist/events/contradictions.js +0 -718
- package/dist/events/declared.d.ts +0 -74
- package/dist/events/declared.js +0 -171
- package/dist/events/echo-mismatch.d.ts +0 -10
- package/dist/events/echo-mismatch.js +0 -299
- package/dist/events/event-filters.d.ts +0 -121
- package/dist/events/event-filters.js +0 -215
- package/dist/events/json-salvage.d.ts +0 -33
- package/dist/events/json-salvage.js +0 -96
- package/dist/events/lineage.d.ts +0 -52
- package/dist/events/lineage.js +0 -122
- package/dist/events/net-evidence.d.ts +0 -21
- package/dist/events/net-evidence.js +0 -81
- package/dist/events/observed-in-window.d.ts +0 -24
- package/dist/events/observed-in-window.js +0 -38
- package/dist/events/predicate-asks.d.ts +0 -30
- package/dist/events/predicate-asks.js +0 -48
- package/dist/events/predicate-console.d.ts +0 -13
- package/dist/events/predicate-console.js +0 -138
- package/dist/events/predicate-element.d.ts +0 -13
- package/dist/events/predicate-element.js +0 -214
- package/dist/events/predicate-eval.d.ts +0 -101
- package/dist/events/predicate-eval.js +0 -834
- package/dist/events/predicate-parse.d.ts +0 -17
- package/dist/events/predicate-parse.js +0 -175
- package/dist/events/predicate-precheck.d.ts +0 -8
- package/dist/events/predicate-precheck.js +0 -41
- package/dist/events/predicate-request-body.d.ts +0 -50
- package/dist/events/predicate-request-body.js +0 -120
- package/dist/events/predicate-route.d.ts +0 -66
- package/dist/events/predicate-route.js +0 -258
- package/dist/events/predicate-schema.d.ts +0 -168
- package/dist/events/predicate-schema.js +0 -501
- package/dist/events/predicate.d.ts +0 -74
- package/dist/events/predicate.js +0 -725
- package/dist/events/reaction.d.ts +0 -33
- package/dist/events/reaction.js +0 -59
- package/dist/events/reconcile.d.ts +0 -39
- package/dist/events/reconcile.js +0 -211
- package/dist/events/ring-buffer.d.ts +0 -41
- package/dist/events/ring-buffer.js +0 -151
- package/dist/events/split-text-miss.d.ts +0 -32
- package/dist/events/split-text-miss.js +0 -51
- package/dist/events/stale-response.d.ts +0 -3
- package/dist/events/stale-response.js +0 -186
- package/dist/events/testid-near-miss.d.ts +0 -22
- package/dist/events/testid-near-miss.js +0 -33
- package/dist/events/unit-mismatch.d.ts +0 -16
- package/dist/events/unit-mismatch.js +0 -167
- package/dist/flows/affected-tools.d.ts +0 -18
- package/dist/flows/affected-tools.js +0 -80
- package/dist/flows/affected.d.ts +0 -24
- package/dist/flows/affected.js +0 -35
- package/dist/flows/annotate-tools.d.ts +0 -15
- package/dist/flows/annotate-tools.js +0 -179
- package/dist/flows/assertion-tiers-store.d.ts +0 -16
- package/dist/flows/assertion-tiers-store.js +0 -98
- package/dist/flows/decision.d.ts +0 -25
- package/dist/flows/decision.js +0 -201
- package/dist/flows/empty-flow.js +0 -24
- package/dist/flows/flake-store.d.ts +0 -18
- package/dist/flows/flake-store.js +0 -58
- package/dist/flows/flake.d.ts +0 -56
- package/dist/flows/flow-classify.d.ts +0 -51
- package/dist/flows/flow-classify.js +0 -102
- package/dist/flows/flow-expect-grammar.d.ts +0 -33
- package/dist/flows/flow-expect-grammar.js +0 -155
- package/dist/flows/flow-intent.d.ts +0 -52
- package/dist/flows/flow-intent.js +0 -123
- package/dist/flows/flow-replay-run.d.ts +0 -43
- package/dist/flows/flow-replay-run.js +0 -478
- package/dist/flows/flow-replay.d.ts +0 -82
- package/dist/flows/flow-replay.js +0 -519
- package/dist/flows/flow-secret-field.d.ts +0 -14
- package/dist/flows/flow-secret-field.js +0 -22
- package/dist/flows/flow-sources.d.ts +0 -19
- package/dist/flows/flow-sources.js +0 -32
- package/dist/flows/flow-step-runners.d.ts +0 -52
- package/dist/flows/flow-step-runners.js +0 -315
- package/dist/flows/flow-store-for-session.d.ts +0 -31
- package/dist/flows/flow-success.d.ts +0 -32
- package/dist/flows/flow-success.js +0 -169
- package/dist/flows/flow-tools.d.ts +0 -15
- package/dist/flows/flow-tools.js +0 -639
- package/dist/flows/flow-upload-resolve.d.ts +0 -23
- package/dist/flows/flow-upload-resolve.js +0 -46
- package/dist/flows/flows.d.ts +0 -130
- package/dist/flows/flows.js +0 -870
- package/dist/flows/gate.js +0 -33
- package/dist/flows/heal-run.d.ts +0 -10
- package/dist/flows/heal-run.js +0 -139
- package/dist/flows/heal.js +0 -97
- package/dist/flows/predicate-to-expect.d.ts +0 -44
- package/dist/flows/predicate-to-expect.js +0 -130
- package/dist/flows/recording-backtrack.js +0 -73
- package/dist/flows/recordings.d.ts +0 -63
- package/dist/flows/recordings.js +0 -57
- package/dist/flows/replay.d.ts +0 -62
- package/dist/flows/replay.js +0 -337
- package/dist/flows/role-anchor-nearest.js +0 -45
- package/dist/flows/server-verify.d.ts +0 -15
- package/dist/flows/server-verify.js +0 -56
- package/dist/flows/suite-flakes.d.ts +0 -34
- package/dist/flows/suite-flakes.js +0 -32
- package/dist/flows/verify-change-tools.d.ts +0 -2
- package/dist/flows/verify-change-tools.js +0 -231
- package/dist/honesty/accepted-write.d.ts +0 -17
- package/dist/honesty/accepted-write.js +0 -22
- package/dist/honesty/already-true.d.ts +0 -16
- package/dist/honesty/already-true.js +0 -89
- package/dist/honesty/blind-spots.d.ts +0 -133
- package/dist/honesty/blind-spots.js +0 -248
- package/dist/honesty/body-capture-remedy.d.ts +0 -42
- package/dist/honesty/body-capture-remedy.js +0 -95
- package/dist/honesty/feature-capture.d.ts +0 -151
- package/dist/honesty/feature-capture.js +0 -233
- package/dist/honesty/gap-ledger.d.ts +0 -52
- package/dist/honesty/gap-ledger.js +0 -63
- package/dist/honesty/honesty.d.ts +0 -103
- package/dist/honesty/honesty.js +0 -95
- package/dist/honesty/instrumentation-gaps.d.ts +0 -95
- package/dist/honesty/instrumentation-gaps.js +0 -114
- package/dist/honesty/observability.d.ts +0 -38
- package/dist/honesty/observability.js +0 -40
- package/dist/honesty/tool-hit-rate.js +0 -90
- package/dist/honesty/uncaptured-bodies.d.ts +0 -23
- package/dist/honesty/uncaptured-bodies.js +0 -41
- package/dist/honesty/undeclared-change.d.ts +0 -51
- package/dist/honesty/undeclared-change.js +0 -56
- package/dist/honesty/unread-outcome.d.ts +0 -10
- package/dist/honesty/unread-outcome.js +0 -77
- package/dist/honesty/unsettled.d.ts +0 -58
- package/dist/honesty/unsettled.js +0 -127
- package/dist/honesty/verified.d.ts +0 -148
- package/dist/honesty/verified.js +0 -330
- package/dist/http-server.d.ts +0 -52
- package/dist/http-server.js +0 -381
- package/dist/impact/impact-recorder.d.ts +0 -46
- package/dist/impact/impact-recorder.js +0 -159
- package/dist/impact/impact-store.d.ts +0 -47
- package/dist/impact/impact-store.js +0 -255
- package/dist/input/network-detail.d.ts +0 -104
- package/dist/input/network-detail.js +0 -211
- package/dist/input/network-mock-tools.d.ts +0 -21
- package/dist/input/network-mock-tools.js +0 -124
- package/dist/input/network-mock.js +0 -61
- package/dist/input/real-input.d.ts +0 -222
- package/dist/input/real-input.js +0 -405
- package/dist/input/scroll-find.js +0 -111
- package/dist/input/scroll-tools.d.ts +0 -2
- package/dist/input/scroll-tools.js +0 -76
- package/dist/input/viewport-tools.d.ts +0 -2
- package/dist/input/viewport-tools.js +0 -72
- package/dist/intent/inline-intent.d.ts +0 -27
- package/dist/intent/inline-intent.js +0 -193
- package/dist/intent/intent-shard-store.d.ts +0 -73
- package/dist/intent/intent-shard-store.js +0 -203
- package/dist/intent/intent-shard.d.ts +0 -411
- package/dist/intent/intent-shard.js +0 -176
- package/dist/intent/intent-store.d.ts +0 -49
- package/dist/intent/intent-store.js +0 -133
- package/dist/intent/intent-subject.d.ts +0 -46
- package/dist/intent/intent-subject.js +0 -177
- package/dist/intent/intent-tools.d.ts +0 -2
- package/dist/intent/intent-tools.js +0 -143
- package/dist/intent/open-intents.d.ts +0 -43
- package/dist/intent/open-intents.js +0 -40
- package/dist/journal/ambient-store.d.ts +0 -13
- package/dist/journal/ambient-store.js +0 -45
- package/dist/journal/ambient.d.ts +0 -47
- package/dist/journal/ambient.js +0 -47
- package/dist/journal/attach-journal.d.ts +0 -30
- package/dist/journal/attach-journal.js +0 -30
- package/dist/journal/envelope-store.d.ts +0 -16
- package/dist/journal/envelope-store.js +0 -61
- package/dist/journal/envelope.d.ts +0 -230
- package/dist/journal/journal-query.d.ts +0 -32
- package/dist/journal/journal-query.js +0 -52
- package/dist/journal/journal-recorder.d.ts +0 -61
- package/dist/journal/journal-recorder.js +0 -115
- package/dist/journal/retention.d.ts +0 -20
- package/dist/journal/retention.js +0 -49
- package/dist/journal/session-end.d.ts +0 -32
- package/dist/journal/session-end.js +0 -51
- package/dist/journal/session-journal.d.ts +0 -24
- package/dist/journal/session-journal.js +0 -167
- package/dist/journal/workspace-gitignore.d.ts +0 -10
- package/dist/journal/workspace-gitignore.js +0 -59
- package/dist/license/license-env.d.ts +0 -29
- package/dist/license/license-env.js +0 -148
- package/dist/license/license.d.ts +0 -169
- package/dist/license/license.js +0 -289
- package/dist/mcp/mcp-is-error.d.ts +0 -13
- package/dist/mcp/mcp-is-error.js +0 -18
- package/dist/mcp/mcp-outage.d.ts +0 -32
- package/dist/mcp/mcp-outage.js +0 -55
- package/dist/mcp/mcp-post-transport.js +0 -109
- package/dist/mcp/mcp-proxy.d.ts +0 -110
- package/dist/mcp/mcp-proxy.js +0 -872
- package/dist/mcp/mcp.d.ts +0 -80
- package/dist/mcp/mcp.js +0 -536
- package/dist/mcp/proxy-daemon-probe.d.ts +0 -9
- package/dist/mcp/proxy-daemon-probe.js +0 -54
- package/dist/mcp/proxy-handshake.js +0 -192
- package/dist/mcp/proxy-lifecycle.d.ts +0 -92
- package/dist/mcp/proxy-lifecycle.js +0 -100
- package/dist/mcp/proxy-log.d.ts +0 -63
- package/dist/mcp/proxy-log.js +0 -132
- package/dist/mcp/server-instructions.d.ts +0 -18
- package/dist/mcp/server-instructions.js +0 -98
- package/dist/mcp/tool-catalog-cache.d.ts +0 -45
- package/dist/mcp/tool-catalog-cache.js +0 -77
- package/dist/memory/memory-tools.d.ts +0 -2
- package/dist/memory/memory-tools.js +0 -82
- package/dist/memory/project-memory.d.ts +0 -33
- package/dist/oracles/propose-consequences.d.ts +0 -22
- package/dist/oracles/propose-consequences.js +0 -106
- package/dist/pool/browser-pool.d.ts +0 -282
- package/dist/pool/browser-pool.js +0 -560
- package/dist/pool/lease-reaper.js +0 -40
- package/dist/pool/playwright-launcher.js +0 -150
- package/dist/pool/storage-seed.d.ts +0 -23
- package/dist/project/artifact-root.d.ts +0 -84
- package/dist/project/artifact-root.js +0 -112
- package/dist/project/fs-port.d.ts +0 -47
- package/dist/project/fs-port.js +0 -54
- package/dist/project/learned-routes.d.ts +0 -24
- package/dist/project/learned-routes.js +0 -63
- package/dist/project/memory-fs.d.ts +0 -10
- package/dist/project/project-store.d.ts +0 -54
- package/dist/project/project-store.js +0 -201
- package/dist/project/project-tools.d.ts +0 -2
- package/dist/project/project-tools.js +0 -155
- package/dist/project/reticle-dir.d.ts +0 -102
- package/dist/project/reticle-dir.js +0 -188
- package/dist/project/session-root.d.ts +0 -23
- package/dist/project/session-root.js +0 -38
- package/dist/runs/build-verification-run.d.ts +0 -29
- package/dist/runs/build-verification-run.js +0 -70
- package/dist/runs/context-tools.d.ts +0 -2
- package/dist/runs/context-tools.js +0 -89
- package/dist/runs/render-report.js +0 -69
- package/dist/runs/replay-mapping.js +0 -34
- package/dist/runs/reticle-runner.d.ts +0 -60
- package/dist/runs/reticle-runner.js +0 -95
- package/dist/runs/run-store.d.ts +0 -54
- package/dist/runs/run-store.js +0 -147
- package/dist/runs/run-tools.d.ts +0 -9
- package/dist/runs/run-tools.js +0 -82
- package/dist/runs/runner-port.d.ts +0 -13
- package/dist/runs/runner-port.js +0 -22
- package/dist/runs/verification-sync.d.ts +0 -12
- package/dist/runs/verification-sync.js +0 -87
- package/dist/session/command-timeout.d.ts +0 -46
- package/dist/session/command-timeout.js +0 -42
- package/dist/session/connection-memory.d.ts +0 -59
- package/dist/session/connection-memory.js +0 -108
- package/dist/session/dev-server-probe.js +0 -147
- package/dist/session/live-control-tools.d.ts +0 -15
- package/dist/session/live-control-tools.js +0 -242
- package/dist/session/no-session-diagnosis.d.ts +0 -176
- package/dist/session/no-session-diagnosis.js +0 -477
- package/dist/session/no-session-next-action.d.ts +0 -72
- package/dist/session/no-session-next-action.js +0 -174
- package/dist/session/no-session-watch.js +0 -335
- package/dist/session/observed-state.d.ts +0 -60
- package/dist/session/observed-state.js +0 -121
- package/dist/session/output-budget.d.ts +0 -49
- package/dist/session/output-budget.js +0 -67
- package/dist/session/session-health.d.ts +0 -138
- package/dist/session/session-health.js +0 -154
- package/dist/session/session-manager.d.ts +0 -76
- package/dist/session/session-manager.js +0 -464
- package/dist/session/session-reaper.d.ts +0 -36
- package/dist/session/session-reaper.js +0 -93
- package/dist/session/session-recommendation.js +0 -29
- package/dist/session/session-replaced.d.ts +0 -24
- package/dist/session/session-replaced.js +0 -29
- package/dist/session/session-tools.d.ts +0 -8
- package/dist/session/session-tools.js +0 -42
- package/dist/session/session.d.ts +0 -280
- package/dist/session/session.js +0 -891
- package/dist/session/stall-clock.js +0 -48
- package/dist/setup/agent-configs.d.ts +0 -97
- package/dist/setup/agent-configs.js +0 -333
- package/dist/setup/agent-writer.d.ts +0 -52
- package/dist/setup/agent-writer.js +0 -115
- package/dist/setup/auto-approve.js +0 -153
- package/dist/setup/bridge-port.d.ts +0 -15
- package/dist/setup/bridge-port.js +0 -24
- package/dist/setup/confirm.js +0 -205
- package/dist/setup/dev-server-wait.d.ts +0 -68
- package/dist/setup/dev-server-wait.js +0 -67
- package/dist/setup/drive-agent.d.ts +0 -70
- package/dist/setup/drive-agent.js +0 -171
- package/dist/setup/drive-plan.d.ts +0 -69
- package/dist/setup/drive-plan.js +0 -130
- package/dist/setup/ensure-daemon.js +0 -58
- package/dist/setup/init-host.js +0 -26
- package/dist/setup/init-runtime.d.ts +0 -41
- package/dist/setup/init-runtime.js +0 -167
- package/dist/setup/node-effects.d.ts +0 -63
- package/dist/setup/node-effects.js +0 -225
- package/dist/setup/page-probe.d.ts +0 -44
- package/dist/setup/page-probe.js +0 -49
- package/dist/setup/remaining-steps.js +0 -31
- package/dist/setup/run-setup.d.ts +0 -103
- package/dist/setup/run-setup.js +0 -294
- package/dist/setup/setup-command.d.ts +0 -46
- package/dist/setup/setup-command.js +0 -207
- package/dist/setup/setup-options.d.ts +0 -76
- package/dist/setup/setup-options.js +0 -68
- package/dist/tools/act-capsule.d.ts +0 -33
- package/dist/tools/act-capsule.js +0 -53
- package/dist/tools/act-danger.js +0 -69
- package/dist/tools/act-helpers.d.ts +0 -17
- package/dist/tools/act-helpers.js +0 -40
- package/dist/tools/act-observation.d.ts +0 -42
- package/dist/tools/act-observation.js +0 -36
- package/dist/tools/act-preflight.d.ts +0 -20
- package/dist/tools/act-preflight.js +0 -103
- package/dist/tools/act-sequence-tool.js +0 -135
- package/dist/tools/act-target.d.ts +0 -18
- package/dist/tools/act-target.js +0 -56
- package/dist/tools/act-tools.d.ts +0 -20
- package/dist/tools/act-tools.js +0 -763
- package/dist/tools/assert-grade.d.ts +0 -42
- package/dist/tools/assert-grade.js +0 -108
- package/dist/tools/assert-source.d.ts +0 -52
- package/dist/tools/assert-source.js +0 -74
- package/dist/tools/assert-verdict.d.ts +0 -48
- package/dist/tools/assert-verdict.js +0 -197
- package/dist/tools/browser-tools.d.ts +0 -2
- package/dist/tools/browser-tools.js +0 -115
- package/dist/tools/contract-tools.d.ts +0 -2
- package/dist/tools/contract-tools.js +0 -98
- package/dist/tools/coverage-tools.d.ts +0 -18
- package/dist/tools/coverage-tools.js +0 -175
- package/dist/tools/dynamic-tools.d.ts +0 -7
- package/dist/tools/dynamic-tools.js +0 -257
- package/dist/tools/error-recovery.d.ts +0 -110
- package/dist/tools/error-recovery.js +0 -499
- package/dist/tools/feedback-invite.d.ts +0 -48
- package/dist/tools/feedback-invite.js +0 -71
- package/dist/tools/feedback-tools.d.ts +0 -35
- package/dist/tools/feedback-tools.js +0 -228
- package/dist/tools/invoke-tool.d.ts +0 -10
- package/dist/tools/invoke-tool.js +0 -569
- package/dist/tools/lease-hint.d.ts +0 -49
- package/dist/tools/lease-hint.js +0 -124
- package/dist/tools/lease-tools.d.ts +0 -143
- package/dist/tools/lease-tools.js +0 -688
- package/dist/tools/lineage-tools.d.ts +0 -14
- package/dist/tools/lineage-tools.js +0 -64
- package/dist/tools/merge-tools.d.ts +0 -51
- package/dist/tools/merge-tools.js +0 -69
- package/dist/tools/merged-name-redirect.d.ts +0 -26
- package/dist/tools/merged-name-redirect.js +0 -77
- package/dist/tools/navigate-arrival.d.ts +0 -68
- package/dist/tools/numeric-bounds.d.ts +0 -89
- package/dist/tools/numeric-bounds.js +0 -125
- package/dist/tools/observe-tools.js +0 -578
- package/dist/tools/read-tools.js +0 -569
- package/dist/tools/real-input-attempt.d.ts +0 -68
- package/dist/tools/real-input-attempt.js +0 -360
- package/dist/tools/reconcile-tools.js +0 -126
- package/dist/tools/resolve-target.js +0 -116
- package/dist/tools/snapshot-delta.d.ts +0 -92
- package/dist/tools/snapshot-delta.js +0 -356
- package/dist/tools/tool-kit.d.ts +0 -221
- package/dist/tools/tool-kit.js +0 -114
- package/dist/tools/tool-names.d.ts +0 -112
- package/dist/tools/tool-names.js +0 -112
- package/dist/tools/tool-surface.d.ts +0 -222
- package/dist/tools/tool-surface.js +0 -439
- package/dist/tools/tools-helpers.d.ts +0 -42
- package/dist/tools/tools-helpers.js +0 -87
- package/dist/tools/tools.d.ts +0 -20
- package/dist/tools/tools.js +0 -739
- package/dist/tools/unadvertised-help.js +0 -42
- package/dist/tools/verify-next-baton.js +0 -52
- package/dist/update/nudge-credit.js +0 -53
- package/dist/update/reticle-deps.d.ts +0 -9
- package/dist/update/reticle-deps.js +0 -27
- package/dist/update/sdk-sync.d.ts +0 -20
- package/dist/update/sdk-sync.js +0 -22
- package/dist/update/update-checker.js +0 -122
- package/dist/update/update-nudge.d.ts +0 -92
- package/dist/update/update-nudge.js +0 -214
- package/dist/update/updater.d.ts +0 -54
- package/dist/update/updater.js +0 -190
- package/dist/version/peer-announce.js +0 -32
- package/dist/version/sdk-fix.js +0 -127
- package/dist/version/server-version.js +0 -13
- package/dist/version/version-nudge.js +0 -61
- package/dist/version/version-skew.d.ts +0 -93
- package/dist/version/version-skew.js +0 -147
- package/dist/visual/visual-store.d.ts +0 -22
- package/dist/visual/visual-store.js +0 -66
- package/dist/visual/visual-tools.d.ts +0 -26
- package/dist/visual/visual-tools.js +0 -328
- package/docs/docs.json +0 -369
- package/docs/fixtures.md +0 -51
- package/docs/gate-plan.md +0 -104
- package/docs/gates.md +0 -131
- package/docs/style.css +0 -14
- package/docs/telemetry-contract.md +0 -390
- package/docs/telemetry-events.mdx +0 -442
- package/docs/tools-act-and-wait.mdx +0 -173
- package/docs/tools-act-sequence.mdx +0 -153
- package/docs/tools-act.mdx +0 -95
- package/docs/tools-assert.mdx +0 -129
- package/docs/tools-console.mdx +0 -63
- package/docs/tools-inspect.mdx +0 -88
- package/docs/tools-navigate.mdx +0 -107
- package/docs/tools-network.mdx +0 -119
- package/docs/tools-observe.mdx +0 -145
- package/docs/tools-overview.mdx +0 -160
- package/docs/tools-query.mdx +0 -126
- package/docs/tools-sessions.mdx +0 -94
- package/docs/tools-snapshot.mdx +0 -129
- package/docs/tools-state.mdx +0 -104
- package/docs/tools-wait-for.mdx +0 -85
- /package/dist/{cli → command/cli/answers}/gate-exit.d.ts +0 -0
- /package/dist/{cli → command/cli/answers}/gate-exit.js +0 -0
- /package/dist/{cli → command/cli/answers}/gate-hook-message.d.ts +0 -0
- /package/dist/{cli → command/cli/answers}/gate-hook-message.js +0 -0
- /package/dist/{cli → command/cli/answers}/open-note.d.ts +0 -0
- /package/dist/{cli → command/cli/answers}/open-note.js +0 -0
- /package/dist/{cli → command/cli/auth}/cloud-keystore.d.ts +0 -0
- /package/dist/{cli → command/cli/auth}/cloud-session.d.ts +0 -0
- /package/dist/{cli → command/cli/auth}/cloud-session.js +0 -0
- /package/dist/{cli → command/cli}/cli-doctor.d.ts +0 -0
- /package/dist/{cli → command/cli}/cli-parse-feedback.d.ts +0 -0
- /package/dist/{cli → command/cli}/cli-parse-feedback.js +0 -0
- /package/dist/{cli → command/cli}/cli-update-commands.d.ts +0 -0
- /package/dist/{cli → command/cli}/cloud-cli.d.ts +0 -0
- /package/dist/{cli → command/cli}/cloud-login.d.ts +0 -0
- /package/dist/{cli → command/cli}/daemon-start-options.js +0 -0
- /package/dist/{cli → command/cli/doctor/browser}/chromium-hint.d.ts +0 -0
- /package/dist/{cli → command/cli/doctor/browser}/chromium-hint.js +0 -0
- /package/dist/{cli → command/cli/doctor}/doctor-daemon-line.d.ts +0 -0
- /package/dist/{cli → command/cli/doctor}/doctor-project-line.d.ts +0 -0
- /package/dist/{cli → command/cli/doctor}/doctor-project-line.js +0 -0
- /package/dist/{cli → command/cli/doctor}/doctor-sessions-line.d.ts +0 -0
- /package/dist/{cli → command/cli/drive}/drive-command.d.ts +0 -0
- /package/dist/{cli → command/cli}/mcp-command.d.ts +0 -0
- /package/dist/{cli → command/cli/ports}/port-holder.d.ts +0 -0
- /package/dist/{cli → command/cli/ports}/sibling-ports.d.ts +0 -0
- /package/dist/{cli → command/cli/ports}/sibling-ports.js +0 -0
- /package/dist/{cli → command/cli}/project-name.d.ts +0 -0
- /package/dist/{cli → command/cli}/project-name.js +0 -0
- /package/dist/{daemon → command/daemon/binding}/free-port.d.ts +0 -0
- /package/dist/{daemon → command/daemon/binding}/free-port.js +0 -0
- /package/dist/{daemon → command/daemon/binding}/loopback-alias.d.ts +0 -0
- /package/dist/{daemon → command/daemon/binding}/loopback-alias.js +0 -0
- /package/dist/{daemon → command/daemon/binding}/port-presence.d.ts +0 -0
- /package/dist/{daemon → command/daemon/binding}/port-presence.js +0 -0
- /package/dist/{daemon → command/daemon}/dev-servers.d.ts +0 -0
- /package/dist/{daemon → command/daemon}/dev-servers.js +0 -0
- /package/dist/{daemon → command/daemon/lifetime}/startup-failure.d.ts +0 -0
- /package/dist/{daemon → command/daemon/lifetime}/startup-failure.js +0 -0
- /package/dist/{daemon → command/daemon/lifetime}/unclean-predecessor.d.ts +0 -0
- /package/dist/{daemon → command/daemon/lifetime}/unclean-predecessor.js +0 -0
- /package/dist/{daemon → command/daemon}/state-dir.d.ts +0 -0
- /package/dist/{setup → command/setup}/agent-io.d.ts +0 -0
- /package/dist/{setup → command/setup}/agent-io.js +0 -0
- /package/dist/{setup → command/setup}/approval-migration.d.ts +0 -0
- /package/dist/{setup → command/setup}/approval-migration.js +0 -0
- /package/dist/{setup → command/setup}/auto-approve.d.ts +0 -0
- /package/dist/{setup → command/setup/bringup}/ensure-daemon.d.ts +0 -0
- /package/dist/{setup → command/setup/bringup}/relaunch.d.ts +0 -0
- /package/dist/{setup → command/setup/bringup}/relaunch.js +0 -0
- /package/dist/{setup → command/setup}/desktop-shape.d.ts +0 -0
- /package/dist/{setup → command/setup}/desktop-shape.js +0 -0
- /package/dist/{setup → command/setup/init}/init-host.d.ts +0 -0
- /package/dist/{setup → command/setup}/license-key.d.ts +0 -0
- /package/dist/{setup → command/setup}/license-key.js +0 -0
- /package/dist/{setup → command/setup/probe}/existing-app.d.ts +0 -0
- /package/dist/{setup → command/setup/probe}/existing-app.js +0 -0
- /package/dist/{setup → command/setup/probe}/loopback-probe-urls.d.ts +0 -0
- /package/dist/{setup → command/setup/probe}/loopback-probe-urls.js +0 -0
- /package/dist/{setup → command/setup}/remaining-steps.d.ts +0 -0
- /package/dist/{setup → command/setup}/session-pick.d.ts +0 -0
- /package/dist/{setup → command/setup}/session-pick.js +0 -0
- /package/dist/{setup → command/setup/terminal}/confirm.d.ts +0 -0
- /package/dist/{setup → command/setup/terminal}/interrupt.d.ts +0 -0
- /package/dist/{setup → command/setup/terminal}/interrupt.js +0 -0
- /package/dist/{setup → command/setup/terminal}/listeners.d.ts +0 -0
- /package/dist/{setup → command/setup/terminal}/listeners.js +0 -0
- /package/dist/{setup → command/setup/terminal}/transcripts.d.ts +0 -0
- /package/dist/{setup → command/setup/terminal}/transcripts.js +0 -0
- /package/dist/{setup → command/setup/terminal}/wait-progress.d.ts +0 -0
- /package/dist/{setup → command/setup/terminal}/wait-progress.js +0 -0
- /package/dist/{update → command/update}/nudge-credit.d.ts +0 -0
- /package/dist/{update → command/update}/update-checker.d.ts +0 -0
- /package/dist/{version → command/version/identity}/server-version.d.ts +0 -0
- /package/dist/{version → command/version}/peer-announce.d.ts +0 -0
- /package/dist/{version → command/version}/sdk-fix.d.ts +0 -0
- /package/dist/{version → command/version}/version-nudge.d.ts +0 -0
- /package/dist/{crawl → features/crawl}/crawl-empty.d.ts +0 -0
- /package/dist/{crawl → features/crawl}/crawl-empty.js +0 -0
- /package/dist/{ee → features/ee}/audit-log.d.ts +0 -0
- /package/dist/{visual → features/visual}/capture-cleanup.d.ts +0 -0
- /package/dist/{visual → features/visual}/capture-cleanup.js +0 -0
- /package/dist/{visual → features/visual}/visual-diff.d.ts +0 -0
- /package/dist/{visual → features/visual}/visual-diff.js +0 -0
- /package/dist/{capsule → judgement/capsule}/divergence.js +0 -0
- /package/dist/{capsule → judgement/capsule}/minimize.d.ts +0 -0
- /package/dist/{capsule → judgement/capsule}/minimize.js +0 -0
- /package/dist/{domain → judgement/domain}/domain-model.d.ts +0 -0
- /package/dist/{domain → judgement/domain}/flow-risk.d.ts +0 -0
- /package/dist/{hunt → judgement/hunt}/hunt-report.d.ts +0 -0
- /package/dist/{hunt → judgement/hunt}/hunt-report.js +0 -0
- /package/dist/{oracles → judgement/oracles}/flow-instrument-gaps.d.ts +0 -0
- /package/dist/{oracles → judgement/oracles}/flow-instrument-gaps.js +0 -0
- /package/dist/{oracles → judgement/oracles}/self-instrument.d.ts +0 -0
- /package/dist/{oracles → judgement/oracles}/self-instrument.js +0 -0
- /package/dist/{flows → judgement/outcome}/assertion-integrity.d.ts +0 -0
- /package/dist/{flows → judgement/outcome}/assertion-integrity.js +0 -0
- /package/dist/{flows → judgement/outcome}/attributed-failure.d.ts +0 -0
- /package/dist/{flows → judgement/outcome}/attributed-failure.js +0 -0
- /package/dist/{flows → judgement/outcome}/role-drift-reason.d.ts +0 -0
- /package/dist/{flows → judgement/outcome}/role-drift-reason.js +0 -0
- /package/dist/{flows → judgement/outcome}/verify-change-verdict.d.ts +0 -0
- /package/dist/{flows → judgement/outcome}/verify-change-verdict.js +0 -0
- /package/dist/{phenomena → judgement/phenomena}/phenomena.d.ts +0 -0
- /package/dist/{phenomena → judgement/phenomena}/phenomena.js +0 -0
- /package/dist/{runs → judgement/runs/artifact}/profile-redact.d.ts +0 -0
- /package/dist/{runs → judgement/runs/artifact}/profile-redact.js +0 -0
- /package/dist/{runs → judgement/runs/artifact}/render-report.d.ts +0 -0
- /package/dist/{runs → judgement/runs/artifact}/replay-mapping.d.ts +0 -0
- /package/dist/{runs → judgement/runs/artifact}/run-context.d.ts +0 -0
- /package/dist/{runs → judgement/runs/artifact}/run-context.js +0 -0
- /package/dist/{runs → judgement/runs/artifact}/run-diff.d.ts +0 -0
- /package/dist/{runs → judgement/runs/artifact}/run-diff.js +0 -0
- /package/dist/{runs → judgement/runs}/repair-prompt.d.ts +0 -0
- /package/dist/{runs → judgement/runs}/repair-prompt.js +0 -0
- /package/dist/{runs → judgement/runs}/risk-classify.d.ts +0 -0
- /package/dist/{runs → judgement/runs}/risk-classify.js +0 -0
- /package/dist/{runs → judgement/runs}/verify-http.d.ts +0 -0
- /package/dist/{runs → judgement/runs}/verify-http.js +0 -0
- /package/dist/{runs → judgement/runs}/verify-server.d.ts +0 -0
- /package/dist/{runs → judgement/runs}/verify-server.js +0 -0
- /package/dist/{flows → language/flows/annotate-notes}/annotate-target.d.ts +0 -0
- /package/dist/{flows → language/flows/annotate-notes}/annotate-target.js +0 -0
- /package/dist/{flows → language/flows/annotate-notes}/annotate.d.ts +0 -0
- /package/dist/{flows → language/flows/annotate-notes}/annotate.js +0 -0
- /package/dist/{flows → language/flows}/buddy-status.d.ts +0 -0
- /package/dist/{flows → language/flows}/buddy-status.js +0 -0
- /package/dist/{flows → language/flows/change}/gate.d.ts +0 -0
- /package/dist/{flows → language/flows/change}/git-changed.d.ts +0 -0
- /package/dist/{flows → language/flows/change}/git-changed.js +0 -0
- /package/dist/{flows → language/flows/change}/watch-batcher.d.ts +0 -0
- /package/dist/{flows → language/flows/change}/watch-batcher.js +0 -0
- /package/dist/{flows → language/flows}/empty-flow.d.ts +0 -0
- /package/dist/{flows → language/flows}/flow-memory-consult.d.ts +0 -0
- /package/dist/{flows → language/flows}/flow-memory-consult.js +0 -0
- /package/dist/{flows → language/flows}/flow-report.d.ts +0 -0
- /package/dist/{flows → language/flows}/flow-report.js +0 -0
- /package/dist/{flows → language/flows}/flow-scope.d.ts +0 -0
- /package/dist/{flows → language/flows}/flow-scope.js +0 -0
- /package/dist/{flows → language/flows}/flow-store-for-session.js +0 -0
- /package/dist/{flows → language/flows}/heal.d.ts +0 -0
- /package/dist/{flows → language/flows/recording}/flake.js +0 -0
- /package/dist/{flows → language/flows/recording}/recording-backtrack.d.ts +0 -0
- /package/dist/{flows → language/flows/recording}/replay-halt.d.ts +0 -0
- /package/dist/{flows → language/flows/recording}/replay-halt.js +0 -0
- /package/dist/{flows → language/flows}/role-anchor-nearest.d.ts +0 -0
- /package/dist/{flows → language/flows/stores}/annotation-store.d.ts +0 -0
- /package/dist/{flows → language/flows/stores}/annotation-store.js +0 -0
- /package/dist/{flows → language/flows/suite}/coverage.d.ts +0 -0
- /package/dist/{flows → language/flows/suite}/coverage.js +0 -0
- /package/dist/{flows → language/flows/suite}/parallel-suite.d.ts +0 -0
- /package/dist/{flows → language/flows/suite}/parallel-suite.js +0 -0
- /package/dist/{platform.d.ts → machine/platform.d.ts} +0 -0
- /package/dist/{platform.js → machine/platform.js} +0 -0
- /package/dist/{temp-dir.d.ts → machine/temp-dir.d.ts} +0 -0
- /package/dist/{temp-dir.js → machine/temp-dir.js} +0 -0
- /package/dist/{cloud → memory/cloud}/sync-disk.d.ts +0 -0
- /package/dist/{cloud → memory/cloud}/sync-hash.d.ts +0 -0
- /package/dist/{cloud → memory/cloud}/sync-hash.js +0 -0
- /package/dist/{journal → memory/journal}/deviation-report.d.ts +0 -0
- /package/dist/{journal → memory/journal}/deviation-report.js +0 -0
- /package/dist/{journal → memory/journal}/deviation-service.d.ts +0 -0
- /package/dist/{journal → memory/journal}/deviation-service.js +0 -0
- /package/dist/{journal → memory/journal}/envelope.js +0 -0
- /package/dist/{journal → memory/journal}/rollups.d.ts +0 -0
- /package/dist/{journal → memory/journal}/rollups.js +0 -0
- /package/dist/{project → memory/project}/baselines.d.ts +0 -0
- /package/dist/{project → memory/project}/baselines.js +0 -0
- /package/dist/{project → memory/project}/file-lock.d.ts +0 -0
- /package/dist/{project → memory/project}/file-lock.js +0 -0
- /package/dist/{project → memory/project}/memory-fs.js +0 -0
- /package/dist/{session → memory/recall}/looks-like-dev-server.d.ts +0 -0
- /package/dist/{session → memory/recall}/looks-like-dev-server.js +0 -0
- /package/dist/memory/{project-memory.js → recall/project-memory.js} +0 -0
- /package/dist/{session → memory/recall}/registered-projects.d.ts +0 -0
- /package/dist/{session → memory/recall}/registered-projects.js +0 -0
- /package/dist/{bridge → portal/bridge}/pairing-token.d.ts +0 -0
- /package/dist/{bridge → portal/bridge}/pairing-token.js +0 -0
- /package/dist/{bridge → portal/bridge}/protocol-skew.d.ts +0 -0
- /package/dist/{bridge → portal/bridge}/protocol-skew.js +0 -0
- /package/dist/{bridge → portal/bridge}/token-auth.d.ts +0 -0
- /package/dist/{bridge → portal/bridge}/token-auth.js +0 -0
- /package/dist/{input → portal/input}/driven-redaction.d.ts +0 -0
- /package/dist/{input → portal/input}/driven-redaction.js +0 -0
- /package/dist/{input → portal/input}/network-mock.d.ts +0 -0
- /package/dist/{input → portal/input}/scroll-find.d.ts +0 -0
- /package/dist/{pool → portal/pool}/lease-reaper.d.ts +0 -0
- /package/dist/{pool → portal/pool}/playwright-launcher.d.ts +0 -0
- /package/dist/{pool → portal/pool}/storage-seed.js +0 -0
- /package/dist/{session → portal/session}/control-envelope.d.ts +0 -0
- /package/dist/{session → portal/session}/control-envelope.js +0 -0
- /package/dist/{session → portal/session/dev-server}/dev-command.d.ts +0 -0
- /package/dist/{session → portal/session/dev-server}/dev-command.js +0 -0
- /package/dist/{session → portal/session/dev-server}/dev-server-probe.d.ts +0 -0
- /package/dist/{session → portal/session/facts}/ref-provenance.d.ts +0 -0
- /package/dist/{session → portal/session/facts}/ref-provenance.js +0 -0
- /package/dist/{session → portal/session}/fake-session.d.ts +0 -0
- /package/dist/{session → portal/session}/fake-session.js +0 -0
- /package/dist/{session → portal/session/human}/live-control.d.ts +0 -0
- /package/dist/{session → portal/session/human}/live-control.js +0 -0
- /package/dist/{session → portal/session/human}/presenter-args.d.ts +0 -0
- /package/dist/{session → portal/session/human}/presenter-args.js +0 -0
- /package/dist/{session → portal/session/human}/review-store.d.ts +0 -0
- /package/dist/{session → portal/session/human}/review-store.js +0 -0
- /package/dist/{session → portal/session}/last-act.d.ts +0 -0
- /package/dist/{session → portal/session}/last-act.js +0 -0
- /package/dist/{session → portal/session}/lease-visibility.d.ts +0 -0
- /package/dist/{session → portal/session}/lease-visibility.js +0 -0
- /package/dist/{session → portal/session}/no-session-watch.d.ts +0 -0
- /package/dist/{session → portal/session/page-commands}/pending-commands.d.ts +0 -0
- /package/dist/{session → portal/session/page-commands}/pending-commands.js +0 -0
- /package/dist/{session → portal/session/presence}/attachment-history.d.ts +0 -0
- /package/dist/{session → portal/session/presence}/attachment-history.js +0 -0
- /package/dist/{session → portal/session/presence}/lease-availability.d.ts +0 -0
- /package/dist/{session → portal/session/presence}/lease-availability.js +0 -0
- /package/dist/{session → portal/session/presence}/session-lease.d.ts +0 -0
- /package/dist/{session → portal/session/presence}/session-lease.js +0 -0
- /package/dist/{session → portal/session/presence}/session-mirror.d.ts +0 -0
- /package/dist/{session → portal/session/presence}/session-mirror.js +0 -0
- /package/dist/{session → portal/session/presence}/session-recommendation.d.ts +0 -0
- /package/dist/{session → portal/session}/session-info.d.ts +0 -0
- /package/dist/{session → portal/session}/session-info.js +0 -0
- /package/dist/{session → portal/session}/session-reconnect.d.ts +0 -0
- /package/dist/{session → portal/session}/session-reconnect.js +0 -0
- /package/dist/{session → portal/session}/session-successor.d.ts +0 -0
- /package/dist/{session → portal/session}/session-successor.js +0 -0
- /package/dist/{session → portal/session}/stall-clock.d.ts +0 -0
- /package/dist/{session → portal/session}/state-select.d.ts +0 -0
- /package/dist/{session → portal/session}/state-select.js +0 -0
- /package/dist/{session → portal/session/timing}/resolve-within.d.ts +0 -0
- /package/dist/{session → portal/session/timing}/resolve-within.js +0 -0
- /package/dist/{session → portal/session/timing}/wall-clock.d.ts +0 -0
- /package/dist/{session → portal/session/timing}/wall-clock.js +0 -0
- /package/dist/{loopback-agent.d.ts → surface/loopback-agent.d.ts} +0 -0
- /package/dist/{loopback-agent.js → surface/loopback-agent.js} +0 -0
- /package/dist/{mcp → surface/mcp}/attach-memory.d.ts +0 -0
- /package/dist/{mcp → surface/mcp}/attach-memory.js +0 -0
- /package/dist/{mcp → surface/mcp/peer}/client-identity.d.ts +0 -0
- /package/dist/{mcp → surface/mcp/peer}/client-identity.js +0 -0
- /package/dist/{mcp → surface/mcp/proxy}/mcp-post-transport.d.ts +0 -0
- /package/dist/{mcp → surface/mcp/proxy}/proxy-backoff.d.ts +0 -0
- /package/dist/{mcp → surface/mcp/proxy}/proxy-backoff.js +0 -0
- /package/dist/{mcp → surface/mcp/proxy}/proxy-handshake.d.ts +0 -0
- /package/dist/{mcp → surface/mcp}/proxy-idle-exit.d.ts +0 -0
- /package/dist/{mcp → surface/mcp}/proxy-idle-exit.js +0 -0
- /package/dist/{mcp → surface/mcp}/shared-params.d.ts +0 -0
- /package/dist/{mcp → surface/mcp}/shared-params.js +0 -0
- /package/dist/{mcp → surface/mcp}/sse-frame-parser.d.ts +0 -0
- /package/dist/{mcp → surface/mcp}/sse-frame-parser.js +0 -0
- /package/dist/{tools → surface/tools/act}/act-danger.d.ts +0 -0
- /package/dist/{tools → surface/tools/act}/act-sequence-retry.d.ts +0 -0
- /package/dist/{tools → surface/tools/act}/act-sequence-retry.js +0 -0
- /package/dist/{tools → surface/tools/act}/act-view.d.ts +0 -0
- /package/dist/{tools → surface/tools/act}/act-view.js +0 -0
- /package/dist/{tools → surface/tools/act/navigation}/navigate-arrival.js +0 -0
- /package/dist/{tools → surface/tools/act/navigation}/navigate-result.d.ts +0 -0
- /package/dist/{tools → surface/tools/act/navigation}/navigate-result.js +0 -0
- /package/dist/{tools → surface/tools/act/navigation}/reload-result.d.ts +0 -0
- /package/dist/{tools → surface/tools/act/navigation}/reload-result.js +0 -0
- /package/dist/{tools → surface/tools/act}/react-grace.d.ts +0 -0
- /package/dist/{tools → surface/tools/act}/react-grace.js +0 -0
- /package/dist/{tools → surface/tools/act}/resolve-target.d.ts +0 -0
- /package/dist/{tools → surface/tools/act}/settle-in-flight.d.ts +0 -0
- /package/dist/{tools → surface/tools/act}/settle-in-flight.js +0 -0
- /package/dist/{tools → surface/tools}/act-sequence-tool.d.ts +0 -0
- /package/dist/{tools → surface/tools/args}/alias-args.d.ts +0 -0
- /package/dist/{tools → surface/tools/args}/alias-args.js +0 -0
- /package/dist/{tools → surface/tools/gaps}/coverage-identity.d.ts +0 -0
- /package/dist/{tools → surface/tools/gaps}/coverage-identity.js +0 -0
- /package/dist/{tools → surface/tools/gaps}/observed-nothing.d.ts +0 -0
- /package/dist/{tools → surface/tools/gaps}/observed-nothing.js +0 -0
- /package/dist/{tools → surface/tools/gaps}/sdk-marker-probe.d.ts +0 -0
- /package/dist/{tools → surface/tools/gaps}/sdk-marker-probe.js +0 -0
- /package/dist/{tools → surface/tools}/observe-tools.d.ts +0 -0
- /package/dist/{tools → surface/tools/read}/complete-snapshot.d.ts +0 -0
- /package/dist/{tools → surface/tools/read}/complete-snapshot.js +0 -0
- /package/dist/{tools → surface/tools/read}/query-paginate.d.ts +0 -0
- /package/dist/{tools → surface/tools/read}/query-paginate.js +0 -0
- /package/dist/{tools → surface/tools/read}/query-shape.d.ts +0 -0
- /package/dist/{tools → surface/tools/read}/query-shape.js +0 -0
- /package/dist/{tools → surface/tools}/read-tools.d.ts +0 -0
- /package/dist/{tools → surface/tools}/reconcile-tools.d.ts +0 -0
- /package/dist/{honesty → surface/tools}/tool-hit-rate.d.ts +0 -0
- /package/dist/{tools → surface/tools}/tool-invoker.d.ts +0 -0
- /package/dist/{tools → surface/tools}/tool-invoker.js +0 -0
- /package/dist/{tools → surface/tools}/unadvertised-help.d.ts +0 -0
- /package/dist/{tools → surface/tools}/verify-next-baton.d.ts +0 -0
- /package/docs/{tools-session-and-feedback.mdx → tools/session-and-feedback.mdx} +0 -0
- /package/docs/{tools-tools-and-run.mdx → tools/tools-and-run.mdx} +0 -0
|
@@ -1,569 +0,0 @@
|
|
|
1
|
-
import { healthEnvelope } from '../session/session-health.js';
|
|
2
|
-
import { verifyNextBaton, SUPPRESS_VERIFY_NEXT_ENV } from './verify-next-baton.js';
|
|
3
|
-
import { TelemetryActor, TelemetryEventKind, TRANSPORT_LIMITS, fingerprintFinding, } from '@reticlehq/core';
|
|
4
|
-
import { getSessionMetrics } from '../telemetry/session-metrics.js';
|
|
5
|
-
import { getTelemetry } from '../telemetry/telemetry.js';
|
|
6
|
-
import { takeUpdateNudge } from '../update/update-nudge.js';
|
|
7
|
-
import { takeVersionSkew } from '../version/version-nudge.js';
|
|
8
|
-
import { rewriteClosedAsSkew } from '../version/version-skew.js';
|
|
9
|
-
import { noteToolCall } from '../daemon/daemon-usefulness.js';
|
|
10
|
-
import { bugsInResult, routeOf } from '../telemetry/bug-found.js';
|
|
11
|
-
import { noteToolServed, reportToolRefused } from '../telemetry/tool-refused.js';
|
|
12
|
-
import { buildErrorPayload, refusalReasonFor } from './error-recovery.js';
|
|
13
|
-
import { resultIsError } from '../mcp/mcp-is-error.js';
|
|
14
|
-
import { verificationOf } from '../telemetry/verification-of.js';
|
|
15
|
-
import { asString, sessionIdFromArgs, spentRefFromArgs } from './tools-helpers.js';
|
|
16
|
-
import { EnvelopeKey } from './tool-kit.js';
|
|
17
|
-
import { ReticleTool } from './tool-names.js';
|
|
18
|
-
import { takeFeedbackPrompt } from './feedback-tools.js';
|
|
19
|
-
import { takeFeedbackUndelivered } from '../telemetry/feedback-delivery.js';
|
|
20
|
-
import { noteRefsMinted, wrongTabRefusal } from '../session/ref-provenance.js';
|
|
21
|
-
import { CAPTURED_TOOLS, noteCapturedCall, noteToolDispatched, } from '../honesty/feature-capture.js';
|
|
22
|
-
import { span } from '../trace.js';
|
|
23
|
-
import { defectForToolResult, deltaForToolResult, impactSnapshot, initImpact, recordImpact, } from '../impact/impact-recorder.js';
|
|
24
|
-
import { frictionOf, inviteFor } from './feedback-invite.js';
|
|
25
|
-
/**
|
|
26
|
-
* The live-session tools whose result MUST carry the
|
|
27
|
-
* session-health envelope. Owned in ONE place — not retrofitted per handler — so a throttled tab
|
|
28
|
-
* can never return a healthy-looking result from any of these. `runTool` is the single choke point
|
|
29
|
-
* (mcp.ts + tool-invoker.ts) that splices health on; the guard test asserts the set is exhaustive.
|
|
30
|
-
*/
|
|
31
|
-
/**
|
|
32
|
-
* Tools that DRIVE the page. An action with no verdict after it is the signature of the loop
|
|
33
|
-
* breaking mid-task — see `abandonedActions`. `act_and_wait` is one of these AND a verification, so
|
|
34
|
-
* it settles its own action, which is exactly right: it is the tool that does both.
|
|
35
|
-
*/
|
|
36
|
-
const ACTION_TOOLS = new Set([
|
|
37
|
-
ReticleTool.ACT,
|
|
38
|
-
ReticleTool.ACT_SEQUENCE,
|
|
39
|
-
ReticleTool.ACT_AND_WAIT,
|
|
40
|
-
]);
|
|
41
|
-
/**
|
|
42
|
-
* Tools that go through Playwright CDP rather than the page SDK.
|
|
43
|
-
*
|
|
44
|
-
* Under version skew these fail with "Target page, context or browser has been closed" while every
|
|
45
|
-
* DOM tool against the same tab still works (#688). They are session-EXEMPT (own result contracts),
|
|
46
|
-
* so the bound-tool resolve above never runs for them — resolve again here so we can refuse with
|
|
47
|
-
* the skew sentence before Playwright lies about a closed page.
|
|
48
|
-
*/
|
|
49
|
-
const CDP_TOOLS = new Set([
|
|
50
|
-
ReticleTool.SCREENSHOT,
|
|
51
|
-
ReticleTool.VISUAL_DIFF,
|
|
52
|
-
ReticleTool.NETWORK_MOCK,
|
|
53
|
-
ReticleTool.VIEWPORT,
|
|
54
|
-
]);
|
|
55
|
-
/**
|
|
56
|
-
* Tools whose result hands the agent refs. The tab they were minted in is remembered, so the call
|
|
57
|
-
* that spends one cannot be routed to a different tab without saying so — see ref-provenance.ts.
|
|
58
|
-
*
|
|
59
|
-
* Over-inclusion is the safe direction here and under-inclusion is not dangerous either: both ends
|
|
60
|
-
* produce a REFUSAL naming the two tabs, never a silent drive against the wrong one.
|
|
61
|
-
*/
|
|
62
|
-
const REF_MINTING_TOOLS = new Set([
|
|
63
|
-
ReticleTool.SNAPSHOT,
|
|
64
|
-
ReticleTool.QUERY,
|
|
65
|
-
ReticleTool.INSPECT,
|
|
66
|
-
ReticleTool.EXPLORE,
|
|
67
|
-
// `crawl` mints refs for the controls it drives and `coverage` for the ones it reports untouched.
|
|
68
|
-
// Both are actions on the merged verify tool now.
|
|
69
|
-
ReticleTool.VERIFY,
|
|
70
|
-
]);
|
|
71
|
-
export const SESSION_BOUND_TOOLS = new Set([
|
|
72
|
-
// Resolves a session and reads its event window (`session.eventsSince`), exactly as OBSERVE and
|
|
73
|
-
// NETWORK do. Without this it runs with no session and answers from nothing.
|
|
74
|
-
ReticleTool.SNAPSHOT,
|
|
75
|
-
ReticleTool.QUERY,
|
|
76
|
-
ReticleTool.INSPECT,
|
|
77
|
-
// Merged change/flows/affected/coverage/crawl. Its members were SPLIT across bound and exempt —
|
|
78
|
-
// coverage/change/crawl bound, flow_verify exempt because it returns its own suite contract — and
|
|
79
|
-
// a merged tool has to be one or the other. Bound is the right side: `crawl` drives the app
|
|
80
|
-
// itself, so a throttled or event-dropping tab is exactly the condition its verdict depends on,
|
|
81
|
-
// and dropping the health disclosure there to protect a sibling's output shape would trade an
|
|
82
|
-
// honesty signal for a formatting preference.
|
|
83
|
-
ReticleTool.VERIFY,
|
|
84
|
-
ReticleTool.ACT,
|
|
85
|
-
ReticleTool.ACT_SEQUENCE,
|
|
86
|
-
ReticleTool.ACT_AND_WAIT,
|
|
87
|
-
ReticleTool.OBSERVE,
|
|
88
|
-
ReticleTool.WAIT_FOR,
|
|
89
|
-
ReticleTool.ASSERT,
|
|
90
|
-
// Reads the live page as well as the event window, so a throttled tab can make it compare a stale
|
|
91
|
-
// render against fresh data — exactly the case the health envelope exists to disclose.
|
|
92
|
-
ReticleTool.RECONCILE,
|
|
93
|
-
ReticleTool.NETWORK,
|
|
94
|
-
ReticleTool.CONSOLE,
|
|
95
|
-
ReticleTool.ANIMATIONS,
|
|
96
|
-
ReticleTool.BASELINE, // merged save/list/diff — save+diff are live reads
|
|
97
|
-
ReticleTool.RECORD, // merged start/stop — both live
|
|
98
|
-
ReticleTool.REPLAY,
|
|
99
|
-
ReticleTool.CLOCK,
|
|
100
|
-
ReticleTool.STATE,
|
|
101
|
-
ReticleTool.STORAGE,
|
|
102
|
-
ReticleTool.EXPLORE,
|
|
103
|
-
ReticleTool.SCROLL_TO,
|
|
104
|
-
ReticleTool.NAVIGATE,
|
|
105
|
-
]);
|
|
106
|
-
/**
|
|
107
|
-
* Tools that carry a `sessionId` arg but are NOT live-session-health tools — they read/write
|
|
108
|
-
* disk (capabilities/contract/flow/project), drain a buffer, or steer session lifecycle. They are
|
|
109
|
-
* exempt from the health splice ON PURPOSE. Kept explicit so the guard test can force every new
|
|
110
|
-
* `sessionId`-bearing tool to be classified into exactly one set (bound XOR exempt).
|
|
111
|
-
*/
|
|
112
|
-
export const SESSION_EXEMPT_TOOLS = new Set([
|
|
113
|
-
ReticleTool.CAPABILITIES, // has a fromDisk mode with no live session
|
|
114
|
-
ReticleTool.CONTRACT_SAVE, // persists the registry to disk
|
|
115
|
-
ReticleTool.FLOW_SAVE, // sessionId only scopes the write to the app's flow subdir; disk-side
|
|
116
|
-
ReticleTool.FLOW, // merged list/load/delete — sessionId only scopes the project; all disk-side
|
|
117
|
-
ReticleTool.FLOW_REPLAY, // returns its own FlowReplayResult contract (+ auto-records a run)
|
|
118
|
-
ReticleTool.FLOW_SAVE_RECORDED, // reads the recording buffer, writes disk
|
|
119
|
-
ReticleTool.FLOW_HEAL, // returns its own FlowHealResult contract
|
|
120
|
-
ReticleTool.INTENT, // reads/writes .reticle/intent.json; sessionId only picks the project
|
|
121
|
-
ReticleTool.CONTEXT, // folds the journal + intent ledger; must still answer when nothing is connected
|
|
122
|
-
ReticleTool.PROJECT, // reads .reticle/project.json
|
|
123
|
-
// Reads the team's shared memory over HTTP; sessionId only resolves WHICH project's link file to
|
|
124
|
-
// use. It must answer with no tab connected — "what does this project know?" is a question an
|
|
125
|
-
// agent asks before it has opened anything.
|
|
126
|
-
ReticleTool.MEMORY,
|
|
127
|
-
ReticleTool.RUN_EXPORT, // reads .reticle/runs/<id>.json (verification-run artifact)
|
|
128
|
-
ReticleTool.SESSION, // merged lifecycle/human-channel family (tune/yield/end/resume/messages/review/narrate)
|
|
129
|
-
ReticleTool.SCREENSHOT, // own contract; provider-driven, not a live-DOM-health read
|
|
130
|
-
ReticleTool.VISUAL_DIFF, // own contract (matched/ratio/region)
|
|
131
|
-
ReticleTool.NETWORK_MOCK, // own contract (applied/count); provider-driven, not a live-DOM read
|
|
132
|
-
ReticleTool.VIEWPORT, // own contract (applied/width/height); provider-driven, not a live-DOM read
|
|
133
|
-
ReticleTool.ANNOTATE, // annotates a recording's steps; pure disk-side metadata, no live DOM read
|
|
134
|
-
ReticleTool.LEASE, // merged acquire/release — its sessionId is a pool lease id, not a live session
|
|
135
|
-
// Its sessionId only enriches the report with the tab's runtime/engine, and it must stay callable
|
|
136
|
-
// when NO session exists — "nothing ever connected" is feedback we especially want.
|
|
137
|
-
ReticleTool.FEEDBACK,
|
|
138
|
-
]);
|
|
139
|
-
function isPlainObject(value) {
|
|
140
|
-
return 'object' === typeof value && value !== null && !Array.isArray(value);
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Emit `verification_completed` when a verification tool produced a verdict.
|
|
144
|
-
*
|
|
145
|
-
* Read off the RESULT here rather than emitted from `decideVerified`, which is where the verdict is
|
|
146
|
-
* actually decided: that function is pure, and the repo's rules keep clocks, IO and side effects out
|
|
147
|
-
* of pure logic for good reason. Reading the result also means all the verification tools are covered
|
|
148
|
-
* by one site instead of N handler edits, and the next one is covered the moment it joins the set.
|
|
149
|
-
*
|
|
150
|
-
* The RULE itself lives in verification-of.ts, because getting it wrong is silent and it feeds the
|
|
151
|
-
* one number shown to investors — see that file for the two ways it was wrong.
|
|
152
|
-
*/
|
|
153
|
-
function recordVerification(toolName, result, durationMs, brand) {
|
|
154
|
-
const verification = verificationOf(toolName, result, durationMs, brand);
|
|
155
|
-
if (verification === undefined)
|
|
156
|
-
return;
|
|
157
|
-
getSessionMetrics().recordVerification();
|
|
158
|
-
void getTelemetry().emit(TelemetryEventKind.VERIFICATION_COMPLETED, {
|
|
159
|
-
actor: TelemetryActor.AGENT,
|
|
160
|
-
verification,
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Emit one `bug_found` per defect in a tool result, and count it into the session.
|
|
165
|
-
*
|
|
166
|
-
* The outcome metric: everything else measures whether Reticle is used, this measures whether it
|
|
167
|
-
* works. Discrete events rather than only a counter, because the KIND distribution is the argument —
|
|
168
|
-
* "we found 4,000 bugs" is a claim, "1,200 were greens that lied" is evidence.
|
|
169
|
-
*/
|
|
170
|
-
function reportBugsFound(toolName, result) {
|
|
171
|
-
const bugs = bugsInResult(toolName, result);
|
|
172
|
-
if (0 === bugs.length)
|
|
173
|
-
return;
|
|
174
|
-
const metrics = getSessionMetrics();
|
|
175
|
-
const route = routeOf(result);
|
|
176
|
-
for (const bug of bugs) {
|
|
177
|
-
// `recordBug` answers whether this kind is new to the session, which is the only thing that
|
|
178
|
-
// separates "another defect" from "the same defect again". Counting instances as defects is how
|
|
179
|
-
// a published number inflates itself.
|
|
180
|
-
const first = metrics.recordBug(bug.kind);
|
|
181
|
-
const identity = route !== undefined
|
|
182
|
-
? { kind: bug.kind, source: bug.source, route }
|
|
183
|
-
: { kind: bug.kind, source: bug.source };
|
|
184
|
-
const fingerprint = fingerprintFinding(identity);
|
|
185
|
-
void getTelemetry().emit(TelemetryEventKind.BUG_FOUND, {
|
|
186
|
-
actor: TelemetryActor.AGENT,
|
|
187
|
-
bug: { ...bug, repeat: !first, fingerprint },
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Report a refused call, at the one place both dispatch paths cross.
|
|
193
|
-
*
|
|
194
|
-
* A refusal arrives two ways and they are the same event: the handler THROWS (the common case — no
|
|
195
|
-
* session, a stale ref, a schema rejection), or it RETURNS `{ error }`, which is this codebase's
|
|
196
|
-
* refusal convention and just as much a refusal. Both are classified by the same table the agent's
|
|
197
|
-
* recovery advice comes from, so the reason we record and the advice it got cannot describe
|
|
198
|
-
* different things.
|
|
199
|
-
*
|
|
200
|
-
* `reticle_run` is skipped for the same reason `bugsInResult` skips it: it is a WRAPPER whose
|
|
201
|
-
* handler calls `runTool` on the real tool, which already reported that refusal under the real
|
|
202
|
-
* tool's name, and then hands the same failure back out to be reported a second time as
|
|
203
|
-
* `reticle_run`. A count that doubles because of HOW a tool was reached is not a measurement.
|
|
204
|
-
*/
|
|
205
|
-
function reportRefusal(toolName, message) {
|
|
206
|
-
if (toolName === ReticleTool.RUN)
|
|
207
|
-
return;
|
|
208
|
-
reportToolRefused(toolName, refusalReasonFor(message));
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Which friction this result represents, counting the invitation if there is one.
|
|
212
|
-
*
|
|
213
|
-
* Feedback is the highest-yield channel this product has, and `feedbackPrompted` is the denominator
|
|
214
|
-
* that says whether inviting mid-task works or is decoration. It read as near-empty because the
|
|
215
|
-
* count sat behind the session-bound early return, so a session-EXEMPT tool never invited and a tool
|
|
216
|
-
* that THREW never got there — and a throw is the commonest refusal there is.
|
|
217
|
-
*
|
|
218
|
-
* `reticle_run` is skipped for the same reason it is skipped for refusals and defects: the wrapper's
|
|
219
|
-
* handler calls `runTool` on the real tool, which already invited under the real tool's name, and
|
|
220
|
-
* the failure is then handed back out to be counted a second time. A doubled denominator makes the
|
|
221
|
-
* feedback rate read half.
|
|
222
|
-
*/
|
|
223
|
-
function frictionInviteFor(toolName, raw) {
|
|
224
|
-
if (!isPlainObject(raw) || toolName === ReticleTool.RUN)
|
|
225
|
-
return undefined;
|
|
226
|
-
const friction = frictionOf({
|
|
227
|
-
unknownTool: false,
|
|
228
|
-
verifiedUnknown: 'unknown' === raw['verified'],
|
|
229
|
-
repeatRun: getSessionMetrics().currentRun,
|
|
230
|
-
errored: resultIsError(raw),
|
|
231
|
-
// A verdict is progress. Without this, three successful act_and_wait calls in a row — the exact
|
|
232
|
-
// loop this release exists to encourage — get told they are stuck.
|
|
233
|
-
producedVerdict: 'verified' in raw,
|
|
234
|
-
});
|
|
235
|
-
if (friction !== undefined)
|
|
236
|
-
getSessionMetrics().recordFeedbackPrompt();
|
|
237
|
-
return friction;
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* The single entry point both the MCP server and the programmatic invoker call instead of
|
|
241
|
-
* `tool.handler` directly. Runs the handler, then — for a live-session tool returning a plain
|
|
242
|
-
* object that did not already include `session` — splices the health envelope on. Idempotent
|
|
243
|
-
* (handlers that already add health are left untouched) and never alters non-object results.
|
|
244
|
-
*/
|
|
245
|
-
/**
|
|
246
|
-
* The name of the first argument whose string value exceeds the transport bound, if any.
|
|
247
|
-
*
|
|
248
|
-
* One level of nesting is searched because that is where callers put payloads — `reticle_act`'s
|
|
249
|
-
* `args.value`, and the fuzz's own `huge-string` shape. Deeper recursion would cost more than it
|
|
250
|
-
* buys: the failure is a single huge string, not a deeply nested structure of small ones.
|
|
251
|
-
*/
|
|
252
|
-
function firstOversizedArg(args) {
|
|
253
|
-
const tooLong = (value) => 'string' === typeof value && value.length > TRANSPORT_LIMITS.MAX_STRING_LENGTH;
|
|
254
|
-
for (const [key, value] of Object.entries(args)) {
|
|
255
|
-
if (tooLong(value))
|
|
256
|
-
return key;
|
|
257
|
-
if ('object' === typeof value && null !== value && !Array.isArray(value)) {
|
|
258
|
-
for (const [inner, nested] of Object.entries(value)) {
|
|
259
|
-
if (tooLong(nested))
|
|
260
|
-
return `${key}.${inner}`;
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
return undefined;
|
|
265
|
-
}
|
|
266
|
-
export async function runTool(tool, deps, args) {
|
|
267
|
-
// Both dispatch paths (MCP + programmatic) pass through here — the one place "which tool is mostly
|
|
268
|
-
// used" can be counted. This used to EMIT an event per call; it now increments an in-process counter
|
|
269
|
-
// that leaves once, with the session summary. A verification loop is 50–200 calls, and PostHog bills
|
|
270
|
-
// per event — so the old design made the telemetry bill scale with how hard people used the product,
|
|
271
|
-
// to answer a question the histogram answers better. Counting is also free: no network, no promise,
|
|
272
|
-
// nothing to fail on a tool call's hot path.
|
|
273
|
-
// Started/settled as a pair rather than a bare counter: several agents can be inside runTool at
|
|
274
|
-
// once, so a single "last start" field would attribute one tool's duration to another. The returned
|
|
275
|
-
// closure carries this call's own identity, which is also what makes peak-concurrency measurable.
|
|
276
|
-
// A daemon that has served even one tool call is doing a job for somebody; see daemon-usefulness.
|
|
277
|
-
noteToolCall();
|
|
278
|
-
// The impact record needs the project's own `.reticle` root, and this is the first place every
|
|
279
|
-
// call knows it. Idempotent: the first root wins for the daemon's lifetime.
|
|
280
|
-
initImpact({ reticleRoot: deps.reticleRoot });
|
|
281
|
-
// An oversized argument is refused BEFORE the handler deserialises it.
|
|
282
|
-
//
|
|
283
|
-
// tool-fuzz failed CI on the invariant that matters most — `every tool answers every hostile call`
|
|
284
|
-
// — for a ~100KB string. Seen twice with different tools; the earlier one came back
|
|
285
|
-
// `-32001 sse_aborted` with the tool surface dropping 48→17, which is a RESTARTED daemon. The
|
|
286
|
-
// shape is: oversized argument → the daemon dies → the proxy answers the in-flight call with
|
|
287
|
-
// transport loss, and the next assertion is talking to a different daemon.
|
|
288
|
-
//
|
|
289
|
-
// `TRANSPORT_LIMITS.MAX_STRING_LENGTH` already bounds what crosses the bridge; a tool argument
|
|
290
|
-
// arrives over MCP stdio and never met it. Here, because this is the one place every invocation
|
|
291
|
-
// routes through, so a tool added later inherits the bound instead of having to remember it.
|
|
292
|
-
//
|
|
293
|
-
// A refusal is a normal answer. An UNANSWERED call is a hung agent, and that is the failure this
|
|
294
|
-
// prevents: the agent learns its argument was too big, which is something it can fix.
|
|
295
|
-
const oversized = firstOversizedArg(args);
|
|
296
|
-
if (oversized !== undefined) {
|
|
297
|
-
const error = `argument '${oversized}' is larger than ${String(TRANSPORT_LIMITS.MAX_STRING_LENGTH)} ` +
|
|
298
|
-
'characters, which is the most Reticle moves in one call. Nothing ran. Send a smaller ' +
|
|
299
|
-
'value — a selector or an id rather than a document, or a slice of the text you need.';
|
|
300
|
-
// Refused before the handler was ever entered, and still a refusal the agent has to recover
|
|
301
|
-
// from. Reported here rather than at the return below, which this branch never reaches.
|
|
302
|
-
reportRefusal(tool.name, error);
|
|
303
|
-
return { error };
|
|
304
|
-
}
|
|
305
|
-
// An ACTION is what gets abandoned. Counted here, against verifications, so "the agent drove the
|
|
306
|
-
// page and then wandered off" becomes a number instead of an impression.
|
|
307
|
-
if (ACTION_TOOLS.has(tool.name))
|
|
308
|
-
getSessionMetrics().recordAction();
|
|
309
|
-
const settleTiming = getSessionMetrics().startToolCall(tool.name, args);
|
|
310
|
-
const startedAt = Date.now();
|
|
311
|
-
const rawSessionId = sessionIdFromArgs(args);
|
|
312
|
-
const bound = SESSION_BOUND_TOOLS.has(tool.name);
|
|
313
|
-
// Resolve the session identity ONCE, up front, for a live-session tool. The lease heartbeat must
|
|
314
|
-
// target the session the handler will ACTUALLY drive — which, when the agent omits sessionId, is the
|
|
315
|
-
// auto-selected one, NOT the raw (undefined) arg. Touching the raw arg meant an auto-selected drive
|
|
316
|
-
// never refreshed its pool lease, so the reaper could reclaim the session mid-operation. Resolve
|
|
317
|
-
// before the handler so a long ACT_AND_WAIT is protected for its whole duration; on failure leave it
|
|
318
|
-
// to the handler to throw the canonical no-session error.
|
|
319
|
-
let session;
|
|
320
|
-
if (bound || CDP_TOOLS.has(tool.name)) {
|
|
321
|
-
try {
|
|
322
|
-
session = deps.sessions.resolve(rawSessionId);
|
|
323
|
-
}
|
|
324
|
-
catch {
|
|
325
|
-
session = undefined;
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
// CDP tools against a skewed session: refuse with the sentence reticle_sessions already knows,
|
|
329
|
-
// before Playwright invents a closed page. ready:true leases still hit this path.
|
|
330
|
-
if (session?.versionSkew !== undefined && CDP_TOOLS.has(tool.name)) {
|
|
331
|
-
const message = session.versionSkew;
|
|
332
|
-
reportRefusal(tool.name, message);
|
|
333
|
-
throw new Error(message);
|
|
334
|
-
}
|
|
335
|
-
// The read-only calls the journal never keeps, recorded HERE because this is the one dispatch
|
|
336
|
-
// point every call routes through — a second recording site is a second thing to forget, and this
|
|
337
|
-
// instrument exists precisely because nothing was recorded before. Recorded before the handler
|
|
338
|
-
// runs: a read dispatches no action, so the counter reads the same either side.
|
|
339
|
-
//
|
|
340
|
-
// `reticle_context` is session-EXEMPT, so `session` above is undefined for it and it needs its own
|
|
341
|
-
// lenient resolve. Failing that resolve is silent by design: a call made with nothing connected
|
|
342
|
-
// has no per-session ledger to land in, and an instrument must never be why a tool call fails.
|
|
343
|
-
//
|
|
344
|
-
// EVERY tool is counted here, not just the read set: which of the 70-odd names in the table an
|
|
345
|
-
// agent actually reaches for is the question a decision about cutting or consolidating the surface
|
|
346
|
-
// turns on, and it had no answer. `reticle_run` is the one exclusion, for the same reason
|
|
347
|
-
// `reportRefusal` and `bugsInResult` exclude it — its handler calls `runTool` on the real tool, so
|
|
348
|
-
// the inner call is already counted under the name that RAN, and counting the wrapper too would
|
|
349
|
-
// both double the total and hide the run-only tier behind a single wrapper name. That tier is
|
|
350
|
-
// precisely the one the decision hinges on. See honesty/tool-hit-rate.ts.
|
|
351
|
-
if (ReticleTool.RUN !== tool.name) {
|
|
352
|
-
let target = session;
|
|
353
|
-
if (target === undefined) {
|
|
354
|
-
try {
|
|
355
|
-
target = deps.sessions.resolve(rawSessionId);
|
|
356
|
-
}
|
|
357
|
-
catch {
|
|
358
|
-
target = undefined;
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
if (target !== undefined) {
|
|
362
|
-
noteToolDispatched(target, tool.name);
|
|
363
|
-
if (CAPTURED_TOOLS.has(tool.name)) {
|
|
364
|
-
const subject = asString(args['ref']) ?? asString(args['target']);
|
|
365
|
-
noteCapturedCall(target, {
|
|
366
|
-
tool: tool.name,
|
|
367
|
-
...(subject === undefined ? {} : { subject }),
|
|
368
|
-
});
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
// A ref that was handed out by a DIFFERENT tab, on a call that named no session. Refused here, at
|
|
373
|
-
// the one point that knows both the ref and the tab resolution picked — the handler only learns
|
|
374
|
-
// that the ref missed, and answers that with "the DOM re-rendered", which is a confident diagnosis
|
|
375
|
-
// of the wrong thing. The other half is worse: the same ref can resolve to a different element in
|
|
376
|
-
// the guessed tab and return a green about a page nobody asked about.
|
|
377
|
-
if (session !== undefined) {
|
|
378
|
-
const wrongTab = wrongTabRefusal({
|
|
379
|
-
ref: spentRefFromArgs(args),
|
|
380
|
-
explicitSessionId: rawSessionId,
|
|
381
|
-
chosenSessionId: session.id,
|
|
382
|
-
connected: () => deps.sessions.list(),
|
|
383
|
-
});
|
|
384
|
-
if (wrongTab !== undefined) {
|
|
385
|
-
// Refused before the handler was entered, so it is reported here — the same shape as the
|
|
386
|
-
// oversized-argument refusal above.
|
|
387
|
-
reportRefusal(tool.name, wrongTab);
|
|
388
|
-
return { error: wrongTab };
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
const leaseId = session?.id ?? rawSessionId;
|
|
392
|
-
if (leaseId !== undefined)
|
|
393
|
-
deps.pool?.touch(leaseId);
|
|
394
|
-
let raw;
|
|
395
|
-
try {
|
|
396
|
-
// The one dispatch point every tool call passes through, so it is where the trace's root span
|
|
397
|
-
// belongs: with RETICLE_TRACE on, every stage that runs underneath inherits this call's id and
|
|
398
|
-
// nests under it. Free when off — see trace.ts.
|
|
399
|
-
raw = await span('tool.handler', { tool: tool.name, session: session?.id }, () => tool.handler(deps, args));
|
|
400
|
-
}
|
|
401
|
-
catch (error) {
|
|
402
|
-
// The commonest refusal shape by far, and the one nothing could see: the message is built, handed
|
|
403
|
-
// to the agent by the MCP boundary, and discarded. Reported here rather than at that boundary
|
|
404
|
-
// because there are two of them (mcp.ts and the reticle_run hatch) and this is the one place both
|
|
405
|
-
// go through — a third would otherwise be invisible from the day it was added.
|
|
406
|
-
//
|
|
407
|
-
// Under version skew, Playwright's "Target page has been closed" is the wrong cause (#688): the
|
|
408
|
-
// page is still dialled in. Prefer the session's skew sentence when we already know the pair is
|
|
409
|
-
// mismatched — including for tools that are not in CDP_TOOLS (real-input fallbacks that throw).
|
|
410
|
-
let skewText = session?.versionSkew;
|
|
411
|
-
if (skewText === undefined) {
|
|
412
|
-
try {
|
|
413
|
-
skewText = deps.sessions.resolve(rawSessionId).versionSkew;
|
|
414
|
-
}
|
|
415
|
-
catch {
|
|
416
|
-
skewText = undefined;
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
const rewritten = rewriteClosedAsSkew(error, skewText);
|
|
420
|
-
const toThrow = rewritten ?? error;
|
|
421
|
-
const message = toThrow instanceof Error ? toThrow.message : String(toThrow);
|
|
422
|
-
reportRefusal(tool.name, message);
|
|
423
|
-
// The invitation on THIS path is the one `buildErrorPayload` attaches when it does not recognise
|
|
424
|
-
// the error, and it was never counted — so the denominator excluded the commonest friction there
|
|
425
|
-
// is. Gated on the payload actually carrying the ask, because a recognised error gets a recovery
|
|
426
|
-
// instead and counting an invitation nobody was shown breaks the ratio in the other direction.
|
|
427
|
-
if (tool.name !== ReticleTool.RUN && buildErrorPayload(message).feedback !== undefined) {
|
|
428
|
-
getSessionMetrics().recordFeedbackPrompt();
|
|
429
|
-
}
|
|
430
|
-
throw toThrow;
|
|
431
|
-
}
|
|
432
|
-
finally {
|
|
433
|
-
// In a `finally` so a THROWN call still settles: otherwise every failing tool would leak a
|
|
434
|
-
// concurrency slot and peakConcurrentTools would climb forever on an unhealthy session.
|
|
435
|
-
settleTiming(Date.now() - startedAt);
|
|
436
|
-
}
|
|
437
|
-
// The human-feedback ask rides out on the first VERIFICATION that completes — the one moment the
|
|
438
|
-
// experience is fresh and there is something concrete to react to. It is spliced BEFORE the
|
|
439
|
-
// session-bound early return, because two of the four verification tools (flow_verify,
|
|
440
|
-
// verify_change) are session-EXEMPT and would otherwise never carry it.
|
|
441
|
-
if (isPlainObject(raw)) {
|
|
442
|
-
// The brand comes from the session's own PAGE_HEALTH report, so it is present for the four
|
|
443
|
-
// session-bound verification tools and absent for flow_verify (session-exempt) — which replays
|
|
444
|
-
// into a browser Reticle launched, where `browser` already says what happened.
|
|
445
|
-
recordVerification(tool.name, raw, Date.now() - startedAt, session?.brand);
|
|
446
|
-
reportBugsFound(tool.name, raw);
|
|
447
|
-
}
|
|
448
|
-
// The other half of the refusal surface. A top-level `error` string IS this codebase's refusal
|
|
449
|
-
// convention, so half the tools refuse by RETURNING one rather than throwing — and reading only the
|
|
450
|
-
// throw path would have measured half the wall and called it the whole of it, the same way `isError`
|
|
451
|
-
// once did. A call that was served clears the retry chain, so the next refusal after it is a first
|
|
452
|
-
// refusal rather than a retry of something unrelated.
|
|
453
|
-
// The user's own record of what Reticle did for them. Same chokepoint as everything else that
|
|
454
|
-
// counts, for the same reason: a second recording site is a second thing to forget. Separate
|
|
455
|
-
// store from telemetry - this one never leaves the machine.
|
|
456
|
-
const finishedAt = Date.now();
|
|
457
|
-
const defect = defectForToolResult(raw, finishedAt);
|
|
458
|
-
// Which project's ledger this call belongs to. Resolved from the SESSION being driven, not from
|
|
459
|
-
// wherever the daemon happens to stand: one daemon serves many projects, and recording every
|
|
460
|
-
// call against its own cwd is how one app's verdicts ended up on another account's dashboard.
|
|
461
|
-
// Falls back to the daemon root when no session can be named, which is the old behaviour.
|
|
462
|
-
const artifactRoot = session?.artifactRoot ?? deps.reticleRoot;
|
|
463
|
-
recordImpact(deltaForToolResult(raw, finishedAt - startedAt, resultIsError(raw)), { ...(defect === undefined ? {} : { defect }) }, artifactRoot);
|
|
464
|
-
// ...and the tab being driven is told, so the report is live rather than a thing you reload.
|
|
465
|
-
// Optional-call, not optional-chain-on-the-object: a test double is a partial Session, and a
|
|
466
|
-
// courtesy push must never be the reason a tool call throws.
|
|
467
|
-
// Bound to THIS session's root: a tab must be shown its own project's numbers, not whichever
|
|
468
|
-
// project the daemon was started in.
|
|
469
|
-
session?.pushImpact?.(() => impactSnapshot(artifactRoot));
|
|
470
|
-
if (resultIsError(raw))
|
|
471
|
-
reportRefusal(tool.name, raw.error);
|
|
472
|
-
else {
|
|
473
|
-
noteToolServed();
|
|
474
|
-
// Which tab these refs belong to. Recorded on the way OUT, so the next call that spends one is
|
|
475
|
-
// measured against the tab that actually produced it.
|
|
476
|
-
if (session !== undefined && REF_MINTING_TOOLS.has(tool.name))
|
|
477
|
-
noteRefsMinted(session.id);
|
|
478
|
-
}
|
|
479
|
-
const prompt = isPlainObject(raw) ? takeFeedbackPrompt(tool.name) : undefined;
|
|
480
|
-
// Same one-shot channel as the feedback ask: the agent is mid-task, so anything it would have to go
|
|
481
|
-
// and ASK for is something it will never ask for. Spliced on ANY tool result, not just a
|
|
482
|
-
// verification, because an out-of-date install is worth mentioning whatever the agent is doing.
|
|
483
|
-
const update = isPlainObject(raw) ? takeUpdateNudge() : undefined;
|
|
484
|
-
// Same one-shot channel, for the same reason. Skew was only ever reported in
|
|
485
|
-
// reticle_sessions.versionSkew and a CLI log line — two places an agent driving a flow never
|
|
486
|
-
// looks — so it could work a whole session against a mismatched pair and never learn the one fact
|
|
487
|
-
// that explains the behaviour. It rides out here on whatever tool it happens to be calling.
|
|
488
|
-
const skew = isPlainObject(raw) ? takeVersionSkew() : undefined;
|
|
489
|
-
// A feedback report that was accepted and then failed to send. Same one-shot channel, because the
|
|
490
|
-
// reporter is the only person who can act on it and they are not reading the daemon log — and a
|
|
491
|
-
// report announced as accepted and then silently lost is the failure the awaited send existed to
|
|
492
|
-
// prevent. See feedback-delivery.ts.
|
|
493
|
-
const undelivered = isPlainObject(raw) ? takeFeedbackUndelivered() : undefined;
|
|
494
|
-
// Invite feedback at the moment of friction, worded for what just happened. Counted, because
|
|
495
|
-
// `feedback_submitted / feedbackPrompted` is the only thing that says whether the invitation works
|
|
496
|
-
// at all rather than being decoration.
|
|
497
|
-
//
|
|
498
|
-
// This used to sit below the session-bound early return, which put it behind two conditions that
|
|
499
|
-
// exclude most friction there is. A session-EXEMPT tool never reached it, and neither did a tool
|
|
500
|
-
// that THREW — and throwing is the commonest refusal shape by a wide margin, i.e. exactly the
|
|
501
|
-
// `refused` friction the line is written for. `errored` could only ever see the handlers that
|
|
502
|
-
// RETURN an error. So the denominator was counting a small, unrepresentative slice of the
|
|
503
|
-
// invitations and reading near-empty, which looks identical to a nudge that never fires.
|
|
504
|
-
const friction = frictionInviteFor(tool.name, raw);
|
|
505
|
-
const result = prompt === undefined &&
|
|
506
|
-
update === undefined &&
|
|
507
|
-
skew === undefined &&
|
|
508
|
-
undelivered === undefined &&
|
|
509
|
-
friction === undefined
|
|
510
|
-
? raw
|
|
511
|
-
: {
|
|
512
|
-
...raw,
|
|
513
|
-
...(friction !== undefined ? { [EnvelopeKey.FEEDBACK_INVITE]: inviteFor(friction) } : {}),
|
|
514
|
-
...(prompt !== undefined ? { [EnvelopeKey.FEEDBACK_PROMPT]: prompt } : {}),
|
|
515
|
-
...(update !== undefined ? { [EnvelopeKey.UPDATE_AVAILABLE]: update } : {}),
|
|
516
|
-
...(skew !== undefined ? { [EnvelopeKey.VERSION_SKEW]: skew } : {}),
|
|
517
|
-
...(undelivered !== undefined
|
|
518
|
-
? {
|
|
519
|
-
[EnvelopeKey.FEEDBACK_UNDELIVERED]: `your earlier report did NOT send: ${undelivered}. Tell the human what you found so it is not lost.`,
|
|
520
|
-
}
|
|
521
|
-
: {}),
|
|
522
|
-
};
|
|
523
|
-
if (!bound || !isPlainObject(result))
|
|
524
|
-
return result;
|
|
525
|
-
// Reuse the session resolved above so the health envelope describes the SAME session the handler
|
|
526
|
-
// drove; only re-resolve if the up-front attempt failed but the handler somehow succeeded.
|
|
527
|
-
const resolved = session ?? deps.sessions.resolve(rawSessionId);
|
|
528
|
-
const envelope = {};
|
|
529
|
-
// The health block is idempotent: add it only when the handler didn't already include a `session`.
|
|
530
|
-
if (!('session' in result))
|
|
531
|
-
Object.assign(envelope, healthEnvelope(resolved));
|
|
532
|
-
// Lease + age-warning are INDEPENDENT of the health block. Previously the `'session' in result`
|
|
533
|
-
// early-return skipped them whenever a handler returned its own health (which a throttled tab always
|
|
534
|
-
// does) — so a long-running backgrounded session, the case most likely to leak, never got the
|
|
535
|
-
// one-time pool-lease reminder or the age cleanup nudge. Splice them regardless.
|
|
536
|
-
const lease = resolved.takeSessionLease();
|
|
537
|
-
if (lease !== undefined)
|
|
538
|
-
envelope[EnvelopeKey.SESSION_LEASE] = lease;
|
|
539
|
-
const warning = resolved.ageWarning();
|
|
540
|
-
if (warning !== undefined)
|
|
541
|
-
envelope[EnvelopeKey.SESSION_AGE_WARNING] = warning;
|
|
542
|
-
// Ask for a verdict when the agent has driven the page and not asked for one. Almost every
|
|
543
|
-
// verdict-less session in the field never called a verdict-producing tool ONCE;
|
|
544
|
-
// the counter behind this already existed and was reported only to us. One-shot per abandoned
|
|
545
|
-
// run, same discipline as the pool lease — a hint on every call is noise that gets tuned out.
|
|
546
|
-
// The A/B control, and the reason it exists as an env flag rather than a code edit.
|
|
547
|
-
//
|
|
548
|
-
// `verify_next` is described in this repo's own changelog as "the largest known lever on whether a
|
|
549
|
-
// session produces a verdict at all", and it has never been measured — it was once built, fired
|
|
550
|
-
// and silently dropped by schema-strict clients for a whole release, which is exactly what an
|
|
551
|
-
// unmeasured lever looks like from the inside. "The payload now arrives" and "the agent acts on
|
|
552
|
-
// it" are different claims and only the first was ever verified.
|
|
553
|
-
//
|
|
554
|
-
// Suppressing it for a control arm has to leave the ONLY difference being the baton: same build,
|
|
555
|
-
// same surface, same counters. So the nudge is still TAKEN (the counter still resets, so the
|
|
556
|
-
// one-shot cadence is identical) and only the envelope key is withheld.
|
|
557
|
-
const suppressBaton = '1' === process.env[SUPPRESS_VERIFY_NEXT_ENV];
|
|
558
|
-
const unverified = getSessionMetrics().takeUnverifiedNudge();
|
|
559
|
-
// Carry the CALL, not just the sentence. The prose has to be translated back into arguments, and
|
|
560
|
-
// that translation is where agents were already going wrong — `until` omitted, action arguments
|
|
561
|
-
// flat instead of nested under `args`. `ref` and `action` come from the act that actually
|
|
562
|
-
// dispatched, so the suggestion is about the element the agent touched. See verify-next-baton.
|
|
563
|
-
if (unverified !== undefined && !suppressBaton)
|
|
564
|
-
// `lastAct` read defensively: this envelope is built on EVERY tool call, so a session shape
|
|
565
|
-
// without it would turn a missing field into a crash on the whole surface rather than a missing
|
|
566
|
-
// suggestion. The baton degrades to prose, which is what it carried before.
|
|
567
|
-
envelope[EnvelopeKey.VERIFY_NEXT] = verifyNextBaton(unverified, resolved.lastAct?.effect() ?? {});
|
|
568
|
-
return Object.keys(envelope).length > 0 ? { ...result, ...envelope } : result;
|
|
569
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Why a leased tab did not dial in.
|
|
3
|
-
*
|
|
4
|
-
* The lease pool opens the app itself, which is what makes it the highest-value path in the product
|
|
5
|
-
* — it does not wait for the human's tab. Measured over a day: lease sessions had a median of 30
|
|
6
|
-
* tool calls and produced 46% of all bugs found, against a median of 1 call for everything else.
|
|
7
|
-
*
|
|
8
|
-
* The old hint asked "is <url> running with @reticlehq/core enabled?", which is the one thing that
|
|
9
|
-
* cannot be in doubt: the pool just navigated a real browser to it. Its replacement then swung to
|
|
10
|
-
* the other confident-but-unevidenced claim — "the usual cause is a PORT MISMATCH" — and the daemon
|
|
11
|
-
* ended up contradicting ITSELF inside one response, saying in `reticle_sessions` that a session had
|
|
12
|
-
* connected earlier "so the wiring is correct" and here that the port was probably wrong. Across a
|
|
13
|
-
* batch of field reports on four apps the port was correct every single time, and `reticle init`
|
|
14
|
-
* would have been the wrong action every single time.
|
|
15
|
-
*
|
|
16
|
-
* So: rank by what the daemon actually knows, and fall back to the differential only when it knows
|
|
17
|
-
* nothing. A cause we hold positive evidence against is not printed at all.
|
|
18
|
-
*/
|
|
19
|
-
/** What the daemon can say for certain at the moment a lease comes back unconnected. */
|
|
20
|
-
export interface LeaseEvidence {
|
|
21
|
-
/** A dial WAS made and turned away, with the reason. The only certain cause there is. */
|
|
22
|
-
refusal?: string;
|
|
23
|
-
/** An app for this project has connected on this port before (durable, survives a restart). */
|
|
24
|
-
previouslyConnected?: boolean;
|
|
25
|
-
/** The project has been through `init` — so recommending it again cannot help. */
|
|
26
|
-
initialized?: boolean;
|
|
27
|
-
/** The framework `.reticle.json` declares, used to rank rather than to decorate. */
|
|
28
|
-
framework?: string;
|
|
29
|
-
/**
|
|
30
|
-
* Whether any Reticle marker was found in the page the lease loaded.
|
|
31
|
-
*
|
|
32
|
-
* The single bit that separates the two commonest cases — "this app ships no SDK" and "the SDK
|
|
33
|
-
* loaded but could not reach the daemon" — which today produce identical messages. Absent means
|
|
34
|
-
* NOT CHECKED, and an absent bit prints nothing: a marker check that could not run must not be
|
|
35
|
-
* reported as a marker that was not found.
|
|
36
|
-
*/
|
|
37
|
-
sdkMarker?: boolean;
|
|
38
|
-
/**
|
|
39
|
-
* The websocket URL the leased page actually tried, read from its own console.
|
|
40
|
-
*
|
|
41
|
-
* The only per-page proof there is about where the dial WENT. `refusal` proves a dial arrived
|
|
42
|
-
* HERE; this proves where one was aimed, which is the strictly more useful fact when it was aimed
|
|
43
|
-
* somewhere else — the case in which no refusal exists to be recorded, because nothing arrived.
|
|
44
|
-
*
|
|
45
|
-
* Absent means the page said nothing, never that it dialled correctly.
|
|
46
|
-
*/
|
|
47
|
-
dialledUrl?: string;
|
|
48
|
-
}
|
|
49
|
-
export declare function leaseNotConnectedHint(url: string, port: number, evidence?: LeaseEvidence): string;
|