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,442 @@
1
+ import { readdirSync, readFileSync } from 'node:fs';
2
+ import { basename, join } from 'node:path';
3
+ import { parseFrontmatter } from './frontmatter.js';
4
+ import { runAsync } from './git.js';
5
+ import { workFolderPath, workFolderRel, isWorkItemFile, } from './work-layout.js';
6
+ // --- The sole strategy: exactly today's behaviour -------------------------
7
+ function listMarkdown(dir) {
8
+ let entries;
9
+ try {
10
+ entries = readdirSync(dir);
11
+ }
12
+ catch {
13
+ return [];
14
+ }
15
+ return entries.filter((name) => isWorkItemFile(name)).sort();
16
+ }
17
+ function slugForFile(dir, file) {
18
+ const content = readFileSync(join(dir, file), 'utf8');
19
+ const fm = parseFrontmatter(content);
20
+ return fm.slug ?? basename(file, '.md');
21
+ }
22
+ /**
23
+ * Read a folder of TASK items (`tasks-ready` or `tasks-backlog`) from the local
24
+ * tree into the {@link LedgerReadyItem[]} shape. Factored so the POOL reader
25
+ * (`tasks/ready`) and the STAGING reader (`tasks/backlog`, the `surfaceStaging`
26
+ * widening) share one parse path — the two folders carry the SAME item shape
27
+ * (frontmatter + body), only the trust polarity differs.
28
+ */
29
+ function readLocalTaskFolder(repoPath, folder) {
30
+ const dir = workFolderPath(repoPath, folder);
31
+ const items = [];
32
+ for (const file of listMarkdown(dir)) {
33
+ const content = readFileSync(join(dir, file), 'utf8');
34
+ const fm = parseFrontmatter(content);
35
+ items.push({
36
+ file,
37
+ slug: fm.slug ?? basename(file, '.md'),
38
+ humanOnly: fm.humanOnly,
39
+ needsAnswers: fm.needsAnswers,
40
+ blockedBy: fm.blockedBy,
41
+ });
42
+ }
43
+ return items.sort((a, b) => a.slug.localeCompare(b.slug));
44
+ }
45
+ /** Read `work/tasks/ready/*.md` (the agent POOL) from the local tree, parsed and sorted by slug. */
46
+ function readLocalReady(repoPath) {
47
+ return readLocalTaskFolder(repoPath, 'tasks-ready');
48
+ }
49
+ /**
50
+ * Read `work/tasks/backlog/*.md` (the TASK STAGING folder, prd
51
+ * `staging-surface-and-apply-promote-safety` F2) from the local tree. Same
52
+ * {@link LedgerReadyItem} shape as the pool reader — the SURFACE-on-staging
53
+ * widening only enumerates items; it does NOT promote them.
54
+ */
55
+ function readLocalTaskStaging(repoPath) {
56
+ return readLocalTaskFolder(repoPath, 'tasks-backlog');
57
+ }
58
+ /**
59
+ * Read `work/prds/proposed/*.md` (the PRD STAGING folder, the prd twin
60
+ * of {@link readLocalTaskStaging}, prd q4 answer) from the local tree. Returns
61
+ * the SAME {@link LedgerSpecItem} shape `resolveSpecPool().specs` returns.
62
+ */
63
+ function readLocalSpecStaging(repoPath) {
64
+ return readLocalSpecFolder(repoPath, 'specs-proposed');
65
+ }
66
+ /**
67
+ * Read `work/prds/tasked/*.md` (the TASKED resting folder) into the SAME
68
+ * {@link LedgerSpecItem} shape. Used by the lifecycle gather to surface/apply a
69
+ * `needsAnswers` prd that drifted after tasking and rests in place in
70
+ * `prds/tasked/` — so its answered sidecar is never stranded.
71
+ */
72
+ function readLocalSpecTasked(repoPath) {
73
+ return readLocalSpecFolder(repoPath, 'specs-tasked');
74
+ }
75
+ /** Shared body for the local prd-FOLDER readers (proposed/tasked) — same item shape. */
76
+ function readLocalSpecFolder(repoPath, folder) {
77
+ const dir = workFolderPath(repoPath, folder);
78
+ const specs = [];
79
+ for (const file of listMarkdown(dir)) {
80
+ const content = readFileSync(join(dir, file), 'utf8');
81
+ const fm = parseFrontmatter(content);
82
+ specs.push({
83
+ file,
84
+ slug: fm.slug ?? basename(file, '.md'),
85
+ humanOnly: fm.humanOnly,
86
+ needsAnswers: fm.needsAnswers,
87
+ taskedAfter: fm.taskedAfter,
88
+ });
89
+ }
90
+ return specs.sort((a, b) => a.slug.localeCompare(b.slug));
91
+ }
92
+ /** Collect the slugs present in `work/done/` on the local tree. */
93
+ function readLocalDoneSlugs(repoPath) {
94
+ const dir = workFolderPath(repoPath, 'done');
95
+ const slugs = new Set();
96
+ for (const file of listMarkdown(dir)) {
97
+ slugs.add(slugForFile(dir, file));
98
+ }
99
+ return slugs;
100
+ }
101
+ /**
102
+ * Read `work/notes/observations/*.md` (slug-sorted) from the local tree.
103
+ *
104
+ * Identity rule (task `observation-identity-is-its-filename-not-a-foreign-slug`):
105
+ * an observation's IDENTITY is its FILENAME, NEVER a foreign frontmatter `slug:`.
106
+ * Earlier this read `fm.slug ?? basename(file)`, which let the review-nits minting
107
+ * (which wrote the REVIEWED TASK's slug into `slug:` as a back-pointer) drive the
108
+ * lifecycle pool to emit `obs:<reviewed-slug>` — a key that did not round-trip
109
+ * through `findItemPath` (filename-only) and collided with the reviewed task in
110
+ * `work/done/`. Identity is now ALWAYS the basename, so the enumerate→resolve
111
+ * round-trip is total by construction and a stray frontmatter `slug:` cannot
112
+ * re-break it. The back-pointer lives in `reviewOf:` instead.
113
+ */
114
+ function readLocalObservations(repoPath) {
115
+ const dir = workFolderPath(repoPath, 'observations');
116
+ const items = [];
117
+ for (const file of listMarkdown(dir)) {
118
+ const content = readFileSync(join(dir, file), 'utf8');
119
+ const fm = parseFrontmatter(content);
120
+ items.push({
121
+ file,
122
+ slug: basename(file, '.md'),
123
+ triaged: fm.triaged,
124
+ });
125
+ }
126
+ return items.sort((a, b) => a.slug.localeCompare(b.slug));
127
+ }
128
+ /**
129
+ * Does a prd named `slug` exist in `<repoPath>/work/<folder>/`? A prd source file
130
+ * is `work/prds/ready/*.md` (where a mid-tasking prd also rests — the `tasking/` folder is
131
+ * retired); a tasked prd rests at `work/prds/tasked/*.md` (the source of truth for
132
+ * tasked-ness). We match the slug against each file's
133
+ * frontmatter `slug:` (falling back to the filename) — the SAME shape the task
134
+ * readers use — so a renamed file whose frontmatter slug matches still resolves.
135
+ * Returns the matching filename, or `undefined`.
136
+ */
137
+ function findSpecFileBySlug(repoPath, folder, slug) {
138
+ const dir = workFolderPath(repoPath, folder);
139
+ for (const file of listMarkdown(dir)) {
140
+ if (slugForFile(dir, file) === slug) {
141
+ return file;
142
+ }
143
+ }
144
+ return undefined;
145
+ }
146
+ /**
147
+ * Enumerate `work/prds/ready/*.md` into the auto-task prd pool (the tasks-first/prd
148
+ * priority's prd source) — the SAME prd read path {@link findSpecFileBySlug} uses,
149
+ * widened from a single-slug existence check to a full enumeration. Each prd's
150
+ * slug is resolved from frontmatter `slug:` (falling back to the filename) and
151
+ * its gate axes (`humanOnly`/`needsAnswers`/`taskedAfter`) parsed. The
152
+ * already-TASKED set is RESIDENCE in `work/prds/tasked/` (task
153
+ * `prd-sliced-folder-step-a` / prd `slicing-coherence` US #9): the FOLDER is the
154
+ * source of truth (the build-machine `done/` analogue), so `taskedAfter` resolves
155
+ * against `prds/tasked/` residence (mirroring `blockedBy` -> `done/`). The `tasked:`
156
+ * frontmatter marker was removed entirely in `remove-sliced-marker-step-b`. This
157
+ * matches `tasking.ts`'s `readTaskedSlugs`. Missing folders read as empty.
158
+ */
159
+ function readLocalSpecPool(repoPath) {
160
+ const dir = workFolderPath(repoPath, 'specs-ready');
161
+ const specs = [];
162
+ for (const file of listMarkdown(dir)) {
163
+ const content = readFileSync(join(dir, file), 'utf8');
164
+ const fm = parseFrontmatter(content);
165
+ specs.push({
166
+ file,
167
+ slug: fm.slug ?? basename(file, '.md'),
168
+ humanOnly: fm.humanOnly,
169
+ needsAnswers: fm.needsAnswers,
170
+ taskedAfter: fm.taskedAfter,
171
+ });
172
+ }
173
+ specs.sort((a, b) => a.slug.localeCompare(b.slug));
174
+ // Tasked-ness is RESIDENCE in `work/prds/tasked/` — the FOLDER is the source of
175
+ // truth, like `done/` for tasks (the `tasked:` marker was removed in
176
+ // `remove-sliced-marker-step-b`), mirroring tasking.ts's readTaskedSlugs. Missing
177
+ // folder reads as empty.
178
+ const taskedSlugs = new Set();
179
+ const taskedDir = workFolderPath(repoPath, 'specs-tasked');
180
+ for (const file of listMarkdown(taskedDir)) {
181
+ const content = readFileSync(join(taskedDir, file), 'utf8');
182
+ const fm = parseFrontmatter(content);
183
+ taskedSlugs.add(fm.slug ?? basename(file, '.md'));
184
+ }
185
+ return { specs, taskedSlugs };
186
+ }
187
+ /** Run git, returning the raw result (no throw) — for soft checks. */
188
+ function gitSoft(args, cwd, env) {
189
+ return runAsync('git', args, cwd, { env });
190
+ }
191
+ /**
192
+ * Read the task file's contents from `<arbiter>/main`. It may live in `backlog/`
193
+ * (the normal claim case) or `in-progress/` (start --resume); read whichever
194
+ * exists. Returns `undefined` when the task is not found there.
195
+ */
196
+ async function readTaskOnArbiter(slug, arbiter, cwd, env) {
197
+ for (const folder of ['tasks-ready', 'in-progress']) {
198
+ const object = `${arbiter}/main:${workFolderRel(folder)}/${slug}.md`;
199
+ const show = await gitSoft(['show', object], cwd, env);
200
+ if (show.status === 0) {
201
+ return show.stdout;
202
+ }
203
+ }
204
+ return undefined;
205
+ }
206
+ /**
207
+ * Collect the slugs present in `work/done/` on `<arbiter>/main`, read from the
208
+ * committed arbiter tree (`ls-tree`). The slug is the filename minus `.md`
209
+ * (matching how claim/done moves name the file after its slug).
210
+ */
211
+ async function readDoneSlugsOnArbiter(arbiter, cwd, env) {
212
+ return readDoneSlugsFromTree(`${arbiter}/main`, cwd, env);
213
+ }
214
+ // --- Reading a committed `work/` tree (ref-based; bare-mirror or arbiter) ----
215
+ //
216
+ // These helpers read `work/{backlog,done}` from a git REF via
217
+ // `git ls-tree`/`git show` — the ONLY mechanism that works against a BARE repo
218
+ // (no working tree). `treeBase` is the `<ref>:work/<folder>` prefix; `cwd` is
219
+ // the repo the `git -C <cwd>` commands run in (the mirror itself for the mirror
220
+ // method, a working clone for the arbiter method).
221
+ /** `git ls-tree --name-only <base>` → the `.md` filenames (sorted), or `[]`. */
222
+ async function listMarkdownInTree(base, cwd, env) {
223
+ const tree = await gitSoft(['ls-tree', '--name-only', base], cwd, env);
224
+ if (tree.status !== 0) {
225
+ // The folder does not exist on this ref — nothing there.
226
+ return [];
227
+ }
228
+ return tree.stdout
229
+ .split('\n')
230
+ .map((s) => s.trim())
231
+ .filter((name) => isWorkItemFile(name))
232
+ .sort();
233
+ }
234
+ /** `git show <base>/<file>` → the file's raw contents, or `undefined`. */
235
+ async function showInTree(base, file, cwd, env) {
236
+ const show = await gitSoft(['show', `${base}/${file}`], cwd, env);
237
+ return show.status === 0 ? show.stdout : undefined;
238
+ }
239
+ /** Collect the slugs in `<ref>:work/done` (filename minus `.md`). */
240
+ async function readDoneSlugsFromTree(ref, cwd, env) {
241
+ const slugs = new Set();
242
+ for (const file of await listMarkdownInTree(`${ref}:${workFolderRel('done')}`, cwd, env)) {
243
+ slugs.add(file.slice(0, -'.md'.length));
244
+ }
245
+ return slugs;
246
+ }
247
+ /**
248
+ * Parse `<ref>:work/tasks/<folder>/*.md` from a committed tree into
249
+ * {@link LedgerReadyItem[]}, sorted by slug. Factored so the POOL + STAGING
250
+ * mirror reads share ONE parse path (mirrors `readLocalTaskFolder`).
251
+ */
252
+ async function readTaskFolderFromTree(folder, ref, cwd, env) {
253
+ const base = `${ref}:${workFolderRel(folder)}`;
254
+ const items = [];
255
+ for (const file of await listMarkdownInTree(base, cwd, env)) {
256
+ const content = await showInTree(base, file, cwd, env);
257
+ if (content === undefined) {
258
+ continue;
259
+ }
260
+ const fm = parseFrontmatter(content);
261
+ items.push({
262
+ file,
263
+ slug: fm.slug ?? basename(file, '.md'),
264
+ humanOnly: fm.humanOnly,
265
+ needsAnswers: fm.needsAnswers,
266
+ blockedBy: fm.blockedBy,
267
+ });
268
+ }
269
+ return items.sort((a, b) => a.slug.localeCompare(b.slug));
270
+ }
271
+ /** Parse `<ref>:work/tasks/ready/*.md` into pool items, sorted by slug. */
272
+ async function readReadyFromTree(ref, cwd, env) {
273
+ return readTaskFolderFromTree('tasks-ready', ref, cwd, env);
274
+ }
275
+ /** Parse `<ref>:work/tasks/backlog/*.md` (TASK STAGING) into items, sorted by slug. */
276
+ async function readTaskStagingFromTree(ref, cwd, env) {
277
+ return readTaskFolderFromTree('tasks-backlog', ref, cwd, env);
278
+ }
279
+ /** Parse `<ref>:work/prds/proposed/*.md` (PRD STAGING) into prd items, sorted by slug. */
280
+ async function readSpecStagingFromTree(ref, cwd, env) {
281
+ return readSpecFolderFromTree('specs-proposed', ref, cwd, env);
282
+ }
283
+ /** Parse `<ref>:work/prds/tasked/*.md` (TASKED resting) into prd items, sorted by slug. */
284
+ async function readSpecTaskedFromTree(ref, cwd, env) {
285
+ return readSpecFolderFromTree('specs-tasked', ref, cwd, env);
286
+ }
287
+ /** Shared body for the mirror-ref prd-FOLDER readers (proposed/tasked) — same item shape. */
288
+ async function readSpecFolderFromTree(folder, ref, cwd, env) {
289
+ const base = `${ref}:${workFolderRel(folder)}`;
290
+ const specs = [];
291
+ for (const file of await listMarkdownInTree(base, cwd, env)) {
292
+ const content = await showInTree(base, file, cwd, env);
293
+ if (content === undefined) {
294
+ continue;
295
+ }
296
+ const fm = parseFrontmatter(content);
297
+ specs.push({
298
+ file,
299
+ slug: fm.slug ?? basename(file, '.md'),
300
+ humanOnly: fm.humanOnly,
301
+ needsAnswers: fm.needsAnswers,
302
+ taskedAfter: fm.taskedAfter,
303
+ });
304
+ }
305
+ return specs.sort((a, b) => a.slug.localeCompare(b.slug));
306
+ }
307
+ /**
308
+ * Parse `<ref>:work/prds/ready/*.md` into the auto-task prd pool, sorted by slug, plus
309
+ * the already-TASKED slugs from `<ref>:work/prds/tasked/` RESIDENCE (the folder is
310
+ * the source of truth, mirroring the working-tree {@link readLocalSpecPool}). Reads
311
+ * a committed tree (bare-mirror or any ref) via `ls-tree`/`show`. Missing folders
312
+ * read as empty.
313
+ */
314
+ async function readSpecPoolFromTree(ref, cwd, env) {
315
+ const specBase = `${ref}:${workFolderRel('specs-ready')}`;
316
+ const specs = [];
317
+ for (const file of await listMarkdownInTree(specBase, cwd, env)) {
318
+ const content = await showInTree(specBase, file, cwd, env);
319
+ if (content === undefined) {
320
+ continue;
321
+ }
322
+ const fm = parseFrontmatter(content);
323
+ specs.push({
324
+ file,
325
+ slug: fm.slug ?? basename(file, '.md'),
326
+ humanOnly: fm.humanOnly,
327
+ needsAnswers: fm.needsAnswers,
328
+ taskedAfter: fm.taskedAfter,
329
+ });
330
+ }
331
+ specs.sort((a, b) => a.slug.localeCompare(b.slug));
332
+ // Tasked-ness is RESIDENCE in `work/prds/tasked/` — the FOLDER is the source of
333
+ // truth (the `tasked:` marker was removed in `remove-sliced-marker-step-b`),
334
+ // exactly as the working-tree reader resolves it.
335
+ const taskedBase = `${ref}:${workFolderRel('specs-tasked')}`;
336
+ const taskedSlugs = new Set();
337
+ for (const file of await listMarkdownInTree(taskedBase, cwd, env)) {
338
+ const content = await showInTree(taskedBase, file, cwd, env);
339
+ if (content === undefined) {
340
+ continue;
341
+ }
342
+ const fm = parseFrontmatter(content);
343
+ taskedSlugs.add(fm.slug ?? basename(file, '.md'));
344
+ }
345
+ return { specs, taskedSlugs };
346
+ }
347
+ /**
348
+ * Parse `<ref>:work/notes/observations/*.md` into items, sorted by slug. Identity is the
349
+ * FILENAME (mirrors {@link readLocalObservations}) so the in-place + mirror
350
+ * enumerations agree, and a foreign frontmatter `slug:` cannot break the
351
+ * enumerate→resolve round-trip.
352
+ */
353
+ async function readObservationsFromTree(ref, cwd, env) {
354
+ const base = `${ref}:${workFolderRel('observations')}`;
355
+ const items = [];
356
+ for (const file of await listMarkdownInTree(base, cwd, env)) {
357
+ const content = await showInTree(base, file, cwd, env);
358
+ if (content === undefined) {
359
+ continue;
360
+ }
361
+ const fm = parseFrontmatter(content);
362
+ items.push({
363
+ file,
364
+ slug: basename(file, '.md'),
365
+ triaged: fm.triaged,
366
+ });
367
+ }
368
+ return items.sort((a, b) => a.slug.localeCompare(b.slug));
369
+ }
370
+ /**
371
+ * The ONLY ledger-read strategy: current behaviour. The local method reads the
372
+ * working tree (offline); the arbiter method reads `<arbiter>/main`. A future
373
+ * strategy would be a different object implementing the same interface — chosen
374
+ * NOWHERE today (no mode/config selects it).
375
+ */
376
+ export const currentLedgerRead = {
377
+ resolveLocalState({ repoPath }) {
378
+ return {
379
+ ready: readLocalReady(repoPath),
380
+ doneSlugs: readLocalDoneSlugs(repoPath),
381
+ observations: readLocalObservations(repoPath),
382
+ };
383
+ },
384
+ async resolveArbiterState({ slug, cwd, arbiter, env }) {
385
+ const task = await readTaskOnArbiter(slug, arbiter, cwd, env);
386
+ const doneSlugs = await readDoneSlugsOnArbiter(arbiter, cwd, env);
387
+ return { task, doneSlugs };
388
+ },
389
+ resolveSpecExistence({ repoPath, slug }) {
390
+ const specFile = findSpecFileBySlug(repoPath, 'specs-ready', slug);
391
+ const specTaskedFile = findSpecFileBySlug(repoPath, 'specs-tasked', slug);
392
+ return {
393
+ exists: specFile !== undefined || specTaskedFile !== undefined,
394
+ specFile,
395
+ specTaskedFile,
396
+ };
397
+ },
398
+ resolveSpecPool({ repoPath }) {
399
+ return readLocalSpecPool(repoPath);
400
+ },
401
+ resolveLocalTaskStaging({ repoPath }) {
402
+ return readLocalTaskStaging(repoPath);
403
+ },
404
+ resolveLocalSpecStaging({ repoPath }) {
405
+ return readLocalSpecStaging(repoPath);
406
+ },
407
+ resolveLocalSpecTasked({ repoPath }) {
408
+ return readLocalSpecTasked(repoPath);
409
+ },
410
+ async resolveMirrorTaskStaging({ mirrorPath, ref = 'main', env }) {
411
+ return readTaskStagingFromTree(ref, mirrorPath, env);
412
+ },
413
+ async resolveMirrorSpecStaging({ mirrorPath, ref = 'main', env }) {
414
+ return readSpecStagingFromTree(ref, mirrorPath, env);
415
+ },
416
+ async resolveMirrorSpecTasked({ mirrorPath, ref = 'main', env }) {
417
+ return readSpecTaskedFromTree(ref, mirrorPath, env);
418
+ },
419
+ async resolveMirrorState({ mirrorPath, ref = 'main', env }) {
420
+ // A hub mirror is BARE — read the full `work/` lifecycle from its committed
421
+ // `<ref>:work/...` tree, running git INSIDE the mirror (`git -C <mirror>`).
422
+ // The ref is mirror-LOCAL (`main`), never `origin/main`.
423
+ const [ready, doneSlugs, observations] = await Promise.all([
424
+ readReadyFromTree(ref, mirrorPath, env),
425
+ readDoneSlugsFromTree(ref, mirrorPath, env),
426
+ readObservationsFromTree(ref, mirrorPath, env),
427
+ ]);
428
+ return { ready, doneSlugs, observations };
429
+ },
430
+ async resolveMirrorSpecPool({ mirrorPath, ref = 'main', env }) {
431
+ // The prd pool from the bare mirror's committed `<ref>:work/prds*` tree — the
432
+ // mirror-ref counterpart of `resolveSpecPool` (a working-tree read). Same shape,
433
+ // so `taskableSpecs` applies identically to either source.
434
+ return readSpecPoolFromTree(ref, mirrorPath, env);
435
+ },
436
+ };
437
+ /**
438
+ * The active ledger-read strategy. There is exactly one (current behaviour);
439
+ * this indirection is the seam's single insertion point — NOT a selectable mode.
440
+ */
441
+ export const ledgerRead = currentLedgerRead;
442
+ //# sourceMappingURL=ledger-read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger-read.js","sourceRoot":"","sources":["../src/ledger-read.ts"],"names":[],"mappings":"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"}