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,358 @@
1
+ /**
2
+ * Map the shared harness/adapter flags into a {@link PartialConfig} of overrides
3
+ * — the per-key mapping `run` and `do` both reuse. Only flags actually present
4
+ * contribute (absent flag ⇒ absent key), so the override layer never clobbers a
5
+ * lower precedence source with `undefined`. `--harness` is validated against the
6
+ * `HarnessAdapter` union (an out-of-range value is dropped, matching `run`).
7
+ */
8
+ export function harnessFlagOverrides(flags) {
9
+ const overrides = {};
10
+ if (flags.agentCmd !== undefined) {
11
+ overrides.agentCmd = flags.agentCmd;
12
+ }
13
+ if (flags.model !== undefined) {
14
+ overrides.model = flags.model;
15
+ }
16
+ if (flags.harness === 'null' || flags.harness === 'pi') {
17
+ overrides.harness = flags.harness;
18
+ }
19
+ if (flags.piBin !== undefined) {
20
+ overrides.piBin = flags.piBin;
21
+ }
22
+ if (flags.sessionsDir !== undefined) {
23
+ overrides.sessionsDir = flags.sessionsDir;
24
+ }
25
+ return overrides;
26
+ }
27
+ /**
28
+ * Build the flag-override `PartialConfig` for the `do` command. This is the FIX
29
+ * for the silent-drop bug: `do` DECLARES `--harness`/`--agent-cmd`/`--pi-bin`/
30
+ * `--model`, so its action MUST thread them into `resolveRepoConfig`'s `flags`
31
+ * — not just `{integration}`. It reuses the SAME per-key mapping `run` uses
32
+ * ({@link harnessFlagOverrides}), then folds in the integrate-time mode (the
33
+ * already-resolved `--merge`/`--propose`, via `integrationFromFlags`) so the
34
+ * full set rides the same precedence chain (flag > env > per-repo > global >
35
+ * default).
36
+ */
37
+ export function doFlagOverrides(flags, integration) {
38
+ const overrides = {
39
+ ...harnessFlagOverrides(flags),
40
+ // `--observation-triage <off|ask|auto>` rides the SAME flag-override chain
41
+ // (flag > env > per-repo > global > default): the observation-inbox gate.
42
+ ...observationTriageFlagOverrides(flags),
43
+ // `--surface-blockers`/`--no-surface-blockers` rides the SAME chain: the
44
+ // boolean gate over DECLARED blocked work (the orthogonal peer of
45
+ // `--observation-triage`).
46
+ ...surfaceBlockersFlagOverrides(flags),
47
+ // `--merge-questions <off|ask|auto>` rides the SAME flag-override chain
48
+ // (flag > env > per-repo > global > default `ask`): the 3-state gate over
49
+ // the merge-question SURFACER (prd `land-time-reverify-and-parallel-
50
+ // merge-ceiling` Story 17 / task `merge-questions-gate-axis`). SEPARATE
51
+ // axis from `--observation-triage` with a HIGHER default — NEVER rides
52
+ // `--observation-triage`.
53
+ ...mergeQuestionsFlagOverrides(flags),
54
+ // `--strict-merge-approval`/`--no-strict-merge-approval` rides the SAME
55
+ // flag-override chain (flag > env > per-repo > global > default `false`):
56
+ // the OPT-IN strictness layered on the OQ6 stale-approval default. SEPARATE
57
+ // axis from `--merge-questions` — the re-surface vs. land branch is
58
+ // `apply-rung-merge-disposition`'s consumer; this only resolves the boolean.
59
+ ...strictMergeApprovalFlagOverrides(flags),
60
+ // `--selection-order <order>` rides the SAME flag-override chain (flag > env >
61
+ // per-repo > global > default): a comma-separated value becomes a list (an
62
+ // explicit pool order), otherwise the verbatim string (a preset keyword). The
63
+ // resolver (`select-order.ts`) validates/expands it at selection time.
64
+ ...selectionOrderFlagOverrides(flags),
65
+ // Gate 2 (PR/code review) flags ride the SAME flag-override path so
66
+ // `--review`/`--review-model`/`--review-max-rounds` resolve
67
+ // flag > env > per-repo > global > default, exactly like the harness flags.
68
+ ...reviewFlagOverrides(flags),
69
+ // The tasker IMPROVER-loop family (`--tasker-loop`/`--no-tasker-loop`/
70
+ // `--tasker-loop-max`/`--tasker-loop-model`) rides the same chain — a DISTINCT
71
+ // family from the gate's `--review*`, never sharing a flag/key/field name.
72
+ // The flag fields bridge onto the `taskerLoop*` config keys.
73
+ ...taskerLoopFlagOverrides(flags),
74
+ // `--fresh-worktree-gate`/`--no-fresh-worktree-gate` (run the acceptance gate
75
+ // against the REBASED tip in a clean throwaway worktree, ON by default) rides
76
+ // the SAME chain — a DISTINCT family from `--review*`/`--tasker-loop*`.
77
+ ...freshWorktreeGateFlagOverrides(flags),
78
+ // `--no-pr` (the PR-INTENT axis): suppress the PR even on an authed GitHub
79
+ // arbiter. Rides the SAME flag > env > per-repo > global > default chain.
80
+ ...noPRFlagOverrides(flags),
81
+ // `--merge-retries <n>` (the cross-job merge serialiser's CAS-retry cap — prd
82
+ // `land-time-reverify-and-parallel-merge-ceiling` Story 5 / Applied Answer
83
+ // q1 (a)) rides the SAME chain (flag > env > per-repo > global > default).
84
+ ...mergeRetriesFlagOverrides(flags),
85
+ };
86
+ if (integration !== undefined) {
87
+ // An explicit `--merge`/`--propose` flag ALWAYS wins for the transition this
88
+ // command runs. `do` runs EITHER the build transition (a task) OR the tasking
89
+ // transition (a `do prd:`) per invocation, and the typed flag is
90
+ // transition-AGNOSTIC, so it must override BOTH the build mode (`integration`)
91
+ // AND the tasking mode (`taskingIntegration`). Setting both at the top of the
92
+ // precedence chain means a `--propose` on a `taskingIntegration:'merge'` repo
93
+ // proposes the tasking too (the tasking path reads `taskingIntegration ??
94
+ // integration`, and the flag-set `taskingIntegration` shadows the config one).
95
+ // (`per-transition-integration-mode-slicing-vs-build`.)
96
+ overrides.integration = integration;
97
+ overrides.taskingIntegration = integration;
98
+ }
99
+ return overrides;
100
+ }
101
+ /**
102
+ * Map the Gate-2 review flags into a {@link PartialConfig} of overrides — the
103
+ * per-key mapping `do` and `complete` both reuse. Only flags actually present
104
+ * contribute (absent flag ⇒ absent key), so the override layer never clobbers a
105
+ * lower-precedence source with `undefined`. `--review-max-rounds` is parsed to a
106
+ * number; a non-numeric value is dropped (the lower layer / default decides).
107
+ */
108
+ export function reviewFlagOverrides(flags) {
109
+ const overrides = {};
110
+ if (flags.review !== undefined) {
111
+ overrides.review = flags.review;
112
+ }
113
+ if (flags.reviewModel !== undefined) {
114
+ overrides.reviewModel = flags.reviewModel;
115
+ }
116
+ if (flags.reviewMaxRounds !== undefined) {
117
+ const n = Number(flags.reviewMaxRounds);
118
+ if (flags.reviewMaxRounds.trim() !== '' && !Number.isNaN(n)) {
119
+ overrides.reviewMaxRounds = n;
120
+ }
121
+ }
122
+ return overrides;
123
+ }
124
+ /**
125
+ * Map the tasker IMPROVER-loop flags into a {@link PartialConfig} of overrides.
126
+ * Only flags actually present contribute (absent flag ⇒ absent key), so the
127
+ * override layer never clobbers a lower-precedence source with `undefined`.
128
+ * `--tasker-loop-max` is parsed to a number; a non-numeric value is dropped (the
129
+ * lower layer / default decides). A DISTINCT family from {@link reviewFlagOverrides}.
130
+ *
131
+ * The tasking-vocabulary FLAG fields (`taskerLoop*`) bridge onto the
132
+ * `taskerLoop*` CONFIG KEYS, so the operator types `--tasker-loop` and the value
133
+ * resolves through the standard precedence into `config.taskerLoop`.
134
+ */
135
+ export function taskerLoopFlagOverrides(flags) {
136
+ const overrides = {};
137
+ if (flags.taskerLoop !== undefined) {
138
+ overrides.taskerLoop = flags.taskerLoop;
139
+ }
140
+ if (flags.taskerLoopMax !== undefined) {
141
+ const n = Number(flags.taskerLoopMax);
142
+ if (flags.taskerLoopMax.trim() !== '' && !Number.isNaN(n)) {
143
+ overrides.taskerLoopMax = n;
144
+ }
145
+ }
146
+ if (flags.taskerLoopModel !== undefined) {
147
+ overrides.taskerLoopModel = flags.taskerLoopModel;
148
+ }
149
+ return overrides;
150
+ }
151
+ /**
152
+ * Map the `--fresh-worktree-gate`/`--no-fresh-worktree-gate` flag into a
153
+ * {@link PartialConfig} override. Only a present flag contributes (absent ⇒
154
+ * absent key), so the override layer never clobbers a lower-precedence source
155
+ * with `undefined`. A negatable boolean (mirrors `taskerLoop`), so the caller
156
+ * leaves `freshWorktreeGate` UNDEFINED unless the user explicitly passed the
157
+ * flag (see the cli's option-source read).
158
+ */
159
+ export function freshWorktreeGateFlagOverrides(flags) {
160
+ const overrides = {};
161
+ if (flags.freshWorktreeGate !== undefined) {
162
+ overrides.freshWorktreeGate = flags.freshWorktreeGate;
163
+ }
164
+ return overrides;
165
+ }
166
+ /**
167
+ * Map the `--selection-order` flag into a {@link PartialConfig} override. Only a
168
+ * present flag contributes (absent ⇒ absent key). A value CONTAINING a comma is
169
+ * parsed into a trimmed, non-empty list (an explicit pool order, mirroring the
170
+ * env `'list'` coercion); otherwise it is the verbatim string (a preset keyword
171
+ * or a single pool name). The resolver (`select-order.ts`) does the
172
+ * validation/expansion + loud failure at selection time — this only normalises
173
+ * the flag's surface syntax.
174
+ */
175
+ export function selectionOrderFlagOverrides(flags) {
176
+ const overrides = {};
177
+ if (flags.selectionOrder !== undefined) {
178
+ const raw = flags.selectionOrder;
179
+ overrides.selectionOrder = raw.includes(',')
180
+ ? raw
181
+ .split(',')
182
+ .map((s) => s.trim())
183
+ .filter((s) => s !== '')
184
+ : raw;
185
+ }
186
+ return overrides;
187
+ }
188
+ /** The valid `--observation-triage` values (mirrors the env enum coercion). */
189
+ const OBSERVATION_TRIAGE_VALUES = [
190
+ 'off',
191
+ 'ask',
192
+ 'auto',
193
+ ];
194
+ /**
195
+ * Map the `--observation-triage` flag into a {@link PartialConfig} override. Only
196
+ * a present flag contributes (absent ⇒ absent key). An INVALID value FAILS LOUDLY
197
+ * (the same loud-failure contract the env enum coercion enforces) rather than
198
+ * silently falling through to a lower layer — a typo on an autonomy gate must
199
+ * never be quietly ignored.
200
+ */
201
+ export function observationTriageFlagOverrides(flags) {
202
+ const overrides = {};
203
+ if (flags.observationTriage !== undefined) {
204
+ const raw = flags.observationTriage;
205
+ if (!OBSERVATION_TRIAGE_VALUES.includes(raw)) {
206
+ throw new Error(`Invalid value for --observation-triage: '${raw}'. ` +
207
+ `Expected one of: ${OBSERVATION_TRIAGE_VALUES.join(', ')}.`);
208
+ }
209
+ overrides.observationTriage = raw;
210
+ }
211
+ return overrides;
212
+ }
213
+ /**
214
+ * Map the `--surface-blockers` flag into a {@link PartialConfig} override. Only a
215
+ * present flag contributes (absent ⇒ absent key), so the override layer never
216
+ * clobbers a lower-precedence source with `undefined`. A negatable boolean, so the
217
+ * caller leaves `surfaceBlockers` UNDEFINED unless the user explicitly passed
218
+ * `--surface-blockers`/`--no-surface-blockers` (see the cli's option-source read).
219
+ */
220
+ export function surfaceBlockersFlagOverrides(flags) {
221
+ const overrides = {};
222
+ if (flags.surfaceBlockers !== undefined) {
223
+ overrides.surfaceBlockers = flags.surfaceBlockers;
224
+ }
225
+ return overrides;
226
+ }
227
+ /**
228
+ * Map the `--merge-retries <n>` flag into a {@link PartialConfig} override. Only
229
+ * a present flag contributes (absent ⇒ absent key), so the override layer never
230
+ * clobbers a lower-precedence source with `undefined`. The value MUST be a
231
+ * NON-NEGATIVE integer (`0` is meaningful — it disables the retry, the
232
+ * un-retried path the engine's tests pin); a non-integer / negative value is
233
+ * dropped silently so the lower layer / default decides (mirrors
234
+ * {@link reviewFlagOverrides}'s parse-or-drop on `--review-max-rounds`).
235
+ */
236
+ export function mergeRetriesFlagOverrides(flags) {
237
+ const overrides = {};
238
+ if (flags.mergeRetries !== undefined) {
239
+ const raw = flags.mergeRetries;
240
+ if (raw.trim() !== '') {
241
+ const n = Number(raw);
242
+ if (Number.isInteger(n) && n >= 0) {
243
+ overrides.mergeRetries = n;
244
+ }
245
+ }
246
+ }
247
+ return overrides;
248
+ }
249
+ /** The valid `--merge-questions` values (mirrors the env enum coercion). */
250
+ const MERGE_QUESTIONS_VALUES = [
251
+ 'off',
252
+ 'ask',
253
+ 'auto',
254
+ ];
255
+ /**
256
+ * Map the `--merge-questions` flag into a {@link PartialConfig} override. Only a
257
+ * present flag contributes (absent ⇒ absent key). An INVALID value FAILS LOUDLY
258
+ * (the same loud-failure contract `--observation-triage` enforces) rather than
259
+ * silently falling through — a typo on a question-surfacing gate must never be
260
+ * quietly ignored.
261
+ */
262
+ export function mergeQuestionsFlagOverrides(flags) {
263
+ const overrides = {};
264
+ if (flags.mergeQuestions !== undefined) {
265
+ const raw = flags.mergeQuestions;
266
+ if (!MERGE_QUESTIONS_VALUES.includes(raw)) {
267
+ throw new Error(`Invalid value for --merge-questions: '${raw}'. ` +
268
+ `Expected one of: ${MERGE_QUESTIONS_VALUES.join(', ')}.`);
269
+ }
270
+ overrides.mergeQuestions = raw;
271
+ }
272
+ return overrides;
273
+ }
274
+ /**
275
+ * Map the `--strict-merge-approval`/`--no-strict-merge-approval` flag into a
276
+ * {@link PartialConfig} override. Only a present flag contributes (absent ⇒
277
+ * absent key), so the override layer never clobbers a lower-precedence source
278
+ * with `undefined`. A negatable boolean (mirrors
279
+ * {@link freshWorktreeGateFlagOverrides}): the caller leaves
280
+ * `strictMergeApproval` UNDEFINED unless the user explicitly passed the flag.
281
+ */
282
+ export function strictMergeApprovalFlagOverrides(flags) {
283
+ const overrides = {};
284
+ if (flags.strictMergeApproval !== undefined) {
285
+ overrides.strictMergeApproval = flags.strictMergeApproval;
286
+ }
287
+ return overrides;
288
+ }
289
+ /**
290
+ * Map the `--no-pr` flag into a {@link PartialConfig} override. Only an explicit
291
+ * `--no-pr` (commander's `pr === false`) contributes `noPR: true`; otherwise the
292
+ * key stays absent so the lower layer (env / per-repo / global / default) decides.
293
+ */
294
+ export function noPRFlagOverrides(flags) {
295
+ const overrides = {};
296
+ if (flags.pr === false) {
297
+ overrides.noPR = true;
298
+ }
299
+ return overrides;
300
+ }
301
+ /**
302
+ * The null-default guard: the `null` adapter shells out to `agentCmd`, so it is
303
+ * required there; the `pi` adapter invokes the pi CLI directly and does not
304
+ * consume `agentCmd`. Returns `true` when the resolved config selects the null
305
+ * adapter with no `agentCmd` — the case `do`/`run`/`--remote` must reject with a
306
+ * clear error ({@link NO_AGENT_CMD_MESSAGE}). All three CLI sites call THIS one
307
+ * predicate (named here so the fix's no-regression test can pin it).
308
+ */
309
+ export function doNeedsAgentCmd(config) {
310
+ return config.harness !== 'pi' && config.agentCmd.trim() === '';
311
+ }
312
+ /**
313
+ * The shared up-front message for the {@link doNeedsAgentCmd} refusal. Names BOTH
314
+ * escape hatches: the `--harness pi` adapter (which needs no agentCmd) and
315
+ * setting `harness`/`agentCmd` in config. Shared so `do`/`run`/`--remote` speak
316
+ * with one voice (and the test that pins `--harness pi` only has to pin it once).
317
+ */
318
+ export const NO_AGENT_CMD_MESSAGE = 'no harness configured and no agentCmd set — nothing would run. Pass ' +
319
+ '--harness pi (or set harness/agentCmd in .dorfl.json or global config).';
320
+ /**
321
+ * The shared up-front message for the PR-INTENT pre-flight refusal: a `propose`
322
+ * run on a GitHub arbiter intends a PR (`noPR` unset) but a `gh` AUTH/AVAILABILITY
323
+ * PROBE says `gh` cannot open one. Surfaced BEFORE any claim/onboard/build so no
324
+ * work is wasted, and naming EVERY real fix (auth `gh`, set a `providers.github`
325
+ * identity token, switch to `--merge`, or `--no-pr` to push without a PR). The
326
+ * honest-failure value the `noPR` axis buys: it disambiguates "I deliberately
327
+ * want no PR" from "I wanted a PR and silently didn't get one". Shared so the
328
+ * in-place + no-checkout `do` paths speak with one voice.
329
+ */
330
+ export const PROPOSE_PR_INTENT_GH_UNAVAILABLE_MESSAGE = 'propose mode on a GitHub arbiter intends a PR, but `gh` is not ' +
331
+ 'available/authenticated to open one. Run `gh auth login` (or set a ' +
332
+ '`providers.github` identity token), or pass `--merge` to land on main, or ' +
333
+ '`--no-pr` to push the branch without opening a PR.';
334
+ /**
335
+ * Should the PR-INTENT pre-flight guard FIRE for this run? It fires ONLY when ALL
336
+ * hold: the run is `propose` mode (not `merge` — merge never opens a PR), the
337
+ * arbiter is a GitHub URL (only then is a PR even possible), `noPR` is UNSET (the
338
+ * operator INTENDS a PR), and the injected `gh` auth/availability `probe` reports
339
+ * `gh` cannot open one. The probe (mirroring `GitHubProvider.available`) is
340
+ * the signal, NOT a config inspection: an ABSENT `providers.github` identity must
341
+ * NOT trip this guard — it falls back to AMBIENT `gh` auth (the common local-dev
342
+ * case), which the probe correctly reports as available. A genuinely TRANSIENT
343
+ * mid-run `gh` outage (the probe passes here but the API fails later) is left to
344
+ * the runtime degrade — the probe only catches the start-of-run unauthed case.
345
+ */
346
+ export function shouldFailProposePrIntent(input) {
347
+ if (input.mode !== 'propose') {
348
+ return false;
349
+ }
350
+ if (!input.arbiterIsGitHub) {
351
+ return false;
352
+ }
353
+ if (input.noPR === true) {
354
+ return false;
355
+ }
356
+ return !input.ghCanOpenPr();
357
+ }
358
+ //# sourceMappingURL=do-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"do-config.js","sourceRoot":"","sources":["../src/do-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import { type DoRemoteOptions, type DoResult } from './do.js';
2
+ import { type LedgerReadStrategy } from './ledger-read.js';
3
+ import type { Config } from './config.js';
4
+ /**
5
+ * The MIRROR-SIDE auto-pick / `-n` caller for `do --remote` (prd `advance-loop`,
6
+ * task `advance-drivers-and-gates`, US #25) — the THIN caller the mirror-side
7
+ * eligible-pool scan (`mirror-side-eligible-pool-scan`) makes possible, the
8
+ * isolated counterpart of `do-autopick`'s in-place {@link performDoAuto}.
9
+ *
10
+ * It is the piece that lets the inline `-n`×`--remote` REFUSAL be removed: the
11
+ * refusal was a placeholder for "a remote/isolated auto-pick would need a
12
+ * mirror-side pool scan." That scan now EXISTS ({@link scanMirrorPool}), so this
13
+ * caller SELECTS + ORDERS items from the bare hub mirror's committed `main` (the
14
+ * SAME two pools, the SAME `selectPrioritised`, the SAME per-action gates) and
15
+ * runs the EXISTING {@link performDoRemote} pipeline per selected item,
16
+ * SEQUENTIALLY — it reimplements NOTHING.
17
+ *
18
+ * **`-n` is ALWAYS SEQUENTIAL (US #25).** Selecting N items from the mirror and
19
+ * running them one at a time is a dumb "run the remote tick N times" loop;
20
+ * parallelism over a remote pool is `run`'s concurrent loop or the CI matrix,
21
+ * NEVER `-n`. The per-action gate family is honoured by the SELECTION layer: the
22
+ * mirror scan only enumerates eligible tasks (gated on `autoBuild`) + taskable
23
+ * prds (gated on `autoTask`), so with a gate off that pool is empty.
24
+ *
25
+ * Each `performDoRemote` call idempotently `ensureMirror`s + re-fetches the SAME
26
+ * bare mirror (no re-clone), so looping it per item is cheap; the mirror scan
27
+ * `ensureMirror`s ONCE up front to read the freshest pool.
28
+ */
29
+ /** The single-`do --remote` runner this caller drives per selected item. */
30
+ export type DoRemoteRunner = (options: DoRemoteOptions) => Promise<DoResult>;
31
+ /** Options shared with {@link performDoRemote}, threaded verbatim to each item. */
32
+ type SharedRemoteOptions = Omit<DoRemoteOptions, 'arg'>;
33
+ export interface PerformDoRemoteAutoOptions extends SharedRemoteOptions {
34
+ /**
35
+ * The resolved (remote) repo config — provides `autoBuild`/`autoTask` (the
36
+ * mirror scan applies them) and `selectionOrder` (the cross-pool order). The
37
+ * per-action gates are applied at the SELECTION layer, exactly as in-place.
38
+ */
39
+ config: Config;
40
+ /**
41
+ * `do --remote -n <x>`: how many eligible items to do, IN SEQUENCE. Auto-pick
42
+ * (no arg, no count) ⇒ 1. SEQUENTIAL — never a parallelism knob (US #25).
43
+ */
44
+ count?: number;
45
+ /** Override the single-`do --remote` runner (tests inject a stub). Defaults to {@link performDoRemote}. */
46
+ run?: DoRemoteRunner;
47
+ /** Override the read seam (mirror pool); defaults to the active {@link ledgerRead}. */
48
+ read?: LedgerReadStrategy;
49
+ /** Sink for a non-fatal mirror-config-read warning, forwarded to the scan. */
50
+ warn?: (message: string) => void;
51
+ }
52
+ /** The aggregate result of a multi-item `do --remote` invocation (mirrors `DoMultiResult`). */
53
+ export interface DoRemoteMultiResult {
54
+ results: DoResult[];
55
+ /** 0 iff every item that ran succeeded (an empty auto-pick is not a failure); else the first non-zero. */
56
+ exitCode: number;
57
+ message: string;
58
+ }
59
+ /**
60
+ * Run the `do --remote` AUTO-PICK / `-n <x>` form: ensure the hub mirror, scan its
61
+ * committed `main` for the two eligible pools (gated per-action), order + bound
62
+ * them by `count`, and run {@link performDoRemote} per selected item,
63
+ * SEQUENTIALLY.
64
+ */
65
+ export declare function performDoRemoteAuto(options: PerformDoRemoteAutoOptions): Promise<DoRemoteMultiResult>;
66
+ /**
67
+ * Run the EXPLICIT multi-arg form (`do --remote <a> <b> …`): the NAMED items in
68
+ * the GIVEN order (no pool/priority — the operator chose them), each through the
69
+ * EXISTING {@link performDoRemote} pipeline, SEQUENTIALLY. No mirror scan is
70
+ * needed (the args are explicit); the per-item pipeline resolves each
71
+ * bare/`task:`/`prd:` arg itself.
72
+ */
73
+ export declare function performDoRemoteArgs(args: string[], options: PerformDoRemoteAutoOptions): Promise<DoRemoteMultiResult>;
74
+ export {};
75
+ //# sourceMappingURL=do-remote-auto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"do-remote-auto.d.ts","sourceRoot":"","sources":["../src/do-remote-auto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAC,MAAM,SAAS,CAAC;AAG7E,OAAO,EAAa,KAAK,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAErE,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,4EAA4E;AAC5E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE7E,mFAAmF;AACnF,KAAK,mBAAmB,GAAG,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;AAExD,MAAM,WAAW,0BAA2B,SAAQ,mBAAmB;IACtE;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2GAA2G;IAC3G,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,uFAAuF;IACvF,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,8EAA8E;IAC9E,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,+FAA+F;AAC/F,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,0GAA0G;IAC1G,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACxC,OAAO,EAAE,0BAA0B,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAqE9B;AAOD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACxC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,0BAA0B,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAe9B"}
@@ -0,0 +1,111 @@
1
+ import { performDoRemote } from './do.js';
2
+ import { ensureMirror } from './repo-mirror.js';
3
+ import { scanMirrorPool } from './mirror-pool-scan.js';
4
+ import { ledgerRead } from './ledger-read.js';
5
+ import { selectPrioritised } from './select-priority.js';
6
+ /**
7
+ * Run the `do --remote` AUTO-PICK / `-n <x>` form: ensure the hub mirror, scan its
8
+ * committed `main` for the two eligible pools (gated per-action), order + bound
9
+ * them by `count`, and run {@link performDoRemote} per selected item,
10
+ * SEQUENTIALLY.
11
+ */
12
+ export async function performDoRemoteAuto(options) {
13
+ const run = options.run ?? performDoRemote;
14
+ const read = options.read ?? ledgerRead;
15
+ const note = options.note ?? (() => { });
16
+ const count = options.count ?? 1;
17
+ // Ensure (create/fetch) the bare hub mirror ONCE up front so the pool scan reads
18
+ // the freshest committed `main`. Each per-item `performDoRemote` re-ensures the
19
+ // SAME mirror idempotently (a fetch, never a re-clone).
20
+ let mirror;
21
+ try {
22
+ mirror = ensureMirror({
23
+ url: options.remote,
24
+ workspacesDir: options.workspacesDir,
25
+ env: options.env,
26
+ });
27
+ }
28
+ catch (err) {
29
+ const message = err instanceof Error ? err.message : String(err);
30
+ note(message);
31
+ return { results: [], exitCode: 1, message };
32
+ }
33
+ // Scan the mirror's committed `main` for the SAME two pools the in-place scan
34
+ // enumerates (eligible tasks gated on `autoBuild`, taskable prds gated on
35
+ // `autoTask`), through the EXACT in-place predicates.
36
+ const scan = await scanMirrorPool({
37
+ mirrorPath: mirror.path,
38
+ config: options.config,
39
+ read,
40
+ warn: options.warn,
41
+ env: options.env,
42
+ });
43
+ // Order across both pools per the resolved `selectionOrder` + bound by count — the
44
+ // SAME shared, pure `selectPrioritised` the in-place + `run` drivers use.
45
+ const selected = selectPrioritised({
46
+ report: scan.report,
47
+ caps: {
48
+ maxParallel: Number.MAX_SAFE_INTEGER,
49
+ perRepoMax: Number.MAX_SAFE_INTEGER,
50
+ },
51
+ specs: scan.specs,
52
+ selectionOrder: options.config.selectionOrder,
53
+ count,
54
+ });
55
+ if (selected.length === 0) {
56
+ const message = 'Nothing eligible to do on the remote (no eligible tasks and no ' +
57
+ 'taskable prds under the per-action gates).';
58
+ note(message);
59
+ return { results: [], exitCode: 0, message };
60
+ }
61
+ const shared = sharedRemoteOptions(options);
62
+ const results = [];
63
+ for (const item of selected) {
64
+ const arg = remoteArgFor(item);
65
+ const result = await run({ ...shared, arg });
66
+ results.push(result);
67
+ }
68
+ const firstFailure = results.find((r) => r.exitCode !== 0);
69
+ const exitCode = firstFailure ? firstFailure.exitCode : 0;
70
+ const ok = results.filter((r) => r.exitCode === 0).length;
71
+ const message = `did ${results.length} remote item${results.length === 1 ? '' : 's'} ` +
72
+ `(${ok} ok, ${results.length - ok} not).`;
73
+ return { results, exitCode, message };
74
+ }
75
+ /** The `do --remote` arg for a selected item: `spec:<slug>` for a spec, bare slug for a task. */
76
+ function remoteArgFor(item) {
77
+ return item.namespace === 'spec' ? `spec:${item.slug}` : item.slug;
78
+ }
79
+ /**
80
+ * Run the EXPLICIT multi-arg form (`do --remote <a> <b> …`): the NAMED items in
81
+ * the GIVEN order (no pool/priority — the operator chose them), each through the
82
+ * EXISTING {@link performDoRemote} pipeline, SEQUENTIALLY. No mirror scan is
83
+ * needed (the args are explicit); the per-item pipeline resolves each
84
+ * bare/`task:`/`prd:` arg itself.
85
+ */
86
+ export async function performDoRemoteArgs(args, options) {
87
+ const run = options.run ?? performDoRemote;
88
+ const shared = sharedRemoteOptions(options);
89
+ const results = [];
90
+ for (const arg of args) {
91
+ const result = await run({ ...shared, arg });
92
+ results.push(result);
93
+ }
94
+ const firstFailure = results.find((r) => r.exitCode !== 0);
95
+ const exitCode = firstFailure ? firstFailure.exitCode : 0;
96
+ const ok = results.filter((r) => r.exitCode === 0).length;
97
+ const message = `did ${results.length} remote item${results.length === 1 ? '' : 's'} ` +
98
+ `(${ok} ok, ${results.length - ok} not).`;
99
+ return { results, exitCode, message };
100
+ }
101
+ /** Strip the multi-only fields, leaving exactly the per-item {@link DoRemoteOptions} base. */
102
+ function sharedRemoteOptions(options) {
103
+ const { config: _config, count: _count, run: _run, read: _read, warn: _warn, ...rest } = options;
104
+ void _config;
105
+ void _count;
106
+ void _run;
107
+ void _read;
108
+ void _warn;
109
+ return rest;
110
+ }
111
+ //# sourceMappingURL=do-remote-auto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"do-remote-auto.js","sourceRoot":"","sources":["../src/do-remote-auto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAsC,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAC,UAAU,EAA0B,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAC,iBAAiB,EAAoB,MAAM,sBAAsB,CAAC;AA+D1E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,OAAmC;IAEnC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,eAAe,CAAC;IAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC;IACxC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;IAEjC,iFAAiF;IACjF,gFAAgF;IAChF,wDAAwD;IACxD,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACJ,MAAM,GAAG,YAAY,CAAC;YACrB,GAAG,EAAE,OAAO,CAAC,MAAM;YACnB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,GAAG,EAAE,OAAO,CAAC,GAAG;SAChB,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,OAAO,CAAC,CAAC;QACd,OAAO,EAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAC,CAAC;IAC5C,CAAC;IAED,8EAA8E;IAC9E,0EAA0E;IAC1E,sDAAsD;IACtD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC;QACjC,UAAU,EAAE,MAAM,CAAC,IAAI;QACvB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI;QACJ,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;KAChB,CAAC,CAAC;IAEH,mFAAmF;IACnF,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,iBAAiB,CAAC;QAClC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE;YACL,WAAW,EAAE,MAAM,CAAC,gBAAgB;YACpC,UAAU,EAAE,MAAM,CAAC,gBAAgB;SACnC;QACD,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc;QAC7C,KAAK;KACL,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,OAAO,GACZ,iEAAiE;YACjE,4CAA4C,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,CAAC;QACd,OAAO,EAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAC,CAAC;IAC5C,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,EAAC,GAAG,MAAM,EAAE,GAAG,EAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1D,MAAM,OAAO,GACZ,OAAO,OAAO,CAAC,MAAM,eAAe,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;QACtE,IAAI,EAAE,QAAQ,OAAO,CAAC,MAAM,GAAG,EAAE,QAAQ,CAAC;IAC3C,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAC,CAAC;AACrC,CAAC;AAED,iGAAiG;AACjG,SAAS,YAAY,CAAC,IAAkB;IACvC,OAAO,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACpE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,IAAc,EACd,OAAmC;IAEnC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,eAAe,CAAC;IAC3C,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,EAAC,GAAG,MAAM,EAAE,GAAG,EAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1D,MAAM,OAAO,GACZ,OAAO,OAAO,CAAC,MAAM,eAAe,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;QACtE,IAAI,EAAE,QAAQ,OAAO,CAAC,MAAM,GAAG,EAAE,QAAQ,CAAC;IAC3C,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAC,CAAC;AACrC,CAAC;AAED,8FAA8F;AAC9F,SAAS,mBAAmB,CAC3B,OAAmC;IAEnC,MAAM,EACL,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,KAAK,EACX,GAAG,IAAI,EACP,GAAG,OAAO,CAAC;IACZ,KAAK,OAAO,CAAC;IACb,KAAK,MAAM,CAAC;IACZ,KAAK,IAAI,CAAC;IACV,KAAK,KAAK,CAAC;IACX,KAAK,KAAK,CAAC;IACX,OAAO,IAAI,CAAC;AACb,CAAC"}