@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,416 +0,0 @@
|
|
|
1
|
-
/** A `BrowserDriver` with no browser behind it — not a stub. Implements every port rule (ref
|
|
2
|
-
* issuance/invalidation, drain-not-peek, crash invalidation, flushing close), and
|
|
3
|
-
* `browser-driver-contract.test.ts` runs the same assertions against it as the real driver.
|
|
4
|
-
* Non-goals: no simulated DOM (pages are declared via `setPage`), no classification. */
|
|
5
|
-
import { randomUUID } from "node:crypto";
|
|
6
|
-
import { BrowserSessionCrashedError, NO_HIDDEN_REACH, NoSuchOptionError, NotSelectableError, NotSubmittableError, UnknownElementRefError, } from "./driver.js";
|
|
7
|
-
import { clampWaitTimeout, describeWaitTarget, isEmptyWaitTarget, matchesWaitTarget, WAIT_POLL_INTERVAL_MS, } from "./wait-target.js";
|
|
8
|
-
/** Everything a fingerprint counts, at zero. A declared fingerprint is merged over this. */
|
|
9
|
-
const NO_RISKS = {
|
|
10
|
-
url: "",
|
|
11
|
-
interactiveElements: 0,
|
|
12
|
-
openShadowRoots: 0,
|
|
13
|
-
shadowInteractiveElements: 0,
|
|
14
|
-
childFrames: 0,
|
|
15
|
-
crossOriginChildFrames: 0,
|
|
16
|
-
scrollableRegions: 0,
|
|
17
|
-
canvasViewportShare: 0,
|
|
18
|
-
largestCanvasArea: 0,
|
|
19
|
-
fixedOverlays: 0,
|
|
20
|
-
inertSubtrees: 0,
|
|
21
|
-
openModalDialogs: 0,
|
|
22
|
-
passwordFields: 0,
|
|
23
|
-
oneTimeCodeFields: 0,
|
|
24
|
-
challengeMarkers: [],
|
|
25
|
-
clientSideRouting: null,
|
|
26
|
-
documentHeightRatio: 1,
|
|
27
|
-
};
|
|
28
|
-
const EMPTY_PAGE = (url) => ({ url, title: "", elements: [] });
|
|
29
|
-
/** Main document first, then every frame the page presented, then every frame it could not read. */
|
|
30
|
-
function fakeFrames(elements, page) {
|
|
31
|
-
const reach = [
|
|
32
|
-
{ frame: null, enumerated: true, elements: elements.filter((e) => e.frame === null).length, reason: null },
|
|
33
|
-
];
|
|
34
|
-
const seen = new Set();
|
|
35
|
-
for (const element of elements) {
|
|
36
|
-
if (element.frame === null || seen.has(element.frame.id))
|
|
37
|
-
continue;
|
|
38
|
-
seen.add(element.frame.id);
|
|
39
|
-
reach.push({
|
|
40
|
-
frame: element.frame,
|
|
41
|
-
enumerated: true,
|
|
42
|
-
elements: elements.filter((e) => e.frame?.id === element.frame?.id).length,
|
|
43
|
-
reason: null,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
for (const unreachable of page.unreachableFrames ?? []) {
|
|
47
|
-
reach.push({ frame: unreachable.frame, enumerated: false, elements: 0, reason: unreachable.reason });
|
|
48
|
-
}
|
|
49
|
-
return reach;
|
|
50
|
-
}
|
|
51
|
-
function fakeShadow(elements, page) {
|
|
52
|
-
const pierced = elements.filter((e) => e.inShadowRoot);
|
|
53
|
-
return {
|
|
54
|
-
piercedElements: pierced.length,
|
|
55
|
-
ambiguousInDocument: pierced.filter((e) => e.selector === null && e.frame === null).length,
|
|
56
|
-
suspectedClosedHosts: page.suspectedClosedHosts ?? 0,
|
|
57
|
-
// The fake is told the number rather than probing for it, so it always "probed".
|
|
58
|
-
probed: true,
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
function fakeReveal(page) {
|
|
62
|
-
const frames = new Set();
|
|
63
|
-
for (const element of page.elements)
|
|
64
|
-
if (element.frame !== undefined)
|
|
65
|
-
frames.add(element.frame.name ?? element.frame.id);
|
|
66
|
-
return {
|
|
67
|
-
passes: 1,
|
|
68
|
-
revealedElements: page.elements.filter((e) => e.revealedByScroll === true).length,
|
|
69
|
-
recycledElements: page.elements.filter((e) => e.recycledByScroll === true).length,
|
|
70
|
-
stoppedAtCap: false,
|
|
71
|
-
// The fake has no DOM, so it has no containers to scroll and says so rather than guessing.
|
|
72
|
-
containersScrolled: 0,
|
|
73
|
-
// The fake has no viewport; a scroll position it invented would be a fact nothing produced.
|
|
74
|
-
finalScrollY: 0,
|
|
75
|
-
framesNotScrolled: [...frames],
|
|
76
|
-
reason: null,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
export function createFakeBrowserDriver() {
|
|
80
|
-
const pages = new Map();
|
|
81
|
-
const states = new Map();
|
|
82
|
-
const storageStateReceived = new Map();
|
|
83
|
-
const headersReceived = new Map();
|
|
84
|
-
const savePathReceived = new Map();
|
|
85
|
-
/** Every `injectStorageState()` call a session actually received, in order — what a
|
|
86
|
-
* sign-in-step test asserts reached the driver rather than being dropped en route. */
|
|
87
|
-
const injectStorageStateCalls = new Map();
|
|
88
|
-
let chromiumMissing = null;
|
|
89
|
-
// Monotonic across the driver, so a ref from one session can never resolve
|
|
90
|
-
// in another — the same property real refs have by being page-scoped.
|
|
91
|
-
let snapshotGeneration = 0;
|
|
92
|
-
function stateOf(sessionId) {
|
|
93
|
-
const state = states.get(sessionId);
|
|
94
|
-
if (state === undefined)
|
|
95
|
-
throw new Error(`no such fake session: ${sessionId}`);
|
|
96
|
-
return state;
|
|
97
|
-
}
|
|
98
|
-
function drain(state) {
|
|
99
|
-
const observation = {
|
|
100
|
-
actions: state.buffer.actions,
|
|
101
|
-
consoleErrors: state.buffer.consoleErrors,
|
|
102
|
-
requests: state.buffer.requests,
|
|
103
|
-
// The fake page has no network, so nothing can be left in flight.
|
|
104
|
-
unsettled: [],
|
|
105
|
-
// The fake builds its own records directly; nothing crosses the untyped
|
|
106
|
-
// collector boundary that `evidenceWarnings` reports on.
|
|
107
|
-
evidenceWarnings: [],
|
|
108
|
-
};
|
|
109
|
-
state.buffer.actions = [];
|
|
110
|
-
state.buffer.consoleErrors = [];
|
|
111
|
-
state.buffer.requests = [];
|
|
112
|
-
return observation;
|
|
113
|
-
}
|
|
114
|
-
function openSession(targetUrl) {
|
|
115
|
-
const sessionId = randomUUID();
|
|
116
|
-
let url = targetUrl;
|
|
117
|
-
// Refs live here, keyed by the generation that issued them. Navigation
|
|
118
|
-
// replaces the map wholesale, which is what makes a stale ref refuse
|
|
119
|
-
// rather than resolve against a page nobody inspected.
|
|
120
|
-
let refs = new Map();
|
|
121
|
-
// Never cleared, unlike `buffer` — this is the session's whole-lifetime provenance record,
|
|
122
|
-
// not per-drain evidence. Goes out of reach the moment this closure does (session closed/reaped).
|
|
123
|
-
const performed = [];
|
|
124
|
-
const buffer = { actions: [], consoleErrors: [], requests: [] };
|
|
125
|
-
function assertUsable() {
|
|
126
|
-
const state = states.get(sessionId);
|
|
127
|
-
if (state !== undefined && (state.crashed || state.closed))
|
|
128
|
-
throw new BrowserSessionCrashedError(sessionId);
|
|
129
|
-
}
|
|
130
|
-
function resolve(ref) {
|
|
131
|
-
const element = refs.get(ref);
|
|
132
|
-
if (element === undefined)
|
|
133
|
-
throw new UnknownElementRefError(ref);
|
|
134
|
-
return element;
|
|
135
|
-
}
|
|
136
|
-
function record(action, ref, mode = null) {
|
|
137
|
-
buffer.actions.push({ action, ref, mode, url, at: new Date().toISOString() });
|
|
138
|
-
}
|
|
139
|
-
function recordPerformed(action, target, performedUrl, text) {
|
|
140
|
-
performed.push({ action, target, url: performedUrl, text, at: new Date().toISOString() });
|
|
141
|
-
}
|
|
142
|
-
const session = {
|
|
143
|
-
sessionId,
|
|
144
|
-
startedAt: new Date().toISOString(),
|
|
145
|
-
isUsable() {
|
|
146
|
-
const state = states.get(sessionId);
|
|
147
|
-
return state !== undefined && !state.crashed && !state.closed;
|
|
148
|
-
},
|
|
149
|
-
currentUrl: () => url,
|
|
150
|
-
async navigate(to) {
|
|
151
|
-
assertUsable();
|
|
152
|
-
url = to;
|
|
153
|
-
refs = new Map();
|
|
154
|
-
record("navigate", null);
|
|
155
|
-
recordPerformed("navigate", null, to, null);
|
|
156
|
-
},
|
|
157
|
-
async snapshot(options) {
|
|
158
|
-
assertUsable();
|
|
159
|
-
const page = pages.get(url) ?? EMPTY_PAGE(url);
|
|
160
|
-
const revealing = options?.reveal === true;
|
|
161
|
-
// What the page presents *now*: without a reveal pass the lazily-rendered rows are not
|
|
162
|
-
// there yet; with one they are, and the virtualized rows it scrolled past are gone.
|
|
163
|
-
const present = page.elements.filter((e) => revealing ? e.recycledByScroll !== true : e.revealedByScroll !== true);
|
|
164
|
-
snapshotGeneration += 1;
|
|
165
|
-
refs = new Map(present.map((element, index) => {
|
|
166
|
-
const ref = `ref-${snapshotGeneration}-${index}`;
|
|
167
|
-
const frame = element.frame ?? null;
|
|
168
|
-
return [
|
|
169
|
-
ref,
|
|
170
|
-
{
|
|
171
|
-
ref,
|
|
172
|
-
role: element.role,
|
|
173
|
-
name: element.name,
|
|
174
|
-
// The port's rule, enforced here so the contract test can assert it of both drivers.
|
|
175
|
-
selector: frame === null ? element.selector : null,
|
|
176
|
-
frame,
|
|
177
|
-
inShadowRoot: element.inShadowRoot === true,
|
|
178
|
-
// Grounding resolves a *document* selector; a framed element has none (same
|
|
179
|
-
// reasoning as `selector` above), and an unconfigured session never attempted it.
|
|
180
|
-
identity: frame === null ? (element.identity ?? null) : null,
|
|
181
|
-
...(element.options === undefined ? {} : { options: element.options }),
|
|
182
|
-
...(element.submits === undefined ? {} : { submits: element.submits }),
|
|
183
|
-
},
|
|
184
|
-
];
|
|
185
|
-
}));
|
|
186
|
-
// Reach is computed off the full refs, which carry the fake's private declarations;
|
|
187
|
-
// what is returned is the port's own shape. `options`/`submits` are the fake's
|
|
188
|
-
// bookkeeping and must not leak into what a caller sees a snapshot return.
|
|
189
|
-
const held = [...refs.values()];
|
|
190
|
-
const elements = held.map((e) => ({
|
|
191
|
-
ref: e.ref,
|
|
192
|
-
role: e.role,
|
|
193
|
-
name: e.name,
|
|
194
|
-
selector: e.selector,
|
|
195
|
-
identity: e.identity,
|
|
196
|
-
frame: e.frame,
|
|
197
|
-
inShadowRoot: e.inShadowRoot,
|
|
198
|
-
}));
|
|
199
|
-
return {
|
|
200
|
-
url,
|
|
201
|
-
title: page.title,
|
|
202
|
-
elements,
|
|
203
|
-
totalElements: elements.length,
|
|
204
|
-
frames: fakeFrames(held, page),
|
|
205
|
-
shadow: fakeShadow(held, page),
|
|
206
|
-
// The fake page is a list of elements, not a rendering of one: every element it holds
|
|
207
|
-
// is one a test put there, so nothing is withheld and nothing went unanswered.
|
|
208
|
-
hidden: NO_HIDDEN_REACH,
|
|
209
|
-
reveal: revealing ? fakeReveal(page) : null,
|
|
210
|
-
};
|
|
211
|
-
},
|
|
212
|
-
async click(ref) {
|
|
213
|
-
assertUsable();
|
|
214
|
-
const element = resolve(ref);
|
|
215
|
-
record("click", ref);
|
|
216
|
-
recordPerformed("click", { role: element.role, name: element.name, selector: element.selector }, null, null);
|
|
217
|
-
},
|
|
218
|
-
async type(ref, text) {
|
|
219
|
-
assertUsable();
|
|
220
|
-
const element = resolve(ref);
|
|
221
|
-
record("type", ref, "append");
|
|
222
|
-
recordPerformed("type", { role: element.role, name: element.name, selector: element.selector }, null, text);
|
|
223
|
-
},
|
|
224
|
-
async fill(ref, text) {
|
|
225
|
-
assertUsable();
|
|
226
|
-
const element = resolve(ref);
|
|
227
|
-
record("fill", ref, "replace");
|
|
228
|
-
recordPerformed("fill", { role: element.role, name: element.name, selector: element.selector }, null, text);
|
|
229
|
-
},
|
|
230
|
-
async select(ref, value) {
|
|
231
|
-
assertUsable();
|
|
232
|
-
const element = resolve(ref);
|
|
233
|
-
if (element.options === undefined)
|
|
234
|
-
throw new NotSelectableError(ref, element.role);
|
|
235
|
-
// Exact, and nothing else. A near match would choose an option the caller did not name.
|
|
236
|
-
if (!element.options.includes(value))
|
|
237
|
-
throw new NoSuchOptionError(ref, value, element.options);
|
|
238
|
-
record("select", ref, "replace");
|
|
239
|
-
recordPerformed("select", { role: element.role, name: element.name, selector: element.selector }, null, value);
|
|
240
|
-
},
|
|
241
|
-
async submit(ref) {
|
|
242
|
-
assertUsable();
|
|
243
|
-
const element = resolve(ref);
|
|
244
|
-
// The fake has no DOM, so it cannot tell "no form" from "form with no control" —
|
|
245
|
-
// it declares one reason and the contract asserts only the error type. The real
|
|
246
|
-
// driver distinguishes them because it can.
|
|
247
|
-
if (element.submits !== true)
|
|
248
|
-
throw new NotSubmittableError(ref, "noForm");
|
|
249
|
-
record("submit", ref, null);
|
|
250
|
-
recordPerformed("submit", { role: element.role, name: element.name, selector: element.selector }, null, null);
|
|
251
|
-
},
|
|
252
|
-
async waitFor(target, waitOptions = {}) {
|
|
253
|
-
assertUsable();
|
|
254
|
-
if (isEmptyWaitTarget(target)) {
|
|
255
|
-
throw new Error("browser_wait_for needs a target: give a role, a name, or both. Waiting for nothing in particular " +
|
|
256
|
-
`would return the first element on the page, which is not what any caller means. Got: ${describeWaitTarget(target)}.`);
|
|
257
|
-
}
|
|
258
|
-
const timeoutMs = clampWaitTimeout(waitOptions.timeoutMs);
|
|
259
|
-
const startedAt = Date.now();
|
|
260
|
-
for (;;) {
|
|
261
|
-
assertUsable();
|
|
262
|
-
// Re-snapshots each poll, so refs are re-issued — the same invalidation a real
|
|
263
|
-
// page change forces, rather than a cheaper lie.
|
|
264
|
-
const snapshot = await session.snapshot();
|
|
265
|
-
const matches = snapshot.elements.filter((e) => matchesWaitTarget(e, target));
|
|
266
|
-
const waitedMs = Date.now() - startedAt;
|
|
267
|
-
if (matches.length > 0) {
|
|
268
|
-
return { appeared: true, waitedMs, timeoutMs, matched: matches[0], matchCount: matches.length, snapshot };
|
|
269
|
-
}
|
|
270
|
-
if (waitedMs >= timeoutMs) {
|
|
271
|
-
return { appeared: false, waitedMs, timeoutMs, matched: null, matchCount: 0, snapshot };
|
|
272
|
-
}
|
|
273
|
-
await new Promise((done) => setTimeout(done, WAIT_POLL_INTERVAL_MS));
|
|
274
|
-
}
|
|
275
|
-
},
|
|
276
|
-
async injectStorageState(origin, state) {
|
|
277
|
-
assertUsable();
|
|
278
|
-
const cookies = state.cookies ?? [];
|
|
279
|
-
const storedEntries = Object.entries(state.localStorage ?? {});
|
|
280
|
-
let localStorageInjected = 0;
|
|
281
|
-
let localStorageSkipped = null;
|
|
282
|
-
if (storedEntries.length > 0) {
|
|
283
|
-
// Same honest degradation the real driver's runtime primitive
|
|
284
|
-
// applies: localStorage can only be written for the origin the
|
|
285
|
-
// page is actually on, and the fake's "page" is just `url`.
|
|
286
|
-
let currentOrigin = null;
|
|
287
|
-
try {
|
|
288
|
-
currentOrigin = new URL(url).origin;
|
|
289
|
-
}
|
|
290
|
-
catch {
|
|
291
|
-
currentOrigin = null;
|
|
292
|
-
}
|
|
293
|
-
if (currentOrigin === origin) {
|
|
294
|
-
localStorageInjected = storedEntries.length;
|
|
295
|
-
}
|
|
296
|
-
else {
|
|
297
|
-
localStorageSkipped =
|
|
298
|
-
`the page is currently on ${currentOrigin ?? "an origin that could not be read from its URL"}, not ` +
|
|
299
|
-
`${origin} -- localStorage can only be written for the origin a page is actually showing, so ` +
|
|
300
|
-
`${storedEntries.length} ${storedEntries.length === 1 ? "entry was" : "entries were"} not injected. ` +
|
|
301
|
-
"Navigate to that origin first, then call injectStorageState again.";
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
const result = { cookiesInjected: cookies.length, localStorageInjected, localStorageSkipped };
|
|
305
|
-
const existing = injectStorageStateCalls.get(sessionId) ?? [];
|
|
306
|
-
injectStorageStateCalls.set(sessionId, [...existing, { origin, state, result }]);
|
|
307
|
-
return result;
|
|
308
|
-
},
|
|
309
|
-
async drainEvidence() {
|
|
310
|
-
// Deliberately usable on a crashed session: the whole point of the
|
|
311
|
-
// flush-on-every-path rule is that a crash must not take the evidence
|
|
312
|
-
// that preceded it.
|
|
313
|
-
return drain(stateOf(sessionId));
|
|
314
|
-
},
|
|
315
|
-
performedSteps() {
|
|
316
|
-
return [...performed];
|
|
317
|
-
},
|
|
318
|
-
async close() {
|
|
319
|
-
const state = stateOf(sessionId);
|
|
320
|
-
state.closed = true;
|
|
321
|
-
return drain(state);
|
|
322
|
-
},
|
|
323
|
-
};
|
|
324
|
-
// Spread in rather than declared inline: the port's `fingerprint` is optional
|
|
325
|
-
// *as a member*, and a page that declared none must leave a session on which
|
|
326
|
-
// `fingerprint === undefined`, not one whose method returns nothing.
|
|
327
|
-
// Whether the method *exists* is decided once, from the page this session
|
|
328
|
-
// opened on: a driver either probes or it does not, and that must not flicker
|
|
329
|
-
// mid-session. What it *answers* is read at call time from wherever the
|
|
330
|
-
// session currently is.
|
|
331
|
-
const probes = pages.get(targetUrl)?.fingerprint !== undefined;
|
|
332
|
-
const withProbe = probes
|
|
333
|
-
? {
|
|
334
|
-
...session,
|
|
335
|
-
fingerprint: async () => ({ ...NO_RISKS, ...(pages.get(url)?.fingerprint ?? {}), url }),
|
|
336
|
-
}
|
|
337
|
-
: session;
|
|
338
|
-
states.set(sessionId, { session: withProbe, buffer, crashed: false, closed: false });
|
|
339
|
-
return withProbe;
|
|
340
|
-
}
|
|
341
|
-
return {
|
|
342
|
-
async launch(options) {
|
|
343
|
-
if (chromiumMissing !== null) {
|
|
344
|
-
return {
|
|
345
|
-
launched: false,
|
|
346
|
-
refusal: "chromiumNotInstalled",
|
|
347
|
-
message: "No Chromium executable at /fake/path/chrome. This package depends on playwright-core, which does " +
|
|
348
|
-
"not download a browser on install, so one has to be installed once before a browser session can launch.",
|
|
349
|
-
remedy: chromiumMissing.remedy,
|
|
350
|
-
expectedExecutablePath: "/fake/path/chrome",
|
|
351
|
-
};
|
|
352
|
-
}
|
|
353
|
-
const session = openSession(options.targetUrl);
|
|
354
|
-
storageStateReceived.set(session.sessionId, options.storageState);
|
|
355
|
-
headersReceived.set(session.sessionId, options.extraHttpHeaders);
|
|
356
|
-
savePathReceived.set(session.sessionId, options.saveStorageStateTo);
|
|
357
|
-
return { launched: true, session };
|
|
358
|
-
},
|
|
359
|
-
setPage(url, page) {
|
|
360
|
-
pages.set(url, page);
|
|
361
|
-
},
|
|
362
|
-
setChromiumMissing(remedy = "npx playwright install chromium") {
|
|
363
|
-
// A remedy string is required rather than defaulted to empty: the
|
|
364
|
-
// contract test asserts one is present, and a fake that could refuse
|
|
365
|
-
// without one would let the real driver ship without one too.
|
|
366
|
-
chromiumMissing = { remedy };
|
|
367
|
-
},
|
|
368
|
-
emitConsoleError(sessionId, error) {
|
|
369
|
-
stateOf(sessionId).buffer.consoleErrors.push({ scriptUrlMapping: [], ...error, at: new Date().toISOString() });
|
|
370
|
-
},
|
|
371
|
-
emitRequest(sessionId, request) {
|
|
372
|
-
// outcome destructured out, re-added only when present: exactOptionalPropertyTypes rejects
|
|
373
|
-
// a spread that could set it to `undefined` explicitly.
|
|
374
|
-
const { outcome, ...rest } = request;
|
|
375
|
-
stateOf(sessionId).buffer.requests.push({
|
|
376
|
-
stackTrace: null,
|
|
377
|
-
scriptUrlMapping: [],
|
|
378
|
-
...rest,
|
|
379
|
-
...(outcome === undefined ? {} : { outcome }),
|
|
380
|
-
at: new Date().toISOString(),
|
|
381
|
-
});
|
|
382
|
-
},
|
|
383
|
-
emitFailedRequest(sessionId, request) {
|
|
384
|
-
stateOf(sessionId).buffer.requests.push({ scriptUrlMapping: [], ...request, stackTrace: null, at: new Date().toISOString() });
|
|
385
|
-
},
|
|
386
|
-
emitPendingRequest(sessionId, request) {
|
|
387
|
-
stateOf(sessionId).buffer.requests.push({
|
|
388
|
-
scriptUrlMapping: [],
|
|
389
|
-
stackTrace: null,
|
|
390
|
-
...request,
|
|
391
|
-
status: null,
|
|
392
|
-
outcome: "pending",
|
|
393
|
-
at: new Date().toISOString(),
|
|
394
|
-
});
|
|
395
|
-
},
|
|
396
|
-
crash(sessionId) {
|
|
397
|
-
stateOf(sessionId).crashed = true;
|
|
398
|
-
},
|
|
399
|
-
openSessionIds() {
|
|
400
|
-
return [...states.entries()].filter(([, state]) => !state.closed).map(([id]) => id);
|
|
401
|
-
},
|
|
402
|
-
storageStateReceivedFor(sessionId) {
|
|
403
|
-
return storageStateReceived.get(sessionId);
|
|
404
|
-
},
|
|
405
|
-
extraHttpHeadersReceivedFor(sessionId) {
|
|
406
|
-
return headersReceived.get(sessionId);
|
|
407
|
-
},
|
|
408
|
-
saveStorageStateToFor(sessionId) {
|
|
409
|
-
return savePathReceived.get(sessionId);
|
|
410
|
-
},
|
|
411
|
-
injectStorageStateCallsFor(sessionId) {
|
|
412
|
-
return injectStorageStateCalls.get(sessionId);
|
|
413
|
-
},
|
|
414
|
-
};
|
|
415
|
-
}
|
|
416
|
-
//# sourceMappingURL=fake-driver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fake-driver.js","sourceRoot":"","sources":["../../src/browser/fake-driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* When a browser action fails: whose fault was it?
|
|
3
|
-
*
|
|
4
|
-
* ## This concept did not already exist
|
|
5
|
-
*
|
|
6
|
-
* `browser-reliability.md` §4.5 says "the product already carries this
|
|
7
|
-
* concept". Checked before building: it does not. `descry-runtime` has four
|
|
8
|
-
* incidental uses of the word "attributable" — a log envelope naming its
|
|
9
|
-
* unwrapper, evidence carrying a process id, a correlator comment about not
|
|
10
|
-
* blaming a producer, a test runner locating a fact — and no fault-domain type,
|
|
11
|
-
* no owner vocabulary and nothing that decides between them. The nearest real
|
|
12
|
-
* neighbours are `@descryy/ir`'s five **result states** and five **report
|
|
13
|
-
* categories**, and both answer a different question: they say how much Descry
|
|
14
|
-
* can claim, never who broke it. So this is new, and it is deliberately shaped
|
|
15
|
-
* like its neighbours — a small closed vocabulary, one function that decides,
|
|
16
|
-
* and an explicit value for "do not know".
|
|
17
|
-
*
|
|
18
|
-
* ## The one rule everything else serves
|
|
19
|
-
*
|
|
20
|
-
* **A timeout with nothing corroborating it is never the application's fault.**
|
|
21
|
-
* A wait that expired is a fact about Descry: the page did not reach a state
|
|
22
|
-
* Descry was waiting for, within a budget Descry chose. It is equally
|
|
23
|
-
* consistent with a broken button, a slow one, an overlay, and an animation.
|
|
24
|
-
* Reporting it as the user's bug is the single fastest way to make a testing
|
|
25
|
-
* tool untrusted, and the cost of being wrong is asymmetric — an
|
|
26
|
-
* `undetermined` that was really a bug costs one missed finding, and an
|
|
27
|
-
* `application` that was really our timeout costs the tool's credibility.
|
|
28
|
-
* That is rule 2 (precision over recall) applied to blame rather than to edges.
|
|
29
|
-
*
|
|
30
|
-
* So `application` is only ever named with a **first-party corroborating
|
|
31
|
-
* signal** in the same window: the page threw, or a request to the
|
|
32
|
-
* application's own origin failed. Never on the timeout alone.
|
|
33
|
-
*
|
|
34
|
-
* ## Where the corroborating signal comes from (C3)
|
|
35
|
-
*
|
|
36
|
-
* It does not exist yet when the failure happens. The recording decorator sees
|
|
37
|
-
* the throw and must not drain evidence to enrich it — evidence is drained, not
|
|
38
|
-
* peeked, and reading it there would steal what the calling tool is about to
|
|
39
|
-
* report. So `attributeActionFailure` runs on the error and the clock alone and
|
|
40
|
-
* most real failures start `undetermined`, which is the honest answer to what
|
|
41
|
-
* it was given. `evidenceInWindow` and `refineAttribution` below are the second
|
|
42
|
-
* half: the next drain of that session hands over what the page actually
|
|
43
|
-
* produced, the counts are narrowed to the failed action's own window, and the
|
|
44
|
-
* attribution is re-decided once. Wired at the two places a drain happens —
|
|
45
|
-
* `observeAndCorrelate` for every evidence-bearing tool call, and the
|
|
46
|
-
* registry's `reap` for the tail no tool call ever returns.
|
|
47
|
-
*/
|
|
48
|
-
import { type BrowserObservation } from "./driver.ts";
|
|
49
|
-
/**
|
|
50
|
-
* The four fault domains, plus the fifth value that keeps the other four
|
|
51
|
-
* honest. `undetermined` is not a failure to classify — it is the correct
|
|
52
|
-
* answer whenever the evidence does not reach one of the four, and a
|
|
53
|
-
* vocabulary without it would force every case into a guess.
|
|
54
|
-
*/
|
|
55
|
-
export declare const FAULT_OWNERS: readonly ["application", "automation", "environment", "dependency", "undetermined"];
|
|
56
|
-
export type FaultOwner = (typeof FAULT_OWNERS)[number];
|
|
57
|
-
export interface FaultAttribution {
|
|
58
|
-
readonly owner: FaultOwner;
|
|
59
|
-
/** What happened, in the report's voice. Never an accusation. */
|
|
60
|
-
readonly reason: string;
|
|
61
|
-
/** What was observed that led here. Deliberately distinct from `reason`: a
|
|
62
|
-
* reader who disagrees with the attribution must be able to see the input
|
|
63
|
-
* that produced it without re-running anything. */
|
|
64
|
-
readonly evidence: string;
|
|
65
|
-
}
|
|
66
|
-
/** Everything known about one failed action at the moment it failed. */
|
|
67
|
-
export interface ActionFailure {
|
|
68
|
-
readonly verb: string;
|
|
69
|
-
readonly error: unknown;
|
|
70
|
-
/** How long the action ran before throwing. */
|
|
71
|
-
readonly elapsedMs: number;
|
|
72
|
-
/** Console errors the page produced in the same window. */
|
|
73
|
-
readonly pageErrors: number;
|
|
74
|
-
/** Requests that failed in the same window. */
|
|
75
|
-
readonly failedRequests: number;
|
|
76
|
-
/** How many of those were to an origin other than the application's own. */
|
|
77
|
-
readonly thirdPartyFailedRequests: number;
|
|
78
|
-
}
|
|
79
|
-
export declare function attributeActionFailure(failure: ActionFailure): FaultAttribution;
|
|
80
|
-
/** The bounds of one failed action, in epoch milliseconds: when the verb was
|
|
81
|
-
* called and when it threw. Evidence outside them is about something else. */
|
|
82
|
-
export interface ActionWindow {
|
|
83
|
-
readonly from: number;
|
|
84
|
-
readonly to: number;
|
|
85
|
-
}
|
|
86
|
-
/** What `evidenceInWindow` found — the three counts `ActionFailure` could not
|
|
87
|
-
* carry at the moment of failure. */
|
|
88
|
-
export interface LaterEvidence {
|
|
89
|
-
readonly pageErrors: number;
|
|
90
|
-
readonly failedRequests: number;
|
|
91
|
-
readonly thirdPartyFailedRequests: number;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Counts, out of one drained observation, only what happened **inside a failed
|
|
95
|
-
* action's own window**.
|
|
96
|
-
*
|
|
97
|
-
* ## Why the window, and not the drain
|
|
98
|
-
*
|
|
99
|
-
* A drain is not a window. A drained observation covers everything since the
|
|
100
|
-
* last drain, which — because a failed verb throws and the tool never gets to
|
|
101
|
-
* drain — routinely includes a later, unrelated action. Counting the whole
|
|
102
|
-
* drain would let a console error caused by the *next* click decide who broke
|
|
103
|
-
* the previous one, and it would say so in the report's voice. The action's own
|
|
104
|
-
* start and end are recorded by the decorator for exactly this, and everything
|
|
105
|
-
* outside them is discarded rather than discounted.
|
|
106
|
-
*
|
|
107
|
-
* ## What is excluded, and why each exclusion goes the same way
|
|
108
|
-
*
|
|
109
|
-
* A timestamp that will not parse, a request URL that will not parse, and an
|
|
110
|
-
* `unattributed` request all resolve *away* from `application`. That is not
|
|
111
|
-
* symmetry for its own sake: the asymmetric cost this module was built around
|
|
112
|
-
* says an `undetermined` that was really a bug costs one finding, and an
|
|
113
|
-
* `application` that was really Descry's own timeout costs the tool. So an
|
|
114
|
-
* unreadable URL is counted as third-party (it cannot name the application), an
|
|
115
|
-
* unreadable timestamp is counted as outside the window, and a request whose
|
|
116
|
-
* terminal event could not be assigned to it is not counted as a failure at
|
|
117
|
-
* all — otherwise C3's own refusal to guess a join would come straight back as
|
|
118
|
-
* a guess about blame.
|
|
119
|
-
*/
|
|
120
|
-
export declare function evidenceInWindow(observation: Pick<BrowserObservation, "consoleErrors" | "requests">, window: ActionWindow, applicationOrigin: string): LaterEvidence;
|
|
121
|
-
/**
|
|
122
|
-
* Re-decide an attribution once evidence that was not available at the moment
|
|
123
|
-
* of failure has arrived. Only ever called on `undetermined`: an attribution
|
|
124
|
-
* that already reached one of the four rested on a signal this later evidence
|
|
125
|
-
* cannot withdraw, and silently rewriting it would make the same failure read
|
|
126
|
-
* two ways in two replies.
|
|
127
|
-
*/
|
|
128
|
-
export declare function refineAttribution(attribution: FaultAttribution, failure: ActionFailure, later: LaterEvidence): FaultAttribution;
|
|
129
|
-
export declare function faultNote(attribution: FaultAttribution): string;
|
|
130
|
-
/**
|
|
131
|
-
* RG-12(b): the vocabulary reconciliation. The site names three layers to a
|
|
132
|
-
* user — "your product", "your environment", "a dependency" — and this
|
|
133
|
-
* module's own five values are `application`, `automation`, `environment`,
|
|
134
|
-
* `dependency`, `undetermined`. Two real gaps, not one:
|
|
135
|
-
*
|
|
136
|
-
* 1. `automation` (Descry's *own* fault — a bad ref, a stale handle, a
|
|
137
|
-
* harness bug) has nowhere to go in the site's three layers, and it is
|
|
138
|
-
* the one value that most protects a user's trust: folding it into
|
|
139
|
-
* "your environment" would let Descry's own mistake read as the user's
|
|
140
|
-
* infrastructure being at fault, which is backwards.
|
|
141
|
-
* 2. `undetermined` has nowhere to go either, and collapsing it into any of
|
|
142
|
-
* the three would state a layer the evidence did not actually reach.
|
|
143
|
-
*
|
|
144
|
-
* **Recommendation (implemented here, not on the site — that copy is a
|
|
145
|
-
* different lane's to change): the site gains a fourth and fifth category
|
|
146
|
-
* rather than losing this module's granularity.** "Descry itself" for
|
|
147
|
-
* `automation` (visible, not hidden — this is the layer that most needs to
|
|
148
|
-
* be named when the tool is the one that got it wrong) and "not
|
|
149
|
-
* determined" for `undetermined` (an honest refusal is not a hidden
|
|
150
|
-
* failure). No code value is deleted to fit the narrower copy; this
|
|
151
|
-
* function is the one place that maps the closed five-value set onto
|
|
152
|
-
* display text, so a copy change only ever touches this map.
|
|
153
|
-
*/
|
|
154
|
-
export declare const FAULT_OWNER_DISPLAY_LABELS: Readonly<Record<FaultOwner, string>>;
|
|
155
|
-
/**
|
|
156
|
-
* RG-12(c): the type-level half of "every failure carries a layer, by
|
|
157
|
-
* construction, not by convention." A `switch` with no `default` fails to
|
|
158
|
-
* compile the moment `FAULT_OWNERS` gains or loses a value without this
|
|
159
|
-
* function being updated to match — the same guarantee `ActionRecord`'s
|
|
160
|
-
* discriminated union (`reachability.ts`) gives the *presence* of an
|
|
161
|
-
* attribution; this is what gives the *display* side the same guarantee.
|
|
162
|
-
*/
|
|
163
|
-
export declare function faultOwnerDisplayLabel(owner: FaultOwner): string;
|
|
164
|
-
/**
|
|
165
|
-
* RG-12(c): the run-level half. Not a convention check — `ActionRecord`'s
|
|
166
|
-
* discriminated union already makes `{ succeeded: false, attribution: null }`
|
|
167
|
-
* uncoinstructable inside this module. This is the belt for a caller
|
|
168
|
-
* reaching in from outside the type system (a cast, a deserialised record,
|
|
169
|
-
* a future refactor that widens the type back out) — the same "trust but
|
|
170
|
-
* verify" `report()`'s own filter used to need before the union made it
|
|
171
|
-
* unnecessary there. Throws by name rather than silently dropping the
|
|
172
|
-
* finding, which is the failure mode this whole item exists to close.
|
|
173
|
-
*/
|
|
174
|
-
export declare function assertEveryFailureAttributed(actions: readonly {
|
|
175
|
-
readonly succeeded: boolean;
|
|
176
|
-
readonly attribution?: FaultAttribution | null;
|
|
177
|
-
}[]): void;
|
|
178
|
-
//# sourceMappingURL=fault-attribution.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fault-attribution.d.ts","sourceRoot":"","sources":["../../src/browser/fault-attribution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,OAAO,EAAuE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE3H;;;;;GAKG;AACH,eAAO,MAAM,YAAY,qFAAsF,CAAC;AAEhH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;wDAEoD;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wEAAwE;AACxE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,4EAA4E;IAC5E,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;CAC3C;AAWD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG,gBAAgB,CA4D/E;AAED;+EAC+E;AAC/E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED;sCACsC;AACtC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,IAAI,CAAC,kBAAkB,EAAE,eAAe,GAAG,UAAU,CAAC,EACnE,MAAM,EAAE,YAAY,EACpB,iBAAiB,EAAE,MAAM,GACxB,aAAa,CAsBf;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,aAAa,GACnB,gBAAgB,CAUlB;AAED,wBAAgB,SAAS,CAAC,WAAW,EAAE,gBAAgB,GAAG,MAAM,CAE/D;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAM3E,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAoBhE;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,SAAS;IAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;CAAE,EAAE,GAAG,IAAI,CAStJ"}
|