@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/protocol.js
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* JSON-RPC 2.0 + the MCP slice this server speaks — hand-written, not the SDK:
|
|
3
|
-
* v1.30.0 pulls 17 deps, nearly all for HTTP/OAuth transports this stdio-only
|
|
4
|
-
* server never opens (same call as `node:sqlite`, `node --test`, `tsc` elsewhere).
|
|
5
|
-
* Spec-drift risk is mitigated by a pinned `PROTOCOL_VERSION` and exact-frame tests. */
|
|
6
|
-
/** Standard JSON-RPC codes. MCP adds none of its own at this layer. */
|
|
7
|
-
export const RPC_PARSE_ERROR = -32700;
|
|
8
|
-
export const RPC_INVALID_REQUEST = -32600;
|
|
9
|
-
export const RPC_METHOD_NOT_FOUND = -32601;
|
|
10
|
-
export const RPC_INVALID_PARAMS = -32602;
|
|
11
|
-
export const RPC_INTERNAL_ERROR = -32603;
|
|
12
|
-
/** The version this server implements. Negotiation echoes the client's version if
|
|
13
|
-
* it's on `SUPPORTED_PROTOCOL_VERSIONS`, else answers with this — never claims
|
|
14
|
-
* compatibility with an unchecked client version. */
|
|
15
|
-
export const PROTOCOL_VERSION = "2025-06-18";
|
|
16
|
-
export const SUPPORTED_PROTOCOL_VERSIONS = [
|
|
17
|
-
"2025-06-18",
|
|
18
|
-
"2025-03-26",
|
|
19
|
-
"2024-11-05",
|
|
20
|
-
];
|
|
21
|
-
export function negotiateVersion(requested) {
|
|
22
|
-
return typeof requested === "string" && SUPPORTED_PROTOCOL_VERSIONS.includes(requested)
|
|
23
|
-
? requested
|
|
24
|
-
: PROTOCOL_VERSION;
|
|
25
|
-
}
|
|
26
|
-
/** A frame that couldn't be understood well enough to answer. Distinct from a
|
|
27
|
-
* merely-wrong request — JSON-RPC says a message with no usable id gets no
|
|
28
|
-
* response; replying with a fabricated id would be uncorrelatable. */
|
|
29
|
-
export class ProtocolError extends Error {
|
|
30
|
-
code;
|
|
31
|
-
/** Null when the frame carried no usable id and must therefore go unanswered. */
|
|
32
|
-
id;
|
|
33
|
-
constructor(code, message, id) {
|
|
34
|
-
super(message);
|
|
35
|
-
this.name = "ProtocolError";
|
|
36
|
-
this.code = code;
|
|
37
|
-
this.id = id;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
function isRecord(value) {
|
|
41
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
42
|
-
}
|
|
43
|
-
/** Parse one line into a request or notification, or throw `ProtocolError`. */
|
|
44
|
-
export function parseMessage(line) {
|
|
45
|
-
let raw;
|
|
46
|
-
try {
|
|
47
|
-
raw = JSON.parse(line);
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
throw new ProtocolError(RPC_PARSE_ERROR, "not valid JSON", null);
|
|
51
|
-
}
|
|
52
|
-
if (!isRecord(raw)) {
|
|
53
|
-
throw new ProtocolError(RPC_INVALID_REQUEST, "message must be a JSON object", null);
|
|
54
|
-
}
|
|
55
|
-
// Batch requests were removed from MCP in 2025-06-18; never supported here anyway —
|
|
56
|
-
// an array reaches the same branch as any other non-object.
|
|
57
|
-
const id = raw["id"];
|
|
58
|
-
const usableId = typeof id === "string" || typeof id === "number" ? id : null;
|
|
59
|
-
if (raw["jsonrpc"] !== "2.0") {
|
|
60
|
-
throw new ProtocolError(RPC_INVALID_REQUEST, "jsonrpc must be \"2.0\"", usableId);
|
|
61
|
-
}
|
|
62
|
-
if (typeof raw["method"] !== "string") {
|
|
63
|
-
throw new ProtocolError(RPC_INVALID_REQUEST, "method must be a string", usableId);
|
|
64
|
-
}
|
|
65
|
-
const params = raw["params"];
|
|
66
|
-
if (params !== undefined && !isRecord(params)) {
|
|
67
|
-
// Positional params are legal JSON-RPC, illegal MCP. Rejected, not coerced —
|
|
68
|
-
// an array silently read as an object would be a wrong answer, not an error.
|
|
69
|
-
throw new ProtocolError(RPC_INVALID_PARAMS, "params must be an object", usableId);
|
|
70
|
-
}
|
|
71
|
-
const method = raw["method"];
|
|
72
|
-
const base = params === undefined ? {} : { params };
|
|
73
|
-
return usableId === null
|
|
74
|
-
? { jsonrpc: "2.0", method, ...base }
|
|
75
|
-
: { jsonrpc: "2.0", id: usableId, method, ...base };
|
|
76
|
-
}
|
|
77
|
-
export function isRequest(message) {
|
|
78
|
-
return "id" in message;
|
|
79
|
-
}
|
|
80
|
-
export function ok(id, result) {
|
|
81
|
-
return { jsonrpc: "2.0", id, result };
|
|
82
|
-
}
|
|
83
|
-
export function fail(id, code, message, data) {
|
|
84
|
-
return {
|
|
85
|
-
jsonrpc: "2.0",
|
|
86
|
-
id,
|
|
87
|
-
error: { code, message, ...(data === undefined ? {} : { data }) },
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
//# sourceMappingURL=protocol.js.map
|
package/dist/protocol.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.d.ts
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
/** How the server reaches adapters without depending on them: `descry-core` must never
|
|
2
|
-
* import `descry-adapters` (rule 1, IR boundary) — sources are named as module specifiers
|
|
3
|
-
* in config and loaded at runtime via a `create*Adapter` convention (an ambiguous match
|
|
4
|
-
* errors, never guesses). A failed load is disclosed as `SourceLoadFailure`, never silently
|
|
5
|
-
* skipped (§20.2). Specifiers resolve from the repo root first (npx isolates adapters there), then this package's own closure. */
|
|
6
|
-
import type { IRSource, LanguageAdapter, RepoRoot, StructuredSkipEntry } from "@descryy/ir";
|
|
7
|
-
/** One entry in the configured source list. A bare string is `{ module }`. */
|
|
8
|
-
export interface SourceSpec {
|
|
9
|
-
readonly module: string;
|
|
10
|
-
/** Named export to call. Defaults to the `create*Adapter` convention. */
|
|
11
|
-
readonly export?: string;
|
|
12
|
-
/** Passed to the factory. Adapter-specific and opaque here. */
|
|
13
|
-
readonly options?: Record<string, unknown>;
|
|
14
|
-
}
|
|
15
|
-
export interface LoadedSource {
|
|
16
|
-
readonly spec: SourceSpec;
|
|
17
|
-
readonly source: IRSource;
|
|
18
|
-
/** Present when the source implements `LanguageAdapter`, so `detect` can run. */
|
|
19
|
-
readonly adapter: LanguageAdapter | null;
|
|
20
|
-
/**
|
|
21
|
-
* The absolute path this specifier actually resolved to. `null` only when
|
|
22
|
-
* the server's own module closure resolved it (`via: "server"`) and
|
|
23
|
-
* `import.meta.resolve` itself could not report where from.
|
|
24
|
-
*
|
|
25
|
-
* UAT phase 4 F3/§13.2.2: a bare specifier can resolve to more than one
|
|
26
|
-
* installed build with the same name (a stray `node_modules` above the
|
|
27
|
-
* repository shadows the intended one via CJS resolution's upward walk),
|
|
28
|
-
* and nothing previously said which build actually ran. This is that
|
|
29
|
-
* disclosure.
|
|
30
|
-
*/
|
|
31
|
-
readonly resolvedPath: string | null;
|
|
32
|
-
/**
|
|
33
|
-
* The version declared by the resolved module's own nearest
|
|
34
|
-
* `package.json`, walking up from `resolvedPath` — the *installed
|
|
35
|
-
* artifact's* version. Deliberately not the module's self-declared
|
|
36
|
-
* version constant (`source.version`, if it sets one): those two can
|
|
37
|
-
* disagree (an adapter's hardcoded `ADAPTER_VERSION` left stale while its
|
|
38
|
-
* `package.json` moved on), and conflating them would hide exactly the
|
|
39
|
-
* drift this field exists to catch. `null` when `resolvedPath` is `null`,
|
|
40
|
-
* or when no `package.json` encloses it.
|
|
41
|
-
*/
|
|
42
|
-
readonly packageVersion: string | null;
|
|
43
|
-
/** Which resolution path found it: the scanned repository's own
|
|
44
|
-
* `node_modules` (`"repo"`), or this server's own module closure
|
|
45
|
-
* (`"server"`). Both are legitimate — the point is naming which. */
|
|
46
|
-
readonly via: "repo" | "server";
|
|
47
|
-
/**
|
|
48
|
-
* UAT phase 5 §1b: set when a candidate resolved from the repository's own
|
|
49
|
-
* `node_modules` existed but was rejected for landing outside the
|
|
50
|
-
* repository root (a stray install in an ancestor directory, e.g.
|
|
51
|
-
* `$HOME/node_modules`). Names the rejected path and why, so a repo whose
|
|
52
|
-
* adapter keeps coming back stale can see that another candidate existed
|
|
53
|
-
* and lost, not just which one won.
|
|
54
|
-
*/
|
|
55
|
-
readonly rejectedRepoCandidate: string | null;
|
|
56
|
-
}
|
|
57
|
-
export interface SourceLoadFailure {
|
|
58
|
-
readonly spec: SourceSpec;
|
|
59
|
-
readonly reason: string;
|
|
60
|
-
}
|
|
61
|
-
export interface RegistryResult {
|
|
62
|
-
readonly loaded: readonly LoadedSource[];
|
|
63
|
-
readonly failed: readonly SourceLoadFailure[];
|
|
64
|
-
}
|
|
65
|
-
export declare function normaliseSpec(entry: string | SourceSpec): SourceSpec;
|
|
66
|
-
/** @param repoPath Repo being analysed, when known — specifiers resolve from here first;
|
|
67
|
-
* without it only this package's closure is searched (correct for absolute-path/`file:` callers). */
|
|
68
|
-
export declare function loadSources(entries: readonly (string | SourceSpec)[], repoPath?: string): Promise<RegistryResult>;
|
|
69
|
-
/**
|
|
70
|
-
* Gap 1 (UAT phase 5, §0): a path-specifier refusal named only the environment-variable
|
|
71
|
-
* escape hatch — "set DESCRY_ALLOW_PATH_ADAPTER_MODULES=1" — steering an operator toward
|
|
72
|
-
* disabling a security control even when a safe fix exists right next to it. Measured case:
|
|
73
|
-
* `.descry/config.json` named a local monorepo build
|
|
74
|
-
* (`.../adapter-typescript/dist/index.js`) while the published package of the same name was
|
|
75
|
-
* already installed and resolvable, and the refusal never mentioned it.
|
|
76
|
-
*
|
|
77
|
-
* Before handing back the refusal, this checks whether a published package of the same
|
|
78
|
-
* name — read from the refused path's own nearest `package.json`, never guessed — is
|
|
79
|
-
* already resolvable, and leads with that when it is. The environment variable is
|
|
80
|
-
* mentioned last, as the operator-only escape hatch it is: "a security control people
|
|
81
|
-
* routinely disable to get their work done is not a security control."
|
|
82
|
-
*/
|
|
83
|
-
export declare function withSafeAlternative(reason: string, specifier: string, repoPath: string | undefined): Promise<string>;
|
|
84
|
-
/** One adapter's `detect()`-time evidence, kept alongside `applicable`/`skipped` rather than
|
|
85
|
-
* folded into either — `DetectionResult.evidence` is populated on a match as much as on a
|
|
86
|
-
* skip (a matched adapter can still report "skipped 3: a separate checkout with its own
|
|
87
|
-
* .git"), so it is collected independently of which bucket the source landed in. */
|
|
88
|
-
export interface DetectionEvidence {
|
|
89
|
-
readonly source: string;
|
|
90
|
-
readonly entries: readonly (string | StructuredSkipEntry)[];
|
|
91
|
-
}
|
|
92
|
-
/** Asks each loaded adapter whether it claims this repository. A non-`LanguageAdapter`
|
|
93
|
-
* source (the git reader) always runs. A throwing `detect` counts as "did not detect",
|
|
94
|
-
* with the reason recorded — it can't fail the whole run, and can't hide either. */
|
|
95
|
-
export declare function detectSources(sources: readonly LoadedSource[], root: RepoRoot): Promise<{
|
|
96
|
-
readonly applicable: readonly LoadedSource[];
|
|
97
|
-
readonly skipped: readonly {
|
|
98
|
-
source: LoadedSource;
|
|
99
|
-
reason: string;
|
|
100
|
-
}[];
|
|
101
|
-
readonly evidence: readonly DetectionEvidence[];
|
|
102
|
-
}>;
|
|
103
|
-
//# sourceMappingURL=registry.d.ts.map
|
package/dist/registry.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;mIAImI;AAOnI,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAI5F,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;;;;;;;;;OASG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC;;yEAEqE;IACrE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;IAChC;;;;;;;OAOG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAC/C;AAYD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,CAEpE;AAoBD;sGACsG;AACtG,wBAAsB,WAAW,CAC/B,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE,EACzC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,CAmBzB;AAuCD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAAC,MAAM,CAAC,CAejB;AAyLD;;;qFAGqF;AACrF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,mBAAmB,CAAC,EAAE,CAAC;CAC7D;AAED;;qFAEqF;AACrF,wBAAsB,aAAa,CACjC,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC;IACT,QAAQ,CAAC,UAAU,EAAE,SAAS,YAAY,EAAE,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtE,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACjD,CAAC,CA2BD"}
|
package/dist/registry.js
DELETED
|
@@ -1,327 +0,0 @@
|
|
|
1
|
-
/** How the server reaches adapters without depending on them: `descry-core` must never
|
|
2
|
-
* import `descry-adapters` (rule 1, IR boundary) — sources are named as module specifiers
|
|
3
|
-
* in config and loaded at runtime via a `create*Adapter` convention (an ambiguous match
|
|
4
|
-
* errors, never guesses). A failed load is disclosed as `SourceLoadFailure`, never silently
|
|
5
|
-
* skipped (§20.2). Specifiers resolve from the repo root first (npx isolates adapters there), then this package's own closure. */
|
|
6
|
-
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
7
|
-
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
8
|
-
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
9
|
-
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
return path;
|
|
13
|
-
};
|
|
14
|
-
import { createRequire } from "node:module";
|
|
15
|
-
import { readFileSync } from "node:fs";
|
|
16
|
-
import { dirname, join } from "node:path";
|
|
17
|
-
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
18
|
-
import { checkModuleTrust, checkRepoResolvedModuleTrust, resolvesInsideRepo } from "./module-trust.js";
|
|
19
|
-
/**
|
|
20
|
-
* This regex has a twin in `packages/cli/src/commands/init.ts`, which imports each
|
|
21
|
-
* candidate package and keeps only the ones exporting a factory — `adapter-common`
|
|
22
|
-
* carries the `adapter-` prefix, exports no factory, and every language adapter
|
|
23
|
-
* depends on it, so a prefix scan alone writes a source that can only fail here.
|
|
24
|
-
* Changing the convention means changing both; the edit starts here, so the
|
|
25
|
-
* pointer belongs here.
|
|
26
|
-
*/
|
|
27
|
-
const FACTORY_PATTERN = /^create[A-Za-z0-9]*Adapter$/;
|
|
28
|
-
export function normaliseSpec(entry) {
|
|
29
|
-
return typeof entry === "string" ? { module: entry } : entry;
|
|
30
|
-
}
|
|
31
|
-
/** A loaded module is a `LanguageAdapter` when it can be asked what it supports. Duck-typed
|
|
32
|
-
* on `detect`/`capabilities` — the two methods the server calls — since `instanceof` across
|
|
33
|
-
* separately-compiled adapter packages is unreliable. */
|
|
34
|
-
function asAdapter(source) {
|
|
35
|
-
const candidate = source;
|
|
36
|
-
return typeof candidate.detect === "function" && typeof candidate.capabilities === "function"
|
|
37
|
-
? source
|
|
38
|
-
: null;
|
|
39
|
-
}
|
|
40
|
-
function describe(error) {
|
|
41
|
-
if (error instanceof Error) {
|
|
42
|
-
const code = error.code;
|
|
43
|
-
return code === undefined ? error.message : `${code}: ${error.message}`;
|
|
44
|
-
}
|
|
45
|
-
return String(error);
|
|
46
|
-
}
|
|
47
|
-
/** @param repoPath Repo being analysed, when known — specifiers resolve from here first;
|
|
48
|
-
* without it only this package's closure is searched (correct for absolute-path/`file:` callers). */
|
|
49
|
-
export async function loadSources(entries, repoPath) {
|
|
50
|
-
const loaded = [];
|
|
51
|
-
const failed = [];
|
|
52
|
-
for (const entry of entries) {
|
|
53
|
-
const spec = normaliseSpec(entry);
|
|
54
|
-
try {
|
|
55
|
-
const instantiated = await instantiate(spec, repoPath);
|
|
56
|
-
loaded.push({
|
|
57
|
-
...instantiated,
|
|
58
|
-
spec,
|
|
59
|
-
packageVersion: packageVersionFor(instantiated.resolvedPath),
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
catch (error) {
|
|
63
|
-
failed.push({ spec, reason: describe(error) });
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return { loaded, failed };
|
|
67
|
-
}
|
|
68
|
-
/** The filesystem path a path-like specifier names, when it names one at all. `file:` becomes
|
|
69
|
-
* its path; a relative/absolute/drive/home-relative string is already one. Any other
|
|
70
|
-
* URL-scheme specifier (`http:`, `data:`, …) has no filesystem path to derive a package name
|
|
71
|
-
* from, so this returns `null` for it rather than guessing. */
|
|
72
|
-
function filesystemPathOf(specifier) {
|
|
73
|
-
if (specifier.startsWith("file:")) {
|
|
74
|
-
try {
|
|
75
|
-
return fileURLToPath(specifier);
|
|
76
|
-
}
|
|
77
|
-
catch {
|
|
78
|
-
return null;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
if (specifier.startsWith(".") || specifier.startsWith("/") || specifier.startsWith("~"))
|
|
82
|
-
return specifier;
|
|
83
|
-
if (/^[a-zA-Z]:[\\/]/.test(specifier))
|
|
84
|
-
return specifier;
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
87
|
-
/** The published package a refused path is presumably a build of — read from the nearest
|
|
88
|
-
* enclosing `package.json`'s own `name`, derived rather than guessed. `null` when none
|
|
89
|
-
* encloses it. Mirrors `packageVersionFor`'s walk, for a different field. */
|
|
90
|
-
function packageNameFor(startPath) {
|
|
91
|
-
let dir = dirname(startPath);
|
|
92
|
-
for (;;) {
|
|
93
|
-
try {
|
|
94
|
-
const pkg = JSON.parse(readFileSync(join(dir, "package.json"), "utf8"));
|
|
95
|
-
if (typeof pkg.name === "string" && pkg.name !== "")
|
|
96
|
-
return pkg.name;
|
|
97
|
-
return null;
|
|
98
|
-
}
|
|
99
|
-
catch {
|
|
100
|
-
// Not found at this level, or not parseable — keep walking up; a
|
|
101
|
-
// malformed package.json above the real one must not stop the search.
|
|
102
|
-
}
|
|
103
|
-
const parent = dirname(dir);
|
|
104
|
-
if (parent === dir)
|
|
105
|
-
return null; // reached the filesystem root
|
|
106
|
-
dir = parent;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Gap 1 (UAT phase 5, §0): a path-specifier refusal named only the environment-variable
|
|
111
|
-
* escape hatch — "set DESCRY_ALLOW_PATH_ADAPTER_MODULES=1" — steering an operator toward
|
|
112
|
-
* disabling a security control even when a safe fix exists right next to it. Measured case:
|
|
113
|
-
* `.descry/config.json` named a local monorepo build
|
|
114
|
-
* (`.../adapter-typescript/dist/index.js`) while the published package of the same name was
|
|
115
|
-
* already installed and resolvable, and the refusal never mentioned it.
|
|
116
|
-
*
|
|
117
|
-
* Before handing back the refusal, this checks whether a published package of the same
|
|
118
|
-
* name — read from the refused path's own nearest `package.json`, never guessed — is
|
|
119
|
-
* already resolvable, and leads with that when it is. The environment variable is
|
|
120
|
-
* mentioned last, as the operator-only escape hatch it is: "a security control people
|
|
121
|
-
* routinely disable to get their work done is not a security control."
|
|
122
|
-
*/
|
|
123
|
-
export async function withSafeAlternative(reason, specifier, repoPath) {
|
|
124
|
-
const path = filesystemPathOf(specifier);
|
|
125
|
-
const name = path === null ? null : packageNameFor(path);
|
|
126
|
-
if (name === null)
|
|
127
|
-
return reason;
|
|
128
|
-
const led = `"${name}" is installed and can be used instead — set "sources" to the package name rather than the path. `;
|
|
129
|
-
const fromRepo = repoPath === undefined ? { reason: "no repository root" } : resolveFromRepo(name, repoPath);
|
|
130
|
-
if ("url" in fromRepo)
|
|
131
|
-
return led + reason;
|
|
132
|
-
try {
|
|
133
|
-
import.meta.resolve(name);
|
|
134
|
-
return led + reason;
|
|
135
|
-
}
|
|
136
|
-
catch {
|
|
137
|
-
return `No published package named "${name}" is installed and resolvable, so ${reason.charAt(0).toLowerCase()}${reason.slice(1)}`;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
/** Resolves a specifier as the repo's own `node_modules` would, via `createRequire` anchored
|
|
141
|
-
* at its `package.json` (CJS resolution, `require`/`default` conditions), then imports the
|
|
142
|
-
* resolved path as ESM. Returns the reason on failure rather than throwing — not yet a failure until the fallback also fails. */
|
|
143
|
-
function resolveFromRepo(specifier, repoPath) {
|
|
144
|
-
try {
|
|
145
|
-
const require = createRequire(pathToFileURL(join(repoPath, "package.json")));
|
|
146
|
-
return { url: pathToFileURL(require.resolve(specifier)).href };
|
|
147
|
-
}
|
|
148
|
-
catch (error) {
|
|
149
|
-
return { reason: describe(error) };
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
async function instantiate(spec, repoPath) {
|
|
153
|
-
const imported = await importSource(spec.module, repoPath);
|
|
154
|
-
const module = imported.module;
|
|
155
|
-
let factoryName = spec.export;
|
|
156
|
-
if (factoryName === undefined) {
|
|
157
|
-
const candidates = Object.keys(module).filter((key) => FACTORY_PATTERN.test(key) && typeof module[key] === "function");
|
|
158
|
-
if (candidates.length === 0) {
|
|
159
|
-
throw new Error(`no export matching create*Adapter. Name one explicitly with ` +
|
|
160
|
-
`{ "module": "${spec.module}", "export": "..." }.`);
|
|
161
|
-
}
|
|
162
|
-
if (candidates.length > 1) {
|
|
163
|
-
throw new Error(`${candidates.length} exports match create*Adapter (${candidates.sort().join(", ")}). ` +
|
|
164
|
-
"Name the one to use explicitly rather than letting the choice depend on export order.");
|
|
165
|
-
}
|
|
166
|
-
factoryName = candidates[0];
|
|
167
|
-
}
|
|
168
|
-
const factory = module[factoryName];
|
|
169
|
-
if (typeof factory !== "function") {
|
|
170
|
-
throw new Error(`export "${factoryName}" is not a function`);
|
|
171
|
-
}
|
|
172
|
-
const source = factory(spec.options);
|
|
173
|
-
if (typeof source?.emit !== "function" || typeof source.id !== "string") {
|
|
174
|
-
throw new Error(`"${factoryName}" did not return an IRSource (needs \`id\` and \`emit\`)`);
|
|
175
|
-
}
|
|
176
|
-
return {
|
|
177
|
-
source,
|
|
178
|
-
adapter: asAdapter(source),
|
|
179
|
-
resolvedPath: imported.resolvedPath,
|
|
180
|
-
via: imported.via,
|
|
181
|
-
rejectedRepoCandidate: imported.rejectedRepoCandidate ?? null,
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
/** Reads the version of the nearest enclosing `package.json`, walking up from `startPath`'s
|
|
185
|
-
* directory — the *installed artifact's* version, never the module's own self-declared
|
|
186
|
-
* constant. `null` when `startPath` is `null` or no `package.json` encloses it (a bare
|
|
187
|
-
* path-specifier source with no package boundary at all): a real absence, never a guess. */
|
|
188
|
-
function packageVersionFor(startPath) {
|
|
189
|
-
if (startPath === null)
|
|
190
|
-
return null;
|
|
191
|
-
let dir = dirname(startPath);
|
|
192
|
-
for (;;) {
|
|
193
|
-
try {
|
|
194
|
-
const pkg = JSON.parse(readFileSync(join(dir, "package.json"), "utf8"));
|
|
195
|
-
if (typeof pkg.version === "string")
|
|
196
|
-
return pkg.version;
|
|
197
|
-
return null;
|
|
198
|
-
}
|
|
199
|
-
catch {
|
|
200
|
-
// Not found at this level, or not parseable — keep walking up; a
|
|
201
|
-
// malformed package.json above the real one must not stop the search.
|
|
202
|
-
}
|
|
203
|
-
const parent = dirname(dir);
|
|
204
|
-
if (parent === dir)
|
|
205
|
-
return null; // reached the filesystem root
|
|
206
|
-
dir = parent;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
/** Repository root first, the server's own closure second. Only a resolution failure falls
|
|
210
|
-
* through — a module that resolves and then throws is that module's own failure, not "could not be found". */
|
|
211
|
-
async function importSource(specifier, repoPath) {
|
|
212
|
-
// A-F1: specifier can come straight from the repo's own .descry/config.json (module-trust.ts).
|
|
213
|
-
// Checked on the raw string before either resolution attempt, since `resolveFromRepo` always
|
|
214
|
-
// turns its result into a `file:` URL regardless of whether the specifier was path-like.
|
|
215
|
-
const trust = checkModuleTrust(specifier);
|
|
216
|
-
if (!trust.allowed)
|
|
217
|
-
throw new Error(await withSafeAlternative(trust.reason, specifier, repoPath));
|
|
218
|
-
// Plain optional strings rather than a discriminated union re-assigned in
|
|
219
|
-
// place: the union narrows cleanly at each branch but not reliably across
|
|
220
|
-
// the reassignment once "outside the repo" reduces a `{ url }` candidate
|
|
221
|
-
// back to a failure — this shape keeps every branch's narrowing local.
|
|
222
|
-
let repoUrl;
|
|
223
|
-
let repoFailureReason;
|
|
224
|
-
let rejectedRepoCandidate;
|
|
225
|
-
if (repoPath === undefined) {
|
|
226
|
-
repoFailureReason = "no repository root";
|
|
227
|
-
}
|
|
228
|
-
else {
|
|
229
|
-
const resolved = resolveFromRepo(specifier, repoPath);
|
|
230
|
-
if ("reason" in resolved) {
|
|
231
|
-
repoFailureReason = resolved.reason;
|
|
232
|
-
}
|
|
233
|
-
else {
|
|
234
|
-
const resolvedAbsolutePath = fileURLToPath(resolved.url);
|
|
235
|
-
if (resolvesInsideRepo(repoPath, resolvedAbsolutePath)) {
|
|
236
|
-
repoUrl = resolved.url;
|
|
237
|
-
}
|
|
238
|
-
else {
|
|
239
|
-
// The intent of "the repo's own node_modules" is a resolution that
|
|
240
|
-
// lands inside the repository. `resolveFromRepo` anchors
|
|
241
|
-
// `createRequire` at the repo's `package.json` and lets Node's
|
|
242
|
-
// ordinary CJS algorithm walk the entire ancestor chain, so a stray
|
|
243
|
-
// install anywhere above the repository — `$HOME/node_modules`,
|
|
244
|
-
// `/node_modules` — wins regardless of what the repository or the
|
|
245
|
-
// server actually intended. Treated exactly like "no repo-local
|
|
246
|
-
// candidate found", not like a legitimate repo-local pin, and the
|
|
247
|
-
// rejected path is disclosed rather than silently discarded (F2's
|
|
248
|
-
// server-bundled-adapter fix is only testable once this candidate
|
|
249
|
-
// stops shadowing it).
|
|
250
|
-
rejectedRepoCandidate =
|
|
251
|
-
`a candidate resolved to ${resolvedAbsolutePath}, which is outside the repository root ` +
|
|
252
|
-
`${repoPath} — Node's own upward node_modules search found it above the repository ` +
|
|
253
|
-
"rather than inside it, so it was treated as the operator's environment, not the " +
|
|
254
|
-
"repository's.";
|
|
255
|
-
repoFailureReason = rejectedRepoCandidate;
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
if (repoUrl !== undefined) {
|
|
260
|
-
// A-F1 follow-up: checkModuleTrust only sees the raw specifier, not that it resolves into
|
|
261
|
-
// the repo's own git-tracked node_modules — closes the gap where a hostile repo commits
|
|
262
|
-
// node_modules/<name> and delivers a payload on clone alone; override: DESCRY_ALLOW_TRACKED_NODE_MODULES=1.
|
|
263
|
-
const resolvedAbsolutePath = fileURLToPath(repoUrl);
|
|
264
|
-
const repoTrust = await checkRepoResolvedModuleTrust({ specifier, repoPath: repoPath, resolvedAbsolutePath });
|
|
265
|
-
if (!repoTrust.allowed)
|
|
266
|
-
throw new Error(repoTrust.reason);
|
|
267
|
-
const module = await import(__rewriteRelativeImportExtension(repoUrl));
|
|
268
|
-
return { module, resolvedPath: resolvedAbsolutePath, via: "repo" };
|
|
269
|
-
}
|
|
270
|
-
try {
|
|
271
|
-
const module = await import(__rewriteRelativeImportExtension(specifier));
|
|
272
|
-
// Best-effort only — `import.meta.resolve` reports where the server's
|
|
273
|
-
// own module graph found it, but is not guaranteed to succeed for every
|
|
274
|
-
// legal specifier shape a runtime `import()` accepts.
|
|
275
|
-
let resolvedPath = null;
|
|
276
|
-
try {
|
|
277
|
-
resolvedPath = fileURLToPath(import.meta.resolve(specifier));
|
|
278
|
-
}
|
|
279
|
-
catch {
|
|
280
|
-
resolvedPath = null;
|
|
281
|
-
}
|
|
282
|
-
return {
|
|
283
|
-
module,
|
|
284
|
-
resolvedPath,
|
|
285
|
-
via: "server",
|
|
286
|
-
...(rejectedRepoCandidate === undefined ? {} : { rejectedRepoCandidate }),
|
|
287
|
-
};
|
|
288
|
-
}
|
|
289
|
-
catch (error) {
|
|
290
|
-
if (repoPath === undefined)
|
|
291
|
-
throw error;
|
|
292
|
-
throw new Error(`${describe(error)} — and it did not resolve from the repository root ${repoPath} either ` +
|
|
293
|
-
`(${repoFailureReason})`, { cause: error });
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
/** Asks each loaded adapter whether it claims this repository. A non-`LanguageAdapter`
|
|
297
|
-
* source (the git reader) always runs. A throwing `detect` counts as "did not detect",
|
|
298
|
-
* with the reason recorded — it can't fail the whole run, and can't hide either. */
|
|
299
|
-
export async function detectSources(sources, root) {
|
|
300
|
-
const applicable = [];
|
|
301
|
-
const skipped = [];
|
|
302
|
-
const evidence = [];
|
|
303
|
-
for (const entry of sources) {
|
|
304
|
-
if (entry.adapter === null) {
|
|
305
|
-
applicable.push(entry);
|
|
306
|
-
continue;
|
|
307
|
-
}
|
|
308
|
-
try {
|
|
309
|
-
const detection = await entry.adapter.detect(root);
|
|
310
|
-
if (detection.evidence.length > 0) {
|
|
311
|
-
evidence.push({ source: entry.source.id, entries: detection.evidence });
|
|
312
|
-
}
|
|
313
|
-
if (detection.detected)
|
|
314
|
-
applicable.push(entry);
|
|
315
|
-
else
|
|
316
|
-
skipped.push({
|
|
317
|
-
source: entry,
|
|
318
|
-
reason: "found nothing it recognises in this repository",
|
|
319
|
-
});
|
|
320
|
-
}
|
|
321
|
-
catch (error) {
|
|
322
|
-
skipped.push({ source: entry, reason: `detection failed — ${describe(error)}` });
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
return { applicable, skipped, evidence };
|
|
326
|
-
}
|
|
327
|
-
//# sourceMappingURL=registry.js.map
|
package/dist/registry.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|