@isaacriehm/cairn-core 0.19.0 → 0.21.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 (164) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/attention/index.d.ts +0 -2
  3. package/dist/attention/index.js +0 -2
  4. package/dist/attention/index.js.map +1 -1
  5. package/dist/attention/restore.d.ts +1 -1
  6. package/dist/attention/restore.js +1 -1
  7. package/dist/attention/source-strip.d.ts +2 -2
  8. package/dist/attention/source-strip.js +2 -2
  9. package/dist/components/audit.d.ts +20 -3
  10. package/dist/components/audit.js +220 -51
  11. package/dist/components/audit.js.map +1 -1
  12. package/dist/doctor/index.js +96 -3
  13. package/dist/doctor/index.js.map +1 -1
  14. package/dist/gc/citation-integrity.d.ts +2 -2
  15. package/dist/gc/citation-integrity.js +9 -7
  16. package/dist/gc/citation-integrity.js.map +1 -1
  17. package/dist/gc/classify.js +3 -16
  18. package/dist/gc/classify.js.map +1 -1
  19. package/dist/gc/entity-orphan.js +7 -5
  20. package/dist/gc/entity-orphan.js.map +1 -1
  21. package/dist/gc/sweep.d.ts +1 -1
  22. package/dist/gc/sweep.js +1 -1
  23. package/dist/hooks/post-tool-use/ask-user-blocked.d.ts +1 -2
  24. package/dist/hooks/post-tool-use/ask-user-blocked.js +1 -2
  25. package/dist/hooks/post-tool-use/ask-user-blocked.js.map +1 -1
  26. package/dist/hooks/post-tool-use/citation-scanner.d.ts +2 -2
  27. package/dist/hooks/post-tool-use/citation-scanner.js +1 -1
  28. package/dist/hooks/post-tool-use/read-enricher.d.ts +1 -1
  29. package/dist/hooks/post-tool-use/read-enricher.js +1 -1
  30. package/dist/hooks/post-tool-use/write-guardian.d.ts +1 -5
  31. package/dist/hooks/post-tool-use/write-guardian.js +21 -14
  32. package/dist/hooks/post-tool-use/write-guardian.js.map +1 -1
  33. package/dist/hooks/runners/session-start.js +61 -1
  34. package/dist/hooks/runners/session-start.js.map +1 -1
  35. package/dist/hooks/runners/stop.js +20 -30
  36. package/dist/hooks/runners/stop.js.map +1 -1
  37. package/dist/index.d.ts +1 -0
  38. package/dist/index.js +1 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/init/detect-components.d.ts +3 -2
  41. package/dist/init/detect-components.js +31 -13
  42. package/dist/init/detect-components.js.map +1 -1
  43. package/dist/init/detect.d.ts +1 -5
  44. package/dist/init/detect.js +157 -143
  45. package/dist/init/detect.js.map +1 -1
  46. package/dist/init/glob-inference.js +24 -0
  47. package/dist/init/glob-inference.js.map +1 -1
  48. package/dist/init/index.d.ts +3 -3
  49. package/dist/init/index.js +1 -1
  50. package/dist/init/index.js.map +1 -1
  51. package/dist/init/init.js +0 -14
  52. package/dist/init/init.js.map +1 -1
  53. package/dist/init/mapper-merge.d.ts +1 -4
  54. package/dist/init/mapper-merge.js +4 -17
  55. package/dist/init/mapper-merge.js.map +1 -1
  56. package/dist/init/mapper-parallel.js +1 -1
  57. package/dist/init/mapper-parallel.js.map +1 -1
  58. package/dist/init/mapper-prompts.d.ts +1 -23
  59. package/dist/init/mapper-prompts.js +1 -25
  60. package/dist/init/mapper-prompts.js.map +1 -1
  61. package/dist/init/mapper.d.ts +0 -6
  62. package/dist/init/mapper.js +0 -3
  63. package/dist/init/mapper.js.map +1 -1
  64. package/dist/init/module-slicer.js +3 -24
  65. package/dist/init/module-slicer.js.map +1 -1
  66. package/dist/init/overlay.js +5 -16
  67. package/dist/init/overlay.js.map +1 -1
  68. package/dist/init/phases/9d-comp-walk.js +1 -1
  69. package/dist/init/phases/9d-comp-walk.js.map +1 -1
  70. package/dist/init/source-comments/strip-replace.d.ts +1 -1
  71. package/dist/init/source-comments/strip-replace.js +2 -2
  72. package/dist/init/source-comments/walker.js +8 -79
  73. package/dist/init/source-comments/walker.js.map +1 -1
  74. package/dist/init/types.d.ts +8 -16
  75. package/dist/init/walker.d.ts +1 -1
  76. package/dist/init/walker.js +1 -1
  77. package/dist/mcp/schemas.d.ts +4 -4
  78. package/dist/mcp/schemas.js +1 -1
  79. package/dist/mcp/serve.js +9 -0
  80. package/dist/mcp/serve.js.map +1 -1
  81. package/dist/mcp/tools/decision-get.js +2 -2
  82. package/dist/mcp/tools/decision-get.js.map +1 -1
  83. package/dist/mcp/tools/index.js +0 -6
  84. package/dist/mcp/tools/index.js.map +1 -1
  85. package/dist/mcp/tools/mission-advance.d.ts +3 -4
  86. package/dist/mcp/tools/mission-advance.js +10 -14
  87. package/dist/mcp/tools/mission-advance.js.map +1 -1
  88. package/dist/mcp/tools/record-decision.js +7 -6
  89. package/dist/mcp/tools/record-decision.js.map +1 -1
  90. package/dist/mcp/tools/resolve-attention.js +50 -30
  91. package/dist/mcp/tools/resolve-attention.js.map +1 -1
  92. package/dist/migrate/config-io.d.ts +16 -0
  93. package/dist/migrate/config-io.js +71 -0
  94. package/dist/migrate/config-io.js.map +1 -0
  95. package/dist/migrate/index.d.ts +5 -0
  96. package/dist/migrate/index.js +5 -0
  97. package/dist/migrate/index.js.map +1 -0
  98. package/dist/migrate/migrations/0001-drop-dead-config-fields.d.ts +12 -0
  99. package/dist/migrate/migrations/0001-drop-dead-config-fields.js +39 -0
  100. package/dist/migrate/migrations/0001-drop-dead-config-fields.js.map +1 -0
  101. package/dist/migrate/registry.d.ts +9 -0
  102. package/dist/migrate/registry.js +10 -0
  103. package/dist/migrate/registry.js.map +1 -0
  104. package/dist/migrate/runner.d.ts +45 -0
  105. package/dist/migrate/runner.js +170 -0
  106. package/dist/migrate/runner.js.map +1 -0
  107. package/dist/migrate/semver.d.ts +11 -0
  108. package/dist/migrate/semver.js +35 -0
  109. package/dist/migrate/semver.js.map +1 -0
  110. package/dist/migrate/types.d.ts +39 -0
  111. package/dist/migrate/types.js +13 -0
  112. package/dist/migrate/types.js.map +1 -0
  113. package/dist/missions/task-link.js +3 -3
  114. package/dist/missions/task-link.js.map +1 -1
  115. package/dist/sensors/catalog.js +4 -9
  116. package/dist/sensors/catalog.js.map +1 -1
  117. package/dist/sensors/decisions.js +55 -19
  118. package/dist/sensors/decisions.js.map +1 -1
  119. package/dist/sensors/diff.d.ts +12 -0
  120. package/dist/sensors/diff.js +103 -0
  121. package/dist/sensors/diff.js.map +1 -1
  122. package/dist/sensors/index.d.ts +4 -5
  123. package/dist/sensors/index.js +2 -3
  124. package/dist/sensors/index.js.map +1 -1
  125. package/dist/sensors/runner.d.ts +34 -37
  126. package/dist/sensors/runner.js +63 -53
  127. package/dist/sensors/runner.js.map +1 -1
  128. package/dist/sensors/stub-catalog.d.ts +6 -3
  129. package/dist/sensors/stub-catalog.js +7 -19
  130. package/dist/sensors/stub-catalog.js.map +1 -1
  131. package/dist/sensors/types.d.ts +11 -55
  132. package/dist/sensors/types.js +4 -8
  133. package/dist/sensors/types.js.map +1 -1
  134. package/dist/session-start/build.js +5 -5
  135. package/dist/session-start/build.js.map +1 -1
  136. package/dist/session-start/templates.d.ts +1 -1
  137. package/dist/session-start/templates.js +1 -1
  138. package/dist/tasks/lifecycle.d.ts +3 -4
  139. package/dist/tasks/lifecycle.js +9 -12
  140. package/dist/tasks/lifecycle.js.map +1 -1
  141. package/package.json +2 -2
  142. package/templates/.cairn/git-hooks/pre-commit +7 -4
  143. package/templates/.github/workflows/cairn-check.yml +8 -0
  144. package/dist/attention/bulk-accept.d.ts +0 -78
  145. package/dist/attention/bulk-accept.js +0 -348
  146. package/dist/attention/bulk-accept.js.map +0 -1
  147. package/dist/attention/serve/api.d.ts +0 -24
  148. package/dist/attention/serve/api.js +0 -383
  149. package/dist/attention/serve/api.js.map +0 -1
  150. package/dist/attention/serve/index.d.ts +0 -63
  151. package/dist/attention/serve/index.js +0 -219
  152. package/dist/attention/serve/index.js.map +0 -1
  153. package/dist/mcp/tools/attention-serve.d.ts +0 -23
  154. package/dist/mcp/tools/attention-serve.js +0 -84
  155. package/dist/mcp/tools/attention-serve.js.map +0 -1
  156. package/dist/mcp/tools/attention-wait.d.ts +0 -18
  157. package/dist/mcp/tools/attention-wait.js +0 -84
  158. package/dist/mcp/tools/attention-wait.js.map +0 -1
  159. package/dist/mcp/tools/bulk-accept-attention.d.ts +0 -22
  160. package/dist/mcp/tools/bulk-accept-attention.js +0 -84
  161. package/dist/mcp/tools/bulk-accept-attention.js.map +0 -1
  162. package/dist/sensors/attestation.d.ts +0 -44
  163. package/dist/sensors/attestation.js +0 -262
  164. package/dist/sensors/attestation.js.map +0 -1
