@rlarua/agentteams-cli 0.0.6 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,34 +1,63 @@
1
1
  import axios from 'axios';
2
- import { getApiConfig } from '../utils/env.js';
3
2
  import { executeInitCommand } from './init.js';
4
- import { conventionShow, conventionAppend, conventionUpdate } from './convention.js';
3
+ import { conventionList, conventionShow, conventionDownload, } from './convention.js';
5
4
  import { agentConfigList, agentConfigGet, agentConfigDelete } from './agentConfig.js';
6
5
  import { dependencyList, dependencyCreate, dependencyDelete } from './dependency.js';
6
+ import { loadConfig } from '../utils/config.js';
7
7
  export async function executeCommand(resource, action, options) {
8
8
  switch (resource) {
9
9
  case 'init':
10
10
  return executeInitCommand(options);
11
11
  case 'convention':
12
- return executeConventionLocalCommand(action);
12
+ return executeConventionCommand(action, options);
13
+ case 'sync':
14
+ return executeSyncCommand(action, options);
13
15
  case 'status':
14
- case 'task':
16
+ case 'plan':
15
17
  case 'comment':
18
+ {
19
+ const config = loadConfig();
20
+ if (!config) {
21
+ throw new Error("Configuration not found. Run 'agentteams init' first or set AGENTTEAMS_* environment variables.");
22
+ }
23
+ const apiUrl = config.apiUrl.endsWith('/') ? config.apiUrl.slice(0, -1) : config.apiUrl;
24
+ const headers = {
25
+ 'X-API-Key': config.apiKey,
26
+ 'Content-Type': 'application/json',
27
+ };
28
+ if (resource === 'status') {
29
+ return executeStatusCommand(apiUrl, config.projectId, headers, action, options);
30
+ }
31
+ if (resource === 'plan') {
32
+ return executePlanCommand(apiUrl, config.projectId, headers, action, options);
33
+ }
34
+ if (resource === 'comment') {
35
+ return executeCommentCommand(apiUrl, config.projectId, headers, action, options);
36
+ }
37
+ throw new Error(`Unknown resource: ${resource}`);
38
+ }
16
39
  case 'report': {
17
- const { apiKey, apiUrl } = getApiConfig();
18
- const headers = {
19
- 'X-API-Key': apiKey,
20
- 'Content-Type': 'application/json',
40
+ const configOverrides = {
41
+ ...(typeof options.apiKey === 'string' && options.apiKey.length > 0 ? { apiKey: options.apiKey } : {}),
42
+ ...(typeof options.apiUrl === 'string' && options.apiUrl.length > 0 ? { apiUrl: options.apiUrl } : {}),
43
+ ...(typeof options.teamId === 'string' && options.teamId.length > 0 ? { teamId: options.teamId } : {}),
44
+ ...(typeof options.projectId === 'string' && options.projectId.length > 0 ? { projectId: options.projectId } : {}),
45
+ ...(typeof options.agentName === 'string' && options.agentName.length > 0 ? { agentName: options.agentName } : {})
21
46
  };
22
- if (resource === 'status') {
23
- return executeStatusCommand(apiUrl, headers, action, options);
24
- }
25
- if (resource === 'task') {
26
- return executeTaskCommand(apiUrl, headers, action, options);
27
- }
28
- if (resource === 'comment') {
29
- return executeCommentCommand(apiUrl, headers, action, options);
47
+ const config = loadConfig(configOverrides);
48
+ if (!config) {
49
+ throw new Error("Configuration not found. Run 'agentteams init' first or set AGENTTEAMS_* environment variables.");
30
50
  }
31
- return executeReportCommand(apiUrl, headers, action, options);
51
+ const apiUrl = config.apiUrl.endsWith('/') ? config.apiUrl.slice(0, -1) : config.apiUrl;
52
+ const headers = {
53
+ 'X-API-Key': config.apiKey,
54
+ 'Content-Type': 'application/json'
55
+ };
56
+ return executeReportCommand(apiUrl, headers, action, {
57
+ ...options,
58
+ projectId: config.projectId,
59
+ createdBy: options.createdBy ?? config.agentName
60
+ });
32
61
  }
33
62
  case 'dependency':
34
63
  return executeDependencyCommand(action, options);
@@ -40,76 +69,94 @@ export async function executeCommand(resource, action, options) {
40
69
  throw new Error(`Unknown resource: ${resource}`);
41
70
  }
42
71
  }
43
- async function executeStatusCommand(apiUrl, headers, action, options) {
72
+ async function executeStatusCommand(apiUrl, projectId, headers, action, options) {
73
+ const baseUrl = `${apiUrl}/api/projects/${projectId}/agent-statuses`;
44
74
  switch (action) {
45
75
  case 'report': {
46
- const response = await axios.post(`${apiUrl}/agent-statuses`, {
47
- agentName: options.agentName,
76
+ if (!options.status)
77
+ throw new Error('--status is required for status report');
78
+ if (!options.task)
79
+ throw new Error('--task is required for status report');
80
+ if (options.issues === undefined)
81
+ throw new Error('--issues is required for status report');
82
+ if (options.remaining === undefined)
83
+ throw new Error('--remaining is required for status report');
84
+ const response = await axios.post(baseUrl, {
85
+ agent: options.agent,
48
86
  status: options.status,
49
- projectId: options.projectId,
50
- metadata: options.metadata,
87
+ task: options.task,
88
+ issues: splitCsv(options.issues),
89
+ remaining: splitCsv(options.remaining),
51
90
  }, { headers });
52
91
  return response.data;
53
92
  }
54
93
  case 'list': {
55
- const response = await axios.get(`${apiUrl}/agent-statuses`, { headers });
94
+ const response = await axios.get(baseUrl, { headers });
56
95
  return response.data;
57
96
  }
58
97
  case 'get': {
59
98
  if (!options.id)
60
99
  throw new Error('--id is required for status get');
61
- const response = await axios.get(`${apiUrl}/agent-statuses/${options.id}`, { headers });
100
+ const response = await axios.get(`${baseUrl}/${options.id}`, { headers });
62
101
  return response.data;
63
102
  }
64
103
  case 'update': {
65
104
  if (!options.id)
66
105
  throw new Error('--id is required for status update');
67
- const response = await axios.put(`${apiUrl}/agent-statuses/${options.id}`, {
68
- agentName: options.agentName,
69
- status: options.status,
70
- metadata: options.metadata,
71
- }, { headers });
106
+ const body = {};
107
+ if (options.status !== undefined)
108
+ body.status = options.status;
109
+ if (options.task !== undefined)
110
+ body.task = options.task;
111
+ if (options.issues !== undefined)
112
+ body.issues = splitCsv(options.issues);
113
+ if (options.remaining !== undefined)
114
+ body.remaining = splitCsv(options.remaining);
115
+ const response = await axios.put(`${baseUrl}/${options.id}`, body, { headers });
72
116
  return response.data;
73
117
  }
74
118
  case 'delete': {
75
119
  if (!options.id)
76
120
  throw new Error('--id is required for status delete');
77
- const response = await axios.delete(`${apiUrl}/agent-statuses/${options.id}`, { headers });
121
+ const response = await axios.delete(`${baseUrl}/${options.id}`, { headers });
78
122
  return response.data;
79
123
  }
80
124
  default:
81
125
  throw new Error(`Unknown action: ${action}`);
82
126
  }
83
127
  }
84
- async function executeTaskCommand(apiUrl, headers, action, options) {
128
+ async function executePlanCommand(apiUrl, projectId, headers, action, options) {
129
+ const baseUrl = `${apiUrl}/api/projects/${projectId}/plans`;
85
130
  switch (action) {
86
131
  case 'list': {
87
- const response = await axios.get(`${apiUrl}/tasks`, { headers });
132
+ const response = await axios.get(baseUrl, { headers });
88
133
  return response.data;
89
134
  }
90
135
  case 'get': {
91
136
  if (!options.id)
92
- throw new Error('--id is required for task get');
93
- const response = await axios.get(`${apiUrl}/tasks/${options.id}`, {
137
+ throw new Error('--id is required for plan get');
138
+ const response = await axios.get(`${baseUrl}/${options.id}`, {
94
139
  headers,
95
140
  });
96
141
  return response.data;
97
142
  }
98
143
  case 'create': {
99
144
  if (!options.title)
100
- throw new Error('--title is required for task create');
101
- const response = await axios.post(`${apiUrl}/tasks`, {
145
+ throw new Error('--title is required for plan create');
146
+ if (!options.description || options.description.trim().length === 0) {
147
+ throw new Error('--description is required for plan create');
148
+ }
149
+ const response = await axios.post(baseUrl, {
102
150
  title: options.title,
103
- description: options.description ?? '',
151
+ description: options.description,
104
152
  priority: options.priority ?? 'MEDIUM',
105
153
  status: options.status,
106
- planId: options.planId,
107
154
  }, { headers });
108
155
  return response.data;
109
156
  }
110
157
  case 'update': {
111
158
  if (!options.id)
112
- throw new Error('--id is required for task update');
159
+ throw new Error('--id is required for plan update');
113
160
  const body = {};
114
161
  if (options.title)
115
162
  body.title = options.title;
@@ -119,49 +166,53 @@ async function executeTaskCommand(apiUrl, headers, action, options) {
119
166
  body.status = options.status;
120
167
  if (options.priority)
121
168
  body.priority = options.priority;
122
- const response = await axios.put(`${apiUrl}/tasks/${options.id}`, body, { headers });
169
+ const response = await axios.put(`${baseUrl}/${options.id}`, body, { headers });
123
170
  return response.data;
124
171
  }
125
172
  case 'delete': {
126
173
  if (!options.id)
127
- throw new Error('--id is required for task delete');
128
- await axios.delete(`${apiUrl}/tasks/${options.id}`, { headers });
129
- return { message: `Task ${options.id} deleted successfully` };
174
+ throw new Error('--id is required for plan delete');
175
+ await axios.delete(`${baseUrl}/${options.id}`, { headers });
176
+ return { message: `Plan ${options.id} deleted successfully` };
130
177
  }
131
178
  case 'assign': {
132
179
  if (!options.id)
133
- throw new Error('--id is required for task assign');
180
+ throw new Error('--id is required for plan assign');
134
181
  if (!options.agent)
135
- throw new Error('--agent is required for task assign');
136
- const response = await axios.post(`${apiUrl}/tasks/${options.id}/assign`, { assignedTo: options.agent }, { headers });
182
+ throw new Error('--agent is required for plan assign');
183
+ const response = await axios.post(`${baseUrl}/${options.id}/assign`, { assignedTo: options.agent }, { headers });
137
184
  return response.data;
138
185
  }
139
186
  default:
140
187
  throw new Error(`Unknown action: ${action}`);
141
188
  }
142
189
  }
143
- async function executeCommentCommand(apiUrl, headers, action, options) {
190
+ async function executeCommentCommand(apiUrl, projectId, headers, action, options) {
191
+ const planBaseUrl = `${apiUrl}/api/projects/${projectId}/plans`;
192
+ const commentBaseUrl = `${apiUrl}/api/projects/${projectId}/comments`;
144
193
  switch (action) {
145
194
  case 'list': {
146
- if (!options.taskId)
147
- throw new Error('--task-id is required for comment list');
148
- const response = await axios.get(`${apiUrl}/tasks/${options.taskId}/comments`, { headers });
195
+ if (!options.planId)
196
+ throw new Error('--plan-id is required for comment list');
197
+ const response = await axios.get(`${planBaseUrl}/${options.planId}/comments`, { headers });
149
198
  return response.data;
150
199
  }
151
200
  case 'get': {
152
201
  if (!options.id)
153
202
  throw new Error('--id is required for comment get');
154
- const response = await axios.get(`${apiUrl}/comments/${options.id}`, { headers });
203
+ const response = await axios.get(`${commentBaseUrl}/${options.id}`, { headers });
155
204
  return response.data;
156
205
  }
157
206
  case 'create': {
158
- if (!options.taskId)
159
- throw new Error('--task-id is required for comment create');
207
+ if (!options.planId)
208
+ throw new Error('--plan-id is required for comment create');
209
+ if (!options.type)
210
+ throw new Error('--type is required for comment create');
160
211
  if (!options.content)
161
212
  throw new Error('--content is required for comment create');
162
- const response = await axios.post(`${apiUrl}/tasks/${options.taskId}/comments`, {
213
+ const response = await axios.post(`${planBaseUrl}/${options.planId}/comments`, {
214
+ type: options.type,
163
215
  content: options.content,
164
- authorId: options.authorId,
165
216
  }, { headers });
166
217
  return response.data;
167
218
  }
@@ -170,13 +221,13 @@ async function executeCommentCommand(apiUrl, headers, action, options) {
170
221
  throw new Error('--id is required for comment update');
171
222
  if (!options.content)
172
223
  throw new Error('--content is required for comment update');
173
- const response = await axios.put(`${apiUrl}/comments/${options.id}`, { content: options.content }, { headers });
224
+ const response = await axios.put(`${commentBaseUrl}/${options.id}`, { content: options.content }, { headers });
174
225
  return response.data;
175
226
  }
176
227
  case 'delete': {
177
228
  if (!options.id)
178
229
  throw new Error('--id is required for comment delete');
179
- await axios.delete(`${apiUrl}/comments/${options.id}`, { headers });
230
+ await axios.delete(`${commentBaseUrl}/${options.id}`, { headers });
180
231
  return { message: `Comment ${options.id} deleted successfully` };
181
232
  }
182
233
  default:
@@ -184,23 +235,41 @@ async function executeCommentCommand(apiUrl, headers, action, options) {
184
235
  }
185
236
  }
186
237
  async function executeReportCommand(apiUrl, headers, action, options) {
238
+ if (!options.projectId || typeof options.projectId !== 'string') {
239
+ throw new Error('--project-id is required (or configure AGENTTEAMS_PROJECT_ID / .agentteams/config.json)');
240
+ }
241
+ const baseUrl = `${apiUrl}/api/projects/${options.projectId}/completion-reports`;
187
242
  switch (action) {
188
243
  case 'list': {
189
- const response = await axios.get(`${apiUrl}/completion-reports`, { headers });
244
+ const response = await axios.get(baseUrl, { headers });
190
245
  return response.data;
191
246
  }
192
247
  case 'get': {
193
248
  if (!options.id)
194
249
  throw new Error('--id is required for report get');
195
- const response = await axios.get(`${apiUrl}/completion-reports/${options.id}`, { headers });
250
+ const response = await axios.get(`${baseUrl}/${options.id}`, { headers });
196
251
  return response.data;
197
252
  }
198
253
  case 'create': {
199
- const response = await axios.post(`${apiUrl}/completion-reports`, {
200
- taskId: options.taskId,
201
- summary: options.summary,
202
- agentId: options.agentId,
203
- details: options.details,
254
+ const title = (options.title ?? options.summary);
255
+ if (!title || title.trim().length === 0) {
256
+ throw new Error('--title is required for report create (or use --summary)');
257
+ }
258
+ const rawContent = options.content;
259
+ const content = rawContent ?? toDetailsAsMarkdown(options.details);
260
+ if (!content || content.trim().length === 0) {
261
+ throw new Error('--content is required for report create (or use --details)');
262
+ }
263
+ const reportType = options.reportType ?? 'IMPL_PLAN';
264
+ const status = options.status ?? 'COMPLETED';
265
+ const createdBy = options.createdBy ?? '__cli__';
266
+ const response = await axios.post(baseUrl, {
267
+ planId: options.planId,
268
+ title,
269
+ content,
270
+ reportType,
271
+ status,
272
+ createdBy
204
273
  }, { headers });
205
274
  return response.data;
206
275
  }
@@ -208,33 +277,59 @@ async function executeReportCommand(apiUrl, headers, action, options) {
208
277
  if (!options.id)
209
278
  throw new Error('--id is required for report update');
210
279
  const body = {};
211
- if (options.summary)
212
- body.summary = options.summary;
213
- if (options.details)
214
- body.details = options.details;
215
- const response = await axios.put(`${apiUrl}/completion-reports/${options.id}`, body, { headers });
280
+ if (options.title ?? options.summary)
281
+ body.title = options.title ?? options.summary;
282
+ if (options.content)
283
+ body.content = options.content;
284
+ if (options.reportType)
285
+ body.reportType = options.reportType;
286
+ if (options.status)
287
+ body.status = options.status;
288
+ if (options.qualityScore !== undefined)
289
+ body.qualityScore = options.qualityScore;
290
+ const response = await axios.put(`${baseUrl}/${options.id}`, body, { headers });
216
291
  return response.data;
217
292
  }
218
293
  case 'delete': {
219
294
  if (!options.id)
220
295
  throw new Error('--id is required for report delete');
221
- await axios.delete(`${apiUrl}/completion-reports/${options.id}`, { headers });
296
+ await axios.delete(`${baseUrl}/${options.id}`, { headers });
222
297
  return { message: `Report ${options.id} deleted successfully` };
223
298
  }
224
299
  default:
225
300
  throw new Error(`Unknown action: ${action}`);
226
301
  }
227
302
  }
228
- async function executeConventionLocalCommand(action) {
303
+ function toDetailsAsMarkdown(details) {
304
+ if (typeof details !== 'string' || details.trim().length === 0) {
305
+ return undefined;
306
+ }
307
+ try {
308
+ const parsed = JSON.parse(details);
309
+ return `\n\n## Details\n\n\`\`\`json\n${JSON.stringify(parsed, null, 2)}\n\`\`\`\n`;
310
+ }
311
+ catch {
312
+ return `\n\n## Details\n\n${details}\n`;
313
+ }
314
+ }
315
+ async function executeConventionCommand(action, options) {
229
316
  switch (action) {
317
+ case 'list':
318
+ return conventionList();
230
319
  case 'show':
231
320
  return conventionShow();
232
- case 'append':
233
- return conventionAppend();
234
- case 'update':
235
- return conventionUpdate();
321
+ case 'download':
322
+ return conventionDownload({ cwd: options?.cwd });
236
323
  default:
237
- throw new Error(`Unknown convention action: ${action}. Use show, append, or update.`);
324
+ throw new Error(`Unknown convention action: ${action}. Use list, show, or download.`);
325
+ }
326
+ }
327
+ async function executeSyncCommand(action, options) {
328
+ switch (action) {
329
+ case 'download':
330
+ return conventionDownload({ cwd: options?.cwd });
331
+ default:
332
+ throw new Error(`Unknown sync action: ${action}. Use download.`);
238
333
  }
239
334
  }
240
335
  async function executeAgentConfigCommand(action, options) {
@@ -258,28 +353,41 @@ async function executeAgentConfigCommand(action, options) {
258
353
  async function executeDependencyCommand(action, options) {
259
354
  switch (action) {
260
355
  case 'list': {
261
- if (!options.taskId)
262
- throw new Error('--task-id is required for dependency list');
263
- return dependencyList(options.taskId);
356
+ if (!options.planId)
357
+ throw new Error('--plan-id is required for dependency list');
358
+ return dependencyList(options.planId);
264
359
  }
265
360
  case 'create': {
266
- if (!options.taskId)
267
- throw new Error('--task-id is required for dependency create');
268
- if (!options.dependsOn)
269
- throw new Error('--depends-on is required for dependency create');
270
- return dependencyCreate(options.taskId, options.dependsOn);
361
+ if (!options.planId)
362
+ throw new Error('--plan-id is required for dependency create');
363
+ if (!options.blockingPlanId)
364
+ throw new Error('--blocking-plan-id is required for dependency create');
365
+ return dependencyCreate(options.planId, options.blockingPlanId);
271
366
  }
272
367
  case 'delete': {
273
- if (!options.taskId)
274
- throw new Error('--task-id is required for dependency delete');
368
+ if (!options.planId)
369
+ throw new Error('--plan-id is required for dependency delete');
275
370
  if (!options.depId)
276
371
  throw new Error('--dep-id is required for dependency delete');
277
- return dependencyDelete(options.taskId, options.depId);
372
+ return dependencyDelete(options.planId, options.depId);
278
373
  }
279
374
  default:
280
375
  throw new Error(`Unknown dependency action: ${action}. Use list, create, or delete.`);
281
376
  }
282
377
  }
378
+ function splitCsv(value) {
379
+ if (typeof value !== 'string') {
380
+ return [];
381
+ }
382
+ const trimmed = value.trim();
383
+ if (trimmed.length === 0) {
384
+ return [];
385
+ }
386
+ return trimmed
387
+ .split(',')
388
+ .map((item) => item.trim())
389
+ .filter((item) => item.length > 0);
390
+ }
283
391
  async function executeConfigCommand(action) {
284
392
  switch (action) {
285
393
  case 'whoami': {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAYA,KAAK,WAAW,GAAG;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AA4CF,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA2CnF"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAcA,KAAK,WAAW,GAAG;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAwEF,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA6CnF"}
@@ -1,12 +1,14 @@
1
1
  import { writeFileSync } from 'node:fs';
2
2
  import { join, resolve } from 'node:path';
3
+ import axios from 'axios';
3
4
  import open from 'open';
4
5
  import { startLocalAuthServer } from '../utils/authServer.js';
5
6
  import { saveConfig } from '../utils/config.js';
7
+ import { conventionDownload } from './convention.js';
6
8
  const AUTH_BASE_URL = process.env.AGENTTEAMS_WEB_URL || 'https://agent-web.justin-mk.me';
7
9
  const CONFIG_DIR = '.agentteams';
8
10
  const CONFIG_FILE = 'config.json';
9
- const CONVENTION_FILE = 'reporting.md';
11
+ const CONVENTION_FILE = 'convention.md';
10
12
  function isSshEnvironment() {
11
13
  return Boolean(process.env.SSH_CONNECTION || process.env.SSH_CLIENT || process.env.SSH_TTY);
12
14
  }
@@ -38,6 +40,22 @@ function toConfig(authResult) {
38
40
  apiUrl: authResult.apiUrl,
39
41
  };
40
42
  }
43
+ async function fetchConventionTemplate(authResult) {
44
+ const apiUrl = authResult.apiUrl.endsWith('/')
45
+ ? authResult.apiUrl.slice(0, -1)
46
+ : authResult.apiUrl;
47
+ const response = await axios.get(`${apiUrl}/api/projects/${authResult.projectId}/agent-configs/${authResult.configId}/convention`, {
48
+ headers: {
49
+ 'X-API-Key': authResult.apiKey,
50
+ 'Content-Type': 'application/json',
51
+ },
52
+ });
53
+ const content = response.data?.data?.content;
54
+ if (typeof content !== 'string') {
55
+ throw new Error('Invalid convention template response from server.');
56
+ }
57
+ return content;
58
+ }
41
59
  export async function executeInitCommand(options) {
42
60
  const cwd = resolve(options?.cwd ?? process.cwd());
43
61
  const configPath = join(cwd, CONFIG_DIR, CONFIG_FILE);
@@ -54,8 +72,10 @@ export async function executeInitCommand(options) {
54
72
  try {
55
73
  const authResult = await authContext.waitForCallback();
56
74
  const config = toConfig(authResult);
75
+ const conventionContent = await fetchConventionTemplate(authResult);
57
76
  saveConfig(configPath, config);
58
- writeFileSync(conventionPath, authResult.convention.content, 'utf-8');
77
+ writeFileSync(conventionPath, conventionContent, 'utf-8');
78
+ await conventionDownload({ cwd, config });
59
79
  return {
60
80
  success: true,
61
81
  authUrl,
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}