agentplane 0.3.7 → 0.3.8

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 (625) hide show
  1. package/assets/AGENTS.md +11 -1
  2. package/assets/RUNNER.md +17 -0
  3. package/bin/agentplane.js +16 -7
  4. package/bin/framework-dev-contract.d.ts +6 -0
  5. package/bin/framework-dev-contract.js +13 -0
  6. package/bin/stale-dist-policy.js +6 -1
  7. package/dist/.build-manifest.json +694 -339
  8. package/dist/adapters/task-backend/task-backend-adapter.d.ts +3 -1
  9. package/dist/adapters/task-backend/task-backend-adapter.d.ts.map +1 -1
  10. package/dist/adapters/task-backend/task-backend-adapter.js +13 -0
  11. package/dist/backends/task-backend/local-backend-doc.d.ts +5 -0
  12. package/dist/backends/task-backend/local-backend-doc.d.ts.map +1 -0
  13. package/dist/backends/task-backend/local-backend-doc.js +98 -0
  14. package/dist/backends/task-backend/local-backend-read.d.ts +7 -0
  15. package/dist/backends/task-backend/local-backend-read.d.ts.map +1 -0
  16. package/dist/backends/task-backend/local-backend-read.js +186 -0
  17. package/dist/backends/task-backend/local-backend-state.d.ts +17 -0
  18. package/dist/backends/task-backend/local-backend-state.d.ts.map +1 -0
  19. package/dist/backends/task-backend/local-backend-state.js +50 -0
  20. package/dist/backends/task-backend/local-backend-write.d.ts +15 -0
  21. package/dist/backends/task-backend/local-backend-write.d.ts.map +1 -0
  22. package/dist/backends/task-backend/local-backend-write.js +254 -0
  23. package/dist/backends/task-backend/local-backend.d.ts +4 -2
  24. package/dist/backends/task-backend/local-backend.d.ts.map +1 -1
  25. package/dist/backends/task-backend/local-backend.js +26 -403
  26. package/dist/backends/task-backend/redmine/backend-cache-doc.d.ts +40 -0
  27. package/dist/backends/task-backend/redmine/backend-cache-doc.d.ts.map +1 -0
  28. package/dist/backends/task-backend/redmine/backend-cache-doc.js +178 -0
  29. package/dist/backends/task-backend/redmine/backend-report.d.ts +10 -0
  30. package/dist/backends/task-backend/redmine/backend-report.d.ts.map +1 -0
  31. package/dist/backends/task-backend/redmine/backend-report.js +43 -0
  32. package/dist/backends/task-backend/redmine/backend-sync.d.ts +67 -0
  33. package/dist/backends/task-backend/redmine/backend-sync.d.ts.map +1 -0
  34. package/dist/backends/task-backend/redmine/backend-sync.js +367 -0
  35. package/dist/backends/task-backend/redmine/mapping.d.ts +2 -1
  36. package/dist/backends/task-backend/redmine/mapping.d.ts.map +1 -1
  37. package/dist/backends/task-backend/redmine/mapping.js +12 -2
  38. package/dist/backends/task-backend/redmine/parse.d.ts +2 -1
  39. package/dist/backends/task-backend/redmine/parse.d.ts.map +1 -1
  40. package/dist/backends/task-backend/redmine/parse.js +5 -3
  41. package/dist/backends/task-backend/redmine/state.d.ts +2 -0
  42. package/dist/backends/task-backend/redmine/state.d.ts.map +1 -1
  43. package/dist/backends/task-backend/redmine/state.js +15 -1
  44. package/dist/backends/task-backend/redmine-backend.d.ts +5 -2
  45. package/dist/backends/task-backend/redmine-backend.d.ts.map +1 -1
  46. package/dist/backends/task-backend/redmine-backend.js +88 -536
  47. package/dist/backends/task-backend/shared/constants.d.ts +2 -1
  48. package/dist/backends/task-backend/shared/constants.d.ts.map +1 -1
  49. package/dist/backends/task-backend/shared/doc.d.ts.map +1 -1
  50. package/dist/backends/task-backend/shared/doc.js +25 -39
  51. package/dist/backends/task-backend/shared/export.d.ts +2 -9
  52. package/dist/backends/task-backend/shared/export.d.ts.map +1 -1
  53. package/dist/backends/task-backend/shared/export.js +73 -8
  54. package/dist/backends/task-backend/shared/normalize.d.ts +5 -1
  55. package/dist/backends/task-backend/shared/normalize.d.ts.map +1 -1
  56. package/dist/backends/task-backend/shared/normalize.js +166 -0
  57. package/dist/backends/task-backend/shared/record.d.ts +1 -1
  58. package/dist/backends/task-backend/shared/record.d.ts.map +1 -1
  59. package/dist/backends/task-backend/shared/record.js +7 -2
  60. package/dist/backends/task-backend/shared/types.d.ts +38 -36
  61. package/dist/backends/task-backend/shared/types.d.ts.map +1 -1
  62. package/dist/backends/task-backend/shared.d.ts +2 -2
  63. package/dist/backends/task-backend/shared.d.ts.map +1 -1
  64. package/dist/backends/task-backend/shared.js +1 -1
  65. package/dist/backends/task-backend.d.ts +1 -1
  66. package/dist/backends/task-backend.d.ts.map +1 -1
  67. package/dist/backends/task-backend.js +1 -1
  68. package/dist/backends/task-index.d.ts +2 -2
  69. package/dist/backends/task-index.d.ts.map +1 -1
  70. package/dist/backends/task-index.js +9 -6
  71. package/dist/cli/bootstrap-guide.d.ts +2 -2
  72. package/dist/cli/bootstrap-guide.d.ts.map +1 -1
  73. package/dist/cli/bootstrap-guide.js +10 -10
  74. package/dist/cli/command-guide.d.ts.map +1 -1
  75. package/dist/cli/command-guide.js +11 -9
  76. package/dist/cli/command-invocations.d.ts +4 -0
  77. package/dist/cli/command-invocations.d.ts.map +1 -0
  78. package/dist/cli/command-invocations.js +35 -0
  79. package/dist/cli/command-snippets.d.ts +12 -8
  80. package/dist/cli/command-snippets.d.ts.map +1 -1
  81. package/dist/cli/command-snippets.js +14 -8
  82. package/dist/cli/exit-codes.d.ts.map +1 -1
  83. package/dist/cli/exit-codes.js +1 -0
  84. package/dist/cli/group-command.d.ts +18 -0
  85. package/dist/cli/group-command.d.ts.map +1 -0
  86. package/dist/cli/group-command.js +45 -0
  87. package/dist/cli/output.d.ts +29 -0
  88. package/dist/cli/output.d.ts.map +1 -1
  89. package/dist/cli/output.js +76 -0
  90. package/dist/cli/prompts.d.ts.map +1 -1
  91. package/dist/cli/prompts.js +5 -1
  92. package/dist/cli/run-cli/command-catalog/core.d.ts.map +1 -1
  93. package/dist/cli/run-cli/command-catalog/core.js +38 -29
  94. package/dist/cli/run-cli/command-catalog/lifecycle.d.ts.map +1 -1
  95. package/dist/cli/run-cli/command-catalog/lifecycle.js +9 -6
  96. package/dist/cli/run-cli/command-catalog/project.d.ts +1 -1
  97. package/dist/cli/run-cli/command-catalog/project.d.ts.map +1 -1
  98. package/dist/cli/run-cli/command-catalog/project.js +8 -6
  99. package/dist/cli/run-cli/command-catalog/shared.d.ts +12 -3
  100. package/dist/cli/run-cli/command-catalog/shared.d.ts.map +1 -1
  101. package/dist/cli/run-cli/command-catalog/shared.js +6 -3
  102. package/dist/cli/run-cli/command-catalog/task.d.ts +1 -1
  103. package/dist/cli/run-cli/command-catalog/task.d.ts.map +1 -1
  104. package/dist/cli/run-cli/command-catalog/task.js +46 -11
  105. package/dist/cli/run-cli/command-catalog.d.ts +11 -1
  106. package/dist/cli/run-cli/command-catalog.d.ts.map +1 -1
  107. package/dist/cli/run-cli/command-catalog.js +29 -0
  108. package/dist/cli/run-cli/commands/config.d.ts.map +1 -1
  109. package/dist/cli/run-cli/commands/config.js +52 -6
  110. package/dist/cli/run-cli/commands/core/agent-profiles.d.ts +34 -0
  111. package/dist/cli/run-cli/commands/core/agent-profiles.d.ts.map +1 -0
  112. package/dist/cli/run-cli/commands/core/agent-profiles.js +97 -0
  113. package/dist/cli/run-cli/commands/core/agents.d.ts +7 -0
  114. package/dist/cli/run-cli/commands/core/agents.d.ts.map +1 -0
  115. package/dist/cli/run-cli/commands/core/agents.js +97 -0
  116. package/dist/cli/run-cli/commands/core/preflight.d.ts +10 -0
  117. package/dist/cli/run-cli/commands/core/preflight.d.ts.map +1 -0
  118. package/dist/cli/run-cli/commands/core/preflight.js +286 -0
  119. package/dist/cli/run-cli/commands/core/quickstart.d.ts +8 -0
  120. package/dist/cli/run-cli/commands/core/quickstart.d.ts.map +1 -0
  121. package/dist/cli/run-cli/commands/core/quickstart.js +43 -0
  122. package/dist/cli/run-cli/commands/core/role.d.ts +9 -0
  123. package/dist/cli/run-cli/commands/core/role.d.ts.map +1 -0
  124. package/dist/cli/run-cli/commands/core/role.js +128 -0
  125. package/dist/cli/run-cli/commands/core.d.ts +4 -24
  126. package/dist/cli/run-cli/commands/core.d.ts.map +1 -1
  127. package/dist/cli/run-cli/commands/core.js +4 -630
  128. package/dist/cli/run-cli/error-guidance.js +10 -0
  129. package/dist/cli/run-cli/globals.d.ts +5 -2
  130. package/dist/cli/run-cli/globals.d.ts.map +1 -1
  131. package/dist/cli/run-cli/globals.js +82 -86
  132. package/dist/cli/run-cli.d.ts.map +1 -1
  133. package/dist/cli/run-cli.js +137 -100
  134. package/dist/cli/run-cli.test-helpers.d.ts +21 -0
  135. package/dist/cli/run-cli.test-helpers.d.ts.map +1 -1
  136. package/dist/cli/run-cli.test-helpers.js +88 -4
  137. package/dist/cli/spec/help.d.ts +10 -2
  138. package/dist/cli/spec/help.d.ts.map +1 -1
  139. package/dist/cli/spec/help.js +7 -5
  140. package/dist/cli/spec/registry.d.ts +27 -1
  141. package/dist/cli/spec/registry.d.ts.map +1 -1
  142. package/dist/cli/spec/registry.js +98 -25
  143. package/dist/commands/backend/sync.command.d.ts +3 -5
  144. package/dist/commands/backend/sync.command.d.ts.map +1 -1
  145. package/dist/commands/backend/sync.command.js +9 -12
  146. package/dist/commands/backend.d.ts.map +1 -1
  147. package/dist/commands/backend.js +8 -7
  148. package/dist/commands/branch/base.command.d.ts +2 -3
  149. package/dist/commands/branch/base.command.d.ts.map +1 -1
  150. package/dist/commands/branch/base.command.js +8 -12
  151. package/dist/commands/branch/base.d.ts.map +1 -1
  152. package/dist/commands/branch/base.js +11 -7
  153. package/dist/commands/branch/cleanup-merged.d.ts.map +1 -1
  154. package/dist/commands/branch/cleanup-merged.js +9 -8
  155. package/dist/commands/branch/remove.d.ts.map +1 -1
  156. package/dist/commands/branch/remove.js +4 -3
  157. package/dist/commands/branch/status.d.ts.map +1 -1
  158. package/dist/commands/branch/status.js +4 -3
  159. package/dist/commands/branch/work-start.d.ts.map +1 -1
  160. package/dist/commands/branch/work-start.js +48 -5
  161. package/dist/commands/cleanup/merged.command.d.ts +2 -3
  162. package/dist/commands/cleanup/merged.command.d.ts.map +1 -1
  163. package/dist/commands/cleanup/merged.command.js +8 -12
  164. package/dist/commands/docs/cli.command.js +2 -2
  165. package/dist/commands/doctor/runtime.js +1 -1
  166. package/dist/commands/doctor/workflow.d.ts.map +1 -1
  167. package/dist/commands/doctor/workflow.js +10 -1
  168. package/dist/commands/finish.spec.d.ts.map +1 -1
  169. package/dist/commands/finish.spec.js +7 -0
  170. package/dist/commands/guard/guard.command.d.ts +3 -3
  171. package/dist/commands/guard/guard.command.d.ts.map +1 -1
  172. package/dist/commands/guard/guard.command.js +9 -14
  173. package/dist/commands/guard/impl/commands.d.ts +2 -0
  174. package/dist/commands/guard/impl/commands.d.ts.map +1 -1
  175. package/dist/commands/guard/impl/commands.js +55 -7
  176. package/dist/commands/guard/impl/policy.d.ts +1 -0
  177. package/dist/commands/guard/impl/policy.d.ts.map +1 -1
  178. package/dist/commands/guard/impl/policy.js +9 -6
  179. package/dist/commands/hooks/hooks.command.d.ts +3 -3
  180. package/dist/commands/hooks/hooks.command.d.ts.map +1 -1
  181. package/dist/commands/hooks/hooks.command.js +9 -11
  182. package/dist/commands/pr/check.d.ts.map +1 -1
  183. package/dist/commands/pr/check.js +90 -18
  184. package/dist/commands/pr/integrate/cmd.d.ts.map +1 -1
  185. package/dist/commands/pr/integrate/cmd.js +31 -3
  186. package/dist/commands/pr/integrate/internal/cleanup.d.ts +12 -0
  187. package/dist/commands/pr/integrate/internal/cleanup.d.ts.map +1 -0
  188. package/dist/commands/pr/integrate/internal/cleanup.js +46 -0
  189. package/dist/commands/pr/integrate/internal/finalize.d.ts +4 -0
  190. package/dist/commands/pr/integrate/internal/finalize.d.ts.map +1 -1
  191. package/dist/commands/pr/integrate/internal/finalize.js +34 -40
  192. package/dist/commands/pr/integrate/internal/merge.d.ts +6 -0
  193. package/dist/commands/pr/integrate/internal/merge.d.ts.map +1 -1
  194. package/dist/commands/pr/integrate/internal/merge.js +92 -0
  195. package/dist/commands/pr/integrate/internal/prepare.d.ts +1 -0
  196. package/dist/commands/pr/integrate/internal/prepare.d.ts.map +1 -1
  197. package/dist/commands/pr/integrate/internal/prepare.js +1 -0
  198. package/dist/commands/pr/integrate/verify.d.ts.map +1 -1
  199. package/dist/commands/pr/integrate/verify.js +4 -3
  200. package/dist/commands/pr/note.d.ts.map +1 -1
  201. package/dist/commands/pr/note.js +3 -2
  202. package/dist/commands/pr/open.d.ts.map +1 -1
  203. package/dist/commands/pr/open.js +9 -12
  204. package/dist/commands/pr/pr.command.d.ts +3 -4
  205. package/dist/commands/pr/pr.command.d.ts.map +1 -1
  206. package/dist/commands/pr/pr.command.js +6 -11
  207. package/dist/commands/pr/update.d.ts.map +1 -1
  208. package/dist/commands/pr/update.js +5 -10
  209. package/dist/commands/recipes/cache.command.d.ts +3 -4
  210. package/dist/commands/recipes/cache.command.d.ts.map +1 -1
  211. package/dist/commands/recipes/cache.command.js +8 -26
  212. package/dist/commands/recipes/impl/apply.d.ts +1 -1
  213. package/dist/commands/recipes/impl/apply.d.ts.map +1 -1
  214. package/dist/commands/recipes/impl/apply.js +1 -1
  215. package/dist/commands/recipes/impl/commands/explain.js +1 -1
  216. package/dist/commands/recipes/impl/commands/install.d.ts.map +1 -1
  217. package/dist/commands/recipes/impl/commands/install.js +1 -2
  218. package/dist/commands/recipes/impl/installed-recipes.d.ts +1 -1
  219. package/dist/commands/recipes/impl/installed-recipes.d.ts.map +1 -1
  220. package/dist/commands/recipes/impl/installed-recipes.js +1 -2
  221. package/dist/commands/recipes/impl/manifest.d.ts.map +1 -1
  222. package/dist/commands/recipes/impl/manifest.js +0 -10
  223. package/dist/commands/recipes/impl/project-installed-recipes.d.ts +1 -1
  224. package/dist/commands/recipes/impl/project-installed-recipes.d.ts.map +1 -1
  225. package/dist/commands/recipes/impl/project-installed-recipes.js +1 -2
  226. package/dist/commands/recipes/impl/resolver.d.ts +1 -1
  227. package/dist/commands/recipes/impl/resolver.d.ts.map +1 -1
  228. package/dist/commands/recipes/impl/resolver.js +26 -16
  229. package/dist/commands/recipes/impl/scenario.d.ts.map +1 -1
  230. package/dist/commands/recipes/impl/scenario.js +80 -0
  231. package/dist/commands/recipes/impl/types.d.ts +27 -13
  232. package/dist/commands/recipes/impl/types.d.ts.map +1 -1
  233. package/dist/commands/recipes/recipes.command.d.ts +3 -4
  234. package/dist/commands/recipes/recipes.command.d.ts.map +1 -1
  235. package/dist/commands/recipes/recipes.command.js +8 -34
  236. package/dist/commands/recipes.d.ts +4 -4
  237. package/dist/commands/recipes.d.ts.map +1 -1
  238. package/dist/commands/recipes.js +3 -3
  239. package/dist/commands/recipes.test-helpers.d.ts +17 -0
  240. package/dist/commands/recipes.test-helpers.d.ts.map +1 -1
  241. package/dist/commands/recipes.test-helpers.js +56 -2
  242. package/dist/commands/release/apply.command.d.ts.map +1 -1
  243. package/dist/commands/release/apply.command.js +77 -56
  244. package/dist/commands/release/plan.command.d.ts.map +1 -1
  245. package/dist/commands/release/plan.command.js +7 -3
  246. package/dist/commands/release/release.command.d.ts +3 -3
  247. package/dist/commands/release/release.command.d.ts.map +1 -1
  248. package/dist/commands/release/release.command.js +9 -11
  249. package/dist/commands/release.test-helpers.d.ts +20 -0
  250. package/dist/commands/release.test-helpers.d.ts.map +1 -0
  251. package/dist/commands/release.test-helpers.js +37 -0
  252. package/dist/commands/runtime.command.d.ts +7 -7
  253. package/dist/commands/runtime.command.d.ts.map +1 -1
  254. package/dist/commands/runtime.command.js +29 -33
  255. package/dist/commands/scenario/execute.command.d.ts +8 -0
  256. package/dist/commands/scenario/execute.command.d.ts.map +1 -0
  257. package/dist/commands/scenario/execute.command.js +117 -0
  258. package/dist/commands/scenario/impl/commands.d.ts.map +1 -1
  259. package/dist/commands/scenario/impl/commands.js +45 -32
  260. package/dist/commands/scenario/run.command.js +2 -2
  261. package/dist/commands/scenario/scenario.command.d.ts +3 -4
  262. package/dist/commands/scenario/scenario.command.d.ts.map +1 -1
  263. package/dist/commands/scenario/scenario.command.js +8 -26
  264. package/dist/commands/shared/git-context.d.ts +1 -0
  265. package/dist/commands/shared/git-context.d.ts.map +1 -1
  266. package/dist/commands/shared/git-context.js +4 -2
  267. package/dist/commands/shared/git-ops.d.ts +1 -0
  268. package/dist/commands/shared/git-ops.d.ts.map +1 -1
  269. package/dist/commands/shared/git-ops.js +13 -0
  270. package/dist/commands/shared/operator-pipeline.d.ts +10 -0
  271. package/dist/commands/shared/operator-pipeline.d.ts.map +1 -0
  272. package/dist/commands/shared/operator-pipeline.js +16 -0
  273. package/dist/commands/shared/pr-meta.d.ts +32 -12
  274. package/dist/commands/shared/pr-meta.d.ts.map +1 -1
  275. package/dist/commands/shared/pr-meta.js +49 -14
  276. package/dist/commands/shared/reconcile-check.d.ts.map +1 -1
  277. package/dist/commands/shared/reconcile-check.js +28 -3
  278. package/dist/commands/shared/task-backend.d.ts +10 -6
  279. package/dist/commands/shared/task-backend.d.ts.map +1 -1
  280. package/dist/commands/shared/task-backend.js +99 -25
  281. package/dist/commands/shared/task-handoff.d.ts +64 -0
  282. package/dist/commands/shared/task-handoff.d.ts.map +1 -0
  283. package/dist/commands/shared/task-handoff.js +151 -0
  284. package/dist/commands/shared/task-mutation.d.ts +36 -0
  285. package/dist/commands/shared/task-mutation.d.ts.map +1 -0
  286. package/dist/commands/shared/task-mutation.js +67 -0
  287. package/dist/commands/shared/task-store.d.ts +5 -1
  288. package/dist/commands/shared/task-store.d.ts.map +1 -1
  289. package/dist/commands/shared/task-store.js +72 -92
  290. package/dist/commands/task/add.d.ts.map +1 -1
  291. package/dist/commands/task/add.js +41 -39
  292. package/dist/commands/task/block.d.ts.map +1 -1
  293. package/dist/commands/task/block.js +31 -110
  294. package/dist/commands/task/close-duplicate.d.ts.map +1 -1
  295. package/dist/commands/task/close-duplicate.js +0 -7
  296. package/dist/commands/task/close-noop.d.ts.map +1 -1
  297. package/dist/commands/task/close-noop.js +0 -21
  298. package/dist/commands/task/close-shared.d.ts +0 -2
  299. package/dist/commands/task/close-shared.d.ts.map +1 -1
  300. package/dist/commands/task/close-shared.js +25 -55
  301. package/dist/commands/task/comment.d.ts.map +1 -1
  302. package/dist/commands/task/comment.js +48 -37
  303. package/dist/commands/task/derive.d.ts.map +1 -1
  304. package/dist/commands/task/derive.js +14 -7
  305. package/dist/commands/task/doc.command.d.ts.map +1 -1
  306. package/dist/commands/task/doc.command.js +7 -6
  307. package/dist/commands/task/doc.d.ts.map +1 -1
  308. package/dist/commands/task/doc.js +58 -62
  309. package/dist/commands/task/finish-shared.d.ts +60 -0
  310. package/dist/commands/task/finish-shared.d.ts.map +1 -0
  311. package/dist/commands/task/finish-shared.js +181 -0
  312. package/dist/commands/task/finish.d.ts +1 -0
  313. package/dist/commands/task/finish.d.ts.map +1 -1
  314. package/dist/commands/task/finish.js +79 -210
  315. package/dist/commands/task/handoff-record.command.d.ts +17 -0
  316. package/dist/commands/task/handoff-record.command.d.ts.map +1 -0
  317. package/dist/commands/task/handoff-record.command.js +140 -0
  318. package/dist/commands/task/handoff-show.command.d.ts +8 -0
  319. package/dist/commands/task/handoff-show.command.d.ts.map +1 -0
  320. package/dist/commands/task/handoff-show.command.js +77 -0
  321. package/dist/commands/task/handoff.command.d.ts +7 -0
  322. package/dist/commands/task/handoff.command.d.ts.map +1 -0
  323. package/dist/commands/task/handoff.command.js +21 -0
  324. package/dist/commands/task/handoff.shared.d.ts +39 -0
  325. package/dist/commands/task/handoff.shared.d.ts.map +1 -0
  326. package/dist/commands/task/handoff.shared.js +134 -0
  327. package/dist/commands/task/hosted-close.command.d.ts +9 -0
  328. package/dist/commands/task/hosted-close.command.d.ts.map +1 -0
  329. package/dist/commands/task/hosted-close.command.js +190 -0
  330. package/dist/commands/task/hosted-merge-sync.d.ts +40 -0
  331. package/dist/commands/task/hosted-merge-sync.d.ts.map +1 -0
  332. package/dist/commands/task/hosted-merge-sync.js +277 -0
  333. package/dist/commands/task/list.d.ts.map +1 -1
  334. package/dist/commands/task/list.js +7 -24
  335. package/dist/commands/task/new.d.ts.map +1 -1
  336. package/dist/commands/task/new.js +26 -6
  337. package/dist/commands/task/next.d.ts.map +1 -1
  338. package/dist/commands/task/next.js +10 -28
  339. package/dist/commands/task/normalize.command.d.ts +1 -0
  340. package/dist/commands/task/normalize.command.d.ts.map +1 -1
  341. package/dist/commands/task/normalize.command.js +12 -0
  342. package/dist/commands/task/normalize.d.ts +1 -0
  343. package/dist/commands/task/normalize.d.ts.map +1 -1
  344. package/dist/commands/task/normalize.js +21 -9
  345. package/dist/commands/task/plan.command.d.ts +3 -4
  346. package/dist/commands/task/plan.command.d.ts.map +1 -1
  347. package/dist/commands/task/plan.command.js +6 -12
  348. package/dist/commands/task/plan.d.ts.map +1 -1
  349. package/dist/commands/task/plan.js +96 -103
  350. package/dist/commands/task/reclaim.command.d.ts +11 -0
  351. package/dist/commands/task/reclaim.command.d.ts.map +1 -0
  352. package/dist/commands/task/reclaim.command.js +102 -0
  353. package/dist/commands/task/resume-context.command.d.ts +9 -0
  354. package/dist/commands/task/resume-context.command.d.ts.map +1 -0
  355. package/dist/commands/task/resume-context.command.js +60 -0
  356. package/dist/commands/task/run-cancel.command.d.ts +6 -0
  357. package/dist/commands/task/run-cancel.command.d.ts.map +1 -0
  358. package/dist/commands/task/run-cancel.command.js +45 -0
  359. package/dist/commands/task/run-cancel.spec.d.ts +7 -0
  360. package/dist/commands/task/run-cancel.spec.d.ts.map +1 -0
  361. package/dist/commands/task/run-cancel.spec.js +20 -0
  362. package/dist/commands/task/run-resume.command.d.ts +6 -0
  363. package/dist/commands/task/run-resume.command.d.ts.map +1 -0
  364. package/dist/commands/task/run-resume.command.js +55 -0
  365. package/dist/commands/task/run-resume.spec.d.ts +7 -0
  366. package/dist/commands/task/run-resume.spec.d.ts.map +1 -0
  367. package/dist/commands/task/run-resume.spec.js +20 -0
  368. package/dist/commands/task/run-retry.command.d.ts +6 -0
  369. package/dist/commands/task/run-retry.command.d.ts.map +1 -0
  370. package/dist/commands/task/run-retry.command.js +56 -0
  371. package/dist/commands/task/run-retry.spec.d.ts +7 -0
  372. package/dist/commands/task/run-retry.spec.d.ts.map +1 -0
  373. package/dist/commands/task/run-retry.spec.js +20 -0
  374. package/dist/commands/task/run-show.command.d.ts +6 -0
  375. package/dist/commands/task/run-show.command.d.ts.map +1 -0
  376. package/dist/commands/task/run-show.command.js +133 -0
  377. package/dist/commands/task/run-show.spec.d.ts +8 -0
  378. package/dist/commands/task/run-show.spec.d.ts.map +1 -0
  379. package/dist/commands/task/run-show.spec.js +44 -0
  380. package/dist/commands/task/run-tail.command.d.ts +6 -0
  381. package/dist/commands/task/run-tail.command.d.ts.map +1 -0
  382. package/dist/commands/task/run-tail.command.js +26 -0
  383. package/dist/commands/task/run-tail.spec.d.ts +8 -0
  384. package/dist/commands/task/run-tail.spec.d.ts.map +1 -0
  385. package/dist/commands/task/run-tail.spec.js +51 -0
  386. package/dist/commands/task/run-trace.command.d.ts +6 -0
  387. package/dist/commands/task/run-trace.command.d.ts.map +1 -0
  388. package/dist/commands/task/run-trace.command.js +25 -0
  389. package/dist/commands/task/run-trace.spec.d.ts +7 -0
  390. package/dist/commands/task/run-trace.spec.d.ts.map +1 -0
  391. package/dist/commands/task/run-trace.spec.js +31 -0
  392. package/dist/commands/task/run.command.d.ts +6 -0
  393. package/dist/commands/task/run.command.d.ts.map +1 -0
  394. package/dist/commands/task/run.command.js +74 -0
  395. package/dist/commands/task/run.spec.d.ts +7 -0
  396. package/dist/commands/task/run.spec.d.ts.map +1 -0
  397. package/dist/commands/task/run.spec.js +26 -0
  398. package/dist/commands/task/scaffold.d.ts.map +1 -1
  399. package/dist/commands/task/scaffold.js +4 -2
  400. package/dist/commands/task/scrub.d.ts.map +1 -1
  401. package/dist/commands/task/scrub.js +27 -24
  402. package/dist/commands/task/search.d.ts.map +1 -1
  403. package/dist/commands/task/search.js +21 -31
  404. package/dist/commands/task/set-status.d.ts.map +1 -1
  405. package/dist/commands/task/set-status.js +36 -152
  406. package/dist/commands/task/shared/dependencies.d.ts +4 -4
  407. package/dist/commands/task/shared/dependencies.d.ts.map +1 -1
  408. package/dist/commands/task/shared/dependencies.js +10 -2
  409. package/dist/commands/task/shared/docs.d.ts +6 -1
  410. package/dist/commands/task/shared/docs.d.ts.map +1 -1
  411. package/dist/commands/task/shared/docs.js +13 -0
  412. package/dist/commands/task/shared/listing.d.ts +16 -2
  413. package/dist/commands/task/shared/listing.d.ts.map +1 -1
  414. package/dist/commands/task/shared/listing.js +56 -0
  415. package/dist/commands/task/shared/transition-command.d.ts +15 -0
  416. package/dist/commands/task/shared/transition-command.d.ts.map +1 -0
  417. package/dist/commands/task/shared/transition-command.js +43 -0
  418. package/dist/commands/task/shared/transitions.d.ts +39 -0
  419. package/dist/commands/task/shared/transitions.d.ts.map +1 -1
  420. package/dist/commands/task/shared/transitions.js +62 -1
  421. package/dist/commands/task/shared/workflow-transition-service.d.ts +75 -0
  422. package/dist/commands/task/shared/workflow-transition-service.d.ts.map +1 -0
  423. package/dist/commands/task/shared/workflow-transition-service.js +226 -0
  424. package/dist/commands/task/shared.d.ts +5 -3
  425. package/dist/commands/task/shared.d.ts.map +1 -1
  426. package/dist/commands/task/shared.js +5 -3
  427. package/dist/commands/task/show.d.ts.map +1 -1
  428. package/dist/commands/task/show.js +37 -3
  429. package/dist/commands/task/start.d.ts.map +1 -1
  430. package/dist/commands/task/start.js +33 -119
  431. package/dist/commands/task/task.command.d.ts +3 -4
  432. package/dist/commands/task/task.command.d.ts.map +1 -1
  433. package/dist/commands/task/task.command.js +22 -37
  434. package/dist/commands/task/verify-record.d.ts.map +1 -1
  435. package/dist/commands/task/verify-record.js +16 -141
  436. package/dist/commands/task/verify.command.d.ts.map +1 -1
  437. package/dist/commands/task/verify.command.js +7 -6
  438. package/dist/commands/task.test-helpers.d.ts +13 -0
  439. package/dist/commands/task.test-helpers.d.ts.map +1 -0
  440. package/dist/commands/task.test-helpers.js +65 -0
  441. package/dist/commands/upgrade/materialize.d.ts +28 -0
  442. package/dist/commands/upgrade/materialize.d.ts.map +1 -0
  443. package/dist/commands/upgrade/materialize.js +154 -0
  444. package/dist/commands/upgrade/plan.d.ts +18 -0
  445. package/dist/commands/upgrade/plan.d.ts.map +1 -0
  446. package/dist/commands/upgrade/plan.js +219 -0
  447. package/dist/commands/upgrade/policy.d.ts +24 -0
  448. package/dist/commands/upgrade/policy.d.ts.map +1 -0
  449. package/dist/commands/upgrade/policy.js +182 -0
  450. package/dist/commands/upgrade/report.d.ts.map +1 -1
  451. package/dist/commands/upgrade/report.js +7 -5
  452. package/dist/commands/upgrade.d.ts.map +1 -1
  453. package/dist/commands/upgrade.js +154 -642
  454. package/dist/commands/workflow.command.d.ts +3 -4
  455. package/dist/commands/workflow.command.d.ts.map +1 -1
  456. package/dist/commands/workflow.command.js +8 -25
  457. package/dist/ports/task-backend-port.d.ts +3 -1
  458. package/dist/ports/task-backend-port.d.ts.map +1 -1
  459. package/dist/runner/adapters/codex.d.ts +9 -0
  460. package/dist/runner/adapters/codex.d.ts.map +1 -0
  461. package/dist/runner/adapters/codex.js +414 -0
  462. package/dist/runner/adapters/custom.d.ts +12 -0
  463. package/dist/runner/adapters/custom.d.ts.map +1 -0
  464. package/dist/runner/adapters/custom.js +512 -0
  465. package/dist/runner/adapters/index.d.ts +8 -0
  466. package/dist/runner/adapters/index.d.ts.map +1 -0
  467. package/dist/runner/adapters/index.js +15 -0
  468. package/dist/runner/adapters/recipe-run-profile.d.ts +8 -0
  469. package/dist/runner/adapters/recipe-run-profile.d.ts.map +1 -0
  470. package/dist/runner/adapters/recipe-run-profile.js +53 -0
  471. package/dist/runner/adapters/shared.d.ts +45 -0
  472. package/dist/runner/adapters/shared.d.ts.map +1 -0
  473. package/dist/runner/adapters/shared.js +58 -0
  474. package/dist/runner/artifacts.d.ts +31 -0
  475. package/dist/runner/artifacts.d.ts.map +1 -0
  476. package/dist/runner/artifacts.js +153 -0
  477. package/dist/runner/codex-approval-probe.d.ts +23 -0
  478. package/dist/runner/codex-approval-probe.d.ts.map +1 -0
  479. package/dist/runner/codex-approval-probe.js +55 -0
  480. package/dist/runner/codex-smoke.d.ts +11 -0
  481. package/dist/runner/codex-smoke.d.ts.map +1 -0
  482. package/dist/runner/codex-smoke.js +45 -0
  483. package/dist/runner/config.d.ts +6 -0
  484. package/dist/runner/config.d.ts.map +1 -0
  485. package/dist/runner/config.js +15 -0
  486. package/dist/runner/context/base-prompts.d.ts +10 -0
  487. package/dist/runner/context/base-prompts.d.ts.map +1 -0
  488. package/dist/runner/context/base-prompts.js +255 -0
  489. package/dist/runner/context/recipe-context.d.ts +17 -0
  490. package/dist/runner/context/recipe-context.d.ts.map +1 -0
  491. package/dist/runner/context/recipe-context.js +48 -0
  492. package/dist/runner/context/task-context.d.ts +24 -0
  493. package/dist/runner/context/task-context.d.ts.map +1 -0
  494. package/dist/runner/context/task-context.js +266 -0
  495. package/dist/runner/index.d.ts +12 -0
  496. package/dist/runner/index.d.ts.map +1 -0
  497. package/dist/runner/index.js +11 -0
  498. package/dist/runner/policy-decision.d.ts +12 -0
  499. package/dist/runner/policy-decision.d.ts.map +1 -0
  500. package/dist/runner/policy-decision.js +89 -0
  501. package/dist/runner/policy-display.d.ts +4 -0
  502. package/dist/runner/policy-display.d.ts.map +1 -0
  503. package/dist/runner/policy-display.js +41 -0
  504. package/dist/runner/process-supervision.d.ts +48 -0
  505. package/dist/runner/process-supervision.d.ts.map +1 -0
  506. package/dist/runner/process-supervision.js +490 -0
  507. package/dist/runner/result-manifest-policy.d.ts +9 -0
  508. package/dist/runner/result-manifest-policy.d.ts.map +1 -0
  509. package/dist/runner/result-manifest-policy.js +96 -0
  510. package/dist/runner/result-manifest.d.ts +30 -0
  511. package/dist/runner/result-manifest.d.ts.map +1 -0
  512. package/dist/runner/result-manifest.js +322 -0
  513. package/dist/runner/run-id.d.ts +2 -0
  514. package/dist/runner/run-id.d.ts.map +1 -0
  515. package/dist/runner/run-id.js +3 -0
  516. package/dist/runner/run-repository.d.ts +51 -0
  517. package/dist/runner/run-repository.d.ts.map +1 -0
  518. package/dist/runner/run-repository.js +222 -0
  519. package/dist/runner/task-run-paths.d.ts +19 -0
  520. package/dist/runner/task-run-paths.d.ts.map +1 -0
  521. package/dist/runner/task-run-paths.js +25 -0
  522. package/dist/runner/task-state.d.ts +9 -0
  523. package/dist/runner/task-state.d.ts.map +1 -0
  524. package/dist/runner/task-state.js +354 -0
  525. package/dist/runner/test-helpers.d.ts +30 -0
  526. package/dist/runner/test-helpers.d.ts.map +1 -0
  527. package/dist/runner/test-helpers.js +97 -0
  528. package/dist/runner/trace-artifacts.d.ts +14 -0
  529. package/dist/runner/trace-artifacts.d.ts.map +1 -0
  530. package/dist/runner/trace-artifacts.js +80 -0
  531. package/dist/runner/trace.d.ts +10 -0
  532. package/dist/runner/trace.d.ts.map +1 -0
  533. package/dist/runner/trace.js +37 -0
  534. package/dist/runner/types.d.ts +317 -0
  535. package/dist/runner/types.d.ts.map +1 -0
  536. package/dist/runner/types.js +3 -0
  537. package/dist/runner/usecases/scenario-materialize-task.d.ts +29 -0
  538. package/dist/runner/usecases/scenario-materialize-task.d.ts.map +1 -0
  539. package/dist/runner/usecases/scenario-materialize-task.js +151 -0
  540. package/dist/runner/usecases/task-run-inspect.d.ts +41 -0
  541. package/dist/runner/usecases/task-run-inspect.d.ts.map +1 -0
  542. package/dist/runner/usecases/task-run-inspect.js +74 -0
  543. package/dist/runner/usecases/task-run-lifecycle-cancel.d.ts +10 -0
  544. package/dist/runner/usecases/task-run-lifecycle-cancel.d.ts.map +1 -0
  545. package/dist/runner/usecases/task-run-lifecycle-cancel.js +172 -0
  546. package/dist/runner/usecases/task-run-lifecycle-replay.d.ts +18 -0
  547. package/dist/runner/usecases/task-run-lifecycle-replay.d.ts.map +1 -0
  548. package/dist/runner/usecases/task-run-lifecycle-replay.js +128 -0
  549. package/dist/runner/usecases/task-run-lifecycle-shared.d.ts +45 -0
  550. package/dist/runner/usecases/task-run-lifecycle-shared.d.ts.map +1 -0
  551. package/dist/runner/usecases/task-run-lifecycle-shared.js +172 -0
  552. package/dist/runner/usecases/task-run-lifecycle.d.ts +4 -0
  553. package/dist/runner/usecases/task-run-lifecycle.d.ts.map +1 -0
  554. package/dist/runner/usecases/task-run-lifecycle.js +2 -0
  555. package/dist/runner/usecases/task-run.d.ts +32 -0
  556. package/dist/runner/usecases/task-run.d.ts.map +1 -0
  557. package/dist/runner/usecases/task-run.js +278 -0
  558. package/dist/shared/agent-emoji.d.ts.map +1 -1
  559. package/dist/shared/agent-emoji.js +1 -0
  560. package/dist/shared/errors.d.ts +1 -1
  561. package/dist/shared/errors.d.ts.map +1 -1
  562. package/dist/shared/guards.d.ts.map +1 -1
  563. package/dist/shared/guards.js +1 -0
  564. package/dist/shared/repo-cli-version.d.ts.map +1 -1
  565. package/dist/shared/repo-cli-version.js +7 -5
  566. package/dist/shared/task-doc-conflicts.d.ts +12 -0
  567. package/dist/shared/task-doc-conflicts.d.ts.map +1 -0
  568. package/dist/shared/task-doc-conflicts.js +40 -0
  569. package/dist/shared/task-doc-state.d.ts +10 -0
  570. package/dist/shared/task-doc-state.d.ts.map +1 -0
  571. package/dist/shared/task-doc-state.js +15 -0
  572. package/dist/test-helpers/fs.d.ts +2 -0
  573. package/dist/test-helpers/fs.d.ts.map +1 -0
  574. package/dist/test-helpers/fs.js +9 -0
  575. package/dist/usecases/context/resolve-context.d.ts +2 -0
  576. package/dist/usecases/context/resolve-context.d.ts.map +1 -1
  577. package/dist/usecases/context/resolve-context.js +4 -1
  578. package/dist/usecases/task/task-list-usecase.d.ts.map +1 -1
  579. package/dist/usecases/task/task-list-usecase.js +2 -8
  580. package/dist/workflow-runtime/fix.d.ts +9 -1
  581. package/dist/workflow-runtime/fix.d.ts.map +1 -1
  582. package/dist/workflow-runtime/fix.js +9 -1
  583. package/package.json +3 -2
  584. package/dist/backends/task-backend.test-helpers.d.ts +0 -4
  585. package/dist/backends/task-backend.test-helpers.d.ts.map +0 -1
  586. package/dist/backends/task-backend.test-helpers.js +0 -33
  587. package/dist/cli/run-cli/catalog.d.ts +0 -7
  588. package/dist/cli/run-cli/catalog.d.ts.map +0 -1
  589. package/dist/cli/run-cli/catalog.js +0 -22
  590. package/dist/cli/run-cli.core.pr-flow.test-helpers.d.ts +0 -3
  591. package/dist/cli/run-cli.core.pr-flow.test-helpers.d.ts.map +0 -1
  592. package/dist/cli/run-cli.core.pr-flow.test-helpers.js +0 -41
  593. package/dist/cli/run-cli.core.tasks.test-helpers.d.ts +0 -2
  594. package/dist/cli/run-cli.core.tasks.test-helpers.d.ts.map +0 -1
  595. package/dist/cli/run-cli.core.tasks.test-helpers.js +0 -6
  596. package/dist/commands/block.command.d.ts +0 -4
  597. package/dist/commands/block.command.d.ts.map +0 -1
  598. package/dist/commands/block.command.js +0 -2
  599. package/dist/commands/doctor.command.d.ts +0 -3
  600. package/dist/commands/doctor.command.d.ts.map +0 -1
  601. package/dist/commands/doctor.command.js +0 -2
  602. package/dist/commands/finish.command.d.ts +0 -4
  603. package/dist/commands/finish.command.d.ts.map +0 -1
  604. package/dist/commands/finish.command.js +0 -2
  605. package/dist/commands/recipes/install.command.d.ts +0 -3
  606. package/dist/commands/recipes/install.command.d.ts.map +0 -1
  607. package/dist/commands/recipes/install.command.js +0 -2
  608. package/dist/commands/start.command.d.ts +0 -4
  609. package/dist/commands/start.command.d.ts.map +0 -1
  610. package/dist/commands/start.command.js +0 -2
  611. package/dist/commands/task/list.command.d.ts +0 -4
  612. package/dist/commands/task/list.command.d.ts.map +0 -1
  613. package/dist/commands/task/list.command.js +0 -2
  614. package/dist/commands/task/next.command.d.ts +0 -4
  615. package/dist/commands/task/next.command.d.ts.map +0 -1
  616. package/dist/commands/task/next.command.js +0 -2
  617. package/dist/commands/task/search.command.d.ts +0 -4
  618. package/dist/commands/task/search.command.d.ts.map +0 -1
  619. package/dist/commands/task/search.command.js +0 -2
  620. package/dist/commands/task/show.command.d.ts +0 -4
  621. package/dist/commands/task/show.command.d.ts.map +0 -1
  622. package/dist/commands/task/show.command.js +0 -2
  623. package/dist/commands/verify.command.d.ts +0 -4
  624. package/dist/commands/verify.command.d.ts.map +0 -1
  625. package/dist/commands/verify.command.js +0 -2
