@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/cli/cloud.mdx
CHANGED
|
@@ -4,13 +4,15 @@ description: Connect a project in one command, then read runs and regressions fr
|
|
|
4
4
|
icon: cloud
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
From your app directory, `reticle connect --project "My App"` wires the app, opens browser sign-in approval if needed, links the named cloud project, and syncs the local history already on this machine. Run the [installer](/quickstart) once on the machine first.
|
|
7
|
+
From your app directory, `reticle connect --project "My App"` wires the app, opens browser sign-in approval if needed, links the named cloud project, and syncs the local history already on this machine. Run the [installer](/quickstart) once on the machine first. `connect` is the one command for signing in, linking and choosing a project.
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
npx @reticlehq/server connect --project "My App"
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
If your daemon is not on the default port 4400, run `npx @reticlehq/server init --port <N>` first: `connect` takes no `--port`, and the `init` it runs for an unwired app uses the default.
|
|
14
|
+
|
|
15
|
+
Use `--url https://your-cloud-origin` for a self-hosted cloud. `connect` checks a saved sign-in against that exact host before reuse; if it has expired, the browser approval opens again. It mints or reuses a project-scoped key, so there is no key to paste. The browser asks you to sign in, or to create a free account at app.reticle.sh. A new account gets 10 free credits to try Harness; adding a card starts a 14-day trial with 500 credits, and the paid plan includes 1,000 credits per seat each month. Harness drives and chat checks spend credits; storing and syncing runs is free. What syncs, and how to switch each part off, is in [What is recorded](/what-is-recorded). A newly wired app may have no run to sync yet: ask your agent to verify one flow and the linked daemon will sync the result. Run `reticle status` to check who is signed in and whether this folder is linked, and `reticle sync` to send anything still pending.
|
|
14
16
|
|
|
15
17
|
The other cloud commands are thin clients over the `/v1` API. Their logic is server-side.
|
|
16
18
|
|
|
@@ -18,82 +20,41 @@ The other cloud commands are thin clients over the `/v1` API. Their logic is ser
|
|
|
18
20
|
|
|
19
21
|
| Path | Contents | Secret |
|
|
20
22
|
| --- | --- | --- |
|
|
21
|
-
| `~/.reticle/session.json` | `{ url, token, orgName }` from `reticle
|
|
22
|
-
| `~/.reticle/credentials.json` | Project-scoped API keys from `reticle
|
|
23
|
+
| `~/.reticle/session.json` | `{ url, token, orgName }` from `reticle connect` | Yes |
|
|
24
|
+
| `~/.reticle/credentials.json` | Project-scoped API keys from `reticle connect`, keyed by `projectId` | Yes |
|
|
23
25
|
| `<repo>/.reticle/cloud.json` | `{ projectId, projectName, url, sync, verify }`. The non-secret binding | No, commit it |
|
|
24
26
|
|
|
25
27
|
Auth for any command is `RETICLE_API_KEY` from the environment (the agent path) if set, otherwise the login token. `RETICLE_CLOUD_URL` (or its short form `RETICLE_URL`) overrides the endpoint; without it, a command uses the saved session's host, and otherwise the hosted service, `https://app.reticle.sh`.
|
|
26
28
|
|
|
27
29
|
## In CI
|
|
28
30
|
|
|
29
|
-
CI needs `RETICLE_API_KEY` and nothing else: no `
|
|
31
|
+
CI needs `RETICLE_API_KEY` and nothing else: no `connect`. Commit `.reticle/cloud.json`, store the key as a secret, and the daemon and `reticle sync` sync to the project the binding names. A key stored in `credentials.json` wins over the environment when both exist.
|
|
30
32
|
|
|
31
33
|
The environment key is only sent to the host it belongs to: `RETICLE_CLOUD_URL` when set, otherwise the hosted service. A repo linked to a self-hosted install therefore also needs `RETICLE_CLOUD_URL` set to that install in CI. A repo with no `cloud.json` and a key in the environment syncs to the hosted service, or to `RETICLE_CLOUD_URL`.
|
|
32
34
|
|
|
33
35
|
## The commands
|
|
34
36
|
|
|
35
|
-
### `reticle
|
|
37
|
+
### `reticle connect`
|
|
36
38
|
|
|
37
39
|
```bash
|
|
38
|
-
npx @reticlehq/server
|
|
39
|
-
npx @reticlehq/server login --email you@acme.com # headless: requests a code
|
|
40
|
-
npx @reticlehq/server login --email you@acme.com --code 123456 # headless: exchanges it
|
|
41
|
-
npx @reticlehq/server login --email you@acme.com --org "Acme" # --org is consulted only for a brand new account
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
With no `--email`, it runs a browser device flow like `gh auth login`: fetch a device and user code, open the browser to approve, poll until confirmed. With `--email` it keeps the two-step code path for CI and servers, because it proves you own the inbox before handing out a session. A local cloud whose dev mailer cannot deliver echoes the code back and completes in one command.
|
|
45
|
-
|
|
46
|
-
### `reticle logout`
|
|
47
|
-
|
|
48
|
-
Empties `session.json`. Per-project keys in `credentials.json` stay. Prints `{ "loggedOut": true }`.
|
|
49
|
-
|
|
50
|
-
### `reticle whoami`
|
|
51
|
-
|
|
52
|
-
The one call to make when you do not know your state. Real capture:
|
|
53
|
-
|
|
54
|
-
```json
|
|
55
|
-
{
|
|
56
|
-
"loggedInAs": "acme",
|
|
57
|
-
"repo": {
|
|
58
|
-
"attached": false,
|
|
59
|
-
"projectId": null,
|
|
60
|
-
"url": null,
|
|
61
|
-
"sync": { "runs": true, "memory": true, "flows": true },
|
|
62
|
-
"verify": "local"
|
|
63
|
-
}
|
|
64
|
-
}
|
|
40
|
+
npx @reticlehq/server connect [--project <name|id>] [--workspace <name|id>] [--url <cloud origin>] [--no-install]
|
|
65
41
|
```
|
|
66
42
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
```
|
|
70
|
-
→ this repo is not attached ... run `reticle link`
|
|
71
|
-
```
|
|
43
|
+
Signs in if needed (a browser device flow like `gh auth login`: approve in the browser, the CLI polls until confirmed), then binds this repository to a cloud project and sends local history. It **mints** a project-scoped key, so there is nothing to paste; with `RETICLE_API_KEY` already set, it resolves that key's project instead. `--project` accepts a slug id or a display name, and creates the project when no project has that name. Omitted, the project is named after the `projectId` in `.reticle.json`, else after this folder. `--workspace` picks the workspace to link in when you belong to more than one. `--no-install` is passed to the `init` it runs for an unwired app. Writes `cloud.json` and the key.
|
|
72
44
|
|
|
73
|
-
`
|
|
45
|
+
`reticle login`, `reticle link` and `reticle project` are the old spellings. They still work for one release and print one line naming `connect`. To sign in without a browser (an agent, a server), `login` keeps a two-step email path: `reticle login --email <e> [--org <name>]` mails a 6-digit code, then `reticle login --email <e> --code <123456>` signs in and links this repo. For CI, use `RETICLE_API_KEY` rather than any sign-in.
|
|
74
46
|
|
|
75
|
-
### `reticle
|
|
47
|
+
### `reticle logout`
|
|
76
48
|
|
|
77
49
|
```bash
|
|
78
|
-
npx @reticlehq/server
|
|
50
|
+
npx @reticlehq/server logout [--url <cloud origin>]
|
|
79
51
|
```
|
|
80
52
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
### `reticle project`
|
|
53
|
+
Signs out of ONE host. Which host: `--url`, else `RETICLE_CLOUD_URL`, else the active session. Every other host stays signed in, and per-project keys in `credentials.json` stay. Prints `{ "loggedOut": true, "url": "…" }`, naming the host it signed out of.
|
|
84
54
|
|
|
85
|
-
|
|
86
|
-
npx @reticlehq/server project ls
|
|
87
|
-
npx @reticlehq/server project create "My App"
|
|
88
|
-
npx @reticlehq/server project rename <projectId> "New name"
|
|
89
|
-
npx @reticlehq/server project rm <projectId>
|
|
90
|
-
```
|
|
55
|
+
### Who am I: `reticle status`
|
|
91
56
|
|
|
92
|
-
`
|
|
93
|
-
|
|
94
|
-
```
|
|
95
|
-
reticle: usage: reticle project <ls|create <name>|rename <id> <name>|rm <id>>
|
|
96
|
-
```
|
|
57
|
+
[`reticle status`](/cli/status) says who you are signed in as and whether this folder is linked to a cloud project, beside the daemon and session facts. The account half reads local files only and makes no call to the cloud. `reticle whoami` is the old spelling; it still works for one release and prints one line naming `status`.
|
|
97
58
|
|
|
98
59
|
### `reticle config`
|
|
99
60
|
|
|
@@ -104,45 +65,64 @@ npx @reticlehq/server config [--runs on|off] [--memory on|off] [--flows on|off]
|
|
|
104
65
|
Edits `.reticle/cloud.json` in place. Any value other than `on` or `off` (or `local` or `server` for `--verify`) exits `2`. Requires the repo to be linked; run in an unlinked repo it exits `2` before it looks at the flags at all:
|
|
105
66
|
|
|
106
67
|
```
|
|
107
|
-
reticle: no .reticle/cloud.json here ... run `reticle
|
|
68
|
+
reticle: no .reticle/cloud.json here ... run `reticle connect` first
|
|
108
69
|
```
|
|
109
70
|
|
|
110
|
-
### `reticle
|
|
71
|
+
### `reticle sync`
|
|
111
72
|
|
|
112
|
-
Sends local run artifacts from `.reticle` to the linked project, honoring the sync policy.
|
|
73
|
+
Sends local run artifacts from `.reticle` to the linked project, honoring the sync policy, and collects decisions made on the dashboard. Each switch removes only its own part: with `sync.runs` off no runs are sent, but flows and records still go unless they are off too. Prints `{ ok, project, sent, pulled }`, where `sent` carries the accepted counts and, when the server refused anything, a `rejected` array naming each run's index and reason and a `refused` array for flows, capsules and derived records. `sent.records` lists only the records the server accepted.
|
|
113
74
|
|
|
114
75
|
Runs go up in batches, so a large backlog is never one oversized request.
|
|
115
76
|
|
|
77
|
+
`reticle push` is the old name; it still works for one release and prints one line naming `sync`. Add `--watch` to keep syncing: it runs one cycle, waits, and runs the next, until you stop it with `Ctrl+C`. The wait is 60 seconds by default; set `RETICLE_SYNC_INTERVAL_MS` to change it. Add `--move-history` to also send the runs, flows and records made under this folder's previous link, after it was linked to another workspace.
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
npx @reticlehq/server sync --watch
|
|
81
|
+
```
|
|
82
|
+
|
|
116
83
|
What the platform cannot read is not sent at all, and a `notSent` array says why: a record kind an older platform does not know yet (this one alone leaves `ok` true), or a flow or run in a file version it does not read. Sending those would only be refused again on every cycle.
|
|
117
84
|
|
|
118
|
-
**A rejection is a failed
|
|
85
|
+
**A rejection is a failed sync.** If the server refuses any artifact, `ok` is `false` and the command exits `1`, even when other artifacts in the same bundle landed. The reason is kept as the last sync error, which `reticle status` reports, and the background daemon logs it once, until a cycle refuses nothing. A refused run is not offered again until its file changes or the platform reports that it reads more: until then it is listed under `notRetried`, and the summary reads `refused, not retried: N run(s) (reason)`. A refused artifact never reaches the dashboard and is re-offered on every cycle, so partial loss is still loss. `ok: true` and exit `0` mean everything offered was accepted, which includes the common case of a repo that was already up to date. The accepted counts still report what did land, so a partial sync is visible as one.
|
|
119
86
|
|
|
120
87
|
### `reticle runs`
|
|
121
88
|
|
|
122
89
|
The linked project's recent run artifacts. The key scopes the query server-side.
|
|
123
90
|
|
|
124
|
-
|
|
91
|
+
`reticle runs <runId>` reads one run, which is how to get back a Harness drive whose local `.reticle/runs/<runId>.drive.json` is gone. It exits `1` with "not synced yet, or not found" when the platform does not have it.
|
|
92
|
+
|
|
93
|
+
### `reticle runs regression`
|
|
125
94
|
|
|
126
|
-
|
|
95
|
+
Which flows broke relative to before. **Exits `3`** when any flow regressed. [`reticle gate`](/cli/gate) checks the same thing in a linked repo and exits `3` too, so CI needs only the gate.
|
|
127
96
|
|
|
128
|
-
### `reticle share`
|
|
97
|
+
### `reticle runs share`
|
|
129
98
|
|
|
130
99
|
```bash
|
|
131
|
-
npx @reticlehq/server share <runId>
|
|
100
|
+
npx @reticlehq/server runs share <runId>
|
|
132
101
|
```
|
|
133
102
|
|
|
134
|
-
Mints a public proof link for one run. A missing `runId` exits `2
|
|
103
|
+
Mints a public proof link for one run. A missing `runId` exits `2`.
|
|
135
104
|
|
|
105
|
+
### `reticle runs issues`
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
npx @reticlehq/server runs issues
|
|
109
|
+
npx @reticlehq/server runs issues --fix <fingerprint>
|
|
136
110
|
```
|
|
137
|
-
|
|
138
|
-
|
|
111
|
+
|
|
112
|
+
The triage queue from the dashboard. `--fix <fingerprint>` prints that one issue's fix prompt as bare text on stdout, so it can be piped straight into an agent. An unknown fingerprint exits `2`; an issue with no suggested fix prints nothing on stdout and exits `4`.
|
|
113
|
+
|
|
114
|
+
### `reticle runs memory`
|
|
115
|
+
|
|
116
|
+
What the linked project has learned, scoped to the project this folder is linked to. `--subject <name>` narrows it to one area. If the response cannot be shown to be about this project, it prints nothing on stdout and exits `1`.
|
|
117
|
+
|
|
118
|
+
`reticle regression`, `reticle share`, `reticle issues` and `reticle memory` are the old spellings. They still work for one release, with the same exit codes, and print one line naming the `runs` form.
|
|
139
119
|
|
|
140
120
|
## When the repo is not attached
|
|
141
121
|
|
|
142
|
-
`
|
|
122
|
+
`sync` and every `runs` command need a project to talk to. Without one they exit `1` with the same line on stderr, measured:
|
|
143
123
|
|
|
144
124
|
```
|
|
145
|
-
reticle: cloud not attached here
|
|
125
|
+
reticle: cloud not attached here: run `reticle connect`, or set RETICLE_API_KEY
|
|
146
126
|
```
|
|
147
127
|
|
|
148
128
|
## Exit codes
|
|
@@ -150,18 +130,17 @@ reticle: cloud not attached here ... run `reticle link` (or set RETICLE_API_KEY)
|
|
|
150
130
|
| Code | Meaning |
|
|
151
131
|
| --- | --- |
|
|
152
132
|
| `0` | Success |
|
|
153
|
-
| `1` | The API call failed, the repository is not attached where attachment is required, or `
|
|
133
|
+
| `1` | The API call failed, the repository is not attached where attachment is required, or `sync` had an artifact refused |
|
|
154
134
|
| `2` | Usage error, or not signed in and no `RETICLE_API_KEY` |
|
|
155
|
-
| `3` | `regression` only: at least one flow broke |
|
|
135
|
+
| `3` | `runs regression` only: at least one flow broke |
|
|
136
|
+
| `4` | `runs issues --fix` only: that issue carries no suggested fix |
|
|
156
137
|
|
|
157
138
|
Output is pretty-printed JSON on stdout. Errors and next-step nudges go to stderr, so an agent parsing stdout is unaffected.
|
|
158
139
|
|
|
159
140
|
## Worked example
|
|
160
141
|
|
|
161
142
|
```bash
|
|
162
|
-
npx @reticlehq/server
|
|
163
|
-
npx @reticlehq/server
|
|
164
|
-
npx @reticlehq/server
|
|
165
|
-
npx @reticlehq/server verify http://localhost:4173 # runs auto-push once linked
|
|
166
|
-
npx @reticlehq/server regression # exit 3 fails the pipeline
|
|
143
|
+
npx @reticlehq/server connect --project "Checkout" # signs in, creates the project if needed, links
|
|
144
|
+
npx @reticlehq/server verify http://localhost:4173 # runs sync automatically once linked
|
|
145
|
+
npx @reticlehq/server runs regression # exit 3 fails the pipeline
|
|
167
146
|
```
|
package/docs/cli/doctor.mdx
CHANGED
|
@@ -14,19 +14,21 @@ npx @reticlehq/server doctor [--port N]
|
|
|
14
14
|
|
|
15
15
|
| Flag | Type | Default | What it does |
|
|
16
16
|
| --- | --- | --- | --- |
|
|
17
|
-
| `--port N` | number | `
|
|
17
|
+
| `--port N` | number | `RETICLE_PORT`, else the port in `.reticle.json`, else the daemon already serving this project, else `4400` | Which bridge port to diagnose |
|
|
18
18
|
|
|
19
19
|
## What it prints
|
|
20
20
|
|
|
21
|
-
Human-readable lines on stdout, not the JSON log.
|
|
21
|
+
Human-readable lines on stdout, not the JSON log. A healthy setup (rows that print only on a condition are absent):
|
|
22
22
|
|
|
23
23
|
```
|
|
24
24
|
reticle doctor
|
|
25
25
|
node v22.14.0
|
|
26
26
|
chromium ✓ installed (chromium-1234)
|
|
27
|
-
daemon ✓ running on :4400 (pid 72698,
|
|
27
|
+
daemon ✓ running on :4400 (pid 72698, v3.7.0)
|
|
28
28
|
sessions ✓ 1 page connected
|
|
29
29
|
bridge port 4400 (your app must dial THIS port, not your dev-server port)
|
|
30
|
+
agent link ✓ an MCP client attached here and called tools before (a record, not a live check)
|
|
31
|
+
project ✓ wired here (my-app)
|
|
30
32
|
daemon log /Users/you/.reticle/daemon-4400.log
|
|
31
33
|
tracing RETICLE_TRACE=1 on the daemon for per-stage timings in that log
|
|
32
34
|
```
|
|
@@ -56,9 +58,12 @@ When nothing has connected, the `sessions` line fails and the daemon's own diagn
|
|
|
56
58
|
| `bridge port` | The port your app must dial, spelled out because mixing it up with the dev server port is the most common setup failure |
|
|
57
59
|
| `port check` | Only when your project's configured port disagrees with the one the daemon is on. Prints the mismatch rather than leaving you to spot it across two lines |
|
|
58
60
|
| `sibling` | Only when a well-known Reticle port other than this daemon's has a listener. An observation, not a diagnosis: that listener may or may not be related |
|
|
61
|
+
| `project` | Whether the app in this folder is wired: a `.reticle.json` with a readable `projectId`, or an app that has connected here before. Everything above can be green in a project that never ran `init` |
|
|
59
62
|
| `daemon log` | Where the structured daemon log lives |
|
|
60
63
|
| `tracing` | How to turn that log into a per-stage trace |
|
|
61
64
|
| `desktop` | Only on a desktop project. Every Electron and Tauri misconfiguration here fails silently, so it is diagnosed explicitly |
|
|
65
|
+
| `coverage` | Only with a connected app. What Reticle sees in it, out of eight capabilities: what is missing, what is not seen yet, and, once a verdict recorded a gap, a prompt to paste into your coding agent |
|
|
66
|
+
| `unsynced` | Only when a project folder holds runs the platform never got. Names the folder and the command that sends them, usually `reticle connect` run there |
|
|
62
67
|
|
|
63
68
|
## The chromium line
|
|
64
69
|
|
|
@@ -74,6 +79,12 @@ All three captures below are real, taken by pointing `PLAYWRIGHT_BROWSERS_PATH`
|
|
|
74
79
|
|
|
75
80
|
**`✓ using the installed Google Chrome`** (or Microsoft Edge) means the pinned build is absent and Reticle drives the browser you already have instead, through Playwright's channel. Nothing to do: the line also names the command that adds Playwright's own build, if you want it.
|
|
76
81
|
|
|
82
|
+
**`✓ using <path> (RETICLE_CHROMIUM_PATH)`** means you named the browser with [`RETICLE_CHROMIUM_PATH`](/environment), so the bundled revision is not checked at all. If the path does not exist, is not a file (a directory, say), or is not executable, the line says which instead, and offers no install command, because installing would not fix a wrong path:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
chromium ✗ RETICLE_CHROMIUM_PATH points at /opt/nope/chrome, which does not exist; fix the path, or unset it to use Playwright's own Chromium
|
|
86
|
+
```
|
|
87
|
+
|
|
77
88
|
When neither is there, Reticle does not refuse. The first command that needs a browser (a lease, `verify`, a drive) runs the bundled Playwright's own pinned install for you, announced on stderr so `reticle mcp`'s stdout stays clean. The two `✗` lines below are what you see when that has not happened yet, or failed.
|
|
78
89
|
|
|
79
90
|
**`✗ wrong revision`** means builds are installed and none of them is the wanted one. One pinned download away. The line names the revision Playwright wants, then every revision the root actually holds, then the exact command:
|
package/docs/cli/drive.mdx
CHANGED
|
@@ -12,13 +12,13 @@ npx @reticlehq/server drive <url> [--headless] [--headed]
|
|
|
12
12
|
|
|
13
13
|
## Arguments and flags
|
|
14
14
|
|
|
15
|
-
| Argument
|
|
16
|
-
|
|
|
17
|
-
| `url`
|
|
18
|
-
| `--headed`
|
|
19
|
-
| `--headless` | boolean
|
|
15
|
+
| Argument | Type | Default | What it does |
|
|
16
|
+
| --- | --- | --- | --- |
|
|
17
|
+
| `url` | string, positional, **required** | none | The page to drive |
|
|
18
|
+
| `--headed` | boolean | on by default outside CI | Show the browser |
|
|
19
|
+
| `--headless` | boolean | on when `CI` or `RETICLE_HEADLESS` is set, or on Linux with no display | Hide it |
|
|
20
20
|
|
|
21
|
-
`
|
|
21
|
+
`serve` and `mcp` show their browser by default too, so you can watch your agent's run; `--headless` hides it. `restart` always starts its daemon headless.
|
|
22
22
|
|
|
23
23
|
## What it prints
|
|
24
24
|
|
|
@@ -30,7 +30,7 @@ Omitting the URL is a usage error. Real capture, with the usage block that follo
|
|
|
30
30
|
{"t":"2026-08-15T18:43:06.977Z","event":"reticle_usage_error","message":"drive needs a url"}
|
|
31
31
|
drive needs a url
|
|
32
32
|
|
|
33
|
-
usage:
|
|
33
|
+
usage: reticle <command> (or npx @reticlehq/server <command>)
|
|
34
34
|
...
|
|
35
35
|
```
|
|
36
36
|
|
|
@@ -42,10 +42,10 @@ usage: npx @reticlehq/server <command> (or `reticle <command>` once the bin i
|
|
|
42
42
|
|
|
43
43
|
## Exit codes
|
|
44
44
|
|
|
45
|
-
| Code | Meaning
|
|
46
|
-
|
|
|
47
|
-
| `0`
|
|
48
|
-
| `1`
|
|
45
|
+
| Code | Meaning |
|
|
46
|
+
| --- | --- |
|
|
47
|
+
| `0` | Running in the foreground, or attached with a connected session |
|
|
48
|
+
| `1` | No URL, an unknown flag, the engine failed to start, attach failed, or the attached tab never connected |
|
|
49
49
|
|
|
50
50
|
## When a daemon already has the port
|
|
51
51
|
|
|
@@ -53,14 +53,20 @@ A daemon on `:4400` is the normal state the moment any agent connects, and `driv
|
|
|
53
53
|
|
|
54
54
|
```bash
|
|
55
55
|
$ npx @reticlehq/server drive http://localhost:5173
|
|
56
|
-
{"event":"reticle_drive_attached","port":4400,"url":"http://localhost:5173","sessionId":"lease-9f2b…","ready":true}
|
|
56
|
+
{"event":"reticle_drive_attached","port":4400,"url":"http://localhost:5173","sessionId":"lease-9f2b…","ready":true,"projectId":"web","title":"Web"}
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
A plain-text line follows it naming the same session, how long it survives untouched (any tool call against it resets that), and, if the page never dialled the bridge, why.
|
|
59
|
+
A plain-text line follows it naming the same session, the app it belongs to (the `projectId` and title the page reported), how long it survives untouched (any tool call against it resets that), and, if the page never dialled the bridge, why.
|
|
60
|
+
|
|
61
|
+
In a monorepo the port you meant for one app can be held by another. When the current directory's `.reticle.json` names a different project from the one the page reported, the line ends with a warning saying so, and the JSON carries both as `projectId` and `expectedProjectId`. Real capture, with app `admin` on the port, `drive` run from app `web`, and the sentence break shown as `...`:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
attached to the Reticle daemon on :4497 ... it is driving http://localhost:5177/?__reticle_project=admin (project "admin", "Admin console") as session lease-74bf5522-8eee-4ea2-b66d-4c056c7dad3a, which every Reticle tool can address. It is released after 300s untouched; any tool call against it resets that. Warning: this directory's .reticle.json is project "web", but the page at http://localhost:5177/?__reticle_project=admin is project "admin", so another app is probably serving that port. Check which dev server is on it before trusting anything this session reports.
|
|
65
|
+
```
|
|
60
66
|
|
|
61
67
|
That session lives in the daemon, so the tools your agent already has open can address it by id. You do **not** need `reticle stop` first, and should not use it: the MCP proxy respawns a daemon as soon as the next tool call arrives, which is a race a manual `stop` loses.
|
|
62
68
|
|
|
63
|
-
Attaching means the browser is the daemon's pooled,
|
|
69
|
+
Attaching means the browser is the daemon's pooled one, shown or hidden as that daemon was started, so `--headed` cannot apply. To watch a browser instead, drive on a port no daemon owns (`RETICLE_PORT=4460`).
|
|
64
70
|
|
|
65
71
|
<Note>
|
|
66
72
|
If the port is held by something that is **not** a Reticle daemon, `drive` refuses and names the
|
package/docs/cli/feedback.mdx
CHANGED
|
@@ -8,7 +8,7 @@ icon: comment
|
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
npx @reticlehq/server feedback [--rating 1-5] [--bug] "what worked, what didn't"
|
|
11
|
-
npx @reticlehq/server feedback --agent --kind <bug|gap|ambiguity|feature_request|improvement> "what happened"
|
|
11
|
+
npx @reticlehq/server feedback --agent --kind <bug|gap|ambiguity|feature_request|improvement|experience> "what happened"
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
The `--agent` form is for an agent that cannot reach the `reticle_session { action: "feedback" }` tool: during `init`, while instrumentation is half wired, or when the daemon will not start. Those are the reports that are hardest to hear and most needed, because every other path requires the tool surface to already work.
|
|
@@ -29,12 +29,12 @@ Everything that is not a flag or a flag's value becomes the message, joined with
|
|
|
29
29
|
The payload is printed **before** it is sent, every time. A channel that carries free text and does not show you what it sends is asking for trust it has not earned.
|
|
30
30
|
|
|
31
31
|
```
|
|
32
|
-
sending {"
|
|
32
|
+
sending {"stack":"vite","version":"3.7.0","os":"darwin","ci":false}
|
|
33
33
|
redacted email (removed before sending)
|
|
34
34
|
thanks your feedback is in. it genuinely changes what gets built next.
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
`not sent` replaces the last line when the send failed or telemetry is off, and names the reason.
|
|
37
|
+
`not sent` replaces the last line when the send failed or telemetry is off, and names the reason. Nothing is lost either way: a failed send is kept on disk and retried, and with telemetry off the report is written to disk instead.
|
|
38
38
|
|
|
39
39
|
Run with no message and no rating, it prints usage and exits `1`. Real capture:
|
|
40
40
|
|
package/docs/cli/gate.mdx
CHANGED
|
@@ -7,7 +7,7 @@ icon: shield-halved
|
|
|
7
7
|
`reticle gate` is what makes verification unavoidable. It computes the [affected](/cli/affected) flows, looks for a passing artifact for each, and fails the command if any is missing. An agent that edits a covered file cannot call itself finished without re-verifying.
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
npx @reticlehq/server gate [--since <ref>] [--accept-coverage] [file...]
|
|
10
|
+
npx @reticlehq/server gate [--since <ref>] [--accept-coverage] [--hook] [file...]
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
## Arguments and flags
|
|
@@ -17,6 +17,9 @@ npx @reticlehq/server gate [--since <ref>] [--accept-coverage] [file...]
|
|
|
17
17
|
| `file...` | strings, positional | none | Explicit changed files |
|
|
18
18
|
| `--since <ref>` | string | `HEAD` when no files are given | Also include files git reports as changed since this ref |
|
|
19
19
|
| `--accept-coverage` | boolean | off | Accept today's coverage levels as the new best before judging. Use it when a drop was intended, such as a control you removed on purpose. The run reports what it accepted as `coverageAccepted` |
|
|
20
|
+
| `--hook` | boolean | off | For an agent's Stop hook. A failure or a known regression also prints a short prose summary for a human; exit `2` (no saved flows) prints nothing extra. A refused platform credential does not fail the gate in this mode |
|
|
21
|
+
|
|
22
|
+
In hook mode only, setting `RETICLE_SKIP_GATE` turns a failing gate into exit `0` and prints that the change is unverified.
|
|
20
23
|
|
|
21
24
|
## What blocks and what does not
|
|
22
25
|
|
|
@@ -53,7 +56,9 @@ One `reticle_gate` line. Real capture from this repository, with the flow lists
|
|
|
53
56
|
| Code | Meaning |
|
|
54
57
|
| --- | --- |
|
|
55
58
|
| `0` | Every affected, non-flaky flow has a passing artifact, nothing was weakened or deleted, and coverage held |
|
|
56
|
-
| `1` | Something is uncovered, downgraded, deleted, unflowed, unexecuted, or coverage fell. Also `1` on any internal fault: the gate fails closed |
|
|
59
|
+
| `1` | Something is uncovered, downgraded, deleted, unflowed, unexecuted, or coverage fell. Also `1` on any internal fault, and, outside `--hook`, when the linked platform refused the project's credential: the gate fails closed |
|
|
60
|
+
| `2` | No saved flows, so nothing was checked. This is not a failure of the change: the gate says how to record one |
|
|
61
|
+
| `3` | The linked project's dashboard knows a flow that passed before and is broken now, the same code `reticle runs regression` exits with. Checked only when the repo is linked; offline, it changes nothing |
|
|
57
62
|
|
|
58
63
|
Measured on this repository, `npx @reticlehq/server gate --since HEAD~1` exited `1` with the output above: 0 of 47 flows covered, 39 uncovered and 8 quarantined.
|
|
59
64
|
|
package/docs/cli/help.mdx
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: reticle help
|
|
3
|
-
description: Print the
|
|
3
|
+
description: Print the short, grouped list of Reticle commands; every command with help all; one command in detail with --help.
|
|
4
4
|
icon: circle-question
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
`reticle help` prints the
|
|
7
|
+
`reticle help` prints a short list of the commands most people need, grouped, one line each, to stdout and exits `0`.
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
npx @reticlehq/server help
|
|
@@ -14,70 +14,65 @@ npx @reticlehq/server -h
|
|
|
14
14
|
|
|
15
15
|
All three are the same command.
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
| You type | You get |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| `reticle help` | The short list, grouped |
|
|
20
|
+
| `reticle help all` (or `--help all`) | Every command, one line each, including the ones the short list leaves out |
|
|
21
|
+
| `reticle <command> --help` (or `reticle help <command>`) | That command's flags and detail |
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
`--help` works anywhere on the line, so `reticle init --help` is a help request, never an unknown argument, and never runs the command.
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
## The short list
|
|
26
26
|
|
|
27
|
+
```text
|
|
28
|
+
usage: reticle <command> (or npx @reticlehq/server <command>)
|
|
29
|
+
|
|
30
|
+
Get started
|
|
31
|
+
init Wire Reticle into the app in this folder
|
|
32
|
+
connect Sign in and link this project to the dashboard
|
|
33
|
+
try Watch Reticle drive a URL once and say which journeys work
|
|
34
|
+
|
|
35
|
+
Check your app
|
|
36
|
+
verify Check the saved flows against the running app; exit 0 means pass
|
|
37
|
+
gate Fail unless passing checks cover the flows your changes touch
|
|
38
|
+
|
|
39
|
+
Reticle on this machine
|
|
40
|
+
status Is Reticle running, is your app connected, are you signed in
|
|
41
|
+
doctor Find what is wrong with the setup, and what is missing from coverage
|
|
42
|
+
open Open the app in your browser, or reuse a tab that is already connected
|
|
43
|
+
stop Stop Reticle; --force frees its port even without a recorded pid
|
|
44
|
+
restart Stop Reticle, then start it and wait until it is listening
|
|
45
|
+
update Install the latest version and restart
|
|
46
|
+
|
|
47
|
+
Account
|
|
48
|
+
logout Sign out (of one host; others stay signed in)
|
|
49
|
+
feedback Tell us what worked and what didn't; prints exactly what it sends
|
|
50
|
+
telemetry Show or change anonymous usage metrics
|
|
51
|
+
|
|
52
|
+
All commands: reticle help all One command: reticle <command> --help
|
|
27
53
|
```
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
reticle status [--port N]
|
|
40
|
-
reticle doctor [--port N] (one command to diagnose setup: Chromium, daemon, port)
|
|
41
|
-
reticle open [url] [--port N] (show the app: reuse the connected tab, else open one)
|
|
42
|
-
reticle verify <url> [--headed] [--timeout N] [--storage-state <file>] (one-shot: drive the URL, verify saved flows, exit 0=pass)
|
|
43
|
-
reticle affected [--since <ref>] [file...] (which saved flows must re-verify for the changed files)
|
|
44
|
-
reticle gate [--since <ref>] [file...] (exit non-zero unless passing artifacts cover the affected flows)
|
|
45
|
-
reticle watch [url] (on save, report which saved flows must re-verify)
|
|
46
|
-
reticle drive <url> [--headless] (foreground mode, for debugging)
|
|
47
|
-
reticle mcp [--port N] [--drive <url>] [--headless] (MCP stdio proxy; auto-starts daemon if needed)
|
|
48
|
-
reticle update (install the latest server version and restart)
|
|
49
|
-
reticle rollback (restore the previous server version and restart)
|
|
50
|
-
reticle license (show enterprise license status: active | eval | missing)
|
|
51
|
-
reticle telemetry [status|enable|disable] (anonymous usage metrics; status shows what's sent + the policy)
|
|
52
|
-
reticle feedback [--rating 1-5] [--bug] "message" (tell us what worked and what didn't; prints exactly what it sends)
|
|
53
|
-
reticle feedback --agent --kind <bug|gap|ambiguity|feature_request|improvement> "message"
|
|
54
|
-
(agents: file from anywhere, including a setup that never finished)
|
|
55
|
-
reticle identify --context company|side_project|open_source|learning [--company N] [--email E] [--forget]
|
|
56
|
-
(OPT-IN: tell us who you are, e.g. for support or an enterprise trial)
|
|
57
|
-
|
|
58
|
-
Cloud (link this project to Reticle Cloud; runs/flows recorded on the dashboard):
|
|
59
|
-
reticle login --email <e> [--code <c>] [--org <n>] (sign in: mails a code, then exchanges it)
|
|
60
|
-
reticle link [--project <name|id>] (bind this repo: mints a scoped key, writes .reticle/cloud.json)
|
|
61
|
-
reticle whoami (who am I signed in as, and is this repo attached?)
|
|
62
|
-
reticle project <ls|create <name>> (list or create cloud projects)
|
|
63
|
-
reticle config [--runs on|off] [--memory on|off] [--flows on|off] [--verify local|server]
|
|
64
|
-
reticle push (send local run artifacts to the dashboard)
|
|
65
|
-
reticle runs | regression | share <runId> (read cloud state; regression exits 3 if any flow broke)
|
|
66
|
-
|
|
67
|
-
'drive' shows the browser; everything else is hidden (serve/mcp own the pool behind leases, replay
|
|
68
|
-
and the spec runner: batch work). --headed opts any of them in, --headless hides drive, CI hides it.
|
|
69
|
-
```
|
|
54
|
+
|
|
55
|
+
| Group | Commands |
|
|
56
|
+
| ----------------------- | ------------------------------------------------------- |
|
|
57
|
+
| Get started | `init`, `connect`, `try` |
|
|
58
|
+
| Check your app | `verify`, `gate` |
|
|
59
|
+
| Reticle on this machine | `status`, `doctor`, `open`, `stop`, `restart`, `update` |
|
|
60
|
+
| Account | `logout`, `feedback`, `telemetry` |
|
|
61
|
+
|
|
62
|
+
## Only in `help all`
|
|
63
|
+
|
|
64
|
+
`sync`, `runs`, `config`, `affected`, `report`, `context`, `mcp`, `serve`, `drive`, `setup`, `license`, `rollback` and `version`. They all work the same as always; they are left out of the short list because most people never type them. See the [CLI reference](/cli) for one row per command, including the renamed and removed ones.
|
|
70
65
|
|
|
71
66
|
## Errors print it too
|
|
72
67
|
|
|
73
|
-
Any usage error prints the offending thing first, then
|
|
68
|
+
Any usage error prints the offending thing first, then the short list on stderr, and exits `1`:
|
|
74
69
|
|
|
75
|
-
```
|
|
70
|
+
```text
|
|
76
71
|
{"t":"2026-08-15T18:42:48.476Z","event":"reticle_usage_error","message":"unknown command 'nonsense-cmd'"}
|
|
77
72
|
unknown command 'nonsense-cmd'
|
|
78
73
|
|
|
79
|
-
usage:
|
|
80
|
-
|
|
74
|
+
usage: reticle <command> (or npx @reticlehq/server <command>)
|
|
75
|
+
... the short list ...
|
|
81
76
|
```
|
|
82
77
|
|
|
83
78
|
Two audiences, two channels: the structured line for logs and scripts, the plain text for the person who just typed the command.
|