@isaacriehm/cairn-core 0.19.1 → 0.22.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 (336) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/align-undo/log.js +3 -2
  3. package/dist/align-undo/log.js.map +1 -1
  4. package/dist/attention/index.d.ts +0 -2
  5. package/dist/attention/index.js +0 -2
  6. package/dist/attention/index.js.map +1 -1
  7. package/dist/attention/restore.d.ts +1 -1
  8. package/dist/attention/restore.js +1 -1
  9. package/dist/attention/source-strip.d.ts +2 -2
  10. package/dist/attention/source-strip.js +4 -3
  11. package/dist/attention/source-strip.js.map +1 -1
  12. package/dist/components/audit.d.ts +7 -1
  13. package/dist/components/audit.js +144 -72
  14. package/dist/components/audit.js.map +1 -1
  15. package/dist/components/emit.js +33 -6
  16. package/dist/components/emit.js.map +1 -1
  17. package/dist/components/freshness.d.ts +51 -0
  18. package/dist/components/freshness.js +121 -0
  19. package/dist/components/freshness.js.map +1 -0
  20. package/dist/components/index.d.ts +4 -0
  21. package/dist/components/index.js +2 -0
  22. package/dist/components/index.js.map +1 -1
  23. package/dist/components/reconfirm.d.ts +64 -0
  24. package/dist/components/reconfirm.js +204 -0
  25. package/dist/components/reconfirm.js.map +1 -0
  26. package/dist/context/handoff-builder.js +3 -3
  27. package/dist/context/handoff-builder.js.map +1 -1
  28. package/dist/context/task-summary.js +2 -2
  29. package/dist/context/task-summary.js.map +1 -1
  30. package/dist/doctor/index.js +102 -9
  31. package/dist/doctor/index.js.map +1 -1
  32. package/dist/events/paths.js +2 -2
  33. package/dist/events/paths.js.map +1 -1
  34. package/dist/fix-align/sentinel.js +2 -3
  35. package/dist/fix-align/sentinel.js.map +1 -1
  36. package/dist/gc/attested-commits.js +2 -2
  37. package/dist/gc/attested-commits.js.map +1 -1
  38. package/dist/gc/canary.js +2 -3
  39. package/dist/gc/canary.js.map +1 -1
  40. package/dist/gc/citation-integrity.d.ts +4 -5
  41. package/dist/gc/citation-integrity.js +11 -33
  42. package/dist/gc/citation-integrity.js.map +1 -1
  43. package/dist/gc/classify.js +3 -16
  44. package/dist/gc/classify.js.map +1 -1
  45. package/dist/gc/completion-integrity.js +4 -3
  46. package/dist/gc/completion-integrity.js.map +1 -1
  47. package/dist/gc/entity-orphan.js +66 -12
  48. package/dist/gc/entity-orphan.js.map +1 -1
  49. package/dist/gc/ghost-anchor.d.ts +57 -0
  50. package/dist/gc/ghost-anchor.js +171 -0
  51. package/dist/gc/ghost-anchor.js.map +1 -0
  52. package/dist/gc/index.d.ts +2 -0
  53. package/dist/gc/index.js +1 -0
  54. package/dist/gc/index.js.map +1 -1
  55. package/dist/gc/sweep.d.ts +1 -1
  56. package/dist/gc/sweep.js +13 -1
  57. package/dist/gc/sweep.js.map +1 -1
  58. package/dist/gc/types.d.ts +1 -1
  59. package/dist/hooks/bypass-detection.js +3 -2
  60. package/dist/hooks/bypass-detection.js.map +1 -1
  61. package/dist/hooks/defer.js +3 -2
  62. package/dist/hooks/defer.js.map +1 -1
  63. package/dist/hooks/ghost-backup.d.ts +37 -0
  64. package/dist/hooks/ghost-backup.js +82 -0
  65. package/dist/hooks/ghost-backup.js.map +1 -0
  66. package/dist/hooks/post-tool-use/allowlist-reader.js +2 -2
  67. package/dist/hooks/post-tool-use/allowlist-reader.js.map +1 -1
  68. package/dist/hooks/post-tool-use/ask-user-blocked.d.ts +1 -2
  69. package/dist/hooks/post-tool-use/ask-user-blocked.js +3 -4
  70. package/dist/hooks/post-tool-use/ask-user-blocked.js.map +1 -1
  71. package/dist/hooks/post-tool-use/citation-scanner.d.ts +9 -7
  72. package/dist/hooks/post-tool-use/citation-scanner.js +9 -14
  73. package/dist/hooks/post-tool-use/citation-scanner.js.map +1 -1
  74. package/dist/hooks/post-tool-use/legend-builder.d.ts +2 -2
  75. package/dist/hooks/post-tool-use/legend-builder.js +1 -19
  76. package/dist/hooks/post-tool-use/legend-builder.js.map +1 -1
  77. package/dist/hooks/post-tool-use/post-write.js +18 -1
  78. package/dist/hooks/post-tool-use/post-write.js.map +1 -1
  79. package/dist/hooks/post-tool-use/read-enricher.d.ts +2 -2
  80. package/dist/hooks/post-tool-use/read-enricher.js +4 -6
  81. package/dist/hooks/post-tool-use/read-enricher.js.map +1 -1
  82. package/dist/hooks/post-tool-use/sot-align.js +29 -3
  83. package/dist/hooks/post-tool-use/sot-align.js.map +1 -1
  84. package/dist/hooks/post-tool-use/write-guardian.d.ts +1 -5
  85. package/dist/hooks/post-tool-use/write-guardian.js +25 -18
  86. package/dist/hooks/post-tool-use/write-guardian.js.map +1 -1
  87. package/dist/hooks/runners/context-threshold.js +3 -3
  88. package/dist/hooks/runners/context-threshold.js.map +1 -1
  89. package/dist/hooks/runners/payload.js +2 -1
  90. package/dist/hooks/runners/payload.js.map +1 -1
  91. package/dist/hooks/runners/phase-ready-surface.js +3 -2
  92. package/dist/hooks/runners/phase-ready-surface.js.map +1 -1
  93. package/dist/hooks/runners/session-start.js +103 -4
  94. package/dist/hooks/runners/session-start.js.map +1 -1
  95. package/dist/hooks/runners/stop.js +46 -42
  96. package/dist/hooks/runners/stop.js.map +1 -1
  97. package/dist/hooks/runners/user-prompt-submit.d.ts +2 -2
  98. package/dist/hooks/runners/user-prompt-submit.js +4 -9
  99. package/dist/hooks/runners/user-prompt-submit.js.map +1 -1
  100. package/dist/hooks/seed-attested.js +3 -2
  101. package/dist/hooks/seed-attested.js.map +1 -1
  102. package/dist/index.d.ts +4 -0
  103. package/dist/index.js +3 -0
  104. package/dist/index.js.map +1 -1
  105. package/dist/init/baseline-audit.js +3 -3
  106. package/dist/init/baseline-audit.js.map +1 -1
  107. package/dist/init/claude-rule.js +13 -1
  108. package/dist/init/claude-rule.js.map +1 -1
  109. package/dist/init/curator/corpus.d.ts +1 -0
  110. package/dist/init/curator/corpus.js +6 -2
  111. package/dist/init/curator/corpus.js.map +1 -1
  112. package/dist/init/curator/emit.js +2 -3
  113. package/dist/init/curator/emit.js.map +1 -1
  114. package/dist/init/detect-components.d.ts +3 -2
  115. package/dist/init/detect-components.js +33 -15
  116. package/dist/init/detect-components.js.map +1 -1
  117. package/dist/init/detect.d.ts +1 -5
  118. package/dist/init/detect.js +157 -143
  119. package/dist/init/detect.js.map +1 -1
  120. package/dist/init/eta-calibration.js +2 -2
  121. package/dist/init/eta-calibration.js.map +1 -1
  122. package/dist/init/glob-inference.js +24 -0
  123. package/dist/init/glob-inference.js.map +1 -1
  124. package/dist/init/index.d.ts +4 -4
  125. package/dist/init/index.js +2 -2
  126. package/dist/init/index.js.map +1 -1
  127. package/dist/init/init.d.ts +8 -0
  128. package/dist/init/init.js +16 -20
  129. package/dist/init/init.js.map +1 -1
  130. package/dist/init/mapper-merge.d.ts +1 -4
  131. package/dist/init/mapper-merge.js +4 -17
  132. package/dist/init/mapper-merge.js.map +1 -1
  133. package/dist/init/mapper-parallel.js +1 -1
  134. package/dist/init/mapper-parallel.js.map +1 -1
  135. package/dist/init/mapper-prompts.d.ts +1 -23
  136. package/dist/init/mapper-prompts.js +1 -25
  137. package/dist/init/mapper-prompts.js.map +1 -1
  138. package/dist/init/mapper.d.ts +0 -6
  139. package/dist/init/mapper.js +2 -5
  140. package/dist/init/mapper.js.map +1 -1
  141. package/dist/init/module-slicer.js +3 -24
  142. package/dist/init/module-slicer.js.map +1 -1
  143. package/dist/init/multi-dev/install.js +24 -0
  144. package/dist/init/multi-dev/install.js.map +1 -1
  145. package/dist/init/overlay.js +5 -16
  146. package/dist/init/overlay.js.map +1 -1
  147. package/dist/init/phases/11-baseline.js +1 -1
  148. package/dist/init/phases/11-baseline.js.map +1 -1
  149. package/dist/init/phases/4-seed.js +7 -5
  150. package/dist/init/phases/4-seed.js.map +1 -1
  151. package/dist/init/phases/9a-walker.js +4 -0
  152. package/dist/init/phases/9a-walker.js.map +1 -1
  153. package/dist/init/phases/9b-curate.d.ts +1 -0
  154. package/dist/init/phases/9b-curate.js +6 -2
  155. package/dist/init/phases/9b-curate.js.map +1 -1
  156. package/dist/init/phases/9d-comp-walk.js +3 -3
  157. package/dist/init/phases/9d-comp-walk.js.map +1 -1
  158. package/dist/init/phases/9e-comp-annotate.js +63 -3
  159. package/dist/init/phases/9e-comp-annotate.js.map +1 -1
  160. package/dist/init/phases/index.d.ts +0 -1
  161. package/dist/init/phases/index.js +0 -1
  162. package/dist/init/phases/index.js.map +1 -1
  163. package/dist/init/phases/mapper-output-io.d.ts +1 -1
  164. package/dist/init/phases/mapper-output-io.js +3 -2
  165. package/dist/init/phases/mapper-output-io.js.map +1 -1
  166. package/dist/init/phases/state-io.d.ts +1 -1
  167. package/dist/init/phases/state-io.js +3 -2
  168. package/dist/init/phases/state-io.js.map +1 -1
  169. package/dist/init/phases/types.d.ts +20 -8
  170. package/dist/init/phases/types.js +0 -1
  171. package/dist/init/phases/types.js.map +1 -1
  172. package/dist/init/progress.d.ts +1 -0
  173. package/dist/init/progress.js +3 -1
  174. package/dist/init/progress.js.map +1 -1
  175. package/dist/init/rules-merge/ingest.js +3 -3
  176. package/dist/init/rules-merge/ingest.js.map +1 -1
  177. package/dist/init/seed.js +54 -5
  178. package/dist/init/seed.js.map +1 -1
  179. package/dist/init/source-comments/strip-replace.d.ts +1 -2
  180. package/dist/init/source-comments/strip-replace.js +19 -3
  181. package/dist/init/source-comments/strip-replace.js.map +1 -1
  182. package/dist/init/source-comments/walker.js +8 -79
  183. package/dist/init/source-comments/walker.js.map +1 -1
  184. package/dist/init/types.d.ts +8 -16
  185. package/dist/init/walker.d.ts +1 -1
  186. package/dist/init/walker.js +1 -1
  187. package/dist/join/index.d.ts +9 -0
  188. package/dist/join/index.js +82 -25
  189. package/dist/join/index.js.map +1 -1
  190. package/dist/lock.js +4 -3
  191. package/dist/lock.js.map +1 -1
  192. package/dist/mcp/bootstrap-guard.js +10 -1
  193. package/dist/mcp/bootstrap-guard.js.map +1 -1
  194. package/dist/mcp/schemas.d.ts +26 -4
  195. package/dist/mcp/schemas.js +23 -1
  196. package/dist/mcp/schemas.js.map +1 -1
  197. package/dist/mcp/serve.js +9 -0
  198. package/dist/mcp/serve.js.map +1 -1
  199. package/dist/mcp/server.js +3 -3
  200. package/dist/mcp/server.js.map +1 -1
  201. package/dist/mcp/telemetry.js +4 -3
  202. package/dist/mcp/telemetry.js.map +1 -1
  203. package/dist/mcp/tools/component-reconfirm.d.ts +7 -0
  204. package/dist/mcp/tools/component-reconfirm.js +39 -0
  205. package/dist/mcp/tools/component-reconfirm.js.map +1 -0
  206. package/dist/mcp/tools/component-register.d.ts +15 -0
  207. package/dist/mcp/tools/component-register.js +65 -0
  208. package/dist/mcp/tools/component-register.js.map +1 -0
  209. package/dist/mcp/tools/decision-get.js +2 -2
  210. package/dist/mcp/tools/decision-get.js.map +1 -1
  211. package/dist/mcp/tools/index.js +5 -6
  212. package/dist/mcp/tools/index.js.map +1 -1
  213. package/dist/mcp/tools/init-phases.d.ts +2 -0
  214. package/dist/mcp/tools/init-phases.js +21 -5
  215. package/dist/mcp/tools/init-phases.js.map +1 -1
  216. package/dist/mcp/tools/mission-advance.d.ts +3 -4
  217. package/dist/mcp/tools/mission-advance.js +15 -19
  218. package/dist/mcp/tools/mission-advance.js.map +1 -1
  219. package/dist/mcp/tools/mission-resume.js +3 -3
  220. package/dist/mcp/tools/mission-resume.js.map +1 -1
  221. package/dist/mcp/tools/record-decision.js +17 -9
  222. package/dist/mcp/tools/record-decision.js.map +1 -1
  223. package/dist/mcp/tools/resolve-attention.js +70 -34
  224. package/dist/mcp/tools/resolve-attention.js.map +1 -1
  225. package/dist/mcp/tools/resume.js +3 -2
  226. package/dist/mcp/tools/resume.js.map +1 -1
  227. package/dist/mcp/tools/search.js +2 -2
  228. package/dist/mcp/tools/search.js.map +1 -1
  229. package/dist/mcp/tools/task-complete.js +2 -3
  230. package/dist/mcp/tools/task-complete.js.map +1 -1
  231. package/dist/mcp/tools/task-create.js +2 -2
  232. package/dist/mcp/tools/task-create.js.map +1 -1
  233. package/dist/migrate/config-io.d.ts +24 -0
  234. package/dist/migrate/config-io.js +73 -0
  235. package/dist/migrate/config-io.js.map +1 -0
  236. package/dist/migrate/gitignore.d.ts +28 -0
  237. package/dist/migrate/gitignore.js +82 -0
  238. package/dist/migrate/gitignore.js.map +1 -0
  239. package/dist/migrate/index.d.ts +6 -0
  240. package/dist/migrate/index.js +6 -0
  241. package/dist/migrate/index.js.map +1 -0
  242. package/dist/migrate/migrations/0001-drop-dead-config-fields.d.ts +12 -0
  243. package/dist/migrate/migrations/0001-drop-dead-config-fields.js +39 -0
  244. package/dist/migrate/migrations/0001-drop-dead-config-fields.js.map +1 -0
  245. package/dist/migrate/migrations/0002-backfill-gitignore.d.ts +14 -0
  246. package/dist/migrate/migrations/0002-backfill-gitignore.js +40 -0
  247. package/dist/migrate/migrations/0002-backfill-gitignore.js.map +1 -0
  248. package/dist/migrate/registry.d.ts +9 -0
  249. package/dist/migrate/registry.js +11 -0
  250. package/dist/migrate/registry.js.map +1 -0
  251. package/dist/migrate/runner.d.ts +45 -0
  252. package/dist/migrate/runner.js +177 -0
  253. package/dist/migrate/runner.js.map +1 -0
  254. package/dist/migrate/semver.d.ts +11 -0
  255. package/dist/migrate/semver.js +35 -0
  256. package/dist/migrate/semver.js.map +1 -0
  257. package/dist/migrate/types.d.ts +47 -0
  258. package/dist/migrate/types.js +13 -0
  259. package/dist/migrate/types.js.map +1 -0
  260. package/dist/missions/task-link.js +7 -8
  261. package/dist/missions/task-link.js.map +1 -1
  262. package/dist/paths/index.d.ts +12 -1
  263. package/dist/paths/index.js +17 -3
  264. package/dist/paths/index.js.map +1 -1
  265. package/dist/sensors/catalog.js +6 -11
  266. package/dist/sensors/catalog.js.map +1 -1
  267. package/dist/sensors/decisions.js +55 -19
  268. package/dist/sensors/decisions.js.map +1 -1
  269. package/dist/sensors/diff.d.ts +12 -0
  270. package/dist/sensors/diff.js +103 -0
  271. package/dist/sensors/diff.js.map +1 -1
  272. package/dist/sensors/index.d.ts +4 -5
  273. package/dist/sensors/index.js +2 -3
  274. package/dist/sensors/index.js.map +1 -1
  275. package/dist/sensors/runner.d.ts +34 -37
  276. package/dist/sensors/runner.js +63 -53
  277. package/dist/sensors/runner.js.map +1 -1
  278. package/dist/sensors/stub-catalog.d.ts +6 -3
  279. package/dist/sensors/stub-catalog.js +7 -19
  280. package/dist/sensors/stub-catalog.js.map +1 -1
  281. package/dist/sensors/types.d.ts +11 -55
  282. package/dist/sensors/types.js +4 -8
  283. package/dist/sensors/types.js.map +1 -1
  284. package/dist/session-start/build.js +36 -21
  285. package/dist/session-start/build.js.map +1 -1
  286. package/dist/session-start/templates.d.ts +1 -1
  287. package/dist/session-start/templates.js +1 -1
  288. package/dist/status-line/event-queue.js +2 -1
  289. package/dist/status-line/event-queue.js.map +1 -1
  290. package/dist/status-line/reader.js +5 -5
  291. package/dist/status-line/reader.js.map +1 -1
  292. package/dist/status-line/writer.js +2 -1
  293. package/dist/status-line/writer.js.map +1 -1
  294. package/dist/tasks/lifecycle.d.ts +3 -4
  295. package/dist/tasks/lifecycle.js +19 -21
  296. package/dist/tasks/lifecycle.js.map +1 -1
  297. package/dist/trace/index.js +2 -2
  298. package/dist/trace/index.js.map +1 -1
  299. package/dist/update-check.d.ts +28 -0
  300. package/dist/update-check.js +137 -0
  301. package/dist/update-check.js.map +1 -0
  302. package/package.json +2 -2
  303. package/templates/.cairn/git-hooks/commit-msg +33 -5
  304. package/templates/.cairn/git-hooks/post-commit +13 -3
  305. package/templates/.cairn/git-hooks/pre-commit +48 -22
  306. package/templates/.github/workflows/cairn-check.yml +8 -0
  307. package/dist/attention/bulk-accept.d.ts +0 -78
  308. package/dist/attention/bulk-accept.js +0 -348
  309. package/dist/attention/bulk-accept.js.map +0 -1
  310. package/dist/attention/serve/api.d.ts +0 -24
  311. package/dist/attention/serve/api.js +0 -383
  312. package/dist/attention/serve/api.js.map +0 -1
  313. package/dist/attention/serve/index.d.ts +0 -63
  314. package/dist/attention/serve/index.js +0 -219
  315. package/dist/attention/serve/index.js.map +0 -1
  316. package/dist/hooks/read-enrich.d.ts +0 -6
  317. package/dist/hooks/read-enrich.js +0 -11
  318. package/dist/hooks/read-enrich.js.map +0 -1
  319. package/dist/hooks/write-guard.d.ts +0 -6
  320. package/dist/hooks/write-guard.js +0 -11
  321. package/dist/hooks/write-guard.js.map +0 -1
  322. package/dist/init/phases/12-strip.d.ts +0 -10
  323. package/dist/init/phases/12-strip.js +0 -88
  324. package/dist/init/phases/12-strip.js.map +0 -1
  325. package/dist/mcp/tools/attention-serve.d.ts +0 -23
  326. package/dist/mcp/tools/attention-serve.js +0 -84
  327. package/dist/mcp/tools/attention-serve.js.map +0 -1
  328. package/dist/mcp/tools/attention-wait.d.ts +0 -18
  329. package/dist/mcp/tools/attention-wait.js +0 -84
  330. package/dist/mcp/tools/attention-wait.js.map +0 -1
  331. package/dist/mcp/tools/bulk-accept-attention.d.ts +0 -22
  332. package/dist/mcp/tools/bulk-accept-attention.js +0 -84
  333. package/dist/mcp/tools/bulk-accept-attention.js.map +0 -1
  334. package/dist/sensors/attestation.d.ts +0 -44
  335. package/dist/sensors/attestation.js +0 -262
  336. package/dist/sensors/attestation.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/tasks/lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/tasks/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -12,10 +12,10 @@
