@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
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `indexWorkspace` — the cross-repo counterpart of `analyze`'s single-repo run.
|
|
3
|
-
*
|
|
4
|
-
* Gap 1 of `documents/plans/site-claims-closure-production-plan.md`. A
|
|
5
|
-
* standalone function, **not** a second constructor on `Session` — see that
|
|
6
|
-
* plan section for why: `session.ts`'s own header states "one repo, one
|
|
7
|
-
* graph, one process", `DescryConfig` is singular throughout, and well over a
|
|
8
|
-
* dozen other tool files read `session.config`/`session.repoPath` as singular
|
|
9
|
-
* values. Widening `Session` itself would mean widening all of them. This
|
|
10
|
-
* function instead does, once per repository in a loop, exactly what
|
|
11
|
-
* `analyze.ts`'s `run()` already does once per source — load a repository's
|
|
12
|
-
* own configured sources, detect, emit, read its git history — and then
|
|
13
|
-
* merges and persists every repository's batches together in **one**
|
|
14
|
-
* `buildGraph`/`persistGraph` pass, into one shared store.
|
|
15
|
-
*
|
|
16
|
-
* Ported in spirit from `descry-desktop`'s `packages/session/src/indexing
|
|
17
|
-
* /index.ts` (`indexRepository`), which solved the same "index N
|
|
18
|
-
* repositories into one store" problem for the desktop app's engine. The
|
|
19
|
-
* adaptation reuses `descry-core`'s own existing per-repo pieces —
|
|
20
|
-
* `loadConfig`, `registry.ts`'s `loadSources`/`detectSources`, `analyze.ts`'s
|
|
21
|
-
* `optionalBatchLists`/`sourceFailureNote`/`sourceProvenanceNote` — instead of
|
|
22
|
-
* re-discovering adapters or re-deriving batch handling, because those
|
|
23
|
-
* already live in this package (`@descryy/mcp`) beside `analyze.ts`; there
|
|
24
|
-
* was nothing to extract into `@descryy/core`.
|
|
25
|
-
*
|
|
26
|
-
* ## Why every repository's batches are merged in one `buildGraph` call,
|
|
27
|
-
* ## not one call per repository
|
|
28
|
-
*
|
|
29
|
-
* `buildGraph`'s `JoinMetric`/`crossRepoJoins` (`packages/core/src/graph
|
|
30
|
-
* /build.ts`) is computed from the batches handed to *that one call*: it
|
|
31
|
-
* counts, per workspace-scoped node type, how many of the repositories
|
|
32
|
-
* represented **in that call** supplied a node with the same id. A
|
|
33
|
-
* `buildGraph` call given only one repository's batches at a time can never
|
|
34
|
-
* see two repositories agreeing on an id — `crossRepoJoinPossible` would be
|
|
35
|
-
* false for every type on every call, and the workspace join `analyze_workspace`
|
|
36
|
-
* exists to prove would be invisible in its own reply. So every repository in
|
|
37
|
-
* this call is read first, and their batches are combined into one list
|
|
38
|
-
* before `buildGraph` runs once — the same shape `analyze.ts` already uses
|
|
39
|
-
* for merging one repository's several *sources*, extended one level up to
|
|
40
|
-
* merging several *repositories*. `persistGraph` still writes each batch's
|
|
41
|
-
* rows under its own `producedBy` (DEC-014's per-adapter invalidation rule is
|
|
42
|
-
* unaffected — a batch is still a batch, whichever repository it came from).
|
|
43
|
-
*
|
|
44
|
-
* ## What this deliberately does not do
|
|
45
|
-
*
|
|
46
|
-
* Unlike `analyze.ts`'s `run()`, this does not mint edges from confirmed
|
|
47
|
-
* facts or re-project confirmed incidents — both are per-repository testimony
|
|
48
|
-
* recorded in that repository's own `.descry/config.json`, and folding them
|
|
49
|
-
* into a cross-repo indexing pass is a separate, unscoped question. A
|
|
50
|
-
* repository indexed through `indexWorkspace` gets the code-reading half of
|
|
51
|
-
* what `analyze` gives it; the two are not currently unified, and that is
|
|
52
|
-
* disclosed by the caller (`analyze_workspace`), not silently assumed away
|
|
53
|
-
* here.
|
|
54
|
-
*/
|
|
55
|
-
import { type AmbiguousApiJoin, type AmbiguousTableJoin, type BuildResult, type GraphStamp, type ResolvedApiJoin, type ResolvedTableJoin, type StoreCounts } from "@descryy/core";
|
|
56
|
-
import { type SourceRun } from "./tools/analyze.ts";
|
|
57
|
-
export interface IndexWorkspaceRepoInput {
|
|
58
|
-
/** Absolute path to the repository on disk. */
|
|
59
|
-
readonly repoPath: string;
|
|
60
|
-
/**
|
|
61
|
-
* The repository's identity as `link_workspace` recorded it
|
|
62
|
-
* (`WorkspaceRepo.repo`). Used only when the repository's own
|
|
63
|
-
* `.descry/config.json` cannot be read at all — whenever it can, its own
|
|
64
|
-
* `repo` field wins instead, because that is the value its adapters
|
|
65
|
-
* actually hash node ids under; a mismatch between the two is disclosed,
|
|
66
|
-
* never silently resolved one way (`repoIdentityNote`).
|
|
67
|
-
*/
|
|
68
|
-
readonly repo: string;
|
|
69
|
-
}
|
|
70
|
-
export interface IndexWorkspaceRepoResult {
|
|
71
|
-
readonly repo: string;
|
|
72
|
-
readonly repoPath: string;
|
|
73
|
-
/** `null` when this repository could not be read at all — not a git repository, or its config would not load. */
|
|
74
|
-
readonly commitSha: string | null;
|
|
75
|
-
readonly sources: readonly SourceRun[];
|
|
76
|
-
readonly sourcesFailed: readonly {
|
|
77
|
-
readonly module: string;
|
|
78
|
-
readonly reason: string;
|
|
79
|
-
}[];
|
|
80
|
-
readonly sourcesSkipped: readonly {
|
|
81
|
-
readonly source: string;
|
|
82
|
-
readonly reason: string;
|
|
83
|
-
}[];
|
|
84
|
-
readonly notes: readonly string[];
|
|
85
|
-
/** This repository's share of the one shared-store write this call made. */
|
|
86
|
-
readonly written: {
|
|
87
|
-
readonly nodes: number;
|
|
88
|
-
readonly edges: number;
|
|
89
|
-
readonly unresolved: number;
|
|
90
|
-
readonly evictedFiles: number;
|
|
91
|
-
};
|
|
92
|
-
/** Lowest resolution reached by a code-reading source in this repository, or 0 if none ran. */
|
|
93
|
-
readonly reachedResolution: number;
|
|
94
|
-
}
|
|
95
|
-
export interface IndexWorkspaceProgress {
|
|
96
|
-
readonly repo: string;
|
|
97
|
-
readonly phase: "detecting" | "emitting" | "history" | "merging" | "writing" | "done";
|
|
98
|
-
readonly completed: number;
|
|
99
|
-
readonly total: number;
|
|
100
|
-
}
|
|
101
|
-
export interface IndexWorkspaceOptions {
|
|
102
|
-
readonly workspaceId: string;
|
|
103
|
-
readonly repos: readonly IndexWorkspaceRepoInput[];
|
|
104
|
-
/** Where to open/create the shared store. Passed straight to `openStore`. */
|
|
105
|
-
readonly graphDbPath: string;
|
|
106
|
-
/** Default true, matching `analyze`'s own default. */
|
|
107
|
-
readonly includeHistory?: boolean;
|
|
108
|
-
readonly maxCommits?: number;
|
|
109
|
-
readonly onProgress?: (progress: IndexWorkspaceProgress) => void;
|
|
110
|
-
readonly signal?: AbortSignal;
|
|
111
|
-
}
|
|
112
|
-
export interface IndexWorkspaceResult {
|
|
113
|
-
readonly workspaceId: string;
|
|
114
|
-
readonly graphDbPath: string;
|
|
115
|
-
/** One entry per repository requested, in the order given — including one for a repository that could not be read at all. */
|
|
116
|
-
readonly repos: readonly IndexWorkspaceRepoResult[];
|
|
117
|
-
/** Row counts in the shared store after every repository has been indexed. */
|
|
118
|
-
readonly stored: StoreCounts;
|
|
119
|
-
/** The shared store's own stamp — `repoCount` here is the fact that this graph now spans more than one repository, not a staleness signal (`GraphStamp`'s own doc). `resolutionFloor` is this call's own, mirroring `analyze`'s (the minimum across every repository's code-reading sources; 0 if none ran anywhere). */
|
|
120
|
-
readonly stamp: GraphStamp;
|
|
121
|
-
readonly merge: {
|
|
122
|
-
readonly mergedNodes: number;
|
|
123
|
-
readonly mergedEdges: number;
|
|
124
|
-
readonly collisions: number;
|
|
125
|
-
readonly droppedEdges: number;
|
|
126
|
-
readonly rejections: number;
|
|
127
|
-
};
|
|
128
|
-
/** Per workspace-scoped node type: whether this call actually saw the join happen (DEC-054).
|
|
129
|
-
* API_ENDPOINT is no longer one of these types (DEC-NEXT-endpoint-identity-repo-scoping) —
|
|
130
|
-
* see `apiJoins` for its own, separate join accounting. */
|
|
131
|
-
readonly crossRepoJoins: BuildResult["crossRepoJoins"];
|
|
132
|
-
/** The staged frontend-to-backend API_ENDPOINT join (Gap 10,
|
|
133
|
-
* `packages/core/src/contracts/workspace-join.ts`) — run once, after `buildGraph`, over the
|
|
134
|
-
* whole merged workspace graph. */
|
|
135
|
-
readonly apiJoins: {
|
|
136
|
-
readonly resolved: readonly ResolvedApiJoin[];
|
|
137
|
-
readonly ambiguous: readonly AmbiguousApiJoin[];
|
|
138
|
-
readonly unmatched: number;
|
|
139
|
-
readonly unkeyed: number;
|
|
140
|
-
};
|
|
141
|
-
/** The staged cross-repo DATABASE_TABLE/DATABASE_COLUMN join (Gap 10's table
|
|
142
|
-
* half, `packages/core/src/contracts/workspace-table-join.ts`) — run once,
|
|
143
|
-
* after `buildGraph` and the API_ENDPOINT join, over the whole merged
|
|
144
|
-
* workspace graph. */
|
|
145
|
-
readonly tableJoins: {
|
|
146
|
-
readonly resolved: readonly ResolvedTableJoin[];
|
|
147
|
-
readonly ambiguous: readonly AmbiguousTableJoin[];
|
|
148
|
-
readonly unkeyed: number;
|
|
149
|
-
readonly singletons: number;
|
|
150
|
-
};
|
|
151
|
-
readonly notes: readonly string[];
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Index every repository in `options.repos` into one shared graph store at
|
|
155
|
-
* `options.graphDbPath`, creating it if absent.
|
|
156
|
-
*
|
|
157
|
-
* One repository failing to read — not a git repository, an unreadable
|
|
158
|
-
* config, every adapter refusing it — costs only its own rows; the others
|
|
159
|
-
* are still read, merged and persisted, the same "one adapter's failure
|
|
160
|
-
* costs its own rows and nothing else" posture `analyze.ts` already takes one
|
|
161
|
-
* level down.
|
|
162
|
-
*/
|
|
163
|
-
export declare function indexWorkspace(options: IndexWorkspaceOptions): Promise<IndexWorkspaceResult>;
|
|
164
|
-
//# sourceMappingURL=workspace-index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-index.d.ts","sourceRoot":"","sources":["../src/workspace-index.ts"],"names":[],"mappings":"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"}
|
package/dist/workspace-index.js
DELETED
|
@@ -1,381 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `indexWorkspace` — the cross-repo counterpart of `analyze`'s single-repo run.
|
|
3
|
-
*
|
|
4
|
-
* Gap 1 of `documents/plans/site-claims-closure-production-plan.md`. A
|
|
5
|
-
* standalone function, **not** a second constructor on `Session` — see that
|
|
6
|
-
* plan section for why: `session.ts`'s own header states "one repo, one
|
|
7
|
-
* graph, one process", `DescryConfig` is singular throughout, and well over a
|
|
8
|
-
* dozen other tool files read `session.config`/`session.repoPath` as singular
|
|
9
|
-
* values. Widening `Session` itself would mean widening all of them. This
|
|
10
|
-
* function instead does, once per repository in a loop, exactly what
|
|
11
|
-
* `analyze.ts`'s `run()` already does once per source — load a repository's
|
|
12
|
-
* own configured sources, detect, emit, read its git history — and then
|
|
13
|
-
* merges and persists every repository's batches together in **one**
|
|
14
|
-
* `buildGraph`/`persistGraph` pass, into one shared store.
|
|
15
|
-
*
|
|
16
|
-
* Ported in spirit from `descry-desktop`'s `packages/session/src/indexing
|
|
17
|
-
* /index.ts` (`indexRepository`), which solved the same "index N
|
|
18
|
-
* repositories into one store" problem for the desktop app's engine. The
|
|
19
|
-
* adaptation reuses `descry-core`'s own existing per-repo pieces —
|
|
20
|
-
* `loadConfig`, `registry.ts`'s `loadSources`/`detectSources`, `analyze.ts`'s
|
|
21
|
-
* `optionalBatchLists`/`sourceFailureNote`/`sourceProvenanceNote` — instead of
|
|
22
|
-
* re-discovering adapters or re-deriving batch handling, because those
|
|
23
|
-
* already live in this package (`@descryy/mcp`) beside `analyze.ts`; there
|
|
24
|
-
* was nothing to extract into `@descryy/core`.
|
|
25
|
-
*
|
|
26
|
-
* ## Why every repository's batches are merged in one `buildGraph` call,
|
|
27
|
-
* ## not one call per repository
|
|
28
|
-
*
|
|
29
|
-
* `buildGraph`'s `JoinMetric`/`crossRepoJoins` (`packages/core/src/graph
|
|
30
|
-
* /build.ts`) is computed from the batches handed to *that one call*: it
|
|
31
|
-
* counts, per workspace-scoped node type, how many of the repositories
|
|
32
|
-
* represented **in that call** supplied a node with the same id. A
|
|
33
|
-
* `buildGraph` call given only one repository's batches at a time can never
|
|
34
|
-
* see two repositories agreeing on an id — `crossRepoJoinPossible` would be
|
|
35
|
-
* false for every type on every call, and the workspace join `analyze_workspace`
|
|
36
|
-
* exists to prove would be invisible in its own reply. So every repository in
|
|
37
|
-
* this call is read first, and their batches are combined into one list
|
|
38
|
-
* before `buildGraph` runs once — the same shape `analyze.ts` already uses
|
|
39
|
-
* for merging one repository's several *sources*, extended one level up to
|
|
40
|
-
* merging several *repositories*. `persistGraph` still writes each batch's
|
|
41
|
-
* rows under its own `producedBy` (DEC-014's per-adapter invalidation rule is
|
|
42
|
-
* unaffected — a batch is still a batch, whichever repository it came from).
|
|
43
|
-
*
|
|
44
|
-
* ## What this deliberately does not do
|
|
45
|
-
*
|
|
46
|
-
* Unlike `analyze.ts`'s `run()`, this does not mint edges from confirmed
|
|
47
|
-
* facts or re-project confirmed incidents — both are per-repository testimony
|
|
48
|
-
* recorded in that repository's own `.descry/config.json`, and folding them
|
|
49
|
-
* into a cross-repo indexing pass is a separate, unscoped question. A
|
|
50
|
-
* repository indexed through `indexWorkspace` gets the code-reading half of
|
|
51
|
-
* what `analyze` gives it; the two are not currently unified, and that is
|
|
52
|
-
* disclosed by the caller (`analyze_workspace`), not silently assumed away
|
|
53
|
-
* here.
|
|
54
|
-
*/
|
|
55
|
-
import { mkdirSync } from "node:fs";
|
|
56
|
-
import { dirname } from "node:path";
|
|
57
|
-
import { buildGraph, counts, createGitSource, createStoreProvider, getNode, gitHead, isGitRepository, NodeSqliteDriver, openStore, persistGraph, rebuildStaleGraph, repoOfEndpoint, repoOfTable, resolveWorkspaceApiJoins, resolveWorkspaceTableJoins, } from "@descryy/core";
|
|
58
|
-
import { detectSources, loadSources } from "./registry.js";
|
|
59
|
-
import { loadConfig } from "./session.js";
|
|
60
|
-
import { optionalBatchLists, sourceFailureNote, sourceProvenanceNote } from "./tools/analyze.js";
|
|
61
|
-
/** Repairs a workspace graph database written under an older IR schema
|
|
62
|
-
* version, mirroring `Session.repairStaleGraph`'s own pattern — a version
|
|
63
|
-
* bump (e.g. DEC-NEXT-endpoint-identity-repo-scoping's API_ENDPOINT/
|
|
64
|
-
* DATABASE_TABLE/DATABASE_COLUMN identity fix) makes every id of the
|
|
65
|
-
* affected types wrong for what this build computes, and `openStore` alone
|
|
66
|
-
* would otherwise just throw `SchemaVersionError` here with nothing to
|
|
67
|
-
* repair it — `indexWorkspace` is the one caller entitled to fix this,
|
|
68
|
-
* because it is about to rebuild from source anyway (DEC-017). Earned data
|
|
69
|
-
* (R4 observations, edge corrections, incident links) survives; only the
|
|
70
|
-
* derived tables (nodes/edges/...) are dropped, and this call's own re-read
|
|
71
|
-
* of every repository repopulates them. A path that does not exist yet, or
|
|
72
|
-
* is already current, is a no-op — not an error. */
|
|
73
|
-
function repairStaleWorkspaceGraph(graphDbPath) {
|
|
74
|
-
if (graphDbPath === ":memory:")
|
|
75
|
-
return { rebuilt: false };
|
|
76
|
-
const driver = new NodeSqliteDriver();
|
|
77
|
-
try {
|
|
78
|
-
driver.open(graphDbPath);
|
|
79
|
-
return rebuildStaleGraph(driver);
|
|
80
|
-
}
|
|
81
|
-
catch {
|
|
82
|
-
// Missing directory, corrupt file, or a store that doesn't exist yet —
|
|
83
|
-
// not this function's job. `openStore` right after hits the same case
|
|
84
|
-
// via its own disclosed error handling.
|
|
85
|
-
return { rebuilt: false };
|
|
86
|
-
}
|
|
87
|
-
finally {
|
|
88
|
-
driver.close();
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
/** The declared identity disagreeing with the repository's own config is disclosed, never silently picked one way. */
|
|
92
|
-
function repoIdentityNote(declared, actual) {
|
|
93
|
-
if (declared === actual)
|
|
94
|
-
return undefined;
|
|
95
|
-
return (`The workspace declared this repository's identity as "${declared}" (from link_workspace), but its ` +
|
|
96
|
-
`own .descry/config.json now says "${actual}". The config's own value was used — that is what its ` +
|
|
97
|
-
`adapters actually hash repo-scoped node ids under — so update the workspace declaration if "${declared}" ` +
|
|
98
|
-
"was the intended identity.");
|
|
99
|
-
}
|
|
100
|
-
/** Reads one repository's configured sources and git history into batches. Writes nothing — see this module's own header for why every repository is read before anything is merged or persisted. */
|
|
101
|
-
async function readOneRepo(input, workspaceId, includeHistory, maxCommits, report, signal) {
|
|
102
|
-
const notes = [];
|
|
103
|
-
const empty = {
|
|
104
|
-
repo: input.repo,
|
|
105
|
-
repoPath: input.repoPath,
|
|
106
|
-
commitSha: null,
|
|
107
|
-
batches: [],
|
|
108
|
-
sources: [],
|
|
109
|
-
sourcesFailed: [],
|
|
110
|
-
sourcesSkipped: [],
|
|
111
|
-
notes,
|
|
112
|
-
reachedResolution: 0,
|
|
113
|
-
};
|
|
114
|
-
if (!(await isGitRepository(input.repoPath))) {
|
|
115
|
-
notes.push(`${input.repoPath} is not a git repository. Every node is stamped with the commit it was read at, ` +
|
|
116
|
-
"so there is nothing honest to record for it — this repository was not indexed.");
|
|
117
|
-
return empty;
|
|
118
|
-
}
|
|
119
|
-
const config = await loadConfig(input.repoPath).catch((error) => {
|
|
120
|
-
notes.push(`${input.repoPath}'s .descry/config.json could not be read (${error instanceof Error ? error.message : String(error)}) — this repository was not indexed.`);
|
|
121
|
-
return null;
|
|
122
|
-
});
|
|
123
|
-
if (config === null)
|
|
124
|
-
return empty;
|
|
125
|
-
const identityNote = repoIdentityNote(input.repo, config.repo);
|
|
126
|
-
if (identityNote !== undefined)
|
|
127
|
-
notes.push(identityNote);
|
|
128
|
-
const repoLabel = config.repo;
|
|
129
|
-
const commitSha = await gitHead(input.repoPath);
|
|
130
|
-
const root = { repo: repoLabel, workspace: workspaceId, absolutePath: input.repoPath, commitSha };
|
|
131
|
-
const context = { root, prepareTimeoutMs: 300_000, signal };
|
|
132
|
-
const registry = await loadSources(config.sources, input.repoPath);
|
|
133
|
-
for (const failure of registry.failed) {
|
|
134
|
-
notes.push(`The source "${failure.spec.module}" could not be loaded (${failure.reason}). Anything it would ` +
|
|
135
|
-
"have read is not analysable — not clean.");
|
|
136
|
-
}
|
|
137
|
-
for (const entry of registry.loaded)
|
|
138
|
-
notes.push(sourceProvenanceNote(entry));
|
|
139
|
-
if (config.sources.length === 0) {
|
|
140
|
-
notes.push("No language adapters are configured for this repository, so nothing was read from source.");
|
|
141
|
-
}
|
|
142
|
-
const { applicable, skipped } = await detectSources(registry.loaded, root);
|
|
143
|
-
for (const entry of skipped) {
|
|
144
|
-
notes.push(`${entry.source.source.id} did not run: it ${entry.reason}.`);
|
|
145
|
-
}
|
|
146
|
-
const batches = [];
|
|
147
|
-
const perSource = [];
|
|
148
|
-
const codeResolutions = [];
|
|
149
|
-
const total = applicable.length + (includeHistory ? 1 : 0);
|
|
150
|
-
let done = 0;
|
|
151
|
-
for (const entry of applicable) {
|
|
152
|
-
report({ repo: repoLabel, phase: "detecting", completed: done, total });
|
|
153
|
-
const started = Date.now();
|
|
154
|
-
let batch;
|
|
155
|
-
try {
|
|
156
|
-
batch = await entry.source.emit(context);
|
|
157
|
-
}
|
|
158
|
-
catch (error) {
|
|
159
|
-
notes.push(sourceFailureNote(entry.source.id, error, "emit"));
|
|
160
|
-
await entry.adapter?.dispose();
|
|
161
|
-
done += 1;
|
|
162
|
-
continue;
|
|
163
|
-
}
|
|
164
|
-
try {
|
|
165
|
-
const { skippedFiles, unresolved } = optionalBatchLists(batch);
|
|
166
|
-
batches.push(batch);
|
|
167
|
-
perSource.push({
|
|
168
|
-
source: batch.producedBy,
|
|
169
|
-
installedVersion: entry.packageVersion,
|
|
170
|
-
files: batch.sourceFiles.length,
|
|
171
|
-
nodes: batch.nodes.length,
|
|
172
|
-
edges: batch.edges.length,
|
|
173
|
-
unresolved: unresolved.length,
|
|
174
|
-
skippedFiles: skippedFiles.length,
|
|
175
|
-
reachedResolution: batch.reachedResolution,
|
|
176
|
-
ms: Date.now() - started,
|
|
177
|
-
});
|
|
178
|
-
const ceiling = entry.adapter?.capabilities().maxResolution;
|
|
179
|
-
if (ceiling !== undefined)
|
|
180
|
-
codeResolutions.push(batch.reachedResolution);
|
|
181
|
-
if (ceiling !== undefined && batch.reachedResolution < ceiling) {
|
|
182
|
-
notes.push(`${entry.source.id} reached R${batch.reachedResolution} where it is capable of R${ceiling}.`);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
catch (error) {
|
|
186
|
-
notes.push(sourceFailureNote(entry.source.id, error, "engine"));
|
|
187
|
-
}
|
|
188
|
-
finally {
|
|
189
|
-
await entry.adapter?.dispose();
|
|
190
|
-
done += 1;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
if (includeHistory) {
|
|
194
|
-
report({ repo: repoLabel, phase: "history", completed: done, total });
|
|
195
|
-
const historyStarted = Date.now();
|
|
196
|
-
try {
|
|
197
|
-
const history = await createGitSource({
|
|
198
|
-
repo: repoLabel,
|
|
199
|
-
cwd: input.repoPath,
|
|
200
|
-
...(typeof maxCommits === "number" ? { maxCommits } : {}),
|
|
201
|
-
}).emit(context);
|
|
202
|
-
batches.push(history);
|
|
203
|
-
perSource.push({
|
|
204
|
-
source: history.producedBy,
|
|
205
|
-
installedVersion: null,
|
|
206
|
-
files: history.sourceFiles.length,
|
|
207
|
-
nodes: history.nodes.length,
|
|
208
|
-
edges: history.edges.length,
|
|
209
|
-
unresolved: history.unresolved.length,
|
|
210
|
-
skippedFiles: history.skippedFiles.length,
|
|
211
|
-
reachedResolution: history.reachedResolution,
|
|
212
|
-
ms: Date.now() - historyStarted,
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
catch (error) {
|
|
216
|
-
notes.push(`Git history was not read (${error instanceof Error ? error.message : String(error)}), so ` +
|
|
217
|
-
"co-change coupling is absent for this repository.");
|
|
218
|
-
}
|
|
219
|
-
done += 1;
|
|
220
|
-
}
|
|
221
|
-
report({ repo: repoLabel, phase: "done", completed: total, total });
|
|
222
|
-
return {
|
|
223
|
-
repo: repoLabel,
|
|
224
|
-
repoPath: input.repoPath,
|
|
225
|
-
commitSha,
|
|
226
|
-
batches,
|
|
227
|
-
sources: perSource,
|
|
228
|
-
sourcesFailed: registry.failed.map((f) => ({ module: f.spec.module, reason: f.reason })),
|
|
229
|
-
sourcesSkipped: skipped.map((s) => ({ source: s.source.source.id, reason: s.reason })),
|
|
230
|
-
notes,
|
|
231
|
-
reachedResolution: codeResolutions.length === 0 ? 0 : Math.min(...codeResolutions),
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Index every repository in `options.repos` into one shared graph store at
|
|
236
|
-
* `options.graphDbPath`, creating it if absent.
|
|
237
|
-
*
|
|
238
|
-
* One repository failing to read — not a git repository, an unreadable
|
|
239
|
-
* config, every adapter refusing it — costs only its own rows; the others
|
|
240
|
-
* are still read, merged and persisted, the same "one adapter's failure
|
|
241
|
-
* costs its own rows and nothing else" posture `analyze.ts` already takes one
|
|
242
|
-
* level down.
|
|
243
|
-
*/
|
|
244
|
-
export async function indexWorkspace(options) {
|
|
245
|
-
const report = options.onProgress ?? (() => { });
|
|
246
|
-
const includeHistory = options.includeHistory ?? true;
|
|
247
|
-
const signal = options.signal ?? new AbortController().signal;
|
|
248
|
-
const reads = [];
|
|
249
|
-
for (const repoInput of options.repos) {
|
|
250
|
-
reads.push(await readOneRepo(repoInput, options.workspaceId, includeHistory, options.maxCommits, report, signal));
|
|
251
|
-
}
|
|
252
|
-
if (options.graphDbPath !== ":memory:") {
|
|
253
|
-
mkdirSync(dirname(options.graphDbPath), { recursive: true });
|
|
254
|
-
}
|
|
255
|
-
// A shared workspace graph already on disk under an older IR schema version
|
|
256
|
-
// (e.g. written before DEC-NEXT-endpoint-identity-repo-scoping) would
|
|
257
|
-
// otherwise make the plain `openStore` below throw `SchemaVersionError` with
|
|
258
|
-
// nothing here to repair it — see `repairStaleWorkspaceGraph`'s own doc.
|
|
259
|
-
const { rebuilt } = repairStaleWorkspaceGraph(options.graphDbPath);
|
|
260
|
-
const store = openStore(options.graphDbPath);
|
|
261
|
-
try {
|
|
262
|
-
const allBatches = reads.flatMap((r) => r.batches);
|
|
263
|
-
report({ repo: options.workspaceId, phase: "merging", completed: reads.length, total: reads.length });
|
|
264
|
-
const built = buildGraph(allBatches, { nodeExists: (id) => getNode(store.driver, id) != null });
|
|
265
|
-
// Gap 10: the frontend-to-backend API_ENDPOINT join no longer happens
|
|
266
|
-
// inside `buildGraph` (API_ENDPOINT is repo-scoped now) — resolve it here,
|
|
267
|
-
// once, over the whole merged workspace graph, before persisting.
|
|
268
|
-
const repoOf = repoOfEndpoint(allBatches);
|
|
269
|
-
const apiJoins = resolveWorkspaceApiJoins(built.nodes, built.edges, repoOf);
|
|
270
|
-
// Gap 10's table half: DATABASE_TABLE/DATABASE_COLUMN are repo-scoped now
|
|
271
|
-
// too (same ruling), and the join runs the same way — once, over the
|
|
272
|
-
// whole merged workspace graph, chained after the API_ENDPOINT join so
|
|
273
|
-
// both rewrites land in the edges persisted below.
|
|
274
|
-
const repoOfTables = repoOfTable(allBatches);
|
|
275
|
-
const tableJoins = resolveWorkspaceTableJoins(built.nodes, apiJoins.edges, repoOfTables);
|
|
276
|
-
const builtWithJoins = { ...built, edges: tableJoins.edges };
|
|
277
|
-
report({ repo: options.workspaceId, phase: "writing", completed: reads.length, total: reads.length });
|
|
278
|
-
const persisted = persistGraph(store.driver, allBatches, builtWithJoins);
|
|
279
|
-
// `persistGraph` writes one `WriteResult` per batch, in the same order as
|
|
280
|
-
// `allBatches` — zipped back against each batch's own `repo` field so a
|
|
281
|
-
// per-repository written total can be reported without a second store
|
|
282
|
-
// pass, matching the ordering guarantee `persist.ts`'s own doc states.
|
|
283
|
-
const writtenByRepo = new Map();
|
|
284
|
-
allBatches.forEach((batch, index) => {
|
|
285
|
-
const write = persisted.writes[index];
|
|
286
|
-
const bucket = writtenByRepo.get(batch.repo) ?? { nodes: 0, edges: 0, unresolved: 0, evictedFiles: new Set() };
|
|
287
|
-
bucket.nodes += write.nodesWritten;
|
|
288
|
-
bucket.edges += write.edgesWritten;
|
|
289
|
-
bucket.unresolved += write.unresolvedWritten;
|
|
290
|
-
for (const file of write.evictedFiles)
|
|
291
|
-
bucket.evictedFiles.add(file);
|
|
292
|
-
writtenByRepo.set(batch.repo, bucket);
|
|
293
|
-
});
|
|
294
|
-
const notes = [];
|
|
295
|
-
if (rebuilt) {
|
|
296
|
-
notes.push("This workspace's shared graph was written under an older IR schema version. Its derived " +
|
|
297
|
-
"rows (nodes, edges, ...) have been dropped and are rebuilt by this run; earned data (R4 " +
|
|
298
|
-
"observations, edge corrections, incident links) survives untouched (DEC-017).");
|
|
299
|
-
}
|
|
300
|
-
for (const join of apiJoins.resolved) {
|
|
301
|
-
if (join.via === "caller-hint") {
|
|
302
|
-
notes.push(`${join.key.method} ${join.key.pathTemplate} is served by more than one repository in this ` +
|
|
303
|
-
"workspace; resolved to one of them using the caller's own reported origin.");
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
for (const ambiguity of apiJoins.ambiguous) {
|
|
307
|
-
notes.push(`API_ENDPOINT join: ${ambiguity.detail}`);
|
|
308
|
-
}
|
|
309
|
-
for (const ambiguity of tableJoins.ambiguous) {
|
|
310
|
-
notes.push(`DATABASE_TABLE join: ${ambiguity.detail}`);
|
|
311
|
-
}
|
|
312
|
-
for (const collision of built.collisions) {
|
|
313
|
-
notes.push(`Two different things claimed node id ${collision.nodeId}: a ${collision.kept.type} from ` +
|
|
314
|
-
`${collision.kept.producedBy} and a ${collision.discarded.type} from ` +
|
|
315
|
-
`${collision.discarded.producedBy}. The second was discarded (DEC-024).`);
|
|
316
|
-
}
|
|
317
|
-
if (built.droppedEdges > 0) {
|
|
318
|
-
notes.push(`${built.droppedEdges} edge(s) were dropped because an endpoint did not resolve to a real node.`);
|
|
319
|
-
}
|
|
320
|
-
if (persisted.evictedFiles.length > 0) {
|
|
321
|
-
notes.push(`${persisted.evictedFiles.length} file(s) covered by a previous run were not re-supplied by this ` +
|
|
322
|
-
"one; their rows have been removed from the shared store.");
|
|
323
|
-
}
|
|
324
|
-
for (const warning of built.warnings)
|
|
325
|
-
notes.push(warning.detail);
|
|
326
|
-
const repos = reads.map((r) => {
|
|
327
|
-
const bucket = writtenByRepo.get(r.repo);
|
|
328
|
-
return {
|
|
329
|
-
repo: r.repo,
|
|
330
|
-
repoPath: r.repoPath,
|
|
331
|
-
commitSha: r.commitSha,
|
|
332
|
-
sources: r.sources,
|
|
333
|
-
sourcesFailed: r.sourcesFailed,
|
|
334
|
-
sourcesSkipped: r.sourcesSkipped,
|
|
335
|
-
notes: r.notes,
|
|
336
|
-
written: {
|
|
337
|
-
nodes: bucket?.nodes ?? 0,
|
|
338
|
-
edges: bucket?.edges ?? 0,
|
|
339
|
-
unresolved: bucket?.unresolved ?? 0,
|
|
340
|
-
evictedFiles: bucket?.evictedFiles.size ?? 0,
|
|
341
|
-
},
|
|
342
|
-
reachedResolution: r.reachedResolution,
|
|
343
|
-
};
|
|
344
|
-
});
|
|
345
|
-
const codeResolutions = repos.map((r) => r.reachedResolution).filter((r) => r > 0);
|
|
346
|
-
const resolutionFloor = (codeResolutions.length === 0 ? 0 : Math.min(...codeResolutions));
|
|
347
|
-
const stamp = { ...createStoreProvider(store.driver).baseStamp(), resolutionFloor };
|
|
348
|
-
return {
|
|
349
|
-
workspaceId: options.workspaceId,
|
|
350
|
-
graphDbPath: options.graphDbPath,
|
|
351
|
-
repos,
|
|
352
|
-
stored: counts(store.driver),
|
|
353
|
-
stamp,
|
|
354
|
-
merge: {
|
|
355
|
-
mergedNodes: built.mergedNodes,
|
|
356
|
-
mergedEdges: built.mergedEdges,
|
|
357
|
-
collisions: built.collisions.length,
|
|
358
|
-
droppedEdges: built.droppedEdges,
|
|
359
|
-
rejections: built.rejections.length,
|
|
360
|
-
},
|
|
361
|
-
crossRepoJoins: built.crossRepoJoins,
|
|
362
|
-
apiJoins: {
|
|
363
|
-
resolved: apiJoins.resolved,
|
|
364
|
-
ambiguous: apiJoins.ambiguous,
|
|
365
|
-
unmatched: apiJoins.unmatched,
|
|
366
|
-
unkeyed: apiJoins.unkeyed,
|
|
367
|
-
},
|
|
368
|
-
tableJoins: {
|
|
369
|
-
resolved: tableJoins.resolved,
|
|
370
|
-
ambiguous: tableJoins.ambiguous,
|
|
371
|
-
unkeyed: tableJoins.unkeyed,
|
|
372
|
-
singletons: tableJoins.singletons,
|
|
373
|
-
},
|
|
374
|
-
notes,
|
|
375
|
-
};
|
|
376
|
-
}
|
|
377
|
-
finally {
|
|
378
|
-
store.close();
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
//# sourceMappingURL=workspace-index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-index.js","sourceRoot":"","sources":["../src/workspace-index.ts"],"names":[],"mappings":"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"}
|