@descryy/mcp 0.11.5 → 0.11.6
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/dist/action-handshake.d.ts +38 -0
- package/dist/action-handshake.d.ts.map +1 -0
- package/dist/action-handshake.js +127 -0
- package/dist/action-handshake.js.map +1 -0
- package/dist/bin/descry-mcp.d.ts +7 -0
- package/dist/bin/descry-mcp.d.ts.map +1 -0
- package/dist/bin/descry-mcp.js +73 -0
- package/dist/bin/descry-mcp.js.map +1 -0
- package/dist/browser/auth.d.ts +84 -0
- package/dist/browser/auth.d.ts.map +1 -0
- package/dist/browser/auth.js +233 -0
- package/dist/browser/auth.js.map +1 -0
- package/dist/browser/capability-probe.d.ts +109 -0
- package/dist/browser/capability-probe.d.ts.map +1 -0
- package/dist/browser/capability-probe.js +201 -0
- package/dist/browser/capability-probe.js.map +1 -0
- package/dist/browser/driver.d.ts +591 -0
- package/dist/browser/driver.d.ts.map +1 -0
- package/dist/browser/driver.js +116 -0
- package/dist/browser/driver.js.map +1 -0
- package/dist/browser/evidence.d.ts +28 -0
- package/dist/browser/evidence.d.ts.map +1 -0
- package/dist/browser/evidence.js +82 -0
- package/dist/browser/evidence.js.map +1 -0
- package/dist/browser/fake-driver.d.ts +116 -0
- package/dist/browser/fake-driver.d.ts.map +1 -0
- package/dist/browser/fake-driver.js +416 -0
- package/dist/browser/fake-driver.js.map +1 -0
- package/dist/browser/fault-attribution.d.ts +178 -0
- package/dist/browser/fault-attribution.d.ts.map +1 -0
- package/dist/browser/fault-attribution.js +266 -0
- package/dist/browser/fault-attribution.js.map +1 -0
- package/dist/browser/graph-write.d.ts +45 -0
- package/dist/browser/graph-write.d.ts.map +1 -0
- package/dist/browser/graph-write.js +103 -0
- package/dist/browser/graph-write.js.map +1 -0
- package/dist/browser/identity-graph-write.d.ts +55 -0
- package/dist/browser/identity-graph-write.d.ts.map +1 -0
- package/dist/browser/identity-graph-write.js +45 -0
- package/dist/browser/identity-graph-write.js.map +1 -0
- package/dist/browser/page-probe.d.ts +81 -0
- package/dist/browser/page-probe.d.ts.map +1 -0
- package/dist/browser/page-probe.js +202 -0
- package/dist/browser/page-probe.js.map +1 -0
- package/dist/browser/playwright-driver.d.ts +115 -0
- package/dist/browser/playwright-driver.d.ts.map +1 -0
- package/dist/browser/playwright-driver.js +1545 -0
- package/dist/browser/playwright-driver.js.map +1 -0
- package/dist/browser/provider.d.ts +26 -0
- package/dist/browser/provider.d.ts.map +1 -0
- package/dist/browser/provider.js +14 -0
- package/dist/browser/provider.js.map +1 -0
- package/dist/browser/reach-recording-session.d.ts +44 -0
- package/dist/browser/reach-recording-session.d.ts.map +1 -0
- package/dist/browser/reach-recording-session.js +151 -0
- package/dist/browser/reach-recording-session.js.map +1 -0
- package/dist/browser/reachability.d.ts +168 -0
- package/dist/browser/reachability.d.ts.map +1 -0
- package/dist/browser/reachability.js +294 -0
- package/dist/browser/reachability.js.map +1 -0
- package/dist/browser/registry.d.ts +126 -0
- package/dist/browser/registry.d.ts.map +1 -0
- package/dist/browser/registry.js +177 -0
- package/dist/browser/registry.js.map +1 -0
- package/dist/browser/scenario-provenance.d.ts +23 -0
- package/dist/browser/scenario-provenance.d.ts.map +1 -0
- package/dist/browser/scenario-provenance.js +73 -0
- package/dist/browser/scenario-provenance.js.map +1 -0
- package/dist/browser/scenario-resolve.d.ts +28 -0
- package/dist/browser/scenario-resolve.d.ts.map +1 -0
- package/dist/browser/scenario-resolve.js +96 -0
- package/dist/browser/scenario-resolve.js.map +1 -0
- package/dist/browser/scenario-runner.d.ts +72 -0
- package/dist/browser/scenario-runner.d.ts.map +1 -0
- package/dist/browser/scenario-runner.js +353 -0
- package/dist/browser/scenario-runner.js.map +1 -0
- package/dist/browser/stack-parser.d.ts +19 -0
- package/dist/browser/stack-parser.d.ts.map +1 -0
- package/dist/browser/stack-parser.js +85 -0
- package/dist/browser/stack-parser.js.map +1 -0
- package/dist/browser/tool-support.d.ts +71 -0
- package/dist/browser/tool-support.d.ts.map +1 -0
- package/dist/browser/tool-support.js +216 -0
- package/dist/browser/tool-support.js.map +1 -0
- package/dist/browser/url-scheme.d.ts +14 -0
- package/dist/browser/url-scheme.d.ts.map +1 -0
- package/dist/browser/url-scheme.js +38 -0
- package/dist/browser/url-scheme.js.map +1 -0
- package/dist/browser/wait-target.d.ts +37 -0
- package/dist/browser/wait-target.d.ts.map +1 -0
- package/dist/browser/wait-target.js +54 -0
- package/dist/browser/wait-target.js.map +1 -0
- package/dist/cancellation.d.ts +20 -0
- package/dist/cancellation.d.ts.map +1 -0
- package/dist/cancellation.js +41 -0
- package/dist/cancellation.js.map +1 -0
- package/dist/capped.d.ts +39 -0
- package/dist/capped.d.ts.map +1 -0
- package/dist/capped.js +43 -0
- package/dist/capped.js.map +1 -0
- package/dist/credential-store.d.ts +22 -0
- package/dist/credential-store.d.ts.map +1 -0
- package/dist/credential-store.js +33 -0
- package/dist/credential-store.js.map +1 -0
- package/dist/disclosure-ledger.d.ts +14 -0
- package/dist/disclosure-ledger.d.ts.map +1 -0
- package/dist/disclosure-ledger.js +18 -0
- package/dist/disclosure-ledger.js.map +1 -0
- package/dist/evidence/observed-route-evidence.d.ts +25 -0
- package/dist/evidence/observed-route-evidence.d.ts.map +1 -0
- package/dist/evidence/observed-route-evidence.js +76 -0
- package/dist/evidence/observed-route-evidence.js.map +1 -0
- package/dist/heap.d.ts +61 -0
- package/dist/heap.d.ts.map +1 -0
- package/dist/heap.js +82 -0
- package/dist/heap.js.map +1 -0
- package/dist/heartbeat.d.ts +46 -0
- package/dist/heartbeat.d.ts.map +1 -0
- package/dist/heartbeat.js +66 -0
- package/dist/heartbeat.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/module-trust.d.ts +37 -0
- package/dist/module-trust.d.ts.map +1 -0
- package/dist/module-trust.js +77 -0
- package/dist/module-trust.js.map +1 -0
- package/dist/path-confinement.d.ts +31 -0
- package/dist/path-confinement.d.ts.map +1 -0
- package/dist/path-confinement.js +44 -0
- package/dist/path-confinement.js.map +1 -0
- package/dist/planner/predict-then-propose.d.ts +134 -0
- package/dist/planner/predict-then-propose.d.ts.map +1 -0
- package/dist/planner/predict-then-propose.js +138 -0
- package/dist/planner/predict-then-propose.js.map +1 -0
- package/dist/planner/propose-journey.d.ts +75 -0
- package/dist/planner/propose-journey.d.ts.map +1 -0
- package/dist/planner/propose-journey.js +96 -0
- package/dist/planner/propose-journey.js.map +1 -0
- package/dist/protocol.d.ts +57 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +90 -0
- package/dist/protocol.js.map +1 -0
- package/dist/ready-checks.d.ts +12 -0
- package/dist/ready-checks.d.ts.map +1 -0
- package/dist/ready-checks.js +43 -0
- package/dist/ready-checks.js.map +1 -0
- package/dist/registry.d.ts +103 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +327 -0
- package/dist/registry.js.map +1 -0
- package/dist/render.d.ts +623 -0
- package/dist/render.d.ts.map +1 -0
- package/dist/render.js +968 -0
- package/dist/render.js.map +1 -0
- package/dist/runtime-registry.d.ts +22 -0
- package/dist/runtime-registry.d.ts.map +1 -0
- package/dist/runtime-registry.js +142 -0
- package/dist/runtime-registry.js.map +1 -0
- package/dist/sandbox-defaults.d.ts +41 -0
- package/dist/sandbox-defaults.d.ts.map +1 -0
- package/dist/sandbox-defaults.js +14 -0
- package/dist/sandbox-defaults.js.map +1 -0
- package/dist/scenarios/browser-run-plan-projection.d.ts +161 -0
- package/dist/scenarios/browser-run-plan-projection.d.ts.map +1 -0
- package/dist/scenarios/browser-run-plan-projection.js +264 -0
- package/dist/scenarios/browser-run-plan-projection.js.map +1 -0
- package/dist/scenarios/credential-ref.d.ts +102 -0
- package/dist/scenarios/credential-ref.d.ts.map +1 -0
- package/dist/scenarios/credential-ref.js +148 -0
- package/dist/scenarios/credential-ref.js.map +1 -0
- package/dist/scenarios/index.d.ts +7 -0
- package/dist/scenarios/index.d.ts.map +1 -0
- package/dist/scenarios/index.js +7 -0
- package/dist/scenarios/index.js.map +1 -0
- package/dist/scenarios/parse.d.ts +18 -0
- package/dist/scenarios/parse.d.ts.map +1 -0
- package/dist/scenarios/parse.js +212 -0
- package/dist/scenarios/parse.js.map +1 -0
- package/dist/scenarios/scenario.d.ts +93 -0
- package/dist/scenarios/scenario.d.ts.map +1 -0
- package/dist/scenarios/scenario.js +27 -0
- package/dist/scenarios/scenario.js.map +1 -0
- package/dist/scenarios/secret-ref.d.ts +86 -0
- package/dist/scenarios/secret-ref.d.ts.map +1 -0
- package/dist/scenarios/secret-ref.js +125 -0
- package/dist/scenarios/secret-ref.js.map +1 -0
- package/dist/scenarios/storage.d.ts +21 -0
- package/dist/scenarios/storage.d.ts.map +1 -0
- package/dist/scenarios/storage.js +103 -0
- package/dist/scenarios/storage.js.map +1 -0
- package/dist/server.d.ts +61 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +642 -0
- package/dist/server.js.map +1 -0
- package/dist/session.d.ts +356 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +779 -0
- package/dist/session.js.map +1 -0
- package/dist/tools/alias-kit.d.ts +29 -0
- package/dist/tools/alias-kit.d.ts.map +1 -0
- package/dist/tools/alias-kit.js +21 -0
- package/dist/tools/alias-kit.js.map +1 -0
- package/dist/tools/aliases.d.ts +42 -0
- package/dist/tools/aliases.d.ts.map +1 -0
- package/dist/tools/aliases.js +52 -0
- package/dist/tools/aliases.js.map +1 -0
- package/dist/tools/analyze-workspace.d.ts +52 -0
- package/dist/tools/analyze-workspace.d.ts.map +1 -0
- package/dist/tools/analyze-workspace.js +207 -0
- package/dist/tools/analyze-workspace.js.map +1 -0
- package/dist/tools/analyze.d.ts +163 -0
- package/dist/tools/analyze.d.ts.map +1 -0
- package/dist/tools/analyze.js +724 -0
- package/dist/tools/analyze.js.map +1 -0
- package/dist/tools/browser-click.d.ts +18 -0
- package/dist/tools/browser-click.d.ts.map +1 -0
- package/dist/tools/browser-click.js +110 -0
- package/dist/tools/browser-click.js.map +1 -0
- package/dist/tools/browser-close-session.d.ts +39 -0
- package/dist/tools/browser-close-session.d.ts.map +1 -0
- package/dist/tools/browser-close-session.js +120 -0
- package/dist/tools/browser-close-session.js.map +1 -0
- package/dist/tools/browser-fill.d.ts +18 -0
- package/dist/tools/browser-fill.d.ts.map +1 -0
- package/dist/tools/browser-fill.js +117 -0
- package/dist/tools/browser-fill.js.map +1 -0
- package/dist/tools/browser-navigate.d.ts +15 -0
- package/dist/tools/browser-navigate.d.ts.map +1 -0
- package/dist/tools/browser-navigate.js +106 -0
- package/dist/tools/browser-navigate.js.map +1 -0
- package/dist/tools/browser-read.d.ts +33 -0
- package/dist/tools/browser-read.d.ts.map +1 -0
- package/dist/tools/browser-read.js +105 -0
- package/dist/tools/browser-read.js.map +1 -0
- package/dist/tools/browser-run-scenario.d.ts +28 -0
- package/dist/tools/browser-run-scenario.d.ts.map +1 -0
- package/dist/tools/browser-run-scenario.js +238 -0
- package/dist/tools/browser-run-scenario.js.map +1 -0
- package/dist/tools/browser-save-scenario.d.ts +19 -0
- package/dist/tools/browser-save-scenario.d.ts.map +1 -0
- package/dist/tools/browser-save-scenario.js +447 -0
- package/dist/tools/browser-save-scenario.js.map +1 -0
- package/dist/tools/browser-select.d.ts +20 -0
- package/dist/tools/browser-select.d.ts.map +1 -0
- package/dist/tools/browser-select.js +120 -0
- package/dist/tools/browser-select.js.map +1 -0
- package/dist/tools/browser-snapshot.d.ts +46 -0
- package/dist/tools/browser-snapshot.d.ts.map +1 -0
- package/dist/tools/browser-snapshot.js +127 -0
- package/dist/tools/browser-snapshot.js.map +1 -0
- package/dist/tools/browser-start-session.d.ts +24 -0
- package/dist/tools/browser-start-session.d.ts.map +1 -0
- package/dist/tools/browser-start-session.js +653 -0
- package/dist/tools/browser-start-session.js.map +1 -0
- package/dist/tools/browser-submit.d.ts +18 -0
- package/dist/tools/browser-submit.d.ts.map +1 -0
- package/dist/tools/browser-submit.js +106 -0
- package/dist/tools/browser-submit.js.map +1 -0
- package/dist/tools/browser-type.d.ts +18 -0
- package/dist/tools/browser-type.d.ts.map +1 -0
- package/dist/tools/browser-type.js +115 -0
- package/dist/tools/browser-type.js.map +1 -0
- package/dist/tools/browser-wait-for.d.ts +45 -0
- package/dist/tools/browser-wait-for.d.ts.map +1 -0
- package/dist/tools/browser-wait-for.js +164 -0
- package/dist/tools/browser-wait-for.js.map +1 -0
- package/dist/tools/browser.d.ts +69 -0
- package/dist/tools/browser.d.ts.map +1 -0
- package/dist/tools/browser.js +326 -0
- package/dist/tools/browser.js.map +1 -0
- package/dist/tools/chain.d.ts +41 -0
- package/dist/tools/chain.d.ts.map +1 -0
- package/dist/tools/chain.js +101 -0
- package/dist/tools/chain.js.map +1 -0
- package/dist/tools/change-scope.d.ts +25 -0
- package/dist/tools/change-scope.d.ts.map +1 -0
- package/dist/tools/change-scope.js +103 -0
- package/dist/tools/change-scope.js.map +1 -0
- package/dist/tools/code-context.d.ts +83 -0
- package/dist/tools/code-context.d.ts.map +1 -0
- package/dist/tools/code-context.js +432 -0
- package/dist/tools/code-context.js.map +1 -0
- package/dist/tools/contracts.d.ts +74 -0
- package/dist/tools/contracts.d.ts.map +1 -0
- package/dist/tools/contracts.js +214 -0
- package/dist/tools/contracts.js.map +1 -0
- package/dist/tools/cross-pr.d.ts +178 -0
- package/dist/tools/cross-pr.d.ts.map +1 -0
- package/dist/tools/cross-pr.js +362 -0
- package/dist/tools/cross-pr.js.map +1 -0
- package/dist/tools/disclosure.d.ts +75 -0
- package/dist/tools/disclosure.d.ts.map +1 -0
- package/dist/tools/disclosure.js +325 -0
- package/dist/tools/disclosure.js.map +1 -0
- package/dist/tools/draw-conclusion.d.ts +55 -0
- package/dist/tools/draw-conclusion.d.ts.map +1 -0
- package/dist/tools/draw-conclusion.js +243 -0
- package/dist/tools/draw-conclusion.js.map +1 -0
- package/dist/tools/git-context.d.ts +39 -0
- package/dist/tools/git-context.d.ts.map +1 -0
- package/dist/tools/git-context.js +374 -0
- package/dist/tools/git-context.js.map +1 -0
- package/dist/tools/git-diff.d.ts +45 -0
- package/dist/tools/git-diff.d.ts.map +1 -0
- package/dist/tools/git-diff.js +338 -0
- package/dist/tools/git-diff.js.map +1 -0
- package/dist/tools/git-history.d.ts +16 -0
- package/dist/tools/git-history.d.ts.map +1 -0
- package/dist/tools/git-history.js +106 -0
- package/dist/tools/git-history.js.map +1 -0
- package/dist/tools/history.d.ts +34 -0
- package/dist/tools/history.d.ts.map +1 -0
- package/dist/tools/history.js +121 -0
- package/dist/tools/history.js.map +1 -0
- package/dist/tools/impact.d.ts +46 -0
- package/dist/tools/impact.d.ts.map +1 -0
- package/dist/tools/impact.js +225 -0
- package/dist/tools/impact.js.map +1 -0
- package/dist/tools/index.d.ts +59 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +70 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/kit.d.ts +165 -0
- package/dist/tools/kit.d.ts.map +1 -0
- package/dist/tools/kit.js +153 -0
- package/dist/tools/kit.js.map +1 -0
- package/dist/tools/link-workspace.d.ts +24 -0
- package/dist/tools/link-workspace.d.ts.map +1 -0
- package/dist/tools/link-workspace.js +131 -0
- package/dist/tools/link-workspace.js.map +1 -0
- package/dist/tools/lookup.d.ts +19 -0
- package/dist/tools/lookup.d.ts.map +1 -0
- package/dist/tools/lookup.js +63 -0
- package/dist/tools/lookup.js.map +1 -0
- package/dist/tools/mark-incident.d.ts +28 -0
- package/dist/tools/mark-incident.d.ts.map +1 -0
- package/dist/tools/mark-incident.js +171 -0
- package/dist/tools/mark-incident.js.map +1 -0
- package/dist/tools/merged-browser.d.ts +11 -0
- package/dist/tools/merged-browser.d.ts.map +1 -0
- package/dist/tools/merged-browser.js +20 -0
- package/dist/tools/merged-browser.js.map +1 -0
- package/dist/tools/merged-context.d.ts +11 -0
- package/dist/tools/merged-context.d.ts.map +1 -0
- package/dist/tools/merged-context.js +21 -0
- package/dist/tools/merged-context.js.map +1 -0
- package/dist/tools/merged-observe.d.ts +13 -0
- package/dist/tools/merged-observe.d.ts.map +1 -0
- package/dist/tools/merged-observe.js +21 -0
- package/dist/tools/merged-observe.js.map +1 -0
- package/dist/tools/merged-workspace.d.ts +14 -0
- package/dist/tools/merged-workspace.d.ts.map +1 -0
- package/dist/tools/merged-workspace.js +21 -0
- package/dist/tools/merged-workspace.js.map +1 -0
- package/dist/tools/observe-runtime.d.ts +262 -0
- package/dist/tools/observe-runtime.d.ts.map +1 -0
- package/dist/tools/observe-runtime.js +1966 -0
- package/dist/tools/observe-runtime.js.map +1 -0
- package/dist/tools/observe-tests.d.ts +57 -0
- package/dist/tools/observe-tests.d.ts.map +1 -0
- package/dist/tools/observe-tests.js +391 -0
- package/dist/tools/observe-tests.js.map +1 -0
- package/dist/tools/observe.d.ts +28 -0
- package/dist/tools/observe.d.ts.map +1 -0
- package/dist/tools/observe.js +291 -0
- package/dist/tools/observe.js.map +1 -0
- package/dist/tools/pr-analysis.d.ts +189 -0
- package/dist/tools/pr-analysis.d.ts.map +1 -0
- package/dist/tools/pr-analysis.js +365 -0
- package/dist/tools/pr-analysis.js.map +1 -0
- package/dist/tools/pre-push.d.ts +168 -0
- package/dist/tools/pre-push.d.ts.map +1 -0
- package/dist/tools/pre-push.js +416 -0
- package/dist/tools/pre-push.js.map +1 -0
- package/dist/tools/predict-reach.d.ts +57 -0
- package/dist/tools/predict-reach.d.ts.map +1 -0
- package/dist/tools/predict-reach.js +183 -0
- package/dist/tools/predict-reach.js.map +1 -0
- package/dist/tools/propagation.d.ts +37 -0
- package/dist/tools/propagation.d.ts.map +1 -0
- package/dist/tools/propagation.js +162 -0
- package/dist/tools/propagation.js.map +1 -0
- package/dist/tools/propose-journey.d.ts +16 -0
- package/dist/tools/propose-journey.d.ts.map +1 -0
- package/dist/tools/propose-journey.js +132 -0
- package/dist/tools/propose-journey.js.map +1 -0
- package/dist/tools/prove-reach.d.ts +74 -0
- package/dist/tools/prove-reach.d.ts.map +1 -0
- package/dist/tools/prove-reach.js +274 -0
- package/dist/tools/prove-reach.js.map +1 -0
- package/dist/tools/questions.d.ts +30 -0
- package/dist/tools/questions.d.ts.map +1 -0
- package/dist/tools/questions.js +230 -0
- package/dist/tools/questions.js.map +1 -0
- package/dist/tools/refusal-fetch.d.ts +35 -0
- package/dist/tools/refusal-fetch.d.ts.map +1 -0
- package/dist/tools/refusal-fetch.js +123 -0
- package/dist/tools/refusal-fetch.js.map +1 -0
- package/dist/tools/runtime-incident.d.ts +33 -0
- package/dist/tools/runtime-incident.d.ts.map +1 -0
- package/dist/tools/runtime-incident.js +67 -0
- package/dist/tools/runtime-incident.js.map +1 -0
- package/dist/tools/runtime-journey-drive.d.ts +102 -0
- package/dist/tools/runtime-journey-drive.d.ts.map +1 -0
- package/dist/tools/runtime-journey-drive.js +247 -0
- package/dist/tools/runtime-journey-drive.js.map +1 -0
- package/dist/tools/scope.d.ts +45 -0
- package/dist/tools/scope.d.ts.map +1 -0
- package/dist/tools/scope.js +217 -0
- package/dist/tools/scope.js.map +1 -0
- package/dist/tools/similar-incidents.d.ts +43 -0
- package/dist/tools/similar-incidents.d.ts.map +1 -0
- package/dist/tools/similar-incidents.js +190 -0
- package/dist/tools/similar-incidents.js.map +1 -0
- package/dist/tools/validate.d.ts +133 -0
- package/dist/tools/validate.d.ts.map +1 -0
- package/dist/tools/validate.js +488 -0
- package/dist/tools/validate.js.map +1 -0
- package/dist/tools/verb.d.ts +46 -0
- package/dist/tools/verb.d.ts.map +1 -0
- package/dist/tools/verb.js +78 -0
- package/dist/tools/verb.js.map +1 -0
- package/dist/tools/verification-status.d.ts +38 -0
- package/dist/tools/verification-status.d.ts.map +1 -0
- package/dist/tools/verification-status.js +203 -0
- package/dist/tools/verification-status.js.map +1 -0
- package/dist/tools/verify-claim.d.ts +29 -0
- package/dist/tools/verify-claim.d.ts.map +1 -0
- package/dist/tools/verify-claim.js +218 -0
- package/dist/tools/verify-claim.js.map +1 -0
- package/dist/tools/workspace.d.ts +28 -0
- package/dist/tools/workspace.d.ts.map +1 -0
- package/dist/tools/workspace.js +94 -0
- package/dist/tools/workspace.js.map +1 -0
- package/dist/transport.d.ts +32 -0
- package/dist/transport.d.ts.map +1 -0
- package/dist/transport.js +85 -0
- package/dist/transport.js.map +1 -0
- package/dist/workspace-index.d.ts +164 -0
- package/dist/workspace-index.d.ts.map +1 -0
- package/dist/workspace-index.js +381 -0
- package/dist/workspace-index.js.map +1 -0
- package/package.json +3 -3
package/dist/render.d.ts
ADDED
|
@@ -0,0 +1,623 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one way an engine answer becomes an MCP tool result.
|
|
3
|
+
*
|
|
4
|
+
* ## Why this file exists rather than each tool formatting its own reply
|
|
5
|
+
*
|
|
6
|
+
* `QueryResult` carries three things a caller would rather not think about: a
|
|
7
|
+
* staleness stamp (§27.3), a `truncated` flag, and `notes` — the plain-words
|
|
8
|
+
* disclosures that populate the five result states' `refused`/`empty`/`failed`/
|
|
9
|
+
* `timed_out` cases. The engine computes all three correctly today. Every one of
|
|
10
|
+
* them is one careless `return result.data` away from never reaching a user.
|
|
11
|
+
*
|
|
12
|
+
* So the tool handler's return type is `QueryResult`, not content. A handler
|
|
13
|
+
* *cannot* build a reply; it can only produce an answer, and this module is the
|
|
14
|
+
* only thing that turns an answer into frames. Rule 7 — honest degradation, no
|
|
15
|
+
* silent doing-less — becomes a property of the type system rather than of
|
|
16
|
+
* whoever writes the next tool.
|
|
17
|
+
*
|
|
18
|
+
* ## `ai-tool-contract.md` §2 — the frozen envelope
|
|
19
|
+
*
|
|
20
|
+
* This module used to ship a two-value `status: "ok" | "not_analysable"`. The
|
|
21
|
+
* contract froze five: `ok` / `empty` / `refused` / `failed` / `timed_out`
|
|
22
|
+
* (§1), plus `class`, `toolVersion`, `budget` and a structured `truncated`
|
|
23
|
+
* object (§2). `AnswerStatus`/`renderAnswer`'s old two-state shape is gone
|
|
24
|
+
* rather than kept alongside the new one — two envelope shapes on the wire is
|
|
25
|
+
* the thing DEC-277's "one process mints" reasoning exists to avoid one layer
|
|
26
|
+
* up, applied here to a type rather than a decision number.
|
|
27
|
+
*
|
|
28
|
+
* ## Four invariants, asserted rather than documented (§2.1)
|
|
29
|
+
*
|
|
30
|
+
* `render.ts` already enforced the first two; the other two are new.
|
|
31
|
+
*
|
|
32
|
+
* 1. `truncated != null` with empty `disclosures` → throw.
|
|
33
|
+
* 2. `state` in `{refused, failed, timed_out}` with empty `disclosures` → throw.
|
|
34
|
+
* 3. `state == "refused"` with no verbatim reason in `disclosures` → throw (§4).
|
|
35
|
+
* 4. `class == "action"` returning anything other than a handshake envelope on
|
|
36
|
+
* the first call → throw (§7) — enforced in `action-handshake.ts` and
|
|
37
|
+
* `server.ts`, not here: this module never sees a mint, only a redeemed run.
|
|
38
|
+
*
|
|
39
|
+
* ## A fifth invariant, B6: a truncated answer must carry real counts
|
|
40
|
+
*
|
|
41
|
+
* `result.truncated === true` with no `answer.truncatedDetail` used to fall
|
|
42
|
+
* back to a sentinel, `{shown: -1, total: -1}` — chosen to be "unmistakably
|
|
43
|
+
* fake," except that it is a number, so it passes any presence check and then
|
|
44
|
+
* poisons whatever arithmetic reads `total - shown`. A field that lies is
|
|
45
|
+
* worse than a field that is absent, which is the same argument the five
|
|
46
|
+
* result states rest on. So the sentinel is gone: a tool that sets
|
|
47
|
+
* `result.truncated` without a `truncatedDetail` is a programming error,
|
|
48
|
+
* thrown in every environment except production, where the envelope instead
|
|
49
|
+
* reports `truncated: null` plus a disclosure naming the gap — degraded
|
|
50
|
+
* honestly rather than dishonestly precise. See `capped()` in `./capped.ts`
|
|
51
|
+
* for how a tool is meant to avoid ever hitting this.
|
|
52
|
+
*/
|
|
53
|
+
import { type ReliabilityClass, type ReportCategory } from "@descryy/ir";
|
|
54
|
+
import type { ResultState, SignalTypeCount, ToolClass } from "@descryy/ir";
|
|
55
|
+
import type { GraphFreshness, GraphStamp, QueryResult } from "@descryy/core";
|
|
56
|
+
import type { DisclosureLedger } from "./disclosure-ledger.ts";
|
|
57
|
+
export type { ResultState } from "@descryy/ir";
|
|
58
|
+
/**
|
|
59
|
+
* MK-5 — which of the sixteen tools states a conclusion about the user's code
|
|
60
|
+
* versus which reports a fact about the graph.
|
|
61
|
+
*
|
|
62
|
+
* Lives here rather than in `@descryy/ir`: `tool-surface.ts`'s own header
|
|
63
|
+
* scopes that file to exactly `ResultState` and `ToolClass` ("and nothing
|
|
64
|
+
* else"), because those two cross into the pipeline and the desktop surface.
|
|
65
|
+
* This distinction is agent-mode-only (`plugin-and-mcp-surface.md` §3 PL-1),
|
|
66
|
+
* so a third shared union there would be scope creep the file's own doc
|
|
67
|
+
* disclaims. `kit.ts` imports it from here rather than the reverse, because
|
|
68
|
+
* `kit.ts` already depends on this module for `ToolAnswer`/`TruncationDetail`
|
|
69
|
+
* — defining it in `kit.ts` instead would make this module import back from
|
|
70
|
+
* `kit.ts` and cycle.
|
|
71
|
+
*
|
|
72
|
+
* - `conclusion` — the output is a statement about the user's code
|
|
73
|
+
* (`validate`, `contracts`, `cross_pr`). Never raw candidates: an
|
|
74
|
+
* already-adjudicated result carrying the category and the disclosure
|
|
75
|
+
* sentence as one payload.
|
|
76
|
+
* - `evidence` — the output is a fact the graph computed, already carrying
|
|
77
|
+
* its own resolution and qualification. The other thirteen.
|
|
78
|
+
*/
|
|
79
|
+
export declare const TOOL_TIERS: readonly ["conclusion", "evidence"];
|
|
80
|
+
export type ToolTier = (typeof TOOL_TIERS)[number];
|
|
81
|
+
/**
|
|
82
|
+
* MK-6 — a conclusion produced through this server must not carry the same
|
|
83
|
+
* badge as one produced by the app's full governance pipeline
|
|
84
|
+
* (`plugin-and-mcp-surface.md` §3 PL-4). Every value here is a fact about
|
|
85
|
+
* *this server*, not about any one call, so it is one constant reused on
|
|
86
|
+
* every envelope rather than a per-tool computation.
|
|
87
|
+
*/
|
|
88
|
+
export interface Provenance {
|
|
89
|
+
readonly surface: "mcp";
|
|
90
|
+
readonly adjudicatedBy: "descry";
|
|
91
|
+
readonly presentedBy: "host-agent";
|
|
92
|
+
/** MK-11: the G1–G5 governance pipeline does not run in this surface. */
|
|
93
|
+
readonly governancePipeline: false;
|
|
94
|
+
}
|
|
95
|
+
export interface TruncationDetail {
|
|
96
|
+
/** How many of the primary collection are in this reply. */
|
|
97
|
+
readonly shown: number;
|
|
98
|
+
/** The count before the cap — §5.5: "the count before the cap". */
|
|
99
|
+
readonly total: number;
|
|
100
|
+
/** A cursor to fetch the rest. `null` until pagination exists to redeem one. */
|
|
101
|
+
readonly more: string | null;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* What a tool that actually watched a running application declares about what
|
|
105
|
+
* it saw — G4's `E`, and by its presence G3's precondition.
|
|
106
|
+
*
|
|
107
|
+
* **Presence is the claim, not the count.** A tool constructs this only on a
|
|
108
|
+
* path where an execution really ran and evidence really came back; omitting
|
|
109
|
+
* it is how every other tool says "nothing was witnessed here", which is the
|
|
110
|
+
* safe default and the one thirty-one of the thirty-three tools take. The two
|
|
111
|
+
* that declare it are `observe_runtime` and `observe_tests` — the two that
|
|
112
|
+
* run something.
|
|
113
|
+
*
|
|
114
|
+
* `E` is a count of *channels*, not of records: six console messages are one
|
|
115
|
+
* signal type, a console message plus a network response are two
|
|
116
|
+
* (`@descryy/ir`'s {@link RUNTIME_SIGNAL_TYPES}). Compute it with that
|
|
117
|
+
* package's `independentSignalTypes` rather than counting here — the clamp to
|
|
118
|
+
* the six declared channels is its job, and a second implementation of it is a
|
|
119
|
+
* second place for the vocabulary to drift.
|
|
120
|
+
*
|
|
121
|
+
* There is deliberately no `M` field — see `deriveEnvelopeCategory`.
|
|
122
|
+
*/
|
|
123
|
+
export interface WitnessedEvidence {
|
|
124
|
+
readonly independentSignalTypes: SignalTypeCount;
|
|
125
|
+
}
|
|
126
|
+
export interface ToolAnswer<T> {
|
|
127
|
+
readonly result: QueryResult<T>;
|
|
128
|
+
/**
|
|
129
|
+
* Present only on a path that observed a real running application. Absent
|
|
130
|
+
* everywhere else, which is what makes `unconfirmed` the default for a
|
|
131
|
+
* graph-only answer rather than something each tool must remember to ask
|
|
132
|
+
* for. See {@link WitnessedEvidence} and `AnswerEnvelope.reportCategory`.
|
|
133
|
+
*/
|
|
134
|
+
readonly runtimeEvidence?: WitnessedEvidence;
|
|
135
|
+
/**
|
|
136
|
+
* One of the five result states (§1). Omitted means `"ok"` — the common
|
|
137
|
+
* case, and the one that needs no tool-author ceremony.
|
|
138
|
+
*
|
|
139
|
+
* `"empty"` is a claim a tool must *earn* (§1.3b): reach for it only when
|
|
140
|
+
* the search ran against a population known to be real (an `analysed`/`ran`
|
|
141
|
+
* flag already true, a resolved node, a read that completed). Default to
|
|
142
|
+
* `"refused"` when that is not established — never to `"ok"` with a quietly
|
|
143
|
+
* empty collection, which is the exact defect §1 exists to close.
|
|
144
|
+
*/
|
|
145
|
+
readonly state?: ResultState;
|
|
146
|
+
/**
|
|
147
|
+
* Is this a claim about a *name* or about a *shape*? §11A.5 gives R2 two
|
|
148
|
+
* different caps depending on the answer, so it is required rather than
|
|
149
|
+
* defaulted — see `reliabilityCap`.
|
|
150
|
+
*/
|
|
151
|
+
readonly nameLevel: boolean;
|
|
152
|
+
/** One line the agent reads first. The payload is underneath it. */
|
|
153
|
+
readonly headline: string;
|
|
154
|
+
/**
|
|
155
|
+
* Present only when the tool already computed `shown`/`total` for its
|
|
156
|
+
* primary list at the return site (most do, for the "N further… capped at
|
|
157
|
+
* limit" note). `null` falls back to a bare boolean-shaped truncation with
|
|
158
|
+
* no counts — still non-null per invariant 1, just less informative.
|
|
159
|
+
*/
|
|
160
|
+
readonly truncatedDetail?: TruncationDetail;
|
|
161
|
+
/**
|
|
162
|
+
* §5.4's `refusals` field, populated by a tool whose *own call* produced a
|
|
163
|
+
* fresh population of `UnresolvedRef` rows to summarise — as opposed to
|
|
164
|
+
* `refusal_fetch`, which pages the whole graph's stored ledger. `analyze`
|
|
165
|
+
* is the one tool that fits today: a run reads sources and the refs it
|
|
166
|
+
* could not resolve are this call's own result, not a read of prior state.
|
|
167
|
+
* Omit when the tool has no such population, or when it summarised zero
|
|
168
|
+
* rows — an empty summary carries no exemplar or handle to show.
|
|
169
|
+
*/
|
|
170
|
+
readonly refusalSummary?: {
|
|
171
|
+
readonly count: number;
|
|
172
|
+
readonly exemplar: string;
|
|
173
|
+
readonly handle: string;
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* How this tool shrinks its own reply when the rendered result would exceed
|
|
177
|
+
* `MAX_REPLY_BYTES`. Called with the bytes available for `data` alone, every
|
|
178
|
+
* other cost already subtracted; called again with a corrected figure if the
|
|
179
|
+
* first attempt still comes in over.
|
|
180
|
+
*
|
|
181
|
+
* Optional, and absent means today's behaviour — the reply is rendered at
|
|
182
|
+
* whatever size it comes to. A tool whose payload is already bounded (a node
|
|
183
|
+
* `limit`, a single verdict) needs no hook; a tool whose reply grows with the
|
|
184
|
+
* user's repository does, and `get_git_diff` is the one that proved it.
|
|
185
|
+
*/
|
|
186
|
+
readonly fitToBudget?: (budgetBytes: number) => ReplyFit<T>;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* The ceiling on one rendered tool result, serialized — `content` frame and
|
|
190
|
+
* `structuredContent` envelope together, which is what a host actually
|
|
191
|
+
* receives and counts.
|
|
192
|
+
*
|
|
193
|
+
* A starting value, not a measurement, in this repo's usual sense: the one
|
|
194
|
+
* hard number behind it is a real failure, `get_git_diff` on an ordinary
|
|
195
|
+
* 48-file branch diff returning 84,516 characters and being rejected outright
|
|
196
|
+
* by the host before the caller saw any of it. 60,000 sits well under the
|
|
197
|
+
* smallest size observed to fail, with room for the narrated frame that
|
|
198
|
+
* repeats the disclosures alongside the envelope.
|
|
199
|
+
*
|
|
200
|
+
* Shared rather than per-tool on purpose: `get_git_diff` is the tool that hit
|
|
201
|
+
* this, twice, but nothing about the failure was specific to diffs. Any tool
|
|
202
|
+
* adopts the ceiling by implementing `ToolAnswer.fitToBudget`.
|
|
203
|
+
*/
|
|
204
|
+
export declare const MAX_REPLY_BYTES = 60000;
|
|
205
|
+
/**
|
|
206
|
+
* A tool's own answer to "make this fit in `budgetBytes`".
|
|
207
|
+
*
|
|
208
|
+
* Only the tool can shrink its payload honestly — which field is droppable,
|
|
209
|
+
* what the caller must be told about the drop, and what re-request would
|
|
210
|
+
* recover it are all facts about that tool. So the ceiling is enforced here
|
|
211
|
+
* and the shrinking is delegated, rather than this module truncating a shape
|
|
212
|
+
* it does not understand.
|
|
213
|
+
*/
|
|
214
|
+
export interface ReplyFit<T> {
|
|
215
|
+
readonly data: T;
|
|
216
|
+
/**
|
|
217
|
+
* Disclosures naming exactly what the budget withheld — appended to the
|
|
218
|
+
* tool's own notes. Must be non-empty whenever anything was withheld or
|
|
219
|
+
* dropped: a reply shrunk in silence is the failure rule 7 exists to stop.
|
|
220
|
+
*/
|
|
221
|
+
readonly notes: readonly string[];
|
|
222
|
+
/** Set when items left the reply entirely, not merely lost their payload. */
|
|
223
|
+
readonly truncatedDetail?: TruncationDetail;
|
|
224
|
+
}
|
|
225
|
+
export interface McpContent {
|
|
226
|
+
readonly type: "text";
|
|
227
|
+
readonly text: string;
|
|
228
|
+
}
|
|
229
|
+
export interface CallToolResult {
|
|
230
|
+
readonly content: readonly McpContent[];
|
|
231
|
+
readonly structuredContent: Record<string, unknown>;
|
|
232
|
+
readonly isError?: boolean;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* The machine-readable envelope. Shape is stable across every tool.
|
|
236
|
+
*
|
|
237
|
+
* `T` is the tool's own `data` type — every tool exports one (`ImpactData`,
|
|
238
|
+
* `ScopeData`, …) and types its handler against it, so `tsc` rejects a handler
|
|
239
|
+
* that returns a shape the declaration does not name. The parameter defaults
|
|
240
|
+
* to `unknown` so a caller handling any tool's reply generically still type
|
|
241
|
+
* checks; a caller that knows which tool it called writes
|
|
242
|
+
* `AnswerEnvelope<ImpactData>` and gets the shape.
|
|
243
|
+
*/
|
|
244
|
+
export interface AnswerEnvelope<T = unknown> {
|
|
245
|
+
readonly tool: string;
|
|
246
|
+
/** Contract §6, rule 8. A behaviour change is a version bump; recorded with the run. */
|
|
247
|
+
readonly toolVersion: string;
|
|
248
|
+
/**
|
|
249
|
+
* B10 — this call's own id in `Session#recordedCalls()`, minted before
|
|
250
|
+
* rendering (`Session#allocateCallId`) so it can be carried here rather
|
|
251
|
+
* than only discovered after the fact. A caller reads this off a real
|
|
252
|
+
* reply and cites it in `verify_claim`'s `callId` — the positive path that
|
|
253
|
+
* was previously unreachable because the id used to be minted only when
|
|
254
|
+
* `Session#recordCall` ran, one step after the envelope that would have
|
|
255
|
+
* carried it was already built and sent. Not recorded here — `verify_claim`
|
|
256
|
+
* itself is excluded from `Session#recordCall` (MK-12) and every other
|
|
257
|
+
* path still records under this same value, so the id an agent reads is
|
|
258
|
+
* always the id `recordedCall` will actually find.
|
|
259
|
+
*/
|
|
260
|
+
readonly callId: string;
|
|
261
|
+
readonly state: ResultState;
|
|
262
|
+
/** DEC-278's three classes — §6's retry table reads this. */
|
|
263
|
+
readonly class: ToolClass;
|
|
264
|
+
readonly headline: string;
|
|
265
|
+
/** `null` on `failed` (§2.2: always). May carry disambiguation, never an answer, on `refused`. */
|
|
266
|
+
readonly data: T | null;
|
|
267
|
+
readonly graph: {
|
|
268
|
+
readonly commitSha: string | null;
|
|
269
|
+
readonly builtAt: string | null;
|
|
270
|
+
readonly irSchemaVersion: number;
|
|
271
|
+
/** `null` — never absent — when the graph was not consulted at all (§3). */
|
|
272
|
+
readonly resolutionFloor: number | null;
|
|
273
|
+
readonly reliabilityCap: ReliabilityClass;
|
|
274
|
+
/**
|
|
275
|
+
* Lane "map-freshness" item 1: whether this graph still matches the
|
|
276
|
+
* repository on disk, distinct from `commitSha`/`builtAt` alone — a
|
|
277
|
+
* caller reading only the stamp has no way to tell "built five minutes
|
|
278
|
+
* ago" from "built five hundred commits ago" without running git itself.
|
|
279
|
+
* `null` only when `commitSha` is `null` (an empty graph has nothing to
|
|
280
|
+
* be fresh or stale relative to). Otherwise never absent, and `unknown`
|
|
281
|
+
* — never `current` — when this could not be determined (not a git
|
|
282
|
+
* repository, or git itself unavailable here); see `computeGraphFreshness`
|
|
283
|
+
* (`@descryy/core`) for how it is computed.
|
|
284
|
+
*/
|
|
285
|
+
readonly freshness: {
|
|
286
|
+
readonly status: "current" | "behind" | "unknown";
|
|
287
|
+
/** `null` when `status !== "behind"`, or when `behind` but the exact
|
|
288
|
+
* count could not be determined (history rewritten since the build) —
|
|
289
|
+
* never a substitute for `0`. */
|
|
290
|
+
readonly commitsSince: number | null;
|
|
291
|
+
/** Count of indexed files that differ from the build, or `null` when
|
|
292
|
+
* `status !== "behind"`. The files themselves are named in `disclosures`
|
|
293
|
+
* (up to 5), not repeated here. */
|
|
294
|
+
readonly changedIndexedFiles: number | null;
|
|
295
|
+
} | null;
|
|
296
|
+
};
|
|
297
|
+
readonly truncated: TruncationDetail | null;
|
|
298
|
+
/**
|
|
299
|
+
* §5.4. `null` unless the answering tool supplied `refusalSummary` — see
|
|
300
|
+
* that field's own doc for which tools have a population to summarise.
|
|
301
|
+
*/
|
|
302
|
+
readonly refusals: {
|
|
303
|
+
readonly count: number;
|
|
304
|
+
readonly exemplar: string;
|
|
305
|
+
readonly handle: string;
|
|
306
|
+
} | null;
|
|
307
|
+
readonly budget: {
|
|
308
|
+
readonly elapsedMs: number;
|
|
309
|
+
readonly limitMs: number;
|
|
310
|
+
};
|
|
311
|
+
/** Never empty when the answer is degraded, truncated or refused/failed/timed-out. */
|
|
312
|
+
readonly disclosures: readonly string[];
|
|
313
|
+
/**
|
|
314
|
+
* N2 step 3 — a machine-readable qualifier on this reply, not a sixth
|
|
315
|
+
* `state`: `true` means the running server's in-memory configuration no
|
|
316
|
+
* longer matches `.descry/config.json` on disk (another session's edit, a
|
|
317
|
+
* `link_workspace` call, a hand edit), so everything else in this envelope
|
|
318
|
+
* — including `graph` and `reportCategory` — reflects the stale, running
|
|
319
|
+
* configuration rather than what is on disk now. A caller can branch on
|
|
320
|
+
* this directly instead of pattern-matching prose in `disclosures`, where
|
|
321
|
+
* the same fact is also stated in full for a human reader.
|
|
322
|
+
*/
|
|
323
|
+
readonly configStale: boolean;
|
|
324
|
+
/**
|
|
325
|
+
* MK-8/MK-11 — §19's five categories, settled for this surface: a
|
|
326
|
+
* `conclusion`-tier tool states its verdict in `headline`'s own plain words
|
|
327
|
+
* rather than through this apparatus (it is a fact, not a hypothesis), so
|
|
328
|
+
* this is `null` there. For an `evidence`-tier tool: `refused` maps to the
|
|
329
|
+
* direct equivalent, `not analysable` ("could not look" vs. "cannot
|
|
330
|
+
* establish this here" are the same statement); `failed`/`timed_out` carry
|
|
331
|
+
* no claim at all, so `null`; `ok`/`empty` go through G3/G4.
|
|
332
|
+
*
|
|
333
|
+
* **A graph-only answer short-circuits at G3 and is `unconfirmed`** — a
|
|
334
|
+
* structural fact with no runtime corroboration is never `confirmed` by
|
|
335
|
+
* construction, whatever its resolution.
|
|
336
|
+
*
|
|
337
|
+
* **An answer that watched a running application does not.** MK-8 was
|
|
338
|
+
* written when nothing in this surface could witness anything, and its
|
|
339
|
+
* "descry-runtime's loop does not run inside an MCP call" was true then;
|
|
340
|
+
* `observe_runtime` composes descry-runtime, boots or attaches to a real
|
|
341
|
+
* application and writes R4 edges, so it is now false for exactly the tools
|
|
342
|
+
* that do. Such a tool declares {@link ToolAnswer.runtimeEvidence} and G4
|
|
343
|
+
* runs on what it actually saw. Reporting a witnessed result more weakly
|
|
344
|
+
* than the evidence under it inverts rule 2's whole purpose, which is why
|
|
345
|
+
* this is a defect rather than conservatism.
|
|
346
|
+
*
|
|
347
|
+
* `confirmed` stays unreachable from here regardless — DEC-334 reserves it
|
|
348
|
+
* for a result that passed the full governance pipeline, "on every surface,
|
|
349
|
+
* meaning the same thing everywhere", and that pipeline does not run in an
|
|
350
|
+
* MCP call (`provenance.governancePipeline` says so on every reply). So
|
|
351
|
+
* `strongly supported` is this surface's ceiling, and it is reached by
|
|
352
|
+
* evidence rather than granted.
|
|
353
|
+
*/
|
|
354
|
+
readonly reportCategory: ReportCategory | null;
|
|
355
|
+
/**
|
|
356
|
+
* **Existence** — how strongly the evidence says the failure is *real*, read from what was
|
|
357
|
+
* observed and never capped by how well the code resolved
|
|
358
|
+
* (`documents/plans/gate_loosening.md` §3.3).
|
|
359
|
+
*
|
|
360
|
+
* `reportCategory` above answers a different question — how strongly the *cause* may be
|
|
361
|
+
* stated — and rule 3's cap governs it alone. The two separate exactly where it matters: a
|
|
362
|
+
* reply whose graph resolved nothing (R0) caps to `unconfirmed` however much was witnessed,
|
|
363
|
+
* because at R0 no cause has been established. That is a true statement about the cause and
|
|
364
|
+
* a misleading one about the failure, and this field is the second half.
|
|
365
|
+
*
|
|
366
|
+
* Null wherever no evidence reading was taken at all — conclusion-tier tools, faults, and
|
|
367
|
+
* refusals. A refusal is a fact about Descry, never about the application, so it declares no
|
|
368
|
+
* existence rather than declaring `unconfirmed`, which would read as "we looked and found
|
|
369
|
+
* nothing."
|
|
370
|
+
*
|
|
371
|
+
* `confirmed` is unreachable here for the same reason it is above: `M` is not offered on this
|
|
372
|
+
* surface, so `strongly supported` is the ceiling.
|
|
373
|
+
*/
|
|
374
|
+
readonly existenceCategory: ReportCategory | null;
|
|
375
|
+
/** MK-6. Constant for this server — see `Provenance`'s own doc. */
|
|
376
|
+
readonly provenance: Provenance;
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* The envelope, declared for a host to validate against — MCP's `outputSchema`.
|
|
380
|
+
*
|
|
381
|
+
* ## Why this exists at all
|
|
382
|
+
*
|
|
383
|
+
* Every reply from this server carries `structuredContent`, and until this was
|
|
384
|
+
* added a host had no way to check what it received. `tools/list` already ships
|
|
385
|
+
* `class`, `tier` and `toolVersion` on the same reasoning — a fact about the
|
|
386
|
+
* reply that an external client cannot otherwise read — and this is the
|
|
387
|
+
* standard-shaped member of that group rather than a fourth non-standard field.
|
|
388
|
+
*
|
|
389
|
+
* ## `data` is deliberately open, and that is a disclosed gap
|
|
390
|
+
*
|
|
391
|
+
* The envelope's thirteen fields are uniform across all thirty-three tools, so they
|
|
392
|
+
* are described exactly. `data` is not: its shape is `ImpactData`, `ScopeData`
|
|
393
|
+
* and thirty-one others, and nothing today derives a JSON Schema from those
|
|
394
|
+
* TypeScript types. Hand-writing thirty-three schemas would put a second description
|
|
395
|
+
* of each shape in a second place with nothing checking the two agree — the
|
|
396
|
+
* drift this repo has already paid for once with the tool count in prose, and
|
|
397
|
+
* a schema that is confidently wrong about `data` is worse for a validating
|
|
398
|
+
* host than one that declines to describe it.
|
|
399
|
+
*
|
|
400
|
+
* So `data` is `{}` — "anything" — and this paragraph is the disclosure rather
|
|
401
|
+
* than a silent omission (rule 7). Tightening it is real work with a real
|
|
402
|
+
* prerequisite: a generator from the handler types, or the schemas checked
|
|
403
|
+
* against recorded replies. Until then the promise made here is exactly the
|
|
404
|
+
* promise kept.
|
|
405
|
+
*
|
|
406
|
+
* ## The enums are read, not restated
|
|
407
|
+
*
|
|
408
|
+
* `state`, `class`, `reportCategory` and `reliabilityCap` build their `enum`
|
|
409
|
+
* from the exported vocabulary arrays. A restated list is a second source of
|
|
410
|
+
* truth that goes stale in silence; spread from the array, adding a report
|
|
411
|
+
* category and forgetting the schema is a red test instead.
|
|
412
|
+
*/
|
|
413
|
+
export declare const ANSWER_ENVELOPE_SCHEMA: Record<string, unknown>;
|
|
414
|
+
/**
|
|
415
|
+
* The other shape a `tools/call` can return — `renderToolError`'s, now
|
|
416
|
+
* narrowed to the two cases where no tool was ever resolved (`name` not a
|
|
417
|
+
* string, or a name the registry does not have): there is no `ToolDefinition`
|
|
418
|
+
* to draw a real envelope from. A bad argument against a *resolved* tool goes
|
|
419
|
+
* through `renderRefusedInput` instead and is a real `state: "refused"`
|
|
420
|
+
* envelope — see that function's doc.
|
|
421
|
+
*
|
|
422
|
+
* Declared rather than quietly excluded. A schema that admitted only the
|
|
423
|
+
* envelope would be one the server itself violates on this narrower path.
|
|
424
|
+
* Declaring a union that is true beats declaring a single shape that is tidy.
|
|
425
|
+
*/
|
|
426
|
+
export declare const TOOL_ERROR_SCHEMA: Record<string, unknown>;
|
|
427
|
+
/**
|
|
428
|
+
* What every tool declares as its `outputSchema`: the envelope or the argument
|
|
429
|
+
* error, discriminated by their required fields.
|
|
430
|
+
*
|
|
431
|
+
* One shared constant rather than a per-tool object because the shape genuinely
|
|
432
|
+
* is shared — the only per-tool part is `data`, which is open. When `data`
|
|
433
|
+
* becomes describable this becomes a function of the tool.
|
|
434
|
+
*/
|
|
435
|
+
export declare const TOOL_OUTPUT_SCHEMA: Record<string, unknown>;
|
|
436
|
+
export declare class DisclosureError extends Error {
|
|
437
|
+
constructor(message: string);
|
|
438
|
+
}
|
|
439
|
+
export interface RenderOptions {
|
|
440
|
+
readonly toolVersion: string;
|
|
441
|
+
readonly toolClass: ToolClass;
|
|
442
|
+
/** MK-5/MK-8 — which report-category rule applies. See `ToolTier`. */
|
|
443
|
+
readonly toolTier: ToolTier;
|
|
444
|
+
readonly elapsedMs: number;
|
|
445
|
+
readonly limitMs: number;
|
|
446
|
+
/**
|
|
447
|
+
* B10 — the id this call will be recorded under, minted by
|
|
448
|
+
* `Session#allocateCallId()` before `renderAnswer` runs so it can be
|
|
449
|
+
* threaded into the envelope's own `callId`. Optional so every direct
|
|
450
|
+
* `renderAnswer` call in a test — none of which has a session's id
|
|
451
|
+
* sequence to draw from, and none of which asserts on `callId` — keeps
|
|
452
|
+
* compiling unchanged; a random id fills the gap there. `server.ts` is the
|
|
453
|
+
* one caller for which this matters and it always supplies a real one.
|
|
454
|
+
*/
|
|
455
|
+
readonly callId?: string;
|
|
456
|
+
/**
|
|
457
|
+
* Set only when this call arrived under a retired tool name. Both halves are
|
|
458
|
+
* carried because the disclosure names both: what the caller said, and what
|
|
459
|
+
* answered. See `tools/aliases.ts` for why retired names dispatch at all.
|
|
460
|
+
*/
|
|
461
|
+
readonly aliasedFrom?: string;
|
|
462
|
+
readonly aliasedTo?: string;
|
|
463
|
+
/**
|
|
464
|
+
* This connection's record of which standing disclosures it has already been
|
|
465
|
+
* given in full. Optional: a caller with no session to dedupe within (every
|
|
466
|
+
* direct `renderAnswer` in a test, every non-server consumer) gets the full
|
|
467
|
+
* sentence every time, which is the safe default — a short reference to a
|
|
468
|
+
* paragraph nobody was shown is worse than the repetition.
|
|
469
|
+
*/
|
|
470
|
+
readonly disclosureLedger?: DisclosureLedger;
|
|
471
|
+
/**
|
|
472
|
+
* Overrides `MAX_REPLY_BYTES`. Exists so a test can prove the fitting
|
|
473
|
+
* behaviour against a small, deterministic ceiling rather than by generating
|
|
474
|
+
* 60KB of real data — the ceiling's *value* is a starting number, but the
|
|
475
|
+
* mechanism reacting to it must be checkable exactly.
|
|
476
|
+
*/
|
|
477
|
+
readonly maxReplyBytes?: number;
|
|
478
|
+
/**
|
|
479
|
+
* The real graph's current state, for the one caller that has no `result`
|
|
480
|
+
* to read it from: `renderHandshake`. Every other envelope function gets
|
|
481
|
+
* `commitSha`/`builtAt`/`irSchemaVersion` from the tool's own `result.stamp`
|
|
482
|
+
* because a tool that ran read the graph; a handshake mint never runs the
|
|
483
|
+
* tool at all, so without this it had no honest source for those fields and
|
|
484
|
+
* hardcoded an empty graph regardless of what was actually stored —
|
|
485
|
+
* `narrate()` then told a caller sitting on a fully analysed repository that
|
|
486
|
+
* nothing had been analysed. `server.ts` supplies the session's own
|
|
487
|
+
* `provider().baseStamp()` here; a direct call in a test may omit it and
|
|
488
|
+
* gets the same "nothing known" default `renderHandshake` always had.
|
|
489
|
+
*/
|
|
490
|
+
readonly graphStamp?: Omit<GraphStamp, "resolutionFloor">;
|
|
491
|
+
/**
|
|
492
|
+
* Lane "map-freshness" item 1 — computed once per call in `server.ts`
|
|
493
|
+
* (`Session#checkFreshness()`, which needs a live git read and so, like
|
|
494
|
+
* `configDrift`, must not be done by an envelope function itself) and
|
|
495
|
+
* folded into both the machine-readable `AnswerEnvelope.graph.freshness`
|
|
496
|
+
* and, when not `current`, a plain-words disclosure naming up to 5 changed
|
|
497
|
+
* files. Optional so every direct `renderAnswer` call in a test compiles
|
|
498
|
+
* unchanged; omitted (rather than defaulted to "current") reports `null`
|
|
499
|
+
* when the stored graph is non-empty, which reads as "not checked" via
|
|
500
|
+
* `freshnessField`'s own fallback — never a false `current`.
|
|
501
|
+
*/
|
|
502
|
+
readonly freshness?: GraphFreshness;
|
|
503
|
+
/**
|
|
504
|
+
* Lane "map-freshness" items 2-3 — plain-words notes from an automatic
|
|
505
|
+
* build (empty graph) or refresh (behind, within budget) that ran in
|
|
506
|
+
* `server.ts` before this tool call, e.g. "code map built automatically
|
|
507
|
+
* for this answer (took 4.2s)". Ordered ahead of every other disclosure
|
|
508
|
+
* (see `build()` below) — a caller needs to know the map just changed
|
|
509
|
+
* before it needs anything else about what the answer covers.
|
|
510
|
+
*/
|
|
511
|
+
readonly autoNotes?: readonly string[];
|
|
512
|
+
/**
|
|
513
|
+
* N2 steps 2-3 — computed once per call in `server.ts` (it requires a
|
|
514
|
+
* fresh read of `.descry/config.json`, which no envelope function should
|
|
515
|
+
* do itself) and threaded through so every reply, not only `analyze`'s,
|
|
516
|
+
* carries both the prose (`note`, folded into `disclosures`) and the
|
|
517
|
+
* machine-readable flag (`AnswerEnvelope.configStale`). Optional so every
|
|
518
|
+
* direct call in a test — none of which has a session's on-disk config to
|
|
519
|
+
* check against — keeps compiling and defaults to "not stale".
|
|
520
|
+
*/
|
|
521
|
+
readonly configDrift?: {
|
|
522
|
+
readonly stale: boolean;
|
|
523
|
+
readonly note: string | undefined;
|
|
524
|
+
};
|
|
525
|
+
/**
|
|
526
|
+
* Arguments a redeeming `confirmToken` call supplied that conflicted with the ones frozen when
|
|
527
|
+
* the token was minted, and so were not used (`action-handshake.ts`). Threaded the same way
|
|
528
|
+
* `configDrift` is — computed by `server.ts`, which is the only caller that knows a handshake
|
|
529
|
+
* happened — and folded into `disclosures` here so rule 7's label reaches the caller rather
|
|
530
|
+
* than living only in a tool description they did not read. Absent or empty on every other
|
|
531
|
+
* path, including the two correct redemption shapes (token alone, or arguments re-sent
|
|
532
|
+
* unchanged), which discarded nothing and must therefore say nothing.
|
|
533
|
+
*/
|
|
534
|
+
readonly discardedArgs?: readonly string[];
|
|
535
|
+
}
|
|
536
|
+
export declare function renderAnswer<T>(tool: string, answer: ToolAnswer<T>, options: RenderOptions): CallToolResult;
|
|
537
|
+
/**
|
|
538
|
+
* A malformed call the server cannot even attribute to one tool — the RPC
|
|
539
|
+
* named no string tool, or named a tool that does not exist in the registry.
|
|
540
|
+
*
|
|
541
|
+
* Returned as a tool result with `isError`, not as a JSON-RPC error, which is
|
|
542
|
+
* what the MCP spec asks for: protocol errors are for malformed protocol, tool
|
|
543
|
+
* errors are for tools, and an agent can act on the second only if it arrives as
|
|
544
|
+
* content it can read.
|
|
545
|
+
*
|
|
546
|
+
* Deliberately outside the five-state envelope, and narrowly so: there is no
|
|
547
|
+
* resolved `ToolDefinition` here to draw `toolVersion`/`class`/`tier` from, so
|
|
548
|
+
* no real envelope can be built — inventing placeholder values for them would
|
|
549
|
+
* be worse than the bare shape. Once a tool *is* identified, a bad argument
|
|
550
|
+
* against it is `renderRefusedInput`'s case, not this one — see that
|
|
551
|
+
* function's doc for why the two are different claims.
|
|
552
|
+
*/
|
|
553
|
+
export declare function renderToolError(tool: string, message: string): CallToolResult;
|
|
554
|
+
/**
|
|
555
|
+
* `state: "refused"` — the call named a real, resolved tool, but its input
|
|
556
|
+
* was wrong, so the tool never ran (`ToolInputError`, thrown by a tool's own
|
|
557
|
+
* argument reading, or by the dispatcher's own shape check on `arguments`
|
|
558
|
+
* once a tool is known).
|
|
559
|
+
*
|
|
560
|
+
* This used to fall through to `renderToolError`'s bare `{tool, status,
|
|
561
|
+
* message}` shape — measured as a real defect (a live `observe_runtime` call
|
|
562
|
+
* with a malformed `profile` field returned that bare shape instead of an
|
|
563
|
+
* envelope), because unlike the two cases `renderToolError` still covers, a
|
|
564
|
+
* `ToolDefinition` *is* available here: `toolVersion`, `class` and `tier` are
|
|
565
|
+
* all real, so a real envelope can be built rather than invented. "The tool
|
|
566
|
+
* was never run because its input was wrong" is a fact about this call, not
|
|
567
|
+
* about the code being examined — exactly what `state: "refused"` already
|
|
568
|
+
* means everywhere else in this file, so it is rendered the same way rather
|
|
569
|
+
* than through a second, parallel shape.
|
|
570
|
+
*
|
|
571
|
+
* `data` is always `null` (§2.2): nothing ran, so there is nothing to stamp.
|
|
572
|
+
* `isError` stays `true` for the same reason `renderFailed`/`renderTimedOut`
|
|
573
|
+
* set it — a generic client that only reads the transport-level signal still
|
|
574
|
+
* sees a failure; an AI-layer-aware caller additionally gets the real
|
|
575
|
+
* `state`/`disclosures`/`reportCategory` to reason about.
|
|
576
|
+
*/
|
|
577
|
+
export declare function renderRefusedInput(tool: string, message: string, options: RenderOptions): CallToolResult;
|
|
578
|
+
/**
|
|
579
|
+
* `state: "failed"` — §1.1: "promoted from a transport error to a result."
|
|
580
|
+
*
|
|
581
|
+
* An unexpected/internal error, not a bad argument (`renderToolError` still
|
|
582
|
+
* handles those). `data` is always `null` here (§2.2): the tool does not know
|
|
583
|
+
* what happened, and anything it returned would be a guess about its own
|
|
584
|
+
* fault. `isError` stays `true` so a generic MCP client that only reads the
|
|
585
|
+
* transport-level signal still treats this as a failure; an AI-layer-aware
|
|
586
|
+
* caller additionally gets `state: "failed"` in `structuredContent` to reason
|
|
587
|
+
* about rather than a bare `{tool, status, message}` shape.
|
|
588
|
+
*
|
|
589
|
+
* `headline` is optional and exists for the *explained* half of "failed": a
|
|
590
|
+
* `ConfigError` (and any sibling raised specifically to be read, not merely
|
|
591
|
+
* caught) already carries a full written reason, and burying that behind a
|
|
592
|
+
* generic "X failed." while the real sentence sits only in `disclosures` is
|
|
593
|
+
* the bug 13.3.5 names — a caller reading just the headline learns nothing.
|
|
594
|
+
* An unexplained internal fault has no such sentence to offer, so it keeps
|
|
595
|
+
* the opaque default.
|
|
596
|
+
*/
|
|
597
|
+
export declare function renderFailed(tool: string, message: string, options: RenderOptions, headline?: string): CallToolResult;
|
|
598
|
+
/**
|
|
599
|
+
* The one legitimate producer of a pending-handshake payload — §7's mint call.
|
|
600
|
+
*
|
|
601
|
+
* `class == "action"` returning anything other than this shape on an
|
|
602
|
+
* unconfirmed first call is invariant 4 (§2.1): "throw." This function is
|
|
603
|
+
* where that shape is produced, so the throw lives at the one call site that
|
|
604
|
+
* builds anything else for an action tool's first call — `server.ts`'s
|
|
605
|
+
* dispatch loop calls this and only this when `resolveActionDispatch` returns
|
|
606
|
+
* `{kind: "handshake"}`, never `tool.run`.
|
|
607
|
+
*
|
|
608
|
+
* `state: "ok"` deliberately: a mint is not a refusal, a failure or an empty
|
|
609
|
+
* result — it is a successful "here is what I would do", and the *pending*
|
|
610
|
+
* flag inside `data` is what tells a caller nothing was performed yet.
|
|
611
|
+
*/
|
|
612
|
+
export declare function renderHandshake(tool: string, token: string, willDo: string, options: RenderOptions): CallToolResult;
|
|
613
|
+
/**
|
|
614
|
+
* `state: "timed_out"` — the call ran out of its declared budget.
|
|
615
|
+
*
|
|
616
|
+
* §6: "not a silent truncation and never a `failed`". `data` is `null` here
|
|
617
|
+
* because none of the registered tools currently produce genuine partial
|
|
618
|
+
* results mid-run (none checks `ctx.signal` internally yet — a disclosed gap,
|
|
619
|
+
* not a silent one, named in the returned disclosure); the envelope shape
|
|
620
|
+
* supports a populated partial `data` the day a tool does.
|
|
621
|
+
*/
|
|
622
|
+
export declare function renderTimedOut(tool: string, options: RenderOptions): CallToolResult;
|
|
623
|
+
//# sourceMappingURL=render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|