@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
@@ -38,7 +38,7 @@
38
38
  */
39
39
  import { applyConfirmedFacts, counts, groupRefusalsIntoQuestions } from "@descryy/core";
40
40
  import { writeConfirmedFact } from "../session.js";
41
- import { answer, optionalString, requiredString, ToolInputError } from "./kit.js";
41
+ import { answer, optionalEnum, optionalString, requiredString, ToolInputError, } from "./kit.js";
42
42
  const SCHEMA = {
43
43
  type: "object",
44
44
  properties: {
@@ -62,13 +62,69 @@ const SCHEMA = {
62
62
  type: "string",
63
63
  description: "Free text — who or what is asserting this. Defaults to \"user\".",
64
64
  },
65
+ scope: {
66
+ type: "string",
67
+ enum: ["repo", "workspace"],
68
+ description: "How far this answer reaches. \"repo\" (the default) answers rows in this repository " +
69
+ "only. \"workspace\" also answers rows in every repository linked into the same " +
70
+ "workspace by \"link_workspace\", and requires one to be configured. Choose " +
71
+ "\"workspace\" only when the value is genuinely the same everywhere in the workspace " +
72
+ "— two services can each read an environment variable of the same name and mean " +
73
+ "different things by it, and this tool has no way to tell.",
74
+ },
65
75
  },
66
76
  required: ["blockedBy", "value"],
67
77
  additionalProperties: false,
68
78
  },
79
+ // Declared here, not only in the prose. This tool's own description tells
80
+ // a caller to send `confirmToken` on the second call, and for a while the
81
+ // schema beside it said no such property existed — with
82
+ // `additionalProperties: false`, a client validating against the schema it
83
+ // was handed would reject the exact call the description asked for. A
84
+ // parameter a tool documents and a parameter a tool declares have to be
85
+ // the same set; `tool-schema-prose.test.ts` now holds the whole registry
86
+ // to that.
87
+ confirmToken: {
88
+ type: "string",
89
+ description: "The token returned by a previous call that carried \"answer\". Recording a confirmed value " +
90
+ "takes two calls: the first returns a token and writes nothing, the second redeems it. A " +
91
+ "token is single-use, expires, and is only valid for this tool. Omit it on a pure read of " +
92
+ "the open-question queue — that path performs nothing and needs no handshake.",
93
+ },
69
94
  },
70
95
  additionalProperties: false,
71
96
  };
