agentplane 0.3.15 → 0.3.17

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 (522) hide show
  1. package/assets/policy/incidents.md +7 -0
  2. package/bin/agentplane.js +1 -1
  3. package/bin/framework-dev-contract.js +1 -0
  4. package/dist/.build-manifest.json +641 -351
  5. package/dist/backends/task-backend/load.d.ts.map +1 -1
  6. package/dist/backends/task-backend/load.js +32 -19
  7. package/dist/backends/task-backend/local-backend-doc.d.ts.map +1 -1
  8. package/dist/backends/task-backend/local-backend-doc.js +1 -1
  9. package/dist/backends/task-backend/redmine/backend-runtime.d.ts +5 -0
  10. package/dist/backends/task-backend/redmine/backend-runtime.d.ts.map +1 -0
  11. package/dist/backends/task-backend/redmine/backend-runtime.js +4 -0
  12. package/dist/backends/task-backend/redmine/backend-sync/context.d.ts +44 -0
  13. package/dist/backends/task-backend/redmine/backend-sync/context.d.ts.map +1 -0
  14. package/dist/backends/task-backend/redmine/backend-sync/context.js +8 -0
  15. package/dist/backends/task-backend/redmine/backend-sync/ids.d.ts +6 -0
  16. package/dist/backends/task-backend/redmine/backend-sync/ids.d.ts.map +1 -0
  17. package/dist/backends/task-backend/redmine/backend-sync/ids.js +21 -0
  18. package/dist/backends/task-backend/redmine/backend-sync/migration.d.ts +4 -0
  19. package/dist/backends/task-backend/redmine/backend-sync/migration.d.ts.map +1 -0
  20. package/dist/backends/task-backend/redmine/backend-sync/migration.js +87 -0
  21. package/dist/backends/task-backend/redmine/backend-sync/status.d.ts +10 -0
  22. package/dist/backends/task-backend/redmine/backend-sync/status.d.ts.map +1 -0
  23. package/dist/backends/task-backend/redmine/backend-sync/status.js +78 -0
  24. package/dist/backends/task-backend/redmine/backend-sync/sync.d.ts +12 -0
  25. package/dist/backends/task-backend/redmine/backend-sync/sync.d.ts.map +1 -0
  26. package/dist/backends/task-backend/redmine/backend-sync/sync.js +82 -0
  27. package/dist/backends/task-backend/redmine/backend-sync/write.d.ts +5 -0
  28. package/dist/backends/task-backend/redmine/backend-sync/write.d.ts.map +1 -0
  29. package/dist/backends/task-backend/redmine/backend-sync/write.js +100 -0
  30. package/dist/backends/task-backend/redmine/backend-sync.d.ts +6 -66
  31. package/dist/backends/task-backend/redmine/backend-sync.d.ts.map +1 -1
  32. package/dist/backends/task-backend/redmine/backend-sync.js +5 -367
  33. package/dist/backends/task-backend/redmine/mapping.js +1 -1
  34. package/dist/backends/task-backend/redmine/runtime-context.d.ts +98 -0
  35. package/dist/backends/task-backend/redmine/runtime-context.d.ts.map +1 -0
  36. package/dist/backends/task-backend/redmine/runtime-context.js +57 -0
  37. package/dist/backends/task-backend/redmine/runtime-methods.d.ts +33 -0
  38. package/dist/backends/task-backend/redmine/runtime-methods.d.ts.map +1 -0
  39. package/dist/backends/task-backend/redmine/runtime-methods.js +86 -0
  40. package/dist/backends/task-backend/redmine/runtime-operations.d.ts +19 -0
  41. package/dist/backends/task-backend/redmine/runtime-operations.d.ts.map +1 -0
  42. package/dist/backends/task-backend/redmine/runtime-operations.js +83 -0
  43. package/dist/backends/task-backend/redmine/runtime-state.d.ts +10 -0
  44. package/dist/backends/task-backend/redmine/runtime-state.d.ts.map +1 -0
  45. package/dist/backends/task-backend/redmine/runtime-state.js +45 -0
  46. package/dist/backends/task-backend/redmine-backend.d.ts +2 -33
  47. package/dist/backends/task-backend/redmine-backend.d.ts.map +1 -1
  48. package/dist/backends/task-backend/redmine-backend.js +26 -241
  49. package/dist/backends/task-backend/shared/constants.d.ts +1 -1
  50. package/dist/backends/task-backend/shared/constants.d.ts.map +1 -1
  51. package/dist/backends/task-backend/shared/constants.js +1 -1
  52. package/dist/backends/task-backend/shared/errors.d.ts +12 -0
  53. package/dist/backends/task-backend/shared/errors.d.ts.map +1 -1
  54. package/dist/backends/task-backend/shared/errors.js +12 -0
  55. package/dist/backends/task-index.d.ts +0 -4
  56. package/dist/backends/task-index.d.ts.map +1 -1
  57. package/dist/backends/task-index.js +0 -33
  58. package/dist/cli/archive.d.ts.map +1 -1
  59. package/dist/cli/archive.js +3 -5
  60. package/dist/cli/error-map.d.ts +7 -1
  61. package/dist/cli/error-map.d.ts.map +1 -1
  62. package/dist/cli/error-map.js +231 -19
  63. package/dist/cli/exit-codes.d.ts +14 -2
  64. package/dist/cli/exit-codes.d.ts.map +1 -1
  65. package/dist/cli/exit-codes.js +25 -11
  66. package/dist/cli/http.d.ts.map +1 -1
  67. package/dist/cli/http.js +34 -15
  68. package/dist/cli/output.d.ts +3 -0
  69. package/dist/cli/output.d.ts.map +1 -1
  70. package/dist/cli/output.js +25 -14
  71. package/dist/cli/prompts.d.ts.map +1 -1
  72. package/dist/cli/prompts.js +44 -0
  73. package/dist/cli/run-cli/command-catalog/core.d.ts.map +1 -1
  74. package/dist/cli/run-cli/command-catalog/core.js +34 -76
  75. package/dist/cli/run-cli/command-catalog/lifecycle.d.ts.map +1 -1
  76. package/dist/cli/run-cli/command-catalog/lifecycle.js +23 -26
  77. package/dist/cli/run-cli/command-catalog/project.d.ts.map +1 -1
  78. package/dist/cli/run-cli/command-catalog/project.js +39 -54
  79. package/dist/cli/run-cli/command-catalog/shared.d.ts +15 -3
  80. package/dist/cli/run-cli/command-catalog/shared.d.ts.map +1 -1
  81. package/dist/cli/run-cli/command-catalog/shared.js +19 -6
  82. package/dist/cli/run-cli/command-catalog/task.d.ts.map +1 -1
  83. package/dist/cli/run-cli/command-catalog/task.js +63 -57
  84. package/dist/cli/run-cli/command-loaders.d.ts +170 -0
  85. package/dist/cli/run-cli/command-loaders.d.ts.map +1 -0
  86. package/dist/cli/run-cli/command-loaders.js +128 -0
  87. package/dist/cli/run-cli/commands/init/model.d.ts +42 -0
  88. package/dist/cli/run-cli/commands/init/model.d.ts.map +1 -0
  89. package/dist/cli/run-cli/commands/init/orchestrate.d.ts +9 -0
  90. package/dist/cli/run-cli/commands/init/orchestrate.d.ts.map +1 -0
  91. package/dist/cli/run-cli/commands/init/orchestrate.js +321 -0
  92. package/dist/cli/run-cli/commands/init/parsers.d.ts +5 -0
  93. package/dist/cli/run-cli/commands/init/parsers.d.ts.map +1 -0
  94. package/dist/cli/run-cli/commands/init/parsers.js +36 -0
  95. package/dist/cli/run-cli/commands/init/presets.d.ts +15 -0
  96. package/dist/cli/run-cli/commands/init/presets.d.ts.map +1 -0
  97. package/dist/cli/run-cli/commands/init/presets.js +63 -0
  98. package/dist/cli/run-cli/commands/init/spec.d.ts +5 -0
  99. package/dist/cli/run-cli/commands/init/spec.d.ts.map +1 -0
  100. package/dist/cli/run-cli/commands/init/spec.js +212 -0
  101. package/dist/cli/run-cli/commands/init/write-config.d.ts +1 -0
  102. package/dist/cli/run-cli/commands/init/write-config.d.ts.map +1 -1
  103. package/dist/cli/run-cli/commands/init/write-config.js +1 -0
  104. package/dist/cli/run-cli/commands/init/write-gitignore.js +1 -1
  105. package/dist/cli/run-cli/commands/init.d.ts +1 -28
  106. package/dist/cli/run-cli/commands/init.d.ts.map +1 -1
  107. package/dist/cli/run-cli/commands/init.js +1 -596
  108. package/dist/cli/run-cli/update-warning.d.ts +1 -0
  109. package/dist/cli/run-cli/update-warning.d.ts.map +1 -1
  110. package/dist/cli/run-cli/update-warning.js +10 -2
  111. package/dist/cli/run-cli.d.ts.map +1 -1
  112. package/dist/cli/run-cli.js +1 -2
  113. package/dist/cli/spec/errors.d.ts +18 -1
  114. package/dist/cli/spec/errors.d.ts.map +1 -1
  115. package/dist/cli/spec/errors.js +27 -4
  116. package/dist/cli/spec/parse.d.ts.map +1 -1
  117. package/dist/cli/spec/parse.js +8 -1
  118. package/dist/commands/backend.d.ts.map +1 -1
  119. package/dist/commands/backend.js +66 -118
  120. package/dist/commands/block.spec.js +1 -1
  121. package/dist/commands/branch/work-start.d.ts.map +1 -1
  122. package/dist/commands/branch/work-start.direct.d.ts +13 -0
  123. package/dist/commands/branch/work-start.direct.d.ts.map +1 -0
  124. package/dist/commands/branch/work-start.direct.js +75 -0
  125. package/dist/commands/branch/work-start.git.d.ts +3 -0
  126. package/dist/commands/branch/work-start.git.d.ts.map +1 -0
  127. package/dist/commands/branch/work-start.git.js +19 -0
  128. package/dist/commands/branch/work-start.hook-shim.d.ts +2 -0
  129. package/dist/commands/branch/work-start.hook-shim.d.ts.map +1 -0
  130. package/dist/commands/branch/work-start.hook-shim.js +38 -0
  131. package/dist/commands/branch/work-start.js +6 -235
  132. package/dist/commands/branch/work-start.materialize.d.ts +16 -0
  133. package/dist/commands/branch/work-start.materialize.d.ts.map +1 -0
  134. package/dist/commands/branch/work-start.materialize.js +110 -0
  135. package/dist/commands/commit.spec.js +1 -1
  136. package/dist/commands/doctor/branch-pr.js +1 -1
  137. package/dist/commands/doctor/fixes.d.ts +0 -5
  138. package/dist/commands/doctor/fixes.d.ts.map +1 -1
  139. package/dist/commands/doctor/fixes.js +1 -71
  140. package/dist/commands/doctor/runtime.d.ts.map +1 -1
  141. package/dist/commands/doctor/runtime.js +2 -2
  142. package/dist/commands/doctor/workflow.d.ts.map +1 -1
  143. package/dist/commands/doctor/workflow.js +2 -23
  144. package/dist/commands/doctor/workspace.js +1 -1
  145. package/dist/commands/doctor.run.d.ts.map +1 -1
  146. package/dist/commands/doctor.run.js +1 -3
  147. package/dist/commands/finish.spec.js +1 -1
  148. package/dist/commands/guard/commit.command.js +1 -1
  149. package/dist/commands/guard/impl/clean.d.ts +6 -0
  150. package/dist/commands/guard/impl/clean.d.ts.map +1 -0
  151. package/dist/commands/guard/impl/clean.js +29 -0
  152. package/dist/commands/guard/impl/close-dirt.d.ts +6 -0
  153. package/dist/commands/guard/impl/close-dirt.d.ts.map +1 -0
  154. package/dist/commands/guard/impl/close-dirt.js +56 -0
  155. package/dist/commands/guard/impl/commands.d.ts +4 -36
  156. package/dist/commands/guard/impl/commands.d.ts.map +1 -1
  157. package/dist/commands/guard/impl/commands.js +4 -549
  158. package/dist/commands/guard/impl/comment-commit.js +1 -1
  159. package/dist/commands/guard/impl/commit-diagnostics.d.ts +4 -0
  160. package/dist/commands/guard/impl/commit-diagnostics.d.ts.map +1 -0
  161. package/dist/commands/guard/impl/commit-diagnostics.js +150 -0
  162. package/dist/commands/guard/impl/commit.d.ts +25 -0
  163. package/dist/commands/guard/impl/commit.d.ts.map +1 -0
  164. package/dist/commands/guard/impl/commit.js +366 -0
  165. package/dist/commands/guard/impl/guard-commit.d.ts +3 -0
  166. package/dist/commands/guard/impl/guard-commit.d.ts.map +1 -0
  167. package/dist/commands/guard/impl/guard-commit.js +21 -0
  168. package/dist/commands/guard/impl/policy.d.ts +1 -0
  169. package/dist/commands/guard/impl/policy.d.ts.map +1 -1
  170. package/dist/commands/guard/impl/policy.js +9 -2
  171. package/dist/commands/guard/impl/suggest.d.ts +6 -0
  172. package/dist/commands/guard/impl/suggest.d.ts.map +1 -0
  173. package/dist/commands/guard/impl/suggest.js +33 -0
  174. package/dist/commands/hooks/index.d.ts +4 -17
  175. package/dist/commands/hooks/index.d.ts.map +1 -1
  176. package/dist/commands/hooks/index.js +4 -415
  177. package/dist/commands/hooks/install.d.ts +11 -0
  178. package/dist/commands/hooks/install.d.ts.map +1 -0
  179. package/dist/commands/hooks/install.js +136 -0
  180. package/dist/commands/hooks/run.commit-msg.d.ts +3 -0
  181. package/dist/commands/hooks/run.commit-msg.d.ts.map +1 -0
  182. package/dist/commands/hooks/run.commit-msg.js +67 -0
  183. package/dist/commands/hooks/run.d.ts +9 -0
  184. package/dist/commands/hooks/run.d.ts.map +1 -0
  185. package/dist/commands/hooks/run.js +45 -0
  186. package/dist/commands/hooks/run.post-merge.d.ts +3 -0
  187. package/dist/commands/hooks/run.post-merge.d.ts.map +1 -0
  188. package/dist/commands/hooks/run.post-merge.js +44 -0
  189. package/dist/commands/hooks/run.pre-commit.d.ts +3 -0
  190. package/dist/commands/hooks/run.pre-commit.d.ts.map +1 -0
  191. package/dist/commands/hooks/run.pre-commit.js +48 -0
  192. package/dist/commands/hooks/run.pre-push.d.ts +6 -0
  193. package/dist/commands/hooks/run.pre-push.d.ts.map +1 -0
  194. package/dist/commands/hooks/run.pre-push.js +88 -0
  195. package/dist/commands/hooks/shared.d.ts +7 -0
  196. package/dist/commands/hooks/shared.d.ts.map +1 -0
  197. package/dist/commands/hooks/shared.js +41 -0
  198. package/dist/commands/pr/integrate/cmd.js +1 -1
  199. package/dist/commands/pr/integrate/internal/prepare.js +1 -1
  200. package/dist/commands/pr/internal/auto-commit.d.ts.map +1 -1
  201. package/dist/commands/pr/internal/auto-commit.js +2 -5
  202. package/dist/commands/pr/internal/gh-api.d.ts.map +1 -1
  203. package/dist/commands/pr/internal/gh-api.js +15 -8
  204. package/dist/commands/pr/internal/sync-branch.d.ts +0 -1
  205. package/dist/commands/pr/internal/sync-branch.d.ts.map +1 -1
  206. package/dist/commands/pr/internal/sync-branch.js +2 -5
  207. package/dist/commands/pr/internal/sync.d.ts.map +1 -1
  208. package/dist/commands/pr/internal/sync.js +30 -0
  209. package/dist/commands/pr/open.d.ts.map +1 -1
  210. package/dist/commands/pr/open.js +98 -8
  211. package/dist/commands/recipes/impl/index.d.ts.map +1 -1
  212. package/dist/commands/recipes/impl/index.js +13 -3
  213. package/dist/commands/recipes/impl/resolver.js +1 -1
  214. package/dist/commands/recipes/impl/version.js +1 -1
  215. package/dist/commands/release/apply.command.js +1 -1
  216. package/dist/commands/release/apply.mutation.d.ts +1 -0
  217. package/dist/commands/release/apply.mutation.d.ts.map +1 -1
  218. package/dist/commands/release/apply.mutation.js +4 -0
  219. package/dist/commands/release/apply.pipeline/finalize.d.ts +21 -0
  220. package/dist/commands/release/apply.pipeline/finalize.d.ts.map +1 -0
  221. package/dist/commands/release/apply.pipeline/finalize.js +80 -0
  222. package/dist/commands/release/apply.pipeline/mutation.d.ts +18 -0
  223. package/dist/commands/release/apply.pipeline/mutation.d.ts.map +1 -0
  224. package/dist/commands/release/apply.pipeline/mutation.js +78 -0
  225. package/dist/commands/release/apply.pipeline/preflight.d.ts +25 -0
  226. package/dist/commands/release/apply.pipeline/preflight.d.ts.map +1 -0
  227. package/dist/commands/release/apply.pipeline/preflight.js +69 -0
  228. package/dist/commands/release/apply.pipeline/shared.d.ts +2 -0
  229. package/dist/commands/release/apply.pipeline/shared.d.ts.map +1 -0
  230. package/dist/commands/release/apply.pipeline/shared.js +5 -0
  231. package/dist/commands/release/apply.pipeline/state.d.ts +25 -0
  232. package/dist/commands/release/apply.pipeline/state.d.ts.map +1 -0
  233. package/dist/commands/release/apply.pipeline/state.js +129 -0
  234. package/dist/commands/release/apply.pipeline.d.ts +1 -1
  235. package/dist/commands/release/apply.pipeline.d.ts.map +1 -1
  236. package/dist/commands/release/apply.pipeline.js +4 -347
  237. package/dist/commands/release/apply.preflight.d.ts +9 -6
  238. package/dist/commands/release/apply.preflight.d.ts.map +1 -1
  239. package/dist/commands/release/apply.preflight.js +71 -51
  240. package/dist/commands/runtime.command.d.ts +2 -2
  241. package/dist/commands/runtime.command.d.ts.map +1 -1
  242. package/dist/commands/runtime.command.js +2 -2
  243. package/dist/commands/scenario/impl/commands.d.ts.map +1 -1
  244. package/dist/commands/scenario/impl/commands.js +52 -39
  245. package/dist/commands/scenario/impl/report.d.ts.map +1 -1
  246. package/dist/commands/scenario/impl/report.js +4 -7
  247. package/dist/commands/shared/allow-prefix-policy.d.ts.map +1 -0
  248. package/dist/{shared → commands/shared}/allow-prefix-policy.js +1 -1
  249. package/dist/commands/shared/comment-format.d.ts.map +1 -0
  250. package/dist/commands/shared/diagnostics.d.ts.map +1 -0
  251. package/dist/commands/shared/git-context.d.ts +1 -27
  252. package/dist/commands/shared/git-context.d.ts.map +1 -1
  253. package/dist/commands/shared/git-context.js +1 -156
  254. package/dist/commands/shared/git-diff.d.ts +1 -10
  255. package/dist/commands/shared/git-diff.d.ts.map +1 -1
  256. package/dist/commands/shared/git-diff.js +1 -49
  257. package/dist/commands/shared/git-ops.d.ts +1 -14
  258. package/dist/commands/shared/git-ops.d.ts.map +1 -1
  259. package/dist/commands/shared/git-ops.js +20 -150
  260. package/dist/commands/shared/git-worktree.d.ts +1 -9
  261. package/dist/commands/shared/git-worktree.d.ts.map +1 -1
  262. package/dist/commands/shared/git-worktree.js +1 -68
  263. package/dist/commands/shared/git.d.ts +1 -3
  264. package/dist/commands/shared/git.d.ts.map +1 -1
  265. package/dist/commands/shared/git.js +1 -14
  266. package/dist/commands/shared/policy-deny.d.ts +1 -1
  267. package/dist/commands/shared/reconcile-check.js +1 -1
  268. package/dist/commands/shared/task-backend.d.ts.map +1 -1
  269. package/dist/commands/shared/task-backend.js +24 -2
  270. package/dist/commands/shared/task-store/intents.d.ts.map +1 -1
  271. package/dist/commands/shared/task-store/intents.js +1 -1
  272. package/dist/commands/start.spec.js +1 -1
  273. package/dist/commands/task/close-tail-state.d.ts +7 -0
  274. package/dist/commands/task/close-tail-state.d.ts.map +1 -0
  275. package/dist/commands/task/close-tail-state.js +18 -0
  276. package/dist/commands/task/derive.js +1 -1
  277. package/dist/commands/task/finish-close.d.ts +22 -0
  278. package/dist/commands/task/finish-close.d.ts.map +1 -0
  279. package/dist/commands/task/finish-close.js +119 -0
  280. package/dist/commands/task/finish-command.d.ts +3 -0
  281. package/dist/commands/task/finish-command.d.ts.map +1 -0
  282. package/dist/commands/task/finish-command.js +56 -0
  283. package/dist/commands/task/finish-execute.d.ts +8 -0
  284. package/dist/commands/task/finish-execute.d.ts.map +1 -0
  285. package/dist/commands/task/finish-execute.js +272 -0
  286. package/dist/commands/task/finish-findings.d.ts +20 -0
  287. package/dist/commands/task/finish-findings.d.ts.map +1 -0
  288. package/dist/commands/task/finish-findings.js +27 -0
  289. package/dist/commands/task/finish-plan.d.ts +7 -0
  290. package/dist/commands/task/finish-plan.d.ts.map +1 -0
  291. package/dist/commands/task/finish-plan.js +157 -0
  292. package/dist/commands/task/finish-types.d.ts +69 -0
  293. package/dist/commands/task/finish-types.d.ts.map +1 -0
  294. package/dist/commands/task/finish.d.ts +1 -42
  295. package/dist/commands/task/finish.d.ts.map +1 -1
  296. package/dist/commands/task/finish.js +1 -527
  297. package/dist/commands/task/hosted-close-pr.command.d.ts +2 -7
  298. package/dist/commands/task/hosted-close-pr.command.d.ts.map +1 -1
  299. package/dist/commands/task/hosted-close-pr.command.js +9 -348
  300. package/dist/commands/task/hosted-close-pr.execute.d.ts +3 -0
  301. package/dist/commands/task/hosted-close-pr.execute.d.ts.map +1 -0
  302. package/dist/commands/task/hosted-close-pr.execute.js +135 -0
  303. package/dist/commands/task/hosted-close-pr.postcheck.d.ts +3 -0
  304. package/dist/commands/task/hosted-close-pr.postcheck.d.ts.map +1 -0
  305. package/dist/commands/task/hosted-close-pr.postcheck.js +13 -0
  306. package/dist/commands/task/hosted-close-pr.precheck.d.ts +4 -0
  307. package/dist/commands/task/hosted-close-pr.precheck.d.ts.map +1 -0
  308. package/dist/commands/task/hosted-close-pr.precheck.js +288 -0
  309. package/dist/commands/task/hosted-close-pr.report.d.ts +4 -0
  310. package/dist/commands/task/hosted-close-pr.report.d.ts.map +1 -0
  311. package/dist/commands/task/hosted-close-pr.report.js +42 -0
  312. package/dist/commands/task/hosted-close-pr.types.d.ts +75 -0
  313. package/dist/commands/task/hosted-close-pr.types.d.ts.map +1 -0
  314. package/dist/commands/task/hosted-merge-sync/builders.d.ts +35 -0
  315. package/dist/commands/task/hosted-merge-sync/builders.d.ts.map +1 -0
  316. package/dist/commands/task/hosted-merge-sync/builders.js +148 -0
  317. package/dist/commands/task/hosted-merge-sync/github.d.ts +10 -0
  318. package/dist/commands/task/hosted-merge-sync/github.d.ts.map +1 -0
  319. package/dist/commands/task/hosted-merge-sync/github.js +113 -0
  320. package/dist/commands/task/hosted-merge-sync/local-branch.d.ts +12 -0
  321. package/dist/commands/task/hosted-merge-sync/local-branch.d.ts.map +1 -0
  322. package/dist/commands/task/hosted-merge-sync/local-branch.js +143 -0
  323. package/dist/commands/task/hosted-merge-sync/model.d.ts +47 -0
  324. package/dist/commands/task/hosted-merge-sync/model.d.ts.map +1 -0
  325. package/dist/commands/task/hosted-merge-sync/pr-meta.d.ts +12 -0
  326. package/dist/commands/task/hosted-merge-sync/pr-meta.d.ts.map +1 -0
  327. package/dist/commands/task/hosted-merge-sync/pr-meta.js +26 -0
  328. package/dist/commands/task/hosted-merge-sync.d.ts +5 -63
  329. package/dist/commands/task/hosted-merge-sync.d.ts.map +1 -1
  330. package/dist/commands/task/hosted-merge-sync.js +10 -444
  331. package/dist/commands/task/new.js +1 -1
  332. package/dist/commands/task/set-status.command.js +1 -1
  333. package/dist/commands/task/shared/direct-work-lock.d.ts.map +1 -0
  334. package/dist/commands/task/shared/git-log.d.ts.map +1 -0
  335. package/dist/commands/task/shared/transitions.d.ts +1 -1
  336. package/dist/commands/task/shared/transitions.d.ts.map +1 -1
  337. package/dist/commands/task/shared/transitions.js +4 -6
  338. package/dist/commands/upgrade/apply.js +1 -1
  339. package/dist/commands/upgrade/materialize.d.ts.map +1 -1
  340. package/dist/commands/upgrade/materialize.js +0 -7
  341. package/dist/commands/upgrade/source.d.ts +0 -1
  342. package/dist/commands/upgrade/source.d.ts.map +1 -1
  343. package/dist/commands/upgrade/source.js +1 -9
  344. package/dist/commands/workflow-playbook.command.d.ts.map +1 -1
  345. package/dist/commands/workflow-playbook.command.js +8 -7
  346. package/dist/harness/hooks-lifecycle.d.ts.map +1 -1
  347. package/dist/harness/hooks-lifecycle.js +11 -7
  348. package/dist/meta/release.d.ts.map +1 -1
  349. package/dist/meta/release.js +8 -4
  350. package/dist/policy/engine.d.ts +1 -1
  351. package/dist/policy/evaluate.d.ts +1 -1
  352. package/dist/policy/{types.d.ts → model.d.ts} +1 -1
  353. package/dist/policy/{types.d.ts.map → model.d.ts.map} +1 -1
  354. package/dist/policy/result.d.ts +1 -1
  355. package/dist/policy/rules/allowlist.d.ts +1 -1
  356. package/dist/policy/rules/branch-pr-base.d.ts +1 -1
  357. package/dist/policy/rules/clean-tree.d.ts +1 -1
  358. package/dist/policy/rules/commit-subject.d.ts +1 -1
  359. package/dist/policy/rules/protected-paths.d.ts +1 -1
  360. package/dist/runner/adapters/base.d.ts +42 -0
  361. package/dist/runner/adapters/base.d.ts.map +1 -0
  362. package/dist/runner/adapters/base.js +107 -0
  363. package/dist/runner/adapters/codex-preparation.d.ts +7 -0
  364. package/dist/runner/adapters/codex-preparation.d.ts.map +1 -0
  365. package/dist/runner/adapters/codex-preparation.js +86 -0
  366. package/dist/runner/adapters/codex.d.ts.map +1 -1
  367. package/dist/runner/adapters/codex.js +30 -175
  368. package/dist/runner/adapters/custom-preparation.d.ts +9 -0
  369. package/dist/runner/adapters/custom-preparation.d.ts.map +1 -0
  370. package/dist/runner/adapters/custom-preparation.js +191 -0
  371. package/dist/runner/adapters/custom.d.ts.map +1 -1
  372. package/dist/runner/adapters/custom.js +26 -279
  373. package/dist/runner/context/base-prompts.d.ts.map +1 -1
  374. package/dist/runner/context/base-prompts.js +4 -0
  375. package/dist/runner/context/project-skill-prompt-blocks.d.ts +5 -0
  376. package/dist/runner/context/project-skill-prompt-blocks.d.ts.map +1 -0
  377. package/dist/runner/context/project-skill-prompt-blocks.js +57 -0
  378. package/dist/runner/process-supervision/run.d.ts +30 -0
  379. package/dist/runner/process-supervision/run.d.ts.map +1 -0
  380. package/dist/runner/process-supervision/run.js +351 -0
  381. package/dist/runner/process-supervision/signals.d.ts +16 -0
  382. package/dist/runner/process-supervision/signals.d.ts.map +1 -0
  383. package/dist/runner/process-supervision/signals.js +85 -0
  384. package/dist/runner/process-supervision/state.d.ts +10 -0
  385. package/dist/runner/process-supervision/state.d.ts.map +1 -0
  386. package/dist/runner/process-supervision/state.js +42 -0
  387. package/dist/runner/process-supervision/streams.d.ts +6 -0
  388. package/dist/runner/process-supervision/streams.d.ts.map +1 -0
  389. package/dist/runner/process-supervision/streams.js +23 -0
  390. package/dist/runner/process-supervision.d.ts +5 -47
  391. package/dist/runner/process-supervision.d.ts.map +1 -1
  392. package/dist/runner/process-supervision.js +3 -490
  393. package/dist/runner/usecases/scenario-materialize-task.js +1 -1
  394. package/dist/runtime/approvals/index.d.ts +1 -1
  395. package/dist/runtime/approvals/{types.d.ts → model.d.ts} +1 -1
  396. package/dist/runtime/approvals/{types.d.ts.map → model.d.ts.map} +1 -1
  397. package/dist/runtime/approvals/runtime.d.ts +1 -1
  398. package/dist/runtime/behavior/index.d.ts +1 -1
  399. package/dist/runtime/behavior/{types.d.ts → model.d.ts} +1 -1
  400. package/dist/runtime/behavior/{types.d.ts.map → model.d.ts.map} +1 -1
  401. package/dist/runtime/behavior/model.js +1 -0
  402. package/dist/runtime/behavior/resolve.d.ts +1 -1
  403. package/dist/runtime/capabilities/backend.d.ts +1 -1
  404. package/dist/runtime/capabilities/index.d.ts +1 -1
  405. package/dist/runtime/capabilities/{types.d.ts → model.d.ts} +1 -1
  406. package/dist/runtime/capabilities/{types.d.ts.map → model.d.ts.map} +1 -1
  407. package/dist/runtime/capabilities/model.js +1 -0
  408. package/dist/runtime/capabilities/recipe.d.ts +1 -1
  409. package/dist/runtime/capabilities/registry.d.ts +1 -1
  410. package/dist/runtime/capabilities/runner.d.ts +1 -1
  411. package/dist/runtime/execution-context.d.ts.map +1 -1
  412. package/dist/runtime/execution-context.js +16 -0
  413. package/dist/runtime/execution-profile/index.d.ts +1 -1
  414. package/dist/runtime/execution-profile/{types.d.ts → model.d.ts} +1 -1
  415. package/dist/runtime/execution-profile/{types.d.ts.map → model.d.ts.map} +1 -1
  416. package/dist/runtime/execution-profile/model.js +1 -0
  417. package/dist/runtime/execution-profile/resolve.d.ts +1 -1
  418. package/dist/runtime/explain/index.d.ts +1 -1
  419. package/dist/runtime/explain/{types.d.ts → model.d.ts} +1 -1
  420. package/dist/runtime/explain/{types.d.ts.map → model.d.ts.map} +1 -1
  421. package/dist/runtime/explain/model.js +1 -0
  422. package/dist/runtime/explain/resolve.d.ts +1 -1
  423. package/dist/runtime/protocol/index.d.ts +1 -1
  424. package/dist/runtime/protocol/index.js +1 -1
  425. package/dist/runtime/protocol/{types.d.ts → model.d.ts} +1 -1
  426. package/dist/runtime/protocol/{types.d.ts.map → model.d.ts.map} +1 -1
  427. package/dist/runtime/protocol/resolve.d.ts +1 -1
  428. package/dist/runtime/protocol/resolve.js +1 -1
  429. package/dist/runtime/shared/repo-cli-version.d.ts.map +1 -0
  430. package/dist/{shared → runtime/shared}/repo-cli-version.js +1 -1
  431. package/dist/runtime/shared/runtime-artifacts.d.ts.map +1 -0
  432. package/dist/{shared → runtime/shared}/runtime-source.d.ts +1 -1
  433. package/dist/runtime/shared/runtime-source.d.ts.map +1 -0
  434. package/dist/{shared → runtime/shared}/runtime-source.js +1 -1
  435. package/dist/runtime/shared/version-compare.d.ts.map +1 -0
  436. package/dist/runtime/task-intake/resolve.js +1 -1
  437. package/dist/shared/errors.d.ts +56 -3
  438. package/dist/shared/errors.d.ts.map +1 -1
  439. package/dist/shared/errors.js +72 -4
  440. package/dist/shared/trace-events.d.ts +13 -0
  441. package/dist/shared/trace-events.d.ts.map +1 -0
  442. package/dist/shared/trace-events.js +17 -0
  443. package/dist/shared/workflow-artifacts.d.ts.map +1 -1
  444. package/dist/shared/workflow-artifacts.js +1 -8
  445. package/dist/{shared/task-doc-conflicts.d.ts → task-doc/conflicts.d.ts} +1 -1
  446. package/dist/task-doc/conflicts.d.ts.map +1 -0
  447. package/dist/{shared/task-doc-conflicts.js → task-doc/conflicts.js} +1 -1
  448. package/dist/{shared/task-doc-state.d.ts → task-doc/state.d.ts} +1 -1
  449. package/dist/task-doc/state.d.ts.map +1 -0
  450. package/dist/workflow-runtime/file-ops.d.ts.map +1 -1
  451. package/dist/workflow-runtime/file-ops.js +1 -20
  452. package/dist/workflow-runtime/paths.d.ts.map +1 -1
  453. package/dist/workflow-runtime/paths.js +0 -1
  454. package/dist/workflow-runtime/types.d.ts +0 -1
  455. package/dist/workflow-runtime/types.d.ts.map +1 -1
  456. package/package.json +8 -8
  457. package/dist/cli/run-cli/error-guidance.d.ts +0 -9
  458. package/dist/cli/run-cli/error-guidance.d.ts.map +0 -1
  459. package/dist/cli/run-cli/error-guidance.js +0 -210
  460. package/dist/cli/run-cli.test-helpers.d.ts +0 -2
  461. package/dist/cli/run-cli.test-helpers.d.ts.map +0 -1
  462. package/dist/cli/run-cli.test-helpers.js +0 -1
  463. package/dist/commands/recipes.test-helpers.d.ts +0 -202
  464. package/dist/commands/recipes.test-helpers.d.ts.map +0 -1
  465. package/dist/commands/recipes.test-helpers.js +0 -483
  466. package/dist/commands/release.test-helpers.d.ts +0 -38
  467. package/dist/commands/release.test-helpers.d.ts.map +0 -1
  468. package/dist/commands/release.test-helpers.js +0 -55
  469. package/dist/commands/task.test-helpers.d.ts +0 -13
  470. package/dist/commands/task.test-helpers.d.ts.map +0 -1
  471. package/dist/commands/task.test-helpers.js +0 -65
  472. package/dist/runner/test-helpers.d.ts +0 -30
  473. package/dist/runner/test-helpers.d.ts.map +0 -1
  474. package/dist/runner/test-helpers.js +0 -97
  475. package/dist/shared/agent-emoji.d.ts +0 -5
  476. package/dist/shared/agent-emoji.d.ts.map +0 -1
  477. package/dist/shared/agent-emoji.js +0 -51
  478. package/dist/shared/allow-prefix-policy.d.ts.map +0 -1
  479. package/dist/shared/comment-format.d.ts.map +0 -1
  480. package/dist/shared/diagnostics.d.ts.map +0 -1
  481. package/dist/shared/direct-work-lock.d.ts.map +0 -1
  482. package/dist/shared/git-log.d.ts.map +0 -1
  483. package/dist/shared/repo-cli-version.d.ts.map +0 -1
  484. package/dist/shared/runtime-artifacts.d.ts.map +0 -1
  485. package/dist/shared/runtime-source.d.ts.map +0 -1
  486. package/dist/shared/task-doc-conflicts.d.ts.map +0 -1
  487. package/dist/shared/task-doc-state.d.ts.map +0 -1
  488. package/dist/shared/version-compare.d.ts.map +0 -1
  489. package/dist/testing/cli-harness/recipe-archives.d.ts +0 -28
  490. package/dist/testing/cli-harness/recipe-archives.d.ts.map +0 -1
  491. package/dist/testing/cli-harness/recipe-archives.js +0 -374
  492. package/dist/testing/cli-harness/stdio.d.ts +0 -26
  493. package/dist/testing/cli-harness/stdio.d.ts.map +0 -1
  494. package/dist/testing/cli-harness/stdio.js +0 -84
  495. package/dist/testing/cli-harness.d.ts +0 -25
  496. package/dist/testing/cli-harness.d.ts.map +0 -1
  497. package/dist/testing/cli-harness.js +0 -313
  498. package/dist/testing/index.d.ts +0 -2
  499. package/dist/testing/index.d.ts.map +0 -1
  500. package/dist/testing/index.js +0 -1
  501. /package/dist/{policy/types.js → cli/run-cli/commands/init/model.js} +0 -0
  502. /package/dist/{shared → commands/shared}/allow-prefix-policy.d.ts +0 -0
  503. /package/dist/{shared → commands/shared}/comment-format.d.ts +0 -0
  504. /package/dist/{shared → commands/shared}/comment-format.js +0 -0
  505. /package/dist/{shared → commands/shared}/diagnostics.d.ts +0 -0
  506. /package/dist/{shared → commands/shared}/diagnostics.js +0 -0
  507. /package/dist/{runtime/approvals/types.js → commands/task/finish-types.js} +0 -0
  508. /package/dist/{runtime/behavior/types.js → commands/task/hosted-close-pr.types.js} +0 -0
  509. /package/dist/{runtime/capabilities/types.js → commands/task/hosted-merge-sync/model.js} +0 -0
  510. /package/dist/{shared → commands/task/shared}/direct-work-lock.d.ts +0 -0
  511. /package/dist/{shared → commands/task/shared}/direct-work-lock.js +0 -0
  512. /package/dist/{shared → commands/task/shared}/git-log.d.ts +0 -0
  513. /package/dist/{shared → commands/task/shared}/git-log.js +0 -0
  514. /package/dist/{runtime/execution-profile/types.js → policy/model.js} +0 -0
  515. /package/dist/runtime/{explain/types.js → approvals/model.js} +0 -0
  516. /package/dist/runtime/protocol/{types.js → model.js} +0 -0
  517. /package/dist/{shared → runtime/shared}/repo-cli-version.d.ts +0 -0
  518. /package/dist/{shared → runtime/shared}/runtime-artifacts.d.ts +0 -0
  519. /package/dist/{shared → runtime/shared}/runtime-artifacts.js +0 -0
  520. /package/dist/{shared → runtime/shared}/version-compare.d.ts +0 -0
  521. /package/dist/{shared → runtime/shared}/version-compare.js +0 -0
  522. /package/dist/{shared/task-doc-state.js → task-doc/state.js} +0 -0
