agentplane 0.1.9 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (645) hide show
  1. package/README.md +4 -4
  2. package/assets/AGENTS.md +281 -70
  3. package/assets/agents/CODER.json +1 -0
  4. package/assets/agents/INTEGRATOR.json +1 -0
  5. package/assets/agents/ORCHESTRATOR.json +1 -0
  6. package/assets/agents/PLANNER.json +1 -0
  7. package/assets/agents/TESTER.json +1 -0
  8. package/dist/backends/task-backend/load.d.ts +13 -0
  9. package/dist/backends/task-backend/load.d.ts.map +1 -0
  10. package/dist/backends/task-backend/load.js +58 -0
  11. package/dist/backends/task-backend/local-backend.d.ts +28 -0
  12. package/dist/backends/task-backend/local-backend.d.ts.map +1 -0
  13. package/dist/backends/task-backend/local-backend.js +335 -0
  14. package/dist/backends/task-backend/redmine/client.d.ts +8 -0
  15. package/dist/backends/task-backend/redmine/client.d.ts.map +1 -0
  16. package/dist/backends/task-backend/redmine/client.js +60 -0
  17. package/dist/backends/task-backend/redmine/comments.d.ts +12 -0
  18. package/dist/backends/task-backend/redmine/comments.d.ts.map +1 -0
  19. package/dist/backends/task-backend/redmine/comments.js +54 -0
  20. package/dist/backends/task-backend/redmine/fields.d.ts +9 -0
  21. package/dist/backends/task-backend/redmine/fields.d.ts.map +1 -0
  22. package/dist/backends/task-backend/redmine/fields.js +38 -0
  23. package/dist/backends/task-backend/redmine/mapping.d.ts +20 -0
  24. package/dist/backends/task-backend/redmine/mapping.d.ts.map +1 -0
  25. package/dist/backends/task-backend/redmine/mapping.js +114 -0
  26. package/dist/backends/task-backend/redmine/parse.d.ts +3 -0
  27. package/dist/backends/task-backend/redmine/parse.d.ts.map +1 -0
  28. package/dist/backends/task-backend/redmine/parse.js +27 -0
  29. package/dist/backends/task-backend/redmine/remote.d.ts +19 -0
  30. package/dist/backends/task-backend/redmine/remote.d.ts.map +1 -0
  31. package/dist/backends/task-backend/redmine/remote.js +82 -0
  32. package/dist/backends/task-backend/redmine-backend.d.ts +80 -0
  33. package/dist/backends/task-backend/redmine-backend.d.ts.map +1 -0
  34. package/dist/backends/task-backend/redmine-backend.js +505 -0
  35. package/dist/backends/task-backend/shared/concurrency.d.ts +3 -0
  36. package/dist/backends/task-backend/shared/concurrency.d.ts.map +1 -0
  37. package/dist/backends/task-backend/shared/concurrency.js +21 -0
  38. package/dist/backends/task-backend/shared/constants.d.ts +4 -0
  39. package/dist/backends/task-backend/shared/constants.d.ts.map +1 -0
  40. package/dist/backends/task-backend/shared/constants.js +4 -0
  41. package/dist/backends/task-backend/shared/doc.d.ts +11 -0
  42. package/dist/backends/task-backend/shared/doc.d.ts.map +1 -0
  43. package/dist/backends/task-backend/shared/doc.js +78 -0
  44. package/dist/backends/task-backend/shared/errors.d.ts +10 -0
  45. package/dist/backends/task-backend/shared/errors.d.ts.map +1 -0
  46. package/dist/backends/task-backend/shared/errors.js +18 -0
  47. package/dist/backends/task-backend/shared/events.d.ts +3 -0
  48. package/dist/backends/task-backend/shared/events.d.ts.map +1 -0
  49. package/dist/backends/task-backend/shared/events.js +29 -0
  50. package/dist/backends/task-backend/shared/export.d.ts +15 -0
  51. package/dist/backends/task-backend/shared/export.d.ts.map +1 -0
  52. package/dist/backends/task-backend/shared/export.js +60 -0
  53. package/dist/backends/task-backend/shared/id.d.ts +13 -0
  54. package/dist/backends/task-backend/shared/id.d.ts.map +1 -0
  55. package/dist/backends/task-backend/shared/id.js +17 -0
  56. package/dist/backends/task-backend/shared/normalize.d.ts +8 -0
  57. package/dist/backends/task-backend/shared/normalize.d.ts.map +1 -0
  58. package/dist/backends/task-backend/shared/normalize.js +54 -0
  59. package/dist/backends/task-backend/shared/record.d.ts +4 -0
  60. package/dist/backends/task-backend/shared/record.d.ts.map +1 -0
  61. package/dist/backends/task-backend/shared/record.js +53 -0
  62. package/dist/backends/task-backend/shared/strings.d.ts +4 -0
  63. package/dist/backends/task-backend/shared/strings.d.ts.map +1 -0
  64. package/dist/backends/task-backend/shared/strings.js +21 -0
  65. package/dist/backends/task-backend/shared/types.d.ts +84 -0
  66. package/dist/backends/task-backend/shared/types.d.ts.map +1 -0
  67. package/dist/backends/task-backend/shared/types.js +1 -0
  68. package/dist/backends/task-backend/shared.d.ts +11 -0
  69. package/dist/backends/task-backend/shared.d.ts.map +1 -0
  70. package/dist/backends/task-backend/shared.js +9 -0
  71. package/dist/backends/task-backend.d.ts +4 -204
  72. package/dist/backends/task-backend.d.ts.map +1 -1
  73. package/dist/backends/task-backend.js +4 -1366
  74. package/dist/backends/task-index.js +2 -2
  75. package/dist/cli/archive.d.ts +0 -2
  76. package/dist/cli/archive.d.ts.map +1 -1
  77. package/dist/cli/archive.js +1 -2
  78. package/dist/cli/command-guide.d.ts.map +1 -1
  79. package/dist/cli/command-guide.js +25 -8
  80. package/dist/cli/parse/lifecycle.d.ts +64 -0
  81. package/dist/cli/parse/lifecycle.d.ts.map +1 -0
  82. package/dist/cli/parse/lifecycle.js +280 -0
  83. package/dist/cli/run-cli/command-catalog.d.ts +16 -0
  84. package/dist/cli/run-cli/command-catalog.d.ts.map +1 -0
  85. package/dist/cli/run-cli/command-catalog.js +204 -0
  86. package/dist/cli/run-cli/commands/config.d.ts +20 -0
  87. package/dist/cli/run-cli/commands/config.d.ts.map +1 -0
  88. package/dist/cli/run-cli/commands/config.js +130 -0
  89. package/dist/cli/run-cli/commands/core.d.ts +14 -0
  90. package/dist/cli/run-cli/commands/core.d.ts.map +1 -0
  91. package/dist/cli/run-cli/commands/core.js +144 -0
  92. package/dist/cli/run-cli/commands/ide.d.ts +13 -0
  93. package/dist/cli/run-cli/commands/ide.d.ts.map +1 -0
  94. package/dist/cli/run-cli/commands/ide.js +67 -0
  95. package/dist/cli/run-cli/commands/init/base-branch.d.ts +9 -0
  96. package/dist/cli/run-cli/commands/init/base-branch.d.ts.map +1 -0
  97. package/dist/cli/run-cli/commands/init/base-branch.js +11 -0
  98. package/dist/cli/run-cli/commands/init/conflicts.d.ts +11 -0
  99. package/dist/cli/run-cli/commands/init/conflicts.d.ts.map +1 -0
  100. package/dist/cli/run-cli/commands/init/conflicts.js +42 -0
  101. package/dist/cli/run-cli/commands/init/git.d.ts +8 -0
  102. package/dist/cli/run-cli/commands/init/git.d.ts.map +1 -0
  103. package/dist/cli/run-cli/commands/init/git.js +12 -0
  104. package/dist/cli/run-cli/commands/init/ide-sync.d.ts +9 -0
  105. package/dist/cli/run-cli/commands/init/ide-sync.d.ts.map +1 -0
  106. package/dist/cli/run-cli/commands/init/ide-sync.js +18 -0
  107. package/dist/cli/run-cli/commands/init/recipes.d.ts +2 -0
  108. package/dist/cli/run-cli/commands/init/recipes.d.ts.map +1 -0
  109. package/dist/cli/run-cli/commands/init/recipes.js +11 -0
  110. package/dist/cli/run-cli/commands/init/write-agents.d.ts +11 -0
  111. package/dist/cli/run-cli/commands/init/write-agents.d.ts.map +1 -0
  112. package/dist/cli/run-cli/commands/init/write-agents.js +30 -0
  113. package/dist/cli/run-cli/commands/init/write-config.d.ts +15 -0
  114. package/dist/cli/run-cli/commands/init/write-config.d.ts.map +1 -0
  115. package/dist/cli/run-cli/commands/init/write-config.js +45 -0
  116. package/dist/cli/run-cli/commands/init.d.ts +21 -0
  117. package/dist/cli/run-cli/commands/init.d.ts.map +1 -0
  118. package/dist/cli/run-cli/commands/init.js +332 -0
  119. package/dist/cli/run-cli/registry.run.d.ts +4 -0
  120. package/dist/cli/run-cli/registry.run.d.ts.map +1 -0
  121. package/dist/cli/run-cli/registry.run.js +19 -0
  122. package/dist/cli/run-cli.d.ts.map +1 -1
  123. package/dist/cli/run-cli.js +182 -2463
  124. package/dist/cli/spec/docs-render.d.ts +3 -0
  125. package/dist/cli/spec/docs-render.d.ts.map +1 -0
  126. package/dist/cli/spec/docs-render.js +118 -0
  127. package/dist/cli/spec/errors.d.ts +9 -0
  128. package/dist/cli/spec/errors.d.ts.map +1 -0
  129. package/dist/cli/spec/errors.js +18 -0
  130. package/dist/cli/spec/help-render.d.ts +43 -0
  131. package/dist/cli/spec/help-render.d.ts.map +1 -0
  132. package/dist/cli/spec/help-render.js +185 -0
  133. package/dist/cli/spec/help.d.ts +10 -0
  134. package/dist/cli/spec/help.d.ts.map +1 -0
  135. package/dist/cli/spec/help.js +64 -0
  136. package/dist/cli/spec/parse.d.ts +8 -0
  137. package/dist/cli/spec/parse.d.ts.map +1 -0
  138. package/dist/cli/spec/parse.js +188 -0
  139. package/dist/cli/spec/registry.d.ts +12 -0
  140. package/dist/cli/spec/registry.d.ts.map +1 -0
  141. package/dist/cli/spec/registry.js +47 -0
  142. package/dist/cli/spec/spec.d.ts +76 -0
  143. package/dist/cli/spec/spec.d.ts.map +1 -0
  144. package/dist/cli/spec/spec.js +1 -0
  145. package/dist/cli/spec/suggest.d.ts +2 -0
  146. package/dist/cli/spec/suggest.d.ts.map +1 -0
  147. package/dist/cli/spec/suggest.js +45 -0
  148. package/dist/commands/backend/sync.command.d.ts +12 -0
  149. package/dist/commands/backend/sync.command.d.ts.map +1 -0
  150. package/dist/commands/backend/sync.command.js +79 -0
  151. package/dist/commands/backend.d.ts +21 -8
  152. package/dist/commands/backend.d.ts.map +1 -1
  153. package/dist/commands/backend.js +28 -165
  154. package/dist/commands/block.command.d.ts +19 -0
  155. package/dist/commands/block.command.d.ts.map +1 -0
  156. package/dist/commands/block.command.js +143 -0
  157. package/dist/commands/branch/base.command.d.ts +20 -0
  158. package/dist/commands/branch/base.command.d.ts.map +1 -0
  159. package/dist/commands/branch/base.command.js +110 -0
  160. package/dist/commands/branch/base.d.ts +19 -0
  161. package/dist/commands/branch/base.d.ts.map +1 -0
  162. package/dist/commands/branch/base.js +114 -0
  163. package/dist/commands/branch/cleanup-merged.d.ts +11 -0
  164. package/dist/commands/branch/cleanup-merged.d.ts.map +1 -0
  165. package/dist/commands/branch/cleanup-merged.js +141 -0
  166. package/dist/commands/branch/index.d.ts +6 -59
  167. package/dist/commands/branch/index.d.ts.map +1 -1
  168. package/dist/commands/branch/index.js +6 -513
  169. package/dist/commands/branch/internal/archive-pr.d.ts +2 -0
  170. package/dist/commands/branch/internal/archive-pr.d.ts.map +1 -0
  171. package/dist/commands/branch/internal/archive-pr.js +17 -0
  172. package/dist/commands/branch/internal/work-validate.d.ts +3 -0
  173. package/dist/commands/branch/internal/work-validate.d.ts.map +1 -0
  174. package/dist/commands/branch/internal/work-validate.js +27 -0
  175. package/dist/commands/branch/remove.command.d.ts +10 -0
  176. package/dist/commands/branch/remove.command.d.ts.map +1 -0
  177. package/dist/commands/branch/remove.command.js +63 -0
  178. package/dist/commands/branch/remove.d.ts +9 -0
  179. package/dist/commands/branch/remove.d.ts.map +1 -0
  180. package/dist/commands/branch/remove.js +65 -0
  181. package/dist/commands/branch/status.command.d.ts +8 -0
  182. package/dist/commands/branch/status.command.d.ts.map +1 -0
  183. package/dist/commands/branch/status.command.js +36 -0
  184. package/dist/commands/branch/status.d.ts +7 -0
  185. package/dist/commands/branch/status.d.ts.map +1 -0
  186. package/dist/commands/branch/status.js +60 -0
  187. package/dist/commands/branch/work-start.command.d.ts +11 -0
  188. package/dist/commands/branch/work-start.command.d.ts.map +1 -0
  189. package/dist/commands/branch/work-start.command.js +80 -0
  190. package/dist/commands/branch/work-start.d.ts +11 -0
  191. package/dist/commands/branch/work-start.d.ts.map +1 -0
  192. package/dist/commands/branch/work-start.js +120 -0
  193. package/dist/commands/cleanup/merged.command.d.ts +17 -0
  194. package/dist/commands/cleanup/merged.command.d.ts.map +1 -0
  195. package/dist/commands/cleanup/merged.command.js +75 -0
  196. package/dist/commands/commit.command.d.ts +6 -0
  197. package/dist/commands/commit.command.d.ts.map +1 -0
  198. package/dist/commands/commit.command.js +24 -0
  199. package/dist/commands/commit.spec.d.ts +18 -0
  200. package/dist/commands/commit.spec.d.ts.map +1 -0
  201. package/dist/commands/commit.spec.js +119 -0
  202. package/dist/commands/docs/cli.command.d.ts +9 -0
  203. package/dist/commands/docs/cli.command.d.ts.map +1 -0
  204. package/dist/commands/docs/cli.command.js +51 -0
  205. package/dist/commands/finish.command.d.ts +28 -0
  206. package/dist/commands/finish.command.d.ts.map +1 -0
  207. package/dist/commands/finish.command.js +237 -0
  208. package/dist/commands/guard/clean.command.d.ts +7 -0
  209. package/dist/commands/guard/clean.command.d.ts.map +1 -0
  210. package/dist/commands/guard/clean.command.js +14 -0
  211. package/dist/commands/guard/commit.command.d.ts +19 -0
  212. package/dist/commands/guard/commit.command.d.ts.map +1 -0
  213. package/dist/commands/guard/commit.command.js +132 -0
  214. package/dist/commands/guard/guard.command.d.ts +5 -0
  215. package/dist/commands/guard/guard.command.d.ts.map +1 -0
  216. package/dist/commands/guard/guard.command.js +21 -0
  217. package/dist/commands/guard/impl/allow.d.ts +18 -0
  218. package/dist/commands/guard/impl/allow.d.ts.map +1 -0
  219. package/dist/commands/guard/impl/allow.js +77 -0
  220. package/dist/commands/guard/impl/close-message.d.ts +16 -0
  221. package/dist/commands/guard/impl/close-message.d.ts.map +1 -0
  222. package/dist/commands/guard/impl/close-message.js +156 -0
  223. package/dist/commands/guard/impl/commands.d.ts +32 -0
  224. package/dist/commands/guard/impl/commands.d.ts.map +1 -0
  225. package/dist/commands/guard/impl/commands.js +191 -0
  226. package/dist/commands/guard/impl/comment-commit.d.ts +25 -0
  227. package/dist/commands/guard/impl/comment-commit.d.ts.map +1 -0
  228. package/dist/commands/guard/impl/comment-commit.js +137 -0
  229. package/dist/commands/guard/impl/env.d.ts +10 -0
  230. package/dist/commands/guard/impl/env.d.ts.map +1 -0
  231. package/dist/commands/guard/impl/env.js +12 -0
  232. package/dist/commands/guard/impl/policy.d.ts +19 -0
  233. package/dist/commands/guard/impl/policy.d.ts.map +1 -0
  234. package/dist/commands/guard/impl/policy.js +46 -0
  235. package/dist/commands/guard/index.d.ts +4 -87
  236. package/dist/commands/guard/index.d.ts.map +1 -1
  237. package/dist/commands/guard/index.js +4 -481
  238. package/dist/commands/guard/suggest-allow.command.d.ts +7 -0
  239. package/dist/commands/guard/suggest-allow.command.d.ts.map +1 -0
  240. package/dist/commands/guard/suggest-allow.command.js +28 -0
  241. package/dist/commands/hooks/hooks.command.d.ts +5 -0
  242. package/dist/commands/hooks/hooks.command.d.ts.map +1 -0
  243. package/dist/commands/hooks/hooks.command.js +18 -0
  244. package/dist/commands/hooks/index.d.ts.map +1 -1
  245. package/dist/commands/hooks/index.js +36 -81
  246. package/dist/commands/hooks/install.command.d.ts +7 -0
  247. package/dist/commands/hooks/install.command.d.ts.map +1 -0
  248. package/dist/commands/hooks/install.command.js +14 -0
  249. package/dist/commands/hooks/run.command.d.ts +9 -0
  250. package/dist/commands/hooks/run.command.d.ts.map +1 -0
  251. package/dist/commands/hooks/run.command.js +39 -0
  252. package/dist/commands/hooks/uninstall.command.d.ts +7 -0
  253. package/dist/commands/hooks/uninstall.command.d.ts.map +1 -0
  254. package/dist/commands/hooks/uninstall.command.js +16 -0
  255. package/dist/commands/integrate.command.d.ts +14 -0
  256. package/dist/commands/integrate.command.d.ts.map +1 -0
  257. package/dist/commands/integrate.command.js +61 -0
  258. package/dist/commands/pr/check.d.ts +8 -0
  259. package/dist/commands/pr/check.d.ts.map +1 -0
  260. package/dist/commands/pr/check.js +78 -0
  261. package/dist/commands/pr/index.d.ts +5 -45
  262. package/dist/commands/pr/index.d.ts.map +1 -1
  263. package/dist/commands/pr/index.js +5 -857
  264. package/dist/commands/pr/integrate/artifacts.d.ts +14 -0
  265. package/dist/commands/pr/integrate/artifacts.d.ts.map +1 -0
  266. package/dist/commands/pr/integrate/artifacts.js +45 -0
  267. package/dist/commands/pr/integrate/cmd.d.ts +14 -0
  268. package/dist/commands/pr/integrate/cmd.d.ts.map +1 -0
  269. package/dist/commands/pr/integrate/cmd.js +150 -0
  270. package/dist/commands/pr/integrate/internal/finalize.d.ts +25 -0
  271. package/dist/commands/pr/integrate/internal/finalize.d.ts.map +1 -0
  272. package/dist/commands/pr/integrate/internal/finalize.js +86 -0
  273. package/dist/commands/pr/integrate/internal/merge.d.ts +40 -0
  274. package/dist/commands/pr/integrate/internal/merge.d.ts.map +1 -0
  275. package/dist/commands/pr/integrate/internal/merge.js +138 -0
  276. package/dist/commands/pr/integrate/internal/prepare.d.ts +33 -0
  277. package/dist/commands/pr/integrate/internal/prepare.d.ts.map +1 -0
  278. package/dist/commands/pr/integrate/internal/prepare.js +142 -0
  279. package/dist/commands/pr/integrate/internal/worktree.d.ts +14 -0
  280. package/dist/commands/pr/integrate/internal/worktree.d.ts.map +1 -0
  281. package/dist/commands/pr/integrate/internal/worktree.js +51 -0
  282. package/dist/commands/pr/integrate/verify.d.ts +22 -0
  283. package/dist/commands/pr/integrate/verify.d.ts.map +1 -0
  284. package/dist/commands/pr/integrate/verify.js +60 -0
  285. package/dist/commands/pr/integrate.d.ts +2 -0
  286. package/dist/commands/pr/integrate.d.ts.map +1 -0
  287. package/dist/commands/pr/integrate.js +1 -0
  288. package/dist/commands/pr/internal/pr-paths.d.ts +29 -0
  289. package/dist/commands/pr/internal/pr-paths.d.ts.map +1 -0
  290. package/dist/commands/pr/internal/pr-paths.js +38 -0
  291. package/dist/commands/pr/internal/review-template.d.ts +9 -0
  292. package/dist/commands/pr/internal/review-template.d.ts.map +1 -0
  293. package/dist/commands/pr/internal/review-template.js +62 -0
  294. package/dist/commands/pr/note.d.ts +10 -0
  295. package/dist/commands/pr/note.d.ts.map +1 -0
  296. package/dist/commands/pr/note.js +50 -0
  297. package/dist/commands/pr/open.d.ts +10 -0
  298. package/dist/commands/pr/open.d.ts.map +1 -0
  299. package/dist/commands/pr/open.js +80 -0
  300. package/dist/commands/pr/pr.command.d.ts +33 -0
  301. package/dist/commands/pr/pr.command.d.ts.map +1 -0
  302. package/dist/commands/pr/pr.command.js +172 -0
  303. package/dist/commands/pr/update.d.ts +8 -0
  304. package/dist/commands/pr/update.d.ts.map +1 -0
  305. package/dist/commands/pr/update.js +103 -0
  306. package/dist/commands/ready.command.d.ts +8 -0
  307. package/dist/commands/ready.command.d.ts.map +1 -0
  308. package/dist/commands/ready.command.js +28 -0
  309. package/dist/commands/recipes/cache-prune.command.d.ts +6 -0
  310. package/dist/commands/recipes/cache-prune.command.d.ts.map +1 -0
  311. package/dist/commands/recipes/cache-prune.command.js +30 -0
  312. package/dist/commands/recipes/cache.command.d.ts +6 -0
  313. package/dist/commands/recipes/cache.command.d.ts.map +1 -0
  314. package/dist/commands/recipes/cache.command.js +37 -0
  315. package/dist/commands/recipes/explain.command.d.ts +7 -0
  316. package/dist/commands/recipes/explain.command.d.ts.map +1 -0
  317. package/dist/commands/recipes/explain.command.js +10 -0
  318. package/dist/commands/recipes/impl/apply.d.ts +16 -0
  319. package/dist/commands/recipes/impl/apply.d.ts.map +1 -0
  320. package/dist/commands/recipes/impl/apply.js +97 -0
  321. package/dist/commands/recipes/impl/archive.d.ts +2 -0
  322. package/dist/commands/recipes/impl/archive.d.ts.map +1 -0
  323. package/dist/commands/recipes/impl/archive.js +19 -0
  324. package/dist/commands/recipes/impl/commands/cache-prune.d.ts +7 -0
  325. package/dist/commands/recipes/impl/commands/cache-prune.d.ts.map +1 -0
  326. package/dist/commands/recipes/impl/commands/cache-prune.js +94 -0
  327. package/dist/commands/recipes/impl/commands/explain.d.ts +6 -0
  328. package/dist/commands/recipes/impl/commands/explain.d.ts.map +1 -0
  329. package/dist/commands/recipes/impl/commands/explain.js +88 -0
  330. package/dist/commands/recipes/impl/commands/info.d.ts +6 -0
  331. package/dist/commands/recipes/impl/commands/info.d.ts.map +1 -0
  332. package/dist/commands/recipes/impl/commands/info.js +58 -0
  333. package/dist/commands/recipes/impl/commands/install.d.ts +11 -0
  334. package/dist/commands/recipes/impl/commands/install.d.ts.map +1 -0
  335. package/dist/commands/recipes/impl/commands/install.js +212 -0
  336. package/dist/commands/recipes/impl/commands/list-remote.d.ts +7 -0
  337. package/dist/commands/recipes/impl/commands/list-remote.d.ts.map +1 -0
  338. package/dist/commands/recipes/impl/commands/list-remote.js +53 -0
  339. package/dist/commands/recipes/impl/commands/list.d.ts +7 -0
  340. package/dist/commands/recipes/impl/commands/list.d.ts.map +1 -0
  341. package/dist/commands/recipes/impl/commands/list.js +38 -0
  342. package/dist/commands/recipes/impl/commands/remove.d.ts +6 -0
  343. package/dist/commands/recipes/impl/commands/remove.d.ts.map +1 -0
  344. package/dist/commands/recipes/impl/commands/remove.js +35 -0
  345. package/dist/commands/recipes/impl/commands.d.ts +8 -0
  346. package/dist/commands/recipes/impl/commands.d.ts.map +1 -0
  347. package/dist/commands/recipes/impl/commands.js +7 -0
  348. package/dist/commands/recipes/impl/constants.d.ts +13 -0
  349. package/dist/commands/recipes/impl/constants.d.ts.map +1 -0
  350. package/dist/commands/recipes/impl/constants.js +16 -0
  351. package/dist/commands/recipes/impl/format.d.ts +2 -0
  352. package/dist/commands/recipes/impl/format.d.ts.map +1 -0
  353. package/dist/commands/recipes/impl/format.js +9 -0
  354. package/dist/commands/recipes/impl/index.d.ts +12 -0
  355. package/dist/commands/recipes/impl/index.d.ts.map +1 -0
  356. package/dist/commands/recipes/impl/index.js +150 -0
  357. package/dist/commands/recipes/impl/installed-recipes.d.ts +4 -0
  358. package/dist/commands/recipes/impl/installed-recipes.d.ts.map +1 -0
  359. package/dist/commands/recipes/impl/installed-recipes.js +58 -0
  360. package/dist/commands/recipes/impl/manifest.d.ts +4 -0
  361. package/dist/commands/recipes/impl/manifest.d.ts.map +1 -0
  362. package/dist/commands/recipes/impl/manifest.js +43 -0
  363. package/dist/commands/recipes/impl/normalize.d.ts +5 -0
  364. package/dist/commands/recipes/impl/normalize.d.ts.map +1 -0
  365. package/dist/commands/recipes/impl/normalize.js +50 -0
  366. package/dist/commands/recipes/impl/paths.d.ts +13 -0
  367. package/dist/commands/recipes/impl/paths.d.ts.map +1 -0
  368. package/dist/commands/recipes/impl/paths.js +27 -0
  369. package/dist/commands/recipes/impl/project.d.ts +8 -0
  370. package/dist/commands/recipes/impl/project.d.ts.map +1 -0
  371. package/dist/commands/recipes/impl/project.js +23 -0
  372. package/dist/commands/recipes/impl/scenario.d.ts +16 -0
  373. package/dist/commands/recipes/impl/scenario.d.ts.map +1 -0
  374. package/dist/commands/recipes/impl/scenario.js +128 -0
  375. package/dist/commands/recipes/impl/types.d.ts +107 -0
  376. package/dist/commands/recipes/impl/types.d.ts.map +1 -0
  377. package/dist/commands/recipes/impl/types.js +1 -0
  378. package/dist/commands/recipes/info.command.d.ts +7 -0
  379. package/dist/commands/recipes/info.command.d.ts.map +1 -0
  380. package/dist/commands/recipes/info.command.js +10 -0
  381. package/dist/commands/recipes/install.command.d.ts +12 -0
  382. package/dist/commands/recipes/install.command.d.ts.map +1 -0
  383. package/dist/commands/recipes/install.command.js +161 -0
  384. package/dist/commands/recipes/list-remote.command.d.ts +6 -0
  385. package/dist/commands/recipes/list-remote.command.d.ts.map +1 -0
  386. package/dist/commands/recipes/list-remote.command.js +46 -0
  387. package/dist/commands/recipes/list.command.d.ts +6 -0
  388. package/dist/commands/recipes/list.command.d.ts.map +1 -0
  389. package/dist/commands/recipes/list.command.js +39 -0
  390. package/dist/commands/recipes/recipes.command.d.ts +6 -0
  391. package/dist/commands/recipes/recipes.command.d.ts.map +1 -0
  392. package/dist/commands/recipes/recipes.command.js +45 -0
  393. package/dist/commands/recipes/remove.command.d.ts +7 -0
  394. package/dist/commands/recipes/remove.command.d.ts.map +1 -0
  395. package/dist/commands/recipes/remove.command.js +10 -0
  396. package/dist/commands/recipes.d.ts +7 -81
  397. package/dist/commands/recipes.d.ts.map +1 -1
  398. package/dist/commands/recipes.js +6 -1457
  399. package/dist/commands/scenario/impl/commands.d.ts +19 -0
  400. package/dist/commands/scenario/impl/commands.d.ts.map +1 -0
  401. package/dist/commands/scenario/impl/commands.js +336 -0
  402. package/dist/commands/scenario/impl/report.d.ts +30 -0
  403. package/dist/commands/scenario/impl/report.d.ts.map +1 -0
  404. package/dist/commands/scenario/impl/report.js +99 -0
  405. package/dist/commands/scenario/info.command.d.ts +8 -0
  406. package/dist/commands/scenario/info.command.d.ts.map +1 -0
  407. package/dist/commands/scenario/info.command.js +27 -0
  408. package/dist/commands/scenario/list.command.d.ts +5 -0
  409. package/dist/commands/scenario/list.command.d.ts.map +1 -0
  410. package/dist/commands/scenario/list.command.js +9 -0
  411. package/dist/commands/scenario/run.command.d.ts +8 -0
  412. package/dist/commands/scenario/run.command.d.ts.map +1 -0
  413. package/dist/commands/scenario/run.command.js +27 -0
  414. package/dist/commands/scenario/scenario.command.d.ts +6 -0
  415. package/dist/commands/scenario/scenario.command.d.ts.map +1 -0
  416. package/dist/commands/scenario/scenario.command.js +37 -0
  417. package/dist/commands/scenario.d.ts +1 -6
  418. package/dist/commands/scenario.d.ts.map +1 -1
  419. package/dist/commands/scenario.js +1 -501
  420. package/dist/commands/shared/git-context.d.ts +23 -0
  421. package/dist/commands/shared/git-context.d.ts.map +1 -0
  422. package/dist/commands/shared/git-context.js +140 -0
  423. package/dist/commands/shared/policy-deny.d.ts +3 -0
  424. package/dist/commands/shared/policy-deny.d.ts.map +1 -0
  425. package/dist/commands/shared/policy-deny.js +12 -0
  426. package/dist/commands/shared/task-backend.d.ts +17 -5
  427. package/dist/commands/shared/task-backend.d.ts.map +1 -1
  428. package/dist/commands/shared/task-backend.js +34 -5
  429. package/dist/commands/shared/task-store.d.ts +16 -0
  430. package/dist/commands/shared/task-store.d.ts.map +1 -0
  431. package/dist/commands/shared/task-store.js +142 -0
  432. package/dist/commands/start.command.d.ts +19 -0
  433. package/dist/commands/start.command.d.ts.map +1 -0
  434. package/dist/commands/start.command.js +143 -0
  435. package/dist/commands/sync.command.d.ts +6 -0
  436. package/dist/commands/sync.command.d.ts.map +1 -0
  437. package/dist/commands/sync.command.js +57 -0
  438. package/dist/commands/task/add.command.d.ts +18 -0
  439. package/dist/commands/task/add.command.d.ts.map +1 -0
  440. package/dist/commands/task/add.command.js +157 -0
  441. package/dist/commands/task/add.d.ts +13 -3
  442. package/dist/commands/task/add.d.ts.map +1 -1
  443. package/dist/commands/task/add.js +21 -126
  444. package/dist/commands/task/block.d.ts +2 -2
  445. package/dist/commands/task/block.d.ts.map +1 -1
  446. package/dist/commands/task/block.js +13 -9
  447. package/dist/commands/task/comment.command.d.ts +10 -0
  448. package/dist/commands/task/comment.command.d.ts.map +1 -0
  449. package/dist/commands/task/comment.command.js +57 -0
  450. package/dist/commands/task/comment.d.ts +2 -0
  451. package/dist/commands/task/comment.d.ts.map +1 -1
  452. package/dist/commands/task/comment.js +10 -7
  453. package/dist/commands/task/derive.command.d.ts +13 -0
  454. package/dist/commands/task/derive.command.d.ts.map +1 -0
  455. package/dist/commands/task/derive.command.js +94 -0
  456. package/dist/commands/task/derive.d.ts +13 -0
  457. package/dist/commands/task/derive.d.ts.map +1 -0
  458. package/dist/commands/task/derive.js +71 -0
  459. package/dist/commands/task/doc-set.command.d.ts +12 -0
  460. package/dist/commands/task/doc-set.command.d.ts.map +1 -0
  461. package/dist/commands/task/doc-set.command.js +82 -0
  462. package/dist/commands/task/doc-show.command.d.ts +10 -0
  463. package/dist/commands/task/doc-show.command.d.ts.map +1 -0
  464. package/dist/commands/task/doc-show.command.js +54 -0
  465. package/dist/commands/task/doc.command.d.ts +7 -0
  466. package/dist/commands/task/doc.command.d.ts.map +1 -0
  467. package/dist/commands/task/doc.command.js +22 -0
  468. package/dist/commands/task/doc.d.ts +9 -6
  469. package/dist/commands/task/doc.d.ts.map +1 -1
  470. package/dist/commands/task/doc.js +61 -113
  471. package/dist/commands/task/export.command.d.ts +6 -0
  472. package/dist/commands/task/export.command.d.ts.map +1 -0
  473. package/dist/commands/task/export.command.js +17 -0
  474. package/dist/commands/task/export.d.ts +2 -0
  475. package/dist/commands/task/export.d.ts.map +1 -1
  476. package/dist/commands/task/export.js +7 -9
  477. package/dist/commands/task/finish.d.ts +5 -4
  478. package/dist/commands/task/finish.d.ts.map +1 -1
  479. package/dist/commands/task/finish.js +50 -17
  480. package/dist/commands/task/index.d.ts +14 -13
  481. package/dist/commands/task/index.d.ts.map +1 -1
  482. package/dist/commands/task/index.js +13 -13
  483. package/dist/commands/task/lint.command.d.ts +5 -0
  484. package/dist/commands/task/lint.command.d.ts.map +1 -0
  485. package/dist/commands/task/lint.command.js +11 -0
  486. package/dist/commands/task/list.command.d.ts +9 -0
  487. package/dist/commands/task/list.command.d.ts.map +1 -0
  488. package/dist/commands/task/list.command.js +68 -0
  489. package/dist/commands/task/list.d.ts +6 -2
  490. package/dist/commands/task/list.d.ts.map +1 -1
  491. package/dist/commands/task/list.js +12 -15
  492. package/dist/commands/task/migrate-doc.command.d.ts +9 -0
  493. package/dist/commands/task/migrate-doc.command.d.ts.map +1 -0
  494. package/dist/commands/task/migrate-doc.command.js +65 -0
  495. package/dist/commands/task/migrate-doc.d.ts +3 -3
  496. package/dist/commands/task/migrate-doc.d.ts.map +1 -1
  497. package/dist/commands/task/migrate-doc.js +40 -47
  498. package/dist/commands/task/migrate.command.d.ts +10 -0
  499. package/dist/commands/task/migrate.command.d.ts.map +1 -0
  500. package/dist/commands/task/migrate.command.js +50 -0
  501. package/dist/commands/task/migrate.d.ts +5 -1
  502. package/dist/commands/task/migrate.d.ts.map +1 -1
  503. package/dist/commands/task/migrate.js +10 -44
  504. package/dist/commands/task/new.command.d.ts +6 -0
  505. package/dist/commands/task/new.command.d.ts.map +1 -0
  506. package/dist/commands/task/new.command.js +13 -0
  507. package/dist/commands/task/new.d.ts +13 -4
  508. package/dist/commands/task/new.d.ts.map +1 -1
  509. package/dist/commands/task/new.js +30 -92
  510. package/dist/commands/task/new.spec.d.ts +4 -0
  511. package/dist/commands/task/new.spec.d.ts.map +1 -0
  512. package/dist/commands/task/new.spec.js +79 -0
  513. package/dist/commands/task/next.command.d.ts +9 -0
  514. package/dist/commands/task/next.command.d.ts.map +1 -0
  515. package/dist/commands/task/next.command.js +89 -0
  516. package/dist/commands/task/next.d.ts +4 -1
  517. package/dist/commands/task/next.d.ts.map +1 -1
  518. package/dist/commands/task/next.js +15 -16
  519. package/dist/commands/task/normalize.command.d.ts +9 -0
  520. package/dist/commands/task/normalize.command.d.ts.map +1 -0
  521. package/dist/commands/task/normalize.command.js +39 -0
  522. package/dist/commands/task/normalize.d.ts +4 -1
  523. package/dist/commands/task/normalize.d.ts.map +1 -1
  524. package/dist/commands/task/normalize.js +18 -31
  525. package/dist/commands/task/plan-approve.command.d.ts +10 -0
  526. package/dist/commands/task/plan-approve.command.d.ts.map +1 -0
  527. package/dist/commands/task/plan-approve.command.js +54 -0
  528. package/dist/commands/task/plan-reject.command.d.ts +10 -0
  529. package/dist/commands/task/plan-reject.command.d.ts.map +1 -0
  530. package/dist/commands/task/plan-reject.command.js +59 -0
  531. package/dist/commands/task/plan-set.command.d.ts +11 -0
  532. package/dist/commands/task/plan-set.command.d.ts.map +1 -0
  533. package/dist/commands/task/plan-set.command.js +76 -0
  534. package/dist/commands/task/plan.d.ts +23 -10
  535. package/dist/commands/task/plan.d.ts.map +1 -1
  536. package/dist/commands/task/plan.js +182 -177
  537. package/dist/commands/task/ready.d.ts +2 -0
  538. package/dist/commands/task/ready.d.ts.map +1 -1
  539. package/dist/commands/task/ready.js +4 -6
  540. package/dist/commands/task/scaffold.command.d.ts +12 -0
  541. package/dist/commands/task/scaffold.command.d.ts.map +1 -0
  542. package/dist/commands/task/scaffold.command.js +73 -0
  543. package/dist/commands/task/scaffold.d.ts +7 -3
  544. package/dist/commands/task/scaffold.d.ts.map +1 -1
  545. package/dist/commands/task/scaffold.js +57 -67
  546. package/dist/commands/task/scrub.command.d.ts +11 -0
  547. package/dist/commands/task/scrub.command.d.ts.map +1 -0
  548. package/dist/commands/task/scrub.command.js +72 -0
  549. package/dist/commands/task/scrub.d.ts +6 -3
  550. package/dist/commands/task/scrub.d.ts.map +1 -1
  551. package/dist/commands/task/scrub.js +12 -68
  552. package/dist/commands/task/search.command.d.ts +11 -0
  553. package/dist/commands/task/search.command.d.ts.map +1 -0
  554. package/dist/commands/task/search.command.js +101 -0
  555. package/dist/commands/task/search.d.ts +5 -1
  556. package/dist/commands/task/search.d.ts.map +1 -1
  557. package/dist/commands/task/search.js +14 -23
  558. package/dist/commands/task/set-status.command.d.ts +21 -0
  559. package/dist/commands/task/set-status.command.d.ts.map +1 -0
  560. package/dist/commands/task/set-status.command.js +171 -0
  561. package/dist/commands/task/set-status.d.ts +2 -0
  562. package/dist/commands/task/set-status.d.ts.map +1 -1
  563. package/dist/commands/task/set-status.js +14 -8
  564. package/dist/commands/task/shared.d.ts +5 -0
  565. package/dist/commands/task/shared.d.ts.map +1 -1
  566. package/dist/commands/task/shared.js +50 -0
  567. package/dist/commands/task/show.command.d.ts +8 -0
  568. package/dist/commands/task/show.command.d.ts.map +1 -0
  569. package/dist/commands/task/show.command.js +19 -0
  570. package/dist/commands/task/show.d.ts +2 -0
  571. package/dist/commands/task/show.d.ts.map +1 -1
  572. package/dist/commands/task/show.js +5 -7
  573. package/dist/commands/task/start.d.ts +2 -2
  574. package/dist/commands/task/start.d.ts.map +1 -1
  575. package/dist/commands/task/start.js +48 -11
  576. package/dist/commands/task/update.command.d.ts +18 -0
  577. package/dist/commands/task/update.command.d.ts.map +1 -0
  578. package/dist/commands/task/update.command.js +141 -0
  579. package/dist/commands/task/update.d.ts +13 -3
  580. package/dist/commands/task/update.d.ts.map +1 -1
  581. package/dist/commands/task/update.js +31 -122
  582. package/dist/commands/task/verify-ok.command.d.ts +13 -0
  583. package/dist/commands/task/verify-ok.command.d.ts.map +1 -0
  584. package/dist/commands/task/verify-ok.command.js +83 -0
  585. package/dist/commands/task/verify-record.d.ts +30 -8
  586. package/dist/commands/task/verify-record.d.ts.map +1 -1
  587. package/dist/commands/task/verify-record.js +107 -117
  588. package/dist/commands/task/verify-rework.command.d.ts +13 -0
  589. package/dist/commands/task/verify-rework.command.d.ts.map +1 -0
  590. package/dist/commands/task/verify-rework.command.js +83 -0
  591. package/dist/commands/task/verify-show.command.d.ts +9 -0
  592. package/dist/commands/task/verify-show.command.d.ts.map +1 -0
  593. package/dist/commands/task/verify-show.command.js +38 -0
  594. package/dist/commands/task/verify.command.d.ts +7 -0
  595. package/dist/commands/task/verify.command.d.ts.map +1 -0
  596. package/dist/commands/task/verify.command.js +20 -0
  597. package/dist/commands/upgrade.command.d.ts +6 -0
  598. package/dist/commands/upgrade.command.d.ts.map +1 -0
  599. package/dist/commands/upgrade.command.js +104 -0
  600. package/dist/commands/upgrade.d.ts +13 -2
  601. package/dist/commands/upgrade.d.ts.map +1 -1
  602. package/dist/commands/upgrade.js +12 -80
  603. package/dist/commands/verify.command.d.ts +16 -0
  604. package/dist/commands/verify.command.d.ts.map +1 -0
  605. package/dist/commands/verify.command.js +113 -0
  606. package/dist/commands/workflow.d.ts +4 -6
  607. package/dist/commands/workflow.d.ts.map +1 -1
  608. package/dist/commands/workflow.js +4 -7
  609. package/dist/meta/release.d.ts +2 -0
  610. package/dist/meta/release.d.ts.map +1 -0
  611. package/dist/meta/release.js +50 -0
  612. package/dist/policy/evaluate.d.ts +3 -0
  613. package/dist/policy/evaluate.d.ts.map +1 -0
  614. package/dist/policy/evaluate.js +27 -0
  615. package/dist/policy/result.d.ts +7 -0
  616. package/dist/policy/result.d.ts.map +1 -0
  617. package/dist/policy/result.js +21 -0
  618. package/dist/policy/rules/allowlist.d.ts +3 -0
  619. package/dist/policy/rules/allowlist.d.ts.map +1 -0
  620. package/dist/policy/rules/allowlist.js +30 -0
  621. package/dist/policy/rules/branch-pr-base.d.ts +3 -0
  622. package/dist/policy/rules/branch-pr-base.d.ts.map +1 -0
  623. package/dist/policy/rules/branch-pr-base.js +43 -0
  624. package/dist/policy/rules/clean-tree.d.ts +3 -0
  625. package/dist/policy/rules/clean-tree.d.ts.map +1 -0
  626. package/dist/policy/rules/clean-tree.js +19 -0
  627. package/dist/policy/rules/commit-subject.d.ts +3 -0
  628. package/dist/policy/rules/commit-subject.d.ts.map +1 -0
  629. package/dist/policy/rules/commit-subject.js +33 -0
  630. package/dist/policy/rules/protected-paths.d.ts +3 -0
  631. package/dist/policy/rules/protected-paths.d.ts.map +1 -0
  632. package/dist/policy/rules/protected-paths.js +53 -0
  633. package/dist/policy/types.d.ts +38 -0
  634. package/dist/policy/types.d.ts.map +1 -0
  635. package/dist/policy/types.js +1 -0
  636. package/dist/shared/write-if-changed.d.ts +3 -0
  637. package/dist/shared/write-if-changed.d.ts.map +1 -0
  638. package/dist/shared/write-if-changed.js +25 -0
  639. package/package.json +2 -2
  640. package/dist/cli/help.d.ts +0 -2
  641. package/dist/cli/help.d.ts.map +0 -1
  642. package/dist/cli/help.js +0 -127
  643. package/dist/commands/task/verify.d.ts +0 -2
  644. package/dist/commands/task/verify.d.ts.map +0 -1
  645. package/dist/commands/task/verify.js +0 -1