97
+ /**
98
+ * The `answer` argument, read and validated in one place.
99
+ *
100
+ * Extracted so `describeAction` can call it too: an `action` tool's mint must
101
+ * refuse what its run would refuse, or it asks a developer to confirm a
102
+ * sentence with no referent. The instance that made this concrete here is the
103
+ * worst one this tool can produce — a `scope: "workspace"` answer in a
104
+ * repository with no workspace was described as *"reaching EVERY repository in
105
+ * this workspace"* and then refused on the second call, after the
106
+ * confirmation. Ruled in
107
+ * `documents/decisions-inbox/DEC-387.md`.
108
+ *
109
+ * Reads the session only for `config.workspace`; writes nothing, so it is safe
110
+ * to run at mint time, outside the call budget.
111
+ */
112
+ function readAnswer(answerArg, session) {
113
+ if (typeof answerArg !== "object" || answerArg === null) {
114
+ throw new ToolInputError('"answer" must be an object');
115
+ }
116
+ const a = answerArg;
117
+ const blockedBy = requiredString(a, "blockedBy");
118
+ const value = requiredString(a, "value");
119
+ const environment = optionalString(a, "environment");
120
+ const confirmedBy = optionalString(a, "confirmedBy") ?? "user";
121
+ const scope = optionalEnum(a, "scope", ["repo", "workspace"]) ?? "repo";
122
+ if (scope === "workspace" && session.config.workspace === undefined) {
123
+ throw new ToolInputError('scope "workspace" needs a configured workspace, and this repository has none. Call ' +
124
+ '"link_workspace" first, or record this answer with scope "repo".');
125
+ }
126
+ return { blockedBy, value, environment, confirmedBy, scope };
127
+ }
72
128
  async function run(args, ctx) {
73
129
  const { session } = ctx;
74
130
  const notes = [];
@@ -79,11 +135,7 @@ async function run(args, ctx) {
79
135
  if (typeof answerArg !== "object" || answerArg === null) {
80
136
  throw new ToolInputError('"answer" must be an object');
81
137
  }
82
- const a = answerArg;
83
- const blockedBy = requiredString(a, "blockedBy");
84
- const value = requiredString(a, "value");
85
- const environment = optionalString(a, "environment");
86
- const confirmedBy = optionalString(a, "confirmedBy") ?? "user";
138
+ const { blockedBy, value, environment, confirmedBy, scope } = readAnswer(answerArg, session);
87
139
  // "Against what" (see ConfirmedFact.confirmedAtCommit) — the repo's own
88
140
  // commit at the moment this answer is given, so a later mint can tell
89
141
  // whether the code has moved since a human said this value was correct.
@@ -103,6 +155,13 @@ async function run(args, ctx) {
103
155
  confirmedBy,
104
156
  confirmedAt: new Date().toISOString(),
105
157
  ...(confirmedAtCommit === undefined ? {} : { confirmedAtCommit }),
158
+ scope,
159
+ // The id is stamped on the fact rather than looked up when it is read:
160
+ // a fact must not start reaching further because the repository it lives
161
+ // in was later re-linked into a different workspace.
162
+ ...(scope === "workspace" && session.config.workspace !== undefined
163
+ ? { workspace: session.config.workspace }
164
+ : {}),
106
165
  };
107
166
  ctx.progress(`Recording an answer for ${blockedBy}${environment === undefined ? "" : ` (${environment})`}`);
108
167
  const written = await writeConfirmedFact(session.repoPath, recorded);
@@ -118,7 +177,11 @@ async function run(args, ctx) {
118
177
  const provider = session.provider();
119
178
  const { refs, truncated } = provider.unresolvedRefs();
120
179
  const total = counts(session.store().driver).unresolvedRefs;
121
- const { answered, stillOpen } = applyConfirmedFacts(refs, facts, session.config.repo);
180
+ // Facts recorded here, plus the workspace-scoped ones recorded in the
181
+ // siblings `link_workspace` declared. `applyConfirmedFacts` decides which of
182
+ // those actually reach this repository — this call supplies the candidates,
183
+ // it does not pre-approve them.
184
+ const { answered, stillOpen } = applyConfirmedFacts(refs, [...facts, ...(session.config.linkedFacts ?? [])], session.config.repo, session.config.workspace);
122
185
  const grouped = groupRefusalsIntoQuestions(session.config.repo, stillOpen);
123
186
  if (truncated) {
124
187
  notes.push("The classified-refusal read was capped and some rows were not examined — this list may be " +
@@ -132,6 +195,17 @@ async function run(args, ctx) {
132
195
  if (answered.length > 0) {
133
196
  notes.push(`${answered.length} previously-open row(s) are already answered by a stored confirmed fact and ` +
134
197
  "are not listed as questions.");
198
+ // Named, never folded in. "Somebody answered this here" and "somebody
199
+ // answered this in another repository and declared it workspace-wide" are
200
+ // different facts about what this developer actually knows, and only the
201
+ // second one carries the risk the scope field exists to make deliberate.
202
+ const elsewhere = answered.filter((a) => a.fromAnotherRepo);
203
+ if (elsewhere.length > 0) {
204
+ const repos = [...new Set(elsewhere.flatMap((a) => a.facts.map((f) => f.repo)))].sort();
205
+ notes.push(`${elsewhere.length} of those are answered only by workspace-scoped fact(s) recorded in ` +
206
+ `${repos.join(", ")}, not in ${session.config.repo}. They apply here because whoever ` +
207
+ `recorded them declared scope "workspace", not because this tool matched on the name.`);
208
+ }
135
209
  }
136
210
  for (const [cls, count] of Object.entries(grouped.dropped)) {
137
211
  if (cls === "value-unknown")
@@ -159,6 +233,7 @@ async function run(args, ctx) {
159
233
  commitSha: provider.baseStamp().commitSha,
160
234
  graphBuiltAt: provider.baseStamp().graphBuiltAt,
161
235
  irSchemaVersion: provider.baseStamp().irSchemaVersion,
236
+ commitSpread: provider.baseStamp().commitSpread,
162
237
  // Empty only for a pure read that found nothing open — the classified
163
238
  // population is real (`classifiedRows`). Recording an answer that happens
164
239
  // to empty the queue is a successful write, not an empty search.
@@ -182,16 +257,25 @@ async function run(args, ctx) {
182
257
  * `ConfirmedFact` describes itself, so `resolveActionDispatch` mints a token
183
258
  * for that call alone.
184
259
  */
185
- function describeAction(args) {
186
- const a = args["answer"];
187
- if (typeof a !== "object" || a === null)
188
- return undefined;
189
- const { blockedBy, value, environment } = a;
190
- if (typeof blockedBy !== "string" || typeof value !== "string")
260
+ function describeAction(args, ctx) {
261
+ const answerArg = args["answer"];
262
+ // No `answer` at all is a pure read of the open-question queue: nothing to
263
+ // confirm, and gating it would make the tool unable to answer the first
264
+ // question asked of it. Every other shape goes through the same reader the
265
+ // run uses, so a call this tool would refuse is refused here instead of
266
+ // being described and minted.
267
+ if (answerArg === undefined)
191
268
  return undefined;
269
+ const { blockedBy, value, environment, scope } = readAnswer(answerArg, ctx.session);
192
270
  return (`record a ConfirmedFact: "${blockedBy}" = "${value}"` +
193
271
  (typeof environment === "string" ? ` (environment: ${environment})` : "") +
194
- " — capped at reliability class B (DEC-223) once used.");
272
+ // The reach is part of what is being approved. A workspace-scoped answer
273
+ // affects repositories the approver is not currently looking at, and §7's
274
+ // handshake exists so nothing is performed that was not described.
275
+ (scope === "workspace"
276
+ ? " — reaching EVERY repository in this workspace, not just this one,"
277
+ : " — in this repository only,") +
278
+ " capped at reliability class B (DEC-223) once used.");
195
279
  }
196
280
  export const questionsTool = {
197
281
  name: "questions",
@@ -204,6 +288,9 @@ export const questionsTool = {
204
288
  "sentence answers those). Pass \"answer\" to record a confirmed value for one question, keyed " +
205
289
  "on its exact \"blockedBy\" string within this repository; the answer is capped at reliability " +
206
290
  "class B when later used, regardless of anything else about the edge it resolves (DEC-223). " +
291
+ "An answer reaches this repository alone unless it is recorded with scope \"workspace\", which " +
292
+ "extends it to every repository linked into the same workspace; a row answered that way is " +
293
+ "always reported as having been answered elsewhere. " +
207
294
  "Recording an answer takes a two-call confirmation: the first call with \"answer\" performs " +
208
295
  "nothing and returns a token; call again with \"confirmToken\" to actually record it.",
209
296
  inputSchema: SCHEMA,
@@ -1 +1 @@
1
- {"version":3,"file":"questions.js","sourceRoot":"","sources":["../../src/tools/questions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"questions.js","sourceRoot":"","sources":["../../src/tools/questions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"refusal-fetch.d.ts","sourceRoot":"","sources":["../../src/tools/refusal-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAIH,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,UAAU,CAAC;AAqBlB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,qGAAqG;IACrG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uGAAuG;IACvG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACnD,iFAAiF;IACjF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,MAAM,gBAAgB,GAAG,uBAAuB,GAAG,oBAAoB,CAAC;AAiF9E,eAAO,MAAM,gBAAgB,EAAE,cAe9B,CAAC"}
1
+ {"version":3,"file":"refusal-fetch.d.ts","sourceRoot":"","sources":["../../src/tools/refusal-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAIH,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,UAAU,CAAC;AAqBlB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,qGAAqG;IACrG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uGAAuG;IACvG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACnD,iFAAiF;IACjF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,MAAM,gBAAgB,GAAG,uBAAuB,GAAG,oBAAoB,CAAC;AAkF9E,eAAO,MAAM,gBAAgB,EAAE,cAe9B,CAAC"}
@@ -79,6 +79,7 @@ async function run(args, ctx) {
79
79
  commitSha: base.commitSha,
80
80
  graphBuiltAt: base.graphBuiltAt,
81
81
  irSchemaVersion: base.irSchemaVersion,
82
+ commitSpread: base.commitSpread,
82
83
  nameLevel: true,
83
84
  };
84
85
  if (handle === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"refusal-fetch.js","sourceRoot":"","sources":["../../src/tools/refusal-fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refusal-fetch.js","sourceRoot":"","sources":["../../src/tools/refusal-fetch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * A service that died during an observed run, recorded as an incident.
3
+ *
4
+ * The fifth and last incident mechanism — and the only one whose evidence is a
5
+ * machine's rather than a person's. `observe_runtime` already spawns real
6
+ * processes and watches them; a process that exits non-zero or takes a fatal
7
+ * signal really did fail, and that is a fact about the world in the same class
8
+ * as the R4 edges that tool already writes.
9
+ *
10
+ * ## An exception is not an incident, and this is where that bites hardest
11
+ *
12
+ * The obvious design — every `EXCEPTION` becomes an incident — is wrong and
13
+ * would be the worst instance of the pollution the whole incident ruling is
14
+ * about. A caught, expected error during a run Descry itself provoked is not a
15
+ * production failure, and `INCIDENT` is an EARNED-class claim that biases diff
16
+ * scoping permanently. The conformance fixture prints a real `Error.stack` on a
17
+ * timer precisely to have caught exceptions in the stream, and none of them may
18
+ * mint anything.
19
+ *
20
+ * So the qualifying condition is about the **process**, not the log:
21
+ *
22
+ * - a non-zero exit code, or
23
+ * - a fatal signal Descry did not send.
24
+ *
25
+ * The second half needs care, because Descry's own teardown *is* a signal.
26
+ * `SIGTERM` at the end of an observation window is the orchestrator stopping a
27
+ * healthy service, and reading it as a crash would make every successful run
28
+ * mint an incident. Only the signals a process takes when it dies of its own
29
+ * accord count — see `FATAL_SIGNALS`.
30
+ *
31
+ * ## What the incident is correlated to, and what that claim is
32
+ *
33
+ * Every file named by an `EXCEPTION` source location observed during the run.
34
+ * That is deliberately *not* "the cause": nothing here knows which exception
35
+ * killed the process, and picking the last one would be recency standing in for
36
+ * causality. The honest claim, and the one the record's own summary makes, is
37
+ * **"these files were implicated in a run in which this service died"** — real,
38
+ * checkable, and weaker than a root cause.
39
+ *
40
+ * This is also better than the ruling predicted.
41
+ * `DEC-NEXT-collector-evidence-carries-no-service-name` blocks the *correlator*
42
+ * from resolving symbol evidence, so the decision expected this mechanism to
43
+ * mint an incident with no file edges at all. It does not need the correlator:
44
+ * `Evidence.sourceLocation.file` is an absolute path the adapter already
45
+ * parsed, and turning it into a repo-relative one is a subtraction, not a
46
+ * resolution.
47
+ *
48
+ * ## Durability
49
+ *
50
+ * Written as a `ConfirmedIncident` carrying `observedInRun`, which is what the
51
+ * projecting source reads to stamp `detectedVia: "runtime-observed"`. A run is
52
+ * gone once the process exits, so the record cannot live only in a store that
53
+ * DEC-017 drops on the next schema bump — the same argument that put a
54
+ * developer's testimony in `.descry/config.json`, reached from the other side.
55
+ *
56
+ * See `DEC-NEXT-incident-minting-beyond-explicit-reverts`.
57
+ */
58
+ import type { ConfirmedIncident } from "@descryy/ir";
59
+ /** One observed service, in the shape `observe_runtime` already reports. */
60
+ export interface ObservedProcessOutcome {
61
+ readonly service: string;
62
+ readonly started: boolean;
63
+ readonly exitCode: number | null;
64
+ readonly signal: string | null;
65
+ }
66
+ /** An exception's own source location, as the runtime adapter parsed it. */
67
+ export interface ObservedExceptionLocation {
68
+ readonly file: string | null;
69
+ }
70
+ export interface RuntimeIncidentInput {
71
+ readonly repo: string;
72
+ readonly repoRoot: string;
73
+ readonly runId: string;
74
+ readonly services: readonly ObservedProcessOutcome[];
75
+ /** Every exception source location seen during the run, in observation order. */
76
+ readonly exceptionLocations: readonly ObservedExceptionLocation[];
77
+ /** The first line of each exception's text, for the message-similarity signal. */
78
+ readonly exceptionTexts: readonly string[];
79
+ readonly now?: () => Date;
80
+ }
81
+ /** Whether this service's exit is a failure rather than Descry stopping it. */
82
+ export declare function died(outcome: ObservedProcessOutcome): boolean;
83
+ /**
84
+ * The incident a run witnessed, or `null` when every service exited cleanly —
85
+ * which is the overwhelmingly common case and is not a finding.
86
+ *
87
+ * One record per run, not one per dead service: a run in which two services
88
+ * died is one failure of one system observed once, and minting two would double
89
+ * its weight in every ranking that counts incidents.
90
+ */
91
+ export declare function runtimeObservedIncident(input: RuntimeIncidentInput): ConfirmedIncident | null;
92
+ //# sourceMappingURL=runtime-incident.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-incident.d.ts","sourceRoot":"","sources":["../../src/tools/runtime-incident.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAmBrD,4EAA4E;AAC5E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,4EAA4E;AAC5E,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACrD,iFAAiF;IACjF,QAAQ,CAAC,kBAAkB,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAClE,kFAAkF;IAClF,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,+EAA+E;AAC/E,wBAAgB,IAAI,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAI7D;AAiBD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,IAAI,CAuC7F"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * A service that died during an observed run, recorded as an incident.
3
+ *
4
+ * The fifth and last incident mechanism — and the only one whose evidence is a
5
+ * machine's rather than a person's. `observe_runtime` already spawns real
6
+ * processes and watches them; a process that exits non-zero or takes a fatal
7
+ * signal really did fail, and that is a fact about the world in the same class
8
+ * as the R4 edges that tool already writes.
9
+ *
10
+ * ## An exception is not an incident, and this is where that bites hardest
11
+ *
12
+ * The obvious design — every `EXCEPTION` becomes an incident — is wrong and
13
+ * would be the worst instance of the pollution the whole incident ruling is
14
+ * about. A caught, expected error during a run Descry itself provoked is not a
15
+ * production failure, and `INCIDENT` is an EARNED-class claim that biases diff
16
+ * scoping permanently. The conformance fixture prints a real `Error.stack` on a
17
+ * timer precisely to have caught exceptions in the stream, and none of them may
18
+ * mint anything.
19
+ *
20
+ * So the qualifying condition is about the **process**, not the log:
21
+ *
22
+ * - a non-zero exit code, or
23
+ * - a fatal signal Descry did not send.
24
+ *
25
+ * The second half needs care, because Descry's own teardown *is* a signal.
26
+ * `SIGTERM` at the end of an observation window is the orchestrator stopping a
27
+ * healthy service, and reading it as a crash would make every successful run
28
+ * mint an incident. Only the signals a process takes when it dies of its own
29
+ * accord count — see `FATAL_SIGNALS`.
30
+ *
31
+ * ## What the incident is correlated to, and what that claim is
32
+ *
33
+ * Every file named by an `EXCEPTION` source location observed during the run.
34
+ * That is deliberately *not* "the cause": nothing here knows which exception
35
+ * killed the process, and picking the last one would be recency standing in for
36
+ * causality. The honest claim, and the one the record's own summary makes, is
37
+ * **"these files were implicated in a run in which this service died"** — real,
38
+ * checkable, and weaker than a root cause.
39
+ *
40
+ * This is also better than the ruling predicted.
41
+ * `DEC-NEXT-collector-evidence-carries-no-service-name` blocks the *correlator*
42
+ * from resolving symbol evidence, so the decision expected this mechanism to
43
+ * mint an incident with no file edges at all. It does not need the correlator:
44
+ * `Evidence.sourceLocation.file` is an absolute path the adapter already
45
+ * parsed, and turning it into a repo-relative one is a subtraction, not a
46
+ * resolution.
47
+ *
48
+ * ## Durability
49
+ *
50
+ * Written as a `ConfirmedIncident` carrying `observedInRun`, which is what the
51
+ * projecting source reads to stamp `detectedVia: "runtime-observed"`. A run is
52
+ * gone once the process exits, so the record cannot live only in a store that
53
+ * DEC-017 drops on the next schema bump — the same argument that put a
54
+ * developer's testimony in `.descry/config.json`, reached from the other side.
55
+ *
56
+ * See `DEC-NEXT-incident-minting-beyond-explicit-reverts`.
57
+ */
58
+ import { isAbsolute, relative } from "node:path";
59
+ /**
60
+ * Signals a process takes when it dies of its own accord.
61
+ *
62
+ * `SIGTERM` and `SIGINT` are absent on purpose: those are what an orchestrator
63
+ * sends to stop a healthy service, and Descry's own teardown sends the first
64
+ * one at the end of every observation window. Counting them would make a
65
+ * successful run mint an incident, every time.
66
+ */
67
+ const FATAL_SIGNALS = new Set([
68
+ "SIGSEGV",
69
+ "SIGABRT",
70
+ "SIGBUS",
71
+ "SIGFPE",
72
+ "SIGILL",
73
+ "SIGKILL",
74
+ ]);
75
+ /** Whether this service's exit is a failure rather than Descry stopping it. */
76
+ export function died(outcome) {
77
+ if (!outcome.started)
78
+ return false;
79
+ if (outcome.exitCode !== null && outcome.exitCode !== 0)
80
+ return true;
81
+ return outcome.signal !== null && FATAL_SIGNALS.has(outcome.signal);
82
+ }
83
+ /**
84
+ * Repo-relative, and only when the path really is inside the repository.
85
+ *
86
+ * A stack frame in `node_modules` or in the runtime's own internals names a
87
+ * real file that is not this repository's, and correlating an incident to it
88
+ * would attach the failure to code the developer cannot change.
89
+ */
90
+ function insideRepo(repoRoot, file) {
91
+ if (!isAbsolute(file))
92
+ return file.includes("node_modules") ? null : file;
93
+ const rel = relative(repoRoot, file);
94
+ if (rel === "" || rel.startsWith("..") || isAbsolute(rel))
95
+ return null;
96
+ if (rel.split("/").includes("node_modules"))
97
+ return null;
98
+ return rel;
99
+ }
100
+ /**
101
+ * The incident a run witnessed, or `null` when every service exited cleanly —
102
+ * which is the overwhelmingly common case and is not a finding.
103
+ *
104
+ * One record per run, not one per dead service: a run in which two services
105
+ * died is one failure of one system observed once, and minting two would double
106
+ * its weight in every ranking that counts incidents.
107
+ */
108
+ export function runtimeObservedIncident(input) {
109
+ const dead = input.services.filter(died);
110
+ if (dead.length === 0)
111
+ return null;
112
+ const files = [
113
+ ...new Set(input.exceptionLocations
114
+ .map((location) => (location.file === null ? null : insideRepo(input.repoRoot, location.file)))
115
+ .filter((path) => path !== null && path !== "")),
116
+ ].sort();
117
+ // No file the repository owns means nothing to attach the incident to, and a
118
+ // record naming no file is invisible to every query that looks for one. The
119
+ // death is still reported in the tool's own counts — this returns no record
120
+ // rather than an unfindable one.
121
+ if (files.length === 0)
122
+ return null;
123
+ const names = dead.map((d) => d.service).sort();
124
+ const how = dead
125
+ .map((d) => `${d.service} ${d.exitCode !== null ? `exited ${String(d.exitCode)}` : `took ${String(d.signal)}`}`)
126
+ .join(", ");
127
+ return {
128
+ repo: input.repo,
129
+ // States what was witnessed and nothing more. Not "X is broken" — a run
130
+ // that provoked a crash has established that the crash happened, not what
131
+ // is wrong.
132
+ summary: `observed run: ${how}`,
133
+ files,
134
+ // The message-similarity signal's input, which is what makes a future
135
+ // failure with the same error text match this one at all.
136
+ ...(input.exceptionTexts.length === 0
137
+ ? {}
138
+ : { errorText: [...new Set(input.exceptionTexts)].slice(0, 5).join(" | ").slice(0, 2_000) }),
139
+ confirmedBy: `observe_runtime (${names.join(", ")})`,
140
+ confirmedAt: (input.now?.() ?? new Date()).toISOString(),
141
+ observedInRun: input.runId,
142
+ };
143
+ }
144
+ //# sourceMappingURL=runtime-incident.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-incident.js","sourceRoot":"","sources":["../../src/tools/runtime-incident.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/tools/scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAA8C,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAOL,KAAK,SAAS,EAEd,KAAK,cAAc,EACpB,MAAM,UAAU,CAAC;AAGlB,iDAAiD;AACjD,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;CACzB;AAED,8EAA8E;AAC9E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC/C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;CAC5C;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC;AA0JrD,eAAO,MAAM,SAAS,EAAE,cAavB,CAAC"}
1
+ {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/tools/scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAA8C,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAOL,KAAK,SAAS,EAEd,KAAK,cAAc,EACpB,MAAM,UAAU,CAAC;AAGlB,iDAAiD;AACjD,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;CACzB;AAED,8EAA8E;AAC9E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC/C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;CAC5C;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC;AA2JrD,eAAO,MAAM,SAAS,EAAE,cAavB,CAAC"}
@@ -99,6 +99,7 @@ async function run(args, ctx) {
99
99
  commitSha: base.commitSha,
100
100
  graphBuiltAt: base.graphBuiltAt,
101
101
  irSchemaVersion: base.irSchemaVersion,
102
+ commitSpread: base.commitSpread,
102
103
  notes: [
103
104
  ...notes,
104
105
  "This is not a result of zero impact. No seed node was found, so the traversal never ran.",
@@ -1 +1 @@
1
- {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/tools/scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/tools/scope.ts"],"names":[],"mappings":"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"}
@@ -75,6 +75,19 @@ export interface SimilarIncidentReport {
75
75
  readonly incident: BriefNode;
76
76
  /** The `FIX_PATTERN` this incident resolved to, when a `FIXED_BY` edge exists. */
77
77
  readonly fix: BriefNode | null;
78
+ /**
79
+ * How this incident came to exist — the `INCIDENT` node's own
80
+ * `attrs.detectedVia`.
81
+ *
82
+ * Reported per match rather than folded away, because the mechanisms are not
83
+ * interchangeable and a ranked list that hides the difference is not
84
+ * reportable. `explicit-revert` and `manual-revert` rest on a revert somebody
85
+ * wrote; `issue-reference` on a developer's `Fixes #123`; `runtime-observed`
86
+ * on a process that really died; `developer-confirmed` on a person saying so,
87
+ * which is testimony and capped at reliability class B by DEC-223 wherever it
88
+ * is used. `null` for an incident minted before this field existed.
89
+ */
90
+ readonly detectedVia: string | null;
78
91
  readonly signals: readonly SimilarIncidentSignalReport[];
79
92
  /** Weighted combination of every signal the query attempted, 0..1. */
80
93
  readonly score: number;
@@ -1 +1 @@
1
- {"version":3,"file":"similar-incidents.d.ts","sourceRoot":"","sources":["../../src/tools/similar-incidents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AAEH,OAAO,EAAoB,KAAK,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAEjF,OAAO,EAOL,KAAK,SAAS,EAEd,KAAK,cAAc,EACpB,MAAM,UAAU,CAAC;AAiClB,6EAA6E;AAC7E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACzD,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;QACzC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;KACtC,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACnD,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,8FAA8F;IAC9F,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAiJD,eAAO,MAAM,oBAAoB,EAAE,cAkBlC,CAAC"}
1
+ {"version":3,"file":"similar-incidents.d.ts","sourceRoot":"","sources":["../../src/tools/similar-incidents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AAEH,OAAO,EAAoB,KAAK,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAEjF,OAAO,EAOL,KAAK,SAAS,EAEd,KAAK,cAAc,EACpB,MAAM,UAAU,CAAC;AAiClB,6EAA6E;AAC7E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACzD,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;QACzC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;KACtC,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACnD,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,8FAA8F;IAC9F,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AA6JD,eAAO,MAAM,oBAAoB,EAAE,cAqBlC,CAAC"}