@descryy/mcp 0.1.2 → 0.3.0

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.
Files changed (207) hide show
  1. package/dist/bin/descry-mcp.js +30 -2
  2. package/dist/bin/descry-mcp.js.map +1 -1
  3. package/dist/browser/driver.d.ts +236 -0
  4. package/dist/browser/driver.d.ts.map +1 -0
  5. package/dist/browser/driver.js +70 -0
  6. package/dist/browser/driver.js.map +1 -0
  7. package/dist/browser/evidence.d.ts +47 -0
  8. package/dist/browser/evidence.d.ts.map +1 -0
  9. package/dist/browser/evidence.js +55 -0
  10. package/dist/browser/evidence.js.map +1 -0
  11. package/dist/browser/fake-driver.d.ts +58 -0
  12. package/dist/browser/fake-driver.d.ts.map +1 -0
  13. package/dist/browser/fake-driver.js +161 -0
  14. package/dist/browser/fake-driver.js.map +1 -0
  15. package/dist/browser/graph-write.d.ts +86 -0
  16. package/dist/browser/graph-write.d.ts.map +1 -0
  17. package/dist/browser/graph-write.js +135 -0
  18. package/dist/browser/graph-write.js.map +1 -0
  19. package/dist/browser/playwright-driver.d.ts +65 -0
  20. package/dist/browser/playwright-driver.d.ts.map +1 -0
  21. package/dist/browser/playwright-driver.js +359 -0
  22. package/dist/browser/playwright-driver.js.map +1 -0
  23. package/dist/browser/provider.d.ts +49 -0
  24. package/dist/browser/provider.d.ts.map +1 -0
  25. package/dist/browser/provider.js +28 -0
  26. package/dist/browser/provider.js.map +1 -0
  27. package/dist/browser/registry.d.ts +182 -0
  28. package/dist/browser/registry.d.ts.map +1 -0
  29. package/dist/browser/registry.js +215 -0
  30. package/dist/browser/registry.js.map +1 -0
  31. package/dist/browser/scenario-resolve.d.ts +62 -0
  32. package/dist/browser/scenario-resolve.d.ts.map +1 -0
  33. package/dist/browser/scenario-resolve.js +127 -0
  34. package/dist/browser/scenario-resolve.js.map +1 -0
  35. package/dist/browser/scenario-runner.d.ts +113 -0
  36. package/dist/browser/scenario-runner.d.ts.map +1 -0
  37. package/dist/browser/scenario-runner.js +315 -0
  38. package/dist/browser/scenario-runner.js.map +1 -0
  39. package/dist/browser/stack-parser.d.ts +43 -0
  40. package/dist/browser/stack-parser.d.ts.map +1 -0
  41. package/dist/browser/stack-parser.js +112 -0
  42. package/dist/browser/stack-parser.js.map +1 -0
  43. package/dist/browser/tool-support.d.ts +113 -0
  44. package/dist/browser/tool-support.d.ts.map +1 -0
  45. package/dist/browser/tool-support.js +181 -0
  46. package/dist/browser/tool-support.js.map +1 -0
  47. package/dist/disclosure-ledger.d.ts +38 -0
  48. package/dist/disclosure-ledger.d.ts.map +1 -0
  49. package/dist/disclosure-ledger.js +40 -0
  50. package/dist/disclosure-ledger.js.map +1 -0
  51. package/dist/index.d.ts +12 -1
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +10 -0
  54. package/dist/index.js.map +1 -1
  55. package/dist/protocol.d.ts +12 -3
  56. package/dist/protocol.d.ts.map +1 -1
  57. package/dist/protocol.js +12 -3
  58. package/dist/protocol.js.map +1 -1
  59. package/dist/render.d.ts +121 -10
  60. package/dist/render.d.ts.map +1 -1
  61. package/dist/render.js +96 -15
  62. package/dist/render.js.map +1 -1
  63. package/dist/runtime-registry.d.ts +63 -0
  64. package/dist/runtime-registry.d.ts.map +1 -0
  65. package/dist/runtime-registry.js +131 -0
  66. package/dist/runtime-registry.js.map +1 -0
  67. package/dist/scenarios/index.d.ts +4 -0
  68. package/dist/scenarios/index.d.ts.map +1 -0
  69. package/dist/scenarios/index.js +4 -0
  70. package/dist/scenarios/index.js.map +1 -0
  71. package/dist/scenarios/parse.d.ts +32 -0
  72. package/dist/scenarios/parse.d.ts.map +1 -0
  73. package/dist/scenarios/parse.js +199 -0
  74. package/dist/scenarios/parse.js.map +1 -0
  75. package/dist/scenarios/scenario.d.ts +115 -0
  76. package/dist/scenarios/scenario.d.ts.map +1 -0
  77. package/dist/scenarios/scenario.js +41 -0
  78. package/dist/scenarios/scenario.js.map +1 -0
  79. package/dist/scenarios/storage.d.ts +51 -0
  80. package/dist/scenarios/storage.d.ts.map +1 -0
  81. package/dist/scenarios/storage.js +93 -0
  82. package/dist/scenarios/storage.js.map +1 -0
  83. package/dist/server.d.ts.map +1 -1
  84. package/dist/server.js +11 -3
  85. package/dist/server.js.map +1 -1
  86. package/dist/session.d.ts +142 -2
  87. package/dist/session.d.ts.map +1 -1
  88. package/dist/session.js +266 -4
  89. package/dist/session.js.map +1 -1
  90. package/dist/tools/analyze.d.ts +41 -1
  91. package/dist/tools/analyze.d.ts.map +1 -1
  92. package/dist/tools/analyze.js +111 -9
  93. package/dist/tools/analyze.js.map +1 -1
  94. package/dist/tools/browser-click.d.ts +36 -0
  95. package/dist/tools/browser-click.d.ts.map +1 -0
  96. package/dist/tools/browser-click.js +117 -0
  97. package/dist/tools/browser-click.js.map +1 -0
  98. package/dist/tools/browser-close-session.d.ts +24 -0
  99. package/dist/tools/browser-close-session.d.ts.map +1 -0
  100. package/dist/tools/browser-close-session.js +63 -0
  101. package/dist/tools/browser-close-session.js.map +1 -0
  102. package/dist/tools/browser-fill.d.ts +49 -0
  103. package/dist/tools/browser-fill.d.ts.map +1 -0
  104. package/dist/tools/browser-fill.js +138 -0
  105. package/dist/tools/browser-fill.js.map +1 -0
  106. package/dist/tools/browser-navigate.d.ts +32 -0
  107. package/dist/tools/browser-navigate.d.ts.map +1 -0
  108. package/dist/tools/browser-navigate.js +103 -0
  109. package/dist/tools/browser-navigate.js.map +1 -0
  110. package/dist/tools/browser-run-scenario.d.ts +54 -0
  111. package/dist/tools/browser-run-scenario.d.ts.map +1 -0
  112. package/dist/tools/browser-run-scenario.js +228 -0
  113. package/dist/tools/browser-run-scenario.js.map +1 -0
  114. package/dist/tools/browser-save-scenario.d.ts +44 -0
  115. package/dist/tools/browser-save-scenario.d.ts.map +1 -0
  116. package/dist/tools/browser-save-scenario.js +298 -0
  117. package/dist/tools/browser-save-scenario.js.map +1 -0
  118. package/dist/tools/browser-snapshot.d.ts +60 -0
  119. package/dist/tools/browser-snapshot.d.ts.map +1 -0
  120. package/dist/tools/browser-snapshot.js +139 -0
  121. package/dist/tools/browser-snapshot.js.map +1 -0
  122. package/dist/tools/browser-start-session.d.ts +43 -0
  123. package/dist/tools/browser-start-session.d.ts.map +1 -0
  124. package/dist/tools/browser-start-session.js +272 -0
  125. package/dist/tools/browser-start-session.js.map +1 -0
  126. package/dist/tools/browser-type.d.ts +48 -0
  127. package/dist/tools/browser-type.d.ts.map +1 -0
  128. package/dist/tools/browser-type.js +136 -0
  129. package/dist/tools/browser-type.js.map +1 -0
  130. package/dist/tools/contracts.d.ts +15 -0
  131. package/dist/tools/contracts.d.ts.map +1 -1
  132. package/dist/tools/contracts.js +14 -3
  133. package/dist/tools/contracts.js.map +1 -1
  134. package/dist/tools/cross-pr.d.ts.map +1 -1
  135. package/dist/tools/cross-pr.js +1 -0
  136. package/dist/tools/cross-pr.js.map +1 -1
  137. package/dist/tools/git-diff.d.ts.map +1 -1
  138. package/dist/tools/git-diff.js +104 -4
  139. package/dist/tools/git-diff.js.map +1 -1
  140. package/dist/tools/git-history.d.ts.map +1 -1
  141. package/dist/tools/git-history.js +1 -0
  142. package/dist/tools/git-history.js.map +1 -1
  143. package/dist/tools/history.js +1 -1
  144. package/dist/tools/history.js.map +1 -1
  145. package/dist/tools/impact.d.ts +9 -0
  146. package/dist/tools/impact.d.ts.map +1 -1
  147. package/dist/tools/impact.js +4 -4
  148. package/dist/tools/impact.js.map +1 -1
  149. package/dist/tools/index.d.ts +12 -1
  150. package/dist/tools/index.d.ts.map +1 -1
  151. package/dist/tools/index.js +31 -0
  152. package/dist/tools/index.js.map +1 -1
  153. package/dist/tools/kit.d.ts +11 -1
  154. package/dist/tools/kit.d.ts.map +1 -1
  155. package/dist/tools/kit.js +3 -0
  156. package/dist/tools/kit.js.map +1 -1
  157. package/dist/tools/link-workspace.d.ts.map +1 -1
  158. package/dist/tools/link-workspace.js +13 -1
  159. package/dist/tools/link-workspace.js.map +1 -1
  160. package/dist/tools/mark-incident.d.ts +69 -0
  161. package/dist/tools/mark-incident.d.ts.map +1 -0
  162. package/dist/tools/mark-incident.js +212 -0
  163. package/dist/tools/mark-incident.js.map +1 -0
  164. package/dist/tools/observe-runtime.d.ts +292 -0
  165. package/dist/tools/observe-runtime.d.ts.map +1 -0
  166. package/dist/tools/observe-runtime.js +1192 -0
  167. package/dist/tools/observe-runtime.js.map +1 -0
  168. package/dist/tools/observe-tests.d.ts +125 -0
  169. package/dist/tools/observe-tests.d.ts.map +1 -0
  170. package/dist/tools/observe-tests.js +313 -0
  171. package/dist/tools/observe-tests.js.map +1 -0
  172. package/dist/tools/pr-analysis.d.ts +71 -13
  173. package/dist/tools/pr-analysis.d.ts.map +1 -1
  174. package/dist/tools/pr-analysis.js +55 -12
  175. package/dist/tools/pr-analysis.js.map +1 -1
  176. package/dist/tools/pre-push.d.ts +77 -0
  177. package/dist/tools/pre-push.d.ts.map +1 -0
  178. package/dist/tools/pre-push.js +250 -0
  179. package/dist/tools/pre-push.js.map +1 -0
  180. package/dist/tools/propagation.d.ts.map +1 -1
  181. package/dist/tools/propagation.js +1 -0
  182. package/dist/tools/propagation.js.map +1 -1
  183. package/dist/tools/questions.d.ts.map +1 -1
  184. package/dist/tools/questions.js +101 -14
  185. package/dist/tools/questions.js.map +1 -1
  186. package/dist/tools/refusal-fetch.d.ts.map +1 -1
  187. package/dist/tools/refusal-fetch.js +1 -0
  188. package/dist/tools/refusal-fetch.js.map +1 -1
  189. package/dist/tools/runtime-incident.d.ts +92 -0
  190. package/dist/tools/runtime-incident.d.ts.map +1 -0
  191. package/dist/tools/runtime-incident.js +144 -0
  192. package/dist/tools/runtime-incident.js.map +1 -0
  193. package/dist/tools/scope.d.ts.map +1 -1
  194. package/dist/tools/scope.js +1 -0
  195. package/dist/tools/scope.js.map +1 -1
  196. package/dist/tools/similar-incidents.d.ts +13 -0
  197. package/dist/tools/similar-incidents.d.ts.map +1 -1
  198. package/dist/tools/similar-incidents.js +22 -8
  199. package/dist/tools/similar-incidents.js.map +1 -1
  200. package/dist/tools/verification-status.d.ts +22 -0
  201. package/dist/tools/verification-status.d.ts.map +1 -1
  202. package/dist/tools/verification-status.js +52 -5
  203. package/dist/tools/verification-status.js.map +1 -1
  204. package/dist/tools/verify-claim.d.ts.map +1 -1
  205. package/dist/tools/verify-claim.js +5 -0
  206. package/dist/tools/verify-claim.js.map +1 -1
  207. package/package.json +16 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observe-runtime.js","sourceRoot":"","sources":["../../src/tools/observe-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * `observe_tests` — run the project's suite and record which tests actually ran.
