@isaacriehm/cairn 0.1.0 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (533) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/index.d.ts +0 -1
  3. package/dist/index.js +0 -1
  4. package/dist/index.js.map +1 -1
  5. package/package.json +4 -4
  6. package/dist/backprop/id.d.ts +0 -14
  7. package/dist/backprop/id.js +0 -40
  8. package/dist/backprop/id.js.map +0 -1
  9. package/dist/backprop/index.d.ts +0 -23
  10. package/dist/backprop/index.js +0 -21
  11. package/dist/backprop/index.js.map +0 -1
  12. package/dist/backprop/prompt.d.ts +0 -16
  13. package/dist/backprop/prompt.js +0 -101
  14. package/dist/backprop/prompt.js.map +0 -1
  15. package/dist/backprop/runner.d.ts +0 -18
  16. package/dist/backprop/runner.js +0 -95
  17. package/dist/backprop/runner.js.map +0 -1
  18. package/dist/backprop/schema.d.ts +0 -61
  19. package/dist/backprop/schema.js +0 -55
  20. package/dist/backprop/schema.js.map +0 -1
  21. package/dist/backprop/types.d.ts +0 -101
  22. package/dist/backprop/types.js +0 -24
  23. package/dist/backprop/types.js.map +0 -1
  24. package/dist/backprop/writer.d.ts +0 -27
  25. package/dist/backprop/writer.js +0 -301
  26. package/dist/backprop/writer.js.map +0 -1
  27. package/dist/claude/error.d.ts +0 -33
  28. package/dist/claude/error.js +0 -58
  29. package/dist/claude/error.js.map +0 -1
  30. package/dist/claude/index.d.ts +0 -3
  31. package/dist/claude/index.js +0 -3
  32. package/dist/claude/index.js.map +0 -1
  33. package/dist/claude/runner.d.ts +0 -11
  34. package/dist/claude/runner.js +0 -132
  35. package/dist/claude/runner.js.map +0 -1
  36. package/dist/claude/types.d.ts +0 -52
  37. package/dist/claude/types.js +0 -14
  38. package/dist/claude/types.js.map +0 -1
  39. package/dist/cli/daemon.d.ts +0 -54
  40. package/dist/cli/daemon.js +0 -351
  41. package/dist/cli/daemon.js.map +0 -1
  42. package/dist/cli/install.d.ts +0 -52
  43. package/dist/cli/install.js +0 -308
  44. package/dist/cli/install.js.map +0 -1
  45. package/dist/cli/mirror.d.ts +0 -1
  46. package/dist/cli/mirror.js +0 -97
  47. package/dist/cli/mirror.js.map +0 -1
  48. package/dist/cli/run.d.ts +0 -1
  49. package/dist/cli/run.js +0 -174
  50. package/dist/cli/run.js.map +0 -1
  51. package/dist/cli/task.d.ts +0 -18
  52. package/dist/cli/task.js +0 -137
  53. package/dist/cli/task.js.map +0 -1
  54. package/dist/cli/watch.d.ts +0 -1
  55. package/dist/cli/watch.js +0 -73
  56. package/dist/cli/watch.js.map +0 -1
  57. package/dist/decision-capture/capture.d.ts +0 -57
  58. package/dist/decision-capture/capture.js +0 -186
  59. package/dist/decision-capture/capture.js.map +0 -1
  60. package/dist/decision-capture/extractor.d.ts +0 -20
  61. package/dist/decision-capture/extractor.js +0 -103
  62. package/dist/decision-capture/extractor.js.map +0 -1
  63. package/dist/decision-capture/id.d.ts +0 -14
  64. package/dist/decision-capture/id.js +0 -44
  65. package/dist/decision-capture/id.js.map +0 -1
  66. package/dist/decision-capture/index.d.ts +0 -25
  67. package/dist/decision-capture/index.js +0 -21
  68. package/dist/decision-capture/index.js.map +0 -1
  69. package/dist/decision-capture/prompt.d.ts +0 -15
  70. package/dist/decision-capture/prompt.js +0 -68
  71. package/dist/decision-capture/prompt.js.map +0 -1
  72. package/dist/decision-capture/refinement-prompt.d.ts +0 -25
  73. package/dist/decision-capture/refinement-prompt.js +0 -146
  74. package/dist/decision-capture/refinement-prompt.js.map +0 -1
  75. package/dist/decision-capture/refinement-schema.d.ts +0 -52
  76. package/dist/decision-capture/refinement-schema.js +0 -61
  77. package/dist/decision-capture/refinement-schema.js.map +0 -1
  78. package/dist/decision-capture/refinement.d.ts +0 -60
  79. package/dist/decision-capture/refinement.js +0 -439
  80. package/dist/decision-capture/refinement.js.map +0 -1
  81. package/dist/decision-capture/schema.d.ts +0 -70
  82. package/dist/decision-capture/schema.js +0 -71
  83. package/dist/decision-capture/schema.js.map +0 -1
  84. package/dist/decision-capture/types.d.ts +0 -201
  85. package/dist/decision-capture/types.js +0 -20
  86. package/dist/decision-capture/types.js.map +0 -1
  87. package/dist/decision-capture/writer.d.ts +0 -90
  88. package/dist/decision-capture/writer.js +0 -267
  89. package/dist/decision-capture/writer.js.map +0 -1
  90. package/dist/frontend/discord/acl.d.ts +0 -6
  91. package/dist/frontend/discord/acl.js +0 -19
  92. package/dist/frontend/discord/acl.js.map +0 -1
  93. package/dist/frontend/discord/channels.d.ts +0 -29
  94. package/dist/frontend/discord/channels.js +0 -58
  95. package/dist/frontend/discord/channels.js.map +0 -1
  96. package/dist/frontend/discord/classifier.d.ts +0 -16
  97. package/dist/frontend/discord/classifier.js +0 -29
  98. package/dist/frontend/discord/classifier.js.map +0 -1
  99. package/dist/frontend/discord/index.d.ts +0 -118
  100. package/dist/frontend/discord/index.js +0 -1104
  101. package/dist/frontend/discord/index.js.map +0 -1
  102. package/dist/frontend/discord/slash.d.ts +0 -18
  103. package/dist/frontend/discord/slash.js +0 -90
  104. package/dist/frontend/discord/slash.js.map +0 -1
  105. package/dist/frontend/inbox.d.ts +0 -17
  106. package/dist/frontend/inbox.js +0 -30
  107. package/dist/frontend/inbox.js.map +0 -1
  108. package/dist/frontend/index.d.ts +0 -8
  109. package/dist/frontend/index.js +0 -6
  110. package/dist/frontend/index.js.map +0 -1
  111. package/dist/frontend/stub/index.d.ts +0 -58
  112. package/dist/frontend/stub/index.js +0 -144
  113. package/dist/frontend/stub/index.js.map +0 -1
  114. package/dist/frontend/types.d.ts +0 -247
  115. package/dist/frontend/types.js +0 -15
  116. package/dist/frontend/types.js.map +0 -1
  117. package/dist/gc/apply.d.ts +0 -26
  118. package/dist/gc/apply.js +0 -48
  119. package/dist/gc/apply.js.map +0 -1
  120. package/dist/gc/canary.d.ts +0 -42
  121. package/dist/gc/canary.js +0 -134
  122. package/dist/gc/canary.js.map +0 -1
  123. package/dist/gc/classify.d.ts +0 -25
  124. package/dist/gc/classify.js +0 -89
  125. package/dist/gc/classify.js.map +0 -1
  126. package/dist/gc/doc-gardening.d.ts +0 -29
  127. package/dist/gc/doc-gardening.js +0 -146
  128. package/dist/gc/doc-gardening.js.map +0 -1
  129. package/dist/gc/frontmatter.d.ts +0 -35
  130. package/dist/gc/frontmatter.js +0 -111
  131. package/dist/gc/frontmatter.js.map +0 -1
  132. package/dist/gc/generator-drift.d.ts +0 -28
  133. package/dist/gc/generator-drift.js +0 -53
  134. package/dist/gc/generator-drift.js.map +0 -1
  135. package/dist/gc/index.d.ts +0 -35
  136. package/dist/gc/index.js +0 -26
  137. package/dist/gc/index.js.map +0 -1
  138. package/dist/gc/quality-update.d.ts +0 -23
  139. package/dist/gc/quality-update.js +0 -69
  140. package/dist/gc/quality-update.js.map +0 -1
  141. package/dist/gc/stub-hits.d.ts +0 -31
  142. package/dist/gc/stub-hits.js +0 -125
  143. package/dist/gc/stub-hits.js.map +0 -1
  144. package/dist/gc/sweep.d.ts +0 -56
  145. package/dist/gc/sweep.js +0 -178
  146. package/dist/gc/sweep.js.map +0 -1
  147. package/dist/gc/types.d.ts +0 -129
  148. package/dist/gc/types.js +0 -26
  149. package/dist/gc/types.js.map +0 -1
  150. package/dist/ground/drift.d.ts +0 -8
  151. package/dist/ground/drift.js +0 -23
  152. package/dist/ground/drift.js.map +0 -1
  153. package/dist/ground/frontmatter.d.ts +0 -20
  154. package/dist/ground/frontmatter.js +0 -49
  155. package/dist/ground/frontmatter.js.map +0 -1
  156. package/dist/ground/glob.d.ts +0 -10
  157. package/dist/ground/glob.js +0 -46
  158. package/dist/ground/glob.js.map +0 -1
  159. package/dist/ground/index.d.ts +0 -14
  160. package/dist/ground/index.js +0 -10
  161. package/dist/ground/index.js.map +0 -1
  162. package/dist/ground/ledgers.d.ts +0 -18
  163. package/dist/ground/ledgers.js +0 -103
  164. package/dist/ground/ledgers.js.map +0 -1
  165. package/dist/ground/manifest.d.ts +0 -10
  166. package/dist/ground/manifest.js +0 -88
  167. package/dist/ground/manifest.js.map +0 -1
  168. package/dist/ground/paths.d.ts +0 -20
  169. package/dist/ground/paths.js +0 -61
  170. package/dist/ground/paths.js.map +0 -1
  171. package/dist/ground/quality-grades.d.ts +0 -11
  172. package/dist/ground/quality-grades.js +0 -98
  173. package/dist/ground/quality-grades.js.map +0 -1
  174. package/dist/ground/schemas.d.ts +0 -306
  175. package/dist/ground/schemas.js +0 -188
  176. package/dist/ground/schemas.js.map +0 -1
  177. package/dist/ground/walk.d.ts +0 -7
  178. package/dist/ground/walk.js +0 -53
  179. package/dist/ground/walk.js.map +0 -1
  180. package/dist/init/detect.d.ts +0 -25
  181. package/dist/init/detect.js +0 -336
  182. package/dist/init/detect.js.map +0 -1
  183. package/dist/init/index.d.ts +0 -14
  184. package/dist/init/index.js +0 -9
  185. package/dist/init/index.js.map +0 -1
  186. package/dist/init/init.d.ts +0 -68
  187. package/dist/init/init.js +0 -673
  188. package/dist/init/init.js.map +0 -1
  189. package/dist/init/mapper.d.ts +0 -160
  190. package/dist/init/mapper.js +0 -248
  191. package/dist/init/mapper.js.map +0 -1
  192. package/dist/init/prompts.d.ts +0 -70
  193. package/dist/init/prompts.js +0 -80
  194. package/dist/init/prompts.js.map +0 -1
  195. package/dist/init/secrets.d.ts +0 -18
  196. package/dist/init/secrets.js +0 -76
  197. package/dist/init/secrets.js.map +0 -1
  198. package/dist/init/seed.d.ts +0 -21
  199. package/dist/init/seed.js +0 -75
  200. package/dist/init/seed.js.map +0 -1
  201. package/dist/init/setup-runners.d.ts +0 -17
  202. package/dist/init/setup-runners.js +0 -70
  203. package/dist/init/setup-runners.js.map +0 -1
  204. package/dist/init/types.d.ts +0 -59
  205. package/dist/init/types.js +0 -10
  206. package/dist/init/types.js.map +0 -1
  207. package/dist/init/walker.d.ts +0 -53
  208. package/dist/init/walker.js +0 -460
  209. package/dist/init/walker.js.map +0 -1
  210. package/dist/init/workflow-block.d.ts +0 -34
  211. package/dist/init/workflow-block.js +0 -110
  212. package/dist/init/workflow-block.js.map +0 -1
  213. package/dist/logger.d.ts +0 -3
  214. package/dist/logger.js +0 -23
  215. package/dist/logger.js.map +0 -1
  216. package/dist/mcp/context.d.ts +0 -16
  217. package/dist/mcp/context.js +0 -8
  218. package/dist/mcp/context.js.map +0 -1
  219. package/dist/mcp/errors.d.ts +0 -17
  220. package/dist/mcp/errors.js +0 -23
  221. package/dist/mcp/errors.js.map +0 -1
  222. package/dist/mcp/index.d.ts +0 -10
  223. package/dist/mcp/index.js +0 -7
  224. package/dist/mcp/index.js.map +0 -1
  225. package/dist/mcp/path-allowlist.d.ts +0 -25
  226. package/dist/mcp/path-allowlist.js +0 -66
  227. package/dist/mcp/path-allowlist.js.map +0 -1
  228. package/dist/mcp/result.d.ts +0 -8
  229. package/dist/mcp/result.js +0 -18
  230. package/dist/mcp/result.js.map +0 -1
  231. package/dist/mcp/schemas.d.ts +0 -153
  232. package/dist/mcp/schemas.js +0 -135
  233. package/dist/mcp/schemas.js.map +0 -1
  234. package/dist/mcp/server.d.ts +0 -11
  235. package/dist/mcp/server.js +0 -58
  236. package/dist/mcp/server.js.map +0 -1
  237. package/dist/mcp/telemetry.d.ts +0 -15
  238. package/dist/mcp/telemetry.js +0 -13
  239. package/dist/mcp/telemetry.js.map +0 -1
  240. package/dist/mcp/tools/append.d.ts +0 -8
  241. package/dist/mcp/tools/append.js +0 -33
  242. package/dist/mcp/tools/append.js.map +0 -1
  243. package/dist/mcp/tools/archive.d.ts +0 -8
  244. package/dist/mcp/tools/archive.js +0 -49
  245. package/dist/mcp/tools/archive.js.map +0 -1
  246. package/dist/mcp/tools/ask-operator.d.ts +0 -34
  247. package/dist/mcp/tools/ask-operator.js +0 -93
  248. package/dist/mcp/tools/ask-operator.js.map +0 -1
  249. package/dist/mcp/tools/canonical-for-topic.d.ts +0 -6
  250. package/dist/mcp/tools/canonical-for-topic.js +0 -40
  251. package/dist/mcp/tools/canonical-for-topic.js.map +0 -1
  252. package/dist/mcp/tools/decision-get.d.ts +0 -6
  253. package/dist/mcp/tools/decision-get.js +0 -49
  254. package/dist/mcp/tools/decision-get.js.map +0 -1
  255. package/dist/mcp/tools/decisions-for-symbol.d.ts +0 -7
  256. package/dist/mcp/tools/decisions-for-symbol.js +0 -42
  257. package/dist/mcp/tools/decisions-for-symbol.js.map +0 -1
  258. package/dist/mcp/tools/decisions-in-scope.d.ts +0 -7
  259. package/dist/mcp/tools/decisions-in-scope.js +0 -47
  260. package/dist/mcp/tools/decisions-in-scope.js.map +0 -1
  261. package/dist/mcp/tools/drop-task.d.ts +0 -12
  262. package/dist/mcp/tools/drop-task.js +0 -47
  263. package/dist/mcp/tools/drop-task.js.map +0 -1
  264. package/dist/mcp/tools/get-full.d.ts +0 -7
  265. package/dist/mcp/tools/get-full.js +0 -46
  266. package/dist/mcp/tools/get-full.js.map +0 -1
  267. package/dist/mcp/tools/ground-get.d.ts +0 -7
  268. package/dist/mcp/tools/ground-get.js +0 -80
  269. package/dist/mcp/tools/ground-get.js.map +0 -1
  270. package/dist/mcp/tools/index.d.ts +0 -3
  271. package/dist/mcp/tools/index.js +0 -44
  272. package/dist/mcp/tools/index.js.map +0 -1
  273. package/dist/mcp/tools/invariant-get.d.ts +0 -6
  274. package/dist/mcp/tools/invariant-get.js +0 -49
  275. package/dist/mcp/tools/invariant-get.js.map +0 -1
  276. package/dist/mcp/tools/invariants-in-scope.d.ts +0 -7
  277. package/dist/mcp/tools/invariants-in-scope.js +0 -65
  278. package/dist/mcp/tools/invariants-in-scope.js.map +0 -1
  279. package/dist/mcp/tools/query-history.d.ts +0 -9
  280. package/dist/mcp/tools/query-history.js +0 -33
  281. package/dist/mcp/tools/query-history.js.map +0 -1
  282. package/dist/mcp/tools/record-decision.d.ts +0 -14
  283. package/dist/mcp/tools/record-decision.js +0 -101
  284. package/dist/mcp/tools/record-decision.js.map +0 -1
  285. package/dist/mcp/tools/record-run-event.d.ts +0 -10
  286. package/dist/mcp/tools/record-run-event.js +0 -28
  287. package/dist/mcp/tools/record-run-event.js.map +0 -1
  288. package/dist/mcp/tools/search.d.ts +0 -9
  289. package/dist/mcp/tools/search.js +0 -165
  290. package/dist/mcp/tools/search.js.map +0 -1
  291. package/dist/mcp/tools/supersedes-chain.d.ts +0 -6
  292. package/dist/mcp/tools/supersedes-chain.js +0 -66
  293. package/dist/mcp/tools/supersedes-chain.js.map +0 -1
  294. package/dist/mcp/tools/timeline.d.ts +0 -9
  295. package/dist/mcp/tools/timeline.js +0 -65
  296. package/dist/mcp/tools/timeline.js.map +0 -1
  297. package/dist/mcp/tools/types.d.ts +0 -9
  298. package/dist/mcp/tools/types.js +0 -2
  299. package/dist/mcp/tools/types.js.map +0 -1
  300. package/dist/mirror/clone.d.ts +0 -6
  301. package/dist/mirror/clone.js +0 -48
  302. package/dist/mirror/clone.js.map +0 -1
  303. package/dist/mirror/dirty-overlap.d.ts +0 -13
  304. package/dist/mirror/dirty-overlap.js +0 -77
  305. package/dist/mirror/dirty-overlap.js.map +0 -1
  306. package/dist/mirror/index.d.ts +0 -7
  307. package/dist/mirror/index.js +0 -7
  308. package/dist/mirror/index.js.map +0 -1
  309. package/dist/mirror/paths.d.ts +0 -18
  310. package/dist/mirror/paths.js +0 -45
  311. package/dist/mirror/paths.js.map +0 -1
  312. package/dist/mirror/push.d.ts +0 -9
  313. package/dist/mirror/push.js +0 -27
  314. package/dist/mirror/push.js.map +0 -1
  315. package/dist/mirror/state.d.ts +0 -4
  316. package/dist/mirror/state.js +0 -36
  317. package/dist/mirror/state.js.map +0 -1
  318. package/dist/mirror/sync.d.ts +0 -9
  319. package/dist/mirror/sync.js +0 -33
  320. package/dist/mirror/sync.js.map +0 -1
  321. package/dist/mirror/types.d.ts +0 -77
  322. package/dist/mirror/types.js +0 -2
  323. package/dist/mirror/types.js.map +0 -1
  324. package/dist/orchestrator/activity-summarizer.d.ts +0 -33
  325. package/dist/orchestrator/activity-summarizer.js +0 -120
  326. package/dist/orchestrator/activity-summarizer.js.map +0 -1
  327. package/dist/orchestrator/inbox.d.ts +0 -78
  328. package/dist/orchestrator/inbox.js +0 -115
  329. package/dist/orchestrator/inbox.js.map +0 -1
  330. package/dist/orchestrator/index.d.ts +0 -9
  331. package/dist/orchestrator/index.js +0 -7
  332. package/dist/orchestrator/index.js.map +0 -1
  333. package/dist/orchestrator/orchestrator.d.ts +0 -154
  334. package/dist/orchestrator/orchestrator.js +0 -2437
  335. package/dist/orchestrator/orchestrator.js.map +0 -1
  336. package/dist/orchestrator/prompt.d.ts +0 -19
  337. package/dist/orchestrator/prompt.js +0 -50
  338. package/dist/orchestrator/prompt.js.map +0 -1
  339. package/dist/orchestrator/queue.d.ts +0 -21
  340. package/dist/orchestrator/queue.js +0 -80
  341. package/dist/orchestrator/queue.js.map +0 -1
  342. package/dist/orchestrator/run-log.d.ts +0 -53
  343. package/dist/orchestrator/run-log.js +0 -92
  344. package/dist/orchestrator/run-log.js.map +0 -1
  345. package/dist/orchestrator/runner.d.ts +0 -56
  346. package/dist/orchestrator/runner.js +0 -172
  347. package/dist/orchestrator/runner.js.map +0 -1
  348. package/dist/orchestrator/tool-digest.d.ts +0 -35
  349. package/dist/orchestrator/tool-digest.js +0 -116
  350. package/dist/orchestrator/tool-digest.js.map +0 -1
  351. package/dist/orchestrator/types.d.ts +0 -263
  352. package/dist/orchestrator/types.js +0 -2
  353. package/dist/orchestrator/types.js.map +0 -1
  354. package/dist/orchestrator/workspace.d.ts +0 -21
  355. package/dist/orchestrator/workspace.js +0 -31
  356. package/dist/orchestrator/workspace.js.map +0 -1
  357. package/dist/profiles/index.d.ts +0 -3
  358. package/dist/profiles/index.js +0 -3
  359. package/dist/profiles/index.js.map +0 -1
  360. package/dist/profiles/registry.d.ts +0 -5
  361. package/dist/profiles/registry.js +0 -31
  362. package/dist/profiles/registry.js.map +0 -1
  363. package/dist/profiles/types.d.ts +0 -48
  364. package/dist/profiles/types.js +0 -11
  365. package/dist/profiles/types.js.map +0 -1
  366. package/dist/profiles/unknown.d.ts +0 -9
  367. package/dist/profiles/unknown.js +0 -17
  368. package/dist/profiles/unknown.js.map +0 -1
  369. package/dist/reviewer/index.d.ts +0 -6
  370. package/dist/reviewer/index.js +0 -5
  371. package/dist/reviewer/index.js.map +0 -1
  372. package/dist/reviewer/prompt.d.ts +0 -11
  373. package/dist/reviewer/prompt.js +0 -132
  374. package/dist/reviewer/prompt.js.map +0 -1
  375. package/dist/reviewer/remediation.d.ts +0 -15
  376. package/dist/reviewer/remediation.js +0 -61
  377. package/dist/reviewer/remediation.js.map +0 -1
  378. package/dist/reviewer/reviewer.d.ts +0 -9
  379. package/dist/reviewer/reviewer.js +0 -89
  380. package/dist/reviewer/reviewer.js.map +0 -1
  381. package/dist/reviewer/schema.d.ts +0 -45
  382. package/dist/reviewer/schema.js +0 -43
  383. package/dist/reviewer/schema.js.map +0 -1
  384. package/dist/reviewer/types.d.ts +0 -74
  385. package/dist/reviewer/types.js +0 -14
  386. package/dist/reviewer/types.js.map +0 -1
  387. package/dist/sensors/attestation.d.ts +0 -44
  388. package/dist/sensors/attestation.js +0 -262
  389. package/dist/sensors/attestation.js.map +0 -1
  390. package/dist/sensors/catalog.d.ts +0 -41
  391. package/dist/sensors/catalog.js +0 -123
  392. package/dist/sensors/catalog.js.map +0 -1
  393. package/dist/sensors/decisions.d.ts +0 -30
  394. package/dist/sensors/decisions.js +0 -393
  395. package/dist/sensors/decisions.js.map +0 -1
  396. package/dist/sensors/diff.d.ts +0 -27
  397. package/dist/sensors/diff.js +0 -148
  398. package/dist/sensors/diff.js.map +0 -1
  399. package/dist/sensors/index.d.ts +0 -13
  400. package/dist/sensors/index.js +0 -9
  401. package/dist/sensors/index.js.map +0 -1
  402. package/dist/sensors/remediation.d.ts +0 -20
  403. package/dist/sensors/remediation.js +0 -65
  404. package/dist/sensors/remediation.js.map +0 -1
  405. package/dist/sensors/runner.d.ts +0 -44
  406. package/dist/sensors/runner.js +0 -95
  407. package/dist/sensors/runner.js.map +0 -1
  408. package/dist/sensors/structural.d.ts +0 -30
  409. package/dist/sensors/structural.js +0 -204
  410. package/dist/sensors/structural.js.map +0 -1
  411. package/dist/sensors/stub-catalog.d.ts +0 -39
  412. package/dist/sensors/stub-catalog.js +0 -115
  413. package/dist/sensors/stub-catalog.js.map +0 -1
  414. package/dist/sensors/types.d.ts +0 -135
  415. package/dist/sensors/types.js +0 -14
  416. package/dist/sensors/types.js.map +0 -1
  417. package/dist/tier0/classify.d.ts +0 -5
  418. package/dist/tier0/classify.js +0 -91
  419. package/dist/tier0/classify.js.map +0 -1
  420. package/dist/tier0/index.d.ts +0 -3
  421. package/dist/tier0/index.js +0 -3
  422. package/dist/tier0/index.js.map +0 -1
  423. package/dist/tier0/ollama.d.ts +0 -22
  424. package/dist/tier0/ollama.js +0 -63
  425. package/dist/tier0/ollama.js.map +0 -1
  426. package/dist/tier0/types.d.ts +0 -24
  427. package/dist/tier0/types.js +0 -7
  428. package/dist/tier0/types.js.map +0 -1
  429. package/dist/tightener/index.d.ts +0 -4
  430. package/dist/tightener/index.js +0 -4
  431. package/dist/tightener/index.js.map +0 -1
  432. package/dist/tightener/prompt.d.ts +0 -3
  433. package/dist/tightener/prompt.js +0 -67
  434. package/dist/tightener/prompt.js.map +0 -1
  435. package/dist/tightener/schema.d.ts +0 -68
  436. package/dist/tightener/schema.js +0 -44
  437. package/dist/tightener/schema.js.map +0 -1
  438. package/dist/tightener/tighten.d.ts +0 -2
  439. package/dist/tightener/tighten.js +0 -66
  440. package/dist/tightener/tighten.js.map +0 -1
  441. package/dist/tightener/types.d.ts +0 -74
  442. package/dist/tightener/types.js +0 -6
  443. package/dist/tightener/types.js.map +0 -1
  444. package/dist/uat/bundle.d.ts +0 -68
  445. package/dist/uat/bundle.js +0 -168
  446. package/dist/uat/bundle.js.map +0 -1
  447. package/dist/uat/index.d.ts +0 -15
  448. package/dist/uat/index.js +0 -10
  449. package/dist/uat/index.js.map +0 -1
  450. package/dist/uat/persistent.d.ts +0 -64
  451. package/dist/uat/persistent.js +0 -206
  452. package/dist/uat/persistent.js.map +0 -1
  453. package/dist/uat/probes/cli.d.ts +0 -11
  454. package/dist/uat/probes/cli.js +0 -107
  455. package/dist/uat/probes/cli.js.map +0 -1
  456. package/dist/uat/probes/http.d.ts +0 -12
  457. package/dist/uat/probes/http.js +0 -139
  458. package/dist/uat/probes/http.js.map +0 -1
  459. package/dist/uat/probes/index.d.ts +0 -21
  460. package/dist/uat/probes/index.js +0 -30
  461. package/dist/uat/probes/index.js.map +0 -1
  462. package/dist/uat/probes/integration.d.ts +0 -18
  463. package/dist/uat/probes/integration.js +0 -188
  464. package/dist/uat/probes/integration.js.map +0 -1
  465. package/dist/uat/probes/sql/config.d.ts +0 -14
  466. package/dist/uat/probes/sql/config.js +0 -57
  467. package/dist/uat/probes/sql/config.js.map +0 -1
  468. package/dist/uat/probes/sql/index.d.ts +0 -29
  469. package/dist/uat/probes/sql/index.js +0 -43
  470. package/dist/uat/probes/sql/index.js.map +0 -1
  471. package/dist/uat/probes/sql/mysql.d.ts +0 -12
  472. package/dist/uat/probes/sql/mysql.js +0 -96
  473. package/dist/uat/probes/sql/mysql.js.map +0 -1
  474. package/dist/uat/probes/sql/pg.d.ts +0 -20
  475. package/dist/uat/probes/sql/pg.js +0 -102
  476. package/dist/uat/probes/sql/pg.js.map +0 -1
  477. package/dist/uat/probes/sql/sqlite.d.ts +0 -9
  478. package/dist/uat/probes/sql/sqlite.js +0 -58
  479. package/dist/uat/probes/sql/sqlite.js.map +0 -1
  480. package/dist/uat/probes/sql/types.d.ts +0 -46
  481. package/dist/uat/probes/sql/types.js +0 -10
  482. package/dist/uat/probes/sql/types.js.map +0 -1
  483. package/dist/uat/probes/sql.d.ts +0 -9
  484. package/dist/uat/probes/sql.js +0 -119
  485. package/dist/uat/probes/sql.js.map +0 -1
  486. package/dist/uat/probes/ui.d.ts +0 -19
  487. package/dist/uat/probes/ui.js +0 -244
  488. package/dist/uat/probes/ui.js.map +0 -1
  489. package/dist/uat/prompt.d.ts +0 -10
  490. package/dist/uat/prompt.js +0 -85
  491. package/dist/uat/prompt.js.map +0 -1
  492. package/dist/uat/question.d.ts +0 -50
  493. package/dist/uat/question.js +0 -139
  494. package/dist/uat/question.js.map +0 -1
  495. package/dist/uat/rejection.d.ts +0 -58
  496. package/dist/uat/rejection.js +0 -163
  497. package/dist/uat/rejection.js.map +0 -1
  498. package/dist/uat/runner.d.ts +0 -6
  499. package/dist/uat/runner.js +0 -96
  500. package/dist/uat/runner.js.map +0 -1
  501. package/dist/uat/schema.d.ts +0 -322
  502. package/dist/uat/schema.js +0 -189
  503. package/dist/uat/schema.js.map +0 -1
  504. package/dist/uat/types.d.ts +0 -268
  505. package/dist/uat/types.js +0 -18
  506. package/dist/uat/types.js.map +0 -1
  507. package/dist/uat/uat.d.ts +0 -89
  508. package/dist/uat/uat.js +0 -256
  509. package/dist/uat/uat.js.map +0 -1
  510. package/dist/voice/index.d.ts +0 -4
  511. package/dist/voice/index.js +0 -4
  512. package/dist/voice/index.js.map +0 -1
  513. package/dist/voice/model.d.ts +0 -23
  514. package/dist/voice/model.js +0 -46
  515. package/dist/voice/model.js.map +0 -1
  516. package/dist/voice/pipe.d.ts +0 -9
  517. package/dist/voice/pipe.js +0 -47
  518. package/dist/voice/pipe.js.map +0 -1
  519. package/dist/voice/transcribe.d.ts +0 -3
  520. package/dist/voice/transcribe.js +0 -43
  521. package/dist/voice/transcribe.js.map +0 -1
  522. package/dist/voice/types.d.ts +0 -26
  523. package/dist/voice/types.js +0 -9
  524. package/dist/voice/types.js.map +0 -1
  525. package/dist/watch/daemon.d.ts +0 -21
  526. package/dist/watch/daemon.js +0 -143
  527. package/dist/watch/daemon.js.map +0 -1
  528. package/dist/watch/index.d.ts +0 -4
  529. package/dist/watch/index.js +0 -3
  530. package/dist/watch/index.js.map +0 -1
  531. package/dist/watch/regenerate.d.ts +0 -25
  532. package/dist/watch/regenerate.js +0 -51
  533. package/dist/watch/regenerate.js.map +0 -1