12
12
  * the surface it's monitoring is worse than no logging.
13
13
  */
14
14
  import { appendFileSync, existsSync, mkdirSync } from "node:fs";
15
- import { homedir } from "node:os";
16
15
  import { join } from "node:path";
16
+ import { userCairnRoot } from "../paths/index.js";
17
17
  export function traceDir() {
18
- return join(homedir(), ".cairn", "trace");
18
+ return join(userCairnRoot(), "trace");
19
19
  }
20
20
  function todayFilename(now) {
21
21
  const y = now.getUTCFullYear();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/trace/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAuBjC,MAAM,UAAU,QAAQ;IACtB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,aAAa,CAAC,GAAS;IAC9B,MAAM,CAAC,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;IAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpD,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAY,IAAI,IAAI,EAAE;IAClD,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAiB;IAC3C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,cAAc,CAAC,aAAa,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,IAA4B;IACnD,OAAO,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/trace/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAuBlD,MAAM,UAAU,QAAQ;IACtB,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,aAAa,CAAC,GAAS;IAC9B,MAAM,CAAC,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;IAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpD,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAY,IAAI,IAAI,EAAE;IAClD,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAiB;IAC3C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,cAAc,CAAC,aAAa,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,IAA4B;IACnD,OAAO,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC;AACnD,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * SessionStart "newer Cairn available" notice.
3
+ *
4
+ * Cairn ships as a Claude Code plugin distributed through a THIRD-PARTY
5
+ * marketplace, where auto-update is OFF by default — so a user can sit on an
6
+ * old plugin (and its bundled `cli.mjs`) indefinitely with no signal. This is
7
+ * the plugin-side analog of `cairn-lens/src/update-check.ts`: one throttled,
8
+ * best-effort check against the npm registry (the published `@isaacriehm/cairn`
9
+ * version is the synced workspace version), surfaced as a one-line SessionStart
10
+ * banner.
11
+ *
12
+ * Contract: NEVER throws into the caller, NEVER blocks the session for more
13
+ * than `FETCH_TIMEOUT_MS`, and hits the network at most once per day per
14
+ * machine (cached in `~/.cairn/update-check.json`). On a cache hit it is pure
15
+ * filesystem — no network. The hot SessionStart path stays fast.
16
+ */
17
+ /**
18
+ * Resolve a "newer Cairn available" banner line, or null when up to date /
19
+ * unknown. Hits the network at most once per `CHECK_INTERVAL_MS`; otherwise
20
+ * reads the cached last-known-latest. `now` is injected for testability.
21
+ */
22
+ export declare function runUpdateCheck(currentVersion: string, now: number): Promise<string | null>;
23
+ /**
24
+ * True when `a` is a strictly newer release than `b` on `major.minor.patch`.
25
+ * Pre-release suffixes are ignored. Unparseable input → false (fail closed:
26
+ * never nag on a version we can't read).
27
+ */
28
+ export declare function isNewer(a: string, b: string): boolean;
@@ -0,0 +1,137 @@
1
+ /**
2
+ * SessionStart "newer Cairn available" notice.
3
+ *
4
+ * Cairn ships as a Claude Code plugin distributed through a THIRD-PARTY
5
+ * marketplace, where auto-update is OFF by default — so a user can sit on an
6
+ * old plugin (and its bundled `cli.mjs`) indefinitely with no signal. This is
7
+ * the plugin-side analog of `cairn-lens/src/update-check.ts`: one throttled,
8
+ * best-effort check against the npm registry (the published `@isaacriehm/cairn`
9
+ * version is the synced workspace version), surfaced as a one-line SessionStart
10
+ * banner.
11
+ *
12
+ * Contract: NEVER throws into the caller, NEVER blocks the session for more
13
+ * than `FETCH_TIMEOUT_MS`, and hits the network at most once per day per
14
+ * machine (cached in `~/.cairn/update-check.json`). On a cache hit it is pure
15
+ * filesystem — no network. The hot SessionStart path stays fast.
16
+ */
17
+ import { get } from "node:https";
18
+ import { existsSync, readFileSync } from "node:fs";
19
+ import { writeFileSafe } from "@isaacriehm/cairn-state";
20
+ import { updateCheckCachePath } from "./paths/index.js";
21
+ const NPM_LATEST_URL = "https://registry.npmjs.org/@isaacriehm/cairn/latest";
22
+ const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000; // once per day
23
+ const FETCH_TIMEOUT_MS = 1500; // tight — this is the SessionStart hot path
24
+ const MAX_BODY_BYTES = 200_000;
25
+ function readCache() {
26
+ const p = updateCheckCachePath();
27
+ if (!existsSync(p))
28
+ return { checkedMs: 0, latest: null };
29
+ try {
30
+ const parsed = JSON.parse(readFileSync(p, "utf8"));
31
+ return {
32
+ checkedMs: typeof parsed.checkedMs === "number" ? parsed.checkedMs : 0,
33
+ latest: typeof parsed.latest === "string" ? parsed.latest : null,
34
+ };
35
+ }
36
+ catch {
37
+ return { checkedMs: 0, latest: null };
38
+ }
39
+ }
40
+ function writeCache(cache) {
41
+ try {
42
+ writeFileSafe(updateCheckCachePath(), JSON.stringify(cache));
43
+ }
44
+ catch {
45
+ // best-effort — a failed cache write just means we re-check next session
46
+ }
47
+ }
48
+ /**
49
+ * Resolve a "newer Cairn available" banner line, or null when up to date /
50
+ * unknown. Hits the network at most once per `CHECK_INTERVAL_MS`; otherwise
51
+ * reads the cached last-known-latest. `now` is injected for testability.
52
+ */
53
+ export async function runUpdateCheck(currentVersion, now) {
54
+ const cache = readCache();
55
+ let latest = cache.latest;
56
+ if (now - cache.checkedMs >= CHECK_INTERVAL_MS) {
57
+ const fetched = await fetchLatestVersion();
58
+ // Stamp the attempt regardless of outcome so an offline machine doesn't
59
+ // re-hit the network every session; keep the prior last-known on failure.
60
+ latest = fetched ?? cache.latest;
61
+ writeCache({ checkedMs: now, latest });
62
+ }
63
+ if (latest === null || !isNewer(latest, currentVersion))
64
+ return null;
65
+ return (`⬡ A newer Cairn is available — v${latest} (you have v${currentVersion}). ` +
66
+ `Update the plugin via \`/plugin\` (third-party plugins don't auto-update by ` +
67
+ `default); the next session migrates \`.cairn/\` forward automatically.`);
68
+ }
69
+ /**
70
+ * GET the npm `latest` dist-tag document and pull `.version`. Resolves to the
71
+ * version string, or null on any failure (timeout, non-200, unparseable,
72
+ * oversized). Never rejects.
73
+ */
74
+ function fetchLatestVersion() {
75
+ return new Promise((resolve) => {
76
+ let settled = false;
77
+ const done = (v) => {
78
+ if (settled)
79
+ return;
80
+ settled = true;
81
+ resolve(v);
82
+ };
83
+ const req = get(NPM_LATEST_URL, { headers: { accept: "application/json" }, timeout: FETCH_TIMEOUT_MS }, (res) => {
84
+ if (res.statusCode !== 200) {
85
+ res.resume();
86
+ done(null);
87
+ return;
88
+ }
89
+ let data = "";
90
+ res.setEncoding("utf8");
91
+ res.on("data", (chunk) => {
92
+ data += chunk;
93
+ if (data.length > MAX_BODY_BYTES) {
94
+ req.destroy();
95
+ done(null);
96
+ }
97
+ });
98
+ res.on("end", () => {
99
+ try {
100
+ const body = JSON.parse(data);
101
+ done(typeof body.version === "string" ? body.version : null);
102
+ }
103
+ catch {
104
+ done(null);
105
+ }
106
+ });
107
+ });
108
+ req.on("timeout", () => {
109
+ req.destroy();
110
+ done(null);
111
+ });
112
+ req.on("error", () => done(null));
113
+ });
114
+ }
115
+ /**
116
+ * True when `a` is a strictly newer release than `b` on `major.minor.patch`.
117
+ * Pre-release suffixes are ignored. Unparseable input → false (fail closed:
118
+ * never nag on a version we can't read).
119
+ */
120
+ export function isNewer(a, b) {
121
+ const pa = parseSemver(a);
122
+ const pb = parseSemver(b);
123
+ if (pa === null || pb === null)
124
+ return false;
125
+ for (let i = 0; i < 3; i++) {
126
+ if (pa[i] !== pb[i])
127
+ return pa[i] > pb[i];
128
+ }
129
+ return false;
130
+ }
131
+ function parseSemver(v) {
132
+ const m = v.trim().replace(/^v/, "").match(/^(\d+)\.(\d+)\.(\d+)/);
133
+ if (m === null)
134
+ return null;
135
+ return [Number(m[1]), Number(m[2]), Number(m[3])];
136
+ }
137
+ //# sourceMappingURL=update-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isaacriehm/cairn-core",
3
- "version": "0.19.1",
3
+ "version": "0.22.0",
4
4
  "description": "Cairn core — state + context layer. Curated `.cairn/ground/` (decisions, §INV invariants, canonical-map, brand, quality-grades), MCP server, init wizard, hook runners, sensors, GC drift sweep.",
5
5
  "author": "Isaac Riehm",
6
6
  "license": "MIT",
@@ -39,7 +39,7 @@
39
39
  "simple-git": "^3.36.0",
40
40
  "yaml": "^2.9.0",
41
41
  "zod": "^4.4.3",
42
- "@isaacriehm/cairn-state": "0.19.1"
42
+ "@isaacriehm/cairn-state": "0.22.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/cli-progress": "^3.11.6",
@@ -5,18 +5,41 @@
5
5
  #
6
6
  # Validates DEC/TSK/§INV citations in the commit message body when the
7
7
  # project's commit policy requires them. The Cairn CLI owns the policy
8
- # (sensors.yaml `commit_msg_policy`) so the hook stays a thin shim.
8
+ # (sensors.yaml `commit_msg_policy`) so the hook stays a thin shim. Advisory
9
+ # (never blocks) in ghost mode.
10
+ #
11
+ # State home is derived from THIS hook's own location (committed in-repo /
12
+ # ghost out-of-repo) — see pre-commit for the rationale.
9
13
 
10
14
  set -e
11
15
 
12
16
  REPO_ROOT="$(git rev-parse --show-toplevel 2> /dev/null || true)"
13
- if [ -z "$REPO_ROOT" ] || [ ! -d "$REPO_ROOT/.cairn" ]; then
17
+ if [ -z "$REPO_ROOT" ]; then
18
+ exit 0
19
+ fi
20
+
21
+ HOOK_DIR="$(cd "$(dirname "$0")" && pwd)"
22
+ CAIRN_HOME="$(dirname "$HOOK_DIR")"
23
+ if [ ! -d "$CAIRN_HOME" ]; then
14
24
  exit 0
15
25
  fi
16
26
 
27
+ # Ghost = state home is OUTSIDE the repo tree → advisory.
28
+ GHOST=1
29
+ case "$CAIRN_HOME/" in
30
+ "$REPO_ROOT"/*) GHOST=0 ;;
31
+ esac
32
+
17
33
  CAIRN_CMD=""
18
- if [ -f "$REPO_ROOT/.cairn/.cli-path" ]; then
19
- CAIRN_CMD="$(head -n1 "$REPO_ROOT/.cairn/.cli-path")"
34
+ if [ -f "$CAIRN_HOME/.cli-path" ]; then
35
+ CAIRN_CMD="$(head -n1 "$CAIRN_HOME/.cli-path")"
36
+ # Self-heal a stale path (plugin upgrade rotates the cache dir).
37
+ CAIRN_BIN="${CAIRN_CMD#node }"
38
+ CAIRN_BIN="${CAIRN_BIN#\"}"
39
+ CAIRN_BIN="${CAIRN_BIN%\"}"
40
+ if [ -n "$CAIRN_BIN" ] && [ ! -f "$CAIRN_BIN" ]; then
41
+ CAIRN_CMD=""
42
+ fi
20
43
  fi
21
44
  if [ -z "$CAIRN_CMD" ] && command -v cairn > /dev/null 2>&1; then
22
45
  CAIRN_CMD="cairn"
@@ -25,4 +48,9 @@ if [ -z "$CAIRN_CMD" ]; then
25
48
  exit 0
26
49
  fi
27
50
 
28
- eval "$CAIRN_CMD sensor-run --commit-msg \"$1\""
51
+ if [ "$GHOST" = "1" ]; then
52
+ eval "$CAIRN_CMD sensor-run --commit-msg \"$1\"" \
53
+ || echo "cairn (ghost): commit-msg findings above are advisory — commit not blocked" >&2
54
+ else
55
+ eval "$CAIRN_CMD sensor-run --commit-msg \"$1\""
56
+ fi
@@ -4,8 +4,13 @@
4
4
  # Spec: PLUGIN_ARCHITECTURE §17 Layer 1 (bypass tracking).
5
5
  #
6
6
  # Records the SHA of the commit that just succeeded into
7
- # `.cairn/.attested-commits`. The Stop hook uses this list to detect
7
+ # `<cairnHome>/.attested-commits`. The Stop hook uses this list to detect
8
8
  # `--no-verify` bypasses and surface them inline.
9
+ #
10
+ # State home is derived from THIS hook's own location: core.hooksPath points at
11
+ # <cairnHome>/git-hooks in both modes — in-repo `.cairn/` for committed,
12
+ # out-of-repo `~/.cairn/state/<id>/` for ghost. So the attested log lands beside
13
+ # the rest of the state in either mode, never as a stray file in a ghost repo.
9
14
 
10
15
  set -e
11
16
 
@@ -18,11 +23,16 @@ if [ -z "$REPO_ROOT" ]; then
18
23
  exit 0
19
24
  fi
20
25
 
26
+ HOOK_DIR="$(cd "$(dirname "$0")" && pwd)"
27
+ CAIRN_HOME="$(dirname "$HOOK_DIR")"
28
+ if [ ! -d "$CAIRN_HOME" ]; then
29
+ exit 0
30
+ fi
31
+
21
32
  SHA="$(git rev-parse --verify HEAD 2> /dev/null || true)"
22
33
  if [ -z "$SHA" ]; then
23
34
  exit 0
24
35
  fi
25
36
 
26
- mkdir -p "$REPO_ROOT/.cairn"
27
- echo "$SHA" >> "$REPO_ROOT/.cairn/.attested-commits"
37
+ echo "$SHA" >> "$CAIRN_HOME/.attested-commits"
28
38
  exit 0
@@ -1,36 +1,56 @@
1
1
  #!/usr/bin/env bash
2
2
  # Cairn pre-commit hook (versioned, per-clone activation via core.hooksPath).
3
3
  #
4
- # Runs two passes against the staged tree:
4
+ # Two passes over the staged tree:
5
+ # 1. `cairn sensor-run --staged` — sensor sweep. Blocks the commit on a
6
+ # hard finding in committed mode; ADVISORY
7
+ # (warns, never blocks) in ghost mode.
8
+ # 2. `cairn hook pre-commit-align` — Layer B detection-only SoT drift log.
9
+ # Never blocks. Always exits 0.
5
10
  #
6
- # 1. `cairn sensor-run --staged` — sensor-driven enforcement
7
- # (may exit non-zero, blocking
8
- # the commit when a configured
9
- # sensor's trigger fires).
11
+ # State home is derived from THIS hook's own location: core.hooksPath points at
12
+ # <cairnHome>/git-hooks in BOTH modes — in-repo `.cairn/` for committed,
13
+ # out-of-repo `~/.cairn/state/<id>/` for ghost — so the hook resolves its
14
+ # state, `.cli-path`, and mode without a registry lookup. Ghost = the home
15
+ # lives OUTSIDE the repo tree.
10
16
  #
11
- # 2. `cairn hook pre-commit-align` — Layer B (plan §4.2)
12
- # detection-only SoT drift log.
13
- # NEVER blocks the commit.
14
- # Always exits 0; failures
15
- # degrade silently.
16
- #
17
- # Resolution order for the cairn binary:
18
- # 1. .cairn/.cli-path (written by `cairn join`; points at the bundled
19
- # cli.mjs for plugin users, the global cairn shim for CLI users).
20
- # 2. global `cairn` binary on PATH.
21
- # 3. exit 0 — no enforcement available; SessionStart bootstrap banner
22
- # will surface on next Claude Code session and re-run join.
17
+ # cairn binary resolution: <cairnHome>/.cli-path, then a global `cairn`, else
18
+ # exit 0 (SessionStart re-runs join next session).
23
19
 
24
20
  set -e
25
21
 
26
22
  REPO_ROOT="$(git rev-parse --show-toplevel 2> /dev/null || true)"
27
- if [ -z "$REPO_ROOT" ] || [ ! -d "$REPO_ROOT/.cairn" ]; then
23
+ if [ -z "$REPO_ROOT" ]; then
24
+ exit 0
25
+ fi
26
+
27
+ HOOK_DIR="$(cd "$(dirname "$0")" && pwd)"
28
+ CAIRN_HOME="$(dirname "$HOOK_DIR")"
29
+ if [ ! -d "$CAIRN_HOME" ]; then
28
30
  exit 0
29
31
  fi
30
32
 
33
+ # Ghost = state home is OUTSIDE the repo tree → advisory. Committed = the home
34
+ # is <repo>/.cairn → enforcing.
35
+ GHOST=1
36
+ case "$CAIRN_HOME/" in
37
+ "$REPO_ROOT"/*) GHOST=0 ;;
38
+ esac
39
+
31
40
  CAIRN_CMD=""
32
- if [ -f "$REPO_ROOT/.cairn/.cli-path" ]; then
33
- CAIRN_CMD="$(head -n1 "$REPO_ROOT/.cairn/.cli-path")"
41
+ if [ -f "$CAIRN_HOME/.cli-path" ]; then
42
+ CAIRN_CMD="$(head -n1 "$CAIRN_HOME/.cli-path")"
43
+ # Self-heal a stale path. A plugin upgrade rotates the marketplace cache
44
+ # dir, so a .cli-path written by an older version points at a now-deleted
45
+ # cli.mjs. Verify the target exists; if not, blank CAIRN_CMD so resolution
46
+ # falls through to a global `cairn` rather than eval-ing a dead path (which,
47
+ # under `set -e`, hard-fails the commit instead of degrading silently).
48
+ CAIRN_BIN="${CAIRN_CMD#node }"
49
+ CAIRN_BIN="${CAIRN_BIN#\"}"
50
+ CAIRN_BIN="${CAIRN_BIN%\"}"
51
+ if [ -n "$CAIRN_BIN" ] && [ ! -f "$CAIRN_BIN" ]; then
52
+ CAIRN_CMD=""
53
+ fi
34
54
  fi
35
55
  if [ -z "$CAIRN_CMD" ] && command -v cairn > /dev/null 2>&1; then
36
56
  CAIRN_CMD="cairn"
@@ -39,8 +59,14 @@ if [ -z "$CAIRN_CMD" ]; then
39
59
  exit 0
40
60
  fi
41
61
 
42
- # Pass 1 — sensor-run (may block).
43
- eval "$CAIRN_CMD sensor-run --staged"
62
+ # Pass 1 — sensor-run. Blocks on hard findings in committed mode; advisory in
63
+ # ghost (Cairn is private memory, never a delivery gate).
64
+ if [ "$GHOST" = "1" ]; then
65
+ eval "$CAIRN_CMD sensor-run --staged" \
66
+ || echo "cairn (ghost): sensor findings above are advisory — commit not blocked" >&2
67
+ else
68
+ eval "$CAIRN_CMD sensor-run --staged"
69
+ fi
44
70
 
45
71
  # Pass 2 — Layer B alignment log (never blocks).
46
72
  eval "$CAIRN_CMD hook pre-commit-align" || true
@@ -27,3 +27,11 @@ jobs:
27
27
 
28
28
  - name: Cairn doctor — verify ground state is healthy
29
29
  run: cairn doctor
30
+
31
+ - name: Cairn sensor sweep — enforce decisions/invariants on the diff
32
+ run: |
33
+ BASE="${{ github.event.pull_request.base.sha || github.event.before }}"
34
+ if [ -z "$BASE" ] || ! git cat-file -e "${BASE}^{commit}" 2>/dev/null; then
35
+ BASE="origin/${{ github.event.repository.default_branch || 'main' }}"
36
+ fi
37
+ cairn sensor-run --diff "${BASE}..HEAD" --strict
@@ -1,78 +0,0 @@
1
- /**
2
- * Bulk-accept obvious DEC drafts + stamp confidence on invariants.
3
- *
4
- * Mirrors the per-draft accept flow in `mcp/tools/resolve-attention.ts`
5
- * (`choice: "a"`) but applies it in one pass over `_inbox/` filtered
6
- * by the `scoring.ts` heuristic. Operator runs this once per
7
- * adoption to drain the obvious classifications, then triages the
8
- * medium / low-confidence remainder interactively via the existing
9
- * cairn-attention skill.
10
- *
11
- * Design:
12
- * - Score each draft from frontmatter + body (prose, raw block) so
13
- * it can run against drafts written before the scoring pipeline
14
- * existed (back-compat for v0.3.6 adoptions).
15
- * - High-confidence DEC drafts: move `_inbox/<id>.draft.md`
16
- * → `<id>.md`, flip `status:` frontmatter to `accepted`, and
17
- * stamp `capture_confidence: high`. Rebuild
18
- * `decisions.ledger.yaml` once at the end.
19
- * - Medium / low-confidence DEC drafts: stay in `_inbox/` but
20
- * get `capture_confidence` stamped so the cairn-attention skill
21
- * can prioritize what to surface first.
22
- * - Invariants are already at `status: active` (phase 7b promotes
23
- * them on write). Just stamp `capture_confidence` so future
24
- * UX can hide low-confidence ones from the active set.
25
- *
26
- * Side-effect-only: emits decision_accepted events, runs the source
27
- * strip-replace pass on accepted source-comment drafts so the §INV /
28
- * §DEC citations land in the original source.
29
- */
30
- import type { ProjectGlobs } from "../sensors/types.js";
31
- import { type DraftConfidence } from "./scoring.js";
32
- export interface BulkAcceptArgs {
33
- repoRoot: string;
34
- /** Project globs sourced from `.cairn/config.yaml`. */
35
- globs: ProjectGlobs;
36
- /**
37
- * Minimum confidence to auto-accept DEC drafts. Defaults to "high"
38
- * — only obvious accepts move out of the inbox. "medium" widens
39
- * acceptance; "low" effectively accepts everything (do not use
40
- * unless the operator explicitly opts in).
41
- */
42
- threshold?: DraftConfidence;
43
- /** Don't write — just compute counts. Returns the same shape. */
44
- dryRun?: boolean;
45
- }
46
- export interface BulkAcceptResult {
47
- decsScanned: number;
48
- decsAccepted: number;
49
- decsByConfidence: Record<DraftConfidence, number>;
50
- acceptedIds: string[];
51
- invariantsScanned: number;
52
- invariantsByConfidence: Record<DraftConfidence, number>;
53
- /**
54
- * Aggregate count of files where an accepted DEC's source-comment
55
- * essay was replaced inline with `// §DEC-NNNN`. Mirrors the §INV
56
- * strip pass that 7b runs at adoption time.
57
- */
58
- sourceStripFilesModified: number;
59
- /** Aggregate count of strip items that landed across all accepted DECs. */
60
- sourceStripItemsApplied: number;
61
- /**
62
- * Per-accepted-id strip outcome reasons when the strip didn't run
63
- * the happy path (block not found, audit missing, source dirty).
64
- * Empty when every accept succeeded or no DECs came from source
65
- * comments.
66
- */
67
- sourceStripSkipped: {
68
- id: string;
69
- reason: string;
70
- }[];
71
- dryRun: boolean;
72
- }
73
- /**
74
- * Score, stamp, and (for high-confidence DECs) accept inbox drafts in
75
- * bulk. Returns the count summary the CLI / skill renders to the
76
- * operator.
77
- */
78
- export declare function bulkAcceptObvious(args: BulkAcceptArgs): Promise<BulkAcceptResult>;