@reticlehq/server 3.5.0 → 3.7.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/README.md +1 -1
- package/SKILL.md +123 -116
- package/dist/chromium-launch-options.d.ts +3 -1
- package/dist/chromium-launch-options.js +2 -1
- package/dist/command/cli/adhoc-suite.d.ts +14 -0
- package/dist/command/cli/adhoc-suite.js +42 -7
- package/dist/command/cli/adhoc-verdict.d.ts +19 -2
- package/dist/command/cli/adhoc-verdict.js +76 -9
- package/dist/command/cli/answers/gate-exit.d.ts +23 -0
- package/dist/command/cli/answers/gate-exit.js +45 -0
- package/dist/command/cli/answers/gate-hook-message.d.ts +2 -0
- package/dist/command/cli/answers/gate-hook-message.js +3 -1
- package/dist/command/cli/answers/open-note.d.ts +2 -0
- package/dist/command/cli/answers/open-note.js +22 -0
- package/dist/command/cli/auth/device-flow.d.ts +13 -2
- package/dist/command/cli/auth/device-flow.js +17 -0
- package/dist/command/cli/cli-doctor.js +14 -0
- package/dist/command/cli/cli-flow-commands.d.ts +0 -11
- package/dist/command/cli/cli-flow-commands.js +31 -112
- package/dist/command/cli/cli-kill.js +3 -2
- package/dist/command/cli/cli-parse-grammar.d.ts +24 -0
- package/dist/command/cli/cli-parse-grammar.js +75 -0
- package/dist/command/cli/cli-parse-verify.d.ts +2 -0
- package/dist/command/cli/cli-parse-verify.js +18 -0
- package/dist/command/cli/cli-parse.d.ts +19 -28
- package/dist/command/cli/cli-parse.js +82 -182
- package/dist/command/cli/cli-update-commands.d.ts +1 -1
- package/dist/command/cli/cli-update-commands.js +61 -9
- package/dist/command/cli/cli-usage.d.ts +33 -0
- package/dist/command/cli/cli-usage.js +287 -0
- package/dist/command/cli/cli-verify.d.ts +35 -5
- package/dist/command/cli/cli-verify.js +114 -35
- package/dist/command/cli/cloud-cli.d.ts +13 -0
- package/dist/command/cli/cloud-cli.js +192 -341
- package/dist/command/cli/cloud-kit.d.ts +12 -0
- package/dist/command/cli/cloud-kit.js +41 -2
- package/dist/command/cli/cloud-link.d.ts +57 -0
- package/dist/command/cli/cloud-link.js +308 -0
- package/dist/command/cli/cloud-login.d.ts +22 -0
- package/dist/command/cli/cloud-login.js +96 -8
- package/dist/command/cli/context-command.d.ts +1 -0
- package/dist/command/cli/context-command.js +33 -0
- package/dist/command/cli/daemon-start-options.d.ts +3 -0
- package/dist/command/cli/daemon-start-options.js +24 -3
- package/dist/command/cli/doctor/browser/chromium-hint.d.ts +46 -0
- package/dist/command/cli/doctor/browser/chromium-hint.js +99 -1
- package/dist/command/cli/doctor/doctor-coverage-line.d.ts +2 -0
- package/dist/command/cli/doctor/doctor-coverage-line.js +47 -0
- package/dist/command/cli/doctor/doctor-project-line.d.ts +0 -12
- package/dist/command/cli/doctor/doctor-project-line.js +5 -4
- package/dist/command/cli/doctor/doctor-rows.d.ts +6 -0
- package/dist/command/cli/doctor/doctor-rows.js +6 -0
- package/dist/command/cli/doctor/doctor-signing-line.d.ts +38 -0
- package/dist/command/cli/doctor/doctor-signing-line.js +114 -0
- package/dist/command/cli/drive/drive-attach.d.ts +27 -2
- package/dist/command/cli/drive/drive-attach.js +71 -4
- package/dist/command/cli/drive/drive-command.d.ts +2 -1
- package/dist/command/cli/drive/drive-command.js +13 -7
- package/dist/command/cli/known-regression.d.ts +13 -0
- package/dist/command/cli/known-regression.js +34 -0
- package/dist/command/cli/launch/sdk-version-match.d.ts +12 -0
- package/dist/command/cli/launch/sdk-version-match.js +25 -0
- package/dist/command/cli/lifecycle/daemon-lifecycle.js +15 -3
- package/dist/command/cli/mcp-command.d.ts +6 -0
- package/dist/command/cli/mcp-command.js +13 -5
- package/dist/command/cli/ports/port-holder.d.ts +10 -0
- package/dist/command/cli/ports/port-holder.js +25 -1
- package/dist/command/cli/project-name.d.ts +29 -1
- package/dist/command/cli/project-name.js +107 -2
- package/dist/command/cli/setup-mcp-cli.d.ts +17 -1
- package/dist/command/cli/setup-mcp-cli.js +35 -12
- package/dist/command/cli/status/status-lines.d.ts +1 -0
- package/dist/command/cli/status/status-lines.js +47 -2
- package/dist/command/cli/status/workspace-links.d.ts +10 -0
- package/dist/command/cli/status/workspace-links.js +29 -0
- package/dist/command/cli/try-command.d.ts +96 -0
- package/dist/command/cli/try-command.js +362 -0
- package/dist/command/cli/tutorial.d.ts +0 -100
- package/dist/command/cli/tutorial.js +0 -181
- package/dist/command/cli/verify-results.d.ts +19 -0
- package/dist/command/cli/verify-results.js +29 -0
- package/dist/command/cli-onboarding.d.ts +0 -11
- package/dist/command/cli-onboarding.js +0 -15
- package/dist/command/cli.d.ts +20 -0
- package/dist/command/cli.js +130 -104
- package/dist/command/daemon/binding/daemon-status-probe.d.ts +2 -0
- package/dist/command/daemon/binding/daemon-status-probe.js +1 -0
- package/dist/command/daemon/daemon-resilience.js +4 -4
- package/dist/command/daemon/daemon-resolve.d.ts +23 -1
- package/dist/command/daemon/daemon-resolve.js +79 -9
- package/dist/command/setup/agent-writer.d.ts +1 -1
- package/dist/command/setup/agent-writer.js +3 -2
- package/dist/command/setup/bringup/bridge-port.d.ts +3 -1
- package/dist/command/setup/bringup/bridge-port.js +13 -3
- package/dist/command/setup/bringup/connect-lease.d.ts +1 -0
- package/dist/command/setup/bringup/connect-lease.js +1 -0
- package/dist/command/setup/bringup/dev-server-log-cap.js +2 -0
- package/dist/command/setup/bringup/dev-server-wait.d.ts +8 -0
- package/dist/command/setup/bringup/dev-server-wait.js +19 -0
- package/dist/command/setup/bringup/ensure-daemon.js +9 -2
- package/dist/command/setup/init/agent-restart.d.ts +23 -0
- package/dist/command/setup/init/agent-restart.js +28 -0
- package/dist/command/setup/init/init-port.d.ts +14 -1
- package/dist/command/setup/init/init-port.js +32 -2
- package/dist/command/setup/init/init-runtime.d.ts +22 -2
- package/dist/command/setup/init/init-runtime.js +114 -38
- package/dist/command/setup/node-effects.d.ts +2 -0
- package/dist/command/setup/node-effects.js +38 -9
- package/dist/command/setup/probe/existing-app.d.ts +12 -0
- package/dist/command/setup/probe/existing-app.js +14 -0
- package/dist/command/setup/remaining-steps.js +2 -1
- package/dist/command/setup/run-setup.d.ts +34 -9
- package/dist/command/setup/run-setup.js +65 -51
- package/dist/command/setup/setup-command.d.ts +25 -1
- package/dist/command/setup/setup-command.js +59 -4
- package/dist/command/setup/setup-mcp.js +25 -2
- package/dist/command/setup/tauri-signing.d.ts +19 -0
- package/dist/command/setup/tauri-signing.js +79 -0
- package/dist/command/setup/terminal/listeners.d.ts +10 -1
- package/dist/command/setup/terminal/listeners.js +37 -6
- package/dist/command/update/update-nudge.d.ts +9 -0
- package/dist/command/update/update-nudge.js +1 -1
- package/dist/command/update/updater.js +11 -15
- package/dist/command/version/version-nudge.js +3 -0
- package/dist/command/version/version-skew.d.ts +20 -1
- package/dist/command/version/version-skew.js +49 -4
- package/dist/features/crawl/crawl-tools.js +4 -0
- package/dist/features/crawl/crawl.d.ts +6 -0
- package/dist/features/crawl/crawl.js +23 -2
- package/dist/features/exhaust/ledger.d.ts +21 -14
- package/dist/features/exhaust/ledger.js +35 -9
- package/dist/features/harness/app-findings.d.ts +2 -0
- package/dist/features/harness/app-findings.js +52 -0
- package/dist/features/harness/drive-report.d.ts +61 -1
- package/dist/features/harness/drive-report.js +394 -26
- package/dist/features/harness/drive-runs.d.ts +120 -0
- package/dist/features/harness/drive-runs.js +289 -0
- package/dist/features/harness/drivers.d.ts +10 -14
- package/dist/features/harness/drivers.js +10 -14
- package/dist/features/harness/explore/console-pages.d.ts +15 -0
- package/dist/features/harness/explore/console-pages.js +146 -0
- package/dist/features/harness/explore/disparity.d.ts +19 -0
- package/dist/features/harness/explore/disparity.js +71 -0
- package/dist/features/harness/explore/fake-app.d.ts +16 -0
- package/dist/features/harness/explore/fake-app.js +49 -0
- package/dist/features/harness/explore/goal-search.d.ts +26 -0
- package/dist/features/harness/explore/goal-search.js +144 -0
- package/dist/features/harness/explore/page-tree.d.ts +49 -0
- package/dist/features/harness/explore/page-tree.js +148 -0
- package/dist/features/harness/explore/site-map.d.ts +34 -0
- package/dist/features/harness/explore/site-map.js +150 -0
- package/dist/features/harness/fill-values.d.ts +3 -73
- package/dist/features/harness/fill-values.js +3 -169
- package/dist/features/harness/goals.d.ts +82 -0
- package/dist/features/harness/goals.js +330 -0
- package/dist/features/harness/harness.d.ts +51 -1
- package/dist/features/harness/harness.js +207 -6
- package/dist/features/harness/platform/drive-target.d.ts +30 -0
- package/dist/features/harness/platform/drive-target.js +81 -0
- package/dist/features/harness/platform/local-apps.d.ts +127 -0
- package/dist/features/harness/platform/local-apps.js +280 -0
- package/dist/features/harness/platform/persona-credentials.d.ts +20 -0
- package/dist/features/harness/platform/persona-credentials.js +69 -0
- package/dist/features/harness/platform/platform-drives.d.ts +61 -0
- package/dist/features/harness/platform/platform-drives.js +114 -0
- package/dist/features/harness/platform/refusal.d.ts +52 -0
- package/dist/features/harness/platform/refusal.js +71 -0
- package/dist/features/harness/platform/remote-drive.d.ts +186 -0
- package/dist/features/harness/platform/remote-drive.js +378 -0
- package/dist/features/harness/platform/script.d.ts +94 -0
- package/dist/features/harness/platform/script.js +260 -0
- package/dist/features/harness/platform/server-driver.d.ts +54 -0
- package/dist/features/harness/platform/server-driver.js +182 -0
- package/dist/features/harness/platform-config.d.ts +41 -1
- package/dist/features/harness/platform-config.js +106 -9
- package/dist/features/harness/route-guess.d.ts +13 -0
- package/dist/features/harness/route-guess.js +49 -0
- package/dist/features/harness/script/app-controls.d.ts +5 -0
- package/dist/features/harness/script/app-controls.js +40 -0
- package/dist/features/harness/script/lane-ids.d.ts +14 -0
- package/dist/features/harness/script/lane-ids.js +16 -0
- package/dist/features/harness/script/script-run.d.ts +70 -0
- package/dist/features/harness/script/script-run.js +606 -0
- package/dist/features/license/license.d.ts +2 -2
- package/dist/features/visual/step-shots.d.ts +31 -0
- package/dist/features/visual/step-shots.js +231 -0
- package/dist/features/visual/visual-tools.d.ts +10 -1
- package/dist/features/visual/visual-tools.js +62 -17
- package/dist/hooks/client-directory.d.ts +18 -0
- package/dist/hooks/client-directory.js +57 -0
- package/dist/hooks/coding-agents.d.ts +34 -0
- package/dist/hooks/coding-agents.js +117 -0
- package/dist/hooks/driven-by.d.ts +23 -0
- package/dist/hooks/driven-by.js +56 -0
- package/dist/hooks/hook-bus.d.ts +4 -0
- package/dist/hooks/hook-bus.js +18 -0
- package/dist/hooks/hook-commands.js +15 -4
- package/dist/hooks/tool-log.d.ts +9 -0
- package/dist/hooks/tool-log.js +29 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +80 -243
- package/dist/judgement/capsule/capsule-store.d.ts +2 -2
- package/dist/judgement/capsule/causal-summary.d.ts +15 -1
- package/dist/judgement/capsule/causal-summary.js +33 -0
- package/dist/judgement/runs/artifact/build-verification-run.d.ts +1 -1
- package/dist/judgement/runs/artifact/build-verification-run.js +25 -3
- package/dist/judgement/runs/artifact/gap-summary.d.ts +0 -18
- package/dist/judgement/runs/artifact/gap-summary.js +12 -3
- package/dist/judgement/runs/artifact/replay-mapping.d.ts +1 -1
- package/dist/judgement/runs/artifact/replay-mapping.js +37 -11
- package/dist/judgement/runs/artifact/run-store.d.ts +14 -2
- package/dist/judgement/runs/artifact/run-store.js +195 -3
- package/dist/judgement/runs/context-tools.js +59 -1
- package/dist/judgement/runs/default-run-id.d.ts +3 -0
- package/dist/judgement/runs/default-run-id.js +16 -0
- package/dist/judgement/runs/drive-run.d.ts +71 -1
- package/dist/judgement/runs/drive-run.js +317 -5
- package/dist/judgement/runs/repair-prompt.js +1 -1
- package/dist/judgement/runs/resume.d.ts +44 -0
- package/dist/judgement/runs/resume.js +137 -0
- package/dist/judgement/runs/reticle-runner.js +13 -3
- package/dist/judgement/runs/runner-port.d.ts +5 -1
- package/dist/judgement/runs/runner-port.js +8 -2
- package/dist/judgement/runs/verification-sync.d.ts +5 -2
- package/dist/judgement/runs/verification-sync.js +40 -18
- package/dist/language/flows/change/gate.d.ts +10 -0
- package/dist/language/flows/change/gate.js +22 -0
- package/dist/language/flows/decision.js +36 -1
- package/dist/language/flows/fields/flow-secret-field.d.ts +12 -0
- package/dist/language/flows/fields/flow-secret-field.js +25 -2
- package/dist/language/flows/flow-anchor.d.ts +61 -10
- package/dist/language/flows/flow-anchor.js +98 -6
- package/dist/language/flows/flow-cross-step.d.ts +15 -0
- package/dist/language/flows/flow-cross-step.js +21 -0
- package/dist/language/flows/flow-intent.d.ts +1 -0
- package/dist/language/flows/flow-journey.d.ts +6 -0
- package/dist/language/flows/flow-journey.js +20 -0
- package/dist/language/flows/flow-learning.d.ts +4 -0
- package/dist/language/flows/flow-learning.js +45 -14
- package/dist/language/flows/flow-mutate-tools.js +5 -3
- package/dist/language/flows/flow-replay-run.d.ts +23 -9
- package/dist/language/flows/flow-replay-run.js +115 -110
- package/dist/language/flows/flow-replay-types.d.ts +1 -1
- package/dist/language/flows/flow-replay.d.ts +40 -1
- package/dist/language/flows/flow-replay.js +110 -22
- package/dist/language/flows/flow-result.d.ts +22 -1
- package/dist/language/flows/flow-result.js +47 -2
- package/dist/language/flows/flow-scope.js +5 -1
- package/dist/language/flows/flow-step-runners.d.ts +22 -2
- package/dist/language/flows/flow-step-runners.js +247 -47
- package/dist/language/flows/flow-store-for-session.d.ts +2 -2
- package/dist/language/flows/flow-store-for-session.js +7 -3
- package/dist/language/flows/flow-tools.d.ts +10 -0
- package/dist/language/flows/flow-tools.js +112 -89
- package/dist/language/flows/flows.d.ts +16 -1
- package/dist/language/flows/flows.js +74 -12
- package/dist/language/flows/heal-run.js +6 -4
- package/dist/language/flows/narrow-write.d.ts +7 -0
- package/dist/language/flows/narrow-write.js +36 -1
- package/dist/language/flows/recording/flake.d.ts +2 -2
- package/dist/language/flows/recording/recording-backtrack.js +14 -1
- package/dist/language/flows/recording/tape/recordings.d.ts +58 -4
- package/dist/language/flows/recording/tape/recordings.js +95 -13
- package/dist/language/flows/replay-from-hud.d.ts +20 -0
- package/dist/language/flows/replay-from-hud.js +51 -0
- package/dist/language/flows/replay.d.ts +9 -5
- package/dist/language/flows/replay.js +56 -15
- package/dist/language/flows/single-replay.d.ts +7 -0
- package/dist/language/flows/single-replay.js +26 -0
- package/dist/language/flows/suite/suite-flakes.js +2 -0
- package/dist/language/flows/suite-selection.d.ts +2 -15
- package/dist/language/flows/suite-selection.js +4 -3
- package/dist/language/flows/verify-change-tools.d.ts +1 -0
- package/dist/language/flows/verify-change-tools.js +202 -191
- package/dist/launch-chromium.d.ts +27 -5
- package/dist/launch-chromium.js +38 -8
- package/dist/memory/cloud/cloud-config.d.ts +22 -1
- package/dist/memory/cloud/cloud-config.js +34 -5
- package/dist/memory/cloud/cloud-sync.d.ts +17 -14
- package/dist/memory/cloud/cloud-sync.js +15 -4
- package/dist/memory/cloud/harness-config.d.ts +75 -1
- package/dist/memory/cloud/harness-config.js +115 -24
- package/dist/memory/cloud/hud-notices-source.d.ts +21 -0
- package/dist/memory/cloud/hud-notices-source.js +128 -0
- package/dist/memory/cloud/memory-scope.d.ts +161 -0
- package/dist/memory/cloud/memory-scope.js +227 -0
- package/dist/memory/cloud/sync-cycle.d.ts +44 -7
- package/dist/memory/cloud/sync-cycle.js +129 -15
- package/dist/memory/cloud/sync-daemon.d.ts +11 -0
- package/dist/memory/cloud/sync-daemon.js +121 -9
- package/dist/memory/cloud/sync-disk.d.ts +1 -1
- package/dist/memory/cloud/sync-disk.js +31 -10
- package/dist/memory/cloud/sync-screenshots.d.ts +32 -0
- package/dist/memory/cloud/sync-screenshots.js +105 -0
- package/dist/memory/cloud/unsynced-roots.d.ts +47 -0
- package/dist/memory/cloud/unsynced-roots.js +166 -0
- package/dist/memory/impact/account-watch.d.ts +34 -0
- package/dist/memory/impact/account-watch.js +59 -0
- package/dist/memory/impact/impact-recorder.d.ts +8 -0
- package/dist/memory/impact/impact-recorder.js +12 -2
- package/dist/memory/impact/impact-store.d.ts +17 -4
- package/dist/memory/impact/impact-store.js +169 -63
- package/dist/memory/intent/inline-intent.d.ts +1 -0
- package/dist/memory/intent/intent-shard-store.js +16 -4
- package/dist/memory/intent/intent-shard.d.ts +14 -2
- package/dist/memory/intent/intent-store.d.ts +1 -0
- package/dist/memory/intent/intent-tools.js +122 -4
- package/dist/memory/intent/open-intents.d.ts +6 -0
- package/dist/memory/intent/open-intents.js +10 -1
- package/dist/memory/intent/settled-words.d.ts +24 -0
- package/dist/memory/intent/settled-words.js +130 -0
- package/dist/memory/journal/drive-flow.d.ts +16 -0
- package/dist/memory/journal/drive-flow.js +34 -2
- package/dist/memory/journal/drive-run-flush.d.ts +2 -0
- package/dist/memory/journal/drive-run-flush.js +20 -5
- package/dist/memory/journal/envelope.d.ts +8 -8
- package/dist/memory/journal/journal-recorder.js +52 -3
- package/dist/memory/journal/on-disk/retention.d.ts +8 -0
- package/dist/memory/journal/on-disk/retention.js +32 -2
- package/dist/memory/journal/on-disk/startup-maintenance.js +3 -1
- package/dist/memory/journal/on-disk/workspace-tiers.js +9 -4
- package/dist/memory/journal/session-end.d.ts +15 -1
- package/dist/memory/journal/session-end.js +42 -9
- package/dist/memory/project/artifact-root-resolver.d.ts +26 -1
- package/dist/memory/project/artifact-root-resolver.js +125 -16
- package/dist/memory/project/artifact-root.d.ts +46 -8
- package/dist/memory/project/artifact-root.js +89 -10
- package/dist/memory/project/dir/reticle-dir.d.ts +18 -2
- package/dist/memory/project/dir/reticle-dir.js +26 -3
- package/dist/memory/project/link-directory.d.ts +15 -0
- package/dist/memory/project/link-directory.js +44 -0
- package/dist/memory/project/project-tools.js +22 -3
- package/dist/memory/project/root-claims.d.ts +6 -0
- package/dist/memory/project/root-claims.js +39 -0
- package/dist/memory/project/session-root.d.ts +26 -1
- package/dist/memory/project/session-root.js +49 -5
- package/dist/memory/project/sync-status.d.ts +85 -0
- package/dist/memory/project/sync-status.js +224 -0
- package/dist/memory/recall/memory-tools.js +47 -2
- package/dist/memory/recall/platform-memory.d.ts +34 -0
- package/dist/memory/recall/platform-memory.js +139 -0
- package/dist/memory/recall/project-memory.d.ts +19 -0
- package/dist/memory/recall/project-memory.js +80 -13
- package/dist/portal/bridge/bridge.d.ts +9 -3
- package/dist/portal/bridge/bridge.js +82 -22
- package/dist/portal/bridge/harness-request.d.ts +23 -0
- package/dist/portal/bridge/harness-request.js +27 -0
- package/dist/portal/bridge/pairing-token.d.ts +9 -0
- package/dist/portal/bridge/pairing-token.js +17 -0
- package/dist/portal/bridge/wrong-path.d.ts +17 -0
- package/dist/portal/bridge/wrong-path.js +35 -0
- package/dist/portal/input/network-mock-tools.js +11 -2
- package/dist/portal/input/real-input.d.ts +83 -10
- package/dist/portal/input/real-input.js +218 -30
- package/dist/portal/input/viewport-tools.js +3 -3
- package/dist/portal/pool/browser-pool.d.ts +70 -9
- package/dist/portal/pool/browser-pool.js +190 -37
- package/dist/portal/pool/context-permissions.d.ts +33 -0
- package/dist/portal/pool/context-permissions.js +33 -0
- package/dist/portal/pool/lease-marker-stamp.d.ts +23 -0
- package/dist/portal/pool/lease-marker-stamp.js +49 -0
- package/dist/portal/pool/playwright-launcher.d.ts +35 -0
- package/dist/portal/pool/playwright-launcher.js +64 -3
- package/dist/portal/pool/pool-contract.d.ts +28 -5
- package/dist/portal/session/agent-link.d.ts +8 -0
- package/dist/portal/session/agent-link.js +17 -0
- package/dist/portal/session/command-payload.d.ts +8 -0
- package/dist/portal/session/command-payload.js +24 -0
- package/dist/portal/session/daemon-answers.d.ts +3 -3
- package/dist/portal/session/daemon-answers.js +4 -2
- package/dist/portal/session/dev-server/dev-command.d.ts +21 -0
- package/dist/portal/session/dev-server/dev-command.js +87 -12
- package/dist/portal/session/facts/departure-note.d.ts +22 -0
- package/dist/portal/session/facts/departure-note.js +47 -0
- package/dist/portal/session/facts/observed-state.d.ts +16 -18
- package/dist/portal/session/facts/observed-state.js +46 -3
- package/dist/portal/session/facts/session-replaced.d.ts +5 -0
- package/dist/portal/session/facts/session-replaced.js +5 -0
- package/dist/portal/session/first-run-wiring.d.ts +42 -0
- package/dist/portal/session/first-run-wiring.js +132 -0
- package/dist/portal/session/human/live-control.d.ts +9 -2
- package/dist/portal/session/human/live-control.js +12 -3
- package/dist/portal/session/human/notes-ledger.d.ts +20 -0
- package/dist/portal/session/human/notes-ledger.js +55 -0
- package/dist/portal/session/human/review-store.d.ts +12 -0
- package/dist/portal/session/human/review-store.js +18 -10
- package/dist/portal/session/live-control-tools.d.ts +0 -13
- package/dist/portal/session/live-control-tools.js +107 -13
- package/dist/portal/session/narration-args.d.ts +5 -0
- package/dist/portal/session/narration-args.js +17 -0
- package/dist/portal/session/no-session-diagnosis.d.ts +8 -1
- package/dist/portal/session/no-session-diagnosis.js +46 -9
- package/dist/portal/session/no-session-next-action.d.ts +31 -0
- package/dist/portal/session/no-session-next-action.js +159 -60
- package/dist/portal/session/no-session-watch.d.ts +14 -1
- package/dist/portal/session/no-session-watch.js +227 -17
- package/dist/portal/session/presence/session-lease.js +1 -1
- package/dist/portal/session/presence/session-mirror.js +3 -0
- package/dist/portal/session/recorded-gaps.d.ts +97 -0
- package/dist/portal/session/recorded-gaps.js +251 -0
- package/dist/portal/session/serving-directory.d.ts +27 -0
- package/dist/portal/session/serving-directory.js +45 -0
- package/dist/portal/session/session-health.d.ts +18 -0
- package/dist/portal/session/session-health.js +9 -1
- package/dist/portal/session/session-info.d.ts +8 -1
- package/dist/portal/session/session-info.js +8 -1
- package/dist/portal/session/session-manager.d.ts +39 -0
- package/dist/portal/session/session-manager.js +98 -11
- package/dist/portal/session/session-reaper.js +4 -1
- package/dist/portal/session/session-successor.d.ts +13 -0
- package/dist/portal/session/session-successor.js +1 -1
- package/dist/portal/session/session-tools.js +26 -3
- package/dist/portal/session/session.d.ts +22 -30
- package/dist/portal/session/session.js +81 -79
- package/dist/portal/session/timing/command-timeout.js +25 -1
- package/dist/portal/session/timing/wall-clock.d.ts +1 -1
- package/dist/portal/session/timing/wall-clock.js +1 -1
- package/dist/portal/session/zero-install-first-call.d.ts +31 -0
- package/dist/portal/session/zero-install-first-call.js +88 -0
- package/dist/start-options.d.ts +12 -0
- package/dist/start-wiring.d.ts +63 -0
- package/dist/start-wiring.js +169 -0
- package/dist/status-payload.d.ts +23 -1
- package/dist/status-payload.js +36 -1
- package/dist/surface/http-server.js +18 -2
- package/dist/surface/mcp/attach-memory.d.ts +1 -0
- package/dist/surface/mcp/attach-memory.js +12 -1
- package/dist/surface/mcp/mcp-proxy.d.ts +9 -0
- package/dist/surface/mcp/mcp-proxy.js +65 -13
- package/dist/surface/mcp/mcp.d.ts +34 -6
- package/dist/surface/mcp/mcp.js +61 -17
- package/dist/surface/mcp/proxy/drive-calls.d.ts +10 -0
- package/dist/surface/mcp/proxy/drive-calls.js +27 -0
- package/dist/surface/mcp/proxy/mcp-post-transport.js +5 -0
- package/dist/surface/mcp/server-instructions.d.ts +4 -2
- package/dist/surface/mcp/server-instructions.js +32 -14
- package/dist/surface/mcp/shared-params.js +2 -2
- package/dist/surface/mcp/surface-vocabulary.d.ts +2 -0
- package/dist/surface/mcp/surface-vocabulary.js +1 -0
- package/dist/surface/tools/account-tool.d.ts +22 -0
- package/dist/surface/tools/account-tool.js +157 -0
- package/dist/surface/tools/act/act-danger.d.ts +11 -0
- package/dist/surface/tools/act/act-danger.js +38 -1
- package/dist/surface/tools/act/act-observation.d.ts +33 -0
- package/dist/surface/tools/act/act-observation.js +57 -0
- package/dist/surface/tools/act/act-preflight.js +25 -2
- package/dist/surface/tools/act/act-target.js +8 -3
- package/dist/surface/tools/act/navigation/navigate-arrival.d.ts +8 -0
- package/dist/surface/tools/act/navigation/navigate-arrival.js +56 -2
- package/dist/surface/tools/act/resolve-target.d.ts +1 -1
- package/dist/surface/tools/act/resolve-target.js +18 -3
- package/dist/surface/tools/act/screen-request.d.ts +34 -0
- package/dist/surface/tools/act/screen-request.js +113 -0
- package/dist/surface/tools/act/sequence-grade.d.ts +8 -0
- package/dist/surface/tools/act/sequence-grade.js +13 -2
- package/dist/surface/tools/act/settle-in-flight.js +25 -3
- package/dist/surface/tools/act-sequence-tool.js +138 -29
- package/dist/surface/tools/act-tools.d.ts +0 -9
- package/dist/surface/tools/act-tools.js +71 -41
- package/dist/surface/tools/agent/app-notes-learning.d.ts +7 -0
- package/dist/surface/tools/agent/app-notes-learning.js +80 -0
- package/dist/surface/tools/agent/app-notes.d.ts +4 -0
- package/dist/surface/tools/agent/app-notes.js +48 -0
- package/dist/surface/tools/agent/build-staleness.d.ts +7 -0
- package/dist/surface/tools/agent/build-staleness.js +62 -0
- package/dist/surface/tools/agent/compact-envelope.d.ts +80 -0
- package/dist/surface/tools/agent/compact-envelope.js +374 -0
- package/dist/surface/tools/agent/for-the-agent.d.ts +12 -0
- package/dist/surface/tools/agent/for-the-agent.js +44 -0
- package/dist/surface/tools/agent/notices.d.ts +50 -0
- package/dist/surface/tools/agent/notices.js +152 -0
- package/dist/surface/tools/agent/reteach.d.ts +11 -0
- package/dist/surface/tools/agent/reteach.js +50 -0
- package/dist/surface/tools/args/alias-args.d.ts +5 -0
- package/dist/surface/tools/args/alias-args.js +10 -0
- package/dist/surface/tools/args/confirm-dangerous-arg.d.ts +6 -0
- package/dist/surface/tools/args/confirm-dangerous-arg.js +6 -0
- package/dist/surface/tools/assert/assert-source.d.ts +15 -0
- package/dist/surface/tools/assert/assert-source.js +40 -0
- package/dist/surface/tools/assert/assert-verdict.d.ts +1 -1
- package/dist/surface/tools/assert/assert-verdict.js +42 -17
- package/dist/surface/tools/browser-tools.js +51 -2
- package/dist/surface/tools/chat-drives.d.ts +101 -0
- package/dist/surface/tools/chat-drives.js +409 -0
- package/dist/surface/tools/coverage-tools.d.ts +2 -10
- package/dist/surface/tools/coverage-tools.js +2 -53
- package/dist/surface/tools/dynamic-tools.js +29 -1
- package/dist/surface/tools/empty-session-list.d.ts +51 -0
- package/dist/surface/tools/empty-session-list.js +120 -0
- package/dist/surface/tools/error-recovery.d.ts +14 -0
- package/dist/surface/tools/error-recovery.js +105 -8
- package/dist/surface/tools/explore-tools.d.ts +31 -1
- package/dist/surface/tools/explore-tools.js +438 -66
- package/dist/surface/tools/feedback-tools.d.ts +2 -3
- package/dist/surface/tools/feedback-tools.js +18 -3
- package/dist/surface/tools/gap-novelty.d.ts +3 -1
- package/dist/surface/tools/gap-novelty.js +8 -1
- package/dist/surface/tools/harness-explore.d.ts +118 -57
- package/dist/surface/tools/harness-explore.js +344 -292
- package/dist/surface/tools/harness-gate.d.ts +88 -0
- package/dist/surface/tools/harness-gate.js +235 -0
- package/dist/surface/tools/harness-hunt.d.ts +43 -0
- package/dist/surface/tools/harness-hunt.js +215 -0
- package/dist/surface/tools/harness-plan.d.ts +17 -0
- package/dist/surface/tools/harness-plan.js +38 -0
- package/dist/surface/tools/harness-script.d.ts +30 -0
- package/dist/surface/tools/harness-script.js +560 -0
- package/dist/surface/tools/harness-tab-guard.d.ts +5 -0
- package/dist/surface/tools/harness-tab-guard.js +27 -0
- package/dist/surface/tools/harness-toolset.d.ts +22 -1
- package/dist/surface/tools/harness-toolset.js +101 -7
- package/dist/surface/tools/human-notes.d.ts +16 -0
- package/dist/surface/tools/human-notes.js +27 -0
- package/dist/surface/tools/invoke-tool.d.ts +5 -2
- package/dist/surface/tools/invoke-tool.js +263 -85
- package/dist/surface/tools/lease-hint.js +26 -5
- package/dist/surface/tools/lease-permissions.d.ts +33 -0
- package/dist/surface/tools/lease-permissions.js +73 -0
- package/dist/surface/tools/lease-readiness.d.ts +38 -0
- package/dist/surface/tools/lease-readiness.js +57 -0
- package/dist/surface/tools/lease-seed.d.ts +49 -0
- package/dist/surface/tools/lease-seed.js +167 -0
- package/dist/surface/tools/lease-tools.d.ts +13 -24
- package/dist/surface/tools/lease-tools.js +146 -197
- package/dist/surface/tools/live-call-text.js +4 -4
- package/dist/surface/tools/merge-tools.js +42 -2
- package/dist/surface/tools/merged-name-redirect.js +4 -0
- package/dist/surface/tools/next-step.d.ts +29 -0
- package/dist/surface/tools/next-step.js +214 -0
- package/dist/surface/tools/observe-tools.js +45 -9
- package/dist/surface/tools/platform-moment.d.ts +72 -0
- package/dist/surface/tools/platform-moment.js +296 -0
- package/dist/surface/tools/query-hint-schema.d.ts +7 -0
- package/dist/surface/tools/query-hint-schema.js +10 -0
- package/dist/surface/tools/read-tools.js +71 -14
- package/dist/surface/tools/real-input-attempt.js +96 -13
- package/dist/surface/tools/reticle-result.d.ts +120 -0
- package/dist/surface/tools/reticle-result.js +364 -0
- package/dist/surface/tools/tool-kit.d.ts +83 -3
- package/dist/surface/tools/tool-kit.js +77 -7
- package/dist/surface/tools/tools.js +43 -59
- package/dist/telemetry/account-envelope.d.ts +7 -0
- package/dist/telemetry/account-envelope.js +61 -0
- package/dist/telemetry/agent-client.d.ts +15 -0
- package/dist/telemetry/agent-client.js +57 -0
- package/dist/telemetry/app-instrumented.js +9 -2
- package/dist/telemetry/argument-shape.d.ts +7 -0
- package/dist/telemetry/argument-shape.js +86 -1
- package/dist/telemetry/automation-hint.d.ts +2 -3
- package/dist/telemetry/automation-hint.js +33 -8
- package/dist/telemetry/cli-telemetry.js +7 -2
- package/dist/telemetry/daemon-telemetry.js +3 -0
- package/dist/telemetry/error-fingerprint.d.ts +10 -1
- package/dist/telemetry/error-fingerprint.js +61 -5
- package/dist/telemetry/feedback-cli.d.ts +0 -13
- package/dist/telemetry/feedback-cli.js +0 -77
- package/dist/telemetry/feedback.d.ts +13 -0
- package/dist/telemetry/feedback.js +183 -17
- package/dist/telemetry/harness-run.d.ts +18 -0
- package/dist/telemetry/harness-run.js +80 -0
- package/dist/telemetry/hud-events.d.ts +16 -0
- package/dist/telemetry/hud-events.js +27 -0
- package/dist/telemetry/hud-metrics.d.ts +29 -6
- package/dist/telemetry/hud-metrics.js +116 -25
- package/dist/telemetry/init-telemetry.js +2 -2
- package/dist/telemetry/install-source.d.ts +13 -25
- package/dist/telemetry/install-source.js +44 -3
- package/dist/telemetry/mcp-connection.d.ts +0 -14
- package/dist/telemetry/mcp-connection.js +5 -1
- package/dist/telemetry/onboarding-firsts.d.ts +32 -0
- package/dist/telemetry/onboarding-firsts.js +81 -6
- package/dist/telemetry/platform-linked.d.ts +5 -0
- package/dist/telemetry/platform-linked.js +32 -0
- package/dist/telemetry/project-profile.js +5 -3
- package/dist/telemetry/proxy-telemetry.js +4 -1
- package/dist/telemetry/session-metrics.d.ts +15 -4
- package/dist/telemetry/session-metrics.js +88 -52
- package/dist/telemetry/telemetry.d.ts +38 -2
- package/dist/telemetry/telemetry.js +144 -34
- package/dist/telemetry/verification-of.d.ts +3 -1
- package/dist/telemetry/verification-of.js +13 -4
- package/dist/wire-journal.d.ts +2 -2
- package/dist/wire-journal.js +20 -6
- package/docs/README.md +3 -3
- package/docs/actions.mdx +6 -3
- package/docs/adapters.md +1 -1
- package/docs/agent-cheatsheet.md +25 -28
- package/docs/architecture.md +5 -5
- package/docs/autodrive.md +33 -28
- package/docs/benchmarks.md +5 -5
- package/docs/best-practices.mdx +27 -9
- package/docs/capabilities.mdx +14 -16
- package/docs/cli/affected.mdx +1 -1
- package/docs/cli/cloud.mdx +54 -75
- package/docs/cli/doctor.mdx +14 -3
- package/docs/cli/drive.mdx +20 -14
- package/docs/cli/feedback.mdx +3 -3
- package/docs/cli/gate.mdx +7 -2
- package/docs/cli/help.mdx +50 -55
- package/docs/cli/init.mdx +43 -28
- package/docs/cli/license.mdx +12 -8
- package/docs/cli/mcp.mdx +4 -4
- package/docs/cli/open.mdx +3 -3
- package/docs/cli/report.mdx +4 -2
- package/docs/cli/restart.mdx +2 -2
- package/docs/cli/rollback.mdx +14 -8
- package/docs/cli/serve.mdx +4 -4
- package/docs/cli/setup.mdx +23 -0
- package/docs/cli/status.mdx +18 -5
- package/docs/cli/stop.mdx +67 -8
- package/docs/cli/try.mdx +62 -0
- package/docs/cli/update.mdx +4 -3
- package/docs/cli/verify.mdx +17 -6
- package/docs/cli/version.mdx +5 -4
- package/docs/cli.mdx +111 -42
- package/docs/debugging.md +3 -3
- package/docs/deploy-checks.md +1 -1
- package/docs/desktop.mdx +9 -3
- package/docs/enterprise.md +11 -10
- package/docs/environment.mdx +7 -8
- package/docs/faq.mdx +3 -3
- package/docs/first-drive.md +5 -4
- package/docs/flows.md +35 -27
- package/docs/for-agents.md +4 -5
- package/docs/frameworks.mdx +32 -21
- package/docs/getting-started.md +65 -61
- package/docs/human-control.md +16 -16
- package/docs/index.mdx +15 -42
- package/docs/install-agentic.mdx +22 -37
- package/docs/install-manual.mdx +23 -13
- package/docs/instrumentation.mdx +5 -3
- package/docs/integration-patterns.md +7 -7
- package/docs/license-activation.mdx +1 -1
- package/docs/multi-agent-testing.md +24 -6
- package/docs/packages/babel-plugin.mdx +4 -2
- package/docs/packages/browser.mdx +16 -10
- package/docs/packages/core.mdx +12 -5
- package/docs/packages/electron.mdx +3 -2
- package/docs/packages/engine.mdx +1 -1
- package/docs/packages/eslint-plugin.mdx +18 -12
- package/docs/packages/next.mdx +8 -7
- package/docs/packages/open-verification.mdx +1 -1
- package/docs/packages/server.mdx +5 -5
- package/docs/packages/tauri.mdx +9 -9
- package/docs/packages/test.mdx +4 -10
- package/docs/packages/vite-plugin.mdx +32 -4
- package/docs/packages.mdx +11 -15
- package/docs/platform-integration.md +6 -5
- package/docs/predicates.mdx +40 -24
- package/docs/quickstart.mdx +69 -30
- package/docs/required-checks.md +8 -7
- package/docs/reticle-manual.md +15 -5
- package/docs/skill-file.mdx +17 -79
- package/docs/skill-setup.md +9 -9
- package/docs/skill.md +200 -0
- package/docs/system-map.md +7 -7
- package/docs/telemetry.md +23 -25
- package/docs/testing.md +4 -4
- package/docs/token-efficiency.md +12 -12
- package/docs/tools/act-and-wait.mdx +9 -2
- package/docs/tools/act-sequence.mdx +6 -7
- package/docs/tools/act.mdx +2 -2
- package/docs/tools/assert.mdx +18 -17
- package/docs/tools/console.mdx +9 -9
- package/docs/tools/inspect.mdx +16 -7
- package/docs/tools/look.mdx +24 -0
- package/docs/tools/navigate.mdx +5 -3
- package/docs/tools/network.mdx +2 -2
- package/docs/tools/observe.mdx +6 -6
- package/docs/tools/overview.mdx +34 -33
- package/docs/tools/query.mdx +5 -5
- package/docs/tools/session-and-feedback.mdx +22 -13
- package/docs/tools/sessions.mdx +8 -8
- package/docs/tools/snapshot.mdx +6 -5
- package/docs/tools/state.mdx +9 -9
- package/docs/tools/tools-and-run.mdx +26 -24
- package/docs/tools/verify.mdx +28 -0
- package/docs/tools/wait-for.mdx +8 -4
- package/docs/troubleshooting.mdx +21 -6
- package/docs/usage.md +55 -46
- package/docs/use-cases.mdx +3 -3
- package/docs/vs-chrome-devtools-mcp.mdx +9 -6
- package/docs/vs-playwright-mcp.mdx +3 -1
- package/docs/what-is-recorded.md +17 -5
- package/docs/what-is-reticle.mdx +5 -3
- package/docs/why-reticle.mdx +1 -1
- package/package.json +9 -12
- package/dist/command/cli/demo/demo-page.d.ts +0 -78
- package/dist/command/cli/demo/demo-page.js +0 -241
- package/dist/command/cli/demo/demo-run.d.ts +0 -38
- package/dist/command/cli/demo/demo-run.js +0 -138
- package/dist/features/harness/driver.d.ts +0 -50
- package/dist/features/harness/driver.js +0 -236
- package/dist/features/harness/jev-driver.d.ts +0 -188
- package/dist/features/harness/jev-driver.js +0 -678
- package/dist/features/harness/openai-driver.d.ts +0 -58
- package/dist/features/harness/openai-driver.js +0 -206
- package/dist/judgement/hunt/hunt-report.d.ts +0 -49
- package/dist/judgement/hunt/hunt-report.js +0 -84
- package/dist/language/flows/buddy-status.d.ts +0 -25
- package/dist/language/flows/buddy-status.js +0 -32
- package/dist/language/flows/change/watch-batcher.d.ts +0 -18
- package/dist/language/flows/change/watch-batcher.js +0 -19
- package/dist/memory/cloud/harness-offer.d.ts +0 -44
- package/dist/memory/cloud/harness-offer.js +0 -145
- package/dist/memory/project/dir/fill-value-store.d.ts +0 -32
- package/dist/memory/project/dir/fill-value-store.js +0 -88
- package/dist/surface/tools/feature-capture.d.ts +0 -151
- package/dist/surface/tools/feature-capture.js +0 -235
- package/dist/surface/tools/tool-hit-rate.d.ts +0 -87
- package/dist/surface/tools/tool-hit-rate.js +0 -90
- package/dist/telemetry/harness-drive.d.ts +0 -4
- package/dist/telemetry/harness-drive.js +0 -35
- package/dist/telemetry/identify.d.ts +0 -22
- package/dist/telemetry/identify.js +0 -73
- package/docs/cli/capsules.mdx +0 -70
- package/docs/cli/hunt.mdx +0 -73
- package/docs/cli/identify.mdx +0 -76
- package/docs/cli/kill.mdx +0 -91
- package/docs/cli/watch.mdx +0 -62
- package/docs/local-registry.md +0 -143
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The tutorial: one sequence, two audiences.
|
|
3
|
-
*
|
|
4
|
-
* A human wants to know what to do next and why it is worth doing. An agent wants the exact call and
|
|
5
|
-
* the exact shape of the answer, because prose it has to interpret is a turn it has to spend. Write
|
|
6
|
-
* for one and hope the other copes, and you get a page agents skip and humans skim.
|
|
7
|
-
*
|
|
8
|
-
* What both MUST share is the order. Two audiences taking different routes through one product is
|
|
9
|
-
* how a support answer stops matching what anybody actually did.
|
|
10
|
-
*
|
|
11
|
-
* The sequence is not arbitrary either. It ends at a VERDICT because a tour that ends at "you can see
|
|
12
|
-
* the page now" has taught the least valuable half: looking is not verifying, and an agent that
|
|
13
|
-
* learns only to look will report that it looked. And it declares the consequence BEFORE acting,
|
|
14
|
-
* because that ordering IS the idea — naming what should happen first is the difference between a
|
|
15
|
-
* check and a rationalisation written afterwards.
|
|
16
|
-
*/
|
|
17
1
|
import { type OnboardingStep } from '@reticlehq/core/telemetry';
|
|
18
2
|
/**
|
|
19
3
|
* The two ONBOARD steps a SHOWN tour can honestly answer.
|
|
@@ -30,87 +14,3 @@ import { type OnboardingStep } from '@reticlehq/core/telemetry';
|
|
|
30
14
|
* which is the only place they are a fact.
|
|
31
15
|
*/
|
|
32
16
|
export declare function tutorialShownSteps(): OnboardingStep[];
|
|
33
|
-
export declare const TutorialAudience: {
|
|
34
|
-
/** Prose, and a reason per step. */
|
|
35
|
-
readonly HUMAN: "human";
|
|
36
|
-
/** The call, and what comes back. */
|
|
37
|
-
readonly AGENT: "agent";
|
|
38
|
-
};
|
|
39
|
-
export type TutorialAudience = (typeof TutorialAudience)[keyof typeof TutorialAudience];
|
|
40
|
-
export interface TutorialStep {
|
|
41
|
-
id: string;
|
|
42
|
-
/** What this step is, in words. Always present: an agent reading only calls learns the what, not the why. */
|
|
43
|
-
say: string;
|
|
44
|
-
/** Why it is worth doing. The half that stops a tutorial being a list of keystrokes. */
|
|
45
|
-
why: string;
|
|
46
|
-
/** The exact call, for the audience that would otherwise have to infer it from the prose. */
|
|
47
|
-
call?: string;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* The same steps, shaped for who is reading.
|
|
51
|
-
*
|
|
52
|
-
* The agent form keeps the prose as well as the call. An agent that has only the call learns what to
|
|
53
|
-
* type and not what it means, which is exactly the reader that later reports a green it cannot
|
|
54
|
-
* explain.
|
|
55
|
-
*/
|
|
56
|
-
export declare function tutorialScript(audience: TutorialAudience): TutorialStep[];
|
|
57
|
-
/**
|
|
58
|
-
* The script as text for whoever asked.
|
|
59
|
-
*
|
|
60
|
-
* A human gets the reason on its own line, because the reason is what makes the step worth doing and
|
|
61
|
-
* a list of commands without them is a keystroke tour. An agent gets the call, because prose it has
|
|
62
|
-
* to interpret is a turn it has to spend — and it gets the prose too, since an agent that has only
|
|
63
|
-
* the call learns what to type and not what it means, which is the reader that later reports a green
|
|
64
|
-
* it cannot explain.
|
|
65
|
-
*/
|
|
66
|
-
/**
|
|
67
|
-
* What to do now the tour is over.
|
|
68
|
-
*
|
|
69
|
-
* Every other stage of setup ends by naming the next command — `install.sh` points at `reticle init`
|
|
70
|
-
* and this tutorial, `init` points at the dev server and `status`. This one ended at step 4 and
|
|
71
|
-
* stopped, so the stage whose entire job is to teach the sequence was the only one that never said
|
|
72
|
-
* how to start it. The steps above describe tools that need an instrumented, running app, and a
|
|
73
|
-
* reader who has just been told that a verdict is the point and shown no way to reach one is exactly
|
|
74
|
-
* where a funnel stalls.
|
|
75
|
-
*
|
|
76
|
-
* Split from `renderTutorial` so the closing block is a value a caller can assert on, rather than a
|
|
77
|
-
* string only findable by matching rendered prose.
|
|
78
|
-
*/
|
|
79
|
-
export declare function tutorialNextSteps(audience: TutorialAudience, restartAgent?: boolean): string;
|
|
80
|
-
/**
|
|
81
|
-
* What the installer prints when it has finished.
|
|
82
|
-
*
|
|
83
|
-
* Installation and onboarding are ONE script, so the tour is not conditional on anything. Gating it
|
|
84
|
-
* on `process.stdout.isTTY` does not work: that is `undefined` through every pipe, so the tour never
|
|
85
|
-
* prints. A heuristic that silently answers "nobody is watching" is worse than no heuristic.
|
|
86
|
-
*
|
|
87
|
-
* It ends with the tour's OWN closing, which already names `reticle init`. Adding a second "Next:"
|
|
88
|
-
* under it would be the same instruction twice in ten lines.
|
|
89
|
-
*/
|
|
90
|
-
export declare function installClosing(registered?: boolean): string;
|
|
91
|
-
export declare function renderTutorial(audience: TutorialAudience): string;
|
|
92
|
-
export type DemoPlan = {
|
|
93
|
-
ok: true;
|
|
94
|
-
ref: string;
|
|
95
|
-
name: string;
|
|
96
|
-
call: string;
|
|
97
|
-
} | {
|
|
98
|
-
ok: false;
|
|
99
|
-
because: string;
|
|
100
|
-
};
|
|
101
|
-
/**
|
|
102
|
-
* Pick something safe on THIS page, and build the call that proves it moved.
|
|
103
|
-
*
|
|
104
|
-
* The sequence is the tutorial's; what this adds is a target from the app actually in front of the
|
|
105
|
-
* user, because a walkthrough against a fixture teaches the fixture. The consequence is declared in
|
|
106
|
-
* the call rather than checked afterwards — a demo that ends without a verdict would teach the exact
|
|
107
|
-
* habit the tutorial exists to correct.
|
|
108
|
-
*
|
|
109
|
-
* Refusing is a real outcome. A page with nothing safe on it gets told so, because demonstrating on
|
|
110
|
-
* "Delete account" to avoid an awkward message is not a trade anybody would make deliberately.
|
|
111
|
-
*/
|
|
112
|
-
export declare function demoPlan(controls: readonly {
|
|
113
|
-
ref: string;
|
|
114
|
-
name: string;
|
|
115
|
-
role?: string;
|
|
116
|
-
}[]): DemoPlan;
|
|
@@ -1,34 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The tutorial: one sequence, two audiences.
|
|
3
|
-
*
|
|
4
|
-
* A human wants to know what to do next and why it is worth doing. An agent wants the exact call and
|
|
5
|
-
* the exact shape of the answer, because prose it has to interpret is a turn it has to spend. Write
|
|
6
|
-
* for one and hope the other copes, and you get a page agents skip and humans skim.
|
|
7
|
-
*
|
|
8
|
-
* What both MUST share is the order. Two audiences taking different routes through one product is
|
|
9
|
-
* how a support answer stops matching what anybody actually did.
|
|
10
|
-
*
|
|
11
|
-
* The sequence is not arbitrary either. It ends at a VERDICT because a tour that ends at "you can see
|
|
12
|
-
* the page now" has taught the least valuable half: looking is not verifying, and an agent that
|
|
13
|
-
* learns only to look will report that it looked. And it declares the consequence BEFORE acting,
|
|
14
|
-
* because that ordering IS the idea — naming what should happen first is the difference between a
|
|
15
|
-
* check and a rationalisation written afterwards.
|
|
16
|
-
*/
|
|
17
1
|
import { OnboardingPhase, OnboardingStepStatus, } from '@reticlehq/core/telemetry';
|
|
18
|
-
import { TOUR_STEPS } from '@reticlehq/core/tour';
|
|
19
|
-
/**
|
|
20
|
-
* The steps, from the one place both surfaces read them.
|
|
21
|
-
*
|
|
22
|
-
* They used to be a private array here, which is why the browser could not render the same tour:
|
|
23
|
-
* nothing outside this package could see them. `title` and `anchor` are the carousel's business and
|
|
24
|
-
* a terminal ignores them.
|
|
25
|
-
*/
|
|
26
|
-
const STEPS = TOUR_STEPS.map((s) => ({
|
|
27
|
-
id: s.id,
|
|
28
|
-
say: s.say,
|
|
29
|
-
why: s.why,
|
|
30
|
-
...(undefined === s.call ? {} : { call: s.call }),
|
|
31
|
-
}));
|
|
32
2
|
/**
|
|
33
3
|
* The two ONBOARD steps a SHOWN tour can honestly answer.
|
|
34
4
|
*
|
|
@@ -50,154 +20,3 @@ export function tutorialShownSteps() {
|
|
|
50
20
|
status: OnboardingStepStatus.COMPLETED,
|
|
51
21
|
}));
|
|
52
22
|
}
|
|
53
|
-
export const TutorialAudience = {
|
|
54
|
-
/** Prose, and a reason per step. */
|
|
55
|
-
HUMAN: 'human',
|
|
56
|
-
/** The call, and what comes back. */
|
|
57
|
-
AGENT: 'agent',
|
|
58
|
-
};
|
|
59
|
-
/**
|
|
60
|
-
* The same steps, shaped for who is reading.
|
|
61
|
-
*
|
|
62
|
-
* The agent form keeps the prose as well as the call. An agent that has only the call learns what to
|
|
63
|
-
* type and not what it means, which is exactly the reader that later reports a green it cannot
|
|
64
|
-
* explain.
|
|
65
|
-
*/
|
|
66
|
-
export function tutorialScript(audience) {
|
|
67
|
-
return STEPS.map((step) => TutorialAudience.AGENT === audience
|
|
68
|
-
? { ...step, call: step.call ?? '' }
|
|
69
|
-
: // A human is not handed a raw call to paste without understanding it; the prose carries it.
|
|
70
|
-
{ id: step.id, say: step.say, why: step.why });
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* The script as text for whoever asked.
|
|
74
|
-
*
|
|
75
|
-
* A human gets the reason on its own line, because the reason is what makes the step worth doing and
|
|
76
|
-
* a list of commands without them is a keystroke tour. An agent gets the call, because prose it has
|
|
77
|
-
* to interpret is a turn it has to spend — and it gets the prose too, since an agent that has only
|
|
78
|
-
* the call learns what to type and not what it means, which is the reader that later reports a green
|
|
79
|
-
* it cannot explain.
|
|
80
|
-
*/
|
|
81
|
-
/**
|
|
82
|
-
* What to do now the tour is over.
|
|
83
|
-
*
|
|
84
|
-
* Every other stage of setup ends by naming the next command — `install.sh` points at `reticle init`
|
|
85
|
-
* and this tutorial, `init` points at the dev server and `status`. This one ended at step 4 and
|
|
86
|
-
* stopped, so the stage whose entire job is to teach the sequence was the only one that never said
|
|
87
|
-
* how to start it. The steps above describe tools that need an instrumented, running app, and a
|
|
88
|
-
* reader who has just been told that a verdict is the point and shown no way to reach one is exactly
|
|
89
|
-
* where a funnel stalls.
|
|
90
|
-
*
|
|
91
|
-
* Split from `renderTutorial` so the closing block is a value a caller can assert on, rather than a
|
|
92
|
-
* string only findable by matching rendered prose.
|
|
93
|
-
*/
|
|
94
|
-
export function tutorialNextSteps(audience, restartAgent = false) {
|
|
95
|
-
const lines = TutorialAudience.AGENT === audience
|
|
96
|
-
? [
|
|
97
|
-
'Next:',
|
|
98
|
-
' reticle init # instrument the project in this directory',
|
|
99
|
-
' reticle status # confirms the app connected, or says why it has not',
|
|
100
|
-
' then run the four steps above against it, and report the verdict',
|
|
101
|
-
]
|
|
102
|
-
: [
|
|
103
|
-
'Next:',
|
|
104
|
-
...(restartAgent
|
|
105
|
-
? [' restart your agent # it loads new tools only when it starts']
|
|
106
|
-
: []),
|
|
107
|
-
' cd <your project> && reticle init # wire Reticle into the app',
|
|
108
|
-
' npm run dev # then load it in a browser',
|
|
109
|
-
' reticle status # confirms the app connected, or says why not',
|
|
110
|
-
'',
|
|
111
|
-
// One line: the terminal wraps it at the reader's width, not ours.
|
|
112
|
-
'Then ask your agent to drive one real flow and report the verdict. That is the install proving itself, and it is the agent’s job rather than a command you run.',
|
|
113
|
-
];
|
|
114
|
-
return lines.join('\n');
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* What the installer prints when it has finished.
|
|
118
|
-
*
|
|
119
|
-
* Installation and onboarding are ONE script, so the tour is not conditional on anything. Gating it
|
|
120
|
-
* on `process.stdout.isTTY` does not work: that is `undefined` through every pipe, so the tour never
|
|
121
|
-
* prints. A heuristic that silently answers "nobody is watching" is worse than no heuristic.
|
|
122
|
-
*
|
|
123
|
-
* It ends with the tour's OWN closing, which already names `reticle init`. Adding a second "Next:"
|
|
124
|
-
* under it would be the same instruction twice in ten lines.
|
|
125
|
-
*/
|
|
126
|
-
export function installClosing(registered = true) {
|
|
127
|
-
// One line a step. The reasons are for `reticle tutorial`; right after an install they turned a
|
|
128
|
-
// four-step idea into twenty-five lines of prose between the reader and the next command.
|
|
129
|
-
const steps = tutorialScript(TutorialAudience.HUMAN).map((step, index) => ` ${String(index + 1)}. ${INSTALL_SAYS[step.id] ?? step.say}`);
|
|
130
|
-
return [
|
|
131
|
-
'',
|
|
132
|
-
'✓ Reticle is installed. How it works:',
|
|
133
|
-
...steps,
|
|
134
|
-
'',
|
|
135
|
-
tutorialNextSteps(TutorialAudience.HUMAN, registered),
|
|
136
|
-
].join('\n');
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Tour steps reworded for a reader who has no app wired yet. The in-app tour's "That panel is
|
|
140
|
-
* Reticle" points at a panel on screen; straight after an install there is none to point at.
|
|
141
|
-
*/
|
|
142
|
-
const INSTALL_SAYS = {
|
|
143
|
-
connect: 'Once `reticle init` wires your app, a Reticle panel appears in it: your proof the SDK is connected.',
|
|
144
|
-
};
|
|
145
|
-
export function renderTutorial(audience) {
|
|
146
|
-
const steps = tutorialScript(audience)
|
|
147
|
-
.map((step, index) => {
|
|
148
|
-
const head = `${String(index + 1)}. ${step.say}`;
|
|
149
|
-
const why = ` why: ${step.why}`;
|
|
150
|
-
return step.call === undefined || 0 === step.call.length
|
|
151
|
-
? `${head}\n${why}`
|
|
152
|
-
: `${head}\n${why}\n ${step.call}`;
|
|
153
|
-
})
|
|
154
|
-
.join('\n\n');
|
|
155
|
-
return `${steps}\n\n${tutorialNextSteps(audience)}`;
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Names that must never be demonstrated on.
|
|
159
|
-
*
|
|
160
|
-
* Deliberately broad, and deliberately matched on the NAME a user reads rather than on anything
|
|
161
|
-
* structural. A demo runs unattended against an app whose author has never seen this code, so the
|
|
162
|
-
* cost of being wrong is asymmetric: refusing a harmless button wastes a demo, clicking a harmful
|
|
163
|
-
* one costs somebody their data. When those are the two errors available, take the first one every
|
|
164
|
-
* time.
|
|
165
|
-
*
|
|
166
|
-
* `cancel` is here for the case that reads backwards: "Cancel subscription" is destructive, and a
|
|
167
|
-
* word-boundary match on a dismissive "Cancel" would be a false refusal — which is the cheap error.
|
|
168
|
-
*/
|
|
169
|
-
const UNSAFE_TO_DEMO = /delete|remove|deploy|publish|pay|purchase|buy|checkout|cancel|revoke|archive|reset|destroy|drop|send|submit|confirm/i;
|
|
170
|
-
/**
|
|
171
|
-
* Pick something safe on THIS page, and build the call that proves it moved.
|
|
172
|
-
*
|
|
173
|
-
* The sequence is the tutorial's; what this adds is a target from the app actually in front of the
|
|
174
|
-
* user, because a walkthrough against a fixture teaches the fixture. The consequence is declared in
|
|
175
|
-
* the call rather than checked afterwards — a demo that ends without a verdict would teach the exact
|
|
176
|
-
* habit the tutorial exists to correct.
|
|
177
|
-
*
|
|
178
|
-
* Refusing is a real outcome. A page with nothing safe on it gets told so, because demonstrating on
|
|
179
|
-
* "Delete account" to avoid an awkward message is not a trade anybody would make deliberately.
|
|
180
|
-
*/
|
|
181
|
-
export function demoPlan(controls) {
|
|
182
|
-
const safe = controls.find((c) => !UNSAFE_TO_DEMO.test(c.name));
|
|
183
|
-
if (safe === undefined) {
|
|
184
|
-
return {
|
|
185
|
-
ok: false,
|
|
186
|
-
because: 0 === controls.length
|
|
187
|
-
? 'nothing interactive is on this page yet — load the app and try again'
|
|
188
|
-
: 'no control here is safe to demonstrate on: every one reads as something that commits. ' +
|
|
189
|
-
'Drive it yourself with a consequence you choose.',
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
return {
|
|
193
|
-
ok: true,
|
|
194
|
-
ref: safe.ref,
|
|
195
|
-
name: safe.name,
|
|
196
|
-
// `{ element: { testid } }` reads naturally and is REFUSED: a consequence is a predicate with a
|
|
197
|
-
// `kind`, and act_and_wait says so in its own refusal text. This line is a call the reader is
|
|
198
|
-
// meant to paste, so a plausible-but-unparseable spelling here teaches the exact mistake that
|
|
199
|
-
// tool exists to catch.
|
|
200
|
-
call: `reticle_act_and_wait { ref: "${safe.ref}", action: "click", ` +
|
|
201
|
-
`until: { kind: "element", by: "testid", value: "<what should appear>" } }`,
|
|
202
|
-
};
|
|
203
|
-
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `reticle verify --results-json <file>`: the run, one line per journey, for a machine to read.
|
|
3
|
+
*
|
|
4
|
+
* The rendered report is for a person, and a CI step that has to post per-journey verdicts somewhere
|
|
5
|
+
* else would otherwise scrape it. Three words only, the engine's own: a skipped flow is `unknown`,
|
|
6
|
+
* never rounded up to `yes`, and the run is `yes` only when every journey is.
|
|
7
|
+
*/
|
|
8
|
+
import { Verified, type ReticleVerificationRun } from '@reticlehq/core';
|
|
9
|
+
type JourneyVerdict = typeof Verified.YES | typeof Verified.NO | typeof Verified.UNKNOWN;
|
|
10
|
+
export interface VerifyResults {
|
|
11
|
+
verdict: JourneyVerdict;
|
|
12
|
+
results: {
|
|
13
|
+
journey: string;
|
|
14
|
+
verdict: JourneyVerdict;
|
|
15
|
+
reason?: string;
|
|
16
|
+
}[];
|
|
17
|
+
}
|
|
18
|
+
export declare function verifyResults(run: ReticleVerificationRun): VerifyResults;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `reticle verify --results-json <file>`: the run, one line per journey, for a machine to read.
|
|
3
|
+
*
|
|
4
|
+
* The rendered report is for a person, and a CI step that has to post per-journey verdicts somewhere
|
|
5
|
+
* else would otherwise scrape it. Three words only, the engine's own: a skipped flow is `unknown`,
|
|
6
|
+
* never rounded up to `yes`, and the run is `yes` only when every journey is.
|
|
7
|
+
*/
|
|
8
|
+
import { RunFlowStatus, VerdictStatus, Verified, } from '@reticlehq/core';
|
|
9
|
+
function journeyVerdict(status) {
|
|
10
|
+
if (RunFlowStatus.FAIL === status)
|
|
11
|
+
return Verified.NO;
|
|
12
|
+
// A heal is consequence-verified before it is reported, so it proves as much as a pass.
|
|
13
|
+
if (RunFlowStatus.PASS === status || RunFlowStatus.HEALED === status)
|
|
14
|
+
return Verified.YES;
|
|
15
|
+
return Verified.UNKNOWN;
|
|
16
|
+
}
|
|
17
|
+
export function verifyResults(run) {
|
|
18
|
+
const results = run.flows.map((flow) => ({
|
|
19
|
+
journey: flow.name,
|
|
20
|
+
verdict: journeyVerdict(flow.status),
|
|
21
|
+
...(flow.failureReason === undefined ? {} : { reason: flow.failureReason }),
|
|
22
|
+
}));
|
|
23
|
+
const verdict = results.some((r) => Verified.NO === r.verdict)
|
|
24
|
+
? Verified.NO
|
|
25
|
+
: VerdictStatus.PASS === run.verdict.status && results.every((r) => Verified.YES === r.verdict)
|
|
26
|
+
? Verified.YES
|
|
27
|
+
: Verified.UNKNOWN;
|
|
28
|
+
return { verdict, results };
|
|
29
|
+
}
|
|
@@ -8,14 +8,3 @@ import type { OnboardingStep } from '@reticlehq/core/telemetry';
|
|
|
8
8
|
* reporter is built here and handed down to every command that needs one.
|
|
9
9
|
*/
|
|
10
10
|
export declare const reportStepFromCli: (step: OnboardingStep) => void;
|
|
11
|
-
/**
|
|
12
|
-
* The two ONBOARD steps `reticle tutorial` can honestly answer.
|
|
13
|
-
*
|
|
14
|
-
* Asking for the tour is a fact here, and so is having been shown what Reticle is. Whether the
|
|
15
|
-
* reader then looked, acted or proved is not — even on `tutorial --run`, which drives the demo: those
|
|
16
|
-
* three are reported by the daemon at the first look / act / verdict it actually witnesses, through
|
|
17
|
-
* the dispatch chokepoint, because that is the only place they are observations rather than claims.
|
|
18
|
-
* Reporting them from here would turn "the tour reached step four" into "somebody verified something",
|
|
19
|
-
* which is the same substitution the fourth step of the tour exists to warn about.
|
|
20
|
-
*/
|
|
21
|
-
export declare function reportTutorialShown(): void;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { reportOnboardingStep } from '../telemetry/onboarding-funnel.js';
|
|
2
|
-
import { tutorialShownSteps } from './cli/tutorial.js';
|
|
3
2
|
/**
|
|
4
3
|
* The CLI's half of the setup funnel.
|
|
5
4
|
*
|
|
@@ -11,17 +10,3 @@ import { tutorialShownSteps } from './cli/tutorial.js';
|
|
|
11
10
|
export const reportStepFromCli = (step) => {
|
|
12
11
|
void reportOnboardingStep(step);
|
|
13
12
|
};
|
|
14
|
-
/**
|
|
15
|
-
* The two ONBOARD steps `reticle tutorial` can honestly answer.
|
|
16
|
-
*
|
|
17
|
-
* Asking for the tour is a fact here, and so is having been shown what Reticle is. Whether the
|
|
18
|
-
* reader then looked, acted or proved is not — even on `tutorial --run`, which drives the demo: those
|
|
19
|
-
* three are reported by the daemon at the first look / act / verdict it actually witnesses, through
|
|
20
|
-
* the dispatch chokepoint, because that is the only place they are observations rather than claims.
|
|
21
|
-
* Reporting them from here would turn "the tour reached step four" into "somebody verified something",
|
|
22
|
-
* which is the same substitution the fourth step of the tour exists to warn about.
|
|
23
|
-
*/
|
|
24
|
-
export function reportTutorialShown() {
|
|
25
|
-
for (const step of tutorialShownSteps())
|
|
26
|
-
reportStepFromCli(step);
|
|
27
|
-
}
|
package/dist/command/cli.d.ts
CHANGED
|
@@ -2,5 +2,25 @@
|
|
|
2
2
|
import { parseCliArgs, CLI_USAGE } from './cli/cli-parse.js';
|
|
3
3
|
export { parseCliArgs, CLI_USAGE };
|
|
4
4
|
export type { CliResult } from './cli/cli-parse.js';
|
|
5
|
+
/**
|
|
6
|
+
* Said last, when the account is linked and the one thing left is installing a dependency. Exit 0:
|
|
7
|
+
* connect's job — signing in and linking — is done, and a non-zero exit read as a failed connect.
|
|
8
|
+
*/
|
|
9
|
+
export declare const MSG_CONNECTED_DEPS_PENDING: string;
|
|
10
|
+
/**
|
|
11
|
+
* How `reticle connect` exits: the cloud step's code when linking failed; 0 when it linked and setup
|
|
12
|
+
* finished or left only the dependency install (said in `note`); 1 when setup stopped for anything
|
|
13
|
+
* else. `initUnfinished` is why init's setup did not finish, or undefined when it did.
|
|
14
|
+
*/
|
|
15
|
+
export declare function connectExit(cloudCode: number, initUnfinished: string | undefined): {
|
|
16
|
+
code: number;
|
|
17
|
+
note?: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Report status to the terminal. `--json` writes one structured line to STDOUT so it can be piped
|
|
21
|
+
* into `jq`; the human-readable block goes to stdout too. `log()` stays on stderr (the MCP
|
|
22
|
+
* transport lives on stdout), so `--json` must not go through it.
|
|
23
|
+
*/
|
|
24
|
+
export declare function reportStatus(fields: Record<string, unknown>, json: boolean): void;
|
|
5
25
|
export declare function handleStatus(port: number, json?: boolean): Promise<void>;
|
|
6
26
|
export declare function main(): void;
|