@isaacriehm/cairn 0.1.0 → 0.1.3

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,52 +0,0 @@
1
- /**
2
- * Subprocess wrapper for the `claude` CLI.
3
- *
4
- * Per L42 + operator answer T1: every Tier-1/2/3 LLM call goes through the
5
- * operator's Claude Code coding-plan subscription via `claude --print
6
- * --model <tier> --output-format json`. No direct Anthropic SDK calls.
7
- *
8
- * Tier mapping is hardcoded (no env vars per operator profile). The CLI's
9
- * model alias resolution maps `haiku|sonnet|opus` to the latest model id
10
- * for that family — we don't pin specific snapshots here so the wrapper
11
- * keeps tracking newer models as Anthropic ships them.
12
- */
13
- export type ClaudeTier = "haiku" | "sonnet" | "opus";
14
- export interface RunClaudeOptions {
15
- tier: ClaudeTier;
16
- /** User prompt — sent on stdin so it can be arbitrary length. */
17
- prompt: string;
18
- /** Optional system prompt override (replaces default Claude Code system). */
19
- system?: string;
20
- /**
21
- * Optional JSON Schema for structured output. When provided, the CLI
22
- * enforces the shape and the wrapper parses + returns under `parsed`.
23
- */
24
- jsonSchema?: object;
25
- /** Working directory for the subprocess. Default = process.cwd(). */
26
- cwd?: string;
27
- /** Hard timeout in ms. Default 120000. */
28
- timeoutMs?: number;
29
- /**
30
- * Extra CLI flags. Useful for `--add-dir`, `--disable-slash-commands`,
31
- * etc. when the caller knows what they want.
32
- */
33
- extraArgs?: string[];
34
- }
35
- export interface ClaudeUsage {
36
- input_tokens?: number;
37
- output_tokens?: number;
38
- cache_creation_input_tokens?: number;
39
- cache_read_input_tokens?: number;
40
- }
41
- export interface RunClaudeResult {
42
- text: string;
43
- /** Parsed JSON when `jsonSchema` was set. */
44
- parsed?: unknown;
45
- durationMs: number;
46
- tier: ClaudeTier;
47
- model: string;
48
- /** Raw JSON envelope from `--output-format json`. */
49
- envelope?: Record<string, unknown>;
50
- /** Usage stats lifted from the envelope when present. */
51
- usage?: ClaudeUsage;
52
- }
@@ -1,14 +0,0 @@
1
- /**
2
- * Subprocess wrapper for the `claude` CLI.
3
- *
4
- * Per L42 + operator answer T1: every Tier-1/2/3 LLM call goes through the
5
- * operator's Claude Code coding-plan subscription via `claude --print
6
- * --model <tier> --output-format json`. No direct Anthropic SDK calls.
7
- *
8
- * Tier mapping is hardcoded (no env vars per operator profile). The CLI's
9
- * model alias resolution maps `haiku|sonnet|opus` to the latest model id
10
- * for that family — we don't pin specific snapshots here so the wrapper
11
- * keeps tracking newer models as Anthropic ships them.
12
- */
13
- export {};
14
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/claude/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
@@ -1,54 +0,0 @@
1
- /**
2
- * `harness daemon` — single supervisor process.
3
- *
4
- * Spawns and supervises three things in one cohesive long-lived process:
5
- * 1. `harness watch --project <slug>` — grounding daemon (chokidar)
6
- * 2. `harness run --project <slug> --frontend <adapters>` — orchestrator
7
- * + frontend adapters (Discord by default)
8
- * 3. periodic `harness gc run --apply-classes safe` — nightly cleanup
9
- * (runs once on start + every 24h)
10
- *
11
- * Both child processes restart on crash with exponential backoff
12
- * (1s → 2s → 4s, capped at 60s; reset on a clean run > 30s). All output
13
- * tees into ~/.local/harness/logs/<slug>.{watch,run,gc}.log so launchd /
14
- * journalctl users have a single tail target.
15
- *
16
- * SIGINT / SIGTERM cleanly stop both children + the gc cron, then exit.
17
- *
18
- * Used by `harness install` (launchd plist) so a friend can `harness
19
- * install --project myapp` once and have everything come up on every
20
- * reboot under one supervised process — no tmux / two-terminal dance.
21
- */
22
- export type SupervisorEvent = {
23
- kind: "started";
24
- child: "watch" | "run";
25
- } | {
26
- kind: "exited";
27
- child: "watch" | "run";
28
- code: number | null;
29
- signal: NodeJS.Signals | null;
30
- } | {
31
- kind: "restart-scheduled";
32
- child: "watch" | "run";
33
- delayMs: number;
34
- } | {
35
- kind: "gc-tick";
36
- ok: boolean;
37
- durationMs: number;
38
- } | {
39
- kind: "stopped";
40
- };
41
- export declare function daemonCli(argv: string[]): Promise<void>;
42
- /** Test seam — start a supervisor with custom event hook + return stop fn. */
43
- export declare function startSupervisorForTest(args: {
44
- project: string;
45
- frontends: string;
46
- logDir: string;
47
- harnessBin: string;
48
- nodeBin: string;
49
- onEvent: (event: SupervisorEvent) => void;
50
- gcIntervalSec?: number | null;
51
- once?: boolean;
52
- }): Promise<{
53
- stop: () => Promise<void>;
54
- }>;
@@ -1,351 +0,0 @@
1
- /**
2
- * `harness daemon` — single supervisor process.
3
- *
4
- * Spawns and supervises three things in one cohesive long-lived process:
5
- * 1. `harness watch --project <slug>` — grounding daemon (chokidar)
6
- * 2. `harness run --project <slug> --frontend <adapters>` — orchestrator
7
- * + frontend adapters (Discord by default)
8
- * 3. periodic `harness gc run --apply-classes safe` — nightly cleanup
9
- * (runs once on start + every 24h)
10
- *
11
- * Both child processes restart on crash with exponential backoff
12
- * (1s → 2s → 4s, capped at 60s; reset on a clean run > 30s). All output
13
- * tees into ~/.local/harness/logs/<slug>.{watch,run,gc}.log so launchd /
14
- * journalctl users have a single tail target.
15
- *
16
- * SIGINT / SIGTERM cleanly stop both children + the gc cron, then exit.
17
- *
18
- * Used by `harness install` (launchd plist) so a friend can `harness
19
- * install --project myapp` once and have everything come up on every
20
- * reboot under one supervised process — no tmux / two-terminal dance.
21
- */
22
- import { spawn } from "node:child_process";
23
- import { mkdirSync, openSync, writeSync, closeSync } from "node:fs";
24
- import { homedir } from "node:os";
25
- import { resolve } from "node:path";
26
- import { defaultStatusJson, logger, normalizeProjectName, writeStatusJsonForSlug, } from "@devplusllc/harness-core";
27
- const log = logger("cli.daemon");
28
- function parseArgs(argv) {
29
- const positional = [];
30
- const flags = {};
31
- for (let i = 0; i < argv.length; i++) {
32
- const arg = argv[i];
33
- if (arg === undefined)
34
- continue;
35
- if (arg.startsWith("--")) {
36
- const key = arg.slice(2);
37
- const next = argv[i + 1];
38
- if (next !== undefined && !next.startsWith("--")) {
39
- flags[key] = next;
40
- i += 1;
41
- }
42
- else {
43
- flags[key] = true;
44
- }
45
- }
46
- else {
47
- positional.push(arg);
48
- }
49
- }
50
- return { positional, flags };
51
- }
52
- function usage() {
53
- console.error("Usage: harness daemon --project <slug> [options]\n" +
54
- " --project project slug (required)\n" +
55
- " --frontend adapter list for `harness run` (default: discord)\n" +
56
- " --gc-interval seconds between gc passes (default: 86400 = 24h)\n" +
57
- " --no-gc disable the periodic gc tick\n" +
58
- " --log-dir override log dir (default: ~/.local/harness/logs)\n" +
59
- " --once run children once + exit when both die (no restart)\n" +
60
- "\n" +
61
- "Single supervised process running watch + run + nightly gc. Logs to\n" +
62
- "<log-dir>/<slug>.{watch,run,gc}.log. SIGINT/SIGTERM stops everything.");
63
- process.exit(1);
64
- }
65
- const RESET_BACKOFF_AFTER_MS = 30_000;
66
- const MAX_BACKOFF_MS = 60_000;
67
- function openLog(dir, slug, label) {
68
- mkdirSync(dir, { recursive: true });
69
- return openSync(resolve(dir, `${slug}.${label}.log`), "a");
70
- }
71
- function writeLine(fd, line) {
72
- try {
73
- writeSync(fd, `${line}\n`);
74
- }
75
- catch {
76
- // best-effort
77
- }
78
- }
79
- function spawnChild(child, shared) {
80
- const proc = spawn(shared.nodeBin, [shared.harnessBin, ...child.args], {
81
- stdio: ["ignore", "pipe", "pipe"],
82
- env: process.env,
83
- });
84
- child.proc = proc;
85
- child.startedAt = Date.now();
86
- proc.stdout.on("data", (chunk) => {
87
- writeSync(child.logFd, chunk);
88
- });
89
- proc.stderr.on("data", (chunk) => {
90
- writeSync(child.logFd, chunk);
91
- });
92
- writeLine(child.logFd, `\n── [supervisor] ${new Date().toISOString()} spawned ${child.name} (pid ${proc.pid})`);
93
- }
94
- async function supervise(args) {
95
- const watchLogFd = openLog(args.logDir, args.project, "watch");
96
- const runLogFd = openLog(args.logDir, args.project, "run");
97
- const gcLogFd = openLog(args.logDir, args.project, "gc");
98
- const supervisorLogFd = openLog(args.logDir, args.project, "supervisor");
99
- writeLine(supervisorLogFd, `── ${new Date().toISOString()} supervisor start · project=${args.project} · frontends=${args.frontends}`);
100
- // Initialise status.json with a complete default — Claude Code's
101
- // `harness status-line` reader does strict shape validation, so a partial
102
- // patch on first start would render as the placeholder "daemon:down".
103
- // Best-effort write; status line is cosmetic.
104
- try {
105
- writeStatusJsonForSlug(args.project, defaultStatusJson(true));
106
- }
107
- catch (err) {
108
- log.warn({ err: String(err) }, "initial status.json write failed");
109
- }
110
- const children = [
111
- {
112
- name: "watch",
113
- args: ["watch", "--project", args.project],
114
- proc: undefined,
115
- backoffMs: 1000,
116
- startedAt: 0,
117
- stopped: false,
118
- logFd: watchLogFd,
119
- },
120
- {
121
- name: "run",
122
- args: [
123
- "run",
124
- "--project",
125
- args.project,
126
- "--frontend",
127
- args.frontends,
128
- ],
129
- proc: undefined,
130
- backoffMs: 1000,
131
- startedAt: 0,
132
- stopped: false,
133
- logFd: runLogFd,
134
- },
135
- ];
136
- let stopRequested = false;
137
- let gcTimer;
138
- let heartbeat;
139
- const stopChild = async (child) => {
140
- child.stopped = true;
141
- if (child.proc !== undefined && child.proc.exitCode === null) {
142
- try {
143
- child.proc.kill("SIGTERM");
144
- }
145
- catch {
146
- // best-effort
147
- }
148
- // Give it 10s grace then SIGKILL.
149
- await new Promise((res) => {
150
- const grace = setTimeout(() => {
151
- if (child.proc !== undefined && child.proc.exitCode === null) {
152
- try {
153
- child.proc.kill("SIGKILL");
154
- }
155
- catch {
156
- // best-effort
157
- }
158
- }
159
- res();
160
- }, 10_000);
161
- child.proc?.once("exit", () => {
162
- clearTimeout(grace);
163
- res();
164
- });
165
- });
166
- }
167
- };
168
- const stopAll = async () => {
169
- if (stopRequested)
170
- return;
171
- stopRequested = true;
172
- if (gcTimer !== undefined)
173
- clearInterval(gcTimer);
174
- if (heartbeat !== undefined)
175
- clearInterval(heartbeat);
176
- writeLine(supervisorLogFd, `── ${new Date().toISOString()} stop signal received`);
177
- await Promise.all(children.map((c) => stopChild(c)));
178
- // Mark the status file so Claude Code's status line shows "down" before
179
- // the LaunchAgent (or operator) restarts us.
180
- try {
181
- writeStatusJsonForSlug(args.project, {
182
- daemon_alive: false,
183
- updated_at: new Date().toISOString(),
184
- });
185
- }
186
- catch {
187
- // best-effort
188
- }
189
- writeLine(supervisorLogFd, `── ${new Date().toISOString()} supervisor exit`);
190
- args.onEvent?.({ kind: "stopped" });
191
- closeSync(watchLogFd);
192
- closeSync(runLogFd);
193
- closeSync(gcLogFd);
194
- closeSync(supervisorLogFd);
195
- };
196
- process.on("SIGINT", () => {
197
- void stopAll().then(() => process.exit(0));
198
- });
199
- process.on("SIGTERM", () => {
200
- void stopAll().then(() => process.exit(0));
201
- });
202
- const launch = (child) => {
203
- if (child.stopped || stopRequested)
204
- return;
205
- spawnChild(child, { nodeBin: args.nodeBin, harnessBin: args.harnessBin });
206
- args.onEvent?.({ kind: "started", child: child.name });
207
- log.info({ child: child.name, pid: child.proc?.pid, args: child.args }, "child spawned");
208
- child.proc?.once("exit", (code, signal) => {
209
- writeLine(child.logFd, `── [supervisor] ${new Date().toISOString()} ${child.name} exited code=${code ?? "null"} signal=${signal ?? "null"}`);
210
- args.onEvent?.({
211
- kind: "exited",
212
- child: child.name,
213
- code,
214
- signal,
215
- });
216
- log.warn({ child: child.name, code, signal }, "child exited");
217
- if (child.stopped || stopRequested)
218
- return;
219
- if (args.once)
220
- return;
221
- const ranLong = Date.now() - child.startedAt > RESET_BACKOFF_AFTER_MS;
222
- if (ranLong)
223
- child.backoffMs = 1000;
224
- const delay = child.backoffMs;
225
- child.backoffMs = Math.min(child.backoffMs * 2, MAX_BACKOFF_MS);
226
- args.onEvent?.({
227
- kind: "restart-scheduled",
228
- child: child.name,
229
- delayMs: delay,
230
- });
231
- writeLine(child.logFd, `── [supervisor] ${new Date().toISOString()} ${child.name} restart in ${delay}ms`);
232
- setTimeout(() => launch(child), delay);
233
- });
234
- };
235
- for (const c of children)
236
- launch(c);
237
- // Heartbeat — refresh `updated_at` every 30s so a crashed-without-shutdown
238
- // daemon eventually appears stale to readers that check timestamp drift.
239
- heartbeat = setInterval(() => {
240
- try {
241
- writeStatusJsonForSlug(args.project, {
242
- daemon_alive: true,
243
- updated_at: new Date().toISOString(),
244
- });
245
- }
246
- catch {
247
- // best-effort
248
- }
249
- }, 30_000);
250
- // Allow process to exit if everything else is done — heartbeat shouldn't
251
- // hold the event loop open on its own.
252
- heartbeat.unref();
253
- // Periodic GC tick.
254
- if (args.gcIntervalSec !== null) {
255
- const runGc = async () => {
256
- const startedAt = Date.now();
257
- writeLine(gcLogFd, `── ${new Date().toISOString()} gc tick start`);
258
- try {
259
- await new Promise((res, rej) => {
260
- const proc = spawn(args.nodeBin, [
261
- args.harnessBin,
262
- "gc",
263
- "run",
264
- "--apply-classes",
265
- "safe",
266
- "--repo-root",
267
- process.cwd(),
268
- ], { stdio: ["ignore", "pipe", "pipe"], env: process.env });
269
- proc.stdout.on("data", (chunk) => writeSync(gcLogFd, chunk));
270
- proc.stderr.on("data", (chunk) => writeSync(gcLogFd, chunk));
271
- proc.on("exit", (code) => {
272
- if (code === 0)
273
- res();
274
- else
275
- rej(new Error(`gc exited ${code}`));
276
- });
277
- proc.on("error", rej);
278
- });
279
- const dur = Date.now() - startedAt;
280
- writeLine(gcLogFd, `── gc tick OK (${dur}ms)`);
281
- args.onEvent?.({ kind: "gc-tick", ok: true, durationMs: dur });
282
- }
283
- catch (err) {
284
- const dur = Date.now() - startedAt;
285
- writeLine(gcLogFd, `── gc tick FAIL (${dur}ms): ${String(err)}`);
286
- args.onEvent?.({ kind: "gc-tick", ok: false, durationMs: dur });
287
- }
288
- };
289
- // Fire once on start (after a 60s warmup so children are settled).
290
- setTimeout(() => void runGc(), 60_000);
291
- gcTimer = setInterval(() => void runGc(), args.gcIntervalSec * 1000);
292
- }
293
- }
294
- export async function daemonCli(argv) {
295
- const { flags } = parseArgs(argv);
296
- if (flags["help"] === true || flags["h"] === true)
297
- usage();
298
- const slugRaw = typeof flags["project"] === "string" ? flags["project"] : "";
299
- if (slugRaw.length === 0) {
300
- console.error("harness daemon: --project required\n");
301
- usage();
302
- }
303
- const project = normalizeProjectName(slugRaw);
304
- const frontends = typeof flags["frontend"] === "string" ? flags["frontend"] : "discord";
305
- const logDir = typeof flags["log-dir"] === "string"
306
- ? resolve(flags["log-dir"])
307
- : resolve(homedir(), ".local", "harness", "logs");
308
- const once = flags["once"] === true;
309
- const gcIntervalSec = flags["no-gc"] === true
310
- ? null
311
- : typeof flags["gc-interval"] === "string"
312
- ? Math.max(60, Number.parseInt(flags["gc-interval"], 10) || 86400)
313
- : 86400;
314
- // Resolve the harness CLI binary path. In normal operation argv[1] is the
315
- // dist/cli/index.js file or a node_modules/.bin shim. We re-invoke it with
316
- // the same node binary for cross-platform consistency.
317
- const harnessBin = resolve(process.argv[1] ?? "");
318
- const nodeBin = process.execPath;
319
- await supervise({
320
- project,
321
- frontends,
322
- logDir,
323
- once,
324
- gcIntervalSec,
325
- harnessBin,
326
- nodeBin,
327
- });
328
- }
329
- /** Test seam — start a supervisor with custom event hook + return stop fn. */
330
- export async function startSupervisorForTest(args) {
331
- let stopFn = async () => { };
332
- await supervise({
333
- ...args,
334
- once: args.once ?? false,
335
- gcIntervalSec: args.gcIntervalSec ?? null,
336
- onEvent: (e) => {
337
- args.onEvent(e);
338
- if (e.kind === "stopped") {
339
- // noop — actual stop fn drives this
340
- }
341
- },
342
- });
343
- // We can't easily expose the real stop without restructuring supervise.
344
- // For test-time, send SIGTERM to ourselves is not appropriate. Instead,
345
- // surface a kill helper via process events.
346
- stopFn = async () => {
347
- process.emit("SIGTERM");
348
- };
349
- return { stop: stopFn };
350
- }
351
- //# sourceMappingURL=daemon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/cli/daemon.ts"],"names":[],"mappings":"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"}
@@ -1,52 +0,0 @@
1
- /**
2
- * `harness install` — register the daemon as a launchd LaunchAgent (macOS).
3
- *
4
- * Generates `~/Library/LaunchAgents/com.devplusllc.harness.<slug>.plist`
5
- * pointing at `harness daemon --project <slug>`, then `launchctl load`s it.
6
- * After install, the daemon survives reboot, restarts on crash (RunAtLoad
7
- * + KeepAlive), and tees stdout/stderr into
8
- * `~/.local/harness/logs/<slug>.supervisor.log`.
9
- *
10
- * Subcommands:
11
- * install <slug> write plist + launchctl load
12
- * uninstall <slug> launchctl unload + remove plist
13
- * status <slug> launchctl list status + plist path
14
- * restart <slug> unload + load
15
- *
16
- * Linux operators: use systemd unit instead (not bundled here yet — the
17
- * operator's stated workflow is macOS Claude Code + Discord).
18
- *
19
- * Friends adopting the harness via private GitHub install:
20
- * npm install github:<you>/harness#<sha>
21
- * cd ~/their-app
22
- * npx harness init . --force
23
- * npx harness install
24
- * # done — survives reboot
25
- */
26
- interface PlistOptions {
27
- project: string;
28
- /** Working directory the daemon runs in — usually the adopted project root. */
29
- workingDirectory: string;
30
- /** Adapter list. Default "discord". */
31
- frontends: string;
32
- /** When true, pass --no-gc to the daemon. */
33
- noGc: boolean;
34
- /** Override log dir. Default ~/.local/harness/logs. */
35
- logDir: string;
36
- /** Resolved absolute path to harness CLI script. */
37
- harnessBin: string;
38
- /** Node binary path. */
39
- nodeBin: string;
40
- /** Override PATH the daemon inherits. Default: process.env.PATH. */
41
- pathEnv: string;
42
- }
43
- export interface PlistResult {
44
- label: string;
45
- plistPath: string;
46
- /** XML body that was written. */
47
- body: string;
48
- }
49
- export declare function buildLaunchdPlist(opts: PlistOptions): PlistResult;
50
- export declare function launchdPlistPathFor(label: string): string;
51
- export declare function installCli(argv: string[]): Promise<void>;
52
- export {};