@@ -1,5 +1,6 @@
1
+ import { type TaskDocVersion } from "@agentplaneorg/core";
1
2
  export declare const TASK_ID_RE: RegExp;
2
3
  export declare const DEFAULT_DOC_UPDATED_BY = "agentplane";
3
- export declare const DOC_VERSION = 3;
4
+ export declare const DOC_VERSION: TaskDocVersion;
4
5
  export declare const SUPPORTED_DOC_VERSIONS: readonly [2, 3];
5
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":"AAEA,eAAO,MAAM,UAAU,QAA6D,CAAC;AACrF,eAAO,MAAM,sBAAsB,eAAe,CAAC;AACnD,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,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,iBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"doc.d.ts","sourceRoot":"","sources":["../../../../src/backends/task-backend/shared/doc.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAExD,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;AAC/C,KAAK,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;AAE1D,QAAA,MAAM,cAAc,EAAE,cAAmC,CAAC;AAC1D,QAAA,MAAM,YAAY,EAAE,YAA+B,CAAC;AAEpD,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAyBD,wBAAgB,kCAAkC,CAChD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,EAAE,MAAM,GACf,MAAM,CAaR;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CASpF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAE,CAAC,GAAG,CAAe,GAAG,CAAC,GAAG,CAAC,CAExF;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,EACjE,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAUN;AAED,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"doc.d.ts","sourceRoot":"","sources":["../../../../src/backends/task-backend/shared/doc.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAExD,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;AAC/C,KAAK,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;AAG1D,QAAA,MAAM,cAAc,EAAE,cAAmC,CAAC;AAC1D,QAAA,MAAM,YAAY,EAAE,YAA+B,CAAC;AAGpD,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAmBD,wBAAgB,kCAAkC,CAChD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,EAAE,MAAM,GACf,MAAM,CAaR;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYpF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAE,CAAC,GAAG,CAAe,GAAG,CAAC,GAAG,CAAC,CAExF;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,EACjE,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAUN;AAED,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC"}
@@ -1,8 +1,9 @@
1
- import { extractTaskDoc as extractTaskDocCore, mergeTaskDoc as mergeTaskDocCore, } from "@agentplaneorg/core";
1
+ import { extractTaskDoc as extractTaskDocCore, mergeTaskDoc as mergeTaskDocCore, normalizeTaskDocVersion as normalizeTaskDocVersionCore, resolveTaskDocUpdatedBy, } from "@agentplaneorg/core";
2
2
  import { isRecord } from "../../../shared/guards.js";
3
3
  import { DEFAULT_DOC_UPDATED_BY, DOC_VERSION } from "./constants.js";
4
4
  const extractTaskDoc = extractTaskDocCore;
5
5
  const mergeTaskDoc = mergeTaskDocCore;
6
+ const normalizeTaskDocVersion = normalizeTaskDocVersionCore;
6
7
  export function nowIso() {
7
8
  return new Date().toISOString();
8
9
  }
@@ -16,56 +17,41 @@ function normalizeUpdatedBy(value) {
16
17
  return "";
17
18
  return trimmed;
18
19
  }
19
- function lastCommentAuthor(comments) {
20
+ function toTaskDocMutationComments(comments) {
20
21
  if (!Array.isArray(comments))
21
22
  return null;
22
23
  const entries = comments;
23
- for (let i = entries.length - 1; i >= 0; i -= 1) {
24
- const entry = entries[i];
24
+ return entries.flatMap((entry) => {
25
25
  if (!isRecord(entry))
26
- continue;
27
- const author = entry.author;
28
- if (typeof author === "string") {
29
- const trimmed = author.trim();
30
- if (trimmed)
31
- return trimmed;
32
- }
33
- }
34
- return null;
26
+ return [];
27
+ return [{ author: typeof entry.author === "string" ? entry.author : undefined }];
28
+ });
35
29
  }
36
30
  export function resolveDocUpdatedByFromFrontmatter(frontmatter, updatedBy, fallback) {
37
- if (updatedBy !== undefined) {
38
- const explicit = normalizeUpdatedBy(updatedBy);
39
- if (explicit)
40
- return explicit;
41
- }
42
- const author = lastCommentAuthor(frontmatter.comments);
43
- if (author)
44
- return author;
45
- const existing = normalizeUpdatedBy(frontmatter.doc_updated_by);
46
- if (existing)
47
- return existing;
48
- const owner = normalizeUpdatedBy(frontmatter.owner);
49
- if (owner)
50
- return owner;
31
+ const explicit = updatedBy === undefined ? undefined : normalizeUpdatedBy(updatedBy);
32
+ const resolved = resolveTaskDocUpdatedBy({
33
+ comments: toTaskDocMutationComments(frontmatter.comments),
34
+ doc_updated_by: frontmatter.doc_updated_by,
35
+ owner: frontmatter.owner,
36
+ }, explicit ?? null);
37
+ if (resolved.toLowerCase() !== DEFAULT_DOC_UPDATED_BY.toLowerCase())
38
+ return resolved;
51
39
  const fallbackValue = normalizeUpdatedBy(fallback);
52
- return fallbackValue || fallback;
40
+ return fallbackValue.length > 0 ? fallbackValue : fallback;
53
41
  }
54
42
  export function resolveDocUpdatedByFromTask(task, fallback) {
55
- const author = lastCommentAuthor(task.comments);
56
- if (author)
57
- return author;
58
- const existing = normalizeUpdatedBy(task.doc_updated_by);
59
- if (existing)
60
- return existing;
61
- const owner = normalizeUpdatedBy(task.owner);
62
- if (owner)
63
- return owner;
43
+ const resolved = resolveTaskDocUpdatedBy({
44
+ comments: toTaskDocMutationComments(task.comments),
45
+ doc_updated_by: task.doc_updated_by,
46
+ owner: task.owner,
47
+ }, null);
48
+ if (resolved.toLowerCase() !== DEFAULT_DOC_UPDATED_BY.toLowerCase())
49
+ return resolved;
64
50
  const fallbackValue = normalizeUpdatedBy(fallback);
65
- return fallbackValue || fallback;
51
+ return fallbackValue.length > 0 ? fallbackValue : fallback;
66
52
  }
67
53
  export function normalizeDocVersion(value, fallback = DOC_VERSION) {
68
- return value === 3 ? 3 : value === 2 ? 2 : fallback;
54
+ return normalizeTaskDocVersion(value, fallback);
69
55
  }
70
56
  export function ensureDocMetadata(task, updatedBy) {
71
57
  task.doc_version = normalizeDocVersion(task.doc_version);
@@ -1,13 +1,6 @@
1
+ import { type TasksExportSnapshot } from "@agentplaneorg/core";
1
2
  import type { TaskData } from "./types.js";
2
- export declare function buildTasksExportSnapshotFromTasks(tasks: TaskData[]): {
3
- tasks: TaskData[];
4
- meta: {
5
- schema_version: 1;
6
- managed_by: string;
7
- checksum_algo: "sha256";
8
- checksum: string;
9
- };
10
- };
3
+ export declare function buildTasksExportSnapshotFromTasks(tasks: TaskData[]): TasksExportSnapshot;
11
4
  export declare function writeTasksExportFromTasks(opts: {
12
5
  outputPath: string;
13
6
  tasks: TaskData[];
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../../src/backends/task-backend/shared/export.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAa,MAAM,YAAY,CAAC;AA0CtD,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG;IACpE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,IAAI,EAAE;QAAE,cAAc,EAAE,CAAC,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,QAAQ,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5F,CAcA;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhB"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../../src/backends/task-backend/shared/export.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,KAAK,EAAE,QAAQ,EAAa,MAAM,YAAY,CAAC;AAoHtD,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,mBAAmB,CAcxF;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhB"}
@@ -1,29 +1,94 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { mkdir } from "node:fs/promises";
3
3
  import path from "node:path";
4
- import { canonicalizeJson } from "@agentplaneorg/core";
4
+ import { canonicalizeJson, validateTasksExportSnapshot, } from "@agentplaneorg/core";
5
5
  import { writeJsonStableIfChanged } from "../../../shared/write-if-changed.js";
6
6
  import { DEFAULT_DOC_UPDATED_BY } from "./constants.js";
7
7
  import { normalizeDocVersion, resolveDocUpdatedByFromTask } from "./doc.js";
8
+ import { normalizeTaskOrigin, normalizeTaskRunnerOutcome } from "./normalize.js";
8
9
  import { toStringArray } from "./strings.js";
10
+ const DEFAULT_EXPORT_DOC_UPDATED_AT = "1970-01-01T00:00:00.000Z";
11
+ const DEFAULT_EXPORT_TITLE = "(untitled task)";
12
+ const DEFAULT_EXPORT_OWNER = "UNKNOWN";
13
+ function normalizeExportTitle(value) {
14
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : DEFAULT_EXPORT_TITLE;
15
+ }
16
+ function normalizeExportStatus(value) {
17
+ if (typeof value === "string") {
18
+ const normalized = value.trim().toUpperCase();
19
+ if (normalized === "TODO" ||
20
+ normalized === "DOING" ||
21
+ normalized === "DONE" ||
22
+ normalized === "BLOCKED") {
23
+ return normalized;
24
+ }
25
+ }
26
+ return "TODO";
27
+ }
28
+ function normalizeExportOwner(value) {
29
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : DEFAULT_EXPORT_OWNER;
30
+ }
31
+ function normalizeExportPriority(value) {
32
+ if (value === "low" || value === "normal" || value === "med" || value === "high")
33
+ return value;
34
+ if (typeof value === "string") {
35
+ const normalized = value.trim().toLowerCase();
36
+ if (normalized === "medium")
37
+ return "med";
38
+ if (normalized === "low" ||
39
+ normalized === "normal" ||
40
+ normalized === "med" ||
41
+ normalized === "high") {
42
+ return normalized;
43
+ }
44
+ }
45
+ return "med";
46
+ }
47
+ function normalizeExportDocUpdatedAt(value) {
48
+ return typeof value === "string" && !Number.isNaN(Date.parse(value))
49
+ ? value
50
+ : DEFAULT_EXPORT_DOC_UPDATED_AT;
51
+ }
9
52
  function taskDataToExport(task) {
10
53
  const base = {
11
54
  ...task,
12
55
  id: task.id,
13
- title: task.title ?? "",
56
+ title: normalizeExportTitle(task.title),
14
57
  description: task.description ?? "",
15
- status: task.status ?? "",
16
- priority: typeof task.priority === "number" ? String(task.priority) : (task.priority ?? ""),
17
- owner: task.owner ?? "",
58
+ status: normalizeExportStatus(task.status),
59
+ priority: normalizeExportPriority(task.priority),
60
+ owner: normalizeExportOwner(task.owner),
61
+ result_summary: typeof task.result_summary === "string" ? task.result_summary : undefined,
62
+ risk_level: task.risk_level === "low" || task.risk_level === "med" || task.risk_level === "high"
63
+ ? task.risk_level
64
+ : undefined,
65
+ breaking: typeof task.breaking === "boolean" ? task.breaking : undefined,
66
+ revision: typeof task.revision === "number" && Number.isInteger(task.revision) && task.revision > 0
67
+ ? task.revision
68
+ : undefined,
69
+ origin: normalizeTaskOrigin(task.origin) ?? undefined,
70
+ runner: normalizeTaskRunnerOutcome(task.runner) ?? undefined,
18
71
  depends_on: toStringArray(task.depends_on),
19
72
  tags: toStringArray(task.tags),
20
73
  verify: toStringArray(task.verify),
74
+ plan_approval: task.plan_approval ?? {
75
+ state: "pending",
76
+ updated_at: null,
77
+ updated_by: null,
78
+ note: null,
79
+ },
80
+ verification: task.verification ?? {
81
+ state: "pending",
82
+ updated_at: null,
83
+ updated_by: null,
84
+ note: null,
85
+ },
21
86
  commit: task.commit ?? null,
22
87
  comments: Array.isArray(task.comments)
23
88
  ? task.comments.filter((item) => !!item && typeof item.author === "string" && typeof item.body === "string")
24
89
  : [],
25
90
  doc_version: normalizeDocVersion(task.doc_version),
26
- doc_updated_at: task.doc_updated_at ?? "",
91
+ doc_updated_at: normalizeExportDocUpdatedAt(task.doc_updated_at),
27
92
  doc_updated_by: resolveDocUpdatedByFromTask(task, DEFAULT_DOC_UPDATED_BY),
28
93
  dirty: Boolean(task.dirty),
29
94
  id_source: task.id_source ?? "generated",
@@ -43,7 +108,7 @@ export function buildTasksExportSnapshotFromTasks(tasks) {
43
108
  const sorted = exportTasks.toSorted((a, b) => a.id.localeCompare(b.id));
44
109
  const canonical = JSON.stringify(canonicalizeJson({ tasks: sorted }));
45
110
  const checksum = createHash("sha256").update(canonical, "utf8").digest("hex");
46
- return {
111
+ return validateTasksExportSnapshot({
47
112
  tasks: sorted,
48
113
  meta: {
49
114
  schema_version: 1,
@@ -51,7 +116,7 @@ export function buildTasksExportSnapshotFromTasks(tasks) {
51
116
  checksum_algo: "sha256",
52
117
  checksum,
53
118
  },
54
- };
119
+ });
55
120
  }
56
121
  export async function writeTasksExportFromTasks(opts) {
57
122
  const snapshot = buildTasksExportSnapshotFromTasks(opts.tasks);
@@ -1,8 +1,12 @@
1
- import type { PlanApproval, VerificationResult } from "./types.js";
1
+ import type { PlanApproval, TaskData, TaskOrigin, TaskSummary, TaskRunnerOutcome, VerificationResult } from "./types.js";
2
2
  export declare function normalizeDependsOn(value: unknown): string[];
3
3
  export declare function normalizePriority(value: unknown): string;
4
4
  export declare function defaultPlanApproval(): PlanApproval;
5
5
  export declare function defaultVerificationResult(): VerificationResult;
6
+ export declare function normalizeTaskOrigin(value: unknown): TaskOrigin | null;
6
7
  export declare function normalizePlanApproval(value: unknown): PlanApproval | null;
7
8
  export declare function normalizeVerificationResult(value: unknown): VerificationResult | null;
9
+ export declare function normalizeTaskRunnerOutcome(value: unknown): TaskRunnerOutcome | null;
10
+ export declare function toTaskSummary(task: TaskData): TaskSummary;
11
+ export declare function toTaskSummaries(tasks: TaskData[]): TaskSummary[];
8
12
  //# sourceMappingURL=normalize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../src/backends/task-backend/shared/normalize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGnE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAM3D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CASxD;AAED,wBAAgB,mBAAmB,IAAI,YAAY,CAElD;AAED,wBAAgB,yBAAyB,IAAI,kBAAkB,CAE9D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAUzE;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,GAAG,IAAI,CAUrF"}
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../src/backends/task-backend/shared/normalize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,WAAW,EAIX,iBAAiB,EAEjB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAGpB,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAM3D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CASxD;AAED,wBAAgB,mBAAmB,IAAI,YAAY,CAElD;AAED,wBAAgB,yBAAyB,IAAI,kBAAkB,CAE9D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAcrE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAUzE;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,GAAG,IAAI,CAUrF;AA+HD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,CAYnF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,CAMzD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAEhE"}
@@ -30,6 +30,26 @@ export function defaultPlanApproval() {
30
30
  export function defaultVerificationResult() {
31
31
  return { state: "pending", updated_at: null, updated_by: null, note: null };
32
32
  }
33
+ export function normalizeTaskOrigin(value) {
34
+ if (!isRecord(value))
35
+ return null;
36
+ const system = typeof value.system === "string" ? value.system.trim() : "";
37
+ if (!system)
38
+ return null;
39
+ const origin = { system };
40
+ for (const [key, raw] of Object.entries(value)) {
41
+ if (key === "system")
42
+ continue;
43
+ if (typeof raw !== "string")
44
+ continue;
45
+ const normalizedKey = key.trim();
46
+ const normalizedValue = raw.trim();
47
+ if (!normalizedKey || !normalizedValue)
48
+ continue;
49
+ origin[normalizedKey] = normalizedValue;
50
+ }
51
+ return origin;
52
+ }
33
53
  export function normalizePlanApproval(value) {
34
54
  if (!isRecord(value))
35
55
  return null;
@@ -52,3 +72,149 @@ export function normalizeVerificationResult(value) {
52
72
  const note = value.note === null || typeof value.note === "string" ? value.note : null;
53
73
  return { state, updated_at: updatedAt, updated_by: updatedBy, note };
54
74
  }
75
+ function normalizeTaskRunnerTarget(value) {
76
+ if (!isRecord(value))
77
+ return null;
78
+ const kind = typeof value.kind === "string" ? value.kind.trim() : "";
79
+ if (kind !== "task" && kind !== "recipe_scenario")
80
+ return null;
81
+ const target = { kind };
82
+ if (typeof value.task_id === "string" && value.task_id.trim()) {
83
+ target.task_id = value.task_id.trim();
84
+ }
85
+ if (typeof value.recipe_id === "string" && value.recipe_id.trim()) {
86
+ target.recipe_id = value.recipe_id.trim();
87
+ }
88
+ if (typeof value.scenario_id === "string" && value.scenario_id.trim()) {
89
+ target.scenario_id = value.scenario_id.trim();
90
+ }
91
+ return target;
92
+ }
93
+ function normalizeTaskRunnerMetrics(value) {
94
+ if (!isRecord(value))
95
+ return null;
96
+ const metrics = {};
97
+ if (typeof value.duration_ms === "number" && Number.isFinite(value.duration_ms)) {
98
+ metrics.duration_ms = value.duration_ms;
99
+ }
100
+ if (typeof value.stdout_bytes === "number" && Number.isFinite(value.stdout_bytes)) {
101
+ metrics.stdout_bytes = value.stdout_bytes;
102
+ }
103
+ if (typeof value.stderr_bytes === "number" && Number.isFinite(value.stderr_bytes)) {
104
+ metrics.stderr_bytes = value.stderr_bytes;
105
+ }
106
+ if (value.output_last_message_bytes === null ||
107
+ (typeof value.output_last_message_bytes === "number" &&
108
+ Number.isFinite(value.output_last_message_bytes))) {
109
+ metrics.output_last_message_bytes = value.output_last_message_bytes;
110
+ }
111
+ return Object.keys(metrics).length > 0 ? metrics : null;
112
+ }
113
+ function normalizeStringArray(value) {
114
+ if (!Array.isArray(value))
115
+ return null;
116
+ const entries = value
117
+ .filter((item) => typeof item === "string" && item.trim().length > 0)
118
+ .map((item) => item.trim());
119
+ return entries.length > 0 ? entries : null;
120
+ }
121
+ function normalizeTaskRunnerEvidence(value) {
122
+ if (!isRecord(value))
123
+ return null;
124
+ const evidence = {};
125
+ const evidencePaths = normalizeStringArray(value.evidence_paths);
126
+ if (evidencePaths)
127
+ evidence.evidence_paths = evidencePaths;
128
+ const changedPaths = normalizeStringArray(value.changed_paths);
129
+ if (changedPaths)
130
+ evidence.changed_paths = changedPaths;
131
+ const testsRun = normalizeStringArray(value.tests_run);
132
+ if (testsRun)
133
+ evidence.tests_run = testsRun;
134
+ const verificationCandidates = normalizeStringArray(value.verification_candidates);
135
+ if (verificationCandidates)
136
+ evidence.verification_candidates = verificationCandidates;
137
+ if (typeof value.files_changed_count === "number" &&
138
+ Number.isInteger(value.files_changed_count) &&
139
+ value.files_changed_count >= 0) {
140
+ evidence.files_changed_count = value.files_changed_count;
141
+ }
142
+ return Object.keys(evidence).length > 0 ? evidence : null;
143
+ }
144
+ function normalizeTaskRunnerHistoryEntry(value) {
145
+ if (!isRecord(value))
146
+ return null;
147
+ const runId = typeof value.run_id === "string" ? value.run_id.trim() : "";
148
+ const status = typeof value.status === "string" ? value.status.trim() : "";
149
+ const adapterId = typeof value.adapter_id === "string" ? value.adapter_id.trim() : "";
150
+ const mode = value.mode === "execute" || value.mode === "dry_run" ? value.mode : null;
151
+ const updatedAt = typeof value.updated_at === "string" ? value.updated_at.trim() : "";
152
+ const target = normalizeTaskRunnerTarget(value.target);
153
+ if (!runId || !adapterId || !updatedAt || !target || !mode)
154
+ return null;
155
+ if (status !== "prepared" &&
156
+ status !== "running" &&
157
+ status !== "success" &&
158
+ status !== "failed" &&
159
+ status !== "cancelled") {
160
+ return null;
161
+ }
162
+ const outcome = {
163
+ run_id: runId,
164
+ status,
165
+ adapter_id: adapterId,
166
+ mode,
167
+ updated_at: updatedAt,
168
+ exit_code: value.exit_code === null || typeof value.exit_code === "number" ? value.exit_code : null,
169
+ target,
170
+ };
171
+ if (typeof value.started_at === "string" && value.started_at.trim()) {
172
+ outcome.started_at = value.started_at.trim();
173
+ }
174
+ if (typeof value.ended_at === "string" && value.ended_at.trim()) {
175
+ outcome.ended_at = value.ended_at.trim();
176
+ }
177
+ if (Array.isArray(value.output_paths)) {
178
+ const outputPaths = value.output_paths.filter((item) => typeof item === "string" && item.trim().length > 0);
179
+ if (outputPaths.length > 0)
180
+ outcome.output_paths = outputPaths;
181
+ }
182
+ if (typeof value.summary === "string" && value.summary.trim()) {
183
+ outcome.summary = value.summary.trim();
184
+ }
185
+ if (typeof value.stdout_summary === "string" && value.stdout_summary.trim()) {
186
+ outcome.stdout_summary = value.stdout_summary.trim();
187
+ }
188
+ if (typeof value.stderr_summary === "string" && value.stderr_summary.trim()) {
189
+ outcome.stderr_summary = value.stderr_summary.trim();
190
+ }
191
+ const metrics = normalizeTaskRunnerMetrics(value.metrics);
192
+ if (metrics)
193
+ outcome.metrics = metrics;
194
+ const evidence = normalizeTaskRunnerEvidence(value.evidence);
195
+ if (evidence)
196
+ outcome.evidence = evidence;
197
+ return outcome;
198
+ }
199
+ export function normalizeTaskRunnerOutcome(value) {
200
+ const outcome = normalizeTaskRunnerHistoryEntry(value);
201
+ if (!outcome)
202
+ return null;
203
+ const record = value;
204
+ const history = Array.isArray(record.history)
205
+ ? record.history
206
+ .map((entry) => normalizeTaskRunnerHistoryEntry(entry))
207
+ .filter((entry) => !!entry)
208
+ : [];
209
+ return history.length > 0 ? { ...outcome, history } : outcome;
210
+ }
211
+ export function toTaskSummary(task) {
212
+ const { doc, sections, events, ...summary } = task;
213
+ void doc;
214
+ void sections;
215
+ void events;
216
+ return summary;
217
+ }
218
+ export function toTaskSummaries(tasks) {
219
+ return tasks.map((task) => toTaskSummary(task));
220
+ }
@@ -1,4 +1,4 @@
1
- import type { TaskRecord } from "@agentplaneorg/core";
1
+ import { type TaskRecord } from "@agentplaneorg/core";
2
2
  import type { TaskData } from "./types.js";
3
3
  export declare function taskRecordToData(record: TaskRecord): TaskData;
4
4
  //# sourceMappingURL=record.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../src/backends/task-backend/shared/record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAYtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAkB3C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,CA2D7D"}
1
+ {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../src/backends/task-backend/shared/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAc/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAkB3C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAgE7D"}
@@ -1,7 +1,8 @@
1
+ import { normalizeTaskDocVersion } from "@agentplaneorg/core";
1
2
  import { isRecord } from "../../../shared/guards.js";
2
3
  import { extractTaskDoc } from "./doc.js";
3
4
  import { normalizeEvents } from "./events.js";
4
- import { normalizeDependsOn, normalizePlanApproval, normalizeVerificationResult, } from "./normalize.js";
5
+ import { normalizeDependsOn, normalizePlanApproval, normalizeTaskOrigin, normalizeTaskRunnerOutcome, normalizeVerificationResult, } from "./normalize.js";
5
6
  import { toStringArray } from "./strings.js";
6
7
  import { renderTaskDocFromSections, taskDocToSectionMap } from "@agentplaneorg/core";
7
8
  function normalizeRevision(value) {
@@ -35,6 +36,8 @@ export function taskRecordToData(record) {
35
36
  const events = normalizeEvents(fm.events);
36
37
  const planApproval = normalizePlanApproval(fm.plan_approval);
37
38
  const verification = normalizeVerificationResult(fm.verification);
39
+ const origin = normalizeTaskOrigin(fm.origin);
40
+ const runner = normalizeTaskRunnerOutcome(fm.runner);
38
41
  const sections = normalizeCanonicalSections(fm.sections);
39
42
  const doc = sections ? renderTaskDocFromSections(sections) : extractTaskDoc(record.body);
40
43
  const baseId = typeof fm.id === "string" ? fm.id : typeof record.id === "string" ? record.id : "";
@@ -51,15 +54,17 @@ export function taskRecordToData(record) {
51
54
  priority: typeof fm.priority === "string" || typeof fm.priority === "number" ? fm.priority : "",
52
55
  owner: typeof fm.owner === "string" ? fm.owner : "",
53
56
  revision: normalizeRevision(fm.revision) ?? 1,
57
+ origin: origin ?? undefined,
54
58
  depends_on: normalizeDependsOn(fm.depends_on),
55
59
  tags: toStringArray(fm.tags),
56
60
  verify: toStringArray(fm.verify),
57
61
  plan_approval: planApproval ?? undefined,
58
62
  verification: verification ?? undefined,
63
+ runner: runner ?? undefined,
59
64
  commit,
60
65
  comments,
61
66
  events,
62
- doc_version: typeof fm.doc_version === "number" ? fm.doc_version : undefined,
67
+ doc_version: typeof fm.doc_version === "number" ? normalizeTaskDocVersion(fm.doc_version) : undefined,
63
68
  doc_updated_at: typeof fm.doc_updated_at === "string" ? fm.doc_updated_at : undefined,
64
69
  doc_updated_by: typeof fm.doc_updated_by === "string" ? fm.doc_updated_by : undefined,
65
70
  dirty: typeof fm.dirty === "boolean" ? fm.dirty : undefined,
@@ -1,28 +1,5 @@
1
- export type PlanApprovalState = "pending" | "approved" | "rejected";
2
- export type PlanApproval = {
3
- state: PlanApprovalState;
4
- updated_at: string | null;
5
- updated_by: string | null;
6
- note: string | null;
7
- };
8
- export type VerificationState = "pending" | "ok" | "needs_rework";
9
- export type VerificationResult = {
10
- state: VerificationState;
11
- updated_at: string | null;
12
- updated_by: string | null;
13
- note: string | null;
14
- };
15
- export type TaskEventType = "status" | "comment" | "verify";
16
- export type TaskEvent = {
17
- type: TaskEventType;
18
- at: string;
19
- author: string;
20
- from?: string;
21
- to?: string;
22
- state?: string;
23
- note?: string;
24
- body?: string;
25
- };
1
+ import type { PlanApproval, TaskDocSections, TaskDocVersion, TaskEvent, TaskOrigin, TaskRunnerOutcome, VerificationResult } from "@agentplaneorg/core";
2
+ export type { PlanApproval, PlanApprovalState, TaskEvent, TaskEventType, TaskOrigin, TaskRunnerEvidence, TaskRunnerExecutionMetrics, TaskRunnerHistoryEntry, TaskRunnerOutcome, TaskRunnerOutcomeStatus, TaskRunnerTarget, VerificationResult, VerificationState, } from "@agentplaneorg/core";
26
3
  export type TaskData = {
27
4
  id: string;
28
5
  title: string;
@@ -34,11 +11,13 @@ export type TaskData = {
34
11
  priority: string | number;
35
12
  owner: string;
36
13
  revision?: number;
14
+ origin?: TaskOrigin | null;
37
15
  depends_on: string[];
38
16
  tags: string[];
39
17
  verify: string[];
40
18
  plan_approval?: PlanApproval;
41
19
  verification?: VerificationResult;
20
+ runner?: TaskRunnerOutcome;
42
21
  commit?: {
43
22
  hash: string;
44
23
  message: string;
@@ -49,20 +28,26 @@ export type TaskData = {
49
28
  }[];
50
29
  events?: TaskEvent[];
51
30
  doc?: string;
52
- sections?: Record<string, string>;
53
- doc_version?: number;
31
+ sections?: TaskDocSections;
32
+ doc_version?: TaskDocVersion;
54
33
  doc_updated_at?: string;
55
34
  doc_updated_by?: string;
56
35
  dirty?: boolean;
57
36
  id_source?: string;
58
37
  };
38
+ export type TaskSummary = Omit<TaskData, "doc" | "sections" | "events">;
59
39
  export type TaskDocMeta = Pick<TaskData, "doc" | "doc_version" | "doc_updated_at" | "doc_updated_by">;
60
40
  export type TaskWriteOptions = {
61
41
  expectedRevision?: number;
42
+ expectedCurrentDoc?: string | null;
43
+ expectedCurrentText?: string | null;
44
+ expectedSection?: string;
62
45
  };
46
+ export type TaskBackendProjectionReadMode = "native" | "fallback";
63
47
  export type TaskBackendCapabilities = {
64
48
  canonical_source: "local" | "remote";
65
49
  projection: "canonical" | "cache";
50
+ projection_read_mode: TaskBackendProjectionReadMode;
66
51
  reads_from_projection_by_default: boolean;
67
52
  writes_task_readmes?: boolean;
68
53
  supports_task_revisions: boolean;
@@ -107,37 +92,54 @@ export type TaskBackendInspectionResult = {
107
92
  };
108
93
  configuredFieldNameDrift: TaskBackendFieldNameDrift[];
109
94
  };
110
- export type TaskBackend = {
95
+ export type TaskBackendBase = {
111
96
  id: string;
112
97
  capabilities: TaskBackendCapabilities;
98
+ };
99
+ export type TaskBackendQueryPort = {
113
100
  listTasks(): Promise<TaskData[]>;
114
- listProjectionTasks?(): Promise<TaskData[]>;
115
- getLastListWarnings?(): string[];
116
101
  getTask(taskId: string): Promise<TaskData | null>;
117
102
  getTasks?(taskIds: string[]): Promise<(TaskData | null)[]>;
103
+ };
104
+ export type TaskBackendProjectionPort = {
105
+ listProjectionTasks?(): Promise<TaskSummary[]>;
106
+ getLastListWarnings?(): string[];
107
+ };
108
+ export type TaskBackendMutationPort = {
118
109
  writeTask(task: TaskData, opts?: TaskWriteOptions): Promise<void>;
119
110
  writeTasks?(tasks: TaskData[], opts?: TaskWriteOptions): Promise<void>;
120
111
  normalizeTasks?(): Promise<{
121
112
  scanned: number;
122
113
  changed: number;
123
114
  }>;
115
+ };
116
+ export type TaskBackendSyncPort = {
124
117
  refreshProjection?(opts: TaskProjectionRefreshOptions): Promise<void>;
125
118
  migrateCanonicalState?(): Promise<TaskCanonicalStateMigrationResult>;
126
- inspectConfiguration?(): Promise<TaskBackendInspectionResult>;
127
- exportProjectionSnapshot?(outputPath: string): Promise<void>;
128
- exportTasksJson?(outputPath: string): Promise<void>;
129
- getTaskDoc?(taskId: string): Promise<string>;
130
- setTaskDoc?(taskId: string, doc: string, updatedBy?: string, opts?: TaskWriteOptions): Promise<void>;
131
- touchTaskDocMetadata?(taskId: string, updatedBy?: string, opts?: TaskWriteOptions): Promise<void>;
132
119
  sync?(opts: {
133
120
  direction: "push" | "pull";
134
121
  conflict: "diff" | "prefer-local" | "prefer-remote" | "fail";
135
122
  quiet: boolean;
136
123
  confirm: boolean;
137
124
  }): Promise<void>;
125
+ };
126
+ export type TaskBackendInspectionPort = {
127
+ inspectConfiguration?(): Promise<TaskBackendInspectionResult>;
128
+ };
129
+ export type TaskBackendExportPort = {
130
+ exportProjectionSnapshot?(outputPath: string): Promise<void>;
131
+ exportTasksJson?(outputPath: string): Promise<void>;
132
+ };
133
+ export type TaskBackendDocPort = {
134
+ getTaskDoc?(taskId: string): Promise<string>;
135
+ setTaskDoc?(taskId: string, doc: string, updatedBy?: string, opts?: TaskWriteOptions): Promise<void>;
136
+ touchTaskDocMetadata?(taskId: string, updatedBy?: string, opts?: TaskWriteOptions): Promise<void>;
137
+ };
138
+ export type TaskBackendIdentityPort = {
138
139
  generateTaskId?(opts: {
139
140
  length: number;
140
141
  attempts: number;
141
142
  }): Promise<string>;
142
143
  };
144
+ export type TaskBackend = TaskBackendBase & TaskBackendQueryPort & TaskBackendProjectionPort & TaskBackendMutationPort & TaskBackendSyncPort & TaskBackendInspectionPort & TaskBackendExportPort & TaskBackendDocPort & TaskBackendIdentityPort;
143
145
  //# sourceMappingURL=types.d.ts.map