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
package/dist/detect.js ADDED
@@ -0,0 +1,118 @@
1
+ import { readdirSync, existsSync, statSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { workFolderPath, isWorkItemFile } from './work-layout.js';
4
+ /**
5
+ * Discovery of `work/`-participating repos in a FOLDER. In the registry model
6
+ * (ADR `command-surface-and-journeys` §1) the registered set IS the hub-mirror
7
+ * set on disk — there is NO config `roots`/`remotes` walk. This module is no
8
+ * longer implicit discovery; its sole remaining job is to serve
9
+ * **`remote find <folder>`** (ADR §1): walk ONE folder, find the participating
10
+ * repos, and let the user toggle-add them. `isParticipatingRepo` is the same
11
+ * predicate `remote find` filters on. A repo participates when it holds dorfl
12
+ * WORK content in any lifecycle pool (see {@link isParticipatingRepo}), not only
13
+ * a non-empty `tasks/ready/`.
14
+ */
15
+ /**
16
+ * The `work/` pools whose presence makes a repo a dorfl WORK repo. Participation
17
+ * is NOT "has a claimable task": a repo whose `tasks/ready/` build pool is drained
18
+ * but whose LIFECYCLE queues are full (answered `questions/` sidecars awaiting
19
+ * apply, `needsAnswers` observations awaiting surface, staged prds/tasks awaiting
20
+ * promotion) is still very much participating — the lifecycle rungs
21
+ * (triage / surface / apply / promote) act on exactly those pools. Gating
22
+ * participation on `tasks/ready/` ALONE made such a repo read as non-participating,
23
+ * so `scan --here` returned empty lifecycle buckets and the CI enumerate step found
24
+ * nothing to do (a silent green no-op while real work sat in `questions/`).
25
+ *
26
+ * The predicate therefore mirrors what `enumerate`/`scan` can actually produce
27
+ * items from: it stays a CHEAP, fetch-free local `readdirSync` (no network — it is
28
+ * the pre-gate `remote find` and the cwd-section resolver call before paying for a
29
+ * fetch), just no longer NARROWER than the lifecycle it guards.
30
+ */
31
+ const PARTICIPATING_POOLS = [
32
+ 'tasks-ready',
33
+ 'tasks-backlog',
34
+ 'specs-proposed',
35
+ 'specs-ready',
36
+ 'observations',
37
+ 'questions',
38
+ ];
39
+ /**
40
+ * A repo participates iff any of its lifecycle-bearing `work/` pools
41
+ * ({@link PARTICIPATING_POOLS}) contains at least one `.md` file. This is the
42
+ * predicate `remote find` (ADR §1) filters on AND the fetch-free gate
43
+ * `scan`/`status` use before resolving the (expensive) cwd section.
44
+ */
45
+ export function isParticipatingRepo(repoPath) {
46
+ return PARTICIPATING_POOLS.some((key) => folderHasWorkItem(repoPath, key));
47
+ }
48
+ /** True iff the named work folder exists and holds at least one work-item `.md`. */
49
+ function folderHasWorkItem(repoPath, key) {
50
+ let entries;
51
+ try {
52
+ entries = readdirSync(workFolderPath(repoPath, key));
53
+ }
54
+ catch {
55
+ return false;
56
+ }
57
+ return entries.some((name) => isWorkItemFile(name));
58
+ }
59
+ function shouldPrune(name) {
60
+ return name === 'node_modules' || name.startsWith('.');
61
+ }
62
+ /**
63
+ * Walk a single folder, collecting participating repo paths. Prunes
64
+ * `node_modules` and dotdirs, and does not descend into a repo once it is found
65
+ * to participate (a participating repo's own subtree yields no more repos).
66
+ */
67
+ function walkFolder(folder, found) {
68
+ const stack = [folder];
69
+ while (stack.length > 0) {
70
+ const dir = stack.pop();
71
+ if (isParticipatingRepo(dir)) {
72
+ found.add(dir);
73
+ // Don't descend further into a participating repo.
74
+ continue;
75
+ }
76
+ let entries;
77
+ try {
78
+ entries = readdirSync(dir, { withFileTypes: true });
79
+ }
80
+ catch {
81
+ continue;
82
+ }
83
+ for (const entry of entries) {
84
+ if (!entry.isDirectory()) {
85
+ continue;
86
+ }
87
+ if (shouldPrune(entry.name)) {
88
+ continue;
89
+ }
90
+ stack.push(join(dir, entry.name));
91
+ }
92
+ }
93
+ }
94
+ /**
95
+ * Find every `work/`-participating repo under `folder` (recursively), pruning
96
+ * `node_modules`/dotdirs and not descending into a participating repo. The
97
+ * returned list is deduplicated and sorted (deterministic). This is the
98
+ * discovery primitive behind `remote find <folder>` (ADR §1): the caller filters
99
+ * on {@link isParticipatingRepo} and toggle-adds the chosen ones via `remote
100
+ * add`. A non-existent / non-directory `folder` yields `[]` (never throws).
101
+ */
102
+ export function findParticipatingRepos(folder) {
103
+ const found = new Set();
104
+ if (!existsSync(folder)) {
105
+ return [];
106
+ }
107
+ try {
108
+ if (!statSync(folder).isDirectory()) {
109
+ return [];
110
+ }
111
+ }
112
+ catch {
113
+ return [];
114
+ }
115
+ walkFolder(folder, found);
116
+ return [...found].sort();
117
+ }
118
+ //# sourceMappingURL=detect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import { type DoOptions, type DoResult } from './do.js';
2
+ import { type LedgerReadStrategy } from './ledger-read.js';
3
+ import type { Config } from './config.js';
4
+ import type { ConfigOverrideMap } from './config-override.js';
5
+ /**
6
+ * The MULTI-ITEM selection forms of `do` (ADR `command-surface-and-journeys`
7
+ * §3), layered ON TOP of the single-item in-place pipeline from `do-in-place`
8
+ * ({@link performDo}) — it does NOT reimplement that pipeline; it SELECTS +
9
+ * ORDERS items and runs the existing pipeline per item, SEQUENTIALLY (`do` is
10
+ * sequential; parallelism is `run`'s job).
11
+ *
12
+ * - **`do` (no arg)** — auto-pick ONE eligible thing and do it.
13
+ * - **`do -n <x>`** — do x eligible things, in sequence.
14
+ * - **`do <a> <b> …`** — do those NAMED items, in sequence.
15
+ *
16
+ * Auto-pick / `-n` draw from TWO POOLS ordered by the configurable
17
+ * `selectionOrder` (the shared, pure {@link selectPrioritised} helper): eligible
18
+ * TASKS (the `build` pool — the existing `scan`/`selectCandidates`/eligibility
19
+ * path) and TASKABLE prds (the `task` pool — built from the prd reader +
20
+ * `autoslice-gate`'s predicate), in the per-repo `selectionOrder` (default `drain`
21
+ * = tasks-first). A selected prd dispatches to the `do prd:<slug>` path (tasking
22
+ * itself is `autoslice-command`, not built here).
23
+ *
24
+ * Explicit multi-arg (`do <a> <b>`) bypasses the pools/priority entirely — the
25
+ * named items are resolved + run in the given order (the operator chose them).
26
+ */
27
+ /** The single-`do` runner the multi-item layer drives per selected item. */
28
+ export type DoRunner = (options: DoOptions) => Promise<DoResult>;
29
+ /** Options shared with {@link performDo}, threaded verbatim to each per-item run. */
30
+ type SharedDoOptions = Omit<DoOptions, 'arg'>;
31
+ export interface PerformDoMultiOptions extends SharedDoOptions {
32
+ /**
33
+ * The resolved repo config (provides `autoTask` for the prd gate,
34
+ * `selectionOrder` for the pool order, and the task-pool selection caps). The
35
+ * per-item runs still receive `autoTask`/`integration`/etc. via the spread
36
+ * `SharedDoOptions`.
37
+ */
38
+ config: Config;
39
+ /**
40
+ * The per-machine {@link ConfigOverrideMap}. Threaded into the in-place pool
41
+ * scan (`scanRepoPaths`) so the override applies to autopick eligibility just
42
+ * as it does to the single-`do` resolution — WITHOUT it the committed
43
+ * `.dorfl.json` silently beats the per-machine override on this path.
44
+ */
45
+ override?: ConfigOverrideMap;
46
+ /**
47
+ * `do -n <x>`: how many eligible items to do, in sequence. Auto-pick (no arg,
48
+ * no count) ⇒ 1. SEQUENTIAL — never a parallelism knob (advance-loop locks
49
+ * this: `-n` is always sequential for `do`/`advance`).
50
+ */
51
+ count?: number;
52
+ /** Override the single-`do` runner (tests inject a stub). Defaults to {@link performDo}. */
53
+ run?: DoRunner;
54
+ /** Override the read seam (prd pool); defaults to the active {@link ledgerRead}. */
55
+ read?: LedgerReadStrategy;
56
+ }
57
+ /** The aggregate result of a multi-item `do` invocation. */
58
+ export interface DoMultiResult {
59
+ /** Each per-item {@link DoResult}, in the order they ran. */
60
+ results: DoResult[];
61
+ /**
62
+ * The process exit code for the whole invocation: 0 iff EVERY item that ran
63
+ * succeeded (or there was nothing eligible to do — an empty auto-pick is not a
64
+ * failure); otherwise the first non-zero per-item exit code (the worst
65
+ * outcome surfaces). Mirrors the single-`do` exit contract per item.
66
+ */
67
+ exitCode: number;
68
+ /** Human-readable summary (printed by the CLI). */
69
+ message: string;
70
+ }
71
+ /**
72
+ * Run the AUTO-PICK / `-n <x>` form: build the two pools for `cwd`, order them
73
+ * per the resolved `selectionOrder` (default `drain` = tasks-first), take `count`
74
+ * (default 1), and run the existing `do` pipeline per selected item, SEQUENTIALLY.
75
+ */
76
+ export declare function performDoAuto(options: PerformDoMultiOptions): Promise<DoMultiResult>;
77
+ /**
78
+ * Run the EXPLICIT multi-arg form (`do <a> <b> …`): the named items in the GIVEN
79
+ * order (no pool/priority — the operator chose them). Each arg is run through the
80
+ * existing `do` pipeline, which itself resolves bare/`task:`/`prd:` (so a named
81
+ * prd dispatches to the tasking path and a collision errors), SEQUENTIALLY.
82
+ */
83
+ export declare function performDoArgs(args: string[], options: PerformDoMultiOptions): Promise<DoMultiResult>;
84
+ export {};
85
+ //# sourceMappingURL=do-autopick.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"do-autopick.d.ts","sourceRoot":"","sources":["../src/do-autopick.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAC,MAAM,SAAS,CAAC;AAEjE,OAAO,EAAa,KAAK,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAOrE,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,4EAA4E;AAC5E,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,SAAS,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEjE,qFAAqF;AACrF,KAAK,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAE9C,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC7D;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,oFAAoF;IACpF,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC1B;AAED,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC7B,6DAA6D;IAC7D,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;CAChB;AAYD;;;;GAIG;AACH,wBAAsB,aAAa,CAClC,OAAO,EAAE,qBAAqB,GAC5B,OAAO,CAAC,aAAa,CAAC,CAoDxB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAClC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,qBAAqB,GAC5B,OAAO,CAAC,aAAa,CAAC,CAUxB"}
@@ -0,0 +1,112 @@
1
+ import { performDo } from './do.js';
2
+ import { scanRepoPaths } from './scan.js';
3
+ import { ledgerRead } from './ledger-read.js';
4
+ import { selectPrioritised, taskableSpecs, } from './select-priority.js';
5
+ /**
6
+ * The task-pool caps for an in-place `do` selection. `do` is per-repo +
7
+ * sequential, so the REAL bound is the requested `count` (handled by the
8
+ * priority helper); the task-pool selection should not truncate BEFORE the
9
+ * count + the prd pool are combined. We therefore cap the task pool at "all
10
+ * eligible" (a large bound) and let {@link selectPrioritised}'s `count` do the
11
+ * trimming across both pools.
12
+ */
13
+ const ALL_ELIGIBLE = Number.MAX_SAFE_INTEGER;
14
+ /**
15
+ * Run the AUTO-PICK / `-n <x>` form: build the two pools for `cwd`, order them
16
+ * per the resolved `selectionOrder` (default `drain` = tasks-first), take `count`
17
+ * (default 1), and run the existing `do` pipeline per selected item, SEQUENTIALLY.
18
+ */
19
+ export async function performDoAuto(options) {
20
+ const run = options.run ?? performDo;
21
+ const read = options.read ?? ledgerRead;
22
+ const note = options.note ?? (() => { });
23
+ const cwd = options.cwd;
24
+ const count = options.count ?? 1;
25
+ // Pool 1 — eligible TASKS via the EXISTING scan/select path (task-only).
26
+ // Thread `override` so the per-machine override is applied per repo (the
27
+ // inner `resolveRepoConfig` re-applies it AFTER the committed file, restoring
28
+ // the override value even though `config` is already resolved).
29
+ const report = scanRepoPaths([cwd], options.config, new Set(), options.override);
30
+ // Pool 2 — TASKABLE prds: the NEW pool from the shared prd read path
31
+ // (`resolveSpecPool`) filtered by `autoslice-gate`'s predicate (not reinvented).
32
+ const pool = read.resolveSpecPool({ repoPath: cwd });
33
+ const specCandidates = pool.specs.map((spec) => ({
34
+ repoPath: cwd,
35
+ slug: spec.slug,
36
+ humanOnly: spec.humanOnly,
37
+ needsAnswers: spec.needsAnswers,
38
+ taskedAfter: spec.taskedAfter,
39
+ }));
40
+ const eligibleSpecs = taskableSpecs({
41
+ candidates: specCandidates,
42
+ taskedSlugs: pool.taskedSlugs,
43
+ autoTask: options.config.autoTask,
44
+ });
45
+ // Order across both pools per the resolved `selectionOrder` + bound by count. The
46
+ // task pool is selected via the SHARED `selectCandidates` primitive `run` uses.
47
+ const selected = selectPrioritised({
48
+ report,
49
+ caps: { maxParallel: ALL_ELIGIBLE, perRepoMax: ALL_ELIGIBLE },
50
+ specs: eligibleSpecs,
51
+ selectionOrder: options.config.selectionOrder,
52
+ count,
53
+ });
54
+ if (selected.length === 0) {
55
+ const message = 'Nothing eligible to do (no eligible tasks and no taskable prds).';
56
+ note(message);
57
+ return { results: [], exitCode: 0, message };
58
+ }
59
+ return runSelectedInSequence(selected, options, run);
60
+ }
61
+ /**
62
+ * Run the EXPLICIT multi-arg form (`do <a> <b> …`): the named items in the GIVEN
63
+ * order (no pool/priority — the operator chose them). Each arg is run through the
64
+ * existing `do` pipeline, which itself resolves bare/`task:`/`prd:` (so a named
65
+ * prd dispatches to the tasking path and a collision errors), SEQUENTIALLY.
66
+ */
67
+ export async function performDoArgs(args, options) {
68
+ const run = options.run ?? performDo;
69
+ const selected = args.map((arg) => ({
70
+ repoPath: options.cwd,
71
+ slug: arg,
72
+ // The arg is passed VERBATIM to `performDo` (it does its own slug
73
+ // resolution); the namespace is irrelevant for explicit args.
74
+ namespace: 'task',
75
+ }));
76
+ return runSelectedInSequence(selected, options, run, { verbatimArg: true });
77
+ }
78
+ /**
79
+ * Run a list of selected items through the existing `do` pipeline, SEQUENTIALLY,
80
+ * threading the shared options to each. For the pool path the `do` arg encodes
81
+ * the namespace (`prd:<slug>` for a selected prd, bare slug for a task); for the
82
+ * explicit-arg path the caller's raw arg is passed verbatim.
83
+ */
84
+ async function runSelectedInSequence(selected, options, run, mode = {}) {
85
+ const shared = sharedDoOptions(options);
86
+ const results = [];
87
+ for (const item of selected) {
88
+ const arg = mode.verbatimArg
89
+ ? item.slug
90
+ : item.namespace === 'spec'
91
+ ? `spec:${item.slug}`
92
+ : item.slug;
93
+ const result = await run({ ...shared, arg });
94
+ results.push(result);
95
+ }
96
+ const firstFailure = results.find((r) => r.exitCode !== 0);
97
+ const exitCode = firstFailure ? firstFailure.exitCode : 0;
98
+ const ok = results.filter((r) => r.exitCode === 0).length;
99
+ const message = `did ${results.length} item${results.length === 1 ? '' : 's'} ` +
100
+ `(${ok} ok, ${results.length - ok} not).`;
101
+ return { results, exitCode, message };
102
+ }
103
+ /** Strip the multi-only fields, leaving exactly the per-item {@link DoOptions} base. */
104
+ function sharedDoOptions(options) {
105
+ const { config: _config, count: _count, run: _run, read: _read, ...rest } = options;
106
+ void _config;
107
+ void _count;
108
+ void _run;
109
+ void _read;
110
+ return rest;
111
+ }
112
+ //# sourceMappingURL=do-autopick.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"do-autopick.js","sourceRoot":"","sources":["../src/do-autopick.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,312 @@
1
+ import type { Config, IntegrationMode, PartialConfig } from './config.js';
2
+ /**
3
+ * The CLI flags that select WHICH agent runs and HOW it is launched — shared,
4
+ * verbatim, by `run` and `do`. Both commands offer `--harness`/`--agent-cmd`/
5
+ * `--pi-bin`/`--model`; this is the single place their string→`PartialConfig`
6
+ * mapping lives so there is exactly ONE override path (not a parallel one per
7
+ * command). `cli.ts`'s `runFlagOverrides` and {@link doFlagOverrides} both fold
8
+ * this in.
9
+ */
10
+ export interface HarnessFlags {
11
+ agentCmd?: string;
12
+ model?: string;
13
+ harness?: string;
14
+ piBin?: string;
15
+ /**
16
+ * The HOST-ONLY root folder under which a job's pi session FILE is generated
17
+ * (`--sessions-dir`). Forwarded verbatim like `piBin`; the path generator turns
18
+ * it into `<sessionsDir>/<unique-id>.jsonl` at launch (unset ⇒ pi's per-cwd
19
+ * default folder).
20
+ */
21
+ sessionsDir?: string;
22
+ }
23
+ /**
24
+ * Map the shared harness/adapter flags into a {@link PartialConfig} of overrides
25
+ * — the per-key mapping `run` and `do` both reuse. Only flags actually present
26
+ * contribute (absent flag ⇒ absent key), so the override layer never clobbers a
27
+ * lower precedence source with `undefined`. `--harness` is validated against the
28
+ * `HarnessAdapter` union (an out-of-range value is dropped, matching `run`).
29
+ */
30
+ export declare function harnessFlagOverrides(flags: HarnessFlags): PartialConfig;
31
+ /**
32
+ * Build the flag-override `PartialConfig` for the `do` command. This is the FIX
33
+ * for the silent-drop bug: `do` DECLARES `--harness`/`--agent-cmd`/`--pi-bin`/
34
+ * `--model`, so its action MUST thread them into `resolveRepoConfig`'s `flags`
35
+ * — not just `{integration}`. It reuses the SAME per-key mapping `run` uses
36
+ * ({@link harnessFlagOverrides}), then folds in the integrate-time mode (the
37
+ * already-resolved `--merge`/`--propose`, via `integrationFromFlags`) so the
38
+ * full set rides the same precedence chain (flag > env > per-repo > global >
39
+ * default).
40
+ */
41
+ export declare function doFlagOverrides(flags: HarnessFlags & ReviewFlags & TaskerLoopFlags & FreshWorktreeGateFlags & SelectionOrderFlags & ObservationTriageFlags & SurfaceBlockersFlags & MergeQuestionsFlags & StrictMergeApprovalFlags & NoPRFlags & MergeRetriesFlags, integration?: IntegrationMode): PartialConfig;
42
+ /**
43
+ * The Gate-2 (PR/code review) CLI flags, offered by `do` AND `complete`
44
+ * (`--review`/`--no-review`, `--review-model`, `--review-max-rounds`). Both commands resolve them through
45
+ * the SAME `flag > env > per-repo > global > default` chain as `integration`, so
46
+ * the mapping lives in ONE place (not a parallel copy per command).
47
+ */
48
+ export interface ReviewFlags {
49
+ /** `--review` ⇒ true, `--no-review` ⇒ false, absent ⇒ undefined. */
50
+ review?: boolean;
51
+ /** `--review-model <id>` — the de-correlated review model (routing intent). */
52
+ reviewModel?: string;
53
+ /** `--review-max-rounds <n>` — the revise↔review loop bound (parsed to a number). */
54
+ reviewMaxRounds?: string;
55
+ }
56
+ /**
57
+ * The tasker IMPROVER-loop CLI flags (`do` only): `--tasker-loop` /
58
+ * `--no-tasker-loop` (the on/off toggle), `--tasker-loop-max <n>` (the in-context
59
+ * convergence cap), and `--tasker-loop-model <id>` (the loop reviewer's
60
+ * de-correlated model). A DISTINCT family from the acceptance gate's `--review*`
61
+ * (see {@link ReviewFlags}) — no flag/key/field name spans both. Resolved through
62
+ * the SAME `flag > env > per-repo > global > default` chain.
63
+ *
64
+ * NOTE the flag NAMES are tasking-vocabulary (`--tasker-loop*`, so commander
65
+ * populates the `taskerLoop*` fields below), and they resolve into the
66
+ * `taskerLoop*` CONFIG KEYS, so {@link taskerLoopFlagOverrides} bridges the
67
+ * flag fields onto the config keys.
68
+ */
69
+ export interface TaskerLoopFlags {
70
+ /** `--tasker-loop` ⇒ true, `--no-tasker-loop` ⇒ false, absent ⇒ undefined. */
71
+ taskerLoop?: boolean;
72
+ /** `--tasker-loop-max <n>` — the loop's in-context convergence cap (parsed to a number). */
73
+ taskerLoopMax?: string;
74
+ /** `--tasker-loop-model <id>` — the loop reviewer's de-correlated model (routing intent). */
75
+ taskerLoopModel?: string;
76
+ }
77
+ /**
78
+ * Map the Gate-2 review flags into a {@link PartialConfig} of overrides — the
79
+ * per-key mapping `do` and `complete` both reuse. Only flags actually present
80
+ * contribute (absent flag ⇒ absent key), so the override layer never clobbers a
81
+ * lower-precedence source with `undefined`. `--review-max-rounds` is parsed to a
82
+ * number; a non-numeric value is dropped (the lower layer / default decides).
83
+ */
84
+ export declare function reviewFlagOverrides(flags: ReviewFlags): PartialConfig;
85
+ /**
86
+ * Map the tasker IMPROVER-loop flags into a {@link PartialConfig} of overrides.
87
+ * Only flags actually present contribute (absent flag ⇒ absent key), so the
88
+ * override layer never clobbers a lower-precedence source with `undefined`.
89
+ * `--tasker-loop-max` is parsed to a number; a non-numeric value is dropped (the
90
+ * lower layer / default decides). A DISTINCT family from {@link reviewFlagOverrides}.
91
+ *
92
+ * The tasking-vocabulary FLAG fields (`taskerLoop*`) bridge onto the
93
+ * `taskerLoop*` CONFIG KEYS, so the operator types `--tasker-loop` and the value
94
+ * resolves through the standard precedence into `config.taskerLoop`.
95
+ */
96
+ export declare function taskerLoopFlagOverrides(flags: TaskerLoopFlags): PartialConfig;
97
+ /**
98
+ * The fresh-worktree acceptance-gate CLI flag (`do`/`complete`/`run`):
99
+ * `--fresh-worktree-gate` / `--no-fresh-worktree-gate`, the POSITIVE boolean
100
+ * (default ON) toggling whether the acceptance gate (`prepare` then `verify`)
101
+ * runs against the REBASED tip in a clean throwaway worktree (the merged
102
+ * artifact) or in the agent's build worktree (the pre-rebase tree). Modelled
103
+ * EXACTLY on {@link TaskerLoopFlags}'s on/off toggle; a DISTINCT family (no
104
+ * flag/key/field name spans both). Resolved through the SAME
105
+ * `flag > env > per-repo > global > default` chain.
106
+ */
107
+ export interface FreshWorktreeGateFlags {
108
+ /** `--fresh-worktree-gate` ⇒ true, `--no-fresh-worktree-gate` ⇒ false, absent ⇒ undefined. */
109
+ freshWorktreeGate?: boolean;
110
+ }
111
+ /**
112
+ * Map the `--fresh-worktree-gate`/`--no-fresh-worktree-gate` flag into a
113
+ * {@link PartialConfig} override. Only a present flag contributes (absent ⇒
114
+ * absent key), so the override layer never clobbers a lower-precedence source
115
+ * with `undefined`. A negatable boolean (mirrors `taskerLoop`), so the caller
116
+ * leaves `freshWorktreeGate` UNDEFINED unless the user explicitly passed the
117
+ * flag (see the cli's option-source read).
118
+ */
119
+ export declare function freshWorktreeGateFlagOverrides(flags: FreshWorktreeGateFlags): PartialConfig;
120
+ /**
121
+ * The selection-order CLI flag (`do` AND `advance`): `--selection-order <order>`
122
+ * (a preset keyword like `drain`/`groom`, or a comma-separated explicit pool
123
+ * order like `build,task,surface,triage`). Resolved through the SAME
124
+ * `flag > env > per-repo > global > default` chain as the other `do` flags.
125
+ */
126
+ export interface SelectionOrderFlags {
127
+ /** `--selection-order <order>` — a preset keyword or comma-separated pool list. */
128
+ selectionOrder?: string;
129
+ }
130
+ /**
131
+ * Map the `--selection-order` flag into a {@link PartialConfig} override. Only a
132
+ * present flag contributes (absent ⇒ absent key). A value CONTAINING a comma is
133
+ * parsed into a trimmed, non-empty list (an explicit pool order, mirroring the
134
+ * env `'list'` coercion); otherwise it is the verbatim string (a preset keyword
135
+ * or a single pool name). The resolver (`select-order.ts`) does the
136
+ * validation/expansion + loud failure at selection time — this only normalises
137
+ * the flag's surface syntax.
138
+ */
139
+ export declare function selectionOrderFlagOverrides(flags: SelectionOrderFlags): PartialConfig;
140
+ /**
141
+ * The observation-triage CLI flag (`advance`): `--observation-triage
142
+ * <off|ask|auto>`, the 3-state gate over the observation INBOX (ADR
143
+ * `ci-config-policy-and-gate-family`). Resolved through the SAME
144
+ * `flag > env > per-repo > global > default` chain as the other gate flags.
145
+ */
146
+ export interface ObservationTriageFlags {
147
+ /** `--observation-triage <off|ask|auto>` — the observation-inbox gate state. */
148
+ observationTriage?: string;
149
+ }
150
+ /**
151
+ * Map the `--observation-triage` flag into a {@link PartialConfig} override. Only
152
+ * a present flag contributes (absent ⇒ absent key). An INVALID value FAILS LOUDLY
153
+ * (the same loud-failure contract the env enum coercion enforces) rather than
154
+ * silently falling through to a lower layer — a typo on an autonomy gate must
155
+ * never be quietly ignored.
156
+ */
157
+ export declare function observationTriageFlagOverrides(flags: ObservationTriageFlags): PartialConfig;
158
+ /**
159
+ * The surface-blockers CLI flag (`advance`): `--surface-blockers` /
160
+ * `--no-surface-blockers`, the BOOLEAN gate over DECLARED blocked work (whether a
161
+ * `needsAnswers:true` task/prd is rendered into a question sidecar; ADR
162
+ * `ci-config-policy-and-gate-family`). The orthogonal PEER of
163
+ * `--observation-triage`. Resolved through the SAME
164
+ * `flag > env > per-repo > global > default` chain as the other gate flags.
165
+ */
166
+ export interface SurfaceBlockersFlags {
167
+ /** `--surface-blockers` ⇒ true, `--no-surface-blockers` ⇒ false, absent ⇒ undefined. */
168
+ surfaceBlockers?: boolean;
169
+ }
170
+ /**
171
+ * Map the `--surface-blockers` flag into a {@link PartialConfig} override. Only a
172
+ * present flag contributes (absent ⇒ absent key), so the override layer never
173
+ * clobbers a lower-precedence source with `undefined`. A negatable boolean, so the
174
+ * caller leaves `surfaceBlockers` UNDEFINED unless the user explicitly passed
175
+ * `--surface-blockers`/`--no-surface-blockers` (see the cli's option-source read).
176
+ */
177
+ export declare function surfaceBlockersFlagOverrides(flags: SurfaceBlockersFlags): PartialConfig;
178
+ /**
179
+ * **The cross-job merge-serialiser CAS-retry cap CLI flag** (`--merge-retries
180
+ * <n>`) — prd `land-time-reverify-and-parallel-merge-ceiling` Story 5 / Applied
181
+ * Answer q1 (a). The git-alone FLOOR of the cross-job land-queue; a wide-matrix
182
+ * CI raises the cap so more contenders converge before any spurious bounce to
183
+ * needs-attention. Offered by `do`/`run`/`complete`. Resolved through the SAME
184
+ * `flag > env > per-repo > global > default` chain as `--review-max-rounds` /
185
+ * `--fresh-worktree-gate`.
186
+ */
187
+ export interface MergeRetriesFlags {
188
+ /** `--merge-retries <n>` — the cross-job CAS-retry cap (parsed to a non-negative integer). */
189
+ mergeRetries?: string;
190
+ }
191
+ /**
192
+ * Map the `--merge-retries <n>` flag into a {@link PartialConfig} override. Only
193
+ * a present flag contributes (absent ⇒ absent key), so the override layer never
194
+ * clobbers a lower-precedence source with `undefined`. The value MUST be a
195
+ * NON-NEGATIVE integer (`0` is meaningful — it disables the retry, the
196
+ * un-retried path the engine's tests pin); a non-integer / negative value is
197
+ * dropped silently so the lower layer / default decides (mirrors
198
+ * {@link reviewFlagOverrides}'s parse-or-drop on `--review-max-rounds`).
199
+ */
200
+ export declare function mergeRetriesFlagOverrides(flags: MergeRetriesFlags): PartialConfig;
201
+ /**
202
+ * The merge-questions CLI flag (`advance`): `--merge-questions <off|ask|auto>`,
203
+ * the 3-state gate over the MERGE-QUESTION SURFACER (prd
204
+ * `land-time-reverify-and-parallel-merge-ceiling` Story 17 / task
205
+ * `merge-questions-gate-axis`). MIRRORS `--observation-triage`'s SHAPE but is a
206
+ * SEPARATE axis with a HIGHER default (`ask`, never `off` — a dropped merge-
207
+ * question means pushed work never lands). Resolved through the SAME
208
+ * `flag > env > per-repo > global > default` chain as the other gate flags.
209
+ */
210
+ export interface MergeQuestionsFlags {
211
+ /** `--merge-questions <off|ask|auto>` — the merge-question surfacer gate. */
212
+ mergeQuestions?: string;
213
+ }
214
+ /**
215
+ * Map the `--merge-questions` flag into a {@link PartialConfig} override. Only a
216
+ * present flag contributes (absent ⇒ absent key). An INVALID value FAILS LOUDLY
217
+ * (the same loud-failure contract `--observation-triage` enforces) rather than
218
+ * silently falling through — a typo on a question-surfacing gate must never be
219
+ * quietly ignored.
220
+ */
221
+ export declare function mergeQuestionsFlagOverrides(flags: MergeQuestionsFlags): PartialConfig;
222
+ /**
223
+ * **The strict-merge-approval CLI flag** (`--strict-merge-approval` /
224
+ * `--no-strict-merge-approval`) — prd
225
+ * `land-time-reverify-and-parallel-merge-ceiling` sidecar OQ6 / task
226
+ * `strict-merge-approval-gate`. The OPT-IN strictness layered on the OQ6
227
+ * stale-approval default: ON re-surfaces the merge-question on a merge-base
228
+ * change instead of auto-landing on a green re-verify (the host-agnostic
229
+ * analogue of GitHub's "dismiss stale approvals when the base changes"); OFF
230
+ * (default) honours the prior answer + lands when the rebased tip re-verifies
231
+ * GREEN. Offered alongside `--merge-questions` on `advance` (the apply rung is
232
+ * the consumer). Resolved through the SAME `flag > env > per-repo > global >
233
+ * default` chain as the other gate-family members. A negatable boolean
234
+ * (mirrors `--fresh-worktree-gate`).
235
+ */
236
+ export interface StrictMergeApprovalFlags {
237
+ /** `--strict-merge-approval` ⇒ true, `--no-strict-merge-approval` ⇒ false, absent ⇒ undefined. */
238
+ strictMergeApproval?: boolean;
239
+ }
240
+ /**
241
+ * Map the `--strict-merge-approval`/`--no-strict-merge-approval` flag into a
242
+ * {@link PartialConfig} override. Only a present flag contributes (absent ⇒
243
+ * absent key), so the override layer never clobbers a lower-precedence source
244
+ * with `undefined`. A negatable boolean (mirrors
245
+ * {@link freshWorktreeGateFlagOverrides}): the caller leaves
246
+ * `strictMergeApproval` UNDEFINED unless the user explicitly passed the flag.
247
+ */
248
+ export declare function strictMergeApprovalFlagOverrides(flags: StrictMergeApprovalFlags): PartialConfig;
249
+ /**
250
+ * The PR-INTENT CLI flag (`--no-pr`), offered by `do`/`complete`/`run`: push the
251
+ * branch but deliberately skip the review request (the explicit suppress-PR
252
+ * intent, ADR §6). NOT a provider choice. Commander stores the negatable flag as
253
+ * `pr` (false when `--no-pr` is passed). Resolved through the SAME
254
+ * `flag > env > per-repo > global > default` chain as `integration`/`review`.
255
+ */
256
+ export interface NoPRFlags {
257
+ /** `--no-pr` ⇒ commander stores `pr === false` (the suppress-PR intent). */
258
+ pr?: boolean;
259
+ }
260
+ /**
261
+ * Map the `--no-pr` flag into a {@link PartialConfig} override. Only an explicit
262
+ * `--no-pr` (commander's `pr === false`) contributes `noPR: true`; otherwise the
263
+ * key stays absent so the lower layer (env / per-repo / global / default) decides.
264
+ */
265
+ export declare function noPRFlagOverrides(flags: NoPRFlags): PartialConfig;
266
+ /**
267
+ * The null-default guard: the `null` adapter shells out to `agentCmd`, so it is
268
+ * required there; the `pi` adapter invokes the pi CLI directly and does not
269
+ * consume `agentCmd`. Returns `true` when the resolved config selects the null
270
+ * adapter with no `agentCmd` — the case `do`/`run`/`--remote` must reject with a
271
+ * clear error ({@link NO_AGENT_CMD_MESSAGE}). All three CLI sites call THIS one
272
+ * predicate (named here so the fix's no-regression test can pin it).
273
+ */
274
+ export declare function doNeedsAgentCmd(config: Config): boolean;
275
+ /**
276
+ * The shared up-front message for the {@link doNeedsAgentCmd} refusal. Names BOTH
277
+ * escape hatches: the `--harness pi` adapter (which needs no agentCmd) and
278
+ * setting `harness`/`agentCmd` in config. Shared so `do`/`run`/`--remote` speak
279
+ * with one voice (and the test that pins `--harness pi` only has to pin it once).
280
+ */
281
+ export declare const NO_AGENT_CMD_MESSAGE: string;
282
+ /**
283
+ * The shared up-front message for the PR-INTENT pre-flight refusal: a `propose`
284
+ * run on a GitHub arbiter intends a PR (`noPR` unset) but a `gh` AUTH/AVAILABILITY
285
+ * PROBE says `gh` cannot open one. Surfaced BEFORE any claim/onboard/build so no
286
+ * work is wasted, and naming EVERY real fix (auth `gh`, set a `providers.github`
287
+ * identity token, switch to `--merge`, or `--no-pr` to push without a PR). The
288
+ * honest-failure value the `noPR` axis buys: it disambiguates "I deliberately
289
+ * want no PR" from "I wanted a PR and silently didn't get one". Shared so the
290
+ * in-place + no-checkout `do` paths speak with one voice.
291
+ */
292
+ export declare const PROPOSE_PR_INTENT_GH_UNAVAILABLE_MESSAGE: string;
293
+ /**
294
+ * Should the PR-INTENT pre-flight guard FIRE for this run? It fires ONLY when ALL
295
+ * hold: the run is `propose` mode (not `merge` — merge never opens a PR), the
296
+ * arbiter is a GitHub URL (only then is a PR even possible), `noPR` is UNSET (the
297
+ * operator INTENDS a PR), and the injected `gh` auth/availability `probe` reports
298
+ * `gh` cannot open one. The probe (mirroring `GitHubProvider.available`) is
299
+ * the signal, NOT a config inspection: an ABSENT `providers.github` identity must
300
+ * NOT trip this guard — it falls back to AMBIENT `gh` auth (the common local-dev
301
+ * case), which the probe correctly reports as available. A genuinely TRANSIENT
302
+ * mid-run `gh` outage (the probe passes here but the API fails later) is left to
303
+ * the runtime degrade — the probe only catches the start-of-run unauthed case.
304
+ */
305
+ export declare function shouldFailProposePrIntent(input: {
306
+ mode: IntegrationMode;
307
+ arbiterIsGitHub: boolean;
308
+ noPR: boolean | undefined;
309
+ /** The `gh` auth/availability probe (true ⇒ `gh` CAN open a PR). */
310
+ ghCanOpenPr: () => boolean;
311
+ }): boolean;
312
+ //# sourceMappingURL=do-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"do-config.d.ts","sourceRoot":"","sources":["../src/do-config.ts"],"names":[],"mappings":"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"}