@descryy/mcp 0.11.3 → 0.11.5
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/package.json +20 -20
- package/dist/action-handshake.d.ts +0 -38
- package/dist/action-handshake.d.ts.map +0 -1
- package/dist/action-handshake.js +0 -127
- package/dist/action-handshake.js.map +0 -1
- package/dist/bin/descry-mcp.d.ts +0 -7
- package/dist/bin/descry-mcp.d.ts.map +0 -1
- package/dist/bin/descry-mcp.js +0 -72
- package/dist/bin/descry-mcp.js.map +0 -1
- package/dist/browser/auth.d.ts +0 -84
- package/dist/browser/auth.d.ts.map +0 -1
- package/dist/browser/auth.js +0 -233
- package/dist/browser/auth.js.map +0 -1
- package/dist/browser/capability-probe.d.ts +0 -109
- package/dist/browser/capability-probe.d.ts.map +0 -1
- package/dist/browser/capability-probe.js +0 -201
- package/dist/browser/capability-probe.js.map +0 -1
- package/dist/browser/driver.d.ts +0 -570
- package/dist/browser/driver.d.ts.map +0 -1
- package/dist/browser/driver.js +0 -116
- package/dist/browser/driver.js.map +0 -1
- package/dist/browser/evidence.d.ts +0 -28
- package/dist/browser/evidence.d.ts.map +0 -1
- package/dist/browser/evidence.js +0 -82
- package/dist/browser/evidence.js.map +0 -1
- package/dist/browser/fake-driver.d.ts +0 -116
- package/dist/browser/fake-driver.d.ts.map +0 -1
- package/dist/browser/fake-driver.js +0 -416
- package/dist/browser/fake-driver.js.map +0 -1
- package/dist/browser/fault-attribution.d.ts +0 -178
- package/dist/browser/fault-attribution.d.ts.map +0 -1
- package/dist/browser/fault-attribution.js +0 -266
- package/dist/browser/fault-attribution.js.map +0 -1
- package/dist/browser/graph-write.d.ts +0 -45
- package/dist/browser/graph-write.d.ts.map +0 -1
- package/dist/browser/graph-write.js +0 -103
- package/dist/browser/graph-write.js.map +0 -1
- package/dist/browser/identity-graph-write.d.ts +0 -55
- package/dist/browser/identity-graph-write.d.ts.map +0 -1
- package/dist/browser/identity-graph-write.js +0 -45
- package/dist/browser/identity-graph-write.js.map +0 -1
- package/dist/browser/page-probe.d.ts +0 -81
- package/dist/browser/page-probe.d.ts.map +0 -1
- package/dist/browser/page-probe.js +0 -202
- package/dist/browser/page-probe.js.map +0 -1
- package/dist/browser/playwright-driver.d.ts +0 -114
- package/dist/browser/playwright-driver.d.ts.map +0 -1
- package/dist/browser/playwright-driver.js +0 -1479
- package/dist/browser/playwright-driver.js.map +0 -1
- package/dist/browser/provider.d.ts +0 -26
- package/dist/browser/provider.d.ts.map +0 -1
- package/dist/browser/provider.js +0 -14
- package/dist/browser/provider.js.map +0 -1
- package/dist/browser/reach-recording-session.d.ts +0 -44
- package/dist/browser/reach-recording-session.d.ts.map +0 -1
- package/dist/browser/reach-recording-session.js +0 -143
- package/dist/browser/reach-recording-session.js.map +0 -1
- package/dist/browser/reachability.d.ts +0 -168
- package/dist/browser/reachability.d.ts.map +0 -1
- package/dist/browser/reachability.js +0 -294
- package/dist/browser/reachability.js.map +0 -1
- package/dist/browser/registry.d.ts +0 -126
- package/dist/browser/registry.d.ts.map +0 -1
- package/dist/browser/registry.js +0 -177
- package/dist/browser/registry.js.map +0 -1
- package/dist/browser/scenario-provenance.d.ts +0 -23
- package/dist/browser/scenario-provenance.d.ts.map +0 -1
- package/dist/browser/scenario-provenance.js +0 -73
- package/dist/browser/scenario-provenance.js.map +0 -1
- package/dist/browser/scenario-resolve.d.ts +0 -28
- package/dist/browser/scenario-resolve.d.ts.map +0 -1
- package/dist/browser/scenario-resolve.js +0 -96
- package/dist/browser/scenario-resolve.js.map +0 -1
- package/dist/browser/scenario-runner.d.ts +0 -72
- package/dist/browser/scenario-runner.d.ts.map +0 -1
- package/dist/browser/scenario-runner.js +0 -353
- package/dist/browser/scenario-runner.js.map +0 -1
- package/dist/browser/stack-parser.d.ts +0 -19
- package/dist/browser/stack-parser.d.ts.map +0 -1
- package/dist/browser/stack-parser.js +0 -85
- package/dist/browser/stack-parser.js.map +0 -1
- package/dist/browser/tool-support.d.ts +0 -71
- package/dist/browser/tool-support.d.ts.map +0 -1
- package/dist/browser/tool-support.js +0 -216
- package/dist/browser/tool-support.js.map +0 -1
- package/dist/browser/url-scheme.d.ts +0 -14
- package/dist/browser/url-scheme.d.ts.map +0 -1
- package/dist/browser/url-scheme.js +0 -38
- package/dist/browser/url-scheme.js.map +0 -1
- package/dist/browser/wait-target.d.ts +0 -37
- package/dist/browser/wait-target.d.ts.map +0 -1
- package/dist/browser/wait-target.js +0 -54
- package/dist/browser/wait-target.js.map +0 -1
- package/dist/cancellation.d.ts +0 -20
- package/dist/cancellation.d.ts.map +0 -1
- package/dist/cancellation.js +0 -41
- package/dist/cancellation.js.map +0 -1
- package/dist/capped.d.ts +0 -17
- package/dist/capped.d.ts.map +0 -1
- package/dist/capped.js +0 -15
- package/dist/capped.js.map +0 -1
- package/dist/credential-store.d.ts +0 -22
- package/dist/credential-store.d.ts.map +0 -1
- package/dist/credential-store.js +0 -33
- package/dist/credential-store.js.map +0 -1
- package/dist/disclosure-ledger.d.ts +0 -14
- package/dist/disclosure-ledger.d.ts.map +0 -1
- package/dist/disclosure-ledger.js +0 -18
- package/dist/disclosure-ledger.js.map +0 -1
- package/dist/evidence/observed-route-evidence.d.ts +0 -25
- package/dist/evidence/observed-route-evidence.d.ts.map +0 -1
- package/dist/evidence/observed-route-evidence.js +0 -76
- package/dist/evidence/observed-route-evidence.js.map +0 -1
- package/dist/heap.d.ts +0 -61
- package/dist/heap.d.ts.map +0 -1
- package/dist/heap.js +0 -82
- package/dist/heap.js.map +0 -1
- package/dist/heartbeat.d.ts +0 -46
- package/dist/heartbeat.d.ts.map +0 -1
- package/dist/heartbeat.js +0 -66
- package/dist/heartbeat.js.map +0 -1
- package/dist/index.d.ts +0 -32
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -19
- package/dist/index.js.map +0 -1
- package/dist/module-trust.d.ts +0 -37
- package/dist/module-trust.d.ts.map +0 -1
- package/dist/module-trust.js +0 -77
- package/dist/module-trust.js.map +0 -1
- package/dist/path-confinement.d.ts +0 -31
- package/dist/path-confinement.d.ts.map +0 -1
- package/dist/path-confinement.js +0 -44
- package/dist/path-confinement.js.map +0 -1
- package/dist/planner/predict-then-propose.d.ts +0 -134
- package/dist/planner/predict-then-propose.d.ts.map +0 -1
- package/dist/planner/predict-then-propose.js +0 -138
- package/dist/planner/predict-then-propose.js.map +0 -1
- package/dist/planner/propose-journey.d.ts +0 -75
- package/dist/planner/propose-journey.d.ts.map +0 -1
- package/dist/planner/propose-journey.js +0 -96
- package/dist/planner/propose-journey.js.map +0 -1
- package/dist/protocol.d.ts +0 -57
- package/dist/protocol.d.ts.map +0 -1
- package/dist/protocol.js +0 -90
- package/dist/protocol.js.map +0 -1
- package/dist/registry.d.ts +0 -103
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js +0 -319
- package/dist/registry.js.map +0 -1
- package/dist/render.d.ts +0 -580
- package/dist/render.d.ts.map +0 -1
- package/dist/render.js +0 -867
- package/dist/render.js.map +0 -1
- package/dist/runtime-registry.d.ts +0 -22
- package/dist/runtime-registry.d.ts.map +0 -1
- package/dist/runtime-registry.js +0 -142
- package/dist/runtime-registry.js.map +0 -1
- package/dist/sandbox-defaults.d.ts +0 -41
- package/dist/sandbox-defaults.d.ts.map +0 -1
- package/dist/sandbox-defaults.js +0 -14
- package/dist/sandbox-defaults.js.map +0 -1
- package/dist/scenarios/browser-run-plan-projection.d.ts +0 -161
- package/dist/scenarios/browser-run-plan-projection.d.ts.map +0 -1
- package/dist/scenarios/browser-run-plan-projection.js +0 -264
- package/dist/scenarios/browser-run-plan-projection.js.map +0 -1
- package/dist/scenarios/credential-ref.d.ts +0 -102
- package/dist/scenarios/credential-ref.d.ts.map +0 -1
- package/dist/scenarios/credential-ref.js +0 -148
- package/dist/scenarios/credential-ref.js.map +0 -1
- package/dist/scenarios/index.d.ts +0 -7
- package/dist/scenarios/index.d.ts.map +0 -1
- package/dist/scenarios/index.js +0 -7
- package/dist/scenarios/index.js.map +0 -1
- package/dist/scenarios/parse.d.ts +0 -18
- package/dist/scenarios/parse.d.ts.map +0 -1
- package/dist/scenarios/parse.js +0 -212
- package/dist/scenarios/parse.js.map +0 -1
- package/dist/scenarios/scenario.d.ts +0 -93
- package/dist/scenarios/scenario.d.ts.map +0 -1
- package/dist/scenarios/scenario.js +0 -27
- package/dist/scenarios/scenario.js.map +0 -1
- package/dist/scenarios/secret-ref.d.ts +0 -86
- package/dist/scenarios/secret-ref.d.ts.map +0 -1
- package/dist/scenarios/secret-ref.js +0 -125
- package/dist/scenarios/secret-ref.js.map +0 -1
- package/dist/scenarios/storage.d.ts +0 -21
- package/dist/scenarios/storage.d.ts.map +0 -1
- package/dist/scenarios/storage.js +0 -103
- package/dist/scenarios/storage.js.map +0 -1
- package/dist/server.d.ts +0 -61
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -541
- package/dist/server.js.map +0 -1
- package/dist/session.d.ts +0 -243
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js +0 -602
- package/dist/session.js.map +0 -1
- package/dist/tools/alias-kit.d.ts +0 -29
- package/dist/tools/alias-kit.d.ts.map +0 -1
- package/dist/tools/alias-kit.js +0 -21
- package/dist/tools/alias-kit.js.map +0 -1
- package/dist/tools/aliases.d.ts +0 -42
- package/dist/tools/aliases.d.ts.map +0 -1
- package/dist/tools/aliases.js +0 -52
- package/dist/tools/aliases.js.map +0 -1
- package/dist/tools/analyze-workspace.d.ts +0 -52
- package/dist/tools/analyze-workspace.d.ts.map +0 -1
- package/dist/tools/analyze-workspace.js +0 -207
- package/dist/tools/analyze-workspace.js.map +0 -1
- package/dist/tools/analyze.d.ts +0 -163
- package/dist/tools/analyze.d.ts.map +0 -1
- package/dist/tools/analyze.js +0 -724
- package/dist/tools/analyze.js.map +0 -1
- package/dist/tools/browser-click.d.ts +0 -18
- package/dist/tools/browser-click.d.ts.map +0 -1
- package/dist/tools/browser-click.js +0 -110
- package/dist/tools/browser-click.js.map +0 -1
- package/dist/tools/browser-close-session.d.ts +0 -39
- package/dist/tools/browser-close-session.d.ts.map +0 -1
- package/dist/tools/browser-close-session.js +0 -120
- package/dist/tools/browser-close-session.js.map +0 -1
- package/dist/tools/browser-fill.d.ts +0 -18
- package/dist/tools/browser-fill.d.ts.map +0 -1
- package/dist/tools/browser-fill.js +0 -117
- package/dist/tools/browser-fill.js.map +0 -1
- package/dist/tools/browser-navigate.d.ts +0 -15
- package/dist/tools/browser-navigate.d.ts.map +0 -1
- package/dist/tools/browser-navigate.js +0 -104
- package/dist/tools/browser-navigate.js.map +0 -1
- package/dist/tools/browser-read.d.ts +0 -33
- package/dist/tools/browser-read.d.ts.map +0 -1
- package/dist/tools/browser-read.js +0 -113
- package/dist/tools/browser-read.js.map +0 -1
- package/dist/tools/browser-run-scenario.d.ts +0 -28
- package/dist/tools/browser-run-scenario.d.ts.map +0 -1
- package/dist/tools/browser-run-scenario.js +0 -206
- package/dist/tools/browser-run-scenario.js.map +0 -1
- package/dist/tools/browser-save-scenario.d.ts +0 -19
- package/dist/tools/browser-save-scenario.d.ts.map +0 -1
- package/dist/tools/browser-save-scenario.js +0 -447
- package/dist/tools/browser-save-scenario.js.map +0 -1
- package/dist/tools/browser-select.d.ts +0 -20
- package/dist/tools/browser-select.d.ts.map +0 -1
- package/dist/tools/browser-select.js +0 -120
- package/dist/tools/browser-select.js.map +0 -1
- package/dist/tools/browser-snapshot.d.ts +0 -46
- package/dist/tools/browser-snapshot.d.ts.map +0 -1
- package/dist/tools/browser-snapshot.js +0 -127
- package/dist/tools/browser-snapshot.js.map +0 -1
- package/dist/tools/browser-start-session.d.ts +0 -24
- package/dist/tools/browser-start-session.d.ts.map +0 -1
- package/dist/tools/browser-start-session.js +0 -622
- package/dist/tools/browser-start-session.js.map +0 -1
- package/dist/tools/browser-submit.d.ts +0 -18
- package/dist/tools/browser-submit.d.ts.map +0 -1
- package/dist/tools/browser-submit.js +0 -106
- package/dist/tools/browser-submit.js.map +0 -1
- package/dist/tools/browser-type.d.ts +0 -18
- package/dist/tools/browser-type.d.ts.map +0 -1
- package/dist/tools/browser-type.js +0 -115
- package/dist/tools/browser-type.js.map +0 -1
- package/dist/tools/browser-wait-for.d.ts +0 -45
- package/dist/tools/browser-wait-for.d.ts.map +0 -1
- package/dist/tools/browser-wait-for.js +0 -150
- package/dist/tools/browser-wait-for.js.map +0 -1
- package/dist/tools/browser.d.ts +0 -69
- package/dist/tools/browser.d.ts.map +0 -1
- package/dist/tools/browser.js +0 -386
- package/dist/tools/browser.js.map +0 -1
- package/dist/tools/chain.d.ts +0 -41
- package/dist/tools/chain.d.ts.map +0 -1
- package/dist/tools/chain.js +0 -105
- package/dist/tools/chain.js.map +0 -1
- package/dist/tools/change-scope.d.ts +0 -25
- package/dist/tools/change-scope.d.ts.map +0 -1
- package/dist/tools/change-scope.js +0 -110
- package/dist/tools/change-scope.js.map +0 -1
- package/dist/tools/code-context.d.ts +0 -83
- package/dist/tools/code-context.d.ts.map +0 -1
- package/dist/tools/code-context.js +0 -416
- package/dist/tools/code-context.js.map +0 -1
- package/dist/tools/contracts.d.ts +0 -74
- package/dist/tools/contracts.d.ts.map +0 -1
- package/dist/tools/contracts.js +0 -196
- package/dist/tools/contracts.js.map +0 -1
- package/dist/tools/cross-pr.d.ts +0 -178
- package/dist/tools/cross-pr.d.ts.map +0 -1
- package/dist/tools/cross-pr.js +0 -321
- package/dist/tools/cross-pr.js.map +0 -1
- package/dist/tools/disclosure.d.ts +0 -75
- package/dist/tools/disclosure.d.ts.map +0 -1
- package/dist/tools/disclosure.js +0 -288
- package/dist/tools/disclosure.js.map +0 -1
- package/dist/tools/draw-conclusion.d.ts +0 -55
- package/dist/tools/draw-conclusion.d.ts.map +0 -1
- package/dist/tools/draw-conclusion.js +0 -259
- package/dist/tools/draw-conclusion.js.map +0 -1
- package/dist/tools/git-context.d.ts +0 -39
- package/dist/tools/git-context.d.ts.map +0 -1
- package/dist/tools/git-context.js +0 -364
- package/dist/tools/git-context.js.map +0 -1
- package/dist/tools/git-diff.d.ts +0 -45
- package/dist/tools/git-diff.d.ts.map +0 -1
- package/dist/tools/git-diff.js +0 -338
- package/dist/tools/git-diff.js.map +0 -1
- package/dist/tools/git-history.d.ts +0 -16
- package/dist/tools/git-history.d.ts.map +0 -1
- package/dist/tools/git-history.js +0 -86
- package/dist/tools/git-history.js.map +0 -1
- package/dist/tools/history.d.ts +0 -34
- package/dist/tools/history.d.ts.map +0 -1
- package/dist/tools/history.js +0 -121
- package/dist/tools/history.js.map +0 -1
- package/dist/tools/impact.d.ts +0 -46
- package/dist/tools/impact.d.ts.map +0 -1
- package/dist/tools/impact.js +0 -225
- package/dist/tools/impact.js.map +0 -1
- package/dist/tools/index.d.ts +0 -59
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js +0 -70
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/kit.d.ts +0 -165
- package/dist/tools/kit.d.ts.map +0 -1
- package/dist/tools/kit.js +0 -153
- package/dist/tools/kit.js.map +0 -1
- package/dist/tools/link-workspace.d.ts +0 -24
- package/dist/tools/link-workspace.d.ts.map +0 -1
- package/dist/tools/link-workspace.js +0 -131
- package/dist/tools/link-workspace.js.map +0 -1
- package/dist/tools/lookup.d.ts +0 -19
- package/dist/tools/lookup.d.ts.map +0 -1
- package/dist/tools/lookup.js +0 -63
- package/dist/tools/lookup.js.map +0 -1
- package/dist/tools/mark-incident.d.ts +0 -28
- package/dist/tools/mark-incident.d.ts.map +0 -1
- package/dist/tools/mark-incident.js +0 -188
- package/dist/tools/mark-incident.js.map +0 -1
- package/dist/tools/merged-browser.d.ts +0 -11
- package/dist/tools/merged-browser.d.ts.map +0 -1
- package/dist/tools/merged-browser.js +0 -20
- package/dist/tools/merged-browser.js.map +0 -1
- package/dist/tools/merged-context.d.ts +0 -11
- package/dist/tools/merged-context.d.ts.map +0 -1
- package/dist/tools/merged-context.js +0 -21
- package/dist/tools/merged-context.js.map +0 -1
- package/dist/tools/merged-observe.d.ts +0 -13
- package/dist/tools/merged-observe.d.ts.map +0 -1
- package/dist/tools/merged-observe.js +0 -21
- package/dist/tools/merged-observe.js.map +0 -1
- package/dist/tools/merged-workspace.d.ts +0 -14
- package/dist/tools/merged-workspace.d.ts.map +0 -1
- package/dist/tools/merged-workspace.js +0 -21
- package/dist/tools/merged-workspace.js.map +0 -1
- package/dist/tools/observe-runtime.d.ts +0 -250
- package/dist/tools/observe-runtime.d.ts.map +0 -1
- package/dist/tools/observe-runtime.js +0 -1753
- package/dist/tools/observe-runtime.js.map +0 -1
- package/dist/tools/observe-tests.d.ts +0 -57
- package/dist/tools/observe-tests.d.ts.map +0 -1
- package/dist/tools/observe-tests.js +0 -368
- package/dist/tools/observe-tests.js.map +0 -1
- package/dist/tools/observe.d.ts +0 -28
- package/dist/tools/observe.d.ts.map +0 -1
- package/dist/tools/observe.js +0 -330
- package/dist/tools/observe.js.map +0 -1
- package/dist/tools/pr-analysis.d.ts +0 -189
- package/dist/tools/pr-analysis.d.ts.map +0 -1
- package/dist/tools/pr-analysis.js +0 -299
- package/dist/tools/pr-analysis.js.map +0 -1
- package/dist/tools/pre-push.d.ts +0 -168
- package/dist/tools/pre-push.d.ts.map +0 -1
- package/dist/tools/pre-push.js +0 -416
- package/dist/tools/pre-push.js.map +0 -1
- package/dist/tools/predict-reach.d.ts +0 -57
- package/dist/tools/predict-reach.d.ts.map +0 -1
- package/dist/tools/predict-reach.js +0 -159
- package/dist/tools/predict-reach.js.map +0 -1
- package/dist/tools/propagation.d.ts +0 -37
- package/dist/tools/propagation.d.ts.map +0 -1
- package/dist/tools/propagation.js +0 -162
- package/dist/tools/propagation.js.map +0 -1
- package/dist/tools/propose-journey.d.ts +0 -16
- package/dist/tools/propose-journey.d.ts.map +0 -1
- package/dist/tools/propose-journey.js +0 -121
- package/dist/tools/propose-journey.js.map +0 -1
- package/dist/tools/prove-reach.d.ts +0 -74
- package/dist/tools/prove-reach.d.ts.map +0 -1
- package/dist/tools/prove-reach.js +0 -286
- package/dist/tools/prove-reach.js.map +0 -1
- package/dist/tools/questions.d.ts +0 -30
- package/dist/tools/questions.d.ts.map +0 -1
- package/dist/tools/questions.js +0 -232
- package/dist/tools/questions.js.map +0 -1
- package/dist/tools/refusal-fetch.d.ts +0 -35
- package/dist/tools/refusal-fetch.d.ts.map +0 -1
- package/dist/tools/refusal-fetch.js +0 -103
- package/dist/tools/refusal-fetch.js.map +0 -1
- package/dist/tools/runtime-incident.d.ts +0 -33
- package/dist/tools/runtime-incident.d.ts.map +0 -1
- package/dist/tools/runtime-incident.js +0 -67
- package/dist/tools/runtime-incident.js.map +0 -1
- package/dist/tools/runtime-journey-drive.d.ts +0 -102
- package/dist/tools/runtime-journey-drive.d.ts.map +0 -1
- package/dist/tools/runtime-journey-drive.js +0 -247
- package/dist/tools/runtime-journey-drive.js.map +0 -1
- package/dist/tools/scope.d.ts +0 -45
- package/dist/tools/scope.d.ts.map +0 -1
- package/dist/tools/scope.js +0 -186
- package/dist/tools/scope.js.map +0 -1
- package/dist/tools/similar-incidents.d.ts +0 -43
- package/dist/tools/similar-incidents.d.ts.map +0 -1
- package/dist/tools/similar-incidents.js +0 -179
- package/dist/tools/similar-incidents.js.map +0 -1
- package/dist/tools/validate.d.ts +0 -133
- package/dist/tools/validate.d.ts.map +0 -1
- package/dist/tools/validate.js +0 -442
- package/dist/tools/validate.js.map +0 -1
- package/dist/tools/verb.d.ts +0 -46
- package/dist/tools/verb.d.ts.map +0 -1
- package/dist/tools/verb.js +0 -78
- package/dist/tools/verb.js.map +0 -1
- package/dist/tools/verification-status.d.ts +0 -38
- package/dist/tools/verification-status.d.ts.map +0 -1
- package/dist/tools/verification-status.js +0 -203
- package/dist/tools/verification-status.js.map +0 -1
- package/dist/tools/verify-claim.d.ts +0 -29
- package/dist/tools/verify-claim.d.ts.map +0 -1
- package/dist/tools/verify-claim.js +0 -220
- package/dist/tools/verify-claim.js.map +0 -1
- package/dist/tools/workspace.d.ts +0 -28
- package/dist/tools/workspace.d.ts.map +0 -1
- package/dist/tools/workspace.js +0 -101
- package/dist/tools/workspace.js.map +0 -1
- package/dist/transport.d.ts +0 -32
- package/dist/transport.d.ts.map +0 -1
- package/dist/transport.js +0 -85
- package/dist/transport.js.map +0 -1
- package/dist/workspace-index.d.ts +0 -164
- package/dist/workspace-index.d.ts.map +0 -1
- package/dist/workspace-index.js +0 -381
- package/dist/workspace-index.js.map +0 -1
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
/** `browser_navigate` moves an open session to another page. Cross-origin navigate refuses —
|
|
2
|
-
* never re-prompts — since navigation is the one place a session's consent could otherwise widen
|
|
3
|
-
* into a general-purpose browser. `class: "stateful-read"`: it changes what later calls see, but
|
|
4
|
-
* the developer's approval was already stated at `browser_start_session`. */
|
|
5
|
-
import { browserAnswer, emptyEvidence, observeAndCorrelate, reachNotes, useSession, withinConsent } from "../browser/tool-support.js";
|
|
6
|
-
import { NO_GRAPH_WRITE } from "../browser/graph-write.js";
|
|
7
|
-
import { CANCELLED_STATE, cancellationHeadline, cancellationNotes } from "../cancellation.js";
|
|
8
|
-
import { requiredString } from "./kit.js";
|
|
9
|
-
import { NO_REACH } from "./browser-snapshot.js";
|
|
10
|
-
const SCHEMA = {
|
|
11
|
-
type: "object",
|
|
12
|
-
properties: {
|
|
13
|
-
sessionId: {
|
|
14
|
-
type: "string",
|
|
15
|
-
description: "REQUIRED. The id returned by browser_start_session. Sessions belong to this connection and do not survive a reconnect.",
|
|
16
|
-
},
|
|
17
|
-
url: {
|
|
18
|
-
type: "string",
|
|
19
|
-
description: "REQUIRED. Where to navigate. Must be on the same origin the session was started against — a URL " +
|
|
20
|
-
"on any other origin is refused rather than confirmed again, because consent was granted for one " +
|
|
21
|
-
"application, not for the browser generally.",
|
|
22
|
-
},
|
|
23
|
-
},
|
|
24
|
-
required: ["sessionId", "url"],
|
|
25
|
-
additionalProperties: false,
|
|
26
|
-
};
|
|
27
|
-
function blank(url, evidence) {
|
|
28
|
-
return { sessionId: "", url, title: "", elements: [], totalElements: 0, reach: NO_REACH, evidence, graph: NO_GRAPH_WRITE };
|
|
29
|
-
}
|
|
30
|
-
/** Exported so `browser-read.ts` can dispatch the "navigate" verb to this exact body — the merge
|
|
31
|
-
* reuses this function rather than reimplementing it (mcp-surface-consolidation.md). */
|
|
32
|
-
export async function run(args, ctx) {
|
|
33
|
-
const sessionId = requiredString(args, "sessionId");
|
|
34
|
-
const url = requiredString(args, "url");
|
|
35
|
-
// Checked before the session is touched: the caller said stop, so nothing happens. The session
|
|
36
|
-
// itself stays open — it belongs to browser_start_session's consent, not to this call.
|
|
37
|
-
if (ctx.signal.aborted) {
|
|
38
|
-
return browserAnswer({
|
|
39
|
-
ctx,
|
|
40
|
-
state: CANCELLED_STATE,
|
|
41
|
-
headline: cancellationHeadline("the browser did not move"),
|
|
42
|
-
notes: cancellationNotes("The page is where it was.", "The browser session is still open and can still be used."),
|
|
43
|
-
data: blank(url, emptyEvidence()),
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
const found = await useSession(ctx.session.browserSessions(), sessionId);
|
|
47
|
-
if (!found.ok) {
|
|
48
|
-
return browserAnswer({
|
|
49
|
-
ctx,
|
|
50
|
-
state: found.dead.state,
|
|
51
|
-
headline: found.dead.headline,
|
|
52
|
-
notes: found.dead.notes,
|
|
53
|
-
data: blank(url, found.dead.evidence),
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
const { entry } = found;
|
|
57
|
-
if (!withinConsent(entry, url)) {
|
|
58
|
-
return browserAnswer({
|
|
59
|
-
ctx,
|
|
60
|
-
state: "refused",
|
|
61
|
-
headline: `${url} is outside this session's consented origin.`,
|
|
62
|
-
notes: [
|
|
63
|
-
`This session was started against ${entry.consentedOrigin} and consent is bound to that origin. ` +
|
|
64
|
-
`Navigating to ${url} would take the browser somewhere the developer did not approve, so it is ` +
|
|
65
|
-
"refused rather than confirmed again — asking a second time here is how a gate becomes a habit. " +
|
|
66
|
-
"Start a new session if you genuinely mean to drive that origin.",
|
|
67
|
-
],
|
|
68
|
-
data: blank(url, emptyEvidence()),
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
ctx.progress(`Navigating to ${url}`);
|
|
72
|
-
await entry.page.navigate(url);
|
|
73
|
-
const snapshot = await entry.page.snapshot();
|
|
74
|
-
const observed = await observeAndCorrelate(ctx, entry);
|
|
75
|
-
const evidence = observed.evidence;
|
|
76
|
-
return browserAnswer({
|
|
77
|
-
ctx,
|
|
78
|
-
headline: `${snapshot.url} — ${snapshot.title || "untitled"} (${snapshot.totalElements} elements).`,
|
|
79
|
-
notes: [...observed.notes, ...reachNotes(snapshot)],
|
|
80
|
-
data: {
|
|
81
|
-
sessionId: entry.sessionId,
|
|
82
|
-
url: snapshot.url,
|
|
83
|
-
title: snapshot.title,
|
|
84
|
-
elements: snapshot.elements,
|
|
85
|
-
totalElements: snapshot.totalElements,
|
|
86
|
-
reach: { frames: snapshot.frames, shadow: snapshot.shadow, hidden: snapshot.hidden, reveal: snapshot.reveal },
|
|
87
|
-
evidence,
|
|
88
|
-
graph: observed.graph,
|
|
89
|
-
},
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
export const browserNavigateTool = {
|
|
93
|
-
name: "browser_navigate",
|
|
94
|
-
title: "Navigate an open browser session",
|
|
95
|
-
description: "Move an open browser session to another page on the same application, and return what is there plus " +
|
|
96
|
-
"anything the page produced on the way — console errors and failed requests, raw and untriaged. " +
|
|
97
|
-
"Refuses to leave the origin the session was started against.",
|
|
98
|
-
class: "stateful-read",
|
|
99
|
-
tier: "evidence",
|
|
100
|
-
version: "1.0.0",
|
|
101
|
-
inputSchema: SCHEMA,
|
|
102
|
-
run,
|
|
103
|
-
};
|
|
104
|
-
//# sourceMappingURL=browser-navigate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browser-navigate.js","sourceRoot":"","sources":["../../src/tools/browser-navigate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `browser_read` — merges the four browser tools that read a page without needing consent of
|
|
3
|
-
* their own: `browser_snapshot`, `browser_navigate`, `browser_wait_for`, `browser_close_session`
|
|
4
|
-
* (documents/plans/mcp-surface-consolidation.md, group 2).
|
|
5
|
-
*
|
|
6
|
-
* `class: "stateful-read"` — deliberately not `action`. None of the four mutates the application;
|
|
7
|
-
* the developer's consent for driving it was already given at `browser_start_session`. What they
|
|
8
|
-
* DO change is what a *later* call in the same session sees (each takes a fresh snapshot, which
|
|
9
|
-
* invalidates every ref issued before it) — that is what "stateful" means here, and it is why
|
|
10
|
-
* `browser_snapshot` was never `read`-class to begin with. Declaring `browser_read` as `action`
|
|
11
|
-
* would put a plain read behind a confirmation handshake it has never needed; the other eight
|
|
12
|
-
* `browser_*` verbs (the ones that DO mutate) are a separate merge, owned elsewhere, and are not
|
|
13
|
-
* touched by this file.
|
|
14
|
-
*
|
|
15
|
-
* Dispatches on "verb" to each absorbed tool's exact `run` body — extracted, not reimplemented,
|
|
16
|
-
* so behaviour is unchanged per verb.
|
|
17
|
-
*/
|
|
18
|
-
import type { ToolDefinition } from "./kit.ts";
|
|
19
|
-
import type { BrowserPageData } from "./browser-snapshot.ts";
|
|
20
|
-
import type { BrowserNavigateData } from "./browser-navigate.ts";
|
|
21
|
-
import type { BrowserWaitForData } from "./browser-wait-for.ts";
|
|
22
|
-
import type { BrowserCloseSessionData } from "./browser-close-session.ts";
|
|
23
|
-
/**
|
|
24
|
-
* What this tool answers with: one verb's shape, never a merged one.
|
|
25
|
-
*
|
|
26
|
-
* The merge cost this its single concrete output type, and `unknown` would have
|
|
27
|
-
* silently retired `output-shapes.test.ts`'s check that a declared shape is tied
|
|
28
|
-
* to the code producing it. A union keeps that tie: a verb added without its
|
|
29
|
-
* shape here stops compiling.
|
|
30
|
-
*/
|
|
31
|
-
export type BrowserReadData = BrowserPageData | BrowserNavigateData | BrowserWaitForData | BrowserCloseSessionData;
|
|
32
|
-
export declare const browserReadTool: ToolDefinition;
|
|
33
|
-
//# sourceMappingURL=browser-read.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browser-read.d.ts","sourceRoot":"","sources":["../../src/tools/browser-read.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,UAAU,CAAC;AAO5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAE1E;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GACvB,eAAe,GACf,mBAAmB,GACnB,kBAAkB,GAClB,uBAAuB,CAAC;AAqF5B,eAAO,MAAM,eAAe,EAAE,cAc7B,CAAC"}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `browser_read` — merges the four browser tools that read a page without needing consent of
|
|
3
|
-
* their own: `browser_snapshot`, `browser_navigate`, `browser_wait_for`, `browser_close_session`
|
|
4
|
-
* (documents/plans/mcp-surface-consolidation.md, group 2).
|
|
5
|
-
*
|
|
6
|
-
* `class: "stateful-read"` — deliberately not `action`. None of the four mutates the application;
|
|
7
|
-
* the developer's consent for driving it was already given at `browser_start_session`. What they
|
|
8
|
-
* DO change is what a *later* call in the same session sees (each takes a fresh snapshot, which
|
|
9
|
-
* invalidates every ref issued before it) — that is what "stateful" means here, and it is why
|
|
10
|
-
* `browser_snapshot` was never `read`-class to begin with. Declaring `browser_read` as `action`
|
|
11
|
-
* would put a plain read behind a confirmation handshake it has never needed; the other eight
|
|
12
|
-
* `browser_*` verbs (the ones that DO mutate) are a separate merge, owned elsewhere, and are not
|
|
13
|
-
* touched by this file.
|
|
14
|
-
*
|
|
15
|
-
* Dispatches on "verb" to each absorbed tool's exact `run` body — extracted, not reimplemented,
|
|
16
|
-
* so behaviour is unchanged per verb.
|
|
17
|
-
*/
|
|
18
|
-
import { selectVerb } from "./verb.js";
|
|
19
|
-
import { WAIT_TIMEOUT_MAX_MS } from "../browser/wait-target.js";
|
|
20
|
-
import { run as runSnapshot } from "./browser-snapshot.js";
|
|
21
|
-
import { run as runNavigate } from "./browser-navigate.js";
|
|
22
|
-
import { run as runWaitFor } from "./browser-wait-for.js";
|
|
23
|
-
import { run as runClose } from "./browser-close-session.js";
|
|
24
|
-
const VERB_SPECS = [
|
|
25
|
-
{ verb: "snapshot", accepts: ["startAt", "limit", "reveal"] },
|
|
26
|
-
{ verb: "navigate", accepts: ["url"] },
|
|
27
|
-
{ verb: "wait_for", accepts: ["role", "name", "timeoutMs"] },
|
|
28
|
-
{ verb: "close", accepts: [] },
|
|
29
|
-
];
|
|
30
|
-
/** Every verb needs the session it reads — genuinely shared, not one verb's property leaking
|
|
31
|
-
* into another's. */
|
|
32
|
-
const SHARED_PROPS = ["sessionId"];
|
|
33
|
-
const SCHEMA = {
|
|
34
|
-
type: "object",
|
|
35
|
-
properties: {
|
|
36
|
-
verb: {
|
|
37
|
-
type: "string",
|
|
38
|
-
enum: ["snapshot", "navigate", "wait_for", "close"],
|
|
39
|
-
description: 'Which read to perform. "snapshot": the current page. "navigate": move to another page on ' +
|
|
40
|
-
'the same origin, then read it. "wait_for": wait for an element, then read the page. ' +
|
|
41
|
-
'"close": tear the session down and return what it observed.',
|
|
42
|
-
},
|
|
43
|
-
sessionId: {
|
|
44
|
-
type: "string",
|
|
45
|
-
description: "REQUIRED, all verbs. The id returned by browser_start_session.",
|
|
46
|
-
},
|
|
47
|
-
// --- snapshot only ---
|
|
48
|
-
startAt: {
|
|
49
|
-
type: "integer",
|
|
50
|
-
minimum: 0,
|
|
51
|
-
description: "snapshot only. Skip this many elements before listing. Compare what you received against " +
|
|
52
|
-
"totalElements (always the real count) and ask again with startAt past what you have seen.",
|
|
53
|
-
},
|
|
54
|
-
limit: {
|
|
55
|
-
type: "integer",
|
|
56
|
-
minimum: 1,
|
|
57
|
-
description: "snapshot only. At most this many elements. A reply too large for the host is shortened further regardless.",
|
|
58
|
-
},
|
|
59
|
-
reveal: {
|
|
60
|
-
type: "boolean",
|
|
61
|
-
description: "snapshot only. Scroll and re-read the page so rows not yet in the DOM are seen. Off by " +
|
|
62
|
-
"default — it moves the page, and a recycling list will destroy rows it scrolls past.",
|
|
63
|
-
},
|
|
64
|
-
// --- navigate only ---
|
|
65
|
-
url: {
|
|
66
|
-
type: "string",
|
|
67
|
-
description: "navigate only, REQUIRED. Where to go. Must be on the session's consented origin — refused, " +
|
|
68
|
-
"not re-confirmed, if it is not.",
|
|
69
|
-
},
|
|
70
|
-
// --- wait_for only ---
|
|
71
|
-
role: {
|
|
72
|
-
type: "string",
|
|
73
|
-
description: "wait_for only. Role to wait for, as snapshot reports it. role, name, or both — at least one required.",
|
|
74
|
-
},
|
|
75
|
-
name: {
|
|
76
|
-
type: "string",
|
|
77
|
-
description: "wait_for only. Name to wait for, as snapshot reports it. Matched exactly, ignoring case and " +
|
|
78
|
-
"surrounding space, never as a substring.",
|
|
79
|
-
},
|
|
80
|
-
timeoutMs: {
|
|
81
|
-
type: "integer",
|
|
82
|
-
minimum: 0,
|
|
83
|
-
description: `wait_for only. Ceiling in ms. Defaults to 5000, capped at ${WAIT_TIMEOUT_MAX_MS}. Timing out is a normal outcome, not an error.`,
|
|
84
|
-
},
|
|
85
|
-
},
|
|
86
|
-
required: ["verb", "sessionId"],
|
|
87
|
-
additionalProperties: false,
|
|
88
|
-
};
|
|
89
|
-
async function run(args, ctx) {
|
|
90
|
-
const verb = selectVerb(args, "verb", VERB_SPECS, SHARED_PROPS);
|
|
91
|
-
if (verb === "snapshot")
|
|
92
|
-
return runSnapshot(args, ctx);
|
|
93
|
-
if (verb === "navigate")
|
|
94
|
-
return runNavigate(args, ctx);
|
|
95
|
-
if (verb === "wait_for")
|
|
96
|
-
return runWaitFor(args, ctx);
|
|
97
|
-
return runClose(args, ctx);
|
|
98
|
-
}
|
|
99
|
-
export const browserReadTool = {
|
|
100
|
-
name: "browser_read",
|
|
101
|
-
class: "stateful-read",
|
|
102
|
-
tier: "evidence",
|
|
103
|
-
version: "1.0.0",
|
|
104
|
-
title: "Read, navigate, wait on, or close a browser session",
|
|
105
|
-
description: 'Four read-only operations on an open browser session, chosen by "verb": "snapshot" reads the ' +
|
|
106
|
-
'current page; "navigate" moves to another page on the same origin and reads it; "wait_for" ' +
|
|
107
|
-
'waits for an element to appear and reads the page after; "close" tears the session down and ' +
|
|
108
|
-
"returns what it observed. None of these mutates the application, so none takes a " +
|
|
109
|
-
"confirmation — but each takes a fresh snapshot, which invalidates every ref issued before it.",
|
|
110
|
-
inputSchema: SCHEMA,
|
|
111
|
-
run,
|
|
112
|
-
};
|
|
113
|
-
//# sourceMappingURL=browser-read.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browser-read.js","sourceRoot":"","sources":["../../src/tools/browser-read.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/** `browser_run_scenario` replays a saved scenario in one batch call — one aggregated reply
|
|
2
|
-
* instead of N, since a check has one outcome, not fragments to reassemble. `class: "action"`
|
|
3
|
-
* like the verbs: mints nothing, consent stays bound to `browser_start_session`'s origin, and a
|
|
4
|
-
* stored `navigate` leaving it stops the replay. Per DEC-381, only an asserted expectation that
|
|
5
|
-
* fails is blocking — an observed console error the author never asserted against is not. */
|
|
6
|
-
import { type BrowserGraphWrite } from "../browser/graph-write.ts";
|
|
7
|
-
import { type ScenarioAssertionResult, type ScenarioCounts, type ScenarioStepResult } from "../browser/scenario-runner.ts";
|
|
8
|
-
import type { BrowserEvidenceReport } from "../browser/evidence.ts";
|
|
9
|
-
import { type ToolDefinition } from "./kit.ts";
|
|
10
|
-
export interface BrowserRunScenarioData {
|
|
11
|
-
readonly sessionId: string;
|
|
12
|
-
readonly scenario: string;
|
|
13
|
-
/** `passed` · `failed` · `unresolved` · `unverified` — never `passed` for a scenario that asserted nothing. */
|
|
14
|
-
readonly outcome: "passed" | "failed" | "unresolved" | "unverified" | "notRun";
|
|
15
|
-
/** Three counts that are never summed, plus how many assertions held. */
|
|
16
|
-
readonly counts: ScenarioCounts;
|
|
17
|
-
/** Failed assertions alone. An unresolvable step is not a defect claim, so it does not join this. */
|
|
18
|
-
readonly blockingTotal: number;
|
|
19
|
-
/** 0 clean · 1 blocking findings · 2 the check could not run. `descry check`'s existing vocabulary. */
|
|
20
|
-
readonly exitCode: 0 | 1 | 2;
|
|
21
|
-
readonly steps: readonly ScenarioStepResult[];
|
|
22
|
-
readonly assertions: readonly ScenarioAssertionResult[];
|
|
23
|
-
/** One summary for the whole batch, drained a step at a time. */
|
|
24
|
-
readonly evidence: BrowserEvidenceReport;
|
|
25
|
-
readonly graph: BrowserGraphWrite;
|
|
26
|
-
}
|
|
27
|
-
export declare const browserRunScenarioTool: ToolDefinition;
|
|
28
|
-
//# sourceMappingURL=browser-run-scenario.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browser-run-scenario.d.ts","sourceRoot":"","sources":["../../src/tools/browser-run-scenario.ts"],"names":[],"mappings":"AAAA;;;;8FAI8F;AAI9F,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAA2B,KAAK,uBAAuB,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEpJ,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,EAAoC,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAGjF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,+GAA+G;IAC/G,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC/E,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,qGAAqG;IACrG,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,uGAAuG;IACvG,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACxD,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;CACnC;AAkMD,eAAO,MAAM,sBAAsB,EAAE,cAiBpC,CAAC"}
|
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
/** `browser_run_scenario` replays a saved scenario in one batch call — one aggregated reply
|
|
2
|
-
* instead of N, since a check has one outcome, not fragments to reassemble. `class: "action"`
|
|
3
|
-
* like the verbs: mints nothing, consent stays bound to `browser_start_session`'s origin, and a
|
|
4
|
-
* stored `navigate` leaving it stops the replay. Per DEC-381, only an asserted expectation that
|
|
5
|
-
* fails is blocking — an observed console error the author never asserted against is not. */
|
|
6
|
-
import { readScenario } from "../scenarios/index.js";
|
|
7
|
-
import { browserAnswer, emptyEvidence, mutationRefusal, useSession, withinConsent } from "../browser/tool-support.js";
|
|
8
|
-
import { NO_GRAPH_WRITE } from "../browser/graph-write.js";
|
|
9
|
-
import { mutates, replayScenario } from "../browser/scenario-runner.js";
|
|
10
|
-
import { scenarioPath } from "../scenarios/index.js";
|
|
11
|
-
import { CANCELLED_STATE } from "../cancellation.js";
|
|
12
|
-
import { requiredString } from "./kit.js";
|
|
13
|
-
const SCHEMA = {
|
|
14
|
-
type: "object",
|
|
15
|
-
properties: {
|
|
16
|
-
sessionId: {
|
|
17
|
-
type: "string",
|
|
18
|
-
description: "REQUIRED. The id returned by browser_start_session. The replay runs in that session, under the consent it was granted.",
|
|
19
|
-
},
|
|
20
|
-
name: {
|
|
21
|
-
type: "string",
|
|
22
|
-
description: "REQUIRED. The scenario's name, without the file extension — a scenario saved as " +
|
|
23
|
-
"descry/scenarios/checkout.scenario.json is named \"checkout\". Saved scenarios are committed files; " +
|
|
24
|
-
"browser_save_scenario writes them.",
|
|
25
|
-
},
|
|
26
|
-
confirmToken: {
|
|
27
|
-
type: "string",
|
|
28
|
-
description: "Not normally needed. Consent is granted once, for the whole session, by browser_start_session, so " +
|
|
29
|
-
"this call replays directly. The field is declared because the handshake reads it for every " +
|
|
30
|
-
"action-class tool.",
|
|
31
|
-
},
|
|
32
|
-
},
|
|
33
|
-
required: ["sessionId", "name"],
|
|
34
|
-
additionalProperties: false,
|
|
35
|
-
};
|
|
36
|
-
function empty(sessionId, name) {
|
|
37
|
-
return {
|
|
38
|
-
sessionId,
|
|
39
|
-
scenario: name,
|
|
40
|
-
outcome: "notRun",
|
|
41
|
-
counts: { passed: 0, failed: 0, unresolved: 0, unverified: 0 },
|
|
42
|
-
blockingTotal: 0,
|
|
43
|
-
// 2 rather than 0: this is "the check could not run", and a refusal that
|
|
44
|
-
// reported clean would let a scenario nobody could replay keep claiming
|
|
45
|
-
// coverage.
|
|
46
|
-
exitCode: 2,
|
|
47
|
-
steps: [],
|
|
48
|
-
assertions: [],
|
|
49
|
-
evidence: emptyEvidence(),
|
|
50
|
-
graph: NO_GRAPH_WRITE,
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
async function run(args, ctx) {
|
|
54
|
-
const sessionId = requiredString(args, "sessionId");
|
|
55
|
-
const name = requiredString(args, "name");
|
|
56
|
-
const stored = await readScenario(ctx.session.repoPath, name);
|
|
57
|
-
if (!stored.valid) {
|
|
58
|
-
return browserAnswer({
|
|
59
|
-
ctx,
|
|
60
|
-
state: "refused",
|
|
61
|
-
headline: `Scenario "${name}" cannot be replayed.`,
|
|
62
|
-
notes: [
|
|
63
|
-
...stored.problems,
|
|
64
|
-
`Scenarios live in ${scenarioPath(ctx.session.repoPath, name)} and are committed like source. ` +
|
|
65
|
-
"browser_save_scenario writes one from a session you have explored.",
|
|
66
|
-
],
|
|
67
|
-
data: empty(sessionId, name),
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
const scenario = stored.scenario;
|
|
71
|
-
const found = await useSession(ctx.session.browserSessions(), sessionId);
|
|
72
|
-
if (!found.ok) {
|
|
73
|
-
return browserAnswer({
|
|
74
|
-
ctx,
|
|
75
|
-
state: found.dead.state,
|
|
76
|
-
headline: found.dead.headline,
|
|
77
|
-
notes: found.dead.notes,
|
|
78
|
-
data: { ...empty(sessionId, name), evidence: found.dead.evidence },
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
const { entry } = found;
|
|
82
|
-
// Consent is bound to one origin and a stored file cannot widen it. Checked
|
|
83
|
-
// before anything runs, because a replay that got three steps in and then
|
|
84
|
-
// refused would have already changed the application.
|
|
85
|
-
if (!withinConsent(entry, scenario.targetUrl)) {
|
|
86
|
-
return browserAnswer({
|
|
87
|
-
ctx,
|
|
88
|
-
state: "refused",
|
|
89
|
-
headline: `Scenario "${name}" targets another origin.`,
|
|
90
|
-
notes: [
|
|
91
|
-
`It opens ${scenario.targetUrl}, and this session's consent covers ${entry.consentedOrigin} only. ` +
|
|
92
|
-
"Consent is granted per session and bound to the origin it was granted for, so a saved file cannot " +
|
|
93
|
-
"extend it. Start a session against that origin to replay this scenario.",
|
|
94
|
-
],
|
|
95
|
-
data: empty(sessionId, name),
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
const refusedForSafety = mutationRefusal(entry);
|
|
99
|
-
if (refusedForSafety !== null && mutates(scenario)) {
|
|
100
|
-
return browserAnswer({
|
|
101
|
-
ctx,
|
|
102
|
-
state: "refused",
|
|
103
|
-
headline: `${entry.profile?.name ?? "This environment"} is read-only.`,
|
|
104
|
-
notes: [
|
|
105
|
-
refusedForSafety,
|
|
106
|
-
`Scenario "${name}" clicks, types or fills, so replaying it would change the application. A ` +
|
|
107
|
-
"navigate-only scenario would still run here.",
|
|
108
|
-
],
|
|
109
|
-
data: empty(sessionId, name),
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
// Start where the scenario says it starts, rather than wherever the session
|
|
113
|
-
// happened to be left. A replay that began from an arbitrary page is not a
|
|
114
|
-
// repeat of the run that was saved.
|
|
115
|
-
if (entry.page.currentUrl() !== scenario.targetUrl) {
|
|
116
|
-
await entry.page.navigate(scenario.targetUrl);
|
|
117
|
-
}
|
|
118
|
-
// `ctx.session.credentialStore` — RG-1(4) / lane "delivery": undefined for
|
|
119
|
-
// every session that never set one, so a `${credential:NAME}` step refuses
|
|
120
|
-
// by name exactly as before. `process.env` is passed through explicitly
|
|
121
|
-
// rather than omitted, because `credentialStore` is `replayScenario`'s
|
|
122
|
-
// sixth positional parameter and `env` is its fifth.
|
|
123
|
-
const replay = await replayScenario(ctx, ctx.session.browserSessions(), sessionId, scenario, process.env, ctx.session.credentialStore);
|
|
124
|
-
const notes = [
|
|
125
|
-
...(replay.sessionEnded === null ? [] : replay.sessionEnded.notes),
|
|
126
|
-
...replay.notes,
|
|
127
|
-
// A cancelled replay is `unresolved` with zero unresolved steps — skip the outcome note, the
|
|
128
|
-
// replay's own note already says what stopped it.
|
|
129
|
-
...(replay.cancelled ? [] : outcomeNotes(replay.outcome, replay.counts, name)),
|
|
130
|
-
...replay.steps.filter((s) => s.resolution !== null).map((s) => s.resolution.message),
|
|
131
|
-
...replay.assertions.filter((a) => a.status === "failed" || a.status === "unevaluable").map((a) => a.detail),
|
|
132
|
-
];
|
|
133
|
-
// Cancellation outranks a dead session in the state: both are true, and
|
|
134
|
-
// "the caller stopped this" is the one that explains the other.
|
|
135
|
-
const state = replay.cancelled ? CANCELLED_STATE : replay.sessionEnded?.state;
|
|
136
|
-
return browserAnswer({
|
|
137
|
-
ctx,
|
|
138
|
-
...(state === undefined ? {} : { state }),
|
|
139
|
-
headline: (replay.cancelled ? `Scenario "${name}" was cancelled: ` : `Scenario "${name}": `) +
|
|
140
|
-
`${replay.outcome} — ${replay.counts.passed} assertion(s) held, ` +
|
|
141
|
-
`${replay.counts.failed} failed, ${replay.counts.unresolved} could not run.`,
|
|
142
|
-
notes,
|
|
143
|
-
data: {
|
|
144
|
-
sessionId,
|
|
145
|
-
scenario: name,
|
|
146
|
-
outcome: replay.outcome,
|
|
147
|
-
counts: replay.counts,
|
|
148
|
-
blockingTotal: replay.blockingTotal,
|
|
149
|
-
exitCode: replay.exitCode,
|
|
150
|
-
steps: replay.steps,
|
|
151
|
-
assertions: replay.assertions,
|
|
152
|
-
evidence: replay.evidence,
|
|
153
|
-
graph: replay.graph,
|
|
154
|
-
},
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
/** The disclosure the three counts exist for. Emitted per outcome, not always — a note on every
|
|
158
|
-
* reply is one nobody reads by the third (same reasoning as `evidenceNotes`'s triage disclaimer). */
|
|
159
|
-
function outcomeNotes(outcome, counts, name) {
|
|
160
|
-
switch (outcome) {
|
|
161
|
-
case "unverified":
|
|
162
|
-
return [
|
|
163
|
-
`Scenario "${name}" stores no assertions, so this replay verified nothing. Its steps still resolved ` +
|
|
164
|
-
"and still ran — real information — but that is not the same statement as the application behaving, " +
|
|
165
|
-
"and it is deliberately never reported as passed.",
|
|
166
|
-
];
|
|
167
|
-
case "unresolved":
|
|
168
|
-
return [
|
|
169
|
-
`${counts.unresolved} step or assertion could not run, so this replay neither passed nor failed. ` +
|
|
170
|
-
"Descry cannot tell a deliberate rename from a vanished element — both look identical from here — " +
|
|
171
|
-
"so it claims neither. The remedy is in the message below: re-save the step if the change was " +
|
|
172
|
-
"intended, or fix the application if it was not.",
|
|
173
|
-
];
|
|
174
|
-
case "failed":
|
|
175
|
-
return [
|
|
176
|
-
`${counts.failed} assertion(s) the scenario's author wrote down did not hold. Only those count as ` +
|
|
177
|
-
"blocking; console errors and failed requests observed during the replay are reported below and are " +
|
|
178
|
-
"not, because they are frequently true of a working page." +
|
|
179
|
-
(counts.unresolved > 0
|
|
180
|
-
? ` ${counts.unresolved} check(s) also could not run, counted separately and never added to the ` +
|
|
181
|
-
"blocking total."
|
|
182
|
-
: ""),
|
|
183
|
-
];
|
|
184
|
-
case "passed":
|
|
185
|
-
case "notRun":
|
|
186
|
-
return [];
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
export const browserRunScenarioTool = {
|
|
190
|
-
name: "browser_run_scenario",
|
|
191
|
-
title: "Replay a saved scenario",
|
|
192
|
-
description: "Replay a saved scenario — a named step sequence with the assertions its author wrote down — in one " +
|
|
193
|
-
"call, and return a single evidence summary rather than one reply per step. Each step re-resolves its " +
|
|
194
|
-
"element against a fresh page: exactly one match or the replay stops and says which of role, name and " +
|
|
195
|
-
"selector disagreed and what the page holds now. Reports three counts that are never added together — " +
|
|
196
|
-
"failed assertions, checks that could not run, and whether the scenario asserted anything at all. A " +
|
|
197
|
-
"scenario with no assertions replays as unverified, never as passed.",
|
|
198
|
-
class: "action",
|
|
199
|
-
tier: "evidence",
|
|
200
|
-
version: "1.0.0",
|
|
201
|
-
inputSchema: SCHEMA,
|
|
202
|
-
run,
|
|
203
|
-
// Undefined, always, same as the verbs: consent lives at browser_start_session, not here.
|
|
204
|
-
describeAction: () => undefined,
|
|
205
|
-
};
|
|
206
|
-
//# sourceMappingURL=browser-run-scenario.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browser-run-scenario.js","sourceRoot":"","sources":["../../src/tools/browser-run-scenario.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `browser_save_scenario`: an explored session becomes a durable scenario,
|
|
3
|
-
* written only through `writeScenario` (validates in and out — no private
|
|
4
|
-
* disk path here). A step can't carry a `ref`: the schema omits the field entirely and the format module also rejects one by name.
|
|
5
|
-
*/
|
|
6
|
-
import { type ToolDefinition } from "./kit.ts";
|
|
7
|
-
export interface BrowserSaveScenarioData {
|
|
8
|
-
readonly sessionId: string;
|
|
9
|
-
readonly name: string;
|
|
10
|
-
/** Where it was written, or "" when nothing was written. */
|
|
11
|
-
readonly path: string;
|
|
12
|
-
readonly targetUrl: string;
|
|
13
|
-
readonly stepCount: number;
|
|
14
|
-
readonly assertionCount: number;
|
|
15
|
-
readonly savedAt: string;
|
|
16
|
-
readonly savedAtCommit: string;
|
|
17
|
-
}
|
|
18
|
-
export declare const browserSaveScenarioTool: ToolDefinition;
|
|
19
|
-
//# sourceMappingURL=browser-save-scenario.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browser-save-scenario.d.ts","sourceRoot":"","sources":["../../src/tools/browser-save-scenario.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,EAAoE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAGjH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAubD,eAAO,MAAM,uBAAuB,EAAE,cA0BrC,CAAC"}
|