@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,92 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Server-side snapshot delta — return only what CHANGED since the agent's last look.
|
|
3
|
-
*
|
|
4
|
-
* Why (grounded): screenshot/Playwright-MCP agents accrue 60–80K tokens of stale accessibility-tree
|
|
5
|
-
* data over a session and start hallucinating selectors that no longer exist. The agent-facing cost
|
|
6
|
-
* is the MCP result it reads (not the internal WS payload), so computing the delta here — and
|
|
7
|
-
* returning only added/removed lines — directly cuts the tokens the model spends AND removes the
|
|
8
|
-
* stale full-tree that drives hallucination. Reuses the same normalize+diff the baseline layer uses,
|
|
9
|
-
* so "what changed" means the same thing everywhere.
|
|
10
|
-
*
|
|
11
|
-
* Pure decision (`snapshotDelta`) + a small route-invalidated cache (`SnapshotCache`). A route change
|
|
12
|
-
* invalidates the prior snapshot (a diff across pages would be meaningless), so the next snapshot
|
|
13
|
-
* returns full — never a misleading cross-page delta.
|
|
14
|
-
*/
|
|
15
|
-
/**
|
|
16
|
-
* Pure: was the prior snapshot of this scope both RECENT and SMALLER than this one? If so, the
|
|
17
|
-
* earlier reading was very likely taken mid-load — content arrived in the gap between the two calls
|
|
18
|
-
* — and any presence-grade conclusion drawn from that earlier snapshot ("this route renders
|
|
19
|
-
* nothing") is suspect. Silent otherwise: a stale prior or a page that shrank (or stayed the same
|
|
20
|
-
* size) is not this trap.
|
|
21
|
-
*/
|
|
22
|
-
export declare function snapshotGrowthNote(prior: {
|
|
23
|
-
tree: string;
|
|
24
|
-
atMs: number;
|
|
25
|
-
} | undefined, nextTree: string, nowMs: number, windowMs?: number): string | undefined;
|
|
26
|
-
export declare const SnapshotDeltaMode: {
|
|
27
|
-
readonly FULL: "full";
|
|
28
|
-
readonly DELTA: "delta";
|
|
29
|
-
readonly UNCHANGED: "unchanged";
|
|
30
|
-
};
|
|
31
|
-
export type SnapshotDeltaMode = (typeof SnapshotDeltaMode)[keyof typeof SnapshotDeltaMode];
|
|
32
|
-
interface SnapshotDelta {
|
|
33
|
-
added: string[];
|
|
34
|
-
removed: string[];
|
|
35
|
-
changed: string[];
|
|
36
|
-
addedCount: number;
|
|
37
|
-
removedCount: number;
|
|
38
|
-
}
|
|
39
|
-
/** Where focus moved, when it moved. Absent fields mean nothing held focus on that side. */
|
|
40
|
-
interface FocusChange {
|
|
41
|
-
from?: string;
|
|
42
|
-
to?: string;
|
|
43
|
-
}
|
|
44
|
-
type DeltaDecision = {
|
|
45
|
-
mode: typeof SnapshotDeltaMode.FULL;
|
|
46
|
-
} | {
|
|
47
|
-
mode: typeof SnapshotDeltaMode.UNCHANGED;
|
|
48
|
-
focusChanged?: FocusChange;
|
|
49
|
-
} | {
|
|
50
|
-
mode: typeof SnapshotDeltaMode.DELTA;
|
|
51
|
-
delta: SnapshotDelta;
|
|
52
|
-
focusChanged?: FocusChange;
|
|
53
|
-
};
|
|
54
|
-
/** Pure: decide full vs delta vs unchanged given the previous tree (same route) and the next tree. */
|
|
55
|
-
export declare function snapshotDelta(prevTree: string | undefined, nextTree: string): DeltaDecision;
|
|
56
|
-
/** Per-(session,scope,mode) last-snapshot cache. Route-aware: a route change invalidates the entry. */
|
|
57
|
-
export declare class SnapshotCache {
|
|
58
|
-
#private;
|
|
59
|
-
constructor(max?: number, now?: () => number);
|
|
60
|
-
/** True when an entry exists for this key (regardless of route match). */
|
|
61
|
-
has(key: string): boolean;
|
|
62
|
-
/** The clock this cache was constructed with — callers compare against it so `remember`'s
|
|
63
|
-
* timestamp and a caller's "now" can never drift onto two different clocks. */
|
|
64
|
-
now(): number;
|
|
65
|
-
/** Last tree for this key IF the route still matches; undefined when absent or route changed. */
|
|
66
|
-
recall(key: string, route: string): string | undefined;
|
|
67
|
-
/**
|
|
68
|
-
* The last remembered tree for this key AND when it was remembered, IF the route still matches.
|
|
69
|
-
* Same route-gating as `recall` — a route change makes the prior entry meaningless for comparison,
|
|
70
|
-
* not just for diffing.
|
|
71
|
-
*/
|
|
72
|
-
priorEntry(key: string, route: string): {
|
|
73
|
-
tree: string;
|
|
74
|
-
atMs: number;
|
|
75
|
-
} | undefined;
|
|
76
|
-
remember(key: string, route: string, tree: string): void;
|
|
77
|
-
}
|
|
78
|
-
export declare function snapshotCacheKey(sessionId: string, scope: string, mode: string): string;
|
|
79
|
-
interface SnapshotDeltaOpts {
|
|
80
|
-
sessionId: string;
|
|
81
|
-
scope: string;
|
|
82
|
-
mode: string;
|
|
83
|
-
diff: boolean;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Shape a raw snapshot result for the agent: when `diff` is requested and a same-route prior
|
|
87
|
-
* snapshot exists, return only the delta (or `unchanged`) instead of the full tree. Always updates
|
|
88
|
-
* the cache. Non-object/errorless results pass through. The cache is the only state; the decision is
|
|
89
|
-
* the pure `snapshotDelta`.
|
|
90
|
-
*/
|
|
91
|
-
export declare function applySnapshotDelta(raw: unknown, opts: SnapshotDeltaOpts, cache: SnapshotCache): unknown;
|
|
92
|
-
export {};
|
|
@@ -1,356 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Server-side snapshot delta — return only what CHANGED since the agent's last look.
|
|
3
|
-
*
|
|
4
|
-
* Why (grounded): screenshot/Playwright-MCP agents accrue 60–80K tokens of stale accessibility-tree
|
|
5
|
-
* data over a session and start hallucinating selectors that no longer exist. The agent-facing cost
|
|
6
|
-
* is the MCP result it reads (not the internal WS payload), so computing the delta here — and
|
|
7
|
-
* returning only added/removed lines — directly cuts the tokens the model spends AND removes the
|
|
8
|
-
* stale full-tree that drives hallucination. Reuses the same normalize+diff the baseline layer uses,
|
|
9
|
-
* so "what changed" means the same thing everywhere.
|
|
10
|
-
*
|
|
11
|
-
* Pure decision (`snapshotDelta`) + a small route-invalidated cache (`SnapshotCache`). A route change
|
|
12
|
-
* invalidates the prior snapshot (a diff across pages would be meaningless), so the next snapshot
|
|
13
|
-
* returns full — never a misleading cross-page delta.
|
|
14
|
-
*/
|
|
15
|
-
/**
|
|
16
|
-
* Identity for comparison, ref for action.
|
|
17
|
-
*
|
|
18
|
-
* The delta path used `normalizeLines` from the baseline layer, which strips the ref marker on
|
|
19
|
-
* purpose — a ref stored in a baseline would make every later diff noisy. Correct there, wrong here:
|
|
20
|
-
* every delta line came back as `- button "Row actions"` with no ref, and acting needs a ref, so the
|
|
21
|
-
* full snapshot had to be taken anyway. The diff call cost tokens and bought nothing. One helper, two
|
|
22
|
-
* callers, opposite requirements — so this path keeps the ref-stripped line as the KEY and emits the
|
|
23
|
-
* ORIGINAL line with its ref.
|
|
24
|
-
*
|
|
25
|
-
* Focus is stripped from the key too. It rides in the line as `[focused]`, alone or comma-joined with
|
|
26
|
-
* other states, so a focus move used to surface as one line removed and its twin added — structural
|
|
27
|
-
* change reported where nothing had been added at all. Focus is a property OF a line, so it gets its
|
|
28
|
-
* own field. Only focus is exempt: `disabled` moving is a real change and must still show.
|
|
29
|
-
*/
|
|
30
|
-
/** The ref marker, as `formatLine` writes it. Bounded quantifier: `\s*` backtracks polynomially. */
|
|
31
|
-
const REF_MARKER = /\s?\(ref=e\d+\)/;
|
|
32
|
-
/** The state bracket — ` [disabled,checked,expanded,focused]` — and the one state that is not structural. */
|
|
33
|
-
const STATE_BRACKET = /\s\[([a-z,]+)\]$/;
|
|
34
|
-
const FOCUSED_STATE = 'focused';
|
|
35
|
-
/** True when this line carries focus. */
|
|
36
|
-
function isFocused(line) {
|
|
37
|
-
return true === STATE_BRACKET.exec(line)?.[1]?.split(',').includes(FOCUSED_STATE);
|
|
38
|
-
}
|
|
39
|
-
/** The same line with focus removed — and the bracket dropped when focus was all it held. */
|
|
40
|
-
function withoutFocus(line) {
|
|
41
|
-
const match = STATE_BRACKET.exec(line);
|
|
42
|
-
const states = match?.[1];
|
|
43
|
-
if (null === match || undefined === match || undefined === states)
|
|
44
|
-
return line;
|
|
45
|
-
const rest = states.split(',').filter((s) => s !== FOCUSED_STATE);
|
|
46
|
-
const head = line.slice(0, match.index);
|
|
47
|
-
return 0 === rest.length ? head : `${head} [${rest.join(',')}]`;
|
|
48
|
-
}
|
|
49
|
-
/** What makes two lines "the same element" for diffing: no ref, no focus, no surrounding space. */
|
|
50
|
-
function deltaKey(line) {
|
|
51
|
-
return withoutFocus(line.replace(REF_MARKER, '')).trim();
|
|
52
|
-
}
|
|
53
|
-
function deltaLines(tree) {
|
|
54
|
-
return tree
|
|
55
|
-
.split('\n')
|
|
56
|
-
.map((line) => ({ key: deltaKey(line), text: withoutFocus(line).trim() }))
|
|
57
|
-
.filter((line) => line.key.length > 0);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Multiset diff on the key, emitting the original text.
|
|
61
|
-
*
|
|
62
|
-
* Multiset rather than set because duplicate labels are the norm — twelve identical `Row actions`
|
|
63
|
-
* buttons — and the count is the only thing that says how many left. Emitting the ORIGINAL text is
|
|
64
|
-
* what finally tells them apart: with refs, "which twelve" has an answer.
|
|
65
|
-
*/
|
|
66
|
-
/** Extract the ref marker value from a text line, or undefined if absent. */
|
|
67
|
-
function refOf(text) {
|
|
68
|
-
return REF_MARKER.exec(text)?.[0]?.trim();
|
|
69
|
-
}
|
|
70
|
-
/** Extract the role (first word after the bullet) from a snapshot line — the structural type that must match. */
|
|
71
|
-
function roleOf(text) {
|
|
72
|
-
return (text
|
|
73
|
-
.trimStart()
|
|
74
|
-
.replace(/^-\s*/, '')
|
|
75
|
-
.split(/[\s"(]/)[0] ?? '');
|
|
76
|
-
}
|
|
77
|
-
function diffKeyed(prev, next) {
|
|
78
|
-
const bucket = (lines) => {
|
|
79
|
-
const map = new Map();
|
|
80
|
-
for (const line of lines) {
|
|
81
|
-
const existing = map.get(line.key);
|
|
82
|
-
if (existing === undefined)
|
|
83
|
-
map.set(line.key, [line.text]);
|
|
84
|
-
else
|
|
85
|
-
existing.push(line.text);
|
|
86
|
-
}
|
|
87
|
-
return map;
|
|
88
|
-
};
|
|
89
|
-
const before = bucket(prev);
|
|
90
|
-
const after = bucket(next);
|
|
91
|
-
const removed = [];
|
|
92
|
-
const added = [];
|
|
93
|
-
for (const key of new Set([...before.keys(), ...after.keys()])) {
|
|
94
|
-
const was = before.get(key) ?? [];
|
|
95
|
-
const now = after.get(key) ?? [];
|
|
96
|
-
// Pair the SAME REF first. Twelve identical `Row actions` buttons are one key, and the ref is the
|
|
97
|
-
// only thing that says which of them left — an end-of-list surplus would name an arbitrary one.
|
|
98
|
-
const survived = new Set(now);
|
|
99
|
-
const wentOrChanged = was.filter((text) => !survived.has(text));
|
|
100
|
-
const arrivedOrChanged = now.filter((text) => !new Set(was).has(text));
|
|
101
|
-
// Whatever is left over on both sides is the SAME element with a re-minted ref (a re-render, or a
|
|
102
|
-
// navigation that restarts the sequence). Pairing those off is what stops a ref change reading as
|
|
103
|
-
// a removal plus an addition; only the count difference is a real structural change.
|
|
104
|
-
const paired = Math.min(wentOrChanged.length, arrivedOrChanged.length);
|
|
105
|
-
removed.push(...wentOrChanged.slice(paired));
|
|
106
|
-
added.push(...arrivedOrChanged.slice(paired));
|
|
107
|
-
}
|
|
108
|
-
return { removed, added };
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Same ref AND same role in both added and removed = value change, not a structural
|
|
112
|
-
* arrival/departure. Refs alone are not stable identities — they are re-minted on re-render — so a
|
|
113
|
-
* removed button and an added textbox sharing a ref must stay in their respective lists.
|
|
114
|
-
*/
|
|
115
|
-
function extractChanged(added, removed) {
|
|
116
|
-
const addedByRef = new Map();
|
|
117
|
-
for (const [i, text] of added.entries()) {
|
|
118
|
-
const ref = refOf(text);
|
|
119
|
-
if (ref !== undefined)
|
|
120
|
-
addedByRef.set(ref, { idx: i, text, role: roleOf(text) });
|
|
121
|
-
}
|
|
122
|
-
const changedIndicesInAdded = new Set();
|
|
123
|
-
const changedIndicesInRemoved = new Set();
|
|
124
|
-
const changed = [];
|
|
125
|
-
for (const [i, text] of removed.entries()) {
|
|
126
|
-
const ref = refOf(text);
|
|
127
|
-
if (ref === undefined)
|
|
128
|
-
continue;
|
|
129
|
-
const match = addedByRef.get(ref);
|
|
130
|
-
if (match !== undefined && match.role === roleOf(text)) {
|
|
131
|
-
changed.push(match.text);
|
|
132
|
-
changedIndicesInAdded.add(match.idx);
|
|
133
|
-
changedIndicesInRemoved.add(i);
|
|
134
|
-
addedByRef.delete(ref);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
return {
|
|
138
|
-
added: added.filter((_, i) => !changedIndicesInAdded.has(i)),
|
|
139
|
-
removed: removed.filter((_, i) => !changedIndicesInRemoved.has(i)),
|
|
140
|
-
changed,
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Where focus sits now: the line to show, plus the identity to compare it BY.
|
|
145
|
-
*
|
|
146
|
-
* These have to be two different things. Comparing the rendered lines said focus had moved whenever
|
|
147
|
-
* the focused element merely changed — typing into a focused textbox rewrites its `[value=...]`, so
|
|
148
|
-
* `from` and `to` came back naming the same element with different text. Focus identity is the
|
|
149
|
-
* ELEMENT, so the comparison is on the ref, and the line is only what gets displayed. Where there is
|
|
150
|
-
* no ref to compare (a non-interactive line), the ref-stripped key stands in.
|
|
151
|
-
*
|
|
152
|
-
* Read from the raw tree so a line the diff filters out cannot silently swallow the focus report.
|
|
153
|
-
*/
|
|
154
|
-
function focusedLine(tree) {
|
|
155
|
-
const focused = tree.split('\n').find((line) => isFocused(line));
|
|
156
|
-
if (focused === undefined)
|
|
157
|
-
return undefined;
|
|
158
|
-
const text = withoutFocus(focused).trim();
|
|
159
|
-
return { id: REF_MARKER.exec(focused)?.[0]?.trim() ?? deltaKey(focused), text };
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* How recent a smaller prior snapshot has to be for its growth to be worth flagging (#787) — long
|
|
163
|
-
* enough to catch the "route committed, then hydrated" window the bug report describes (hundreds of
|
|
164
|
-
* ms up to a couple of seconds), short enough that an unrelated LATER snapshot of a page that simply
|
|
165
|
-
* grew through normal use (an infinite-scroll load, a live feed) doesn't get blamed on load timing.
|
|
166
|
-
*/
|
|
167
|
-
const GROWTH_NOTE_WINDOW_MS = 5000;
|
|
168
|
-
/** Non-empty lines only — a blank line in the tree text is formatting, not a node. */
|
|
169
|
-
function nodeCount(tree) {
|
|
170
|
-
return tree.split('\n').filter((line) => '' !== line.trim()).length;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Pure: was the prior snapshot of this scope both RECENT and SMALLER than this one? If so, the
|
|
174
|
-
* earlier reading was very likely taken mid-load — content arrived in the gap between the two calls
|
|
175
|
-
* — and any presence-grade conclusion drawn from that earlier snapshot ("this route renders
|
|
176
|
-
* nothing") is suspect. Silent otherwise: a stale prior or a page that shrank (or stayed the same
|
|
177
|
-
* size) is not this trap.
|
|
178
|
-
*/
|
|
179
|
-
export function snapshotGrowthNote(prior, nextTree, nowMs, windowMs = GROWTH_NOTE_WINDOW_MS) {
|
|
180
|
-
if (prior === undefined)
|
|
181
|
-
return undefined;
|
|
182
|
-
const elapsedMs = nowMs - prior.atMs;
|
|
183
|
-
if (elapsedMs < 0 || elapsedMs > windowMs)
|
|
184
|
-
return undefined;
|
|
185
|
-
const priorCount = nodeCount(prior.tree);
|
|
186
|
-
const nextCount = nodeCount(nextTree);
|
|
187
|
-
if (nextCount <= priorCount)
|
|
188
|
-
return undefined;
|
|
189
|
-
return (`this scope had ${String(priorCount)} nodes ${String(elapsedMs)}ms ago and has ${String(nextCount)} now — ` +
|
|
190
|
-
'content likely arrived after your last look; a presence conclusion drawn from that earlier snapshot may have been taken mid-load');
|
|
191
|
-
}
|
|
192
|
-
export const SnapshotDeltaMode = {
|
|
193
|
-
FULL: 'full',
|
|
194
|
-
DELTA: 'delta',
|
|
195
|
-
UNCHANGED: 'unchanged',
|
|
196
|
-
};
|
|
197
|
-
/** Pure: decide full vs delta vs unchanged given the previous tree (same route) and the next tree. */
|
|
198
|
-
export function snapshotDelta(prevTree, nextTree) {
|
|
199
|
-
if (prevTree === undefined)
|
|
200
|
-
return { mode: SnapshotDeltaMode.FULL };
|
|
201
|
-
const raw = diffKeyed(deltaLines(prevTree), deltaLines(nextTree));
|
|
202
|
-
const { added, removed, changed } = extractChanged(raw.added, raw.removed);
|
|
203
|
-
const before = focusedLine(prevTree);
|
|
204
|
-
const now = focusedLine(nextTree);
|
|
205
|
-
// Reported only on a MOVE. Repeating "focus is still here" every turn is the noise the delta exists
|
|
206
|
-
// to remove, and an absent field is how the agent knows nothing happened.
|
|
207
|
-
const focusChanged = before?.id === now?.id
|
|
208
|
-
? undefined
|
|
209
|
-
: {
|
|
210
|
-
...(before === undefined ? {} : { from: before.text }),
|
|
211
|
-
...(now === undefined ? {} : { to: now.text }),
|
|
212
|
-
};
|
|
213
|
-
const moved = focusChanged === undefined ? {} : { focusChanged };
|
|
214
|
-
if (0 === added.length && 0 === removed.length && 0 === changed.length) {
|
|
215
|
-
return { mode: SnapshotDeltaMode.UNCHANGED, ...moved };
|
|
216
|
-
}
|
|
217
|
-
return {
|
|
218
|
-
mode: SnapshotDeltaMode.DELTA,
|
|
219
|
-
delta: {
|
|
220
|
-
added,
|
|
221
|
-
removed,
|
|
222
|
-
changed,
|
|
223
|
-
addedCount: added.length,
|
|
224
|
-
removedCount: removed.length,
|
|
225
|
-
},
|
|
226
|
-
...moved,
|
|
227
|
-
};
|
|
228
|
-
}
|
|
229
|
-
const DEFAULT_MAX_ENTRIES = 50;
|
|
230
|
-
/** Per-(session,scope,mode) last-snapshot cache. Route-aware: a route change invalidates the entry. */
|
|
231
|
-
export class SnapshotCache {
|
|
232
|
-
#map = new Map();
|
|
233
|
-
#max;
|
|
234
|
-
#now;
|
|
235
|
-
constructor(max = DEFAULT_MAX_ENTRIES, now = Date.now) {
|
|
236
|
-
this.#max = max;
|
|
237
|
-
this.#now = now;
|
|
238
|
-
}
|
|
239
|
-
/** True when an entry exists for this key (regardless of route match). */
|
|
240
|
-
has(key) {
|
|
241
|
-
return this.#map.has(key);
|
|
242
|
-
}
|
|
243
|
-
/** The clock this cache was constructed with — callers compare against it so `remember`'s
|
|
244
|
-
* timestamp and a caller's "now" can never drift onto two different clocks. */
|
|
245
|
-
now() {
|
|
246
|
-
return this.#now();
|
|
247
|
-
}
|
|
248
|
-
/** Last tree for this key IF the route still matches; undefined when absent or route changed. */
|
|
249
|
-
recall(key, route) {
|
|
250
|
-
return this.priorEntry(key, route)?.tree;
|
|
251
|
-
}
|
|
252
|
-
/**
|
|
253
|
-
* The last remembered tree for this key AND when it was remembered, IF the route still matches.
|
|
254
|
-
* Same route-gating as `recall` — a route change makes the prior entry meaningless for comparison,
|
|
255
|
-
* not just for diffing.
|
|
256
|
-
*/
|
|
257
|
-
priorEntry(key, route) {
|
|
258
|
-
const entry = this.#map.get(key);
|
|
259
|
-
if (entry === undefined || entry.route !== route)
|
|
260
|
-
return undefined;
|
|
261
|
-
// LRU touch: re-insert so a HOT key isn't evicted while colder, more-recently-added keys survive
|
|
262
|
-
// (Map preserves insertion order; delete+set moves it to the most-recently-used end).
|
|
263
|
-
this.#map.delete(key);
|
|
264
|
-
this.#map.set(key, entry);
|
|
265
|
-
return { tree: entry.tree, atMs: entry.atMs };
|
|
266
|
-
}
|
|
267
|
-
remember(key, route, tree) {
|
|
268
|
-
// Re-insert to move the key to the most-recently-used end (a plain set keeps its old position).
|
|
269
|
-
this.#map.delete(key);
|
|
270
|
-
if (this.#map.size >= this.#max) {
|
|
271
|
-
const oldest = this.#map.keys().next().value;
|
|
272
|
-
if (oldest !== undefined)
|
|
273
|
-
this.#map.delete(oldest);
|
|
274
|
-
}
|
|
275
|
-
this.#map.set(key, { route, tree, atMs: this.#now() });
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
/**
|
|
279
|
-
* Joins the cache-key parts. NUL because `scope` is a caller-supplied selector that may contain any
|
|
280
|
-
* printable character — a printable separator could be forged into a colliding key. Written as an
|
|
281
|
-
* ESCAPE, never as a literal NUL byte: a raw one makes this file read as binary to grep/diff tooling,
|
|
282
|
-
* which silently hid every symbol in it from repo-wide searches.
|
|
283
|
-
*/
|
|
284
|
-
const CACHE_KEY_SEPARATOR = '\u0000';
|
|
285
|
-
export function snapshotCacheKey(sessionId, scope, mode) {
|
|
286
|
-
return `${sessionId}${CACHE_KEY_SEPARATOR}${scope}${CACHE_KEY_SEPARATOR}${mode}`;
|
|
287
|
-
}
|
|
288
|
-
/** Said out loud when a diff was computed over a capped tree, so "unchanged" cannot mean "nothing happened". */
|
|
289
|
-
const CAPPED_DIFF_NOTE = 'this diff covers only the first N nodes of the page (the snapshot hit its cap), so "unchanged" means "unchanged in the part that was captured" — narrow with `scope` to see the rest';
|
|
290
|
-
/**
|
|
291
|
-
* Shape a raw snapshot result for the agent: when `diff` is requested and a same-route prior
|
|
292
|
-
* snapshot exists, return only the delta (or `unchanged`) instead of the full tree. Always updates
|
|
293
|
-
* the cache. Non-object/errorless results pass through. The cache is the only state; the decision is
|
|
294
|
-
* the pure `snapshotDelta`.
|
|
295
|
-
*/
|
|
296
|
-
export function applySnapshotDelta(raw, opts, cache) {
|
|
297
|
-
if (typeof raw !== 'object' || null === raw)
|
|
298
|
-
return raw;
|
|
299
|
-
const r = raw;
|
|
300
|
-
// Only shape genuine snapshots (have a string tree). An error envelope passes through untouched.
|
|
301
|
-
if (typeof r['tree'] !== 'string')
|
|
302
|
-
return raw;
|
|
303
|
-
const tree = r['tree'];
|
|
304
|
-
const status = 'object' === typeof r['status'] && r['status'] !== null
|
|
305
|
-
? r['status']
|
|
306
|
-
: {};
|
|
307
|
-
const route = 'string' === typeof status['route'] ? status['route'] : '';
|
|
308
|
-
const key = snapshotCacheKey(opts.sessionId, opts.scope, opts.mode);
|
|
309
|
-
// Read the growth signal BEFORE remember() overwrites the entry it compares against — needed on
|
|
310
|
-
// both branches below (#787), not only the diff:true path, since the reporter's own repro used a
|
|
311
|
-
// plain snapshot the second time.
|
|
312
|
-
const priorEntry = cache.priorEntry(key, route);
|
|
313
|
-
const growthNote = snapshotGrowthNote(priorEntry, tree, cache.now());
|
|
314
|
-
const growth = growthNote === undefined ? {} : { growthWarning: growthNote };
|
|
315
|
-
if (!opts.diff) {
|
|
316
|
-
cache.remember(key, route, tree);
|
|
317
|
-
return { ...r, ...growth };
|
|
318
|
-
}
|
|
319
|
-
const prev = priorEntry?.tree;
|
|
320
|
-
const hadEntry = cache.has(key);
|
|
321
|
-
cache.remember(key, route, tree);
|
|
322
|
-
const decision = snapshotDelta(prev, tree);
|
|
323
|
-
if (decision.mode === SnapshotDeltaMode.FULL) {
|
|
324
|
-
const reason = hadEntry ? 'route changed' : 'first snapshot for this route';
|
|
325
|
-
return { ...r, mode: SnapshotDeltaMode.FULL, reason, ...growth };
|
|
326
|
-
}
|
|
327
|
-
// The walk stops at a node cap and returns a DOCUMENT-ORDER PREFIX, so two capped snapshots of a
|
|
328
|
-
// large page are identical whenever the change happened past the cap — and "unchanged" is then a
|
|
329
|
-
// statement about the cap, not about the page. Carried through on both branches: a delta computed
|
|
330
|
-
// over a prefix is real but not exhaustive either.
|
|
331
|
-
const capped = true === r['truncated'] ? { truncated: true, note: CAPPED_DIFF_NOTE } : {};
|
|
332
|
-
// Spread onto BOTH branches. A value computed correctly and declared nowhere on the way out is the
|
|
333
|
-
// defect shape that hit this release five separate times: nothing throws, no test reddens, the
|
|
334
|
-
// field is simply absent forever.
|
|
335
|
-
const moved = decision.focusChanged === undefined ? {} : { focusChanged: decision.focusChanged };
|
|
336
|
-
if (decision.mode === SnapshotDeltaMode.UNCHANGED) {
|
|
337
|
-
return {
|
|
338
|
-
mode: SnapshotDeltaMode.UNCHANGED,
|
|
339
|
-
status: r['status'],
|
|
340
|
-
...moved,
|
|
341
|
-
...capped,
|
|
342
|
-
...growth,
|
|
343
|
-
};
|
|
344
|
-
}
|
|
345
|
-
const { changed, ...structuralDelta } = decision.delta;
|
|
346
|
-
const changedField = changed.length > 0 ? { changed, changedCount: changed.length } : {};
|
|
347
|
-
return {
|
|
348
|
-
mode: SnapshotDeltaMode.DELTA,
|
|
349
|
-
delta: structuralDelta,
|
|
350
|
-
...changedField,
|
|
351
|
-
status: r['status'],
|
|
352
|
-
...moved,
|
|
353
|
-
...capped,
|
|
354
|
-
...growth,
|
|
355
|
-
};
|
|
356
|
-
}
|
package/dist/tools/tool-kit.d.ts
DELETED
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared kit for the MCP tool modules — the tool shape, the dependency bag, the common
|
|
3
|
-
* session-id arg, and the two helpers (commandOrThrow, snapshotTree) every tool group needs. Lives
|
|
4
|
-
* in its own leaf module (no dependency on any tool array) so the per-group tool files can import it
|
|
5
|
-
* without a circular import — `tools.ts` assembles the groups and re-exports `ToolDef`/`ToolDeps`.
|
|
6
|
-
*/
|
|
7
|
-
import { z } from 'zod';
|
|
8
|
-
import { ReticleCommand } from '@reticlehq/core';
|
|
9
|
-
import type { SessionManager } from '../session/session.js';
|
|
10
|
-
import type { RealInputProvider } from '../input/real-input.js';
|
|
11
|
-
import type { BaselineStore } from '../project/baselines.js';
|
|
12
|
-
import type { RecordingStore } from '../flows/recordings.js';
|
|
13
|
-
import type { FileSystemPort } from '../project/fs-port.js';
|
|
14
|
-
import type { ArtifactRoot } from '../project/artifact-root.js';
|
|
15
|
-
import type { FlowStore } from '../flows/flows.js';
|
|
16
|
-
import type { ProjectStore } from '../project/project-store.js';
|
|
17
|
-
import type { AnnotationStore } from '../flows/annotation-store.js';
|
|
18
|
-
import type { BrowserPool } from '../pool/browser-pool.js';
|
|
19
|
-
import type { ChromiumProbe } from '../cli/chromium-hint.js';
|
|
20
|
-
export interface ToolDeps<Ext = unknown> {
|
|
21
|
-
sessions: SessionManager;
|
|
22
|
-
/** shared one-browser/N-context pool for headless leases. undefined ⇒ lease tools report unavailable. */
|
|
23
|
-
pool?: BrowserPool;
|
|
24
|
-
/**
|
|
25
|
-
* Probe for a launchable Chromium, so the lease path can refuse at the FIRST call with the install
|
|
26
|
-
* fix rather than failing several calls in with a message that reads as "the app is not running".
|
|
27
|
-
* Optional: absent ⇒ no preflight — every existing test construction of ToolDeps keeps working, and
|
|
28
|
-
* the fake-pool lease tests are deliberately runnable without a real Chromium.
|
|
29
|
-
*/
|
|
30
|
-
browserProbe?: () => Promise<ChromiumProbe>;
|
|
31
|
-
baselines: BaselineStore;
|
|
32
|
-
recordings: RecordingStore;
|
|
33
|
-
/** on-disk anchored-flow store (.reticle/flows/). */
|
|
34
|
-
flows: FlowStore;
|
|
35
|
-
/** structured annotations accumulating for the live recording. */
|
|
36
|
-
annotations: AnnotationStore;
|
|
37
|
-
/** cross-run outcome memory (.reticle/project.json). */
|
|
38
|
-
project: ProjectStore;
|
|
39
|
-
/** optional native-input provider. undefined ⇒ everything stays synthetic. */
|
|
40
|
-
realInput?: RealInputProvider;
|
|
41
|
-
/** injected filesystem seam (tests pass a fake/temp-dir adapter). */
|
|
42
|
-
fs: FileSystemPort;
|
|
43
|
-
/** absolute.reticle path (index.ts computes cwd/.reticle). The FALLBACK, not the answer. */
|
|
44
|
-
reticleRoot: string;
|
|
45
|
-
/**
|
|
46
|
-
* Which `.reticle` a SESSION's artifacts belong in, resolved per call.
|
|
47
|
-
*
|
|
48
|
-
* `reticleRoot` above is fixed at construction from the daemon's own `process.cwd()`, which is a
|
|
49
|
-
* statement about where the daemon was launched and was being read as a statement about which
|
|
50
|
-
* project is being verified. Those are usually not the same tree: an editor starts a user-scoped
|
|
51
|
-
* MCP server wherever it likes, so flows landed outside the repo they verify, or died on
|
|
52
|
-
* `mkdir '/.reticle'`.
|
|
53
|
-
*
|
|
54
|
-
* Optional because every existing construction of ToolDeps predates it and because a consumer
|
|
55
|
-
* embedding this engine may not have a filesystem to search. Absent ⇒ `reticleRoot`, which is
|
|
56
|
-
* exactly today's behaviour.
|
|
57
|
-
*/
|
|
58
|
-
artifactRootFor?: (projectId: string | undefined) => ArtifactRoot;
|
|
59
|
-
/**
|
|
60
|
-
* A verification run just landed — wake cloud sync instead of waiting for its next tick.
|
|
61
|
-
*
|
|
62
|
-
* The run itself is pushed immediately on this path, but everything AROUND it — the impact
|
|
63
|
-
* counters, the flows it exercised, flake and intent — moves only on the timer. That is what
|
|
64
|
-
* produced a dashboard showing a fresh run beside stale numbers, which reads as a sync bug and is
|
|
65
|
-
* really just two different clocks. Waking the loop here makes the run and its context arrive
|
|
66
|
-
* together.
|
|
67
|
-
*
|
|
68
|
-
* Optional: absent ⇒ the timer alone, which is exactly today's behaviour.
|
|
69
|
-
*/
|
|
70
|
-
onRunPersisted?: () => void;
|
|
71
|
-
/**
|
|
72
|
-
* This daemon's OWN project id, derived from the directory it was started in.
|
|
73
|
-
*
|
|
74
|
-
* Optional because a daemon above an uninitialised directory has none, and because every existing
|
|
75
|
-
* test construction of ToolDeps predates it. Absence means "cannot tell", which must never be
|
|
76
|
-
* treated as a mismatch.
|
|
77
|
-
*/
|
|
78
|
-
projectId?: string;
|
|
79
|
-
/** injected clock for the contract's generatedAt stamp. */
|
|
80
|
-
now: () => number;
|
|
81
|
-
/**
|
|
82
|
-
* The port this daemon's bridge listens on.
|
|
83
|
-
*
|
|
84
|
-
* Needed wherever a message has to name the OTHER half of a port mismatch — the commonest reason
|
|
85
|
-
* a leased tab loads the app and never dials in. Optional so every existing test construction of
|
|
86
|
-
* ToolDeps keeps working; absent falls back to the default port.
|
|
87
|
-
*/
|
|
88
|
-
bridgePort?: number;
|
|
89
|
-
/**
|
|
90
|
-
* A consumer's OWN dependencies, carried through untouched.
|
|
91
|
-
*
|
|
92
|
-
* Nothing in this package reads it. It exists so a consumer embedding the engine can add tools of
|
|
93
|
-
* its own — answering out of a store this package has never heard of — without either widening the
|
|
94
|
-
* fields above with a stranger's vocabulary or forking to get a handle through.
|
|
95
|
-
*
|
|
96
|
-
* The type parameter, rather than `unknown`, is what keeps the seam typed: a consumer writes
|
|
97
|
-
* `ToolDef<TheirExt>` once and their handlers see their own type. Casting out of `unknown` in every
|
|
98
|
-
* handler is how a typed seam quietly becomes an untyped one.
|
|
99
|
-
*
|
|
100
|
-
* Optional, and defaulted to `unknown`, so every existing construction of this bag — and every test
|
|
101
|
-
* that builds one — is unchanged.
|
|
102
|
-
*/
|
|
103
|
-
ext?: Ext;
|
|
104
|
-
}
|
|
105
|
-
export interface ToolDef<Ext = unknown> {
|
|
106
|
-
name: string;
|
|
107
|
-
description: string;
|
|
108
|
-
inputSchema: z.ZodRawShape;
|
|
109
|
-
/**
|
|
110
|
-
* JSON Schema-compatible output schema for this tool. When present, the MCP server advertises it
|
|
111
|
-
* in the tools/list response so schema-aware clients (like @reticlehq/cli) can validate outputs and
|
|
112
|
-
* compose tool calls safely. Also drives TOON encoding for snapshot/query results.
|
|
113
|
-
*/
|
|
114
|
-
outputSchema?: z.ZodRawShape;
|
|
115
|
-
/**
|
|
116
|
-
* One concrete, valid call — the shape, not the prose.
|
|
117
|
-
*
|
|
118
|
-
* A schema tells an agent the FIELD NAMES; it does not tell it how they compose, and under a lean
|
|
119
|
-
* profile only the first sentence of the description survives. So an agent reads "execute one
|
|
120
|
-
* action against a ref", sees `ref` / `action` / `args`, and guesses `{ action, testid }`. The
|
|
121
|
-
* guess fails inside the MCP SDK's own validation — BEFORE this package's error handling runs — so
|
|
122
|
-
* what comes back is a raw zod dump: the validator's internal state, naming no field and showing
|
|
123
|
-
* no correct shape. Two of those round trips cost more than the lean snapshot saves, which means
|
|
124
|
-
* arg-guessing quietly refunds the entire token advantage.
|
|
125
|
-
*
|
|
126
|
-
* Rendered into the advertised description, so it survives the terse profiles where it matters
|
|
127
|
-
* most. `tool-examples.test.ts` parses every one of these against its OWN inputSchema, because an
|
|
128
|
-
* example that does not validate is worse than none at all.
|
|
129
|
-
*/
|
|
130
|
-
example?: Record<string, unknown>;
|
|
131
|
-
/**
|
|
132
|
-
* Declared method-style, not as a property, and that is load-bearing rather than stylistic.
|
|
133
|
-
*
|
|
134
|
-
* Under `strictFunctionTypes` a property holding a function has CONTRAVARIANT parameters, so
|
|
135
|
-
* `ToolDef<TheirExt>` and `ToolDef<unknown>` become mutually unassignable and a consumer composing
|
|
136
|
-
* `[...TOOLS, ...theirTools]` needs a cast — as does every internal helper that then touches the
|
|
137
|
-
* array. Method-style parameters are checked bivariantly, which collapses all of that.
|
|
138
|
-
*
|
|
139
|
-
* The unsoundness bivariance admits is that a handler written against `ToolDeps<TheirExt>` could be
|
|
140
|
-
* handed a bag carrying no `ext` at all. That costs nothing here, because `ext` is optional by
|
|
141
|
-
* design: any handler reading it already has to survive `undefined`.
|
|
142
|
-
*/
|
|
143
|
-
handler(deps: ToolDeps<Ext>, args: Record<string, unknown>): Promise<unknown>;
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* The optional inline intent, on every tool that draws a verdict.
|
|
147
|
-
*
|
|
148
|
-
* One field, carrying either prose or the id of an intent already declared, because the surface is
|
|
149
|
-
* the scarce thing and a second field for the reference case would double the cost of the idea to
|
|
150
|
-
* make one of its two uses marginally more explicit. Told apart by the ledger — see
|
|
151
|
-
* `intent/inline-intent.ts`.
|
|
152
|
-
*
|
|
153
|
-
* The first sentence is what a lean surface advertises, so it carries both readings; the rest is for
|
|
154
|
-
* the profiles that send the whole description.
|
|
155
|
-
*/
|
|
156
|
-
export declare const intentArg: z.ZodOptional<z.ZodString>;
|
|
157
|
-
export declare const sessionIdShape: {
|
|
158
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
159
|
-
};
|
|
160
|
-
/**
|
|
161
|
-
* Every key `runTool` splices onto a session-bound result, as a closed list.
|
|
162
|
-
*
|
|
163
|
-
* These are wire strings and were inlined at the splice sites, which is exactly how four of them
|
|
164
|
-
* came to be spliced and never declared. `sessionEnvelopeShape` is derived from this object and
|
|
165
|
-
* `envelope-keys-declared.test.ts` fails if a member is missing from it, so the two cannot drift.
|
|
166
|
-
*
|
|
167
|
-
* Each of these is a channel that exists BECAUSE the agent had no other way to learn the fact.
|
|
168
|
-
* Undeclared, a schema-strict client validating `structuredContent` drops it, and the channel is
|
|
169
|
-
* indistinguishable from never having been built.
|
|
170
|
-
*/
|
|
171
|
-
export declare const EnvelopeKey: {
|
|
172
|
-
/** Session health — which tab, how fresh. */
|
|
173
|
-
readonly SESSION: "session";
|
|
174
|
-
/** One-shot pool-lease reminder. */
|
|
175
|
-
readonly SESSION_LEASE: "session_lease";
|
|
176
|
-
/** One-shot "these sessions are old, clean them up". */
|
|
177
|
-
readonly SESSION_AGE_WARNING: "session_age_warning";
|
|
178
|
-
/** The delivered-once human-in-the-loop guidance envelope. Losing it is a safety failure. */
|
|
179
|
-
readonly CONTROL: "control";
|
|
180
|
-
/**
|
|
181
|
-
* Rides alongside `session` whenever the tab is THROTTLED. It was declared on `reticle_act`'s
|
|
182
|
-
* schema and nowhere else, so on a validating profile every other session-bound tool silently
|
|
183
|
-
* dropped it — a throttled tab, where drives can no-op, returned a healthy-looking result.
|
|
184
|
-
*/
|
|
185
|
-
readonly WARNING: "warning";
|
|
186
|
-
/** One-shot "ask the human how this went". */
|
|
187
|
-
readonly FEEDBACK_PROMPT: "feedback_prompt";
|
|
188
|
-
/** One-shot "a newer Reticle exists". */
|
|
189
|
-
readonly UPDATE_AVAILABLE: "update_available";
|
|
190
|
-
/**
|
|
191
|
-
* "You have driven this page N times without asking for a verdict."
|
|
192
|
-
*
|
|
193
|
-
* The largest known lever on the metric this product is judged by: verdict-less sessions
|
|
194
|
-
* overwhelmingly never call a verdict-producing tool at all. It was spliced undeclared, so on a
|
|
195
|
-
* validating client the nudge was built, fired, and thrown away before any agent saw it.
|
|
196
|
-
*/
|
|
197
|
-
readonly VERIFY_NEXT: "verify_next";
|
|
198
|
-
/** The contextual "tell us what just went wrong" invitation. Same story, same release. */
|
|
199
|
-
readonly FEEDBACK_INVITE: "feedback_invite";
|
|
200
|
-
/** SDK/daemon version skew — often the one fact that explains everything else in the session. */
|
|
201
|
-
readonly VERSION_SKEW: "version_skew";
|
|
202
|
-
/** A feedback report that was accepted and then failed to send. Only the reporter can act on it. */
|
|
203
|
-
readonly FEEDBACK_UNDELIVERED: "feedback_undelivered";
|
|
204
|
-
};
|
|
205
|
-
export type EnvelopeKey = (typeof EnvelopeKey)[keyof typeof EnvelopeKey];
|
|
206
|
-
/**
|
|
207
|
-
* Fields that `runTool` / `withControl` splice onto EVERY session-bound tool result at runtime.
|
|
208
|
-
* Merged into each session-bound tool's outputSchema so a schema-strict client (structuredContent
|
|
209
|
-
* validation) keeps them instead of silently dropping them.
|
|
210
|
-
*
|
|
211
|
-
* Derived from `EnvelopeKey` rather than re-listed: this shape and the splice sites disagreed for a
|
|
212
|
-
* whole release, and every key that went missing was a channel nobody could see was missing.
|
|
213
|
-
*/
|
|
214
|
-
export declare const sessionEnvelopeShape: z.ZodRawShape;
|
|
215
|
-
/** Unwrap a browser command result or throw its error so the agent sees a clean failure. */
|
|
216
|
-
export declare function commandOrThrow(deps: ToolDeps, sessionId: string | undefined, name: ReticleCommand, args: Record<string, unknown>): Promise<unknown>;
|
|
217
|
-
/** Full DOM snapshot → normalized tree lines + route, for tools that diff or scan the page. */
|
|
218
|
-
export declare function snapshotTree(deps: ToolDeps, sessionId: string | undefined): Promise<{
|
|
219
|
-
lines: string[];
|
|
220
|
-
route: string;
|
|
221
|
-
}>;
|