@isaacriehm/cairn 0.1.0 → 0.1.4

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 (533) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/index.d.ts +0 -1
  3. package/dist/index.js +0 -1
  4. package/dist/index.js.map +1 -1
  5. package/package.json +4 -4
  6. package/dist/backprop/id.d.ts +0 -14
  7. package/dist/backprop/id.js +0 -40
  8. package/dist/backprop/id.js.map +0 -1
  9. package/dist/backprop/index.d.ts +0 -23
  10. package/dist/backprop/index.js +0 -21
  11. package/dist/backprop/index.js.map +0 -1
  12. package/dist/backprop/prompt.d.ts +0 -16
  13. package/dist/backprop/prompt.js +0 -101
  14. package/dist/backprop/prompt.js.map +0 -1
  15. package/dist/backprop/runner.d.ts +0 -18
  16. package/dist/backprop/runner.js +0 -95
  17. package/dist/backprop/runner.js.map +0 -1
  18. package/dist/backprop/schema.d.ts +0 -61
  19. package/dist/backprop/schema.js +0 -55
  20. package/dist/backprop/schema.js.map +0 -1
  21. package/dist/backprop/types.d.ts +0 -101
  22. package/dist/backprop/types.js +0 -24
  23. package/dist/backprop/types.js.map +0 -1
  24. package/dist/backprop/writer.d.ts +0 -27
  25. package/dist/backprop/writer.js +0 -301
  26. package/dist/backprop/writer.js.map +0 -1
  27. package/dist/claude/error.d.ts +0 -33
  28. package/dist/claude/error.js +0 -58
  29. package/dist/claude/error.js.map +0 -1
  30. package/dist/claude/index.d.ts +0 -3
  31. package/dist/claude/index.js +0 -3
  32. package/dist/claude/index.js.map +0 -1
  33. package/dist/claude/runner.d.ts +0 -11
  34. package/dist/claude/runner.js +0 -132
  35. package/dist/claude/runner.js.map +0 -1
  36. package/dist/claude/types.d.ts +0 -52
  37. package/dist/claude/types.js +0 -14
  38. package/dist/claude/types.js.map +0 -1
  39. package/dist/cli/daemon.d.ts +0 -54
  40. package/dist/cli/daemon.js +0 -351
  41. package/dist/cli/daemon.js.map +0 -1
  42. package/dist/cli/install.d.ts +0 -52
  43. package/dist/cli/install.js +0 -308
  44. package/dist/cli/install.js.map +0 -1
  45. package/dist/cli/mirror.d.ts +0 -1
  46. package/dist/cli/mirror.js +0 -97
  47. package/dist/cli/mirror.js.map +0 -1
  48. package/dist/cli/run.d.ts +0 -1
  49. package/dist/cli/run.js +0 -174
  50. package/dist/cli/run.js.map +0 -1
  51. package/dist/cli/task.d.ts +0 -18
  52. package/dist/cli/task.js +0 -137
  53. package/dist/cli/task.js.map +0 -1
  54. package/dist/cli/watch.d.ts +0 -1
  55. package/dist/cli/watch.js +0 -73
  56. package/dist/cli/watch.js.map +0 -1
  57. package/dist/decision-capture/capture.d.ts +0 -57
  58. package/dist/decision-capture/capture.js +0 -186
  59. package/dist/decision-capture/capture.js.map +0 -1
  60. package/dist/decision-capture/extractor.d.ts +0 -20
  61. package/dist/decision-capture/extractor.js +0 -103
  62. package/dist/decision-capture/extractor.js.map +0 -1
  63. package/dist/decision-capture/id.d.ts +0 -14
  64. package/dist/decision-capture/id.js +0 -44
  65. package/dist/decision-capture/id.js.map +0 -1
  66. package/dist/decision-capture/index.d.ts +0 -25
  67. package/dist/decision-capture/index.js +0 -21
  68. package/dist/decision-capture/index.js.map +0 -1
  69. package/dist/decision-capture/prompt.d.ts +0 -15
  70. package/dist/decision-capture/prompt.js +0 -68
  71. package/dist/decision-capture/prompt.js.map +0 -1
  72. package/dist/decision-capture/refinement-prompt.d.ts +0 -25
  73. package/dist/decision-capture/refinement-prompt.js +0 -146
  74. package/dist/decision-capture/refinement-prompt.js.map +0 -1
  75. package/dist/decision-capture/refinement-schema.d.ts +0 -52
  76. package/dist/decision-capture/refinement-schema.js +0 -61
  77. package/dist/decision-capture/refinement-schema.js.map +0 -1
  78. package/dist/decision-capture/refinement.d.ts +0 -60
  79. package/dist/decision-capture/refinement.js +0 -439
  80. package/dist/decision-capture/refinement.js.map +0 -1
  81. package/dist/decision-capture/schema.d.ts +0 -70
  82. package/dist/decision-capture/schema.js +0 -71
  83. package/dist/decision-capture/schema.js.map +0 -1
  84. package/dist/decision-capture/types.d.ts +0 -201
  85. package/dist/decision-capture/types.js +0 -20
  86. package/dist/decision-capture/types.js.map +0 -1
  87. package/dist/decision-capture/writer.d.ts +0 -90
  88. package/dist/decision-capture/writer.js +0 -267
  89. package/dist/decision-capture/writer.js.map +0 -1
  90. package/dist/frontend/discord/acl.d.ts +0 -6
  91. package/dist/frontend/discord/acl.js +0 -19
  92. package/dist/frontend/discord/acl.js.map +0 -1
  93. package/dist/frontend/discord/channels.d.ts +0 -29
  94. package/dist/frontend/discord/channels.js +0 -58
  95. package/dist/frontend/discord/channels.js.map +0 -1
  96. package/dist/frontend/discord/classifier.d.ts +0 -16
  97. package/dist/frontend/discord/classifier.js +0 -29
  98. package/dist/frontend/discord/classifier.js.map +0 -1
  99. package/dist/frontend/discord/index.d.ts +0 -118
  100. package/dist/frontend/discord/index.js +0 -1104
  101. package/dist/frontend/discord/index.js.map +0 -1
  102. package/dist/frontend/discord/slash.d.ts +0 -18
  103. package/dist/frontend/discord/slash.js +0 -90
  104. package/dist/frontend/discord/slash.js.map +0 -1
  105. package/dist/frontend/inbox.d.ts +0 -17
  106. package/dist/frontend/inbox.js +0 -30
  107. package/dist/frontend/inbox.js.map +0 -1
  108. package/dist/frontend/index.d.ts +0 -8
  109. package/dist/frontend/index.js +0 -6
  110. package/dist/frontend/index.js.map +0 -1
  111. package/dist/frontend/stub/index.d.ts +0 -58
  112. package/dist/frontend/stub/index.js +0 -144
  113. package/dist/frontend/stub/index.js.map +0 -1
  114. package/dist/frontend/types.d.ts +0 -247
  115. package/dist/frontend/types.js +0 -15
  116. package/dist/frontend/types.js.map +0 -1
  117. package/dist/gc/apply.d.ts +0 -26
  118. package/dist/gc/apply.js +0 -48
  119. package/dist/gc/apply.js.map +0 -1
  120. package/dist/gc/canary.d.ts +0 -42
  121. package/dist/gc/canary.js +0 -134
  122. package/dist/gc/canary.js.map +0 -1
  123. package/dist/gc/classify.d.ts +0 -25
  124. package/dist/gc/classify.js +0 -89
  125. package/dist/gc/classify.js.map +0 -1
  126. package/dist/gc/doc-gardening.d.ts +0 -29
  127. package/dist/gc/doc-gardening.js +0 -146
  128. package/dist/gc/doc-gardening.js.map +0 -1
  129. package/dist/gc/frontmatter.d.ts +0 -35
  130. package/dist/gc/frontmatter.js +0 -111
  131. package/dist/gc/frontmatter.js.map +0 -1
  132. package/dist/gc/generator-drift.d.ts +0 -28
  133. package/dist/gc/generator-drift.js +0 -53
  134. package/dist/gc/generator-drift.js.map +0 -1
  135. package/dist/gc/index.d.ts +0 -35
  136. package/dist/gc/index.js +0 -26
  137. package/dist/gc/index.js.map +0 -1
  138. package/dist/gc/quality-update.d.ts +0 -23
  139. package/dist/gc/quality-update.js +0 -69
  140. package/dist/gc/quality-update.js.map +0 -1
  141. package/dist/gc/stub-hits.d.ts +0 -31
  142. package/dist/gc/stub-hits.js +0 -125
  143. package/dist/gc/stub-hits.js.map +0 -1
  144. package/dist/gc/sweep.d.ts +0 -56
  145. package/dist/gc/sweep.js +0 -178
  146. package/dist/gc/sweep.js.map +0 -1
  147. package/dist/gc/types.d.ts +0 -129
  148. package/dist/gc/types.js +0 -26
  149. package/dist/gc/types.js.map +0 -1
  150. package/dist/ground/drift.d.ts +0 -8
  151. package/dist/ground/drift.js +0 -23
  152. package/dist/ground/drift.js.map +0 -1
  153. package/dist/ground/frontmatter.d.ts +0 -20
  154. package/dist/ground/frontmatter.js +0 -49
  155. package/dist/ground/frontmatter.js.map +0 -1
  156. package/dist/ground/glob.d.ts +0 -10
  157. package/dist/ground/glob.js +0 -46
  158. package/dist/ground/glob.js.map +0 -1
  159. package/dist/ground/index.d.ts +0 -14
  160. package/dist/ground/index.js +0 -10
  161. package/dist/ground/index.js.map +0 -1
  162. package/dist/ground/ledgers.d.ts +0 -18
  163. package/dist/ground/ledgers.js +0 -103
  164. package/dist/ground/ledgers.js.map +0 -1
  165. package/dist/ground/manifest.d.ts +0 -10
  166. package/dist/ground/manifest.js +0 -88
  167. package/dist/ground/manifest.js.map +0 -1
  168. package/dist/ground/paths.d.ts +0 -20
  169. package/dist/ground/paths.js +0 -61
  170. package/dist/ground/paths.js.map +0 -1
  171. package/dist/ground/quality-grades.d.ts +0 -11
  172. package/dist/ground/quality-grades.js +0 -98
  173. package/dist/ground/quality-grades.js.map +0 -1
  174. package/dist/ground/schemas.d.ts +0 -306
  175. package/dist/ground/schemas.js +0 -188
  176. package/dist/ground/schemas.js.map +0 -1
  177. package/dist/ground/walk.d.ts +0 -7
  178. package/dist/ground/walk.js +0 -53
  179. package/dist/ground/walk.js.map +0 -1
  180. package/dist/init/detect.d.ts +0 -25
  181. package/dist/init/detect.js +0 -336
  182. package/dist/init/detect.js.map +0 -1
  183. package/dist/init/index.d.ts +0 -14
  184. package/dist/init/index.js +0 -9
  185. package/dist/init/index.js.map +0 -1
  186. package/dist/init/init.d.ts +0 -68
  187. package/dist/init/init.js +0 -673
  188. package/dist/init/init.js.map +0 -1
  189. package/dist/init/mapper.d.ts +0 -160
  190. package/dist/init/mapper.js +0 -248
  191. package/dist/init/mapper.js.map +0 -1
  192. package/dist/init/prompts.d.ts +0 -70
  193. package/dist/init/prompts.js +0 -80
  194. package/dist/init/prompts.js.map +0 -1
  195. package/dist/init/secrets.d.ts +0 -18
  196. package/dist/init/secrets.js +0 -76
  197. package/dist/init/secrets.js.map +0 -1
  198. package/dist/init/seed.d.ts +0 -21
  199. package/dist/init/seed.js +0 -75
  200. package/dist/init/seed.js.map +0 -1
  201. package/dist/init/setup-runners.d.ts +0 -17
  202. package/dist/init/setup-runners.js +0 -70
  203. package/dist/init/setup-runners.js.map +0 -1
  204. package/dist/init/types.d.ts +0 -59
  205. package/dist/init/types.js +0 -10
  206. package/dist/init/types.js.map +0 -1
  207. package/dist/init/walker.d.ts +0 -53
  208. package/dist/init/walker.js +0 -460
  209. package/dist/init/walker.js.map +0 -1
  210. package/dist/init/workflow-block.d.ts +0 -34
  211. package/dist/init/workflow-block.js +0 -110
  212. package/dist/init/workflow-block.js.map +0 -1
  213. package/dist/logger.d.ts +0 -3
  214. package/dist/logger.js +0 -23
  215. package/dist/logger.js.map +0 -1
  216. package/dist/mcp/context.d.ts +0 -16
  217. package/dist/mcp/context.js +0 -8
  218. package/dist/mcp/context.js.map +0 -1
  219. package/dist/mcp/errors.d.ts +0 -17
  220. package/dist/mcp/errors.js +0 -23
  221. package/dist/mcp/errors.js.map +0 -1
  222. package/dist/mcp/index.d.ts +0 -10
  223. package/dist/mcp/index.js +0 -7
  224. package/dist/mcp/index.js.map +0 -1
  225. package/dist/mcp/path-allowlist.d.ts +0 -25
  226. package/dist/mcp/path-allowlist.js +0 -66
  227. package/dist/mcp/path-allowlist.js.map +0 -1
  228. package/dist/mcp/result.d.ts +0 -8
  229. package/dist/mcp/result.js +0 -18
  230. package/dist/mcp/result.js.map +0 -1
  231. package/dist/mcp/schemas.d.ts +0 -153
  232. package/dist/mcp/schemas.js +0 -135
  233. package/dist/mcp/schemas.js.map +0 -1
  234. package/dist/mcp/server.d.ts +0 -11
  235. package/dist/mcp/server.js +0 -58
  236. package/dist/mcp/server.js.map +0 -1
  237. package/dist/mcp/telemetry.d.ts +0 -15
  238. package/dist/mcp/telemetry.js +0 -13
  239. package/dist/mcp/telemetry.js.map +0 -1
  240. package/dist/mcp/tools/append.d.ts +0 -8
  241. package/dist/mcp/tools/append.js +0 -33
  242. package/dist/mcp/tools/append.js.map +0 -1
  243. package/dist/mcp/tools/archive.d.ts +0 -8
  244. package/dist/mcp/tools/archive.js +0 -49
  245. package/dist/mcp/tools/archive.js.map +0 -1
  246. package/dist/mcp/tools/ask-operator.d.ts +0 -34
  247. package/dist/mcp/tools/ask-operator.js +0 -93
  248. package/dist/mcp/tools/ask-operator.js.map +0 -1
  249. package/dist/mcp/tools/canonical-for-topic.d.ts +0 -6
  250. package/dist/mcp/tools/canonical-for-topic.js +0 -40
  251. package/dist/mcp/tools/canonical-for-topic.js.map +0 -1
  252. package/dist/mcp/tools/decision-get.d.ts +0 -6
  253. package/dist/mcp/tools/decision-get.js +0 -49
  254. package/dist/mcp/tools/decision-get.js.map +0 -1
  255. package/dist/mcp/tools/decisions-for-symbol.d.ts +0 -7
  256. package/dist/mcp/tools/decisions-for-symbol.js +0 -42
  257. package/dist/mcp/tools/decisions-for-symbol.js.map +0 -1
  258. package/dist/mcp/tools/decisions-in-scope.d.ts +0 -7
  259. package/dist/mcp/tools/decisions-in-scope.js +0 -47
  260. package/dist/mcp/tools/decisions-in-scope.js.map +0 -1
  261. package/dist/mcp/tools/drop-task.d.ts +0 -12
  262. package/dist/mcp/tools/drop-task.js +0 -47
  263. package/dist/mcp/tools/drop-task.js.map +0 -1
  264. package/dist/mcp/tools/get-full.d.ts +0 -7
  265. package/dist/mcp/tools/get-full.js +0 -46
  266. package/dist/mcp/tools/get-full.js.map +0 -1
  267. package/dist/mcp/tools/ground-get.d.ts +0 -7
  268. package/dist/mcp/tools/ground-get.js +0 -80
  269. package/dist/mcp/tools/ground-get.js.map +0 -1
  270. package/dist/mcp/tools/index.d.ts +0 -3
  271. package/dist/mcp/tools/index.js +0 -44
  272. package/dist/mcp/tools/index.js.map +0 -1
  273. package/dist/mcp/tools/invariant-get.d.ts +0 -6
  274. package/dist/mcp/tools/invariant-get.js +0 -49
  275. package/dist/mcp/tools/invariant-get.js.map +0 -1
  276. package/dist/mcp/tools/invariants-in-scope.d.ts +0 -7
  277. package/dist/mcp/tools/invariants-in-scope.js +0 -65
  278. package/dist/mcp/tools/invariants-in-scope.js.map +0 -1
  279. package/dist/mcp/tools/query-history.d.ts +0 -9
  280. package/dist/mcp/tools/query-history.js +0 -33
  281. package/dist/mcp/tools/query-history.js.map +0 -1
  282. package/dist/mcp/tools/record-decision.d.ts +0 -14
  283. package/dist/mcp/tools/record-decision.js +0 -101
  284. package/dist/mcp/tools/record-decision.js.map +0 -1
  285. package/dist/mcp/tools/record-run-event.d.ts +0 -10
  286. package/dist/mcp/tools/record-run-event.js +0 -28
  287. package/dist/mcp/tools/record-run-event.js.map +0 -1
  288. package/dist/mcp/tools/search.d.ts +0 -9
  289. package/dist/mcp/tools/search.js +0 -165
  290. package/dist/mcp/tools/search.js.map +0 -1
  291. package/dist/mcp/tools/supersedes-chain.d.ts +0 -6
  292. package/dist/mcp/tools/supersedes-chain.js +0 -66
  293. package/dist/mcp/tools/supersedes-chain.js.map +0 -1
  294. package/dist/mcp/tools/timeline.d.ts +0 -9
  295. package/dist/mcp/tools/timeline.js +0 -65
  296. package/dist/mcp/tools/timeline.js.map +0 -1
  297. package/dist/mcp/tools/types.d.ts +0 -9
  298. package/dist/mcp/tools/types.js +0 -2
  299. package/dist/mcp/tools/types.js.map +0 -1
  300. package/dist/mirror/clone.d.ts +0 -6
  301. package/dist/mirror/clone.js +0 -48
  302. package/dist/mirror/clone.js.map +0 -1
  303. package/dist/mirror/dirty-overlap.d.ts +0 -13
  304. package/dist/mirror/dirty-overlap.js +0 -77
  305. package/dist/mirror/dirty-overlap.js.map +0 -1
  306. package/dist/mirror/index.d.ts +0 -7
  307. package/dist/mirror/index.js +0 -7
  308. package/dist/mirror/index.js.map +0 -1
  309. package/dist/mirror/paths.d.ts +0 -18
  310. package/dist/mirror/paths.js +0 -45
  311. package/dist/mirror/paths.js.map +0 -1
  312. package/dist/mirror/push.d.ts +0 -9
  313. package/dist/mirror/push.js +0 -27
  314. package/dist/mirror/push.js.map +0 -1
  315. package/dist/mirror/state.d.ts +0 -4
  316. package/dist/mirror/state.js +0 -36
  317. package/dist/mirror/state.js.map +0 -1
  318. package/dist/mirror/sync.d.ts +0 -9
  319. package/dist/mirror/sync.js +0 -33
  320. package/dist/mirror/sync.js.map +0 -1
  321. package/dist/mirror/types.d.ts +0 -77
  322. package/dist/mirror/types.js +0 -2
  323. package/dist/mirror/types.js.map +0 -1
  324. package/dist/orchestrator/activity-summarizer.d.ts +0 -33
  325. package/dist/orchestrator/activity-summarizer.js +0 -120
  326. package/dist/orchestrator/activity-summarizer.js.map +0 -1
  327. package/dist/orchestrator/inbox.d.ts +0 -78
  328. package/dist/orchestrator/inbox.js +0 -115
  329. package/dist/orchestrator/inbox.js.map +0 -1
  330. package/dist/orchestrator/index.d.ts +0 -9
  331. package/dist/orchestrator/index.js +0 -7
  332. package/dist/orchestrator/index.js.map +0 -1
  333. package/dist/orchestrator/orchestrator.d.ts +0 -154
  334. package/dist/orchestrator/orchestrator.js +0 -2437
  335. package/dist/orchestrator/orchestrator.js.map +0 -1
  336. package/dist/orchestrator/prompt.d.ts +0 -19
  337. package/dist/orchestrator/prompt.js +0 -50
  338. package/dist/orchestrator/prompt.js.map +0 -1
  339. package/dist/orchestrator/queue.d.ts +0 -21
  340. package/dist/orchestrator/queue.js +0 -80
  341. package/dist/orchestrator/queue.js.map +0 -1
  342. package/dist/orchestrator/run-log.d.ts +0 -53
  343. package/dist/orchestrator/run-log.js +0 -92
  344. package/dist/orchestrator/run-log.js.map +0 -1
  345. package/dist/orchestrator/runner.d.ts +0 -56
  346. package/dist/orchestrator/runner.js +0 -172
  347. package/dist/orchestrator/runner.js.map +0 -1
  348. package/dist/orchestrator/tool-digest.d.ts +0 -35
  349. package/dist/orchestrator/tool-digest.js +0 -116
  350. package/dist/orchestrator/tool-digest.js.map +0 -1
  351. package/dist/orchestrator/types.d.ts +0 -263
  352. package/dist/orchestrator/types.js +0 -2
  353. package/dist/orchestrator/types.js.map +0 -1
  354. package/dist/orchestrator/workspace.d.ts +0 -21
  355. package/dist/orchestrator/workspace.js +0 -31
  356. package/dist/orchestrator/workspace.js.map +0 -1
  357. package/dist/profiles/index.d.ts +0 -3
  358. package/dist/profiles/index.js +0 -3
  359. package/dist/profiles/index.js.map +0 -1
  360. package/dist/profiles/registry.d.ts +0 -5
  361. package/dist/profiles/registry.js +0 -31
  362. package/dist/profiles/registry.js.map +0 -1
  363. package/dist/profiles/types.d.ts +0 -48
  364. package/dist/profiles/types.js +0 -11
  365. package/dist/profiles/types.js.map +0 -1
  366. package/dist/profiles/unknown.d.ts +0 -9
  367. package/dist/profiles/unknown.js +0 -17
  368. package/dist/profiles/unknown.js.map +0 -1
  369. package/dist/reviewer/index.d.ts +0 -6
  370. package/dist/reviewer/index.js +0 -5
  371. package/dist/reviewer/index.js.map +0 -1
  372. package/dist/reviewer/prompt.d.ts +0 -11
  373. package/dist/reviewer/prompt.js +0 -132
  374. package/dist/reviewer/prompt.js.map +0 -1
  375. package/dist/reviewer/remediation.d.ts +0 -15
  376. package/dist/reviewer/remediation.js +0 -61
  377. package/dist/reviewer/remediation.js.map +0 -1
  378. package/dist/reviewer/reviewer.d.ts +0 -9
  379. package/dist/reviewer/reviewer.js +0 -89
  380. package/dist/reviewer/reviewer.js.map +0 -1
  381. package/dist/reviewer/schema.d.ts +0 -45
  382. package/dist/reviewer/schema.js +0 -43
  383. package/dist/reviewer/schema.js.map +0 -1
  384. package/dist/reviewer/types.d.ts +0 -74
  385. package/dist/reviewer/types.js +0 -14
  386. package/dist/reviewer/types.js.map +0 -1
  387. package/dist/sensors/attestation.d.ts +0 -44
  388. package/dist/sensors/attestation.js +0 -262
  389. package/dist/sensors/attestation.js.map +0 -1
  390. package/dist/sensors/catalog.d.ts +0 -41
  391. package/dist/sensors/catalog.js +0 -123
  392. package/dist/sensors/catalog.js.map +0 -1
  393. package/dist/sensors/decisions.d.ts +0 -30
  394. package/dist/sensors/decisions.js +0 -393
  395. package/dist/sensors/decisions.js.map +0 -1
  396. package/dist/sensors/diff.d.ts +0 -27
  397. package/dist/sensors/diff.js +0 -148
  398. package/dist/sensors/diff.js.map +0 -1
  399. package/dist/sensors/index.d.ts +0 -13
  400. package/dist/sensors/index.js +0 -9
  401. package/dist/sensors/index.js.map +0 -1
  402. package/dist/sensors/remediation.d.ts +0 -20
  403. package/dist/sensors/remediation.js +0 -65
  404. package/dist/sensors/remediation.js.map +0 -1
  405. package/dist/sensors/runner.d.ts +0 -44
  406. package/dist/sensors/runner.js +0 -95
  407. package/dist/sensors/runner.js.map +0 -1
  408. package/dist/sensors/structural.d.ts +0 -30
  409. package/dist/sensors/structural.js +0 -204
  410. package/dist/sensors/structural.js.map +0 -1
  411. package/dist/sensors/stub-catalog.d.ts +0 -39
  412. package/dist/sensors/stub-catalog.js +0 -115
  413. package/dist/sensors/stub-catalog.js.map +0 -1
  414. package/dist/sensors/types.d.ts +0 -135
  415. package/dist/sensors/types.js +0 -14
  416. package/dist/sensors/types.js.map +0 -1
  417. package/dist/tier0/classify.d.ts +0 -5
  418. package/dist/tier0/classify.js +0 -91
  419. package/dist/tier0/classify.js.map +0 -1
  420. package/dist/tier0/index.d.ts +0 -3
  421. package/dist/tier0/index.js +0 -3
  422. package/dist/tier0/index.js.map +0 -1
  423. package/dist/tier0/ollama.d.ts +0 -22
  424. package/dist/tier0/ollama.js +0 -63
  425. package/dist/tier0/ollama.js.map +0 -1
  426. package/dist/tier0/types.d.ts +0 -24
  427. package/dist/tier0/types.js +0 -7
  428. package/dist/tier0/types.js.map +0 -1
  429. package/dist/tightener/index.d.ts +0 -4
  430. package/dist/tightener/index.js +0 -4
  431. package/dist/tightener/index.js.map +0 -1
  432. package/dist/tightener/prompt.d.ts +0 -3
  433. package/dist/tightener/prompt.js +0 -67
  434. package/dist/tightener/prompt.js.map +0 -1
  435. package/dist/tightener/schema.d.ts +0 -68
  436. package/dist/tightener/schema.js +0 -44
  437. package/dist/tightener/schema.js.map +0 -1
  438. package/dist/tightener/tighten.d.ts +0 -2
  439. package/dist/tightener/tighten.js +0 -66
  440. package/dist/tightener/tighten.js.map +0 -1
  441. package/dist/tightener/types.d.ts +0 -74
  442. package/dist/tightener/types.js +0 -6
  443. package/dist/tightener/types.js.map +0 -1
  444. package/dist/uat/bundle.d.ts +0 -68
  445. package/dist/uat/bundle.js +0 -168
  446. package/dist/uat/bundle.js.map +0 -1
  447. package/dist/uat/index.d.ts +0 -15
  448. package/dist/uat/index.js +0 -10
  449. package/dist/uat/index.js.map +0 -1
  450. package/dist/uat/persistent.d.ts +0 -64
  451. package/dist/uat/persistent.js +0 -206
  452. package/dist/uat/persistent.js.map +0 -1
  453. package/dist/uat/probes/cli.d.ts +0 -11
  454. package/dist/uat/probes/cli.js +0 -107
  455. package/dist/uat/probes/cli.js.map +0 -1
  456. package/dist/uat/probes/http.d.ts +0 -12
  457. package/dist/uat/probes/http.js +0 -139
  458. package/dist/uat/probes/http.js.map +0 -1
  459. package/dist/uat/probes/index.d.ts +0 -21
  460. package/dist/uat/probes/index.js +0 -30
  461. package/dist/uat/probes/index.js.map +0 -1
  462. package/dist/uat/probes/integration.d.ts +0 -18
  463. package/dist/uat/probes/integration.js +0 -188
  464. package/dist/uat/probes/integration.js.map +0 -1
  465. package/dist/uat/probes/sql/config.d.ts +0 -14
  466. package/dist/uat/probes/sql/config.js +0 -57
  467. package/dist/uat/probes/sql/config.js.map +0 -1
  468. package/dist/uat/probes/sql/index.d.ts +0 -29
  469. package/dist/uat/probes/sql/index.js +0 -43
  470. package/dist/uat/probes/sql/index.js.map +0 -1
  471. package/dist/uat/probes/sql/mysql.d.ts +0 -12
  472. package/dist/uat/probes/sql/mysql.js +0 -96
  473. package/dist/uat/probes/sql/mysql.js.map +0 -1
  474. package/dist/uat/probes/sql/pg.d.ts +0 -20
  475. package/dist/uat/probes/sql/pg.js +0 -102
  476. package/dist/uat/probes/sql/pg.js.map +0 -1
  477. package/dist/uat/probes/sql/sqlite.d.ts +0 -9
  478. package/dist/uat/probes/sql/sqlite.js +0 -58
  479. package/dist/uat/probes/sql/sqlite.js.map +0 -1
  480. package/dist/uat/probes/sql/types.d.ts +0 -46
  481. package/dist/uat/probes/sql/types.js +0 -10
  482. package/dist/uat/probes/sql/types.js.map +0 -1
  483. package/dist/uat/probes/sql.d.ts +0 -9
  484. package/dist/uat/probes/sql.js +0 -119
  485. package/dist/uat/probes/sql.js.map +0 -1
  486. package/dist/uat/probes/ui.d.ts +0 -19
  487. package/dist/uat/probes/ui.js +0 -244
  488. package/dist/uat/probes/ui.js.map +0 -1
  489. package/dist/uat/prompt.d.ts +0 -10
  490. package/dist/uat/prompt.js +0 -85
  491. package/dist/uat/prompt.js.map +0 -1
  492. package/dist/uat/question.d.ts +0 -50
  493. package/dist/uat/question.js +0 -139
  494. package/dist/uat/question.js.map +0 -1
  495. package/dist/uat/rejection.d.ts +0 -58
  496. package/dist/uat/rejection.js +0 -163
  497. package/dist/uat/rejection.js.map +0 -1
  498. package/dist/uat/runner.d.ts +0 -6
  499. package/dist/uat/runner.js +0 -96
  500. package/dist/uat/runner.js.map +0 -1
  501. package/dist/uat/schema.d.ts +0 -322
  502. package/dist/uat/schema.js +0 -189
  503. package/dist/uat/schema.js.map +0 -1
  504. package/dist/uat/types.d.ts +0 -268
  505. package/dist/uat/types.js +0 -18
  506. package/dist/uat/types.js.map +0 -1
  507. package/dist/uat/uat.d.ts +0 -89
  508. package/dist/uat/uat.js +0 -256
  509. package/dist/uat/uat.js.map +0 -1
  510. package/dist/voice/index.d.ts +0 -4
  511. package/dist/voice/index.js +0 -4
  512. package/dist/voice/index.js.map +0 -1
  513. package/dist/voice/model.d.ts +0 -23
  514. package/dist/voice/model.js +0 -46
  515. package/dist/voice/model.js.map +0 -1
  516. package/dist/voice/pipe.d.ts +0 -9
  517. package/dist/voice/pipe.js +0 -47
  518. package/dist/voice/pipe.js.map +0 -1
  519. package/dist/voice/transcribe.d.ts +0 -3
  520. package/dist/voice/transcribe.js +0 -43
  521. package/dist/voice/transcribe.js.map +0 -1
  522. package/dist/voice/types.d.ts +0 -26
  523. package/dist/voice/types.js +0 -9
  524. package/dist/voice/types.js.map +0 -1
  525. package/dist/watch/daemon.d.ts +0 -21
  526. package/dist/watch/daemon.js +0 -143
  527. package/dist/watch/daemon.js.map +0 -1
  528. package/dist/watch/index.d.ts +0 -4
  529. package/dist/watch/index.js +0 -3
  530. package/dist/watch/index.js.map +0 -1
  531. package/dist/watch/regenerate.d.ts +0 -25
  532. package/dist/watch/regenerate.js +0 -51
  533. package/dist/watch/regenerate.js.map +0 -1
