dorfl 0.0.0 → 0.1.0

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 (619) hide show
  1. package/dist/advance-ci-template.d.ts +73 -0
  2. package/dist/advance-ci-template.d.ts.map +1 -0
  3. package/dist/advance-ci-template.js +104 -0
  4. package/dist/advance-ci-template.js.map +1 -0
  5. package/dist/advance-classify.d.ts +132 -0
  6. package/dist/advance-classify.d.ts.map +1 -0
  7. package/dist/advance-classify.js +120 -0
  8. package/dist/advance-classify.js.map +1 -0
  9. package/dist/advance-drivers.d.ts +182 -0
  10. package/dist/advance-drivers.d.ts.map +1 -0
  11. package/dist/advance-drivers.js +231 -0
  12. package/dist/advance-drivers.js.map +1 -0
  13. package/dist/advance-isolated.d.ts +156 -0
  14. package/dist/advance-isolated.d.ts.map +1 -0
  15. package/dist/advance-isolated.js +256 -0
  16. package/dist/advance-isolated.js.map +1 -0
  17. package/dist/advance-lifecycle-template.d.ts +107 -0
  18. package/dist/advance-lifecycle-template.d.ts.map +1 -0
  19. package/dist/advance-lifecycle-template.js +668 -0
  20. package/dist/advance-lifecycle-template.js.map +1 -0
  21. package/dist/advance-loop-driver.d.ts +325 -0
  22. package/dist/advance-loop-driver.d.ts.map +1 -0
  23. package/dist/advance-loop-driver.js +437 -0
  24. package/dist/advance-loop-driver.js.map +1 -0
  25. package/dist/advance-treeless-publish.d.ts +108 -0
  26. package/dist/advance-treeless-publish.d.ts.map +1 -0
  27. package/dist/advance-treeless-publish.js +71 -0
  28. package/dist/advance-treeless-publish.js.map +1 -0
  29. package/dist/advance.d.ts +340 -0
  30. package/dist/advance.d.ts.map +1 -0
  31. package/dist/advance.js +1122 -0
  32. package/dist/advance.js.map +1 -0
  33. package/dist/advancing-lock.d.ts +294 -0
  34. package/dist/advancing-lock.d.ts.map +1 -0
  35. package/dist/advancing-lock.js +594 -0
  36. package/dist/advancing-lock.js.map +1 -0
  37. package/dist/agent-launch.d.ts +79 -0
  38. package/dist/agent-launch.d.ts.map +1 -0
  39. package/dist/agent-launch.js +61 -0
  40. package/dist/agent-launch.js.map +1 -0
  41. package/dist/agent-stop.d.ts +149 -0
  42. package/dist/agent-stop.d.ts.map +1 -0
  43. package/dist/agent-stop.js +307 -0
  44. package/dist/agent-stop.js.map +1 -0
  45. package/dist/apply-decide.d.ts +127 -0
  46. package/dist/apply-decide.d.ts.map +1 -0
  47. package/dist/apply-decide.js +176 -0
  48. package/dist/apply-decide.js.map +1 -0
  49. package/dist/apply-merge-action.d.ts +206 -0
  50. package/dist/apply-merge-action.d.ts.map +1 -0
  51. package/dist/apply-merge-action.js +307 -0
  52. package/dist/apply-merge-action.js.map +1 -0
  53. package/dist/apply-persist.d.ts +174 -0
  54. package/dist/apply-persist.d.ts.map +1 -0
  55. package/dist/apply-persist.js +359 -0
  56. package/dist/apply-persist.js.map +1 -0
  57. package/dist/arbiter.d.ts +120 -0
  58. package/dist/arbiter.d.ts.map +1 -0
  59. package/dist/arbiter.js +255 -0
  60. package/dist/arbiter.js.map +1 -0
  61. package/dist/brand.d.ts +70 -0
  62. package/dist/brand.d.ts.map +1 -0
  63. package/dist/brand.js +84 -0
  64. package/dist/brand.js.map +1 -0
  65. package/dist/buildable-body.d.ts +132 -0
  66. package/dist/buildable-body.d.ts.map +1 -0
  67. package/dist/buildable-body.js +131 -0
  68. package/dist/buildable-body.js.map +1 -0
  69. package/dist/categorise.d.ts +66 -0
  70. package/dist/categorise.d.ts.map +1 -0
  71. package/dist/categorise.js +106 -0
  72. package/dist/categorise.js.map +1 -0
  73. package/dist/claim-cas.d.ts +117 -0
  74. package/dist/claim-cas.d.ts.map +1 -0
  75. package/dist/claim-cas.js +312 -0
  76. package/dist/claim-cas.js.map +1 -0
  77. package/dist/cli-spinner.d.ts +112 -0
  78. package/dist/cli-spinner.d.ts.map +1 -0
  79. package/dist/cli-spinner.js +157 -0
  80. package/dist/cli-spinner.js.map +1 -0
  81. package/dist/cli.d.ts +11 -0
  82. package/dist/cli.d.ts.map +1 -0
  83. package/dist/cli.js +3094 -0
  84. package/dist/cli.js.map +1 -0
  85. package/dist/close-job-template.d.ts +70 -0
  86. package/dist/close-job-template.d.ts.map +1 -0
  87. package/dist/close-job-template.js +180 -0
  88. package/dist/close-job-template.js.map +1 -0
  89. package/dist/close-job.d.ts +95 -0
  90. package/dist/close-job.d.ts.map +1 -0
  91. package/dist/close-job.js +226 -0
  92. package/dist/close-job.js.map +1 -0
  93. package/dist/complete.d.ts +361 -0
  94. package/dist/complete.d.ts.map +1 -0
  95. package/dist/complete.js +885 -0
  96. package/dist/complete.js.map +1 -0
  97. package/dist/concurrency.d.ts +68 -0
  98. package/dist/concurrency.d.ts.map +1 -0
  99. package/dist/concurrency.js +112 -0
  100. package/dist/concurrency.js.map +1 -0
  101. package/dist/config-override.d.ts +76 -0
  102. package/dist/config-override.d.ts.map +1 -0
  103. package/dist/config-override.js +50 -0
  104. package/dist/config-override.js.map +1 -0
  105. package/dist/config.d.ts +668 -0
  106. package/dist/config.d.ts.map +1 -0
  107. package/dist/config.js +241 -0
  108. package/dist/config.js.map +1 -0
  109. package/dist/continue-branch.d.ts +249 -0
  110. package/dist/continue-branch.d.ts.map +1 -0
  111. package/dist/continue-branch.js +389 -0
  112. package/dist/continue-branch.js.map +1 -0
  113. package/dist/cwd-section.d.ts +186 -0
  114. package/dist/cwd-section.d.ts.map +1 -0
  115. package/dist/cwd-section.js +209 -0
  116. package/dist/cwd-section.js.map +1 -0
  117. package/dist/decision-engine.d.ts +170 -0
  118. package/dist/decision-engine.d.ts.map +1 -0
  119. package/dist/decision-engine.js +136 -0
  120. package/dist/decision-engine.js.map +1 -0
  121. package/dist/detect.d.ts +17 -0
  122. package/dist/detect.d.ts.map +1 -0
  123. package/dist/detect.js +118 -0
  124. package/dist/detect.js.map +1 -0
  125. package/dist/do-autopick.d.ts +85 -0
  126. package/dist/do-autopick.d.ts.map +1 -0
  127. package/dist/do-autopick.js +112 -0
  128. package/dist/do-autopick.js.map +1 -0
  129. package/dist/do-config.d.ts +312 -0
  130. package/dist/do-config.d.ts.map +1 -0
  131. package/dist/do-config.js +358 -0
  132. package/dist/do-config.js.map +1 -0
  133. package/dist/do-remote-auto.d.ts +75 -0
  134. package/dist/do-remote-auto.d.ts.map +1 -0
  135. package/dist/do-remote-auto.js +111 -0
  136. package/dist/do-remote-auto.js.map +1 -0
  137. package/dist/do.d.ts +621 -0
  138. package/dist/do.d.ts.map +1 -0
  139. package/dist/do.js +1882 -0
  140. package/dist/do.js.map +1 -0
  141. package/dist/drop-source.d.ts +96 -0
  142. package/dist/drop-source.d.ts.map +1 -0
  143. package/dist/drop-source.js +91 -0
  144. package/dist/drop-source.js.map +1 -0
  145. package/dist/eligibility.d.ts +46 -0
  146. package/dist/eligibility.d.ts.map +1 -0
  147. package/dist/eligibility.js +34 -0
  148. package/dist/eligibility.js.map +1 -0
  149. package/dist/env-config.d.ts +51 -0
  150. package/dist/env-config.d.ts.map +1 -0
  151. package/dist/env-config.js +272 -0
  152. package/dist/env-config.js.map +1 -0
  153. package/dist/failure-cause.d.ts +70 -0
  154. package/dist/failure-cause.d.ts.map +1 -0
  155. package/dist/failure-cause.js +126 -0
  156. package/dist/failure-cause.js.map +1 -0
  157. package/dist/format.d.ts +43 -0
  158. package/dist/format.d.ts.map +1 -0
  159. package/dist/format.js +256 -0
  160. package/dist/format.js.map +1 -0
  161. package/dist/frontmatter.d.ts +215 -0
  162. package/dist/frontmatter.d.ts.map +1 -0
  163. package/dist/frontmatter.js +345 -0
  164. package/dist/frontmatter.js.map +1 -0
  165. package/dist/gate-readiness.d.ts +84 -0
  166. package/dist/gate-readiness.d.ts.map +1 -0
  167. package/dist/gate-readiness.js +103 -0
  168. package/dist/gate-readiness.js.map +1 -0
  169. package/dist/gc.d.ts +165 -0
  170. package/dist/gc.d.ts.map +1 -0
  171. package/dist/gc.js +313 -0
  172. package/dist/gc.js.map +1 -0
  173. package/dist/gh-failure.d.ts +42 -0
  174. package/dist/gh-failure.d.ts.map +1 -0
  175. package/dist/gh-failure.js +49 -0
  176. package/dist/gh-failure.js.map +1 -0
  177. package/dist/git.d.ts +75 -0
  178. package/dist/git.d.ts.map +1 -0
  179. package/dist/git.js +130 -0
  180. package/dist/git.js.map +1 -0
  181. package/dist/github.d.ts +187 -0
  182. package/dist/github.d.ts.map +1 -0
  183. package/dist/github.js +343 -0
  184. package/dist/github.js.map +1 -0
  185. package/dist/harness.d.ts +242 -0
  186. package/dist/harness.d.ts.map +1 -0
  187. package/dist/harness.js +157 -0
  188. package/dist/harness.js.map +1 -0
  189. package/dist/identity.d.ts +167 -0
  190. package/dist/identity.d.ts.map +1 -0
  191. package/dist/identity.js +231 -0
  192. package/dist/identity.js.map +1 -0
  193. package/dist/index.d.ts +147 -0
  194. package/dist/index.d.ts.map +1 -0
  195. package/dist/index.js +76 -0
  196. package/dist/index.js.map +1 -0
  197. package/dist/install-ci-branch-protection.d.ts +147 -0
  198. package/dist/install-ci-branch-protection.d.ts.map +1 -0
  199. package/dist/install-ci-branch-protection.js +166 -0
  200. package/dist/install-ci-branch-protection.js.map +1 -0
  201. package/dist/install-ci-capabilities/advance-lifecycle.d.ts +15 -0
  202. package/dist/install-ci-capabilities/advance-lifecycle.d.ts.map +1 -0
  203. package/dist/install-ci-capabilities/advance-lifecycle.js +28 -0
  204. package/dist/install-ci-capabilities/advance-lifecycle.js.map +1 -0
  205. package/dist/install-ci-capabilities/close-job.d.ts +13 -0
  206. package/dist/install-ci-capabilities/close-job.d.ts.map +1 -0
  207. package/dist/install-ci-capabilities/close-job.js +26 -0
  208. package/dist/install-ci-capabilities/close-job.js.map +1 -0
  209. package/dist/install-ci-capabilities/example-noop.d.ts +16 -0
  210. package/dist/install-ci-capabilities/example-noop.d.ts.map +1 -0
  211. package/dist/install-ci-capabilities/example-noop.js +23 -0
  212. package/dist/install-ci-capabilities/example-noop.js.map +1 -0
  213. package/dist/install-ci-capabilities/intake.d.ts +15 -0
  214. package/dist/install-ci-capabilities/intake.d.ts.map +1 -0
  215. package/dist/install-ci-capabilities/intake.js +28 -0
  216. package/dist/install-ci-capabilities/intake.js.map +1 -0
  217. package/dist/install-ci-capabilities/verify.d.ts +14 -0
  218. package/dist/install-ci-capabilities/verify.d.ts.map +1 -0
  219. package/dist/install-ci-capabilities/verify.js +27 -0
  220. package/dist/install-ci-capabilities/verify.js.map +1 -0
  221. package/dist/install-ci-core.d.ts +446 -0
  222. package/dist/install-ci-core.d.ts.map +1 -0
  223. package/dist/install-ci-core.js +760 -0
  224. package/dist/install-ci-core.js.map +1 -0
  225. package/dist/install-ci-github.d.ts +167 -0
  226. package/dist/install-ci-github.d.ts.map +1 -0
  227. package/dist/install-ci-github.js +315 -0
  228. package/dist/install-ci-github.js.map +1 -0
  229. package/dist/install-ci.d.ts +105 -0
  230. package/dist/install-ci.d.ts.map +1 -0
  231. package/dist/install-ci.js +363 -0
  232. package/dist/install-ci.js.map +1 -0
  233. package/dist/intake-event.d.ts +88 -0
  234. package/dist/intake-event.d.ts.map +1 -0
  235. package/dist/intake-event.js +66 -0
  236. package/dist/intake-event.js.map +1 -0
  237. package/dist/intake-marker.d.ts +95 -0
  238. package/dist/intake-marker.d.ts.map +1 -0
  239. package/dist/intake-marker.js +127 -0
  240. package/dist/intake-marker.js.map +1 -0
  241. package/dist/intake-triage.d.ts +48 -0
  242. package/dist/intake-triage.d.ts.map +1 -0
  243. package/dist/intake-triage.js +95 -0
  244. package/dist/intake-triage.js.map +1 -0
  245. package/dist/intake-trigger-template.d.ts +185 -0
  246. package/dist/intake-trigger-template.d.ts.map +1 -0
  247. package/dist/intake-trigger-template.js +449 -0
  248. package/dist/intake-trigger-template.js.map +1 -0
  249. package/dist/intake.d.ts +569 -0
  250. package/dist/intake.d.ts.map +1 -0
  251. package/dist/intake.js +1628 -0
  252. package/dist/intake.js.map +1 -0
  253. package/dist/integration-core.d.ts +539 -0
  254. package/dist/integration-core.d.ts.map +1 -0
  255. package/dist/integration-core.js +2195 -0
  256. package/dist/integration-core.js.map +1 -0
  257. package/dist/integrator.d.ts +343 -0
  258. package/dist/integrator.d.ts.map +1 -0
  259. package/dist/integrator.js +400 -0
  260. package/dist/integrator.js.map +1 -0
  261. package/dist/isolation.d.ts +219 -0
  262. package/dist/isolation.d.ts.map +1 -0
  263. package/dist/isolation.js +261 -0
  264. package/dist/isolation.js.map +1 -0
  265. package/dist/issue-provider.d.ts +349 -0
  266. package/dist/issue-provider.d.ts.map +1 -0
  267. package/dist/issue-provider.js +360 -0
  268. package/dist/issue-provider.js.map +1 -0
  269. package/dist/item-lock.d.ts +626 -0
  270. package/dist/item-lock.d.ts.map +1 -0
  271. package/dist/item-lock.js +1381 -0
  272. package/dist/item-lock.js.map +1 -0
  273. package/dist/item-path.d.ts +49 -0
  274. package/dist/item-path.d.ts.map +1 -0
  275. package/dist/item-path.js +66 -0
  276. package/dist/item-path.js.map +1 -0
  277. package/dist/ledger-lint.d.ts +129 -0
  278. package/dist/ledger-lint.d.ts.map +1 -0
  279. package/dist/ledger-lint.js +249 -0
  280. package/dist/ledger-lint.js.map +1 -0
  281. package/dist/ledger-read.d.ts +357 -0
  282. package/dist/ledger-read.d.ts.map +1 -0
  283. package/dist/ledger-read.js +442 -0
  284. package/dist/ledger-read.js.map +1 -0
  285. package/dist/ledger-write.d.ts +330 -0
  286. package/dist/ledger-write.d.ts.map +1 -0
  287. package/dist/ledger-write.js +411 -0
  288. package/dist/ledger-write.js.map +1 -0
  289. package/dist/lifecycle-gather.d.ts +30 -0
  290. package/dist/lifecycle-gather.d.ts.map +1 -0
  291. package/dist/lifecycle-gather.js +205 -0
  292. package/dist/lifecycle-gather.js.map +1 -0
  293. package/dist/lifecycle-pools.d.ts +180 -0
  294. package/dist/lifecycle-pools.d.ts.map +1 -0
  295. package/dist/lifecycle-pools.js +78 -0
  296. package/dist/lifecycle-pools.js.map +1 -0
  297. package/dist/merge-question-surfacer.d.ts +166 -0
  298. package/dist/merge-question-surfacer.d.ts.map +1 -0
  299. package/dist/merge-question-surfacer.js +297 -0
  300. package/dist/merge-question-surfacer.js.map +1 -0
  301. package/dist/mint-adr.d.ts +126 -0
  302. package/dist/mint-adr.d.ts.map +1 -0
  303. package/dist/mint-adr.js +257 -0
  304. package/dist/mint-adr.js.map +1 -0
  305. package/dist/mirror-pool-scan.d.ts +125 -0
  306. package/dist/mirror-pool-scan.d.ts.map +1 -0
  307. package/dist/mirror-pool-scan.js +104 -0
  308. package/dist/mirror-pool-scan.js.map +1 -0
  309. package/dist/needs-attention.d.ts +341 -0
  310. package/dist/needs-attention.d.ts.map +1 -0
  311. package/dist/needs-attention.js +900 -0
  312. package/dist/needs-attention.js.map +1 -0
  313. package/dist/orphan-sidecar.d.ts +79 -0
  314. package/dist/orphan-sidecar.d.ts.map +1 -0
  315. package/dist/orphan-sidecar.js +71 -0
  316. package/dist/orphan-sidecar.js.map +1 -0
  317. package/dist/output.d.ts +48 -0
  318. package/dist/output.d.ts.map +1 -0
  319. package/dist/output.js +66 -0
  320. package/dist/output.js.map +1 -0
  321. package/dist/pi-harness.d.ts +179 -0
  322. package/dist/pi-harness.d.ts.map +1 -0
  323. package/dist/pi-harness.js +342 -0
  324. package/dist/pi-harness.js.map +1 -0
  325. package/dist/placement.d.ts +99 -0
  326. package/dist/placement.d.ts.map +1 -0
  327. package/dist/placement.js +67 -0
  328. package/dist/placement.js.map +1 -0
  329. package/dist/prd-to-spec.d.ts +315 -0
  330. package/dist/prd-to-spec.d.ts.map +1 -0
  331. package/dist/prd-to-spec.js +684 -0
  332. package/dist/prd-to-spec.js.map +1 -0
  333. package/dist/prepare.d.ts +121 -0
  334. package/dist/prepare.d.ts.map +1 -0
  335. package/dist/prepare.js +140 -0
  336. package/dist/prepare.js.map +1 -0
  337. package/dist/prompt.d.ts +360 -0
  338. package/dist/prompt.d.ts.map +1 -0
  339. package/dist/prompt.js +499 -0
  340. package/dist/prompt.js.map +1 -0
  341. package/dist/protocol/ADR-FORMAT.md +47 -0
  342. package/dist/protocol/CLAIM-PROTOCOL.md +217 -0
  343. package/dist/protocol/REVIEW-PROTOCOL.md +119 -0
  344. package/dist/protocol/SURFACE-PROTOCOL.md +121 -0
  345. package/dist/protocol/TASKING-PROTOCOL.md +122 -0
  346. package/dist/protocol/WORK-CONTRACT.md +276 -0
  347. package/dist/protocol/spec-template.md +71 -0
  348. package/dist/protocol/task-template.md +65 -0
  349. package/dist/readiness.d.ts +66 -0
  350. package/dist/readiness.d.ts.map +1 -0
  351. package/dist/readiness.js +36 -0
  352. package/dist/readiness.js.map +1 -0
  353. package/dist/reap-branches.d.ts +102 -0
  354. package/dist/reap-branches.d.ts.map +1 -0
  355. package/dist/reap-branches.js +149 -0
  356. package/dist/reap-branches.js.map +1 -0
  357. package/dist/recover-isolated.d.ts +72 -0
  358. package/dist/recover-isolated.d.ts.map +1 -0
  359. package/dist/recover-isolated.js +188 -0
  360. package/dist/recover-isolated.js.map +1 -0
  361. package/dist/registry.d.ts +172 -0
  362. package/dist/registry.d.ts.map +1 -0
  363. package/dist/registry.js +296 -0
  364. package/dist/registry.js.map +1 -0
  365. package/dist/repo-config.d.ts +201 -0
  366. package/dist/repo-config.d.ts.map +1 -0
  367. package/dist/repo-config.js +414 -0
  368. package/dist/repo-config.js.map +1 -0
  369. package/dist/repo-key.d.ts +20 -0
  370. package/dist/repo-key.d.ts.map +1 -0
  371. package/dist/repo-key.js +68 -0
  372. package/dist/repo-key.js.map +1 -0
  373. package/dist/repo-mirror.d.ts +177 -0
  374. package/dist/repo-mirror.d.ts.map +1 -0
  375. package/dist/repo-mirror.js +271 -0
  376. package/dist/repo-mirror.js.map +1 -0
  377. package/dist/retry-backoff.d.ts +90 -0
  378. package/dist/retry-backoff.d.ts.map +1 -0
  379. package/dist/retry-backoff.js +98 -0
  380. package/dist/retry-backoff.js.map +1 -0
  381. package/dist/review-gate.d.ts +173 -0
  382. package/dist/review-gate.d.ts.map +1 -0
  383. package/dist/review-gate.js +261 -0
  384. package/dist/review-gate.js.map +1 -0
  385. package/dist/review-verdict.d.ts +149 -0
  386. package/dist/review-verdict.d.ts.map +1 -0
  387. package/dist/review-verdict.js +332 -0
  388. package/dist/review-verdict.js.map +1 -0
  389. package/dist/run.d.ts +221 -0
  390. package/dist/run.d.ts.map +1 -0
  391. package/dist/run.js +963 -0
  392. package/dist/run.js.map +1 -0
  393. package/dist/scan.d.ts +308 -0
  394. package/dist/scan.d.ts.map +1 -0
  395. package/dist/scan.js +374 -0
  396. package/dist/scan.js.map +1 -0
  397. package/dist/select-order.d.ts +75 -0
  398. package/dist/select-order.d.ts.map +1 -0
  399. package/dist/select-order.js +108 -0
  400. package/dist/select-order.js.map +1 -0
  401. package/dist/select-priority.d.ts +188 -0
  402. package/dist/select-priority.d.ts.map +1 -0
  403. package/dist/select-priority.js +80 -0
  404. package/dist/select-priority.js.map +1 -0
  405. package/dist/select.d.ts +25 -0
  406. package/dist/select.d.ts.map +1 -0
  407. package/dist/select.js +43 -0
  408. package/dist/select.js.map +1 -0
  409. package/dist/session-path.d.ts +36 -0
  410. package/dist/session-path.d.ts.map +1 -0
  411. package/dist/session-path.js +129 -0
  412. package/dist/session-path.js.map +1 -0
  413. package/dist/sidecar-apply.d.ts +83 -0
  414. package/dist/sidecar-apply.d.ts.map +1 -0
  415. package/dist/sidecar-apply.js +111 -0
  416. package/dist/sidecar-apply.js.map +1 -0
  417. package/dist/sidecar.d.ts +245 -0
  418. package/dist/sidecar.d.ts.map +1 -0
  419. package/dist/sidecar.js +481 -0
  420. package/dist/sidecar.js.map +1 -0
  421. package/dist/slug-namespace.d.ts +204 -0
  422. package/dist/slug-namespace.d.ts.map +1 -0
  423. package/dist/slug-namespace.js +229 -0
  424. package/dist/slug-namespace.js.map +1 -0
  425. package/dist/spec-complete.d.ts +44 -0
  426. package/dist/spec-complete.d.ts.map +1 -0
  427. package/dist/spec-complete.js +69 -0
  428. package/dist/spec-complete.js.map +1 -0
  429. package/dist/start.d.ts +97 -0
  430. package/dist/start.d.ts.map +1 -0
  431. package/dist/start.js +633 -0
  432. package/dist/start.js.map +1 -0
  433. package/dist/status.d.ts +199 -0
  434. package/dist/status.d.ts.map +1 -0
  435. package/dist/status.js +228 -0
  436. package/dist/status.js.map +1 -0
  437. package/dist/surface-gate.d.ts +162 -0
  438. package/dist/surface-gate.d.ts.map +1 -0
  439. package/dist/surface-gate.js +206 -0
  440. package/dist/surface-gate.js.map +1 -0
  441. package/dist/surface-persist.d.ts +86 -0
  442. package/dist/surface-persist.d.ts.map +1 -0
  443. package/dist/surface-persist.js +129 -0
  444. package/dist/surface-persist.js.map +1 -0
  445. package/dist/tasker-review-loop.d.ts +249 -0
  446. package/dist/tasker-review-loop.d.ts.map +1 -0
  447. package/dist/tasker-review-loop.js +369 -0
  448. package/dist/tasker-review-loop.js.map +1 -0
  449. package/dist/tasking-eligibility.d.ts +74 -0
  450. package/dist/tasking-eligibility.d.ts.map +1 -0
  451. package/dist/tasking-eligibility.js +52 -0
  452. package/dist/tasking-eligibility.js.map +1 -0
  453. package/dist/tasking-lock.d.ts +111 -0
  454. package/dist/tasking-lock.d.ts.map +1 -0
  455. package/dist/tasking-lock.js +256 -0
  456. package/dist/tasking-lock.js.map +1 -0
  457. package/dist/tasking.d.ts +275 -0
  458. package/dist/tasking.d.ts.map +1 -0
  459. package/dist/tasking.js +952 -0
  460. package/dist/tasking.js.map +1 -0
  461. package/dist/triage-gate.d.ts +127 -0
  462. package/dist/triage-gate.d.ts.map +1 -0
  463. package/dist/triage-gate.js +139 -0
  464. package/dist/triage-gate.js.map +1 -0
  465. package/dist/triage-persist.d.ts +163 -0
  466. package/dist/triage-persist.d.ts.map +1 -0
  467. package/dist/triage-persist.js +387 -0
  468. package/dist/triage-persist.js.map +1 -0
  469. package/dist/verdict-json.d.ts +32 -0
  470. package/dist/verdict-json.d.ts.map +1 -0
  471. package/dist/verdict-json.js +74 -0
  472. package/dist/verdict-json.js.map +1 -0
  473. package/dist/verify-workflow-template.d.ts +60 -0
  474. package/dist/verify-workflow-template.d.ts.map +1 -0
  475. package/dist/verify-workflow-template.js +126 -0
  476. package/dist/verify-workflow-template.js.map +1 -0
  477. package/dist/verify.d.ts +60 -0
  478. package/dist/verify.d.ts.map +1 -0
  479. package/dist/verify.js +62 -0
  480. package/dist/verify.js.map +1 -0
  481. package/dist/watch-session.d.ts +112 -0
  482. package/dist/watch-session.d.ts.map +1 -0
  483. package/dist/watch-session.js +347 -0
  484. package/dist/watch-session.js.map +1 -0
  485. package/dist/work-layout.d.ts +198 -0
  486. package/dist/work-layout.d.ts.map +1 -0
  487. package/dist/work-layout.js +217 -0
  488. package/dist/work-layout.js.map +1 -0
  489. package/dist/work-on.d.ts +154 -0
  490. package/dist/work-on.d.ts.map +1 -0
  491. package/dist/work-on.js +387 -0
  492. package/dist/work-on.js.map +1 -0
  493. package/dist/workspace.d.ts +224 -0
  494. package/dist/workspace.d.ts.map +1 -0
  495. package/dist/workspace.js +325 -0
  496. package/dist/workspace.js.map +1 -0
  497. package/package.json +46 -2
  498. package/src/advance-ci-template.ts +203 -0
  499. package/src/advance-classify.ts +197 -0
  500. package/src/advance-drivers.ts +414 -0
  501. package/src/advance-isolated.ts +432 -0
  502. package/src/advance-lifecycle-template.ts +791 -0
  503. package/src/advance-loop-driver.ts +745 -0
  504. package/src/advance-treeless-publish.ts +177 -0
  505. package/src/advance.ts +1564 -0
  506. package/src/advancing-lock.ts +988 -0
  507. package/src/agent-launch.ts +137 -0
  508. package/src/agent-stop.ts +361 -0
  509. package/src/apply-decide.ts +242 -0
  510. package/src/apply-merge-action.ts +502 -0
  511. package/src/apply-persist.ts +518 -0
  512. package/src/arbiter.ts +372 -0
  513. package/src/brand.ts +111 -0
  514. package/src/buildable-body.ts +196 -0
  515. package/src/categorise.ts +158 -0
  516. package/src/claim-cas.ts +513 -0
  517. package/src/cli-spinner.ts +225 -0
  518. package/src/cli.ts +4369 -0
  519. package/src/close-job-template.ts +236 -0
  520. package/src/close-job.ts +319 -0
  521. package/src/complete.ts +1379 -0
  522. package/src/concurrency.ts +151 -0
  523. package/src/config-override.ts +116 -0
  524. package/src/config.ts +883 -0
  525. package/src/continue-branch.ts +542 -0
  526. package/src/cwd-section.ts +392 -0
  527. package/src/decision-engine.ts +272 -0
  528. package/src/detect.ts +124 -0
  529. package/src/do-autopick.ts +223 -0
  530. package/src/do-config.ts +589 -0
  531. package/src/do-remote-auto.ts +197 -0
  532. package/src/do.ts +2623 -0
  533. package/src/drop-source.ts +194 -0
  534. package/src/eligibility.ts +79 -0
  535. package/src/env-config.ts +305 -0
  536. package/src/failure-cause.ts +142 -0
  537. package/src/format.ts +313 -0
  538. package/src/frontmatter.ts +485 -0
  539. package/src/gate-readiness.ts +147 -0
  540. package/src/gc.ts +510 -0
  541. package/src/gh-failure.ts +53 -0
  542. package/src/git.ts +186 -0
  543. package/src/github.ts +468 -0
  544. package/src/harness.ts +355 -0
  545. package/src/identity.ts +322 -0
  546. package/src/index.ts +785 -0
  547. package/src/install-ci-branch-protection.ts +255 -0
  548. package/src/install-ci-capabilities/advance-lifecycle.ts +34 -0
  549. package/src/install-ci-capabilities/close-job.ts +32 -0
  550. package/src/install-ci-capabilities/example-noop.ts +24 -0
  551. package/src/install-ci-capabilities/intake.ts +34 -0
  552. package/src/install-ci-capabilities/verify.ts +33 -0
  553. package/src/install-ci-core.ts +1088 -0
  554. package/src/install-ci-github.ts +376 -0
  555. package/src/install-ci.ts +552 -0
  556. package/src/intake-event.ts +102 -0
  557. package/src/intake-marker.ts +195 -0
  558. package/src/intake-triage.ts +138 -0
  559. package/src/intake-trigger-template.ts +591 -0
  560. package/src/intake.ts +2445 -0
  561. package/src/integration-core.ts +3065 -0
  562. package/src/integrator.ts +771 -0
  563. package/src/isolation.ts +484 -0
  564. package/src/issue-provider.ts +733 -0
  565. package/src/item-lock.ts +1858 -0
  566. package/src/item-path.ts +75 -0
  567. package/src/ledger-lint.ts +332 -0
  568. package/src/ledger-read.ts +924 -0
  569. package/src/ledger-write.ts +865 -0
  570. package/src/lifecycle-gather.ts +298 -0
  571. package/src/lifecycle-pools.ts +250 -0
  572. package/src/merge-question-surfacer.ts +496 -0
  573. package/src/mint-adr.ts +362 -0
  574. package/src/mirror-pool-scan.ts +240 -0
  575. package/src/needs-attention.ts +1506 -0
  576. package/src/orphan-sidecar.ts +150 -0
  577. package/src/output.ts +89 -0
  578. package/src/pi-harness.ts +403 -0
  579. package/src/placement.ts +131 -0
  580. package/src/prd-to-spec.ts +1023 -0
  581. package/src/prepare.ts +230 -0
  582. package/src/prompt.ts +760 -0
  583. package/src/readiness.ts +98 -0
  584. package/src/reap-branches.ts +278 -0
  585. package/src/recover-isolated.ts +276 -0
  586. package/src/registry.ts +475 -0
  587. package/src/repo-config.ts +550 -0
  588. package/src/repo-key.ts +74 -0
  589. package/src/repo-mirror.ts +367 -0
  590. package/src/retry-backoff.ts +130 -0
  591. package/src/review-gate.ts +389 -0
  592. package/src/review-verdict.ts +422 -0
  593. package/src/run.ts +1430 -0
  594. package/src/scan.ts +611 -0
  595. package/src/select-order.ts +143 -0
  596. package/src/select-priority.ts +266 -0
  597. package/src/select.ts +62 -0
  598. package/src/session-path.ts +153 -0
  599. package/src/sidecar-apply.ts +216 -0
  600. package/src/sidecar.ts +700 -0
  601. package/src/slug-namespace.ts +367 -0
  602. package/src/spec-complete.ts +118 -0
  603. package/src/start.ts +974 -0
  604. package/src/status.ts +441 -0
  605. package/src/surface-gate.ts +337 -0
  606. package/src/surface-persist.ts +241 -0
  607. package/src/tasker-review-loop.ts +671 -0
  608. package/src/tasking-eligibility.ts +114 -0
  609. package/src/tasking-lock.ts +416 -0
  610. package/src/tasking.ts +1438 -0
  611. package/src/triage-gate.ts +248 -0
  612. package/src/triage-persist.ts +570 -0
  613. package/src/verdict-json.ts +73 -0
  614. package/src/verify-workflow-template.ts +159 -0
  615. package/src/verify.ts +123 -0
  616. package/src/watch-session.ts +397 -0
  617. package/src/work-layout.ts +262 -0
  618. package/src/work-on.ts +660 -0
  619. package/src/workspace.ts +502 -0
