@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
package/dist/mcp/mcp.d.ts
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
import { type ToolDeps } from '../tools/tools.js';
|
|
4
|
-
import type { ToolDef } from '../tools/tools.js';
|
|
5
|
-
import { type ToolSurface } from '../tools/tool-surface.js';
|
|
6
|
-
/** The JSON-RPC method the SDK registers its tool dispatcher under. */
|
|
7
|
-
export declare const CALL_TOOL_METHOD = "tools/call";
|
|
8
|
-
/**
|
|
9
|
-
* Merge the runtime-spliced envelope (health/lease/age/control) into a session-bound tool's declared
|
|
10
|
-
* outputSchema so structuredContent validation keeps those fields instead of dropping them. The tool's
|
|
11
|
-
* own keys win over the permissive envelope defaults (e.g. ACT keeps its typed `session` shape).
|
|
12
|
-
* Non-session-bound tools (and tools with no outputSchema) are returned unchanged.
|
|
13
|
-
*/
|
|
14
|
-
export declare function withSessionEnvelope(name: string, outputSchema: z.ZodRawShape | undefined): z.ZodRawShape | undefined;
|
|
15
|
-
export declare function firstSentence(description: string): string;
|
|
16
|
-
/**
|
|
17
|
-
* Serialize a tool result to the MCP `text` content block. The agent consumes this text — the
|
|
18
|
-
* typed contract travels separately as `structuredContent`, unchanged by encoding — so the text
|
|
19
|
-
* is compact JSON (no indentation) by default: pretty-printing spends a whitespace token on every
|
|
20
|
-
* field of every line, ~40% overhead on the structured payloads that dominate Reticle's cost, for
|
|
21
|
-
* readability only a human re-reading a raw transcript would notice. Opt into the older indented
|
|
22
|
-
* form with `RETICLE_ENCODING=pretty`; `RETICLE_ENCODING=toon` is the even-denser tabular encoding.
|
|
23
|
-
*/
|
|
24
|
-
export declare function encodeResult(result: unknown, encoding: string): string;
|
|
25
|
-
/**
|
|
26
|
-
* The tools a profile advertises directly.
|
|
27
|
-
*
|
|
28
|
-
* Exported so it can be TESTED. A previous guard re-implemented this decision in the test and was
|
|
29
|
-
* therefore insensitive to it — every profile appeared to reach every tool, so reverting the fix here
|
|
30
|
-
* left the suite green. Exercise the real function or the guard is theatre.
|
|
31
|
-
*
|
|
32
|
-
* Both surfaces keep the meta-tools. On the default that is what makes a trim a trim rather than a
|
|
33
|
-
* hard removal — an unadvertised tool is still reachable through reticle_run; under the old
|
|
34
|
-
* `standard` profile 11 tools were uncallable, including reticle_annotate, which reticle_flow_save's
|
|
35
|
-
* own description tells the agent to call. On ALL they are kept too: `reticle_tools` is not an
|
|
36
|
-
* escape hatch there, it is parameter lookup, and every recovery message this server emits says
|
|
37
|
-
* "Call reticle_tools { names: [...] } for its parameters" — leaving it out made our own advice a
|
|
38
|
-
* dead end on the one surface that advertises everything.
|
|
39
|
-
*/
|
|
40
|
-
export declare function advertisedTools(surface: ToolSurface,
|
|
41
|
-
/**
|
|
42
|
-
* The full table to advertise from. Defaults to what this package ships.
|
|
43
|
-
*
|
|
44
|
-
* A consumer embedding the engine passes its own composition — ours plus its own — so its tools
|
|
45
|
-
* reach the wire without editing the shipped array.
|
|
46
|
-
*/
|
|
47
|
-
tools?: readonly ToolDef[]): ToolDef[];
|
|
48
|
-
/**
|
|
49
|
-
* Exactly what gets advertised for one tool under a profile: trimmed description, lean input shape,
|
|
50
|
-
* and (non-lean only) the output schema.
|
|
51
|
-
*
|
|
52
|
-
* Exported so tests assert on the REAL advertised text rather than on the tool definitions, which
|
|
53
|
-
* are trimmed later and would make a guard that cannot fail — a mistake already made once here, with
|
|
54
|
-
* an abbreviation test that read raw defs and would have passed with the bug fully present.
|
|
55
|
-
*/
|
|
56
|
-
export declare function advertisedConfig(tool: ToolDef, advertised: readonly ToolDef[], profile: ToolSurface): {
|
|
57
|
-
description: string;
|
|
58
|
-
inputSchema: z.ZodRawShape;
|
|
59
|
-
outputSchema?: z.ZodRawShape;
|
|
60
|
-
};
|
|
61
|
-
export declare function installFriendlyArgErrors(server: McpServer, examples: Map<string, string>, allowedKeys?: Map<string, ReadonlySet<string>>): void;
|
|
62
|
-
export declare function createMcpServer(deps: ToolDeps, profile?: ToolSurface,
|
|
63
|
-
/**
|
|
64
|
-
* Has an app ever connected for this project? Decides what the instructions LEAD with.
|
|
65
|
-
*
|
|
66
|
-
* Passed in rather than read here, so construction stays free of disk I/O and the decision is
|
|
67
|
-
* testable without a state directory. Defaulting to `false` is the deliberate safe side: an agent
|
|
68
|
-
* told to instrument a project that is already wired loses a paragraph, while an agent not told
|
|
69
|
-
* loses the entire install — and the second is what the field overwhelmingly shows.
|
|
70
|
-
*/
|
|
71
|
-
previouslyConnected?: boolean,
|
|
72
|
-
/**
|
|
73
|
-
* The full tool table this server serves. Defaults to what this package ships.
|
|
74
|
-
*
|
|
75
|
-
* Threaded rather than read from the module so a consumer can serve its own tools on one surface
|
|
76
|
-
* with ours. It reaches all three places that need the WHOLE table and not just the advertised
|
|
77
|
-
* slice: the profile filter, the `reticle_run` hatch, and the unadvertised-tool help — a consumer
|
|
78
|
-
* tool missing from either of the last two is a tool the agent is actively told does not exist.
|
|
79
|
-
*/
|
|
80
|
-
tools?: readonly ToolDef[]): McpServer;
|
package/dist/mcp/mcp.js
DELETED
|
@@ -1,536 +0,0 @@
|
|
|
1
|
-
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
-
import { z } from 'zod';
|
|
4
|
-
import { isPredicateParam } from '../events/predicate-eval.js';
|
|
5
|
-
import { isToonable, resultToToon, MCP_SERVER_NAME } from '@reticlehq/core';
|
|
6
|
-
import { TOOLS } from '../tools/tools.js';
|
|
7
|
-
import { filterTools, describeToolSurface, TOOL_SURFACE, } from '../tools/tool-surface.js';
|
|
8
|
-
import { ReticleTool } from '../tools/tool-names.js';
|
|
9
|
-
import { SHARED_PARAM_SHORT } from './shared-params.js';
|
|
10
|
-
import { buildDynamicTools } from '../tools/dynamic-tools.js';
|
|
11
|
-
import { runTool, SESSION_BOUND_TOOLS } from '../tools/invoke-tool.js';
|
|
12
|
-
import { sessionEnvelopeShape } from '../tools/tool-kit.js';
|
|
13
|
-
import { buildErrorPayload } from '../tools/error-recovery.js';
|
|
14
|
-
import { takeVersionSkewOnto } from '../version/version-nudge.js';
|
|
15
|
-
import { resultIsError } from './mcp-is-error.js';
|
|
16
|
-
import { buildServerInstructions } from './server-instructions.js';
|
|
17
|
-
import { unadvertisedToolHelp } from '../tools/unadvertised-help.js';
|
|
18
|
-
/** The JSON-RPC method the SDK registers its tool dispatcher under. */
|
|
19
|
-
export const CALL_TOOL_METHOD = 'tools/call';
|
|
20
|
-
/**
|
|
21
|
-
* What we say when an SDK internal these patches ride on is no longer there.
|
|
22
|
-
*
|
|
23
|
-
* LOG rather than THROW, deliberately. Both patches improve an ERROR MESSAGE; neither is load
|
|
24
|
-
* bearing for a single tool call, and a throw here runs at server construction, so a renamed
|
|
25
|
-
* internal in a minor SDK bump would take the whole MCP server down for every user rather than
|
|
26
|
-
* degrade one message. That trade is backwards. The place a shape change must fail is the gate —
|
|
27
|
-
* `sdk-private-shape.test.ts` asserts both shapes and reddens CI on the bump — and this line is the
|
|
28
|
-
* backstop for the one case the gate cannot see: a user whose installed SDK is not the one CI
|
|
29
|
-
* resolved. The old behaviour, a bare `return`, gave neither.
|
|
30
|
-
*/
|
|
31
|
-
const SDK_SHAPE_MISSING = 'sdk_internal_missing';
|
|
32
|
-
import { log } from '../log.js';
|
|
33
|
-
import { SERVER_VERSION } from '../version/server-version.js';
|
|
34
|
-
import { setMcpClientNameHook } from '../telemetry/feedback-context.js';
|
|
35
|
-
import { getSessionMetrics } from '../telemetry/session-metrics.js';
|
|
36
|
-
import { parsePredicate } from '../events/predicate-parse.js';
|
|
37
|
-
/**
|
|
38
|
-
* Merge the runtime-spliced envelope (health/lease/age/control) into a session-bound tool's declared
|
|
39
|
-
* outputSchema so structuredContent validation keeps those fields instead of dropping them. The tool's
|
|
40
|
-
* own keys win over the permissive envelope defaults (e.g. ACT keeps its typed `session` shape).
|
|
41
|
-
* Non-session-bound tools (and tools with no outputSchema) are returned unchanged.
|
|
42
|
-
*/
|
|
43
|
-
export function withSessionEnvelope(name, outputSchema) {
|
|
44
|
-
if (outputSchema === undefined || !SESSION_BOUND_TOOLS.has(name))
|
|
45
|
-
return outputSchema;
|
|
46
|
-
return { ...sessionEnvelopeShape, ...outputSchema };
|
|
47
|
-
}
|
|
48
|
-
const SERVER_INFO = { name: MCP_SERVER_NAME, version: SERVER_VERSION };
|
|
49
|
-
/** First sentence of a description (purpose only) for lean profiles — keeps per-turn def cost
|
|
50
|
-
* down. Cuts at the first sentence-ending period or newline; falls back to a 160-char cap. The
|
|
51
|
-
* first clause retains the essentials (enum hints like "role | text | label" live there). */
|
|
52
|
-
/**
|
|
53
|
-
* Append the tool's example call to whatever description survived trimming.
|
|
54
|
-
*
|
|
55
|
-
* Costs a handful of tokens per turn and buys back the failed round trips an agent spends guessing
|
|
56
|
-
* how the fields compose — which is a far worse trade in the other direction.
|
|
57
|
-
*/
|
|
58
|
-
function withExample(description, example) {
|
|
59
|
-
return example === undefined ? description : `${description} e.g. ${JSON.stringify(example)}`;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Abbreviations whose internal period is NOT a sentence end.
|
|
63
|
-
*
|
|
64
|
-
* The splitter looked for the first `". "`, which "e.g. " satisfies — so every lean-profile
|
|
65
|
-
* description containing one was cut off mid-abbreviation. `reticle_act`'s ref parameter reached the
|
|
66
|
-
* agent as "Element ref from reticle_snapshot or reticle_query (e.g." and stopped: the example gone,
|
|
67
|
-
* and any contract stated after it gone too. Silent, and it degraded the DEFAULT profile only, which
|
|
68
|
-
* is the one nobody reads the raw strings for.
|
|
69
|
-
*/
|
|
70
|
-
const ABBREVIATIONS = ['e.g.', 'i.e.', 'etc.', 'vs.', 'cf.'];
|
|
71
|
-
export function firstSentence(description) {
|
|
72
|
-
const nl = description.indexOf('\n');
|
|
73
|
-
const base = nl >= 0 ? description.slice(0, nl) : description;
|
|
74
|
-
// Mask abbreviations with an equal-length filler so offsets stay valid in the original string.
|
|
75
|
-
const masked = ABBREVIATIONS.reduce((text, abbr) => text.split(abbr).join('\u0000'.repeat(abbr.length)), base);
|
|
76
|
-
const dot = masked.search(/\.\s/);
|
|
77
|
-
const sentence = dot >= 0 ? base.slice(0, dot + 1) : base;
|
|
78
|
-
return sentence.length > 160 ? `${sentence.slice(0, 159)}…` : sentence;
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Parameters carrying the recursive predicate grammar. Advertised compactly in lean profiles.
|
|
82
|
-
*
|
|
83
|
-
* `PredicateSchema` is a 12-variant discriminated union whose `allOf`/`anyOf`/`not` members embed the
|
|
84
|
-
* union again. Zod's JSON-Schema emitter inlines that recursion rather than emitting one `$ref`, so a
|
|
85
|
-
* single tool ships the word "kind" 48 times and `reticle_wait_for` alone costs 6,571 characters.
|
|
86
|
-
* Across the three tools that take a predicate that is 72% of the entire advertised input schema — a
|
|
87
|
-
* cost re-sent on every request, forever, to describe a grammar most calls use one variant of.
|
|
88
|
-
*/
|
|
89
|
-
/**
|
|
90
|
-
* What a lean profile advertises in place of the full predicate union.
|
|
91
|
-
*
|
|
92
|
-
* Safe to loosen because it is NOT the validation boundary: every handler taking a predicate calls
|
|
93
|
-
* `PredicateSchema.parse()` itself (observe-tools.ts:203, :279, act-tools.ts:442), so a malformed
|
|
94
|
-
* predicate still fails strictly and structurally — the agent gets a zod error naming the bad field
|
|
95
|
-
* rather than a silently accepted one. What changes is only how many bytes we spend describing the
|
|
96
|
-
* grammar up front versus letting the agent fetch it from `reticle_tools` when it needs a variant it
|
|
97
|
-
* has not used before.
|
|
98
|
-
*/
|
|
99
|
-
/**
|
|
100
|
-
* The kind list — the part an agent needs to WRITE a predicate. Carried on every predicate parameter.
|
|
101
|
-
*
|
|
102
|
-
* An earlier version put this on one tool and pointed the other five at it ("same grammar as
|
|
103
|
-
* reticle_act_and_wait's"), which saved 790 B/turn. It was the wrong trade: it made writing a
|
|
104
|
-
* predicate require joining two tool descriptions, and accuracy is worth more here than the bytes.
|
|
105
|
-
* Only the "where to get field details" sentence is stated once now — that one IS a pointer, so
|
|
106
|
-
* making it a pointer costs nothing.
|
|
107
|
-
*/
|
|
108
|
-
const PREDICATE_KINDS = 'Predicate object: { kind, ...fields }. kind is one of element | text | net | route | console | ' +
|
|
109
|
-
'animation | signal | state | settled | allOf | anyOf | not.';
|
|
110
|
-
/**
|
|
111
|
-
* Said once per turn: the bug-catching options, and where to get the rest of the field grammar.
|
|
112
|
-
*
|
|
113
|
-
* `net.count`, `console.absent` and `absent` are the three predicate options that catch a class of
|
|
114
|
-
* bug rather than confirm an expectation — a double-submit, an action that "worked" while logging a
|
|
115
|
-
* caught error, something that should have disappeared and did not. They sat behind a
|
|
116
|
-
* `reticle_tools` round trip, so an agent only found them if it already knew to look, which is the
|
|
117
|
-
* wrong way round for the checks most likely to catch what nobody suspected.
|
|
118
|
-
*
|
|
119
|
-
* Anchored to one tool rather than repeated on all six: these are ADDITIONAL capability, not what
|
|
120
|
-
* makes a basic predicate correct, so one mention per turn is enough to make them reachable without
|
|
121
|
-
* paying for six.
|
|
122
|
-
*/
|
|
123
|
-
const PREDICATE_FIELD_GRAMMAR_HINT = ' Bug-catching options: net.count (exact request count — catches double-submit), ' +
|
|
124
|
-
'net.bodyContains (a substring of what the SERVER answered — catches a UI that echoes the input ' +
|
|
125
|
-
'it sent instead of the result it got back), net.requestBodyMatches (a shallow JSON match on what ' +
|
|
126
|
-
'the UI SENT — the verdict for "applying this filter actually puts it in the payload"), ' +
|
|
127
|
-
'console.absent:true (action completed with a CLEAN ' +
|
|
128
|
-
'console), absent:true on element/text (it should be gone). Call reticle_tools for the full field ' +
|
|
129
|
-
'grammar of a kind.';
|
|
130
|
-
const COMPACT_PREDICATE_DESCRIPTION = `${PREDICATE_KINDS}${PREDICATE_FIELD_GRAMMAR_HINT}`;
|
|
131
|
-
/**
|
|
132
|
-
* Lean copy of a tool's zod input shape for lean profiles: each parameter's description is
|
|
133
|
-
* truncated to its first sentence via zod's own `.describe` (which returns a new schema, so the
|
|
134
|
-
* shared shape is never mutated). The per-parameter prose is the bulk of the re-sent-every-turn
|
|
135
|
-
* schema cost; the first clause keeps each param's purpose and any enum hints. Params without a
|
|
136
|
-
* description pass through unchanged. Predicate params are replaced wholesale — see above.
|
|
137
|
-
*/
|
|
138
|
-
function leanZodShape(shape, predicateAnchor) {
|
|
139
|
-
const out = {};
|
|
140
|
-
// The navigation hint is said ONCE per turn, so it is anchored to one parameter — not one tool.
|
|
141
|
-
// A tool can carry two predicate parameters (a canonical name plus a neighbouring tool's alias),
|
|
142
|
-
// and anchoring per-tool spelled the hint out on both.
|
|
143
|
-
let hintSpent = predicateAnchor !== undefined;
|
|
144
|
-
for (const [key, schema] of Object.entries(shape)) {
|
|
145
|
-
if (isPredicateParam(schema)) {
|
|
146
|
-
// Every tool keeps the kinds; only the navigation hint is anchored.
|
|
147
|
-
const compact = z
|
|
148
|
-
.record(z.unknown())
|
|
149
|
-
.describe(hintSpent ? PREDICATE_KINDS : COMPACT_PREDICATE_DESCRIPTION);
|
|
150
|
-
hintSpent = true;
|
|
151
|
-
out[key] = schema.isOptional() ? compact.optional() : compact;
|
|
152
|
-
continue;
|
|
153
|
-
}
|
|
154
|
-
// Shared boilerplate is documented once in the initialize instructions instead of on every
|
|
155
|
-
// tool, every turn. `sessionId` alone was 2,076 bytes of identical text across 16 tools.
|
|
156
|
-
const shared = SHARED_PARAM_SHORT[key];
|
|
157
|
-
if (shared !== undefined) {
|
|
158
|
-
// `.describe` returns the same schema with new prose, so optionality carries over. Re-wrapping
|
|
159
|
-
// in `.optional()` would nest one inside another and change the parameter's TYPE, which is a
|
|
160
|
-
// thing this lean path is meant to do for predicates and nothing else.
|
|
161
|
-
out[key] = schema.describe(shared);
|
|
162
|
-
continue;
|
|
163
|
-
}
|
|
164
|
-
const desc = schema.description;
|
|
165
|
-
out[key] = 'string' === typeof desc ? schema.describe(firstSentence(desc)) : schema;
|
|
166
|
-
}
|
|
167
|
-
return out;
|
|
168
|
-
}
|
|
169
|
-
const ENCODING_ENV = 'RETICLE_ENCODING';
|
|
170
|
-
const TOON_VALUE = 'toon';
|
|
171
|
-
const PRETTY_VALUE = 'pretty';
|
|
172
|
-
/**
|
|
173
|
-
* Serialize a tool result to the MCP `text` content block. The agent consumes this text — the
|
|
174
|
-
* typed contract travels separately as `structuredContent`, unchanged by encoding — so the text
|
|
175
|
-
* is compact JSON (no indentation) by default: pretty-printing spends a whitespace token on every
|
|
176
|
-
* field of every line, ~40% overhead on the structured payloads that dominate Reticle's cost, for
|
|
177
|
-
* readability only a human re-reading a raw transcript would notice. Opt into the older indented
|
|
178
|
-
* form with `RETICLE_ENCODING=pretty`; `RETICLE_ENCODING=toon` is the even-denser tabular encoding.
|
|
179
|
-
*/
|
|
180
|
-
export function encodeResult(result, encoding) {
|
|
181
|
-
if (encoding === TOON_VALUE && isToonable(result)) {
|
|
182
|
-
return resultToToon(result);
|
|
183
|
-
}
|
|
184
|
-
return encoding === PRETTY_VALUE ? JSON.stringify(result, null, 2) : JSON.stringify(result);
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* The tools a profile advertises directly.
|
|
188
|
-
*
|
|
189
|
-
* Exported so it can be TESTED. A previous guard re-implemented this decision in the test and was
|
|
190
|
-
* therefore insensitive to it — every profile appeared to reach every tool, so reverting the fix here
|
|
191
|
-
* left the suite green. Exercise the real function or the guard is theatre.
|
|
192
|
-
*
|
|
193
|
-
* Both surfaces keep the meta-tools. On the default that is what makes a trim a trim rather than a
|
|
194
|
-
* hard removal — an unadvertised tool is still reachable through reticle_run; under the old
|
|
195
|
-
* `standard` profile 11 tools were uncallable, including reticle_annotate, which reticle_flow_save's
|
|
196
|
-
* own description tells the agent to call. On ALL they are kept too: `reticle_tools` is not an
|
|
197
|
-
* escape hatch there, it is parameter lookup, and every recovery message this server emits says
|
|
198
|
-
* "Call reticle_tools { names: [...] } for its parameters" — leaving it out made our own advice a
|
|
199
|
-
* dead end on the one surface that advertises everything.
|
|
200
|
-
*/
|
|
201
|
-
export function advertisedTools(surface,
|
|
202
|
-
/**
|
|
203
|
-
* The full table to advertise from. Defaults to what this package ships.
|
|
204
|
-
*
|
|
205
|
-
* A consumer embedding the engine passes its own composition — ours plus its own — so its tools
|
|
206
|
-
* reach the wire without editing the shipped array.
|
|
207
|
-
*/
|
|
208
|
-
tools = TOOLS) {
|
|
209
|
-
// The catalog reports which surface is live and what chose it — the only way an agent can see that
|
|
210
|
-
// a setting did not take (the daemon read the value it started with).
|
|
211
|
-
const origin = describeToolSurface(surface);
|
|
212
|
-
// The profile trims OUR table only. A tool this package does not ship was appended deliberately by
|
|
213
|
-
// whoever is embedding us, and our `CORE_TOOL_NAMES` was never going to contain its name — so
|
|
214
|
-
// filtering it would drop every consumer tool and look exactly like the feature not working.
|
|
215
|
-
const shipped = new Set(TOOLS.map((tool) => tool.name));
|
|
216
|
-
const ours = tools.filter((tool) => shipped.has(tool.name));
|
|
217
|
-
const theirs = tools.filter((tool) => !shipped.has(tool.name));
|
|
218
|
-
return [...filterTools([...ours], surface), ...theirs, ...buildDynamicTools([...tools], origin)];
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Exactly what gets advertised for one tool under a profile: trimmed description, lean input shape,
|
|
222
|
-
* and (non-lean only) the output schema.
|
|
223
|
-
*
|
|
224
|
-
* Exported so tests assert on the REAL advertised text rather than on the tool definitions, which
|
|
225
|
-
* are trimmed later and would make a guard that cannot fail — a mistake already made once here, with
|
|
226
|
-
* an abbreviation test that read raw defs and would have passed with the bug fully present.
|
|
227
|
-
*/
|
|
228
|
-
export function advertisedConfig(tool, advertised, profile) {
|
|
229
|
-
// Hybrid is the terse one. NOT `profile !== FULL`, which reads equivalent and is not: it also
|
|
230
|
-
// trims `dynamic`, whose two meta-tools are the ONLY thing that profile advertises — so the
|
|
231
|
-
// instructions for using them (`names:[…]` loads full params on demand) would be cut to a first
|
|
232
|
-
// sentence and the agent would have nothing left to learn the surface from. Measured when it
|
|
233
|
-
// happened: dynamic's tools/list fell 1,543 -> 849 bytes, which looks like a saving and is a
|
|
234
|
-
// capability loss.
|
|
235
|
-
//
|
|
236
|
-
// The two meta-tools are exempt, on every surface. Their descriptions are not a description OF a
|
|
237
|
-
// capability, they ARE the capability: the only place an agent is ever told that the tools it can
|
|
238
|
-
// see are not all the tools there are, and how to reach the rest. Trimmed to a first sentence,
|
|
239
|
-
// `reticle_tools` advertises as "Discover Reticle tools on demand." — which names no way to list
|
|
240
|
-
// anything, so a well-behaved agent has no reason to call it and the entire cold tail goes dark.
|
|
241
|
-
// The comment above already caught this for the retired `dynamic` profile; `default` is now both
|
|
242
|
-
// the lean surface and the one carrying the meta-tools, so the exemption follows it.
|
|
243
|
-
const isMetaTool = tool.name === ReticleTool.TOOLS || tool.name === ReticleTool.RUN;
|
|
244
|
-
// `verify` is lean for the same reason `default` is, and more so: it exists to make a verdict
|
|
245
|
-
// cheap, and it was serving FULL descriptions plus outputSchema because the check named only the
|
|
246
|
-
// default. That put 8,207 bytes on the wire for three tools.
|
|
247
|
-
// `lean` here is the ADJECTIVE (terse descriptions, no output schemas), which every trimmed surface
|
|
248
|
-
// wants — including TOOL_SURFACE.LEAN, the profile that borrows the word. A trimmed surface serving
|
|
249
|
-
// full prose plus output schemas is the exact defect that put 8,207 bytes on `verify`'s three tools.
|
|
250
|
-
const lean = profile === TOOL_SURFACE.DEFAULT ||
|
|
251
|
-
profile === TOOL_SURFACE.VERIFY ||
|
|
252
|
-
profile === TOOL_SURFACE.LEAN;
|
|
253
|
-
const terse = lean && !isMetaTool;
|
|
254
|
-
// The first advertised tool carrying a predicate spells the grammar out; the rest point at it.
|
|
255
|
-
const anchor = advertised.find((t) => Object.values(t.inputSchema).some((schema) => isPredicateParam(schema)))?.name;
|
|
256
|
-
// Output schemas are dropped on every lean surface, meta-tools included: they are the single
|
|
257
|
-
// largest component and nothing on a lean surface validates against them.
|
|
258
|
-
const outputSchema = lean ? undefined : withSessionEnvelope(tool.name, tool.outputSchema);
|
|
259
|
-
return {
|
|
260
|
-
description: withExample(terse ? firstSentence(tool.description) : tool.description, tool.example),
|
|
261
|
-
inputSchema: terse
|
|
262
|
-
? leanZodShape(tool.inputSchema, tool.name === anchor ? undefined : anchor)
|
|
263
|
-
: tool.inputSchema,
|
|
264
|
-
...(outputSchema !== undefined ? { outputSchema } : {}),
|
|
265
|
-
};
|
|
266
|
-
}
|
|
267
|
-
/** Argument keys the tool never declared. Empty when the tool's shape is unknown to us. */
|
|
268
|
-
function unknownKeys(args, allowed) {
|
|
269
|
-
if (allowed === undefined || typeof args !== 'object' || null === args)
|
|
270
|
-
return [];
|
|
271
|
-
return Object.keys(args).filter((key) => !allowed.has(key));
|
|
272
|
-
}
|
|
273
|
-
export function installFriendlyArgErrors(server, examples, allowedKeys = new Map()) {
|
|
274
|
-
const target = server;
|
|
275
|
-
const original = target.validateToolInput;
|
|
276
|
-
if (typeof original !== 'function') {
|
|
277
|
-
log(SDK_SHAPE_MISSING, { internal: 'validateToolInput', lost: 'friendly argument errors' });
|
|
278
|
-
return;
|
|
279
|
-
}
|
|
280
|
-
target.validateToolInput = async (tool, args, toolName) => {
|
|
281
|
-
// An UNKNOWN key is the failure zod cannot catch, because object schemas are non-strict: the key
|
|
282
|
-
// is silently dropped and the tool answers as if it had not been asked. Measured live —
|
|
283
|
-
// `reticle_clock { action: "freeze" }` returned `{"frozen":false}`, which reads as a fact about
|
|
284
|
-
// the app ("the clock is not frozen") when it means "you named the parameter wrong". That is a
|
|
285
|
-
// false NEGATIVE the caller cannot detect from the reply, in every tool at once.
|
|
286
|
-
const unknown = unknownKeys(args, allowedKeys.get(toolName));
|
|
287
|
-
if (unknown.length > 0) {
|
|
288
|
-
const example = examples.get(toolName);
|
|
289
|
-
// What the tool DOES declare, in the same breath as what it does not. Naming only the bad key
|
|
290
|
-
// leaves the caller guessing again, and the next guess costs another round trip — which is the
|
|
291
|
-
// whole shape of the failure being fixed here. The list is already in hand, and for a tool
|
|
292
|
-
// with no example (the meta-tools) it is the only thing standing between a typo and a retry.
|
|
293
|
-
const declared = [...(allowedKeys.get(toolName) ?? [])].join(', ');
|
|
294
|
-
throw new McpError(ErrorCode.InvalidParams, `Unknown ${1 === unknown.length ? 'parameter' : 'parameters'} for ${toolName}: ${unknown.join(', ')}. ` +
|
|
295
|
-
`They were NOT applied — a result computed without them would look like an answer. ` +
|
|
296
|
-
(0 === declared.length ? '' : `${toolName} declares: ${declared}. `) +
|
|
297
|
-
(example === undefined
|
|
298
|
-
? `Call reticle_tools { names: ["${toolName}"] } for its parameters.`
|
|
299
|
-
: `A valid call looks like: ${toolName} ${example}`));
|
|
300
|
-
}
|
|
301
|
-
try {
|
|
302
|
-
return await original.call(server, tool, args, toolName);
|
|
303
|
-
}
|
|
304
|
-
catch (error) {
|
|
305
|
-
// McpError.message already carries "MCP error -32602: "; re-wrapping would print it twice.
|
|
306
|
-
const raw = error instanceof Error ? error.message : String(error);
|
|
307
|
-
const detail = raw.replace(/^MCP error -?\d+:\s*/, '');
|
|
308
|
-
// A malformed PREDICATE gets the sentence, not the array. The SDK validates tool input against
|
|
309
|
-
// the same zod schema and throws a serialized issue list — so the readable message
|
|
310
|
-
// `parsePredicate` exists to produce was being generated only on paths that never run over
|
|
311
|
-
// MCP, which is every path a real agent uses. Found by driving a live app: `reticle_assert`
|
|
312
|
-
// answered a near-miss predicate with a raw zod array naming the unknown keys and not one
|
|
313
|
-
// field that would have worked. It already carries its own guidance, so the generic example is
|
|
314
|
-
// dropped rather than argued with.
|
|
315
|
-
const predicateHelp = predicateMessage(args);
|
|
316
|
-
if (predicateHelp !== undefined) {
|
|
317
|
-
throw new McpError(ErrorCode.InvalidParams, predicateHelp);
|
|
318
|
-
}
|
|
319
|
-
const example = examples.get(toolName);
|
|
320
|
-
const help = example === undefined
|
|
321
|
-
? ` Call reticle_tools { names: ["${toolName}"] } for its parameters.`
|
|
322
|
-
: ` A valid call looks like: ${toolName} ${example}`;
|
|
323
|
-
throw new McpError(ErrorCode.InvalidParams, `${detail}${help}`);
|
|
324
|
-
}
|
|
325
|
-
};
|
|
326
|
-
}
|
|
327
|
-
/**
|
|
328
|
-
* The readable reason a predicate argument did not parse, or undefined when the predicate is fine.
|
|
329
|
-
*
|
|
330
|
-
* Undefined matters as much as the message: a call can fail validation for a reason that has nothing
|
|
331
|
-
* to do with the predicate (a bad `timeout_ms`, a missing `ref`), and replacing that error with a
|
|
332
|
-
* predicate explanation would be confidently wrong. Re-parsing is the honest test — if it parses,
|
|
333
|
-
* the predicate is not what broke.
|
|
334
|
-
*/
|
|
335
|
-
function predicateMessage(args) {
|
|
336
|
-
if (typeof args !== 'object' || null === args)
|
|
337
|
-
return undefined;
|
|
338
|
-
const record = args;
|
|
339
|
-
const predicate = record['predicate'] ?? record['until'];
|
|
340
|
-
if (predicate === undefined)
|
|
341
|
-
return undefined;
|
|
342
|
-
try {
|
|
343
|
-
parsePredicate(predicate);
|
|
344
|
-
return undefined;
|
|
345
|
-
}
|
|
346
|
-
catch (error) {
|
|
347
|
-
return error instanceof Error ? error.message : undefined;
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
/**
|
|
351
|
-
* Answer a call for a real-but-un-advertised tool with the way to make it work.
|
|
352
|
-
*
|
|
353
|
-
* Wraps the SDK's own `tools/call` handler rather than registering the missing tools: registering
|
|
354
|
-
* them would put their schemas back into `tools/list`, which is the exact cost the trim exists to
|
|
355
|
-
* avoid. Delegates untouched for every other name, so an advertised tool's errors stay the SDK's.
|
|
356
|
-
*/
|
|
357
|
-
function installUnadvertisedToolHelp(server, advertised, known) {
|
|
358
|
-
const inner = server.server;
|
|
359
|
-
const handlers = inner._requestHandlers;
|
|
360
|
-
const original = handlers?.get(CALL_TOOL_METHOD);
|
|
361
|
-
if (handlers === undefined || original === undefined) {
|
|
362
|
-
log(SDK_SHAPE_MISSING, {
|
|
363
|
-
internal: handlers === undefined ? '_requestHandlers' : CALL_TOOL_METHOD,
|
|
364
|
-
lost: 'unadvertised-tool help',
|
|
365
|
-
});
|
|
366
|
-
return;
|
|
367
|
-
}
|
|
368
|
-
handlers.set(CALL_TOOL_METHOD, async (request, extra) => {
|
|
369
|
-
const name = toolNameOf(request);
|
|
370
|
-
const help = name === undefined ? undefined : unadvertisedToolHelp(name, advertised, known);
|
|
371
|
-
if (help !== undefined)
|
|
372
|
-
throw new McpError(ErrorCode.InvalidParams, help);
|
|
373
|
-
return original(request, extra);
|
|
374
|
-
});
|
|
375
|
-
}
|
|
376
|
-
/** The requested tool name, when the request has the shape we expect. */
|
|
377
|
-
function toolNameOf(request) {
|
|
378
|
-
if (typeof request !== 'object' || null === request)
|
|
379
|
-
return undefined;
|
|
380
|
-
const params = request.params;
|
|
381
|
-
if (typeof params !== 'object' || null === params)
|
|
382
|
-
return undefined;
|
|
383
|
-
const name = params.name;
|
|
384
|
-
return 'string' === typeof name ? name : undefined;
|
|
385
|
-
}
|
|
386
|
-
export function createMcpServer(deps, profile = TOOL_SURFACE.DEFAULT,
|
|
387
|
-
/**
|
|
388
|
-
* Has an app ever connected for this project? Decides what the instructions LEAD with.
|
|
389
|
-
*
|
|
390
|
-
* Passed in rather than read here, so construction stays free of disk I/O and the decision is
|
|
391
|
-
* testable without a state directory. Defaulting to `false` is the deliberate safe side: an agent
|
|
392
|
-
* told to instrument a project that is already wired loses a paragraph, while an agent not told
|
|
393
|
-
* loses the entire install — and the second is what the field overwhelmingly shows.
|
|
394
|
-
*/
|
|
395
|
-
previouslyConnected = false,
|
|
396
|
-
/**
|
|
397
|
-
* The full tool table this server serves. Defaults to what this package ships.
|
|
398
|
-
*
|
|
399
|
-
* Threaded rather than read from the module so a consumer can serve its own tools on one surface
|
|
400
|
-
* with ours. It reaches all three places that need the WHOLE table and not just the advertised
|
|
401
|
-
* slice: the profile filter, the `reticle_run` hatch, and the unadvertised-tool help — a consumer
|
|
402
|
-
* tool missing from either of the last two is a tool the agent is actively told does not exist.
|
|
403
|
-
*/
|
|
404
|
-
tools = TOOLS) {
|
|
405
|
-
const encoding = (process.env[ENCODING_ENV] ?? '').toLowerCase();
|
|
406
|
-
// Which surface this daemon advertises. The 18-tool default and the 48-tool full surface are
|
|
407
|
-
// different products from inside an agent's context, so outcomes are only comparable when the
|
|
408
|
-
// session says which one it saw.
|
|
409
|
-
getSessionMetrics().recordSurface(profile);
|
|
410
|
-
const server = new McpServer(SERVER_INFO, {
|
|
411
|
-
instructions: buildServerInstructions({ previouslyConnected }),
|
|
412
|
-
});
|
|
413
|
-
/**
|
|
414
|
-
* Record WHICH agent attached, at the handshake, for every session.
|
|
415
|
-
*
|
|
416
|
-
* `clients` and `clientVersions` were populated for almost nobody, and the reason was not that
|
|
417
|
-
* clients withhold `clientInfo` — they send it, and we read it. It was that the ONLY thing that
|
|
418
|
-
* ever called `recordClient` was the feedback hook below, which runs when a report is being built.
|
|
419
|
-
* So the field was really measuring "sessions that filed feedback", and a product whose users are
|
|
420
|
-
* agents could not say which agent, on which build, any of its numbers came from.
|
|
421
|
-
*
|
|
422
|
-
* `oninitialized` is the moment `clientInfo` first exists — reading it at construction time gets
|
|
423
|
-
* `undefined`, which is what made a lazy hook look like the only option.
|
|
424
|
-
*/
|
|
425
|
-
server.server.oninitialized = () => {
|
|
426
|
-
const info = server.server.getClientVersion();
|
|
427
|
-
if (info?.name !== undefined)
|
|
428
|
-
getSessionMetrics().recordClient(info.name, info.version);
|
|
429
|
-
};
|
|
430
|
-
// Which agent is on the other end, for a feedback report. Registered as a lazy hook rather than
|
|
431
|
-
// read here: the handshake has not happened yet at construction time, and a report filed twenty
|
|
432
|
-
// tool calls later is exactly when we want the answer.
|
|
433
|
-
setMcpClientNameHook(() => {
|
|
434
|
-
const info = server.server.getClientVersion();
|
|
435
|
-
// Still records, because a client that skipped the handshake path above (a replayed initialize
|
|
436
|
-
// through the proxy, a transport that reconnects) is a client we would otherwise lose entirely.
|
|
437
|
-
// `recordClient` is idempotent per name.
|
|
438
|
-
if (info?.name !== undefined)
|
|
439
|
-
getSessionMetrics().recordClient(info.name, info.version);
|
|
440
|
-
return info === undefined ? undefined : { name: info.name, version: info.version };
|
|
441
|
-
});
|
|
442
|
-
// Cast once to our bridge type so every per-tool call site is typed without `any`.
|
|
443
|
-
const registerTool = server.registerTool.bind(server);
|
|
444
|
-
// `dynamic` advertises only the 2 meta-tools (reticle_tools + reticle_run); real tools load on demand.
|
|
445
|
-
// core/standard advertise the filtered set with terse descriptions (first sentence + trimmed
|
|
446
|
-
// param prose) — the full prose is re-sent every turn, and the first clause carries the purpose.
|
|
447
|
-
// Every TRIMMED profile keeps the meta-tools, so a tool that is not advertised is still reachable
|
|
448
|
-
// through reticle_run. Without them a trim is not a trim, it is a hard removal: under `standard`,
|
|
449
|
-
// 11 tools were unreachable with no escape hatch — including reticle_annotate, which
|
|
450
|
-
// reticle_flow_save's own description instructs the agent to call. `full` advertises everything
|
|
451
|
-
// directly and needs no hatch.
|
|
452
|
-
const advertised = advertisedTools(profile, tools);
|
|
453
|
-
installFriendlyArgErrors(server, new Map(advertised
|
|
454
|
-
.filter((tool) => tool.example !== undefined)
|
|
455
|
-
.map((tool) => [tool.name, JSON.stringify(tool.example)])),
|
|
456
|
-
// Every tool in the table, not just the advertised ones: reticle_run dispatches to the full
|
|
457
|
-
// table, so an unadvertised tool reached through the hatch must be just as strict.
|
|
458
|
-
//
|
|
459
|
-
// ...and the advertised list on top of it, because the two META-tools are not in the table — they
|
|
460
|
-
// are composed onto the surface — so they had no entry, and no entry means no declared keys means
|
|
461
|
-
// every key allowed. `reticle_tools` took a misnamed argument, dropped it, and answered with the
|
|
462
|
-
// whole catalogue: a well-formed answer to a question nobody asked, on the one tool whose entire
|
|
463
|
-
// job is telling an agent what the surface is.
|
|
464
|
-
new Map([...tools, ...advertised].map((tool) => [
|
|
465
|
-
tool.name,
|
|
466
|
-
new Set(Object.keys(tool.inputSchema)),
|
|
467
|
-
])));
|
|
468
|
-
for (const tool of advertised) {
|
|
469
|
-
// Output schemas are now the largest slice of the per-request tax (55.6% of the hybrid payload
|
|
470
|
-
// after the predicate fix) and we are the only one of the three MCP servers that sends them.
|
|
471
|
-
//
|
|
472
|
-
// Trimming their prose was tried and MEASURED ZERO: the field descriptions were already written
|
|
473
|
-
// as single sentences, so first-sentence truncation had nothing to remove. Recorded here so the
|
|
474
|
-
// next person does not spend the same hour. The remaining cost is structural — the shapes
|
|
475
|
-
// themselves — and dropping them is NOT the answer: the type contract is what makes
|
|
476
|
-
// `structuredContent` verifiable, and it has already caught a real defect (a broad reticle_query
|
|
477
|
-
// failing output validation outright instead of returning a degraded result).
|
|
478
|
-
//
|
|
479
|
-
// Lean profiles therefore DROP the advertised outputSchema entirely, and that is safe — verified
|
|
480
|
-
// against the SDK, not assumed. A tool registered with NO outputSchema still returns its
|
|
481
|
-
// `structuredContent` unchanged (the SDK does not require a declared schema to carry it), so a
|
|
482
|
-
// client that wants the typed object still gets it; only client-side VALIDATION of that object is
|
|
483
|
-
// lost, which the MCP spec makes optional and which the agent, reading the text block, never did.
|
|
484
|
-
// If anything the object is MORE complete without a schema — with one, the SDK drops fields the
|
|
485
|
-
// schema does not list, which is the very reason the session envelope had to be spliced in. The
|
|
486
|
-
// handler below is unchanged, so `full`/`dynamic` (non-terse) keep the schema for validating
|
|
487
|
-
// clients. This removes the single largest remaining slice of the per-request tax (~36% of the
|
|
488
|
-
// hybrid payload) with no loss the agent can observe.
|
|
489
|
-
const config = advertisedConfig(tool, advertised, profile);
|
|
490
|
-
registerTool(tool.name, config, async (args) => {
|
|
491
|
-
try {
|
|
492
|
-
const result = await runTool(tool, deps, args);
|
|
493
|
-
const text = encodeResult(result, encoding);
|
|
494
|
-
// A tool that RETURNS `{ error, recovery }` refused just as surely as one that threw, and
|
|
495
|
-
// `isError` is the field a caller branches on. Without this it was set only on the throw
|
|
496
|
-
// path, so half the surface reported a refusal as a success. See mcp-is-error.
|
|
497
|
-
const isError = resultIsError(result);
|
|
498
|
-
if (tool.outputSchema !== undefined) {
|
|
499
|
-
return {
|
|
500
|
-
...(isError ? { isError: true } : {}),
|
|
501
|
-
content: [{ type: 'text', text }],
|
|
502
|
-
structuredContent: result,
|
|
503
|
-
};
|
|
504
|
-
}
|
|
505
|
-
return {
|
|
506
|
-
...(isError ? { isError: true } : {}),
|
|
507
|
-
content: [{ type: 'text', text }],
|
|
508
|
-
};
|
|
509
|
-
}
|
|
510
|
-
catch (error) {
|
|
511
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
512
|
-
log('tool_error', { tool: tool.name, error: message });
|
|
513
|
-
// Counted by FINGERPRINT, never by message — see error-fingerprint.ts. This is the single
|
|
514
|
-
// boundary every agent-visible tool failure crosses, so it is the one place "which error is
|
|
515
|
-
// hurting people most" can be answered without instrumenting every handler.
|
|
516
|
-
getSessionMetrics().recordToolError(message, tool.name);
|
|
517
|
-
// Every error the agent hits should answer "what next?", not just "what broke".
|
|
518
|
-
return {
|
|
519
|
-
isError: true,
|
|
520
|
-
content: [
|
|
521
|
-
{
|
|
522
|
-
type: 'text',
|
|
523
|
-
text: JSON.stringify(takeVersionSkewOnto(buildErrorPayload(message))),
|
|
524
|
-
},
|
|
525
|
-
],
|
|
526
|
-
};
|
|
527
|
-
}
|
|
528
|
-
});
|
|
529
|
-
}
|
|
530
|
-
// AFTER the registration loop, and that ordering is the whole trick: the SDK installs its
|
|
531
|
-
// `tools/call` dispatcher lazily on the FIRST registerTool, so wrapping before this point finds
|
|
532
|
-
// nothing to wrap and silently does nothing. Verified live rather than assumed — the first attempt
|
|
533
|
-
// sat here doing exactly that.
|
|
534
|
-
installUnadvertisedToolHelp(server, new Set(advertised.map((tool) => tool.name)), new Set(tools.map((tool) => tool.name)));
|
|
535
|
-
return server;
|
|
536
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export declare function daemonPollDelayMs(attempt: number): number;
|
|
2
|
-
/**
|
|
3
|
-
* Returns true if something is already listening on the reticle port.
|
|
4
|
-
* Uses a plain TCP probe so we don't create a side-effectful SSE session
|
|
5
|
-
* inside the daemon just to check reachability.
|
|
6
|
-
*/
|
|
7
|
-
export declare function probeDaemon(port: number): Promise<boolean>;
|
|
8
|
-
/** Poll until the daemon's HTTP port accepts connections or the deadline is reached. */
|
|
9
|
-
export declare function waitForDaemon(port: number): Promise<void>;
|