3
+ *
4
+ * This is the coverage axis, and it is the one runtime signal in this server
5
+ * that needs **no application booted**: a suite runs, and what it exercised
6
+ * becomes a durable fact. `observe_runtime`'s standing complaint from the UAT
7
+ * was that it "assumes local setup is already solved"; this dissolves that for
8
+ * the coverage half rather than documenting around it.
9
+ *
10
+ * ## What it writes, and what it deliberately does not
11
+ *
12
+ * It writes `observed_tests` rows through `applyObservedTests` — the EARNED
13
+ * carrier. It does **not** promote any edge to R4, and the distinction is the
14
+ * whole reason that table exists.
15
+ *
16
+ * An edge needs two endpoints and a witnessed relationship between them. The
17
+ * test-runner collector's evidence carries no stack — every item it emits has
18
+ * `stackTrace: null` — so an observed test names exactly one node, its own
19
+ * `TEST_CASE`. Nothing here witnesses which function that test reached, and
20
+ * pairing the test with a function that merely co-occurred in the same run
21
+ * would mint an edge from temporal coincidence. That is the wrong-direction
22
+ * failure rule 2 exists to prevent, and `observe-runtime.ts`'s own header
23
+ * already refuses it by name for the same reason.
24
+ *
25
+ * So: "this test executed and passed" is a fact about one node, recorded as
26
+ * one. "This test covers that function" remains whatever the static graph
27
+ * already claimed, at whatever resolution it claimed it.
28
+ *
29
+ * ## Why the denominators are reported and not just the successes
30
+ *
31
+ * `TraceCoverage` carries `testsObserved` and `notRun` because the collector
32
+ * learned the hard way that "12 passed" must never silently be "9 passed and 3
33
+ * that never ran". The same discipline applies one layer up: this reply reports
34
+ * how many results the runner produced, how many resolved to a graph node, and
35
+ * how many did not — because `recorded: 3` against a 40-test suite reads as
36
+ * full coverage to anyone who is not shown the denominator.
37
+ *
38
+ * ## Class and tier
39
+ *
40
+ * `action` — it spawns a process that executes the repository's own code, and
41
+ * it writes EARNED rows that a later `verification_status` will read. Gated by
42
+ * the same two-call `confirmToken` handshake `observe_runtime` and `questions`
43
+ * use.
44
+ *
45
+ * `evidence` — it reports what ran. It draws no conclusion about the code and
46
+ * writes no finding or hypothesis.
47
+ *
48
+ * It does carry a `reportCategory`, and it used to read oddly:
49
+ * `deriveEnvelopeCategory` hardcoded `hasRuntimeEvidence: false`, so a reply
50
+ * whose `resolutionFloor` was 4 and whose `reliabilityCap` was A still
51
+ * rendered as `unconfirmed` — the envelope contradicting itself. The flag is
52
+ * now *declared* rather than inferred: this tool runs the repository's own
53
+ * test suite, so it hands the render layer a {@link WitnessedEvidence} count
54
+ * of the channels its run actually saw, and an answer resting on edges it
55
+ * witnessed renders `strongly supported`. Declaring it is what makes the
56
+ * promotion true rather than assumed — a resolution floor of 4 can be reached
57
+ * without anything having been watched, which is why the floor is no longer
58
+ * what the category reads.
59
+ *
60
+ * The count comes from `observe_runtime`'s `witnessedSignalTypes`, not from a
61
+ * tally here. The clamp to the six declared channels and the drop of signals
62
+ * Descry does not count are that function's rules, and a second
63
+ * implementation of them is a second place for the vocabulary to drift.
64
+ *
65
+ * `confirmed` is still unreachable from this surface, and deliberately: it
66
+ * needs direct mechanism evidence, which no graph query produces. Shared
67
+ * render-layer behaviour, identical for `observe_runtime`, and still not this
68
+ * tool's to override.
69
+ */
70
+ import { type ObservedTestObservation, type ObservedTestOutcome, type SqlDriver } from "@descryy/core";
71
+ import type { Evidence } from "@descryy/runtime-contracts";
72
+ import { type ToolDefinition } from "./kit.ts";
73
+ /**
74
+ * What a collector hands to `emit`: an evidence item before the store has
75
+ * assigned it an id or tied it to an execution. Those two fields exist only
76
+ * after `EvidenceStore.write()` returns, and nothing here needs them — the
77
+ * resolver reads `eventType`, `payload` and `sourceLocation` and nothing else.
78
+ */
79
+ type EmittedEvidence = Omit<Evidence, "evidenceId" | "executionId">;
80
+ /** One test the runner reported that could not be tied to a node in this graph. */
81
+ export interface UnresolvedObservedTest {
82
+ readonly qualifiedName: string;
83
+ readonly outcome: ObservedTestOutcome;
84
+ /** The resolver's own words — never summarised into "not found". */
85
+ readonly reason: string;
86
+ }
87
+ export interface ObserveTestsData {
88
+ readonly runId: string | null;
89
+ /** How many results the runner actually produced. The denominator — read every other count against this. */
90
+ readonly testsReported: number;
91
+ /** Tests the runner said did not run (`.skip`/`.todo`). Reported separately so a pass count is never inflated by them. */
92
+ readonly notRun: number;
93
+ /** Node ids written to the EARNED ledger. */
94
+ readonly recorded: readonly string[];
95
+ /** Results that reached no node in this graph, with the resolver's reason for each. */
96
+ readonly unresolved: readonly UnresolvedObservedTest[];
97
+ /** Observations the write path itself declined, with its reason. Distinct from `unresolved`: these named a node. */
98
+ readonly refused: readonly {
99
+ readonly nodeId: string;
100
+ readonly reason: string;
101
+ }[];
102
+ readonly outcomes: Readonly<Record<string, number>>;
103
+ }
104
+ /**
105
+ * Turn a run's evidence into observations this graph can hold.
106
+ *
107
+ * Separated from {@link run} because it is the part with a decision in it, and
108
+ * a decision that is only reachable by spawning a real test runner is a
109
+ * decision that does not get tested. Every result lands in `observations` or
110
+ * `unresolved`, so the caller can report a denominator rather than a success
111
+ * count on its own.
112
+ *
113
+ * `TEST_STARTED` is deliberately ignored: it is announced before the runner
114
+ * knows the outcome, so counting it would double every test and count a
115
+ * skipped one as having run.
116
+ */
117
+ export declare function observationsFromEvidence(driver: SqlDriver, evidence: readonly EmittedEvidence[], repo: string, options?: {
118
+ readonly repoRoot?: string;
119
+ }): {
120
+ readonly observations: readonly ObservedTestObservation[];
121
+ readonly unresolved: readonly UnresolvedObservedTest[];
122
+ };
123
+ export declare const observeTestsTool: ToolDefinition;
124
+ export {};
125
+ //# sourceMappingURL=observe-tests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observe-tests.d.ts","sourceRoot":"","sources":["../../src/tools/observe-tests.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AAKH,OAAO,EAA8B,KAAK,uBAAuB,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AACnI,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAM3D,OAAO,EAOL,KAAK,cAAc,EACpB,MAAM,UAAU,CAAC;AAKlB;;;;;GAKG;AACH,KAAK,eAAe,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,GAAG,aAAa,CAAC,CAAC;AAmCpE,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,4GAA4G;IAC5G,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,0HAA0H;IAC1H,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,uFAAuF;IACvF,QAAQ,CAAC,UAAU,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACvD,oHAAoH;IACpH,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClF,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACrD;AAiBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3C;IAAE,QAAQ,CAAC,YAAY,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,sBAAsB,EAAE,CAAA;CAAE,CA0BvH;AAqKD,eAAO,MAAM,gBAAgB,EAAE,cAgB9B,CAAC"}
@@ -0,0 +1,313 @@
1
+ /**
2
+ * `observe_tests` — run the project's suite and record which tests actually ran.
3
+ *
4
+ * This is the coverage axis, and it is the one runtime signal in this server
5
+ * that needs **no application booted**: a suite runs, and what it exercised
6
+ * becomes a durable fact. `observe_runtime`'s standing complaint from the UAT
7
+ * was that it "assumes local setup is already solved"; this dissolves that for
8
+ * the coverage half rather than documenting around it.
9
+ *
10
+ * ## What it writes, and what it deliberately does not
11
+ *
12
+ * It writes `observed_tests` rows through `applyObservedTests` — the EARNED
13
+ * carrier. It does **not** promote any edge to R4, and the distinction is the
14
+ * whole reason that table exists.
15
+ *
16
+ * An edge needs two endpoints and a witnessed relationship between them. The
17
+ * test-runner collector's evidence carries no stack — every item it emits has
18
+ * `stackTrace: null` — so an observed test names exactly one node, its own
19
+ * `TEST_CASE`. Nothing here witnesses which function that test reached, and
20
+ * pairing the test with a function that merely co-occurred in the same run
21
+ * would mint an edge from temporal coincidence. That is the wrong-direction
22
+ * failure rule 2 exists to prevent, and `observe-runtime.ts`'s own header
23
+ * already refuses it by name for the same reason.
24
+ *
25
+ * So: "this test executed and passed" is a fact about one node, recorded as
26
+ * one. "This test covers that function" remains whatever the static graph
27
+ * already claimed, at whatever resolution it claimed it.
28
+ *
29
+ * ## Why the denominators are reported and not just the successes
30
+ *
31
+ * `TraceCoverage` carries `testsObserved` and `notRun` because the collector
32
+ * learned the hard way that "12 passed" must never silently be "9 passed and 3
33
+ * that never ran". The same discipline applies one layer up: this reply reports
34
+ * how many results the runner produced, how many resolved to a graph node, and
35
+ * how many did not — because `recorded: 3` against a 40-test suite reads as
36
+ * full coverage to anyone who is not shown the denominator.
37
+ *
38
+ * ## Class and tier
39
+ *
40
+ * `action` — it spawns a process that executes the repository's own code, and
41
+ * it writes EARNED rows that a later `verification_status` will read. Gated by
42
+ * the same two-call `confirmToken` handshake `observe_runtime` and `questions`
43
+ * use.
44
+ *
45
+ * `evidence` — it reports what ran. It draws no conclusion about the code and
46
+ * writes no finding or hypothesis.
47
+ *
48
+ * It does carry a `reportCategory`, and it used to read oddly:
49
+ * `deriveEnvelopeCategory` hardcoded `hasRuntimeEvidence: false`, so a reply
50
+ * whose `resolutionFloor` was 4 and whose `reliabilityCap` was A still
51
+ * rendered as `unconfirmed` — the envelope contradicting itself. The flag is
52
+ * now *declared* rather than inferred: this tool runs the repository's own
53
+ * test suite, so it hands the render layer a {@link WitnessedEvidence} count
54
+ * of the channels its run actually saw, and an answer resting on edges it
55
+ * witnessed renders `strongly supported`. Declaring it is what makes the
56
+ * promotion true rather than assumed — a resolution floor of 4 can be reached
57
+ * without anything having been watched, which is why the floor is no longer
58
+ * what the category reads.
59
+ *
60
+ * The count comes from `observe_runtime`'s `witnessedSignalTypes`, not from a
61
+ * tally here. The clamp to the six declared channels and the drop of signals
62
+ * Descry does not count are that function's rules, and a second
63
+ * implementation of them is a second place for the vocabulary to drift.
64
+ *
65
+ * `confirmed` is still unreachable from this surface, and deliberately: it
66
+ * needs direct mechanism evidence, which no graph query produces. Shared
67
+ * render-layer behaviour, identical for `observe_runtime`, and still not this
68
+ * tool's to override.
69
+ */
70
+ import { isAbsolute, join } from "node:path";
71
+ import { randomBytes } from "node:crypto";
72
+ import { applyObservedTests, counts } from "@descryy/core";
73
+ import { witnessedSignalTypes } from "./observe-runtime.js";
74
+ import { createTestRunnerCollector } from "@descryy/runtime-test-runner";
75
+ import { resolveObservedTestCase } from "@descryy/runtime-test-runner";
76
+ import { answer, optionalInteger, optionalString, requiredString, ToolInputError, } from "./kit.js";
77
+ const DEFAULT_TIMEOUT_MS = 600_000;
78
+ const SCHEMA = {
79
+ type: "object",
80
+ properties: {
81
+ command: {
82
+ type: "string",
83
+ description: "The command that runs this project's test suite, exactly as you would type it in a terminal, " +
84
+ "whatever this project's runner happens to be. It is run in the repository and it executes your " +
85
+ "code, which is why the call takes a two-step confirmation. The runner is identified from the " +
86
+ "command itself; a runner Descry has no reporter for is refused by name rather than run blind.",
87
+ },
88
+ cwd: {
89
+ type: "string",
90
+ description: "Where to run it. Relative paths resolve against the repository root; absent means the " +
91
+ "repository root itself.",
92
+ },
93
+ timeoutMs: {
94
+ type: "integer",
95
+ minimum: 1,
96
+ description: "How long to let the suite run before giving up on it. Default 600000 (10 minutes).",
97
+ },
98
+ confirmToken: {
99
+ type: "string",
100
+ description: "The token returned by an unconfirmed call. This tool runs nothing without it: the first " +
101
+ "call describes what it would do and mints a token, the second performs it.",
102
+ },
103
+ },
104
+ required: ["command"],
105
+ additionalProperties: false,
106
+ };
107
+ const TEST_RESULT_EVENT_TYPES = new Set(["TEST_PASSED", "TEST_FAILED", "TEST_SKIPPED"]);
108
+ function outcomeOf(eventType) {
109
+ if (eventType === "TEST_PASSED")
110
+ return "passed";
111
+ if (eventType === "TEST_FAILED")
112
+ return "failed";
113
+ return "skipped";
114
+ }
115
+ function nameOf(evidence) {
116
+ const payload = evidence.payload;
117
+ if (typeof payload.qualifiedName === "string")
118
+ return payload.qualifiedName;
119
+ if (typeof payload.name === "string")
120
+ return payload.name;
121
+ return "(unnamed test)";
122
+ }
123
+ /**
124
+ * Turn a run's evidence into observations this graph can hold.
125
+ *
126
+ * Separated from {@link run} because it is the part with a decision in it, and
127
+ * a decision that is only reachable by spawning a real test runner is a
128
+ * decision that does not get tested. Every result lands in `observations` or
129
+ * `unresolved`, so the caller can report a denominator rather than a success
130
+ * count on its own.
131
+ *
132
+ * `TEST_STARTED` is deliberately ignored: it is announced before the runner
133
+ * knows the outcome, so counting it would double every test and count a
134
+ * skipped one as having run.
135
+ */
136
+ export function observationsFromEvidence(driver, evidence, repo, options = {}) {
137
+ const observations = [];
138
+ const unresolved = [];
139
+ for (const item of evidence) {
140
+ if (!TEST_RESULT_EVENT_TYPES.has(item.eventType))
141
+ continue;
142
+ const outcome = outcomeOf(item.eventType);
143
+ const qualifiedName = nameOf(item);
144
+ const resolution = resolveObservedTestCase(driver, item, repo, options);
145
+ if (resolution.outcome !== "resolved") {
146
+ unresolved.push({ qualifiedName, outcome, reason: resolution.reason });
147
+ continue;
148
+ }
149
+ const payload = item.payload;
150
+ observations.push({
151
+ nodeId: resolution.node.id,
152
+ qualifiedName,
153
+ outcome,
154
+ durationMs: typeof payload.durationMs === "number" ? payload.durationMs : null,
155
+ });
156
+ }
157
+ return { observations, unresolved };
158
+ }
159
+ async function run(args, ctx) {
160
+ const session = ctx.session;
161
+ const command = requiredString(args, "command");
162
+ const cwdArg = optionalString(args, "cwd");
163
+ const timeoutMs = optionalInteger(args, "timeoutMs", 1) ?? DEFAULT_TIMEOUT_MS;
164
+ const base = session.provider().baseStamp();
165
+ const notes = [
166
+ "This records which tests ran, not what they covered. A test that executed is a fact about one " +
167
+ "node — its own TEST_CASE. Nothing here witnesses which functions a test reached, so no edge is " +
168
+ "promoted and any TESTS edge keeps whatever resolution the static graph gave it.",
169
+ "Read every count against testsReported. A recorded count on its own cannot distinguish a fully " +
170
+ "mapped suite from a mostly unmapped one.",
171
+ ];
172
+ const refuse = (headline, data = {}) => answer({
173
+ headline,
174
+ state: "refused",
175
+ nameLevel: true,
176
+ // Nothing ran, so nothing was observed. A refusal reporting the tier its
177
+ // successful path would have reached is indistinguishable from a real
178
+ // answer, which is the failure this repository's own UAT already caught.
179
+ resolutionFloor: 0,
180
+ commitSha: base.commitSha,
181
+ graphBuiltAt: base.graphBuiltAt,
182
+ irSchemaVersion: base.irSchemaVersion,
183
+ commitSpread: base.commitSpread,
184
+ notes,
185
+ data: {
186
+ runId: null,
187
+ testsReported: 0,
188
+ notRun: 0,
189
+ recorded: [],
190
+ unresolved: [],
191
+ refused: [],
192
+ outcomes: {},
193
+ ...data,
194
+ },
195
+ });
196
+ // Correlation resolves each result against this graph. Against an empty one
197
+ // it resolves nothing, and reporting that as a clean run would be the exact
198
+ // "empty means broken" collapse the five states exist to stop.
199
+ const driver = session.store().driver;
200
+ if (counts(driver).nodes === 0) {
201
+ return refuse("This repository has no graph yet, so a test result has nothing to be resolved against. Run " +
202
+ "analyze first — an observation that cannot name a node cannot become a fact.");
203
+ }
204
+ const root = await session.root();
205
+ const cwd = cwdArg === undefined ? session.repoPath : isAbsolute(cwdArg) ? cwdArg : join(session.repoPath, cwdArg);
206
+ const collected = [];
207
+ const collector = createTestRunnerCollector({
208
+ configuration: { command, cwd },
209
+ });
210
+ ctx.progress(`Running ${command}`);
211
+ const started = await collector.start({
212
+ executionId: `observe-tests-${Date.now()}`,
213
+ configuration: {
214
+ environmentTier: "tier-0-ci-attached",
215
+ fidelityLevel: 1,
216
+ timeoutMs,
217
+ services: {},
218
+ testRunner: { command, cwd },
219
+ },
220
+ emit: (item) => {
221
+ collected.push(item);
222
+ },
223
+ });
224
+ if (!started.available) {
225
+ return refuse(`The test command could not be run: ${started.reason} Nothing was started and nothing was written.`);
226
+ }
227
+ await collector.waitForCompletion();
228
+ await collector.stop();
229
+ const coverage = collector.traceCoverage();
230
+ const { observations, unresolved } = observationsFromEvidence(driver, collected, root.repo, {
231
+ repoRoot: root.absolutePath,
232
+ });
233
+ const runId = `tests-${randomBytes(6).toString("hex")}`;
234
+ const written = applyObservedTests(driver, {
235
+ runId,
236
+ commitSha: root.commitSha,
237
+ observations,
238
+ });
239
+ const outcomes = {};
240
+ for (const observation of observations) {
241
+ outcomes[observation.outcome] = (outcomes[observation.outcome] ?? 0) + 1;
242
+ }
243
+ if (unresolved.length > 0) {
244
+ notes.push(`${unresolved.length} of ${coverage.testsObserved} results reached no node in this graph and were ` +
245
+ "not recorded. Each carries the resolver's own reason — a test file the graph never indexed and " +
246
+ "a name the graph spells differently are different problems.");
247
+ }
248
+ return answer({
249
+ headline: `${command} produced ${coverage.testsObserved} result${coverage.testsObserved === 1 ? "" : "s"}; ` +
250
+ `${written.recorded.length} recorded against graph nodes` +
251
+ (coverage.notRun > 0 ? `, ${coverage.notRun} did not run` : "") +
252
+ ".",
253
+ state: written.recorded.length > 0 ? "ok" : "empty",
254
+ data: {
255
+ runId,
256
+ testsReported: coverage.testsObserved,
257
+ notRun: coverage.notRun,
258
+ recorded: written.recorded,
259
+ unresolved,
260
+ refused: written.refused.map((r) => ({ nodeId: r.nodeId, reason: r.reason })),
261
+ outcomes,
262
+ },
263
+ // G3's precondition, declared rather than inferred, on the same guard
264
+ // `observe_runtime` uses: a completed run that collected nothing witnessed
265
+ // nothing, and claiming otherwise would assert a precondition on an empty
266
+ // array.
267
+ //
268
+ // Gated on evidence, not on `written.recorded.length`. Whether a result
269
+ // could be recorded against a graph node is a fact about the graph, and
270
+ // `resolutionFloor` below already caps the category for a run that
271
+ // recorded none — a suite that ran and resolved to nothing reports
272
+ // `unconfirmed` through the cap, not by pretending it watched nothing.
273
+ ...(collected.length === 0
274
+ ? {}
275
+ : { runtimeEvidence: { independentSignalTypes: witnessedSignalTypes(collected) } }),
276
+ // Witnessed by running it. R4 is what "observed at runtime" means, and that
277
+ // is exactly what happened to every recorded row — regardless of the
278
+ // resolution the static graph holds for the same node.
279
+ resolutionFloor: written.recorded.length > 0 ? 4 : 0,
280
+ nameLevel: true,
281
+ commitSha: base.commitSha,
282
+ graphBuiltAt: base.graphBuiltAt,
283
+ irSchemaVersion: base.irSchemaVersion,
284
+ commitSpread: base.commitSpread,
285
+ notes,
286
+ });
287
+ }
288
+ function describeAction(args) {
289
+ const command = args["command"];
290
+ if (typeof command !== "string")
291
+ throw new ToolInputError('"command" must be a string');
292
+ const cwd = args["cwd"];
293
+ return (`Run "${command}"${typeof cwd === "string" ? ` in ${cwd}` : ""} and record which tests executed. ` +
294
+ "This executes your repository's own code. It writes to the graph's earned ledger; it changes no " +
295
+ "source file and promotes no edge.");
296
+ }
297
+ export const observeTestsTool = {
298
+ name: "observe_tests",
299
+ class: "action",
300
+ tier: "evidence",
301
+ version: "1.0.0",
302
+ title: "Run the test suite and record what actually executed",
303
+ description: "Runs this project's test suite and records which test cases actually ran, and how they finished, " +
304
+ "against the graph's own TEST_CASE nodes. This is the coverage axis — what was actually verified — " +
305
+ "which is a separate question from any finding's confidence, and it is the one runtime signal that " +
306
+ "needs no application booted. It records that a test executed; it does not witness which functions " +
307
+ "the test reached, so it promotes no edge. Running takes a two-call confirmation: the first call " +
308
+ "describes what it would run and returns a token, the second sends \"confirmToken\" to actually run it.",
309
+ inputSchema: SCHEMA,
310
+ describeAction,
311
+ run,
312
+ };
313
+ //# sourceMappingURL=observe-tests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observe-tests.js","sourceRoot":"","sources":["../../src/tools/observe-tests.ts"],"names":[],"mappings":"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"}
@@ -21,13 +21,79 @@
21
21
  * test" means "no test that this graph can link", and the difference is
