agentplane 0.3.12 → 0.3.13

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 (180) hide show
  1. package/assets/RUNNER.md +1 -1
  2. package/assets/agents/ORCHESTRATOR.json +1 -1
  3. package/assets/codex-plugin/assets/header.png +0 -0
  4. package/assets/codex-plugin/assets/icon.svg +1 -0
  5. package/assets/codex-plugin/assets/logo.svg +1 -0
  6. package/assets/codex-plugin/skills/agentplane/SKILL.md +35 -0
  7. package/assets/policy/governance.md +4 -2
  8. package/assets/policy/incidents.md +3 -20
  9. package/assets/policy/workflow.release.md +5 -2
  10. package/dist/.build-manifest.json +203 -113
  11. package/dist/cli/exit-codes.d.ts.map +1 -1
  12. package/dist/cli/exit-codes.js +1 -0
  13. package/dist/cli/reason-codes.d.ts +1 -1
  14. package/dist/cli/reason-codes.d.ts.map +1 -1
  15. package/dist/cli/reason-codes.js +12 -0
  16. package/dist/cli/run-cli/command-catalog/core.d.ts +1 -1
  17. package/dist/cli/run-cli/command-catalog/core.d.ts.map +1 -1
  18. package/dist/cli/run-cli/command-catalog/core.js +16 -0
  19. package/dist/cli/run-cli/command-catalog/project.d.ts +1 -1
  20. package/dist/cli/run-cli/command-catalog/project.d.ts.map +1 -1
  21. package/dist/cli/run-cli/command-catalog/project.js +21 -3
  22. package/dist/cli/run-cli/command-catalog.d.ts +1 -1
  23. package/dist/cli/run-cli/command-catalog.d.ts.map +1 -1
  24. package/dist/cli/run-cli/commands/codex.d.ts +14 -0
  25. package/dist/cli/run-cli/commands/codex.d.ts.map +1 -0
  26. package/dist/cli/run-cli/commands/codex.js +100 -0
  27. package/dist/cli/run-cli/commands/core.d.ts +1 -0
  28. package/dist/cli/run-cli/commands/core.d.ts.map +1 -1
  29. package/dist/cli/run-cli/commands/core.js +1 -0
  30. package/dist/cli/run-cli/commands/init/recipes.d.ts +9 -1
  31. package/dist/cli/run-cli/commands/init/recipes.d.ts.map +1 -1
  32. package/dist/cli/run-cli/commands/init/recipes.js +32 -22
  33. package/dist/cli/run-cli/commands/init.d.ts.map +1 -1
  34. package/dist/cli/run-cli/commands/init.js +26 -21
  35. package/dist/cli/run-cli/error-guidance.js +20 -0
  36. package/dist/cli/run-cli.test-helpers.d.ts.map +1 -1
  37. package/dist/cli/run-cli.test-helpers.js +22 -19
  38. package/dist/commands/codex/plugin-install.d.ts +26 -0
  39. package/dist/commands/codex/plugin-install.d.ts.map +1 -0
  40. package/dist/commands/codex/plugin-install.js +209 -0
  41. package/dist/commands/pr/integrate/cmd.d.ts.map +1 -1
  42. package/dist/commands/pr/integrate/cmd.js +81 -5
  43. package/dist/commands/pr/integrate/internal/prepare.d.ts.map +1 -1
  44. package/dist/commands/pr/integrate/internal/prepare.js +38 -7
  45. package/dist/commands/pr/internal/auto-commit.d.ts.map +1 -1
  46. package/dist/commands/pr/internal/auto-commit.js +11 -6
  47. package/dist/commands/pr/internal/sync.d.ts.map +1 -1
  48. package/dist/commands/pr/internal/sync.js +5 -1
  49. package/dist/commands/pr/open.d.ts.map +1 -1
  50. package/dist/commands/pr/open.js +46 -8
  51. package/dist/commands/recipes/active.command.d.ts +7 -0
  52. package/dist/commands/recipes/active.command.d.ts.map +1 -0
  53. package/dist/commands/recipes/active.command.js +12 -0
  54. package/dist/commands/recipes/add.command.d.ts +8 -0
  55. package/dist/commands/recipes/add.command.d.ts.map +1 -0
  56. package/dist/commands/recipes/add.command.js +33 -0
  57. package/dist/commands/recipes/detach.command.d.ts +7 -0
  58. package/dist/commands/recipes/detach.command.d.ts.map +1 -0
  59. package/dist/commands/recipes/detach.command.js +19 -0
  60. package/dist/commands/recipes/disable.command.d.ts +7 -0
  61. package/dist/commands/recipes/disable.command.d.ts.map +1 -0
  62. package/dist/commands/recipes/disable.command.js +10 -0
  63. package/dist/commands/recipes/enable.command.d.ts +7 -0
  64. package/dist/commands/recipes/enable.command.d.ts.map +1 -0
  65. package/dist/commands/recipes/enable.command.js +10 -0
  66. package/dist/commands/recipes/explain-active.command.d.ts +5 -0
  67. package/dist/commands/recipes/explain-active.command.d.ts.map +1 -0
  68. package/dist/commands/recipes/explain-active.command.js +11 -0
  69. package/dist/commands/recipes/explain.command.d.ts.map +1 -1
  70. package/dist/commands/recipes/explain.command.js +4 -2
  71. package/dist/commands/recipes/impl/apply.d.ts.map +1 -1
  72. package/dist/commands/recipes/impl/apply.js +33 -14
  73. package/dist/commands/recipes/impl/commands/active.d.ts +6 -0
  74. package/dist/commands/recipes/impl/commands/active.d.ts.map +1 -0
  75. package/dist/commands/recipes/impl/commands/active.js +46 -0
  76. package/dist/commands/recipes/impl/commands/add.d.ts +7 -0
  77. package/dist/commands/recipes/impl/commands/add.d.ts.map +1 -0
  78. package/dist/commands/recipes/impl/commands/add.js +100 -0
  79. package/dist/commands/recipes/impl/commands/detach.d.ts +6 -0
  80. package/dist/commands/recipes/impl/commands/detach.d.ts.map +1 -0
  81. package/dist/commands/recipes/impl/commands/detach.js +85 -0
  82. package/dist/commands/recipes/impl/commands/disable.d.ts +6 -0
  83. package/dist/commands/recipes/impl/commands/disable.d.ts.map +1 -0
  84. package/dist/commands/recipes/impl/commands/disable.js +21 -0
  85. package/dist/commands/recipes/impl/commands/enable.d.ts +6 -0
  86. package/dist/commands/recipes/impl/commands/enable.d.ts.map +1 -0
  87. package/dist/commands/recipes/impl/commands/enable.js +39 -0
  88. package/dist/commands/recipes/impl/commands/explain-active.d.ts +5 -0
  89. package/dist/commands/recipes/impl/commands/explain-active.d.ts.map +1 -0
  90. package/dist/commands/recipes/impl/commands/explain-active.js +20 -0
  91. package/dist/commands/recipes/impl/commands/explain.d.ts.map +1 -1
  92. package/dist/commands/recipes/impl/commands/explain.js +40 -3
  93. package/dist/commands/recipes/impl/commands/info.d.ts.map +1 -1
  94. package/dist/commands/recipes/impl/commands/info.js +21 -8
  95. package/dist/commands/recipes/impl/commands/install.d.ts.map +1 -1
  96. package/dist/commands/recipes/impl/commands/install.js +32 -29
  97. package/dist/commands/recipes/impl/commands/list.d.ts.map +1 -1
  98. package/dist/commands/recipes/impl/commands/list.js +11 -11
  99. package/dist/commands/recipes/impl/commands/remove.d.ts.map +1 -1
  100. package/dist/commands/recipes/impl/commands/remove.js +5 -0
  101. package/dist/commands/recipes/impl/commands/update.d.ts +7 -0
  102. package/dist/commands/recipes/impl/commands/update.d.ts.map +1 -0
  103. package/dist/commands/recipes/impl/commands/update.js +93 -0
  104. package/dist/commands/recipes/impl/commands.d.ts +7 -0
  105. package/dist/commands/recipes/impl/commands.d.ts.map +1 -1
  106. package/dist/commands/recipes/impl/commands.js +7 -0
  107. package/dist/commands/recipes/impl/constants.d.ts +1 -14
  108. package/dist/commands/recipes/impl/constants.d.ts.map +1 -1
  109. package/dist/commands/recipes/impl/constants.js +1 -18
  110. package/dist/commands/recipes/impl/manifest.d.ts +2 -2
  111. package/dist/commands/recipes/impl/manifest.d.ts.map +1 -1
  112. package/dist/commands/recipes/impl/manifest.js +4 -226
  113. package/dist/commands/recipes/impl/overlay-project.d.ts +32 -0
  114. package/dist/commands/recipes/impl/overlay-project.d.ts.map +1 -0
  115. package/dist/commands/recipes/impl/overlay-project.js +282 -0
  116. package/dist/commands/recipes/impl/paths.d.ts +20 -2
  117. package/dist/commands/recipes/impl/paths.d.ts.map +1 -1
  118. package/dist/commands/recipes/impl/paths.js +23 -5
  119. package/dist/commands/recipes/impl/project-installed-recipes.d.ts +2 -4
  120. package/dist/commands/recipes/impl/project-installed-recipes.d.ts.map +1 -1
  121. package/dist/commands/recipes/impl/project-installed-recipes.js +30 -74
  122. package/dist/commands/recipes/impl/project-recipe-state.d.ts +18 -0
  123. package/dist/commands/recipes/impl/project-recipe-state.d.ts.map +1 -0
  124. package/dist/commands/recipes/impl/project-recipe-state.js +94 -0
  125. package/dist/commands/recipes/impl/project-registry.d.ts +20 -0
  126. package/dist/commands/recipes/impl/project-registry.d.ts.map +1 -0
  127. package/dist/commands/recipes/impl/project-registry.js +104 -0
  128. package/dist/commands/recipes/impl/resolver.d.ts.map +1 -1
  129. package/dist/commands/recipes/impl/resolver.js +5 -3
  130. package/dist/commands/recipes/impl/types.d.ts +1 -240
  131. package/dist/commands/recipes/impl/types.d.ts.map +1 -1
  132. package/dist/commands/recipes/info.command.js +2 -2
  133. package/dist/commands/recipes/install.spec.js +4 -4
  134. package/dist/commands/recipes/list.command.js +4 -4
  135. package/dist/commands/recipes/remove.command.js +2 -2
  136. package/dist/commands/recipes/update.command.d.ts +8 -0
  137. package/dist/commands/recipes/update.command.d.ts.map +1 -0
  138. package/dist/commands/recipes/update.command.js +35 -0
  139. package/dist/commands/recipes.d.ts +7 -4
  140. package/dist/commands/recipes.d.ts.map +1 -1
  141. package/dist/commands/recipes.js +6 -3
  142. package/dist/commands/recipes.test-helpers.d.ts +3 -3
  143. package/dist/commands/recipes.test-helpers.d.ts.map +1 -1
  144. package/dist/commands/recipes.test-helpers.js +105 -15
  145. package/dist/commands/scenario/execute.command.js +4 -4
  146. package/dist/commands/scenario/impl/commands.js +4 -4
  147. package/dist/commands/scenario/info.command.js +4 -4
  148. package/dist/commands/scenario/list.command.js +3 -3
  149. package/dist/commands/scenario/run.command.js +5 -5
  150. package/dist/commands/scenario/scenario.command.js +7 -7
  151. package/dist/commands/shared/task-handoff.d.ts +2 -1
  152. package/dist/commands/shared/task-handoff.d.ts.map +1 -1
  153. package/dist/commands/shared/task-handoff.js +15 -0
  154. package/dist/commands/task/handoff-show.command.d.ts.map +1 -1
  155. package/dist/commands/task/handoff-show.command.js +24 -0
  156. package/dist/runner/context/base-prompts.d.ts +2 -1
  157. package/dist/runner/context/base-prompts.d.ts.map +1 -1
  158. package/dist/runner/context/base-prompts.js +109 -13
  159. package/dist/runner/context/recipe-context.d.ts.map +1 -1
  160. package/dist/runner/context/recipe-context.js +40 -8
  161. package/dist/runner/types.d.ts +4 -0
  162. package/dist/runner/types.d.ts.map +1 -1
  163. package/dist/runner/usecases/task-run.d.ts.map +1 -1
  164. package/dist/runner/usecases/task-run.js +2 -1
  165. package/dist/runtime/behavior/resolve.d.ts +2 -1
  166. package/dist/runtime/behavior/resolve.d.ts.map +1 -1
  167. package/dist/runtime/behavior/resolve.js +25 -5
  168. package/dist/runtime/behavior/types.d.ts +1 -0
  169. package/dist/runtime/behavior/types.d.ts.map +1 -1
  170. package/dist/runtime/capabilities/recipe.d.ts +2 -1
  171. package/dist/runtime/capabilities/recipe.d.ts.map +1 -1
  172. package/dist/runtime/capabilities/recipe.js +88 -28
  173. package/dist/shared/errors.d.ts +1 -1
  174. package/dist/shared/errors.d.ts.map +1 -1
  175. package/dist/shared/runtime-source.d.ts.map +1 -1
  176. package/dist/shared/runtime-source.js +8 -3
  177. package/package.json +3 -2
  178. package/dist/cli/recipes-bundled.d.ts +0 -10
  179. package/dist/cli/recipes-bundled.d.ts.map +0 -1
  180. package/dist/cli/recipes-bundled.js +0 -36
