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,360 @@
1
+ import { run } from './git.js';
2
+ import { DEFAULT_GH_BIN } from './github.js';
3
+ import { GH_BINARY_MISSING, ghFailureDetail, ghFailureReason, } from './gh-failure.js';
4
+ import { brand } from './brand.js';
5
+ /**
6
+ * The single provider-native PROCESSING LOCK label (task `intake-processing-lock`,
7
+ * prd `issue-intake` US #10): a TRANSIENT concurrency mutex — added on start (the
8
+ * winner only), removed on finish — that serialises two concurrent `intake` runs on
9
+ * the SAME issue. It is namespaced under the brand (`dorfl:processing`) so it
10
+ * cannot collide with a user's own labels. It carries NO `work/` state — it is NOT a
11
+ * label STATE-MACHINE (ADR §12) and NOT a `work/`-file CAS; it is ONE transient lock
12
+ * label and nothing more.
13
+ */
14
+ export const PROCESSING_LOCK_LABEL = `${brand.base}:processing`;
15
+ /**
16
+ * The GitHub issue provider: reads an issue + thread, posts a comment, and (on a
17
+ * BOUNCE) atomically closes the issue by shelling out to the `gh` CLI (`gh issue
18
+ * view` / `gh issue comment` / `gh issue close --comment --reason` / `gh issue
19
+ * edit` for labels). It is the ONLY place in the issue-seam stack that invokes
20
+ * `gh` — the core never
21
+ * imports it (the same boundary `github.ts` keeps for the review-request seam).
22
+ *
23
+ * The READ methods THROW on a `gh` failure (a missing/unauthenticated `gh`, or an
24
+ * unknown issue): `intake` cannot decide without the issue, so a read failure is a
25
+ * hard, surfaced error (unlike the review-request `openRequest`, whose work is
26
+ * already safely pushed and so degrades). `postIssueComment` is advisory and
27
+ * DEGRADES (never throws), like the PR-comment poster.
28
+ */
29
+ export class GitHubIssueProvider {
30
+ name = 'github';
31
+ ghBin;
32
+ constructor(options = {}) {
33
+ this.ghBin = options.ghBin ?? DEFAULT_GH_BIN;
34
+ }
35
+ async getIssue(input) {
36
+ const result = this.runGh([
37
+ 'issue',
38
+ 'view',
39
+ String(input.issueNumber),
40
+ '--json',
41
+ 'number,title,body,author,state',
42
+ ], input.cwd, input.env);
43
+ const parsed = this.parseJson(result, `read issue #${input.issueNumber}`);
44
+ return normaliseIssue(input.issueNumber, parsed);
45
+ }
46
+ async listComments(input) {
47
+ const result = this.runGh(['issue', 'view', String(input.issueNumber), '--json', 'comments'], input.cwd, input.env);
48
+ const parsed = this.parseJson(result, `read comments on issue #${input.issueNumber}`);
49
+ return normaliseComments(parsed);
50
+ }
51
+ async postIssueComment(input) {
52
+ const result = this.runGh(['issue', 'comment', String(input.issueNumber), '--body', input.body], input.cwd, input.env);
53
+ // Advisory: a failed `gh` DEGRADES (surface the text), never throws — mirroring
54
+ // the PR-comment poster (ADR §6). Surface the REAL `gh` cause via
55
+ // `ghFailureReason` (or the missing-binary detail) — NOT a hard-coded
56
+ // "unavailable or unauthenticated" guess (the misattribution already removed
57
+ // from `mutateLabel`/`closeIssue`; this was the last contagion source).
58
+ if (result === undefined || result.status !== 0) {
59
+ const reason = ghFailureDetail(result);
60
+ return {
61
+ posted: false,
62
+ instruction: `could not post the comment on issue #${input.issueNumber}: ` +
63
+ `${reason}. The comment:\n${input.body}`,
64
+ };
65
+ }
66
+ return {
67
+ posted: true,
68
+ instruction: `Posted a comment on issue #${input.issueNumber}.`,
69
+ };
70
+ }
71
+ async closeIssue(input) {
72
+ // ATOMIC: post the closing comment AND set the reason AND close in ONE
73
+ // `gh issue close` call — NOT a separate post-then-close (which has a
74
+ // comment-posted-but-close-failed window: the dishonest open-with-bounce-comment
75
+ // state this task closes TO AVOID).
76
+ const args = ['issue', 'close', String(input.issueNumber)];
77
+ if (input.comment !== undefined && input.comment !== '') {
78
+ args.push('--comment', input.comment);
79
+ }
80
+ if (input.reason !== undefined) {
81
+ args.push('--reason', input.reason);
82
+ }
83
+ const result = this.runGh(args, input.cwd, input.env);
84
+ // DEGRADE (never throw) on a missing/unauthenticated `gh`. Surface the REAL
85
+ // `gh` stderr via `ghFailureReason` — NOT a hard-coded "unavailable or
86
+ // unauthenticated" guess (the misattribution bug already fixed in `mutateLabel`).
87
+ if (result === undefined) {
88
+ const reason = GH_BINARY_MISSING;
89
+ return {
90
+ closed: false,
91
+ reason,
92
+ instruction: `could not close issue #${input.issueNumber}: ${reason}` +
93
+ (input.comment ? `\nThe comment:\n${input.comment}` : ''),
94
+ };
95
+ }
96
+ if (result.status !== 0) {
97
+ const reason = ghFailureReason(result);
98
+ return {
99
+ closed: false,
100
+ reason,
101
+ instruction: `could not close issue #${input.issueNumber}: ${reason}` +
102
+ (input.comment ? `\nThe comment:\n${input.comment}` : ''),
103
+ };
104
+ }
105
+ return {
106
+ closed: true,
107
+ instruction: `Closed issue #${input.issueNumber}.`,
108
+ };
109
+ }
110
+ async getLabels(input) {
111
+ const result = this.runGh(['issue', 'view', String(input.issueNumber), '--json', 'labels'], input.cwd, input.env);
112
+ // GitHub HAS labels: a failed read is `failed`, NOT `unsupported`. Surfacing
113
+ // the REAL `gh` stderr (not a hard-coded "unauthenticated" guess) keeps the
114
+ // cause diagnosable; the caller FAILS rather than guessing the lock is free.
115
+ if (result === undefined) {
116
+ return {
117
+ outcome: 'failed',
118
+ supported: false,
119
+ labels: [],
120
+ reason: GH_BINARY_MISSING,
121
+ instruction: `could not read the labels on issue #${input.issueNumber}: ` +
122
+ GH_BINARY_MISSING,
123
+ };
124
+ }
125
+ if (result.status !== 0) {
126
+ const reason = ghFailureReason(result);
127
+ return {
128
+ outcome: 'failed',
129
+ supported: false,
130
+ labels: [],
131
+ reason,
132
+ instruction: `could not read the labels on issue #${input.issueNumber}: ${reason}`,
133
+ };
134
+ }
135
+ let labels;
136
+ try {
137
+ labels = normaliseLabels(JSON.parse(result.stdout));
138
+ }
139
+ catch {
140
+ return {
141
+ outcome: 'failed',
142
+ supported: false,
143
+ labels: [],
144
+ reason: 'could not parse the `gh` labels JSON.',
145
+ instruction: `could not parse the labels JSON for issue #${input.issueNumber}.`,
146
+ };
147
+ }
148
+ return {
149
+ outcome: 'ok',
150
+ supported: true,
151
+ labels,
152
+ instruction: `Read ${labels.length} label(s) on issue #${input.issueNumber}.`,
153
+ };
154
+ }
155
+ async addLabel(input) {
156
+ return this.mutateLabel('--add-label', input);
157
+ }
158
+ async removeLabel(input) {
159
+ return this.mutateLabel('--remove-label', input);
160
+ }
161
+ /**
162
+ * Shared `gh issue edit <N> --add-label|--remove-label <label>` runner for the
163
+ * label MUTATIONS (the lock acquire/release). NEVER throws — it reports a
164
+ * three-way {@link LabelResult} so the CALLER decides fail-vs-degrade (the lock
165
+ * acquire-site FAILS on `failed`; only a genuinely-unsupported provider degrades).
166
+ *
167
+ * On `--add-label` against a fresh repo where the lock label does NOT exist yet,
168
+ * `gh` exits non-zero with `'<label>' not found`. We CREATE the label (`gh label
169
+ * create`) and RETRY the add, so the lock works from the very first `intake` run
170
+ * (a fresh repo is lockable without a manual `gh label create`). Label creation
171
+ * is idempotent-enough for our purpose: a concurrent create loses harmlessly
172
+ * (the retry add then succeeds against the now-existing label).
173
+ */
174
+ mutateLabel(flag, input) {
175
+ const verb = flag === '--add-label' ? 'add' : 'remove';
176
+ let result = this.runGh(['issue', 'edit', String(input.issueNumber), flag, input.label], input.cwd, input.env);
177
+ // Fresh-repo case: the label has never been created, so the add fails with
178
+ // `'<label>' not found`. Create it (settled decision: create-on-first-use), then
179
+ // retry — so the lock is usable from the first run rather than a hard failure.
180
+ if (flag === '--add-label' &&
181
+ result !== undefined &&
182
+ result.status !== 0 &&
183
+ isLabelNotFound(result, input.label)) {
184
+ const created = this.createLabel(input.label, input.cwd, input.env);
185
+ if (created.ok) {
186
+ result = this.runGh(['issue', 'edit', String(input.issueNumber), flag, input.label], input.cwd, input.env);
187
+ }
188
+ else if (created.reason !== undefined) {
189
+ // The CREATE failed for a real reason (e.g. a token without label-create
190
+ // permission). Surface the CREATE's REAL cause — NOT the original
191
+ // `'<label>' not found` add failure, which is merely the fresh-repo SYMPTOM
192
+ // (the misattribution this fix removes). A missing-`gh` create degrades to
193
+ // the original `result` (handled below) like the rest of the seam.
194
+ return {
195
+ outcome: 'failed',
196
+ applied: false,
197
+ reason: created.reason,
198
+ instruction: `could not ${verb} the \`${input.label}\` label on issue ` +
199
+ `#${input.issueNumber}: ${created.reason}`,
200
+ };
201
+ }
202
+ }
203
+ if (result === undefined) {
204
+ return {
205
+ outcome: 'failed',
206
+ applied: false,
207
+ reason: GH_BINARY_MISSING,
208
+ instruction: `could not ${verb} the \`${input.label}\` label on issue ` +
209
+ `#${input.issueNumber}: ${GH_BINARY_MISSING}`,
210
+ };
211
+ }
212
+ if (result.status !== 0) {
213
+ const reason = ghFailureReason(result);
214
+ return {
215
+ outcome: 'failed',
216
+ applied: false,
217
+ reason,
218
+ // Surface the REAL `gh` stderr (e.g. `'dorfl:processing' not found`),
219
+ // never a hard-coded "unavailable or unauthenticated" guess — the cause must
220
+ // be diagnosable.
221
+ instruction: `could not ${verb} the \`${input.label}\` label on issue ` +
222
+ `#${input.issueNumber}: ${reason}`,
223
+ };
224
+ }
225
+ return {
226
+ outcome: 'applied',
227
+ applied: true,
228
+ instruction: `${verb === 'add' ? 'Added' : 'Removed'} the \`${input.label}\` label on issue #${input.issueNumber}.`,
229
+ };
230
+ }
231
+ /**
232
+ * Create the lock label (`gh label create <label>`) so a fresh repo is lockable
233
+ * from the first run. Returns a three-way result rather than a bare boolean so the
234
+ * caller can surface the CREATE's REAL cause (the original bug threw the stderr
235
+ * away, leaving `mutateLabel` to report the fresh-repo SYMPTOM `'<label>' not
236
+ * found` even on a permission-denied create):
237
+ *
238
+ * - **`{ok: true}`** — the label now exists (created here, or it already existed —
239
+ * `gh` reports `already exists`, which we treat as success).
240
+ * - **`{ok: false}`** (no `reason`) — `gh` is MISSING (binary absent): degrade to
241
+ * the caller's existing missing-`gh` handling (the never-hard-fail posture).
242
+ * - **`{ok: false, reason}`** — the create FAILED for a real reason (e.g. no
243
+ * permission): the caller surfaces `reason` (the create's REAL `gh` stderr).
244
+ *
245
+ * NEVER throws.
246
+ */
247
+ createLabel(label, cwd, env) {
248
+ const result = this.runGh([
249
+ 'label',
250
+ 'create',
251
+ label,
252
+ '--description',
253
+ 'dorfl intake processing lock (transient concurrency mutex)',
254
+ ], cwd, env);
255
+ // Missing `gh`: no reason to surface — degrade to the caller's missing-`gh`
256
+ // handling (keeps the never-hard-fail posture unchanged).
257
+ if (result === undefined) {
258
+ return { ok: false };
259
+ }
260
+ if (result.status === 0) {
261
+ return { ok: true };
262
+ }
263
+ // A concurrent run created it first — `gh` reports "already exists"; that is a
264
+ // success for our purpose (the label is present for the retry).
265
+ if (/already exists/i.test(result.stderr)) {
266
+ return { ok: true };
267
+ }
268
+ // A genuine create failure (e.g. no permission): surface its REAL `gh` stderr so
269
+ // `mutateLabel` reports the create's TRUE cause, not the fresh-repo `not found`.
270
+ return { ok: false, reason: ghFailureReason(result) };
271
+ }
272
+ /**
273
+ * Run `gh <args>` in `cwd`, returning the result, or `undefined` when `gh`
274
+ * cannot even be spawned (binary missing). Mirrors {@link GitHubProvider}'s
275
+ * `runGh` (the spawn-error catch keeps a missing `gh` a clean failure).
276
+ */
277
+ runGh(args, cwd, env) {
278
+ try {
279
+ return run(this.ghBin, args, cwd, { env });
280
+ }
281
+ catch {
282
+ return undefined; // gh binary not found / not executable
283
+ }
284
+ }
285
+ /** Parse a `gh --json` read, THROWING a clear error on any failure. */
286
+ parseJson(result, action) {
287
+ if (result === undefined) {
288
+ throw new Error(`failed to ${action}: ${GH_BINARY_MISSING}`);
289
+ }
290
+ if (result.status !== 0) {
291
+ throw new Error(`failed to ${action}: \`gh\` exited ${result.status}` +
292
+ (result.stderr.trim() ? ` — ${result.stderr.trim()}` : '') +
293
+ ' (is `gh` authenticated?).');
294
+ }
295
+ try {
296
+ return JSON.parse(result.stdout);
297
+ }
298
+ catch {
299
+ throw new Error(`failed to ${action}: could not parse \`gh\` JSON output.`);
300
+ }
301
+ }
302
+ }
303
+ /**
304
+ * True iff a failed `gh issue edit --add-label` failed because the label does not
305
+ * exist in the repo yet (`gh` prints `'<label>' not found`). On a fresh repo the
306
+ * lock label has never been created, so this is the create-on-first-use trigger —
307
+ * distinct from a real auth/permission failure (which must NOT be papered over).
308
+ */
309
+ function isLabelNotFound(result, label) {
310
+ const stderr = result.stderr.toLowerCase();
311
+ return stderr.includes('not found') && stderr.includes(label.toLowerCase());
312
+ }
313
+ /** Map a `gh issue view --json …` object onto the {@link Issue} shape. */
314
+ function normaliseIssue(issueNumber, parsed) {
315
+ const obj = (parsed ?? {});
316
+ const author = obj.author;
317
+ return {
318
+ number: typeof obj.number === 'number' ? obj.number : issueNumber,
319
+ title: typeof obj.title === 'string' ? obj.title : '',
320
+ body: typeof obj.body === 'string' ? obj.body : '',
321
+ author: author?.login,
322
+ state: typeof obj.state === 'string'
323
+ ? obj.state.toLowerCase()
324
+ : undefined,
325
+ };
326
+ }
327
+ /** Map a `gh issue view --json labels` object onto the bare label-name list. */
328
+ function normaliseLabels(parsed) {
329
+ const obj = (parsed ?? {});
330
+ const labels = Array.isArray(obj.labels) ? obj.labels : [];
331
+ return labels
332
+ .map((raw) => {
333
+ const l = (raw ?? {});
334
+ return typeof l.name === 'string' ? l.name : '';
335
+ })
336
+ .filter((name) => name !== '');
337
+ }
338
+ /** Map a `gh issue view --json comments` object onto the comment list. */
339
+ function normaliseComments(parsed) {
340
+ const obj = (parsed ?? {});
341
+ const comments = Array.isArray(obj.comments) ? obj.comments : [];
342
+ return comments.map((raw) => {
343
+ const c = (raw ?? {});
344
+ const author = c.author;
345
+ // `gh` reports the comment id as a number or a string depending on the field;
346
+ // normalise to a string (the triage compares ids as opaque tokens, never as
347
+ // numbers). ADDITIVE — absent on a provider that does not report one.
348
+ const id = typeof c.id === 'string'
349
+ ? c.id
350
+ : typeof c.id === 'number'
351
+ ? String(c.id)
352
+ : undefined;
353
+ return {
354
+ ...(id !== undefined ? { id } : {}),
355
+ author: author?.login,
356
+ body: typeof c.body === 'string' ? c.body : '',
357
+ };
358
+ });
359
+ }
360
+ //# sourceMappingURL=issue-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-provider.js","sourceRoot":"","sources":["../src/issue-provider.ts"],"names":[],"mappings":"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"}