@@ -13,9 +13,41 @@
13
13
  import { execSync } from "node:child_process";
14
14
  import { existsSync, readdirSync, readFileSync } from "node:fs";
15
15
  import { join } from "node:path";
16
- import { decisionsDir, lineOf, matchAnyGlob, parseFrontmatter } from "@isaacriehm/cairn-state";
16
+ import { decisionsDir, escapeRegExp, knownExtensions, lineOf, matchAnyGlob, parseFrontmatter, } from "@isaacriehm/cairn-state";
17
17
  import { DecisionFrontmatter } from "@isaacriehm/cairn-state";
18
18
  const SENSOR_ID = "decision-assertions";
19
+ /**
20
+ * Languages whose `ast_pattern` we can honestly approximate with a text regex
21
+ * (no ast-grep engine is wired). A DEC targeting any other language is
22
+ * downgraded to a visible advisory rather than reporting an AST verdict it
23
+ * never computed. Accepts both ast-grep ids and bare extensions-as-ids.
24
+ */
25
+ const AST_TEXT_APPROX = new Set([
26
+ "typescript",
27
+ "ts",
28
+ "tsx",
29
+ "javascript",
30
+ "js",
31
+ "jsx",
32
+ "python",
33
+ "py",
34
+ "go",
35
+ "rust",
36
+ "rs",
37
+ "ruby",
38
+ "rb",
39
+ "sql",
40
+ ]);
41
+ /**
42
+ * Files that may carry a DB schema or migration — any known code file plus the
43
+ * schema DSLs. Replaces the old `sql|prisma|ts|py|rb` allowlist so schema
44
+ * assertions check Go/Java/Kotlin/C#/PHP migrations too, not just JS/Python/Ruby.
45
+ */
46
+ const SCHEMA_FILE_EXTS = new Set([...knownExtensions(), ".prisma", ".graphql", ".gql"]);
47
+ function isSchemaFile(path) {
48
+ const dot = path.lastIndexOf(".");
49
+ return dot !== -1 && SCHEMA_FILE_EXTS.has(path.slice(dot).toLowerCase());
50
+ }
19
51
  /** All decisions accepted at HEAD with parsed frontmatter. */
