@reticlehq/server 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +18 -2
- package/dist/cli-parse.d.ts.map +1 -1
- package/dist/cli-parse.js +57 -0
- 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.map +1 -1
- package/dist/cli-verify.js +29 -10
- package/dist/cli-verify.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +81 -2
- package/dist/cli.js.map +1 -1
- 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.js +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 +36 -0
- 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 +92 -5
- 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/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.map +1 -1
- package/dist/pool/playwright-launcher.js +9 -2
- package/dist/pool/playwright-launcher.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 +13 -7
- 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 +24 -1
- 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/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/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 +7 -6
- 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 +32 -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/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
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `reticle init` writes a behavioral rule into the coding agent's instruction file so the agent
|
|
3
|
+
* VERIFIES a feature with Reticle after building it — not only when the user remembers to say "test
|
|
4
|
+
* it with reticle". Registering the MCP server (mcp.ts / cursor.ts) only makes the tools AVAILABLE;
|
|
5
|
+
* this is the piece that makes the agent reach for them, every session, unprompted.
|
|
6
|
+
*
|
|
7
|
+
* The rule is framed as a definition-of-done (WHEN to verify, HOW, and the anti-reward-hacking guard),
|
|
8
|
+
* written into whichever instruction file the detected agent reads: `CLAUDE.md` (Claude Code),
|
|
9
|
+
* `.cursor/rules/reticle.mdc` (Cursor, `alwaysApply` so it stays in context), or `AGENTS.md` as the
|
|
10
|
+
* cross-agent fallback. Idempotent via a marker block — safe to append to an existing file and a
|
|
11
|
+
* re-run is a no-op. Mirrors the apply/already result shape used across init (see cursor.ts).
|
|
12
|
+
*/
|
|
13
|
+
/** Project-root instruction files the agent re-reads every session. */
|
|
14
|
+
export const CLAUDE_MD_PATH = 'CLAUDE.md';
|
|
15
|
+
export const AGENTS_MD_PATH = 'AGENTS.md';
|
|
16
|
+
/** Cursor project rule; the frontmatter `alwaysApply` keeps it in context on every turn. */
|
|
17
|
+
export const CURSOR_RULE_PATH = '.cursor/rules/reticle.mdc';
|
|
18
|
+
/** Markers delimiting the managed block so a re-run is idempotent and the block stays updatable. */
|
|
19
|
+
const RULE_BEGIN = '<!-- reticle:begin (managed by `reticle init` — edit outside these markers) -->';
|
|
20
|
+
const RULE_END = '<!-- reticle:end -->';
|
|
21
|
+
/** The rule body (markdown). States WHEN to verify, HOW, and never-weaken-a-check. */
|
|
22
|
+
const RULE_BODY = `## Verifying with Reticle
|
|
23
|
+
|
|
24
|
+
This app is instrumented by **Reticle** — an in-app verification layer exposed as \`reticle_*\` MCP tools and the \`reticle\` CLI. Verifying is part of "done", not an optional extra.
|
|
25
|
+
|
|
26
|
+
- **When:** after you build or change any user-facing feature, flow, or UI, verify it with Reticle **before** telling the user it is complete. Reading the code or passing unit tests is not enough — drive the real running app.
|
|
27
|
+
- **How:** drive the actual flow (\`reticle_act\` / \`reticle_act_and_wait\`), then read the observable effect (\`reticle_assert\`, \`reticle_snapshot\`, \`reticle_state\`, \`reticle_network\`). Confirm the change produced the effect it was meant to, with no new console errors or failed requests.
|
|
28
|
+
- **Covered flows:** run \`reticle gate\` — it reports which recorded flows the changed files affect and whether they still pass.
|
|
29
|
+
- **Never weaken a check to make it green.** Downgrading, skipping, or deleting an assertion is a finding, not a fix.
|
|
30
|
+
- **If Reticle can't run** (no daemon, or this is not a running web app), say so — do not skip verification silently.`;
|
|
31
|
+
export const AgentRuleStatus = {
|
|
32
|
+
APPLY: 'apply',
|
|
33
|
+
ALREADY: 'already',
|
|
34
|
+
};
|
|
35
|
+
/** The marker-wrapped block appended to a CLAUDE.md / AGENTS.md instruction file. */
|
|
36
|
+
export function markedBlock() {
|
|
37
|
+
return `${RULE_BEGIN}\n${RULE_BODY}\n${RULE_END}\n`;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Merge the managed block into a marker-delimited instruction file. Already present ⇒ no change
|
|
41
|
+
* (idempotent re-run). Absent/empty ⇒ the block alone. Otherwise append the block, preserving the
|
|
42
|
+
* existing content and a clean separating blank line.
|
|
43
|
+
*/
|
|
44
|
+
export function mergeMarkedInstruction(existing) {
|
|
45
|
+
if (existing !== null && existing !== undefined && existing.includes(RULE_BEGIN)) {
|
|
46
|
+
return { status: AgentRuleStatus.ALREADY, content: existing };
|
|
47
|
+
}
|
|
48
|
+
const block = markedBlock();
|
|
49
|
+
if (existing === null || existing === undefined || existing.trim().length === 0) {
|
|
50
|
+
return { status: AgentRuleStatus.APPLY, content: block };
|
|
51
|
+
}
|
|
52
|
+
const separator = existing.endsWith('\n') ? '\n' : '\n\n';
|
|
53
|
+
return { status: AgentRuleStatus.APPLY, content: `${existing}${separator}${block}` };
|
|
54
|
+
}
|
|
55
|
+
/** The Cursor rule file (.mdc): `alwaysApply` keeps the rule in every turn's context. */
|
|
56
|
+
export function cursorRuleFile() {
|
|
57
|
+
return `---
|
|
58
|
+
description: Verify web features with Reticle after building them
|
|
59
|
+
alwaysApply: true
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
${RULE_BODY}
|
|
63
|
+
`;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=agent-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-rules.js","sourceRoot":"","sources":["../../src/init/agent-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,uEAAuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC;AAC1C,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC;AAC1C,4FAA4F;AAC5F,MAAM,CAAC,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AAE5D,oGAAoG;AACpG,MAAM,UAAU,GACd,iFAAiF,CAAC;AACpF,MAAM,QAAQ,GAAG,sBAAsB,CAAC;AAExC,sFAAsF;AACtF,MAAM,SAAS,GAAG;;;;;;;;sHAQoG,CAAC;AAEvH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;CACV,CAAC;AASX,qFAAqF;AACrF,MAAM,UAAU,WAAW;IACzB,OAAO,GAAG,UAAU,KAAK,SAAS,KAAK,QAAQ,IAAI,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAmC;IACxE,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACjF,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAChE,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChF,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC3D,CAAC;IACD,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1D,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,EAAE,EAAE,CAAC;AACvF,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,cAAc;IAC5B,OAAO;;;;;EAKP,SAAS;CACV,CAAC;AACF,CAAC"}
|
package/dist/init/plan.d.ts
CHANGED
|
@@ -59,6 +59,12 @@ export interface PlanInput {
|
|
|
59
59
|
svelteKitHooksExists?: boolean;
|
|
60
60
|
/** Whether .reticle.json already exists in the project root (idempotency). */
|
|
61
61
|
reticleConfigExists?: boolean;
|
|
62
|
+
/** Current project-root CLAUDE.md content (for the idempotent agent-rule merge), or null/undefined. */
|
|
63
|
+
claudeMdContent?: string | null | undefined;
|
|
64
|
+
/** Current project-root AGENTS.md content (cross-agent fallback rule), or null/undefined. */
|
|
65
|
+
agentsMdContent?: string | null | undefined;
|
|
66
|
+
/** Whether .cursor/rules/reticle.mdc already exists (agent-rule idempotency). */
|
|
67
|
+
cursorRuleExists?: boolean | undefined;
|
|
62
68
|
options: {
|
|
63
69
|
port: number | undefined;
|
|
64
70
|
mcp: boolean;
|
package/dist/init/plan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/init/plan.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAuC,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/init/plan.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAuC,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAgC7F,yGAAyG;AACzG,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,MAAM,EAAE,CAYzE;AAKD,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEtE,UAAU,IAAI;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,4FAA4F;IAC5F,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D;AAED,MAAM,WAAW,IAAI;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,0FAA0F;IAC1F,SAAS,EAAE,OAAO,CAAC;IACnB,mGAAmG;IACnG,SAAS,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,aAAa,EAAE,OAAO,CAAC;IACvB,6DAA6D;IAC7D,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACpD,yEAAyE;IACzE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kDAAkD;IAClD,oBAAoB,EAAE,OAAO,CAAC;IAC9B,0EAA0E;IAC1E,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,8EAA8E;IAC9E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,uGAAuG;IACvG,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C,6FAA6F;IAC7F,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,GAAG,EAAE,OAAO,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,6GAA6G;QAC7G,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AA+SD,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAsBhD"}
|
package/dist/init/plan.js
CHANGED
|
@@ -6,12 +6,13 @@
|
|
|
6
6
|
import { Framework, installCommand, installCommandParts } from './detect.js';
|
|
7
7
|
import { claudeAddCommand, mcpManual } from './mcp.js';
|
|
8
8
|
import { mergeCursorConfig, CursorMergeStatus, cursorServerEntry } from './cursor.js';
|
|
9
|
+
import { mergeMarkedInstruction, cursorRuleFile, AgentRuleStatus, CLAUDE_MD_PATH, AGENTS_MD_PATH, CURSOR_RULE_PATH, } from './agent-rules.js';
|
|
9
10
|
import { patchViteConfig, VitePatchKind } from './vite-config.js';
|
|
10
11
|
import { viteManual, htmlManual, NEXT_LAYOUT_MANUAL, nextReticleDevFile, NEXT_RETICLE_DEV_PATH, nextConfigManual, reticleConfigContent, svelteKitHooksFile, SVELTEKIT_HOOKS_PATH, } from './snippets.js';
|
|
11
12
|
// An app dev installs exactly the audience-scoped browser-side dependencies — never the retired
|
|
12
13
|
// `@reticlehq/core` umbrella (which dragged the Node MCP server + ws into every app). The kit is the
|
|
13
14
|
// framework adapter (it re-exports the browser sensor), paired with that framework's dev-only build
|
|
14
|
-
// plugin for source mapping + connect
|
|
15
|
+
// plugin for source mapping + connect injection.
|
|
15
16
|
const RETICLE_REACT_KIT = '@reticlehq/react';
|
|
16
17
|
const RETICLE_VITE_PLUGIN = '@reticlehq/vite-plugin';
|
|
17
18
|
const RETICLE_NEXT_PLUGIN = '@reticlehq/next';
|
|
@@ -25,7 +26,7 @@ export function frameworkPackages(framework) {
|
|
|
25
26
|
// SvelteKit builds on Vite; until a dedicated Svelte kit exists it uses the Vite build plugin.
|
|
26
27
|
return [RETICLE_REACT_KIT, RETICLE_VITE_PLUGIN];
|
|
27
28
|
case Framework.HTML:
|
|
28
|
-
// No bundler plugin to install — just the kit; connect
|
|
29
|
+
// No bundler plugin to install — just the kit; connect is wired by hand (see htmlManual).
|
|
29
30
|
return [RETICLE_REACT_KIT];
|
|
30
31
|
}
|
|
31
32
|
}
|
|
@@ -112,6 +113,76 @@ function mcpSteps(input) {
|
|
|
112
113
|
},
|
|
113
114
|
];
|
|
114
115
|
}
|
|
116
|
+
const AGENT_RULE_TITLE = 'Agent verification rule';
|
|
117
|
+
const AGENT_RULE_DETAIL = 'teach the agent to verify features with Reticle after building them';
|
|
118
|
+
function claudeRuleStep(input) {
|
|
119
|
+
if (!input.claudeCli)
|
|
120
|
+
return null;
|
|
121
|
+
const r = mergeMarkedInstruction(input.claudeMdContent);
|
|
122
|
+
if (r.status === AgentRuleStatus.ALREADY) {
|
|
123
|
+
return {
|
|
124
|
+
title: AGENT_RULE_TITLE,
|
|
125
|
+
target: CLAUDE_MD_PATH,
|
|
126
|
+
status: StepStatus.ALREADY,
|
|
127
|
+
detail: 'Reticle rule already in CLAUDE.md',
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
title: AGENT_RULE_TITLE,
|
|
132
|
+
target: CLAUDE_MD_PATH,
|
|
133
|
+
status: StepStatus.APPLY,
|
|
134
|
+
detail: AGENT_RULE_DETAIL,
|
|
135
|
+
write: { path: CLAUDE_MD_PATH, content: r.content },
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
function cursorRuleStep(input) {
|
|
139
|
+
if (!input.cursorPresent)
|
|
140
|
+
return null;
|
|
141
|
+
if (input.cursorRuleExists === true) {
|
|
142
|
+
return {
|
|
143
|
+
title: AGENT_RULE_TITLE,
|
|
144
|
+
target: CURSOR_RULE_PATH,
|
|
145
|
+
status: StepStatus.ALREADY,
|
|
146
|
+
detail: 'Reticle rule already in .cursor/rules',
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
return {
|
|
150
|
+
title: AGENT_RULE_TITLE,
|
|
151
|
+
target: CURSOR_RULE_PATH,
|
|
152
|
+
status: StepStatus.APPLY,
|
|
153
|
+
detail: AGENT_RULE_DETAIL,
|
|
154
|
+
write: { path: CURSOR_RULE_PATH, content: cursorRuleFile() },
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* The behavioral rule that makes the agent actually USE Reticle. Written into the detected agent's
|
|
159
|
+
* instruction file (Claude / Cursor, or both), falling back to the cross-agent AGENTS.md when neither
|
|
160
|
+
* is detected. Rides with the MCP wiring — `--no-mcp` opts out of registering the tools AND the rule.
|
|
161
|
+
*/
|
|
162
|
+
function agentRuleSteps(input) {
|
|
163
|
+
if (!input.options.mcp)
|
|
164
|
+
return [];
|
|
165
|
+
const detected = [claudeRuleStep(input), cursorRuleStep(input)].filter((s) => s !== null);
|
|
166
|
+
if (detected.length > 0)
|
|
167
|
+
return detected;
|
|
168
|
+
const r = mergeMarkedInstruction(input.agentsMdContent);
|
|
169
|
+
return [
|
|
170
|
+
r.status === AgentRuleStatus.ALREADY
|
|
171
|
+
? {
|
|
172
|
+
title: AGENT_RULE_TITLE,
|
|
173
|
+
target: AGENTS_MD_PATH,
|
|
174
|
+
status: StepStatus.ALREADY,
|
|
175
|
+
detail: 'Reticle rule already in AGENTS.md',
|
|
176
|
+
}
|
|
177
|
+
: {
|
|
178
|
+
title: AGENT_RULE_TITLE,
|
|
179
|
+
target: AGENTS_MD_PATH,
|
|
180
|
+
status: StepStatus.APPLY,
|
|
181
|
+
detail: AGENT_RULE_DETAIL,
|
|
182
|
+
write: { path: AGENTS_MD_PATH, content: r.content },
|
|
183
|
+
},
|
|
184
|
+
];
|
|
185
|
+
}
|
|
115
186
|
function installStep(input) {
|
|
116
187
|
const pm = input.detection.packageManager;
|
|
117
188
|
const packages = frameworkPackages(input.detection.framework);
|
|
@@ -257,7 +328,12 @@ function reticleConfigStep(input) {
|
|
|
257
328
|
};
|
|
258
329
|
}
|
|
259
330
|
export function buildPlan(input) {
|
|
260
|
-
const steps = [
|
|
331
|
+
const steps = [
|
|
332
|
+
...mcpSteps(input),
|
|
333
|
+
...agentRuleSteps(input),
|
|
334
|
+
installStep(input),
|
|
335
|
+
reticleConfigStep(input),
|
|
336
|
+
];
|
|
261
337
|
if (input.detection.framework === Framework.VITE) {
|
|
262
338
|
steps.push(...viteSteps(input));
|
|
263
339
|
}
|
package/dist/init/plan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/init/plan.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,mBAAmB,EAAkB,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EACL,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,gGAAgG;AAChG,qGAAqG;AACrG,oGAAoG;AACpG,
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/init/plan.ts"],"names":[],"mappings":"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"}
|
package/dist/init/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/init/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,EAC9B,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,GACzB,GAAG,CAAC,MAAM,CAAC,CAgBb;AAkBD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,MAAM;IACrB,+FAA+F;IAC/F,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACzC,yFAAyF;IACzF,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,mFAAmF;IACnF,OAAO,IAAI,MAAM,CAAC;IAClB,6CAA6C;IAC7C,SAAS,IAAI,SAAS,MAAM,EAAE,CAAC;IAC/B,qFAAqF;IACrF,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC;IACxD,4FAA4F;IAC5F,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC;IACzD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,UAAU,UAAU;IAClB,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/init/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,EAC9B,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,GACzB,GAAG,CAAC,MAAM,CAAC,CAgBb;AAkBD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,MAAM;IACrB,+FAA+F;IAC/F,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACzC,yFAAyF;IACzF,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,mFAAmF;IACnF,OAAO,IAAI,MAAM,CAAC;IAClB,6CAA6C;IAC7C,SAAS,IAAI,SAAS,MAAM,EAAE,CAAC;IAC/B,qFAAqF;IACrF,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC;IACxD,4FAA4F;IAC5F,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC;IACzD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,UAAU,UAAU;IAClB,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAgHD,wBAAgB,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CAUpE"}
|
package/dist/init/run.js
CHANGED
|
@@ -105,6 +105,10 @@ function gatherPlanInput(options, io, pkgRaw) {
|
|
|
105
105
|
nextReticleDevExists: io.exists(NEXT_RETICLE_DEV),
|
|
106
106
|
svelteKitHooksExists: io.exists(SVELTEKIT_HOOKS),
|
|
107
107
|
reticleConfigExists: io.exists('.reticle.json'),
|
|
108
|
+
// Read the agent instruction files so the rule merge stays idempotent across re-runs.
|
|
109
|
+
claudeMdContent: io.readFile('CLAUDE.md'),
|
|
110
|
+
agentsMdContent: io.readFile('AGENTS.md'),
|
|
111
|
+
cursorRuleExists: io.exists('.cursor/rules/reticle.mdc'),
|
|
108
112
|
options: { port: options.port, mcp: options.mcp, install: options.install, projectId },
|
|
109
113
|
};
|
|
110
114
|
}
|
package/dist/init/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/init/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/init/run.ts"],"names":[],"mappings":"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"}
|
package/dist/init/snippets.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { RETICLE_DEFAULT_PORT, bridgeWsUrl } from '@reticlehq/core';
|
|
6
6
|
/**
|
|
7
|
-
* The connect
|
|
7
|
+
* The connect argument literal: a non-default port adds a `url`, and a projectId is always passed
|
|
8
8
|
* (so the app is identifiable across port changes). Empty string only when neither applies.
|
|
9
9
|
*/
|
|
10
10
|
function connectArg(port, projectId) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Pure, conservative patcher for a Vite config: add the `@reticlehq/vite-plugin` import and drop
|
|
3
|
-
* `reticle
|
|
3
|
+
* `reticle` into the `plugins` array. Only handles the obvious, common shape — anything ambiguous
|
|
4
4
|
* bails to a `manual` result so we never half-edit a build config (a broken config is worse than a
|
|
5
5
|
* documented manual step).
|
|
6
6
|
*/
|
package/dist/init/vite-config.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Pure, conservative patcher for a Vite config: add the `@reticlehq/vite-plugin` import and drop
|
|
3
|
-
* `reticle
|
|
3
|
+
* `reticle` into the `plugins` array. Only handles the obvious, common shape — anything ambiguous
|
|
4
4
|
* bails to a `manual` result so we never half-edit a build config (a broken config is worse than a
|
|
5
5
|
* documented manual step).
|
|
6
6
|
*/
|
|
7
7
|
export const VITE_IMPORT = "import { reticle } from '@reticlehq/vite-plugin';";
|
|
8
8
|
const RETICLE_MARKER = '@reticlehq/vite-plugin';
|
|
9
|
-
/** The `reticle
|
|
9
|
+
/** The `reticle...)` call — carries the bridge port so the injected connect targets it. */
|
|
10
10
|
function reticlePluginCall(port) {
|
|
11
11
|
return port === undefined ? 'reticle()' : `reticle({ port: ${String(port)} })`;
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-config.js","sourceRoot":"","sources":["../../src/init/vite-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,mDAAmD,CAAC;AAC/E,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEhD,
|
|
1
|
+
{"version":3,"file":"vite-config.js","sourceRoot":"","sources":["../../src/init/vite-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,mDAAmD,CAAC;AAC/E,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEhD,2FAA2F;AAC3F,SAAS,iBAAiB,CAAC,IAAwB;IACjD,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,mBAAmB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACjF,CAAC;AACD,yDAAyD;AACzD,MAAM,aAAa,GAAG,kBAAkB,CAAC;AACzC,oFAAoF;AACpF,MAAM,WAAW,GAAG,0CAA0C,CAAC;AAE/D,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;CACR,CAAC;AAQX,MAAM,iBAAiB,GAAG,kDAAkD,CAAC;AAE7E,SAAS,YAAY,CAAC,MAAc;IAClC,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,IAAI,IAAI,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,GAAG,WAAW,KAAK,MAAM,EAAE,CAAC;IACrC,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AACvE,CAAC;AAED,SAAS,YAAY,CAAC,MAAc,EAAE,IAAwB;IAC5D,2DAA2D;IAC3D,OAAO,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,IAAa;IAC3D,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IACnE,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;AACvF,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { type ReticleEvent } from '@reticlehq/core';
|
|
2
|
+
/**
|
|
3
|
+
* CDP-authoritative network detail. Wherever the daemon has a CDP connection — whether it launched
|
|
4
|
+
* the browser or attached to one someone else started — `page.on('response')` sees the FULL response:
|
|
5
|
+
* status, mime type, and every response header, including the ones the in-page fetch/XHR wrapper
|
|
6
|
+
* structurally cannot read (CORS-opaque headers, redirects).
|
|
7
|
+
* Capturing it as a NET_DETAIL event and merging it onto the matching in-page NET_REQUEST means the
|
|
8
|
+
* driven view never loses fidelity to an outside-in tool. Pure builder + merge are unit-tested; the
|
|
9
|
+
* `page.on` attachment is thin Playwright glue (exercised e2e, like the pool launcher).
|
|
10
|
+
*/
|
|
11
|
+
export interface NetworkDetail {
|
|
12
|
+
url: string;
|
|
13
|
+
method?: string;
|
|
14
|
+
status: number;
|
|
15
|
+
headers: Record<string, string>;
|
|
16
|
+
resourceType?: string;
|
|
17
|
+
/**
|
|
18
|
+
* The request body as the NETWORK STACK saw it — what actually left, not what the page handed to
|
|
19
|
+
* fetch. Redacted and bounded here because it arrives raw from the driver.
|
|
20
|
+
*
|
|
21
|
+
* This is the one thing in-page instrumentation structurally cannot get: Reticle reads `init.body`
|
|
22
|
+
* inside its own fetch wrapper, and whoever patches fetch last is outermost — app bootstrap
|
|
23
|
+
* decides that, not us. An interceptor initialised after connect(), or a service worker (no
|
|
24
|
+
* window.fetch frame at all), rewrites requests invisibly. Available on the DRIVE path only.
|
|
25
|
+
*/
|
|
26
|
+
requestBody?: string;
|
|
27
|
+
/**
|
|
28
|
+
* The document that ISSUED the request, which is what identifies the session it belongs to.
|
|
29
|
+
*
|
|
30
|
+
* Routing used to match the REQUEST's origin against the session's, falling back to the drive
|
|
31
|
+
* URL's. Both miss the ordinary case: an app on one origin calling an API on another produces a
|
|
32
|
+
* detail matching no session, so it was dropped silently — and on the CDP-attach path there is no
|
|
33
|
+
* drive URL, so the fallback matched nothing at all. Cross-origin API calls are most API calls.
|
|
34
|
+
*/
|
|
35
|
+
pageUrl?: string;
|
|
36
|
+
}
|
|
37
|
+
/** Shape a raw authoritative response into a NET_DETAIL payload (lower-cased headers). */
|
|
38
|
+
export declare function buildNetworkDetail(raw: {
|
|
39
|
+
url: string;
|
|
40
|
+
method?: string;
|
|
41
|
+
status: number;
|
|
42
|
+
headers: Record<string, string>;
|
|
43
|
+
resourceType?: string;
|
|
44
|
+
requestBody?: string;
|
|
45
|
+
pageUrl?: string;
|
|
46
|
+
}): NetworkDetail;
|
|
47
|
+
/**
|
|
48
|
+
* Fold each NET_DETAIL onto the matching in-page NET_REQUEST (by method+url), enriching it with the
|
|
49
|
+
* authoritative headers/resourceType the page-side wrapper couldn't see — WITHOUT clobbering fields the
|
|
50
|
+
* in-page event already carries. A NET_DETAIL with no matching request is kept as its own event (a
|
|
51
|
+
* response the wrapper missed is signal, never silently dropped). Pure over the event list.
|
|
52
|
+
*/
|
|
53
|
+
export declare function mergeNetworkDetail(events: readonly ReticleEvent[]): ReticleEvent[];
|
|
54
|
+
/** The minimal Playwright surfaces this attachment reads — kept structural so it's fake-testable. */
|
|
55
|
+
export interface ResponseLike {
|
|
56
|
+
url(): string;
|
|
57
|
+
status(): number;
|
|
58
|
+
headers(): Record<string, string> | Promise<Record<string, string>>;
|
|
59
|
+
request(): {
|
|
60
|
+
method(): string;
|
|
61
|
+
resourceType?(): string;
|
|
62
|
+
postData?(): string | null;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export interface PageLike {
|
|
66
|
+
url(): string;
|
|
67
|
+
on(event: 'response', handler: (response: ResponseLike) => void): void;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Attach a response listener to a driven page: every response becomes a NET_DETAIL via `emit`. Thin glue
|
|
71
|
+
* over Playwright's event surface — the daemon routes `emit` to the driven session's pushEvent.
|
|
72
|
+
*/
|
|
73
|
+
export declare function attachNetworkDetail(page: PageLike, emit: (detail: NetworkDetail) => void): void;
|
|
74
|
+
//# sourceMappingURL=network-detail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-detail.d.ts","sourceRoot":"","sources":["../../src/input/network-detail.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;GAQG;AAEH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAmED,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,aAAa,CAYhB;AAQD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,YAAY,EAAE,CA4ClF;AAED,qGAAqG;AACrG,MAAM,WAAW,YAAY;IAC3B,GAAG,IAAI,MAAM,CAAC;IACd,MAAM,IAAI,MAAM,CAAC;IACjB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpE,OAAO,IAAI;QAAE,MAAM,IAAI,MAAM,CAAC;QAAC,YAAY,CAAC,IAAI,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACtF;AACD,MAAM,WAAW,QAAQ;IACvB,GAAG,IAAI,MAAM,CAAC;IACd,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;CACxE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI,CAyB/F"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { EventType, REDACTED_VALUE, isSensitiveKey, scrubKnownSecrets, } from '@reticlehq/core';
|
|
2
|
+
/** Bound on a captured wire body — matches the in-page capture so the two are comparable. */
|
|
3
|
+
const MAX_WIRE_BODY_CHARS = 8192;
|
|
4
|
+
/**
|
|
5
|
+
* Redact a sensitive key's value whatever its TYPE — string, number, array, or a nested object.
|
|
6
|
+
*
|
|
7
|
+
* This is the one payload in the system that reaches the journal without having passed through the
|
|
8
|
+
* SDK's sanitizer (Playwright hands it over raw), so its redaction has to be as strong as the SDK's,
|
|
9
|
+
* which is key-based over a parsed object — not string-shaped.
|
|
10
|
+
*/
|
|
11
|
+
function redactByKey(value) {
|
|
12
|
+
if (Array.isArray(value))
|
|
13
|
+
return value.map(redactByKey);
|
|
14
|
+
if (value !== null && typeof value === 'object') {
|
|
15
|
+
const out = {};
|
|
16
|
+
for (const [k, v] of Object.entries(value)) {
|
|
17
|
+
out[k] = isSensitiveKey(k) ? REDACTED_VALUE : redactByKey(v);
|
|
18
|
+
}
|
|
19
|
+
return out;
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
function projectWireBody(raw) {
|
|
24
|
+
const bounded = raw.length > MAX_WIRE_BODY_CHARS ? raw.slice(0, MAX_WIRE_BODY_CHARS) : raw;
|
|
25
|
+
const byShape = scrubKnownSecrets(bounded);
|
|
26
|
+
// Prefer a STRUCTURAL pass. A sensitive key must be redacted regardless of its value type — a
|
|
27
|
+
// numeric PIN (`"password": 1234`), a token array, a nested credential object — and the old
|
|
28
|
+
// string-only sweep matched exclusively `"key":"string"`, so every non-string secret leaked
|
|
29
|
+
// straight to the agent's context and the on-disk journal. Parsing and walking redacts them by key
|
|
30
|
+
// whatever the shape.
|
|
31
|
+
try {
|
|
32
|
+
return JSON.stringify(redactByKey(JSON.parse(byShape)));
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
// Not JSON (a truncated capture, or a form-encoded body — the shape a login form actually POSTs).
|
|
36
|
+
// Two best-effort sweeps, because a password lives in both: the `"key":"string"` JSON fragment a
|
|
37
|
+
// truncated body still contains, and the `key=value` pair of `application/x-www-form-urlencoded`,
|
|
38
|
+
// which neither the JSON path nor the old regex ever touched — so `password=hunter2` leaked.
|
|
39
|
+
return byShape
|
|
40
|
+
.replace(/"([^"]+)"\s*:\s*"([^"]*)"/g, (whole, key) => isSensitiveKey(key) ? `"${key}":"${REDACTED_VALUE}"` : whole)
|
|
41
|
+
.replace(/([^&?=\s]+)=([^&\s]*)/g, (whole, key) => isSensitiveKey(key) ? `${key}=${REDACTED_VALUE}` : whole);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Header names are case-insensitive; normalize to lower-case so a merge/compare is stable — and
|
|
46
|
+
* REDACT while we do it. On the CDP/drive path `page.on('response')` sees the full response headers,
|
|
47
|
+
* including `set-cookie` (the session credential), and requests carry `cookie`/`authorization`. These
|
|
48
|
+
* were the one wire payload that reached the journal (cleartext, on disk) and the agent's context
|
|
49
|
+
* window unredacted — every other capture goes through the SDK sanitizer or projectWireBody. A
|
|
50
|
+
* credential HEADER is redacted whole by key; any other header value is still swept for known secret
|
|
51
|
+
* SHAPES (a JWT echoed in a custom header), matching how request bodies are handled.
|
|
52
|
+
*/
|
|
53
|
+
function projectHeaders(headers) {
|
|
54
|
+
const out = {};
|
|
55
|
+
for (const [k, v] of Object.entries(headers)) {
|
|
56
|
+
const key = k.toLowerCase();
|
|
57
|
+
out[key] = isSensitiveKey(key) ? REDACTED_VALUE : scrubKnownSecrets(v);
|
|
58
|
+
}
|
|
59
|
+
return out;
|
|
60
|
+
}
|
|
61
|
+
/** Shape a raw authoritative response into a NET_DETAIL payload (lower-cased headers). */
|
|
62
|
+
export function buildNetworkDetail(raw) {
|
|
63
|
+
return {
|
|
64
|
+
url: raw.url,
|
|
65
|
+
...(raw.method === undefined ? {} : { method: raw.method }),
|
|
66
|
+
status: raw.status,
|
|
67
|
+
headers: projectHeaders(raw.headers),
|
|
68
|
+
...(raw.resourceType === undefined ? {} : { resourceType: raw.resourceType }),
|
|
69
|
+
...(raw.requestBody === undefined || raw.requestBody.length === 0
|
|
70
|
+
? {}
|
|
71
|
+
: { requestBody: projectWireBody(raw.requestBody) }),
|
|
72
|
+
...(raw.pageUrl === undefined || raw.pageUrl.length === 0 ? {} : { pageUrl: raw.pageUrl }),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function keyOf(url, method) {
|
|
76
|
+
const m = typeof method === 'string' ? method.toUpperCase() : '';
|
|
77
|
+
const u = typeof url === 'string' ? url : '';
|
|
78
|
+
return `${m} ${u}`;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Fold each NET_DETAIL onto the matching in-page NET_REQUEST (by method+url), enriching it with the
|
|
82
|
+
* authoritative headers/resourceType the page-side wrapper couldn't see — WITHOUT clobbering fields the
|
|
83
|
+
* in-page event already carries. A NET_DETAIL with no matching request is kept as its own event (a
|
|
84
|
+
* response the wrapper missed is signal, never silently dropped). Pure over the event list.
|
|
85
|
+
*/
|
|
86
|
+
export function mergeNetworkDetail(events) {
|
|
87
|
+
const requestByKey = new Map();
|
|
88
|
+
for (const e of events) {
|
|
89
|
+
if (e.type === EventType.NET_REQUEST)
|
|
90
|
+
requestByKey.set(keyOf(e.data['url'], e.data['method']), e);
|
|
91
|
+
}
|
|
92
|
+
const out = [];
|
|
93
|
+
const enriched = new Map();
|
|
94
|
+
for (const e of events) {
|
|
95
|
+
if (e.type === EventType.NET_DETAIL) {
|
|
96
|
+
const match = requestByKey.get(keyOf(e.data['url'], e.data['method']));
|
|
97
|
+
if (match === undefined) {
|
|
98
|
+
out.push(e); // unmatched detail survives on its own
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
const base = enriched.get(match) ?? match;
|
|
102
|
+
const data = { ...base.data };
|
|
103
|
+
if (data['headers'] === undefined && e.data['headers'] !== undefined) {
|
|
104
|
+
data['headers'] = e.data['headers'];
|
|
105
|
+
}
|
|
106
|
+
if (data['resourceType'] === undefined && e.data['resourceType'] !== undefined) {
|
|
107
|
+
data['resourceType'] = e.data['resourceType'];
|
|
108
|
+
}
|
|
109
|
+
// The ONLY field that overwrites rather than filling a gap. The in-page value is what the app
|
|
110
|
+
// INTENDED to send; this is what actually went. When they disagree, the disagreement is the
|
|
111
|
+
// finding — that is the whole reason for capturing it — so the authoritative one wins and the
|
|
112
|
+
// divergence is flagged rather than silently resolved.
|
|
113
|
+
const wireBody = e.data['requestBody'];
|
|
114
|
+
if (typeof wireBody === 'string') {
|
|
115
|
+
const pageBody = data['requestBody'];
|
|
116
|
+
if (typeof pageBody === 'string' && pageBody !== wireBody) {
|
|
117
|
+
data['requestBodyDivergedFromPage'] = true;
|
|
118
|
+
}
|
|
119
|
+
data['requestBody'] = wireBody;
|
|
120
|
+
}
|
|
121
|
+
enriched.set(match, { ...base, data });
|
|
122
|
+
continue; // the detail is absorbed into the request
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
for (const e of events) {
|
|
126
|
+
if (e.type === EventType.NET_DETAIL)
|
|
127
|
+
continue; // handled above
|
|
128
|
+
out.push(enriched.get(e) ?? e);
|
|
129
|
+
}
|
|
130
|
+
return out;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Attach a response listener to a driven page: every response becomes a NET_DETAIL via `emit`. Thin glue
|
|
134
|
+
* over Playwright's event surface — the daemon routes `emit` to the driven session's pushEvent.
|
|
135
|
+
*/
|
|
136
|
+
export function attachNetworkDetail(page, emit) {
|
|
137
|
+
page.on('response', (response) => {
|
|
138
|
+
const detailPromise = Promise.resolve(response.headers()).then((headers) => {
|
|
139
|
+
const request = response.request();
|
|
140
|
+
const resourceType = request.resourceType?.();
|
|
141
|
+
// postData is null for GETs and for bodies the driver did not retain; both mean "nothing to say".
|
|
142
|
+
const postData = request.postData?.() ?? null;
|
|
143
|
+
emit(buildNetworkDetail({
|
|
144
|
+
url: response.url(),
|
|
145
|
+
method: request.method(),
|
|
146
|
+
status: response.status(),
|
|
147
|
+
headers,
|
|
148
|
+
...(resourceType === undefined ? {} : { resourceType }),
|
|
149
|
+
...(postData === null ? {} : { requestBody: postData }),
|
|
150
|
+
pageUrl: page.url(),
|
|
151
|
+
}));
|
|
152
|
+
});
|
|
153
|
+
// `response.headers()` REJECTS when the page/CDP session is closing — precisely when responses race
|
|
154
|
+
// teardown (navigation, tab close). Without this catch the rejection floats; on the daemon path a
|
|
155
|
+
// global unhandledRejection trap swallows it, but on the stdio `start()` path there is no trap, so
|
|
156
|
+
// one late response would crash the whole MCP server. A detail we can't read is simply dropped.
|
|
157
|
+
void detailPromise.catch(() => undefined);
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=network-detail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-detail.js","sourceRoot":"","sources":["../../src/input/network-detail.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,10 @@ import type { Page, Route } from 'playwright';
|
|
|
5
5
|
* "Verify the app handles a failed payment" becomes one declared rule.
|
|
6
6
|
*
|
|
7
7
|
* Two layers, split for testability:
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* - matchMock: PURE. Given the active rules and a request's url/method, decide the outcome
|
|
9
|
+
* (fulfill | abort | continue). Unit-tested directly.
|
|
10
|
+
* - installNetworkMocks: the Playwright wiring. Registers a single catch-all page.route handler
|
|
11
|
+
* that consults matchMock and fulfills/aborts/continues. Driven in tests with a fake Page + Route.
|
|
12
12
|
*/
|
|
13
13
|
/** One interception rule. First matching rule (in order) wins for a request. */
|
|
14
14
|
export interface MockRule {
|