@@ -1,15 +1,10 @@
1
1
  import { isRecord } from "../../shared/guards.js";
2
- import { appendCommentNotes as appendCommentNotesImpl, normalizeComments as normalizeCommentsImpl, } from "./redmine/comments.js";
3
- import { requestJson as requestRedmineJson } from "./redmine/client.js";
4
- import { appendCustomField as appendRedmineCustomField, customFieldValue as redmineCustomFieldValue, setIssueCustomFieldValue as setRedmineIssueCustomFieldValue, } from "./redmine/fields.js";
5
- import { doneRatioForStatus, issueToTask as issueToTaskImpl, startDateFromTaskId, taskToIssuePayload as taskToIssuePayloadImpl, } from "./redmine/mapping.js";
6
- import { coerceDocVersion as coerceRedmineDocVersion, maybeParseJson as maybeParseRedmineJson, } from "./redmine/parse.js";
7
- import { findIssueByTaskId as findIssueByTaskIdImpl, listTasksRemote as listTasksRemoteImpl, } from "./redmine/remote.js";
8
2
  import { getRedmineTask, getRedmineTaskDoc, getRedmineTasks, listRedmineProjectionTasks, listRedmineTasks, normalizeRedmineTasks, exportRedmineProjectionSnapshot, exportRedmineTasksJson, setRedmineTaskDoc, touchRedmineTaskDocMetadata, } from "./redmine/backend-cache-doc.js";
