@idea1/cli 1.7.7 → 1.8.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 (195) hide show
  1. package/README.md +126 -60
  2. package/dist/cli/named-lists.d.ts.map +1 -1
  3. package/dist/cli/named-lists.js +5 -0
  4. package/dist/cli/named-lists.js.map +1 -1
  5. package/dist/commands/approve-pr.d.ts.map +1 -1
  6. package/dist/commands/approve-pr.js +94 -8
  7. package/dist/commands/approve-pr.js.map +1 -1
  8. package/dist/commands/attach-project-item.d.ts.map +1 -1
  9. package/dist/commands/attach-project-item.js +28 -41
  10. package/dist/commands/attach-project-item.js.map +1 -1
  11. package/dist/commands/close-worktree.d.ts.map +1 -1
  12. package/dist/commands/close-worktree.js +50 -84
  13. package/dist/commands/close-worktree.js.map +1 -1
  14. package/dist/commands/create-worktree.d.ts.map +1 -1
  15. package/dist/commands/create-worktree.js +1 -4
  16. package/dist/commands/create-worktree.js.map +1 -1
  17. package/dist/commands/get-project-item-url.d.ts.map +1 -1
  18. package/dist/commands/get-project-item-url.js +3 -1
  19. package/dist/commands/get-project-item-url.js.map +1 -1
  20. package/dist/commands/help.js +13 -13
  21. package/dist/commands/help.js.map +1 -1
  22. package/dist/commands/index.d.ts +1 -2
  23. package/dist/commands/index.d.ts.map +1 -1
  24. package/dist/commands/index.js +1 -3
  25. package/dist/commands/index.js.map +1 -1
  26. package/dist/commands/join-project-item.d.ts.map +1 -1
  27. package/dist/commands/join-project-item.js +18 -60
  28. package/dist/commands/join-project-item.js.map +1 -1
  29. package/dist/commands/next-workflow-step.d.ts.map +1 -1
  30. package/dist/commands/next-workflow-step.js +16 -22
  31. package/dist/commands/next-workflow-step.js.map +1 -1
  32. package/dist/commands/push.d.ts.map +1 -1
  33. package/dist/commands/push.js +4 -3
  34. package/dist/commands/push.js.map +1 -1
  35. package/dist/commands/ready-for-approval.d.ts.map +1 -1
  36. package/dist/commands/ready-for-approval.js +94 -8
  37. package/dist/commands/ready-for-approval.js.map +1 -1
  38. package/dist/commands/release.d.ts.map +1 -1
  39. package/dist/commands/release.js +4 -15
  40. package/dist/commands/release.js.map +1 -1
  41. package/dist/commands/start-agent-implementation.d.ts.map +1 -1
  42. package/dist/commands/start-agent-implementation.js +10 -13
  43. package/dist/commands/start-agent-implementation.js.map +1 -1
  44. package/dist/commands/start-dev-implementation.d.ts.map +1 -1
  45. package/dist/commands/start-dev-implementation.js +7 -8
  46. package/dist/commands/start-dev-implementation.js.map +1 -1
  47. package/dist/commands/start.d.ts.map +1 -1
  48. package/dist/commands/start.js +21 -15
  49. package/dist/commands/start.js.map +1 -1
  50. package/dist/commands/update-branch.d.ts.map +1 -1
  51. package/dist/commands/update-branch.js +28 -75
  52. package/dist/commands/update-branch.js.map +1 -1
  53. package/dist/interactive.d.ts.map +1 -1
  54. package/dist/interactive.js +11 -23
  55. package/dist/interactive.js.map +1 -1
  56. package/dist/lib/claude-options.d.ts +11 -10
  57. package/dist/lib/claude-options.d.ts.map +1 -1
  58. package/dist/lib/claude-options.js +38 -39
  59. package/dist/lib/claude-options.js.map +1 -1
  60. package/dist/lib/settings.d.ts +23 -27
  61. package/dist/lib/settings.d.ts.map +1 -1
  62. package/dist/lib/settings.js +35 -50
  63. package/dist/lib/settings.js.map +1 -1
  64. package/dist/prompts/platform-prompts.d.ts +30 -0
  65. package/dist/prompts/platform-prompts.d.ts.map +1 -0
  66. package/dist/prompts/platform-prompts.js +38 -0
  67. package/dist/prompts/platform-prompts.js.map +1 -0
  68. package/dist/prompts/project-item-prompts.d.ts +44 -0
  69. package/dist/prompts/project-item-prompts.d.ts.map +1 -0
  70. package/dist/prompts/project-item-prompts.js +41 -0
  71. package/dist/prompts/project-item-prompts.js.map +1 -0
  72. package/dist/services/claude.d.ts +27 -33
  73. package/dist/services/claude.d.ts.map +1 -1
  74. package/dist/services/claude.js +40 -140
  75. package/dist/services/claude.js.map +1 -1
  76. package/dist/services/git.d.ts +24 -121
  77. package/dist/services/git.d.ts.map +1 -1
  78. package/dist/services/git.js +73 -470
  79. package/dist/services/git.js.map +1 -1
  80. package/dist/services/github.d.ts +20 -4
  81. package/dist/services/github.d.ts.map +1 -1
  82. package/dist/services/github.js +77 -6
  83. package/dist/services/github.js.map +1 -1
  84. package/dist/services/platform.d.ts +75 -0
  85. package/dist/services/platform.d.ts.map +1 -0
  86. package/dist/services/platform.js +237 -0
  87. package/dist/services/platform.js.map +1 -0
  88. package/dist/services/setup.d.ts +1 -1
  89. package/dist/services/setup.js +1 -1
  90. package/dist/services/template-renderer.d.ts +10 -0
  91. package/dist/services/template-renderer.d.ts.map +1 -0
  92. package/dist/services/template-renderer.js +20 -0
  93. package/dist/services/template-renderer.js.map +1 -0
  94. package/dist/services/worktree.d.ts +17 -16
  95. package/dist/services/worktree.d.ts.map +1 -1
  96. package/dist/services/worktree.js +41 -65
  97. package/dist/services/worktree.js.map +1 -1
  98. package/dist/types/index.d.ts +14 -58
  99. package/dist/types/index.d.ts.map +1 -1
  100. package/dist/version.d.ts +1 -1
  101. package/dist/version.js +1 -1
  102. package/dist/workflow/data/project-item.d.ts +21 -0
  103. package/dist/workflow/data/project-item.d.ts.map +1 -0
  104. package/dist/workflow/data/project-item.js +2 -0
  105. package/dist/workflow/data/project-item.js.map +1 -0
  106. package/dist/workflow/data/workflow-context.d.ts +46 -0
  107. package/dist/workflow/data/workflow-context.d.ts.map +1 -0
  108. package/dist/workflow/data/workflow-context.js +14 -0
  109. package/dist/workflow/data/workflow-context.js.map +1 -0
  110. package/dist/{lib → workflow/data}/workflow-states.d.ts +1 -1
  111. package/dist/workflow/data/workflow-states.d.ts.map +1 -0
  112. package/dist/{lib → workflow/data}/workflow-states.generated.d.ts +1 -1
  113. package/dist/workflow/data/workflow-states.generated.d.ts.map +1 -0
  114. package/dist/{lib → workflow/data}/workflow-states.generated.js +1 -1
  115. package/dist/workflow/data/workflow-states.generated.js.map +1 -0
  116. package/dist/{lib → workflow/data}/workflow-states.js +1 -1
  117. package/dist/workflow/data/workflow-states.js.map +1 -0
  118. package/dist/workflow/engine/approval-flow.d.ts +53 -0
  119. package/dist/workflow/engine/approval-flow.d.ts.map +1 -0
  120. package/dist/workflow/engine/approval-flow.js +111 -0
  121. package/dist/workflow/engine/approval-flow.js.map +1 -0
  122. package/dist/{services → workflow/engine}/branch-setup.d.ts +2 -1
  123. package/dist/workflow/engine/branch-setup.d.ts.map +1 -0
  124. package/dist/{services → workflow/engine}/branch-setup.js +6 -5
  125. package/dist/workflow/engine/branch-setup.js.map +1 -0
  126. package/dist/workflow/engine/handlers/agent-implementation.d.ts +10 -0
  127. package/dist/workflow/engine/handlers/agent-implementation.d.ts.map +1 -0
  128. package/dist/workflow/engine/handlers/agent-implementation.js +42 -0
  129. package/dist/workflow/engine/handlers/agent-implementation.js.map +1 -0
  130. package/dist/{services/workflow-handlers → workflow/engine/handlers}/approve-pr.d.ts +7 -4
  131. package/dist/workflow/engine/handlers/approve-pr.d.ts.map +1 -0
  132. package/dist/workflow/engine/handlers/approve-pr.js +63 -0
  133. package/dist/workflow/engine/handlers/approve-pr.js.map +1 -0
  134. package/dist/{services/workflow-handlers → workflow/engine/handlers}/dev-implementation.d.ts +3 -2
  135. package/dist/workflow/engine/handlers/dev-implementation.d.ts.map +1 -0
  136. package/dist/workflow/engine/handlers/dev-implementation.js +36 -0
  137. package/dist/workflow/engine/handlers/dev-implementation.js.map +1 -0
  138. package/dist/workflow/engine/handlers/index.d.ts +21 -0
  139. package/dist/workflow/engine/handlers/index.d.ts.map +1 -0
  140. package/dist/{services/workflow-handlers → workflow/engine/handlers}/index.js +10 -6
  141. package/dist/workflow/engine/handlers/index.js.map +1 -0
  142. package/dist/workflow/engine/handlers/ready-for-approval.d.ts +11 -0
  143. package/dist/workflow/engine/handlers/ready-for-approval.d.ts.map +1 -0
  144. package/dist/workflow/engine/handlers/ready-for-approval.js +56 -0
  145. package/dist/workflow/engine/handlers/ready-for-approval.js.map +1 -0
  146. package/dist/{services → workflow/engine}/release-flow.d.ts +19 -10
  147. package/dist/workflow/engine/release-flow.d.ts.map +1 -0
  148. package/dist/{services → workflow/engine}/release-flow.js +33 -16
  149. package/dist/workflow/engine/release-flow.js.map +1 -0
  150. package/dist/workflow/engine/workflow-engine.d.ts +162 -0
  151. package/dist/workflow/engine/workflow-engine.d.ts.map +1 -0
  152. package/dist/workflow/engine/workflow-engine.js +405 -0
  153. package/dist/workflow/engine/workflow-engine.js.map +1 -0
  154. package/package.json +2 -1
  155. package/dist/commands/integrate.d.ts +0 -13
  156. package/dist/commands/integrate.d.ts.map +0 -1
  157. package/dist/commands/integrate.js +0 -128
  158. package/dist/commands/integrate.js.map +0 -1
  159. package/dist/lib/workflow-states.d.ts.map +0 -1
  160. package/dist/lib/workflow-states.generated.d.ts.map +0 -1
  161. package/dist/lib/workflow-states.generated.js.map +0 -1
  162. package/dist/lib/workflow-states.js.map +0 -1
  163. package/dist/services/branch-setup.d.ts.map +0 -1
  164. package/dist/services/branch-setup.js.map +0 -1
  165. package/dist/services/context.d.ts +0 -26
  166. package/dist/services/context.d.ts.map +0 -1
  167. package/dist/services/context.js +0 -304
  168. package/dist/services/context.js.map +0 -1
  169. package/dist/services/release-flow.d.ts.map +0 -1
  170. package/dist/services/release-flow.js.map +0 -1
  171. package/dist/services/workflow-engine.d.ts +0 -67
  172. package/dist/services/workflow-engine.d.ts.map +0 -1
  173. package/dist/services/workflow-engine.js +0 -371
  174. package/dist/services/workflow-engine.js.map +0 -1
  175. package/dist/services/workflow-handlers/agent-implementation.d.ts +0 -9
  176. package/dist/services/workflow-handlers/agent-implementation.d.ts.map +0 -1
  177. package/dist/services/workflow-handlers/agent-implementation.js +0 -38
  178. package/dist/services/workflow-handlers/agent-implementation.js.map +0 -1
  179. package/dist/services/workflow-handlers/approve-pr.d.ts.map +0 -1
  180. package/dist/services/workflow-handlers/approve-pr.js +0 -122
  181. package/dist/services/workflow-handlers/approve-pr.js.map +0 -1
  182. package/dist/services/workflow-handlers/dev-implementation.d.ts.map +0 -1
  183. package/dist/services/workflow-handlers/dev-implementation.js +0 -34
  184. package/dist/services/workflow-handlers/dev-implementation.js.map +0 -1
  185. package/dist/services/workflow-handlers/index.d.ts +0 -18
  186. package/dist/services/workflow-handlers/index.d.ts.map +0 -1
  187. package/dist/services/workflow-handlers/index.js.map +0 -1
  188. package/dist/services/workflow-handlers/ready-for-approval.d.ts +0 -10
  189. package/dist/services/workflow-handlers/ready-for-approval.d.ts.map +0 -1
  190. package/dist/services/workflow-handlers/ready-for-approval.js +0 -59
  191. package/dist/services/workflow-handlers/ready-for-approval.js.map +0 -1
  192. package/dist/services/workflow.d.ts +0 -14
  193. package/dist/services/workflow.d.ts.map +0 -1
  194. package/dist/services/workflow.js +0 -37
  195. package/dist/services/workflow.js.map +0 -1
