@reticlehq/server 2.0.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 +105 -0
- package/README.md +17 -0
- package/dist/bridge-security.d.ts +23 -0
- package/dist/bridge-security.d.ts.map +1 -0
- package/dist/bridge-security.js +44 -0
- package/dist/bridge-security.js.map +1 -0
- package/dist/bridge.d.ts +42 -0
- package/dist/bridge.d.ts.map +1 -0
- package/dist/bridge.js +281 -0
- package/dist/bridge.js.map +1 -0
- package/dist/bridge.test-harness.d.ts +42 -0
- package/dist/bridge.test-harness.d.ts.map +1 -0
- package/dist/bridge.test-harness.js +192 -0
- package/dist/bridge.test-harness.js.map +1 -0
- package/dist/cli-launch.d.ts +53 -0
- package/dist/cli-launch.d.ts.map +1 -0
- package/dist/cli-launch.js +109 -0
- package/dist/cli-launch.js.map +1 -0
- package/dist/cli-parse.d.ts +74 -0
- package/dist/cli-parse.d.ts.map +1 -0
- package/dist/cli-parse.js +321 -0
- package/dist/cli-parse.js.map +1 -0
- package/dist/cli-port.d.ts +26 -0
- package/dist/cli-port.d.ts.map +1 -0
- package/dist/cli-port.js +57 -0
- package/dist/cli-port.js.map +1 -0
- package/dist/cli-verify.d.ts +46 -0
- package/dist/cli-verify.d.ts.map +1 -0
- package/dist/cli-verify.js +181 -0
- package/dist/cli-verify.js.map +1 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +337 -0
- package/dist/cli.js.map +1 -0
- package/dist/cloud/cloud-sync.d.ts +50 -0
- package/dist/cloud/cloud-sync.d.ts.map +1 -0
- package/dist/cloud/cloud-sync.js +47 -0
- package/dist/cloud/cloud-sync.js.map +1 -0
- package/dist/crawl/crawl-tools.d.ts +8 -0
- package/dist/crawl/crawl-tools.d.ts.map +1 -0
- package/dist/crawl/crawl-tools.js +61 -0
- package/dist/crawl/crawl-tools.js.map +1 -0
- package/dist/crawl/crawl.d.ts +45 -0
- package/dist/crawl/crawl.d.ts.map +1 -0
- package/dist/crawl/crawl.js +106 -0
- package/dist/crawl/crawl.js.map +1 -0
- package/dist/daemon-resilience.d.ts +17 -0
- package/dist/daemon-resilience.d.ts.map +1 -0
- package/dist/daemon-resilience.js +23 -0
- package/dist/daemon-resilience.js.map +1 -0
- package/dist/daemon.d.ts +26 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +122 -0
- package/dist/daemon.js.map +1 -0
- package/dist/domain/domain-model.d.ts +64 -0
- package/dist/domain/domain-model.d.ts.map +1 -0
- package/dist/domain/domain-model.js +127 -0
- package/dist/domain/domain-model.js.map +1 -0
- package/dist/domain/domain-tools.d.ts +9 -0
- package/dist/domain/domain-tools.d.ts.map +1 -0
- package/dist/domain/domain-tools.js +66 -0
- package/dist/domain/domain-tools.js.map +1 -0
- package/dist/domain/flow-risk.d.ts +34 -0
- package/dist/domain/flow-risk.d.ts.map +1 -0
- package/dist/domain/flow-risk.js +81 -0
- package/dist/domain/flow-risk.js.map +1 -0
- package/dist/ee/audit-log.d.ts +15 -0
- package/dist/ee/audit-log.d.ts.map +1 -0
- package/dist/ee/audit-log.js +12 -0
- package/dist/ee/audit-log.js.map +1 -0
- package/dist/events/event-filters.d.ts +65 -0
- package/dist/events/event-filters.d.ts.map +1 -0
- package/dist/events/event-filters.js +98 -0
- package/dist/events/event-filters.js.map +1 -0
- package/dist/events/predicate-eval.d.ts +91 -0
- package/dist/events/predicate-eval.d.ts.map +1 -0
- package/dist/events/predicate-eval.js +299 -0
- package/dist/events/predicate-eval.js.map +1 -0
- package/dist/events/predicate.d.ts +19 -0
- package/dist/events/predicate.d.ts.map +1 -0
- package/dist/events/predicate.js +188 -0
- package/dist/events/predicate.js.map +1 -0
- package/dist/events/reaction.d.ts +34 -0
- package/dist/events/reaction.d.ts.map +1 -0
- package/dist/events/reaction.js +60 -0
- package/dist/events/reaction.js.map +1 -0
- package/dist/events/ring-buffer.d.ts +32 -0
- package/dist/events/ring-buffer.d.ts.map +1 -0
- package/dist/events/ring-buffer.js +75 -0
- package/dist/events/ring-buffer.js.map +1 -0
- package/dist/flows/annotate-tools.d.ts +16 -0
- package/dist/flows/annotate-tools.d.ts.map +1 -0
- package/dist/flows/annotate-tools.js +136 -0
- package/dist/flows/annotate-tools.js.map +1 -0
- package/dist/flows/annotate.d.ts +22 -0
- package/dist/flows/annotate.d.ts.map +1 -0
- package/dist/flows/annotate.js +134 -0
- package/dist/flows/annotate.js.map +1 -0
- package/dist/flows/annotation-store.d.ts +23 -0
- package/dist/flows/annotation-store.d.ts.map +1 -0
- package/dist/flows/annotation-store.js +51 -0
- package/dist/flows/annotation-store.js.map +1 -0
- package/dist/flows/decision.d.ts +13 -0
- package/dist/flows/decision.d.ts.map +1 -0
- package/dist/flows/decision.js +111 -0
- package/dist/flows/decision.js.map +1 -0
- package/dist/flows/flow-classify.d.ts +52 -0
- package/dist/flows/flow-classify.d.ts.map +1 -0
- package/dist/flows/flow-classify.js +99 -0
- package/dist/flows/flow-classify.js.map +1 -0
- package/dist/flows/flow-replay-run.d.ts +15 -0
- package/dist/flows/flow-replay-run.d.ts.map +1 -0
- package/dist/flows/flow-replay-run.js +120 -0
- package/dist/flows/flow-replay-run.js.map +1 -0
- package/dist/flows/flow-replay.d.ts +49 -0
- package/dist/flows/flow-replay.d.ts.map +1 -0
- package/dist/flows/flow-replay.js +391 -0
- package/dist/flows/flow-replay.js.map +1 -0
- package/dist/flows/flow-report.d.ts +23 -0
- package/dist/flows/flow-report.d.ts.map +1 -0
- package/dist/flows/flow-report.js +106 -0
- package/dist/flows/flow-report.js.map +1 -0
- package/dist/flows/flow-scope.d.ts +25 -0
- package/dist/flows/flow-scope.d.ts.map +1 -0
- package/dist/flows/flow-scope.js +32 -0
- package/dist/flows/flow-scope.js.map +1 -0
- package/dist/flows/flow-success.d.ts +33 -0
- package/dist/flows/flow-success.d.ts.map +1 -0
- package/dist/flows/flow-success.js +131 -0
- package/dist/flows/flow-success.js.map +1 -0
- package/dist/flows/flow-tools.d.ts +4 -0
- package/dist/flows/flow-tools.d.ts.map +1 -0
- package/dist/flows/flow-tools.js +460 -0
- package/dist/flows/flow-tools.js.map +1 -0
- package/dist/flows/flows.d.ts +86 -0
- package/dist/flows/flows.d.ts.map +1 -0
- package/dist/flows/flows.js +319 -0
- package/dist/flows/flows.js.map +1 -0
- package/dist/flows/heal.d.ts +43 -0
- package/dist/flows/heal.d.ts.map +1 -0
- package/dist/flows/heal.js +98 -0
- package/dist/flows/heal.js.map +1 -0
- package/dist/flows/recordings.d.ts +46 -0
- package/dist/flows/recordings.d.ts.map +1 -0
- package/dist/flows/recordings.js +43 -0
- package/dist/flows/recordings.js.map +1 -0
- package/dist/flows/replay.d.ts +23 -0
- package/dist/flows/replay.d.ts.map +1 -0
- package/dist/flows/replay.js +160 -0
- package/dist/flows/replay.js.map +1 -0
- package/dist/http-server.d.ts +39 -0
- package/dist/http-server.d.ts.map +1 -0
- package/dist/http-server.js +145 -0
- package/dist/http-server.js.map +1 -0
- package/dist/idle-shutdown.d.ts +34 -0
- package/dist/idle-shutdown.d.ts.map +1 -0
- package/dist/idle-shutdown.js +68 -0
- package/dist/idle-shutdown.js.map +1 -0
- package/dist/index.d.ts +135 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +371 -0
- package/dist/index.js.map +1 -0
- package/dist/init/cursor.d.ts +25 -0
- package/dist/init/cursor.d.ts.map +1 -0
- package/dist/init/cursor.js +49 -0
- package/dist/init/cursor.js.map +1 -0
- package/dist/init/detect.d.ts +49 -0
- package/dist/init/detect.d.ts.map +1 -0
- package/dist/init/detect.js +84 -0
- package/dist/init/detect.js.map +1 -0
- package/dist/init/mcp.d.ts +40 -0
- package/dist/init/mcp.d.ts.map +1 -0
- package/dist/init/mcp.js +55 -0
- package/dist/init/mcp.js.map +1 -0
- package/dist/init/node-io.d.ts +8 -0
- package/dist/init/node-io.d.ts.map +1 -0
- package/dist/init/node-io.js +57 -0
- package/dist/init/node-io.js.map +1 -0
- package/dist/init/plan.d.ts +72 -0
- package/dist/init/plan.d.ts.map +1 -0
- package/dist/init/plan.js +280 -0
- package/dist/init/plan.js.map +1 -0
- package/dist/init/project-id.d.ts +17 -0
- package/dist/init/project-id.d.ts.map +1 -0
- package/dist/init/project-id.js +38 -0
- package/dist/init/project-id.js.map +1 -0
- package/dist/init/run.d.ts +42 -0
- package/dist/init/run.d.ts.map +1 -0
- package/dist/init/run.js +171 -0
- package/dist/init/run.js.map +1 -0
- package/dist/init/snippets.d.ts +33 -0
- package/dist/init/snippets.d.ts.map +1 -0
- package/dist/init/snippets.js +117 -0
- package/dist/init/snippets.js.map +1 -0
- package/dist/init/vite-config.d.ts +25 -0
- package/dist/init/vite-config.d.ts.map +1 -0
- package/dist/init/vite-config.js +45 -0
- package/dist/init/vite-config.js.map +1 -0
- package/dist/input/network-mock-tools.d.ts +3 -0
- package/dist/input/network-mock-tools.d.ts.map +1 -0
- package/dist/input/network-mock-tools.js +94 -0
- package/dist/input/network-mock-tools.js.map +1 -0
- package/dist/input/network-mock.d.ts +55 -0
- package/dist/input/network-mock.d.ts.map +1 -0
- package/dist/input/network-mock.js +62 -0
- package/dist/input/network-mock.js.map +1 -0
- package/dist/input/real-input.d.ts +174 -0
- package/dist/input/real-input.d.ts.map +1 -0
- package/dist/input/real-input.js +289 -0
- package/dist/input/real-input.js.map +1 -0
- package/dist/input/scroll-find.d.ts +41 -0
- package/dist/input/scroll-find.d.ts.map +1 -0
- package/dist/input/scroll-find.js +59 -0
- package/dist/input/scroll-find.js.map +1 -0
- package/dist/input/scroll-tools.d.ts +8 -0
- package/dist/input/scroll-tools.d.ts.map +1 -0
- package/dist/input/scroll-tools.js +68 -0
- package/dist/input/scroll-tools.js.map +1 -0
- package/dist/input/viewport-tools.d.ts +3 -0
- package/dist/input/viewport-tools.d.ts.map +1 -0
- package/dist/input/viewport-tools.js +65 -0
- package/dist/input/viewport-tools.js.map +1 -0
- package/dist/license/license.d.ts +108 -0
- package/dist/license/license.d.ts.map +1 -0
- package/dist/license/license.js +203 -0
- package/dist/license/license.js.map +1 -0
- package/dist/log.d.ts +6 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +9 -0
- package/dist/log.js.map +1 -0
- package/dist/mcp-proxy.d.ts +16 -0
- package/dist/mcp-proxy.d.ts.map +1 -0
- package/dist/mcp-proxy.js +168 -0
- package/dist/mcp-proxy.js.map +1 -0
- package/dist/mcp.d.ts +14 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +101 -0
- package/dist/mcp.js.map +1 -0
- package/dist/pairing-token.d.ts +28 -0
- package/dist/pairing-token.d.ts.map +1 -0
- package/dist/pairing-token.js +62 -0
- package/dist/pairing-token.js.map +1 -0
- package/dist/pool/browser-pool.d.ts +90 -0
- package/dist/pool/browser-pool.d.ts.map +1 -0
- package/dist/pool/browser-pool.js +221 -0
- package/dist/pool/browser-pool.js.map +1 -0
- package/dist/pool/lease-reaper.d.ts +16 -0
- package/dist/pool/lease-reaper.d.ts.map +1 -0
- package/dist/pool/lease-reaper.js +41 -0
- package/dist/pool/lease-reaper.js.map +1 -0
- package/dist/pool/playwright-launcher.d.ts +19 -0
- package/dist/pool/playwright-launcher.d.ts.map +1 -0
- package/dist/pool/playwright-launcher.js +51 -0
- package/dist/pool/playwright-launcher.js.map +1 -0
- package/dist/project/baselines.d.ts +22 -0
- package/dist/project/baselines.d.ts.map +1 -0
- package/dist/project/baselines.js +45 -0
- package/dist/project/baselines.js.map +1 -0
- package/dist/project/fs-port.d.ts +27 -0
- package/dist/project/fs-port.d.ts.map +1 -0
- package/dist/project/fs-port.js +32 -0
- package/dist/project/fs-port.js.map +1 -0
- package/dist/project/project-store.d.ts +32 -0
- package/dist/project/project-store.d.ts.map +1 -0
- package/dist/project/project-store.js +127 -0
- package/dist/project/project-store.js.map +1 -0
- package/dist/project/project-tools.d.ts +9 -0
- package/dist/project/project-tools.d.ts.map +1 -0
- package/dist/project/project-tools.js +118 -0
- package/dist/project/project-tools.js.map +1 -0
- package/dist/project/reticle-dir.d.ts +61 -0
- package/dist/project/reticle-dir.d.ts.map +1 -0
- package/dist/project/reticle-dir.js +144 -0
- package/dist/project/reticle-dir.js.map +1 -0
- package/dist/runs/build-verification-run.d.ts +30 -0
- package/dist/runs/build-verification-run.d.ts.map +1 -0
- package/dist/runs/build-verification-run.js +71 -0
- package/dist/runs/build-verification-run.js.map +1 -0
- package/dist/runs/profile-redact.d.ts +16 -0
- package/dist/runs/profile-redact.d.ts.map +1 -0
- package/dist/runs/profile-redact.js +32 -0
- package/dist/runs/profile-redact.js.map +1 -0
- package/dist/runs/render-report.d.ts +9 -0
- package/dist/runs/render-report.d.ts.map +1 -0
- package/dist/runs/render-report.js +70 -0
- package/dist/runs/render-report.js.map +1 -0
- package/dist/runs/repair-prompt.d.ts +15 -0
- package/dist/runs/repair-prompt.d.ts.map +1 -0
- package/dist/runs/repair-prompt.js +59 -0
- package/dist/runs/repair-prompt.js.map +1 -0
- package/dist/runs/replay-mapping.d.ts +12 -0
- package/dist/runs/replay-mapping.d.ts.map +1 -0
- package/dist/runs/replay-mapping.js +35 -0
- package/dist/runs/replay-mapping.js.map +1 -0
- package/dist/runs/reticle-runner.d.ts +48 -0
- package/dist/runs/reticle-runner.d.ts.map +1 -0
- package/dist/runs/reticle-runner.js +56 -0
- package/dist/runs/reticle-runner.js.map +1 -0
- package/dist/runs/risk-classify.d.ts +27 -0
- package/dist/runs/risk-classify.d.ts.map +1 -0
- package/dist/runs/risk-classify.js +76 -0
- package/dist/runs/risk-classify.js.map +1 -0
- package/dist/runs/run-store.d.ts +40 -0
- package/dist/runs/run-store.d.ts.map +1 -0
- package/dist/runs/run-store.js +118 -0
- package/dist/runs/run-store.js.map +1 -0
- package/dist/runs/run-tools.d.ts +10 -0
- package/dist/runs/run-tools.d.ts.map +1 -0
- package/dist/runs/run-tools.js +69 -0
- package/dist/runs/run-tools.js.map +1 -0
- package/dist/runs/runner-port.d.ts +14 -0
- package/dist/runs/runner-port.d.ts.map +1 -0
- package/dist/runs/runner-port.js +23 -0
- package/dist/runs/runner-port.js.map +1 -0
- package/dist/runs/verify-http.d.ts +34 -0
- package/dist/runs/verify-http.d.ts.map +1 -0
- package/dist/runs/verify-http.js +102 -0
- package/dist/runs/verify-http.js.map +1 -0
- package/dist/runs/verify-server.d.ts +26 -0
- package/dist/runs/verify-server.d.ts.map +1 -0
- package/dist/runs/verify-server.js +99 -0
- package/dist/runs/verify-server.js.map +1 -0
- package/dist/server-version.d.ts +3 -0
- package/dist/server-version.d.ts.map +1 -0
- package/dist/server-version.js +5 -0
- package/dist/server-version.js.map +1 -0
- package/dist/session/control-envelope.d.ts +49 -0
- package/dist/session/control-envelope.d.ts.map +1 -0
- package/dist/session/control-envelope.js +44 -0
- package/dist/session/control-envelope.js.map +1 -0
- package/dist/session/live-control-tools.d.ts +16 -0
- package/dist/session/live-control-tools.d.ts.map +1 -0
- package/dist/session/live-control-tools.js +204 -0
- package/dist/session/live-control-tools.js.map +1 -0
- package/dist/session/output-budget.d.ts +41 -0
- package/dist/session/output-budget.d.ts.map +1 -0
- package/dist/session/output-budget.js +54 -0
- package/dist/session/output-budget.js.map +1 -0
- package/dist/session/presenter-args.d.ts +8 -0
- package/dist/session/presenter-args.d.ts.map +1 -0
- package/dist/session/presenter-args.js +15 -0
- package/dist/session/presenter-args.js.map +1 -0
- package/dist/session/review-store.d.ts +40 -0
- package/dist/session/review-store.d.ts.map +1 -0
- package/dist/session/review-store.js +61 -0
- package/dist/session/review-store.js.map +1 -0
- package/dist/session/session-health.d.ts +22 -0
- package/dist/session/session-health.d.ts.map +1 -0
- package/dist/session/session-health.js +26 -0
- package/dist/session/session-health.js.map +1 -0
- package/dist/session/session-manager.d.ts +43 -0
- package/dist/session/session-manager.d.ts.map +1 -0
- package/dist/session/session-manager.js +155 -0
- package/dist/session/session-manager.js.map +1 -0
- package/dist/session/session-readiness.d.ts +35 -0
- package/dist/session/session-readiness.d.ts.map +1 -0
- package/dist/session/session-readiness.js +32 -0
- package/dist/session/session-readiness.js.map +1 -0
- package/dist/session/session-reaper.d.ts +37 -0
- package/dist/session/session-reaper.d.ts.map +1 -0
- package/dist/session/session-reaper.js +94 -0
- package/dist/session/session-reaper.js.map +1 -0
- package/dist/session/session-recommendation.d.ts +18 -0
- package/dist/session/session-recommendation.d.ts.map +1 -0
- package/dist/session/session-recommendation.js +14 -0
- package/dist/session/session-recommendation.js.map +1 -0
- package/dist/session/session-tools.d.ts +9 -0
- package/dist/session/session-tools.d.ts.map +1 -0
- package/dist/session/session-tools.js +43 -0
- package/dist/session/session-tools.js.map +1 -0
- package/dist/session/session.d.ts +166 -0
- package/dist/session/session.d.ts.map +1 -0
- package/dist/session/session.js +408 -0
- package/dist/session/session.js.map +1 -0
- package/dist/session/state-select.d.ts +8 -0
- package/dist/session/state-select.d.ts.map +1 -0
- package/dist/session/state-select.js +8 -0
- package/dist/session/state-select.js.map +1 -0
- package/dist/token-auth.d.ts +24 -0
- package/dist/token-auth.d.ts.map +1 -0
- package/dist/token-auth.js +71 -0
- package/dist/token-auth.js.map +1 -0
- package/dist/tools/act-tools.d.ts +3 -0
- package/dist/tools/act-tools.d.ts.map +1 -0
- package/dist/tools/act-tools.js +327 -0
- package/dist/tools/act-tools.js.map +1 -0
- package/dist/tools/act-view.d.ts +19 -0
- package/dist/tools/act-view.d.ts.map +1 -0
- package/dist/tools/act-view.js +46 -0
- package/dist/tools/act-view.js.map +1 -0
- package/dist/tools/assert-grade.d.ts +21 -0
- package/dist/tools/assert-grade.d.ts.map +1 -0
- package/dist/tools/assert-grade.js +52 -0
- package/dist/tools/assert-grade.js.map +1 -0
- package/dist/tools/browser-tools.d.ts +3 -0
- package/dist/tools/browser-tools.d.ts.map +1 -0
- package/dist/tools/browser-tools.js +52 -0
- package/dist/tools/browser-tools.js.map +1 -0
- package/dist/tools/contract-tools.d.ts +8 -0
- package/dist/tools/contract-tools.d.ts.map +1 -0
- package/dist/tools/contract-tools.js +62 -0
- package/dist/tools/contract-tools.js.map +1 -0
- package/dist/tools/dynamic-tools.d.ts +7 -0
- package/dist/tools/dynamic-tools.d.ts.map +1 -0
- package/dist/tools/dynamic-tools.js +103 -0
- package/dist/tools/dynamic-tools.js.map +1 -0
- package/dist/tools/error-recovery.d.ts +31 -0
- package/dist/tools/error-recovery.d.ts.map +1 -0
- package/dist/tools/error-recovery.js +52 -0
- package/dist/tools/error-recovery.js.map +1 -0
- package/dist/tools/invoke-tool.d.ts +23 -0
- package/dist/tools/invoke-tool.d.ts.map +1 -0
- package/dist/tools/invoke-tool.js +99 -0
- package/dist/tools/invoke-tool.js.map +1 -0
- package/dist/tools/lease-tools.d.ts +31 -0
- package/dist/tools/lease-tools.d.ts.map +1 -0
- package/dist/tools/lease-tools.js +164 -0
- package/dist/tools/lease-tools.js.map +1 -0
- package/dist/tools/observe-tools.d.ts +3 -0
- package/dist/tools/observe-tools.d.ts.map +1 -0
- package/dist/tools/observe-tools.js +259 -0
- package/dist/tools/observe-tools.js.map +1 -0
- package/dist/tools/profiles.d.ts +33 -0
- package/dist/tools/profiles.d.ts.map +1 -0
- package/dist/tools/profiles.js +105 -0
- package/dist/tools/profiles.js.map +1 -0
- package/dist/tools/query-paginate.d.ts +15 -0
- package/dist/tools/query-paginate.d.ts.map +1 -0
- package/dist/tools/query-paginate.js +31 -0
- package/dist/tools/query-paginate.js.map +1 -0
- package/dist/tools/read-tools.d.ts +3 -0
- package/dist/tools/read-tools.d.ts.map +1 -0
- package/dist/tools/read-tools.js +329 -0
- package/dist/tools/read-tools.js.map +1 -0
- package/dist/tools/snapshot-delta.d.ts +59 -0
- package/dist/tools/snapshot-delta.d.ts.map +1 -0
- package/dist/tools/snapshot-delta.js +0 -0
- package/dist/tools/snapshot-delta.js.map +1 -0
- package/dist/tools/tool-invoker.d.ts +15 -0
- package/dist/tools/tool-invoker.d.ts.map +1 -0
- package/dist/tools/tool-invoker.js +20 -0
- package/dist/tools/tool-invoker.js.map +1 -0
- package/dist/tools/tool-kit.d.ts +60 -0
- package/dist/tools/tool-kit.d.ts.map +1 -0
- package/dist/tools/tool-kit.js +33 -0
- package/dist/tools/tool-kit.js.map +1 -0
- package/dist/tools/tool-names.d.ts +89 -0
- package/dist/tools/tool-names.d.ts.map +1 -0
- package/dist/tools/tool-names.js +88 -0
- package/dist/tools/tool-names.js.map +1 -0
- package/dist/tools/tools-helpers.d.ts +12 -0
- package/dist/tools/tools-helpers.d.ts.map +1 -0
- package/dist/tools/tools-helpers.js +22 -0
- package/dist/tools/tools-helpers.js.map +1 -0
- package/dist/tools/tools.d.ts +4 -0
- package/dist/tools/tools.d.ts.map +1 -0
- package/dist/tools/tools.js +268 -0
- package/dist/tools/tools.js.map +1 -0
- package/dist/update/update-checker.d.ts +20 -0
- package/dist/update/update-checker.d.ts.map +1 -0
- package/dist/update/update-checker.js +94 -0
- package/dist/update/update-checker.js.map +1 -0
- package/dist/update/update-tools.d.ts +3 -0
- package/dist/update/update-tools.d.ts.map +1 -0
- package/dist/update/update-tools.js +94 -0
- package/dist/update/update-tools.js.map +1 -0
- package/dist/update/updater.d.ts +31 -0
- package/dist/update/updater.d.ts.map +1 -0
- package/dist/update/updater.js +120 -0
- package/dist/update/updater.js.map +1 -0
- package/dist/visual/visual-diff.d.ts +46 -0
- package/dist/visual/visual-diff.d.ts.map +1 -0
- package/dist/visual/visual-diff.js +100 -0
- package/dist/visual/visual-diff.js.map +1 -0
- package/dist/visual/visual-store.d.ts +22 -0
- package/dist/visual/visual-store.d.ts.map +1 -0
- package/dist/visual/visual-store.js +60 -0
- package/dist/visual/visual-store.js.map +1 -0
- package/dist/visual/visual-tools.d.ts +9 -0
- package/dist/visual/visual-tools.d.ts.map +1 -0
- package/dist/visual/visual-tools.js +182 -0
- package/dist/visual/visual-tools.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action tools — reticle_act, reticle_act_sequence, reticle_act_and_wait — plus the native-input machinery
|
|
3
|
+
* (asBox / tryRealInput). Split out of tools.ts to keep that file under the line cap; assembled back
|
|
4
|
+
* into the tool list there via ...ACT_TOOLS.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import { compileActStep, compileSequenceStep } from '../flows/replay.js';
|
|
8
|
+
import { ActionType, ActionWarning, DANGEROUS_ACTION_CONFIRM_ARG, InputMode, InputModeReason, ReticleCommand, isDangerousActionText, } from '@reticlehq/core';
|
|
9
|
+
import { isPointerAction } from '../input/real-input.js';
|
|
10
|
+
import { leanActResult } from './act-view.js';
|
|
11
|
+
import { ReticleTool } from './tool-names.js';
|
|
12
|
+
import { buildReactionReport, summarizeReaction } from '../events/reaction.js';
|
|
13
|
+
import { evaluatePredicate, waitForPredicate, PredicateSchema } from '../events/predicate.js';
|
|
14
|
+
import { healthEnvelope, refuseIfThrottled } from '../session/session-health.js';
|
|
15
|
+
import { pausedShortCircuit, withControl } from '../session/control-envelope.js';
|
|
16
|
+
import { asString, asNumber, asRecord } from './tools-helpers.js';
|
|
17
|
+
import { sessionIdShape, commandOrThrow } from './tool-kit.js';
|
|
18
|
+
/** Narrow an INSPECT result's `box` into a positive-area ElementBox (else undefined). */
|
|
19
|
+
function asBox(value) {
|
|
20
|
+
const b = asRecord(asRecord(value)['box']);
|
|
21
|
+
const x = asNumber(b['x']);
|
|
22
|
+
const y = asNumber(b['y']);
|
|
23
|
+
const w = asNumber(b['width']);
|
|
24
|
+
const h = asNumber(b['height']);
|
|
25
|
+
if (x === undefined || y === undefined || w === undefined || h === undefined)
|
|
26
|
+
return undefined;
|
|
27
|
+
if (w <= 0 || h <= 0)
|
|
28
|
+
return undefined; // zero-area (display:none) ⇒ native click would miss
|
|
29
|
+
return { x, y, width: w, height: h };
|
|
30
|
+
}
|
|
31
|
+
/** Synthetic outcome with a diagnostic reason (provider configured but native input skipped). */
|
|
32
|
+
function synthetic(reason) {
|
|
33
|
+
return reason === undefined
|
|
34
|
+
? { result: undefined, settled: false }
|
|
35
|
+
: { result: undefined, settled: false, reason };
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Attempt to drive a pointer action via native input. Returns a synthetic outcome (with a
|
|
39
|
+
* `reason` when a provider is configured) whenever the synthetic path should run — no matching
|
|
40
|
+
* page, unresolvable box, declined, etc. A throw inside the provider becomes a synthetic fallback
|
|
41
|
+
* flagged with `fellBack`. `result` is defined only on a real success.
|
|
42
|
+
*/
|
|
43
|
+
async function tryRealInput(deps, session, ref, action, args) {
|
|
44
|
+
const provider = deps.realInput;
|
|
45
|
+
if (provider === undefined)
|
|
46
|
+
return synthetic(); // real input not configured — no diagnostic
|
|
47
|
+
if (!isPointerAction(action))
|
|
48
|
+
return synthetic(InputModeReason.NOT_POINTER); // fill/type stay synthetic
|
|
49
|
+
const inner = asRecord(args['args']);
|
|
50
|
+
// "Don't click, run the code": a click/dblclick runs the occlusion-honest SYNTHETIC path by default
|
|
51
|
+
// even with a provider configured — no coordinate gesture to be intercepted by the HUD or missed
|
|
52
|
+
// off-screen. Opt into a trusted native click with args.native:true (file pickers, clipboard,
|
|
53
|
+
// isTrusted-gated handlers). hover/drag genuinely need native pointer state, so they stay real.
|
|
54
|
+
if ((action === ActionType.CLICK || action === ActionType.DBLCLICK) && inner['native'] !== true) {
|
|
55
|
+
return synthetic(InputModeReason.SYNTHETIC_CLICK_PREFERRED);
|
|
56
|
+
}
|
|
57
|
+
if (!(await provider.isAvailableFor(session.url)))
|
|
58
|
+
return synthetic(InputModeReason.PAGE_NOT_CORRELATED);
|
|
59
|
+
const inspected = await commandOrThrow(deps, session.id, ReticleCommand.INSPECT, { ref });
|
|
60
|
+
const confirmed = inner[DANGEROUS_ACTION_CONFIRM_ARG] === true;
|
|
61
|
+
const dangerousDescriptorText = (value) => {
|
|
62
|
+
const descriptor = asRecord(value);
|
|
63
|
+
return [
|
|
64
|
+
asString(descriptor['name']) ?? '',
|
|
65
|
+
asString(descriptor['text']) ?? '',
|
|
66
|
+
asString(descriptor['value']) ?? '',
|
|
67
|
+
asString(descriptor['href']) ?? '',
|
|
68
|
+
asString(descriptor['formAction']) ?? '',
|
|
69
|
+
asString(descriptor['formText']) ?? '',
|
|
70
|
+
].join(' ');
|
|
71
|
+
};
|
|
72
|
+
if ((action === ActionType.CLICK || action === ActionType.DBLCLICK) &&
|
|
73
|
+
!confirmed &&
|
|
74
|
+
isDangerousActionText(dangerousDescriptorText(inspected))) {
|
|
75
|
+
throw new Error(`potentially destructive native action blocked; retry with args.${DANGEROUS_ACTION_CONFIRM_ARG}=true`);
|
|
76
|
+
}
|
|
77
|
+
const box = asBox(inspected);
|
|
78
|
+
if (box === undefined)
|
|
79
|
+
return synthetic(InputModeReason.ELEMENT_NOT_LOCATABLE);
|
|
80
|
+
let toBox;
|
|
81
|
+
if (action === ActionType.DRAG) {
|
|
82
|
+
const toRef = asString(inner['toRef']);
|
|
83
|
+
if (toRef === undefined)
|
|
84
|
+
return synthetic(InputModeReason.DRAG_TARGET_UNRESOLVED);
|
|
85
|
+
const targetInspected = await commandOrThrow(deps, session.id, ReticleCommand.INSPECT, {
|
|
86
|
+
ref: toRef,
|
|
87
|
+
});
|
|
88
|
+
if (!confirmed &&
|
|
89
|
+
isDangerousActionText(`${dangerousDescriptorText(inspected)} ${dangerousDescriptorText(targetInspected)}`)) {
|
|
90
|
+
throw new Error(`potentially destructive native action blocked; retry with args.${DANGEROUS_ACTION_CONFIRM_ARG}=true`);
|
|
91
|
+
}
|
|
92
|
+
toBox = asBox(targetInspected);
|
|
93
|
+
if (toBox === undefined)
|
|
94
|
+
return synthetic(InputModeReason.DRAG_TARGET_UNRESOLVED);
|
|
95
|
+
}
|
|
96
|
+
const performArgs = {};
|
|
97
|
+
const value = asString(inner['value']);
|
|
98
|
+
if (value !== undefined)
|
|
99
|
+
performArgs.value = value;
|
|
100
|
+
const text = asString(inner['text']);
|
|
101
|
+
if (text !== undefined)
|
|
102
|
+
performArgs.text = text;
|
|
103
|
+
if (toBox !== undefined)
|
|
104
|
+
performArgs.toBox = toBox;
|
|
105
|
+
try {
|
|
106
|
+
const performed = await provider.perform(session.url, action, box, performArgs);
|
|
107
|
+
if (!performed.performed)
|
|
108
|
+
return synthetic(InputModeReason.PROVIDER_DECLINED);
|
|
109
|
+
return { result: { performed: true, center: performed.center, action }, settled: true };
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return {
|
|
113
|
+
result: undefined,
|
|
114
|
+
settled: false,
|
|
115
|
+
fellBack: true,
|
|
116
|
+
reason: InputModeReason.PROVIDER_ERROR,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
export const ACT_TOOLS = [
|
|
121
|
+
{
|
|
122
|
+
name: ReticleTool.ACT,
|
|
123
|
+
description: 'Execute one action against a ref: click|dblclick|hover|focus|fill|type|clear|select|check|uncheck|submit|press|scrollIntoView. Returns immediately with a `since` cursor — observe the reaction with reticle_observe. Carries effect:{dispatched,targetMatched,visible,enabled,focusMoved,valueChanged,domMutatedWithin,occluded,occludedBy,scrolledIntoView} to tell "action missed" from "app didn\'t react"; dispatched=landed, settled=a real frame flushed, and a settle timeout never fails the tool. Fields at their uninformative default are OMITTED so a clean action collapses to its consequence: an absent dispatched/targetMatched/visible/enabled means true, an absent occluded/scrolledIntoView/valueChanged/defaultPrevented means false, an absent focusMoved/occludedBy means null. occluded=true means the click point is covered by another element (a real user could not click it) — synthetic dispatch still delivered the event; scrolledIntoView=true means an off-viewport target was scrolled in first. inputMode is "real" (native CDP, no synthetic effect block) or "synthetic"; clicks default to the occlusion-honest synthetic path even when CDP is configured — pass args.native:true to force a trusted native click (file pickers, clipboard). inputModeReason explains any real→synthetic choice so it is never silent. Full model (real-input, throttled tabs, `reticle drive`): docs/usage.md §18.',
|
|
124
|
+
inputSchema: {
|
|
125
|
+
ref: z.string().describe("Element ref from reticle_snapshot or reticle_query (e.g. 'e42')."),
|
|
126
|
+
action: z
|
|
127
|
+
.string()
|
|
128
|
+
.describe('Action to perform: click | dblclick | hover | focus | fill | type | clear | select | check | uncheck | submit | press | scrollIntoView'),
|
|
129
|
+
args: z
|
|
130
|
+
.record(z.unknown())
|
|
131
|
+
.optional()
|
|
132
|
+
.describe('Action-specific arguments: { value } for fill/select, { text } for type/press, { native: true } to force a trusted native click, { confirmDangerous: true } to allow a potentially destructive control.'),
|
|
133
|
+
refuseWhenThrottled: z
|
|
134
|
+
.boolean()
|
|
135
|
+
.optional()
|
|
136
|
+
.describe('Throw instead of silently sending synthetic events when the tab is throttled/backgrounded. Default: false (synthetic events are still sent).'),
|
|
137
|
+
...sessionIdShape,
|
|
138
|
+
},
|
|
139
|
+
outputSchema: {
|
|
140
|
+
since: z
|
|
141
|
+
.number()
|
|
142
|
+
.describe('Cursor — pass to reticle_observe/reticle_wait_for/reticle_assert to scope reaction queries to this act.'),
|
|
143
|
+
dispatched: z.boolean(),
|
|
144
|
+
settled: z.boolean().nullable(),
|
|
145
|
+
inputMode: z.string(),
|
|
146
|
+
result: z.unknown().optional(),
|
|
147
|
+
session: z
|
|
148
|
+
.object({ lastSeenMs: z.number(), throttled: z.boolean(), focused: z.boolean() })
|
|
149
|
+
.optional(),
|
|
150
|
+
},
|
|
151
|
+
handler: async (deps, args) => {
|
|
152
|
+
const session = deps.sessions.resolve(asString(args['sessionId']));
|
|
153
|
+
// Live-control: refuse to drive the page while the human has paused us (before any work).
|
|
154
|
+
const paused = pausedShortCircuit(session);
|
|
155
|
+
if (paused !== undefined)
|
|
156
|
+
return paused;
|
|
157
|
+
refuseIfThrottled(session, args['refuseWhenThrottled']);
|
|
158
|
+
const since = session.elapsed();
|
|
159
|
+
session.markActCursor(since); // honesty: wait_for/assert default their floor to this cursor
|
|
160
|
+
const ref = asString(args['ref']) ?? '';
|
|
161
|
+
const action = asString(args['action']) ?? '';
|
|
162
|
+
// drive native pointer input when a provider is available; otherwise fall back.
|
|
163
|
+
const real = await tryRealInput(deps, session, ref, action, args);
|
|
164
|
+
if (real.result !== undefined) {
|
|
165
|
+
if (deps.recordings.active().length > 0) {
|
|
166
|
+
deps.recordings.capture(compileActStep(args, real.result));
|
|
167
|
+
}
|
|
168
|
+
return withControl(session, {
|
|
169
|
+
since,
|
|
170
|
+
inputMode: InputMode.REAL,
|
|
171
|
+
dispatched: true,
|
|
172
|
+
settled: real.settled,
|
|
173
|
+
settleReason: null,
|
|
174
|
+
result: leanActResult(real.result),
|
|
175
|
+
...healthEnvelope(session),
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
const result = await session.command(ReticleCommand.ACT, {
|
|
179
|
+
ref: args['ref'],
|
|
180
|
+
action: args['action'],
|
|
181
|
+
args: args['args'] ?? {},
|
|
182
|
+
});
|
|
183
|
+
if (!result.ok)
|
|
184
|
+
throw new Error(result.error ?? 'act failed');
|
|
185
|
+
if (deps.recordings.active().length > 0) {
|
|
186
|
+
deps.recordings.capture(compileActStep(args, result.result));
|
|
187
|
+
}
|
|
188
|
+
// lift dispatch/settle status to the envelope (a settle timeout is NOT a failure).
|
|
189
|
+
const r = asRecord(result.result);
|
|
190
|
+
return withControl(session, {
|
|
191
|
+
since,
|
|
192
|
+
inputMode: InputMode.SYNTHETIC,
|
|
193
|
+
// #2: never a silent real→synthetic fallback — say WHY (unless real input isn't configured).
|
|
194
|
+
...(real.reason !== undefined ? { inputModeReason: real.reason } : {}),
|
|
195
|
+
dispatched: r['dispatched'] ?? true,
|
|
196
|
+
settled: r['settled'] ?? null,
|
|
197
|
+
settleReason: r['settleReason'] ?? null,
|
|
198
|
+
result: leanActResult(result.result),
|
|
199
|
+
...(real.fellBack === true ? { warning: ActionWarning.REAL_INPUT_FELL_BACK } : {}),
|
|
200
|
+
...healthEnvelope(session),
|
|
201
|
+
});
|
|
202
|
+
},
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
name: ReticleTool.ACT_SEQUENCE,
|
|
206
|
+
description: 'Run multiple actions in order (fill -> fill -> submit) in one round-trip. Returns per-step effects[] (see reticle_act).',
|
|
207
|
+
inputSchema: {
|
|
208
|
+
steps: z
|
|
209
|
+
.array(z.record(z.unknown()))
|
|
210
|
+
.describe('Ordered list of { ref, action, args? } objects. Each step is equivalent to one reticle_act call; put confirmDangerous:true in a destructive step args object.'),
|
|
211
|
+
...sessionIdShape,
|
|
212
|
+
},
|
|
213
|
+
outputSchema: {
|
|
214
|
+
since: z.number(),
|
|
215
|
+
dispatched: z.boolean(),
|
|
216
|
+
result: z.unknown().optional(),
|
|
217
|
+
session: z
|
|
218
|
+
.object({ lastSeenMs: z.number(), throttled: z.boolean(), focused: z.boolean() })
|
|
219
|
+
.optional(),
|
|
220
|
+
},
|
|
221
|
+
handler: async (deps, args) => {
|
|
222
|
+
const session = deps.sessions.resolve(asString(args['sessionId']));
|
|
223
|
+
// Live-control: refuse to drive the page while the human has paused us (before any work).
|
|
224
|
+
const paused = pausedShortCircuit(session);
|
|
225
|
+
if (paused !== undefined)
|
|
226
|
+
return paused;
|
|
227
|
+
const since = session.elapsed();
|
|
228
|
+
session.markActCursor(since); // honesty: a later wait_for/assert floors at this cursor
|
|
229
|
+
const result = await session.command(ReticleCommand.ACT_SEQUENCE, { steps: args['steps'] });
|
|
230
|
+
if (!result.ok)
|
|
231
|
+
throw new Error(result.error ?? 'act_sequence failed');
|
|
232
|
+
if (deps.recordings.active().length > 0) {
|
|
233
|
+
deps.recordings.capture(compileSequenceStep(args, result.result));
|
|
234
|
+
}
|
|
235
|
+
const r = asRecord(result.result); // per-step settle status lives in result.steps[]
|
|
236
|
+
return withControl(session, {
|
|
237
|
+
since,
|
|
238
|
+
dispatched: r['count'] !== undefined,
|
|
239
|
+
result: leanActResult(result.result),
|
|
240
|
+
...healthEnvelope(session),
|
|
241
|
+
});
|
|
242
|
+
},
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
name: ReticleTool.ACT_AND_WAIT,
|
|
246
|
+
description: 'Act on a ref, then wait for a predicate to hold — one hop for the act->observe->assert loop. ' +
|
|
247
|
+
'Omit `until` to wait for the page to settle (network + DOM idle) — use this instead of a fixed sleep. ' +
|
|
248
|
+
'Returns { effect } (the action result), { verdict } (predicate pass/evidence/near-miss), ' +
|
|
249
|
+
'{ trace } (a digest — window_ms + summary counts of what the app did), and { since } (the act ' +
|
|
250
|
+
'cursor; pass it to reticle_observe for the full per-event timeline when the counts are not enough). ' +
|
|
251
|
+
'timeout_ms 0 evaluates the predicate once without waiting.',
|
|
252
|
+
inputSchema: {
|
|
253
|
+
ref: z.string().describe('Element ref from reticle_snapshot or reticle_query.'),
|
|
254
|
+
action: z
|
|
255
|
+
.string()
|
|
256
|
+
.describe('Action to perform: click | dblclick | hover | focus | fill | type | clear | select | check | uncheck | submit | press | scrollIntoView'),
|
|
257
|
+
args: z
|
|
258
|
+
.record(z.unknown())
|
|
259
|
+
.optional()
|
|
260
|
+
.describe('Action-specific arguments: { value } for fill/select, { text } for type/press, { confirmDangerous: true } for a potentially destructive control.'),
|
|
261
|
+
until: PredicateSchema.optional().describe('Predicate to wait for after the action completes (same shape as reticle_assert). OMIT to wait for the page to SETTLE — network + DOM idle — the deterministic default instead of a sleep. To assert a consequence AND settle, allOf them: { kind: "allOf", predicates: [<your predicate>, { kind: "settled" }] }.'),
|
|
262
|
+
timeout_ms: z
|
|
263
|
+
.number()
|
|
264
|
+
.optional()
|
|
265
|
+
.describe('Maximum wait time in milliseconds. 0 = evaluate once without waiting. Default: 4000.'),
|
|
266
|
+
refuseWhenThrottled: z
|
|
267
|
+
.boolean()
|
|
268
|
+
.optional()
|
|
269
|
+
.describe('Throw if the tab is throttled. Default: false.'),
|
|
270
|
+
...sessionIdShape,
|
|
271
|
+
},
|
|
272
|
+
outputSchema: {
|
|
273
|
+
effect: z
|
|
274
|
+
.unknown()
|
|
275
|
+
.describe('The reticle_act result (dispatched, settled, inputMode, etc.).'),
|
|
276
|
+
verdict: z.object({
|
|
277
|
+
pass: z.boolean(),
|
|
278
|
+
evidence: z.unknown().optional(),
|
|
279
|
+
failureReason: z.string().optional(),
|
|
280
|
+
}),
|
|
281
|
+
trace: z
|
|
282
|
+
.unknown()
|
|
283
|
+
.describe('Reaction digest: { window_ms, summary } of what the app did (DOM/network/route/console/signal counts). The full per-event timeline is one reticle_observe { since } away.'),
|
|
284
|
+
since: z
|
|
285
|
+
.number()
|
|
286
|
+
.describe('Cursor for this act — pass to reticle_observe/reticle_assert for the full timeline.'),
|
|
287
|
+
session: z
|
|
288
|
+
.object({ lastSeenMs: z.number(), throttled: z.boolean(), focused: z.boolean() })
|
|
289
|
+
.optional(),
|
|
290
|
+
},
|
|
291
|
+
handler: async (deps, args) => {
|
|
292
|
+
const session = deps.sessions.resolve(asString(args['sessionId']));
|
|
293
|
+
// Live-control: refuse to drive the page (no act, no predicate eval) while paused.
|
|
294
|
+
const paused = pausedShortCircuit(session);
|
|
295
|
+
if (paused !== undefined)
|
|
296
|
+
return paused;
|
|
297
|
+
refuseIfThrottled(session, args['refuseWhenThrottled']);
|
|
298
|
+
// Omitting `until` waits for the page to settle (idle) — the deterministic default vs a sleep.
|
|
299
|
+
const until = args['until'] !== undefined
|
|
300
|
+
? PredicateSchema.parse(args['until'])
|
|
301
|
+
: { kind: 'settled' };
|
|
302
|
+
const timeout = asNumber(args['timeout_ms']) ?? 4000;
|
|
303
|
+
const since = session.elapsed();
|
|
304
|
+
session.markActCursor(since);
|
|
305
|
+
const actResult = await session.command(ReticleCommand.ACT, {
|
|
306
|
+
ref: args['ref'],
|
|
307
|
+
action: args['action'],
|
|
308
|
+
args: args['args'] ?? {},
|
|
309
|
+
});
|
|
310
|
+
if (!actResult.ok)
|
|
311
|
+
throw new Error(actResult.error ?? 'act failed');
|
|
312
|
+
// Honesty: floor the predicate at this act's cursor so a stale buffered event can't satisfy it.
|
|
313
|
+
const verdict = timeout > 0
|
|
314
|
+
? await waitForPredicate(session, until, timeout, since)
|
|
315
|
+
: await evaluatePredicate(session, until, since);
|
|
316
|
+
const trace = summarizeReaction(buildReactionReport(session.eventsSince(since), session.elapsed() - since));
|
|
317
|
+
return withControl(session, {
|
|
318
|
+
effect: leanActResult(actResult.result),
|
|
319
|
+
verdict,
|
|
320
|
+
trace,
|
|
321
|
+
since,
|
|
322
|
+
...healthEnvelope(session),
|
|
323
|
+
});
|
|
324
|
+
},
|
|
325
|
+
},
|
|
326
|
+
];
|
|
327
|
+
//# sourceMappingURL=act-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"act-tools.js","sourceRoot":"","sources":["../../src/tools/act-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Display-only leaning of an act result's `effect` block. The post-action effect carries the
|
|
3
|
+
* consequence signal (domMutatedWithin, a non-null focusMoved, …) plus many fields that are
|
|
4
|
+
* almost always at a non-informative default. We drop a field ONLY when it equals its
|
|
5
|
+
* uninformative default, so absence always means "the boring value" and no real signal is lost:
|
|
6
|
+
*
|
|
7
|
+
* - success defaults — `dispatched`/`targetMatched`/`visible`/`enabled` are `true` on a clean
|
|
8
|
+
* action; only their `false` (action missed, hit a hidden/disabled element) carries signal;
|
|
9
|
+
* - `false` defaults — `occluded`/`scrolledIntoView`/`defaultPrevented`/`valueChanged`;
|
|
10
|
+
* - `null` defaults — `occludedBy`/`focusMoved` (no overlay / no focus change).
|
|
11
|
+
*
|
|
12
|
+
* A clean click therefore collapses to its consequence alone (e.g. `{ domMutatedWithin: 8 }`),
|
|
13
|
+
* matching the leanness of a bare browser-driver click. This runs at the serialization boundary;
|
|
14
|
+
* internal settle/predicate logic has already consumed the full effect, so trimming the returned
|
|
15
|
+
* copy is safe.
|
|
16
|
+
*/
|
|
17
|
+
/** Return a copy of an act command result with its `effect` block leaned. Non-objects pass through. */
|
|
18
|
+
export declare function leanActResult(result: unknown): unknown;
|
|
19
|
+
//# sourceMappingURL=act-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"act-view.d.ts","sourceRoot":"","sources":["../../src/tools/act-view.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAoBH,uGAAuG;AACvG,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAMtD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Display-only leaning of an act result's `effect` block. The post-action effect carries the
|
|
3
|
+
* consequence signal (domMutatedWithin, a non-null focusMoved, …) plus many fields that are
|
|
4
|
+
* almost always at a non-informative default. We drop a field ONLY when it equals its
|
|
5
|
+
* uninformative default, so absence always means "the boring value" and no real signal is lost:
|
|
6
|
+
*
|
|
7
|
+
* - success defaults — `dispatched`/`targetMatched`/`visible`/`enabled` are `true` on a clean
|
|
8
|
+
* action; only their `false` (action missed, hit a hidden/disabled element) carries signal;
|
|
9
|
+
* - `false` defaults — `occluded`/`scrolledIntoView`/`defaultPrevented`/`valueChanged`;
|
|
10
|
+
* - `null` defaults — `occludedBy`/`focusMoved` (no overlay / no focus change).
|
|
11
|
+
*
|
|
12
|
+
* A clean click therefore collapses to its consequence alone (e.g. `{ domMutatedWithin: 8 }`),
|
|
13
|
+
* matching the leanness of a bare browser-driver click. This runs at the serialization boundary;
|
|
14
|
+
* internal settle/predicate logic has already consumed the full effect, so trimming the returned
|
|
15
|
+
* copy is safe.
|
|
16
|
+
*/
|
|
17
|
+
/** Effect keys whose `true` value is the uninformative success default (a `false` carries signal). */
|
|
18
|
+
const TRUE_NOISE = new Set(['dispatched', 'targetMatched', 'visible', 'enabled']);
|
|
19
|
+
/** Effect keys whose `false` value carries no signal (a `true` does, so it is kept). */
|
|
20
|
+
const FALSE_NOISE = new Set(['occluded', 'scrolledIntoView', 'defaultPrevented', 'valueChanged']);
|
|
21
|
+
/** Effect keys whose `null` value carries no signal (a non-null does, so it is kept). */
|
|
22
|
+
const NULL_NOISE = new Set(['occludedBy', 'focusMoved']);
|
|
23
|
+
function leanEffect(effect) {
|
|
24
|
+
const out = {};
|
|
25
|
+
for (const [k, v] of Object.entries(effect)) {
|
|
26
|
+
if (TRUE_NOISE.has(k) && v === true)
|
|
27
|
+
continue;
|
|
28
|
+
if (FALSE_NOISE.has(k) && v === false)
|
|
29
|
+
continue;
|
|
30
|
+
if (NULL_NOISE.has(k) && v === null)
|
|
31
|
+
continue;
|
|
32
|
+
out[k] = v;
|
|
33
|
+
}
|
|
34
|
+
return out;
|
|
35
|
+
}
|
|
36
|
+
/** Return a copy of an act command result with its `effect` block leaned. Non-objects pass through. */
|
|
37
|
+
export function leanActResult(result) {
|
|
38
|
+
if (result === null || typeof result !== 'object')
|
|
39
|
+
return result;
|
|
40
|
+
const r = result;
|
|
41
|
+
const effect = r['effect'];
|
|
42
|
+
if (effect === null || typeof effect !== 'object')
|
|
43
|
+
return result;
|
|
44
|
+
return { ...r, effect: leanEffect(effect) };
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=act-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"act-view.js","sourceRoot":"","sources":["../../src/tools/act-view.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,sGAAsG;AACtG,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAClF,wFAAwF;AACxF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC;AAClG,yFAAyF;AACzF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;AAEzD,SAAS,UAAU,CAAC,MAA+B;IACjD,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI;YAAE,SAAS;QAC9C,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK;YAAE,SAAS;QAChD,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI;YAAE,SAAS;QAC9C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,aAAa,CAAC,MAAe;IAC3C,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IACjE,MAAM,CAAC,GAAG,MAAiC,CAAC;IAC5C,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC3B,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IACjE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAiC,CAAC,EAAE,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grade a single assertion predicate as a CONSEQUENCE or a mere PRESENCE check — the same distinction
|
|
3
|
+
* classifyFlowAssertions applies to saved flows, now applied to ad-hoc reticle_assert calls.
|
|
4
|
+
*
|
|
5
|
+
* Why (grounded, same sources as flow-classify): a test that only checks an element is present is
|
|
6
|
+
* weak — a locator healed to the wrong element, or a stale render, can satisfy it while the feature
|
|
7
|
+
* is broken (Fowler, *Assertion-Free Testing*; Dodds, *Make Your Test Fail*). A signal/net assertion
|
|
8
|
+
* verifies an observable consequence a wrong element cannot fake. When an agent asserts only
|
|
9
|
+
* presence, we pass the verdict but nudge it toward a consequence — the success-oracle thesis.
|
|
10
|
+
*
|
|
11
|
+
* Pure: no IO, no clock.
|
|
12
|
+
*/
|
|
13
|
+
import type { Predicate } from '../events/predicate.js';
|
|
14
|
+
export declare const PRESENCE_ONLY_ADVICE = "This predicate only checks element/text presence, not an observable consequence. A locator healed to the wrong element (or a stale render) can satisfy it while the feature is broken. Prefer a { signal } or { net } assertion \u2014 or allOf it with one \u2014 so green means the feature actually worked.";
|
|
15
|
+
/**
|
|
16
|
+
* True when the predicate asserts ONLY element/text presence with no signal/net consequence anywhere
|
|
17
|
+
* — the weak pattern worth nudging. A predicate that mixes in a consequence, or that checks something
|
|
18
|
+
* other than presence (route/console/settled), is not flagged.
|
|
19
|
+
*/
|
|
20
|
+
export declare function isPresenceOnlyAssertion(predicate: Predicate): boolean;
|
|
21
|
+
//# sourceMappingURL=assert-grade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert-grade.d.ts","sourceRoot":"","sources":["../../src/tools/assert-grade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,eAAO,MAAM,oBAAoB,mTACuQ,CAAC;AAuCzS;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAGrE"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grade a single assertion predicate as a CONSEQUENCE or a mere PRESENCE check — the same distinction
|
|
3
|
+
* classifyFlowAssertions applies to saved flows, now applied to ad-hoc reticle_assert calls.
|
|
4
|
+
*
|
|
5
|
+
* Why (grounded, same sources as flow-classify): a test that only checks an element is present is
|
|
6
|
+
* weak — a locator healed to the wrong element, or a stale render, can satisfy it while the feature
|
|
7
|
+
* is broken (Fowler, *Assertion-Free Testing*; Dodds, *Make Your Test Fail*). A signal/net assertion
|
|
8
|
+
* verifies an observable consequence a wrong element cannot fake. When an agent asserts only
|
|
9
|
+
* presence, we pass the verdict but nudge it toward a consequence — the success-oracle thesis.
|
|
10
|
+
*
|
|
11
|
+
* Pure: no IO, no clock.
|
|
12
|
+
*/
|
|
13
|
+
export const PRESENCE_ONLY_ADVICE = 'This predicate only checks element/text presence, not an observable consequence. A locator healed to the wrong element (or a stale render) can satisfy it while the feature is broken. Prefer a { signal } or { net } assertion — or allOf it with one — so green means the feature actually worked.';
|
|
14
|
+
function walk(predicate) {
|
|
15
|
+
switch (predicate.kind) {
|
|
16
|
+
case 'signal':
|
|
17
|
+
case 'net':
|
|
18
|
+
case 'state':
|
|
19
|
+
// A state assertion verifies the app's own source of truth changed — a consequence a wrong
|
|
20
|
+
// element or stale render cannot fake (the strongest form of the success-oracle).
|
|
21
|
+
return { consequence: true, presence: false };
|
|
22
|
+
case 'element':
|
|
23
|
+
case 'text':
|
|
24
|
+
return { consequence: false, presence: true };
|
|
25
|
+
case 'route':
|
|
26
|
+
case 'console':
|
|
27
|
+
case 'animation':
|
|
28
|
+
case 'settled':
|
|
29
|
+
// Observable but not the weak presence pattern we nudge — neither flags the advice.
|
|
30
|
+
return { consequence: false, presence: false };
|
|
31
|
+
case 'allOf':
|
|
32
|
+
case 'anyOf': {
|
|
33
|
+
const subs = predicate.predicates.map(walk);
|
|
34
|
+
return {
|
|
35
|
+
consequence: subs.some((s) => s.consequence),
|
|
36
|
+
presence: subs.some((s) => s.presence),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
case 'not':
|
|
40
|
+
return walk(predicate.predicate);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* True when the predicate asserts ONLY element/text presence with no signal/net consequence anywhere
|
|
45
|
+
* — the weak pattern worth nudging. A predicate that mixes in a consequence, or that checks something
|
|
46
|
+
* other than presence (route/console/settled), is not flagged.
|
|
47
|
+
*/
|
|
48
|
+
export function isPresenceOnlyAssertion(predicate) {
|
|
49
|
+
const kinds = walk(predicate);
|
|
50
|
+
return kinds.presence && !kinds.consequence;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=assert-grade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert-grade.js","sourceRoot":"","sources":["../../src/tools/assert-grade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,CAAC,MAAM,oBAAoB,GAC/B,sSAAsS,CAAC;AASzS,SAAS,IAAI,CAAC,SAAoB;IAChC,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,QAAQ,CAAC;QACd,KAAK,KAAK,CAAC;QACX,KAAK,OAAO;YACV,2FAA2F;YAC3F,kFAAkF;YAClF,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAChD,KAAK,SAAS,CAAC;QACf,KAAK,MAAM;YACT,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAChD,KAAK,OAAO,CAAC;QACb,KAAK,SAAS,CAAC;QACf,KAAK,WAAW,CAAC;QACjB,KAAK,SAAS;YACZ,oFAAoF;YACpF,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACjD,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5C,OAAO;gBACL,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;gBAC5C,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;aACvC,CAAC;QACJ,CAAC;QACD,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAoB;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-tools.d.ts","sourceRoot":"","sources":["../../src/tools/browser-tools.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,aAAa,EAAE,OAAO,EAmDlC,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ReticleCommand } from '@reticlehq/core';
|
|
3
|
+
import { ReticleTool } from './tool-names.js';
|
|
4
|
+
import { asString } from './tools-helpers.js';
|
|
5
|
+
import { sessionIdShape, commandOrThrow } from './tool-kit.js';
|
|
6
|
+
export const BROWSER_TOOLS = [
|
|
7
|
+
{
|
|
8
|
+
name: ReticleTool.NAVIGATE,
|
|
9
|
+
description: 'Navigate the connected browser tab to a URL. The SDK reconnects automatically after the page loads. Use reticle_sessions to confirm the new tab is connected before acting.',
|
|
10
|
+
inputSchema: {
|
|
11
|
+
url: z.string().describe('The URL to navigate to.'),
|
|
12
|
+
...sessionIdShape,
|
|
13
|
+
},
|
|
14
|
+
outputSchema: {
|
|
15
|
+
ok: z.boolean(),
|
|
16
|
+
url: z.string().optional(),
|
|
17
|
+
reason: z.string().optional(),
|
|
18
|
+
},
|
|
19
|
+
handler: async (deps, args) => {
|
|
20
|
+
const url = asString(args['url']);
|
|
21
|
+
if (url === undefined || url.length === 0)
|
|
22
|
+
return { ok: false, reason: 'url required' };
|
|
23
|
+
const result = (await commandOrThrow(deps, asString(args['sessionId']), ReticleCommand.NAVIGATE, { url }));
|
|
24
|
+
return {
|
|
25
|
+
ok: result.ok === true,
|
|
26
|
+
...(typeof result.url === 'string' ? { url: result.url } : {}),
|
|
27
|
+
...(typeof result.reason === 'string' ? { reason: result.reason } : {}),
|
|
28
|
+
};
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: ReticleTool.REFRESH,
|
|
33
|
+
description: 'Reload the connected browser tab. Pass { hard: true } to bypass the browser cache (equivalent to Cmd+Shift+R). The SDK reconnects automatically after the reload.',
|
|
34
|
+
inputSchema: {
|
|
35
|
+
hard: z
|
|
36
|
+
.boolean()
|
|
37
|
+
.optional()
|
|
38
|
+
.describe('Set true to bypass the browser cache. Default: false (normal reload).'),
|
|
39
|
+
...sessionIdShape,
|
|
40
|
+
},
|
|
41
|
+
outputSchema: {
|
|
42
|
+
ok: z.boolean(),
|
|
43
|
+
},
|
|
44
|
+
handler: async (deps, args) => {
|
|
45
|
+
await commandOrThrow(deps, asString(args['sessionId']), ReticleCommand.REFRESH, {
|
|
46
|
+
hard: args['hard'] === true,
|
|
47
|
+
});
|
|
48
|
+
return { ok: true };
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
//# sourceMappingURL=browser-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-tools.js","sourceRoot":"","sources":["../../src/tools/browser-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/D,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC;QACE,IAAI,EAAE,WAAW,CAAC,QAAQ;QAC1B,WAAW,EACT,6KAA6K;QAC/K,WAAW,EAAE;YACX,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACnD,GAAG,cAAc;SAClB;QACD,YAAY,EAAE;YACZ,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE;YACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC9B;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAClC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;YACxF,MAAM,MAAM,GAAG,CAAC,MAAM,cAAc,CAClC,IAAI,EACJ,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAC3B,cAAc,CAAC,QAAQ,EACvB,EAAE,GAAG,EAAE,CACR,CAAsD,CAAC;YACxD,OAAO;gBACL,EAAE,EAAE,MAAM,CAAC,EAAE,KAAK,IAAI;gBACtB,GAAG,CAAC,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9D,GAAG,CAAC,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxE,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,WAAW,CAAC,OAAO;QACzB,WAAW,EACT,mKAAmK;QACrK,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,uEAAuE,CAAC;YACpF,GAAG,cAAc;SAClB;QACD,YAAY,EAAE;YACZ,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE;SAChB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC5B,MAAM,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,cAAc,CAAC,OAAO,EAAE;gBAC9E,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI;aAC5B,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ToolDef } from './tools.js';
|
|
2
|
+
/**
|
|
3
|
+
* The capability-contract tools. `reticle_capabilities` reads the live session, or the
|
|
4
|
+
* git-checked `.reticle/contract.json` when `{ fromDisk:true }`; `reticle_contract_save` persists the
|
|
5
|
+
* live registry to that file (pretty-printed, stable key order — diffable in PRs).
|
|
6
|
+
*/
|
|
7
|
+
export declare const CONTRACT_TOOLS: ToolDef[];
|
|
8
|
+
//# sourceMappingURL=contract-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract-tools.d.ts","sourceRoot":"","sources":["../../src/tools/contract-tools.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,EA+DnC,CAAC"}
|