@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,80 +0,0 @@
1
- import { existsSync, readFileSync, statSync } from "node:fs";
2
- import { join } from "node:path";
3
- import { groundDir, manifestPath, qualityGradesPath, } from "../../ground/index.js";
4
- import { mcpError } from "../errors.js";
5
- import { groundGetInput } from "../schemas.js";
6
- async function handler(ctx, input) {
7
- const root = groundDir(ctx.repoRoot);
8
- switch (input.category) {
9
- case "manifest": {
10
- const path = manifestPath(ctx.repoRoot);
11
- if (!existsSync(path)) {
12
- return mcpError("FILE_NOT_FOUND", "manifest.yaml not present (daemon not run yet?)");
13
- }
14
- return { path: ".harness/ground/manifest.yaml", content: readFileSync(path, "utf8") };
15
- }
16
- case "quality_grades": {
17
- const path = qualityGradesPath(ctx.repoRoot);
18
- if (!existsSync(path)) {
19
- return mcpError("FILE_NOT_FOUND", "quality-grades.yaml not present (daemon not run yet?)");
20
- }
21
- return { path: ".harness/ground/quality-grades.yaml", content: readFileSync(path, "utf8") };
22
- }
23
- case "glossary": {
24
- const path = join(root, "glossary.md");
25
- if (!existsSync(path)) {
26
- return mcpError("FILE_NOT_FOUND", "glossary.md not present");
27
- }
28
- return { path: ".harness/ground/glossary.md", content: readFileSync(path, "utf8") };
29
- }
30
- case "schema":
31
- case "routes":
32
- case "events": {
33
- const dir = join(root, input.category);
34
- if (!existsSync(dir) || !statSync(dir).isDirectory()) {
35
- return mcpError("FILE_NOT_FOUND", `${input.category}/ extracts not present (no profile extractor for this stack?)`);
36
- }
37
- if (input.key !== undefined) {
38
- const candidate = join(dir, `${input.key}.md`);
39
- const fallback = join(dir, `${input.key}.yaml`);
40
- const target = existsSync(candidate)
41
- ? candidate
42
- : existsSync(fallback)
43
- ? fallback
44
- : null;
45
- if (!target) {
46
- return mcpError("FILE_NOT_FOUND", `No ${input.category} entry for key "${input.key}"`);
47
- }
48
- return {
49
- path: `.harness/ground/${input.category}/${input.key}${target.endsWith(".yaml") ? ".yaml" : ".md"}`,
50
- content: readFileSync(target, "utf8"),
51
- };
52
- }
53
- // No key — return the directory listing.
54
- return {
55
- path: `.harness/ground/${input.category}/`,
56
- listing: readDirShallow(dir),
57
- };
58
- }
59
- }
60
- }
61
- function readDirShallow(dir) {
62
- try {
63
- return [
64
- ...new Set(require("node:fs")
65
- .readdirSync(dir, { withFileTypes: true, encoding: "utf8" })
66
- .filter((d) => d.isFile())
67
- .map((d) => d.name)),
68
- ];
69
- }
70
- catch {
71
- return [];
72
- }
73
- }
74
- export const groundGetTool = {
75
- name: "harness_ground_get",
76
- description: "Read a generated ground extract. Categories: schema | routes | events | quality_grades | glossary | manifest. `key` narrows within a category (e.g., schema → table name).",
77
- inputSchema: groundGetInput,
78
- handler,
79
- };
80
- //# sourceMappingURL=ground-get.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ground-get.js","sourceRoot":"","sources":["../../../src/mcp/tools/ground-get.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { ToolDef } from "./types.js";
2
- export declare const allTools: ToolDef<unknown>[];
3
- export type { ToolDef };
@@ -1,44 +0,0 @@
1
- import { appendTool } from "./append.js";
2
- import { archiveTool } from "./archive.js";
3
- import { askOperatorTool } from "./ask-operator.js";
4
- import { canonicalForTopicTool } from "./canonical-for-topic.js";
5
- import { decisionGetTool } from "./decision-get.js";
6
- import { decisionsForSymbolTool } from "./decisions-for-symbol.js";
7
- import { decisionsInScopeTool } from "./decisions-in-scope.js";
8
- import { dropTaskTool } from "./drop-task.js";
9
- import { getFullTool } from "./get-full.js";
10
- import { groundGetTool } from "./ground-get.js";
11
- import { invariantGetTool } from "./invariant-get.js";
12
- import { invariantsInScopeTool } from "./invariants-in-scope.js";
13
- import { queryHistoryTool } from "./query-history.js";
14
- import { recordDecisionTool } from "./record-decision.js";
15
- import { recordRunEventTool } from "./record-run-event.js";
16
- import { searchTool } from "./search.js";
17
- import { supersedesChainTool } from "./supersedes-chain.js";
18
- import { timelineTool } from "./timeline.js";
19
- export const allTools = [
20
- // Read — graph traversal
21
- decisionGetTool,
22
- decisionsInScopeTool,
23
- decisionsForSymbolTool,
24
- canonicalForTopicTool,
25
- groundGetTool,
26
- supersedesChainTool,
27
- invariantGetTool,
28
- invariantsInScopeTool,
29
- // Read — 3-layer progressive
30
- searchTool,
31
- timelineTool,
32
- getFullTool,
33
- // Read — historical (gated)
34
- queryHistoryTool,
35
- // Write
36
- appendTool,
37
- recordDecisionTool,
38
- recordRunEventTool,
39
- dropTaskTool,
40
- archiveTool,
41
- // Operator dialog
42
- askOperatorTool,
43
- ];
44
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,CAAC,MAAM,QAAQ,GAAuB;IAC1C,yBAAyB;IACzB,eAAmC;IACnC,oBAAwC;IACxC,sBAA0C;IAC1C,qBAAyC;IACzC,aAAiC;IACjC,mBAAuC;IACvC,gBAAoC;IACpC,qBAAyC;IACzC,6BAA6B;IAC7B,UAA8B;IAC9B,YAAgC;IAChC,WAA+B;IAC/B,4BAA4B;IAC5B,gBAAoC;IACpC,QAAQ;IACR,UAA8B;IAC9B,kBAAsC;IACtC,kBAAsC;IACtC,YAAgC;IAChC,WAA+B;IAC/B,kBAAkB;IAClB,eAAmC;CACpC,CAAC"}
@@ -1,6 +0,0 @@
1
- import type { ToolDef } from "./types.js";
2
- interface Input {
3
- id: string;
4
- }
5
- export declare const invariantGetTool: ToolDef<Input>;
6
- export {};
@@ -1,49 +0,0 @@
1
- import { existsSync, readdirSync, readFileSync } from "node:fs";
2
- import { join } from "node:path";
3
- import { invariantsDir, parseFrontmatter } from "../../ground/index.js";
4
- import { InvariantFrontmatter } from "../../ground/index.js";
5
- import { mcpError } from "../errors.js";
6
- import { invariantGetInput } from "../schemas.js";
7
- async function handler(ctx, input) {
8
- const dir = invariantsDir(ctx.repoRoot);
9
- if (!existsSync(dir)) {
10
- return mcpError("INVARIANT_NOT_FOUND", `No invariants directory`);
11
- }
12
- for (const entry of readdirSync(dir, { withFileTypes: true, encoding: "utf8" })) {
13
- if (!entry.isFile() || !entry.name.endsWith(".md"))
14
- continue;
15
- const parsed = parseFrontmatter(readFileSync(join(dir, entry.name), "utf8"));
16
- const fm = InvariantFrontmatter.safeParse(parsed.frontmatter);
17
- if (!fm.success)
18
- continue;
19
- if (fm.data.id !== input.id)
20
- continue;
21
- return {
22
- id: fm.data.id,
23
- title: fm.data.title,
24
- status: fm.data.status ?? "active",
25
- ...(fm.data.source_run !== undefined ? { source_run: fm.data.source_run } : {}),
26
- ...(fm.data.source_decision !== undefined
27
- ? { source_decision: fm.data.source_decision }
28
- : {}),
29
- ...(fm.data.introduced_for_bug !== undefined
30
- ? { introduced_for_bug: fm.data.introduced_for_bug }
31
- : {}),
32
- ...(fm.data.sensor !== undefined ? { sensor: fm.data.sensor } : {}),
33
- ...(fm.data.e2e !== undefined ? { e2e: fm.data.e2e } : {}),
34
- ...(fm.data.naming_convention !== undefined
35
- ? { naming_convention: fm.data.naming_convention }
36
- : {}),
37
- ...(fm.data.superseded_by !== undefined ? { superseded_by: fm.data.superseded_by } : {}),
38
- body_markdown: parsed.body,
39
- };
40
- }
41
- return mcpError("INVARIANT_NOT_FOUND", `No invariant with id ${input.id}`);
42
- }
43
- export const invariantGetTool = {
44
- name: "harness_invariant_get",
45
- description: "Returns §V invariant body + linked sensor + linked e2e by id.",
46
- inputSchema: invariantGetInput,
47
- handler,
48
- };
49
- //# sourceMappingURL=invariant-get.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"invariant-get.js","sourceRoot":"","sources":["../../../src/mcp/tools/invariant-get.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import type { ToolDef } from "./types.js";
2
- interface Input {
3
- path_globs: string[];
4
- status?: ("active" | "superseded")[];
5
- }
6
- export declare const invariantsInScopeTool: ToolDef<Input>;
7
- export {};
@@ -1,65 +0,0 @@
1
- import { existsSync, readdirSync, readFileSync } from "node:fs";
2
- import { join } from "node:path";
3
- import { parse as parseYaml } from "yaml";
4
- import { decisionsDir, invariantsDir, matchAnyGlob, parseFrontmatter } from "../../ground/index.js";
5
- import { DecisionFrontmatter, InvariantFrontmatter } from "../../ground/index.js";
6
- import { invariantsInScopeInput } from "../schemas.js";
7
- /**
8
- * Invariants don't carry their own scope_globs — they inherit scope from the
9
- * decision that introduced them (source_decision). To answer "which invariants
10
- * apply to globs X?", we look up each invariant's source decision and check
11
- * its scope_globs against the requested globs.
12
- */
13
- async function handler(ctx, input) {
14
- const wantStatus = new Set(input.status ?? ["active"]);
15
- const decisionScopeById = new Map();
16
- const dDir = decisionsDir(ctx.repoRoot);
17
- if (existsSync(dDir)) {
18
- for (const entry of readdirSync(dDir, { withFileTypes: true, encoding: "utf8" })) {
19
- if (!entry.isFile() || !entry.name.endsWith(".md"))
20
- continue;
21
- const parsed = parseFrontmatter(readFileSync(join(dDir, entry.name), "utf8"));
22
- const fm = DecisionFrontmatter.safeParse(parsed.frontmatter);
23
- if (!fm.success)
24
- continue;
25
- decisionScopeById.set(fm.data.id, fm.data.scope_globs ?? []);
26
- }
27
- }
28
- const iDir = invariantsDir(ctx.repoRoot);
29
- if (!existsSync(iDir))
30
- return [];
31
- const out = [];
32
- for (const entry of readdirSync(iDir, { withFileTypes: true, encoding: "utf8" })) {
33
- if (!entry.isFile() || !entry.name.endsWith(".md"))
34
- continue;
35
- const parsed = parseFrontmatter(readFileSync(join(iDir, entry.name), "utf8"));
36
- const fm = InvariantFrontmatter.safeParse(parsed.frontmatter);
37
- if (!fm.success)
38
- continue;
39
- const status = fm.data.status ?? "active";
40
- if (!wantStatus.has(status))
41
- continue;
42
- const sourceDecision = fm.data.source_decision ?? null;
43
- const scope = sourceDecision ? decisionScopeById.get(sourceDecision) ?? [] : [];
44
- const overlap = scope.some((scopeGlob) => input.path_globs.some((req) => matchAnyGlob(scopeGlob, [req]) || matchAnyGlob(req, [scopeGlob])));
45
- if (!overlap)
46
- continue;
47
- out.push({
48
- id: fm.data.id,
49
- title: fm.data.title,
50
- status,
51
- source_decision: sourceDecision,
52
- });
53
- }
54
- out.sort((a, b) => a.id.localeCompare(b.id));
55
- // Reference yaml so import isn't dropped (used by symbol-tools that import via barrel).
56
- void parseYaml;
57
- return out;
58
- }
59
- export const invariantsInScopeTool = {
60
- name: "harness_invariants_in_scope",
61
- description: "List active invariants whose source_decision scope overlaps the given path_globs.",
62
- inputSchema: invariantsInScopeInput,
63
- handler,
64
- };
65
- //# sourceMappingURL=invariants-in-scope.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"invariants-in-scope.js","sourceRoot":"","sources":["../../../src/mcp/tools/invariants-in-scope.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { ToolDef } from "./types.js";
2
- interface Input {
3
- scope: string;
4
- path_hint?: string;
5
- since?: string;
6
- until?: string;
7
- }
8
- export declare const queryHistoryTool: ToolDef<Input>;
9
- export {};
@@ -1,33 +0,0 @@
1
- import { mcpError } from "../errors.js";
2
- import { queryHistoryInput } from "../schemas.js";
3
- /**
4
- * NOT IMPLEMENTED. Phase 4 baseline placeholder.
5
- *
6
- * Per MCP_SURFACE.md §"harness_query_history", the real implementation must:
7
- * 1. Walk .archive/** matching path_hint and date window.
8
- * 2. Run a Tier-1 LLM summarization over the matched files.
9
- * 3. Return per-claim records carrying source_path, source_lines, as_of,
10
- * superseded_by, currently_canonical_pointer, and the summary_caveat.
11
- *
12
- * The LLM call requires the harness's frontend-adapter / model-registry
13
- * scaffolding, which lands in Phase 5+. Until then this tool returns a
14
- * structured NOT_IMPLEMENTED error envelope so callers don't accidentally
15
- * consume a malformed payload.
16
- *
17
- * Returning an error from this tool is safer than returning raw archive
18
- * content — the entire point of the surface is to keep raw stale content
19
- * out of agent context windows.
20
- */
21
- async function handler(_ctx, input) {
22
- return mcpError("NOT_IMPLEMENTED", "harness_query_history awaits Tier-1 LLM integration (Phase 5+). Until then, all archive reads are denied; callers must wait or use harness_decision_get / harness_canonical_for_topic for current-canonical-only access.", {
23
- requested_scope: input.scope,
24
- ...(input.path_hint !== undefined ? { requested_path_hint: input.path_hint } : {}),
25
- });
26
- }
27
- export const queryHistoryTool = {
28
- name: "harness_query_history",
29
- description: "Summarized historical claims from .archive/ via Tier-1 LLM. Currently NOT_IMPLEMENTED — awaits Phase 5 model integration.",
30
- inputSchema: queryHistoryInput,
31
- handler,
32
- };
33
- //# sourceMappingURL=query-history.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-history.js","sourceRoot":"","sources":["../../../src/mcp/tools/query-history.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAUlD;;;;;;;;;;;;;;;;;GAiBG;AACH,KAAK,UAAU,OAAO,CAAC,IAAgB,EAAE,KAAY;IACnD,OAAO,QAAQ,CACb,iBAAiB,EACjB,0NAA0N,EAC1N;QACE,eAAe,EAAE,KAAK,CAAC,KAAK;QAC5B,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnF,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAmB;IAC9C,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EACT,2HAA2H;IAC7H,WAAW,EAAE,iBAAiB;IAC9B,OAAO;CACR,CAAC"}
@@ -1,14 +0,0 @@
1
- import type { ToolDef } from "./types.js";
2
- interface Input {
3
- id?: string;
4
- title: string;
5
- summary: string;
6
- scope_globs: string[];
7
- supersedes?: string;
8
- assertions?: unknown[];
9
- human_review_hint?: string;
10
- body_markdown?: string;
11
- target?: "inbox" | "accepted";
12
- }
13
- export declare const recordDecisionTool: ToolDef<Input>;
14
- export {};
@@ -1,101 +0,0 @@
1
- import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync } from "node:fs";
2
- import { join } from "node:path";
3
- import { stringify as stringifyYaml } from "yaml";
4
- import { decisionsDir, parseFrontmatter } from "../../ground/index.js";
5
- import { DecisionAssertion, DecisionFrontmatter } from "../../ground/index.js";
6
- import { mcpError } from "../errors.js";
7
- import { recordDecisionInput } from "../schemas.js";
8
- async function handler(ctx, input) {
9
- const dir = decisionsDir(ctx.repoRoot);
10
- const inboxDir = join(dir, "_inbox");
11
- // Validate assertions, if provided.
12
- if (input.assertions !== undefined) {
13
- for (const a of input.assertions) {
14
- const result = DecisionAssertion.safeParse(a);
15
- if (!result.success) {
16
- return mcpError("INVALID_ASSERTION_KIND", "assertion failed schema", {
17
- assertion: a,
18
- issues: result.error.issues,
19
- });
20
- }
21
- }
22
- }
23
- // Existing-id index — for ID allocation and DECISION_ID_TAKEN check.
24
- const existingIds = new Set();
25
- for (const d of [dir, inboxDir]) {
26
- if (!existsSync(d))
27
- continue;
28
- for (const e of readdirSync(d, { withFileTypes: true, encoding: "utf8" })) {
29
- if (!e.isFile() || !e.name.endsWith(".md"))
30
- continue;
31
- const fm = parseFrontmatter(readFileSync(join(d, e.name), "utf8")).frontmatter;
32
- const parsed = DecisionFrontmatter.safeParse(fm);
33
- if (parsed.success)
34
- existingIds.add(parsed.data.id);
35
- }
36
- }
37
- let id;
38
- if (input.id !== undefined) {
39
- if (existingIds.has(input.id)) {
40
- return mcpError("DECISION_ID_TAKEN", `${input.id} already exists`);
41
- }
42
- id = input.id;
43
- }
44
- else {
45
- id = allocateNextId(existingIds);
46
- }
47
- if (input.supersedes !== undefined && !existingIds.has(input.supersedes)) {
48
- return mcpError("SUPERSEDES_NOT_FOUND", `supersedes target "${input.supersedes}" not found`);
49
- }
50
- const target = input.target ?? "inbox";
51
- const outDir = target === "accepted" ? dir : inboxDir;
52
- mkdirSync(outDir, { recursive: true });
53
- const frontmatter = {
54
- id,
55
- title: input.title,
56
- type: "adr",
57
- status: target === "accepted" ? "accepted" : "draft",
58
- audience: "dual",
59
- generated: new Date().toISOString(),
60
- "verified-at": new Date().toISOString(),
61
- decided_at: new Date().toISOString().slice(0, 10),
62
- scope_globs: input.scope_globs,
63
- ...(input.supersedes !== undefined ? { supersedes: input.supersedes } : {}),
64
- ...(input.assertions !== undefined ? { assertions: input.assertions } : {}),
65
- ...(input.human_review_hint !== undefined
66
- ? { human_review_hint: input.human_review_hint }
67
- : {}),
68
- };
69
- const body = input.body_markdown ?? `# ${id} — ${input.title}\n\n## Summary\n\n${input.summary}\n`;
70
- const filename = target === "accepted" ? `${id}.md` : `${id}.draft.md`;
71
- const path = join(outDir, filename);
72
- const content = `---\n${stringifyYaml(frontmatter)}---\n\n${body}`;
73
- writeFileSync(path, content, "utf8");
74
- return {
75
- ok: true,
76
- id,
77
- target,
78
- path: target === "accepted"
79
- ? `.harness/ground/decisions/${filename}`
80
- : `.harness/ground/decisions/_inbox/${filename}`,
81
- };
82
- }
83
- function allocateNextId(existing) {
84
- let n = 0;
85
- for (const id of existing) {
86
- const m = id.match(/^DEC-(\d+)$/);
87
- if (m?.[1]) {
88
- const num = Number.parseInt(m[1], 10);
89
- if (Number.isFinite(num) && num > n)
90
- n = num;
91
- }
92
- }
93
- return `DEC-${String(n + 1).padStart(4, "0")}`;
94
- }
95
- export const recordDecisionTool = {
96
- name: "harness_record_decision",
97
- description: "Drop a decision draft to .harness/ground/decisions/_inbox/ (target=inbox, default) or canonical (target=accepted; operator-only override). Validates assertion schemas. Allocates the next DEC-NNNN if id omitted.",
98
- inputSchema: recordDecisionInput,
99
- handler,
100
- };
101
- //# sourceMappingURL=record-decision.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"record-decision.js","sourceRoot":"","sources":["../../../src/mcp/tools/record-decision.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { ToolDef } from "./types.js";
2
- interface Input {
3
- run_id: string;
4
- event: {
5
- kind: string;
6
- payload?: unknown;
7
- };
8
- }
9
- export declare const recordRunEventTool: ToolDef<Input>;
10
- export {};
@@ -1,28 +0,0 @@
1
- import { appendFileSync, existsSync, mkdirSync } from "node:fs";
2
- import { join } from "node:path";
3
- import { mcpError } from "../errors.js";
4
- import { recordRunEventInput } from "../schemas.js";
5
- async function handler(ctx, input) {
6
- const runDir = join(ctx.repoRoot, ".harness", "runs", "active", input.run_id);
7
- if (!existsSync(runDir)) {
8
- return mcpError("RUN_NOT_FOUND", `No active run dir at ${runDir}`);
9
- }
10
- const path = join(runDir, "events.jsonl");
11
- // Server-fills ts. Seq is omitted in this naive implementation; the orchestrator
12
- // re-numbers in the post-run pass when it materializes the canonical event log.
13
- const row = {
14
- ts: new Date().toISOString(),
15
- kind: input.event.kind,
16
- ...(input.event.payload !== undefined ? { payload: input.event.payload } : {}),
17
- };
18
- mkdirSync(runDir, { recursive: true });
19
- appendFileSync(path, `${JSON.stringify(row)}\n`, "utf8");
20
- return { ok: true, run_id: input.run_id, kind: input.event.kind };
21
- }
22
- export const recordRunEventTool = {
23
- name: "harness_record_run_event",
24
- description: "Append a structured event to .harness/runs/active/<run_id>/events.jsonl. Server fills `ts`; sequence is renumbered in post-run materialization.",
25
- inputSchema: recordRunEventInput,
26
- handler,
27
- };
28
- //# sourceMappingURL=record-run-event.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"record-run-event.js","sourceRoot":"","sources":["../../../src/mcp/tools/record-run-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAQpD,KAAK,UAAU,OAAO,CAAC,GAAe,EAAE,KAAY;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9E,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC,eAAe,EAAE,wBAAwB,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,iFAAiF;IACjF,gFAAgF;IAChF,MAAM,GAAG,GAAG;QACV,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;QACtB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/E,CAAC;IACF,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,cAAc,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IAChD,IAAI,EAAE,0BAA0B;IAChC,WAAW,EACT,iJAAiJ;IACnJ,WAAW,EAAE,mBAAmB;IAChC,OAAO;CACR,CAAC"}
@@ -1,9 +0,0 @@
1
- import type { ToolDef } from "./types.js";
2
- interface Input {
3
- query: string;
4
- scope?: string[];
5
- kinds?: ("decision" | "invariant" | "task" | "run" | "doc" | "manifest")[];
6
- limit?: number;
7
- }
8
- export declare const searchTool: ToolDef<Input>;
9
- export {};