@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
package/docs/quickstart.mdx
CHANGED
|
@@ -5,7 +5,7 @@ description: Install Reticle, connect your coding agent, and get a real verdict
|
|
|
5
5
|
icon: rocket
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
**
|
|
8
|
+
**Four steps: run the installer once per machine, run `reticle init` once per project, then optionally `reticle connect` for the dashboard and `reticle sync` to send runs.** Skip `init` and your agent's first `reticle_session` call wires the app instead. Reticle embeds a dev-only SDK in your running app and proves a browser session connected. No account needed for steps 1 and 2.
|
|
9
9
|
|
|
10
10
|
By the end of this page your agent will click a button in your app and prove what happened: the request that fired, the state that changed, and the file to open if it didn't.
|
|
11
11
|
|
|
@@ -16,7 +16,7 @@ By the end of this page your agent will click a button in your app and prove wha
|
|
|
16
16
|
|
|
17
17
|
## Prerequisites
|
|
18
18
|
|
|
19
|
-
- Node 20 or newer
|
|
19
|
+
- Node 20.11 or newer
|
|
20
20
|
- A web app you can run locally, and its dev server
|
|
21
21
|
- A coding agent that speaks MCP (Claude Code, Cursor, Codex, OpenCode, Windsurf, VS Code)
|
|
22
22
|
|
|
@@ -36,9 +36,9 @@ irm https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.ps1
|
|
|
36
36
|
|
|
37
37
|
</CodeGroup>
|
|
38
38
|
|
|
39
|
-
This puts `reticle` on your PATH and registers the MCP server with every coding agent it can reach: Claude Code, Cursor, Windsurf, VS Code, Zed, Gemini CLI, Copilot CLI, OpenCode, Warp, Kiro, Amazon Q, Cline, Amp, Continue and Factory Droid. Nothing is asked.
|
|
39
|
+
This puts `reticle` on your PATH and registers the MCP server with every coding agent it can reach: Claude Code, Cursor, Windsurf, VS Code, Zed, Gemini CLI, Copilot CLI, OpenCode, Antigravity, Warp, Kiro, Amazon Q, Cline, Roo Code, Amp, Continue and Factory Droid. Nothing is asked. It does not wire your app, and says so: that is step 2. Want a verdict first? Signed in, `reticle try <url>` drives a URL once in a window you watch.
|
|
40
40
|
|
|
41
|
-
Codex CLI keeps a TOML config that Reticle will not rewrite, so the installer prints the lines to paste and the file to paste them into.
|
|
41
|
+
Codex CLI keeps a TOML config that Reticle will not rewrite itself, so with the `codex` command installed the installer registers Reticle through `codex mcp add`. Without it, the installer prints the lines to paste and the file to paste them into.
|
|
42
42
|
|
|
43
43
|
<Note>
|
|
44
44
|
**Run this before opening your agent, and there is nothing to restart.** A coding agent reads its
|
|
@@ -46,26 +46,32 @@ Codex CLI keeps a TOML config that Reticle will not rewrite, so the installer pr
|
|
|
46
46
|
you open it. If it was already open, quit and reopen it once.
|
|
47
47
|
</Note>
|
|
48
48
|
|
|
49
|
-
Prefer not to pipe a script into a shell? The
|
|
49
|
+
Prefer not to pipe a script into a shell? The same result by hand:
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
52
|
npm install -g @reticlehq/server
|
|
53
53
|
npx @reticlehq/server setup mcp
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
## Step 2.
|
|
56
|
+
## Step 2. Wire this project
|
|
57
57
|
|
|
58
58
|
In your project directory, before opening your coding agent:
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
|
-
npx @reticlehq/server
|
|
61
|
+
RETICLE_INSTALL_SOURCE=docs_site npx @reticlehq/server init
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
This installs the SDK, wires your
|
|
64
|
+
This installs the dev-only SDK, wires your build config, starts the dev server, and checks that a browser session connected. Nothing from your project leaves your machine. If your dev server was already running, restart it once and hard-reload the tab: it read your build config before `init` edited it. Open your coding agent once this command finishes; if it was already open during installation, restart it to load the new tools. The `RETICLE_INSTALL_SOURCE` prefix is optional and only tells us which page you installed from. It is idempotent: run it twice and the second run reports what was already done rather than doing it again.
|
|
65
65
|
|
|
66
|
-
Step 1 is once per machine. This step is once per project.
|
|
66
|
+
Step 1 is once per machine. This step is once per project. **Skipping it is a common reason Reticle "does nothing":** the agent has the tools, but there is no app on the other end for them to see.
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
<Note>
|
|
69
|
+
**Skipped this step?** Ask your agent to verify something in the app. Its first `reticle_session`
|
|
70
|
+
call finds a project that has never connected, runs `init` there itself, and lists every file it
|
|
71
|
+
changed under `wired`. Asked about something unrelated, it offers to wire the app instead of doing
|
|
72
|
+
it. This works in Claude Code, Codex, Cursor and other MCP agents, including a second project
|
|
73
|
+
while Reticle is already running for another one.
|
|
74
|
+
</Note>
|
|
69
75
|
|
|
70
76
|
Prefer to install the skill and let the agent run setup itself? On Claude Code the plugin registers the MCP server and the skill in one step:
|
|
71
77
|
|
|
@@ -86,6 +92,7 @@ Useful flags for the local-only `reticle init` path:
|
|
|
86
92
|
|
|
87
93
|
```
|
|
88
94
|
reticle init [--dry-run] [--port N] [--no-mcp] [--no-install] [--app <dir>]
|
|
95
|
+
[--env KEY=VALUE]... [--files-only] [--json] [--relaunch]
|
|
89
96
|
--app picks WHICH app in a monorepo, when several are found
|
|
90
97
|
--no-mcp skips MORE than the server registration: also the agent rule files
|
|
91
98
|
(CLAUDE.md / AGENTS.md / .cursor) and the /reticle command, because all three
|
|
@@ -95,13 +102,38 @@ reticle init [--dry-run] [--port N] [--no-mcp] [--no-install] [--app <dir>]
|
|
|
95
102
|
Start with `reticle init --dry-run` if you want to see the app changes before anything is written.
|
|
96
103
|
|
|
97
104
|
<Tip>
|
|
98
|
-
In a monorepo, `init`
|
|
99
|
-
|
|
105
|
+
In a monorepo, `init` run at the root lists every app it found, each with its own
|
|
106
|
+
`reticle init --app <dir>` line, and stops. Run the line for the app you want: it writes that
|
|
107
|
+
app's files and starts nothing (add `--start` to boot it). With only one app, it wires that one
|
|
108
|
+
without asking.
|
|
100
109
|
</Tip>
|
|
101
110
|
|
|
102
111
|
Prefer to wire it yourself? See [Manual install](/install-manual). It is about ten lines, and worth reading once even if you let the agent do it, because it explains what the agent actually changed.
|
|
103
112
|
|
|
104
|
-
## Step 3.
|
|
113
|
+
## Step 3. Connect the dashboard (optional)
|
|
114
|
+
|
|
115
|
+
Skip this if you only want local verdicts. Everything above works without an account.
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
npx @reticlehq/server connect --project "My App"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
`connect` runs Step 2 first if this project isn't wired yet, so you can use it in place of `init`. Then it:
|
|
122
|
+
|
|
123
|
+
1. Opens a browser so you can sign in, or create a free account at app.reticle.sh. Approve the short code shown in the browser and in the terminal, and the command carries on by itself.
|
|
124
|
+
2. Links this folder to the cloud project you named, creating it if it doesn't exist. `npx @reticlehq/server status` shows the link.
|
|
125
|
+
3. Sends the runs and flows already on this machine.
|
|
126
|
+
|
|
127
|
+
After that, every verified run syncs on its own. To sync right now, for example before showing a teammate:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
npx @reticlehq/server sync # one sync
|
|
131
|
+
npx @reticlehq/server sync --watch # keep syncing while you work
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
A new account gets 10 free credits to try the Harness. What syncs, and how to switch each part off (`reticle config --runs/--memory/--flows on|off`), is in [What is recorded](/what-is-recorded). In CI, set `RETICLE_API_KEY` instead of signing in.
|
|
135
|
+
|
|
136
|
+
## Step 4. Check the setup
|
|
105
137
|
|
|
106
138
|
```bash
|
|
107
139
|
npx @reticlehq/server doctor
|
|
@@ -109,9 +141,9 @@ npx @reticlehq/server doctor
|
|
|
109
141
|
|
|
110
142
|
`doctor` diagnoses the whole setup in one command: Chromium, the daemon, the port. If something is wrong this is the page you want before you start debugging your app instead.
|
|
111
143
|
|
|
112
|
-
## Step
|
|
144
|
+
## Step 5. Open your app again when you need it
|
|
113
145
|
|
|
114
|
-
`connect` already started the dev server and opened the app. On a later day, start your dev server as usual, then:
|
|
146
|
+
`init` (or `connect`) already started the dev server and opened the app. On a later day, start your dev server as usual, then:
|
|
115
147
|
|
|
116
148
|
```bash
|
|
117
149
|
npx @reticlehq/server open
|
|
@@ -121,12 +153,13 @@ This reuses the tab you already have open, or opens one if you don't. The SDK co
|
|
|
121
153
|
|
|
122
154
|
<Warning>
|
|
123
155
|
If the browser console says `[Reticle] this page could not open a websocket to …`, your app and
|
|
124
|
-
the daemon disagree about the port. Set it explicitly:
|
|
125
|
-
|
|
126
|
-
|
|
156
|
+
the daemon disagree about the port. Set it explicitly: `RETICLE_PORT=4400 pnpm dev` (Vite
|
|
157
|
+
plugin), `reticle({ port: 4400 })` in `vite.config`, or
|
|
158
|
+
`reticle.connect({ url: 'ws://localhost:4400/reticle' })` by hand. The console
|
|
159
|
+
message names the exact address it tried.
|
|
127
160
|
</Warning>
|
|
128
161
|
|
|
129
|
-
## Step
|
|
162
|
+
## Step 6. Look at the page
|
|
130
163
|
|
|
131
164
|
Ask your agent to take a snapshot. This is what came back from a real app:
|
|
132
165
|
|
|
@@ -148,7 +181,7 @@ The whole snapshot cost **61 tokens**. This is `mode: "interactive"`, which retu
|
|
|
148
181
|
|
|
149
182
|
Each control has a `ref` like `e5`. That's the handle for the next step, and it stays valid until the element leaves the DOM, so you don't re-snapshot between actions.
|
|
150
183
|
|
|
151
|
-
## Step
|
|
184
|
+
## Step 7. Act, and prove it
|
|
152
185
|
|
|
153
186
|
Here is the whole idea of Reticle in one call. Your agent names the expected consequence **before** it acts:
|
|
154
187
|
|
|
@@ -218,7 +251,7 @@ Read what that actually proves:
|
|
|
218
251
|
|
|
219
252
|
## What "verified" can say
|
|
220
253
|
|
|
221
|
-
<CardGroup cols={
|
|
254
|
+
<CardGroup cols={2}>
|
|
222
255
|
<Card title="yes" icon="circle-check">
|
|
223
256
|
The consequence you named actually happened, and the evidence is attached.
|
|
224
257
|
</Card>
|
|
@@ -228,6 +261,9 @@ Read what that actually proves:
|
|
|
228
261
|
<Card title="unknown" icon="circle-question">
|
|
229
262
|
Reticle drove the app and could not tell. **This is not a pass.** Report it as unknown.
|
|
230
263
|
</Card>
|
|
264
|
+
<Card title="no-fault" icon="circle-minus">
|
|
265
|
+
Nothing was declared to prove, so nothing was checked. **Not a pass either:** add an `until`.
|
|
266
|
+
</Card>
|
|
231
267
|
</CardGroup>
|
|
232
268
|
|
|
233
269
|
That third state is the one that matters. Most tools have two outcomes and quietly file "I couldn't tell" under "fine". A verification layer that cannot admit uncertainty is just a very confident random number generator.
|
|
@@ -249,17 +285,19 @@ That third state is the one that matters. Most tools have two outcomes and quiet
|
|
|
249
285
|
</Accordion>
|
|
250
286
|
|
|
251
287
|
<Accordion title="Will any of this end up in my production build?">
|
|
252
|
-
No. The SDK is dev-only.
|
|
253
|
-
|
|
254
|
-
recommended wiring also guards the call behind `import.meta.env.DEV`,
|
|
255
|
-
locks.
|
|
288
|
+
No. The SDK is dev-only. A production `vite build` with the Vite plugin injects nothing and
|
|
289
|
+
replaces the SDK with an inert stub, and `connect()` self-disables when the build reports
|
|
290
|
+
`NODE_ENV=production`. The recommended wiring also guards the call behind `import.meta.env.DEV`,
|
|
291
|
+
so there are two independent locks.
|
|
256
292
|
</Accordion>
|
|
257
293
|
|
|
258
294
|
<Accordion title="Does my code or my app's data leave my machine?">
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
295
|
+
Not unless you link a project. The daemon runs on your machine and the SDK runs in your browser.
|
|
296
|
+
Nothing from your app leaves the machine until you link a project (`reticle connect`, or
|
|
297
|
+
`RETICLE_API_KEY` in CI). After that, what syncs is set by `reticle config`, and when the Harness
|
|
298
|
+
drives, the platform sees the steps it drives. Secret values never leave. Anonymous product
|
|
299
|
+
analytics are sent unless you opt out with `npx @reticlehq/server telemetry disable`, and they
|
|
300
|
+
never include your code or your app's data.
|
|
263
301
|
</Accordion>
|
|
264
302
|
|
|
265
303
|
<Accordion title="What if my framework is not React or Next.js?">
|
|
@@ -283,7 +321,8 @@ That third state is the one that matters. Most tools have two outcomes and quiet
|
|
|
283
321
|
Emit signals like `auth:granted` so your verdicts get stronger than "the DOM changed".
|
|
284
322
|
</Card>
|
|
285
323
|
<Card title="Every tool" icon="list" href="/tools/overview">
|
|
286
|
-
The
|
|
324
|
+
The 10 tools your agent sees by default, and the rest it reaches through `reticle_tools` and
|
|
325
|
+
`reticle_run`.
|
|
287
326
|
</Card>
|
|
288
327
|
<Card title="Run it in CI" icon="circle-check" href="/testing">
|
|
289
328
|
Turn this session into a suite that blocks a bad merge.
|
package/docs/required-checks.md
CHANGED
|
@@ -9,9 +9,9 @@ That gap is the difference between a gate and a decoration. A decoration still c
|
|
|
9
9
|
|
|
10
10
|
## How it works here
|
|
11
11
|
|
|
12
|
-
`ci.yml` ends in a single job called **`gate`**. It waits on every other job in that file and passes only when each one either succeeded or was legitimately skipped. So one required check, `gate`, covers
|
|
12
|
+
`ci.yml` ends in a single job called **`gate`**. It waits on every other job in that file and passes only when each one either succeeded or was legitimately skipped. So one required check, `gate`, covers every other job in `ci.yml` except `fixtures-dispatch`, which notifies another repository and never runs on a pull request.
|
|
13
13
|
|
|
14
|
-
That trick only reaches so far. A job can only wait on jobs in **its own workflow file**, so the
|
|
14
|
+
That trick only reaches so far. A job can only wait on jobs in **its own workflow file**, so the other workflows below cannot be folded into `gate`. Each has to be named in branch protection separately, or it blocks nothing.
|
|
15
15
|
|
|
16
16
|
`server/src/ci-aggregate-covers-jobs.test.ts` fails if a new workflow starts running on pull requests without being accounted for, and if a job in `ci.yml` is not watched by `gate`.
|
|
17
17
|
|
|
@@ -21,13 +21,14 @@ Set these as required status checks on the default branch:
|
|
|
21
21
|
|
|
22
22
|
| check | what it is | what merges without it |
|
|
23
23
|
| --- | --- | --- |
|
|
24
|
-
| `gate` | every job in `ci.yml`: build, tests, e2e, desktop, install, Rust, Windows, macOS, bench | a red build of any kind |
|
|
25
|
-
| `package-quality` | the published packages: exports and types correctness, and the browser SDK's size budget | a package that installs but cannot be imported, or a silently growing SDK |
|
|
26
|
-
| `break-gates` | onboarding | a broken first-run experience |
|
|
27
|
-
| `codeql` | security scan | a flagged vulnerability |
|
|
24
|
+
| `gate` | every job in `ci.yml`: build, tests, e2e, desktop, install, Rust, Windows, macOS, bench, package quality, the break gates | a red build of any kind (bench and the Windows install cells run only after merge) |
|
|
28
25
|
| `dco` | contributions are signed off | an unsigned contribution |
|
|
29
26
|
|
|
30
|
-
`
|
|
27
|
+
package-quality and the break gates (`launchers`, `early-gates`, `break-matrix`) run as jobs inside `ci.yml` and are covered by `gate`. They used to be separate workflows with no `merge_group` trigger, so requiring them by name would have stalled the queue.
|
|
28
|
+
|
|
29
|
+
CodeQL (`analyze (javascript-typescript)`) runs on pull requests and in the merge queue, but the ruleset does not require it, so a flagged vulnerability is reported rather than blocked.
|
|
30
|
+
|
|
31
|
+
`labeler`, `welcome` and `dependabot-auto-merge` are deliberately absent. They label a pull request, greet a first contribution, and turn on auto-merge for Dependabot updates the queue still gates; there is no result to block on.
|
|
31
32
|
|
|
32
33
|
## Adding a workflow
|
|
33
34
|
|
package/docs/reticle-manual.md
CHANGED
|
@@ -10,7 +10,9 @@ Every row below is a call that was made against a running app and the answer tha
|
|
|
10
10
|
|
|
11
11
|
`refused (names the fix)` means the error told you what to call instead, so you can correct without reading anything else. `refused (no fix named)` means it did not.
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## reticle_look { action: "page" }
|
|
14
|
+
|
|
15
|
+
Probed as `reticle_snapshot`, its name before the merge, which still answers. Call it as `reticle_look { action: "page" }` and pass the arguments below alongside `action`.
|
|
14
16
|
|
|
15
17
|
| you call it with | you get back | bytes |
|
|
16
18
|
| --- | --- | --- |
|
|
@@ -18,7 +20,9 @@ Every row below is a call that was made against a running app and the answer tha
|
|
|
18
20
|
| the documented call: `{"mode":"interactive"}` | ran | 434 |
|
|
19
21
|
| a value outside the allowed set: `{"mode":"not-a-mode"}` | refused (names the fix) | 236 |
|
|
20
22
|
|
|
21
|
-
##
|
|
23
|
+
## reticle_look { action: "find" }
|
|
24
|
+
|
|
25
|
+
Probed as `reticle_query`, its name before the merge, which still answers. Call it as `reticle_look { action: "find" }` and pass the arguments below alongside `action`.
|
|
22
26
|
|
|
23
27
|
| you call it with | you get back | bytes |
|
|
24
28
|
| --- | --- | --- |
|
|
@@ -26,7 +30,9 @@ Every row below is a call that was made against a running app and the answer tha
|
|
|
26
30
|
| the documented call: `{"by":"role","value":"button"}` | ran | 200 |
|
|
27
31
|
| a value outside the allowed set: `{"by":"telepathy","value":"x"}` | refused (names the fix) | 290 |
|
|
28
32
|
|
|
29
|
-
##
|
|
33
|
+
## reticle_observe { action: "network" }
|
|
34
|
+
|
|
35
|
+
Probed as `reticle_network`, its name before the merge, which still answers. Call it as `reticle_observe { action: "network" }` and pass the arguments below alongside `action`.
|
|
30
36
|
|
|
31
37
|
| you call it with | you get back | bytes |
|
|
32
38
|
| --- | --- | --- |
|
|
@@ -34,13 +40,17 @@ Every row below is a call that was made against a running app and the answer tha
|
|
|
34
40
|
| the documented call: `{"limit":5}` | ran | 1175 |
|
|
35
41
|
| a number outside its range: `{"limit":-1}` | refused (names the fix) | 222 |
|
|
36
42
|
|
|
37
|
-
##
|
|
43
|
+
## reticle_observe { action: "console" }
|
|
44
|
+
|
|
45
|
+
Probed as `reticle_console`, its name before the merge, which still answers. Call it as `reticle_observe { action: "console" }` and pass the arguments below alongside `action`.
|
|
38
46
|
|
|
39
47
|
| you call it with | you get back | bytes |
|
|
40
48
|
| --- | --- | --- |
|
|
41
49
|
| an argument the tool does not declare: `{"thisArgDoesNotExist":1}` | refused (names the fix) | 293 |
|
|
42
50
|
|
|
43
|
-
##
|
|
51
|
+
## reticle_look { action: "state" }
|
|
52
|
+
|
|
53
|
+
Probed as `reticle_state`, its name before the merge, which still answers. Call it as `reticle_look { action: "state" }` and pass the arguments below alongside `action`.
|
|
44
54
|
|
|
45
55
|
| you call it with | you get back | bytes |
|
|
46
56
|
| --- | --- | --- |
|
package/docs/skill-file.mdx
CHANGED
|
@@ -1,107 +1,45 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: 'The SKILL file: paste and go'
|
|
3
3
|
sidebarTitle: SKILL file
|
|
4
|
-
description: One URL you paste into any coding agent to teach it Reticle.
|
|
4
|
+
description: One URL you paste into any coding agent to teach it Reticle. Where it lives and what it tells the agent.
|
|
5
5
|
icon: graduation-cap
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
`SKILL.md` is one short document written for a coding agent. Its home is this docs site:
|
|
9
9
|
|
|
10
|
-
`SKILL.md` is a single document you hand to a coding agent. It teaches the agent to install Reticle, wire it into your app, and then drive a verification loop properly. Without you explaining any of it.
|
|
11
|
-
|
|
12
|
-
```
|
|
13
|
-
https://raw.githubusercontent.com/reticlehq/reticle/main/SKILL.md
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
That URL is live and returns the current version. Paste it into your agent and say "read this and set up Reticle".
|
|
17
|
-
|
|
18
|
-
<Note>
|
|
19
|
-
You often do not need it. `npx @reticlehq/server init` writes a `/reticle` slash command for
|
|
20
|
-
Claude Code automatically, and installs agent rule files for Claude and Cursor. The SKILL file is
|
|
21
|
-
for agents that `init` cannot configure, for a from-scratch install, or when you want the agent to
|
|
22
|
-
have the full protocol in context rather than a summary.
|
|
23
|
-
</Note>
|
|
24
|
-
|
|
25
|
-
## It has two modes, and it picks one itself
|
|
26
|
-
|
|
27
|
-
The first thing the document tells an agent to do is check which situation it is in:
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
cat .reticle.json 2>/dev/null || echo "NOT_FOUND"
|
|
31
10
|
```
|
|
32
|
-
|
|
33
|
-
- **Not found** → run **Setup mode**: register the MCP server, install the SDK, wire the entry point, validate the connection, and prove it on one flow while the user watches.
|
|
34
|
-
- **Found** → run **Test mode**: connect, orient, decide what to test, drive it, report.
|
|
35
|
-
|
|
36
|
-
One document, two jobs, no flag for you to remember. The second time you invoke it, it skips straight to the useful part.
|
|
37
|
-
|
|
38
|
-
## What Setup mode actually does
|
|
39
|
-
|
|
40
|
-
| Phase | What the agent does |
|
|
41
|
-
| --- | --- |
|
|
42
|
-
| Save the skill | Store it as `/reticle` so the loop is one word away from then on |
|
|
43
|
-
| Run `init`, then the first run | Without asking you questions it can answer itself, naming the journey worth proving as the `persona` |
|
|
44
|
-
| Manual fallbacks | Only when `init` could not run: an older CLI that stops after writing files, or the same failure twice |
|
|
45
|
-
| Validate | Confirm a session actually connected. Not that a checklist went green |
|
|
46
|
-
| Prove it | Drive one real flow while you watch, so the install ends in evidence |
|
|
47
|
-
|
|
48
|
-
That last row is the one that matters. Plenty of installs "succeed" and then nothing works. The skill does not consider itself finished until a real flow has produced a real verdict.
|
|
49
|
-
|
|
50
|
-
## What Test mode actually does
|
|
51
|
-
|
|
52
|
-
Five phases: connect, orient, decide what to test, run the tests, report. The reporting format is specified, which matters more than it sounds. An agent left to summarise freely will summarise optimistically.
|
|
53
|
-
|
|
54
|
-
The rules it operates under are the same ones these docs keep repeating:
|
|
55
|
-
|
|
56
|
-
- Only `reticle_act_and_wait` and `reticle_assert` produce a verdict.
|
|
57
|
-
- `verified: "unknown"` is not a pass.
|
|
58
|
-
- Never weaken a check to make it pass.
|
|
59
|
-
|
|
60
|
-
## Feedback is the first section, on purpose
|
|
61
|
-
|
|
62
|
-
Before setup, before anything, the document tells the agent that reporting problems is part of the job. And that this applies **during** setup, which is where Reticle is most likely to break and least likely to hear about it.
|
|
63
|
-
|
|
64
|
-
It even covers the case where nothing is installed yet:
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
npx @reticlehq/server feedback --agent --kind gap "init finished but no session ever connected"
|
|
11
|
+
https://docs.reticle.sh/skill.md
|
|
68
12
|
```
|
|
69
13
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
<Tip>
|
|
73
|
-
It also draws a line that saves everyone time: report defects in **Reticle**. A bug found in the
|
|
74
|
-
app under test is Reticle working correctly, and belongs in the answer to the user.
|
|
75
|
-
</Tip>
|
|
76
|
-
|
|
77
|
-
## It ships inside the package too
|
|
78
|
-
|
|
79
|
-
`SKILL.md` is bundled into `@reticlehq/server` at publish time, alongside a copy of this entire documentation site. So an agent that has already installed Reticle can read it from disk without a network round trip:
|
|
14
|
+
Paste that URL into the agent and say "read this and set up Reticle". It is the canonical file with [Agent Skill](https://agentskills.io) frontmatter (`name`, `description`) added. The repository copy, `https://raw.githubusercontent.com/reticlehq/reticle/main/SKILL.md`, has the same body without the frontmatter, and a test fails if the two ever differ. To install the rules as a skill instead, `npx skills add reticlehq/reticle` installs `reticle` (the Claude Code plugin's shorter restructure of this file, held to the same rules by that test) and the task skills beside it. The same file ships inside the package, so an agent with no network can read it from disk:
|
|
80
15
|
|
|
81
16
|
```
|
|
82
17
|
node_modules/@reticlehq/server/SKILL.md
|
|
83
18
|
node_modules/@reticlehq/server/docs/
|
|
84
19
|
```
|
|
85
20
|
|
|
86
|
-
|
|
21
|
+
The `docs/` folder beside it is a copy of this site.
|
|
22
|
+
|
|
23
|
+
## What it tells the agent
|
|
87
24
|
|
|
88
|
-
|
|
25
|
+
It is the critical path and nothing else. Read [SKILL.md](https://github.com/reticlehq/reticle/blob/main/SKILL.md) itself to get the rules exactly right; in short:
|
|
89
26
|
|
|
90
|
-
|
|
27
|
+
- **First move:** if the `reticle_*` tools are visible, call `reticle_session { action: "list" }`. If they are not, hand the user the installer line and stop.
|
|
28
|
+
- **Setup is `init`, then the first run.** `init` wires the app and waits for a session. It never drives. A dev server that was already running must be restarted once.
|
|
29
|
+
- **Done means a verdict.** A session listed means the SDK reached the page. Setup is finished when the first run returns a verdict.
|
|
30
|
+
- **Only `verified: "yes"` is a pass.** `unknown` means Reticle could not tell. Never weaken a check to make it pass.
|
|
31
|
+
- **Replay before you drive.** `reticle_verify { action: "change" }` or `{ action: "flows" }` re-verifies saved journeys in one call.
|
|
32
|
+
- **Report problems with Reticle** through `reticle_session { action: "feedback" }`, or `reticle feedback --agent` from the shell.
|
|
91
33
|
|
|
92
|
-
|
|
34
|
+
## Do you need it?
|
|
35
|
+
|
|
36
|
+
Often not. The installer registers the MCP server with your agents, and `reticle init` writes agent rule files and a `/reticle` command for Claude Code. The SKILL file is for agents `init` cannot configure, for a from-scratch install, or for an agent you want to hold the rules in context.
|
|
93
37
|
|
|
94
38
|
<CardGroup cols={2}>
|
|
95
39
|
<Card title="Agentic install" icon="wand-magic-sparkles" href="/install-agentic">
|
|
96
40
|
What `reticle init` does, with real output.
|
|
97
41
|
</Card>
|
|
98
|
-
<Card title="Manual install" icon="screwdriver-wrench" href="/install-manual">
|
|
99
|
-
Every step `init` cannot automate.
|
|
100
|
-
</Card>
|
|
101
42
|
<Card title="Agent cheat sheet" icon="bolt" href="/agent-cheatsheet">
|
|
102
43
|
The one-screen version of the drive loop.
|
|
103
44
|
</Card>
|
|
104
|
-
<Card title="Best practices" icon="star" href="/best-practices">
|
|
105
|
-
The habits that make verdicts worth trusting.
|
|
106
|
-
</Card>
|
|
107
45
|
</CardGroup>
|
package/docs/skill-setup.md
CHANGED
|
@@ -6,7 +6,7 @@ icon: wrench
|
|
|
6
6
|
|
|
7
7
|
You only need this page while you are setting Reticle up, which happens once per project. Once an app is connected, the everyday loop lives in `SKILL.md` and you never need to come back here.
|
|
8
8
|
|
|
9
|
-
**One command. It
|
|
9
|
+
**One command. It wires the app and proves a session connected. The verdict is the first run, after it.**
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
12
|
RETICLE_INSTALL_SOURCE=skill_file npx @reticlehq/server@latest init
|
|
@@ -14,7 +14,7 @@ RETICLE_INSTALL_SOURCE=skill_file npx @reticlehq/server@latest init
|
|
|
14
14
|
|
|
15
15
|
`@latest` is deliberate: `npx` caches, and a stale cached CLI is the most common silent setup failure. Never pin a version here.
|
|
16
16
|
|
|
17
|
-
That single command detects the framework and package manager, wires the build config, installs the SDK, registers the MCP server, starts the dev server, opens the app, and waits for a session to connect from inside it. It exits non-zero if nothing connected, and prints exactly what is left to do. Then prove a flow. That is the FIRST RUN, and it is a separate call: `reticle_verify { action: "explore", persona: "<who does what>" }
|
|
17
|
+
That single command detects the framework and package manager, wires the build config, installs the SDK, registers the MCP server, starts the dev server, opens the app, and waits for a session to connect from inside it. It exits non-zero if nothing connected, and prints exactly what is left to do. Then prove a flow. That is the FIRST RUN, and it is a separate call: drive one journey with `reticle_act_and_wait` and an `until` on its last step. On a project linked with `reticle connect`, `reticle_verify { action: "explore", persona: "<who does what>" }` lets the Reticle Harness drive it on the platform instead. Either way what was driven is saved as a flow, so later checks replay it with no model in the loop.
|
|
18
18
|
|
|
19
19
|
## What YOU decide, and pass in
|
|
20
20
|
|
|
@@ -22,7 +22,7 @@ The command reads the repository. It cannot read the request, and three things l
|
|
|
22
22
|
|
|
23
23
|
| flag | what only you know |
|
|
24
24
|
| --- | --- |
|
|
25
|
-
| `persona: "<what>"` | Not an `init` flag. It belongs to the FIRST RUN, `reticle_verify { action: "explore", persona: "<the journey worth proving>" }`. Which journey proves the thing the user asked for: code can list the buttons; it cannot know checkout matters and the theme toggle does not.
|
|
25
|
+
| `persona: "<what>"` | Not an `init` flag. It belongs to the FIRST RUN, `reticle_verify { action: "explore", persona: "<the journey worth proving>" }`. Which journey proves the thing the user asked for: code can list the buttons; it cannot know checkout matters and the theme toggle does not. Without one, the turns go into FINDING a flow. |
|
|
26
26
|
| `--env KEY=VALUE` | what the app needs to reach a usable state: the key from `.env.example`, the mock backend in the README, the variable that skips an auth wall. Repeatable. Without it a real app sits on a login screen and there is no flow to drive at all. |
|
|
27
27
|
| `--app <dir>` | which app in a monorepo. It can list the ones that are servable; only the request says which one is being worked on. |
|
|
28
28
|
|
|
@@ -34,7 +34,7 @@ The command reads the repository. It cannot read the request, and three things l
|
|
|
34
34
|
|
|
35
35
|
`⚠` lines and a non-zero exit are a to-do list, not a failed install. The command names the cause and prints the REMAINING steps from wherever it stopped, and it will not tell you to redo a phase that already worked. Do those, and re-run; re-running is safe.
|
|
36
36
|
|
|
37
|
-
**It is not finished until a verdict exists.**
|
|
37
|
+
**It is not finished until a verdict exists.** A session listed means the SDK reached the page. Setup is finished when the first run returns a verdict. Writing files is not an install. If it exits non-zero, the app is wired and something is still outstanding; say so plainly rather than reporting success.
|
|
38
38
|
|
|
39
39
|
**If the user gave you a license key**, see [License key](#license-key) below.
|
|
40
40
|
|
|
@@ -42,13 +42,13 @@ The command reads the repository. It cannot read the request, and three things l
|
|
|
42
42
|
|
|
43
43
|
## If that command could not run it
|
|
44
44
|
|
|
45
|
-
**Do not choose this path.** It is not the thorough version of the one above; it is what you fall back to when the command physically could not do the work, and taking it by preference
|
|
45
|
+
**Do not choose this path.** It is not the thorough version of the one above; it is what you fall back to when the command physically could not do the work, and taking it by preference turns a one-command install into a long manual one.
|
|
46
46
|
|
|
47
47
|
Use it only when ONE of these is true, and you can say which:
|
|
48
48
|
|
|
49
|
-
- `init` exited without ever printing `starting:` or
|
|
49
|
+
- `init` exited without ever printing `starting:` or `watching for an app to connect`, which means the CLI on this machine predates the runtime phases and stopped after writing files.
|
|
50
50
|
- `init` printed a to-do list, you did those things, re-ran it, and it stopped in the same place twice.
|
|
51
|
-
- There is no Node
|
|
51
|
+
- There is no Node 20.11 or newer on this machine, so nothing can run.
|
|
52
52
|
|
|
53
53
|
Anything else is not a reason: not a `⚠` in the report, not a step you would rather do yourself, not a feeling that you should check its work. Re-run the command. It is idempotent, it reports what is already wired, and it names what is still outstanding.
|
|
54
54
|
|
|
@@ -69,7 +69,7 @@ Do not reconstruct it from memory. Three things decide whether it works, and all
|
|
|
69
69
|
|
|
70
70
|
## The dev server, whoever starts it
|
|
71
71
|
|
|
72
|
-
**A dev server already running when `init` ran does not have Reticle in its bundle.** It read `vite.config.ts` / `next.config.js` at boot; `init` edited that file afterwards. The process keeps serving the old bundle, the page loads without the SDK, no session appears, and every symptom points at the wiring you just correctly did. This
|
|
72
|
+
**A dev server already running when `init` ran does not have Reticle in its bundle.** It read `vite.config.ts` / `next.config.js` at boot; `init` edited that file afterwards. The process keeps serving the old bundle, the page loads without the SDK, no session appears, and every symptom points at the wiring you just correctly did. This fails every time, not intermittently, and it is a common reason an install finds an empty session list.
|
|
73
73
|
|
|
74
74
|
So, in this order:
|
|
75
75
|
|
|
@@ -97,7 +97,7 @@ Enterprise features are unlocked by a signed key, verified locally with Ed25519
|
|
|
97
97
|
npx @reticlehq/server@latest init --license <key>
|
|
98
98
|
```
|
|
99
99
|
|
|
100
|
-
That writes `RETICLE_LICENSE_KEY` to the project's `.env` and adds `.env` to `.gitignore` if nothing there covers it. Do not do those two by hand: a key committed to git is a leaked credential, and it stays leaked after the file is removed. Confirm with `npx @reticlehq/server license`, which prints `active`, `eval`, `missing` or `expired`.
|
|
100
|
+
That writes `RETICLE_LICENSE_KEY` to the project's `.env` and adds `.env` to `.gitignore` if nothing there covers it. Do not do those two by hand: a key committed to git is a leaked credential, and it stays leaked after the file is removed. Confirm with `npx @reticlehq/server license`, which prints `active`, `eval`, `missing`, `invalid` or `expired`.
|
|
101
101
|
|
|
102
102
|
Never echo the key back in your reply, and never put it in a commit, a code comment, or a feedback report. The rest: `curl https://docs.reticle.sh/enterprise.md`.
|
|
103
103
|
|