@@ -1,13 +1,11 @@
1
1
  import { logger } from '../lib/logger.js';
2
2
  import { isolationModeOption, resolveIsolationMode } from '../lib/isolation.js';
3
- import { claudeSessionOptions, resolveClaudeSessionOptions } from '../lib/claude-options.js';
4
- import { WorkflowStates, normalizeWorkflowState } from '../lib/workflow-states.js';
5
3
  import { validateProjectItemUrl } from '../lib/project-item-url.js';
6
4
  import * as git from '../services/git.js';
7
5
  import * as worktree from '../services/worktree.js';
8
- import * as claude from '../services/claude.js';
9
6
  import * as github from '../services/github.js';
10
- import { ensureManaged, resolveContext, syncBranchStateFromRemote } from '../services/workflow-engine.js';
7
+ import { WorkflowStates, normalizeWorkflowState } from '../workflow/data/workflow-states.js';
8
+ import { advanceAsNeededTo, getProjectItemSummaryForBranch, requireLiveContext, resolveBranchForItem, resolveTransition } from '../workflow/engine/workflow-engine.js';
11
9
  export const joinProjectItemCommand = {
12
10
  name: 'join-project-item',
13
11
  aliases: ['j', 'join'],
@@ -46,8 +44,7 @@ export const joinProjectItemCommand = {
46
44
  defaultValue: '',
47
45
  promptWhenDefaultExists: false
48
46
  },
49
- isolationModeOption,
50
- ...claudeSessionOptions(false)
47
+ isolationModeOption
51
48
  ],
