@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
@@ -0,0 +1,237 @@
1
+ import { logger } from '../lib/logger.js';
2
+ import { AgentErrorResponse, validateAgentResponse } from '../lib/agent-core.js';
3
+ import { isProjectItemUrl } from '../lib/project-item-url.js';
4
+ import { createProjectItemPrompt, generateBranchNamePrompt, getProjectItemSummaryForBranchPrompt, getProjectItemSummaryPrompt, listProjectsPrompt, setWorkflowStatusPrompt, upsertProjectItemWorkflowContextPrompt } from '../prompts/platform-prompts.js';
5
+ import * as claude from './claude.js';
6
+ /**
7
+ * The CLI's access to the Idea1 cloud platform (app.idea1.ai / api.idea1.ai): reading a project
8
+ * item's summary (by item or by branch), recording the item's workflow context, setting its workflow
9
+ * status, creating items, listing the team's Projects, deriving a branch name from an item. Callers use `platform.someFunction()` and know
10
+ * nothing about the transport.
11
+ *
12
+ * Today the transport is Claude Code driving the Idea1 MCP tools. That is an implementation detail
13
+ * of this module - it may be replaced by authenticated calls to the platform's HTTP API without
14
+ * touching any caller. Because these are simple tool calls rather than implementation sessions,
15
+ * every Claude run here uses PLATFORM_CALL_RUN_OPTIONS. The prompts are the templates in
16
+ * `src/prompts/platform-prompts.ts`; this module owns the output schemas their answers are read with.
17
+ */
18
+ /**
19
+ * Model and effort for every platform call: a small, fast model at medium effort is all a
20
+ * single MCP tool call needs, and pinning it keeps these calls consistent and cheap.
21
+ */
22
+ export const PLATFORM_CALL_RUN_OPTIONS = { model: 'sonnet', effort: 'medium' };
23
+ /**
24
+ * Run a platform call with a JSON schema, returning the parsed structured output.
25
+ */
26
+ async function callStructured(prompt, jsonSchema) {
27
+ return claude.runStructured(prompt, jsonSchema, PLATFORM_CALL_RUN_OPTIONS);
28
+ }
29
+ /**
30
+ * Run a platform call whose answer is a single string; a model refusal throws AgentErrorResponse.
31
+ */
32
+ async function callForResult(prompt) {
33
+ return claude.runWithPrompt(prompt, PLATFORM_CALL_RUN_OPTIONS);
34
+ }
35
+ /**
36
+ * Record a workflow state on an idea1.ai project item. The item must be under workflow management
37
+ * (have a workflow context); the workflow engine is the only caller, as the persist step of a
38
+ * transition.
39
+ */
40
+ export async function setWorkflowStatus(itemUrl, status) {
41
+ const hasClaude = await claude.ensureClaudeCli();
42
+ if (!hasClaude) {
43
+ logger.warning('Claude CLI not available, skipping workflow status update');
44
+ return false;
45
+ }
46
+ logger.step(`Setting workflow status to "${status}"...`);
47
+ try {
48
+ await callForResult(setWorkflowStatusPrompt({ projectItemUrl: itemUrl, workflowStatus: status }));
49
+ logger.success(`Workflow status updated to "${status}"`);
50
+ return true;
51
+ }
52
+ catch (error) {
53
+ const message = error instanceof AgentErrorResponse
54
+ ? `Model could not update workflow status: ${error.message}`
55
+ : `Could not update workflow status: ${error.message}`;
56
+ logger.warning(message);
57
+ return false;
58
+ }
59
+ }
60
+ /**
61
+ * The summary of the project item a branch implements: null for a branch outside workflow
62
+ * management. The repository is always named; nothing defaults it.
63
+ */
64
+ export async function getProjectItemSummaryForBranch(query) {
65
+ const hasClaude = await claude.ensureClaudeCli();
66
+ if (!hasClaude) {
67
+ throw new Error('Claude CLI is required to read the project item of a branch from idea1.ai');
68
+ }
69
+ logger.step(`Reading the project item of ${query.branchName} from idea1.ai...`);
70
+ const output = await callStructured(getProjectItemSummaryForBranchPrompt(query), projectItemSummaryOutputSchema);
71
+ return readProjectItemSummaryOutput(output, error => /not under workflow management/i.test(error));
72
+ }
73
+ /**
74
+ * The summary of a project item: its `workflowContext` is null while the item is outside workflow
75
+ * management.
76
+ */
77
+ export async function getProjectItemSummary(itemUrl) {
78
+ const hasClaude = await claude.ensureClaudeCli();
79
+ if (!hasClaude) {
80
+ throw new Error('Claude CLI is required to read a project item from idea1.ai');
81
+ }
82
+ logger.step(`Reading ${itemUrl} from idea1.ai...`);
83
+ const output = await callStructured(getProjectItemSummaryPrompt({ projectItemUrl: itemUrl }), projectItemSummaryOutputSchema);
84
+ const summary = readProjectItemSummaryOutput(output, () => false);
85
+ if (!summary) {
86
+ throw new Error(`idea1.ai returned no project item for ${itemUrl}`);
87
+ }
88
+ return summary;
89
+ }
90
+ /**
91
+ * Record a branch in a project item's workflow context as the one implementing the item, putting
92
+ * the item under workflow management when it is not yet: a new context starts at the first
93
+ * workflow state, an existing one keeps its status and takes the branch as its live branch. The
94
+ * status is never set here. Idempotent for the same branch and item; a branch another item holds is
95
+ * refused by the platform, which surfaces here as an error.
96
+ */
97
+ export async function upsertProjectItemWorkflowContext(input) {
98
+ const hasClaude = await claude.ensureClaudeCli();
99
+ if (!hasClaude) {
100
+ throw new Error('Claude CLI is required to record the workflow context on idea1.ai');
101
+ }
102
+ logger.step(`Recording ${input.branchName} as the branch of ${input.projectItemUrl} on idea1.ai...`);
103
+ const output = await callStructured(upsertProjectItemWorkflowContextPrompt(input), projectItemSummaryOutputSchema);
104
+ const summary = readProjectItemSummaryOutput(output, () => false);
105
+ if (!summary?.workflowContext) {
106
+ throw new Error('The platform returned no workflow context after recording the branch');
107
+ }
108
+ return summary;
109
+ }
110
+ /**
111
+ * The summary an output carries. An error `isAbsence` recognizes as "the platform has no such
112
+ * item" yields null; any other error is thrown.
113
+ */
114
+ function readProjectItemSummaryOutput(output, isAbsence) {
115
+ if (typeof output.error === 'string' && output.error.trim().length > 0) {
116
+ if (isAbsence(output.error)) {
117
+ return null;
118
+ }
119
+ throw new Error(`idea1.ai: ${output.error.trim()}`);
120
+ }
121
+ const summary = output.projectItemSummary;
122
+ if (!summary || typeof summary.url !== 'string' || !isProjectItemUrl(summary.url)) {
123
+ throw new Error(`Claude did not return a valid project item summary: ${JSON.stringify(output.projectItemSummary)}`);
124
+ }
125
+ return summary;
126
+ }
127
+ /**
128
+ * JSON schema for the project-item-summary structured output (`ProjectItemSummary` or an error).
129
+ */
130
+ const projectItemSummaryOutputSchema = {
131
+ type: 'object',
132
+ properties: {
133
+ projectItemSummary: {
134
+ type: ['object', 'null'],
135
+ description: 'The project item summary the tool returned, or null when it returned an error',
136
+ properties: {
137
+ url: { type: 'string' },
138
+ externalId: { type: 'integer' },
139
+ title: { type: 'string' },
140
+ epicId: { type: ['string', 'null'] },
141
+ completionDate: { type: ['string', 'null'] },
142
+ legacyWorkflowStatus: { type: 'string' },
143
+ workflowContext: {
144
+ type: ['object', 'null'],
145
+ properties: {
146
+ workflowStatus: { type: 'string' },
147
+ codingAgentUrl: { type: 'string' },
148
+ pullRequestUrl: { type: 'string' },
149
+ repositoryFullName: { type: 'string' },
150
+ branchName: { type: 'string' },
151
+ baseBranch: { type: 'string' },
152
+ devWorkflowType: { type: 'string', enum: ['independent', 'integration'] },
153
+ stackBranch: { type: ['string', 'null'] },
154
+ integrationBranch: { type: ['string', 'null'] },
155
+ branchState: { type: 'integer', enum: [0, 1, 2], description: '0 Live, 1 Merged, 2 Deleted' }
156
+ },
157
+ required: ['workflowStatus', 'codingAgentUrl', 'pullRequestUrl', 'repositoryFullName', 'branchName', 'baseBranch', 'devWorkflowType', 'stackBranch', 'integrationBranch', 'branchState'],
158
+ additionalProperties: false
159
+ }
160
+ },
161
+ required: ['url', 'externalId', 'title', 'epicId', 'completionDate', 'legacyWorkflowStatus', 'workflowContext'],
162
+ additionalProperties: false
163
+ },
164
+ error: { type: ['string', 'null'], description: 'The error the tool returned, verbatim, or null on success' }
165
+ },
166
+ required: ['projectItemSummary', 'error'],
167
+ additionalProperties: false
168
+ };
169
+ /**
170
+ * Generate a branch name from a project item description
171
+ */
172
+ export async function generateBranchName(itemUrl) {
173
+ const hasClaude = await claude.ensureClaudeCli();
174
+ if (!hasClaude) {
175
+ throw new Error('Claude CLI is required to generate branch names');
176
+ }
177
+ logger.step('Generating branch name from item description...');
178
+ const branchName = await callForResult(generateBranchNamePrompt({ projectItemUrl: itemUrl }));
179
+ // Clean up any extra whitespace/newlines
180
+ const cleanedName = branchName.replace(/\n/g, '').trim();
181
+ logger.dim(`Generated branch name: ${cleanedName}`);
182
+ return cleanedName;
183
+ }
184
+ /**
185
+ * The names of the team's live Projects, most recently created first.
186
+ */
187
+ export async function listProjects() {
188
+ logger.step('Reading the team\'s projects from idea1.ai...');
189
+ const output = await callStructured(listProjectsPrompt({}), listProjectsSchema);
190
+ const projects = Array.isArray(output.projects)
191
+ ? output.projects.filter((name) => typeof name === 'string' && name.trim().length > 0).map(name => name.trim())
192
+ : [];
193
+ return projects;
194
+ }
195
+ /**
196
+ * JSON schema for the list-projects structured output.
197
+ */
198
+ const listProjectsSchema = {
199
+ type: 'object',
200
+ properties: {
201
+ projects: {
202
+ type: 'array',
203
+ description: 'The names of the live Idea1 projects, most recently created first',
204
+ items: { type: 'string' }
205
+ }
206
+ },
207
+ required: ['projects'],
208
+ additionalProperties: false
209
+ };
210
+ /**
211
+ * Create a new idea1 project item with the given title in the named Project.
212
+ * The item is created with description `# <title>`.
213
+ * Returns the created item's URL.
214
+ */
215
+ export async function createProjectItem(title, projectName) {
216
+ logger.step(`Creating project item "${title}" in project "${projectName}"...`);
217
+ const output = validateAgentResponse(await callStructured(createProjectItemPrompt({ title, projectName }), createProjectItemSchema));
218
+ const url = typeof output.projectItemUrl === 'string' ? output.projectItemUrl.trim() : '';
219
+ if (!isProjectItemUrl(url)) {
220
+ throw new Error(`Claude did not return a valid project item URL: ${JSON.stringify(output.projectItemUrl)}`);
221
+ }
222
+ logger.success(`Created project item: ${url}`);
223
+ return url;
224
+ }
225
+ /**
226
+ * JSON schema for the create-project-item structured output.
227
+ */
228
+ const createProjectItemSchema = {
229
+ type: 'object',
230
+ properties: {
231
+ projectItemUrl: { type: 'string', description: 'The URL of the created idea1 project item, or an empty string on failure' },
232
+ error: { type: ['string', 'null'], description: 'The error returned by create_item, or null when the item was created' }
233
+ },
234
+ required: ['projectItemUrl', 'error'],
235
+ additionalProperties: false
236
+ };
237
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/services/platform.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Whether the repository has been set up: the settings file itself has to exist,
3
- * not just the `.idea1` folder — a repo carrying only branch metadata files would
3
+ * not just the `.idea1` folder — a repo carrying only other `.idea1` files would
4
4
  * otherwise look set up and never get settings written.
