@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,8 +0,0 @@
1
- import { resolve } from "node:path";
2
- export function createContext(opts) {
3
- return {
4
- repoRoot: resolve(opts.repoRoot),
5
- ...(opts.runId !== undefined ? { runId: opts.runId } : {}),
6
- };
7
- }
8
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/mcp/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,MAAM,UAAU,aAAa,CAAC,IAA0C;IACtE,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D,CAAC;AACJ,CAAC"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Error envelope per MCP_SURFACE §"Failure modes".
3
- *
4
- * Tools NEVER throw. They return either a success payload or an error envelope
5
- * shaped as { error: { code, message, details? } }. The envelope is wrapped in
6
- * the MCP `CallToolResult` content text.
7
- */
8
- export type McpErrorCode = "VALIDATION_FAILED" | "TOOL_NOT_FOUND" | "PATH_OUTSIDE_REPO" | "PATH_HISTORICAL_USE_QUERY_HISTORY" | "PATH_NOT_ALLOWED" | "FILE_NOT_FOUND" | "DAEMON_UNAVAILABLE" | "OPERATION_TIMEOUT" | "DECISION_NOT_FOUND" | "DECISION_ID_TAKEN" | "INVALID_ASSERTION_KIND" | "SUPERSEDES_NOT_FOUND" | "INVARIANT_NOT_FOUND" | "TOPIC_NOT_REGISTERED" | "RUN_NOT_FOUND" | "TASK_NOT_FOUND" | "NOT_ALLOWED" | "NOT_IMPLEMENTED";
9
- export interface McpErrorPayload {
10
- error: {
11
- code: McpErrorCode;
12
- message: string;
13
- details?: unknown;
14
- };
15
- }
16
- export declare function mcpError(code: McpErrorCode, message: string, details?: unknown): McpErrorPayload;
17
- export declare function isMcpError(payload: unknown): payload is McpErrorPayload;
@@ -1,23 +0,0 @@
1
- /**
2
- * Error envelope per MCP_SURFACE §"Failure modes".
3
- *
4
- * Tools NEVER throw. They return either a success payload or an error envelope
5
- * shaped as { error: { code, message, details? } }. The envelope is wrapped in
6
- * the MCP `CallToolResult` content text.
7
- */
8
- export function mcpError(code, message, details) {
9
- return {
10
- error: {
11
- code,
12
- message,
13
- ...(details !== undefined ? { details } : {}),
14
- },
15
- };
16
- }
17
- export function isMcpError(payload) {
18
- return (typeof payload === "object" &&
19
- payload !== null &&
20
- "error" in payload &&
21
- typeof payload.error === "object");
22
- }
23
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/mcp/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8BH,MAAM,UAAU,QAAQ,CACtB,IAAkB,EAClB,OAAe,EACf,OAAiB;IAEjB,OAAO;QACL,KAAK,EAAE;YACL,IAAI;YACJ,OAAO;YACP,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9C;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,OAAO,IAAI,OAAO;QAClB,OAAQ,OAA8B,CAAC,KAAK,KAAK,QAAQ,CAC1D,CAAC;AACJ,CAAC"}
@@ -1,10 +0,0 @@
1
- export { startMcpServer } from "./server.js";
2
- export type { StartServerOptions } from "./server.js";
3
- export { createContext } from "./context.js";
4
- export type { McpContext } from "./context.js";
5
- export { allTools } from "./tools/index.js";
6
- export type { ToolDef } from "./tools/types.js";
7
- export { mcpError, isMcpError } from "./errors.js";
8
- export type { McpErrorCode, McpErrorPayload } from "./errors.js";
9
- export { asMcpResult } from "./result.js";
10
- export { APPEND_ALLOWLIST, ARCHIVE_DENY, HISTORICAL_ZONE, isAppendAllowed, isArchiveDenied, isHistorical, safeJoin, } from "./path-allowlist.js";
package/dist/mcp/index.js DELETED
@@ -1,7 +0,0 @@
1
- export { startMcpServer } from "./server.js";
2
- export { createContext } from "./context.js";
3
- export { allTools } from "./tools/index.js";
4
- export { mcpError, isMcpError } from "./errors.js";
5
- export { asMcpResult } from "./result.js";
6
- export { APPEND_ALLOWLIST, ARCHIVE_DENY, HISTORICAL_ZONE, isAppendAllowed, isArchiveDenied, isHistorical, safeJoin, } from "./path-allowlist.js";
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,YAAY,EACZ,QAAQ,GACT,MAAM,qBAAqB,CAAC"}
@@ -1,25 +0,0 @@
1
- import { type McpErrorPayload } from "./errors.js";
2
- /**
3
- * Append-write allowlist. Server-side, NOT agent-controllable.
4
- *
5
- * Per MCP_SURFACE.md §"Write tools — append-only":
6
- * - .harness/runs/active/<run-id>/events.jsonl
7
- * - .harness/runs/active/<run-id>/commands.jsonl
8
- * - .harness/staleness/log.jsonl
9
- * - .harness/inbox/** (system-only; rarely used by agents)
10
- */
11
- export declare const APPEND_ALLOWLIST: readonly string[];
12
- /**
13
- * Paths agents may NOT archive. AGENTS.md, CLAUDE.md, brand guidelines, and
14
- * decisions/ are all sacred ground.
15
- */
16
- export declare const ARCHIVE_DENY: readonly string[];
17
- /** Historical-zone globs — read tools refuse these; query_history is the ONE escape. */
18
- export declare const HISTORICAL_ZONE: readonly string[];
19
- /** Resolves a relative path against repoRoot and rejects escapes. */
20
- export declare function safeJoin(repoRoot: string, rel: string): string | McpErrorPayload;
21
- /** Returns repo-relative POSIX-style path for a path already inside repoRoot. */
22
- export declare function relPosix(repoRoot: string, abs: string): string;
23
- export declare function isAppendAllowed(repoRelPath: string): boolean;
24
- export declare function isArchiveDenied(repoRelPath: string): boolean;
25
- export declare function isHistorical(repoRelPath: string): boolean;
@@ -1,66 +0,0 @@
1
- import { isAbsolute, normalize, relative, resolve } from "node:path";
2
- import { matchAnyGlob } from "../ground/glob.js";
3
- import { mcpError } from "./errors.js";
4
- /**
5
- * Append-write allowlist. Server-side, NOT agent-controllable.
6
- *
7
- * Per MCP_SURFACE.md §"Write tools — append-only":
8
- * - .harness/runs/active/<run-id>/events.jsonl
9
- * - .harness/runs/active/<run-id>/commands.jsonl
10
- * - .harness/staleness/log.jsonl
11
- * - .harness/inbox/** (system-only; rarely used by agents)
12
- */
13
- export const APPEND_ALLOWLIST = [
14
- ".harness/runs/active/*/events.jsonl",
15
- ".harness/runs/active/*/commands.jsonl",
16
- ".harness/staleness/log.jsonl",
17
- ".harness/inbox/**",
18
- ];
19
- /**
20
- * Paths agents may NOT archive. AGENTS.md, CLAUDE.md, brand guidelines, and
21
- * decisions/ are all sacred ground.
22
- */
23
- export const ARCHIVE_DENY = [
24
- "AGENTS.md",
25
- "CLAUDE.md",
26
- ".claude/**",
27
- "docs/decisions/**",
28
- ".harness/ground/decisions/**",
29
- ".harness/ground/invariants/**",
30
- ".harness/config/**",
31
- "docs/design/brand/**",
32
- ];
33
- /** Historical-zone globs — read tools refuse these; query_history is the ONE escape. */
34
- export const HISTORICAL_ZONE = [
35
- ".archive/**",
36
- ".harness/runs/terminal/**",
37
- ".harness/tasks/done/**",
38
- ".harness/tasks/archived/**",
39
- ".harness/ground/decisions/_inbox/**",
40
- ];
41
- /** Resolves a relative path against repoRoot and rejects escapes. */
42
- export function safeJoin(repoRoot, rel) {
43
- if (isAbsolute(rel)) {
44
- return mcpError("PATH_OUTSIDE_REPO", `Absolute paths not accepted: ${rel}`);
45
- }
46
- const abs = resolve(repoRoot, rel);
47
- const back = relative(repoRoot, abs);
48
- if (back.startsWith("..") || isAbsolute(back)) {
49
- return mcpError("PATH_OUTSIDE_REPO", `Path resolves outside repo: ${rel}`);
50
- }
51
- return abs;
52
- }
53
- /** Returns repo-relative POSIX-style path for a path already inside repoRoot. */
54
- export function relPosix(repoRoot, abs) {
55
- return normalize(relative(repoRoot, abs)).replace(/\\/g, "/");
56
- }
57
- export function isAppendAllowed(repoRelPath) {
58
- return matchAnyGlob(repoRelPath, APPEND_ALLOWLIST);
59
- }
60
- export function isArchiveDenied(repoRelPath) {
61
- return matchAnyGlob(repoRelPath, ARCHIVE_DENY);
62
- }
63
- export function isHistorical(repoRelPath) {
64
- return matchAnyGlob(repoRelPath, HISTORICAL_ZONE);
65
- }
66
- //# sourceMappingURL=path-allowlist.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"path-allowlist.js","sourceRoot":"","sources":["../../src/mcp/path-allowlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAwB,MAAM,aAAa,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAsB;IACjD,qCAAqC;IACrC,uCAAuC;IACvC,8BAA8B;IAC9B,mBAAmB;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAsB;IAC7C,WAAW;IACX,WAAW;IACX,YAAY;IACZ,mBAAmB;IACnB,8BAA8B;IAC9B,+BAA+B;IAC/B,oBAAoB;IACpB,sBAAsB;CACvB,CAAC;AAEF,wFAAwF;AACxF,MAAM,CAAC,MAAM,eAAe,GAAsB;IAChD,aAAa;IACb,2BAA2B;IAC3B,wBAAwB;IACxB,4BAA4B;IAC5B,qCAAqC;CACtC,CAAC;AAEF,qEAAqE;AACrE,MAAM,UAAU,QAAQ,CAAC,QAAgB,EAAE,GAAW;IACpD,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC,mBAAmB,EAAE,gCAAgC,GAAG,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,OAAO,QAAQ,CAAC,mBAAmB,EAAE,+BAA+B,GAAG,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,QAAQ,CAAC,QAAgB,EAAE,GAAW;IACpD,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO,YAAY,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,OAAO,YAAY,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AACpD,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
2
- import type { McpErrorPayload } from "./errors.js";
3
- /**
4
- * Wraps a tool's payload (success object OR error envelope) as the MCP
5
- * CallToolResult shape: { content: [{ type: "text", text: <json> }], isError? }.
6
- */
7
- export declare function asMcpResult(payload: unknown): CallToolResult;
8
- export type { McpErrorPayload };
@@ -1,18 +0,0 @@
1
- import { isMcpError } from "./errors.js";
2
- /**
3
- * Wraps a tool's payload (success object OR error envelope) as the MCP
4
- * CallToolResult shape: { content: [{ type: "text", text: <json> }], isError? }.
5
- */
6
- export function asMcpResult(payload) {
7
- const isError = isMcpError(payload);
8
- return {
9
- content: [
10
- {
11
- type: "text",
12
- text: JSON.stringify(payload, null, 2),
13
- },
14
- ],
15
- isError,
16
- };
17
- }
18
- //# sourceMappingURL=result.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/mcp/result.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;aACvC;SACF;QACD,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -1,153 +0,0 @@
1
- import { z } from "zod";
2
- export declare const decisionGetInput: {
3
- id: z.ZodString;
4
- };
5
- export declare const decisionsInScopeInput: {
6
- path_globs: z.ZodArray<z.ZodString>;
7
- status: z.ZodOptional<z.ZodArray<z.ZodEnum<{
8
- draft: "draft";
9
- accepted: "accepted";
10
- superseded: "superseded";
11
- archived: "archived";
12
- }>>>;
13
- };
14
- export declare const decisionsForSymbolInput: {
15
- file: z.ZodString;
16
- symbol: z.ZodString;
17
- };
18
- export declare const canonicalForTopicInput: {
19
- topic: z.ZodString;
20
- };
21
- export declare const groundGetInput: {
22
- category: z.ZodEnum<{
23
- schema: "schema";
24
- routes: "routes";
25
- events: "events";
26
- quality_grades: "quality_grades";
27
- glossary: "glossary";
28
- manifest: "manifest";
29
- }>;
30
- key: z.ZodOptional<z.ZodString>;
31
- };
32
- export declare const supersedesChainInput: {
33
- decision_id: z.ZodString;
34
- };
35
- export declare const invariantGetInput: {
36
- id: z.ZodString;
37
- };
38
- export declare const invariantsInScopeInput: {
39
- path_globs: z.ZodArray<z.ZodString>;
40
- status: z.ZodOptional<z.ZodArray<z.ZodEnum<{
41
- superseded: "superseded";
42
- active: "active";
43
- }>>>;
44
- };
45
- export declare const searchInput: {
46
- query: z.ZodString;
47
- scope: z.ZodOptional<z.ZodArray<z.ZodString>>;
48
- kinds: z.ZodOptional<z.ZodArray<z.ZodEnum<{
49
- manifest: "manifest";
50
- decision: "decision";
51
- invariant: "invariant";
52
- task: "task";
53
- run: "run";
54
- doc: "doc";
55
- }>>>;
56
- limit: z.ZodOptional<z.ZodNumber>;
57
- };
58
- export declare const timelineInput: {
59
- scope: z.ZodOptional<z.ZodArray<z.ZodString>>;
60
- since: z.ZodOptional<z.ZodString>;
61
- until: z.ZodOptional<z.ZodString>;
62
- kinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
63
- };
64
- export declare const getFullInput: {
65
- id: z.ZodString;
66
- kind: z.ZodEnum<{
67
- decision: "decision";
68
- invariant: "invariant";
69
- task: "task";
70
- run: "run";
71
- }>;
72
- };
73
- export declare const queryHistoryInput: {
74
- scope: z.ZodString;
75
- path_hint: z.ZodOptional<z.ZodString>;
76
- since: z.ZodOptional<z.ZodString>;
77
- until: z.ZodOptional<z.ZodString>;
78
- };
79
- export declare const appendInput: {
80
- path: z.ZodString;
81
- content: z.ZodString;
82
- newline_separator: z.ZodOptional<z.ZodBoolean>;
83
- };
84
- export declare const recordDecisionInput: {
85
- id: z.ZodOptional<z.ZodString>;
86
- title: z.ZodString;
87
- summary: z.ZodString;
88
- scope_globs: z.ZodArray<z.ZodString>;
89
- supersedes: z.ZodOptional<z.ZodString>;
90
- assertions: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
91
- human_review_hint: z.ZodOptional<z.ZodString>;
92
- body_markdown: z.ZodOptional<z.ZodString>;
93
- target: z.ZodOptional<z.ZodEnum<{
94
- accepted: "accepted";
95
- inbox: "inbox";
96
- }>>;
97
- };
98
- export declare const recordRunEventInput: {
99
- run_id: z.ZodString;
100
- event: z.ZodObject<{
101
- kind: z.ZodString;
102
- payload: z.ZodOptional<z.ZodUnknown>;
103
- }, z.core.$strip>;
104
- };
105
- export declare const dropTaskInput: {
106
- title: z.ZodString;
107
- body: z.ZodString;
108
- intent: z.ZodEnum<{
109
- unknown: "unknown";
110
- run_pilot: "run_pilot";
111
- review_module: "review_module";
112
- fix_issue: "fix_issue";
113
- eval: "eval";
114
- staleness_scan: "staleness_scan";
115
- }>;
116
- target_path_globs: z.ZodOptional<z.ZodArray<z.ZodString>>;
117
- priority: z.ZodOptional<z.ZodNumber>;
118
- parent_task_id: z.ZodOptional<z.ZodString>;
119
- source: z.ZodOptional<z.ZodString>;
120
- };
121
- export declare const archiveInput: {
122
- path: z.ZodString;
123
- reason: z.ZodString;
124
- archive_dir: z.ZodOptional<z.ZodString>;
125
- };
126
- export declare const askOperatorInput: {
127
- /** The agent's run id — files land under runs/active/<run_id>/questions/. */
128
- run_id: z.ZodString;
129
- /** The question text shown to the operator. */
130
- question: z.ZodString;
131
- /**
132
- * Optional A/B/C/D candidate resolutions. When present the operator
133
- * dialog uses buttons; when empty the operator must reply free-form
134
- * (the orchestrator falls back to a follow-up message handler).
135
- */
136
- options: z.ZodOptional<z.ZodArray<z.ZodString>>;
137
- /**
138
- * Why the agent needs the operator's input. One of:
139
- * "ambiguity" — spec is genuinely vague / multiple valid paths
140
- * "permission" — about to take a non-recoverable action (delete,
141
- * force-push, etc.)
142
- * "stuck" — couldn't make progress without external info
143
- * "verify" — operator should confirm the agent's interpretation
144
- */
145
- category: z.ZodOptional<z.ZodEnum<{
146
- ambiguity: "ambiguity";
147
- permission: "permission";
148
- stuck: "stuck";
149
- verify: "verify";
150
- }>>;
151
- /** Per-call timeout. Default 10 minutes. */
152
- timeout_ms: z.ZodOptional<z.ZodNumber>;
153
- };
@@ -1,135 +0,0 @@
1
- import { z } from "zod";
2
- // Each constant below is the input zod RAW SHAPE the MCP SDK accepts directly
3
- // in `registerTool({ inputSchema: ... })`. Keeping them as raw shapes (not
4
- // pre-built objects) lets the SDK convert to JSON Schema for tool listings.
5
- // ── Read tools — graph traversal ───────────────────────────────────────────
6
- export const decisionGetInput = {
7
- id: z.string().regex(/^DEC-\d{4,}$/, "decision id must match DEC-NNNN"),
8
- };
9
- export const decisionsInScopeInput = {
10
- path_globs: z.array(z.string()).min(1),
11
- status: z.array(z.enum(["draft", "accepted", "superseded", "archived"])).optional(),
12
- };
13
- export const decisionsForSymbolInput = {
14
- file: z.string().min(1),
15
- symbol: z.string().min(1),
16
- };
17
- export const canonicalForTopicInput = {
18
- topic: z.string().min(1),
19
- };
20
- export const groundGetInput = {
21
- category: z.enum([
22
- "schema",
23
- "routes",
24
- "events",
25
- "quality_grades",
26
- "glossary",
27
- "manifest",
28
- ]),
29
- key: z.string().optional(),
30
- };
31
- export const supersedesChainInput = {
32
- decision_id: z.string().min(1),
33
- };
34
- export const invariantGetInput = {
35
- id: z.string().regex(/^V\d{4,}$/, "invariant id must match V<NNNN>"),
36
- };
37
- export const invariantsInScopeInput = {
38
- path_globs: z.array(z.string()).min(1),
39
- status: z.array(z.enum(["active", "superseded"])).optional(),
40
- };
41
- // ── Read tools — 3-layer progressive retrieval ─────────────────────────────
42
- export const searchInput = {
43
- query: z.string().min(1),
44
- scope: z.array(z.string()).optional(),
45
- kinds: z.array(z.enum(["decision", "invariant", "task", "run", "doc", "manifest"])).optional(),
46
- limit: z.number().int().positive().max(50).optional(),
47
- };
48
- export const timelineInput = {
49
- scope: z.array(z.string()).optional(),
50
- since: z.string().optional(),
51
- until: z.string().optional(),
52
- kinds: z.array(z.string()).optional(),
53
- };
54
- export const getFullInput = {
55
- id: z.string().min(1),
56
- kind: z.enum(["decision", "invariant", "task", "run"]),
57
- };
58
- // ── Read tools — historical zone (gated) ───────────────────────────────────
59
- export const queryHistoryInput = {
60
- scope: z.string().min(1),
61
- path_hint: z.string().optional(),
62
- since: z.string().optional(),
63
- until: z.string().optional(),
64
- };
65
- // ── Write tools ────────────────────────────────────────────────────────────
66
- export const appendInput = {
67
- path: z.string().min(1),
68
- content: z.string(),
69
- newline_separator: z.boolean().optional(),
70
- };
71
- export const recordDecisionInput = {
72
- id: z.string().regex(/^DEC-\d{4,}$/).optional(),
73
- title: z.string().min(1),
74
- summary: z.string().min(1),
75
- scope_globs: z.array(z.string()).min(1),
76
- supersedes: z.string().optional(),
77
- assertions: z.array(z.unknown()).optional(),
78
- human_review_hint: z.string().optional(),
79
- body_markdown: z.string().optional(),
80
- target: z.enum(["inbox", "accepted"]).optional(),
81
- };
82
- export const recordRunEventInput = {
83
- run_id: z.string().min(1),
84
- event: z.object({
85
- kind: z.string().min(1),
86
- payload: z.unknown().optional(),
87
- }),
88
- };
89
- export const dropTaskInput = {
90
- title: z.string().min(1),
91
- body: z.string().min(1),
92
- intent: z.enum([
93
- "run_pilot",
94
- "review_module",
95
- "fix_issue",
96
- "eval",
97
- "staleness_scan",
98
- "unknown",
99
- ]),
100
- target_path_globs: z.array(z.string()).optional(),
101
- priority: z.number().int().min(1).max(10).optional(),
102
- parent_task_id: z.string().optional(),
103
- source: z.string().optional(),
104
- };
105
- export const archiveInput = {
106
- path: z.string().min(1),
107
- reason: z.string().min(1),
108
- archive_dir: z.string().optional(),
109
- };
110
- export const askOperatorInput = {
111
- /** The agent's run id — files land under runs/active/<run_id>/questions/. */
112
- run_id: z.string().min(1),
113
- /** The question text shown to the operator. */
114
- question: z.string().min(1),
115
- /**
116
- * Optional A/B/C/D candidate resolutions. When present the operator
117
- * dialog uses buttons; when empty the operator must reply free-form
118
- * (the orchestrator falls back to a follow-up message handler).
119
- */
120
- options: z.array(z.string().min(1)).max(4).optional(),
121
- /**
122
- * Why the agent needs the operator's input. One of:
123
- * "ambiguity" — spec is genuinely vague / multiple valid paths
124
- * "permission" — about to take a non-recoverable action (delete,
125
- * force-push, etc.)
126
- * "stuck" — couldn't make progress without external info
127
- * "verify" — operator should confirm the agent's interpretation
128
- */
129
- category: z
130
- .enum(["ambiguity", "permission", "stuck", "verify"])
131
- .optional(),
132
- /** Per-call timeout. Default 10 minutes. */
133
- timeout_ms: z.number().int().min(1000).max(86_400_000).optional(),
134
- };
135
- //# sourceMappingURL=schemas.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/mcp/schemas.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- import type { McpContext } from "./context.js";
3
- export interface StartServerOptions {
4
- ctx: McpContext;
5
- /** When true, do not connect to stdio — caller wires its own transport. */
6
- noConnect?: boolean;
7
- }
8
- export declare function startMcpServer(opts: StartServerOptions): Promise<{
9
- server: McpServer;
10
- close: () => Promise<void>;
11
- }>;
@@ -1,58 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
- import { logger } from "../logger.js";
4
- import { VERSION } from "../index.js";
5
- import { isMcpError, mcpError } from "./errors.js";
6
- import { asMcpResult } from "./result.js";
7
- import { recordCall } from "./telemetry.js";
8
- import { allTools } from "./tools/index.js";
9
- const log = logger("mcp.server");
10
- export async function startMcpServer(opts) {
11
- const { ctx } = opts;
12
- const server = new McpServer({ name: "harness-mcp", version: VERSION });
13
- for (const tool of allTools) {
14
- server.registerTool(tool.name, {
15
- description: tool.description,
16
- inputSchema: tool.inputSchema,
17
- }, async (rawInput) => {
18
- const start = process.hrtime.bigint();
19
- let payload;
20
- try {
21
- payload = await tool.handler(ctx, rawInput);
22
- }
23
- catch (err) {
24
- payload = mcpError("OPERATION_TIMEOUT", err instanceof Error ? err.message : "tool handler threw");
25
- log.error({ tool: tool.name, err: String(err) }, "tool handler threw");
26
- }
27
- const durationMs = Number(process.hrtime.bigint() - start) / 1_000_000;
28
- const result = asMcpResult(payload);
29
- const resultSize = result.content?.[0]?.type === "text" ? result.content[0].text.length : 0;
30
- try {
31
- recordCall(ctx, {
32
- ts: new Date().toISOString(),
33
- tool: tool.name,
34
- args: rawInput ?? {},
35
- result_kind: isMcpError(payload) ? "error" : "ok",
36
- result_size: resultSize,
37
- duration_ms: Math.round(durationMs * 100) / 100,
38
- });
39
- }
40
- catch {
41
- // telemetry must not break tool calls
42
- }
43
- return result;
44
- });
45
- }
46
- if (opts.noConnect !== true) {
47
- const transport = new StdioServerTransport();
48
- await server.connect(transport);
49
- log.info({ tools: allTools.length, repoRoot: ctx.repoRoot }, "MCP server listening on stdio");
50
- }
51
- return {
52
- server,
53
- close: async () => {
54
- await server.close();
55
- },
56
- };
57
- }
58
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import type { McpContext } from "./context.js";
2
- /**
3
- * Writes one row per tool call to:
4
- * - .harness/runs/active/<runId>/mcp-calls.jsonl when ctx.runId set
5
- * - .harness/staleness/mcp-calls.jsonl otherwise
6
- */
7
- export interface TelemetryRow {
8
- ts: string;
9
- tool: string;
10
- args: unknown;
11
- result_kind: "ok" | "error";
12
- result_size: number;
13
- duration_ms: number;
14
- }
15
- export declare function recordCall(ctx: McpContext, row: TelemetryRow): void;
@@ -1,13 +0,0 @@
1
- import { appendFileSync, existsSync, mkdirSync } from "node:fs";
2
- import { dirname, join } from "node:path";
3
- export function recordCall(ctx, row) {
4
- const path = ctx.runId !== undefined
5
- ? join(ctx.repoRoot, ".harness", "runs", "active", ctx.runId, "mcp-calls.jsonl")
6
- : join(ctx.repoRoot, ".harness", "staleness", "mcp-calls.jsonl");
7
- const dir = dirname(path);
8
- if (!existsSync(dir)) {
9
- mkdirSync(dir, { recursive: true });
10
- }
11
- appendFileSync(path, `${JSON.stringify(row)}\n`, "utf8");
12
- }
13
- //# sourceMappingURL=telemetry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/mcp/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAiB1C,MAAM,UAAU,UAAU,CAAC,GAAe,EAAE,GAAiB;IAC3D,MAAM,IAAI,GACR,GAAG,CAAC,KAAK,KAAK,SAAS;QACrB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,iBAAiB,CAAC;QAChF,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IACrE,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,cAAc,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { ToolDef } from "./types.js";
2
- interface Input {
3
- path: string;
4
- content: string;
5
- newline_separator?: boolean;
6
- }
7
- export declare const appendTool: ToolDef<Input>;
8
- export {};