@reticlehq/server 2.1.0 → 2.2.1
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/LICENSE-ENTERPRISE +37 -0
- package/README.md +5 -1
- package/dist/bridge-security.d.ts +1 -1
- package/dist/bridge-security.js +1 -1
- package/dist/bridge.d.ts +7 -0
- package/dist/bridge.d.ts.map +1 -1
- package/dist/bridge.js +22 -3
- package/dist/bridge.js.map +1 -1
- package/dist/bridge.test-harness.d.ts +5 -0
- package/dist/bridge.test-harness.d.ts.map +1 -1
- package/dist/bridge.test-harness.js +4 -0
- package/dist/bridge.test-harness.js.map +1 -1
- package/dist/capsule/capsule-store.d.ts +66 -0
- package/dist/capsule/capsule-store.d.ts.map +1 -0
- package/dist/capsule/capsule-store.js +110 -0
- package/dist/capsule/capsule-store.js.map +1 -0
- package/dist/capsule/capsule.d.ts +19 -0
- package/dist/capsule/capsule.d.ts.map +1 -0
- package/dist/capsule/capsule.js +36 -0
- package/dist/capsule/capsule.js.map +1 -0
- package/dist/capsule/causal-summary.d.ts +36 -0
- package/dist/capsule/causal-summary.d.ts.map +1 -0
- package/dist/capsule/causal-summary.js +111 -0
- package/dist/capsule/causal-summary.js.map +1 -0
- package/dist/capsule/divergence.d.ts +31 -0
- package/dist/capsule/divergence.d.ts.map +1 -0
- package/dist/capsule/divergence.js +41 -0
- package/dist/capsule/divergence.js.map +1 -0
- package/dist/capsule/minimize.d.ts +13 -0
- package/dist/capsule/minimize.d.ts.map +1 -0
- package/dist/capsule/minimize.js +23 -0
- package/dist/capsule/minimize.js.map +1 -0
- package/dist/capsule/predicate-to-links.d.ts +9 -0
- package/dist/capsule/predicate-to-links.d.ts.map +1 -0
- package/dist/capsule/predicate-to-links.js +31 -0
- package/dist/capsule/predicate-to-links.js.map +1 -0
- package/dist/cli-flow-commands.d.ts +31 -0
- package/dist/cli-flow-commands.d.ts.map +1 -0
- package/dist/cli-flow-commands.js +207 -0
- package/dist/cli-flow-commands.js.map +1 -0
- package/dist/cli-parse.d.ts +36 -2
- package/dist/cli-parse.d.ts.map +1 -1
- package/dist/cli-parse.js +97 -2
- package/dist/cli-parse.js.map +1 -1
- package/dist/cli-port.d.ts +10 -4
- package/dist/cli-port.d.ts.map +1 -1
- package/dist/cli-port.js +32 -6
- package/dist/cli-port.js.map +1 -1
- package/dist/cli-verify.d.ts +2 -0
- package/dist/cli-verify.d.ts.map +1 -1
- package/dist/cli-verify.js +52 -11
- package/dist/cli-verify.js.map +1 -1
- package/dist/cli.d.ts +2 -3
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +175 -9
- package/dist/cli.js.map +1 -1
- package/dist/cloud/cloud-config.d.ts +37 -0
- package/dist/cloud/cloud-config.d.ts.map +1 -0
- package/dist/cloud/cloud-config.js +87 -0
- package/dist/cloud/cloud-config.js.map +1 -0
- package/dist/cloud/cloud-sync.d.ts +96 -3
- package/dist/cloud/cloud-sync.d.ts.map +1 -1
- package/dist/cloud/cloud-sync.js +131 -2
- package/dist/cloud/cloud-sync.js.map +1 -1
- package/dist/cloud-cli.d.ts +4 -0
- package/dist/cloud-cli.d.ts.map +1 -0
- package/dist/cloud-cli.js +507 -0
- package/dist/cloud-cli.js.map +1 -0
- package/dist/crawl/crawl-tools.d.ts.map +1 -1
- package/dist/crawl/crawl-tools.js +12 -0
- package/dist/crawl/crawl-tools.js.map +1 -1
- package/dist/crawl/crawl.d.ts +23 -1
- package/dist/crawl/crawl.d.ts.map +1 -1
- package/dist/crawl/crawl.js +36 -9
- package/dist/crawl/crawl.js.map +1 -1
- package/dist/daemon-resilience.d.ts +5 -5
- package/dist/daemon-resilience.js +5 -5
- package/dist/daemon.d.ts +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +53 -8
- package/dist/daemon.js.map +1 -1
- package/dist/domain/domain-tools.d.ts.map +1 -1
- package/dist/domain/domain-tools.js +11 -1
- package/dist/domain/domain-tools.js.map +1 -1
- package/dist/domain/flow-risk.d.ts +4 -4
- package/dist/domain/flow-risk.js +4 -4
- package/dist/ee/audit-log.d.ts +2 -2
- package/dist/ee/audit-log.js +2 -2
- package/dist/events/event-filters.d.ts +29 -1
- package/dist/events/event-filters.d.ts.map +1 -1
- package/dist/events/event-filters.js +75 -1
- package/dist/events/event-filters.js.map +1 -1
- package/dist/events/predicate-eval.d.ts +15 -0
- package/dist/events/predicate-eval.d.ts.map +1 -1
- package/dist/events/predicate-eval.js +97 -18
- package/dist/events/predicate-eval.js.map +1 -1
- package/dist/events/predicate.d.ts +22 -1
- package/dist/events/predicate.d.ts.map +1 -1
- package/dist/events/predicate.js +154 -20
- package/dist/events/predicate.js.map +1 -1
- package/dist/events/ring-buffer.d.ts +3 -3
- package/dist/events/ring-buffer.d.ts.map +1 -1
- package/dist/events/ring-buffer.js +54 -8
- package/dist/events/ring-buffer.js.map +1 -1
- package/dist/flows/affected.d.ts +25 -0
- package/dist/flows/affected.d.ts.map +1 -0
- package/dist/flows/affected.js +36 -0
- package/dist/flows/affected.js.map +1 -0
- package/dist/flows/annotate.d.ts +4 -4
- package/dist/flows/annotate.js +4 -4
- package/dist/flows/assertion-integrity.d.ts +24 -0
- package/dist/flows/assertion-integrity.d.ts.map +1 -0
- package/dist/flows/assertion-integrity.js +27 -0
- package/dist/flows/assertion-integrity.js.map +1 -0
- package/dist/flows/assertion-tiers-store.d.ts +80 -0
- package/dist/flows/assertion-tiers-store.d.ts.map +1 -0
- package/dist/flows/assertion-tiers-store.js +99 -0
- package/dist/flows/assertion-tiers-store.js.map +1 -0
- package/dist/flows/buddy-status.d.ts +25 -0
- package/dist/flows/buddy-status.d.ts.map +1 -0
- package/dist/flows/buddy-status.js +33 -0
- package/dist/flows/buddy-status.js.map +1 -0
- package/dist/flows/coverage.d.ts +28 -0
- package/dist/flows/coverage.d.ts.map +1 -0
- package/dist/flows/coverage.js +22 -0
- package/dist/flows/coverage.js.map +1 -0
- package/dist/flows/decision.d.ts.map +1 -1
- package/dist/flows/decision.js +16 -8
- package/dist/flows/decision.js.map +1 -1
- package/dist/flows/flake-store.d.ts +20 -0
- package/dist/flows/flake-store.d.ts.map +1 -0
- package/dist/flows/flake-store.js +59 -0
- package/dist/flows/flake-store.js.map +1 -0
- package/dist/flows/flake.d.ts +58 -0
- package/dist/flows/flake.d.ts.map +1 -0
- package/dist/flows/flake.js +36 -0
- package/dist/flows/flake.js.map +1 -0
- package/dist/flows/flow-classify.d.ts +8 -8
- package/dist/flows/flow-classify.js +8 -8
- package/dist/flows/flow-replay-run.d.ts.map +1 -1
- package/dist/flows/flow-replay-run.js +58 -5
- package/dist/flows/flow-replay-run.js.map +1 -1
- package/dist/flows/flow-replay.d.ts +9 -0
- package/dist/flows/flow-replay.d.ts.map +1 -1
- package/dist/flows/flow-replay.js +48 -13
- package/dist/flows/flow-replay.js.map +1 -1
- package/dist/flows/flow-report.d.ts +4 -4
- package/dist/flows/flow-sources.d.ts +20 -0
- package/dist/flows/flow-sources.d.ts.map +1 -0
- package/dist/flows/flow-sources.js +33 -0
- package/dist/flows/flow-sources.js.map +1 -0
- package/dist/flows/flow-tools.d.ts +13 -1
- package/dist/flows/flow-tools.d.ts.map +1 -1
- package/dist/flows/flow-tools.js +116 -13
- package/dist/flows/flow-tools.js.map +1 -1
- package/dist/flows/flows.d.ts +9 -4
- package/dist/flows/flows.d.ts.map +1 -1
- package/dist/flows/flows.js +38 -21
- package/dist/flows/flows.js.map +1 -1
- package/dist/flows/gate.d.ts +39 -0
- package/dist/flows/gate.d.ts.map +1 -0
- package/dist/flows/gate.js +34 -0
- package/dist/flows/gate.js.map +1 -0
- package/dist/flows/git-changed.d.ts +9 -0
- package/dist/flows/git-changed.d.ts.map +1 -0
- package/dist/flows/git-changed.js +25 -0
- package/dist/flows/git-changed.js.map +1 -0
- package/dist/flows/heal-run.d.ts +1 -1
- package/dist/flows/heal-run.js +1 -1
- package/dist/flows/parallel-suite.d.ts +27 -0
- package/dist/flows/parallel-suite.d.ts.map +1 -0
- package/dist/flows/parallel-suite.js +51 -0
- package/dist/flows/parallel-suite.js.map +1 -0
- package/dist/flows/replay.d.ts.map +1 -1
- package/dist/flows/replay.js +33 -11
- package/dist/flows/replay.js.map +1 -1
- package/dist/flows/server-verify.d.ts +16 -0
- package/dist/flows/server-verify.d.ts.map +1 -0
- package/dist/flows/server-verify.js +43 -0
- package/dist/flows/server-verify.js.map +1 -0
- package/dist/flows/watch-batcher.d.ts +18 -0
- package/dist/flows/watch-batcher.d.ts.map +1 -0
- package/dist/flows/watch-batcher.js +20 -0
- package/dist/flows/watch-batcher.js.map +1 -0
- package/dist/honesty/blind-spots.d.ts +37 -0
- package/dist/honesty/blind-spots.d.ts.map +1 -0
- package/dist/honesty/blind-spots.js +57 -0
- package/dist/honesty/blind-spots.js.map +1 -0
- package/dist/honesty/honesty.d.ts +57 -0
- package/dist/honesty/honesty.d.ts.map +1 -0
- package/dist/honesty/honesty.js +63 -0
- package/dist/honesty/honesty.js.map +1 -0
- package/dist/http-server.d.ts +5 -5
- package/dist/http-server.js +4 -4
- package/dist/idle-shutdown.d.ts +2 -2
- package/dist/idle-shutdown.js +2 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +98 -13
- package/dist/index.js.map +1 -1
- package/dist/init/agent-rules.d.ts +38 -0
- package/dist/init/agent-rules.d.ts.map +1 -0
- package/dist/init/agent-rules.js +65 -0
- package/dist/init/agent-rules.js.map +1 -0
- package/dist/init/plan.d.ts +6 -0
- package/dist/init/plan.d.ts.map +1 -1
- package/dist/init/plan.js +79 -3
- package/dist/init/plan.js.map +1 -1
- package/dist/init/run.d.ts.map +1 -1
- package/dist/init/run.js +4 -0
- package/dist/init/run.js.map +1 -1
- package/dist/init/snippets.js +1 -1
- package/dist/init/vite-config.d.ts +1 -1
- package/dist/init/vite-config.js +2 -2
- package/dist/init/vite-config.js.map +1 -1
- package/dist/input/network-detail.d.ts +74 -0
- package/dist/input/network-detail.d.ts.map +1 -0
- package/dist/input/network-detail.js +160 -0
- package/dist/input/network-detail.js.map +1 -0
- package/dist/input/network-mock.d.ts +4 -4
- package/dist/input/real-input.d.ts +44 -11
- package/dist/input/real-input.d.ts.map +1 -1
- package/dist/input/real-input.js +57 -9
- package/dist/input/real-input.js.map +1 -1
- package/dist/journal/ambient-store.d.ts +16 -0
- package/dist/journal/ambient-store.d.ts.map +1 -0
- package/dist/journal/ambient-store.js +46 -0
- package/dist/journal/ambient-store.js.map +1 -0
- package/dist/journal/ambient.d.ts +48 -0
- package/dist/journal/ambient.d.ts.map +1 -0
- package/dist/journal/ambient.js +48 -0
- package/dist/journal/ambient.js.map +1 -0
- package/dist/journal/attach-journal.d.ts +22 -0
- package/dist/journal/attach-journal.d.ts.map +1 -0
- package/dist/journal/attach-journal.js +20 -0
- package/dist/journal/attach-journal.js.map +1 -0
- package/dist/journal/deviation-report.d.ts +28 -0
- package/dist/journal/deviation-report.d.ts.map +1 -0
- package/dist/journal/deviation-report.js +54 -0
- package/dist/journal/deviation-report.js.map +1 -0
- package/dist/journal/deviation-service.d.ts +12 -0
- package/dist/journal/deviation-service.d.ts.map +1 -0
- package/dist/journal/deviation-service.js +32 -0
- package/dist/journal/deviation-service.js.map +1 -0
- package/dist/journal/envelope-store.d.ts +19 -0
- package/dist/journal/envelope-store.d.ts.map +1 -0
- package/dist/journal/envelope-store.js +62 -0
- package/dist/journal/envelope-store.js.map +1 -0
- package/dist/journal/envelope.d.ts +232 -0
- package/dist/journal/envelope.d.ts.map +1 -0
- package/dist/journal/envelope.js +94 -0
- package/dist/journal/envelope.js.map +1 -0
- package/dist/journal/journal-query.d.ts +20 -0
- package/dist/journal/journal-query.d.ts.map +1 -0
- package/dist/journal/journal-query.js +28 -0
- package/dist/journal/journal-query.js.map +1 -0
- package/dist/journal/journal-recorder.d.ts +38 -0
- package/dist/journal/journal-recorder.d.ts.map +1 -0
- package/dist/journal/journal-recorder.js +81 -0
- package/dist/journal/journal-recorder.js.map +1 -0
- package/dist/journal/retention.d.ts +21 -0
- package/dist/journal/retention.d.ts.map +1 -0
- package/dist/journal/retention.js +50 -0
- package/dist/journal/retention.js.map +1 -0
- package/dist/journal/rollups.d.ts +49 -0
- package/dist/journal/rollups.d.ts.map +1 -0
- package/dist/journal/rollups.js +83 -0
- package/dist/journal/rollups.js.map +1 -0
- package/dist/journal/session-end.d.ts +32 -0
- package/dist/journal/session-end.d.ts.map +1 -0
- package/dist/journal/session-end.js +52 -0
- package/dist/journal/session-end.js.map +1 -0
- package/dist/journal/session-journal.d.ts +25 -0
- package/dist/journal/session-journal.d.ts.map +1 -0
- package/dist/journal/session-journal.js +168 -0
- package/dist/journal/session-journal.js.map +1 -0
- package/dist/license/license.d.ts +8 -3
- package/dist/license/license.d.ts.map +1 -1
- package/dist/license/license.js +34 -11
- package/dist/license/license.js.map +1 -1
- package/dist/mcp-proxy.d.ts +20 -0
- package/dist/mcp-proxy.d.ts.map +1 -1
- package/dist/mcp-proxy.js +45 -27
- package/dist/mcp-proxy.js.map +1 -1
- package/dist/mcp.d.ts +14 -0
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +79 -9
- package/dist/mcp.js.map +1 -1
- package/dist/oracles/flow-instrument-gaps.d.ts +19 -0
- package/dist/oracles/flow-instrument-gaps.d.ts.map +1 -0
- package/dist/oracles/flow-instrument-gaps.js +45 -0
- package/dist/oracles/flow-instrument-gaps.js.map +1 -0
- package/dist/oracles/propose-consequences.d.ts +22 -0
- package/dist/oracles/propose-consequences.d.ts.map +1 -0
- package/dist/oracles/propose-consequences.js +93 -0
- package/dist/oracles/propose-consequences.js.map +1 -0
- package/dist/oracles/self-instrument.d.ts +32 -0
- package/dist/oracles/self-instrument.d.ts.map +1 -0
- package/dist/oracles/self-instrument.js +44 -0
- package/dist/oracles/self-instrument.js.map +1 -0
- package/dist/pairing-token.d.ts +1 -1
- package/dist/phenomena/phenomena.d.ts +27 -0
- package/dist/phenomena/phenomena.d.ts.map +1 -0
- package/dist/phenomena/phenomena.js +102 -0
- package/dist/phenomena/phenomena.js.map +1 -0
- package/dist/pool/browser-pool.d.ts +5 -3
- package/dist/pool/browser-pool.d.ts.map +1 -1
- package/dist/pool/browser-pool.js +21 -3
- package/dist/pool/browser-pool.js.map +1 -1
- package/dist/pool/playwright-launcher.d.ts +2 -0
- package/dist/pool/playwright-launcher.d.ts.map +1 -1
- package/dist/pool/playwright-launcher.js +21 -2
- package/dist/pool/playwright-launcher.js.map +1 -1
- package/dist/project/baselines.d.ts.map +1 -1
- package/dist/project/baselines.js +5 -3
- package/dist/project/baselines.js.map +1 -1
- package/dist/project/file-lock.d.ts +2 -0
- package/dist/project/file-lock.d.ts.map +1 -0
- package/dist/project/file-lock.js +24 -0
- package/dist/project/file-lock.js.map +1 -0
- package/dist/project/fs-port.d.ts +18 -0
- package/dist/project/fs-port.d.ts.map +1 -1
- package/dist/project/fs-port.js +24 -2
- package/dist/project/fs-port.js.map +1 -1
- package/dist/project/project-store.d.ts.map +1 -1
- package/dist/project/project-store.js +33 -15
- package/dist/project/project-store.js.map +1 -1
- package/dist/project/project-tools.d.ts +0 -6
- package/dist/project/project-tools.d.ts.map +1 -1
- package/dist/project/project-tools.js +52 -6
- package/dist/project/project-tools.js.map +1 -1
- package/dist/project/reticle-dir.d.ts +39 -14
- package/dist/project/reticle-dir.d.ts.map +1 -1
- package/dist/project/reticle-dir.js +30 -4
- package/dist/project/reticle-dir.js.map +1 -1
- package/dist/runs/build-verification-run.d.ts +1 -1
- package/dist/runs/build-verification-run.js +1 -1
- package/dist/runs/repair-prompt.d.ts +2 -0
- package/dist/runs/repair-prompt.d.ts.map +1 -1
- package/dist/runs/repair-prompt.js +14 -1
- package/dist/runs/repair-prompt.js.map +1 -1
- package/dist/runs/reticle-runner.d.ts +1 -1
- package/dist/runs/reticle-runner.d.ts.map +1 -1
- package/dist/runs/run-diff.d.ts +34 -0
- package/dist/runs/run-diff.d.ts.map +1 -0
- package/dist/runs/run-diff.js +71 -0
- package/dist/runs/run-diff.js.map +1 -0
- package/dist/runs/run-store.d.ts +6 -1
- package/dist/runs/run-store.d.ts.map +1 -1
- package/dist/runs/run-store.js +22 -2
- package/dist/runs/run-store.js.map +1 -1
- package/dist/runs/run-tools.d.ts.map +1 -1
- package/dist/runs/run-tools.js +16 -3
- package/dist/runs/run-tools.js.map +1 -1
- package/dist/runs/verification-sync.d.ts +24 -0
- package/dist/runs/verification-sync.d.ts.map +1 -0
- package/dist/runs/verification-sync.js +67 -0
- package/dist/runs/verification-sync.js.map +1 -0
- package/dist/runs/verify-server.js +1 -1
- package/dist/runs/verify-server.js.map +1 -1
- package/dist/session/control-envelope.d.ts +9 -1
- package/dist/session/control-envelope.d.ts.map +1 -1
- package/dist/session/control-envelope.js +13 -1
- package/dist/session/control-envelope.js.map +1 -1
- package/dist/session/live-control-tools.d.ts +1 -1
- package/dist/session/live-control-tools.js +1 -1
- package/dist/session/live-control.d.ts +38 -0
- package/dist/session/live-control.d.ts.map +1 -0
- package/dist/session/live-control.js +64 -0
- package/dist/session/live-control.js.map +1 -0
- package/dist/session/observed-state.d.ts +46 -0
- package/dist/session/observed-state.d.ts.map +1 -0
- package/dist/session/observed-state.js +76 -0
- package/dist/session/observed-state.js.map +1 -0
- package/dist/session/output-budget.d.ts +9 -0
- package/dist/session/output-budget.d.ts.map +1 -1
- package/dist/session/output-budget.js +9 -0
- package/dist/session/output-budget.js.map +1 -1
- package/dist/session/review-store.d.ts +1 -1
- package/dist/session/review-store.d.ts.map +1 -1
- package/dist/session/review-store.js +2 -2
- package/dist/session/review-store.js.map +1 -1
- package/dist/session/session-manager.d.ts +9 -7
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +8 -8
- package/dist/session/session-manager.js.map +1 -1
- package/dist/session/session-readiness.js +1 -1
- package/dist/session/session-readiness.js.map +1 -1
- package/dist/session/session-reaper.d.ts +1 -1
- package/dist/session/session-reaper.js +1 -1
- package/dist/session/session-recommendation.d.ts +1 -1
- package/dist/session/session-recommendation.js +1 -1
- package/dist/session/session-tools.js +1 -1
- package/dist/session/session-tools.js.map +1 -1
- package/dist/session/session.d.ts +43 -11
- package/dist/session/session.d.ts.map +1 -1
- package/dist/session/session.js +115 -46
- package/dist/session/session.js.map +1 -1
- package/dist/telemetry/telemetry.d.ts +41 -0
- package/dist/telemetry/telemetry.d.ts.map +1 -0
- package/dist/telemetry/telemetry.js +220 -0
- package/dist/telemetry/telemetry.js.map +1 -0
- package/dist/tools/act-tools.d.ts.map +1 -1
- package/dist/tools/act-tools.js +252 -70
- package/dist/tools/act-tools.js.map +1 -1
- package/dist/tools/act-view.d.ts +4 -4
- package/dist/tools/act-view.js +4 -4
- package/dist/tools/browser-tools.d.ts.map +1 -1
- package/dist/tools/browser-tools.js +32 -8
- package/dist/tools/browser-tools.js.map +1 -1
- package/dist/tools/contract-tools.d.ts.map +1 -1
- package/dist/tools/contract-tools.js +5 -0
- package/dist/tools/contract-tools.js.map +1 -1
- package/dist/tools/dynamic-tools.d.ts.map +1 -1
- package/dist/tools/dynamic-tools.js +8 -7
- package/dist/tools/dynamic-tools.js.map +1 -1
- package/dist/tools/invoke-tool.d.ts.map +1 -1
- package/dist/tools/invoke-tool.js +36 -29
- package/dist/tools/invoke-tool.js.map +1 -1
- package/dist/tools/lease-tools.d.ts +16 -0
- package/dist/tools/lease-tools.d.ts.map +1 -1
- package/dist/tools/lease-tools.js +11 -0
- package/dist/tools/lease-tools.js.map +1 -1
- package/dist/tools/merge-tools.d.ts +43 -0
- package/dist/tools/merge-tools.d.ts.map +1 -0
- package/dist/tools/merge-tools.js +66 -0
- package/dist/tools/merge-tools.js.map +1 -0
- package/dist/tools/observe-tools.d.ts.map +1 -1
- package/dist/tools/observe-tools.js +172 -29
- package/dist/tools/observe-tools.js.map +1 -1
- package/dist/tools/profiles.d.ts +18 -13
- package/dist/tools/profiles.d.ts.map +1 -1
- package/dist/tools/profiles.js +39 -33
- package/dist/tools/profiles.js.map +1 -1
- package/dist/tools/query-paginate.d.ts +9 -2
- package/dist/tools/query-paginate.d.ts.map +1 -1
- package/dist/tools/query-paginate.js +21 -4
- package/dist/tools/query-paginate.js.map +1 -1
- package/dist/tools/read-tools.d.ts.map +1 -1
- package/dist/tools/read-tools.js +30 -1
- package/dist/tools/read-tools.js.map +1 -1
- package/dist/tools/snapshot-delta.d.ts +2 -0
- package/dist/tools/snapshot-delta.d.ts.map +1 -1
- package/dist/tools/snapshot-delta.js +0 -0
- package/dist/tools/snapshot-delta.js.map +1 -1
- package/dist/tools/tool-kit.d.ts +3 -2
- package/dist/tools/tool-kit.d.ts.map +1 -1
- package/dist/tools/tool-kit.js +11 -1
- package/dist/tools/tool-kit.js.map +1 -1
- package/dist/tools/tool-names.d.ts +18 -10
- package/dist/tools/tool-names.d.ts.map +1 -1
- package/dist/tools/tool-names.js +22 -13
- package/dist/tools/tool-names.js.map +1 -1
- package/dist/tools/tools-helpers.d.ts +12 -0
- package/dist/tools/tools-helpers.d.ts.map +1 -1
- package/dist/tools/tools-helpers.js +20 -0
- package/dist/tools/tools-helpers.js.map +1 -1
- package/dist/tools/tools.d.ts.map +1 -1
- package/dist/tools/tools.js +162 -12
- package/dist/tools/tools.js.map +1 -1
- package/dist/update/update-checker.d.ts.map +1 -1
- package/dist/update/update-checker.js +26 -1
- package/dist/update/update-checker.js.map +1 -1
- package/dist/update/updater.d.ts +1 -1
- package/dist/update/updater.js +2 -2
- package/dist/update/updater.js.map +1 -1
- package/package.json +8 -3
- package/dist/update/update-tools.d.ts +0 -3
- package/dist/update/update-tools.d.ts.map +0 -1
- package/dist/update/update-tools.js +0 -94
- package/dist/update/update-tools.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { pathToFileURL } from 'node:url';
|
|
3
|
-
import { realpathSync } from 'node:fs';
|
|
4
|
-
import {
|
|
3
|
+
import { realpathSync, existsSync } from 'node:fs';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { handleWatch, handleCapsules, handleGate, loadNamedFlows, resolveChangedFiles, } from './cli-flow-commands.js';
|
|
6
|
+
import { RETICLE_DEFAULT_PORT, ReticleDir, ReticleEnv } from '@reticlehq/core';
|
|
7
|
+
import { createNodeFileSystem } from './project/fs-port.js';
|
|
8
|
+
import { affectedSavedFlows } from './flows/flow-sources.js';
|
|
9
|
+
import { checkForUpdate } from './update/update-checker.js';
|
|
10
|
+
import { applyUpdate, rollback } from './update/updater.js';
|
|
5
11
|
import { start, startDaemon } from './index.js';
|
|
12
|
+
import { isCloudCommand, runCloudCommand } from './cloud-cli.js';
|
|
6
13
|
import { SERVER_VERSION } from './server-version.js';
|
|
14
|
+
import { getTelemetry, TelemetryEventKind, describeTelemetry, setTelemetryEnabled, } from './telemetry/telemetry.js';
|
|
7
15
|
import { log } from './log.js';
|
|
8
16
|
import { readPid, isAlive, isRunning, removePid, spawnDaemon, discoverDaemonPort, writeDaemonRegistry, } from './daemon.js';
|
|
9
17
|
import { waitForDaemon, startMcpProxy, probeDaemon } from './mcp-proxy.js';
|
|
@@ -15,10 +23,9 @@ import { runInit } from './init/run.js';
|
|
|
15
23
|
import { buildNodeIo } from './init/node-io.js';
|
|
16
24
|
import { describeLicense } from './license/license.js';
|
|
17
25
|
import { readProjectPort, readProjectId } from './cli-port.js';
|
|
18
|
-
import { DAEMON_INNER_COMMAND, PORT_FLAG, DRIVE_FLAG, HEADED_FLAG, HTTP_FLAG, HTTP_PORT_FLAG, HTTP_TOKEN_FLAG, parseCliArgs, } from './cli-parse.js';
|
|
26
|
+
import { DAEMON_INNER_COMMAND, PORT_FLAG, DRIVE_FLAG, HEADED_FLAG, HTTP_FLAG, HTTP_PORT_FLAG, HTTP_TOKEN_FLAG, parseCliArgs, CLI_USAGE, TelemetryAction, } from './cli-parse.js';
|
|
19
27
|
// Re-exported so existing imports (and the CLI tests) keep resolving from './cli.js'.
|
|
20
|
-
export { parseCliArgs };
|
|
21
|
-
export { CLI_USAGE } from './cli-parse.js';
|
|
28
|
+
export { parseCliArgs, CLI_USAGE };
|
|
22
29
|
function handleInit(parsed) {
|
|
23
30
|
const cwd = process.cwd();
|
|
24
31
|
const result = runInit({ cwd, port: parsed.port, mcp: parsed.mcp, dryRun: parsed.dryRun, install: parsed.install }, buildNodeIo(cwd));
|
|
@@ -93,14 +100,117 @@ function handleStatus(port) {
|
|
|
93
100
|
log('reticle_status', { port, running: true, pid, ...summarizeStatus(payload) });
|
|
94
101
|
});
|
|
95
102
|
}
|
|
96
|
-
/**
|
|
103
|
+
/**
|
|
104
|
+
* `reticle doctor` — collapse the ~6 independent first-run failure modes into one command. Checks the
|
|
105
|
+
* Chromium install (the #1 silent failure), whether a daemon is up on the resolved bridge port, and
|
|
106
|
+
* reminds the user which port the app must dial. Human-readable to stdout (not the JSON log).
|
|
107
|
+
*/
|
|
108
|
+
async function handleDoctor(port) {
|
|
109
|
+
const line = (s) => {
|
|
110
|
+
process.stdout.write(`${s}\n`);
|
|
111
|
+
};
|
|
112
|
+
line('reticle doctor');
|
|
113
|
+
line(` node ${process.version}`);
|
|
114
|
+
try {
|
|
115
|
+
const { chromium } = await import('playwright');
|
|
116
|
+
const path = chromium.executablePath();
|
|
117
|
+
line(existsSync(path)
|
|
118
|
+
? ' chromium ✓ installed'
|
|
119
|
+
: ' chromium ✗ missing — run: npx playwright install chromium');
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
line(' chromium ✗ missing — run: npx playwright install chromium');
|
|
123
|
+
}
|
|
124
|
+
const pid = readPid(port);
|
|
125
|
+
if (pid !== null && isAlive(pid)) {
|
|
126
|
+
line(` daemon ✓ running on :${port} (pid ${pid})`);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
line(` daemon ✗ not running on :${port} — your agent runs \`reticle mcp\` (or \`reticle serve\`)`);
|
|
130
|
+
}
|
|
131
|
+
line(` bridge port ${port} (your app must dial THIS port — not your dev-server port)`);
|
|
132
|
+
}
|
|
97
133
|
/** Print the running package version (resolved once in server-version.ts). */
|
|
98
134
|
function handleVersion() {
|
|
99
135
|
log('reticle_version', { version: SERVER_VERSION });
|
|
100
136
|
}
|
|
137
|
+
/** `reticle license` — show enterprise activation resolved from the environment (offline; nothing leaves). */
|
|
101
138
|
function handleLicense() {
|
|
102
139
|
log('reticle_license', { ...describeLicense(Date.now()) });
|
|
103
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* `reticle telemetry [status|enable|disable]` — the user-facing control for anonymous usage metrics.
|
|
143
|
+
* `disable` persists a machine-wide opt-out (survives shells, unlike RETICLE_TELEMETRY=0); `status`
|
|
144
|
+
* says what's on, why, and where the full policy lives. Human-readable to stdout, like `doctor`.
|
|
145
|
+
*/
|
|
146
|
+
function handleTelemetry(action) {
|
|
147
|
+
const line = (s) => {
|
|
148
|
+
process.stdout.write(`${s}\n`);
|
|
149
|
+
};
|
|
150
|
+
if (action !== TelemetryAction.STATUS) {
|
|
151
|
+
setTelemetryEnabled(action === TelemetryAction.ENABLE);
|
|
152
|
+
}
|
|
153
|
+
const state = describeTelemetry();
|
|
154
|
+
line(`telemetry ${state.enabled ? 'enabled' : 'disabled'} (${state.reason})`);
|
|
155
|
+
line(`policy ${state.policyUrl}`);
|
|
156
|
+
if (state.enabled)
|
|
157
|
+
line('opt out reticle telemetry disable (or RETICLE_TELEMETRY=0 / DO_NOT_TRACK=1)');
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* `reticle affected <file...>` — print which saved flows must re-verify for the given changed files.
|
|
161
|
+
* Environment-side (costs the agent nothing per turn); the foundation of watch/gate. Never throws:
|
|
162
|
+
* a load error is logged, not fatal.
|
|
163
|
+
*/
|
|
164
|
+
async function handleAffected(files, since) {
|
|
165
|
+
try {
|
|
166
|
+
const fs = createNodeFileSystem();
|
|
167
|
+
const reticleRoot = join(process.cwd(), ReticleDir.ROOT);
|
|
168
|
+
const changed = await resolveChangedFiles(files, since);
|
|
169
|
+
const result = affectedSavedFlows(await loadNamedFlows(fs, reticleRoot), changed);
|
|
170
|
+
log('reticle_affected', {
|
|
171
|
+
changedFiles: changed,
|
|
172
|
+
affected: result.affected,
|
|
173
|
+
unknownProvenance: result.unknownProvenance,
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
log('reticle_affected_failed', {
|
|
178
|
+
error: error instanceof Error ? error.message : String(error),
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/** `reticle update` — install the latest server version and restart (moved off the MCP surface). */
|
|
183
|
+
async function handleUpdate() {
|
|
184
|
+
try {
|
|
185
|
+
const manifest = await checkForUpdate(SERVER_VERSION, () => Date.now());
|
|
186
|
+
if (!manifest.updateAvailable || manifest.latestVersion === undefined) {
|
|
187
|
+
log('reticle_update', {
|
|
188
|
+
ok: false,
|
|
189
|
+
message: 'already on the latest version',
|
|
190
|
+
version: SERVER_VERSION,
|
|
191
|
+
});
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
log('reticle_update', { ok: true, from: SERVER_VERSION, to: manifest.latestVersion });
|
|
195
|
+
await applyUpdate(manifest.latestVersion); // calls process.exit; Claude Code restarts
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
log('reticle_update_failed', { error: error instanceof Error ? error.message : String(error) });
|
|
199
|
+
process.exitCode = 1;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
/** `reticle rollback` — restore the previous server version and restart. */
|
|
203
|
+
async function handleRollback() {
|
|
204
|
+
try {
|
|
205
|
+
await rollback(); // calls process.exit
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
log('reticle_rollback_failed', {
|
|
209
|
+
error: error instanceof Error ? error.message : String(error),
|
|
210
|
+
});
|
|
211
|
+
process.exitCode = 1;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
104
214
|
/** Ensure a daemon is reachable on `port` (probe the real port; spawn + wait only if nothing's there). */
|
|
105
215
|
function ensureDaemon(port) {
|
|
106
216
|
return probeDaemon(port).then((listening) => {
|
|
@@ -159,6 +269,10 @@ function handleDaemonInner(parsed) {
|
|
|
159
269
|
startDaemon(options)
|
|
160
270
|
.then((server) => {
|
|
161
271
|
log('reticle_daemon_ready', { port: parsed.port, pid: process.pid });
|
|
272
|
+
// A live daemon IS an active session (the numerator of "active sessions" + DAU/WAU/MAU). Pair the
|
|
273
|
+
// START here with an END (carrying duration) on any clean shutdown below — best-effort, non-blocking.
|
|
274
|
+
const sessionStartedAt = Date.now();
|
|
275
|
+
void getTelemetry().emit(TelemetryEventKind.SESSION_START);
|
|
162
276
|
// Publish to the discovery registry so a build plugin can find this daemon by projectId — no
|
|
163
277
|
// hand-reconciled port. Written from the child (only it knows its cwd); removePid drops it.
|
|
164
278
|
const registryProjectId = readProjectId(process.cwd());
|
|
@@ -175,6 +289,9 @@ function handleDaemonInner(parsed) {
|
|
|
175
289
|
process.exit(1);
|
|
176
290
|
});
|
|
177
291
|
const shutdown = () => {
|
|
292
|
+
void getTelemetry().emit(TelemetryEventKind.SESSION_END, {
|
|
293
|
+
sessionMs: Date.now() - sessionStartedAt,
|
|
294
|
+
});
|
|
178
295
|
server
|
|
179
296
|
.close()
|
|
180
297
|
.then(() => {
|
|
@@ -212,13 +329,13 @@ function handleDaemonInner(parsed) {
|
|
|
212
329
|
/**
|
|
213
330
|
* MCP proxy mode: ensures the daemon is running, then bridges Claude Code's
|
|
214
331
|
* stdin/stdout to the daemon's SSE endpoint. This is the recommended way to
|
|
215
|
-
* configure Reticle in
|
|
332
|
+
* configure Reticle in.mcp.json — users never need to manage the daemon manually.
|
|
216
333
|
*
|
|
217
334
|
* Pass --drive <url> to have the daemon launch its own Playwright browser at that
|
|
218
335
|
* URL. The agent then has full autonomous control without relying on the user's browser.
|
|
219
336
|
*/
|
|
220
337
|
function handleMcp(opts) {
|
|
221
|
-
const { port, driveUrl, headless } = opts;
|
|
338
|
+
const { port, driveUrl, headless, http, httpPort, httpToken } = opts;
|
|
222
339
|
// Probe the port first — a daemon with a stale PID file is still usable.
|
|
223
340
|
// Only spawn when nothing is actually listening on the port.
|
|
224
341
|
probeDaemon(port)
|
|
@@ -236,6 +353,14 @@ function handleMcp(opts) {
|
|
|
236
353
|
if (!headless)
|
|
237
354
|
daemonArgs.push(HEADED_FLAG);
|
|
238
355
|
}
|
|
356
|
+
// Forward the HTTP-verify flags too (previously silently dropped for `reticle mcp`).
|
|
357
|
+
if (http) {
|
|
358
|
+
daemonArgs.push(HTTP_FLAG);
|
|
359
|
+
if (httpPort !== undefined)
|
|
360
|
+
daemonArgs.push(HTTP_PORT_FLAG, String(httpPort));
|
|
361
|
+
if (httpToken !== undefined)
|
|
362
|
+
daemonArgs.push(HTTP_TOKEN_FLAG, httpToken);
|
|
363
|
+
}
|
|
239
364
|
spawnDaemon(process.execPath, scriptPath, daemonArgs, port);
|
|
240
365
|
log('reticle_mcp_daemon_started', {
|
|
241
366
|
port,
|
|
@@ -267,11 +392,25 @@ function handleLegacyDrive(parsed) {
|
|
|
267
392
|
});
|
|
268
393
|
}
|
|
269
394
|
function main() {
|
|
395
|
+
const argv = process.argv.slice(2);
|
|
396
|
+
// Every invocation passes through here — the single chokepoint for the "how often is it used / how
|
|
397
|
+
// many distinct machines + projects" metrics. Fire-and-forget: a metric must never delay or fail a run.
|
|
398
|
+
const telemetry = getTelemetry();
|
|
399
|
+
// `detach` so a quick command (`version`/`gate`) exits immediately instead of waiting out the POST.
|
|
400
|
+
if (telemetry.firstRun)
|
|
401
|
+
void telemetry.emit(TelemetryEventKind.INSTALL, { detach: true });
|
|
402
|
+
void telemetry.emit(TelemetryEventKind.INVOKE, { detach: true });
|
|
403
|
+
// Cloud subcommands (login/link/project/config/push) are a distinct family with their own async client;
|
|
404
|
+
// handle them before the local typed parser so `reticle login` etc. work as one tool.
|
|
405
|
+
if (isCloudCommand(argv[0])) {
|
|
406
|
+
void runCloudCommand(argv).then((code) => process.exit(code));
|
|
407
|
+
return;
|
|
408
|
+
}
|
|
270
409
|
const portEnv = process.env[ReticleEnv.PORT];
|
|
271
410
|
const envPort = portEnv !== undefined ? parseInt(portEnv, 10) : undefined;
|
|
272
411
|
const projectPort = readProjectPort(process.cwd());
|
|
273
412
|
const defaultPort = envPort ?? projectPort ?? RETICLE_DEFAULT_PORT;
|
|
274
|
-
const parsed = parseCliArgs(
|
|
413
|
+
const parsed = parseCliArgs(argv, defaultPort);
|
|
275
414
|
switch (parsed.kind) {
|
|
276
415
|
case 'error':
|
|
277
416
|
log('reticle_usage_error', { message: parsed.message });
|
|
@@ -292,9 +431,18 @@ function main() {
|
|
|
292
431
|
case 'license':
|
|
293
432
|
handleLicense();
|
|
294
433
|
break;
|
|
434
|
+
case 'telemetry':
|
|
435
|
+
handleTelemetry(parsed.action);
|
|
436
|
+
break;
|
|
295
437
|
case 'version':
|
|
296
438
|
handleVersion();
|
|
297
439
|
break;
|
|
440
|
+
case 'help':
|
|
441
|
+
process.stdout.write(`${CLI_USAGE}\n`);
|
|
442
|
+
break;
|
|
443
|
+
case 'doctor':
|
|
444
|
+
void handleDoctor(parsed.port);
|
|
445
|
+
break;
|
|
298
446
|
case 'open':
|
|
299
447
|
handleOpen(parsed.port, parsed.url);
|
|
300
448
|
break;
|
|
@@ -304,6 +452,24 @@ function main() {
|
|
|
304
452
|
case 'verify':
|
|
305
453
|
handleVerify(parsed);
|
|
306
454
|
break;
|
|
455
|
+
case 'capsules':
|
|
456
|
+
void handleCapsules();
|
|
457
|
+
break;
|
|
458
|
+
case 'affected':
|
|
459
|
+
void handleAffected(parsed.files, parsed.since);
|
|
460
|
+
break;
|
|
461
|
+
case 'gate':
|
|
462
|
+
void handleGate(parsed.files, parsed.since);
|
|
463
|
+
break;
|
|
464
|
+
case 'watch':
|
|
465
|
+
handleWatch();
|
|
466
|
+
break;
|
|
467
|
+
case 'update':
|
|
468
|
+
void handleUpdate();
|
|
469
|
+
break;
|
|
470
|
+
case 'rollback':
|
|
471
|
+
void handleRollback();
|
|
472
|
+
break;
|
|
307
473
|
case 'mcp':
|
|
308
474
|
handleMcp(parsed);
|
|
309
475
|
break;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { FileSystemPort } from '../project/fs-port.js';
|
|
2
|
+
import { type CloudConfig } from './cloud-sync.js';
|
|
3
|
+
/** `<reticleRoot>/cloud.json` — the project's cloud binding + sync policy (non-secret). */
|
|
4
|
+
export declare const CLOUD_LINK_FILE = "cloud.json";
|
|
5
|
+
/** `~/.reticle/credentials.json` — the user's per-cloud-project API keys (the only secret). */
|
|
6
|
+
export declare const CREDENTIALS_FILE = "credentials.json";
|
|
7
|
+
/** What the daemon mirrors to the cloud for a project. Each surface is independently toggleable. */
|
|
8
|
+
export interface SyncPolicy {
|
|
9
|
+
/** Push verification-run artifacts to the dashboard Runs tab. */
|
|
10
|
+
runs: boolean;
|
|
11
|
+
/** Push per-flow project-memory outcomes (the regression history). */
|
|
12
|
+
memory: boolean;
|
|
13
|
+
/** Sync saved flow files (the shared regression suite). */
|
|
14
|
+
flows: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare const DEFAULT_SYNC_POLICY: SyncPolicy;
|
|
17
|
+
/** Where a verification actually executes. Reserved for the hosted-runner path; default local. */
|
|
18
|
+
export declare const VerifyMode: {
|
|
19
|
+
readonly LOCAL: "local";
|
|
20
|
+
readonly SERVER: "server";
|
|
21
|
+
};
|
|
22
|
+
export type VerifyMode = (typeof VerifyMode)[keyof typeof VerifyMode];
|
|
23
|
+
/** The resolved cloud picture for one project. `config === null` ⇒ cloud NOT attached (stay 100% local). */
|
|
24
|
+
export interface ProjectCloud {
|
|
25
|
+
config: CloudConfig | null;
|
|
26
|
+
policy: SyncPolicy;
|
|
27
|
+
verify: VerifyMode;
|
|
28
|
+
/** The cloud project id this project is linked to (for display/logging); null when env-fallback. */
|
|
29
|
+
projectId: string | null;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Resolve the cloud picture for a project rooted at `reticleRoot`. Reads the project's link file + the
|
|
33
|
+
* user credential store; if the project isn't linked (no cloud.json), falls back to the global env creds
|
|
34
|
+
* so the single-project / CI flow is unchanged. `homeDir` is injected (testable; `os.homedir()` at call).
|
|
35
|
+
*/
|
|
36
|
+
export declare function resolveProjectCloud(fs: FileSystemPort, reticleRoot: string, homeDir: string, env: NodeJS.ProcessEnv): Promise<ProjectCloud>;
|
|
37
|
+
//# sourceMappingURL=cloud-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-config.d.ts","sourceRoot":"","sources":["../../src/cloud/cloud-config.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEvE,2FAA2F;AAC3F,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,+FAA+F;AAC/F,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD,oGAAoG;AACpG,MAAM,WAAW,UAAU;IACzB,iEAAiE;IACjE,IAAI,EAAE,OAAO,CAAC;IACd,sEAAsE;IACtE,MAAM,EAAE,OAAO,CAAC;IAChB,2DAA2D;IAC3D,KAAK,EAAE,OAAO,CAAC;CAChB;AACD,eAAO,MAAM,mBAAmB,EAAE,UAAsD,CAAC;AAEzF,kGAAkG;AAClG,eAAO,MAAM,UAAU;;;CAAgD,CAAC;AACxE,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEtE,4GAA4G;AAC5G,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,oGAAoG;IACpG,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAgDD;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,cAAc,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,OAAO,CAAC,YAAY,CAAC,CAuBvB"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-project cloud resolution for a SHARED daemon. One reticle MCP/daemon serves many projects; each
|
|
3
|
+
* project declares its own cloud binding + sync policy in `<root>/.reticle/cloud.json`, and the SECRET
|
|
4
|
+
* (the API key) lives once per user in `~/.reticle/credentials.json` (keyed by cloud project id) — never
|
|
5
|
+
* in the repo. The daemon resolves "is cloud attached for THIS project, and what should I push where?"
|
|
6
|
+
* from those two files, falling back to the global `RETICLE_CLOUD_*` env vars for the single-project /
|
|
7
|
+
* CI case (backward compatible).
|
|
8
|
+
*
|
|
9
|
+
* Vercel-style split: `.reticle/cloud.json` is the safe-to-commit-but-gitignored binding, the key is a
|
|
10
|
+
* user-level credential. "Cloud attached" = a valid link file AND a key for its project id (or env creds).
|
|
11
|
+
*/
|
|
12
|
+
import { join } from 'node:path';
|
|
13
|
+
import { ReticleDir } from '@reticlehq/core';
|
|
14
|
+
import { resolveCloudConfig } from './cloud-sync.js';
|
|
15
|
+
/** `<reticleRoot>/cloud.json` — the project's cloud binding + sync policy (non-secret). */
|
|
16
|
+
export const CLOUD_LINK_FILE = 'cloud.json';
|
|
17
|
+
/** `~/.reticle/credentials.json` — the user's per-cloud-project API keys (the only secret). */
|
|
18
|
+
export const CREDENTIALS_FILE = 'credentials.json';
|
|
19
|
+
export const DEFAULT_SYNC_POLICY = { runs: true, memory: true, flows: true };
|
|
20
|
+
/** Where a verification actually executes. Reserved for the hosted-runner path; default local. */
|
|
21
|
+
export const VerifyMode = { LOCAL: 'local', SERVER: 'server' };
|
|
22
|
+
const asBool = (v, fallback) => (typeof v === 'boolean' ? v : fallback);
|
|
23
|
+
/** Read + JSON-parse a file, or null on any problem (missing/malformed) — never throws. */
|
|
24
|
+
async function readJson(fs, path) {
|
|
25
|
+
try {
|
|
26
|
+
if (!(await fs.exists(path)))
|
|
27
|
+
return null;
|
|
28
|
+
return JSON.parse(await fs.readFile(path));
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/** Validate the shape of `.reticle/cloud.json`. Requires projectId + url; policy/verify default in. */
|
|
35
|
+
function parseLink(raw) {
|
|
36
|
+
if (typeof raw !== 'object' || raw === null)
|
|
37
|
+
return null;
|
|
38
|
+
const o = raw;
|
|
39
|
+
if (typeof o.projectId !== 'string' || o.projectId.length === 0)
|
|
40
|
+
return null;
|
|
41
|
+
if (typeof o.url !== 'string' || o.url.length === 0)
|
|
42
|
+
return null;
|
|
43
|
+
const sync = typeof o.sync === 'object' && o.sync !== null ? o.sync : {};
|
|
44
|
+
return {
|
|
45
|
+
projectId: o.projectId,
|
|
46
|
+
url: o.url,
|
|
47
|
+
sync: {
|
|
48
|
+
runs: asBool(sync.runs, DEFAULT_SYNC_POLICY.runs),
|
|
49
|
+
memory: asBool(sync.memory, DEFAULT_SYNC_POLICY.memory),
|
|
50
|
+
flows: asBool(sync.flows, DEFAULT_SYNC_POLICY.flows),
|
|
51
|
+
},
|
|
52
|
+
verify: o.verify === VerifyMode.SERVER ? VerifyMode.SERVER : VerifyMode.LOCAL,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/** Look up the API key for a cloud project id in the user credentials map. */
|
|
56
|
+
function credentialFor(raw, projectId) {
|
|
57
|
+
if (typeof raw !== 'object' || raw === null)
|
|
58
|
+
return null;
|
|
59
|
+
const key = raw[projectId];
|
|
60
|
+
return typeof key === 'string' && key.length > 0 ? key : null;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Resolve the cloud picture for a project rooted at `reticleRoot`. Reads the project's link file + the
|
|
64
|
+
* user credential store; if the project isn't linked (no cloud.json), falls back to the global env creds
|
|
65
|
+
* so the single-project / CI flow is unchanged. `homeDir` is injected (testable; `os.homedir()` at call).
|
|
66
|
+
*/
|
|
67
|
+
export async function resolveProjectCloud(fs, reticleRoot, homeDir, env) {
|
|
68
|
+
const link = parseLink(await readJson(fs, join(reticleRoot, CLOUD_LINK_FILE)));
|
|
69
|
+
if (link === null) {
|
|
70
|
+
// No per-project link → the env vars are the whole story (legacy single-project / CI behaviour).
|
|
71
|
+
return {
|
|
72
|
+
config: resolveCloudConfig(env),
|
|
73
|
+
policy: DEFAULT_SYNC_POLICY,
|
|
74
|
+
verify: VerifyMode.LOCAL,
|
|
75
|
+
projectId: null,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
const policy = {
|
|
79
|
+
runs: link.sync.runs ?? DEFAULT_SYNC_POLICY.runs,
|
|
80
|
+
memory: link.sync.memory ?? DEFAULT_SYNC_POLICY.memory,
|
|
81
|
+
flows: link.sync.flows ?? DEFAULT_SYNC_POLICY.flows,
|
|
82
|
+
};
|
|
83
|
+
const key = credentialFor(await readJson(fs, join(homeDir, ReticleDir.ROOT, CREDENTIALS_FILE)), link.projectId);
|
|
84
|
+
const config = key !== null ? { url: link.url.replace(/\/+$/, ''), apiKey: key } : null;
|
|
85
|
+
return { config, policy, verify: link.verify, projectId: link.projectId };
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=cloud-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-config.js","sourceRoot":"","sources":["../../src/cloud/cloud-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,14 +8,19 @@
|
|
|
8
8
|
* Sync is best-effort: a network failure NEVER fails the local save. The flow is already on disk; the
|
|
9
9
|
* cloud copy is an enhancement, so a push error is logged and swallowed.
|
|
10
10
|
*/
|
|
11
|
-
import
|
|
12
|
-
|
|
11
|
+
import { z } from 'zod';
|
|
12
|
+
import type { FlowFile, ReticleVerificationRun, RunRecord } from '@reticlehq/core';
|
|
13
|
+
/** Env var names — the presence of BOTH is what "logged in" means for cloud sync. */
|
|
13
14
|
export declare const CloudEnv: {
|
|
14
15
|
readonly URL: "RETICLE_CLOUD_URL";
|
|
15
16
|
readonly KEY: "RETICLE_CLOUD_KEY";
|
|
16
17
|
};
|
|
17
|
-
/**
|
|
18
|
+
/** Paths the OSS server pushes to (match the cloud app's contract). */
|
|
18
19
|
export declare const CLOUD_FLOWS_PATH = "/v1/flows";
|
|
20
|
+
export declare const CLOUD_RUNS_PATH = "/v1/runs";
|
|
21
|
+
export declare const CLOUD_PROJECT_RUNS_PATH = "/v1/project/runs";
|
|
22
|
+
export declare const CLOUD_PROJECT_REGRESSION_PATH = "/v1/project/regression";
|
|
23
|
+
export declare const CLOUD_VERIFICATIONS_PATH = "/v1/verifications";
|
|
19
24
|
export interface CloudConfig {
|
|
20
25
|
url: string;
|
|
21
26
|
apiKey: string;
|
|
@@ -42,9 +47,97 @@ export type FetchLike = (url: string, init: {
|
|
|
42
47
|
ok: boolean;
|
|
43
48
|
status: number;
|
|
44
49
|
}>;
|
|
50
|
+
/** GET-shaped fetch (no body, reads back JSON), injected so the read is testable without a network. */
|
|
51
|
+
export type FetchGetLike = (url: string, init: {
|
|
52
|
+
method: string;
|
|
53
|
+
headers: Record<string, string>;
|
|
54
|
+
}) => Promise<{
|
|
55
|
+
ok: boolean;
|
|
56
|
+
status: number;
|
|
57
|
+
json: () => Promise<unknown>;
|
|
58
|
+
}>;
|
|
45
59
|
/**
|
|
46
60
|
* Push one flow to the cloud. `projectId` scopes it to this app. Returns a structured outcome; never
|
|
47
61
|
* throws — a failure is reported, not propagated, so the local save is authoritative.
|
|
48
62
|
*/
|
|
49
63
|
export declare function syncFlowToCloud(flow: FlowFile, config: CloudConfig | null, projectId: string | undefined, fetchImpl: FetchLike): Promise<SyncResult>;
|
|
64
|
+
/**
|
|
65
|
+
* Push one verification-run artifact to the cloud. This is what makes "runs recorded on the dashboard"
|
|
66
|
+
* real once a user shifts to the server: after `reticle verify` produces a run, it lands in the team's
|
|
67
|
+
* hosted history with its verdict. Same opt-in creds as flow sync — absent → no-op (stays local). The
|
|
68
|
+
* cloud's `POST /v1/runs` ingests the RAW artifact (validated by the same `@reticlehq/core` schema that
|
|
69
|
+
* built it), so the body is the run itself, not a wrapper. Best-effort: never throws, never blocks exit.
|
|
70
|
+
*/
|
|
71
|
+
export declare function syncRunToCloud(run: ReticleVerificationRun, config: CloudConfig | null, fetchImpl: FetchLike): Promise<SyncResult>;
|
|
72
|
+
/**
|
|
73
|
+
* Push one project-memory RunRecord (a flow replay/verify outcome) to the cloud so the team's server-side
|
|
74
|
+
* regression history stays current: "did this development break a previously-passing flow?" is answered
|
|
75
|
+
* from these. Same opt-in creds as the others — absent → no-op (project.json stays the local source of
|
|
76
|
+
* truth). `projectId` scopes an org's multiple suites. Best-effort: never throws, never blocks the tool.
|
|
77
|
+
*/
|
|
78
|
+
export declare function syncRunRecordToCloud(record: RunRecord, projectId: string | undefined, config: CloudConfig | null, fetchImpl: FetchLike): Promise<SyncResult>;
|
|
79
|
+
/**
|
|
80
|
+
* Read the team's server-side regression report back down to the agent. This is the half that makes the
|
|
81
|
+
* system "agent-friendly across context loss": a fresh agent (new session, CI box, teammate's machine)
|
|
82
|
+
* whose local .reticle/project.json is empty can still ask the ONE tool it knows — reticle_project — and
|
|
83
|
+
* get the durable cloud memory of what's broken vs before. Returns the raw report (shape owned by the
|
|
84
|
+
* cloud), or null when not logged in / unreachable — so the caller degrades to local-only, never fails.
|
|
85
|
+
*/
|
|
86
|
+
export declare function fetchProjectRegressionFromCloud(config: CloudConfig | null, projectId: string | undefined, fetchImpl: FetchGetLike): Promise<unknown>;
|
|
87
|
+
/** POST-that-reads-JSON fetch shape (injected so the server-verify submit is testable without a network). */
|
|
88
|
+
export type FetchPostJsonLike = (url: string, init: {
|
|
89
|
+
method: string;
|
|
90
|
+
headers: Record<string, string>;
|
|
91
|
+
body: string;
|
|
92
|
+
}) => Promise<{
|
|
93
|
+
ok: boolean;
|
|
94
|
+
status: number;
|
|
95
|
+
json: () => Promise<unknown>;
|
|
96
|
+
}>;
|
|
97
|
+
/** The hosted runner's report, validated at the boundary (the full shape is owned by the cloud app). */
|
|
98
|
+
declare const ServerVerificationSchema: z.ZodObject<{
|
|
99
|
+
verificationId: z.ZodString;
|
|
100
|
+
verdict: z.ZodNullable<z.ZodString>;
|
|
101
|
+
flows: z.ZodArray<z.ZodObject<{
|
|
102
|
+
name: z.ZodString;
|
|
103
|
+
status: z.ZodString;
|
|
104
|
+
}, "strip", z.ZodTypeAny, {
|
|
105
|
+
status: string;
|
|
106
|
+
name: string;
|
|
107
|
+
}, {
|
|
108
|
+
status: string;
|
|
109
|
+
name: string;
|
|
110
|
+
}>, "many">;
|
|
111
|
+
summary: z.ZodString;
|
|
112
|
+
}, "strip", z.ZodTypeAny, {
|
|
113
|
+
verificationId: string;
|
|
114
|
+
verdict: string | null;
|
|
115
|
+
flows: {
|
|
116
|
+
status: string;
|
|
117
|
+
name: string;
|
|
118
|
+
}[];
|
|
119
|
+
summary: string;
|
|
120
|
+
}, {
|
|
121
|
+
verificationId: string;
|
|
122
|
+
verdict: string | null;
|
|
123
|
+
flows: {
|
|
124
|
+
status: string;
|
|
125
|
+
name: string;
|
|
126
|
+
}[];
|
|
127
|
+
summary: string;
|
|
128
|
+
}>;
|
|
129
|
+
export type ServerVerification = z.infer<typeof ServerVerificationSchema>;
|
|
130
|
+
/**
|
|
131
|
+
* Delegate a verification to the hosted runner: submit the preview URL + flow names to `POST
|
|
132
|
+
* /v1/verifications` and read back the report. This is the `verify: 'server'` half of the per-project
|
|
133
|
+
* config — the WORK runs on the server (real browser pool, later), not the local machine. The server
|
|
134
|
+
* records the verification itself, so there is no separate run-push. Returns null when not attached or the
|
|
135
|
+
* submit fails, so the caller falls back to a local replay. Never throws.
|
|
136
|
+
*/
|
|
137
|
+
export declare function submitServerVerification(body: {
|
|
138
|
+
previewUrl: string;
|
|
139
|
+
flows: string[];
|
|
140
|
+
source: string;
|
|
141
|
+
}, config: CloudConfig | null, fetchImpl: FetchPostJsonLike): Promise<ServerVerification | null>;
|
|
142
|
+
export {};
|
|
50
143
|
//# sourceMappingURL=cloud-sync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-sync.d.ts","sourceRoot":"","sources":["../../src/cloud/cloud-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"cloud-sync.d.ts","sourceRoot":"","sources":["../../src/cloud/cloud-sync.ts"],"names":[],"mappings":"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"}
|