@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,121 +0,0 @@
|
|
|
1
|
-
import { BlindSpotKind, EventType } from '@reticlehq/core';
|
|
2
|
-
import { ambientKeyOf } from '../journal/ambient.js';
|
|
3
|
-
/**
|
|
4
|
-
* The two things a session learns by watching its own event stream, as opposed to storing.
|
|
5
|
-
*
|
|
6
|
-
* Both are LEVELS derived from a stream, and both have to outlive the ring buffer — which is what
|
|
7
|
-
* separates them from the buffer's job and earns them their own unit:
|
|
8
|
-
*
|
|
9
|
-
* ambient — which regions of the page move on their own (chat, tickers, live counters). Used by
|
|
10
|
-
* the settle oracle to ignore background motion, so an action isn't held open forever
|
|
11
|
-
* by churn it did not cause.
|
|
12
|
-
* blindSpots — how much of the page the SDK cannot observe (cross-origin frames, closed shadow
|
|
13
|
-
* roots). The SDK reports these only when the count CHANGES, so a page that mounts
|
|
14
|
-
* two frames at load announces them once and is silent forever after. Anything that
|
|
15
|
-
* infers coverage from a window of events therefore sees nothing and concludes the
|
|
16
|
-
* page was fully observed — a positive claim to have seen what we cannot see. Holding
|
|
17
|
-
* the level here makes coverage something to ask rather than infer.
|
|
18
|
-
*/
|
|
19
|
-
export class ObservedState {
|
|
20
|
-
/** What THIS session observed. Never contains seeded history — see seedAmbient. */
|
|
21
|
-
#ownAmbient = {};
|
|
22
|
-
/** What previous sessions learned, kept separate so it is never re-persisted as if newly seen. */
|
|
23
|
-
#seededAmbient = {};
|
|
24
|
-
#blindSpots = {};
|
|
25
|
-
/** Fold one already-attributed event into the learned state. */
|
|
26
|
-
observe(event) {
|
|
27
|
-
// Only UNATTRIBUTED events count as ambient: an event caused by an action is the action's work,
|
|
28
|
-
// and learning it as background would teach the settle oracle to ignore real effects.
|
|
29
|
-
if (event.actionId === undefined) {
|
|
30
|
-
const key = ambientKeyOf(event);
|
|
31
|
-
if (key !== undefined)
|
|
32
|
-
this.#ownAmbient[key] = (this.#ownAmbient[key] ?? 0) + 1;
|
|
33
|
-
}
|
|
34
|
-
if (event.type === EventType.BLIND_SPOT) {
|
|
35
|
-
const kind = event.data['kind'];
|
|
36
|
-
const count = event.data['count'];
|
|
37
|
-
if ('string' === typeof kind && 'number' === typeof count)
|
|
38
|
-
this.#blindSpots[kind] = count;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Learned ambient-churn counts — seeded history PLUS this session — for the settle oracle, which
|
|
43
|
-
* wants the sharpest available picture of what moves on its own.
|
|
44
|
-
*/
|
|
45
|
-
ambientCounts() {
|
|
46
|
-
const merged = { ...this.#seededAmbient };
|
|
47
|
-
for (const [key, count] of Object.entries(this.#ownAmbient)) {
|
|
48
|
-
merged[key] = (merged[key] ?? 0) + count;
|
|
49
|
-
}
|
|
50
|
-
return merged;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* ONLY what this session observed — the correct input to persistence.
|
|
54
|
-
*
|
|
55
|
-
* Teardown accumulates by adding the session's counts onto the file it loaded. When the session's
|
|
56
|
-
* counts still contained the seeded ones, that addition wrote `2 x persisted + own` every run, so
|
|
57
|
-
* the map doubled per session: the file committed in this repo had reached ~9.1e23 (about 2^80,
|
|
58
|
-
* i.e. ~80 sessions of doubling). Keeping the seed separate makes the accumulation what it always
|
|
59
|
-
* claimed to be — history plus what is new.
|
|
60
|
-
*/
|
|
61
|
-
ownAmbientCounts() {
|
|
62
|
-
return this.#ownAmbient;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Seed from the persisted per-app map so the picture sharpens across sessions.
|
|
66
|
-
* In-session counts win: they describe this page as it is now.
|
|
67
|
-
*/
|
|
68
|
-
seedAmbient(counts) {
|
|
69
|
-
this.#seededAmbient = { ...counts };
|
|
70
|
-
}
|
|
71
|
-
/** Latest reported count per blind-spot kind, for the whole session. */
|
|
72
|
-
/**
|
|
73
|
-
* Refs the agent has driven, for the exercised/untouched split `reticle_coverage` reports.
|
|
74
|
-
*
|
|
75
|
-
* Kept here beside the blind-spot counts because both are per-session observed facts that must
|
|
76
|
-
* SURVIVE buffer eviction. Deriving "what did I touch" from the event buffer instead would mean an
|
|
77
|
-
* action fifty steps ago silently stops counting, so "untouched" would quietly come to mean
|
|
78
|
-
* "recently untouched" — a number that reads as thorough while drifting toward the opposite.
|
|
79
|
-
*/
|
|
80
|
-
#actedRefs = new Set();
|
|
81
|
-
/**
|
|
82
|
-
* The same drives, keyed by something that SURVIVES a re-render.
|
|
83
|
-
*
|
|
84
|
-
* A ref is invalidated whenever the DOM changes, so on a framework that replaces nodes rather than
|
|
85
|
-
* reconciling in place (Next's app router, for one) every driven ref is stale by the time coverage
|
|
86
|
-
* is asked and the number reads 0 forever. The snapshot label — `button "Deploy"` — names the same
|
|
87
|
-
* control on both sides of a re-render.
|
|
88
|
-
*/
|
|
89
|
-
#actedLabels = new Set();
|
|
90
|
-
/** Record a driven ref. Idempotent. */
|
|
91
|
-
recordActedRef(ref) {
|
|
92
|
-
if (ref.length > 0)
|
|
93
|
-
this.#actedRefs.add(ref);
|
|
94
|
-
}
|
|
95
|
-
/** Record a driven control's re-render-surviving label. Idempotent; empty labels are not identities. */
|
|
96
|
-
recordActedLabel(label) {
|
|
97
|
-
if (label.length > 0)
|
|
98
|
-
this.#actedLabels.add(label);
|
|
99
|
-
}
|
|
100
|
-
/** Every ref driven so far this session. */
|
|
101
|
-
actedRefs() {
|
|
102
|
-
return this.#actedRefs;
|
|
103
|
-
}
|
|
104
|
-
/** Every driven control's label, for matching across re-renders. */
|
|
105
|
-
actedLabels() {
|
|
106
|
-
return this.#actedLabels;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Record bridge-side sampling as a blind spot.
|
|
110
|
-
*
|
|
111
|
-
* Every other blind spot is reported BY the SDK, which cannot report this one: the events were
|
|
112
|
-
* dropped before they reached the observer. Recording it here keeps the honesty contract intact —
|
|
113
|
-
* a verdict over a sampled window says `coverage: partial` rather than implying it saw everything.
|
|
114
|
-
*/
|
|
115
|
-
noteRateLimited(dropped) {
|
|
116
|
-
this.#blindSpots[BlindSpotKind.RATE_LIMITED] = dropped;
|
|
117
|
-
}
|
|
118
|
-
blindSpots() {
|
|
119
|
-
return this.#blindSpots;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { ReticleEvent } from '@reticlehq/core';
|
|
2
|
-
/**
|
|
3
|
-
* A self-budgeting hint returned on event-bearing tool results so the agent can decide whether to
|
|
4
|
-
* narrow its next call (the report flagged 60KB+ results as a real token tax). `bytes` is the JSON
|
|
5
|
-
* size of the payload; `droppedOldest` is present only when a cap actually truncated the timeline —
|
|
6
|
-
* never a silent cap.
|
|
7
|
-
*/
|
|
8
|
-
interface CostHint {
|
|
9
|
-
events: number;
|
|
10
|
-
bytes: number;
|
|
11
|
-
droppedOldest?: number;
|
|
12
|
-
/** Present when the timeline is large — tells the agent to scope its NEXT call (cut tokens). */
|
|
13
|
-
recommendation?: string;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Default cap for reticle_network / reticle_console when the caller passes no `limit`. Those tools
|
|
17
|
-
* default `since` to 0 (the whole session), so a long-lived or event-flooded session produced an
|
|
18
|
-
* UNBOUNDED result — a measured 1-hour flood is ~72,000 calls / ~1M tokens in a single tool result.
|
|
19
|
-
* Capping to the most-recent N (with `total`/`droppedOldest` disclosed, so nothing is hidden and the
|
|
20
|
-
* agent can page with since/until or a higher explicit limit) bounds the cost without changing the
|
|
21
|
-
* window. 200 comfortably covers a real flow's traffic while killing the pathological case.
|
|
22
|
-
*/
|
|
23
|
-
export declare const DEFAULT_QUERY_LIMIT = 200;
|
|
24
|
-
/** Keep only the most recent `maxEvents` events; report how many older ones were dropped. */
|
|
25
|
-
export declare function applyEventBudget(events: ReticleEvent[], maxEvents: number | undefined): {
|
|
26
|
-
events: ReticleEvent[];
|
|
27
|
-
droppedOldest: number;
|
|
28
|
-
};
|
|
29
|
-
/** Build a cost hint from a payload + the event count it carries. */
|
|
30
|
-
export declare function costHint(payload: unknown, events: number, droppedOldest?: number): CostHint;
|
|
31
|
-
export declare function estimateTokens(text: string): number;
|
|
32
|
-
/**
|
|
33
|
-
* A size preview for non-event read results (snapshot, query). Same intent as CostHint but for
|
|
34
|
-
* payloads measured by size rather than event count: the agent can bail and re-scope (mode:status,
|
|
35
|
-
* a tighter scope, a more specific query) before spending context on a large body. The token
|
|
36
|
-
* figure is an estimate (see estimateTokens).
|
|
37
|
-
*/
|
|
38
|
-
interface SizeCost {
|
|
39
|
-
bytes: number;
|
|
40
|
-
tokens: number;
|
|
41
|
-
}
|
|
42
|
-
export declare function sizeCost(payload: unknown): SizeCost;
|
|
43
|
-
/**
|
|
44
|
-
* Attach a `cost` size preview to a read result. Pure: the cost is computed over the result BEFORE
|
|
45
|
-
* the cost field is added (so it measures the body the agent will actually read), then merged in.
|
|
46
|
-
* Non-object results (e.g. a thrown-error envelope) pass through unchanged.
|
|
47
|
-
*/
|
|
48
|
-
export declare function withSizeCost<T>(result: T): T;
|
|
49
|
-
export {};
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Above this, a timeline is big enough that re-reading it unscoped is a real token tax. Observed
|
|
3
|
-
* live: a single login flooded 319 events / ~37KB because the dashboard's count-up animations emit
|
|
4
|
-
* a dom.text per frame — the agent only dodged the cost by knowing to pass filters. The hint now
|
|
5
|
-
* tells it.
|
|
6
|
-
*/
|
|
7
|
-
const LARGE_TIMELINE_EVENTS = 80;
|
|
8
|
-
const LARGE_TIMELINE_BYTES = 8000;
|
|
9
|
-
/**
|
|
10
|
-
* Default cap for reticle_network / reticle_console when the caller passes no `limit`. Those tools
|
|
11
|
-
* default `since` to 0 (the whole session), so a long-lived or event-flooded session produced an
|
|
12
|
-
* UNBOUNDED result — a measured 1-hour flood is ~72,000 calls / ~1M tokens in a single tool result.
|
|
13
|
-
* Capping to the most-recent N (with `total`/`droppedOldest` disclosed, so nothing is hidden and the
|
|
14
|
-
* agent can page with since/until or a higher explicit limit) bounds the cost without changing the
|
|
15
|
-
* window. 200 comfortably covers a real flow's traffic while killing the pathological case.
|
|
16
|
-
*/
|
|
17
|
-
export const DEFAULT_QUERY_LIMIT = 200;
|
|
18
|
-
/** Keep only the most recent `maxEvents` events; report how many older ones were dropped. */
|
|
19
|
-
export function applyEventBudget(events, maxEvents) {
|
|
20
|
-
if (maxEvents === undefined || maxEvents < 0 || events.length <= maxEvents) {
|
|
21
|
-
return { events, droppedOldest: 0 };
|
|
22
|
-
}
|
|
23
|
-
return {
|
|
24
|
-
events: events.slice(events.length - maxEvents),
|
|
25
|
-
droppedOldest: events.length - maxEvents,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
/** Build a cost hint from a payload + the event count it carries. */
|
|
29
|
-
export function costHint(payload, events, droppedOldest = 0) {
|
|
30
|
-
const json = JSON.stringify(payload) ?? '';
|
|
31
|
-
// Actual UTF-8 wire bytes, not json.length (UTF-16 code units) — the field is labeled `bytes` and
|
|
32
|
-
// drives the large-timeline recommendation, so a multibyte-heavy payload was under-counted.
|
|
33
|
-
const bytes = Buffer.byteLength(json, 'utf8');
|
|
34
|
-
const base = droppedOldest > 0 ? { events, bytes, droppedOldest } : { events, bytes };
|
|
35
|
-
if (events >= LARGE_TIMELINE_EVENTS || bytes >= LARGE_TIMELINE_BYTES) {
|
|
36
|
-
base.recommendation = `large timeline (${String(events)} events, ~${String(estimateTokens(json))} tokens) — pass filters:[...] (e.g. ["signal","net"]) or max_events to scope your next call and cut tokens`;
|
|
37
|
-
}
|
|
38
|
-
return base;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Rough token estimate for a string. The exact count is model/tokenizer-specific, but ~4 characters
|
|
42
|
-
* per token is the well-known heuristic for English-ish text (and JSON) across GPT/Claude
|
|
43
|
-
* tokenizers — accurate enough for the only decision it drives: "is this response big enough that I
|
|
44
|
-
* should re-scope before reading it?" Deliberately a cheap, dependency-free approximation, NOT a
|
|
45
|
-
* billing-grade count.
|
|
46
|
-
*/
|
|
47
|
-
const CHARS_PER_TOKEN = 4;
|
|
48
|
-
export function estimateTokens(text) {
|
|
49
|
-
return Math.ceil(text.length / CHARS_PER_TOKEN);
|
|
50
|
-
}
|
|
51
|
-
export function sizeCost(payload) {
|
|
52
|
-
const json = JSON.stringify(payload) ?? '';
|
|
53
|
-
// Actual UTF-8 wire bytes, not json.length (UTF-16 code units) — the field is labeled `bytes`
|
|
54
|
-
// and drives the large-snapshot recommendation, so a multibyte-heavy payload was under-counted.
|
|
55
|
-
const bytes = Buffer.byteLength(json, 'utf8');
|
|
56
|
-
return { bytes, tokens: estimateTokens(json) };
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Attach a `cost` size preview to a read result. Pure: the cost is computed over the result BEFORE
|
|
60
|
-
* the cost field is added (so it measures the body the agent will actually read), then merged in.
|
|
61
|
-
* Non-object results (e.g. a thrown-error envelope) pass through unchanged.
|
|
62
|
-
*/
|
|
63
|
-
export function withSizeCost(result) {
|
|
64
|
-
if (typeof result !== 'object' || null === result)
|
|
65
|
-
return result;
|
|
66
|
-
return { ...result, cost: sizeCost(result) };
|
|
67
|
-
}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import { BrowserBrand, type ReticleEvent } from '@reticlehq/core';
|
|
2
|
-
import type { Session } from './session.js';
|
|
3
|
-
/**
|
|
4
|
-
* The health block spliced onto act/assert results. Defined here rather than in session.ts: this is
|
|
5
|
-
* the module that builds it, and session.ts was over the file-size cap.
|
|
6
|
-
*/
|
|
7
|
-
export interface SessionHealth {
|
|
8
|
-
lastSeenMs: number;
|
|
9
|
-
throttled: boolean;
|
|
10
|
-
focused: boolean;
|
|
11
|
-
/** present only when hidden/throttled — points at the `reticle drive` escape hatch. */
|
|
12
|
-
recommendation?: string;
|
|
13
|
-
/**
|
|
14
|
-
* How long the OLDEST unanswered request has been in flight, when that is long enough to matter.
|
|
15
|
-
*
|
|
16
|
-
* Present only past `PENDING_NAVIGATION_NOTICE_MS`, so a healthy session costs nothing. Both
|
|
17
|
-
* reporters on the hung-server issue said this alone would have been enough for them: one sat on
|
|
18
|
-
* an RSC fetch stuck pending for 170+ seconds across many calls, the other on a dev server that
|
|
19
|
-
* accepted connections and never sent a body. Reticle held the evidence both times and the truth
|
|
20
|
-
* was eventually established with `curl`.
|
|
21
|
-
*/
|
|
22
|
-
pendingNavigationMs?: number;
|
|
23
|
-
/**
|
|
24
|
-
* Present only when the page's SDK version differs from the daemon's — see version-skew.ts.
|
|
25
|
-
*
|
|
26
|
-
* On the HEALTH block, not only on `reticle_sessions`, because skew causes SILENT action failures
|
|
27
|
-
* and the fields it contradicts ride on the act result. Reported from the field: `act_and_wait`
|
|
28
|
-
* returning `dispatched: true, settled: true, domMutatedWithin: 12-40ms` while React state never
|
|
29
|
-
* changed, across eight attempts and three interaction strategies. The banner existed the whole
|
|
30
|
-
* time — on `reticle_sessions` and `reticle_lease`, which is not the surface an agent reads on
|
|
31
|
-
* every call.
|
|
32
|
-
*/
|
|
33
|
-
versionSkew?: string;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* How long a request may be in flight before it is worth reporting on session health.
|
|
37
|
-
*
|
|
38
|
-
* A drive always has requests in the air, so a low bar puts a scary number on every healthy session
|
|
39
|
-
* and trains agents to ignore the field — the same way a guard that fires on routine controls trains
|
|
40
|
-
* them to pass `confirmDangerous` reflexively.
|
|
41
|
-
*
|
|
42
|
-
* 10s, and it is a HEURISTIC with no clean separation available: "a slow endpoint" and "a server
|
|
43
|
-
* that will never answer" are the same observation until one of them finishes. The number is chosen
|
|
44
|
-
* to sit between the two things actually measured, not derived from anything.
|
|
45
|
-
*
|
|
46
|
-
* Below it: this repo's own battery runs its API with `REFLECT_MS=6000` on purpose, and at the 5s
|
|
47
|
-
* this first shipped with, a healthy app with one slow route was permanently non-nominal and carried
|
|
48
|
-
* a scary number on every result.
|
|
49
|
-
*
|
|
50
|
-
* Above it: both reported wedges — 10.4s on one, 170s+ on the other. 10.4s clears this by 400ms,
|
|
51
|
-
* which is thin, and an app with an 8-second endpoint will not be warned about a wedge until 10s.
|
|
52
|
-
* That is the trade: an over-firing field gets ignored, and a field nobody reads catches nothing.
|
|
53
|
-
*/
|
|
54
|
-
export declare const PENDING_NAVIGATION_NOTICE_MS = 10000;
|
|
55
|
-
/**
|
|
56
|
-
* The age of the oldest request that STARTED and never completed, or undefined when there is none
|
|
57
|
-
* worth reporting.
|
|
58
|
-
*
|
|
59
|
-
* Matched on request id, the way `detectHungRequests` and the route oracle's `unansweredIn` do: a
|
|
60
|
-
* NET_PENDING with no NET_REQUEST carrying the same id. Three readings of one fact is two too many,
|
|
61
|
-
* but they read different windows — this one is the whole session, which is the point: a wedge that
|
|
62
|
-
* began before the current action is exactly the case a per-window reading cannot see.
|
|
63
|
-
*/
|
|
64
|
-
export declare function pendingNavigationMs(events: readonly ReticleEvent[], nowMs: number): number | undefined;
|
|
65
|
-
/** The evidence-completeness block spliced onto observe/network/console results. */
|
|
66
|
-
interface BufferEnvelope {
|
|
67
|
-
buffer?: {
|
|
68
|
-
held: number;
|
|
69
|
-
dropped: number;
|
|
70
|
-
note: string;
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Buffer-honesty envelope for observe/network/console. When the ring buffer has evicted anything
|
|
75
|
-
* (age/size cap), a "no such event" answer may be a false negative — so we attach the drop count and
|
|
76
|
-
* an actionable note. OMITTED entirely when nothing was dropped: silence means the buffer is intact,
|
|
77
|
-
* so a clean/empty result there is trustworthy and costs zero tokens.
|
|
78
|
-
*/
|
|
79
|
-
export declare function bufferEnvelope(session: Session): BufferEnvelope;
|
|
80
|
-
/** The `session` (and optional throttled `warning`) block spliced onto act/assert results. */
|
|
81
|
-
interface HealthEnvelope {
|
|
82
|
-
session?: SessionHealth;
|
|
83
|
-
warning?: string;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Build the health envelope for a tool result. When the session is **nominal** (focused, not
|
|
87
|
-
* throttled, no escape-hatch recommendation) the block is OMITTED entirely — a healthy session
|
|
88
|
-
* conveys nothing actionable, and emitting it on every act/observe/assert call is pure token
|
|
89
|
-
* overhead. The block (and a throttled `warning`) appears only when something is actually wrong,
|
|
90
|
-
* so no health signal is lost — absence means healthy.
|
|
91
|
-
*/
|
|
92
|
-
export declare function healthEnvelope(session: Session): HealthEnvelope;
|
|
93
|
-
/**
|
|
94
|
-
* Opt-in hard stop. When `refuseWhenThrottled` is true and the tab is throttled, throw so the
|
|
95
|
-
* agent does not drive a tab where timers/rAF/pointer gestures may silently no-op. Default is
|
|
96
|
-
* warn-only so background testing never breaks.
|
|
97
|
-
*/
|
|
98
|
-
export declare function refuseIfThrottled(session: Session, refuse: unknown): void;
|
|
99
|
-
/**
|
|
100
|
-
* Suffix the starvation note onto a FAILED predicate verdict when the tab is throttled. A pass is
|
|
101
|
-
* returned untouched — starvation is context for a failure, not a reason to doubt a hold. Pure and
|
|
102
|
-
* generic over the verdict shape so assert/wait_for/act_and_wait share one rule.
|
|
103
|
-
*
|
|
104
|
-
* The sentence FOLLOWS the field, and does not decide for itself. `annotateThrottledMiss`
|
|
105
|
-
* (predicate.ts) owns the question of whether this failure was reached by not having seen
|
|
106
|
-
* something, which is the only reading a starved tab casts doubt on; it stamps
|
|
107
|
-
* `THROTTLED_STARVED_NOTE` when it was. Deciding again here got two answers to one question:
|
|
108
|
-
* an `absent: true` assertion that MATCHED 13 elements was graded honestly in the field an agent
|
|
109
|
-
* gates on, and told in prose that the tab may never have rendered. It also doubled up on a failure
|
|
110
|
-
* that already carried a more specific reason (an unreadable locator, a superseded window), where
|
|
111
|
-
* the concrete diagnosis is the one that should lead.
|
|
112
|
-
*/
|
|
113
|
-
export declare function annotateStarvedFailure<V extends {
|
|
114
|
-
pass?: boolean;
|
|
115
|
-
failureReason?: string;
|
|
116
|
-
inconclusive?: string;
|
|
117
|
-
}>(session: Session, verdict: V): V;
|
|
118
|
-
/** The page's own visibility/runtime report, narrowed out of an untrusted PAGE_HEALTH payload. */
|
|
119
|
-
interface HealthReport {
|
|
120
|
-
hidden: boolean | undefined;
|
|
121
|
-
focused: boolean | undefined;
|
|
122
|
-
runtime: string | undefined;
|
|
123
|
-
/** Coarse rendering engine (blink/gecko/webkit) — context for a feedback report, not a health input. */
|
|
124
|
-
engine: string | undefined;
|
|
125
|
-
/**
|
|
126
|
-
* Which browser the page is. Narrowed to `BrowserBrand` HERE rather than trusted: the SDK already
|
|
127
|
-
* normalises, so anything else is a stale or hand-forged payload and is dropped — the point of the
|
|
128
|
-
* closed list is that an unbounded string can never reach telemetry through it.
|
|
129
|
-
*/
|
|
130
|
-
brand: BrowserBrand | undefined;
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Narrow a PAGE_HEALTH payload. Every field is optional on the wire — an older SDK does not report
|
|
134
|
-
* `runtime` at all — so each is returned as undefined rather than defaulted here, letting the caller
|
|
135
|
-
* keep its previous value instead of silently flipping a session to "visible" on a partial report.
|
|
136
|
-
*/
|
|
137
|
-
export declare function readHealthEvent(data: Record<string, unknown>): HealthReport;
|
|
138
|
-
export {};
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
import { BrowserBrand, EventType, BUFFER_EVICTION_WARNING, THROTTLED_STARVED_NOTE, THROTTLED_WARNING, } from '@reticlehq/core';
|
|
2
|
-
/**
|
|
3
|
-
* How long a request may be in flight before it is worth reporting on session health.
|
|
4
|
-
*
|
|
5
|
-
* A drive always has requests in the air, so a low bar puts a scary number on every healthy session
|
|
6
|
-
* and trains agents to ignore the field — the same way a guard that fires on routine controls trains
|
|
7
|
-
* them to pass `confirmDangerous` reflexively.
|
|
8
|
-
*
|
|
9
|
-
* 10s, and it is a HEURISTIC with no clean separation available: "a slow endpoint" and "a server
|
|
10
|
-
* that will never answer" are the same observation until one of them finishes. The number is chosen
|
|
11
|
-
* to sit between the two things actually measured, not derived from anything.
|
|
12
|
-
*
|
|
13
|
-
* Below it: this repo's own battery runs its API with `REFLECT_MS=6000` on purpose, and at the 5s
|
|
14
|
-
* this first shipped with, a healthy app with one slow route was permanently non-nominal and carried
|
|
15
|
-
* a scary number on every result.
|
|
16
|
-
*
|
|
17
|
-
* Above it: both reported wedges — 10.4s on one, 170s+ on the other. 10.4s clears this by 400ms,
|
|
18
|
-
* which is thin, and an app with an 8-second endpoint will not be warned about a wedge until 10s.
|
|
19
|
-
* That is the trade: an over-firing field gets ignored, and a field nobody reads catches nothing.
|
|
20
|
-
*/
|
|
21
|
-
export const PENDING_NAVIGATION_NOTICE_MS = 10_000;
|
|
22
|
-
/**
|
|
23
|
-
* Said beside `dispatched` / `settled` on a skewed session, because those fields read as success.
|
|
24
|
-
*
|
|
25
|
-
* The reporter's own account of the cost: "the false-positive dispatch confirmation is what cost the
|
|
26
|
-
* most time — I trusted `dispatched: true, domMutatedWithin: Nms` as real signal for a long time
|
|
27
|
-
* before suspecting the skew banner." Stating the contradiction is the whole job here; the existing
|
|
28
|
-
* banner was accurate and simply never appeared where it was needed.
|
|
29
|
-
*/
|
|
30
|
-
const SKEW_VERDICT_WARNING = 'version skew: `dispatched` and `settled` on this session mean the event was sent, NOT that the ' +
|
|
31
|
-
'app acted on it — a skewed pair drops actions silently. Re-read the control (aria-checked, ' +
|
|
32
|
-
'data-state, its text) before trusting any verdict from this session, and converge the versions:';
|
|
33
|
-
/**
|
|
34
|
-
* The age of the oldest request that STARTED and never completed, or undefined when there is none
|
|
35
|
-
* worth reporting.
|
|
36
|
-
*
|
|
37
|
-
* Matched on request id, the way `detectHungRequests` and the route oracle's `unansweredIn` do: a
|
|
38
|
-
* NET_PENDING with no NET_REQUEST carrying the same id. Three readings of one fact is two too many,
|
|
39
|
-
* but they read different windows — this one is the whole session, which is the point: a wedge that
|
|
40
|
-
* began before the current action is exactly the case a per-window reading cannot see.
|
|
41
|
-
*/
|
|
42
|
-
export function pendingNavigationMs(events, nowMs) {
|
|
43
|
-
const settled = new Set();
|
|
44
|
-
for (const e of events)
|
|
45
|
-
if (e.type === EventType.NET_REQUEST)
|
|
46
|
-
settled.add(e.data['id']);
|
|
47
|
-
let oldest;
|
|
48
|
-
for (const e of events) {
|
|
49
|
-
if (e.type !== EventType.NET_PENDING || settled.has(e.data['id']))
|
|
50
|
-
continue;
|
|
51
|
-
if (oldest === undefined || e.t < oldest)
|
|
52
|
-
oldest = e.t;
|
|
53
|
-
}
|
|
54
|
-
if (oldest === undefined)
|
|
55
|
-
return undefined;
|
|
56
|
-
const age = nowMs - oldest;
|
|
57
|
-
return age >= PENDING_NAVIGATION_NOTICE_MS ? age : undefined;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Buffer-honesty envelope for observe/network/console. When the ring buffer has evicted anything
|
|
61
|
-
* (age/size cap), a "no such event" answer may be a false negative — so we attach the drop count and
|
|
62
|
-
* an actionable note. OMITTED entirely when nothing was dropped: silence means the buffer is intact,
|
|
63
|
-
* so a clean/empty result there is trustworthy and costs zero tokens.
|
|
64
|
-
*/
|
|
65
|
-
export function bufferEnvelope(session) {
|
|
66
|
-
const { total, dropped } = session.bufferHealth();
|
|
67
|
-
if (0 === dropped)
|
|
68
|
-
return {};
|
|
69
|
-
return { buffer: { held: total, dropped, note: BUFFER_EVICTION_WARNING } };
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Build the health envelope for a tool result. When the session is **nominal** (focused, not
|
|
73
|
-
* throttled, no escape-hatch recommendation) the block is OMITTED entirely — a healthy session
|
|
74
|
-
* conveys nothing actionable, and emitting it on every act/observe/assert call is pure token
|
|
75
|
-
* overhead. The block (and a throttled `warning`) appears only when something is actually wrong,
|
|
76
|
-
* so no health signal is lost — absence means healthy.
|
|
77
|
-
*/
|
|
78
|
-
export function healthEnvelope(session) {
|
|
79
|
-
const health = session.health();
|
|
80
|
-
// A request stuck in flight makes a session non-nominal even when the tab is fine, because it is
|
|
81
|
-
// the one condition where every observation is about to be about a page that is not moving.
|
|
82
|
-
const nominal = !health.throttled &&
|
|
83
|
-
health.focused &&
|
|
84
|
-
health.recommendation === undefined &&
|
|
85
|
-
health.pendingNavigationMs === undefined &&
|
|
86
|
-
health.versionSkew === undefined;
|
|
87
|
-
if (nominal)
|
|
88
|
-
return {};
|
|
89
|
-
// Skew outranks the throttle warning when both hold: a throttled tab makes a reading unreliable,
|
|
90
|
-
// a skewed link makes the ACTION unreliable, and there is no point warning about the quality of an
|
|
91
|
-
// observation of something that may never have happened.
|
|
92
|
-
if (health.versionSkew !== undefined) {
|
|
93
|
-
return { session: health, warning: `${SKEW_VERDICT_WARNING} ${health.versionSkew}` };
|
|
94
|
-
}
|
|
95
|
-
return health.throttled ? { session: health, warning: THROTTLED_WARNING } : { session: health };
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Opt-in hard stop. When `refuseWhenThrottled` is true and the tab is throttled, throw so the
|
|
99
|
-
* agent does not drive a tab where timers/rAF/pointer gestures may silently no-op. Default is
|
|
100
|
-
* warn-only so background testing never breaks.
|
|
101
|
-
*/
|
|
102
|
-
export function refuseIfThrottled(session, refuse) {
|
|
103
|
-
if (true === refuse && session.throttled()) {
|
|
104
|
-
throw new Error(`refusing to act: ${THROTTLED_WARNING}`);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* The sentence appended to a FAILED predicate verdict waited out on a throttled tab.
|
|
109
|
-
*
|
|
110
|
-
* A starved tab and a missing element read identically as a bare near-miss: after a hard reload a
|
|
111
|
-
* backgrounded tab can sit on its loading state forever (hydration starved, nothing painted), and
|
|
112
|
-
* `wait_for { text }` timing out there looks exactly like "the code did not render" (#521). The
|
|
113
|
-
* health envelope already rode alongside saying `throttled:true`, but nothing connected it to the
|
|
114
|
-
* verdict an agent actually gates on. Appended, not replacing: the original diagnosis still leads,
|
|
115
|
-
* and on a healthy tab the failure says exactly what it always said.
|
|
116
|
-
*/
|
|
117
|
-
const STARVED_WAIT_NOTE = ' (the tab was throttled during this wait, so starvation can look exactly like absence: bring it to the front and re-check before concluding this is genuinely missing)';
|
|
118
|
-
/**
|
|
119
|
-
* Suffix the starvation note onto a FAILED predicate verdict when the tab is throttled. A pass is
|
|
120
|
-
* returned untouched — starvation is context for a failure, not a reason to doubt a hold. Pure and
|
|
121
|
-
* generic over the verdict shape so assert/wait_for/act_and_wait share one rule.
|
|
122
|
-
*
|
|
123
|
-
* The sentence FOLLOWS the field, and does not decide for itself. `annotateThrottledMiss`
|
|
124
|
-
* (predicate.ts) owns the question of whether this failure was reached by not having seen
|
|
125
|
-
* something, which is the only reading a starved tab casts doubt on; it stamps
|
|
126
|
-
* `THROTTLED_STARVED_NOTE` when it was. Deciding again here got two answers to one question:
|
|
127
|
-
* an `absent: true` assertion that MATCHED 13 elements was graded honestly in the field an agent
|
|
128
|
-
* gates on, and told in prose that the tab may never have rendered. It also doubled up on a failure
|
|
129
|
-
* that already carried a more specific reason (an unreadable locator, a superseded window), where
|
|
130
|
-
* the concrete diagnosis is the one that should lead.
|
|
131
|
-
*/
|
|
132
|
-
export function annotateStarvedFailure(session, verdict) {
|
|
133
|
-
if (true === verdict.pass || verdict.failureReason === undefined)
|
|
134
|
-
return verdict;
|
|
135
|
-
if (true !== session.throttled())
|
|
136
|
-
return verdict;
|
|
137
|
-
if (THROTTLED_STARVED_NOTE !== verdict.inconclusive)
|
|
138
|
-
return verdict;
|
|
139
|
-
return { ...verdict, failureReason: `${verdict.failureReason}${STARVED_WAIT_NOTE}` };
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Narrow a PAGE_HEALTH payload. Every field is optional on the wire — an older SDK does not report
|
|
143
|
-
* `runtime` at all — so each is returned as undefined rather than defaulted here, letting the caller
|
|
144
|
-
* keep its previous value instead of silently flipping a session to "visible" on a partial report.
|
|
145
|
-
*/
|
|
146
|
-
export function readHealthEvent(data) {
|
|
147
|
-
return {
|
|
148
|
-
hidden: 'boolean' === typeof data['hidden'] ? data['hidden'] : undefined,
|
|
149
|
-
focused: 'boolean' === typeof data['focused'] ? data['focused'] : undefined,
|
|
150
|
-
runtime: 'string' === typeof data['runtime'] ? data['runtime'] : undefined,
|
|
151
|
-
engine: 'string' === typeof data['engine'] ? data['engine'] : undefined,
|
|
152
|
-
brand: Object.values(BrowserBrand).find((known) => known === data['brand']),
|
|
153
|
-
};
|
|
154
|
-
}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import type { NoSessionReason } from '@reticlehq/core/telemetry';
|
|
2
|
-
import { Session, type SessionInfo } from './session.js';
|
|
3
|
-
import { AttachmentHistory } from './attachment-history.js';
|
|
4
|
-
import type { NoSessionNextAction } from './no-session-next-action.js';
|
|
5
|
-
import { type SessionIdentity } from './session-successor.js';
|
|
6
|
-
/**
|
|
7
|
-
* The agent's active project, used to scope auto-selection. `projectId` is the stable build-stamped
|
|
8
|
-
* identity (authoritative when present); `url` is the app origin, a fallback hint for older SDKs that
|
|
9
|
-
* don't stamp a projectId. Both optional — an empty scope means "no project filter" (legacy behavior).
|
|
10
|
-
*/
|
|
11
|
-
interface ResolveScope {
|
|
12
|
-
projectId?: string;
|
|
13
|
-
url?: string;
|
|
14
|
-
}
|
|
15
|
-
/** The scheme://host:port of a URL, or undefined if it can't be parsed. Used to compare origins. */
|
|
16
|
-
export declare function originOf(url: string | undefined): string | undefined;
|
|
17
|
-
export declare class SessionManager {
|
|
18
|
-
#private;
|
|
19
|
-
/** Set the active project's default resolve scope (called once at daemon wiring). */
|
|
20
|
-
setDefaultScope(scope: ResolveScope | undefined): void;
|
|
21
|
-
setConnectionRecorder(record: ((projectId: string | undefined) => void) | undefined): void;
|
|
22
|
-
add(session: Session): Session | undefined;
|
|
23
|
-
remove(session: Session): boolean;
|
|
24
|
-
get(sessionId: string): Session | undefined;
|
|
25
|
-
list(): SessionInfo[];
|
|
26
|
-
/** Continuity for one session — "has this been attached the whole time I am reasoning about?" */
|
|
27
|
-
attachmentOf(sessionId: string): ReturnType<AttachmentHistory['of']>;
|
|
28
|
-
/** Every connected session — used by the liveness reaper to sweep for idle/disconnected ones. */
|
|
29
|
-
all(): Session[];
|
|
30
|
-
count(): number;
|
|
31
|
-
/** Wire the diagnosis provider (daemon boot). Absent ⇒ the plain, static message. */
|
|
32
|
-
setNoSessionHint(hint: (() => string | undefined) | undefined): void;
|
|
33
|
-
/**
|
|
34
|
-
* The same diagnosis, for a caller that is ASKING about sessions rather than failing to get one.
|
|
35
|
-
*
|
|
36
|
-
* `reticle_sessions` is the first thing an agent reaches for and it returned a bare empty array —
|
|
37
|
-
* confidently, with nothing to act on. An agent cannot tell an empty list apart from a daemon that
|
|
38
|
-
* is down, an app with no SDK, or a tab that was closed, so it stops there. The diagnosis was
|
|
39
|
-
* already computed for the error path; this exposes it to the read path too.
|
|
40
|
-
*/
|
|
41
|
-
noSessionHint(): string | undefined;
|
|
42
|
-
setNoSessionReason(reason: (() => NoSessionReason | undefined) | undefined): void;
|
|
43
|
-
noSessionReason(): NoSessionReason | undefined;
|
|
44
|
-
setNoSessionNextAction(next: (() => NoSessionNextAction | undefined) | undefined): void;
|
|
45
|
-
noSessionNextAction(): NoSessionNextAction | undefined;
|
|
46
|
-
everConnected(): boolean;
|
|
47
|
-
/** Record a bridge-initiated close so `resolve` can explain a session that vanished. */
|
|
48
|
-
noteClosure(reason: string, at: number): void;
|
|
49
|
-
/** The most recent bridge-initiated close, if any. */
|
|
50
|
-
lastClosure(): {
|
|
51
|
-
at: number;
|
|
52
|
-
reason: string;
|
|
53
|
-
} | undefined;
|
|
54
|
-
/**
|
|
55
|
-
* The id of the session that most recently went away, if any.
|
|
56
|
-
*
|
|
57
|
-
* Distinct from {@link lastClosure}, which only records closes the bridge itself initiated
|
|
58
|
-
* (handshake refusals, auth failures) — an ordinary disconnect never reaches it. This reads the
|
|
59
|
-
* tombstone ring `remove()` maintains, so it covers every departure.
|
|
60
|
-
*
|
|
61
|
-
* Read by the no-session diagnosis, which needs to say something about the session that actually
|
|
62
|
-
* vanished rather than about the daemon's lifetime history (#611).
|
|
63
|
-
*/
|
|
64
|
-
lastDeparted(): string | undefined;
|
|
65
|
-
/**
|
|
66
|
-
* The session that most recently disappeared — id, last URL, project — or undefined.
|
|
67
|
-
*
|
|
68
|
-
* `lastDeparted` is the id alone, which is what lease-expiry attribution needs. This is the
|
|
69
|
-
* rest: a route that 500s tears the page down and the SDK never reconnects, and without the
|
|
70
|
-
* URL `reticle_sessions` is an empty list with no history (#808). Tombstones, not live rows:
|
|
71
|
-
* a connected tab is in `list()`, not here.
|
|
72
|
-
*/
|
|
73
|
-
lastKnown(): SessionIdentity | undefined;
|
|
74
|
-
resolve(sessionId?: string, scope?: ResolveScope): Session;
|
|
75
|
-
}
|
|
76
|
-
export {};
|