@@ -0,0 +1,8 @@
1
+ export { cmdRecipeListParsed } from "./commands/list.js";
2
+ export { cmdRecipeListRemoteParsed } from "./commands/list-remote.js";
3
+ export { cmdRecipeInfoParsed } from "./commands/info.js";
4
+ export { cmdRecipeExplainParsed } from "./commands/explain.js";
5
+ export { cmdRecipeInstall } from "./commands/install.js";
6
+ export { cmdRecipeRemoveParsed } from "./commands/remove.js";
7
+ export { cmdRecipeCachePruneParsed } from "./commands/cache-prune.js";
8
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../../src/commands/recipes/impl/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { cmdRecipeListParsed } from "./commands/list.js";
2
+ export { cmdRecipeListRemoteParsed } from "./commands/list-remote.js";
3
+ export { cmdRecipeInfoParsed } from "./commands/info.js";
4
+ export { cmdRecipeExplainParsed } from "./commands/explain.js";
5
+ export { cmdRecipeInstall } from "./commands/install.js";
6
+ export { cmdRecipeRemoveParsed } from "./commands/remove.js";
7
+ export { cmdRecipeCachePruneParsed } from "./commands/cache-prune.js";
@@ -0,0 +1,13 @@
1
+ export declare const INSTALLED_RECIPES_NAME = "recipes.json";
2
+ export declare const RECIPES_DIR_NAME = "recipes";
3
+ export declare const RECIPES_SCENARIOS_DIR_NAME = "scenarios";
4
+ export declare const RECIPES_SCENARIOS_INDEX_NAME = "scenarios.json";
5
+ export declare const AGENTPLANE_HOME_ENV = "AGENTPLANE_HOME";
6
+ export declare const GLOBAL_RECIPES_DIR_NAME = "recipes";
7
+ export declare const PROJECT_RECIPES_CACHE_DIR_NAME = "recipes-cache";
8
+ export declare const RECIPES_REMOTE_INDEX_NAME = "recipes-index.json";
9
+ export declare const RECIPES_REMOTE_INDEX_SIG_NAME = "recipes-index.json.sig";
10
+ export declare const DEFAULT_RECIPES_INDEX_URL = "https://raw.githubusercontent.com/basilisk-labs/agentplane-recipes/main/index.json";
11
+ export declare const RECIPES_INDEX_PUBLIC_KEYS_ENV = "AGENTPLANE_RECIPES_INDEX_PUBLIC_KEYS";
12
+ export declare const RECIPES_INDEX_PUBLIC_KEYS: Record<string, string>;
13
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/commands/recipes/impl/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,iBAAiB,CAAC;AACrD,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,0BAA0B,cAAc,CAAC;AACtD,eAAO,MAAM,4BAA4B,mBAAmB,CAAC;AAE7D,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AAErD,eAAO,MAAM,uBAAuB,YAAY,CAAC;AACjD,eAAO,MAAM,8BAA8B,kBAAkB,CAAC;AAE9D,eAAO,MAAM,yBAAyB,uBAAuB,CAAC;AAC9D,eAAO,MAAM,6BAA6B,2BAA2B,CAAC;AAEtE,eAAO,MAAM,yBAAyB,uFACgD,CAAC;AAEvF,eAAO,MAAM,6BAA6B,yCAAyC,CAAC;AAEpF,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI5D,CAAC"}
@@ -0,0 +1,16 @@
1
+ export const INSTALLED_RECIPES_NAME = "recipes.json";
2
+ export const RECIPES_DIR_NAME = "recipes";
3
+ export const RECIPES_SCENARIOS_DIR_NAME = "scenarios";
4
+ export const RECIPES_SCENARIOS_INDEX_NAME = "scenarios.json";
5
+ export const AGENTPLANE_HOME_ENV = "AGENTPLANE_HOME";
6
+ export const GLOBAL_RECIPES_DIR_NAME = "recipes";
7
+ export const PROJECT_RECIPES_CACHE_DIR_NAME = "recipes-cache";
8
+ export const RECIPES_REMOTE_INDEX_NAME = "recipes-index.json";
9
+ export const RECIPES_REMOTE_INDEX_SIG_NAME = "recipes-index.json.sig";
10
+ export const DEFAULT_RECIPES_INDEX_URL = "https://raw.githubusercontent.com/basilisk-labs/agentplane-recipes/main/index.json";
11
+ export const RECIPES_INDEX_PUBLIC_KEYS_ENV = "AGENTPLANE_RECIPES_INDEX_PUBLIC_KEYS";
12
+ export const RECIPES_INDEX_PUBLIC_KEYS = {
13
+ "2026-02": `-----BEGIN PUBLIC KEY-----
14
+ MCowBQYDK2VwAyEAeRWdXKVZtz0v+bnQS3zb24jMfa0gflsRUHQkeJkji6E=
15
+ -----END PUBLIC KEY-----`,
16
+ };
@@ -0,0 +1,2 @@
1
+ export declare function formatJsonBlock(value: unknown, indent: string): string;
2
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../src/commands/recipes/impl/format.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAOtE"}
@@ -0,0 +1,9 @@
1
+ export function formatJsonBlock(value, indent) {
2
+ const payload = JSON.stringify(value, null, 2);
3
+ if (!payload)
4
+ return "";
5
+ return payload
6
+ .split("\n")
7
+ .map((line) => `${indent}${line}`)
8
+ .join("\n");
9
+ }
@@ -0,0 +1,12 @@
1
+ import type { RecipesIndex } from "./types.js";
2
+ export declare function loadRecipesRemoteIndex(opts: {
3
+ cwd: string;
4
+ source?: string;
5
+ refresh: boolean;
6
+ }): Promise<RecipesIndex>;
7
+ export declare function willFetchRemoteRecipesIndex(opts: {
8
+ source: string;
9
+ refresh: boolean;
10
+ cachePathExists: boolean;
11
+ }): boolean;
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/recipes/impl/index.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,YAAY,EAAyB,MAAM,YAAY,CAAC;AAyHtE,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC,YAAY,CAAC,CA0BxB;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;CAC1B,GAAG,OAAO,CAGV"}
@@ -0,0 +1,150 @@
1
+ import { createPublicKey, verify } from "node:crypto";
2
+ import { mkdir, readFile } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { fetchJson, fetchText } from "../../../cli/http.js";
5
+ import { fileExists } from "../../../cli/fs-utils.js";
6
+ import { invalidFieldMessage } from "../../../cli/output.js";
7
+ import { isRecord } from "../../../shared/guards.js";
8
+ import { writeJsonStableIfChanged, writeTextIfChanged } from "../../../shared/write-if-changed.js";
9
+ import { DEFAULT_RECIPES_INDEX_URL, RECIPES_INDEX_PUBLIC_KEYS, RECIPES_INDEX_PUBLIC_KEYS_ENV, } from "./constants.js";
10
+ import { resolveRecipesIndexCachePath, resolveRecipesIndexCacheSigPath } from "./paths.js";
11
+ function loadRecipesIndexPublicKeys() {
12
+ const raw = process.env[RECIPES_INDEX_PUBLIC_KEYS_ENV];
13
+ if (!raw)
14
+ return { ...RECIPES_INDEX_PUBLIC_KEYS };
15
+ try {
16
+ const parsed = JSON.parse(raw);
17
+ const merged = { ...RECIPES_INDEX_PUBLIC_KEYS };
18
+ for (const [key, value] of Object.entries(parsed)) {
19
+ if (typeof value === "string" && value.trim())
20
+ merged[key] = value.trim();
21
+ }
22
+ return merged;
23
+ }
24
+ catch {
25
+ return { ...RECIPES_INDEX_PUBLIC_KEYS };
26
+ }
27
+ }
28
+ function validateRecipesIndexSignature(raw) {
29
+ if (!isRecord(raw))
30
+ throw new Error(invalidFieldMessage("recipes index signature", "object"));
31
+ if (raw.schema_version !== 1) {
32
+ throw new Error(invalidFieldMessage("recipes index signature.schema_version", "1"));
33
+ }
34
+ const keyId = typeof raw.key_id === "string" ? raw.key_id.trim() : "";
35
+ const signature = typeof raw.signature === "string" ? raw.signature.trim() : "";
36
+ if (!keyId || !signature) {
37
+ throw new Error(invalidFieldMessage("recipes index signature", "key_id, signature"));
38
+ }
39
+ const algorithm = typeof raw.algorithm === "string" ? raw.algorithm.trim() : undefined;
40
+ return { schema_version: 1, key_id: keyId, signature, algorithm };
41
+ }
42
+ function verifyRecipesIndexSignature(indexText, signature) {
43
+ if (signature.algorithm && signature.algorithm !== "ed25519") {
44
+ throw new Error(invalidFieldMessage("recipes index signature.algorithm", "ed25519"));
45
+ }
46
+ const keys = loadRecipesIndexPublicKeys();
47
+ const publicKey = keys[signature.key_id];
48
+ if (!publicKey) {
49
+ throw new Error(invalidFieldMessage("recipes index signature.key_id", "known key id"));
50
+ }
51
+ const key = createPublicKey(publicKey);
52
+ const ok = verify(null, Buffer.from(indexText), key, Buffer.from(signature.signature, "base64"));
53
+ if (!ok) {
54
+ throw new Error("Invalid signature for recipes index");
55
+ }
56
+ }
57
+ function validateRecipesIndex(raw) {
58
+ if (!isRecord(raw))
59
+ throw new Error(invalidFieldMessage("recipes index", "object"));
60
+ if (raw.schema_version !== 1)
61
+ throw new Error(invalidFieldMessage("recipes index.schema_version", "1"));
62
+ if (!Array.isArray(raw.recipes))
63
+ throw new Error(invalidFieldMessage("recipes index.recipes", "array"));
64
+ const recipes = raw.recipes
65
+ .filter((entry) => isRecord(entry))
66
+ .map((entry) => {
67
+ const id = typeof entry.id === "string" ? entry.id : "";
68
+ const summary = typeof entry.summary === "string" ? entry.summary : "";
69
+ const description = typeof entry.description === "string" ? entry.description : undefined;
70
+ const versionsRaw = Array.isArray(entry.versions) ? entry.versions : [];
71
+ if (!id || !summary || versionsRaw.length === 0) {
72
+ throw new Error(invalidFieldMessage("recipes index.recipes[]", "id, summary, versions"));
73
+ }
74
+ const versions = versionsRaw
75
+ .filter((version) => isRecord(version))
76
+ .map((version) => {
77
+ const versionId = typeof version.version === "string" ? version.version : "";
78
+ const url = typeof version.url === "string" ? version.url : "";
79
+ const sha256 = typeof version.sha256 === "string" ? version.sha256 : "";
80
+ if (!versionId || !url || !sha256) {
81
+ throw new Error(invalidFieldMessage("recipes index.recipes[].versions[]", "version, url, sha256"));
82
+ }
83
+ return {
84
+ version: versionId,
85
+ url,
86
+ sha256,
87
+ min_agentplane_version: typeof version.min_agentplane_version === "string"
88
+ ? version.min_agentplane_version
89
+ : undefined,
90
+ tags: Array.isArray(version.tags)
91
+ ? version.tags.filter((tag) => typeof tag === "string")
92
+ : undefined,
93
+ };
94
+ });
95
+ return { id, summary, description, versions };
96
+ });
97
+ return { schema_version: 1, recipes };
98
+ }
99
+ function isHttpUrl(value) {
100
+ return value.startsWith("http://") || value.startsWith("https://");
101
+ }
102
+ async function readRecipesIndexText(source, cwd) {
103
+ if (isHttpUrl(source)) {
104
+ return await fetchText(source);
105
+ }
106
+ return await readFile(path.resolve(cwd, source), "utf8");
107
+ }
108
+ function signatureSourceForIndex(source) {
109
+ return `${source}.sig`;
110
+ }
111
+ async function readRecipesIndexSignature(source, cwd) {
112
+ const sigSource = signatureSourceForIndex(source);
113
+ if (isHttpUrl(sigSource)) {
114
+ const raw = await fetchJson(sigSource);
115
+ return validateRecipesIndexSignature(raw);
116
+ }
117
+ const rawText = await readFile(path.resolve(cwd, sigSource), "utf8");
118
+ return validateRecipesIndexSignature(JSON.parse(rawText));
119
+ }
120
+ export async function loadRecipesRemoteIndex(opts) {
121
+ const cachePath = resolveRecipesIndexCachePath();
122
+ const cacheSigPath = resolveRecipesIndexCacheSigPath();
123
+ const cacheDir = path.dirname(cachePath);
124
+ let rawIndex;
125
+ if (opts.refresh || !(await fileExists(cachePath))) {
126
+ const source = opts.source ?? DEFAULT_RECIPES_INDEX_URL;
127
+ const indexText = await readRecipesIndexText(source, opts.cwd);
128
+ const signature = await readRecipesIndexSignature(source, opts.cwd);
129
+ verifyRecipesIndexSignature(indexText, signature);
130
+ rawIndex = JSON.parse(indexText);
131
+ await mkdir(cacheDir, { recursive: true });
132
+ await writeTextIfChanged(cachePath, indexText);
133
+ await writeJsonStableIfChanged(cacheSigPath, signature);
134
+ }
135
+ else {
136
+ const [indexText, sigText] = await Promise.all([
137
+ readFile(cachePath, "utf8"),
138
+ readFile(cacheSigPath, "utf8"),
139
+ ]);
140
+ const signature = validateRecipesIndexSignature(JSON.parse(sigText));
141
+ verifyRecipesIndexSignature(indexText, signature);
142
+ rawIndex = JSON.parse(indexText);
143
+ }
144
+ return validateRecipesIndex(rawIndex);
145
+ }
146
+ export function willFetchRemoteRecipesIndex(opts) {
147
+ if (!isHttpUrl(opts.source))
148
+ return false;
149
+ return opts.refresh || !opts.cachePathExists;
150
+ }
@@ -0,0 +1,4 @@
1
+ import type { InstalledRecipesFile } from "./types.js";
2
+ export declare function readInstalledRecipesFile(filePath: string): Promise<InstalledRecipesFile>;
3
+ export declare function writeInstalledRecipesFile(filePath: string, file: InstalledRecipesFile): Promise<void>;
4
+ //# sourceMappingURL=installed-recipes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installed-recipes.d.ts","sourceRoot":"","sources":["../../../../src/commands/recipes/impl/installed-recipes.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAoCvD,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAS9F;AAED,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,IAAI,CAAC,CAOf"}
@@ -0,0 +1,58 @@
1
+ import { mkdir, readFile } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { invalidFieldMessage } from "../../../cli/output.js";
4
+ import { isRecord } from "../../../shared/guards.js";
5
+ import { writeJsonStableIfChanged } from "../../../shared/write-if-changed.js";
6
+ import { normalizeRecipeTags } from "./normalize.js";
7
+ import { validateRecipeManifest } from "./manifest.js";
8
+ function validateInstalledRecipesFile(raw) {
9
+ if (!isRecord(raw))
10
+ throw new Error(invalidFieldMessage("recipes.json", "object"));
11
+ if (raw.schema_version !== 1)
12
+ throw new Error(invalidFieldMessage("recipes.json.schema_version", "1"));
13
+ if (!Array.isArray(raw.recipes))
14
+ throw new Error(invalidFieldMessage("recipes.json.recipes", "array"));
15
+ const updatedAt = typeof raw.updated_at === "string" ? raw.updated_at : "";
16
+ const recipes = raw.recipes
17
+ .filter((entry) => isRecord(entry))
18
+ .map((entry) => {
19
+ const manifest = validateRecipeManifest(entry.manifest);
20
+ const id = typeof entry.id === "string" ? entry.id.trim() : manifest.id;
21
+ const version = typeof entry.version === "string" ? entry.version.trim() : manifest.version;
22
+ const source = typeof entry.source === "string" ? entry.source.trim() : "";
23
+ const installedAt = typeof entry.installed_at === "string" ? entry.installed_at.trim() : "";
24
+ if (!id || !version || !source || !installedAt) {
25
+ throw new Error(invalidFieldMessage("recipes.json.recipes[]", "id, version, source, installed_at"));
26
+ }
27
+ if (id !== manifest.id || version !== manifest.version) {
28
+ throw new Error(invalidFieldMessage("recipes.json.recipes[]", "id/version match manifest"));
29
+ }
30
+ const tags = normalizeRecipeTags(entry.tags ?? manifest.tags ?? []);
31
+ return { id, version, source, installed_at: installedAt, tags, manifest };
32
+ });
33
+ return { schema_version: 1, updated_at: updatedAt, recipes };
34
+ }
35
+ function sortInstalledRecipes(file) {
36
+ const recipes = [...file.recipes].toSorted((a, b) => a.id.localeCompare(b.id));
37
+ return { schema_version: 1, updated_at: file.updated_at, recipes };
38
+ }
39
+ export async function readInstalledRecipesFile(filePath) {
40
+ try {
41
+ const raw = JSON.parse(await readFile(filePath, "utf8"));
42
+ return sortInstalledRecipes(validateInstalledRecipesFile(raw));
43
+ }
44
+ catch (err) {
45
+ const code = err?.code;
46
+ if (code === "ENOENT")
47
+ return { schema_version: 1, updated_at: "", recipes: [] };
48
+ throw err;
49
+ }
50
+ }
51
+ export async function writeInstalledRecipesFile(filePath, file) {
52
+ const sorted = sortInstalledRecipes({
53
+ ...file,
54
+ updated_at: new Date().toISOString(),
55
+ });
56
+ await mkdir(path.dirname(filePath), { recursive: true });
57
+ await writeJsonStableIfChanged(filePath, sorted);
58
+ }
@@ -0,0 +1,4 @@
1
+ import type { RecipeManifest } from "./types.js";
2
+ export declare function validateRecipeManifest(raw: unknown): RecipeManifest;
3
+ export declare function readRecipeManifest(manifestPath: string): Promise<RecipeManifest>;
4
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../../src/commands/recipes/impl/manifest.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAgCnE;AAED,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAGtF"}
@@ -0,0 +1,43 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { invalidFieldMessage, requiredFieldMessage } from "../../../cli/output.js";
3
+ import { isRecord } from "../../../shared/guards.js";
4
+ import { normalizeRecipeId, normalizeRecipeTags } from "./normalize.js";
5
+ export function validateRecipeManifest(raw) {
6
+ if (!isRecord(raw))
7
+ throw new Error(invalidFieldMessage("manifest", "object"));
8
+ if (raw.schema_version !== "1")
9
+ throw new Error(invalidFieldMessage("manifest.schema_version", '"1"'));
10
+ if (typeof raw.id !== "string")
11
+ throw new Error(invalidFieldMessage("manifest.id", "string"));
12
+ if (typeof raw.version !== "string")
13
+ throw new Error(invalidFieldMessage("manifest.version", "string"));
14
+ if (typeof raw.name !== "string")
15
+ throw new Error(invalidFieldMessage("manifest.name", "string"));
16
+ if (typeof raw.summary !== "string")
17
+ throw new Error(invalidFieldMessage("manifest.summary", "string"));
18
+ if (typeof raw.description !== "string")
19
+ throw new Error(invalidFieldMessage("manifest.description", "string"));
20
+ const id = normalizeRecipeId(raw.id);
21
+ const version = raw.version.trim();
22
+ if (!version)
23
+ throw new Error(requiredFieldMessage("manifest.version"));
24
+ const tags = normalizeRecipeTags(raw.tags);
25
+ return {
26
+ schema_version: "1",
27
+ id,
28
+ version,
29
+ name: raw.name.trim(),
30
+ summary: raw.summary.trim(),
31
+ description: raw.description.trim(),
32
+ tags: tags.length > 0 ? tags : undefined,
33
+ agents: Array.isArray(raw.agents) ? raw.agents : undefined,
34
+ tools: Array.isArray(raw.tools) ? raw.tools : undefined,
35
+ scenarios: Array.isArray(raw.scenarios)
36
+ ? raw.scenarios
37
+ : undefined,
38
+ };
39
+ }
40
+ export async function readRecipeManifest(manifestPath) {
41
+ const raw = JSON.parse(await readFile(manifestPath, "utf8"));
42
+ return validateRecipeManifest(raw);
43
+ }
@@ -0,0 +1,5 @@
1
+ export declare function normalizeRecipeId(value: string): string;
2
+ export declare function normalizeAgentId(value: string): string;
3
+ export declare function normalizeScenarioId(value: string): string;
4
+ export declare function normalizeRecipeTags(value: unknown): string[];
5
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../src/commands/recipes/impl/normalize.ts"],"names":[],"mappings":"AAOA,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUvD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUtD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUzD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAQ5D"}
@@ -0,0 +1,50 @@
1
+ import { invalidPathMessage, requiredFieldMessage, invalidFieldMessage, } from "../../../cli/output.js";
2
+ import { dedupeStrings } from "../../../shared/strings.js";
3
+ export function normalizeRecipeId(value) {
4
+ const trimmed = value.trim();
5
+ if (!trimmed)
6
+ throw new Error(requiredFieldMessage("manifest.id"));
7
+ if (trimmed.includes("/") || trimmed.includes("\\")) {
8
+ throw new Error(invalidPathMessage("manifest.id", "must not contain path separators"));
9
+ }
10
+ if (trimmed === "." || trimmed === "..") {
11
+ throw new Error(invalidPathMessage("manifest.id", "must not be '.' or '..'"));
12
+ }
13
+ return trimmed;
14
+ }
15
+ export function normalizeAgentId(value) {
16
+ const trimmed = value.trim();
17
+ if (!trimmed)
18
+ throw new Error(requiredFieldMessage("agent.id"));
19
+ if (trimmed.includes("/") || trimmed.includes("\\")) {
20
+ throw new Error(invalidPathMessage("agent.id", "must not contain path separators"));
21
+ }
22
+ if (trimmed === "." || trimmed === "..") {
23
+ throw new Error(invalidPathMessage("agent.id", "must not be '.' or '..'"));
24
+ }
25
+ return trimmed;
26
+ }
27
+ export function normalizeScenarioId(value) {
28
+ const trimmed = value.trim();
29
+ if (!trimmed)
30
+ throw new Error(requiredFieldMessage("scenario.id"));
31
+ if (trimmed.includes("/") || trimmed.includes("\\")) {
32
+ throw new Error(invalidPathMessage("scenario.id", "must not contain path separators"));
33
+ }
34
+ if (trimmed === "." || trimmed === "..") {
35
+ throw new Error(invalidPathMessage("scenario.id", "must not be '.' or '..'"));
36
+ }
37
+ return trimmed;
38
+ }
39
+ export function normalizeRecipeTags(value) {
40
+ if (value === undefined)
41
+ return [];
42
+ if (!Array.isArray(value))
43
+ throw new Error(invalidFieldMessage("manifest.tags", "string[]"));
44
+ const tags = value.map((tag) => {
45
+ if (typeof tag !== "string")
46
+ throw new Error(invalidFieldMessage("manifest.tags", "string[]"));
47
+ return tag.trim();
48
+ });
49
+ return dedupeStrings(tags);
50
+ }
@@ -0,0 +1,13 @@
1
+ export declare function resolveAgentplaneHome(): string;
2
+ export declare function resolveGlobalRecipesDir(): string;
3
+ export declare function resolveInstalledRecipesPath(): string;
4
+ export declare function resolveRecipesIndexCachePath(): string;
5
+ export declare function resolveRecipesIndexCacheSigPath(): string;
6
+ export declare function resolveInstalledRecipeDir(entry: {
7
+ id: string;
8
+ version: string;
9
+ }): string;
10
+ export declare function resolveProjectRecipesCacheDir(resolved: {
11
+ agentplaneDir: string;
12
+ }): string;
13
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../../src/commands/recipes/impl/paths.ts"],"names":[],"mappings":"AAYA,wBAAgB,qBAAqB,IAAI,MAAM,CAI9C;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAED,wBAAgB,+BAA+B,IAAI,MAAM,CAExD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAExF;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEzF"}
@@ -0,0 +1,27 @@
1
+ import os from "node:os";
2
+ import path from "node:path";
3
+ import { AGENTPLANE_HOME_ENV, GLOBAL_RECIPES_DIR_NAME, INSTALLED_RECIPES_NAME, PROJECT_RECIPES_CACHE_DIR_NAME, RECIPES_REMOTE_INDEX_NAME, RECIPES_REMOTE_INDEX_SIG_NAME, } from "./constants.js";
4
+ export function resolveAgentplaneHome() {
5
+ const overridden = process.env[AGENTPLANE_HOME_ENV]?.trim();
6
+ if (overridden)
7
+ return overridden;
8
+ return path.join(os.homedir(), ".agentplane");
9
+ }
10
+ export function resolveGlobalRecipesDir() {
11
+ return path.join(resolveAgentplaneHome(), GLOBAL_RECIPES_DIR_NAME);
12
+ }
13
+ export function resolveInstalledRecipesPath() {
14
+ return path.join(resolveAgentplaneHome(), INSTALLED_RECIPES_NAME);
15
+ }
16
+ export function resolveRecipesIndexCachePath() {
17
+ return path.join(resolveAgentplaneHome(), RECIPES_REMOTE_INDEX_NAME);
18
+ }
19
+ export function resolveRecipesIndexCacheSigPath() {
20
+ return path.join(resolveAgentplaneHome(), RECIPES_REMOTE_INDEX_SIG_NAME);
21
+ }
22
+ export function resolveInstalledRecipeDir(entry) {
23
+ return path.join(resolveGlobalRecipesDir(), entry.id, entry.version);
24
+ }
25
+ export function resolveProjectRecipesCacheDir(resolved) {
26
+ return path.join(resolved.agentplaneDir, PROJECT_RECIPES_CACHE_DIR_NAME);
27
+ }
@@ -0,0 +1,8 @@
1
+ export declare function maybeResolveProject(opts: {
2
+ cwd: string;
3
+ rootOverride?: string;
4
+ }): Promise<{
5
+ gitRoot: string;
6
+ agentplaneDir: string;
7
+ } | null>;
8
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../../src/commands/recipes/impl/project.ts"],"names":[],"mappings":"AASA,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAa7D"}
@@ -0,0 +1,23 @@
1
+ import { resolveProject } from "@agentplaneorg/core";
2
+ function isNotGitRepoError(err) {
3
+ if (err instanceof Error) {
4
+ return err.message.startsWith("Not a git repository");
5
+ }
6
+ return false;
7
+ }
8
+ export async function maybeResolveProject(opts) {
9
+ try {
10
+ return await resolveProject({
11
+ cwd: opts.cwd,
12
+ rootOverride: opts.rootOverride ?? null,
13
+ });
14
+ }
15
+ catch (err) {
16
+ if (isNotGitRepoError(err)) {
17
+ if (opts.rootOverride)
18
+ throw err;
19
+ return null;
20
+ }
21
+ throw err;
22
+ }
23
+ }
@@ -0,0 +1,16 @@
1
+ import type { RecipeManifest, RecipeScenarioDetail, ScenarioDefinition } from "./types.js";
2
+ export declare function readScenarioDefinition(filePath: string): Promise<ScenarioDefinition>;
3
+ export declare function readScenarioIndex(filePath: string): Promise<{
4
+ schema_version: 1;
5
+ scenarios: {
6
+ id: string;
7
+ summary?: string;
8
+ }[];
9
+ }>;
10
+ export declare function collectRecipeScenarioDetails(recipeDir: string, manifest: RecipeManifest): Promise<RecipeScenarioDetail[]>;
11
+ export declare function normalizeScenarioToolStep(raw: unknown, sourcePath: string): {
12
+ tool: string;
13
+ args: string[];
14
+ env: Record<string, string>;
15
+ };
16
+ //# sourceMappingURL=scenario.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../../../../src/commands/recipes/impl/scenario.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA4B3F,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAG1F;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACjE,cAAc,EAAE,CAAC,CAAC;IAClB,SAAS,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/C,CAAC,CAeD;AAED,wBAAsB,4BAA4B,CAChD,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,oBAAoB,EAAE,CAAC,CA+CjC;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,MAAM,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAyB/D"}