@@ -1,439 +0,0 @@
1
- /**
2
- * Phase 14.x — assertion refinement.
3
- *
4
- * Lifts the loose `candidate_assertions:` set on an accepted decision into
5
- * the strict `assertions:` shape that Layer-D sensors enforce.
6
- *
7
- * Flow:
8
- * read accepted decision file
9
- * → proposeStrictAssertions (Tier-1 LLM)
10
- * → re-validate each lift via DecisionAssertion zod (auto-demote on fail)
11
- * → adapter.requestDialog: a) approve_all b) approve_high_only
12
- * c) demote_all d) skip
13
- * → liftCandidatesToAssertions writes the file
14
- * → ledger regenerates so the new strict assertions become live
15
- *
16
- * The proposer runs READ-ONLY. The writer + dialog drive everything that
17
- * touches the filesystem. A proposer failure (timeout, malformed JSON,
18
- * subprocess crash) does NOT roll back the prior accept — it returns
19
- * `proposer_failed: true` and leaves candidates under their loose
20
- * `candidate_assertions:` field for the next refine pass.
21
- */
22
- import { readFileSync } from "node:fs";
23
- import { join } from "node:path";
24
- import { logger } from "../logger.js";
25
- import { runClaude } from "../claude/index.js";
26
- import { DecisionAssertion } from "../ground/schemas.js";
27
- import { parseFrontmatter } from "../ground/frontmatter.js";
28
- import { REFINEMENT_PROPOSER_SYSTEM_PROMPT, buildRefinementProposerUserPrompt, } from "./refinement-prompt.js";
29
- import { REFINEMENT_PROPOSER_OUTPUT_SCHEMA } from "./refinement-schema.js";
30
- import { liftCandidatesToAssertions } from "./writer.js";
31
- const log = logger("decision-capture.refinement");
32
- const RATIONALE_DISPLAY_CAP = 240;
33
- /** Max chars in the refinement dialog prompt body. Discord caps at 2000. */
34
- const DIALOG_PROMPT_CHAR_CAP = 1_700;
35
- const CHOICE_APPROVE_ALL = "a";
36
- const CHOICE_APPROVE_HIGH_ONLY = "b";
37
- const CHOICE_DEMOTE_ALL = "c";
38
- const CHOICE_SKIP = "d";
39
- /**
40
- * Single Tier-1 (Haiku default) LLM call producing one proposal per
41
- * input candidate. The output is gated by the JSON Schema on the CLI
42
- * side and re-validated structurally here.
43
- */
44
- export async function proposeStrictAssertions(input) {
45
- if (input.candidates.length === 0) {
46
- return { output: { proposals: [] }, duration_ms: 0 };
47
- }
48
- const userPrompt = buildRefinementProposerUserPrompt(input);
49
- log.info({
50
- decision_id: input.decision_id,
51
- candidates: input.candidates.length,
52
- tier: input.tier,
53
- }, "refinement-proposer dispatch");
54
- const result = await runClaude({
55
- tier: input.tier,
56
- prompt: userPrompt,
57
- system: REFINEMENT_PROPOSER_SYSTEM_PROMPT,
58
- jsonSchema: REFINEMENT_PROPOSER_OUTPUT_SCHEMA,
59
- timeoutMs: input.timeout_ms ?? 120_000,
60
- });
61
- if (!isRefinerOutput(result.parsed)) {
62
- throw new Error(`refinement-proposer returned malformed output. preview: ${result.text.slice(0, 200)}`);
63
- }
64
- log.info({
65
- decision_id: input.decision_id,
66
- proposals: result.parsed.proposals.length,
67
- duration_ms: result.durationMs,
68
- }, "refinement-proposer complete");
69
- return {
70
- output: result.parsed,
71
- duration_ms: result.durationMs,
72
- ...(result.usage !== undefined
73
- ? {
74
- usage: {
75
- ...(result.usage["input_tokens"] !== undefined
76
- ? { input_tokens: result.usage["input_tokens"] }
77
- : {}),
78
- ...(result.usage["output_tokens"] !== undefined
79
- ? { output_tokens: result.usage["output_tokens"] }
80
- : {}),
81
- },
82
- }
83
- : {}),
84
- };
85
- }
86
- export async function runDecisionRefinement(args) {
87
- const tier = args.tier ?? "haiku";
88
- const propose = args.proposerOverride ?? proposeStrictAssertions;
89
- const decision = readAcceptedDecision({
90
- repoRoot: args.repoRoot,
91
- decisionId: args.decisionId,
92
- });
93
- if (decision.candidates.length === 0) {
94
- log.info({ decision_id: args.decisionId }, "no candidates to refine — skipping");
95
- return emptyResult(args.decisionId, "skip");
96
- }
97
- let proposerResult = null;
98
- try {
99
- proposerResult = await propose({
100
- decision_id: args.decisionId,
101
- subject: decision.subject,
102
- summary: decision.summary,
103
- scope_globs: decision.scope_globs,
104
- candidates: decision.candidates,
105
- tier,
106
- ...(args.proposerTimeoutMs !== undefined
107
- ? { timeout_ms: args.proposerTimeoutMs }
108
- : {}),
109
- });
110
- }
111
- catch (err) {
112
- log.error({ err: String(err), decision_id: args.decisionId }, "refinement-proposer threw — leaving candidates loose");
113
- return { ...emptyResult(args.decisionId, "skip"), proposer_failed: true };
114
- }
115
- // Align proposals to candidates by id; fill gaps with auto-demote so a
116
- // partial proposer response never silently drops a candidate.
117
- const aligned = alignProposalsToCandidates({
118
- decisionId: args.decisionId,
119
- candidates: decision.candidates,
120
- proposals: proposerResult.output.proposals,
121
- });
122
- // Re-validate each lift via the production zod. Anything that doesn't
123
- // pass becomes a demote with the validation error in the rationale.
124
- const validated = aligned.map((p) => validateLift(p));
125
- const dialogPrompt = renderDialogPrompt({
126
- decisionId: args.decisionId,
127
- subject: decision.subject,
128
- proposals: validated,
129
- });
130
- const dialogSpec = {
131
- bundleId: `refine:${args.decisionId}`,
132
- prompt: dialogPrompt,
133
- choices: [
134
- { id: CHOICE_APPROVE_ALL, label: "🟢 approve all (lift + demote per recs)" },
135
- { id: CHOICE_APPROVE_HIGH_ONLY, label: "🟡 lift HIGH-confidence only" },
136
- { id: CHOICE_DEMOTE_ALL, label: "🟠 demote all to human_review_hint" },
137
- { id: CHOICE_SKIP, label: "🔴 skip refinement" },
138
- { id: "e_other", label: "E) Other" },
139
- ],
140
- timeoutMs: args.dialogTimeoutMs ?? 60_000,
141
- };
142
- if (args.channelId !== undefined)
143
- dialogSpec.channelId = args.channelId;
144
- const response = await args.adapter.requestDialog(dialogSpec);
145
- const choice = mapDialogChoice(response);
146
- // Compose the final per-candidate verdict map from the operator's choice.
147
- const finalVerdicts = applyOperatorChoice({
148
- proposals: validated,
149
- candidates: decision.candidates,
150
- choice,
151
- });
152
- if (choice === "skip") {
153
- log.info({ decision_id: args.decisionId }, "operator skipped refinement");
154
- return {
155
- decision_id: args.decisionId,
156
- proposals: validated,
157
- operator_choice: "skip",
158
- lifted_count: 0,
159
- demoted_count: 0,
160
- skipped_count: validated.length,
161
- };
162
- }
163
- const liftResult = liftCandidatesToAssertions({
164
- repoRoot: args.repoRoot,
165
- decisionId: args.decisionId,
166
- verdicts: finalVerdicts,
167
- });
168
- log.info({
169
- decision_id: args.decisionId,
170
- operator_choice: choice,
171
- lifted: liftResult.lifted_count,
172
- demoted: liftResult.demoted_count,
173
- kept_candidate: liftResult.skipped_count,
174
- }, "refinement applied");
175
- return {
176
- decision_id: args.decisionId,
177
- proposals: validated,
178
- operator_choice: choice,
179
- lifted_count: liftResult.lifted_count,
180
- demoted_count: liftResult.demoted_count,
181
- skipped_count: liftResult.skipped_count,
182
- };
183
- }
184
- function readAcceptedDecision(args) {
185
- const relPath = `.harness/ground/decisions/${args.decisionId}.md`;
186
- const abs = join(args.repoRoot, relPath);
187
- const raw = readFileSync(abs, "utf8");
188
- // parseFrontmatter validates with ProvenanceFrontmatter zod which is a
189
- // passthrough — extra keys (candidate_assertions, scope_globs, title)
190
- // survive in the returned object.
191
- const parsed = parseFrontmatter(raw);
192
- const fm = (parsed.frontmatter ?? {});
193
- const candidatesRaw = fm["candidate_assertions"];
194
- const candidates = Array.isArray(candidatesRaw)
195
- ? candidatesRaw.flatMap((c, idx) => {
196
- const kind = c["kind"];
197
- const description = c["description"];
198
- if (typeof kind !== "string" || typeof description !== "string") {
199
- log.warn({ decision_id: args.decisionId, idx }, "dropping malformed candidate row from frontmatter");
200
- return [];
201
- }
202
- const id = typeof c["id"] === "string"
203
- ? c["id"]
204
- : `${args.decisionId}-A${(idx + 1).toString().padStart(2, "0")}`;
205
- const params = c["parameters"];
206
- const out = {
207
- id,
208
- kind: kind,
209
- description,
210
- ...(params !== undefined && typeof params === "object" && params !== null
211
- ? { parameters: params }
212
- : {}),
213
- };
214
- return [out];
215
- })
216
- : [];
217
- return {
218
- subject: typeof fm["title"] === "string" ? fm["title"] : args.decisionId,
219
- summary: extractSummaryFromBody(parsed.body),
220
- scope_globs: Array.isArray(fm["scope_globs"])
221
- ? fm["scope_globs"].filter((g) => typeof g === "string")
222
- : [],
223
- candidates,
224
- };
225
- }
226
- function extractSummaryFromBody(body) {
227
- // Body starts with `# DEC-NNNN — title\n\n## Summary\n<text>\n\n## ...`
228
- const summaryHeader = body.indexOf("## Summary");
229
- if (summaryHeader === -1)
230
- return "";
231
- const after = body.slice(summaryHeader + "## Summary".length);
232
- const nextSection = after.search(/\n##\s/);
233
- const slice = nextSection === -1 ? after : after.slice(0, nextSection);
234
- return slice.trim();
235
- }
236
- function alignProposalsToCandidates(args) {
237
- const byId = new Map();
238
- for (const p of args.proposals)
239
- byId.set(p.candidate_id, p);
240
- return args.candidates.map((c, idx) => {
241
- const id = c.id ?? `${args.decisionId}-A${(idx + 1).toString().padStart(2, "0")}`;
242
- const found = byId.get(id);
243
- if (found !== undefined)
244
- return found;
245
- log.warn({ decision_id: args.decisionId, candidate_id: id }, "proposer dropped a candidate — auto-demoting");
246
- return {
247
- candidate_id: id,
248
- candidate_kind: c.kind,
249
- status: "demote",
250
- confidence_signal: "low",
251
- rationale: "auto-demoted: proposer did not return a proposal for this candidate",
252
- };
253
- });
254
- }
255
- function validateLift(p) {
256
- if (p.status !== "lift")
257
- return p;
258
- // human_review_hint always lifts cleanly: the strict shape only requires
259
- // `description`. If the proposer didn't provide one, fall back to the
260
- // candidate kind's name.
261
- if (p.candidate_kind === "human_review_hint") {
262
- const description = typeof p.strict_assertion?.["description"] === "string"
263
- ? p.strict_assertion["description"]
264
- : (p.rationale || "human review required");
265
- return {
266
- ...p,
267
- strict_assertion: { description },
268
- };
269
- }
270
- if (p.strict_assertion === undefined) {
271
- const { strict_assertion: _omit, ...rest } = p;
272
- void _omit;
273
- return {
274
- ...rest,
275
- status: "demote",
276
- rationale: `auto-demoted: lift verdict missing strict_assertion. Original rationale: ${p.rationale}`,
277
- };
278
- }
279
- // Inject id + kind to match the discriminated DecisionAssertion zod.
280
- // Note: id is a placeholder for validation only; the writer mints the
281
- // canonical `<DEC-id>-A<NN>` id before persisting.
282
- const candidate = {
283
- id: p.candidate_id,
284
- kind: p.candidate_kind,
285
- ...p.strict_assertion,
286
- };
287
- const parse = DecisionAssertion.safeParse(candidate);
288
- if (!parse.success) {
289
- const { strict_assertion: _omit, ...rest } = p;
290
- void _omit;
291
- return {
292
- ...rest,
293
- status: "demote",
294
- rationale: `auto-demoted: zod validation failed (${parse.error.issues.map((e) => `${e.path.join(".")}: ${e.message}`).slice(0, 2).join("; ")})`,
295
- };
296
- }
297
- return p;
298
- }
299
- function mapDialogChoice(response) {
300
- if (response.timedOut)
301
- return "skip";
302
- switch (response.choiceId) {
303
- case CHOICE_APPROVE_ALL:
304
- return "approve_all";
305
- case CHOICE_APPROVE_HIGH_ONLY:
306
- return "approve_high_only";
307
- case CHOICE_DEMOTE_ALL:
308
- return "demote_all";
309
- case CHOICE_SKIP:
310
- return "skip";
311
- default:
312
- // Unknown / E) Other → conservative skip; preserves candidates.
313
- return "skip";
314
- }
315
- }
316
- function applyOperatorChoice(args) {
317
- const descById = new Map();
318
- for (let i = 0; i < args.candidates.length; i++) {
319
- const c = args.candidates[i];
320
- if (c === undefined)
321
- continue;
322
- const id = c.id ?? `unknown-A${(i + 1).toString().padStart(2, "0")}`;
323
- descById.set(id, c.description);
324
- }
325
- return args.proposals.map((p) => {
326
- const description = descById.get(p.candidate_id) ?? p.rationale;
327
- const base = {
328
- candidate_id: p.candidate_id,
329
- candidate_kind: p.candidate_kind,
330
- candidate_description: description,
331
- status: "skip",
332
- };
333
- if (args.choice === "skip") {
334
- return { ...base, status: "skip" };
335
- }
336
- if (args.choice === "demote_all") {
337
- return { ...base, status: "demote" };
338
- }
339
- if (args.choice === "approve_all") {
340
- if (p.status === "lift") {
341
- return p.strict_assertion !== undefined
342
- ? { ...base, status: "lift", strict_assertion: p.strict_assertion }
343
- : { ...base, status: "demote" };
344
- }
345
- return { ...base, status: p.status };
346
- }
347
- // approve_high_only
348
- if (p.status === "lift" && p.confidence_signal === "high") {
349
- return p.strict_assertion !== undefined
350
- ? { ...base, status: "lift", strict_assertion: p.strict_assertion }
351
- : { ...base, status: "skip" };
352
- }
353
- if (p.status === "demote") {
354
- return { ...base, status: "demote" };
355
- }
356
- return { ...base, status: "skip" };
357
- });
358
- }
359
- function renderDialogPrompt(args) {
360
- const lines = [];
361
- lines.push(`Refine ${args.decisionId} — ${args.proposals.length} candidate${args.proposals.length === 1 ? "" : "s"}`);
362
- lines.push(`"${args.subject}"`);
363
- lines.push("");
364
- for (const p of args.proposals) {
365
- const marker = p.status === "lift" && p.confidence_signal === "high"
366
- ? "✅"
367
- : p.status === "lift"
368
- ? "🟡"
369
- : p.status === "demote"
370
- ? "🟠"
371
- : "⚪";
372
- const rationale = p.rationale.length > RATIONALE_DISPLAY_CAP
373
- ? p.rationale.slice(0, RATIONALE_DISPLAY_CAP) + "…"
374
- : p.rationale;
375
- lines.push(`${marker} ${p.candidate_id} [${p.candidate_kind}] ${p.confidence_signal.toUpperCase()} → ${p.status}`);
376
- lines.push(` ${rationale}`);
377
- if (p.status === "lift" && p.strict_assertion !== undefined) {
378
- const preview = JSON.stringify(p.strict_assertion);
379
- const previewClipped = preview.length > 160 ? preview.slice(0, 160) + "…" : preview;
380
- lines.push(` shape: ${previewClipped}`);
381
- }
382
- }
383
- lines.push("");
384
- const recLifts = args.proposals.filter((p) => p.status === "lift").length;
385
- const recDemotes = args.proposals.filter((p) => p.status === "demote").length;
386
- const recSkips = args.proposals.filter((p) => p.status === "skip").length;
387
- const highOnly = args.proposals.filter((p) => p.status === "lift" && p.confidence_signal === "high").length;
388
- lines.push(`Recs: lift=${recLifts}, demote=${recDemotes}, skip=${recSkips}. HIGH-only lifts=${highOnly}.`);
389
- let body = lines.join("\n");
390
- if (body.length > DIALOG_PROMPT_CHAR_CAP) {
391
- body = body.slice(0, DIALOG_PROMPT_CHAR_CAP - 16) + "\n…[truncated]";
392
- }
393
- return body;
394
- }
395
- function emptyResult(decisionId, choice) {
396
- return {
397
- decision_id: decisionId,
398
- proposals: [],
399
- operator_choice: choice,
400
- lifted_count: 0,
401
- demoted_count: 0,
402
- skipped_count: 0,
403
- };
404
- }
405
- function isRefinerOutput(value) {
406
- if (typeof value !== "object" || value === null)
407
- return false;
408
- const v = value;
409
- if (!Array.isArray(v["proposals"]))
410
- return false;
411
- for (const p of v["proposals"]) {
412
- if (typeof p !== "object" || p === null)
413
- return false;
414
- const pp = p;
415
- if (typeof pp["candidate_id"] !== "string")
416
- return false;
417
- if (typeof pp["candidate_kind"] !== "string")
418
- return false;
419
- if (pp["status"] !== "lift" &&
420
- pp["status"] !== "demote" &&
421
- pp["status"] !== "skip") {
422
- return false;
423
- }
424
- if (pp["confidence_signal"] !== "high" &&
425
- pp["confidence_signal"] !== "medium" &&
426
- pp["confidence_signal"] !== "low") {
427
- return false;
428
- }
429
- if (typeof pp["rationale"] !== "string")
430
- return false;
431
- if (pp["strict_assertion"] !== undefined &&
432
- (typeof pp["strict_assertion"] !== "object" ||
433
- pp["strict_assertion"] === null)) {
434
- return false;
435
- }
436
- }
437
- return true;
438
- }
439
- //# sourceMappingURL=refinement.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"refinement.js","sourceRoot":"","sources":["../../src/decision-capture/refinement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EACL,iCAAiC,EACjC,iCAAiC,GAClC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iCAAiC,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAoB,MAAM,aAAa,CAAC;AAS3E,MAAM,GAAG,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;AAElD,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,4EAA4E;AAC5E,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAErC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,wBAAwB,GAAG,GAAG,CAAC;AACrC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,WAAW,GAAG,GAAG,CAAC;AAQxB;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAmB;IAEnB,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;IACD,MAAM,UAAU,GAAG,iCAAiC,CAAC,KAAK,CAAC,CAAC;IAC5D,GAAG,CAAC,IAAI,CACN;QACE,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;QACnC,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,EACD,8BAA8B,CAC/B,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;QAC7B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,iCAAiC;QACzC,UAAU,EAAE,iCAA2C;QACvD,SAAS,EAAE,KAAK,CAAC,UAAU,IAAI,OAAO;KACvC,CAAC,CAAC;IAEH,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,2DAA2D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACvF,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,IAAI,CACN;QACE,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM;QACzC,WAAW,EAAE,MAAM,CAAC,UAAU;KAC/B,EACD,8BAA8B,CAC/B,CAAC;IAEF,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW,EAAE,MAAM,CAAC,UAAU;QAC9B,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS;YAC5B,CAAC,CAAC;gBACE,KAAK,EAAE;oBACL,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,SAAS;wBAC5C,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;wBAChD,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,SAAS;wBAC7C,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;wBAClD,CAAC,CAAC,EAAE,CAAC;iBACR;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAwBD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAA+B;IAE/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,IAAI,uBAAuB,CAAC;IAEjE,MAAM,QAAQ,GAAG,oBAAoB,CAAC;QACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,IAAI,CACN,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,EAChC,oCAAoC,CACrC,CAAC;QACF,OAAO,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,cAAc,GAA0B,IAAI,CAAC;IACjD,IAAI,CAAC;QACH,cAAc,GAAG,MAAM,OAAO,CAAC;YAC7B,WAAW,EAAE,IAAI,CAAC,UAAU;YAC5B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,IAAI;YACJ,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,SAAS;gBACtC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBACxC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CACP,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,EAClD,sDAAsD,CACvD,CAAC;QACF,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IAC5E,CAAC;IAED,uEAAuE;IACvE,8DAA8D;IAC9D,MAAM,OAAO,GAAG,0BAA0B,CAAC;QACzC,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,SAAS;KAC3C,CAAC,CAAC;IAEH,sEAAsE;IACtE,oEAAoE;IACpE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtD,MAAM,YAAY,GAAG,kBAAkB,CAAC;QACtC,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,SAAS;KACrB,CAAC,CAAC;IACH,MAAM,UAAU,GAAe;QAC7B,QAAQ,EAAE,UAAU,IAAI,CAAC,UAAU,EAAE;QACrC,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE;YACP,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,yCAAyC,EAAE;YAC5E,EAAE,EAAE,EAAE,wBAAwB,EAAE,KAAK,EAAE,8BAA8B,EAAE;YACvE,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,oCAAoC,EAAE;YACtE,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,oBAAoB,EAAE;YAChD,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE;SACrC;QACD,SAAS,EAAE,IAAI,CAAC,eAAe,IAAI,MAAM;KAC1C,CAAC;IACF,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;QAAE,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAExE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAEzC,0EAA0E;IAC1E,MAAM,aAAa,GAAG,mBAAmB,CAAC;QACxC,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,MAAM;KACP,CAAC,CAAC;IAEH,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,6BAA6B,CAAC,CAAC;QAC1E,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,UAAU;YAC5B,SAAS,EAAE,SAAS;YACpB,eAAe,EAAE,MAAM;YACvB,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,SAAS,CAAC,MAAM;SAChC,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,0BAA0B,CAAC;QAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,aAAa;KACxB,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CACN;QACE,WAAW,EAAE,IAAI,CAAC,UAAU;QAC5B,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,UAAU,CAAC,YAAY;QAC/B,OAAO,EAAE,UAAU,CAAC,aAAa;QACjC,cAAc,EAAE,UAAU,CAAC,aAAa;KACzC,EACD,oBAAoB,CACrB,CAAC;IAEF,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,UAAU;QAC5B,SAAS,EAAE,SAAS;QACpB,eAAe,EAAE,MAAM;QACvB,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,aAAa,EAAE,UAAU,CAAC,aAAa;QACvC,aAAa,EAAE,UAAU,CAAC,aAAa;KACxC,CAAC;AACJ,CAAC;AAWD,SAAS,oBAAoB,CAAC,IAG7B;IACC,MAAM,OAAO,GAAG,6BAA6B,IAAI,CAAC,UAAU,KAAK,CAAC;IAClE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACtC,uEAAuE;IACvE,sEAAsE;IACtE,kCAAkC;IAClC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAA4B,CAAC;IACjE,MAAM,aAAa,GAAG,EAAE,CAAC,sBAAsB,CAAC,CAAC;IACjD,MAAM,UAAU,GAAyB,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;QACnE,CAAC,CAAE,aAAgD,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACnE,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,WAAW,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;YACrC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;gBAChE,GAAG,CAAC,IAAI,CACN,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,EACrC,mDAAmD,CACpD,CAAC;gBACF,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,EAAE,GACN,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ;gBACzB,CAAC,CAAE,CAAC,CAAC,IAAI,CAAY;gBACrB,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YACrE,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAuB;gBAC9B,EAAE;gBACF,IAAI,EAAE,IAAkC;gBACxC,WAAW;gBACX,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;oBACvE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAiC,EAAE;oBACnD,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;QACL,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC,OAAO,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU;QACpF,OAAO,EAAE,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5C,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;YAC3C,CAAC,CAAE,EAAE,CAAC,aAAa,CAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;YACpF,CAAC,CAAC,EAAE;QACN,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,wEAAwE;IACxE,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACjD,IAAI,aAAa,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,0BAA0B,CAAC,IAInC;IACC,MAAM,IAAI,GAAG,IAAI,GAAG,EAA8B,CAAC;IACnD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS;QAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QACpC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,UAAU,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAClF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACtC,GAAG,CAAC,IAAI,CACN,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,EAAE,EAClD,8CAA8C,CAC/C,CAAC;QACF,OAAO;YACL,YAAY,EAAE,EAAE;YAChB,cAAc,EAAE,CAAC,CAAC,IAAI;YACtB,MAAM,EAAE,QAAQ;YAChB,iBAAiB,EAAE,KAAK;YACxB,SAAS,EAAE,qEAAqE;SACjF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,CAAqB;IACzC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC;IAClC,yEAAyE;IACzE,sEAAsE;IACtE,yBAAyB;IACzB,IAAI,CAAC,CAAC,cAAc,KAAK,mBAAmB,EAAE,CAAC;QAC7C,MAAM,WAAW,GACf,OAAO,CAAC,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,KAAK,QAAQ;YACrD,CAAC,CAAE,CAAC,CAAC,gBAAgB,CAAC,aAAa,CAAY;YAC/C,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,uBAAuB,CAAC,CAAC;QAC/C,OAAO;YACL,GAAG,CAAC;YACJ,gBAAgB,EAAE,EAAE,WAAW,EAAE;SAClC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/C,KAAK,KAAK,CAAC;QACX,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,4EAA4E,CAAC,CAAC,SAAS,EAAE;SACrG,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,sEAAsE;IACtE,mDAAmD;IACnD,MAAM,SAAS,GAAG;QAChB,EAAE,EAAE,CAAC,CAAC,YAAY;QAClB,IAAI,EAAE,CAAC,CAAC,cAAc;QACtB,GAAG,CAAC,CAAC,gBAAgB;KACtB,CAAC;IACF,MAAM,KAAK,GAAG,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/C,KAAK,KAAK,CAAC;QACX,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,wCAAwC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SAChJ,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,eAAe,CAAC,QAIxB;IACC,IAAI,QAAQ,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC;IACrC,QAAQ,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC1B,KAAK,kBAAkB;YACrB,OAAO,aAAa,CAAC;QACvB,KAAK,wBAAwB;YAC3B,OAAO,mBAAmB,CAAC;QAC7B,KAAK,iBAAiB;YACpB,OAAO,YAAY,CAAC;QACtB,KAAK,WAAW;YACd,OAAO,MAAM,CAAC;QAChB;YACE,gEAAgE;YAChE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAI5B;IACC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,SAAS;YAAE,SAAS;QAC9B,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACrE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9B,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;QAChE,MAAM,IAAI,GAAgB;YACxB,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,cAAc,EAAE,CAAC,CAAC,cAAc;YAChC,qBAAqB,EAAE,WAAW;YAClC,MAAM,EAAE,MAAM;SACf,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC3B,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACrC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACjC,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QACvC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAClC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACxB,OAAO,CAAC,CAAC,gBAAgB,KAAK,SAAS;oBACrC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,EAAE;oBACnE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YACpC,CAAC;YACD,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QACvC,CAAC;QACD,oBAAoB;QACpB,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,iBAAiB,KAAK,MAAM,EAAE,CAAC;YAC1D,OAAO,CAAC,CAAC,gBAAgB,KAAK,SAAS;gBACrC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,EAAE;gBACnE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,IAI3B;IACC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,aAAa,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACtH,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,MAAM,MAAM,GACV,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,iBAAiB,KAAK,MAAM;YACnD,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM;gBACnB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ;oBACrB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,GAAG,CAAC;QACd,MAAM,SAAS,GACb,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,qBAAqB;YACxC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,GAAG,GAAG;YACnD,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClB,KAAK,CAAC,IAAI,CACR,GAAG,MAAM,IAAI,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CACvG,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;YACnD,MAAM,cAAc,GAClB,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/D,KAAK,CAAC,IAAI,CAAC,aAAa,cAAc,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,iBAAiB,KAAK,MAAM,CAC7D,CAAC,MAAM,CAAC;IACT,KAAK,CAAC,IAAI,CACR,cAAc,QAAQ,YAAY,UAAU,UAAU,QAAQ,qBAAqB,QAAQ,GAAG,CAC/F,CAAC;IAEF,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAI,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;QACzC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,GAAG,EAAE,CAAC,GAAG,gBAAgB,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAClB,UAAkB,EAClB,MAA2C;IAE3C,OAAO;QACL,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,EAAE;QACb,eAAe,EAAE,MAAM;QACvB,YAAY,EAAE,CAAC;QACf,aAAa,EAAE,CAAC;QAChB,aAAa,EAAE,CAAC;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAc,EAAE,CAAC;QAC5C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACtD,MAAM,EAAE,GAAG,CAA4B,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC,cAAc,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACzD,IAAI,OAAO,EAAE,CAAC,gBAAgB,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC3D,IACE,EAAE,CAAC,QAAQ,CAAC,KAAK,MAAM;YACvB,EAAE,CAAC,QAAQ,CAAC,KAAK,QAAQ;YACzB,EAAE,CAAC,QAAQ,CAAC,KAAK,MAAM,EACvB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IACE,EAAE,CAAC,mBAAmB,CAAC,KAAK,MAAM;YAClC,EAAE,CAAC,mBAAmB,CAAC,KAAK,QAAQ;YACpC,EAAE,CAAC,mBAAmB,CAAC,KAAK,KAAK,EACjC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACtD,IACE,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS;YACpC,CAAC,OAAO,EAAE,CAAC,kBAAkB,CAAC,KAAK,QAAQ;gBACzC,EAAE,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC,EAClC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,70 +0,0 @@
1
- /**
2
- * JSON Schema enforced by `claude --json-schema` for the decision-extractor
3
- * output. Mirrors `DecisionExtractorOutput` exactly.
4
- *
5
- * Assertion kinds match the production set in `src/ground/schemas.ts`. The
6
- * extractor's `parameters` is a free-form object; the harness materializes
7
- * the assertion into the draft as-is and lets sensors validate at evaluation
8
- * time. Rejecting at extract time would block the operator's intent over
9
- * a malformed parameter the agent might still get right on the next pass.
10
- */
11
- export declare const DECISION_EXTRACTOR_OUTPUT_SCHEMA: {
12
- readonly type: "object";
13
- readonly additionalProperties: false;
14
- readonly properties: {
15
- readonly subject: {
16
- readonly type: "string";
17
- readonly minLength: 1;
18
- };
19
- readonly summary: {
20
- readonly type: "string";
21
- readonly minLength: 1;
22
- };
23
- readonly scope_globs: {
24
- readonly type: "array";
25
- readonly items: {
26
- readonly type: "string";
27
- };
28
- };
29
- readonly supersedes: {
30
- readonly anyOf: readonly [{
31
- readonly type: "string";
32
- readonly pattern: "^DEC-\\d{4,}$";
33
- }, {
34
- readonly type: "null";
35
- }];
36
- };
37
- readonly candidate_assertions: {
38
- readonly type: "array";
39
- readonly maxItems: 3;
40
- readonly items: {
41
- readonly type: "object";
42
- readonly additionalProperties: false;
43
- readonly properties: {
44
- readonly id: {
45
- readonly type: "string";
46
- };
47
- readonly kind: {
48
- readonly enum: readonly ["schema_must_contain", "text_must_match", "text_must_not_match", "index_must_exist", "ast_pattern", "file_must_not_be_modified", "query_must_filter_by", "route_must_have_guard", "event_must_emit", "service_method_must_call", "human_review_hint"];
49
- };
50
- readonly description: {
51
- readonly type: "string";
52
- readonly minLength: 1;
53
- };
54
- readonly parameters: {
55
- readonly type: "object";
56
- readonly additionalProperties: true;
57
- };
58
- };
59
- readonly required: readonly ["kind", "description"];
60
- };
61
- };
62
- readonly confidence_signal: {
63
- readonly enum: readonly ["high", "medium", "low"];
64
- };
65
- readonly not_a_decision: {
66
- readonly type: "boolean";
67
- };
68
- };
69
- readonly required: readonly ["subject", "summary", "scope_globs", "candidate_assertions", "confidence_signal", "not_a_decision"];
70
- };
@@ -1,71 +0,0 @@
1
- /**
2
- * JSON Schema enforced by `claude --json-schema` for the decision-extractor
3
- * output. Mirrors `DecisionExtractorOutput` exactly.
4
- *
5
- * Assertion kinds match the production set in `src/ground/schemas.ts`. The
6
- * extractor's `parameters` is a free-form object; the harness materializes
7
- * the assertion into the draft as-is and lets sensors validate at evaluation
8
- * time. Rejecting at extract time would block the operator's intent over
9
- * a malformed parameter the agent might still get right on the next pass.
10
- */
11
- export const DECISION_EXTRACTOR_OUTPUT_SCHEMA = {
12
- type: "object",
13
- additionalProperties: false,
14
- properties: {
15
- subject: { type: "string", minLength: 1 },
16
- summary: { type: "string", minLength: 1 },
17
- scope_globs: {
18
- type: "array",
19
- items: { type: "string" },
20
- },
21
- supersedes: {
22
- anyOf: [
23
- { type: "string", pattern: "^DEC-\\d{4,}$" },
24
- { type: "null" },
25
- ],
26
- },
27
- candidate_assertions: {
28
- type: "array",
29
- maxItems: 3,
30
- items: {
31
- type: "object",
32
- additionalProperties: false,
33
- properties: {
34
- id: { type: "string" },
35
- kind: {
36
- enum: [
37
- "schema_must_contain",
38
- "text_must_match",
39
- "text_must_not_match",
40
- "index_must_exist",
41
- "ast_pattern",
42
- "file_must_not_be_modified",
43
- "query_must_filter_by",
44
- "route_must_have_guard",
45
- "event_must_emit",
46
- "service_method_must_call",
47
- "human_review_hint",
48
- ],
49
- },
50
- description: { type: "string", minLength: 1 },
51
- parameters: {
52
- type: "object",
53
- additionalProperties: true,
54
- },
55
- },
56
- required: ["kind", "description"],
57
- },
58
- },
59
- confidence_signal: { enum: ["high", "medium", "low"] },
60
- not_a_decision: { type: "boolean" },
61
- },
62
- required: [
63
- "subject",
64
- "summary",
65
- "scope_globs",
66
- "candidate_assertions",
67
- "confidence_signal",
68
- "not_a_decision",
69
- ],
70
- };
71
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/decision-capture/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,UAAU,EAAE;QACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;QACzC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;QACzC,WAAW,EAAE;YACX,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC1B;QACD,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE;gBAC5C,EAAE,IAAI,EAAE,MAAM,EAAE;aACjB;SACF;QACD,oBAAoB,EAAE;YACpB,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACtB,IAAI,EAAE;wBACJ,IAAI,EAAE;4BACJ,qBAAqB;4BACrB,iBAAiB;4BACjB,qBAAqB;4BACrB,kBAAkB;4BAClB,aAAa;4BACb,2BAA2B;4BAC3B,sBAAsB;4BACtB,uBAAuB;4BACvB,iBAAiB;4BACjB,0BAA0B;4BAC1B,mBAAmB;yBACpB;qBACF;oBACD,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;oBAC7C,UAAU,EAAE;wBACV,IAAI,EAAE,QAAQ;wBACd,oBAAoB,EAAE,IAAI;qBAC3B;iBACF;gBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;aAClC;SACF;QACD,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE;QACtD,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KACpC;IACD,QAAQ,EAAE;QACR,SAAS;QACT,SAAS;QACT,aAAa;QACb,sBAAsB;QACtB,mBAAmB;QACnB,gBAAgB;KACjB;CACO,CAAC"}