@@ -47,6 +47,12 @@ const REASON_CODE_MAP = {
47
47
  summary: "command requires valid git repository context",
48
48
  action: "confirm repository root and tracked changes",
49
49
  },
50
+ integrate_base_checkout_required: {
51
+ code: "integrate_base_checkout_required",
52
+ category: "git",
53
+ summary: "integrate was launched from a task worktree instead of the registered base checkout",
54
+ action: "rerun integrate against the base checkout/worktree for the resolved base branch",
55
+ },
50
56
  git_task_commit_blocked: {
51
57
  code: "git_task_commit_blocked",
52
58
  category: "git",
@@ -77,6 +83,12 @@ const REASON_CODE_MAP = {
77
83
  summary: "a lint check in the pre-commit path blocked the commit",
78
84
  action: "run lint, fix the reported errors, and retry the commit",
79
85
  },
86
+ protected_base_integrate_handoff: {
87
+ code: "protected_base_integrate_handoff",
88
+ category: "handoff",
89
+ summary: "integrate intentionally stopped before mutating a protected base branch",
90
+ action: "inspect the persisted handoff route, merge the GitHub PR, then pull the base branch after hosted close finishes",
91
+ },
80
92
  network_gate: {
81
93
  code: "network_gate",
82
94
  category: "network",
@@ -1,3 +1,3 @@
1
1
  import { type CommandEntry } from "./shared.js";
2
- export declare const CORE_COMMANDS: readonly [CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry];
2
+ export declare const CORE_COMMANDS: readonly [CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry];
3
3
  //# sourceMappingURL=core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/cli/run-cli/command-catalog/core.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvD,eAAO,MAAM,aAAa,mZA0OkB,CAAC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/cli/run-cli/command-catalog/core.ts"],"names":[],"mappings":"AAiCA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvD,eAAO,MAAM,aAAa,6bA6PkB,CAAC"}
@@ -13,6 +13,7 @@ import { releasePlanSpec } from "../../../commands/release/plan.command.js";
13
13
  import { releaseSpec } from "../../../commands/release/release.command.js";
14
14
  import { configSetSpec, configShowSpec, modeGetSpec, modeSetSpec, profileSetSpec, } from "../commands/config.js";
15
15
  import { agentsSpec } from "../commands/core/agents.js";
16
+ import { codexPluginInstallSpec, codexPluginSpec, codexSpec } from "../commands/codex.js";
16
17
  import { preflightSpec } from "../commands/core/preflight.js";
17
18
  import { quickstartSpec } from "../commands/core/quickstart.js";
18
19
  import { roleSpec } from "../commands/core/role.js";
@@ -64,6 +65,21 @@ export const CORE_COMMANDS = [
64
65
  needsTaskContext: false,
65
66
  invocation: requireCanonicalCommandInvocation(["preflight"]),
66
67
  }),
68
+ entry(codexSpec, () => import("../commands/codex.js").then((m) => m.runCodex), {
69
+ needsProject: false,
70
+ needsLoadedConfig: false,
71
+ needsTaskContext: false,
72
+ }),
73
+ entry(codexPluginSpec, () => import("../commands/codex.js").then((m) => m.runCodexPlugin), {
74
+ needsProject: false,
75
+ needsLoadedConfig: false,
76
+ needsTaskContext: false,
77
+ }),
78
+ entry(codexPluginInstallSpec, (deps) => import("../commands/codex.js").then((m) => m.makeRunCodexPluginInstallHandler(deps)), {
79
+ needsProject: false,
80
+ needsLoadedConfig: false,
81
+ needsTaskContext: false,
82
+ }),
67
83
  entry(runtimeSpec, () => import("../../../commands/runtime.command.js").then((m) => m.runRuntime), {
68
84
  needsProject: false,
69
85
  needsLoadedConfig: false,
@@ -1,3 +1,3 @@
1
1
  import { type CommandEntry } from "./shared.js";
2
- export declare const PROJECT_COMMANDS: readonly [CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry];
2
+ export declare const PROJECT_COMMANDS: readonly [CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry];
3
3
  //# sourceMappingURL=project.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../../src/cli/run-cli/command-catalog/project.ts"],"names":[],"mappings":"AA0CA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvD,eAAO,MAAM,gBAAgB,qfA8Je,CAAC"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../../src/cli/run-cli/command-catalog/project.ts"],"names":[],"mappings":"AA6CA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvD,eAAO,MAAM,gBAAgB,+hBAyLe,CAAC"}
@@ -6,8 +6,10 @@ import { branchStatusSpec } from "../../../commands/branch/status.command.js";
6
6
  import { workStartSpec } from "../../../commands/branch/work-start.command.js";
7
7
  import { integrateSpec } from "../../../commands/integrate.command.js";
8
8
  import { prCheckSpec, prCloseSpec, prCloseSupersededSpec, prNoteSpec, prOpenSpec, prSpec, prUpdateSpec, } from "../../../commands/pr/pr.command.js";
9
+ import { recipesAddSpec } from "../../../commands/recipes/add.command.js";
9
10
  import { recipesCachePruneSpec } from "../../../commands/recipes/cache-prune.command.js";
10
11
  import { recipesCacheSpec } from "../../../commands/recipes/cache.command.js";
12
+ import { recipesDetachSpec } from "../../../commands/recipes/detach.command.js";
11
13
  import { recipesExplainSpec } from "../../../commands/recipes/explain.command.js";
12
14
  import { recipesInfoSpec } from "../../../commands/recipes/info.command.js";
13
15
  import { recipesInstallSpec } from "../../../commands/recipes/install.spec.js";
@@ -15,6 +17,7 @@ import { recipesListRemoteSpec } from "../../../commands/recipes/list-remote.com
15
17
  import { recipesListSpec } from "../../../commands/recipes/list.command.js";
16
18
  import { recipesRemoveSpec } from "../../../commands/recipes/remove.command.js";
17
19
  import { recipesSpec } from "../../../commands/recipes/recipes.command.js";
20
+ import { recipesUpdateSpec } from "../../../commands/recipes/update.command.js";
18
21
  import { scenarioExecuteSpec } from "../../../commands/scenario/execute.command.js";
19
22
  import { scenarioInfoSpec } from "../../../commands/scenario/info.command.js";
20
23
  import { scenarioListSpec } from "../../../commands/scenario/list.command.js";
@@ -33,13 +36,28 @@ export const PROJECT_COMMANDS = [
33
36
  needsLoadedConfig: false,
34
37
  needsTaskContext: false,
35
38
  }),
36
- entry(recipesListSpec, () => import("../../../commands/recipes/list.command.js").then((m) => m.runRecipesList)),
39
+ entry(recipesAddSpec, () => import("../../../commands/recipes/add.command.js").then((m) => m.runRecipesAdd)),
40
+ entry(recipesListSpec, () => import("../../../commands/recipes/list.command.js").then((m) => m.runRecipesList), {
41
+ needsProject: false,
42
+ needsLoadedConfig: false,
43
+ needsTaskContext: false,
44
+ }),
37
45
  entry(recipesListRemoteSpec, () => import("../../../commands/recipes/list-remote.command.js").then((m) => m.runRecipesListRemote)),
38
- entry(recipesInfoSpec, () => import("../../../commands/recipes/info.command.js").then((m) => m.runRecipesInfo)),
46
+ entry(recipesInfoSpec, () => import("../../../commands/recipes/info.command.js").then((m) => m.runRecipesInfo), {
47
+ needsProject: false,
48
+ needsLoadedConfig: false,
49
+ needsTaskContext: false,
50
+ }),
39
51
  entry(recipesExplainSpec, () => import("../../../commands/recipes/explain.command.js").then((m) => m.runRecipesExplain)),
40
52
  entry(recipesRemoveSpec, () => import("../../../commands/recipes/remove.command.js").then((m) => m.runRecipesRemove)),
53
+ entry(recipesUpdateSpec, () => import("../../../commands/recipes/update.command.js").then((m) => m.runRecipesUpdate)),
54
+ entry(recipesDetachSpec, () => import("../../../commands/recipes/detach.command.js").then((m) => m.runRecipesDetach)),
41
55
  entry(recipesCachePruneSpec, () => import("../../../commands/recipes/cache-prune.command.js").then((m) => m.runRecipesCachePrune)),
42
- entry(recipesInstallSpec, () => import("../../../commands/recipes/install.run.js").then((m) => m.runRecipesInstall)),
56
+ entry(recipesInstallSpec, () => import("../../../commands/recipes/install.run.js").then((m) => m.runRecipesInstall), {
57
+ needsProject: false,
58
+ needsLoadedConfig: false,
59
+ needsTaskContext: false,
60
+ }),
43
61
  entry(scenarioSpec, () => import("../../../commands/scenario/scenario.command.js").then((m) => m.runScenario), {
44
62
  needsProject: false,
45
63
  needsLoadedConfig: false,
@@ -1,7 +1,7 @@
1
1
  import type { CommandId } from "../spec/spec.js";
2
2
  import type { CommandEntry } from "./command-catalog/shared.js";
3
3
  export type { CommandEntry, RunDeps } from "./command-catalog/shared.js";
4
- export declare const COMMANDS: readonly [CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry];
4
+ export declare const COMMANDS: readonly [CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry];
5
5
  export type CatalogMatch = {
6
6
  entry: (typeof COMMANDS)[number];
7
7
  consumed: number;
@@ -1 +1 @@
1
- {"version":3,"file":"command-catalog.d.ts","sourceRoot":"","sources":["../../../src/cli/run-cli/command-catalog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAOhE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEzE,eAAO,MAAM,QAAQ,yxDAKuB,CAAC;AAE7C,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAYlF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,YAAY,GAAG,IAAI,CAGlF;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,SAAS,GAAG,YAAY,GAAG,IAAI,CAEnE;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,GAAE,SAAc,GAAG,SAAS,YAAY,EAAE,CAE9F;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,GAAE,SAAc,GAAG,SAAS,MAAM,EAAE,CAEtF;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAM1D"}
1
+ {"version":3,"file":"command-catalog.d.ts","sourceRoot":"","sources":["../../../src/cli/run-cli/command-catalog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAOhE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEzE,eAAO,MAAM,QAAQ,62DAKuB,CAAC;AAE7C,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAYlF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,YAAY,GAAG,IAAI,CAGlF;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,SAAS,GAAG,YAAY,GAAG,IAAI,CAEnE;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,GAAE,SAAc,GAAG,SAAS,YAAY,EAAE,CAE9F;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,GAAE,SAAc,GAAG,SAAS,MAAM,EAAE,CAEtF;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAM1D"}
@@ -0,0 +1,14 @@
1
+ import { type GroupCommandParsed } from "../../group-command.js";
2
+ import type { CommandHandler, CommandSpec } from "../../spec/spec.js";
3
+ import { type CodexPluginInstallScope } from "../../../commands/codex/plugin-install.js";
4
+ import type { RunDeps } from "../command-catalog.js";
5
+ export type CodexPluginInstallParsed = {
6
+ scope: CodexPluginInstallScope;
7
+ };
8
+ export declare const codexSpec: CommandSpec<GroupCommandParsed>;
9
+ export declare const codexPluginSpec: CommandSpec<GroupCommandParsed>;
10
+ export declare const codexPluginInstallSpec: CommandSpec<CodexPluginInstallParsed>;
11
+ export declare const runCodex: CommandHandler<GroupCommandParsed>;
12
+ export declare const runCodexPlugin: CommandHandler<GroupCommandParsed>;
13
+ export declare function makeRunCodexPluginInstallHandler(deps: RunDeps): CommandHandler<CodexPluginInstallParsed>;
14
+ //# sourceMappingURL=codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../../src/cli/run-cli/commands/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAMrD,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,uBAAuB,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,kBAAkB,CAOrD,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,kBAAkB,CAO3D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,wBAAwB,CAgCxE,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,cAAc,CAAC,kBAAkB,CASvD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAAc,CAAC,kBAAkB,CAS7D,CAAC;AAEF,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,OAAO,GACZ,cAAc,CAAC,wBAAwB,CAAC,CAkC1C"}
@@ -0,0 +1,100 @@
1
+ import { loadDirectSubcommandNames, parseGroupCommand, throwGroupCommandUsage, } from "../../group-command.js";
2
+ import { createCliEmitter } from "../../output.js";
3
+ import { installBundledCodexPlugin, resolveCodexInstallRoot, } from "../../../commands/codex/plugin-install.js";
4
+ import { wrapCommand } from "./wrap-command.js";
5
+ const output = createCliEmitter();
6
+ export const codexSpec = {
7
+ id: ["codex"],
8
+ group: "Codex",
9
+ summary: "Codex integration commands.",
10
+ synopsis: ["agentplane codex <subcommand> [options]"],
11
+ args: [{ name: "subcommand", required: false, variadic: true, valueHint: "<subcommand>" }],
12
+ parse: (raw) => parseGroupCommand(raw, "subcommand"),
13
+ };
14
+ export const codexPluginSpec = {
15
+ id: ["codex", "plugin"],
16
+ group: "Codex",
17
+ summary: "Install and inspect bundled Codex plugin integrations.",
18
+ synopsis: ["agentplane codex plugin <subcommand> [options]"],
19
+ args: [{ name: "subcommand", required: false, variadic: true, valueHint: "<subcommand>" }],
20
+ parse: (raw) => parseGroupCommand(raw, "subcommand"),
21
+ };
22
+ export const codexPluginInstallSpec = {
23
+ id: ["codex", "plugin", "install"],
24
+ group: "Codex",
25
+ summary: "Install the bundled AgentPlane plugin into a local Codex marketplace.",
26
+ options: [
27
+ {
28
+ kind: "string",
29
+ name: "scope",
30
+ valueHint: "<user|repo>",
31
+ choices: ["user", "repo"],
32
+ default: "user",
33
+ description: "Install to the user home marketplace or the current repository marketplace.",
34
+ },
35
+ ],
36
+ examples: [
37
+ {
38
+ cmd: "agentplane codex plugin install",
39
+ why: "Install AgentPlane into the user-local Codex marketplace under ~/.agents/plugins.",
40
+ },
41
+ {
42
+ cmd: "agentplane codex plugin install --scope repo",
43
+ why: "Install AgentPlane into the current repository marketplace for local testing.",
44
+ },
45
+ ],
46
+ notes: [
47
+ "User scope writes `~/plugins/agentplane` plus `~/.agents/plugins/marketplace.json` by default.",
48
+ "Repo scope writes `<repo>/plugins/agentplane` plus `<repo>/.agents/plugins/marketplace.json`.",
49
+ "OpenAI's public self-serve Plugin Directory is not available yet; local marketplaces are the supported route today.",
50
+ ],
51
+ parse: (raw) => ({
52
+ scope: raw.opts.scope ?? "user",
53
+ }),
54
+ };
55
+ export const runCodex = async (_ctx, p) => {
56
+ throwGroupCommandUsage({
57
+ spec: codexSpec,
58
+ cmd: p.cmd,
59
+ subcommands: await loadDirectSubcommandNames(["codex"]),
60
+ command: "codex",
61
+ missingMessage: "Missing Codex subcommand.",
62
+ unknownMessage: (subcommand) => `Unknown Codex subcommand: ${subcommand}.`,
63
+ });
64
+ };
65
+ export const runCodexPlugin = async (_ctx, p) => {
66
+ throwGroupCommandUsage({
67
+ spec: codexPluginSpec,
68
+ cmd: p.cmd,
69
+ subcommands: await loadDirectSubcommandNames(["codex", "plugin"]),
70
+ command: "codex plugin",
71
+ missingMessage: "Missing Codex plugin subcommand.",
72
+ unknownMessage: (subcommand) => `Unknown Codex plugin subcommand: ${subcommand}.`,
73
+ });
74
+ };
75
+ export function makeRunCodexPluginInstallHandler(deps) {
76
+ return async (ctx, p) => wrapCommand({ command: "codex plugin install", rootOverride: ctx.rootOverride }, async () => {
77
+ const resolvedProject = p.scope === "repo" ? await deps.getResolvedProject("codex plugin install") : null;
78
+ const installRoot = p.scope === "repo"
79
+ ? resolveCodexInstallRoot({
80
+ scope: "repo",
81
+ repoRoot: resolvedProject?.gitRoot,
82
+ })
83
+ : resolveCodexInstallRoot({ scope: "user" });
84
+ const result = await installBundledCodexPlugin({
85
+ scope: p.scope,
86
+ installRoot,
87
+ });
88
+ output.report([
89
+ { label: "Scope", value: result.scope },
90
+ { label: "Install root", value: result.installRoot },
91
+ { label: "Plugin root", value: result.pluginRoot },
92
+ { label: "Manifest", value: result.manifestPath },
93
+ { label: "Marketplace", value: result.marketplacePath },
94
+ ], { header: "Installed Codex plugin" });
95
+ output.line(p.scope === "repo"
96
+ ? "Next: open Codex in this repository and install AgentPlane from the repo marketplace."
97
+ : "Next: open Codex, open Plugins, and install AgentPlane from the local marketplace.");
98
+ return 0;
99
+ });
100
+ }
@@ -1,4 +1,5 @@
1
1
  export { agentsSpec, makeRunAgentsHandler } from "./core/agents.js";
2
+ export { codexPluginInstallSpec, codexPluginSpec, codexSpec, makeRunCodexPluginInstallHandler, runCodex, runCodexPlugin, } from "./codex.js";
2
3
  export { preflightSpec, runPreflight } from "./core/preflight.js";
3
4
  export { quickstartSpec, runQuickstart } from "./core/quickstart.js";
4
5
  export { roleSpec, runRole } from "./core/role.js";
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/cli/run-cli/commands/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/cli/run-cli/commands/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,SAAS,EACT,gCAAgC,EAChC,QAAQ,EACR,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export { agentsSpec, makeRunAgentsHandler } from "./core/agents.js";
2
+ export { codexPluginInstallSpec, codexPluginSpec, codexSpec, makeRunCodexPluginInstallHandler, runCodex, runCodexPlugin, } from "./codex.js";
2
3
  export { preflightSpec, runPreflight } from "./core/preflight.js";
3
4
  export { quickstartSpec, runQuickstart } from "./core/quickstart.js";
4
5
  export { roleSpec, runRole } from "./core/role.js";
@@ -1,4 +1,12 @@
1
- export declare function maybeInstallBundledRecipes(opts: {
1
+ export type CachedRecipeInfo = {
2
+ id: string;
3
+ summary: string;
4
+ version: string;
5
+ };
6
+ export declare function listCachedRecipes(): Promise<CachedRecipeInfo[]>;
7
+ export declare function renderCachedRecipesHint(recipes: CachedRecipeInfo[]): string;
8
+ export declare function validateCachedRecipesSelection(recipes: string[]): Promise<void>;
9
+ export declare function maybeAddCachedRecipes(opts: {
2
10
  recipes: string[];
3
11
  cwd: string;
4
12
  rootOverride?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../../../../src/cli/run-cli/commands/init/recipes.ts"],"names":[],"mappings":"AAKA,wBAAsB,0BAA0B,CAAC,IAAI,EAAE;IACrD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BhB"}
1
+ {"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../../../../src/cli/run-cli/commands/init/recipes.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAOrE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAK3E;AAED,wBAAsB,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWrF;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhB"}
@@ -1,31 +1,41 @@
1
- import { cmdRecipeInstall } from "../../../../commands/recipes.js";
2
- import { infoMessage } from "../../../output.js";
3
- import { getBundledRecipeSourcePath, listBundledRecipes } from "../../../recipes-bundled.js";
1
+ import { cmdRecipeAddParsed, readInstalledRecipesFile, resolveInstalledRecipesPath, } from "../../../../commands/recipes.js";
4
2
  import { CliError } from "../../../../shared/errors.js";
5
- export async function maybeInstallBundledRecipes(opts) {
6
- if (opts.recipes.length === 0)
3
+ export async function listCachedRecipes() {
4
+ const cached = await readInstalledRecipesFile(resolveInstalledRecipesPath());
5
+ return cached.recipes.map((recipe) => ({
6
+ id: recipe.id,
7
+ summary: recipe.manifest.summary,
8
+ version: recipe.version,
9
+ }));
10
+ }
11
+ export function renderCachedRecipesHint(recipes) {
12
+ if (recipes.length === 0) {
13
+ return "Cached recipes: none. Use `agentplane recipes install <id>` before selecting recipes during init.";
14
+ }
15
+ return `Cached recipes: ${recipes.map((entry) => entry.id).join(", ")}`;
16
+ }
17
+ export async function validateCachedRecipesSelection(recipes) {
18
+ if (recipes.length === 0)
7
19
  return;
8
- if (listBundledRecipes().length === 0) {
9
- process.stdout.write(`${infoMessage("bundled recipes are empty; nothing to install")}\n`);
20
+ const cached = await listCachedRecipes();
21
+ const available = new Set(cached.map((entry) => entry.id));
22
+ const missing = recipes.filter((recipe) => !available.has(recipe));
23
+ if (missing.length === 0)
24
+ return;
25
+ throw new CliError({
26
+ exitCode: 2,
27
+ code: "E_USAGE",
28
+ message: `Unknown cached recipe id(s): ${missing.join(", ")}. ${renderCachedRecipesHint(cached)}`,
29
+ });
30
+ }
31
+ export async function maybeAddCachedRecipes(opts) {
32
+ if (opts.recipes.length === 0)
10
33
  return;
11
- }
12
34
  for (const recipeId of opts.recipes) {
13
- const sourcePath = getBundledRecipeSourcePath(recipeId);
14
- if (!sourcePath) {
15
- throw new CliError({
16
- exitCode: 3,
17
- code: "E_VALIDATION",
18
- message: `Bundled recipe ${recipeId} is missing source_path in bundled catalog`,
19
- });
20
- }
21
- await cmdRecipeInstall({
35
+ await cmdRecipeAddParsed({
22
36
  cwd: opts.cwd,
23
37
  rootOverride: opts.rootOverride,
24
- source: { type: "path", value: sourcePath },
25
- index: undefined,
26
- refresh: false,
27
- onConflict: "overwrite",
28
- yes: true,
38
+ recipeRef: recipeId,
29
39
  });
30
40
  }
31
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../src/cli/run-cli/commands/init.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItE,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAc7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAG7E,KAAK,SAAS,GAAG;IACf,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IACtC,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAEF,KAAK,kBAAkB,GAAG,OAAO,GAAG,QAAQ,GAAG,cAAc,CAAC;AAoF9D,KAAK,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC;AAE5D,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,UAAU,CAyM5C,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,cAAc,CAAC,UAAU,CACmB,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../src/cli/run-cli/commands/init.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItE,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAa7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAG7E,KAAK,SAAS,GAAG;IACf,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IACtC,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAEF,KAAK,kBAAkB,GAAG,OAAO,GAAG,QAAQ,GAAG,cAAc,CAAC;AAoF9D,KAAK,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC;AAE5D,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,UAAU,CAyM5C,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,cAAc,CAAC,UAAU,CACmB,CAAC"}
@@ -2,7 +2,7 @@ import path from "node:path";
2
2
  import { mapCoreError } from "../../error-map.js";
3
3
  import { promptChoice, promptInput, promptYesNo } from "../../prompts.js";
4
4
  import { invalidValueForFlag } from "../../output.js";
5
- import { renderBundledRecipesHint, validateBundledRecipesSelection, } from "../../recipes-bundled.js";
5
+ import { listCachedRecipes, maybeAddCachedRecipes, renderCachedRecipesHint, validateCachedRecipesSelection, } from "./init/recipes.js";
6
6
  import { usageError } from "../../spec/errors.js";
7
7
  import { CliError } from "../../../shared/errors.js";
8
8
  import { getVersion } from "../../../meta/version.js";
@@ -12,7 +12,6 @@ import { resolveInitBaseBranchForInit } from "./init/base-branch.js";
12
12
  import { collectInitConflicts, handleInitConflicts } from "./init/conflicts.js";
13
13
  import { ensureGitRoot } from "./init/git.js";
14
14
  import { maybeSyncIde } from "./init/ide-sync.js";
15
- import { maybeInstallBundledRecipes } from "./init/recipes.js";
16
15
  import { ensureInitWorkflow } from "./init/write-workflow.js";
17
16
  import { ensureAgentplaneDirs, writeBackendStubs, writeInitConfig } from "./init/write-config.js";
18
17
  import { ensureAgentsFiles } from "./init/write-agents.js";
@@ -186,7 +185,7 @@ export const initSpec = {
186
185
  kind: "string",
187
186
  name: "recipes",
188
187
  valueHint: "<none|id1,id2,...>",
189
- description: "Optional bundled recipes selection (comma-separated), or 'none'.",
188
+ description: "Optional cached recipes to vendor during init (comma-separated), or 'none'.",
190
189
  },
191
190
  {
192
191
  kind: "boolean",
@@ -407,25 +406,31 @@ async function cmdInit(opts) {
407
406
  if (flags.requireNetworkApproval === undefined) {
408
407
  requireNetworkApproval = await askYesNo("Require explicit approval for network actions?", requireNetworkApproval);
409
408
  }
410
- process.stdout.write(renderInitSection("Recipes", "Optional: install recipe packs now (comma-separated IDs) or choose none."));
409
+ process.stdout.write(renderInitSection("Recipes", "Optional: materialize cached recipes now (comma-separated IDs) or choose none."));
411
410
  if (!flags.recipes) {
412
- process.stdout.write(`${renderBundledRecipesHint()}\n`);
413
- const defaultRecipesLabel = selectedPreset.defaultRecipes.length > 0
414
- ? selectedPreset.defaultRecipes.join(", ")
415
- : "none";
416
- const answer = await askInput(`Install optional recipes (comma separated, or none) [default: ${defaultRecipesLabel}]: `);
417
- const normalized = answer.trim().toLowerCase();
418
- if (normalized === "") {
419
- recipes = [...selectedPreset.defaultRecipes];
420
- }
421
- else if (normalized === "none") {
411
+ const cachedRecipes = await listCachedRecipes();
412
+ process.stdout.write(`${renderCachedRecipesHint(cachedRecipes)}\n`);
413
+ if (cachedRecipes.length === 0) {
422
414
  recipes = [];
423
415
  }
424
416
  else {
425
- recipes = answer
426
- .split(",")
427
- .map((item) => item.trim())
428
- .filter(Boolean);
417
+ const defaultRecipesLabel = selectedPreset.defaultRecipes.length > 0
418
+ ? selectedPreset.defaultRecipes.join(", ")
419
+ : "none";
420
+ const answer = await askInput(`Materialize cached recipes (comma separated, or none) [default: ${defaultRecipesLabel}]: `);
421
+ const normalized = answer.trim().toLowerCase();
422
+ if (normalized === "") {
423
+ recipes = [...selectedPreset.defaultRecipes];
424
+ }
425
+ else if (normalized === "none") {
426
+ recipes = [];
427
+ }
428
+ else {
429
+ recipes = answer
430
+ .split(",")
431
+ .map((item) => item.trim())
432
+ .filter(Boolean);
433
+ }
429
434
  }
430
435
  }
431
436
  }
@@ -438,7 +443,7 @@ async function cmdInit(opts) {
438
443
  flags.requireVerifyApproval ?? selectedPreset.defaultRequireVerifyApproval;
439
444
  executionProfile = flags.executionProfile ?? selectedPreset.defaultExecutionProfile;
440
445
  strictUnsafeConfirm = flags.strictUnsafeConfirm ?? selectedPreset.defaultStrictUnsafeConfirm;
441
- process.stdout.write(renderInitSection("Defaults Applied", `Using compact ${setupProfilePreset} defaults for approvals, execution profile, and recipes. Hooks: ${hooks ? "enabled" : "disabled"}.`));
446
+ process.stdout.write(renderInitSection("Defaults Applied", `Using compact ${setupProfilePreset} defaults for approvals, execution profile, and cached recipe selection. Hooks: ${hooks ? "enabled" : "disabled"}.`));
442
447
  }
443
448
  }
444
449
  if (flags.yes) {
@@ -456,7 +461,7 @@ async function cmdInit(opts) {
456
461
  executionProfile = flags.executionProfile ?? yesPreset.defaultExecutionProfile;
457
462
  strictUnsafeConfirm = flags.strictUnsafeConfirm ?? yesPreset.defaultStrictUnsafeConfirm;
458
463
  }
459
- validateBundledRecipesSelection(recipes);
464
+ await validateCachedRecipesSelection(recipes);
460
465
  try {
461
466
  const initRoot = path.resolve(opts.rootOverride ?? opts.cwd);
462
467
  const baseBranchFallback = "main";
@@ -566,7 +571,7 @@ async function cmdInit(opts) {
566
571
  gitRoot: resolved.gitRoot,
567
572
  });
568
573
  installPaths.push(...ideRes.installPaths);
569
- await maybeInstallBundledRecipes({
574
+ await maybeAddCachedRecipes({
570
575
  recipes,
571
576
  cwd: opts.cwd,
572
577
  rootOverride: opts.rootOverride,
@@ -83,6 +83,16 @@ function resolveErrorGuidance(err) {
83
83
  });
84
84
  }
85
85
  case "E_GIT": {
86
+ if (reasonCode === "integrate_base_checkout_required") {
87
+ return withExplicit({
88
+ hint: "Integrate must run from the base checkout, not from the task branch worktree.",
89
+ nextAction: {
90
+ command: "git worktree list",
91
+ reason: "locate the registered base checkout if the rerun command is not already provided",
92
+ reasonCode,
93
+ },
94
+ });
95
+ }
86
96
  if (reasonCode === "reconcile_git_state_unreadable") {
87
97
  return withExplicit({
88
98
  hint: "Reconcile check could not read git state.",
@@ -122,6 +132,16 @@ function resolveErrorGuidance(err) {
122
132
  },
123
133
  });
124
134
  }
135
+ case "E_HANDOFF": {
136
+ return withExplicit({
137
+ hint: "This is an intentional handoff route, not a local mutation failure.",
138
+ nextAction: {
139
+ command: command === "integrate" ? "agentplane task handoff show <task-id>" : usage,
140
+ reason: "inspect the persisted finalize route and continue through the external handoff path",
141
+ reasonCode: "protected_base_integrate_handoff",
142
+ },
143
+ });
144
+ }
125
145
  case "E_NETWORK": {
126
146
  return withExplicit({
127
147
  hint: "Check network access and credentials.",
@@ -1 +1 @@
1
- {"version":3,"file":"run-cli.test-helpers.d.ts","sourceRoot":"","sources":["../../src/cli/run-cli.test-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-cli.test-helpers.d.ts","sourceRoot":"","sources":["../../src/cli/run-cli.test-helpers.ts"],"names":[],"mappings":"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"}