20
52
  export function loadAcceptedDecisions(repoRoot) {
21
53
  const dir = decisionsDir(repoRoot);
@@ -164,9 +196,9 @@ function evaluateAssertion(args) {
164
196
  const ctx = { decision_id: args.decision.id, assertion_id: a.id };
165
197
  switch (a.kind) {
166
198
  case "schema_must_contain": {
167
- const candidates = args.allFiles.filter((p) => /\.(sql|prisma|ts|py|rb)$/i.test(p));
168
- const tableRe = new RegExp(`\\b${escapeReg(a.table)}\\b`);
169
- const columnRe = new RegExp(`\\b${escapeReg(a.column)}\\b`);
199
+ const candidates = args.allFiles.filter((p) => isSchemaFile(p));
200
+ const tableRe = new RegExp(`\\b${escapeRegExp(a.table)}\\b`);
201
+ const columnRe = new RegExp(`\\b${escapeRegExp(a.column)}\\b`);
170
202
  for (const path of candidates) {
171
203
  const text = args.reader.read(path);
172
204
  if (!text || !tableRe.test(text) || !columnRe.test(text))
@@ -213,11 +245,11 @@ function evaluateAssertion(args) {
213
245
  return null;
214
246
  }
215
247
  case "index_must_exist": {
216
- const candidates = args.allFiles.filter((p) => /\.(sql|prisma|ts|py|rb)$/i.test(p));
248
+ const candidates = args.allFiles.filter((p) => isSchemaFile(p));
217
249
  const colsPattern = a.columns
218
- .map((c) => `(?=.*\\b${escapeReg(c)}\\b)`)
250
+ .map((c) => `(?=.*\\b${escapeRegExp(c)}\\b)`)
219
251
  .join("");
220
- const re = new RegExp(`(?:CREATE\\s+(?:UNIQUE\\s+)?INDEX|index\\s*\\(.*\\bon\\s*:?\\s*['"\`]${escapeReg(a.table)}['"\`])[\\s\\S]{0,400}\\b${escapeReg(a.table)}\\b[\\s\\S]{0,400}${colsPattern}`, "i");
252
+ const re = new RegExp(`(?:CREATE\\s+(?:UNIQUE\\s+)?INDEX|index\\s*\\(.*\\bon\\s*:?\\s*['"\`]${escapeRegExp(a.table)}['"\`])[\\s\\S]{0,400}\\b${escapeRegExp(a.table)}\\b[\\s\\S]{0,400}${colsPattern}`, "i");
221
253
  for (const path of candidates) {
222
254
  const text = args.reader.read(path);
223
255
  if (re.test(text)) {
@@ -232,16 +264,23 @@ function evaluateAssertion(args) {
232
264
  return finding("hard", `${ctx.decision_id}/${ctx.assertion_id} index_must_exist on ${a.table}(${a.columns.join(", ")}) — not found in any schema-like file`, ctx);
233
265
  }
234
266
  case "ast_pattern": {
235
- // v1 fallback: regex over in_globs, language ignored beyond filtering.
267
+ // No ast-grep engine is wired the pattern is approximated as a text
268
+ // regex. That approximation is only honest for the languages the
269
+ // regex fallback handles; for anything else we must NOT report a hard
270
+ // pass/fail we didn't actually check. Downgrade to a one-line advisory
271
+ // (operator-chosen) so the rule is visibly text-only, never silent.
236
272
  const re = safeRegex(a.pattern);
237
273
  if (!re)
238
274
  return finding("soft", `${ctx.decision_id}/${ctx.assertion_id} pattern unparseable`, ctx);
275
+ if (!AST_TEXT_APPROX.has(a.language.toLowerCase())) {
276
+ return finding("soft", `${ctx.decision_id}/${ctx.assertion_id} ast_pattern is advisory on \`${a.language}\` (no AST enforcement, and the text approximation is unreliable here) — verify \`${a.pattern}\` under ${a.in_globs.join(", ")} manually`, ctx);
277
+ }
239
278
  const inScope = args.allFiles.filter((p) => matchAnyGlob(p, a.in_globs));
240
279
  for (const path of inScope) {
241
280
  if (re.test(args.reader.read(path)))
242
281
  return null;
243
282
  }
244
- return finding("hard", `${ctx.decision_id}/${ctx.assertion_id} ast_pattern (lang=${a.language}) \`${a.pattern}\` — no match under ${a.in_globs.join(", ")}`, ctx);
283
+ return finding("hard", `${ctx.decision_id}/${ctx.assertion_id} ast_pattern (lang=${a.language}, text-approximated) \`${a.pattern}\` — no match under ${a.in_globs.join(", ")}`, ctx);
245
284
  }
246
285
  case "file_must_not_be_modified": {
247
286
  const hit = args.diff.find((d) => d.path === a.path);
@@ -253,7 +292,7 @@ function evaluateAssertion(args) {
253
292
  // Approximate: search in_globs for table + each column appearing in the
254
293
  // same statement-ish window. For ORM=drizzle: `.where(and(...col1...col2...))`.
255
294
  const inScope = args.allFiles.filter((p) => matchAnyGlob(p, a.in_globs));
256
- const tableRef = new RegExp(`\\b${escapeReg(a.table)}\\b`);
295
+ const tableRef = new RegExp(`\\b${escapeRegExp(a.table)}\\b`);
257
296
  const combinator = a.require_combination === "and" ? /\band\s*\(/i : /\bor\s*\(/i;
258
297
  let anyHit = false;
259
298
  for (const path of inScope) {
@@ -274,7 +313,7 @@ function evaluateAssertion(args) {
274
313
  break;
275
314
  }
276
315
  for (const col of a.columns) {
277
- if (!new RegExp(`\\b${escapeReg(col)}\\b`).test(win)) {
316
+ if (!new RegExp(`\\b${escapeRegExp(col)}\\b`).test(win)) {
278
317
  allPresent = false;
279
318
  break;
280
319
  }
@@ -321,17 +360,17 @@ function evaluateAssertion(args) {
321
360
  let any = false;
322
361
  for (const path of inScope) {
323
362
  const text = args.reader.read(path);
324
- const callRe = new RegExp(`\\b${escapeReg(a.after_method)}\\s*\\(`);
363
+ const callRe = new RegExp(`\\b${escapeRegExp(a.after_method)}\\s*\\(`);
325
364
  if (!callRe.test(text))
326
365
  continue;
327
366
  any = true;
328
- const emitRe = new RegExp(`\\.emit\\s*\\(\\s*['"\`]${escapeReg(a.event_key)}['"\`]`);
367
+ const emitRe = new RegExp(`\\.emit\\s*\\(\\s*['"\`]${escapeRegExp(a.event_key)}['"\`]`);
329
368
  if (!emitRe.test(text)) {
330
369
  return finding("hard", `${ctx.decision_id}/${ctx.assertion_id} event_must_emit \`${a.event_key}\` after \`${a.after_method}\` — no .emit() found in ${path}`, { ...ctx, path });
331
370
  }
332
371
  if (a.payload_must_include && a.payload_must_include.length > 0) {
333
372
  for (const field of a.payload_must_include) {
334
- if (!new RegExp(`\\b${escapeReg(field)}\\b`).test(text)) {
373
+ if (!new RegExp(`\\b${escapeRegExp(field)}\\b`).test(text)) {
335
374
  return finding("hard", `${ctx.decision_id}/${ctx.assertion_id} event_must_emit payload missing field \`${field}\` in ${path}`, { ...ctx, path });
336
375
  }
337
376
  }
@@ -346,12 +385,12 @@ function evaluateAssertion(args) {
346
385
  const inScope = args.allFiles.filter((p) => matchAnyGlob(p, a.in_globs));
347
386
  for (const path of inScope) {
348
387
  const text = args.reader.read(path);
349
- const methodRe = new RegExp(`\\b${escapeReg(a.in_method)}\\s*\\([^)]*\\)\\s*(?::\\s*[^{]+)?\\{([\\s\\S]*?)\\n\\s*\\}`);
388
+ const methodRe = new RegExp(`\\b${escapeRegExp(a.in_method)}\\s*\\([^)]*\\)\\s*(?::\\s*[^{]+)?\\{([\\s\\S]*?)\\n\\s*\\}`);
350
389
  const m = methodRe.exec(text);
351
390
  if (!m)
352
391
  continue;
353
392
  const body = m[1] ?? "";
354
- const callRe = new RegExp(`\\b${escapeReg(a.must_call)}\\s*\\(`);
393
+ const callRe = new RegExp(`\\b${escapeRegExp(a.must_call)}\\s*\\(`);
355
394
  if (callRe.test(body))
356
395
  return null;
357
396
  const line = lineOf(text, m.index);
@@ -380,9 +419,6 @@ function finding(severity, message, ctx) {
380
419
  f.matched_text = ctx.matched_text;
381
420
  return f;
382
421
  }
383
- function escapeReg(s) {
384
- return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
385
- }
386
422
  function safeRegex(p) {
387
423
  try {
388
424
  return new RegExp(p, "m");
@@ -1 +1 @@
1
- {"version":3,"file":"decisions.js","sourceRoot":"","sources":["../../src/sensors/decisions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decisions.js","sourceRoot":"","sources":["../../src/sensors/decisions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAe,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,MAAM,EACN,YAAY,EACZ,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAA0B,MAAM,yBAAyB,CAAC;AAOtF,MAAM,SAAS,GAAG,qBAAqB,CAAC;AAExC;;;;;GAKG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS;IACtC,YAAY;IACZ,IAAI;IACJ,KAAK;IACL,YAAY;IACZ,IAAI;IACJ,KAAK;IACL,QAAQ;IACR,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,KAAK;CACN,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,eAAe,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;AAEhG,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,GAAG,KAAK,CAAC,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAChC,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAA0B,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;YAAE,SAAS;QAC1B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QACtC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,EAAE,GAAG,gBAAgB,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;QACnE,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,SAAS;QAC9B,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU;YAAE,SAAS;QAChD,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa;YAAE,SAAS;QACxC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,gBAAgB,CAC9B,SAAgC,EAChC,IAAiB;IAEjB,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5B,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,gCAAgC;QACrE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AACjF,MAAM,gBAAgB;IAGS;IAFrB,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzB,SAAS,GAAG,GAAG,CAAC;IACjC,YAA6B,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;IAAG,CAAC;IACnD,IAAI,CAAC,OAAe;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,mCAAmC;YACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAChC,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;YAClE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtC,6BAA6B;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;gBAC7C,IAAI,KAAK,KAAK,SAAS;oBAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,2EAA2E;IAC3E,0EAA0E;IAC1E,sEAAsE;IACtE,6CAA6C;IAC7C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,EAAE;YACvC,GAAG,EAAE,UAAU;YACf,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;SAC5B,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,QAAQ,CAAC,0CAA0C,EAAE;YACrE,GAAG,EAAE,UAAU;YACf,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;SAC5B,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACtD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,qBAAqB,CAAC,IAIrC;IACC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAElD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,iBAAiB,CAAC;gBAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ;gBACR,SAAS,EAAE,CAAC;gBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM;gBACN,QAAQ;aACT,CAAC,CAAC;YACH,IAAI,MAAM,KAAK,IAAI;gBAAE,SAAS;YAC9B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QACD,iEAAiE;QACjE,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC;gBACZ,SAAS,EAAE,SAAS;gBACpB,WAAW,EAAE,QAAQ,CAAC,EAAE;gBACxB,OAAO,EAAE,yBAAyB,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,iBAAiB,EAAE;gBAC9E,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;IACxD,OAAO;QACL,SAAS,EAAE,SAAS;QACpB,EAAE;QACF,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;QACnC,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAO1B;IACC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;IACzB,MAAM,GAAG,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAElE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/D,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACnE,8BAA8B;gBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;wBAAE,SAAS;oBAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;oBAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;oBAC9C,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9B,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;4BAAE,OAAO,IAAI,CAAC;oBACjD,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,6BAA6B,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,0BAA0B,EAChH,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,CAAC,EAAE;gBAAE,OAAO,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,sBAAsB,EAAE,GAAG,CAAC,CAAC;YACnG,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzE,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC;YACnD,CAAC;YACD,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,sBAAsB,CAAC,CAAC,OAAO,sBAAsB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAC1H,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,CAAC,EAAE;gBAAE,OAAO,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,sBAAsB,EAAE,GAAG,CAAC,CAAC;YACnG,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzE,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,IAAI,CAAC,CAAC;oBAAE,SAAS;gBACjB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBACnC,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,0BAA0B,CAAC,CAAC,OAAO,mBAAmB,IAAI,IAAI,IAAI,EAAE,EAC1G,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAC3C,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO;iBAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;iBAC5C,IAAI,CAAC,EAAE,CAAC,CAAC;YACZ,MAAM,EAAE,GAAG,IAAI,MAAM,CACnB,wEAAwE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,4BAA4B,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB,WAAW,EAAE,EAChL,GAAG,CACJ,CAAC;YACF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClB,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAE,OAAO,IAAI,CAAC;oBAC1B,0DAA0D;oBAC1D,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;wBAAE,OAAO,IAAI,CAAC;oBACpE,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,wBAAwB,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,6CAA6C,IAAI,EAAE,EAClK,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,CACjB,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,wBAAwB,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,uCAAuC,EACpI,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,sEAAsE;YACtE,iEAAiE;YACjE,sEAAsE;YACtE,uEAAuE;YACvE,oEAAoE;YACpE,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,CAAC,EAAE;gBAAE,OAAO,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,sBAAsB,EAAE,GAAG,CAAC,CAAC;YACnG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACnD,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,iCAAiC,CAAC,CAAC,QAAQ,qFAAqF,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAC3N,GAAG,CACJ,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzE,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC;YACnD,CAAC;YACD,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,sBAAsB,CAAC,CAAC,QAAQ,0BAA0B,CAAC,CAAC,OAAO,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACvJ,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,KAAK,2BAA2B,CAAC,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YACtB,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,gCAAgC,CAAC,CAAC,IAAI,qBAAqB,GAAG,CAAC,MAAM,GAAG,EAC9G,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CACzB,CAAC;QACJ,CAAC;QAED,KAAK,sBAAsB,CAAC,CAAC,CAAC;YAC5B,wEAAwE;YACxE,gFAAgF;YAChF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzE,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9D,MAAM,UAAU,GAAG,CAAC,CAAC,mBAAmB,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;YAClF,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACnC,MAAM,GAAG,IAAI,CAAC;gBACd,gEAAgE;gBAChE,MAAM,OAAO,GAAG,eAAe,CAAC;gBAChC,IAAI,CAAyB,CAAC;gBAC9B,IAAI,UAAU,GAAG,IAAI,CAAC;gBACtB,IAAI,GAAG,GAAG,KAAK,CAAC;gBAChB,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBACzC,GAAG,GAAG,IAAI,CAAC;oBACX,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;oBACtE,IAAI,CAAC,CAAC,mBAAmB,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBACjE,UAAU,GAAG,KAAK,CAAC;wBACnB,MAAM;oBACR,CAAC;oBACD,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;wBAC5B,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;4BACxD,UAAU,GAAG,KAAK,CAAC;4BACnB,MAAM;wBACR,CAAC;oBACH,CAAC;oBACD,IAAI,CAAC,UAAU;wBAAE,MAAM;gBACzB,CAAC;gBACD,IAAI,CAAC,GAAG;oBAAE,SAAS;gBACnB,IAAI,UAAU;oBAAE,OAAO,IAAI,CAAC;gBAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBACtE,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,yBAAyB,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,mBAAmB,gBAAgB,IAAI,IAAI,IAAI,2BAA2B,EAClL,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CACvB,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,yBAAyB,CAAC,CAAC,KAAK,uEAAuE,EAC7I,GAAG,CACJ,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,uBAAuB,CAAC,CAAC,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzE,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,KAAK,MAAM,QAAQ,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;oBACpC,+DAA+D;oBAC/D,iDAAiD;oBACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;wBAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;4BAAE,SAAS;wBACvC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;4BAAE,SAAS;wBACvC,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,4BAA4B,CAAC,CAAC,KAAK,UAAU,QAAQ,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,+BAA+B,EAChJ,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAC9B,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzE,IAAI,GAAG,GAAG,KAAK,CAAC;YAChB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBACvE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACjC,GAAG,GAAG,IAAI,CAAC;gBACX,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,2BAA2B,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAC7D,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvB,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,sBAAsB,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,YAAY,4BAA4B,IAAI,EAAE,EACrI,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,CACjB,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,CAAC,oBAAoB,IAAI,CAAC,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChE,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,oBAAoB,EAAE,CAAC;wBAC3C,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;4BAC3D,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,4CAA4C,KAAK,SAAS,IAAI,EAAE,EACtG,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,CACjB,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,mCAAmC,CAAC,CAAC,YAAY,sCAAsC,EAC7H,GAAG,CACJ,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,0BAA0B,CAAC,CAAC,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzE,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM,QAAQ,GAAG,IAAI,MAAM,CACzB,MAAM,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,6DAA6D,CAC7F,CAAC;gBACF,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9B,IAAI,CAAC,CAAC;oBAAE,SAAS;gBACjB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBACpE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACnC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBACnC,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,wCAAwC,CAAC,CAAC,SAAS,SAAS,IAAI,IAAI,IAAI,oBAAoB,CAAC,CAAC,SAAS,IAAI,EACjJ,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CACvB,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,wCAAwC,CAAC,CAAC,SAAS,0CAA0C,EACnI,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,uBAAuB,CAAC,CAAC,WAAW,EAAE,EAC5E,GAAG,CACJ,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CACd,QAAyB,EACzB,OAAe,EACf,GAMC;IAED,MAAM,CAAC,GAAkB;QACvB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,OAAO;QACP,QAAQ;KACT,CAAC;IACF,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;QAAE,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAC9C,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;QAAE,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAC9C,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS;QAAE,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;IACtE,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,IAAI,CAAC;QACH,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -18,6 +18,18 @@ export declare function getDiff(args: {
18
18
  mirrorPath: string;
19
19
  shaPin: string;
20
20
  }): Promise<DiffEntry[]>;
21
+ /**
22
+ * Diff of the staged tree (index) against HEAD — the pre-commit gate's view.
23
+ * After-content is read from the index (`git show :path`), NOT the working
24
+ * tree, so the gate scans exactly what is about to be committed.
25
+ */
26
+ export declare function getStagedDiff(repoRoot: string): Promise<DiffEntry[]>;
27
+ /**
28
+ * Diff of a committed range (e.g. `origin/main..HEAD`) — the CI gate's view.
29
+ * Both sides come from committed blobs, so this is reproducible on a fresh
30
+ * CI checkout with no working-tree state.
31
+ */
32
+ export declare function getRangeDiff(repoRoot: string, range: string): Promise<DiffEntry[]>;
21
33
  /** True iff any changed file's path matches any of the supplied globs. */
22
34
  export declare function diffHasGlobMatch(diff: DiffEntry[], globs: readonly string[], matcher: (path: string, glob: string) => boolean): boolean;
23
35
  /**
@@ -135,6 +135,109 @@ export async function getDiff(args) {
135
135
  out.sort((a, b) => a.path.localeCompare(b.path));
136
136
  return out;
137
137
  }
138
+ /**
139
+ * Build `DiffEntry[]` from a name-status row set, sourcing before/after
140
+ * content from caller-supplied readers. Shared by the staged + range diff
141
+ * gates (which read committed/index blobs, not the working tree).
142
+ */
143
+ async function buildEntries(rows, read) {
144
+ const limit = pLimit(10);
145
+ const out = [];
146
+ const tasks = rows.map((row) => limit(async () => {
147
+ if (row.status === "A") {
148
+ const after = await read.after(row.path);
149
+ const entry = { path: row.path, status: "added" };
150
+ if (after !== undefined)
151
+ entry.afterContent = after;
152
+ out.push(entry);
153
+ }
154
+ else if (row.status === "D") {
155
+ const before = await read.before(row.path);
156
+ const entry = { path: row.path, status: "deleted" };
157
+ if (before !== undefined)
158
+ entry.beforeContent = before;
159
+ out.push(entry);
160
+ }
161
+ else if (row.status === "M") {
162
+ const [before, after] = await Promise.all([
163
+ read.before(row.path),
164
+ read.after(row.path),
165
+ ]);
166
+ const entry = { path: row.path, status: "modified" };
167
+ if (before !== undefined)
168
+ entry.beforeContent = before;
169
+ if (after !== undefined)
170
+ entry.afterContent = after;
171
+ out.push(entry);
172
+ }
173
+ else {
174
+ const fromPath = row.fromPath ?? "";
175
+ const [before, after] = await Promise.all([
176
+ read.before(fromPath),
177
+ read.after(row.path),
178
+ ]);
179
+ const entry = { path: row.path, status: "renamed", fromPath };
180
+ if (before !== undefined)
181
+ entry.beforeContent = before;
182
+ if (after !== undefined)
183
+ entry.afterContent = after;
184
+ out.push(entry);
185
+ }
186
+ }));
187
+ await Promise.all(tasks);
188
+ out.sort((a, b) => a.path.localeCompare(b.path));
189
+ return out;
190
+ }
191
+ /**
192
+ * Diff of the staged tree (index) against HEAD — the pre-commit gate's view.
193
+ * After-content is read from the index (`git show :path`), NOT the working
194
+ * tree, so the gate scans exactly what is about to be committed.
195
+ */
196
+ export async function getStagedDiff(repoRoot) {
197
+ const git = simpleGit({ baseDir: repoRoot });
198
+ const nameStatus = await git.raw([
199
+ "diff",
200
+ "--cached",
201
+ "--name-status",
202
+ "--find-renames",
203
+ ]);
204
+ return buildEntries(parseNameStatus(nameStatus), {
205
+ before: (p) => showAtSha(git, "HEAD", p),
206
+ after: (p) => showAtSha(git, "", p), // `git show :path` → staged blob
207
+ });
208
+ }
209
+ /** Split a `git diff` range into base/head refs for content lookup. */
210
+ function parseRange(range) {
211
+ const sep = range.includes("...") ? "..." : "..";
212
+ if (range.includes(sep)) {
213
+ const [base, head] = range.split(sep);
214
+ return {
215
+ base: (base ?? "").trim() || "HEAD",
216
+ head: (head ?? "").trim() || "HEAD",
217
+ };
218
+ }
219
+ // Bare ref: compare it against HEAD.
220
+ return { base: range.trim(), head: "HEAD" };
221
+ }
222
+ /**
223
+ * Diff of a committed range (e.g. `origin/main..HEAD`) — the CI gate's view.
224
+ * Both sides come from committed blobs, so this is reproducible on a fresh
225
+ * CI checkout with no working-tree state.
226
+ */
227
+ export async function getRangeDiff(repoRoot, range) {
228
+ const git = simpleGit({ baseDir: repoRoot });
229
+ const { base, head } = parseRange(range);
230
+ const nameStatus = await git.raw([
231
+ "diff",
232
+ "--name-status",
233
+ "--find-renames",
234
+ range,
235
+ ]);
236
+ return buildEntries(parseNameStatus(nameStatus), {
237
+ before: (p) => showAtSha(git, base, p),
238
+ after: (p) => showAtSha(git, head, p),
239
+ });
240
+ }
138
241
  function pLimit(concurrency) {
139
242
  const queue = [];
140
243
  let activeCount = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/sensors/diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/sensors/diff.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,12 @@
1
- export type { Attestation, AttestationDelivered, AttestationDeferred, DiffEntry, ProjectGlobs, SensorFinding, SensorInput, SensorLanguage, SensorResult, SensorSweepResult, StubCatalog, StubPattern, } from "./types.js";
2
- export { getDiff, diffHasGlobMatch, filterDiffByGlobs } from "./diff.js";
1
+ export type { DiffEntry, ProjectGlobs, SensorFinding, SensorLanguage, SensorResult, SensorSweepResult, StubCatalog, StubPattern, } from "./types.js";
2
+ export { getDiff, getStagedDiff, getRangeDiff, diffHasGlobMatch, filterDiffByGlobs, } from "./diff.js";
3
3
  export { loadStubCatalog, parseStubCatalog, loadSensorRegistry } from "./catalog.js";
4
4
  export type { SensorRegistry, SensorRegistryEntry } from "./catalog.js";
5
5
  export { detectStubMatches, runStubCatalog, detectLanguage } from "./stub-catalog.js";
6
6
  export type { StubMatch } from "./stub-catalog.js";
7
- export { extractAttestation, runAttestationCrossCheck, } from "./attestation.js";
8
7
  export { runRouteHandlerNonEmpty, runDtoNoFakeFields, } from "./structural.js";
9
8
  export { loadAcceptedDecisions, decisionsInScope, listMirrorFiles, runDecisionAssertions, } from "./decisions.js";
10
9
  export { formatRemediation } from "./remediation.js";
11
10
  export type { RemediationOptions } from "./remediation.js";
12
- export { runSensors } from "./runner.js";
13
- export type { RunSensorsArgs } from "./runner.js";
11
+ export { runSensorsOnDiff, loadProjectGlobs } from "./runner.js";
12
+ export type { RunSensorsOnDiffArgs } from "./runner.js";
@@ -1,9 +1,8 @@
1
- export { getDiff, diffHasGlobMatch, filterDiffByGlobs } from "./diff.js";
1
+ export { getDiff, getStagedDiff, getRangeDiff, diffHasGlobMatch, filterDiffByGlobs, } from "./diff.js";
2
2
  export { loadStubCatalog, parseStubCatalog, loadSensorRegistry } from "./catalog.js";
3
3
  export { detectStubMatches, runStubCatalog, detectLanguage } from "./stub-catalog.js";
4
- export { extractAttestation, runAttestationCrossCheck, } from "./attestation.js";
5
4
  export { runRouteHandlerNonEmpty, runDtoNoFakeFields, } from "./structural.js";
6
5
  export { loadAcceptedDecisions, decisionsInScope, listMirrorFiles, runDecisionAssertions, } from "./decisions.js";
7
6
  export { formatRemediation } from "./remediation.js";
8
- export { runSensors } from "./runner.js";
7
+ export { runSensorsOnDiff, loadProjectGlobs } from "./runner.js";
9
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sensors/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAErF,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtF,OAAO,EACL,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sensors/index.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,OAAO,EACP,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAErF,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtF,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,44 +1,41 @@
1
1
  /**
2
- * Sensor runnerorchestrator-facing entry point.
2
+ * Sensor sweepthe live enforcement entry point.
3
3
  *
4
- * Composes Layer A + Layer B + Layer C + decision-assertions into a single
5
- * sweep. Returns the aggregated result + the remediation prompt body the
6
- * orchestrator feeds back to the agent on retry.
4
+ * Composes the sensors that actually have teeth into one diff-scoped sweep:
5
+ * - Layer A stub-pattern catalog (mechanical debt regex)
6
+ * - Layer C generic structural sensors (route handlers, DTOs)
7
+ * - decision-assertions — "was the in-scope DEC honored?"
7
8
  *
8
- * Phase 9 wires the implementer-side stack only. SessionStart Drain (reviewer subagent)
9
- * is Phase 10; Layer E (high-stakes E2E) and U (UAT) are Phases 11+. Soft
10
- * findings emitted here are intentionally surfaced for those later layers
11
- * to consume.
9
+ * Runs at the real gates: pre-commit (staged diff), CI (`--diff` range), and
10
+ * advisory at the Stop hook (working-tree diff). The diff + repoRoot are the
11
+ * only inputs there is no mirror checkout or orchestrator runtime.
12
+ *
13
+ * Layer-B attestation cross-check was removed: it depended on an
14
+ * agent-emitted attestation block that no production path produced, so it
15
+ * never ran. Project-specific "proposed sensors" were likewise never wired
16
+ * to an executor and have been dropped.
12
17
  */
13
- import type { Attestation, ProjectGlobs, SensorLanguage, SensorSweepResult } from "./types.js";
14
- export interface RunSensorsArgs {
15
- /** Mirror checkout where the agent worked. */
16
- mirrorPath: string;
17
- /** SHA pin captured at workspace prep. */
18
- shaPin: string;
19
- /** Final assistant text, used to extract the attestation block. */
20
- finalAssistantText?: string;
21
- /** Languages active for this profile (filters Layer A patterns). */
22
- languages: SensorLanguage[];
23
- /** Project-block globs from workflow.md. */
24
- projectGlobs: ProjectGlobs;
25
- /** Run id used in log lines. */
26
- runId: string;
27
- /** Number of this attempt (1 = first run, 2 = first retry). */
28
- attempt: number;
29
- /** Max attempts the orchestrator will allow. */
30
- maxAttempts: number;
31
- /**
32
- * Optional pre-extracted attestation. Useful for tests / smokes that
33
- * inject the attestation directly without going through the assistant
34
- * stream. When supplied, finalAssistantText is ignored for extraction.
35
- */
36
- attestation?: Attestation;
18
+ import type { DiffEntry, ProjectGlobs, SensorLanguage, SensorSweepResult } from "./types.js";
19
+ export interface RunSensorsOnDiffArgs {
20
+ /** Repo root decisions, stub catalog, and config are read from here. */
21
+ repoRoot: string;
22
+ /** Files changed in this diff, content already loaded. */
23
+ diff: DiffEntry[];
24
+ /** Languages to filter Layer A patterns. Omit = scan all known languages. */
25
+ languages?: SensorLanguage[];
26
+ /** Route/DTO globs. Omit = loaded from `.cairn/config.yaml`. */
27
+ projectGlobs?: ProjectGlobs;
28
+ /** Label for log lines (e.g. the gate name). */
29
+ runId?: string;
30
+ /** Retry context for the remediation prompt. Defaults to a single 1/1 pass. */
31
+ attempt?: number;
32
+ maxAttempts?: number;
37
33
  }
38
34
  /**
39
- * Run all sensors for a finished implementer run. Returns:
40
- * - per-sensor results (with `ok` + findings)
41
- * - aggregate `ok` (false if any hard failure)
42
- * - remediation prompt body for the next retry (empty string on success)
35
+ * Run the live sensor sweep over a diff. Returns per-sensor results, the
36
+ * aggregate `ok` (false on any hard failure), and a remediation prompt body
37
+ * the caller can surface to the agent.
43
38
  */
44
- export declare function runSensors(args: RunSensorsArgs): Promise<SensorSweepResult>;
39
+ export declare function runSensorsOnDiff(args: RunSensorsOnDiffArgs): Promise<SensorSweepResult>;
40
+ /** Read route/DTO/high-stakes globs from `.cairn/config.yaml`. */
41
+ export declare function loadProjectGlobs(repoRoot: string): ProjectGlobs;