@@ -1,23 +0,0 @@
1
- import { Whisper } from "smart-whisper";
2
- /**
3
- * Whisper model spec is locked at L11: large-v3-turbo Q5_0. Hardcoded path
4
- * (operator hates env vars; only secrets/brand/domain go in env).
5
- *
6
- * Operator install:
7
- * brew install whisper-cpp
8
- * curl -L -o ~/.local/harness/models/ggml-large-v3-turbo-q5_0.bin \
9
- * "https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo-q5_0.bin?download=true"
10
- *
11
- * Phase 16 init script automates the curl.
12
- */
13
- export declare const WHISPER_MODEL_FILE = "ggml-large-v3-turbo-q5_0.bin";
14
- export declare const WHISPER_MODELS_DIR: string;
15
- export declare const WHISPER_MODEL_PATH: string;
16
- export declare function whisperModelExists(): boolean;
17
- /**
18
- * Lazy-singleton Whisper. smart-whisper's `offload` parameter offloads the
19
- * model from RAM after N idle seconds; loading on next call. Default 60s
20
- * keeps the model warm during a burst of voice notes.
21
- */
22
- export declare function getWhisper(): Whisper;
23
- export declare function freeWhisper(): Promise<void>;
@@ -1,46 +0,0 @@
1
- import { existsSync } from "node:fs";
2
- import { homedir } from "node:os";
3
- import { join } from "node:path";
4
- import { Whisper } from "smart-whisper";
5
- import { logger } from "../logger.js";
6
- const log = logger("voice.model");
7
- /**
8
- * Whisper model spec is locked at L11: large-v3-turbo Q5_0. Hardcoded path
9
- * (operator hates env vars; only secrets/brand/domain go in env).
10
- *
11
- * Operator install:
12
- * brew install whisper-cpp
13
- * curl -L -o ~/.local/harness/models/ggml-large-v3-turbo-q5_0.bin \
14
- * "https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo-q5_0.bin?download=true"
15
- *
16
- * Phase 16 init script automates the curl.
17
- */
18
- export const WHISPER_MODEL_FILE = "ggml-large-v3-turbo-q5_0.bin";
19
- export const WHISPER_MODELS_DIR = join(homedir(), ".local", "harness", "models");
20
- export const WHISPER_MODEL_PATH = join(WHISPER_MODELS_DIR, WHISPER_MODEL_FILE);
21
- export function whisperModelExists() {
22
- return existsSync(WHISPER_MODEL_PATH);
23
- }
24
- let _whisper;
25
- /**
26
- * Lazy-singleton Whisper. smart-whisper's `offload` parameter offloads the
27
- * model from RAM after N idle seconds; loading on next call. Default 60s
28
- * keeps the model warm during a burst of voice notes.
29
- */
30
- export function getWhisper() {
31
- if (_whisper)
32
- return _whisper;
33
- if (!whisperModelExists()) {
34
- throw new Error(`whisper model not found at ${WHISPER_MODEL_PATH} — run \`harness init\` or download manually`);
35
- }
36
- log.info({ path: WHISPER_MODEL_PATH }, "loading whisper model");
37
- _whisper = new Whisper(WHISPER_MODEL_PATH, { gpu: true, offload: 60 });
38
- return _whisper;
39
- }
40
- export async function freeWhisper() {
41
- if (_whisper) {
42
- await _whisper.free();
43
- _whisper = undefined;
44
- }
45
- }
46
- //# sourceMappingURL=model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/voice/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAElC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,8BAA8B,CAAC;AACjE,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACjF,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;AAE/E,MAAM,UAAU,kBAAkB;IAChC,OAAO,UAAU,CAAC,kBAAkB,CAAC,CAAC;AACxC,CAAC;AAED,IAAI,QAA6B,CAAC;AAElC;;;;GAIG;AACH,MAAM,UAAU,UAAU;IACxB,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,8BAA8B,kBAAkB,8CAA8C,CAC/F,CAAC;IACJ,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,uBAAuB,CAAC,CAAC;IAChE,QAAQ,GAAG,IAAI,OAAO,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IACvE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,QAAQ,GAAG,SAAS,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Pipe arbitrary audio bytes through ffmpeg → 16 kHz mono Float32 PCM.
3
- *
4
- * Audio bytes flow stdin→stdout; nothing touches disk (L12).
5
- *
6
- * `ffmpeg` must be on PATH. macOS: `brew install ffmpeg`. Phase 16 init
7
- * script verifies and prompts to install.
8
- */
9
- export declare function audioToPcm(audio: Buffer): Promise<Float32Array>;
@@ -1,47 +0,0 @@
1
- import { spawn } from "node:child_process";
2
- /**
3
- * Pipe arbitrary audio bytes through ffmpeg → 16 kHz mono Float32 PCM.
4
- *
5
- * Audio bytes flow stdin→stdout; nothing touches disk (L12).
6
- *
7
- * `ffmpeg` must be on PATH. macOS: `brew install ffmpeg`. Phase 16 init
8
- * script verifies and prompts to install.
9
- */
10
- export async function audioToPcm(audio) {
11
- return new Promise((resolve, reject) => {
12
- const ff = spawn("ffmpeg", [
13
- "-loglevel",
14
- "error",
15
- "-i",
16
- "pipe:0",
17
- "-ar",
18
- "16000",
19
- "-ac",
20
- "1",
21
- "-f",
22
- "f32le",
23
- "pipe:1",
24
- ]);
25
- const chunks = [];
26
- let stderr = "";
27
- ff.stdout.on("data", (chunk) => chunks.push(chunk));
28
- ff.stderr.on("data", (chunk) => {
29
- stderr += chunk.toString("utf8");
30
- });
31
- ff.on("error", (err) => reject(err));
32
- ff.on("close", (code) => {
33
- if (code !== 0) {
34
- reject(new Error(`ffmpeg exited ${code}: ${stderr.trim()}`));
35
- return;
36
- }
37
- const concat = Buffer.concat(chunks);
38
- // Float32Array requires a 4-byte-aligned ArrayBuffer; copy to ensure.
39
- const aligned = new ArrayBuffer(concat.length);
40
- new Uint8Array(aligned).set(concat);
41
- resolve(new Float32Array(aligned));
42
- });
43
- ff.stdin.write(audio);
44
- ff.stdin.end();
45
- });
46
- }
47
- //# sourceMappingURL=pipe.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipe.js","sourceRoot":"","sources":["../../src/voice/pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAa;IAC5C,OAAO,IAAI,OAAO,CAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnD,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE;YACzB,WAAW;YACX,OAAO;YACP,IAAI;YACJ,QAAQ;YACR,KAAK;YACL,OAAO;YACP,KAAK;YACL,GAAG;YACH,IAAI;YACJ,OAAO;YACP,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACrC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACtB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC7D,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrC,sEAAsE;YACtE,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { TranscribeOptions, TranscriptionResult } from "./types.js";
2
- export declare function transcribeBuffer(audio: Buffer, opts?: TranscribeOptions): Promise<TranscriptionResult>;
3
- export declare function transcribeUrl(attachmentUrl: string, opts?: TranscribeOptions): Promise<TranscriptionResult>;
@@ -1,43 +0,0 @@
1
- import { logger } from "../logger.js";
2
- import { getWhisper } from "./model.js";
3
- import { audioToPcm } from "./pipe.js";
4
- const log = logger("voice.transcribe");
5
- export async function transcribeBuffer(audio, opts = {}) {
6
- const startedAt = Date.now();
7
- const pcm = await audioToPcm(audio);
8
- const language = opts.language ?? "en";
9
- const whisper = getWhisper();
10
- const task = await whisper.transcribe(pcm, {
11
- language,
12
- format: "detail",
13
- no_timestamps: false,
14
- print_progress: false,
15
- print_realtime: false,
16
- print_special: false,
17
- print_timestamps: false,
18
- suppress_blank: true,
19
- ...(opts.initialPrompt !== undefined ? { initial_prompt: opts.initialPrompt } : {}),
20
- });
21
- const detailed = await task.result;
22
- const segments = detailed.map((d) => ({
23
- from: d.from,
24
- to: d.to,
25
- text: d.text.trim(),
26
- confidence: typeof d.confidence === "number" ? d.confidence : 0,
27
- }));
28
- const text = segments.map((s) => s.text).join(" ").trim();
29
- const avgLogprob = segments.length > 0
30
- ? segments.reduce((sum, s) => sum + s.confidence, 0) / segments.length
31
- : 0;
32
- const durationMs = Date.now() - startedAt;
33
- log.info({ chars: text.length, segments: segments.length, avgLogprob, durationMs }, "transcribed");
34
- return { text, avgLogprob, segments, language, durationMs };
35
- }
36
- export async function transcribeUrl(attachmentUrl, opts = {}) {
37
- const res = await fetch(attachmentUrl);
38
- if (!res.ok)
39
- throw new Error(`attachment fetch ${res.status} for ${attachmentUrl}`);
40
- const buf = Buffer.from(await res.arrayBuffer());
41
- return transcribeBuffer(buf, opts);
42
- }
43
- //# sourceMappingURL=transcribe.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transcribe.js","sourceRoot":"","sources":["../../src/voice/transcribe.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Voice transcription contract.
3
- *
4
- * Audio NEVER touches disk per L12. Buffers flow:
5
- * discord attachment → fetch → Buffer → ffmpeg pipe → Float32Array (16k mono)
6
- * → smart-whisper → TranscriptionResult.
7
- */
8
- export interface TranscriptionSegment {
9
- from: number;
10
- to: number;
11
- text: string;
12
- /** smart-whisper's "confidence" — average per-token probability. */
13
- confidence: number;
14
- }
15
- export interface TranscriptionResult {
16
- text: string;
17
- /** Average per-segment confidence. Used as `avg_logprob`-equivalent gate. */
18
- avgLogprob: number;
19
- segments: TranscriptionSegment[];
20
- language: string;
21
- durationMs: number;
22
- }
23
- export interface TranscribeOptions {
24
- language?: string;
25
- initialPrompt?: string;
26
- }
@@ -1,9 +0,0 @@
1
- /**
2
- * Voice transcription contract.
3
- *
4
- * Audio NEVER touches disk per L12. Buffers flow:
5
- * discord attachment → fetch → Buffer → ffmpeg pipe → Float32Array (16k mono)
6
- * → smart-whisper → TranscriptionResult.
7
- */
8
- export {};
9
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/voice/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -1,21 +0,0 @@
1
- import { type FSWatcher } from "chokidar";
2
- import type { Profile } from "../profiles/index.js";
3
- export interface DaemonOptions {
4
- projectName: string;
5
- repoRoot: string;
6
- /** Debounce milliseconds before triggering regen (default 500). */
7
- debounceMs?: number;
8
- /** Override profile (default: detected from repo). */
9
- profile?: Profile;
10
- /** Disable PID file (used by tests). */
11
- noPidFile?: boolean;
12
- }
13
- export interface DaemonHandle {
14
- watcher: FSWatcher;
15
- /** Force a regen immediately (ignores debounce). Resolves when complete. */
16
- flush: () => Promise<void>;
17
- /** Stop the watcher and remove the PID file. */
18
- stop: () => Promise<void>;
19
- }
20
- export declare function pidFilePath(projectName: string): string;
21
- export declare function startDaemon(opts: DaemonOptions): Promise<DaemonHandle>;
@@ -1,143 +0,0 @@
1
- import chokidar from "chokidar";
2
- import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
3
- import { dirname, relative, resolve } from "node:path";
4
- import { logger } from "../logger.js";
5
- import { projectStatePath } from "../mirror/index.js";
6
- import { selectProfile } from "../profiles/index.js";
7
- import { regenerateAll } from "./regenerate.js";
8
- const log = logger("watch.daemon");
9
- export function pidFilePath(projectName) {
10
- return resolve(projectStatePath(projectName), "watch.pid");
11
- }
12
- export async function startDaemon(opts) {
13
- const { projectName, repoRoot } = opts;
14
- const debounceMs = opts.debounceMs ?? 500;
15
- const profile = opts.profile ?? selectProfile(repoRoot);
16
- if (opts.noPidFile !== true) {
17
- writePidFile(projectName);
18
- }
19
- log.info({ projectName, repoRoot, profile: profile.id, debounceMs }, "daemon starting");
20
- // Initial sweep so manifest exists before any change events.
21
- await regenerateAll({ repoRoot, profile });
22
- const watcher = chokidar.watch(repoRoot, {
23
- ignored: (path) => isIgnored(path, repoRoot),
24
- ignoreInitial: true,
25
- awaitWriteFinish: { stabilityThreshold: 100, pollInterval: 30 },
26
- });
27
- let pendingChanges = new Set();
28
- let timer = null;
29
- let inFlight = null;
30
- const fire = async () => {
31
- timer = null;
32
- if (inFlight) {
33
- // Coalesce: if a regen is in flight, wait then re-fire if more accumulated.
34
- await inFlight;
35
- if (pendingChanges.size === 0)
36
- return;
37
- }
38
- const changedFiles = [...pendingChanges];
39
- pendingChanges = new Set();
40
- inFlight = (async () => {
41
- try {
42
- await regenerateAll({ repoRoot, profile, changedFiles });
43
- }
44
- catch (err) {
45
- log.error({ err: String(err) }, "regenerate failed");
46
- }
47
- })();
48
- await inFlight;
49
- inFlight = null;
50
- };
51
- const onChange = (path) => {
52
- const rel = relative(repoRoot, path).replace(/\\/g, "/");
53
- if (rel === "" || rel.startsWith(".."))
54
- return;
55
- pendingChanges.add(rel);
56
- if (timer)
57
- clearTimeout(timer);
58
- timer = setTimeout(() => {
59
- void fire();
60
- }, debounceMs);
61
- };
62
- watcher.on("add", onChange);
63
- watcher.on("change", onChange);
64
- watcher.on("unlink", onChange);
65
- const handle = {
66
- watcher,
67
- flush: async () => {
68
- if (timer) {
69
- clearTimeout(timer);
70
- timer = null;
71
- }
72
- await fire();
73
- },
74
- stop: async () => {
75
- if (timer)
76
- clearTimeout(timer);
77
- await watcher.close();
78
- if (opts.noPidFile !== true) {
79
- const path = pidFilePath(projectName);
80
- if (existsSync(path))
81
- unlinkSync(path);
82
- }
83
- log.info({ projectName }, "daemon stopped");
84
- },
85
- };
86
- log.info({ projectName, repoRoot }, "daemon ready");
87
- return handle;
88
- }
89
- function writePidFile(projectName) {
90
- const path = pidFilePath(projectName);
91
- mkdirSync(dirname(path), { recursive: true });
92
- if (existsSync(path)) {
93
- const otherPid = Number.parseInt(readFileSync(path, "utf8"), 10);
94
- if (Number.isFinite(otherPid) && isProcessAlive(otherPid)) {
95
- throw new Error(`harness watch already running for "${projectName}" (pid ${otherPid}). ` +
96
- "Stop the other process or remove the stale pid file.");
97
- }
98
- // Stale — overwrite.
99
- }
100
- writeFileSync(path, String(process.pid), "utf8");
101
- }
102
- function isProcessAlive(pid) {
103
- try {
104
- process.kill(pid, 0);
105
- return true;
106
- }
107
- catch {
108
- return false;
109
- }
110
- }
111
- function isIgnored(path, repoRoot) {
112
- const rel = relative(repoRoot, path).replace(/\\/g, "/");
113
- if (rel === "")
114
- return false;
115
- if (rel.startsWith(".."))
116
- return true;
117
- // Hot-path ignore — keep this list short. Heavier filtering in walk.ts.
118
- return (rel === ".git" ||
119
- rel.startsWith(".git/") ||
120
- rel === "node_modules" ||
121
- rel.startsWith("node_modules/") ||
122
- rel === ".pnpm-store" ||
123
- rel.startsWith(".pnpm-store/") ||
124
- rel === "dist" ||
125
- rel.startsWith("dist/") ||
126
- rel === ".next" ||
127
- rel.startsWith(".next/") ||
128
- rel === ".turbo" ||
129
- rel.startsWith(".turbo/") ||
130
- rel === ".harness/runs" ||
131
- rel.startsWith(".harness/runs/") ||
132
- rel === ".harness/inbox" ||
133
- rel.startsWith(".harness/inbox/") ||
134
- rel === ".harness/transcripts" ||
135
- rel.startsWith(".harness/transcripts/") ||
136
- rel === ".harness/staleness/log.jsonl" ||
137
- rel === ".harness/staleness/current.json" ||
138
- rel === ".harness/ground/manifest.yaml" ||
139
- rel === ".harness/ground/decisions/decisions.ledger.yaml" ||
140
- rel === ".harness/ground/invariants/invariants.ledger.yaml" ||
141
- rel === ".harness/ground/quality-grades.yaml");
142
- }
143
- //# sourceMappingURL=daemon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/watch/daemon.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export { regenerateAll } from "./regenerate.js";
2
- export type { RegenerateOptions, RegenerateResult } from "./regenerate.js";
3
- export { startDaemon, pidFilePath } from "./daemon.js";
4
- export type { DaemonHandle, DaemonOptions } from "./daemon.js";
@@ -1,3 +0,0 @@
1
- export { regenerateAll } from "./regenerate.js";
2
- export { startDaemon, pidFilePath } from "./daemon.js";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/watch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -1,25 +0,0 @@
1
- import type { Profile } from "../profiles/index.js";
2
- export interface RegenerateOptions {
3
- repoRoot: string;
4
- /** Override profile selection (used by tests). */
5
- profile?: Profile;
6
- /** Optional list of changed file paths (relative to repoRoot). When given,
7
- * profile extractors only fire if their watch globs match a change.
8
- * When undefined, every extractor fires (full sweep). */
9
- changedFiles?: string[];
10
- }
11
- export interface RegenerateResult {
12
- manifestPath: string;
13
- decisionsLedgerPath: string;
14
- invariantsLedgerPath: string;
15
- qualityGradesPath: string;
16
- extractorsRan: string[];
17
- }
18
- /**
19
- * Idempotent full regeneration of `.harness/ground/*` for the given repo.
20
- *
21
- * Generic outputs (manifest, ledgers, quality grades) are always written.
22
- * Profile-specific extractors fire only when their watch globs intersect
23
- * `changedFiles`, or always when `changedFiles` is undefined.
24
- */
25
- export declare function regenerateAll(opts: RegenerateOptions): Promise<RegenerateResult>;
@@ -1,51 +0,0 @@
1
- import { mkdirSync, writeFileSync } from "node:fs";
2
- import { dirname, join } from "node:path";
3
- import { logger } from "../logger.js";
4
- import { matchAnyGlob, writeDecisionsLedger, writeInvariantsLedger, writeManifest, writeQualityGrades, } from "../ground/index.js";
5
- import { selectProfile } from "../profiles/index.js";
6
- const log = logger("watch.regenerate");
7
- /**
8
- * Idempotent full regeneration of `.harness/ground/*` for the given repo.
9
- *
10
- * Generic outputs (manifest, ledgers, quality grades) are always written.
11
- * Profile-specific extractors fire only when their watch globs intersect
12
- * `changedFiles`, or always when `changedFiles` is undefined.
13
- */
14
- export async function regenerateAll(opts) {
15
- const { repoRoot } = opts;
16
- const profile = opts.profile ?? selectProfile(repoRoot);
17
- log.info({ repoRoot, profile: profile.id }, "regenerate start");
18
- const manifest = writeManifest({ repoRoot, generator: "harness-watch" });
19
- const decisions = writeDecisionsLedger({ repoRoot });
20
- const invariants = writeInvariantsLedger({ repoRoot });
21
- const quality = writeQualityGrades({ repoRoot });
22
- const extractorsRan = [];
23
- for (const extractor of profile.extractors) {
24
- const triggered = opts.changedFiles === undefined ||
25
- opts.changedFiles.some((p) => matchAnyGlob(p, extractor.watch));
26
- if (!triggered)
27
- continue;
28
- try {
29
- const content = await extractor.run({ repoRoot });
30
- if (content === null)
31
- continue;
32
- const out = join(repoRoot, extractor.outputRelPath);
33
- mkdirSync(dirname(out), { recursive: true });
34
- writeFileSync(out, content, "utf8");
35
- extractorsRan.push(extractor.id);
36
- log.debug({ extractor: extractor.id, out }, "extractor wrote artifact");
37
- }
38
- catch (err) {
39
- log.warn({ extractor: extractor.id, err: String(err) }, "extractor failed");
40
- }
41
- }
42
- log.info({ repoRoot, profile: profile.id, files: manifest.manifest.files.length, extractorsRan }, "regenerate complete");
43
- return {
44
- manifestPath: manifest.path,
45
- decisionsLedgerPath: decisions.path,
46
- invariantsLedgerPath: invariants.path,
47
- qualityGradesPath: quality.path,
48
- extractorsRan,
49
- };
50
- }
51
- //# sourceMappingURL=regenerate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"regenerate.js","sourceRoot":"","sources":["../../src/watch/regenerate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,GAAG,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAoBvC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAuB;IACzD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxD,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAC;IAEhE,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,oBAAoB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,kBAAkB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEjD,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3C,MAAM,SAAS,GACb,IAAI,CAAC,YAAY,KAAK,SAAS;YAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS;YAAE,SAAS;QACzB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YAClD,IAAI,OAAO,KAAK,IAAI;gBAAE,SAAS;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;YACpD,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACpC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACjC,GAAG,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,0BAA0B,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAI,CACN,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,EACvF,qBAAqB,CACtB,CAAC;IAEF,OAAO;QACL,YAAY,EAAE,QAAQ,CAAC,IAAI;QAC3B,mBAAmB,EAAE,SAAS,CAAC,IAAI;QACnC,oBAAoB,EAAE,UAAU,CAAC,IAAI;QACrC,iBAAiB,EAAE,OAAO,CAAC,IAAI;QAC/B,aAAa;KACd,CAAC;AACJ,CAAC"}