9
- import { diffRedmineTasks, inspectRedmineConfiguration, redmineTasksDiffer, } from "./redmine/backend-report.js";
10
- import { generateRedmineTaskId, handleRedmineConflict, inferRedmineStatusIdForTaskStatus, loadRedmineInferredStatusByTaskStatus, migrateRedmineCanonicalState, selectRedmineInferredStatus, syncPullRedmine, syncPushRedmine, syncRedmine, writeRedmineTask, writeRedmineTasks, } from "./redmine/backend-sync.js";
3
+ import { inspectRedmineConfiguration } from "./redmine/backend-report.js";
4
+ import { generateRedmineTaskId, migrateRedmineCanonicalState, syncPullRedmine, syncRedmine, writeRedmineTask, writeRedmineTasks, } from "./redmine/backend-sync.js";
5
+ import { createRedmineCacheDocContext, createRedmineReportContext, createRedmineSyncContext, redmineBackendRuntimeMethods, } from "./redmine/backend-runtime.js";
11
6
  import { readRedmineEnv } from "./redmine/env.js";
12
- import { BackendError, DEFAULT_DOC_UPDATED_BY, DOC_VERSION, firstNonEmptyString, normalizeDocVersion, nowIso, redmineConfigMissingEnvMessage, toStringSafe, } from "./shared.js";
7
+ import { BackendError, firstNonEmptyString, redmineConfigMissingEnvMessage, } from "./shared.js";
13
8
  export class RedmineBackend {
14
9
  id = "redmine";
15
10
  capabilities = {
@@ -88,275 +83,65 @@ export class RedmineBackend {
88
83
  this.reverseStatus.set(value, key);
89
84
  }
90
85
  }
91
- cacheDocContext() {
92
- return {
93
- cache: this.cache,
94
- customFields: this.customFields,
95
- ownerAgent: this.ownerAgent,
96
- batchSize: this.batchSize,
97
- findIssueByTaskId: async (taskId) => await this.findIssueByTaskId(taskId),
98
- issueToTask: (issue, taskIdOverride) => this.issueToTask(issue, taskIdOverride),
99
- customFieldValue: (issue, fieldId) => this.customFieldValue(issue, fieldId),
100
- appendCustomField: (fields, key, value) => this.appendCustomField(fields, key, value),
101
- requestJson: async (method, reqPath, payload, params) => await this.requestJson(method, reqPath, payload, params),
102
- assertExpectedRevisionSupported: (taskId, opts) => this.assertExpectedRevisionSupported(taskId, opts),
103
- assertExpectedRevision: (taskId, expectedRevision, currentRevision) => this.assertExpectedRevision(taskId, expectedRevision, currentRevision),
104
- cacheTask: async (task, dirty) => await this.cacheTask(task, dirty),
105
- };
86
+ setInferredStatusByTaskStatus(next) {
87
+ this.inferredStatusByTaskStatus = next;
106
88
  }
107
- reportContext() {
108
- return {
109
- projectId: this.projectId,
110
- customFields: this.customFields,
111
- requestJson: async (method, reqPath, payload, params) => await this.requestJson(method, reqPath, payload, params),
112
- };
113
- }
114
- syncContext() {
115
- return {
116
- cache: this.cache,
117
- customFields: this.customFields,
118
- ownerAgent: this.ownerAgent,
119
- projectId: this.projectId,
120
- batchSize: this.batchSize,
121
- batchPauseMs: this.batchPauseMs,
122
- statusMap: this.statusMap,
123
- issueCache: this.issueCache,
124
- inferredStatusByTaskStatus: this.inferredStatusByTaskStatus,
125
- setInferredStatusByTaskStatus: (next) => {
126
- this.inferredStatusByTaskStatus = next;
127
- },
128
- listTasksRemote: async () => await this.listTasksRemote(),
129
- writeTask: async (task, opts) => await this.writeTask(task, opts),
130
- writeTasks: async (tasks, opts) => await this.writeTasks(tasks, opts),
131
- findIssueByTaskId: async (taskId) => await this.findIssueByTaskId(taskId),
132
- issueToTask: (issue, taskIdOverride) => this.issueToTask(issue, taskIdOverride),
133
- taskToIssuePayload: (task, existingIssue) => this.taskToIssuePayload(task, existingIssue),
134
- appendCustomField: (fields, key, value) => this.appendCustomField(fields, key, value),
135
- customFieldValue: (issue, fieldId) => this.customFieldValue(issue, fieldId),
136
- maybeParseJson: (value) => this.maybeParseJson(value),
137
- normalizeComments: (value) => this.normalizeComments(value),
138
- appendCommentNotes: async (issueId, existingComments, desiredComments) => await this.appendCommentNotes(issueId, existingComments, desiredComments),
139
- cacheTask: async (task, dirty) => await this.cacheTask(task, dirty),
140
- assertExpectedRevisionSupported: (taskId, opts) => this.assertExpectedRevisionSupported(taskId, opts),
141
- assertExpectedRevision: (taskId, expectedRevision, currentRevision) => this.assertExpectedRevision(taskId, expectedRevision, currentRevision),
142
- ensureDocMetadata: (task) => this.ensureDocMetadata(task),
143
- diffTasks: (localTask, remoteTask) => this.diffTasks(localTask, remoteTask),
144
- tasksDiffer: (localTask, remoteTask) => this.tasksDiffer(localTask, remoteTask),
145
- taskIdFieldId: () => this.taskIdFieldId(),
146
- setIssueCustomFieldValue: (issue, fieldId, value) => this.setIssueCustomFieldValue(issue, fieldId, value),
147
- requestJson: async (method, reqPath, payload, params, opts) => await this.requestJson(method, reqPath, payload, params, opts),
148
- };
89
+ runtimeHost() {
90
+ return this;
149
91
  }
150
92
  async generateTaskId(opts) {
151
- return await generateRedmineTaskId(this.syncContext(), opts);
93
+ return await generateRedmineTaskId(createRedmineSyncContext(this.runtimeHost()), opts);
152
94
  }
153
95
  async listTasks() {
154
- return await listRedmineTasks(this.cacheDocContext());
96
+ return await listRedmineTasks(createRedmineCacheDocContext(this.runtimeHost()));
155
97
  }
156
98
  async listProjectionTasks() {
157
- return await listRedmineProjectionTasks(this.cacheDocContext());
99
+ return await listRedmineProjectionTasks(createRedmineCacheDocContext(this.runtimeHost()));
158
100
  }
159
101
  async exportTasksJson(outputPath) {
160
- await exportRedmineTasksJson(this.cacheDocContext(), outputPath);
102
+ await exportRedmineTasksJson(createRedmineCacheDocContext(this.runtimeHost()), outputPath);
161
103
  }
162
104
  async exportProjectionSnapshot(outputPath) {
163
- await exportRedmineProjectionSnapshot(this.cacheDocContext(), outputPath);
105
+ await exportRedmineProjectionSnapshot(createRedmineCacheDocContext(this.runtimeHost()), outputPath);
164
106
  }
165
107
  async refreshProjection(opts) {
166
108
  if (!opts.allowNetwork) {
167
109
  throw new BackendError("Projection refresh requires network access approval", "E_BACKEND");
168
110
  }
169
- await this.syncPull(opts.conflict ?? "prefer-remote", opts.quiet ?? true);
111
+ await syncPullRedmine(createRedmineSyncContext(this.runtimeHost()), opts.conflict ?? "prefer-remote", opts.quiet ?? true);
170
112
  }
171
113
  async normalizeTasks() {
172
- return await normalizeRedmineTasks(this.cacheDocContext());
114
+ return await normalizeRedmineTasks(createRedmineCacheDocContext(this.runtimeHost()));
173
115
  }
174
116
  async migrateCanonicalState() {
175
- return await migrateRedmineCanonicalState(this.syncContext());
117
+ return await migrateRedmineCanonicalState(createRedmineSyncContext(this.runtimeHost()));
176
118
  }
177
119
  async inspectConfiguration() {
178
- return await inspectRedmineConfiguration(this.reportContext());
120
+ return await inspectRedmineConfiguration(createRedmineReportContext(this.runtimeHost()));
179
121
  }
180
122
  async getTask(taskId) {
181
- return await getRedmineTask(this.cacheDocContext(), taskId);
123
+ return await getRedmineTask(createRedmineCacheDocContext(this.runtimeHost()), taskId);
182
124
  }
183
125
  async getTasks(taskIds) {
184
- return await getRedmineTasks(this.cacheDocContext(), taskIds);
126
+ return await getRedmineTasks(createRedmineCacheDocContext(this.runtimeHost()), taskIds);
185
127
  }
186
128
  async getTaskDoc(taskId) {
187
- return await getRedmineTaskDoc(this.cacheDocContext(), taskId);
129
+ return await getRedmineTaskDoc(createRedmineCacheDocContext(this.runtimeHost()), taskId);
188
130
  }
189
131
  async setTaskDoc(taskId, doc, updatedBy, opts) {
190
- await setRedmineTaskDoc(this.cacheDocContext(), taskId, doc, updatedBy, opts);
132
+ await setRedmineTaskDoc(createRedmineCacheDocContext(this.runtimeHost()), taskId, doc, updatedBy, opts);
191
133
  }
192
134
  async touchTaskDocMetadata(taskId, updatedBy, opts) {
193
- await touchRedmineTaskDocMetadata(this.cacheDocContext(), taskId, updatedBy, opts);
135
+ await touchRedmineTaskDocMetadata(createRedmineCacheDocContext(this.runtimeHost()), taskId, updatedBy, opts);
194
136
  }
195
137
  async writeTask(task, opts) {
196
- await writeRedmineTask(this.syncContext(), task, opts);
138
+ await writeRedmineTask(createRedmineSyncContext(this.runtimeHost()), task, opts);
197
139
  }
198
140
  async writeTasks(tasks, opts) {
199
- await writeRedmineTasks(this.syncContext(), tasks, opts);
141
+ await writeRedmineTasks(createRedmineSyncContext(this.runtimeHost()), tasks, opts);
200
142
  }
201
143
  async sync(opts) {
202
- await syncRedmine(this.syncContext(), opts);
203
- }
204
- ensureDocMetadata(task) {
205
- if (task.doc === undefined)
206
- return;
207
- task.doc_version = normalizeDocVersion(task.doc_version);
208
- task.doc_updated_at ??= nowIso();
209
- task.doc_updated_by ??= DEFAULT_DOC_UPDATED_BY;
210
- }
211
- async syncPush(quiet, confirm) {
212
- await syncPushRedmine(this.syncContext(), quiet, confirm);
213
- }
214
- async syncPull(conflict, quiet) {
215
- await syncPullRedmine(this.syncContext(), conflict, quiet);
216
- }
217
- async handleConflict(taskId, localTask, remoteTask, conflict) {
218
- await handleRedmineConflict(this.syncContext(), taskId, localTask, remoteTask, conflict);
219
- }
220
- diffTasks(localTask, remoteTask) {
221
- return diffRedmineTasks(localTask, remoteTask);
222
- }
223
- tasksDiffer(localTask, remoteTask) {
224
- return redmineTasksDiffer(localTask, remoteTask);
225
- }
226
- async cacheTask(task, dirty) {
227
- if (!this.cache)
228
- return;
229
- const next = { ...task, dirty };
230
- await this.cache.writeTask(next);
231
- }
232
- assertExpectedRevisionSupported(taskId, opts) {
233
- if (opts?.expectedRevision === undefined)
234
- return;
235
- if (this.capabilities.supports_revision_guarded_writes)
236
- return;
237
- throw new BackendError(`Task revision guarding is unavailable for ${taskId} without AGENTPLANE_REDMINE_CUSTOM_FIELDS_CANONICAL_STATE`, "E_BACKEND");
238
- }
239
- assertExpectedRevision(taskId, expectedRevision, currentRevision) {
240
- if (expectedRevision === undefined)
241
- return;
242
- const expected = Math.trunc(expectedRevision);
243
- if (expected <= 0 || expected === currentRevision)
244
- return;
245
- throw new BackendError(`Task revision changed concurrently: ${taskId} ` +
246
- `(expected revision ${expected}, current revision ${currentRevision})`, "E_BACKEND");
247
- }
248
- taskIdFieldId() {
249
- const fieldId = this.customFields?.task_id;
250
- if (fieldId)
251
- return fieldId;
252
- throw new BackendError(redmineConfigMissingEnvMessage("AGENTPLANE_REDMINE_CUSTOM_FIELDS_TASK_ID"), "E_BACKEND");
253
- }
254
- setIssueCustomFieldValue(issue, fieldId, value) {
255
- setRedmineIssueCustomFieldValue(issue, fieldId, value);
256
- }
257
- async listTasksRemote() {
258
- const taskFieldId = this.taskIdFieldId();
259
- return await listTasksRemoteImpl({
260
- projectId: this.projectId,
261
- taskFieldId,
262
- issueCache: this.issueCache,
263
- requestJson: async (method, reqPath, payload, params) => await this.requestJson(method, reqPath, payload, params),
264
- customFieldValue: (issue, fieldId) => this.customFieldValue(issue, fieldId),
265
- issueToTask: (issue, taskIdOverride) => this.issueToTask(issue, taskIdOverride),
266
- });
267
- }
268
- issueFromPayload(payload) {
269
- return isRecord(payload.issue) ? payload.issue : null;
270
- }
271
- async inferStatusIdForTaskStatus(statusRaw) {
272
- return await inferRedmineStatusIdForTaskStatus(this.syncContext(), statusRaw);
273
- }
274
- async loadInferredStatusByTaskStatus() {
275
- return await loadRedmineInferredStatusByTaskStatus(this.syncContext());
276
- }
277
- selectInferredStatus(statuses, target) {
278
- return selectRedmineInferredStatus(statuses, target);
279
- }
280
- async findIssueByTaskId(taskId) {
281
- const taskFieldId = this.taskIdFieldId();
282
- return await findIssueByTaskIdImpl({
283
- taskId,
284
- projectId: this.projectId,
285
- taskFieldId,
286
- issueCache: this.issueCache,
287
- requestJson: async (method, reqPath, payload, params) => await this.requestJson(method, reqPath, payload, params),
288
- customFieldValue: (issue, fieldId) => this.customFieldValue(issue, fieldId),
289
- refreshList: async () => {
290
- await this.listTasksRemote();
291
- },
292
- });
293
- }
294
- issueToTask(issue, taskIdOverride) {
295
- return issueToTaskImpl({
296
- issue,
297
- taskIdOverride,
298
- reverseStatus: this.reverseStatus,
299
- customFields: this.customFields,
300
- ownerAgent: this.ownerAgent,
301
- defaultDocVersion: DOC_VERSION,
302
- });
303
- }
304
- taskToIssuePayload(task, existingIssue) {
305
- return taskToIssuePayloadImpl({
306
- task,
307
- existingIssue,
308
- statusMap: this.statusMap,
309
- assigneeId: this.assigneeId,
310
- customFields: this.customFields,
311
- appendCustomField: (fields, key, value) => this.appendCustomField(fields, key, value),
312
- });
313
- }
314
- appendCustomField(fields, key, value) {
315
- appendRedmineCustomField({ customFields: this.customFields, fields, key, value });
316
- }
317
- normalizeComments(value) {
318
- return normalizeCommentsImpl(value);
319
- }
320
- async appendCommentNotes(issueId, existingComments, desiredComments) {
321
- await appendCommentNotesImpl({
322
- issueId,
323
- existingComments,
324
- desiredComments,
325
- requestJson: async (method, reqPath, payload, params) => await this.requestJson(method, reqPath, payload, params),
326
- });
327
- }
328
- startDateFromTaskId(taskId) {
329
- return startDateFromTaskId(taskId);
330
- }
331
- doneRatioForStatus(status) {
332
- return doneRatioForStatus(status);
333
- }
334
- commentsToPairs(comments) {
335
- const pairs = [];
336
- for (const comment of comments) {
337
- const author = toStringSafe(comment.author).trim();
338
- const body = toStringSafe(comment.body).trim();
339
- if (!author && !body)
340
- continue;
341
- pairs.push([author, body]);
342
- }
343
- return pairs;
344
- }
345
- formatCommentNote(author = "unknown", body = "") {
346
- const authorText = author;
347
- const bodyText = body;
348
- return `[comment] ${authorText}: ${bodyText}`.trim();
349
- }
350
- customFieldValue(issue, fieldId) {
351
- return redmineCustomFieldValue(issue, fieldId);
352
- }
353
- maybeParseJson(value) {
354
- return maybeParseRedmineJson(value);
355
- }
356
- coerceDocVersion(value) {
357
- return coerceRedmineDocVersion(value);
358
- }
359
- async requestJson(method, reqPath, payload, params, opts) {
360
- return await requestRedmineJson({ baseUrl: this.baseUrl, apiKey: this.apiKey }, method, reqPath, payload, params, opts);
144
+ await syncRedmine(createRedmineSyncContext(this.runtimeHost()), opts);
361
145
  }
362
146
  }
147
+ Object.assign(RedmineBackend.prototype, redmineBackendRuntimeMethods);
@@ -2,5 +2,5 @@ import { type TaskDocVersion } from "@agentplaneorg/core";
2
2
  export declare const TASK_ID_RE: RegExp;
3
3
  export declare const DEFAULT_DOC_UPDATED_BY = "agentplane";
4
4
  export declare const DOC_VERSION: TaskDocVersion;
5
- export declare const SUPPORTED_DOC_VERSIONS: readonly [2, 3];
5
+ export declare const SUPPORTED_DOC_VERSIONS: readonly [3];
6
6
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/backends/task-backend/shared/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE5E,eAAO,MAAM,UAAU,QAA6D,CAAC;AACrF,eAAO,MAAM,sBAAsB,eAAe,CAAC;AACnD,eAAO,MAAM,WAAW,EAAE,cAAkB,CAAC;AAC7C,eAAO,MAAM,sBAAsB,iBAAkB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/backends/task-backend/shared/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE5E,eAAO,MAAM,UAAU,QAA6D,CAAC;AACrF,eAAO,MAAM,sBAAsB,eAAe,CAAC;AACnD,eAAO,MAAM,WAAW,EAAE,cAAkB,CAAC;AAC7C,eAAO,MAAM,sBAAsB,cAAe,CAAC"}
@@ -2,4 +2,4 @@ import { TASK_ID_ALPHABET } from "@agentplaneorg/core";
2
2
  export const TASK_ID_RE = new RegExp(String.raw `^\d{12}-[${TASK_ID_ALPHABET}]{4,}$`);
3
3
  export const DEFAULT_DOC_UPDATED_BY = "agentplane";
4
4
  export const DOC_VERSION = 3;
5
- export const SUPPORTED_DOC_VERSIONS = [2, 3];
5
+ export const SUPPORTED_DOC_VERSIONS = [3];
@@ -1,3 +1,15 @@
1
+ /**
2
+ * Backend-local Redmine/task-backend error surface.
3
+ *
4
+ * Allowed here:
5
+ * - backend transport/domain errors and messages
6
+ * - backend-specific retry/unavailable sentinel types
7
+ *
8
+ * Do not add:
9
+ * - CLI usage helpers
10
+ * - shared cross-command error containers
11
+ * - generic runtime failures that are not backend-owned
12
+ */
1
13
  export declare class BackendError extends Error {
2
14
  code: "E_BACKEND" | "E_NETWORK";
3
15
  constructor(message: string, code: "E_BACKEND" | "E_NETWORK");
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/backends/task-backend/shared/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;IACrC,IAAI,EAAE,WAAW,GAAG,WAAW,CAAC;gBACpB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,WAAW;CAI7D;AAED,qBAAa,kBAAmB,SAAQ,YAAY;gBACtC,OAAO,EAAE,MAAM;CAG5B;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,CAG9E;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAErD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/backends/task-backend/shared/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,IAAI,EAAE,WAAW,GAAG,WAAW,CAAC;gBACpB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,WAAW;CAI7D;AAED,qBAAa,kBAAmB,SAAQ,YAAY;gBACtC,OAAO,EAAE,MAAM;CAG5B;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,CAG9E;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAErD"}
@@ -1,3 +1,15 @@
1
+ /**
2
+ * Backend-local Redmine/task-backend error surface.
3
+ *
4
+ * Allowed here:
5
+ * - backend transport/domain errors and messages
6
+ * - backend-specific retry/unavailable sentinel types
7
+ *
8
+ * Do not add:
9
+ * - CLI usage helpers
10
+ * - shared cross-command error containers
11
+ * - generic runtime failures that are not backend-owned
12
+ */
1
13
  export class BackendError extends Error {
2
14
  code;
3
15
  constructor(message, code) {
@@ -5,10 +5,6 @@ export type TaskIndexEntry = {
5
5
  readmePath: string;
6
6
  mtimeMs: number;
7
7
  };
8
- export type TaskIndexFileV1 = {
9
- schema_version: 1;
10
- tasks: TaskIndexEntry[];
11
- };
12
8
  export type TaskIndexFileV2 = {
13
9
  schema_version: 2;
14
10
  byId: Record<string, TaskIndexEntry>;
@@ -1 +1 @@
1
- {"version":3,"file":"task-index.d.ts","sourceRoot":"","sources":["../../src/backends/task-index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE/D,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAI3C,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc,EAAE,CAAC,CAAC;IAClB,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc,EAAE,CAAC,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,eAAe,CAAC;AAE5C,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAU7D;AA+ED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAWpF;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5F;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,cAAc,CAgBhB"}
1
+ {"version":3,"file":"task-index.d.ts","sourceRoot":"","sources":["../../src/backends/task-index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE/D,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAG3C,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc,EAAE,CAAC,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,eAAe,CAAC;AAE5C,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAU7D;AAsDD,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAIpF;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5F;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,cAAc,CAgBhB"}
@@ -3,7 +3,6 @@ import path from "node:path";
3
3
  import { writeJsonStableIfChanged } from "../shared/write-if-changed.js";
4
4
  export const TASK_INDEX_SCHEMA_VERSION = 2;
5
5
  const TASK_INDEX_FILENAME = "tasks-index.v2.json";
6
- const LEGACY_TASK_INDEX_FILENAME = "tasks-index.v1.json";
7
6
  export function resolveTaskIndexPath(tasksDir) {
8
7
  const normalized = path.normalize(tasksDir);
9
8
  const parts = normalized.split(path.sep);
@@ -18,11 +17,6 @@ export function resolveTaskIndexPath(tasksDir) {
18
17
  function isRecord(value) {
19
18
  return !!value && typeof value === "object" && !Array.isArray(value);
20
19
  }
21
- function resolveLegacyIndexPath(indexPath) {
22
- // Best-effort migration path: when upgrading from v1->v2, the v1 file may still exist.
23
- const dir = path.dirname(indexPath);
24
- return path.join(dir, LEGACY_TASK_INDEX_FILENAME);
25
- }
26
20
  function isTaskIndexEntry(value) {
27
21
  if (!isRecord(value))
28
22
  return false;
@@ -53,18 +47,6 @@ function isTaskIndexEntry(value) {
53
47
  return false;
54
48
  return true;
55
49
  }
56
- function toV2FromEntries(entries) {
57
- const byId = {};
58
- const byPath = {};
59
- for (const entry of entries) {
60
- const id = entry.task.id;
61
- if (typeof id !== "string" || !id.trim())
62
- continue;
63
- byId[id] = entry;
64
- byPath[entry.readmePath] = id;
65
- }
66
- return { schema_version: 2, byId, byPath };
67
- }
68
50
  function isTaskIndexFileV2(value) {
69
51
  if (!isRecord(value))
70
52
  return false;
@@ -85,15 +67,6 @@ function isTaskIndexFileV2(value) {
85
67
  }
86
68
  return true;
87
69
  }
88
- function isTaskIndexFileV1(value) {
89
- if (!isRecord(value))
90
- return false;
91
- if (value.schema_version !== 1)
92
- return false;
93
- if (!Array.isArray(value.tasks))
94
- return false;
95
- return true;
96
- }
97
70
  async function readJsonFile(p) {
98
71
  let raw = "";
99
72
  try {
@@ -113,12 +86,6 @@ export async function loadTaskIndex(indexPath) {
113
86
  const v2 = await readJsonFile(indexPath);
114
87
  if (v2 && isTaskIndexFileV2(v2))
115
88
  return v2;
116
- const legacyPath = resolveLegacyIndexPath(indexPath);
117
- const v1 = await readJsonFile(legacyPath);
118
- if (v1 && isTaskIndexFileV1(v1)) {
119
- const entries = v1.tasks.filter((entry) => isTaskIndexEntry(entry));
120
- return toV2FromEntries(entries);
121
- }
122
89
  return null;
123
90
  }
124
91
  export async function saveTaskIndex(indexPath, index) {
@@ -1 +1 @@
1
- {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/cli/archive.ts"],"names":[],"mappings":"AAaA,KAAK,WAAW,GAAG,KAAK,GAAG,KAAK,CAAC;AAOjC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAS9B;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAKtE;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBhB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,CA2BjG"}
1
+ {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/cli/archive.ts"],"names":[],"mappings":"AAUA,KAAK,WAAW,GAAG,KAAK,GAAG,KAAK,CAAC;AAOjC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAS9B;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAKtE;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBhB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,CA2BjG"}
@@ -1,12 +1,10 @@
1
- import { execFile } from "node:child_process";
2
1
  import { readFile } from "node:fs/promises";
3
- import { promisify } from "node:util";
4
2
  import path from "node:path";
5
3
  import { gunzipSync } from "node:zlib";
4
+ import { runProcess } from "@agentplaneorg/core";
6
5
  import yauzl from "yauzl";
7
6
  import { CliError } from "../shared/errors.js";
8
7
  import { exitCodeForError } from "./exit-codes.js";
9
- const execFileAsync = promisify(execFile);
10
8
  export async function validateArchive(archivePath, type) {
11
9
  if (type === "zip") {
12
10
  const entries = await listZipEntries(archivePath);
@@ -45,10 +43,10 @@ export async function extractArchive(opts) {
45
43
  });
46
44
  }
47
45
  if (archiveType === "tar") {
48
- await execFileAsync("tar", ["-xzf", opts.archivePath, "-C", opts.destDir]);
46
+ await runProcess({ command: "tar", args: ["-xzf", opts.archivePath, "-C", opts.destDir] });
49
47
  return;
50
48
  }
51
- await execFileAsync("unzip", ["-q", opts.archivePath, "-d", opts.destDir]);
49
+ await runProcess({ command: "unzip", args: ["-q", opts.archivePath, "-d", opts.destDir] });
52
50
  }
53
51
  export function validateArchiveEntries(entries, symlinks) {
54
52
  const issues = [];
@@ -1,4 +1,10 @@
1
- import { CliError } from "../shared/errors.js";
1
+ import type { CliError } from "../shared/errors.js";
2
+ export type NextAction = {
3
+ command: string;
4
+ reason: string;
5
+ reasonCode?: string;
6
+ };
2
7
  export declare function mapCoreError(err: unknown, context: Record<string, unknown>): CliError;
3
8
  export declare function mapBackendError(err: unknown, context: Record<string, unknown>): CliError;
9
+ export declare function writeError(err: CliError, jsonErrors: boolean): void;
4
10
  //# sourceMappingURL=error-map.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-map.d.ts","sourceRoot":"","sources":["../../src/cli/error-map.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CA+BrF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CAUxF"}
1
+ {"version":3,"file":"error-map.d.ts","sourceRoot":"","sources":["../../src/cli/error-map.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIpD,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAsBF,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CAqCrF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CAMxF;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI,CA6CnE"}