@@ -0,0 +1,127 @@
1
+ import { type Harness } from './harness.js';
2
+ import { type SidecarModel } from './sidecar.js';
3
+ import { type DecisionDecider, type DecisionOutcome } from './decision-engine.js';
4
+ /**
5
+ * The **AGENTIC apply DECIDER** (prd
6
+ * `agentic-question-resolution-retire-disposition-vocabulary` US #1/#2/#3, task
7
+ * `agentic-apply-retire-disposition-vocabulary`) — the input-ADAPTER + prompt +
8
+ * production decider for the apply rung's call into the SHARED
9
+ * `decide(input, allowedOutcomes)` engine (`decision-engine.ts`). It is the apply
10
+ * rung's analogue of intake's decision seam and `surface-gate.ts` / `triage-gate.ts`:
11
+ * the agent JUDGES (reads the human's answer(s) + the SOURCE item and returns a
12
+ * verdict); the engine VALIDATES it against the allowed set; the apply rung ACTS.
13
+ *
14
+ * This is the SUBSUME of the old disposition vocabulary: there is no longer a
15
+ * `disposition=` token the surface rung stamps and the apply rung executes. When a
16
+ * fully-answered OBSERVATION reaches the apply rung, this decider reads the answer
17
+ * + the source's FULL context (body, type, surrounding signal — decision 3, the
18
+ * analogue of intake reading the whole issue thread) and returns ONE of the LAUNCH
19
+ * outcomes the apply rung allows. The artifact-type SELECTION (task vs spec) comes
20
+ * from the agent's VERDICT, NOT a human `promote-*` field.
21
+ *
22
+ * **The allowed set** (the SUBSET the apply rung passes to `decide`):
23
+ * `{task | spec | adr | delete | ask}` \u2014 i.e. `{mint-task | mint-spec | mint-adr |
24
+ * delete-source | ask-follow-up}`. `adr` was DEFERRED at the keystone launch (no
25
+ * ADR-mint path existed yet) and is now WIRED by the follow-on task
26
+ * `agentic-apply-mint-adr-route`, which added the {@link
27
+ * import('./mint-adr.js').mintAdr} route and widened this set. Intake's set is
28
+ * UNCHANGED (`{task | spec | ask | bounce}`) \u2014 the engine stays outcome-AGNOSTIC
29
+ * (PRD decision 14), so widening this caller's subset does NOT touch intake or the
30
+ * engine's superset union.
31
+ *
32
+ * The INPUT adapter ({@link buildApplyDecisionInput}) sits HERE in the caller, not
33
+ * in the engine (the engine threads `input` opaquely) \u2014 decision 3: the input
34
+ * adapter is per-front-door and NOT forced to be shared with intake's issue-thread
35
+ * adapter.
36
+ */
37
+ /**
38
+ * The allowed-outcome set the apply rung permits. `adr` is now INCLUDED (task
39
+ * `agentic-apply-mint-adr-route` widened the keystone's launch subset, which had
40
+ * deferred it). The engine's superset still carries `adr` either way (it is
41
+ * outcome-agnostic); this is purely the CALLER's permitted subset.
42
+ */
43
+ export declare const APPLY_ALLOWED_OUTCOMES: readonly DecisionOutcome[];
44
+ /**
45
+ * The input the apply decider reads: the answered source item + its answered
46
+ * sidecar. The decision is grounded in the source's FULL context (body, type,
47
+ * surrounding signal), not just the latest answer text (decision 3).
48
+ */
49
+ export interface ApplyDecisionInput {
50
+ /** The namespaced source identity (`observation:<slug>` at launch). */
51
+ item: string;
52
+ /** The source item's type. */
53
+ type: SidecarModel['type'];
54
+ /** The source item's body (full context for the decision). */
55
+ itemBody: string;
56
+ /** The answered sidecar model (the human's recorded answers + the questions). */
57
+ sidecar: SidecarModel;
58
+ /** The working clone/checkout the decision runs in. */
59
+ cwd: string;
60
+ /** The model the apply-decision agent runs on (`undefined` \u21d2 the harness default). */
61
+ model?: string;
62
+ /** Environment for the decision-agent launch. */
63
+ env?: NodeJS.ProcessEnv;
64
+ /** The HOST-ONLY sessions root the decision session FILE is generated under. */
65
+ sessionsDir?: string;
66
+ }
67
+ /**
68
+ * The apply-decider SEAM: read the apply input and return a {@link DecisionVerdict}.
69
+ * Injected by tests (a CANNED verdict, no real model); production uses
70
+ * {@link harnessApplyDecider}. It is the apply rung's {@link DecisionDecider}
71
+ * specialised to {@link ApplyDecisionInput}.
72
+ */
73
+ export type ApplyDecider = DecisionDecider<ApplyDecisionInput>;
74
+ /**
75
+ * Build the apply-decision INPUT for an answered source item: read its body (from
76
+ * the working tree) + parse its answered sidecar. The adapter boundary the engine
77
+ * never sees (it threads this opaquely to the decider). Returns `undefined` when
78
+ * there is no sidecar or no item file (the apply rung handles those upstream).
79
+ */
80
+ export declare function buildApplyDecisionInput(opts: {
81
+ item: string;
82
+ type: SidecarModel['type'];
83
+ itemPath: string;
84
+ cwd: string;
85
+ model?: string;
86
+ env?: NodeJS.ProcessEnv;
87
+ sessionsDir?: string;
88
+ }): ApplyDecisionInput | undefined;
89
+ /**
90
+ * Render the apply-decision agent PROMPT: instruct a fresh-context agent to read
91
+ * the human's recorded ANSWER(S) + the SOURCE item and emit a single
92
+ * `{outcome, \u2026}` verdict ({@link parseDecisionVerdict} reads it). The agent decides
93
+ * what to DO with the answered signal \u2014 mint a self-contained task, mint a SPEC,
94
+ * mint an ADR, delete the source, or ask one BATCH of follow-up questions \u2014
95
+ * grounded in the source's full context. It writes NOTHING (the engine acts on
96
+ * the verdict).
97
+ *
98
+ * Mirrors {@link import('./surface-gate.js').buildSurfacePrompt} /
99
+ * {@link import('./intake.js').buildIntakeDecisionSpec}: a fresh-context agent that
100
+ * EDITS nothing and EMITS one structured object the ENGINE routes/persists.
101
+ */
102
+ export declare function buildApplyDecisionPrompt(input: ApplyDecisionInput): string;
103
+ /** What a harness-backed apply decider needs to launch the decision agent. */
104
+ export interface HarnessApplyDeciderOptions {
105
+ /** The harness seam used to launch the fresh-context decision agent. */
106
+ harness?: Harness;
107
+ /** The agent command the null/shell adapter shells out to (`{model}`-aware). */
108
+ agentCmd?: string;
109
+ /**
110
+ * Read the decision agent's textual output for parsing. Production reads
111
+ * `launched.output` (the ANSWER channel); tests inject `readOutput` to stub a
112
+ * canned verdict string.
113
+ */
114
+ readOutput?: (output: string | undefined) => string;
115
+ }
116
+ /**
117
+ * The PRODUCTION apply decider: launch a fresh-context agent through the EXISTING
118
+ * harness seam (routing an optional `model` via `LaunchInput.model` \u2014 the \u00a713
119
+ * model-routing intent, NOT a new mechanism), then PARSE the emitted verdict via
120
+ * the SHARED {@link parseDecisionVerdict}. The DIRECT mirror of
121
+ * `harnessSurfaceGate` / `harnessTriageGate`: a SEPARATE harness launch (fresh
122
+ * context) in the same checkout `cwd`, fed {@link buildApplyDecisionPrompt}; a
123
+ * DISTINCT session id (`<item>-apply-decide`) so its session never collides with a
124
+ * build / review / surface / triage session.
125
+ */
126
+ export declare function harnessApplyDecider(options?: HarnessApplyDeciderOptions): ApplyDecider;
127
+ //# sourceMappingURL=apply-decide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-decide.d.ts","sourceRoot":"","sources":["../src/apply-decide.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,OAAO,EAAC,MAAM,cAAc,CAAC;AAEvD,OAAO,EAA+B,KAAK,YAAY,EAAC,MAAM,cAAc,CAAC;AAC7E,OAAO,EACN,KAAK,eAAe,EACpB,KAAK,eAAe,EAGpB,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,eAAe,EAM5D,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,OAAO,EAAE,YAAY,CAAC;IACtB,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;AAE/D;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,kBAAkB,GAAG,SAAS,CAyBjC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CA4C1E;AAED,8EAA8E;AAC9E,MAAM,WAAW,0BAA0B;IAC1C,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC;CACpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAClC,OAAO,GAAE,0BAA+B,GACtC,YAAY,CAuBd"}
@@ -0,0 +1,176 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { NullHarness } from './harness.js';
4
+ import { launchWithOptionalWatch } from './agent-launch.js';
5
+ import { parseSidecar, sidecarPathFor } from './sidecar.js';
6
+ import { parseDecisionVerdict, } from './decision-engine.js';
7
+ /**
8
+ * The **AGENTIC apply DECIDER** (prd
9
+ * `agentic-question-resolution-retire-disposition-vocabulary` US #1/#2/#3, task
10
+ * `agentic-apply-retire-disposition-vocabulary`) — the input-ADAPTER + prompt +
11
+ * production decider for the apply rung's call into the SHARED
12
+ * `decide(input, allowedOutcomes)` engine (`decision-engine.ts`). It is the apply
13
+ * rung's analogue of intake's decision seam and `surface-gate.ts` / `triage-gate.ts`:
14
+ * the agent JUDGES (reads the human's answer(s) + the SOURCE item and returns a
15
+ * verdict); the engine VALIDATES it against the allowed set; the apply rung ACTS.
16
+ *
17
+ * This is the SUBSUME of the old disposition vocabulary: there is no longer a
18
+ * `disposition=` token the surface rung stamps and the apply rung executes. When a
19
+ * fully-answered OBSERVATION reaches the apply rung, this decider reads the answer
20
+ * + the source's FULL context (body, type, surrounding signal — decision 3, the
21
+ * analogue of intake reading the whole issue thread) and returns ONE of the LAUNCH
22
+ * outcomes the apply rung allows. The artifact-type SELECTION (task vs spec) comes
23
+ * from the agent's VERDICT, NOT a human `promote-*` field.
24
+ *
25
+ * **The allowed set** (the SUBSET the apply rung passes to `decide`):
26
+ * `{task | spec | adr | delete | ask}` \u2014 i.e. `{mint-task | mint-spec | mint-adr |
27
+ * delete-source | ask-follow-up}`. `adr` was DEFERRED at the keystone launch (no
28
+ * ADR-mint path existed yet) and is now WIRED by the follow-on task
29
+ * `agentic-apply-mint-adr-route`, which added the {@link
30
+ * import('./mint-adr.js').mintAdr} route and widened this set. Intake's set is
31
+ * UNCHANGED (`{task | spec | ask | bounce}`) \u2014 the engine stays outcome-AGNOSTIC
32
+ * (PRD decision 14), so widening this caller's subset does NOT touch intake or the
33
+ * engine's superset union.
34
+ *
35
+ * The INPUT adapter ({@link buildApplyDecisionInput}) sits HERE in the caller, not
36
+ * in the engine (the engine threads `input` opaquely) \u2014 decision 3: the input
37
+ * adapter is per-front-door and NOT forced to be shared with intake's issue-thread
38
+ * adapter.
39
+ */
40
+ /**
41
+ * The allowed-outcome set the apply rung permits. `adr` is now INCLUDED (task
42
+ * `agentic-apply-mint-adr-route` widened the keystone's launch subset, which had
43
+ * deferred it). The engine's superset still carries `adr` either way (it is
44
+ * outcome-agnostic); this is purely the CALLER's permitted subset.
45
+ */
46
+ export const APPLY_ALLOWED_OUTCOMES = [
47
+ 'task',
48
+ 'spec',
49
+ 'adr',
50
+ 'delete',
51
+ 'ask',
52
+ ];
53
+ /**
54
+ * Build the apply-decision INPUT for an answered source item: read its body (from
55
+ * the working tree) + parse its answered sidecar. The adapter boundary the engine
56
+ * never sees (it threads this opaquely to the decider). Returns `undefined` when
57
+ * there is no sidecar or no item file (the apply rung handles those upstream).
58
+ */
59
+ export function buildApplyDecisionInput(opts) {
60
+ const sidecarAbs = join(opts.cwd, sidecarPathFor(opts.item));
61
+ if (!existsSync(sidecarAbs)) {
62
+ return undefined;
63
+ }
64
+ const itemAbs = join(opts.cwd, opts.itemPath);
65
+ if (!existsSync(itemAbs)) {
66
+ return undefined;
67
+ }
68
+ let sidecar;
69
+ try {
70
+ sidecar = parseSidecar(readFileSync(sidecarAbs, 'utf8'));
71
+ }
72
+ catch {
73
+ return undefined;
74
+ }
75
+ return {
76
+ item: opts.item,
77
+ type: opts.type,
78
+ itemBody: readFileSync(itemAbs, 'utf8'),
79
+ sidecar,
80
+ cwd: opts.cwd,
81
+ model: opts.model,
82
+ env: opts.env,
83
+ sessionsDir: opts.sessionsDir,
84
+ };
85
+ }
86
+ /**
87
+ * Render the apply-decision agent PROMPT: instruct a fresh-context agent to read
88
+ * the human's recorded ANSWER(S) + the SOURCE item and emit a single
89
+ * `{outcome, \u2026}` verdict ({@link parseDecisionVerdict} reads it). The agent decides
90
+ * what to DO with the answered signal \u2014 mint a self-contained task, mint a SPEC,
91
+ * mint an ADR, delete the source, or ask one BATCH of follow-up questions \u2014
92
+ * grounded in the source's full context. It writes NOTHING (the engine acts on
93
+ * the verdict).
94
+ *
95
+ * Mirrors {@link import('./surface-gate.js').buildSurfacePrompt} /
96
+ * {@link import('./intake.js').buildIntakeDecisionSpec}: a fresh-context agent that
97
+ * EDITS nothing and EMITS one structured object the ENGINE routes/persists.
98
+ */
99
+ export function buildApplyDecisionPrompt(input) {
100
+ const answers = input.sidecar.entries
101
+ .map((e) => `- ${e.question.trim()}\n ANSWER: ${e.answer.trim()}`)
102
+ .join('\n');
103
+ return [
104
+ `You are a FRESH-CONTEXT decision agent for the answered work/ item`,
105
+ `"${input.item}" (type: ${input.type}). The human has answered every open`,
106
+ `question; decide what to DO with this signal, grounded in the source's FULL`,
107
+ `context (its body + type + the answers), NOT just the latest answer text.`,
108
+ `You write NOTHING \u2014 no file edit, no git, no commit (the advance ENGINE acts`,
109
+ `on what you emit). You JUDGE; the engine ACTS.`,
110
+ ``,
111
+ `The source item body:`,
112
+ `---`,
113
+ input.itemBody.trim(),
114
+ `---`,
115
+ ``,
116
+ `The human's answers:`,
117
+ answers,
118
+ ``,
119
+ `Choose ONE outcome and emit a single JSON object (no prose OUTSIDE it):`,
120
+ ` - "task": mint a SELF-CONTAINED task from this signal. Carry the answer(s)`,
121
+ ` + any remaining open-question scoping into the drafted body so the task is`,
122
+ ` buildable on its own. The taskBody MUST include a "## What to build" section`,
123
+ ` AND a "## Prompt" section (a blockquoted, self-contained instruction a fresh`,
124
+ ` agent can start from) — a task with no "## Prompt" is NOT dispatchable and the`,
125
+ ` build refuses it. Emit {"outcome":"task","taskSlug":"\u2026",`,
126
+ ` "taskTitle":"\u2026","taskBody":"\u2026 (markdown AFTER the frontmatter)"}.`,
127
+ ` - "spec": mint a SPEC from this signal (a larger, coherent piece of work).`,
128
+ ` Emit {"outcome":"spec","specSlug":"\u2026","specTitle":"\u2026","specBody":"\u2026"}.`,
129
+ ` - "adr": the answer SETTLES an architectural decision worth recording. Mint`,
130
+ ` a self-contained ADR (docs/adr/, the context/decision/why shape) carrying`,
131
+ ` the WHY from the answer(s). Emit {"outcome":"adr","adrSlug":"\u2026",`,
132
+ ` "adrTitle":"\u2026","adrBody":"\u2026 (markdown AFTER the frontmatter)"}.`,
133
+ ` - "delete": the answer means this signal should be DROPPED. Emit`,
134
+ ` {"outcome":"delete","deleteReason":"\u2026"} (a single revertible deletion;`,
135
+ ` the reason rides the commit message, git history is the archive).`,
136
+ ` - "ask": you need more from the human before acting. Emit`,
137
+ ` {"outcome":"ask","question":"\u2026"} \u2014 ask everything you still need as ONE`,
138
+ ` batch (never a drip); the engine appends it and re-pauses.`,
139
+ ``,
140
+ `Do NOT emit any other outcome. It is plain text inside the JSON string`,
141
+ `(escape newlines as \\n).`,
142
+ ].join('\n');
143
+ }
144
+ /**
145
+ * The PRODUCTION apply decider: launch a fresh-context agent through the EXISTING
146
+ * harness seam (routing an optional `model` via `LaunchInput.model` \u2014 the \u00a713
147
+ * model-routing intent, NOT a new mechanism), then PARSE the emitted verdict via
148
+ * the SHARED {@link parseDecisionVerdict}. The DIRECT mirror of
149
+ * `harnessSurfaceGate` / `harnessTriageGate`: a SEPARATE harness launch (fresh
150
+ * context) in the same checkout `cwd`, fed {@link buildApplyDecisionPrompt}; a
151
+ * DISTINCT session id (`<item>-apply-decide`) so its session never collides with a
152
+ * build / review / surface / triage session.
153
+ */
154
+ export function harnessApplyDecider(options = {}) {
155
+ const harness = options.harness ?? new NullHarness();
156
+ const readOutput = options.readOutput ?? ((output) => output ?? '');
157
+ return async (input) => {
158
+ const sessionId = `${input.item.replace(/:/g, '-')}-apply-decide`;
159
+ const launched = await launchWithOptionalWatch({
160
+ harness,
161
+ dir: input.cwd,
162
+ slug: input.item,
163
+ command: options.agentCmd ?? '',
164
+ prompt: buildApplyDecisionPrompt(input),
165
+ model: input.model,
166
+ sessionId,
167
+ sessionsDir: input.sessionsDir,
168
+ env: input.env,
169
+ });
170
+ if (!launched.ok) {
171
+ throw new Error(`apply-decision agent launch failed${launched.detail ? `: ${launched.detail}` : ''}`);
172
+ }
173
+ return parseDecisionVerdict(readOutput(launched.output));
174
+ };
175
+ }
176
+ //# sourceMappingURL=apply-decide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-decide.js","sourceRoot":"","sources":["../src/apply-decide.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,206 @@
1
+ import { type SidecarEntry } from './sidecar.js';
2
+ import { type IntegrationCoreResult } from './integration-core.js';
3
+ import type { VerifyConfig } from './verify.js';
4
+ /**
5
+ * The **answered MERGE-QUESTION ACTION DISPATCH** (prd
6
+ * `land-time-reverify-and-parallel-merge-ceiling`, task
7
+ * `apply-rung-merge-disposition`; Stories #15, #16) — the deterministic,
8
+ * answer-driven RUNNER-ACTION layer that turns an answered
9
+ * `kind: merge` sidecar entry into a LAND through the EXISTING
10
+ * `integration-core.ts` land primitive (rebase → re-verify on the rebased tip →
11
+ * advance).
12
+ *
13
+ * This is a SIBLING of the agentic `decide()` content-decision in
14
+ * `apply-decide.ts`, NOT a route through it: a merge-acceptance has no
15
+ * judgement content (the human's plain `merge | hold | drop` answer IS the
16
+ * decision; the apply-time fresh-worktree re-verify on the rebased tip is the
17
+ * real correctness gate). Per the PRD's resolved mechanism, routing this
18
+ * through an LLM only adds cost and non-determinism, so the apply rung
19
+ * KIND-CHECKS the sidecar BEFORE calling the agentic decider: a sidecar entry
20
+ * carrying `kind: merge` (the typed dispatch field from `sidecar-kind-field`,
21
+ * stamped by `merge-question-surfacer`) dispatches HERE deterministically;
22
+ * content kinds (observation / triage / spec) keep going through `decide()` as
23
+ * today.
24
+ *
25
+ * The KEYING is the question identity + the human's plain answer:
26
+ *
27
+ * - `answer ≈ merge` → invoke the LAND primitive (see {@link performMergeLand})
28
+ * with `committedRecovery: true` + `freshWorktreeGate: true`. The unmerged
29
+ * `work/<slug>` is checked out via the EXISTING `workspace.ts` per-job
30
+ * worktree seam ({@link createJob} off the hub mirror), NOT a bespoke
31
+ * worktree/clone; `performIntegration` then re-verifies the REBASED tip and
32
+ * REFUSES on red (routes to needs-attention through its own shared seam),
33
+ * so `main` never receives a tree that fails `verify`.
34
+ * - `answer ≈ hold` → SKIP the land; the apply rung still records the answer
35
+ * in the item body via the normal apply path (the work branch stays
36
+ * unmerged; the next surface pass may re-emit a question).
37
+ * - `answer ≈ drop` → SKIP the land; the apply rung still records the answer
38
+ * in the item body via the normal apply path. (Cancellation of the work
39
+ * branch itself is out of this task's scope — the question is recorded as
40
+ * "drop" and the human / a later surfacer handles the artifact.)
41
+ *
42
+ * The STALE-APPROVAL POLICY (PRD OQ6, applied answer q1): default is the cheap
43
+ * "HONOUR the prior approval + land on a green re-verify" path; opt-in
44
+ * `strictMergeApproval` (resolved per-repo via the gate-family precedence chain
45
+ * by the sibling task `strict-merge-approval-gate`, default OFF) RE-SURFACES
46
+ * the merge-question instead of landing when the merge-base moved between the
47
+ * surfacer's question and this apply. The RED-re-verify refusal is unchanged
48
+ * in both modes.
49
+ *
50
+ * House-style boundary: this module is the DETERMINISTIC DISPATCH LAYER. It
51
+ * does NOT re-implement rebase / verify / integrate (it drives the EXISTING
52
+ * `performIntegration` with `committedRecovery: true` + `freshWorktreeGate:
53
+ * true`, which {@link createJob} cuts the worktree for), and it does NOT
54
+ * improvise a worktree or clone (it uses the same `createJob` seam the build /
55
+ * recovery callers use). Tests inject the {@link MergeActionHandler} seam so
56
+ * they assert on EXTERNAL behaviour (what lands on `main`, what routes to
57
+ * needs-attention, that `verify` ran on the rebased tip).
58
+ */
59
+ /** The three deterministic actions a merge-question answer encodes. */
60
+ export type MergeActionVerb = 'merge' | 'hold' | 'drop';
61
+ /** A detected, answer-driven merge-action keyed off ONE answered `kind: merge` entry. */
62
+ export interface DetectedMergeAction {
63
+ /** The deterministic verb parsed from the entry's answer text. */
64
+ verb: MergeActionVerb;
65
+ /** The answered `kind: merge` entry the verb came from. */
66
+ entry: SidecarEntry;
67
+ }
68
+ /**
69
+ * Parse the human's plain free-text answer into the deterministic
70
+ * {@link MergeActionVerb}. The merge-question surfacer renders
71
+ * `merge | hold | drop` in the entry's `default` as a human-readable hint, so
72
+ * the human typically types one of those words verbatim. We accept any text
73
+ * whose first whole word (case-insensitive) is one of `merge` / `hold` / `drop`
74
+ * — this is the same machine-parseable choice shape the surfacer's applied
75
+ * answer q1 documents ("a DETERMINISTIC CHOICE shape … the human picks and the
76
+ * system parses unambiguously").
77
+ *
78
+ * Returns `undefined` on ANYTHING else (an empty answer, a typo, a long
79
+ * narrative without one of the three words at the start) so the caller can
80
+ * route the ambiguity HONESTLY — never default-to-merge on a malformed answer,
81
+ * which would invent a land the human did not authorise.
82
+ */
83
+ export declare function parseMergeAnswer(text: string): MergeActionVerb | undefined;
84
+ /**
85
+ * Detect the FIRST answered `kind: merge` entry's deterministic action verb in
86
+ * a fully-answered sidecar (the apply rung's pre-decider kind-check). Returns
87
+ * `undefined` when the sidecar carries no answered `kind: merge` entry (the
88
+ * apply rung then proceeds to the existing path — agentic for observations,
89
+ * normal apply for task/prd content questions).
90
+ *
91
+ * The sidecar is read OFF DISK keyed off the namespaced item identity; the
92
+ * model is parsed via the SAME `parseSidecar` the rest of the engine uses.
93
+ * Returns `undefined` on a missing/unparseable sidecar (the caller's normal
94
+ * apply path will then raise the right error).
95
+ */
96
+ export declare function detectAnsweredMergeAction(cwd: string, item: string): DetectedMergeAction | undefined;
97
+ /** Input the production merge-action handler consumes. */
98
+ export interface MergeActionInput {
99
+ /** The detected action (verb + source entry). */
100
+ action: DetectedMergeAction;
101
+ /** The namespaced item identity (`task:<slug>`). */
102
+ item: string;
103
+ /** The bare slug (the work branch is `work/task-<slug>` / `work/<slug>`). */
104
+ slug: string;
105
+ /** The apply rung's working clone (used to resolve the arbiter URL when needed). */
106
+ cwd: string;
107
+ /** The arbiter remote NAME in `cwd` (defaults to `origin`). */
108
+ arbiter: string;
109
+ /**
110
+ * The arbiter URL the land worktree mirrors from. When set, used DIRECTLY
111
+ * (the registry-set advance driver threads the per-mirror origin URL here).
112
+ * When unset, the URL is resolved from `cwd` + `arbiter` via `git remote
113
+ * get-url` (the in-place / one-shot caller).
114
+ */
115
+ arbiterUrl?: string;
116
+ /** The execution working area (`~/.dorfl` by default) `createJob` cuts under. */
117
+ workspacesDir: string;
118
+ /** Per-repo env-prep config the fresh-worktree gate runs before `verify`. */
119
+ prepare?: VerifyConfig;
120
+ /** Per-repo acceptance gate (`verify`). */
121
+ verify?: VerifyConfig;
122
+ /**
123
+ * `strictMergeApproval` (resolved per-repo by the sibling task
124
+ * `strict-merge-approval-gate`; default OFF). OFF ⇒ honour the prior answer
125
+ * + land on a green re-verify (the cheap default). ON ⇒ re-surface the
126
+ * merge-question when the merge-base moved between the surfacer's question
127
+ * and this apply (don't land; the apply rung folds this into a re-pause).
128
+ */
129
+ strictMergeApproval?: boolean;
130
+ /** Bounded recovery-rebase retry knob (mirrors the build path). */
131
+ recoveryRebaseRetries?: number;
132
+ /** Modest livelock-spreading jitter (ms) between recovery-rebase retries. */
133
+ recoveryRebaseJitterMs?: number;
134
+ /** Cross-job land-CAS retry cap (the `mergeRetries` precedence chain). */
135
+ mergeRetries?: number;
136
+ /** Environment for child git processes. */
137
+ env?: NodeJS.ProcessEnv;
138
+ /** Sink for human-readable progress notes. */
139
+ note?: (message: string) => void;
140
+ }
141
+ /** The terminal verbs the dispatcher reports to the apply rung. */
142
+ export type MergeActionOutcome =
143
+ /** `answer=merge` + green re-verify ⇒ the kept commit landed on `<arbiter>/main`. */
144
+ 'landed'
145
+ /** `answer=merge` + the kept tip was already on `<arbiter>/main` (idempotent re-run). */
146
+ | 'already-integrated'
147
+ /**
148
+ * `answer=merge` + RED re-verify on the rebased tip (or a rebase-conflict): the
149
+ * land was REFUSED; `performIntegration` routed the item to needs-attention
150
+ * through its shared seam — `main` never received the failing tree. The apply
151
+ * rung short-circuits (does NOT resolve the sidecar, so the open question
152
+ * stays surfaced for a human follow-up).
153
+ */
154
+ | 'refused'
155
+ /**
156
+ * `answer=merge` + `strictMergeApproval` ON + the merge-base moved between
157
+ * the surfacer's question and this apply: the dispatcher RE-SURFACES the
158
+ * merge-question (the apply rung appends a fresh follow-up + re-pauses).
159
+ */
160
+ | 'restale'
161
+ /** `answer=hold` ⇒ no land; the apply rung records the answer in body as usual. */
162
+ | 'hold'
163
+ /** `answer=drop` ⇒ no land; the apply rung records the answer in body as usual. */
164
+ | 'drop';
165
+ /** What the production handler returns to the apply rung. */
166
+ export interface MergeActionResult {
167
+ outcome: MergeActionOutcome;
168
+ /** Human-readable summary for the rung's message. */
169
+ message: string;
170
+ /**
171
+ * The integration-core result, when the dispatcher reached
172
+ * `performIntegration` (i.e. `answer=merge` + not re-staled). Carries the
173
+ * routing observed by the land primitive (`gate-failed`, `completed`,
174
+ * `already-integrated`, …), so callers can branch on it.
175
+ */
176
+ integration?: IntegrationCoreResult;
177
+ }
178
+ /**
179
+ * The injectable dispatch SEAM. Production wires {@link performMergeAction}
180
+ * (which checks out via `createJob` + lands via `performIntegration`); tests
181
+ * inject a stub to assert the apply-rung short-circuits on `refused` and falls
182
+ * through on `landed` / `hold` / `drop` / `restale` WITHOUT spinning up a real
183
+ * hub mirror.
184
+ */
185
+ export type MergeActionHandler = (input: MergeActionInput) => Promise<MergeActionResult>;
186
+ /**
187
+ * The PRODUCTION dispatcher: an answered `kind: merge` entry's verb drives one
188
+ * of the four terminals (`landed` / `refused` / `restale` / `hold|drop`). For
189
+ * `answer=merge` it checks out the unmerged `work/<slug>` via the EXISTING
190
+ * `workspace.ts` per-job worktree seam ({@link createJob}, the same seam the
191
+ * build / recovery callers use) and invokes the LAND primitive
192
+ * ({@link performIntegration}) with `committedRecovery: true` +
193
+ * `freshWorktreeGate: true` — so the rebased tip is re-verified BEFORE it
194
+ * lands, the answered-merge land path NEVER integrates a clean-rebase-but-
195
+ * broken tree, and a refusal routes to needs-attention through the SAME
196
+ * shared seam (`applyNeedsAttentionTransition`) the build path uses. The job
197
+ * worktree is always disposed (success or failure) so the hub mirror does not
198
+ * accumulate stale per-job state.
199
+ *
200
+ * For `answer=hold` and `answer=drop` the dispatcher does not land — it just
201
+ * tells the apply rung to fall through to the normal answer-recording path.
202
+ * (Cancellation of the work branch on `drop` is OUT OF SCOPE; the answer is
203
+ * recorded and a future surfacer / human handles the artifact.)
204
+ */
205
+ export declare function performMergeAction(input: MergeActionInput): Promise<MergeActionResult>;
206
+ //# sourceMappingURL=apply-merge-action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-merge-action.d.ts","sourceRoot":"","sources":["../src/apply-merge-action.ts"],"names":[],"mappings":"AAEA,OAAO,EAKN,KAAK,YAAY,EAEjB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAEN,KAAK,qBAAqB,EAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH,uEAAuE;AACvE,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAExD,yFAAyF;AACzF,MAAM,WAAW,mBAAmB;IACnC,kEAAkE;IAClE,IAAI,EAAE,eAAe,CAAC;IACtB,2DAA2D;IAC3D,KAAK,EAAE,YAAY,CAAC;CACpB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAe1E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACxC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACV,mBAAmB,GAAG,SAAS,CAmBjC;AAED,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAChC,iDAAiD;IACjD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,GAAG,EAAE,MAAM,CAAC;IACZ,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,aAAa,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mEAAmE;IACnE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,6EAA6E;IAC7E,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,mEAAmE;AACnE,MAAM,MAAM,kBAAkB;AAC7B,qFAAqF;AACnF,QAAQ;AACV,yFAAyF;GACvF,oBAAoB;AACtB;;;;;;GAMG;GACD,SAAS;AACX;;;;GAIG;GACD,SAAS;AACX,mFAAmF;GACjF,MAAM;AACR,mFAAmF;GACjF,MAAM,CAAC;AAEV,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAChC,KAAK,EAAE,gBAAgB,KACnB,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAmEhC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,kBAAkB,CACvC,KAAK,EAAE,gBAAgB,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAuK5B"}