52
49
  async execute(resolved) {
53
50
  const sourcePath = resolved['source-path'];
@@ -55,25 +52,24 @@ export const joinProjectItemCommand = {
55
52
  const branchArg = resolved['branch-name'] || undefined;
56
53
  const prUrl = resolved['pull-request-url'] || undefined;
57
54
  const isolationMode = resolveIsolationMode(resolved);
58
- const { permissionMode, model, effort } = resolveClaudeSessionOptions(resolved);
59
55
  if (sourcePath) {
60
56
  process.chdir(sourcePath);
61
57
  }
62
58
  await git.fetchLatest();
63
59
  // Resolve the target branch (and, in URL mode, put the item under workflow
64
- // management when no branch exists yet for it).
60
+ // management when it has no live branch yet).
65
61
  let branch;
66
62
  if (url) {
67
- const resolvedBranch = await git.resolveBranchFromProjectItemUrl(url);
63
+ const resolvedBranch = await resolveBranchForItem(url);
68
64
  if (resolvedBranch) {
69
65
  branch = resolvedBranch;
70
66
  logger.info(`Resolved branch for ${url}: ${branch}`);
71
67
  }
72
68
  else {
73
69
  logger.info(`No branch found for ${url} — putting it under workflow management first.`);
74
- const context = await resolveContext({ projectItemUrl: url, options: resolved });
75
- await ensureManaged(context, { deferItemStatusWrite: false });
76
- branch = context.branchName;
70
+ const transition = await resolveTransition({ projectItemUrl: url, options: resolved });
71
+ await advanceAsNeededTo(transition, WorkflowStates.BuildSpecInProgress);
72
+ branch = requireLiveContext(transition).branchName;
77
73
  }
78
74
  }
79
75
  else if (prUrl) {
@@ -99,61 +95,23 @@ export const joinProjectItemCommand = {
99
95
  // worktree, or the branch checked out in the main repository.
100
96
  const { workingPath } = await worktree.ensureBranchEnvironment(isolationMode, branch);
101
97
  process.chdir(workingPath);
102
- // Recover durable per-branch metadata committed on the branch, then re-seed
103
- // local git config and fill any missing state with sensible defaults.
104
- await reestablishBranchState(workingPath, branch, url);
98
+ await reportBranchState(branch);
105
99
  logger.success(`Joined ${branch}`);
106
100
  // Join attaches to in-progress work, so it never launches an implementation session.
107
- await worktree.launchClaudeForBranch(workingPath, {
108
- projectItemUrl: url,
109
- permissionMode,
110
- model,
111
- effort,
112
- claudeEntryPointMode: 'none'
113
- });
101
+ worktree.printWorkingDirectoryHints(workingPath);
114
102
  }
115
103
  };
116
104
  /**
117
- * Re-establish workflow state for a joined branch: adopt the metadata committed
118
- * on origin (the durable copy), default any field a legacy branch never
119
- * recorded — a branch joined without a state is treated as being in Agent
120
- * Implementation, where work happens — and persist newly-seeded state back to
121
- * origin so future joins see it.
105
+ * Say what the joined branch is: the item it implements and the item's state, from the summary of
106
+ * the item whose workflow context holds the branch. A branch outside workflow management is joined as plain git work, and
107
+ * `attach-project-item` puts it under workflow when wanted.
122
108
  */
123
- async function reestablishBranchState(workingPath, branch, urlOverride) {
124
- const remote = await syncBranchStateFromRemote(branch);
125
- const projectItemUrl = urlOverride ?? remote?.projectItemUrl ?? await git.getProjectItemUrl(branch) ?? undefined;
126
- const baseBranch = remote?.baseBranch ?? await worktree.resolveBaseBranch();
127
- const workflowState = normalizeWorkflowState(remote?.workflowState) ?? WorkflowStates.AgentImplementation;
128
- const devWorkflowType = remote?.devWorkflowType ?? 'independent';
129
- if (projectItemUrl)
130
- await git.storeProjectItemUrl(projectItemUrl, branch);
131
- await git.storeBaseBranch(baseBranch, branch);
132
- await git.storeWorkflowState(workflowState, branch);
133
- await git.storeDevWorkflowType(devWorkflowType, branch);
134
- // If the item had no workflow state recorded, it was never properly started —
135
- // record the defaulted state on idea1.ai too.
136
- if (!remote?.workflowState && projectItemUrl) {
137
- await claude.setWorkflowStatus(projectItemUrl, workflowState, branch);
138
- }
139
- const needsPersist = !remote ||
140
- remote.workflowState !== workflowState ||
141
- remote.devWorkflowType !== devWorkflowType ||
142
- remote.baseBranch !== baseBranch ||
143
- (!!projectItemUrl && remote.projectItemUrl !== projectItemUrl);
144
- if (!needsPersist)
109
+ async function reportBranchState(branch) {
110
+ const item = await getProjectItemSummaryForBranch(branch);
111
+ if (!item?.workflowContext) {
112
+ logger.info(`${branch} is outside workflow management. Run 'idea1 attach-project-item' to record it as a project item's branch.`);
145
113
  return;
146
- const metadata = { branchName: branch, baseBranch, workflowState, devWorkflowType };
147
- if (projectItemUrl)
148
- metadata.projectItemUrl = projectItemUrl;
149
- if (remote?.stackBranch)
150
- metadata.stackBranch = remote.stackBranch;
151
- if (remote?.integrationBranch)
152
- metadata.integrationBranch = remote.integrationBranch;
153
- await git.writeBranchMetadata(metadata, workingPath);
154
- const committed = await git.commitBranchMetadataIfChanged(branch);
155
- if (committed) {
156
- await git.pushToRemote(branch);
157
114
  }
115
+ logger.info(`${branch} implements ${item.url} (state: ${normalizeWorkflowState(item.workflowContext.workflowStatus)})`);
158
116
  }
159
117
  //# sourceMappingURL=join-project-item.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"join-project-item.js","sourceRoot":"","sources":["../../src/commands/join-project-item.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"join-project-item.js","sourceRoot":"","sources":["../../src/commands/join-project-item.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7F,OAAO,EACL,iBAAiB,EACjB,8BAA8B,EAC9B,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,uCAAuC,CAAC;AAE/C,MAAM,CAAC,MAAM,sBAAsB,GAAY;IAC7C,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,6FAA6F;IAC1G,OAAO,EAAE;QACP;YACE,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,0BAA0B;YACvC,cAAc,EAAE,QAAQ;YACxB,QAAQ,EAAE,sBAAsB;SACjC;QACD;YACE,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,gBAAgB;YAC7B,cAAc,EAAE,QAAQ;YACxB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC;SACtF;QACD;YACE,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,gEAAgE;YAC7E,cAAc,EAAE,QAAQ;YACxB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;oBAAE,OAAO,sBAAsB,CAAC;gBACjD,IAAI,CAAC,2CAA2C,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7D,OAAO,4EAA4E,CAAC;gBACtF,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;SACF;QACD;YACE,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,0BAA0B;YACvC,YAAY,EAAE,EAAE;YAChB,uBAAuB,EAAE,KAAK;SAC/B;QACD,mBAAmB;KACpB;IAED,KAAK,CAAC,OAAO,CAAC,QAAgC;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,kBAAkB,CAAC,IAAI,SAAS,CAAC;QACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC;QACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,kBAAkB,CAAC,IAAI,SAAS,CAAC;QACxD,MAAM,aAAa,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAErD,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;QAExB,2EAA2E;QAC3E,8CAA8C;QAC9C,IAAI,MAAc,CAAC;QAEnB,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;YACvD,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,GAAG,cAAc,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,uBAAuB,GAAG,KAAK,MAAM,EAAE,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,uBAAuB,GAAG,gDAAgD,CAAC,CAAC;gBACxF,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACvF,MAAM,iBAAiB,CAAC,UAAU,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAAC;gBACxE,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC;YACrD,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,EAAE,CAAC,CAAC;YACpE,CAAC;YACD,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,4BAA4B,MAAM,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,qDAAqD,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,SAAmB,CAAC;YAC7B,IAAI,CAAC,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,qDAAqD,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAEpC,qEAAqE;QACrE,8DAA8D;QAC9D,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,QAAQ,CAAC,uBAAuB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACtF,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE3B,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAEhC,MAAM,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;QAEnC,qFAAqF;QACrF,QAAQ,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;CACF,CAAC;AAEF;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAAC,MAAc;IAC7C,MAAM,IAAI,GAAG,MAAM,8BAA8B,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,2GAA2G,CAAC,CAAC;QAClI,OAAO;IACT,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,eAAe,IAAI,CAAC,GAAG,YAAY,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1H,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"next-workflow-step.d.ts","sourceRoot":"","sources":["../../src/commands/next-workflow-step.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAQjD,eAAO,MAAM,uBAAuB,EAAE,OA0DrC,CAAC"}
1
+ {"version":3,"file":"next-workflow-step.d.ts","sourceRoot":"","sources":["../../src/commands/next-workflow-step.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAQjD,eAAO,MAAM,uBAAuB,EAAE,OAwDrC,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { logger } from '../lib/logger.js';
2
2
  import { validateProjectItemUrl } from '../lib/project-item-url.js';
3
- import { WORKFLOW_STATES, getNextWorkflowState, isStateAtOrAfter, normalizeWorkflowState } from '../lib/workflow-states.js';
4
- import { branchCreationOptions } from '../services/branch-setup.js';
5
- import { advanceTo, ensureManaged, resolveContext } from '../services/workflow-engine.js';
6
- import { deferredHandlerOptions } from '../services/workflow-handlers/index.js';
3
+ import { WORKFLOW_STATES, getNextWorkflowState, normalizeWorkflowState } from '../workflow/data/workflow-states.js';
4
+ import { branchCreationOptions } from '../workflow/engine/branch-setup.js';
5
+ import { advanceAsNeededTo, resolveTransition } from '../workflow/engine/workflow-engine.js';
6
+ import { deferredHandlerOptions } from '../workflow/engine/handlers/index.js';
7
7
  export const nextWorkflowStepCommand = {
8
8
  name: 'next-workflow-step',
9
9
  aliases: ['next', 'n'],
@@ -19,7 +19,7 @@ export const nextWorkflowStepCommand = {
19
19
  },
20
20
  {
21
21
  longName: 'to',
22
- description: 'Workflow state to advance to; every state between the current one and it is entered in order',
22
+ description: 'Workflow state to advance to; every state between the current one and it is entered in order (nothing happens when the item is already there)',
23
23
  defaultValue: '',
24
24
  promptWhenDefaultExists: false,
25
25
  validate: (value) => (value === '' || normalizeWorkflowState(value) !== null
@@ -36,41 +36,35 @@ export const nextWorkflowStepCommand = {
36
36
  // Branch creation choices apply when the item has no branch yet; the engine
37
37
  // prompts for what it needs, so none of these are asked up front.
38
38
  ...branchCreationOptions.map(option => ({ ...option, dependsOn: () => false })),
39
- ...deferredHandlerOptions()
39
+ ...deferredHandlerOptions([])
40
40
  ],
41
41
  async execute(resolved) {
42
42
  const sourcePath = resolved['source-path'];
43
43
  if (sourcePath) {
44
44
  process.chdir(sourcePath);
45
45
  }
46
- const context = await resolveContext({ projectItemUrl: resolved['url'] || undefined, options: resolved });
47
- const targetState = resolveTargetState(context.currentState, resolved['to']);
46
+ const transition = await resolveTransition({ projectItemUrl: resolved['url'] || undefined, options: resolved });
47
+ const targetState = resolveTargetState(transition.currentState, resolved['to']);
48
48
  if (!targetState) {
49
49
  logger.success('Workflow is complete! No more steps to perform.');
50
- logger.hint(`Project item: ${context.projectItemUrl}`);
50
+ logger.hint(`Project item: ${transition.projectItemUrl}`);
51
51
  return;
52
52
  }
53
- logger.info(`Current workflow state: ${context.currentState ?? '(not started)'}`);
54
- // An item that was never started enters the first state here, which is the
55
- // whole transition; otherwise the branch is only made consistent and the
56
- // transition below records the new state.
57
- await ensureManaged(context, { deferItemStatusWrite: context.currentState !== null });
58
- await advanceTo(context, targetState);
53
+ logger.info(`Current workflow state: ${transition.currentState ?? '(not started)'}`);
54
+ // An item that was never started is put under workflow management by entering
55
+ // the first state, which is the whole transition.
56
+ await advanceAsNeededTo(transition, targetState);
59
57
  }
60
58
  };
61
59
  /**
62
60
  * The state to move to: the requested one, or the next state when none was
63
- * requested. Null when there is nothing ahead. Requesting a state the item is
64
- * already at or past is an error — the CLI never moves an item backwards.
61
+ * requested. Null when there is nothing ahead. A requested state the item is
62
+ * already at or past leaves it as it is — the CLI never moves an item backwards.
65
63
  */
66
64
  function resolveTargetState(currentState, requested) {
67
65
  if (!requested) {
68
66
  return getNextWorkflowState(currentState);
69
67
  }
70
- const targetState = normalizeWorkflowState(requested);
71
- if (currentState !== null && isStateAtOrAfter(currentState, targetState)) {
72
- throw new Error(`The item is already at '${currentState}', which is not before '${targetState}'. Move it back in the web client if that is intended; the CLI only advances.`);
73
- }
74
- return targetState;
68
+ return normalizeWorkflowState(requested);
75
69
  }
76
70
  //# sourceMappingURL=next-workflow-step.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"next-workflow-step.js","sourceRoot":"","sources":["../../src/commands/next-workflow-step.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"next-workflow-step.js","sourceRoot":"","sources":["../../src/commands/next-workflow-step.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAU,MAAM,mBAAmB,CAAC;AAQzD,eAAO,MAAM,WAAW,EAAE,OAwHzB,CAAC"}
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAU,MAAM,mBAAmB,CAAC;AASzD,eAAO,MAAM,WAAW,EAAE,OAwHzB,CAAC"}
@@ -4,6 +4,7 @@ import * as github from '../services/github.js';
4
4
  import * as test from '../services/test.js';
5
5
  import * as worktree from '../services/worktree.js';
6
6
  import { promptProjectItemUrl } from '../lib/prompt.js';
7
+ import { getProjectItemUrlForBranch } from '../workflow/engine/workflow-engine.js';
7
8
  export const pushCommand = {
8
9
  name: 'push',
9
10
  aliases: ['p', 'push-changes'],
@@ -52,11 +53,11 @@ export const pushCommand = {
52
53
  logger.info(`Current branch: ${branchName}`);
53
54
  // Resolve project item URL
54
55
  let projectItemUrl = resolved['project-item-url'] || undefined;
55
- // Try to get from git config if not provided
56
+ // The branch's workflow context, if not provided
56
57
  if (!projectItemUrl && !noProjectItem) {
57
- projectItemUrl = await git.getProjectItemUrl(branchName) ?? undefined;
58
+ projectItemUrl = await getProjectItemUrlForBranch(branchName) ?? undefined;
58
59
  if (projectItemUrl) {
59
- logger.dim(`Found stored project item URL: ${projectItemUrl}`);
60
+ logger.dim(`Found project item URL: ${projectItemUrl}`);
60
61
  }
61
62
  }
62
63
  // If still no URL and not explicitly skipped, prompt
@@ -1 +1 @@
1
- {"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ready-for-approval.d.ts","sourceRoot":"","sources":["../../src/commands/ready-for-approval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjD,eAAO,MAAM,uBAAuB,EAAE,OAWrC,CAAC"}
1
+ {"version":3,"file":"ready-for-approval.d.ts","sourceRoot":"","sources":["../../src/commands/ready-for-approval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAmFjD,eAAO,MAAM,uBAAuB,EAAE,OAiCrC,CAAC"}
@@ -1,15 +1,101 @@
1
- import { WorkflowStates } from '../lib/workflow-states.js';
2
- import { advanceTo, requireCurrentState, resolveContext } from '../services/workflow-engine.js';
3
- import { readyForApprovalHandler } from '../services/workflow-handlers/ready-for-approval.js';
1
+ import { logger } from '../lib/logger.js';
2
+ import { promptInput } from '../lib/prompt.js';
3
+ import { readBranchSettings } from '../lib/settings.js';
4
+ import { WorkflowStates } from '../workflow/data/workflow-states.js';
5
+ import * as git from '../services/git.js';
6
+ import * as github from '../services/github.js';
7
+ import * as worktree from '../services/worktree.js';
8
+ import { ensurePrReadyForApproval } from '../workflow/engine/approval-flow.js';
9
+ import { validateSourceBranch } from '../workflow/engine/release-flow.js';
10
+ import { advanceAsNeededTo, resolveTransitionIfManaged } from '../workflow/engine/workflow-engine.js';
11
+ import { deferredHandlerOptions } from '../workflow/engine/handlers/index.js';
12
+ import { readyForApprovalHandler } from '../workflow/engine/handlers/ready-for-approval.js';
13
+ /**
14
+ * Stage 1 for a branch with no project item - an integration branch carrying approved work items,
15
+ * for instance: the PR into the base branch is opened when the branch has none, with the approval
16
+ * chain of what it carries as its body, and gets its assignee. No workflow status is recorded.
17
+ */
18
+ async function readyForApprovalOnBranchWithNoItem(resolved) {
19
+ await github.ensureGitHubCli();
20
+ const branchName = await git.getCurrentBranch();
21
+ if (branchName === 'HEAD') {
22
+ throw new Error('You are not on a branch (detached HEAD), so there is nothing to approve. Check out the branch you want approved.');
23
+ }
24
+ const existingPr = await github.getPrInfo(branchName);
25
+ const openPr = existingPr && existingPr.state.toUpperCase() === 'OPEN' ? existingPr : null;
26
+ const requestedBase = resolved['base-branch'] || null;
27
+ const targetBranch = openPr?.baseRefName ?? requestedBase ?? await worktree.resolveBaseBranch();
28
+ if (openPr?.baseRefName && requestedBase && openPr.baseRefName !== requestedBase) {
29
+ logger.warning(`PR #${openPr.number} targets ${openPr.baseRefName}; --base-branch ${requestedBase} is ignored. Retarget the PR in GitHub if that is wrong.`);
30
+ }
31
+ if (branchName === targetBranch) {
32
+ throw new Error(`${targetBranch} is the branch changes are approved into, not a change to approve. Check out the branch you want approved.`);
33
+ }
34
+ const releaseTargetBranch = (await readBranchSettings(await git.getRepoRoot())).releaseTargetBranch;
35
+ if (targetBranch === releaseTargetBranch) {
36
+ throw new Error(`A change is approved into ${await worktree.resolveBaseBranch()}, never straight into ${releaseTargetBranch}; ` +
37
+ 'use idea1 release for that (change-management-policy.md clause 2).');
38
+ }
39
+ logger.header(`Ready for approval: ${branchName} -> ${targetBranch}`);
40
+ logger.info('This branch has no project item, so no workflow status is recorded.');
41
+ logger.newline();
42
+ if (!await git.fetchRemoteBranch(branchName)) {
43
+ throw new Error(`Branch ${branchName} is not on origin. Push it first: git push -u origin ${branchName}`);
44
+ }
45
+ await validateSourceBranch(branchName);
46
+ const title = openPr ? '' : (resolved['title'] || await promptPrTitle(branchName));
47
+ await ensurePrReadyForApproval({
48
+ branchName,
49
+ baseBranch: targetBranch,
50
+ assignee: resolved['assignee'],
51
+ reviewers: resolved['reviewers'] ?? '',
52
+ createWhenMissing: openPr ? null : { title }
53
+ });
54
+ logger.newline();
55
+ logger.success('PR is ready for approval');
56
+ logger.hint('The assignee approves it by running: idea1 approve-pr (which merges it)');
57
+ }
58
+ /**
59
+ * The PR title, defaulting to `Integration <name> <date>` for an integration branch and to the
60
+ * branch name otherwise.
61
+ */
62
+ async function promptPrTitle(branchName) {
63
+ const integrationBranches = await worktree.listExistingIntegrationBranches();
64
+ const defaultTitle = integrationBranches.includes(branchName)
65
+ ? `Integration ${await worktree.extractIntegrationName(branchName)} ${new Date().toISOString().split('T')[0]}`
66
+ : branchName;
67
+ return promptInput('Enter PR title:', { default: defaultTitle });
68
+ }
4
69
  export const readyForApprovalCommand = {
5
70
  name: 'ready-for-approval',
6
71
  aliases: ['rfa'],
7
- description: 'Mark PR ready for approval and set its assignee (the approver)',
8
- options: readyForApprovalHandler.options,
72
+ description: 'Mark the PR ready for approval and set its assignee (the approver) - on a project item\'s branch (advancing the item through every state before it) or any other branch',
73
+ options: [
74
+ ...(readyForApprovalHandler.options ?? []),
75
+ {
76
+ longName: 'base-branch',
77
+ shortName: 'b',
78
+ description: 'Branch the PR targets (branches with no project item only; default: the open PR\'s base, else the configured base branch)',
79
+ defaultValue: '',
80
+ promptWhenDefaultExists: false
81
+ },
82
+ {
83
+ longName: 'title',
84
+ description: 'PR title (branches with no project item only; used when the PR has to be created)',
85
+ defaultValue: '',
86
+ promptWhenDefaultExists: false
87
+ },
88
+ // On a project item's branch the item may be further back; the states it passes through on the
89
+ // way ask for their own options.
90
+ ...deferredHandlerOptions(readyForApprovalHandler.options ?? [])
91
+ ],
9
92
  async execute(resolved) {
10
- const context = await resolveContext({ options: resolved });
11
- requireCurrentState(context, WorkflowStates.DevImplementation, 'ready-for-approval');
12
- await advanceTo(context, WorkflowStates.NeedsApprovalForRelease);
93
+ const transition = await resolveTransitionIfManaged({ options: resolved });
94
+ if (transition) {
95
+ await advanceAsNeededTo(transition, WorkflowStates.NeedsApprovalForRelease);
96
+ return;
97
+ }
98
+ await readyForApprovalOnBranchWithNoItem(resolved);
13
99
  }
14
100
  };
15
101
  //# sourceMappingURL=ready-for-approval.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ready-for-approval.js","sourceRoot":"","sources":["../../src/commands/ready-for-approval.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChG,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAC;AAE9F,MAAM,CAAC,MAAM,uBAAuB,GAAY;IAC9C,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,WAAW,EAAE,gEAAgE;IAC7E,OAAO,EAAE,uBAAuB,CAAC,OAAO;IAExC,KAAK,CAAC,OAAO,CAAC,QAAgC;QAC5C,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5D,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAC;QACrF,MAAM,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAC;IACnE,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"ready-for-approval.js","sourceRoot":"","sources":["../../src/commands/ready-for-approval.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACtG,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAE5F;;;;GAIG;AACH,KAAK,UAAU,kCAAkC,CAAC,QAAgC;IAChF,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;IAE/B,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAChD,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,kHAAkH,CAAC,CAAC;IACtI,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAE3F,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;IACtD,MAAM,YAAY,GAAG,MAAM,EAAE,WAAW,IAAI,aAAa,IAAI,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAC;IAChG,IAAI,MAAM,EAAE,WAAW,IAAI,aAAa,IAAI,MAAM,CAAC,WAAW,KAAK,aAAa,EAAE,CAAC;QACjF,MAAM,CAAC,OAAO,CAAC,OAAO,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,WAAW,mBAAmB,aAAa,0DAA0D,CAAC,CAAC;IAC/J,CAAC;IAED,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,4GAA4G,CAAC,CAAC;IAC/I,CAAC;IACD,MAAM,mBAAmB,GAAG,CAAC,MAAM,kBAAkB,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACpG,IAAI,YAAY,KAAK,mBAAmB,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,6BAA6B,MAAM,QAAQ,CAAC,iBAAiB,EAAE,yBAAyB,mBAAmB,IAAI;YAC/G,oEAAoE,CACrE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,uBAAuB,UAAU,OAAO,YAAY,EAAE,CAAC,CAAC;IACtE,MAAM,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACnF,MAAM,CAAC,OAAO,EAAE,CAAC;IAEjB,IAAI,CAAC,MAAM,GAAG,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,UAAU,UAAU,wDAAwD,UAAU,EAAE,CAAC,CAAC;IAC5G,CAAC;IACD,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAEvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;IAEnF,MAAM,wBAAwB,CAAC;QAC7B,UAAU;QACV,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC;QAC9B,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE;QACtC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE;KAC7C,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,EAAE,CAAC;IACjB,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC3C,MAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;AACzF,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,aAAa,CAAC,UAAkB;IAC7C,MAAM,mBAAmB,GAAG,MAAM,QAAQ,CAAC,+BAA+B,EAAE,CAAC;IAC7E,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC3D,CAAC,CAAC,eAAe,MAAM,QAAQ,CAAC,sBAAsB,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;QAC9G,CAAC,CAAC,UAAU,CAAC;IACf,OAAO,WAAW,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAY;IAC9C,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,WAAW,EAAE,yKAAyK;IACtL,OAAO,EAAE;QACP,GAAG,CAAC,uBAAuB,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1C;YACE,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,2HAA2H;YACxI,YAAY,EAAE,EAAE;YAChB,uBAAuB,EAAE,KAAK;SAC/B;QACD;YACE,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,mFAAmF;YAChG,YAAY,EAAE,EAAE;YAChB,uBAAuB,EAAE,KAAK;SAC/B;QACD,+FAA+F;QAC/F,iCAAiC;QACjC,GAAG,sBAAsB,CAAC,uBAAuB,CAAC,OAAO,IAAI,EAAE,CAAC;KACjE;IAED,KAAK,CAAC,OAAO,CAAC,QAAgC;QAC5C,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3E,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,iBAAiB,CAAC,UAAU,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,MAAM,kCAAkC,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AA2EjD;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,OAuE5B,CAAC"}
1
+ {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AA4DjD;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,OAuE5B,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { logger } from '../lib/logger.js';
2
- import { DEFAULT_BRANCH_SETTINGS, getBaseBranch, getReleaseBranch, getReleaseTargetBranch } from '../lib/settings.js';
2
+ import { readBranchSettings } from '../lib/settings.js';
3
3
  import { promptInput } from '../lib/prompt.js';
4
4
  import { runHook } from '../services/hooks.js';
5
5
  import * as git from '../services/git.js';
6
6
  import * as github from '../services/github.js';
7
- import { PR_MODE_OPTION, RELEASE_KIND, createGatedPr, runPrMode, validateSourceBranch } from '../services/release-flow.js';
7
+ import { PR_MODE_OPTION, RELEASE_KIND, createGatedPr, runPrMode, validateSourceBranch } from '../workflow/engine/release-flow.js';
8
8
  /**
9
9
  * Resolve the release branch (source branch)
10
10
  */
@@ -12,13 +12,7 @@ async function resolveReleaseBranch(cliBranch) {
12
12
  if (cliBranch) {
13
13
  return cliBranch;
14
14
  }
15
- const repoRoot = await git.getRepoRoot();
16
- const settingsBranch = await getReleaseBranch(repoRoot);
17
- if (settingsBranch) {
18
- return settingsBranch;
19
- }
20
- // A repo that names only a base branch releases from it.
21
- return await getBaseBranch(repoRoot) ?? DEFAULT_BRANCH_SETTINGS.releaseBranch;
15
+ return (await readBranchSettings(await git.getRepoRoot())).releaseBranch;
22
16
  }
23
17
  /**
24
18
  * Resolve the target branch
@@ -27,12 +21,7 @@ async function resolveTargetBranch(cliTarget) {
27
21
  if (cliTarget) {
28
22
  return cliTarget;
29
23
  }
30
- const repoRoot = await git.getRepoRoot();
31
- const settingsTarget = await getReleaseTargetBranch(repoRoot);
32
- if (settingsTarget) {
33
- return settingsTarget;
34
- }
35
- return DEFAULT_BRANCH_SETTINGS.releaseTargetBranch;
24
+ return (await readBranchSettings(await git.getRepoRoot())).releaseTargetBranch;
36
25
  }
37
26
  /**
38
27
  * Prompt for PR title (only when not provided via CLI)
@@ -1 +1 @@
1
- {"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"start-agent-implementation.d.ts","sourceRoot":"","sources":["../../src/commands/start-agent-implementation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAQjD,eAAO,MAAM,+BAA+B,EAAE,OA0C7C,CAAC"}
1
+ {"version":3,"file":"start-agent-implementation.d.ts","sourceRoot":"","sources":["../../src/commands/start-agent-implementation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAQjD,eAAO,MAAM,+BAA+B,EAAE,OAsC7C,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { logger } from '../lib/logger.js';
2
- import { WorkflowStates, isStateAtOrAfter } from '../lib/workflow-states.js';
3
- import { branchCreationOptions } from '../services/branch-setup.js';
4
- import { advanceTo, ensureManaged, resolveContext } from '../services/workflow-engine.js';
5
- import { agentImplementationHandler } from '../services/workflow-handlers/agent-implementation.js';
2
+ import { WorkflowStates, isStateAtOrAfter } from '../workflow/data/workflow-states.js';
3
+ import { branchCreationOptions } from '../workflow/engine/branch-setup.js';
4
+ import { advanceAsNeededTo, reenterState, resolveTransition } from '../workflow/engine/workflow-engine.js';
5
+ import { agentImplementationHandler } from '../workflow/engine/handlers/agent-implementation.js';
6
6
  import { projectItemTargetOptions, resolveOrCreateProjectItem } from './start.js';
7
7
  export const startAgentImplementationCommand = {
8
8
  name: 'start-agent-implementation',
@@ -20,22 +20,19 @@ export const startAgentImplementationCommand = {
20
20
  process.chdir(sourcePath);
21
21
  }
22
22
  const projectItemUrl = await resolveOrCreateProjectItem(resolved);
23
- const context = await resolveContext({ projectItemUrl, options: resolved });
24
- if (context.currentState && isStateAtOrAfter(context.currentState, WorkflowStates.DevImplementation)) {
25
- throw new Error(`${projectItemUrl} is already past Agent Implementation (state: ${context.currentState}). ` +
23
+ const transition = await resolveTransition({ projectItemUrl, options: resolved });
24
+ if (transition.currentState && isStateAtOrAfter(transition.currentState, WorkflowStates.DevImplementation)) {
25
+ throw new Error(`${projectItemUrl} is already past Agent Implementation (state: ${transition.currentState}). ` +
26
26
  `Use 'idea1 join-project-item --project-item-url ${projectItemUrl}' to set up a working environment.`);
27
27
  }
28
28
  logger.section('Agent Implementation');
29
- const alreadyImplementing = context.currentState === WorkflowStates.AgentImplementation;
30
- await ensureManaged(context, { deferItemStatusWrite: !alreadyImplementing });
31
- if (alreadyImplementing) {
29
+ if (transition.currentState === WorkflowStates.AgentImplementation) {
32
30
  // Nothing to transition: set up the working environment and launch Claude.
33
31
  logger.info('The item is already in Agent Implementation — setting up the working environment.');
34
- await agentImplementationHandler.prepare?.(context);
35
- await agentImplementationHandler.complete?.(context);
32
+ await reenterState(transition, WorkflowStates.AgentImplementation);
36
33
  return;
37
34
  }
38
- await advanceTo(context, WorkflowStates.AgentImplementation);
35
+ await advanceAsNeededTo(transition, WorkflowStates.AgentImplementation);
39
36
  }
40
37
  };
41
38
  //# sourceMappingURL=start-agent-implementation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"start-agent-implementation.js","sourceRoot":"","sources":["../../src/commands/start-agent-implementation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,uDAAuD,CAAC;AACnG,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAElF,MAAM,CAAC,MAAM,+BAA+B,GAAY;IACtD,IAAI,EAAE,4BAA4B;IAClC,gFAAgF;IAChF,OAAO,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,oBAAoB,CAAC;IACnD,WAAW,EAAE,wHAAwH;IACrI,OAAO,EAAE;QACP,GAAG,wBAAwB;QAC3B,GAAG,qBAAqB;QACxB,GAAG,CAAC,0BAA0B,CAAC,OAAO,IAAI,EAAE,CAAC;KAC9C;IAED,KAAK,CAAC,OAAO,CAAC,QAAgC;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC3C,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE5E,IAAI,OAAO,CAAC,YAAY,IAAI,gBAAgB,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACrG,MAAM,IAAI,KAAK,CACb,GAAG,cAAc,iDAAiD,OAAO,CAAC,YAAY,KAAK;gBAC3F,mDAAmD,cAAc,oCAAoC,CACtG,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAEvC,MAAM,mBAAmB,GAAG,OAAO,CAAC,YAAY,KAAK,cAAc,CAAC,mBAAmB,CAAC;QACxF,MAAM,aAAa,CAAC,OAAO,EAAE,EAAE,oBAAoB,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAE7E,IAAI,mBAAmB,EAAE,CAAC;YACxB,2EAA2E;YAC3E,MAAM,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;YACjG,MAAM,0BAA0B,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM,0BAA0B,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,MAAM,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAAC;IAC/D,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"start-agent-implementation.js","sourceRoot":"","sources":["../../src/commands/start-agent-implementation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC3G,OAAO,EAAE,0BAA0B,EAAE,MAAM,qDAAqD,CAAC;AACjG,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAElF,MAAM,CAAC,MAAM,+BAA+B,GAAY;IACtD,IAAI,EAAE,4BAA4B;IAClC,gFAAgF;IAChF,OAAO,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,oBAAoB,CAAC;IACnD,WAAW,EAAE,wHAAwH;IACrI,OAAO,EAAE;QACP,GAAG,wBAAwB;QAC3B,GAAG,qBAAqB;QACxB,GAAG,CAAC,0BAA0B,CAAC,OAAO,IAAI,EAAE,CAAC;KAC9C;IAED,KAAK,CAAC,OAAO,CAAC,QAAgC;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC3C,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAElF,IAAI,UAAU,CAAC,YAAY,IAAI,gBAAgB,CAAC,UAAU,CAAC,YAAY,EAAE,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC3G,MAAM,IAAI,KAAK,CACb,GAAG,cAAc,iDAAiD,UAAU,CAAC,YAAY,KAAK;gBAC9F,mDAAmD,cAAc,oCAAoC,CACtG,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAEvC,IAAI,UAAU,CAAC,YAAY,KAAK,cAAc,CAAC,mBAAmB,EAAE,CAAC;YACnE,2EAA2E;YAC3E,MAAM,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;YACjG,MAAM,YAAY,CAAC,UAAU,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAED,MAAM,iBAAiB,CAAC,UAAU,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAAC;IAC1E,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"start-dev-implementation.d.ts","sourceRoot":"","sources":["../../src/commands/start-dev-implementation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjD,eAAO,MAAM,6BAA6B,EAAE,OAyB3C,CAAC"}
1
+ {"version":3,"file":"start-dev-implementation.d.ts","sourceRoot":"","sources":["../../src/commands/start-dev-implementation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjD,eAAO,MAAM,6BAA6B,EAAE,OAwB3C,CAAC"}
@@ -1,10 +1,10 @@
1
- import { WorkflowStates } from '../lib/workflow-states.js';
2
- import { advanceTo, requireCurrentState, resolveContext } from '../services/workflow-engine.js';
3
- import { devImplementationHandler } from '../services/workflow-handlers/dev-implementation.js';
1
+ import { WorkflowStates } from '../workflow/data/workflow-states.js';
2
+ import { advanceAsNeededTo, resolveTransition } from '../workflow/engine/workflow-engine.js';
3
+ import { deferredHandlerOptions } from '../workflow/engine/handlers/index.js';
4
4
  export const startDevImplementationCommand = {
5
5
  name: 'start-dev-implementation',
6
6
  aliases: ['dev'],
7
- description: 'Transition from agent to dev implementation - creates PR and optionally closes worktree',
7
+ description: 'Advance the item to Dev Implementation (through every state before it) - commits and pushes the work, creates the PR and optionally closes the worktree',
8
8
  options: [
9
9
  {
10
10
  longName: 'source-path',
@@ -13,16 +13,15 @@ export const startDevImplementationCommand = {
13
13
  defaultValue: '',
14
14
  promptWhenDefaultExists: false
15
15
  },
16
- ...(devImplementationHandler.options ?? [])
16
+ ...deferredHandlerOptions([])
17
17
  ],
18
18
  async execute(resolved) {
19
19
  const sourcePath = resolved['source-path'];
20
20
  if (sourcePath) {
21
21
  process.chdir(sourcePath);
22
22
  }
23
- const context = await resolveContext({ options: resolved });
24
- requireCurrentState(context, WorkflowStates.AgentImplementation, 'start-dev-implementation');
25
- await advanceTo(context, WorkflowStates.DevImplementation);
23
+ const transition = await resolveTransition({ options: resolved });
24
+ await advanceAsNeededTo(transition, WorkflowStates.DevImplementation);
26
25
  }
27
26
  };
28
27
  //# sourceMappingURL=start-dev-implementation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"start-dev-implementation.js","sourceRoot":"","sources":["../../src/commands/start-dev-implementation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAE/F,MAAM,CAAC,MAAM,6BAA6B,GAAY;IACpD,IAAI,EAAE,0BAA0B;IAChC,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,WAAW,EAAE,yFAAyF;IACtG,OAAO,EAAE;QACP;YACE,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,4BAA4B;YACzC,YAAY,EAAE,EAAE;YAChB,uBAAuB,EAAE,KAAK;SAC/B;QACD,GAAG,CAAC,wBAAwB,CAAC,OAAO,IAAI,EAAE,CAAC;KAC5C;IAED,KAAK,CAAC,OAAO,CAAC,QAAgC;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC3C,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5D,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAC;QAC7F,MAAM,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAC7D,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"start-dev-implementation.js","sourceRoot":"","sources":["../../src/commands/start-dev-implementation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,MAAM,CAAC,MAAM,6BAA6B,GAAY;IACpD,IAAI,EAAE,0BAA0B;IAChC,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,WAAW,EAAE,yJAAyJ;IACtK,OAAO,EAAE;QACP;YACE,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,4BAA4B;YACzC,YAAY,EAAE,EAAE;YAChB,uBAAuB,EAAE,KAAK;SAC/B;QACD,GAAG,sBAAsB,CAAC,EAAE,CAAC;KAC9B;IAED,KAAK,CAAC,OAAO,CAAC,QAAgC;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC3C,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClE,MAAM,iBAAiB,CAAC,UAAU,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;IACxE,CAAC;CACF,CAAC"}