@rlarua/agentteams-cli 0.0.5 → 0.0.7

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
16
  case 'task':
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 === 'task') {
32
+ return executeTaskCommand(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,57 +69,73 @@ 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 executeTaskCommand(apiUrl, projectId, headers, action, options) {
129
+ const baseUrl = `${apiUrl}/api/projects/${projectId}/tasks`;
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
137
  throw new Error('--id is required for task get');
93
- const response = await axios.get(`${apiUrl}/tasks/${options.id}`, {
138
+ const response = await axios.get(`${baseUrl}/${options.id}`, {
94
139
  headers,
95
140
  });
96
141
  return response.data;
@@ -98,9 +143,12 @@ async function executeTaskCommand(apiUrl, headers, action, options) {
98
143
  case 'create': {
99
144
  if (!options.title)
100
145
  throw new Error('--title is required for task create');
101
- const response = await axios.post(`${apiUrl}/tasks`, {
146
+ if (!options.description || options.description.trim().length === 0) {
147
+ throw new Error('--description is required for task 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
154
  planId: options.planId,
@@ -119,13 +167,13 @@ async function executeTaskCommand(apiUrl, headers, action, options) {
119
167
  body.status = options.status;
120
168
  if (options.priority)
121
169
  body.priority = options.priority;
122
- const response = await axios.put(`${apiUrl}/tasks/${options.id}`, body, { headers });
170
+ const response = await axios.put(`${baseUrl}/${options.id}`, body, { headers });
123
171
  return response.data;
124
172
  }
125
173
  case 'delete': {
126
174
  if (!options.id)
127
175
  throw new Error('--id is required for task delete');
128
- await axios.delete(`${apiUrl}/tasks/${options.id}`, { headers });
176
+ await axios.delete(`${baseUrl}/${options.id}`, { headers });
129
177
  return { message: `Task ${options.id} deleted successfully` };
130
178
  }
131
179
  case 'assign': {
@@ -133,35 +181,39 @@ async function executeTaskCommand(apiUrl, headers, action, options) {
133
181
  throw new Error('--id is required for task assign');
134
182
  if (!options.agent)
135
183
  throw new Error('--agent is required for task assign');
136
- const response = await axios.post(`${apiUrl}/tasks/${options.id}/assign`, { assignedTo: options.agent }, { headers });
184
+ const response = await axios.post(`${baseUrl}/${options.id}/assign`, { assignedTo: options.agent }, { headers });
137
185
  return response.data;
138
186
  }
139
187
  default:
140
188
  throw new Error(`Unknown action: ${action}`);
141
189
  }
142
190
  }
143
- async function executeCommentCommand(apiUrl, headers, action, options) {
191
+ async function executeCommentCommand(apiUrl, projectId, headers, action, options) {
192
+ const taskBaseUrl = `${apiUrl}/api/projects/${projectId}/tasks`;
193
+ const commentBaseUrl = `${apiUrl}/api/projects/${projectId}/comments`;
144
194
  switch (action) {
145
195
  case 'list': {
146
196
  if (!options.taskId)
147
197
  throw new Error('--task-id is required for comment list');
148
- const response = await axios.get(`${apiUrl}/tasks/${options.taskId}/comments`, { headers });
198
+ const response = await axios.get(`${taskBaseUrl}/${options.taskId}/comments`, { headers });
149
199
  return response.data;
150
200
  }
151
201
  case 'get': {
152
202
  if (!options.id)
153
203
  throw new Error('--id is required for comment get');
154
- const response = await axios.get(`${apiUrl}/comments/${options.id}`, { headers });
204
+ const response = await axios.get(`${commentBaseUrl}/${options.id}`, { headers });
155
205
  return response.data;
156
206
  }
157
207
  case 'create': {
158
208
  if (!options.taskId)
159
209
  throw new Error('--task-id is required for comment create');
210
+ if (!options.type)
211
+ throw new Error('--type is required for comment create');
160
212
  if (!options.content)
161
213
  throw new Error('--content is required for comment create');
162
- const response = await axios.post(`${apiUrl}/tasks/${options.taskId}/comments`, {
214
+ const response = await axios.post(`${taskBaseUrl}/${options.taskId}/comments`, {
215
+ type: options.type,
163
216
  content: options.content,
164
- authorId: options.authorId,
165
217
  }, { headers });
166
218
  return response.data;
167
219
  }
@@ -170,13 +222,13 @@ async function executeCommentCommand(apiUrl, headers, action, options) {
170
222
  throw new Error('--id is required for comment update');
171
223
  if (!options.content)
172
224
  throw new Error('--content is required for comment update');
173
- const response = await axios.put(`${apiUrl}/comments/${options.id}`, { content: options.content }, { headers });
225
+ const response = await axios.put(`${commentBaseUrl}/${options.id}`, { content: options.content }, { headers });
174
226
  return response.data;
175
227
  }
176
228
  case 'delete': {
177
229
  if (!options.id)
178
230
  throw new Error('--id is required for comment delete');
179
- await axios.delete(`${apiUrl}/comments/${options.id}`, { headers });
231
+ await axios.delete(`${commentBaseUrl}/${options.id}`, { headers });
180
232
  return { message: `Comment ${options.id} deleted successfully` };
181
233
  }
182
234
  default:
@@ -184,23 +236,41 @@ async function executeCommentCommand(apiUrl, headers, action, options) {
184
236
  }
185
237
  }
186
238
  async function executeReportCommand(apiUrl, headers, action, options) {
239
+ if (!options.projectId || typeof options.projectId !== 'string') {
240
+ throw new Error('--project-id is required (or configure AGENTTEAMS_PROJECT_ID / .agentteams/config.json)');
241
+ }
242
+ const baseUrl = `${apiUrl}/api/projects/${options.projectId}/completion-reports`;
187
243
  switch (action) {
188
244
  case 'list': {
189
- const response = await axios.get(`${apiUrl}/completion-reports`, { headers });
245
+ const response = await axios.get(baseUrl, { headers });
190
246
  return response.data;
191
247
  }
192
248
  case 'get': {
193
249
  if (!options.id)
194
250
  throw new Error('--id is required for report get');
195
- const response = await axios.get(`${apiUrl}/completion-reports/${options.id}`, { headers });
251
+ const response = await axios.get(`${baseUrl}/${options.id}`, { headers });
196
252
  return response.data;
197
253
  }
198
254
  case 'create': {
199
- const response = await axios.post(`${apiUrl}/completion-reports`, {
255
+ const title = (options.title ?? options.summary);
256
+ if (!title || title.trim().length === 0) {
257
+ throw new Error('--title is required for report create (or use --summary)');
258
+ }
259
+ const rawContent = options.content;
260
+ const content = rawContent ?? toDetailsAsMarkdown(options.details);
261
+ if (!content || content.trim().length === 0) {
262
+ throw new Error('--content is required for report create (or use --details)');
263
+ }
264
+ const reportType = options.reportType ?? 'IMPL_PLAN';
265
+ const status = options.status ?? 'COMPLETED';
266
+ const createdBy = options.createdBy ?? '__cli__';
267
+ const response = await axios.post(baseUrl, {
200
268
  taskId: options.taskId,
201
- summary: options.summary,
202
- agentId: options.agentId,
203
- details: options.details,
269
+ title,
270
+ content,
271
+ reportType,
272
+ status,
273
+ createdBy
204
274
  }, { headers });
205
275
  return response.data;
206
276
  }
@@ -208,33 +278,59 @@ async function executeReportCommand(apiUrl, headers, action, options) {
208
278
  if (!options.id)
209
279
  throw new Error('--id is required for report update');
210
280
  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 });
281
+ if (options.title ?? options.summary)
282
+ body.title = options.title ?? options.summary;
283
+ if (options.content)
284
+ body.content = options.content;
285
+ if (options.reportType)
286
+ body.reportType = options.reportType;
287
+ if (options.status)
288
+ body.status = options.status;
289
+ if (options.qualityScore !== undefined)
290
+ body.qualityScore = options.qualityScore;
291
+ const response = await axios.put(`${baseUrl}/${options.id}`, body, { headers });
216
292
  return response.data;
217
293
  }
218
294
  case 'delete': {
219
295
  if (!options.id)
220
296
  throw new Error('--id is required for report delete');
221
- await axios.delete(`${apiUrl}/completion-reports/${options.id}`, { headers });
297
+ await axios.delete(`${baseUrl}/${options.id}`, { headers });
222
298
  return { message: `Report ${options.id} deleted successfully` };
223
299
  }
224
300
  default:
225
301
  throw new Error(`Unknown action: ${action}`);
226
302
  }
227
303
  }
228
- async function executeConventionLocalCommand(action) {
304
+ function toDetailsAsMarkdown(details) {
305
+ if (typeof details !== 'string' || details.trim().length === 0) {
306
+ return undefined;
307
+ }
308
+ try {
309
+ const parsed = JSON.parse(details);
310
+ return `\n\n## Details\n\n\`\`\`json\n${JSON.stringify(parsed, null, 2)}\n\`\`\`\n`;
311
+ }
312
+ catch {
313
+ return `\n\n## Details\n\n${details}\n`;
314
+ }
315
+ }
316
+ async function executeConventionCommand(action, options) {
229
317
  switch (action) {
318
+ case 'list':
319
+ return conventionList();
230
320
  case 'show':
231
321
  return conventionShow();
232
- case 'append':
233
- return conventionAppend();
234
- case 'update':
235
- return conventionUpdate();
322
+ case 'download':
323
+ return conventionDownload({ cwd: options?.cwd });
236
324
  default:
237
- throw new Error(`Unknown convention action: ${action}. Use show, append, or update.`);
325
+ throw new Error(`Unknown convention action: ${action}. Use list, show, or download.`);
326
+ }
327
+ }
328
+ async function executeSyncCommand(action, options) {
329
+ switch (action) {
330
+ case 'download':
331
+ return conventionDownload({ cwd: options?.cwd });
332
+ default:
333
+ throw new Error(`Unknown sync action: ${action}. Use download.`);
238
334
  }
239
335
  }
240
336
  async function executeAgentConfigCommand(action, options) {
@@ -265,9 +361,9 @@ async function executeDependencyCommand(action, options) {
265
361
  case 'create': {
266
362
  if (!options.taskId)
267
363
  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);
364
+ if (!options.blockingTaskId)
365
+ throw new Error('--blocking-task-id is required for dependency create');
366
+ return dependencyCreate(options.taskId, options.blockingTaskId);
271
367
  }
272
368
  case 'delete': {
273
369
  if (!options.taskId)
@@ -280,6 +376,19 @@ async function executeDependencyCommand(action, options) {
280
376
  throw new Error(`Unknown dependency action: ${action}. Use list, create, or delete.`);
281
377
  }
282
378
  }
379
+ function splitCsv(value) {
380
+ if (typeof value !== 'string') {
381
+ return [];
382
+ }
383
+ const trimmed = value.trim();
384
+ if (trimmed.length === 0) {
385
+ return [];
386
+ }
387
+ return trimmed
388
+ .split(',')
389
+ .map((item) => item.trim())
390
+ .filter((item) => item.length > 0);
391
+ }
283
392
  async function executeConfigCommand(action) {
284
393
  switch (action) {
285
394
  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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"}
@@ -9,7 +9,6 @@ type InitResult = {
9
9
  teamId: string;
10
10
  projectId: string;
11
11
  agentName: string;
12
- environment: string;
13
12
  };
14
13
  export declare function executeInitCommand(options?: InitOptions): Promise<InitResult>;
15
14
  export {};
@@ -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;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AA4CF,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA4CnF"}
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,
@@ -64,7 +84,6 @@ export async function executeInitCommand(options) {
64
84
  teamId: authResult.teamId,
65
85
  projectId: authResult.projectId,
66
86
  agentName: authResult.agentName,
67
- environment: authResult.environment,
68
87
  };
69
88
  }
70
89
  catch (error) {
@@ -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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"}