5
5
  */
6
6
  export declare function isSetupComplete(repoRoot: string): boolean;
@@ -108,7 +108,7 @@ individually, so overriding one hook or default leaves the rest in place.
108
108
  `;
109
109
  /**
110
110
  * Whether the repository has been set up: the settings file itself has to exist,
111
- * not just the `.idea1` folder — a repo carrying only branch metadata files would
111
+ * not just the `.idea1` folder — a repo carrying only other `.idea1` files would
112
112
  * otherwise look set up and never get settings written.
113
113
  */
114
114
  export function isSetupComplete(repoRoot) {
@@ -0,0 +1,10 @@
1
+ /**
2
+ * A compiled template: renders its model to text.
3
+ */
4
+ export type RenderTemplate<TModel extends object> = (model: TModel) => string;
5
+ /**
6
+ * Compile a Handlebars template for rendering against models of one shape. Compilation is lazy,
7
+ * so templates can be compiled once where they are defined and rendered on each use.
8
+ */
9
+ export declare function compileTemplate<TModel extends object>(templateText: string): RenderTemplate<TModel>;
10
+ //# sourceMappingURL=template-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-renderer.d.ts","sourceRoot":"","sources":["../../src/services/template-renderer.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;AAE9E;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,SAAS,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAEnG"}
@@ -0,0 +1,20 @@
1
+ import Handlebars from 'handlebars';
2
+ /**
3
+ * Renders Handlebars templates against a data model: every prompt the CLI gives Claude is a
4
+ * template rendered here, whether it is built in or comes from a repository's `.idea1` settings.
5
+ *
6
+ * Templates render as plain text, so values are never HTML-escaped. Rendering is strict: a
7
+ * template that outputs a field its model does not have throws instead of rendering it empty, so a
8
+ * misspelled variable in a repository's prompt surfaces as an error. Models therefore carry every
9
+ * field they declare, with null for a value that is absent, and templates test those with
10
+ * `{{#if}}` before outputting them.
11
+ */
12
+ const engine = Handlebars.create();
13
+ /**
14
+ * Compile a Handlebars template for rendering against models of one shape. Compilation is lazy,
15
+ * so templates can be compiled once where they are defined and rendered on each use.
16
+ */
17
+ export function compileTemplate(templateText) {
18
+ return engine.compile(templateText, { noEscape: true, strict: true });
19
+ }
20
+ //# sourceMappingURL=template-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-renderer.js","sourceRoot":"","sources":["../../src/services/template-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC;;;;;;;;;GASG;AAEH,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;AAOnC;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAwB,YAAoB;IACzE,OAAO,MAAM,CAAC,OAAO,CAAS,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAChF,CAAC"}
@@ -1,4 +1,5 @@
1
- import type { ClaudePermissionMode, ClaudeEntryPointMode, ClaudeEffortLevel, ClaudeModel, IsolationMode, WorkflowState } from '../types/index.js';
1
+ import type { ClaudePermissionMode, ClaudeEntryPointMode, ClaudeEffortLevel, ClaudeModel, IsolationMode } from '../types/index.js';
2
+ import { type WorkflowState } from '../workflow/data/workflow-states.js';
2
3
  /**
3
4
  * Run the setup-worktree hook if defined in .idea1/settings.json
4
5
  */
@@ -56,21 +57,21 @@ export declare function extractIntegrationName(fullBranchName: string): Promise<
56
57
  */
57
58
  export declare function ensureIntegrationBranch(integrationBranchName: string, baseBranchName: string): Promise<void>;
58
59
  /**
59
- * Options shared by every path that launches a Claude session on a branch.
60
+ * How a project item's implementation session is started on its branch.
60
61
  */
61
- export interface BranchSetupOptions {
62
- projectItemUrl?: string;
63
- permissionMode?: ClaudePermissionMode;
64
- model?: ClaudeModel;
65
- effort?: ClaudeEffortLevel;
66
- claudeEntryPointMode?: ClaudeEntryPointMode;
67
- /** Prompt to start the session with; the project item's implementation prompt is used when absent. */
68
- entryPointPrompt?: string;
62
+ export interface ImplementationSessionOptions {
63
+ projectItemUrl: string;
64
+ /** The rendered prompt the session starts with. */
65
+ prompt: string;
66
+ permissionMode: ClaudePermissionMode;
67
+ model: ClaudeModel;
68
+ effort: ClaudeEffortLevel;
69
+ claudeEntryPointMode: ClaudeEntryPointMode;
69
70
  }
70
71
  /**
71
- * Setup worktree isolation - creates worktree, runs hooks, optionally launches Claude
72
+ * Setup worktree isolation - creates worktree and runs hooks
72
73
  */
73
- export declare function setupWorktreeIsolation(fullBranchName: string, shortBranchName: string, baseBranchName: string, options?: BranchSetupOptions): Promise<string>;
74
+ export declare function setupWorktreeIsolation(fullBranchName: string, shortBranchName: string, baseBranchName: string): Promise<string>;
74
75
  /**
75
76
  * Ensure a branch has a local working environment: reuse the checkout that
76
77
  * already holds it, or create one — an isolated worktree, or the branch checked
@@ -84,11 +85,11 @@ export declare function ensureBranchEnvironment(isolationMode: IsolationMode, br
84
85
  created: boolean;
85
86
  }>;
86
87
  /**
87
- * Invoke Claude on a branch's working directory per the entry-point mode, then
88
- * print the directory path and next-step hint. This is the only place the CLI
89
- * starts a Claude session that writes code.
88
+ * Start a project item's implementation session on its branch's working directory per the
89
+ * entry-point mode, then print the directory path and next-step hint. This is the only place the
90
+ * CLI starts a Claude session that writes code.
90
91
  */
91
- export declare function launchClaudeForBranch(workingPath: string, options?: BranchSetupOptions): Promise<void>;
92
+ export declare function launchClaudeForBranch(workingPath: string, options: ImplementationSessionOptions): Promise<void>;
92
93
  /**
93
94
  * Tell the user where the branch is checked out and how to move the workflow on.
94
95
  */
@@ -1 +1 @@
1
- {"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/services/worktree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,WAAW,EAAmB,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAYnK;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB1E;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAejF;AAED;;;;;;;GAOG;AACH,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE;IAAE,wBAAwB,EAAE,OAAO,CAAA;CAAE,GAC7C,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAmCD;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM7E;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM/E;AAED;;;;GAIG;AACH,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,MAAM,CAAC,CAMtE;AAkCD;;;GAGG;AACH,wBAAsB,0BAA0B,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMzF;AAED;;;GAGG;AACH,wBAAsB,8BAA8B,CAAC,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOtH;AAED;;GAEG;AACH,wBAAsB,+BAA+B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAazE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBpF;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,qBAAqB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAclH;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,sGAAsG;IACtG,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAuBjB;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAgBpD;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAYhH;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAMpE;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAuBjB"}
1
+ {"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/services/worktree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAOnI,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAE3F;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB1E;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAejF;AAED;;;;;;;GAOG;AACH,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE;IAAE,wBAAwB,EAAE,OAAO,CAAA;CAAE,GAC7C,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAyBD;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE7E;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE/E;AAED;;;;GAIG;AACH,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,MAAM,CAAC,CAEtE;AAgBD;;;GAGG;AACH,wBAAsB,0BAA0B,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMzF;AAED;;;GAGG;AACH,wBAAsB,8BAA8B,CAAC,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOtH;AAED;;GAEG;AACH,wBAAsB,+BAA+B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAazE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBpF;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,qBAAqB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAclH;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,cAAc,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,oBAAoB,CAAC;IACrC,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,CAajB;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAgBpD;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC,CAarH;AAkBD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAMpE;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAuBjB"}
@@ -1,12 +1,10 @@
1
1
  import { basename } from 'path';
2
2
  import { logger } from '../lib/logger.js';
3
3
  import { execWithOutput, resolveBash } from '../lib/shell.js';
4
- import { DEFAULT_BRANCH_SETTINGS, getSetupWorktreeHook, getBranchPrefix, getBaseBranch, getIntegrationBranchPrefix, getIntegrationBranchTemplate, getIntegrationWorkBranchTemplate, getRemoveWorktreeAtState } from '../lib/settings.js';
4
+ import { DEFAULT_BRANCH_SETTINGS, getSetupWorktreeHook, getRemoveWorktreeAtState, readBranchSettings } from '../lib/settings.js';
5
5
  import * as git from './git.js';
6
6
  import * as claude from './claude.js';
7
- import { isStateAtOrAfter } from '../lib/workflow-states.js';
8
- const DEFAULT_INTEGRATION_BRANCH_TEMPLATE = DEFAULT_BRANCH_SETTINGS.integrationBranchTemplate;
9
- const DEFAULT_INTEGRATION_WORK_BRANCH_TEMPLATE = DEFAULT_BRANCH_SETTINGS.integrationWorkBranchTemplate;
7
+ import { isStateAtOrAfter } from '../workflow/data/workflow-states.js';
10
8
  /**
11
9
  * Run the setup-worktree hook if defined in .idea1/settings.json
12
10
  */
@@ -80,33 +78,24 @@ export async function removeWorktreeForWorkflowState(state, branchName, projectI
80
78
  * `draft` must not be forced onto this repository's `working/release` by a
81
79
  * value left in the user's config store.
82
80
  */
83
- async function resolveBranchSetting(cliValue, readSetting, fallback) {
81
+ async function resolveBranchSetting(cliValue, select) {
84
82
  if (cliValue) {
85
83
  return cliValue;
86
84
  }
87
- try {
88
- const repoRoot = await git.getRepoRoot();
89
- const settingsValue = await readSetting(repoRoot);
90
- if (settingsValue) {
91
- return settingsValue;
92
- }
93
- }
94
- catch {
95
- // Not in a repo, use the built-in default
96
- }
97
- return fallback;
85
+ const repoRoot = await git.getRepoRoot().catch(() => null);
86
+ return select(repoRoot ? await readBranchSettings(repoRoot) : DEFAULT_BRANCH_SETTINGS);
98
87
  }
99
88
  /**
100
89
  * Resolve the prefix new branches are created under
101
90
  */
102
91
  export async function resolveBranchPrefix(cliPrefix) {
103
- return resolveBranchSetting(cliPrefix, getBranchPrefix, DEFAULT_BRANCH_SETTINGS.branchPrefix);
92
+ return resolveBranchSetting(cliPrefix, settings => settings.branchPrefix);
104
93
  }
105
94
  /**
106
95
  * Resolve the branch new branches are cut from and their pull requests target
107
96
  */
108
97
  export async function resolveBaseBranch(cliBaseBranch) {
109
- return resolveBranchSetting(cliBaseBranch, getBaseBranch, DEFAULT_BRANCH_SETTINGS.baseBranch);
98
+ return resolveBranchSetting(cliBaseBranch, settings => settings.baseBranch);
110
99
  }
111
100
  /**
112
101
  * Resolve the integration branch prefix using config hierarchy:
@@ -114,39 +103,19 @@ export async function resolveBaseBranch(cliBaseBranch) {
114
103
  * 2. Hardcoded default
115
104
  */
116
105
  export async function resolveIntegrationBranchPrefix() {
117
- return resolveBranchSetting(undefined, getIntegrationBranchPrefix, DEFAULT_BRANCH_SETTINGS.integrationBranchPrefix);
106
+ return resolveBranchSetting(undefined, settings => settings.integrationBranchPrefix);
118
107
  }
119
108
  /**
120
109
  * Resolve the integration branch template using config hierarchy
121
110
  */
122
111
  async function resolveIntegrationBranchTemplate() {
123
- try {
124
- const repoRoot = await git.getRepoRoot();
125
- const settingsTemplate = await getIntegrationBranchTemplate(repoRoot);
126
- if (settingsTemplate) {
127
- return settingsTemplate;
128
- }
129
- }
130
- catch {
131
- // Not in a repo, use default
132
- }
133
- return DEFAULT_INTEGRATION_BRANCH_TEMPLATE;
112
+ return resolveBranchSetting(undefined, settings => settings.integrationBranchTemplate);
134
113
  }
135
114
  /**
136
115
  * Resolve the integration work branch template using config hierarchy
137
116
  */
138
117
  async function resolveIntegrationWorkBranchTemplate() {
139
- try {
140
- const repoRoot = await git.getRepoRoot();
141
- const settingsTemplate = await getIntegrationWorkBranchTemplate(repoRoot);
142
- if (settingsTemplate) {
143
- return settingsTemplate;
144
- }
145
- }
146
- catch {
147
- // Not in a repo, use default
148
- }
149
- return DEFAULT_INTEGRATION_WORK_BRANCH_TEMPLATE;
118
+ return resolveBranchSetting(undefined, settings => settings.integrationWorkBranchTemplate);
150
119
  }
151
120
  /**
152
121
  * Build the full integration branch name from a template
@@ -223,24 +192,16 @@ export async function ensureIntegrationBranch(integrationBranchName, baseBranchN
223
192
  logger.success(`Integration branch ${integrationBranchName} created`);
224
193
  }
225
194
  /**
226
- * Setup worktree isolation - creates worktree, runs hooks, optionally launches Claude
195
+ * Setup worktree isolation - creates worktree and runs hooks
227
196
  */
228
- export async function setupWorktreeIsolation(fullBranchName, shortBranchName, baseBranchName, options = {}) {
197
+ export async function setupWorktreeIsolation(fullBranchName, shortBranchName, baseBranchName) {
229
198
  logger.step('Setting up worktree isolation...');
230
199
  // Create git worktree
231
200
  const worktreePath = await git.createWorktree(fullBranchName, shortBranchName);
232
- // Store project item URL and base branch in git config (fast local lookup)
233
- // These must happen BEFORE commitBranchMetadata so it can gather all values
234
- if (options.projectItemUrl) {
235
- await git.storeProjectItemUrl(options.projectItemUrl, fullBranchName);
236
- }
237
- await git.storeBaseBranch(baseBranchName, fullBranchName);
238
- // Commit branch metadata JSON file so it's discoverable from any clone
239
- await git.commitBranchMetadata(worktreePath, fullBranchName, options.projectItemUrl);
240
- // Enter worktree and set up upstream (pushes the metadata commit)
201
+ // Enter worktree and set up upstream
241
202
  await git.enterWorktreeAndSetup(worktreePath, fullBranchName);
242
203
  await runSetupWorktreeHook(worktreePath);
243
- await launchClaudeForBranch(worktreePath, options);
204
+ printWorkingDirectoryHints(worktreePath);
244
205
  return worktreePath;
245
206
  }
246
207
  /**
@@ -267,23 +228,38 @@ export async function ensureBranchEnvironment(isolationMode, branchName) {
267
228
  return { workingPath: worktreePath, created: true };
268
229
  }
269
230
  /**
270
- * Invoke Claude on a branch's working directory per the entry-point mode, then
271
- * print the directory path and next-step hint. This is the only place the CLI
272
- * starts a Claude session that writes code.
231
+ * Start a project item's implementation session on its branch's working directory per the
232
+ * entry-point mode, then print the directory path and next-step hint. This is the only place the
233
+ * CLI starts a Claude session that writes code.
273
234
  */
274
- export async function launchClaudeForBranch(workingPath, options = {}) {
275
- const claudeEntryPointMode = options.claudeEntryPointMode ?? 'launch';
276
- if (claudeEntryPointMode === 'inline' && options.projectItemUrl) {
277
- const prompt = options.entryPointPrompt ?? claude.getImplementationPrompt(options.projectItemUrl);
278
- claude.outputInlinePrompt(options.projectItemUrl, workingPath, prompt);
235
+ export async function launchClaudeForBranch(workingPath, options) {
236
+ if (options.claudeEntryPointMode === 'inline') {
237
+ outputInlinePrompt(options.projectItemUrl, workingPath, options.prompt);
279
238
  }
280
- else if (claudeEntryPointMode === 'launch') {
281
- const prompt = options.entryPointPrompt
282
- ?? (options.projectItemUrl ? claude.getImplementationPrompt(options.projectItemUrl) : undefined);
283
- await claude.runInteractive(prompt, workingPath, options.permissionMode, options.model, options.effort);
239
+ else if (options.claudeEntryPointMode === 'launch') {
240
+ await claude.runInteractive(options.prompt, {
241
+ cwd: workingPath,
242
+ permissionMode: options.permissionMode,
243
+ model: options.model,
244
+ effort: options.effort
245
+ });
284
246
  }
285
247
  printWorkingDirectoryHints(workingPath);
286
248
  }
249
+ /**
250
+ * Output the entry point prompt as structured output for an already-running Claude session.
251
+ */
252
+ function outputInlinePrompt(itemUrl, worktreePath, prompt) {
253
+ const output = {
254
+ type: 'idea1-cli-prompt',
255
+ projectItemUrl: itemUrl,
256
+ worktreePath,
257
+ prompt,
258
+ instructions: 'Enter plan mode and implement the project item using the prompt above. The worktree is ready at the specified path.'
259
+ };
260
+ // Output as JSON for Claude to parse from the tool result
261
+ console.log(JSON.stringify(output, null, 2));
262
+ }
287
263
  /**
288
264
  * Tell the user where the branch is checked out and how to move the workflow on.
289
265
  */
@@ -1 +1 @@
1
- {"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/services/worktree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/services/worktree.ts"],"names":[],"mappings":"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"}