@descryy/mcp 0.11.4 → 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 +7 -7
- 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 -591
- 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 -1518
- 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 -151
- 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 -39
- package/dist/capped.d.ts.map +0 -1
- package/dist/capped.js +0 -43
- 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 -327
- package/dist/registry.js.map +0 -1
- package/dist/render.d.ts +0 -623
- package/dist/render.d.ts.map +0 -1
- package/dist/render.js +0 -968
- 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 -651
- package/dist/server.js.map +0 -1
- package/dist/session.d.ts +0 -356
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js +0 -779
- 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 -225
- 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 -640
- 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 -444
- 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 -370
- 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 -307
- 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 -385
- 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 -106
- 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 -262
- package/dist/tools/observe-runtime.d.ts.map +0 -1
- package/dist/tools/observe-runtime.js +0 -1901
- 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 -374
- 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 -123
- 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 -217
- 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 -203
- 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 -520
- 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
package/dist/tools/browser.js
DELETED
|
@@ -1,386 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `browser` — the merged action-class browser tool. §4/§7 step 5 of
|
|
3
|
-
* `documents/plans/mcp-surface-consolidation.md`.
|
|
4
|
-
*
|
|
5
|
-
* Absorbs the eight consent-gated browser verbs — `start_session` `click`
|
|
6
|
-
* `type` `fill` `select` `submit` `save_scenario` `run_scenario` — behind one
|
|
7
|
-
* `verb` argument. The four stateful-read tools (`snapshot`, `navigate`,
|
|
8
|
-
* `wait_for`, `close_session`) are a different class and are not touched
|
|
9
|
-
* here.
|
|
10
|
-
*
|
|
11
|
-
* ## This is the surface merge only
|
|
12
|
-
*
|
|
13
|
-
* §4 names the real design problem: an element ref is issued per snapshot and
|
|
14
|
-
* a stale one refuses rather than resolving elsewhere, so a caller cannot
|
|
15
|
-
* author a multi-step batch up front — step 2's ref does not exist until step
|
|
16
|
-
* 1 has run. The eventual fix is a server-side step loop that takes its own
|
|
17
|
-
* snapshot between steps and resolves targets by role + accessible name, so a
|
|
18
|
-
* ref never leaves the server and an ambiguous target refuses rather than
|
|
19
|
-
* guessing. That is a design change, not a merge, and it is **not** done
|
|
20
|
-
* here. This tool still takes one ref, for one step, per call — exactly
|
|
21
|
-
* today's semantics, including the refusal on a superseded ref — and only
|
|
22
|
-
* changes how the eight verbs are named and dispatched.
|
|
23
|
-
*
|
|
24
|
-
* ## Reuse, not reimplementation
|
|
25
|
-
*
|
|
26
|
-
* Every verb's `run` and `describeAction` is the same function object the
|
|
27
|
-
* standalone tool exported before this file existed — `VERB_TOOLS` below is
|
|
28
|
-
* a dispatch table over those objects, never a rewrite of what they do. The
|
|
29
|
-
* one thing genuinely new is `selectVerb`: with eight verbs' properties
|
|
30
|
-
* unioned into one schema, `additionalProperties: false` can no longer catch
|
|
31
|
-
* `browser({ verb: "click", text: "hi" })` silently ignoring `text` — that is
|
|
32
|
-
* exactly the defect `browser_start_session({ profile })` silently reading
|
|
33
|
-
* `environment` was (UAT phase 5 F12), one level further down. `selectVerb`
|
|
34
|
-
* re-establishes per-verb argument discrimination at runtime; see
|
|
35
|
-
* `verb.ts`'s own header for the full reasoning.
|
|
36
|
-
*
|
|
37
|
-
* ## Consent
|
|
38
|
-
*
|
|
39
|
-
* Only `start_session` mints anything — it is the one call that opens a
|
|
40
|
-
* browser and grants consent for the rest of the session's life
|
|
41
|
-
* (`browser-start-session.ts`, DEC-380). The other seven verbs already
|
|
42
|
-
* declare `describeAction: () => undefined` (nothing left to confirm; a verb
|
|
43
|
-
* cannot mint its own consent), and that is preserved by delegating to each
|
|
44
|
-
* verb's own `describeAction` rather than writing a new one — the one
|
|
45
|
-
* consent sentence this tool produces is `browser_start_session`'s own,
|
|
46
|
-
* unchanged, so it cannot drift from what `start_session` alone still
|
|
47
|
-
* enforces.
|
|
48
|
-
*/
|
|
49
|
-
import { browserClickTool } from "./browser-click.js";
|
|
50
|
-
import { browserTypeTool } from "./browser-type.js";
|
|
51
|
-
import { browserFillTool } from "./browser-fill.js";
|
|
52
|
-
import { browserSelectTool } from "./browser-select.js";
|
|
53
|
-
import { browserSubmitTool } from "./browser-submit.js";
|
|
54
|
-
import { browserStartSessionTool } from "./browser-start-session.js";
|
|
55
|
-
import { browserSaveScenarioTool } from "./browser-save-scenario.js";
|
|
56
|
-
import { browserRunScenarioTool } from "./browser-run-scenario.js";
|
|
57
|
-
import { selectVerb } from "./verb.js";
|
|
58
|
-
const VERB_TOOLS = {
|
|
59
|
-
start_session: browserStartSessionTool,
|
|
60
|
-
click: browserClickTool,
|
|
61
|
-
type: browserTypeTool,
|
|
62
|
-
fill: browserFillTool,
|
|
63
|
-
select: browserSelectTool,
|
|
64
|
-
submit: browserSubmitTool,
|
|
65
|
-
save_scenario: browserSaveScenarioTool,
|
|
66
|
-
run_scenario: browserRunScenarioTool,
|
|
67
|
-
};
|
|
68
|
-
/** Every verb's own exclusive properties, beyond `verb` and the shared ones below — the table
|
|
69
|
-
* `selectVerb` needs to say "that belongs to a different verb" instead of just "unknown". Kept
|
|
70
|
-
* as data, next to `VERB_TOOLS`, so the two cannot silently drift apart: a verb added to one
|
|
71
|
-
* and not the other fails loudly (`browser-verb-dispatch.test.ts` asserts the two agree). */
|
|
72
|
-
const SPECS = [
|
|
73
|
-
{
|
|
74
|
-
verb: "start_session",
|
|
75
|
-
accepts: [
|
|
76
|
-
"targetUrl",
|
|
77
|
-
"headless",
|
|
78
|
-
"stackParser",
|
|
79
|
-
"documentRoot",
|
|
80
|
-
"environment",
|
|
81
|
-
"storageState",
|
|
82
|
-
"storageStatePath",
|
|
83
|
-
"storageStateCredential",
|
|
84
|
-
"extraHttpHeaders",
|
|
85
|
-
"saveStorageStateTo",
|
|
86
|
-
],
|
|
87
|
-
},
|
|
88
|
-
{ verb: "click", accepts: ["sessionId", "ref"] },
|
|
89
|
-
{ verb: "type", accepts: ["sessionId", "ref", "text"] },
|
|
90
|
-
{ verb: "fill", accepts: ["sessionId", "ref", "text"] },
|
|
91
|
-
{ verb: "select", accepts: ["sessionId", "ref", "value"] },
|
|
92
|
-
{ verb: "submit", accepts: ["sessionId", "ref"] },
|
|
93
|
-
{ verb: "save_scenario", accepts: ["sessionId", "name", "description", "targetUrl", "steps", "assertions"] },
|
|
94
|
-
{ verb: "run_scenario", accepts: ["sessionId", "name"] },
|
|
95
|
-
];
|
|
96
|
-
/** Accepted by every verb, `start_session` included — the handshake reads it for any
|
|
97
|
-
* action-class tool whether or not that verb ever mints. */
|
|
98
|
-
const SHARED = ["confirmToken"];
|
|
99
|
-
function resolveVerb(args) {
|
|
100
|
-
return selectVerb(args, "verb", SPECS, SHARED);
|
|
101
|
-
}
|
|
102
|
-
async function run(args, ctx) {
|
|
103
|
-
const verb = resolveVerb(args);
|
|
104
|
-
// `ToolDefinition` erases its answer's type parameter — it has to, the
|
|
105
|
-
// registry is one array of many shapes — so the delegated call comes back as
|
|
106
|
-
// an erased answer type. The verb table is what makes the union true: every
|
|
107
|
-
// entry's own `run` is declared against one of BrowserData's members, and a verb
|
|
108
|
-
// added without its shape stops compiling at the union. The assertion
|
|
109
|
-
// re-applies what the table already guarantees rather than asserting
|
|
110
|
-
// something unchecked.
|
|
111
|
-
return (await VERB_TOOLS[verb].run(args, ctx));
|
|
112
|
-
}
|
|
113
|
-
/** Delegates to the resolved verb's own `describeAction` — never writes a new consent sentence.
|
|
114
|
-
* Only `start_session`'s returns a string; every other verb's is `() => undefined` today, and
|
|
115
|
-
* reading that through the same dispatch table means this tool cannot describe the wrong verb
|
|
116
|
-
* without the underlying tool describing it wrong too, which is exactly the bar §7's "one
|
|
117
|
-
* describeAction, tested against all eight verbs" sets. */
|
|
118
|
-
async function describeAction(args, ctx) {
|
|
119
|
-
const verb = resolveVerb(args);
|
|
120
|
-
return VERB_TOOLS[verb].describeAction?.(args, ctx);
|
|
121
|
-
}
|
|
122
|
-
/** Only `start_session`'s arguments can carry a credential (`storageState`, `extraHttpHeaders`).
|
|
123
|
-
* Dispatched on the raw `verb` value rather than through `selectVerb`/`resolveVerb`: this runs
|
|
124
|
-
* over whatever was actually recorded, including a call that never validated — a malformed or
|
|
125
|
-
* unconfirmed call is exactly the one a redactor must not throw on. */
|
|
126
|
-
function redactArgs(args) {
|
|
127
|
-
const verb = args["verb"];
|
|
128
|
-
const tool = typeof verb === "string" ? VERB_TOOLS[verb] : undefined;
|
|
129
|
-
return tool?.redactArgs?.(args) ?? args;
|
|
130
|
-
}
|
|
131
|
-
const REF_NOTE = "An element ref from a browser_snapshot reply. Refs are issued per snapshot and invalidated by " +
|
|
132
|
-
"navigation — a stale ref is refused rather than resolved against whatever now matches it, so " +
|
|
133
|
-
"take a fresh snapshot after the page changes.";
|
|
134
|
-
const TARGET_SCHEMA = {
|
|
135
|
-
type: "object",
|
|
136
|
-
description: "The element, named by role, name and selector together — copy all three from a " +
|
|
137
|
-
"browser_snapshot element. No ref field: a ref is scoped to the snapshot that issued it and a " +
|
|
138
|
-
"replay is always a later session. No fallback between the three at replay either — a " +
|
|
139
|
-
"selector match with a disagreeing role or name stops the replay rather than substituting.",
|
|
140
|
-
properties: {
|
|
141
|
-
role: { type: "string", description: "The element's ARIA role, as browser_snapshot reported it." },
|
|
142
|
-
name: { type: "string", description: "The element's accessible name, as browser_snapshot reported it." },
|
|
143
|
-
selector: {
|
|
144
|
-
type: ["string", "null"],
|
|
145
|
-
description: "The selector browser_snapshot reported, or null when the element has no id, test attribute " +
|
|
146
|
-
"or name. A null selector cannot be saved — add a data-testid and re-explore.",
|
|
147
|
-
},
|
|
148
|
-
},
|
|
149
|
-
required: ["role", "name", "selector"],
|
|
150
|
-
additionalProperties: false,
|
|
151
|
-
};
|
|
152
|
-
const SCHEMA = {
|
|
153
|
-
type: "object",
|
|
154
|
-
properties: {
|
|
155
|
-
verb: {
|
|
156
|
-
type: "string",
|
|
157
|
-
enum: ["start_session", "click", "type", "fill", "select", "submit", "save_scenario", "run_scenario"],
|
|
158
|
-
description: "REQUIRED. Which action to perform. Each verb accepts only its own arguments, listed in the " +
|
|
159
|
-
"property descriptions below by verb name — a property belonging to a different verb is " +
|
|
160
|
-
"refused, naming which verb it belongs to.",
|
|
161
|
-
},
|
|
162
|
-
// --- start_session only ---
|
|
163
|
-
targetUrl: {
|
|
164
|
-
type: "string",
|
|
165
|
-
description: "start_session (REQUIRED): the URL to open, including scheme and port, e.g. " +
|
|
166
|
-
'"http://localhost:3000/invoices". Also what consent is granted for — the session may be ' +
|
|
167
|
-
"driven anywhere on this URL's origin for its life, and leaving that origin refuses rather " +
|
|
168
|
-
"than asking again. save_scenario: where a replay should start; defaults to the session's " +
|
|
169
|
-
"current URL and must stay within its consented origin.",
|
|
170
|
-
},
|
|
171
|
-
headless: {
|
|
172
|
-
type: "boolean",
|
|
173
|
-
description: "start_session: run without a visible window. Defaults to true; pass false to watch it happen.",
|
|
174
|
-
},
|
|
175
|
-
stackParser: {
|
|
176
|
-
type: "object",
|
|
177
|
-
description: "start_session: the module that can parse this application's stack traces. Without one, " +
|
|
178
|
-
"requests are still observed and named, but no frontend→backend caller edge is written. Name " +
|
|
179
|
-
'it "@descryy/runtime-adapter-<language>" (one such package per frontend language — never ' +
|
|
180
|
-
'guess) exporting a single "create<Name>StackTraceParser" factory. @descryy/runtime-browser ' +
|
|
181
|
-
"is never the right answer here despite the name — it exports no stack-trace parser at all. " +
|
|
182
|
-
'"export" is needed only when a module exports more than one factory.',
|
|
183
|
-
properties: {
|
|
184
|
-
module: { type: "string", description: "Module specifier to import — a runtime adapter package for the frontend's language." },
|
|
185
|
-
export: { type: "string", description: "Named export to call. Defaults to the module's single create*StackTraceParser factory." },
|
|
186
|
-
},
|
|
187
|
-
required: ["module"],
|
|
188
|
-
additionalProperties: false,
|
|
189
|
-
},
|
|
190
|
-
documentRoot: {
|
|
191
|
-
type: "string",
|
|
192
|
-
description: "start_session: the directory the target URL's origin serves files from, if not the " +
|
|
193
|
-
'repository root — e.g. "public/". Getting this wrong degrades the call-site stack to ' +
|
|
194
|
-
"nothing while looking like a clean run with no edges. Defaults to the repository root.",
|
|
195
|
-
},
|
|
196
|
-
environment: {
|
|
197
|
-
type: "object",
|
|
198
|
-
description: 'start_session: the environment profile this session runs against. "readOnly" refuses click, ' +
|
|
199
|
-
"type, fill, select and submit for the whole session while still permitting navigate and " +
|
|
200
|
-
"snapshot. The same profile shape observe_runtime takes (DEC-270) — a browser run and a " +
|
|
201
|
-
"runtime run must not disagree about one environment. Omit it and the session's own consent " +
|
|
202
|
-
"is the only authorization.",
|
|
203
|
-
properties: {
|
|
204
|
-
name: { type: "string", description: "The profile's name, free-form. Named back in any refusal it causes." },
|
|
205
|
-
safetyLevel: {
|
|
206
|
-
type: "string",
|
|
207
|
-
enum: ["readOnly", "write", "destructiveWithApproval"],
|
|
208
|
-
description: '"readOnly" refuses every mutating verb whatever the profile is called.',
|
|
209
|
-
},
|
|
210
|
-
},
|
|
211
|
-
required: ["name", "safetyLevel"],
|
|
212
|
-
additionalProperties: true,
|
|
213
|
-
},
|
|
214
|
-
storageState: {
|
|
215
|
-
type: "object",
|
|
216
|
-
description: "start_session: an already-authenticated session to seed before the first navigation. " +
|
|
217
|
-
"Without it, click/type/fill can drive a login form but cannot reach a screen requiring an " +
|
|
218
|
-
"existing session. Scoped to targetUrl's own origin by construction.",
|
|
219
|
-
properties: {
|
|
220
|
-
cookies: {
|
|
221
|
-
type: "array",
|
|
222
|
-
description: "Cookies to set before navigating, scoped to targetUrl's own origin.",
|
|
223
|
-
items: {
|
|
224
|
-
type: "object",
|
|
225
|
-
properties: {
|
|
226
|
-
name: { type: "string" },
|
|
227
|
-
value: { type: "string" },
|
|
228
|
-
path: { type: "string", description: 'Defaults to "/".' },
|
|
229
|
-
httpOnly: { type: "boolean" },
|
|
230
|
-
secure: { type: "boolean" },
|
|
231
|
-
sameSite: { type: "string", enum: ["Strict", "Lax", "None"] },
|
|
232
|
-
},
|
|
233
|
-
required: ["name", "value"],
|
|
234
|
-
additionalProperties: false,
|
|
235
|
-
},
|
|
236
|
-
},
|
|
237
|
-
localStorage: {
|
|
238
|
-
type: "object",
|
|
239
|
-
description: "localStorage entries to set for targetUrl's own origin before navigating, as string values.",
|
|
240
|
-
additionalProperties: { type: "string" },
|
|
241
|
-
},
|
|
242
|
-
},
|
|
243
|
-
additionalProperties: false,
|
|
244
|
-
},
|
|
245
|
-
storageStatePath: {
|
|
246
|
-
type: "string",
|
|
247
|
-
description: "start_session: a FILE holding a saved browser storage state, instead of naming cookies " +
|
|
248
|
-
"inline. Absolute, or relative to the repository root. Anything in the file outside this " +
|
|
249
|
-
"session's consented origin is refused by name.",
|
|
250
|
-
},
|
|
251
|
-
storageStateCredential: {
|
|
252
|
-
type: "string",
|
|
253
|
-
description: "start_session: the NAME of a stored credential holding a saved storage state (the JSON " +
|
|
254
|
-
"storageStatePath reads), instead of a file on disk — set with `descry credential set <name>`, " +
|
|
255
|
-
"reading the JSON from stdin. Refused by name when no credential store is configured, nothing is " +
|
|
256
|
-
"stored under the name, or the value is not a storage state this origin can use — never a silent " +
|
|
257
|
-
"logged-out session. Give at most one of storageState, storageStatePath and storageStateCredential.",
|
|
258
|
-
},
|
|
259
|
-
extraHttpHeaders: {
|
|
260
|
-
type: "object",
|
|
261
|
-
description: "start_session: headers added to every request to the consented origin only — typically an " +
|
|
262
|
-
"Authorization bearer token. Deliberately never sent to any other host a page loads.",
|
|
263
|
-
additionalProperties: { type: "string" },
|
|
264
|
-
},
|
|
265
|
-
saveStorageStateTo: {
|
|
266
|
-
type: "string",
|
|
267
|
-
description: "start_session: write this session's cookies and stored data here when it closes, so a login " +
|
|
268
|
-
"done once can seed later sessions via storageStatePath. Must be an absolute path OUTSIDE the " +
|
|
269
|
-
"repository — this is a live credential.",
|
|
270
|
-
},
|
|
271
|
-
// --- click / type / fill / select / submit / save_scenario / run_scenario ---
|
|
272
|
-
sessionId: {
|
|
273
|
-
type: "string",
|
|
274
|
-
description: "REQUIRED for every verb except start_session. The id returned by a start_session call.",
|
|
275
|
-
},
|
|
276
|
-
ref: {
|
|
277
|
-
type: "string",
|
|
278
|
-
description: `REQUIRED for click, type, fill, select and submit. ${REF_NOTE}`,
|
|
279
|
-
},
|
|
280
|
-
text: {
|
|
281
|
-
type: "string",
|
|
282
|
-
description: "REQUIRED for type and fill. type: entered as real keystrokes and APPENDS to the field's " +
|
|
283
|
-
"current contents — every keydown/keypress/keyup a person typing would produce, needed for " +
|
|
284
|
-
"autocomplete, per-character validation or a debounced search. fill: sets the value directly, " +
|
|
285
|
-
"REPLACING the contents, and fires no key events at all, so anything reacting to typing will " +
|
|
286
|
-
"not run. Use type when the field reacts to typing; fill otherwise.",
|
|
287
|
-
},
|
|
288
|
-
value: {
|
|
289
|
-
type: "string",
|
|
290
|
-
description: "REQUIRED for select. The option to choose on a chooser — either the stored value or the " +
|
|
291
|
-
"displayed label, matched exactly; no near match is substituted. An unmatched value is " +
|
|
292
|
-
"refused with the full list of options actually offered.",
|
|
293
|
-
},
|
|
294
|
-
// --- save_scenario / run_scenario ---
|
|
295
|
-
name: {
|
|
296
|
-
type: "string",
|
|
297
|
-
description: "REQUIRED for save_scenario and run_scenario. save_scenario: what to call it — becomes " +
|
|
298
|
-
"descry/scenarios/<name>.scenario.json, a committed, reviewable file. run_scenario: which " +
|
|
299
|
-
"saved scenario to replay, by that same name.",
|
|
300
|
-
},
|
|
301
|
-
// --- save_scenario only ---
|
|
302
|
-
description: { type: "string", description: "save_scenario: free text for whoever reads the file later. Optional." },
|
|
303
|
-
steps: {
|
|
304
|
-
type: "array",
|
|
305
|
-
description: "save_scenario (REQUIRED, at least one): the sequence to replay, in order. Every step is " +
|
|
306
|
-
"re-resolved against a fresh page at replay time, except one this session's own history shows " +
|
|
307
|
-
"it actually performed, which is accepted on that record alone.",
|
|
308
|
-
items: {
|
|
309
|
-
type: "object",
|
|
310
|
-
properties: {
|
|
311
|
-
action: {
|
|
312
|
-
type: "string",
|
|
313
|
-
enum: ["navigate", "click", "type", "fill"],
|
|
314
|
-
description: "navigate acts on the page; click, type and fill act on an element and need a target.",
|
|
315
|
-
},
|
|
316
|
-
target: TARGET_SCHEMA,
|
|
317
|
-
url: { type: "string", description: "Where to go. navigate steps only." },
|
|
318
|
-
text: {
|
|
319
|
-
type: "string",
|
|
320
|
-
description: "What to enter. type and fill steps only — type fires real keystrokes and appends, fill " +
|
|
321
|
-
"sets the value directly and fires none.",
|
|
322
|
-
},
|
|
323
|
-
},
|
|
324
|
-
required: ["action"],
|
|
325
|
-
additionalProperties: false,
|
|
326
|
-
},
|
|
327
|
-
},
|
|
328
|
-
assertions: {
|
|
329
|
-
type: "array",
|
|
330
|
-
description: "save_scenario (REQUIRED, may be empty). What this scenario claims about the application. " +
|
|
331
|
-
"Absent is refused — empty means an honest exploration, which replays as unverified, never as " +
|
|
332
|
-
"passed.",
|
|
333
|
-
items: {
|
|
334
|
-
type: "object",
|
|
335
|
-
properties: {
|
|
336
|
-
kind: {
|
|
337
|
-
type: "string",
|
|
338
|
-
enum: ["elementVisible", "textEquals", "urlEquals", "noConsoleErrors", "noFailedRequests"],
|
|
339
|
-
description: "elementVisible/textEquals need a target; textEquals/urlEquals compare against expected. " +
|
|
340
|
-
"noConsoleErrors/noFailedRequests read gathered evidence — an observed error the author " +
|
|
341
|
-
"never asserted against never blocks; one asserted against and seen does.",
|
|
342
|
-
},
|
|
343
|
-
afterStep: {
|
|
344
|
-
type: "integer",
|
|
345
|
-
description: "Which step this runs after, by index. Omit for end-of-scenario. An index past the last step is refused.",
|
|
346
|
-
},
|
|
347
|
-
target: TARGET_SCHEMA,
|
|
348
|
-
expected: { type: "string", description: "The value to compare against, for the kinds that compare one." },
|
|
349
|
-
},
|
|
350
|
-
required: ["kind"],
|
|
351
|
-
additionalProperties: false,
|
|
352
|
-
},
|
|
353
|
-
},
|
|
354
|
-
confirmToken: {
|
|
355
|
-
type: "string",
|
|
356
|
-
description: "The token from a previous call to this verb. The arguments used are the ones frozen when the token was minted, never those on the confirming call. Only start_session normally needs a second, " +
|
|
357
|
-
"confirming call — the other seven verbs run directly because consent was already granted at " +
|
|
358
|
-
"start_session and confirmToken is declared only because the handshake reads it for every " +
|
|
359
|
-
"action-class tool. On a confirming call, the arguments frozen at mint time run, never " +
|
|
360
|
-
"whatever this call supplies instead; a changed value is discarded and the reply discloses it.",
|
|
361
|
-
},
|
|
362
|
-
},
|
|
363
|
-
required: ["verb"],
|
|
364
|
-
additionalProperties: false,
|
|
365
|
-
};
|
|
366
|
-
export const browserTool = {
|
|
367
|
-
name: "browser",
|
|
368
|
-
title: "Drive a real browser",
|
|
369
|
-
description: "Open a real browser session and drive it — one verb per call, chosen with the required `verb` " +
|
|
370
|
-
"argument: start_session opens it and grants consent for the rest of the session (the only verb " +
|
|
371
|
-
"that needs confirming); click, type, fill, select and submit act on an element named by a ref " +
|
|
372
|
-
"from a browser_snapshot reply, never a raw selector, and a ref superseded by a later snapshot is " +
|
|
373
|
-
"refused rather than resolved elsewhere; save_scenario turns an explored session into a committed, " +
|
|
374
|
-
"replayable file and run_scenario replays one in a single batched call. Every verb returns " +
|
|
375
|
-
"whatever the page produced — console errors, failed requests — raw and untriaged. Each verb " +
|
|
376
|
-
"accepts only its own arguments; sending another verb's argument is refused, naming which verb it " +
|
|
377
|
-
"belongs to.",
|
|
378
|
-
class: "action",
|
|
379
|
-
tier: "evidence",
|
|
380
|
-
version: "1.0.0",
|
|
381
|
-
inputSchema: SCHEMA,
|
|
382
|
-
run,
|
|
383
|
-
describeAction,
|
|
384
|
-
redactArgs,
|
|
385
|
-
};
|
|
386
|
-
//# sourceMappingURL=browser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/tools/browser.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/chain.d.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `chain` — RG-9's five-hop user chain (click → request → endpoint → route →
|
|
3
|
-
* handler → line) as one MCP call. `impact`/`propagation` each answer one
|
|
4
|
-
* hop's worth of question; nothing before this walked all five in one call
|
|
5
|
-
* with a computed completeness verdict, so "chain complete" was a mockup
|
|
6
|
-
* string rather than a field.
|
|
7
|
-
*
|
|
8
|
-
* Two disclosed degradations carried through from `traceUserChain`
|
|
9
|
-
* (`@descryy/core`): the browser→endpoint hop only exists when the browser
|
|
10
|
-
* session that produced it was started with a `stackParser`
|
|
11
|
-
* (`browser_start_session`); and the route→handler hop ships for
|
|
12
|
-
* express/koa-router/fastify/hono/the Next.js App Router today, TypeScript
|
|
13
|
-
* only. Neither is a language check here — this tool walks whatever edges
|
|
14
|
-
* the graph holds and reports what it finds.
|
|
15
|
-
*/
|
|
16
|
-
import { type ChainStageName } from "@descryy/core";
|
|
17
|
-
import { type BriefNode, type NodeCandidates, type ToolDefinition } from "./kit.ts";
|
|
18
|
-
/** One named point in the chain, as reported to a caller. */
|
|
19
|
-
export interface ChainStageReport {
|
|
20
|
-
readonly name: ChainStageName;
|
|
21
|
-
readonly present: boolean;
|
|
22
|
-
/** Omitted, not null, wherever the stage carries no node of its own
|
|
23
|
-
* ("request" — no node type for an HTTP request; "line" — a location on
|
|
24
|
-
* the handler, not a separate node) or is missing. */
|
|
25
|
-
readonly node?: BriefNode;
|
|
26
|
-
/** Set iff `!present`. */
|
|
27
|
-
readonly reason?: string;
|
|
28
|
-
}
|
|
29
|
-
export interface ChainReport {
|
|
30
|
-
readonly origin: BriefNode;
|
|
31
|
-
readonly stages: readonly ChainStageReport[];
|
|
32
|
-
readonly verdict: "complete" | "partial";
|
|
33
|
-
readonly missingStage: ChainStageName | null;
|
|
34
|
-
readonly location: {
|
|
35
|
-
readonly file: string;
|
|
36
|
-
readonly startLine: number;
|
|
37
|
-
} | null;
|
|
38
|
-
}
|
|
39
|
-
export type ChainData = ChainReport | NodeCandidates;
|
|
40
|
-
export declare const chainTool: ToolDefinition;
|
|
41
|
-
//# sourceMappingURL=chain.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/tools/chain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAmC,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAErF,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,cAAc,EAEnB,KAAK,cAAc,EACpB,MAAM,UAAU,CAAC;AAIlB,6DAA6D;AAC7D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;2DAEuD;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,cAAc,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACjF;AAED,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC;AAmFrD,eAAO,MAAM,SAAS,EAAE,cAevB,CAAC"}
|
package/dist/tools/chain.js
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `chain` — RG-9's five-hop user chain (click → request → endpoint → route →
|
|
3
|
-
* handler → line) as one MCP call. `impact`/`propagation` each answer one
|
|
4
|
-
* hop's worth of question; nothing before this walked all five in one call
|
|
5
|
-
* with a computed completeness verdict, so "chain complete" was a mockup
|
|
6
|
-
* string rather than a field.
|
|
7
|
-
*
|
|
8
|
-
* Two disclosed degradations carried through from `traceUserChain`
|
|
9
|
-
* (`@descryy/core`): the browser→endpoint hop only exists when the browser
|
|
10
|
-
* session that produced it was started with a `stackParser`
|
|
11
|
-
* (`browser_start_session`); and the route→handler hop ships for
|
|
12
|
-
* express/koa-router/fastify/hono/the Next.js App Router today, TypeScript
|
|
13
|
-
* only. Neither is a language check here — this tool walks whatever edges
|
|
14
|
-
* the graph holds and reports what it finds.
|
|
15
|
-
*/
|
|
16
|
-
import { traceUserChain } from "@descryy/core";
|
|
17
|
-
import { briefNode, optionalString, ToolInputError, } from "./kit.js";
|
|
18
|
-
import { resolveOneNode } from "./lookup.js";
|
|
19
|
-
function reportStage(stage) {
|
|
20
|
-
return {
|
|
21
|
-
name: stage.name,
|
|
22
|
-
present: stage.present,
|
|
23
|
-
...(stage.node === null ? {} : { node: briefNode(stage.node) }),
|
|
24
|
-
...(stage.reason === null ? {} : { reason: stage.reason }),
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
const SCHEMA = {
|
|
28
|
-
type: "object",
|
|
29
|
-
properties: {
|
|
30
|
-
nodeId: { type: "string", description: "Graph node id to start the chain from — the click's origin." },
|
|
31
|
-
symbol: {
|
|
32
|
-
type: "string",
|
|
33
|
-
description: "Symbol name to start from (a COMPONENT, PAGE or FUNCTION), when you do not have a node id. " +
|
|
34
|
-
"Ambiguity is reported rather than guessed at — narrow it with \"file\".",
|
|
35
|
-
},
|
|
36
|
-
file: {
|
|
37
|
-
type: "string",
|
|
38
|
-
description: "Repository-relative path, to disambiguate \"symbol\" or to start from a file.",
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
additionalProperties: false,
|
|
42
|
-
};
|
|
43
|
-
async function run(args, ctx) {
|
|
44
|
-
const nodeId = optionalString(args, "nodeId");
|
|
45
|
-
const symbol = optionalString(args, "symbol");
|
|
46
|
-
const file = optionalString(args, "file");
|
|
47
|
-
if (nodeId === undefined && symbol === undefined && file === undefined) {
|
|
48
|
-
throw new ToolInputError('give one of "nodeId", "symbol" or "file"');
|
|
49
|
-
}
|
|
50
|
-
const provider = ctx.session.provider();
|
|
51
|
-
const found = resolveOneNode(ctx.session, { nodeId, symbol, file });
|
|
52
|
-
if (found.node === null) {
|
|
53
|
-
const base = provider.baseStamp();
|
|
54
|
-
return {
|
|
55
|
-
result: {
|
|
56
|
-
data: { candidates: found.candidates.map(briefNode) },
|
|
57
|
-
stamp: { ...base, resolutionFloor: 0 },
|
|
58
|
-
truncated: false,
|
|
59
|
-
notes: found.notes,
|
|
60
|
-
},
|
|
61
|
-
nameLevel: true,
|
|
62
|
-
state: "refused",
|
|
63
|
-
headline: found.headline,
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
ctx.progress(`Walking the chain from ${found.node.name}`);
|
|
67
|
-
const chain = traceUserChain(provider, found.node.id);
|
|
68
|
-
const notes = [...found.notes, ...chain.notes];
|
|
69
|
-
return {
|
|
70
|
-
result: {
|
|
71
|
-
data: {
|
|
72
|
-
origin: briefNode(chain.data.origin),
|
|
73
|
-
stages: chain.data.stages.map(reportStage),
|
|
74
|
-
verdict: chain.data.verdict,
|
|
75
|
-
missingStage: chain.data.missingStage,
|
|
76
|
-
location: chain.data.location,
|
|
77
|
-
},
|
|
78
|
-
stamp: chain.stamp,
|
|
79
|
-
truncated: chain.truncated,
|
|
80
|
-
notes,
|
|
81
|
-
},
|
|
82
|
-
nameLevel: true,
|
|
83
|
-
...(chain.data.verdict === "partial" ? { state: "refused" } : {}),
|
|
84
|
-
headline: chain.data.verdict === "complete"
|
|
85
|
-
? `Chain complete: ${found.node.name} reaches ${chain.data.location?.file ?? "its handler"}` +
|
|
86
|
-
`${chain.data.location === null ? "" : `:${chain.data.location.startLine}`}.`
|
|
87
|
-
: `Chain incomplete at "${chain.data.missingStage}" — see stages for what is missing and why.`,
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
export const chainTool = {
|
|
91
|
-
name: "chain",
|
|
92
|
-
class: "read",
|
|
93
|
-
tier: "evidence",
|
|
94
|
-
version: "1.0.0",
|
|
95
|
-
title: "The click-to-line chain: click, request, endpoint, route, handler, line",
|
|
96
|
-
description: "Given a COMPONENT, PAGE or FUNCTION, walks click → request → endpoint → route → handler → " +
|
|
97
|
-
"line as one traversal and reports a computed completeness verdict: \"complete\", or " +
|
|
98
|
-
"\"partial\" naming which hop is missing and why. Never assumes complete. Two disclosed " +
|
|
99
|
-
"degradations: the browser→endpoint hop needs a stackParser on browser_start_session to exist " +
|
|
100
|
-
"at all, and route→handler is produced only by a narrow set of adapters and frameworks today " +
|
|
101
|
-
"— outside that reach this tool still runs, it will just name \"handler\" as missing.",
|
|
102
|
-
inputSchema: SCHEMA,
|
|
103
|
-
run,
|
|
104
|
-
};
|
|
105
|
-
//# sourceMappingURL=chain.js.map
|
package/dist/tools/chain.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/tools/chain.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `change_scope` — merges `scope` and `pre_push` behind one `verb`
|
|
3
|
-
* (documents/plans/mcp-surface-consolidation.md §2, group 2). Both are
|
|
4
|
-
* `read`/`evidence`, so the merge crosses neither boundary.
|
|
5
|
-
*
|
|
6
|
-
* Dispatch only. Each verb's own `run()` body is untouched and stays in its
|
|
7
|
-
* own module (`scope.ts` / `pre-push.ts`) — `pre-push.ts` itself already
|
|
8
|
-
* composes `scope`, `pr_analysis`, `contracts` and `validate` internally, and
|
|
9
|
-
* that composition is unaffected by this merge: it still calls `scopeTool.run`
|
|
10
|
-
* directly, not through this dispatcher.
|
|
11
|
-
*/
|
|
12
|
-
import type { ToolDefinition } from "./kit.ts";
|
|
13
|
-
import type { ScopeData } from "./scope.ts";
|
|
14
|
-
import type { PrePushData } from "./pre-push.ts";
|
|
15
|
-
/**
|
|
16
|
-
* What this tool answers with: one verb's shape, never a merged one.
|
|
17
|
-
*
|
|
18
|
-
* The merge cost this its single concrete output type, and `unknown` would have
|
|
19
|
-
* silently retired `output-shapes.test.ts`'s check that a declared shape is tied
|
|
20
|
-
* to the code producing it. A union keeps that tie: a verb added without its
|
|
21
|
-
* shape here stops compiling.
|
|
22
|
-
*/
|
|
23
|
-
export type ChangeScopeData = ScopeData | PrePushData;
|
|
24
|
-
export declare const changeScopeTool: ToolDefinition;
|
|
25
|
-
//# sourceMappingURL=change-scope.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"change-scope.d.ts","sourceRoot":"","sources":["../../src/tools/change-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,UAAU,CAAC;AAK5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,WAAW,CAAC;AA6FhB,eAAO,MAAM,eAAe,EAAE,cAe7B,CAAC"}
|