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,131 @@
1
+ /**
2
+ * The SINGLE owner of the buildable-task (and PRD-body) markdown SECTION SCHEMA
3
+ * (prd `centralize-buildable-task-renderer-shared-by-intake-and-promotion`, US
4
+ * #1/#4/#7). dorfl has TWO independent producers of a buildable task/PRD body —
5
+ * `intake.ts` (`renderBacklogTask`/`renderSpec`, a wrapper+fallback) and
6
+ * `triage-persist.ts` (`buildPromotedBody`, a structured renderer) — and until
7
+ * this module they each HAND-ROLLED the `## What to build` / `## Acceptance
8
+ * criteria` / `## Open questions` / `## Prompt` skeleton, so the schema could (and
9
+ * did) DRIFT apart silently (the promptless-promotion stuck-lock bug, see the
10
+ * origin observation
11
+ * `advance-promotion-builds-promptless-task-that-self-claims-stuck-2026-06-25`).
12
+ *
13
+ * This module renders only the BODY (the markdown AFTER the frontmatter fence) —
14
+ * the part both producers actually share. Each producer keeps its OWN frontmatter
15
+ * writer (intake stamps `issue:`/`originTrust:`; promotion stamps `needsAnswers:`/
16
+ * `blockedBy:`) and its OWN writer/integration mode (intake's branch+PR front
17
+ * door; promotion's triage-local CAS create) — only the section skeleton is
18
+ * centralized here.
19
+ *
20
+ * The two producers are ASYMMETRIC, and that asymmetry is expressed by the
21
+ * renderer's inputs rather than by two divergent bodies:
22
+ *
23
+ * - intake's DEFAULT-SCAFFOLD skeleton (used ONLY when the intake agent drafted
24
+ * no body) is `## What to build` + `## Acceptance criteria` + a thin default
25
+ * `## Prompt`. Reproduced by passing all three.
26
+ * - promotion's structured body is `## What to build` (the mechanism prose) +
27
+ * optional `## Open questions` + a `## Prompt` seeded (blockquoted) from the
28
+ * mechanism prose, and NO `## Acceptance criteria`. Reproduced by omitting
29
+ * `acceptanceCriteria` and passing the open-questions block + the seed prose.
30
+ *
31
+ * Symmetrically, {@link renderSpecBody} owns the FULL PRD section schema both PRD
32
+ * producers need: intake's default PRD scaffold is `## Problem Statement` +
33
+ * `## Solution` + `## User Stories` (reproduced by passing all three), while
34
+ * promotion's structured PRD body is `## Problem Statement` + optional
35
+ * `## Open questions` (reproduced by omitting `solution`/`userStories`). Each
36
+ * optional section is emitted only when its input is non-empty.
37
+ *
38
+ * `## Prompt` is TASK-ONLY: a PRD is not dispatched by `do`/`run`, so a PRD body
39
+ * carries none (the symmetric reason the task body MUST carry one — the consumer
40
+ * `extractPromptSection`/`resolveTask` in `prompt.ts` throws "has no '## Prompt'
41
+ * section" at dispatch time without it). {@link renderTaskBody} always emits a
42
+ * `## Prompt`; {@link renderSpecBody} never does.
43
+ *
44
+ * NOTE (extract-only): this module is a PURE ADDITION. Neither producer is rewired
45
+ * here — that is the two follow-on tasks (kept file-orthogonal so each proves its
46
+ * own output is byte-for-byte preserved). This task lands the renderer + its
47
+ * golden-shape test ONLY.
48
+ */
49
+ /** Blockquote a prompt SEED: each line gets a `> ` prefix (blank lines → `>`). */
50
+ function blockquote(seed) {
51
+ return seed
52
+ .split('\n')
53
+ .map((line) => (line === '' ? '>' : `> ${line}`))
54
+ .join('\n');
55
+ }
56
+ /**
57
+ * Render a buildable TASK body (the markdown AFTER the frontmatter fence). Emits,
58
+ * in order: `## What to build`, `## Acceptance criteria` (only when given),
59
+ * `## Open questions` (only when given), and ALWAYS `## Prompt` (blockquoted).
60
+ *
61
+ * The output passes `extractPromptSection`/`resolveTask` without the
62
+ * "has no '## Prompt' section" throw, because `## Prompt` is unconditional and
63
+ * never empty. The caller wraps this body with its own frontmatter.
64
+ *
65
+ * FENCE↔HEADING BOUNDARY: this renderer starts at its first heading with NO
66
+ * leading blank line — the caller's frontmatter serializer owns the single blank
67
+ * line between the closing `---` fence and this first heading (ratified in
68
+ * `docs/adr/frontmatter-owns-fence-to-heading-blank-line.md`). Do NOT add a
69
+ * leading blank here; that would reintroduce the fence-spacing drift class.
70
+ */
71
+ export function renderTaskBody(input) {
72
+ const lines = [
73
+ '## What to build',
74
+ '',
75
+ input.whatToBuild.trim() === ''
76
+ ? '(no `## What to build` prose was supplied.)'
77
+ : input.whatToBuild.trim(),
78
+ '',
79
+ ];
80
+ const acceptance = (input.acceptanceCriteria ?? '').trim();
81
+ if (acceptance !== '') {
82
+ lines.push('## Acceptance criteria', '', acceptance, '');
83
+ }
84
+ const openQuestions = (input.openQuestions ?? '').trim();
85
+ if (openQuestions !== '') {
86
+ lines.push('## Open questions', '', openQuestions, '');
87
+ }
88
+ const seed = input.prompt.trim() === ''
89
+ ? 'Build the task described above.'
90
+ : input.prompt.trim();
91
+ lines.push('## Prompt', '', blockquote(seed), '');
92
+ return lines.join('\n');
93
+ }
94
+ /**
95
+ * Render a PRD body (the markdown AFTER the frontmatter fence). Emits, in the
96
+ * canonical order, `## Problem Statement`, then `## Solution`, `## User Stories`,
97
+ * and `## Open questions` (each only when its input is given), and NEVER a
98
+ * `## Prompt` — a PRD is a north-star doc, not a dispatchable task. The symmetric twin of
99
+ * {@link renderTaskBody}, owning the FULL SPEC section schema both producers need
100
+ * (intake's default scaffold supplies Problem Statement + Solution + User Stories;
101
+ * promotion's structured body supplies Problem Statement + optional Open
102
+ * questions) so the two artifact shapes cannot drift apart.
103
+ *
104
+ * FENCE↔HEADING BOUNDARY: same convention as {@link renderTaskBody} — no leading
105
+ * blank; the frontmatter serializer owns the `\n\n` after the closing `---` fence
106
+ * (see `docs/adr/frontmatter-owns-fence-to-heading-blank-line.md`).
107
+ */
108
+ export function renderSpecBody(input) {
109
+ const lines = [
110
+ '## Problem Statement',
111
+ '',
112
+ input.problemStatement.trim() === ''
113
+ ? '(no `## Problem Statement` prose was supplied.)'
114
+ : input.problemStatement.trim(),
115
+ '',
116
+ ];
117
+ const solution = (input.solution ?? '').trim();
118
+ if (solution !== '') {
119
+ lines.push('## Solution', '', solution, '');
120
+ }
121
+ const userStories = (input.userStories ?? '').trim();
122
+ if (userStories !== '') {
123
+ lines.push('## User Stories', '', userStories, '');
124
+ }
125
+ const openQuestions = (input.openQuestions ?? '').trim();
126
+ if (openQuestions !== '') {
127
+ lines.push('## Open questions', '', openQuestions, '');
128
+ }
129
+ return lines.join('\n');
130
+ }
131
+ //# sourceMappingURL=buildable-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildable-body.js","sourceRoot":"","sources":["../src/buildable-body.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Pure categorisation of backlog items into the "who can take it" groups used by
3
+ * the human decision dashboard. Grouping is deliberately INDEPENDENT of the
4
+ * repo's `autoBuild` policy: a human always sees the full picture, and the
5
+ * policy only changes the eligibility *verdict* / summary counts elsewhere —
6
+ * never which group an item lands in.
7
+ */
8
+ import type { ScannedItem } from './scan.js';
9
+ /**
10
+ * Which group an item belongs to, derived from its two autonomy axes
11
+ * (`humanOnly`, `needsAnswers`) and its dependency readiness (NOT the runner's
12
+ * `autoBuild` policy):
13
+ * - `agent-claimable` — neither axis gated AND deps satisfied: an agent can
14
+ * claim it now (provided this repo's `autoBuild` policy is on).
15
+ * - `human-only` — `humanOnly: true`: a human decides/builds it; an agent never
16
+ * claims it, regardless of policy or deps.
17
+ * - `needs-answers` — not `humanOnly` but `needsAnswers: true`: open questions
18
+ * block autonomous work until they are answered (the questions live in the
19
+ * body); an agent never claims it.
20
+ * - `blocked` — neither axis gated but deps unsatisfied: would be
21
+ * agent-claimable once its blockers reach `work/done/`.
22
+ *
23
+ * `humanOnly` takes precedence over `needsAnswers` for display grouping (a single
24
+ * group per item), but BOTH gate the agent identically in `eligibility`.
25
+ */
26
+ export type Category = 'agent-claimable' | 'human-only' | 'needs-answers' | 'blocked';
27
+ /** Stable display order for the four groups. */
28
+ export declare const CATEGORY_ORDER: Category[];
29
+ /** Human-facing section headings for each group. */
30
+ export declare const CATEGORY_LABELS: Record<Category, string>;
31
+ /** A scanned item, classified for the dashboard. */
32
+ export interface CategorisedItem {
33
+ item: ScannedItem;
34
+ category: Category;
35
+ /** Whether its `blockedBy` deps are all satisfied (ready to be picked up). */
36
+ ready: boolean;
37
+ }
38
+ /**
39
+ * Map an item's autonomy axes (`humanOnly`, `needsAnswers`) + dependency
40
+ * readiness to its dashboard category. Policy-independent by design: the
41
+ * category reflects what the author declared and whether its deps are met, not
42
+ * the runner's `autoBuild` policy. `humanOnly` is shown before `needsAnswers`
43
+ * when both are set, so the REASON is always visible.
44
+ */
45
+ export declare function categoriseItem(item: ScannedItem): CategorisedItem;
46
+ /** The items of one repo, bucketed by category and sorted ready-first. */
47
+ export type CategorisedGroups = Record<Category, CategorisedItem[]>;
48
+ /**
49
+ * Bucket a repo's scanned items into the three groups. Within each group, ready
50
+ * (deps-satisfied) items sort above blocked ones; ties keep the incoming order
51
+ * (the scan core already sorts items by slug), so the result is deterministic.
52
+ */
53
+ export declare function categoriseItems(items: ScannedItem[]): CategorisedGroups;
54
+ /** Stable sort placing ready items before blocked ones, preserving order otherwise. */
55
+ export declare function sortReadyFirst(items: CategorisedItem[]): CategorisedItem[];
56
+ /** Per-category and readiness tallies for the dashboard summary. */
57
+ export interface CategorySummary {
58
+ agentClaimable: number;
59
+ humanOnly: number;
60
+ needsAnswers: number;
61
+ blocked: number;
62
+ ready: number;
63
+ }
64
+ /** Aggregate counts across every repo's groups for the summary line. */
65
+ export declare function summariseGroups(allGroups: CategorisedGroups[]): CategorySummary;
66
+ //# sourceMappingURL=categorise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categorise.d.ts","sourceRoot":"","sources":["../src/categorise.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAE3C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,QAAQ,GACjB,iBAAiB,GACjB,YAAY,GACZ,eAAe,GACf,SAAS,CAAC;AAEb,gDAAgD;AAChD,eAAO,MAAM,cAAc,EAAE,QAAQ,EAKpC,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAOpD,CAAC;AAEF,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,8EAA8E;IAC9E,KAAK,EAAE,OAAO,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe,CAajE;AAED,0EAA0E;AAC1E,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;AAWpE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,iBAAiB,CAUvE;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAU1E;AAED,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAC9B,SAAS,EAAE,iBAAiB,EAAE,GAC5B,eAAe,CAsBjB"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Pure categorisation of backlog items into the "who can take it" groups used by
3
+ * the human decision dashboard. Grouping is deliberately INDEPENDENT of the
4
+ * repo's `autoBuild` policy: a human always sees the full picture, and the
5
+ * policy only changes the eligibility *verdict* / summary counts elsewhere —
6
+ * never which group an item lands in.
7
+ */
8
+ /** Stable display order for the four groups. */
9
+ export const CATEGORY_ORDER = [
10
+ 'agent-claimable',
11
+ 'human-only',
12
+ 'needs-answers',
13
+ 'blocked',
14
+ ];
15
+ /** Human-facing section headings for each group. */
16
+ export const CATEGORY_LABELS = {
17
+ 'agent-claimable': 'Agent-claimable now (not human-only, no open questions, deps satisfied; needs --auto-build)',
18
+ 'human-only': 'Human-only (humanOnly: true — a human decides/builds)',
19
+ 'needs-answers': 'Needs answers (needsAnswers: true — open questions block autonomous work)',
20
+ blocked: 'Blocked (not gated, waiting on deps)',
21
+ };
22
+ /**
23
+ * Map an item's autonomy axes (`humanOnly`, `needsAnswers`) + dependency
24
+ * readiness to its dashboard category. Policy-independent by design: the
25
+ * category reflects what the author declared and whether its deps are met, not
26
+ * the runner's `autoBuild` policy. `humanOnly` is shown before `needsAnswers`
27
+ * when both are set, so the REASON is always visible.
28
+ */
29
+ export function categoriseItem(item) {
30
+ const ready = item.eligibility.blockedBy.satisfied;
31
+ let category;
32
+ if (item.humanOnly === true) {
33
+ category = 'human-only';
34
+ }
35
+ else if (item.needsAnswers === true) {
36
+ category = 'needs-answers';
37
+ }
38
+ else if (ready) {
39
+ category = 'agent-claimable';
40
+ }
41
+ else {
42
+ category = 'blocked';
43
+ }
44
+ return { item, category, ready };
45
+ }
46
+ function emptyGroups() {
47
+ return {
48
+ 'agent-claimable': [],
49
+ 'human-only': [],
50
+ 'needs-answers': [],
51
+ blocked: [],
52
+ };
53
+ }
54
+ /**
55
+ * Bucket a repo's scanned items into the three groups. Within each group, ready
56
+ * (deps-satisfied) items sort above blocked ones; ties keep the incoming order
57
+ * (the scan core already sorts items by slug), so the result is deterministic.
58
+ */
59
+ export function categoriseItems(items) {
60
+ const groups = emptyGroups();
61
+ for (const item of items) {
62
+ const categorised = categoriseItem(item);
63
+ groups[categorised.category].push(categorised);
64
+ }
65
+ for (const category of CATEGORY_ORDER) {
66
+ groups[category] = sortReadyFirst(groups[category]);
67
+ }
68
+ return groups;
69
+ }
70
+ /** Stable sort placing ready items before blocked ones, preserving order otherwise. */
71
+ export function sortReadyFirst(items) {
72
+ return items
73
+ .map((value, index) => ({ value, index }))
74
+ .sort((a, b) => {
75
+ if (a.value.ready !== b.value.ready) {
76
+ return a.value.ready ? -1 : 1;
77
+ }
78
+ return a.index - b.index;
79
+ })
80
+ .map((entry) => entry.value);
81
+ }
82
+ /** Aggregate counts across every repo's groups for the summary line. */
83
+ export function summariseGroups(allGroups) {
84
+ const summary = {
85
+ agentClaimable: 0,
86
+ humanOnly: 0,
87
+ needsAnswers: 0,
88
+ blocked: 0,
89
+ ready: 0,
90
+ };
91
+ for (const groups of allGroups) {
92
+ summary.agentClaimable += groups['agent-claimable'].length;
93
+ summary.humanOnly += groups['human-only'].length;
94
+ summary.needsAnswers += groups['needs-answers'].length;
95
+ summary.blocked += groups['blocked'].length;
96
+ for (const category of CATEGORY_ORDER) {
97
+ for (const entry of groups[category]) {
98
+ if (entry.ready) {
99
+ summary.ready++;
100
+ }
101
+ }
102
+ }
103
+ }
104
+ return summary;
105
+ }
106
+ //# sourceMappingURL=categorise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categorise.js","sourceRoot":"","sources":["../src/categorise.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * In-process TypeScript implementation of the atomic compare-and-swap claim from
3
+ * `scripts/CLAIM-PROTOCOL.md`. This is the first-class `dorfl claim`
4
+ * command (ADR §9: dorfl is the PRIMARY implementation of the claim
5
+ * protocol; `scripts/claim.sh` is retained as the portable, zero-dependency
6
+ * bootstrap / reference). The lock-substrate cut-over (prd
7
+ * `ledger-status-per-item-lock-refs`) has since diverged it from `claim.sh`'s
8
+ * body-move semantics — see the lock note below — but the exit codes are the same.
9
+ *
10
+ * It is async (each git call is a non-blocking `runAsync`) so two awaited claims
11
+ * over the same slug genuinely race — the arbiter's per-item-ref CAS (not test
12
+ * ordering) picks the single winner.
13
+ *
14
+ * Exit codes:
15
+ * 0 claim landed (the per-item lock is held; the body stays where it rested:
16
+ * `tasks/ready/` normally, or `tasks/backlog/` under --allow-backlog)
17
+ * 1 usage / environment error, or a readiness REFUSAL (unmet blockedBy)
18
+ * 2 item not claimable (not in backlog, or lost the lock race to someone else)
19
+ * 3 (legacy) push contention — no longer reachable: the per-item lock never
20
+ * falsely contends, so there is no retry budget to exhaust
21
+ *
22
+ * UNIFIED PER-ITEM LOCK (prd `ledger-status-per-item-lock-refs` US #1/#15/#16,
23
+ * ADR `ledger-status-on-per-item-lock-refs`): a claim ACQUIRES the item's
24
+ * per-item lock (`action: implement`) via the lock module and writes NOTHING to
25
+ * `main` — the body STAYS at `work/backlog/<slug>.md`. The claimable predicate is
26
+ * "in `backlog/` on `main` AND no lock held"; the held lock IS the claim. The lock
27
+ * is acquired FIRST, so a lock `lost` (the SAME item is already locked) makes the
28
+ * claim lose definitively (exit 2, NO retry budget). A subsequent claimability
29
+ * re-check (the body left `backlog/`) RELEASES the lock (never orphaned). Because
30
+ * claim touches no `main` (and no protected ref), a protected-`main` repo CAN be
31
+ * claimed. The interim dual-write (`git mv backlog→in-progress` + a `main` claim
32
+ * commit) is GONE.
33
+ *
34
+ * Before the claim runs, the HUMAN path's readiness guard (resolveReadiness) is
35
+ * applied: a task with an unmet `blockedBy` is REFUSED (exit 1, outcome
36
+ * 'not-ready') unless overridden; a `needsAnswers: true` task is WARNED about
37
+ * but still claimed. The autonomous runner does NOT pass `humanPath`, so its
38
+ * behaviour is unchanged (eligibility already filters those items upstream).
39
+ */
40
+ /** Maps onto the four claim.sh exit codes. */
41
+ export type ClaimExitCode = 0 | 1 | 2 | 3;
42
+ /** A semantic label for each exit code (for callers/tests, never the verdict). */
43
+ export type ClaimCasOutcome = 'claimed' | 'usage-error' | 'lost' | 'contended' | 'not-ready';
44
+ export interface ClaimCasOptions {
45
+ /** The slug to claim (`work/backlog/<slug>.md`). */
46
+ slug: string;
47
+ /** Working clone/worktree the claim runs in. */
48
+ cwd: string;
49
+ /** Name of the arbiter remote (`--arbiter`). Defaults to `origin`. */
50
+ arbiter?: string;
51
+ /**
52
+ * (LEGACY, accepted-but-ignored) Cap on push retries when main merely advanced.
53
+ * The per-item lock never falsely contends (a per-item ref CAS is self-arbitrating),
54
+ * so there is no retry loop and nothing to bound. Kept on the option shape so
55
+ * existing callers/tests that pass `--retries` keep type-checking; it has NO effect.
56
+ */
57
+ retries?: number;
58
+ /** Show the intended push without mutating the arbiter (`--dry-run`). */
59
+ dryRun?: boolean;
60
+ /**
61
+ * Apply the human-path readiness guard before the CAS: refuse an unmet
62
+ * `blockedBy`, warn on `needsAnswers`. The HUMAN `claim`/`start` path sets
63
+ * this; the autonomous runner leaves it off (it filters upstream via
64
+ * eligibility and must NOT change behaviour here).
65
+ */
66
+ humanPath?: boolean;
67
+ /**
68
+ * Override flag (`--force` / `--ignore-not-ready`): bypass the readiness
69
+ * refusal and silence the `needsAnswers` warning, printing a loud notice that
70
+ * the guard was overridden. Only meaningful with `humanPath`.
71
+ */
72
+ override?: boolean;
73
+ /**
74
+ * `--allow-backlog` (prd
75
+ * `do-allow-backlog-drive-staged-tasks-without-promotion`): WIDEN the claimable
76
+ * predicate to ALSO accept a `tasks/backlog/`-resident body (staging), so a
77
+ * human can drive a staged task in place WITHOUT promoting it to the pool. The
78
+ * claim STAYS a pure per-item-lock acquire \u2014 it writes NOTHING to `main` and
79
+ * does NOT `git mv` the body (the body stays in `tasks/backlog/`). Competitor
80
+ * exclusion is the HELD LOCK (the pool scan subtracts held slugs folder-
81
+ * agnostically), not the folder, so no move is needed. Default off \u21d2 the
82
+ * predicate is "in `tasks/ready/` on `main` AND no lock held" exactly as today;
83
+ * reachable ONLY via the explicit flag, never `run`/auto-pick/advance.
84
+ */
85
+ allowBacklog?: boolean;
86
+ /** Environment for child git processes (identity etc.). */
87
+ env?: NodeJS.ProcessEnv;
88
+ /** Sink for human-readable progress notes (claim.sh writes these to stderr). */
89
+ note?: (message: string) => void;
90
+ }
91
+ export interface ClaimCasResult {
92
+ exitCode: ClaimExitCode;
93
+ outcome: ClaimCasOutcome;
94
+ /** Human-readable summary of the terminal condition. */
95
+ message: string;
96
+ /**
97
+ * (RETAINED for the option shape; now ALWAYS absent.) Historically the sha of
98
+ * the CLAIM COMMIT that landed on `main`, used by in-place onboarding to branch
99
+ * the work branch off the exact claim commit. The lock-substrate claim writes
100
+ * NOTHING to `main` (the body stays where it rested — `tasks/ready/` normally,
101
+ * or `tasks/backlog/` under --allow-backlog), so there is no claim
102
+ * commit — onboarding cuts the work branch straight off `<arbiter>/main` (which
103
+ * carries the backlog body). Kept on the result shape so existing readers
104
+ * (`do.ts` threads `claim.claimCommit` into onboarding) keep type-checking; an
105
+ * `undefined` value drives onboarding's fresh-off-`<arbiter>/main` branch path.
106
+ */
107
+ claimCommit?: string;
108
+ }
109
+ /**
110
+ * Perform the claim CAS. Never throws for the expected "lost the race" or
111
+ * "contended" cases — those are returned as exit 2 / 3. Usage/environment
112
+ * problems surface as exit 1. A successful claim is exit 0. This mirrors
113
+ * claim.sh's control flow exactly (refuse dirty tree → loop attempts → on
114
+ * rejection refetch & decide lost-vs-advanced → cap retries → back off).
115
+ */
116
+ export declare function performClaim(options: ClaimCasOptions): Promise<ClaimCasResult>;
117
+ //# sourceMappingURL=claim-cas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claim-cas.d.ts","sourceRoot":"","sources":["../src/claim-cas.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,8CAA8C;AAC9C,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE1C,kFAAkF;AAClF,MAAM,MAAM,eAAe,GACxB,SAAS,GACT,aAAa,GACb,MAAM,GACN,WAAW,GACX,WAAW,CAAC;AAEf,MAAM,WAAW,eAAe;IAC/B,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,gFAAgF;IAChF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,eAAe,CAAC;IACzB,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAsCD;;;;;;GAMG;AACH,wBAAsB,YAAY,CACjC,OAAO,EAAE,eAAe,GACtB,OAAO,CAAC,cAAc,CAAC,CAgBzB"}