@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
|
@@ -0,0 +1,833 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure CLI argument parsing — the command/flag grammar, the CliResult union, and parseCliArgs.
|
|
3
|
+
* The parser stays pure and unit-testable; `cli.ts` owns the side-effecting handlers and dispatch,
|
|
4
|
+
* and re-exports this surface.
|
|
5
|
+
*/
|
|
6
|
+
import { TutorialAudience } from './tutorial.js';
|
|
7
|
+
import { parseFeedbackArgs } from './cli-parse-feedback.js';
|
|
8
|
+
import { parseVerifySuffix } from './cli-parse-verify.js';
|
|
9
|
+
import { HEADED_FLAG, PORT_FLAG, VERIFY_COMMAND, missingOperand, missingValue, notANumber, retiredFlag, unknownArgument, } from './cli-parse-grammar.js';
|
|
10
|
+
// Re-exported because the daemon's own argv builder reaches for these through this module, which is
|
|
11
|
+
// where the grammar has always lived as far as every caller is concerned.
|
|
12
|
+
export { HEADED_FLAG, PORT_FLAG };
|
|
13
|
+
import { FORCE_FLAG } from './cli-kill.js';
|
|
14
|
+
// Re-exported so every existing importer of these flags is unaffected by the file split.
|
|
15
|
+
export { AGENT_FLAG, BUG_FLAG, FEEDBACK_KINDS, KIND_FLAG, RATING_FLAG, } from './cli-parse-feedback.js';
|
|
16
|
+
/**
|
|
17
|
+
* The lines below say `reticle <command>`, which is the bin this package installs and is correct
|
|
18
|
+
* once it is on PATH. Copied into `npx`, it is not: `npx reticle` resolves the PACKAGE named
|
|
19
|
+
* `reticle`, which belongs to somebody else, and npx will happily fetch and run it. The docs were
|
|
20
|
+
* telling readers to do exactly that on 110 lines before it was caught, so the invocation now leads
|
|
21
|
+
* the usage block rather than being a footnote somewhere else.
|
|
22
|
+
*/
|
|
23
|
+
export const CLI_USAGE = `usage: npx @reticlehq/server <command> (or \`reticle <command>\` once the bin is on your PATH)
|
|
24
|
+
|
|
25
|
+
reticle init [--dry-run] [--port N] [--no-mcp] [--no-install] [--app <dir>]
|
|
26
|
+
[--env KEY=VALUE]... [--files-only] (wire Reticle into the project in this directory)
|
|
27
|
+
init is ONBOARDING: it wires the project, boots the app and proves a session
|
|
28
|
+
connected. It does not drive. The FIRST RUN is the stage that proves a flow:
|
|
29
|
+
reticle verify <url> --explore --persona "<who does what>", or the same thing
|
|
30
|
+
from an agent as reticle_verify { action: "explore", persona: "…" }
|
|
31
|
+
--app picks WHICH app in a monorepo, when several are found
|
|
32
|
+
--env is what the app needs to reach a usable state: the key from
|
|
33
|
+
.env.example, the mock backend, the variable that skips an auth wall.
|
|
34
|
+
Repeatable, and a value may contain spaces and equals signs
|
|
35
|
+
--files-only writes the files and stops, which is what init did before it
|
|
36
|
+
learned to boot the app and prove the install works
|
|
37
|
+
--relaunch prints the exact command that restarts THIS conversation with
|
|
38
|
+
the tools loaded, so the restart is not a chore handed to a human. It
|
|
39
|
+
refuses when the session id has no transcript behind it, because
|
|
40
|
+
--resume on an empty id opens a blank conversation that looks like
|
|
41
|
+
success. Works with --files-only
|
|
42
|
+
--license writes the key to .env and keeps .env out of git
|
|
43
|
+
--json puts the result on stdout, so an agent reads one object
|
|
44
|
+
--no-open / --no-agents / --url / --timeout are the runtime dials: CI, a
|
|
45
|
+
headless box, or an app you already run
|
|
46
|
+
--no-mcp skips MORE than the server registration: also the agent rule files
|
|
47
|
+
(CLAUDE.md / AGENTS.md / .cursor) and the /reticle command, because all three
|
|
48
|
+
only make sense once the tools are reachable.
|
|
49
|
+
reticle serve [--port N] [--drive <url>] [--headless] [--http] [--http-port N] [--http-token T]
|
|
50
|
+
reticle stop [--port N] [--quiet] (stop the daemon we started, by its recorded pid)
|
|
51
|
+
reticle kill [--port N] [--force] (free the port by its LISTENER, never the agent's mcp proxy)
|
|
52
|
+
reticle restart [--port N] [--force] (kill, then start a daemon and wait for a real bind)
|
|
53
|
+
reticle status [--port N] [--json] (a readable block; --json for the event)
|
|
54
|
+
reticle doctor [--port N] (one command to diagnose setup: Chromium, daemon, port)
|
|
55
|
+
reticle open [url] [--port N] (show the app: reuse the connected tab, else open one)
|
|
56
|
+
reticle verify <url> [--port N] [--headed] [--timeout N] [--storage-state <file>] [--session-id <id>] (one-shot: drive the URL, verify saved flows, exit 0=pass)
|
|
57
|
+
[--explore] [--persona <who>] (no saved flows? let Reticle drive the app itself and record them)
|
|
58
|
+
[--select <label>] (repeatable: verify only flows carrying these labels — no model, exit 0=pass)
|
|
59
|
+
[--expect '<json predicate>'] (one verdict, no saved flows needed — asks
|
|
60
|
+
the daemon that is already running, so nothing is bound and nothing is stopped. This
|
|
61
|
+
is the path when your client never loaded the reticle_* tools. exit 0 ONLY on
|
|
62
|
+
verified:"yes" — "unknown" is not a pass)
|
|
63
|
+
reticle affected [--since <ref>] [file...] (which saved flows must re-verify for the changed files)
|
|
64
|
+
reticle gate [--since <ref>] [file...] (exit non-zero unless passing artifacts cover the affected flows)
|
|
65
|
+
reticle watch [url] (on save, report which saved flows must re-verify)
|
|
66
|
+
reticle drive <url> [--headless] (foreground mode, for debugging)
|
|
67
|
+
reticle mcp [--port N] [--drive <url>] [--headless] (MCP stdio proxy; auto-starts daemon if needed)
|
|
68
|
+
reticle update (install the latest server version and restart)
|
|
69
|
+
reticle rollback (restore the previous server version and restart)
|
|
70
|
+
reticle license (show enterprise license status: active | eval | missing)
|
|
71
|
+
reticle telemetry [status|enable|disable] (anonymous usage metrics; status shows what's sent + the policy)
|
|
72
|
+
reticle feedback [--rating 1-5] [--bug] "message" (tell us what worked and what didn't; prints exactly what it sends)
|
|
73
|
+
reticle feedback --agent --kind <bug|gap|ambiguity|feature_request|improvement|experience> "message"
|
|
74
|
+
(agents: file from anywhere, including a setup that never finished)
|
|
75
|
+
reticle identify --context company|side_project|open_source|learning [--company N] [--email E] [--forget]
|
|
76
|
+
(OPT-IN: tell us who you are, e.g. for support or an enterprise trial)
|
|
77
|
+
|
|
78
|
+
Cloud (link this project to Reticle; runs/flows recorded on the dashboard):
|
|
79
|
+
reticle login [--url <u>] [--email <e>] [--code <c>] [--org <n>]
|
|
80
|
+
(browser device flow by default; --email mails a code)
|
|
81
|
+
reticle logout [--url <u>] (sign out of ONE host; others stay signed in)
|
|
82
|
+
reticle link [--project <name|id>] (bind this repo: mints a scoped key, writes .reticle/cloud.json)
|
|
83
|
+
reticle whoami (who am I signed in as, and is this repo attached?)
|
|
84
|
+
reticle project <ls|create <name>> (list or create cloud projects)
|
|
85
|
+
reticle config [--runs on|off] [--memory on|off] [--flows on|off] [--verify local|server]
|
|
86
|
+
reticle push | sync [--watch] (one sync cycle: send the difference, collect decisions)
|
|
87
|
+
reticle runs | regression | share <runId> (read cloud state; regression exits 3 if any flow broke)
|
|
88
|
+
|
|
89
|
+
'drive' shows the browser; everything else is hidden (serve/mcp own the pool behind leases, replay
|
|
90
|
+
and the spec runner: batch work). --headed opts any of them in, --headless hides drive, CI hides it.`;
|
|
91
|
+
const INIT_COMMAND = 'init';
|
|
92
|
+
const SERVE_COMMAND = 'serve';
|
|
93
|
+
const STOP_COMMAND = 'stop';
|
|
94
|
+
const KILL_COMMAND = 'kill';
|
|
95
|
+
const RESTART_COMMAND = 'restart';
|
|
96
|
+
const STATUS_COMMAND = 'status';
|
|
97
|
+
const OPEN_COMMAND = 'open';
|
|
98
|
+
const DRIVE_COMMAND = 'drive';
|
|
99
|
+
const AFFECTED_COMMAND = 'affected';
|
|
100
|
+
const HUNT_COMMAND = 'hunt';
|
|
101
|
+
const CAPSULES_COMMAND = 'capsules';
|
|
102
|
+
const GATE_COMMAND = 'gate';
|
|
103
|
+
/** Hook mode: prose a human can read, and silence when there was simply nothing to check. */
|
|
104
|
+
const HOOK_FLAG = '--hook';
|
|
105
|
+
const WATCH_COMMAND = 'watch';
|
|
106
|
+
const UPDATE_COMMAND = 'update';
|
|
107
|
+
const ROLLBACK_COMMAND = 'rollback';
|
|
108
|
+
const MCP_COMMAND = 'mcp';
|
|
109
|
+
const LICENSE_COMMAND = 'license';
|
|
110
|
+
const VERSION_COMMAND = 'version';
|
|
111
|
+
const TELEMETRY_COMMAND = 'telemetry';
|
|
112
|
+
const FEEDBACK_COMMAND = 'feedback';
|
|
113
|
+
const IDENTIFY_COMMAND = 'identify';
|
|
114
|
+
const COMPANY_FLAG = '--company';
|
|
115
|
+
const EMAIL_FLAG = '--email';
|
|
116
|
+
const CONTEXT_FLAG = '--context';
|
|
117
|
+
const FORGET_FLAG = '--forget';
|
|
118
|
+
/** The `reticle telemetry` sub-actions. Bare `reticle telemetry` means `status`. */
|
|
119
|
+
export const TelemetryAction = {
|
|
120
|
+
STATUS: 'status',
|
|
121
|
+
ENABLE: 'enable',
|
|
122
|
+
DISABLE: 'disable',
|
|
123
|
+
};
|
|
124
|
+
export const DAEMON_INNER_COMMAND = '_daemon';
|
|
125
|
+
/**
|
|
126
|
+
* Every subcommand a person can type, as one closed vocabulary. Telemetry reports which one ran, and
|
|
127
|
+
* this is what keeps that property low-cardinality and non-identifying: an argument we do not
|
|
128
|
+
* recognize reports as `unknown` rather than being echoed, so a typo — which may be a path, a URL, or
|
|
129
|
+
* a flow name — can never reach the wire just because someone misspelled `status`.
|
|
130
|
+
*
|
|
131
|
+
* Lives here rather than in the telemetry module because this is where the command names are already
|
|
132
|
+
* defined; a second list somewhere else would drift the first time a command is added.
|
|
133
|
+
*/
|
|
134
|
+
export const UNKNOWN_COMMAND = 'unknown';
|
|
135
|
+
const KNOWN_COMMANDS = new Set([
|
|
136
|
+
INIT_COMMAND,
|
|
137
|
+
SERVE_COMMAND,
|
|
138
|
+
STOP_COMMAND,
|
|
139
|
+
KILL_COMMAND,
|
|
140
|
+
RESTART_COMMAND,
|
|
141
|
+
STATUS_COMMAND,
|
|
142
|
+
OPEN_COMMAND,
|
|
143
|
+
DRIVE_COMMAND,
|
|
144
|
+
VERIFY_COMMAND,
|
|
145
|
+
AFFECTED_COMMAND,
|
|
146
|
+
HUNT_COMMAND,
|
|
147
|
+
CAPSULES_COMMAND,
|
|
148
|
+
GATE_COMMAND,
|
|
149
|
+
WATCH_COMMAND,
|
|
150
|
+
UPDATE_COMMAND,
|
|
151
|
+
ROLLBACK_COMMAND,
|
|
152
|
+
MCP_COMMAND,
|
|
153
|
+
LICENSE_COMMAND,
|
|
154
|
+
VERSION_COMMAND,
|
|
155
|
+
TELEMETRY_COMMAND,
|
|
156
|
+
FEEDBACK_COMMAND,
|
|
157
|
+
IDENTIFY_COMMAND,
|
|
158
|
+
DAEMON_INNER_COMMAND,
|
|
159
|
+
// Cloud subcommands dispatch before the local parser but are still commands a human ran.
|
|
160
|
+
'login',
|
|
161
|
+
'logout',
|
|
162
|
+
'whoami',
|
|
163
|
+
'link',
|
|
164
|
+
'project',
|
|
165
|
+
'config',
|
|
166
|
+
'push',
|
|
167
|
+
'runs',
|
|
168
|
+
'issues',
|
|
169
|
+
'memory',
|
|
170
|
+
'regression',
|
|
171
|
+
'share',
|
|
172
|
+
'doctor',
|
|
173
|
+
'setup',
|
|
174
|
+
'tutorial',
|
|
175
|
+
'help',
|
|
176
|
+
]);
|
|
177
|
+
/**
|
|
178
|
+
* A non-negative integer flag, or 0.
|
|
179
|
+
*
|
|
180
|
+
* 0 means NOT MEASURED here, and that is safe only because these are elapsed times the shell always
|
|
181
|
+
* passes — an absent one is a caller that is not our installer, and reporting zero for it is more
|
|
182
|
+
* honest than inventing a duration.
|
|
183
|
+
*/
|
|
184
|
+
function numberFlag(args, name) {
|
|
185
|
+
const at = args.indexOf(name);
|
|
186
|
+
if (at < 0)
|
|
187
|
+
return 0;
|
|
188
|
+
const raw = Number(args[at + 1]);
|
|
189
|
+
return Number.isFinite(raw) && raw >= 0 ? Math.floor(raw) : 0;
|
|
190
|
+
}
|
|
191
|
+
/** The subcommand name if we recognize it, else `unknown`. Bare `reticle` reports `help`. */
|
|
192
|
+
export function knownCommand(arg) {
|
|
193
|
+
if (arg === undefined || '' === arg)
|
|
194
|
+
return 'help';
|
|
195
|
+
return KNOWN_COMMANDS.has(arg) ? arg : UNKNOWN_COMMAND;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Force a hidden browser. The default is now HEADED: a run nobody can see is a run nobody trusts,
|
|
199
|
+
* and every "did it actually do anything?" question cost a round-trip. CI passes this (or just sets
|
|
200
|
+
* CI, which flips the default) because there is no display there to be headed on.
|
|
201
|
+
*/
|
|
202
|
+
const HEADLESS_FLAG = '--headless';
|
|
203
|
+
export const DRIVE_FLAG = '--drive';
|
|
204
|
+
const QUIET_FLAG = '--quiet';
|
|
205
|
+
const DRY_RUN_FLAG = '--dry-run';
|
|
206
|
+
const YES_FLAG = '--yes';
|
|
207
|
+
const NO_MCP_FLAG = '--no-mcp';
|
|
208
|
+
const APP_FLAG = '--app';
|
|
209
|
+
/**
|
|
210
|
+
* What only the caller can know, and what it may switch off.
|
|
211
|
+
*
|
|
212
|
+
* `--flow`, `--env` and `--app` are an AGENT's answers: which journey proves the thing the user
|
|
213
|
+
* cares about, what the app needs to reach a usable state, and which app in a monorepo. None is
|
|
214
|
+
* inferable from the repository alone, and a run without them either guesses or stops.
|
|
215
|
+
*
|
|
216
|
+
* `--files-only` is the escape hatch for a caller that wants what init used to do and nothing more.
|
|
217
|
+
*/
|
|
218
|
+
const FLOW_FLAG = '--flow';
|
|
219
|
+
/** Where the drive went, named in full because the reader passing one of these is following us. */
|
|
220
|
+
const FIRST_RUN_MOVED = 'onboarding wires the project, the FIRST RUN proves a flow. Drive one with reticle_verify { action: "explore", persona: "<who does what>" }, or npx @reticlehq/server verify <url> --explore --persona "<who does what>"';
|
|
221
|
+
const ENV_FLAG = '--env';
|
|
222
|
+
const FILES_ONLY_FLAG = '--files-only';
|
|
223
|
+
/**
|
|
224
|
+
* Write `captureNetworkBodies: true` into the app's config. OFF unless asked (#705).
|
|
225
|
+
*
|
|
226
|
+
* Body capture is what makes a 2xx write's OUTCOME readable rather than just its transport, so it
|
|
227
|
+
* is worth having — but a body is the one part of a request that routinely carries personal data,
|
|
228
|
+
* and `init` runs unattended. Whoever passes this has decided; nothing decides it for them.
|
|
229
|
+
*/
|
|
230
|
+
const CAPTURE_BODIES_FLAG = '--capture-bodies';
|
|
231
|
+
/**
|
|
232
|
+
* The rest of the runtime surface.
|
|
233
|
+
*
|
|
234
|
+
* `--json` is not a convenience: SKILL.md tells an agent to read the result and act on `agentTodo`,
|
|
235
|
+
* and reading one object is one turn where interpreting a report is several. The three opt-outs are
|
|
236
|
+
* what a machine without a browser, or a caller already running their app, actually needs.
|
|
237
|
+
*/
|
|
238
|
+
const JSON_FLAG = '--json';
|
|
239
|
+
const NO_DRIVE_FLAG = '--no-drive';
|
|
240
|
+
const NO_OPEN_FLAG = '--no-open';
|
|
241
|
+
const NO_AGENTS_FLAG = '--no-agents';
|
|
242
|
+
/**
|
|
243
|
+
* Restart the calling client so IT gets the tools.
|
|
244
|
+
*
|
|
245
|
+
* The flag was accepted by the prototype and not by `init`, so passing it printed the whole usage
|
|
246
|
+
* text. `init` decides what a restart should do — including refusing an id with no transcript, which
|
|
247
|
+
* is the case that looks exactly like success — and prints it; performing the restart is the
|
|
248
|
+
* caller's, because opening a terminal is not something a one-shot command should do behind a flag.
|
|
249
|
+
*/
|
|
250
|
+
const RELAUNCH_FLAG = '--relaunch';
|
|
251
|
+
const URL_FLAG = '--url';
|
|
252
|
+
const TIMEOUT_FLAG_INIT = '--timeout';
|
|
253
|
+
const DRIVE_MODEL_FLAG = '--drive-model';
|
|
254
|
+
/**
|
|
255
|
+
* The key, written to .env by the command rather than by hand.
|
|
256
|
+
*
|
|
257
|
+
* The instructions used to ask an agent for three steps: append to .env, check .gitignore, confirm.
|
|
258
|
+
* All three are deterministic, and the second is the one that costs something when skipped, because
|
|
259
|
+
* a key committed to git is leaked and stays leaked after the file is removed.
|
|
260
|
+
*/
|
|
261
|
+
const LICENSE_FLAG = '--license';
|
|
262
|
+
const NO_INSTALL_FLAG = '--no-install';
|
|
263
|
+
export const HTTP_FLAG = '--http';
|
|
264
|
+
export const HTTP_PORT_FLAG = '--http-port';
|
|
265
|
+
export const HTTP_TOKEN_FLAG = '--http-token';
|
|
266
|
+
/**
|
|
267
|
+
* `serve` / `mcp` / `_daemon` own the browser POOL, which backs automated work — leased contexts for
|
|
268
|
+
* parallel agents, flow replay, the spec runner. Those are batch: nobody is watching, and launching
|
|
269
|
+
* them headed changed timing enough to break four e2e specs. The headed default belongs to the
|
|
270
|
+
* INTERACTIVE command (`drive`), where a human asked to see the run. `--headed` still opts in here.
|
|
271
|
+
*/
|
|
272
|
+
/**
|
|
273
|
+
* A usage error names the thing that was wrong.
|
|
274
|
+
*
|
|
275
|
+
* These used to return CLI_USAGE as the MESSAGE, so every mistake — a typo'd flag, a flag missing
|
|
276
|
+
* its value, an unknown command — produced the same 600-character help block, JSON-escaped onto one
|
|
277
|
+
* stderr line by `log()`, with no mention of what the parser actually rejected. The install gate
|
|
278
|
+
* reported it verbatim as "init crashed: <the entire help text>", which is unreadable in a report
|
|
279
|
+
* and undiagnosable from a CI log; a human who typed one wrong flag got the same wall.
|
|
280
|
+
*
|
|
281
|
+
* The help text is still shown — cli.ts renders it as readable text underneath. It is just not the
|
|
282
|
+
* message any more.
|
|
283
|
+
*/
|
|
284
|
+
const requiresHttp = (flag) => ({
|
|
285
|
+
kind: 'error',
|
|
286
|
+
message: `${flag} requires ${HTTP_FLAG} — it configures the verify endpoint ${HTTP_FLAG} starts`,
|
|
287
|
+
});
|
|
288
|
+
const unknownCommand = (command) => ({
|
|
289
|
+
kind: 'error',
|
|
290
|
+
message: `unknown command '${command}'`,
|
|
291
|
+
});
|
|
292
|
+
function parseServeFlags(args, defaultPort, _defaultHeadless) {
|
|
293
|
+
let port = defaultPort;
|
|
294
|
+
let driveUrl;
|
|
295
|
+
let headless = true;
|
|
296
|
+
let http = false;
|
|
297
|
+
let httpPort;
|
|
298
|
+
let httpToken;
|
|
299
|
+
let i = 0;
|
|
300
|
+
while (i < args.length) {
|
|
301
|
+
const arg = args[i];
|
|
302
|
+
// `i < args.length` already guarantees this, but the index signature does not say so and the
|
|
303
|
+
// unknown-argument error needs a real string to name.
|
|
304
|
+
if (arg === undefined)
|
|
305
|
+
break;
|
|
306
|
+
if (arg === PORT_FLAG) {
|
|
307
|
+
i++;
|
|
308
|
+
const n = args[i];
|
|
309
|
+
if (n === undefined)
|
|
310
|
+
return missingValue(PORT_FLAG);
|
|
311
|
+
const parsed = parseInt(n, 10);
|
|
312
|
+
if (isNaN(parsed))
|
|
313
|
+
return notANumber(PORT_FLAG, n);
|
|
314
|
+
port = parsed;
|
|
315
|
+
}
|
|
316
|
+
else if (arg === DRIVE_FLAG) {
|
|
317
|
+
i++;
|
|
318
|
+
driveUrl = args[i];
|
|
319
|
+
if (driveUrl === undefined)
|
|
320
|
+
return missingValue(DRIVE_FLAG);
|
|
321
|
+
}
|
|
322
|
+
else if (arg === HEADED_FLAG) {
|
|
323
|
+
headless = false;
|
|
324
|
+
}
|
|
325
|
+
else if (arg === HEADLESS_FLAG) {
|
|
326
|
+
headless = true;
|
|
327
|
+
}
|
|
328
|
+
else if (arg === HTTP_FLAG) {
|
|
329
|
+
http = true;
|
|
330
|
+
}
|
|
331
|
+
else if (arg === HTTP_PORT_FLAG) {
|
|
332
|
+
i++;
|
|
333
|
+
const n = args[i];
|
|
334
|
+
if (n === undefined)
|
|
335
|
+
return missingValue(HTTP_PORT_FLAG);
|
|
336
|
+
const parsed = parseInt(n, 10);
|
|
337
|
+
if (isNaN(parsed))
|
|
338
|
+
return notANumber(HTTP_PORT_FLAG, n);
|
|
339
|
+
httpPort = parsed;
|
|
340
|
+
}
|
|
341
|
+
else if (arg === HTTP_TOKEN_FLAG) {
|
|
342
|
+
i++;
|
|
343
|
+
httpToken = args[i];
|
|
344
|
+
if (httpToken === undefined)
|
|
345
|
+
return missingValue(HTTP_TOKEN_FLAG);
|
|
346
|
+
}
|
|
347
|
+
else {
|
|
348
|
+
return unknownArgument(arg);
|
|
349
|
+
}
|
|
350
|
+
i++;
|
|
351
|
+
}
|
|
352
|
+
// Without `--http` these flags configure an endpoint nothing starts, and they were accepted and
|
|
353
|
+
// silently ignored — worse than being rejected, because the whole reason to pass them is to be
|
|
354
|
+
// honoured (#687).
|
|
355
|
+
if (!http && httpPort !== undefined)
|
|
356
|
+
return requiresHttp(HTTP_PORT_FLAG);
|
|
357
|
+
if (!http && httpToken !== undefined)
|
|
358
|
+
return requiresHttp(HTTP_TOKEN_FLAG);
|
|
359
|
+
return {
|
|
360
|
+
kind: 'ok',
|
|
361
|
+
port,
|
|
362
|
+
headless,
|
|
363
|
+
http,
|
|
364
|
+
...(driveUrl !== undefined ? { driveUrl } : {}),
|
|
365
|
+
...(httpPort !== undefined ? { httpPort } : {}),
|
|
366
|
+
...(httpToken !== undefined ? { httpToken } : {}),
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
function parsePortFlag(args, defaultPort) {
|
|
370
|
+
const idx = args.indexOf(PORT_FLAG);
|
|
371
|
+
if (-1 === idx)
|
|
372
|
+
return defaultPort;
|
|
373
|
+
const n = args[idx + 1];
|
|
374
|
+
if (n === undefined)
|
|
375
|
+
return defaultPort;
|
|
376
|
+
const parsed = parseInt(n, 10);
|
|
377
|
+
return isNaN(parsed) ? defaultPort : parsed;
|
|
378
|
+
}
|
|
379
|
+
function parseDriveSuffix(args, port, defaultHeadless) {
|
|
380
|
+
let headless = defaultHeadless;
|
|
381
|
+
let driveUrl;
|
|
382
|
+
for (const arg of args) {
|
|
383
|
+
if (arg === HEADED_FLAG) {
|
|
384
|
+
headless = false;
|
|
385
|
+
}
|
|
386
|
+
else if (arg === HEADLESS_FLAG) {
|
|
387
|
+
headless = true;
|
|
388
|
+
}
|
|
389
|
+
else if (arg.startsWith('--')) {
|
|
390
|
+
return unknownArgument(arg);
|
|
391
|
+
}
|
|
392
|
+
else if (driveUrl === undefined) {
|
|
393
|
+
driveUrl = arg;
|
|
394
|
+
}
|
|
395
|
+
else {
|
|
396
|
+
return unknownArgument(arg);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
if (driveUrl === undefined)
|
|
400
|
+
return missingOperand(DRIVE_COMMAND, 'a url');
|
|
401
|
+
return { kind: 'ok', port, driveUrl, headless };
|
|
402
|
+
}
|
|
403
|
+
function parseInitFlags(args) {
|
|
404
|
+
let port;
|
|
405
|
+
let mcp = true;
|
|
406
|
+
let dryRun = false;
|
|
407
|
+
let install = true;
|
|
408
|
+
let app;
|
|
409
|
+
// Repeatable: one variable per flag, so a value containing spaces or `=` needs no quoting rules.
|
|
410
|
+
const env = [];
|
|
411
|
+
let filesOnly = false;
|
|
412
|
+
let captureBodies = false;
|
|
413
|
+
let json = false;
|
|
414
|
+
let open = true;
|
|
415
|
+
let relaunch = false;
|
|
416
|
+
let agents = true;
|
|
417
|
+
let url;
|
|
418
|
+
let timeoutSeconds;
|
|
419
|
+
let licenseKey;
|
|
420
|
+
let i = 0;
|
|
421
|
+
while (i < args.length) {
|
|
422
|
+
const arg = args[i];
|
|
423
|
+
// `i < args.length` already guarantees this, but the index signature does not say so and the
|
|
424
|
+
// unknown-argument error needs a real string to name.
|
|
425
|
+
if (arg === undefined)
|
|
426
|
+
break;
|
|
427
|
+
if (arg === PORT_FLAG) {
|
|
428
|
+
i++;
|
|
429
|
+
const n = args[i];
|
|
430
|
+
if (n === undefined)
|
|
431
|
+
return missingValue(PORT_FLAG);
|
|
432
|
+
const parsed = parseInt(n, 10);
|
|
433
|
+
if (isNaN(parsed))
|
|
434
|
+
return notANumber(PORT_FLAG, n);
|
|
435
|
+
port = parsed;
|
|
436
|
+
}
|
|
437
|
+
else if (arg === APP_FLAG) {
|
|
438
|
+
i++;
|
|
439
|
+
const value = args[i];
|
|
440
|
+
if (value === undefined)
|
|
441
|
+
return missingValue(APP_FLAG);
|
|
442
|
+
app = value;
|
|
443
|
+
}
|
|
444
|
+
else if (arg === FLOW_FLAG || arg === NO_DRIVE_FLAG || arg === DRIVE_MODEL_FLAG) {
|
|
445
|
+
return retiredFlag(arg, FIRST_RUN_MOVED);
|
|
446
|
+
}
|
|
447
|
+
else if (arg === ENV_FLAG) {
|
|
448
|
+
i++;
|
|
449
|
+
const value = args[i];
|
|
450
|
+
if (value === undefined)
|
|
451
|
+
return missingValue(ENV_FLAG);
|
|
452
|
+
env.push(value);
|
|
453
|
+
}
|
|
454
|
+
else if (arg === FILES_ONLY_FLAG) {
|
|
455
|
+
filesOnly = true;
|
|
456
|
+
}
|
|
457
|
+
else if (arg === CAPTURE_BODIES_FLAG) {
|
|
458
|
+
captureBodies = true;
|
|
459
|
+
}
|
|
460
|
+
else if (arg === JSON_FLAG) {
|
|
461
|
+
json = true;
|
|
462
|
+
}
|
|
463
|
+
else if (arg === NO_OPEN_FLAG) {
|
|
464
|
+
open = false;
|
|
465
|
+
}
|
|
466
|
+
else if (arg === RELAUNCH_FLAG) {
|
|
467
|
+
relaunch = true;
|
|
468
|
+
}
|
|
469
|
+
else if (arg === NO_AGENTS_FLAG) {
|
|
470
|
+
agents = false;
|
|
471
|
+
}
|
|
472
|
+
else if (arg === URL_FLAG) {
|
|
473
|
+
i++;
|
|
474
|
+
const value = args[i];
|
|
475
|
+
if (value === undefined)
|
|
476
|
+
return missingValue(URL_FLAG);
|
|
477
|
+
url = value;
|
|
478
|
+
}
|
|
479
|
+
else if (arg === LICENSE_FLAG) {
|
|
480
|
+
i++;
|
|
481
|
+
const value = args[i];
|
|
482
|
+
if (value === undefined)
|
|
483
|
+
return missingValue(LICENSE_FLAG);
|
|
484
|
+
licenseKey = value;
|
|
485
|
+
}
|
|
486
|
+
else if (arg === TIMEOUT_FLAG_INIT) {
|
|
487
|
+
i++;
|
|
488
|
+
const value = args[i];
|
|
489
|
+
if (value === undefined)
|
|
490
|
+
return missingValue(TIMEOUT_FLAG_INIT);
|
|
491
|
+
const seconds = parseInt(value, 10);
|
|
492
|
+
if (isNaN(seconds))
|
|
493
|
+
return notANumber(TIMEOUT_FLAG_INIT, value);
|
|
494
|
+
timeoutSeconds = seconds;
|
|
495
|
+
}
|
|
496
|
+
else if (arg === NO_MCP_FLAG) {
|
|
497
|
+
mcp = false;
|
|
498
|
+
}
|
|
499
|
+
else if (arg === NO_INSTALL_FLAG) {
|
|
500
|
+
install = false;
|
|
501
|
+
}
|
|
502
|
+
else if (arg === DRY_RUN_FLAG) {
|
|
503
|
+
dryRun = true;
|
|
504
|
+
}
|
|
505
|
+
else if (arg === YES_FLAG) {
|
|
506
|
+
// Accepted for scripting/CI; init has no interactive prompts today.
|
|
507
|
+
}
|
|
508
|
+
else {
|
|
509
|
+
return unknownArgument(arg);
|
|
510
|
+
}
|
|
511
|
+
i++;
|
|
512
|
+
}
|
|
513
|
+
return {
|
|
514
|
+
kind: 'ok',
|
|
515
|
+
port,
|
|
516
|
+
mcp,
|
|
517
|
+
dryRun,
|
|
518
|
+
install,
|
|
519
|
+
app,
|
|
520
|
+
env,
|
|
521
|
+
filesOnly,
|
|
522
|
+
captureBodies,
|
|
523
|
+
json,
|
|
524
|
+
open,
|
|
525
|
+
relaunch,
|
|
526
|
+
agents,
|
|
527
|
+
url,
|
|
528
|
+
timeoutSeconds,
|
|
529
|
+
licenseKey,
|
|
530
|
+
};
|
|
531
|
+
}
|
|
532
|
+
/** Pure CLI arg parser — exported for unit tests. argv = process.argv.slice(2). */
|
|
533
|
+
const SINCE_FLAG = '--since';
|
|
534
|
+
/** Parse `[--since <ref>] [file...]` shared by `affected` and `gate`. */
|
|
535
|
+
/**
|
|
536
|
+
* What `reticle gate` / `reticle affected` mean with NOTHING after them: the working tree.
|
|
537
|
+
*
|
|
538
|
+
* They used to mean a usage error — while the rule `reticle init` writes into the agent's own
|
|
539
|
+
* instruction file says, in as many words, "run `reticle gate`". An instruction the tool rejects is
|
|
540
|
+
* worse than no instruction: the agent spends a turn on it and concludes Reticle is broken.
|
|
541
|
+
*
|
|
542
|
+
* HEAD is the ref that answers the question being asked. Explicit files or an explicit --since still
|
|
543
|
+
* win; this only fills the empty case.
|
|
544
|
+
*/
|
|
545
|
+
const WORKING_TREE_REF = 'HEAD';
|
|
546
|
+
function implicitSince(files) {
|
|
547
|
+
return 0 === files.length ? WORKING_TREE_REF : undefined;
|
|
548
|
+
}
|
|
549
|
+
function parseTargetArgs(rest) {
|
|
550
|
+
const files = [];
|
|
551
|
+
let since;
|
|
552
|
+
for (let i = 0; i < rest.length; i += 1) {
|
|
553
|
+
const arg = rest[i];
|
|
554
|
+
if (arg === SINCE_FLAG) {
|
|
555
|
+
since = rest[i + 1];
|
|
556
|
+
i += 1;
|
|
557
|
+
continue;
|
|
558
|
+
}
|
|
559
|
+
if (arg !== undefined && !arg.startsWith('-'))
|
|
560
|
+
files.push(arg);
|
|
561
|
+
}
|
|
562
|
+
return since === undefined ? { files } : { files, since };
|
|
563
|
+
}
|
|
564
|
+
/**
|
|
565
|
+
* @param defaultHeadless Whether a browser Reticle launches should be hidden when no flag says
|
|
566
|
+
* otherwise. Injected rather than read from the environment here, because this module is pure —
|
|
567
|
+
* `cli.ts` decides it from `CI`. The product default is FALSE: showing the run is what makes it
|
|
568
|
+
* trustworthy, and asking people to opt into seeing their own app was backwards.
|
|
569
|
+
*/
|
|
570
|
+
export function parseCliArgs(argv, defaultPort, defaultHeadless = false) {
|
|
571
|
+
// Bare `reticle` is `serve` — a pool-owning command, so headless like the rest of that family.
|
|
572
|
+
if (0 === argv.length)
|
|
573
|
+
return { kind: 'serve', port: defaultPort, headless: true, http: false };
|
|
574
|
+
const [cmd, ...rest] = argv;
|
|
575
|
+
// Guaranteed by the bare-argv check above; restated so the unknown-command error can name it.
|
|
576
|
+
if (cmd === undefined)
|
|
577
|
+
return { kind: 'error', message: CLI_USAGE };
|
|
578
|
+
// `version` (or the conventional -v/--version flags) prints the running version — the diagnostic the
|
|
579
|
+
// troubleshooting docs lean on to confirm which npx-resolved build is actually executing.
|
|
580
|
+
if (cmd === VERSION_COMMAND || '--version' === cmd || '-v' === cmd)
|
|
581
|
+
return { kind: 'version' };
|
|
582
|
+
// `help` (and the conventional -h/--help) print usage to stdout and exit 0 — the universal first move
|
|
583
|
+
// for a new user, which otherwise fell through to a JSON error with exit 1.
|
|
584
|
+
//
|
|
585
|
+
// Recognised ANYWHERE in the argv, not only in first position. `reticle init --help` is the shape
|
|
586
|
+
// people actually type — it was the very first command in a field install transcript — and it hit
|
|
587
|
+
// the subcommand's own flag parser, which does not know the flag and answered
|
|
588
|
+
// `reticle_usage_error: unknown argument '--help'` on stderr with exit 1. The usage text was
|
|
589
|
+
// printed underneath it, so the request was in fact answered; it was simply answered as a failure,
|
|
590
|
+
// which is the wrong first impression to give somebody who has just asked a tool what it does.
|
|
591
|
+
if ('help' === cmd || argv.some((arg) => '--help' === arg || '-h' === arg)) {
|
|
592
|
+
return { kind: 'help' };
|
|
593
|
+
}
|
|
594
|
+
switch (cmd) {
|
|
595
|
+
case INIT_COMMAND: {
|
|
596
|
+
const r = parseInitFlags(rest);
|
|
597
|
+
if ('error' === r.kind)
|
|
598
|
+
return r;
|
|
599
|
+
return {
|
|
600
|
+
kind: 'init',
|
|
601
|
+
port: r.port,
|
|
602
|
+
mcp: r.mcp,
|
|
603
|
+
dryRun: r.dryRun,
|
|
604
|
+
install: r.install,
|
|
605
|
+
app: r.app,
|
|
606
|
+
env: r.env,
|
|
607
|
+
filesOnly: r.filesOnly,
|
|
608
|
+
captureBodies: r.captureBodies,
|
|
609
|
+
json: r.json,
|
|
610
|
+
open: r.open,
|
|
611
|
+
relaunch: r.relaunch,
|
|
612
|
+
agents: r.agents,
|
|
613
|
+
url: r.url,
|
|
614
|
+
timeoutSeconds: r.timeoutSeconds,
|
|
615
|
+
licenseKey: r.licenseKey,
|
|
616
|
+
};
|
|
617
|
+
}
|
|
618
|
+
case SERVE_COMMAND: {
|
|
619
|
+
const r = parseServeFlags(rest, defaultPort, defaultHeadless);
|
|
620
|
+
if ('error' === r.kind)
|
|
621
|
+
return r;
|
|
622
|
+
return {
|
|
623
|
+
kind: 'serve',
|
|
624
|
+
port: r.port,
|
|
625
|
+
headless: r.headless,
|
|
626
|
+
http: r.http,
|
|
627
|
+
...(r.driveUrl !== undefined ? { driveUrl: r.driveUrl } : {}),
|
|
628
|
+
...(r.httpPort !== undefined ? { httpPort: r.httpPort } : {}),
|
|
629
|
+
...(r.httpToken !== undefined ? { httpToken: r.httpToken } : {}),
|
|
630
|
+
};
|
|
631
|
+
}
|
|
632
|
+
case STOP_COMMAND: {
|
|
633
|
+
const port = parsePortFlag(rest, defaultPort);
|
|
634
|
+
const quiet = rest.includes(QUIET_FLAG);
|
|
635
|
+
return { kind: 'stop', port, quiet };
|
|
636
|
+
}
|
|
637
|
+
case KILL_COMMAND: {
|
|
638
|
+
const port = parsePortFlag(rest, defaultPort);
|
|
639
|
+
return { kind: 'kill', port, force: rest.includes(FORCE_FLAG) };
|
|
640
|
+
}
|
|
641
|
+
case RESTART_COMMAND: {
|
|
642
|
+
const port = parsePortFlag(rest, defaultPort);
|
|
643
|
+
return { kind: 'restart', port, force: rest.includes(FORCE_FLAG) };
|
|
644
|
+
}
|
|
645
|
+
case STATUS_COMMAND: {
|
|
646
|
+
const port = parsePortFlag(rest, defaultPort);
|
|
647
|
+
// The block is the default and the JSON is the opt-in, which is the way round `tutorial`
|
|
648
|
+
// already settled on: a person typing this should not have to ask for prose, and a caller
|
|
649
|
+
// parsing it knows to ask for the object.
|
|
650
|
+
return { kind: 'status', port, json: rest.includes(JSON_FLAG) };
|
|
651
|
+
}
|
|
652
|
+
case 'tutorial': {
|
|
653
|
+
// `--agent` is the opt-in, because a person typing this is the common case and should not have
|
|
654
|
+
// to ask for prose. An agent knows to pass the flag; a human would not know to avoid it.
|
|
655
|
+
const audience = argv.includes('--agent') ? TutorialAudience.AGENT : TutorialAudience.HUMAN;
|
|
656
|
+
// `--run` drives the demo instead of describing it. Opt-in rather than the default: the tour
|
|
657
|
+
// starts a daemon and opens a browser, and a command that did that to somebody who typed it
|
|
658
|
+
// expecting a page of text would be a surprise in the one place surprises are least welcome.
|
|
659
|
+
return {
|
|
660
|
+
kind: 'tutorial',
|
|
661
|
+
audience,
|
|
662
|
+
run: argv.includes('--run'),
|
|
663
|
+
port: parsePortFlag(rest, defaultPort),
|
|
664
|
+
headless: !argv.includes('--headed'),
|
|
665
|
+
};
|
|
666
|
+
}
|
|
667
|
+
case 'doctor': {
|
|
668
|
+
const port = parsePortFlag(rest, defaultPort);
|
|
669
|
+
return { kind: 'doctor', port };
|
|
670
|
+
}
|
|
671
|
+
/*
|
|
672
|
+
* `setup mcp` — register the MCP server with the coding agents on this machine.
|
|
673
|
+
*
|
|
674
|
+
* Separate from `init` because it answers a different question. `init` wires ONE PROJECT: the
|
|
675
|
+
* plugin, the connect snippet, the config. This registers the server for the USER, across every
|
|
676
|
+
* agent they have, and is what the one-line installer runs when there is no project yet.
|
|
677
|
+
*
|
|
678
|
+
* There is NO `--yes`, and the absence is deliberate. Zero human input is the default, so
|
|
679
|
+
* nothing is ever asked — and a flag that reads as consent while gating nothing is worse than
|
|
680
|
+
* no flag: it tells a reader a confirmation exists. What this writes is stated before it runs
|
|
681
|
+
* and printed after, which is the honest version of the same reassurance.
|
|
682
|
+
*/
|
|
683
|
+
case 'setup': {
|
|
684
|
+
const what = rest[0];
|
|
685
|
+
/*
|
|
686
|
+
* `setup install` — the Node half of the one-line installer.
|
|
687
|
+
*
|
|
688
|
+
* The shell script does the three things that cannot be Node (is there a runtime, put the CLI
|
|
689
|
+
* on the machine, hand over) and nothing else, because a .sh and a .ps1 holding the same logic
|
|
690
|
+
* drift the first time somebody fixes a bug in one of them. The timings arrive as flags
|
|
691
|
+
* because only the shell could measure them: they span the period before this binary existed.
|
|
692
|
+
*/
|
|
693
|
+
if ('install' === what) {
|
|
694
|
+
return {
|
|
695
|
+
kind: 'setup-install',
|
|
696
|
+
runtimeSecs: numberFlag(rest, '--runtime-secs'),
|
|
697
|
+
installSecs: numberFlag(rest, '--install-secs'),
|
|
698
|
+
mcp: !rest.includes('--no-mcp'),
|
|
699
|
+
};
|
|
700
|
+
}
|
|
701
|
+
// Only `mcp` today. A bare `reticle setup` falls to help rather than guessing, because the
|
|
702
|
+
// next subcommand here will not be a synonym for this one.
|
|
703
|
+
if (what !== 'mcp')
|
|
704
|
+
return { kind: 'help' };
|
|
705
|
+
return { kind: 'setup-mcp' };
|
|
706
|
+
}
|
|
707
|
+
case LICENSE_COMMAND:
|
|
708
|
+
return { kind: 'license' };
|
|
709
|
+
case TELEMETRY_COMMAND: {
|
|
710
|
+
const action = rest[0] ?? TelemetryAction.STATUS;
|
|
711
|
+
if (action !== TelemetryAction.STATUS &&
|
|
712
|
+
action !== TelemetryAction.ENABLE &&
|
|
713
|
+
action !== TelemetryAction.DISABLE) {
|
|
714
|
+
return { kind: 'error', message: `unknown telemetry action: ${action}` };
|
|
715
|
+
}
|
|
716
|
+
return { kind: 'telemetry', action };
|
|
717
|
+
}
|
|
718
|
+
case IDENTIFY_COMMAND: {
|
|
719
|
+
const flag = (name) => {
|
|
720
|
+
const at = rest.indexOf(name);
|
|
721
|
+
return -1 === at ? undefined : rest[at + 1];
|
|
722
|
+
};
|
|
723
|
+
const context = flag(CONTEXT_FLAG);
|
|
724
|
+
const company = flag(COMPANY_FLAG);
|
|
725
|
+
const email = flag(EMAIL_FLAG);
|
|
726
|
+
return {
|
|
727
|
+
kind: 'identify',
|
|
728
|
+
...(context !== undefined ? { context } : {}),
|
|
729
|
+
...(company !== undefined ? { company } : {}),
|
|
730
|
+
...(email !== undefined ? { email } : {}),
|
|
731
|
+
forget: rest.includes(FORGET_FLAG),
|
|
732
|
+
};
|
|
733
|
+
}
|
|
734
|
+
case FEEDBACK_COMMAND:
|
|
735
|
+
return parseFeedbackArgs(rest);
|
|
736
|
+
case OPEN_COMMAND: {
|
|
737
|
+
const port = parsePortFlag(rest, defaultPort);
|
|
738
|
+
// The first non-flag arg is the url (optional — omitting reuses a connected tab).
|
|
739
|
+
const url = rest.find((a) => !a.startsWith('--') && a !== String(port));
|
|
740
|
+
return url !== undefined ? { kind: 'open', port, url } : { kind: 'open', port };
|
|
741
|
+
}
|
|
742
|
+
case DRIVE_COMMAND: {
|
|
743
|
+
const r = parseDriveSuffix(rest, defaultPort, defaultHeadless);
|
|
744
|
+
if ('error' === r.kind)
|
|
745
|
+
return r;
|
|
746
|
+
return { kind: 'drive', port: r.port, driveUrl: r.driveUrl, headless: r.headless };
|
|
747
|
+
}
|
|
748
|
+
case DAEMON_INNER_COMMAND: {
|
|
749
|
+
const r = parseServeFlags(rest, defaultPort, defaultHeadless);
|
|
750
|
+
if ('error' === r.kind)
|
|
751
|
+
return r;
|
|
752
|
+
return {
|
|
753
|
+
kind: '_daemon',
|
|
754
|
+
port: r.port,
|
|
755
|
+
headless: r.headless,
|
|
756
|
+
http: r.http,
|
|
757
|
+
...(r.driveUrl !== undefined ? { driveUrl: r.driveUrl } : {}),
|
|
758
|
+
...(r.httpPort !== undefined ? { httpPort: r.httpPort } : {}),
|
|
759
|
+
...(r.httpToken !== undefined ? { httpToken: r.httpToken } : {}),
|
|
760
|
+
};
|
|
761
|
+
}
|
|
762
|
+
case VERIFY_COMMAND: {
|
|
763
|
+
const r = parseVerifySuffix(rest, defaultPort);
|
|
764
|
+
if ('error' === r.kind)
|
|
765
|
+
return r;
|
|
766
|
+
return {
|
|
767
|
+
kind: 'verify',
|
|
768
|
+
url: r.url,
|
|
769
|
+
headless: r.headless,
|
|
770
|
+
port: r.port,
|
|
771
|
+
...(r.timeoutMs !== undefined ? { timeoutMs: r.timeoutMs } : {}),
|
|
772
|
+
...(r.storageState !== undefined ? { storageState: r.storageState } : {}),
|
|
773
|
+
...(r.sessionId !== undefined ? { sessionId: r.sessionId } : {}),
|
|
774
|
+
...(r.expect !== undefined ? { expect: r.expect } : {}),
|
|
775
|
+
...(true === r.explore ? { explore: true } : {}),
|
|
776
|
+
...(r.persona !== undefined ? { persona: r.persona } : {}),
|
|
777
|
+
...(r.select !== undefined ? { select: r.select } : {}),
|
|
778
|
+
};
|
|
779
|
+
}
|
|
780
|
+
case CAPSULES_COMMAND:
|
|
781
|
+
return { kind: 'capsules' };
|
|
782
|
+
case HUNT_COMMAND: {
|
|
783
|
+
const dir = rest.find((a) => !a.startsWith('-'));
|
|
784
|
+
return dir === undefined
|
|
785
|
+
? { kind: 'error', message: 'usage: reticle hunt <dir-of-crawl-reports>' }
|
|
786
|
+
: { kind: 'hunt', dir };
|
|
787
|
+
}
|
|
788
|
+
case AFFECTED_COMMAND: {
|
|
789
|
+
const t = parseTargetArgs(rest);
|
|
790
|
+
const since = t.since ?? implicitSince(t.files);
|
|
791
|
+
return { kind: 'affected', files: t.files, ...(since === undefined ? {} : { since }) };
|
|
792
|
+
}
|
|
793
|
+
case GATE_COMMAND: {
|
|
794
|
+
// `--hook` is stripped before target parsing, which would reject it as an unknown flag.
|
|
795
|
+
const hook = rest.includes(HOOK_FLAG);
|
|
796
|
+
const t = parseTargetArgs(rest.filter((a) => a !== HOOK_FLAG));
|
|
797
|
+
const since = t.since ?? implicitSince(t.files);
|
|
798
|
+
return {
|
|
799
|
+
kind: 'gate',
|
|
800
|
+
files: t.files,
|
|
801
|
+
...(since === undefined ? {} : { since }),
|
|
802
|
+
...(hook ? { hook: true } : {}),
|
|
803
|
+
};
|
|
804
|
+
}
|
|
805
|
+
case WATCH_COMMAND: {
|
|
806
|
+
// `reticle watch [url]` — on file save, report which saved flows must re-verify.
|
|
807
|
+
const url = rest.find((arg) => !arg.startsWith('-'));
|
|
808
|
+
return url === undefined ? { kind: 'watch' } : { kind: 'watch', url };
|
|
809
|
+
}
|
|
810
|
+
case UPDATE_COMMAND:
|
|
811
|
+
return { kind: 'update' };
|
|
812
|
+
case ROLLBACK_COMMAND:
|
|
813
|
+
return { kind: 'rollback' };
|
|
814
|
+
case MCP_COMMAND: {
|
|
815
|
+
const r = parseServeFlags(rest, defaultPort, defaultHeadless);
|
|
816
|
+
if ('error' === r.kind)
|
|
817
|
+
return r;
|
|
818
|
+
return {
|
|
819
|
+
kind: 'mcp',
|
|
820
|
+
port: r.port,
|
|
821
|
+
headless: r.headless,
|
|
822
|
+
http: r.http,
|
|
823
|
+
...(r.driveUrl !== undefined ? { driveUrl: r.driveUrl } : {}),
|
|
824
|
+
...(r.httpPort !== undefined ? { httpPort: r.httpPort } : {}),
|
|
825
|
+
...(r.httpToken !== undefined ? { httpToken: r.httpToken } : {}),
|
|
826
|
+
};
|
|
827
|
+
}
|
|
828
|
+
default:
|
|
829
|
+
// A bare `reticle` never lands here — it defaults to `serve` above — so `cmd` is always a real
|
|
830
|
+
// word somebody typed, and naming it is strictly more useful than reprinting the whole help.
|
|
831
|
+
return unknownCommand(cmd);
|
|
832
|
+
}
|
|
833
|
+
}
|