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 @@
1
+ {"version":3,"file":"install-ci-core.js","sourceRoot":"","sources":["../src/install-ci-core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * The thin GitHub adapter for `install-ci` (prd `runner-in-ci`, task
3
+ * `install-ci-core-and-github-adapter`). It plugs into the provider-agnostic
4
+ * {@link CIProviderContext} seam from `install-ci-core.ts`: the core owns the
5
+ * wizard / config / `models.json` / `--export-config` / `--fake` / secret
6
+ * orchestration; THIS adapter only supplies the GitHub-specific I/O (repo
7
+ * detection, `gh secret set`, the optional `delete_branch_on_merge` repo
8
+ * setting). Because the seam is the boundary, a second CI provider could be added
9
+ * WITHOUT touching the core (US #7/#10).
10
+ *
11
+ * `install-ci` uses the SEAMS, never `gh` directly in the core: this adapter is
12
+ * the ONLY place that shells out to `gh`, and it does so behind the seam so tests
13
+ * stub it entirely (no network, no real `gh`, no real GitHub repo detection). The
14
+ * adapter NEVER `--force`s and degrades gracefully when `gh` is missing.
15
+ */
16
+ import type { CIProviderContext } from './install-ci-core.js';
17
+ /**
18
+ * The provider id this adapter exposes through {@link CIProviderContext.providerId}.
19
+ * Matches the key the orchestrator looks up in
20
+ * `CIConfigFile.projectSetup` (the provider-namespaced opaque pass-through).
21
+ */
22
+ export declare const GITHUB_PROVIDER_ID = "github";
23
+ /**
24
+ * Raised when the GitHub project-setup payload fails its LIGHT structural sanity
25
+ * check (the only check we do — see {@link renderGithubProjectSetupSteps}).
26
+ * Distinct error class so callers can branch on it; message names the field.
27
+ */
28
+ export declare class GithubProjectSetupError extends Error {
29
+ }
30
+ /**
31
+ * Validate the user's GitHub project-setup payload with a DELIBERATELY LIGHT
32
+ * structural check — enough to catch obvious typos (string vs. nothing; not a
33
+ * YAML list) without re-introducing the mini-format this escape hatch exists to
34
+ * avoid (ADR `install-ci-project-provisioning-native-passthrough`).
35
+ *
36
+ * Rules: the payload must be a non-empty STRING whose trimmed body parses as a
37
+ * top-level YAML list-of-mappings — at indent level 0, every non-blank line
38
+ * either (a) starts a step item with `- ` / `-` (a YAML sequence entry) or (b)
39
+ * is an indented continuation of the previous step. We do NOT inspect step
40
+ * fields (`uses`, `run`, `name`, …) and we do NOT semantically parse YAML.
41
+ *
42
+ * Returns the canonicalised (trimmed) snippet. Throws {@link GithubProjectSetupError}
43
+ * with a message that NAMES the field (`projectSetup.github`).
44
+ */
45
+ export declare function validateGithubProjectSetupPayload(payload: unknown): string;
46
+ /**
47
+ * Render the user's GitHub project-setup payload to the YAML fragment the
48
+ * composite setup action splices in FIRST (before setup-node, dorfl-install,
49
+ * and AI-auth). The check is delegated to
50
+ * {@link validateGithubProjectSetupPayload}; this function only INDENTS the
51
+ * verbatim payload so it sits at the 4-space level the composite action's
52
+ * `steps:` body uses. The opacity contract: bytes-in == bytes-out, modulo the
53
+ * 4-space indent applied here — we do NOT transform, normalize, or reflow the
54
+ * snippet (that would re-introduce the mini-format this hook exists to avoid).
55
+ */
56
+ export declare function renderGithubProjectSetupSteps(payload: unknown): string;
57
+ /** Options for the live GitHub provider context. */
58
+ export interface GitHubCIContextOptions {
59
+ /** The target repo's working directory. */
60
+ workDir: string;
61
+ /** The `owner/repo` slug; auto-detected via `gh` when omitted. */
62
+ repo?: string;
63
+ /** The `gh` CLI binary (default `gh` on PATH). Tests inject a stub. */
64
+ ghBin?: string;
65
+ /** Environment for the `gh` child. */
66
+ env?: NodeJS.ProcessEnv;
67
+ }
68
+ /**
69
+ * The live GitHub provider context: detects the repo + availability via `gh` and
70
+ * sets secrets via `gh secret set`. This is the PRODUCTION seam implementation;
71
+ * tests use a STUB context instead (see {@link MemoryCIProviderContext}). It
72
+ * NEVER `--force`s and treats a missing `gh` as `ghAvailable: false`.
73
+ */
74
+ export declare class GitHubCIContext implements CIProviderContext {
75
+ readonly providerId = "github";
76
+ readonly workDir: string;
77
+ repo: string | undefined;
78
+ readonly ghAvailable: boolean;
79
+ private readonly ghBin;
80
+ private readonly env;
81
+ constructor(options: GitHubCIContextOptions);
82
+ /** Is `gh` available + authenticated? (`gh auth status` exits 0 when so.) */
83
+ private probeAvailable;
84
+ /** Detect `owner/repo` via `gh repo view`, or `undefined` when unavailable. */
85
+ private detectRepo;
86
+ /** Set a secret via `gh secret set <name> --body <value>`. Throws on failure. */
87
+ setSecret(name: string, value: string): Promise<void>;
88
+ /**
89
+ * Set a GitHub repo-setting (the capability-F residue: `delete_branch_on_merge`)
90
+ * via `gh api -X PATCH repos/<repo> -f <name>=<value>`. Throws on failure. The
91
+ * wizard prompts before calling this — it is NEVER silently toggled.
92
+ */
93
+ setRepoSetting(name: string, value: boolean): Promise<void>;
94
+ /**
95
+ * Detect whether the configured credential has REPO-ADMIN scope by reading
96
+ * `permissions.admin` from `GET /repos/{owner}/{repo}` — ONE low-cost read
97
+ * that works uniformly for every token kind (classic/fine-grained PAT,
98
+ * GitHub App, or the ambient `GITHUB_TOKEN`). See the rationale recorded in
99
+ * `install-ci-branch-protection.ts` ("pick the cheaper of the two and
100
+ * record the choice"). Returns `undefined` (unknown, treated as non-admin)
101
+ * when `gh` is unavailable / the repo is unknown / the call fails.
102
+ */
103
+ getRepoAdminScope(): Promise<boolean | undefined>;
104
+ /**
105
+ * Configure Tier-1 branch protection via
106
+ * `PUT /repos/{owner}/{repo}/branches/{branch}/protection`. The `spec` body
107
+ * is JSON-piped on stdin (`gh api --input -`) so a complex shape (the
108
+ * required-status `checks` array) carries cleanly without `gh`'s scalar
109
+ * `-f` field syntax. Throws on a non-zero exit; caller logs + falls back.
110
+ */
111
+ setBranchProtection(branch: string, spec: unknown): Promise<void>;
112
+ /**
113
+ * Render the GitHub project-setup payload to the steps fragment the
114
+ * composite setup action splices in FIRST. Free-function delegate so the
115
+ * memory stub gets identical behaviour with no I/O.
116
+ */
117
+ renderProjectSetup(payload: unknown): string;
118
+ /** Run `gh <args>` in workDir, or `undefined` when `gh` cannot be spawned. */
119
+ private runGh;
120
+ /** Like {@link runGh} but pipes `input` on stdin (for `gh api --input -`). */
121
+ private runGhWithInput;
122
+ }
123
+ /**
124
+ * An in-memory STUB provider context for tests + `--fake` mode: `setSecret`
125
+ * records to memory (NO real secrets store touched), `ghAvailable` is fixed
126
+ * (default `false`), `repo` is a fixture. This is the mechanism the task's
127
+ * shared-write isolation requires — no network, no real `gh`, no real GitHub, no
128
+ * real `~`, no system git config written.
129
+ */
130
+ export declare class MemoryCIProviderContext implements CIProviderContext {
131
+ readonly providerId: string;
132
+ readonly workDir: string;
133
+ repo: string | undefined;
134
+ readonly ghAvailable: boolean;
135
+ /** Secrets recorded in memory (name → value). */
136
+ readonly secrets: Map<string, string>;
137
+ /** Repo settings recorded in memory (name → value). */
138
+ readonly repoSettings: Map<string, boolean>;
139
+ /** Branch-protection spec recorded in memory (branch → spec). */
140
+ readonly branchProtections: Map<string, unknown>;
141
+ /** What `getRepoAdminScope()` should return (tests configure). */
142
+ private readonly adminScope;
143
+ /** Whether `setBranchProtection` should throw (tests configure). */
144
+ private readonly branchProtectionError;
145
+ constructor(options: {
146
+ workDir: string;
147
+ repo?: string;
148
+ ghAvailable?: boolean;
149
+ /** Fixture admin-scope verdict; `undefined` ⇒ unknown. */
150
+ adminScope?: boolean;
151
+ /** When set, `setBranchProtection` throws with this message (failure path). */
152
+ branchProtectionError?: string;
153
+ /**
154
+ * The provider id this stub claims (default `github`). Tests of the
155
+ * project-setup seam may override to assert the orchestrator's
156
+ * payload-lookup path; the default models GitHub the way the live
157
+ * adapter does.
158
+ */
159
+ providerId?: string;
160
+ });
161
+ renderProjectSetup(payload: unknown): string;
162
+ setSecret(name: string, value: string): Promise<void>;
163
+ setRepoSetting(name: string, value: boolean): Promise<void>;
164
+ getRepoAdminScope(): Promise<boolean | undefined>;
165
+ setBranchProtection(branch: string, spec: unknown): Promise<void>;
166
+ }
167
+ //# sourceMappingURL=install-ci-github.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-ci-github.d.ts","sourceRoot":"","sources":["../src/install-ci-github.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,315 @@
1
+ /**
2
+ * The thin GitHub adapter for `install-ci` (prd `runner-in-ci`, task
3
+ * `install-ci-core-and-github-adapter`). It plugs into the provider-agnostic
4
+ * {@link CIProviderContext} seam from `install-ci-core.ts`: the core owns the
5
+ * wizard / config / `models.json` / `--export-config` / `--fake` / secret
6
+ * orchestration; THIS adapter only supplies the GitHub-specific I/O (repo
7
+ * detection, `gh secret set`, the optional `delete_branch_on_merge` repo
8
+ * setting). Because the seam is the boundary, a second CI provider could be added
9
+ * WITHOUT touching the core (US #7/#10).
10
+ *
11
+ * `install-ci` uses the SEAMS, never `gh` directly in the core: this adapter is
12
+ * the ONLY place that shells out to `gh`, and it does so behind the seam so tests
13
+ * stub it entirely (no network, no real `gh`, no real GitHub repo detection). The
14
+ * adapter NEVER `--force`s and degrades gracefully when `gh` is missing.
15
+ */
16
+ import { run } from './git.js';
17
+ import { DEFAULT_GH_BIN } from './github.js';
18
+ /**
19
+ * The provider id this adapter exposes through {@link CIProviderContext.providerId}.
20
+ * Matches the key the orchestrator looks up in
21
+ * `CIConfigFile.projectSetup` (the provider-namespaced opaque pass-through).
22
+ */
23
+ export const GITHUB_PROVIDER_ID = 'github';
24
+ /**
25
+ * Raised when the GitHub project-setup payload fails its LIGHT structural sanity
26
+ * check (the only check we do — see {@link renderGithubProjectSetupSteps}).
27
+ * Distinct error class so callers can branch on it; message names the field.
28
+ */
29
+ export class GithubProjectSetupError extends Error {
30
+ }
31
+ /**
32
+ * Validate the user's GitHub project-setup payload with a DELIBERATELY LIGHT
33
+ * structural check — enough to catch obvious typos (string vs. nothing; not a
34
+ * YAML list) without re-introducing the mini-format this escape hatch exists to
35
+ * avoid (ADR `install-ci-project-provisioning-native-passthrough`).
36
+ *
37
+ * Rules: the payload must be a non-empty STRING whose trimmed body parses as a
38
+ * top-level YAML list-of-mappings — at indent level 0, every non-blank line
39
+ * either (a) starts a step item with `- ` / `-` (a YAML sequence entry) or (b)
40
+ * is an indented continuation of the previous step. We do NOT inspect step
41
+ * fields (`uses`, `run`, `name`, …) and we do NOT semantically parse YAML.
42
+ *
43
+ * Returns the canonicalised (trimmed) snippet. Throws {@link GithubProjectSetupError}
44
+ * with a message that NAMES the field (`projectSetup.github`).
45
+ */
46
+ export function validateGithubProjectSetupPayload(payload) {
47
+ if (typeof payload !== 'string') {
48
+ throw new GithubProjectSetupError('projectSetup.github must be a STRING of native GitHub Actions step ' +
49
+ 'YAML (a YAML list of step mappings, e.g. `- name: ...\\n uses: ...`)');
50
+ }
51
+ const trimmed = payload.replace(/^[\r\n\s]+/, '').replace(/\s+$/, '');
52
+ if (trimmed.length === 0) {
53
+ throw new GithubProjectSetupError('projectSetup.github is empty; either supply a YAML list of step ' +
54
+ 'mappings or omit the field entirely');
55
+ }
56
+ let sawItem = false;
57
+ for (const line of trimmed.split('\n')) {
58
+ if (line.trim() === '')
59
+ continue;
60
+ // Top-level YAML comments are valid and pass through verbatim.
61
+ if (/^#/.test(line))
62
+ continue;
63
+ if (/^[ \t]/.test(line)) {
64
+ if (!sawItem) {
65
+ throw new GithubProjectSetupError('projectSetup.github must be a YAML list of step mappings ' +
66
+ '(top-level first non-blank line must start with `- `; got an ' +
67
+ `indented continuation: ${JSON.stringify(line)})`);
68
+ }
69
+ continue;
70
+ }
71
+ if (!/^-(\s|$)/.test(line)) {
72
+ throw new GithubProjectSetupError('projectSetup.github must be a YAML list of step mappings ' +
73
+ `(unexpected top-level line: ${JSON.stringify(line)})`);
74
+ }
75
+ sawItem = true;
76
+ }
77
+ return trimmed;
78
+ }
79
+ /**
80
+ * Render the user's GitHub project-setup payload to the YAML fragment the
81
+ * composite setup action splices in FIRST (before setup-node, dorfl-install,
82
+ * and AI-auth). The check is delegated to
83
+ * {@link validateGithubProjectSetupPayload}; this function only INDENTS the
84
+ * verbatim payload so it sits at the 4-space level the composite action's
85
+ * `steps:` body uses. The opacity contract: bytes-in == bytes-out, modulo the
86
+ * 4-space indent applied here — we do NOT transform, normalize, or reflow the
87
+ * snippet (that would re-introduce the mini-format this hook exists to avoid).
88
+ */
89
+ export function renderGithubProjectSetupSteps(payload) {
90
+ const snippet = validateGithubProjectSetupPayload(payload);
91
+ const indented = snippet
92
+ .split('\n')
93
+ .map((line) => (line.length === 0 ? '' : ` ${line}`))
94
+ .join('\n');
95
+ return indented.endsWith('\n') ? indented : indented + '\n';
96
+ }
97
+ /**
98
+ * The live GitHub provider context: detects the repo + availability via `gh` and
99
+ * sets secrets via `gh secret set`. This is the PRODUCTION seam implementation;
100
+ * tests use a STUB context instead (see {@link MemoryCIProviderContext}). It
101
+ * NEVER `--force`s and treats a missing `gh` as `ghAvailable: false`.
102
+ */
103
+ export class GitHubCIContext {
104
+ providerId = GITHUB_PROVIDER_ID;
105
+ workDir;
106
+ repo;
107
+ ghAvailable;
108
+ ghBin;
109
+ env;
110
+ constructor(options) {
111
+ this.workDir = options.workDir;
112
+ this.ghBin = options.ghBin ?? DEFAULT_GH_BIN;
113
+ this.env = options.env;
114
+ this.ghAvailable = this.probeAvailable();
115
+ this.repo = options.repo ?? this.detectRepo();
116
+ }
117
+ /** Is `gh` available + authenticated? (`gh auth status` exits 0 when so.) */
118
+ probeAvailable() {
119
+ const result = this.runGh(['auth', 'status']);
120
+ return result !== undefined && result.status === 0;
121
+ }
122
+ /** Detect `owner/repo` via `gh repo view`, or `undefined` when unavailable. */
123
+ detectRepo() {
124
+ if (!this.ghAvailable) {
125
+ return undefined;
126
+ }
127
+ const result = this.runGh([
128
+ 'repo',
129
+ 'view',
130
+ '--json',
131
+ 'nameWithOwner',
132
+ '--jq',
133
+ '.nameWithOwner',
134
+ ]);
135
+ if (result === undefined || result.status !== 0) {
136
+ return undefined;
137
+ }
138
+ const slug = result.stdout.trim();
139
+ return slug === '' ? undefined : slug;
140
+ }
141
+ /** Set a secret via `gh secret set <name> --body <value>`. Throws on failure. */
142
+ async setSecret(name, value) {
143
+ const args = ['secret', 'set', name, '--body', value];
144
+ if (this.repo) {
145
+ args.push('--repo', this.repo);
146
+ }
147
+ const result = this.runGh(args);
148
+ if (result === undefined) {
149
+ throw new Error(`gh not available; cannot set secret ${name}`);
150
+ }
151
+ if (result.status !== 0) {
152
+ throw new Error(`gh secret set ${name} failed: ${result.stderr.trim() || 'unknown error'}`);
153
+ }
154
+ }
155
+ /**
156
+ * Set a GitHub repo-setting (the capability-F residue: `delete_branch_on_merge`)
157
+ * via `gh api -X PATCH repos/<repo> -f <name>=<value>`. Throws on failure. The
158
+ * wizard prompts before calling this — it is NEVER silently toggled.
159
+ */
160
+ async setRepoSetting(name, value) {
161
+ if (!this.repo) {
162
+ throw new Error(`cannot set repo setting ${name}: repo unknown`);
163
+ }
164
+ const result = this.runGh([
165
+ 'api',
166
+ '-X',
167
+ 'PATCH',
168
+ `repos/${this.repo}`,
169
+ '-f',
170
+ `${name}=${value}`,
171
+ ]);
172
+ if (result === undefined) {
173
+ throw new Error(`gh not available; cannot set repo setting ${name}`);
174
+ }
175
+ if (result.status !== 0) {
176
+ throw new Error(`gh api PATCH repos/${this.repo} ${name}=${value} failed: ` +
177
+ (result.stderr.trim() || 'unknown error'));
178
+ }
179
+ }
180
+ /**
181
+ * Detect whether the configured credential has REPO-ADMIN scope by reading
182
+ * `permissions.admin` from `GET /repos/{owner}/{repo}` — ONE low-cost read
183
+ * that works uniformly for every token kind (classic/fine-grained PAT,
184
+ * GitHub App, or the ambient `GITHUB_TOKEN`). See the rationale recorded in
185
+ * `install-ci-branch-protection.ts` ("pick the cheaper of the two and
186
+ * record the choice"). Returns `undefined` (unknown, treated as non-admin)
187
+ * when `gh` is unavailable / the repo is unknown / the call fails.
188
+ */
189
+ async getRepoAdminScope() {
190
+ if (!this.repo) {
191
+ return undefined;
192
+ }
193
+ const result = this.runGh([
194
+ 'api',
195
+ `repos/${this.repo}`,
196
+ '--jq',
197
+ '.permissions.admin',
198
+ ]);
199
+ if (result === undefined || result.status !== 0) {
200
+ return undefined;
201
+ }
202
+ const out = result.stdout.trim();
203
+ if (out === 'true')
204
+ return true;
205
+ if (out === 'false')
206
+ return false;
207
+ return undefined;
208
+ }
209
+ /**
210
+ * Configure Tier-1 branch protection via
211
+ * `PUT /repos/{owner}/{repo}/branches/{branch}/protection`. The `spec` body
212
+ * is JSON-piped on stdin (`gh api --input -`) so a complex shape (the
213
+ * required-status `checks` array) carries cleanly without `gh`'s scalar
214
+ * `-f` field syntax. Throws on a non-zero exit; caller logs + falls back.
215
+ */
216
+ async setBranchProtection(branch, spec) {
217
+ if (!this.repo) {
218
+ throw new Error(`cannot set branch protection on ${branch}: repo unknown`);
219
+ }
220
+ const args = [
221
+ 'api',
222
+ '-X',
223
+ 'PUT',
224
+ '-H',
225
+ 'Accept: application/vnd.github+json',
226
+ `repos/${this.repo}/branches/${branch}/protection`,
227
+ '--input',
228
+ '-',
229
+ ];
230
+ const result = this.runGhWithInput(args, JSON.stringify(spec));
231
+ if (result === undefined) {
232
+ throw new Error(`gh not available; cannot set branch protection on ${branch}`);
233
+ }
234
+ if (result.status !== 0) {
235
+ throw new Error(`gh api PUT branches/${branch}/protection failed: ` +
236
+ (result.stderr.trim() || 'unknown error'));
237
+ }
238
+ }
239
+ /**
240
+ * Render the GitHub project-setup payload to the steps fragment the
241
+ * composite setup action splices in FIRST. Free-function delegate so the
242
+ * memory stub gets identical behaviour with no I/O.
243
+ */
244
+ renderProjectSetup(payload) {
245
+ return renderGithubProjectSetupSteps(payload);
246
+ }
247
+ /** Run `gh <args>` in workDir, or `undefined` when `gh` cannot be spawned. */
248
+ runGh(args) {
249
+ try {
250
+ return run(this.ghBin, args, this.workDir, { env: this.env });
251
+ }
252
+ catch {
253
+ return undefined;
254
+ }
255
+ }
256
+ /** Like {@link runGh} but pipes `input` on stdin (for `gh api --input -`). */
257
+ runGhWithInput(args, input) {
258
+ try {
259
+ return run(this.ghBin, args, this.workDir, { env: this.env, input });
260
+ }
261
+ catch {
262
+ return undefined;
263
+ }
264
+ }
265
+ }
266
+ /**
267
+ * An in-memory STUB provider context for tests + `--fake` mode: `setSecret`
268
+ * records to memory (NO real secrets store touched), `ghAvailable` is fixed
269
+ * (default `false`), `repo` is a fixture. This is the mechanism the task's
270
+ * shared-write isolation requires — no network, no real `gh`, no real GitHub, no
271
+ * real `~`, no system git config written.
272
+ */
273
+ export class MemoryCIProviderContext {
274
+ providerId;
275
+ workDir;
276
+ repo;
277
+ ghAvailable;
278
+ /** Secrets recorded in memory (name → value). */
279
+ secrets = new Map();
280
+ /** Repo settings recorded in memory (name → value). */
281
+ repoSettings = new Map();
282
+ /** Branch-protection spec recorded in memory (branch → spec). */
283
+ branchProtections = new Map();
284
+ /** What `getRepoAdminScope()` should return (tests configure). */
285
+ adminScope;
286
+ /** Whether `setBranchProtection` should throw (tests configure). */
287
+ branchProtectionError;
288
+ constructor(options) {
289
+ this.workDir = options.workDir;
290
+ this.repo = options.repo;
291
+ this.ghAvailable = options.ghAvailable ?? false;
292
+ this.adminScope = options.adminScope;
293
+ this.branchProtectionError = options.branchProtectionError;
294
+ this.providerId = options.providerId ?? GITHUB_PROVIDER_ID;
295
+ }
296
+ renderProjectSetup(payload) {
297
+ return renderGithubProjectSetupSteps(payload);
298
+ }
299
+ async setSecret(name, value) {
300
+ this.secrets.set(name, value);
301
+ }
302
+ async setRepoSetting(name, value) {
303
+ this.repoSettings.set(name, value);
304
+ }
305
+ async getRepoAdminScope() {
306
+ return this.adminScope;
307
+ }
308
+ async setBranchProtection(branch, spec) {
309
+ if (this.branchProtectionError !== undefined) {
310
+ throw new Error(this.branchProtectionError);
311
+ }
312
+ this.branchProtections.set(branch, spec);
313
+ }
314
+ }
315
+ //# sourceMappingURL=install-ci-github.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-ci-github.js","sourceRoot":"","sources":["../src/install-ci-github.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * The `install-ci` orchestrator (prd `runner-in-ci`, task
3
+ * `install-ci-core-and-github-adapter`): ties the provider-agnostic core
4
+ * (`install-ci-core.ts`) to a CI-provider adapter (the first being GitHub,
5
+ * `install-ci-github.ts`) through the {@link CIProviderContext} seam. It drives
6
+ * three paths from ONE config shape so they cannot diverge:
7
+ *
8
+ * - the interactive WIZARD (prompts via the injectable {@link WizardPrompts}
9
+ * seam — production wires readline; tests inject a deterministic stub);
10
+ * - the non-interactive `--config <file>` path (loads the same shape, no prompts);
11
+ * - `--export-config` (+ `--include-secrets`) which round-trips the gathered
12
+ * config back to JSON.
13
+ *
14
+ * The artifacts (composite setup action + auth) are assembled by the core and
15
+ * written under `.fake/` in `--fake` snapshot mode (NEVER `.github/`, NO real
16
+ * secret), so the SAME inputs produce byte-identical output whether gathered
17
+ * interactively or from a config file (the equivalence the task pins).
18
+ */
19
+ import { type CIConfigFile, type ResolvedCIConfig, type InstallSource, type CIProviderContext, type CapabilityEmitter, type SecretSetResult, DEFAULT_HARNESS } from './install-ci-core.js';
20
+ import { type BranchProtectionStepResult } from './install-ci-branch-protection.js';
21
+ /**
22
+ * The interactive prompt SEAM the wizard drives. Production wires readline; tests
23
+ * inject a deterministic stub so the wizard runs with NO TTY, NO network, and the
24
+ * gathered config exactly equals a config-file input (proving the equivalence).
25
+ */
26
+ export interface WizardPrompts {
27
+ /** A free-text answer (with an optional default). */
28
+ input(message: string, opts?: {
29
+ default?: string;
30
+ }): Promise<string>;
31
+ /** A masked secret answer (never echoed). */
32
+ password(message: string): Promise<string>;
33
+ /** A yes/no answer (with a default). */
34
+ confirm(message: string, opts: {
35
+ default: boolean;
36
+ }): Promise<boolean>;
37
+ /** Pick one of `choices` (each `{name, value}`). */
38
+ select<T extends string>(message: string, choices: {
39
+ name: string;
40
+ value: T;
41
+ }[]): Promise<T>;
42
+ }
43
+ /** Options for {@link installCI}. */
44
+ export interface InstallCIOptions {
45
+ /** The CI-provider seam (GitHub adapter in production; a stub in tests). */
46
+ ctx: CIProviderContext;
47
+ /** Snapshot mode: write to `.fake/` (never `.github/`), set NO real secret. */
48
+ fake?: boolean;
49
+ /** Non-interactive: load the config from this JSON file (skips the wizard). */
50
+ configFile?: string;
51
+ /** Write the gathered config as JSON to this path instead of generating. */
52
+ exportConfig?: string;
53
+ /** With `--export-config`: also gather + include the secret values. */
54
+ includeSecrets?: boolean;
55
+ /**
56
+ * Force the CLI install source (`registry` / `workspace`), overriding the
57
+ * package.json auto-detection in BOTH directions. When omitted, the source
58
+ * comes from the config file (if it set it) else the auto-detection below.
59
+ */
60
+ installSource?: InstallSource;
61
+ /**
62
+ * Force the advance-lifecycle matrix concurrency cap (`--max-parallel`),
63
+ * overriding the config file's value. When omitted, it comes from the config
64
+ * file (if set) else {@link DEFAULT_MAX_PARALLEL}. Must be a positive integer.
65
+ */
66
+ maxParallel?: number;
67
+ /** The interactive prompt seam (required unless `configFile` is given). */
68
+ prompts?: WizardPrompts;
69
+ /** The capability emitters to emit workflows for (none in this core task). */
70
+ capabilities?: CapabilityEmitter[];
71
+ /** Sink for human-facing progress lines (default: console.log). */
72
+ log?: (line: string) => void;
73
+ }
74
+ /** The result of an {@link installCI} run. */
75
+ export interface InstallCIResult {
76
+ /** What the run did. */
77
+ outcome: 'exported' | 'generated';
78
+ /** The resolved config that was used. */
79
+ config: ResolvedCIConfig;
80
+ /** Repo-relative paths written (the artifacts), empty on `exported`. */
81
+ written: string[];
82
+ /** The secret-orchestration outcomes (empty on `--fake` / `exported`). */
83
+ secrets: SecretSetResult[];
84
+ /** The Tier-1 branch-protection outcome (undefined on `exported`). */
85
+ branchProtection?: BranchProtectionStepResult;
86
+ }
87
+ /**
88
+ * Run `install-ci`. Resolves the config (config-file path or the wizard), then
89
+ * either exports it (`--export-config`) or generates the artifacts. In `--fake`
90
+ * mode it writes to `.fake/` and sets NO real secret; otherwise it orchestrates
91
+ * the required secrets through the provider seam. Returns a structured result.
92
+ */
93
+ export declare function installCI(options: InstallCIOptions): Promise<InstallCIResult>;
94
+ /**
95
+ * The interactive wizard: gather the auth mode, providers/models (models-json) or
96
+ * the default provider/model (auth-json), and the harness, into a
97
+ * {@link CIConfigFile}. Drives the {@link WizardPrompts} seam, so it runs
98
+ * deterministically in tests and the gathered shape exactly equals a config-file
99
+ * input — the equivalence the snapshot test pins. Mirrors whitesmith's prompt
100
+ * flow (provider type → key env var → models → defaults).
101
+ */
102
+ export declare function runWizard(prompts: WizardPrompts): Promise<CIConfigFile>;
103
+ /** Re-export the default harness for callers building a config programmatically. */
104
+ export { DEFAULT_HARNESS };
105
+ //# sourceMappingURL=install-ci.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-ci.d.ts","sourceRoot":"","sources":["../src/install-ci.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,EAGN,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,eAAe,EAOf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEN,KAAK,0BAA0B,EAC/B,MAAM,mCAAmC,CAAC;AAE3C;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC7B,qDAAqD;IACrD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnE,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,wCAAwC;IACxC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;QAAC,OAAO,EAAE,OAAO,CAAA;KAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrE,oDAAoD;IACpD,MAAM,CAAC,CAAC,SAAS,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAC,EAAE,GACjC,OAAO,CAAC,CAAC,CAAC,CAAC;CACd;AAED,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAChC,4EAA4E;IAC5E,GAAG,EAAE,iBAAiB,CAAC;IACvB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACnC,mEAAmE;IACnE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC/B,wBAAwB;IACxB,OAAO,EAAE,UAAU,GAAG,WAAW,CAAC;IAClC,yCAAyC;IACzC,MAAM,EAAE,gBAAgB,CAAC;IACzB,wEAAwE;IACxE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,0EAA0E;IAC1E,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;CAC9C;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC9B,OAAO,EAAE,gBAAgB,GACvB,OAAO,CAAC,eAAe,CAAC,CA8N1B;AAqCD;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAyC7E;AA6HD,oFAAoF;AACpF,OAAO,EAAC,eAAe,EAAC,CAAC"}