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,272 @@
1
+ import { brand, constantCase } from './brand.js';
2
+ /**
3
+ * The environment-variable config layer.
4
+ *
5
+ * A per-machine context (a CI job, a developer's shell) can set ANY {@link Config}
6
+ * key via an `DORFL_*` environment variable WITHOUT committing a file —
7
+ * including the host-only keys (`piBin`, `agentCmd`, …) that the per-repo
8
+ * `.dorfl.json` deliberately rejects.
9
+ *
10
+ * Env is a legitimate *per-machine source* — exactly like a CLI flag or the
11
+ * global `~/.config/dorfl/config.json` — so it is NOT subject to the
12
+ * per-repo allow/reject split (that split only governs the *committed repo
13
+ * file*). This is the sharpened host-only principle (ADR §13): host-only keys
14
+ * must come from a per-machine source (flag, env, or global file), never the
15
+ * committed repo file; env is simply the per-machine source CI actually has
16
+ * without writing a file.
17
+ *
18
+ * Resolution chain (highest wins):
19
+ *
20
+ * flag > ENV (DORFL_*) > per-repo > global > built-in default
21
+ *
22
+ * Naming: `DORFL_<SCREAMING_SNAKE(key)>` (mechanical camelCase →
23
+ * SCREAMING_SNAKE, prefixed with `DORFL_` to match the binary). E.g.
24
+ * `DORFL_AGENT_CMD`, `DORFL_PI_BIN`, `DORFL_DEFAULT_ARBITER`,
25
+ * `DORFL_PER_REPO_MAX`.
26
+ *
27
+ * Each value is coerced per the key's type and a typo/invalid value FAILS LOUDLY
28
+ * (never silently ignored) with a message naming the offending variable.
29
+ */
30
+ /**
31
+ * The shared `DORFL_` prefix on every env config variable. Derived from
32
+ * the single brand identity (`constantCase(base) + '_'`) so a rename flips the
33
+ * prefix in lockstep with the binary name (see `brand.ts`).
34
+ */
35
+ export const ENV_PREFIX = brand.envPrefix;
36
+ /**
37
+ * The coercion to apply per env-settable {@link Config} key. The source of truth
38
+ * for which env vars exist and how their raw strings become typed values. EVERY
39
+ * SCALAR `Config` key appears here (host-only included) — env is a per-machine
40
+ * source, so no scalar key is off-limits. Keys not listed have no env var.
41
+ *
42
+ * The lone EXCLUSION is `identity`: it is a NESTED structured object (with its
43
+ * own `auth`/`providers` sub-objects), not a scalar a single env string can
44
+ * carry. A `tokenEnv` indirection already covers the one secret a CI/per-machine
45
+ * context legitimately injects via env (the `gh` token), so there is no JSON-in-
46
+ * env hack here. The mapped type is `Partial` precisely to ALLOW this exclusion.
47
+ */
48
+ const KEY_COERCIONS = {
49
+ autoBuild: 'boolean',
50
+ autoTask: 'boolean',
51
+ // The observation-triage gate is a 3-state ENUM coercion (like `integration`),
52
+ // so `DORFL_OBSERVATION_TRIAGE=off|ask|auto` works and a typo FAILS
53
+ // LOUDLY naming the variable + the valid options.
54
+ observationTriage: { enum: ['off', 'ask', 'auto'] },
55
+ // The merge-question SURFACER gate is a 3-state ENUM coercion (mirrors
56
+ // `observationTriage`'s shape; SEPARATE axis with a HIGHER default, prd
57
+ // `land-time-reverify-and-parallel-merge-ceiling` Story 17 / task
58
+ // `merge-questions-gate-axis`), so `DORFL_MERGE_QUESTIONS=off|ask|auto`
59
+ // works and a typo FAILS LOUDLY naming the variable + the valid options.
60
+ mergeQuestions: { enum: ['off', 'ask', 'auto'] },
61
+ // The surface-blockers gate is a BOOLEAN coercion (like `autoBuild`), so
62
+ // `DORFL_SURFACE_BLOCKERS=true|false` works and a typo FAILS LOUDLY.
63
+ surfaceBlockers: 'boolean',
64
+ // `surfaceStaging` (the BOOLEAN gate-family member that widens the SURFACE
65
+ // candidate set to include STAGING — `tasks/backlog/` + `prds/proposed/` —
66
+ // not only the agent pool; prd
67
+ // `staging-surface-and-apply-promote-safety` F2) coerces as a BOOLEAN like
68
+ // `autoBuild`/`surfaceBlockers`, so `DORFL_SURFACE_STAGING=true|false`
69
+ // works and a typo FAILS LOUDLY. Resolution chain identical to the other
70
+ // gate-family members (flag > env > per-repo > global > built-in `true`).
71
+ surfaceStaging: 'boolean',
72
+ // `selectionOrder` coerces as a `'list'` (comma form
73
+ // `DORFL_SELECTION_ORDER=build,task,surface,triage`); a single-element
74
+ // list whose one entry is a preset keyword (`=drain`) is expanded by the
75
+ // resolver (`select-order.ts`). Subsumes the removed `prdsFirst` boolean.
76
+ selectionOrder: 'list',
77
+ maxParallel: 'number',
78
+ perRepoMax: 'number',
79
+ defaultArbiter: 'string',
80
+ workspacesDir: 'string',
81
+ arbitersDir: 'string',
82
+ humanWorktreesDir: 'string',
83
+ integration: { enum: ['propose', 'merge'] },
84
+ // `taskingIntegration` (the per-TRANSITION TASKING override) coerces as the SAME
85
+ // `propose`/`merge` enum as `integration`, so `DORFL_TASKING_INTEGRATION`
86
+ // works and a typo FAILS LOUDLY. Unset ⇒ the tasking transition falls back to
87
+ // `integration` (the flat value). It NEVER touches the build transition or intake.
88
+ taskingIntegration: { enum: ['propose', 'merge'] },
89
+ // `tasksLandIn` (the per-repo TASK-PLACEMENT default — prd
90
+ // `staging-pool-position-gate-and-trust-model` US #5) coerces as the
91
+ // `pre-backlog`/`ready` enum, so `DORFL_TASKS_LAND_IN=ready` works and a
92
+ // typo FAILS LOUDLY. Same
93
+ // precedence chain as `taskingIntegration` (flag > env > per-repo > global >
94
+ // built-in `pre-backlog`); fed into the runner-deterministic placement
95
+ // resolver (`src/placement.ts`) as the configured-default rung.
96
+ tasksLandIn: { enum: ['pre-backlog', 'ready'] },
97
+ // `specsLandIn` (the per-repo SPEC-PLACEMENT default — spec
98
+ // `staging-pool-position-gate-and-trust-model` US #2/#5) coerces as the
99
+ // `pre-proposed`/`ready` enum, so `DORFL_SPECS_LAND_IN=ready` works and a typo
100
+ // FAILS LOUDLY. Same precedence chain as `tasksLandIn` (flag > env > per-repo
101
+ // > global > built-in `pre-proposed`); fed into the shared placement resolver
102
+ // (`src/placement.ts`) as the configured-default rung for the spec lifecycle.
103
+ // The legacy `prdsLandIn` key / `DORFL_PRDS_LAND_IN` env are GONE after the
104
+ // prd → spec hard cutover (clean break).
105
+ specsLandIn: { enum: ['pre-proposed', 'ready'] },
106
+ // `noPR` (the PR-INTENT axis) is a BOOLEAN coercion (like `review`), so
107
+ // `DORFL_NO_PR=true|false` works and a typo FAILS LOUDLY. The removed
108
+ // `provider` override has NO env var (a stale `DORFL_PROVIDER` is ignored
109
+ // with a deprecation warning — see `envOverrides`).
110
+ noPR: 'boolean',
111
+ agentCmd: 'string',
112
+ model: 'string',
113
+ harness: { enum: ['null', 'pi'] },
114
+ piBin: 'string',
115
+ sessionsDir: 'string',
116
+ // `prepare` coerces as a `'list'` (comma form
117
+ // `DORFL_PREPARE=pnpm install,git submodule update --init`), exactly
118
+ // like `verify` — the SAME precedence chain, the sibling env-prep step.
119
+ prepare: 'list',
120
+ verify: 'list',
121
+ review: 'boolean',
122
+ reviewModel: 'string',
123
+ reviewMaxRounds: 'number',
124
+ taskerLoop: 'boolean',
125
+ taskerLoopMax: 'number',
126
+ taskerLoopModel: 'string',
127
+ // `freshWorktreeGate` is a BOOLEAN coercion (like `taskerLoop`), so
128
+ // `DORFL_FRESH_WORKTREE_GATE=true|false` works and a typo FAILS LOUDLY.
129
+ freshWorktreeGate: 'boolean',
130
+ // `mergeRetries` (the cross-job merge serialiser's CAS-retry cap — prd
131
+ // `land-time-reverify-and-parallel-merge-ceiling` Story 5 / Applied Answer q1 (a))
132
+ // coerces as a NUMBER (like `reviewMaxRounds`), so `DORFL_MERGE_RETRIES=20`
133
+ // works and a typo FAILS LOUDLY. A wide-matrix CI raises it; the default
134
+ // (1000 — the C2 large liveness ceiling) stays in place when unset.
135
+ mergeRetries: 'number',
136
+ // `strictMergeApproval` (the OPT-IN strictness layered on the OQ6
137
+ // stale-approval default — prd `land-time-reverify-and-parallel-merge-ceiling`
138
+ // sidecar OQ6 / task `strict-merge-approval-gate`) coerces as a BOOLEAN
139
+ // (like `freshWorktreeGate`), so `DORFL_STRICT_MERGE_APPROVAL=true|false`
140
+ // works and a typo FAILS LOUDLY. Default OFF; ON re-surfaces the
141
+ // merge-question on a merge-base change instead of auto-landing.
142
+ strictMergeApproval: 'boolean',
143
+ // `promptGuidance` is a STRUCTURED (nested) namespace, so it has no scalar env
144
+ // var of its own — each MEMBER carries its own env var (the nested-key form
145
+ // `DORFL_PROMPT_GUIDANCE_<MEMBER>`), handled out-of-band in
146
+ // `envOverrides` below. Listing the namespace here would imply a single scalar
147
+ // `DORFL_PROMPT_GUIDANCE` env var, which is NOT how the namespace is
148
+ // shaped (each nudge member is independently resolvable).
149
+ };
150
+ /**
151
+ * The env vars for the nested members of the `promptGuidance` namespace. The
152
+ * key is the env var name (`DORFL_PROMPT_GUIDANCE_<MEMBER>`, the nested
153
+ * naming the prd specifies); the value is the (boolean) coercion. Each member
154
+ * present in env contributes `{<member>: bool}` into a single
155
+ * `promptGuidance` partial — mergeConfig replaces the whole namespace per the
156
+ * layered precedence, which is correct because EVERY member is included (env
157
+ * supplies a complete inner object whenever ANY member is set).
158
+ */
159
+ const PROMPT_GUIDANCE_ENV = {
160
+ [ENV_PREFIX + 'PROMPT_GUIDANCE_TEST_FIRST']: 'boolean',
161
+ };
162
+ /** The `DORFL_*` env var name for a config key (`perRepoMax` →
163
+ * `DORFL_PER_REPO_MAX`): the brand prefix + the key in `constantCase`. */
164
+ export function envVarName(key) {
165
+ return ENV_PREFIX + constantCase(key);
166
+ }
167
+ /**
168
+ * Coerce a raw env string for one key, FAILING LOUDLY (with the offending var
169
+ * name) on invalid input: booleans accept only `true`/`false`; numbers reject
170
+ * NaN; enums must be in their union; list keys split on comma; strings verbatim.
171
+ */
172
+ function coerceValue(varName, raw, coercion) {
173
+ if (typeof coercion === 'object') {
174
+ // Enum: validate against the union.
175
+ if (!coercion.enum.includes(raw)) {
176
+ throw new Error(`Invalid value for ${varName}: '${raw}'. ` +
177
+ `Expected one of: ${coercion.enum.join(', ')}.`);
178
+ }
179
+ return raw;
180
+ }
181
+ switch (coercion) {
182
+ case 'string':
183
+ return raw;
184
+ case 'boolean':
185
+ if (raw === 'true') {
186
+ return true;
187
+ }
188
+ if (raw === 'false') {
189
+ return false;
190
+ }
191
+ throw new Error(`Invalid boolean for ${varName}: '${raw}'. Expected 'true' or 'false'.`);
192
+ case 'number': {
193
+ const n = Number(raw);
194
+ if (raw.trim() === '' || Number.isNaN(n)) {
195
+ throw new Error(`Invalid number for ${varName}: '${raw}'. Expected a numeric value.`);
196
+ }
197
+ return n;
198
+ }
199
+ case 'list':
200
+ // Split on comma (cross-platform; not `:`), trimming each entry. An empty
201
+ // string ⇒ an empty list (an explicit "clear" of a list key).
202
+ return raw
203
+ .split(',')
204
+ .map((s) => s.trim())
205
+ .filter((s) => s !== '');
206
+ }
207
+ }
208
+ /**
209
+ * Read the `DORFL_*` env layer into a {@link PartialConfig}. Only vars
210
+ * actually present (and non-`undefined`) contribute, so absent env ⇒ `{}` and
211
+ * built-in floors/defaults are untouched. Each present var is coerced per its
212
+ * key's type; an invalid value throws LOUDLY naming the variable.
213
+ *
214
+ * Env may set ANY key — host-only included — because env is a per-machine
215
+ * source, NOT the committed repo file (see this module's doc + ADR §13).
216
+ */
217
+ export function envOverrides(env = process.env, warn = (m) => console.error(`>> ${m}`)) {
218
+ // A stale `DORFL_PROVIDER` (the removed provider OVERRIDE) is IGNORED with
219
+ // a one-line deprecation warning, never an error — the provider is now purely
220
+ // arbiter-derived; "suppress the PR" re-homes to `noPR` (`DORFL_NO_PR`).
221
+ const staleProvider = env[ENV_PREFIX + 'PROVIDER'];
222
+ if (staleProvider !== undefined) {
223
+ warn(`Ignoring deprecated env var ${ENV_PREFIX}PROVIDER: the provider is now ` +
224
+ 'purely arbiter-derived (a GitHub remote ⇒ the GitHub provider, else ' +
225
+ 'none). To suppress the PR (the old `none` use), set ' +
226
+ `${ENV_PREFIX}NO_PR=true (or pass --no-pr).` +
227
+ (staleProvider === 'none'
228
+ ? ' (your `none` maps directly to NO_PR=true.)'
229
+ : ''));
230
+ }
231
+ const overrides = {};
232
+ // Per-member env layer for the `promptGuidance` NUDGE namespace. Each member
233
+ // is INDEPENDENTLY resolvable (`DORFL_PROMPT_GUIDANCE_<MEMBER>`); a
234
+ // present env var sets that member in the partial. We merge ALL set members
235
+ // into a single inner object, then assign once — the outer mergeConfig
236
+ // REPLACES the namespace per layer, so we send a coherent partial-inner per
237
+ // env override (a missing member there reads its default from the lower
238
+ // layer's namespace, which works because env is precisely a per-machine
239
+ // SETTER, not a gate).
240
+ const promptGuidancePartial = {};
241
+ for (const [varName, coercion] of Object.entries(PROMPT_GUIDANCE_ENV)) {
242
+ const raw = env[varName];
243
+ if (raw === undefined) {
244
+ continue;
245
+ }
246
+ const value = coerceValue(varName, raw, coercion);
247
+ if (varName === ENV_PREFIX + 'PROMPT_GUIDANCE_TEST_FIRST') {
248
+ promptGuidancePartial.testFirst = value;
249
+ }
250
+ }
251
+ if (Object.keys(promptGuidancePartial).length > 0) {
252
+ overrides.promptGuidance = {
253
+ testFirst: promptGuidancePartial.testFirst ?? false,
254
+ };
255
+ }
256
+ for (const key of Object.keys(KEY_COERCIONS)) {
257
+ const coercion = KEY_COERCIONS[key];
258
+ if (coercion === undefined) {
259
+ continue;
260
+ }
261
+ const varName = envVarName(key);
262
+ const raw = env[varName];
263
+ if (raw === undefined) {
264
+ continue;
265
+ }
266
+ const coerced = coerceValue(varName, raw, coercion);
267
+ // Type matches by construction: each coercion yields the key's value type.
268
+ overrides[key] = coerced;
269
+ }
270
+ return overrides;
271
+ }
272
+ //# sourceMappingURL=env-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-config.js","sourceRoot":"","sources":["../src/env-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * **The failure-CAUSE classifier** (task `failure-cause-classification-model-vs-
3
+ * git-vs-agent`).
4
+ *
5
+ * When a claimed item routes to `work/needs-attention/`, the runner records WHY.
6
+ * Historically several DIFFERENT causes collapsed into one undifferentiated label
7
+ * ("agent failed"), even though the CAUSE drives the RECOVERY:
8
+ *
9
+ * - **transient-infra** → retry the SAME work (the work is fine: a model
10
+ * endpoint outage the harness surfaced AFTER its own retries, or a git/
11
+ * provider outage).
12
+ * - **config-error** → fix the WIRING, not the task (a thrown CORE wiring/
13
+ * config error, e.g. `review` on with no `reviewGate` configured).
14
+ * - **agent-failed** (the conservative generic) → a human/agent must FIX
15
+ * something the agent did (ran but produced bad/empty output), OR the cause is
16
+ * simply UNKNOWN — the safe default that never forces a wrong specific label.
17
+ *
18
+ * This module classifies ONLY the axis that was previously lumped under
19
+ * "agent-failed". The OTHER existing terminal causes already have precise names
20
+ * and are NOT re-classified here — a red acceptance gate stays `gate-failed`, a
21
+ * rebase abort stays `rebase-conflict`, a deliberate STOP stays `agent-stopped`,
22
+ * a Gate-2 block stays `review-blocked`. This is the CAUSE axis ON TOP of those
23
+ * (see CONTEXT.md's *failure cause* glossary entry — the single source of truth).
24
+ *
25
+ * The classification is BEST-EFFORT + CONSERVATIVE: an unrecognised cause stays
26
+ * the generic `agent-failed`. The new precision is ADDED only where the cause is
27
+ * knowable from the surfaced error/detail; it never forces a wrong label.
28
+ *
29
+ * **`do` and `run` classify the SAME error the SAME way** by both routing their
30
+ * thrown-core-error / failed-agent detail through THIS one function — closing the
31
+ * cross-path divergence recorded in
32
+ * `work/notes/observations/run-thrown-core-error-labeled-agent-failed.md` (the SAME
33
+ * thrown core error used to read as `usage-error` in `do` but `agent-failed` in
34
+ * `run`).
35
+ *
36
+ * SCOPE FENCE: model-endpoint RETRIES are the HARNESS's job (pi retries its own
37
+ * API ~3–4×). This module does NOT add retries — it only CLASSIFIES what the
38
+ * harness SURFACES once its retries are exhausted (so a post-retry model outage
39
+ * reads as `transient-infra`, distinct from the agent producing bad output).
40
+ */
41
+ /**
42
+ * The CAUSE of a stuck item, the axis ON TOP of the existing terminal outcomes.
43
+ * Only the values this module decides between are listed — the genuinely-NEW
44
+ * `transient-infra` / `config-error` plus the conservative generic `agent-failed`
45
+ * (the existing name, reused as the safe default). The other terminal causes
46
+ * (`gate-failed`, `rebase-conflict`, `agent-stopped`, `review-blocked`) are NOT
47
+ * produced here; they keep their own precise outcome names at their own sites.
48
+ */
49
+ export type FailureCause = 'transient-infra' | 'config-error' | 'agent-failed';
50
+ /**
51
+ * Classify a failure CAUSE from the surfaced error/detail text, best-effort +
52
+ * conservative (an unrecognised cause stays `agent-failed`).
53
+ *
54
+ * Order matters: a thrown CORE config/wiring error is checked FIRST (it is the
55
+ * most specific + the cross-path divergence this task closes), then the
56
+ * transient-infra signals, else the generic default.
57
+ *
58
+ * Used by BOTH `do` and `run` at their failure-routing sites so the SAME error
59
+ * yields the SAME cause regardless of path.
60
+ */
61
+ export declare function classifyFailureCause(detail: string | undefined): FailureCause;
62
+ /**
63
+ * A short, human-readable label for a cause, used to PREFIX the recorded
64
+ * needs-attention reason so an operator (or an autonomous triage loop) reads the
65
+ * cause WITHOUT a second naming scheme. The generic `agent-failed` gets the
66
+ * historical "agent failed:" prefix so existing reason prose / tests are
67
+ * unchanged; only the NEW causes carry a distinct, legible prefix.
68
+ */
69
+ export declare function failureCauseLabel(cause: FailureCause): string;
70
+ //# sourceMappingURL=failure-cause.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-cause.d.ts","sourceRoot":"","sources":["../src/failure-cause.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GACrB,iBAAiB,GACjB,cAAc,GACd,cAAc,CAAC;AAgDlB;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAY7E;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAS7D"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * **The failure-CAUSE classifier** (task `failure-cause-classification-model-vs-
3
+ * git-vs-agent`).
4
+ *
5
+ * When a claimed item routes to `work/needs-attention/`, the runner records WHY.
6
+ * Historically several DIFFERENT causes collapsed into one undifferentiated label
7
+ * ("agent failed"), even though the CAUSE drives the RECOVERY:
8
+ *
9
+ * - **transient-infra** → retry the SAME work (the work is fine: a model
10
+ * endpoint outage the harness surfaced AFTER its own retries, or a git/
11
+ * provider outage).
12
+ * - **config-error** → fix the WIRING, not the task (a thrown CORE wiring/
13
+ * config error, e.g. `review` on with no `reviewGate` configured).
14
+ * - **agent-failed** (the conservative generic) → a human/agent must FIX
15
+ * something the agent did (ran but produced bad/empty output), OR the cause is
16
+ * simply UNKNOWN — the safe default that never forces a wrong specific label.
17
+ *
18
+ * This module classifies ONLY the axis that was previously lumped under
19
+ * "agent-failed". The OTHER existing terminal causes already have precise names
20
+ * and are NOT re-classified here — a red acceptance gate stays `gate-failed`, a
21
+ * rebase abort stays `rebase-conflict`, a deliberate STOP stays `agent-stopped`,
22
+ * a Gate-2 block stays `review-blocked`. This is the CAUSE axis ON TOP of those
23
+ * (see CONTEXT.md's *failure cause* glossary entry — the single source of truth).
24
+ *
25
+ * The classification is BEST-EFFORT + CONSERVATIVE: an unrecognised cause stays
26
+ * the generic `agent-failed`. The new precision is ADDED only where the cause is
27
+ * knowable from the surfaced error/detail; it never forces a wrong label.
28
+ *
29
+ * **`do` and `run` classify the SAME error the SAME way** by both routing their
30
+ * thrown-core-error / failed-agent detail through THIS one function — closing the
31
+ * cross-path divergence recorded in
32
+ * `work/notes/observations/run-thrown-core-error-labeled-agent-failed.md` (the SAME
33
+ * thrown core error used to read as `usage-error` in `do` but `agent-failed` in
34
+ * `run`).
35
+ *
36
+ * SCOPE FENCE: model-endpoint RETRIES are the HARNESS's job (pi retries its own
37
+ * API ~3–4×). This module does NOT add retries — it only CLASSIFIES what the
38
+ * harness SURFACES once its retries are exhausted (so a post-retry model outage
39
+ * reads as `transient-infra`, distinct from the agent producing bad output).
40
+ */
41
+ /**
42
+ * The signature of a thrown CORE wiring/config error this module recognises. The
43
+ * core throws a plain `Error` for `review` on with no `reviewGate` wired (the
44
+ * canonical config-error; see `integration-core.ts`), whose message contains
45
+ * "wiring bug". We match on that stable phrase rather than the error CLASS so the
46
+ * classification survives the message crossing the plain-`Error` boundary the
47
+ * catch sites hand us (they only have `err.message`).
48
+ */
49
+ const CONFIG_ERROR_SIGNATURES = [
50
+ /wiring bug/i,
51
+ /no review gate is configured/i,
52
+ ];
53
+ /**
54
+ * Substrings that mark a TRANSIENT-INFRA failure: a model endpoint / connection
55
+ * outage the harness surfaced AFTER exhausting its own retries, or a git/provider
56
+ * outage. Best-effort lexical signals (the harness/git only hand us a message
57
+ * string) — deliberately conservative: anything not matched stays `agent-failed`.
58
+ */
59
+ const TRANSIENT_INFRA_SIGNATURES = [
60
+ // A Gate-2 review verdict the runner could not PARSE (malformed JSON from the
61
+ // review agent, common on large diffs + weaker models). This is `transient-infra`,
62
+ // NOT `agent-failed`/`config-error`: the WORK is fine and the wiring is fine; the
63
+ // STOCHASTIC gate output misbehaved, so re-running the SAME work is the natural
64
+ // recovery (and the parser's repair pass + the tightened contract make a re-run far
65
+ // more likely to parse). Matches both `parseReviewVerdict` throw phrasings ("review
66
+ // verdict was not valid JSON" and "produced no parseable {verdict, findings}") and
67
+ // the core's "verdict could not be parsed" wrapper.
68
+ /review verdict was not valid JSON/i,
69
+ /verdict could not be parsed/i,
70
+ /no parseable \{verdict/i,
71
+ /\bECONN(?:REFUSED|RESET|ABORTED)\b/i,
72
+ /\bETIMEDOUT\b/i,
73
+ /\bENOTFOUND\b/i,
74
+ /\bEAI_AGAIN\b/i,
75
+ /connection (?:error|refused|reset|timed out|failed)/i,
76
+ /network (?:error|is unreachable|timeout)/i,
77
+ /\b(?:could not|unable to) (?:connect|reach)\b/i,
78
+ /\btimed? ?out\b/i,
79
+ /\b(?:overloaded|service unavailable|temporarily unavailable)\b/i,
80
+ /\b(?:429|500|502|503|504)\b/,
81
+ /model (?:endpoint )?(?:offline|unavailable|overloaded)/i,
82
+ /(?:after|exhausted) .{0,40}retr(?:y|ies)/i,
83
+ /rate.?limit/i,
84
+ ];
85
+ /**
86
+ * Classify a failure CAUSE from the surfaced error/detail text, best-effort +
87
+ * conservative (an unrecognised cause stays `agent-failed`).
88
+ *
89
+ * Order matters: a thrown CORE config/wiring error is checked FIRST (it is the
90
+ * most specific + the cross-path divergence this task closes), then the
91
+ * transient-infra signals, else the generic default.
92
+ *
93
+ * Used by BOTH `do` and `run` at their failure-routing sites so the SAME error
94
+ * yields the SAME cause regardless of path.
95
+ */
96
+ export function classifyFailureCause(detail) {
97
+ const text = (detail ?? '').trim();
98
+ if (text === '') {
99
+ return 'agent-failed';
100
+ }
101
+ if (CONFIG_ERROR_SIGNATURES.some((re) => re.test(text))) {
102
+ return 'config-error';
103
+ }
104
+ if (TRANSIENT_INFRA_SIGNATURES.some((re) => re.test(text))) {
105
+ return 'transient-infra';
106
+ }
107
+ return 'agent-failed';
108
+ }
109
+ /**
110
+ * A short, human-readable label for a cause, used to PREFIX the recorded
111
+ * needs-attention reason so an operator (or an autonomous triage loop) reads the
112
+ * cause WITHOUT a second naming scheme. The generic `agent-failed` gets the
113
+ * historical "agent failed:" prefix so existing reason prose / tests are
114
+ * unchanged; only the NEW causes carry a distinct, legible prefix.
115
+ */
116
+ export function failureCauseLabel(cause) {
117
+ switch (cause) {
118
+ case 'transient-infra':
119
+ return 'transient infra';
120
+ case 'config-error':
121
+ return 'config error';
122
+ case 'agent-failed':
123
+ return 'agent failed';
124
+ }
125
+ }
126
+ //# sourceMappingURL=failure-cause.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-cause.js","sourceRoot":"","sources":["../src/failure-cause.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAeH;;;;;;;GAOG;AACH,MAAM,uBAAuB,GAAG;IAC/B,aAAa;IACb,+BAA+B;CAC/B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,0BAA0B,GAAG;IAClC,8EAA8E;IAC9E,mFAAmF;IACnF,kFAAkF;IAClF,gFAAgF;IAChF,oFAAoF;IACpF,oFAAoF;IACpF,mFAAmF;IACnF,oDAAoD;IACpD,oCAAoC;IACpC,8BAA8B;IAC9B,yBAAyB;IACzB,qCAAqC;IACrC,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,sDAAsD;IACtD,2CAA2C;IAC3C,gDAAgD;IAChD,kBAAkB;IAClB,iEAAiE;IACjE,6BAA6B;IAC7B,yDAAyD;IACzD,2CAA2C;IAC3C,cAAc;CACd,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAA0B;IAC9D,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QACjB,OAAO,cAAc,CAAC;IACvB,CAAC;IACD,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,cAAc,CAAC;IACvB,CAAC;IACD,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC5D,OAAO,iBAAiB,CAAC;IAC1B,CAAC;IACD,OAAO,cAAc,CAAC;AACvB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAmB;IACpD,QAAQ,KAAK,EAAE,CAAC;QACf,KAAK,iBAAiB;YACrB,OAAO,iBAAiB,CAAC;QAC1B,KAAK,cAAc;YAClB,OAAO,cAAc,CAAC;QACvB,KAAK,cAAc;YAClB,OAAO,cAAc,CAAC;IACxB,CAAC;AACF,CAAC"}
@@ -0,0 +1,43 @@
1
+ import type { ScanReport } from './scan.js';
2
+ import type { CwdSection } from './cwd-section.js';
3
+ import type { LockEntry } from './item-lock.js';
4
+ /**
5
+ * Human label for the two autonomy axes. `humanOnly` is reported first when both
6
+ * are set, so the REASON an agent is gated is always visible and distinct from
7
+ * `needsAnswers`.
8
+ */
9
+ export declare function gateLabel(humanOnly: boolean | undefined, needsAnswers?: boolean | undefined): string;
10
+ /**
11
+ * Render the CWD-LOCAL section of `scan`/`status` (the `scan-status-read-cwd-repo`
12
+ * task): a DISTINCT, separately-counted block for the CURRENT repo, read from
13
+ * the LOCAL WORKING TREE (NOT the registry's bare mirror ref). Returns `[]` when
14
+ * the cwd does NOT participate (no local section). The section LABELS its source
15
+ * + freshness, shows the divergence-vs-arbiter (`main-divergence-guard` framing),
16
+ * and — when the cwd participates but is NOT registered — teaches
17
+ * self-registration instead of the dead-end "No participating repos found".
18
+ *
19
+ * The counts here are the cwd's OWN (never merged into the registry total — the
20
+ * consistency rule): the two reads have different freshness + storage models.
21
+ */
22
+ /**
23
+ * Render ONE held per-item lock entry (action × state + reason/questions) as
24
+ * indented lines, the SHARED renderer for the in-flight lock surface on BOTH the
25
+ * registry view (`formatStatus`) and the cwd section (`formatCwdSection`), so the
26
+ * two substrates present a held/stuck item identically (NOT a forked renderer). An
27
+ * `active` hold reads as `in-progress`; a `stuck` hold as `needs-attention` and
28
+ * carries its (possibly multi-line) reason + any surfaced questions.
29
+ */
30
+ export declare function formatLockEntryLines(entry: LockEntry, indent: string): string[];
31
+ export declare function formatCwdSection(section: CwdSection): string[];
32
+ /**
33
+ * Render the cross-repo queue as a human decision dashboard: under each repo,
34
+ * every backlog item is grouped by who-can-take-it (Agent-claimable now /
35
+ * Human-only / Blocked), with empty groups shown as `(none)`. Within a group,
36
+ * ready (deps-satisfied) items sort above blocked ones.
37
+ *
38
+ * The set of groups shown is INDEPENDENT of `autoBuild`; only the eligibility
39
+ * *verdict* line reflects the policy (`report.totalEligible` counts an
40
+ * agent-claimable item only when `autoBuild` is on).
41
+ */
42
+ export declare function formatReport(report: ScanReport, cwd?: CwdSection): string;
43
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAc,MAAM,WAAW,CAAC;AACvD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAW9C;;;;GAIG;AACH,wBAAgB,SAAS,CACxB,SAAS,EAAE,OAAO,GAAG,SAAS,EAC9B,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,GAChC,MAAM,CAQR;AA6ED;;;;;;;;;;;GAWG;AACH;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,GACZ,MAAM,EAAE,CAwBV;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,EAAE,CAyE9D;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,MAAM,CAwEzE"}