22
22
  * disclosed. Reporting the untested list without it would turn a measured recall
23
23
  * gap into a confident accusation.
24
+ *
25
+ * ## One node map, three id lists
26
+ *
27
+ * `affected`, `untested` and `tests` overlap heavily by construction — an
28
+ * affected node with no covering test is in two of them — and each used to
29
+ * carry the whole node inline, so the same fields were serialized up to three
30
+ * times in one reply. `indexPrAnalysisNodes` collapses that: the lists name
31
+ * ids, `nodes` holds each node once. Tool version 2.0.0 for it.
24
32
  */
25
33
  import { type BriefNode, type ToolDefinition } from "./kit.ts";
26
- /** A node in the change's blast radius. */
27
- export interface AffectedNode extends BriefNode {
34
+ /**
35
+ * A node in the change's blast radius, named by id into `nodes`.
36
+ *
37
+ * It used to carry the whole node inline, and so did `untested` and `tests` —
38
+ * three lists over one heavily-overlapping population, every member
39
+ * serialized up to three times. An affected node with no covering test is in
40
+ * two of them by construction, which is the normal case rather than the
41
+ * unusual one, so the duplication scaled with exactly the answer a caller
42
+ * most wants. One map, three id lists.
43
+ */
44
+ export interface AffectedRef {
45
+ readonly id: string;
28
46
  readonly score: number;
29
47
  readonly depth: number;
48
+ /** 1-based position in this answer, highest score first. */
49
+ readonly rank: number;
50
+ /**
51
+ * `top` / `notable` / `rest` by rank, never by an absolute score threshold.
52
+ * This score is `weightedBfs`'s confidence decay — `changeRisk` passes only a
53
+ * budget, so it takes the default `weightFor` — and §12.7's tiers were
54
+ * calibrated against `scoping/`'s designed weights instead. See
55
+ * `prominence.ts`'s header for why reusing them here would be a calibrated
56
+ * label on an uncalibrated number.
57
+ */
58
+ readonly prominence: "top" | "notable" | "rest";
30
59
  }
60
+ /**
61
+ * The three lists and the one node map they name into.
62
+ *
63
+ * `nodes` holds each node once, whichever lists mention it. A caller reads a
64
+ * list, then looks each id up — never the reverse, and never by scanning.
65
+ */
66
+ export interface PrAnalysisLists {
67
+ readonly nodes: Readonly<Record<string, BriefNode>>;
68
+ readonly affected: readonly AffectedRef[];
69
+ readonly untested: readonly string[];
70
+ readonly tests: readonly string[];
71
+ }
72
+ /** What `briefNode` accepts — the graph-node shape these three lists arrive as. */
73
+ interface IndexableNode {
74
+ readonly id: string;
75
+ readonly type: string;
76
+ readonly name: string;
77
+ readonly file: string | null;
78
+ readonly range: {
79
+ readonly startLine: number;
80
+ readonly endLine: number;
81
+ } | null;
82
+ readonly language: string | null;
83
+ readonly resolution: number;
84
+ }
85
+ /**
86
+ * Collapse three overlapping node lists into one map plus three id lists.
87
+ *
88
+ * Order within each list is preserved exactly — it is the ranking the query
89
+ * layer produced, and re-sorting it here would silently change which nodes a
90
+ * caller's own `limit` keeps.
91
+ */
92
+ export declare function indexPrAnalysisNodes(affected: readonly {
93
+ readonly node: IndexableNode;
94
+ readonly score: number;
95
+ readonly depth: number;
96
+ }[], untested: readonly IndexableNode[], tests: readonly IndexableNode[]): PrAnalysisLists;
31
97
  /** Shared by every branch: what was diffed, and what came out of git. */
32
98
  export interface PrAnalysisRange {
33
99
  readonly base: string;
@@ -48,10 +114,7 @@ export type PrAnalysisGitFailure = PrAnalysisRange;
48
114
  * The three lists are present and empty on purpose — the absence here **is**
49
115
  * a fact about the change. No `missing`, because there was nothing to resolve.
50
116
  */
51
- export interface PrAnalysisEmptyDiff extends PrAnalysisRange {
52
- readonly affected: readonly AffectedNode[];
53
- readonly untested: readonly BriefNode[];
54
- readonly tests: readonly BriefNode[];
117
+ export interface PrAnalysisEmptyDiff extends PrAnalysisRange, PrAnalysisLists {
55
118
  }
56
119
  /**
57
120
  * The diff resolved to no graph node at all, so no blast radius was computed.
@@ -71,19 +134,14 @@ export interface PrAnalysisUnresolved extends PrAnalysisEmptyDiff {
71
134
  * so a genuinely covered symbol can appear here. A gap to check, never a
72
135
  * proven hole. Narrow on `"changedSymbols" in data`.
73
136
  */
74
- export interface PrAnalysisReport extends PrAnalysisRange {
137
+ export interface PrAnalysisReport extends PrAnalysisRange, PrAnalysisLists {
75
138
  readonly missing: readonly string[];
76
139
  readonly changedSymbols: number;
77
140
  readonly affectedTotal: number;
78
- /** Capped by `limit`. */
79
- readonly affected: readonly AffectedNode[];
80
141
  readonly untestedTotal: number;
81
- /** Capped by `limit`. */
82
- readonly untested: readonly BriefNode[];
83
- /** Capped by `limit`. */
84
- readonly tests: readonly BriefNode[];
85
142
  readonly testsTotal: number;
86
143
  }
87
144
  export type PrAnalysisData = PrAnalysisGitFailure | PrAnalysisEmptyDiff | PrAnalysisUnresolved | PrAnalysisReport;
88
145
  export declare const prAnalysisTool: ToolDefinition;
146
+ export {};
89
147
  //# sourceMappingURL=pr-analysis.d.ts.map