@rlarua/agentteams-cli 0.0.1
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.
- package/README.md +428 -0
- package/dist/commands/agentConfig.d.ts +4 -0
- package/dist/commands/agentConfig.d.ts.map +1 -0
- package/dist/commands/agentConfig.js +34 -0
- package/dist/commands/agentConfig.js.map +1 -0
- package/dist/commands/convention.d.ts +4 -0
- package/dist/commands/convention.d.ts.map +1 -0
- package/dist/commands/convention.js +106 -0
- package/dist/commands/convention.js.map +1 -0
- package/dist/commands/dependency.d.ts +4 -0
- package/dist/commands/dependency.d.ts.map +1 -0
- package/dist/commands/dependency.js +34 -0
- package/dist/commands/dependency.js.map +1 -0
- package/dist/commands/index.d.ts +2 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +295 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +16 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +77 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +206 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +236 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/authServer.d.ts +22 -0
- package/dist/utils/authServer.d.ts.map +1 -0
- package/dist/utils/authServer.js +167 -0
- package/dist/utils/authServer.js.map +1 -0
- package/dist/utils/config.d.ts +31 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +113 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/env.d.ts +7 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +19 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/errors.d.ts +2 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +33 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/formatter.d.ts +2 -0
- package/dist/utils/formatter.d.ts.map +1 -0
- package/dist/utils/formatter.js +45 -0
- package/dist/utils/formatter.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import { getApiConfig } from '../utils/env.js';
|
|
3
|
+
import { executeInitCommand } from './init.js';
|
|
4
|
+
import { conventionShow, conventionAppend, conventionUpdate } from './convention.js';
|
|
5
|
+
import { agentConfigList, agentConfigGet, agentConfigDelete } from './agentConfig.js';
|
|
6
|
+
import { dependencyList, dependencyCreate, dependencyDelete } from './dependency.js';
|
|
7
|
+
export async function executeCommand(resource, action, options) {
|
|
8
|
+
switch (resource) {
|
|
9
|
+
case 'init':
|
|
10
|
+
return executeInitCommand(options);
|
|
11
|
+
case 'convention':
|
|
12
|
+
return executeConventionLocalCommand(action);
|
|
13
|
+
case 'status':
|
|
14
|
+
case 'task':
|
|
15
|
+
case 'comment':
|
|
16
|
+
case 'report': {
|
|
17
|
+
const { apiKey, apiUrl } = getApiConfig();
|
|
18
|
+
const headers = {
|
|
19
|
+
'X-API-Key': apiKey,
|
|
20
|
+
'Content-Type': 'application/json',
|
|
21
|
+
};
|
|
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);
|
|
30
|
+
}
|
|
31
|
+
return executeReportCommand(apiUrl, headers, action, options);
|
|
32
|
+
}
|
|
33
|
+
case 'dependency':
|
|
34
|
+
return executeDependencyCommand(action, options);
|
|
35
|
+
case 'agent-config':
|
|
36
|
+
return executeAgentConfigCommand(action, options);
|
|
37
|
+
case 'config':
|
|
38
|
+
return executeConfigCommand(action);
|
|
39
|
+
default:
|
|
40
|
+
throw new Error(`Unknown resource: ${resource}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async function executeStatusCommand(apiUrl, headers, action, options) {
|
|
44
|
+
switch (action) {
|
|
45
|
+
case 'report': {
|
|
46
|
+
const response = await axios.post(`${apiUrl}/agent-statuses`, {
|
|
47
|
+
agentName: options.agentName,
|
|
48
|
+
status: options.status,
|
|
49
|
+
projectId: options.projectId,
|
|
50
|
+
metadata: options.metadata,
|
|
51
|
+
}, { headers });
|
|
52
|
+
return response.data;
|
|
53
|
+
}
|
|
54
|
+
case 'list': {
|
|
55
|
+
const response = await axios.get(`${apiUrl}/agent-statuses`, { headers });
|
|
56
|
+
return response.data;
|
|
57
|
+
}
|
|
58
|
+
case 'get': {
|
|
59
|
+
if (!options.id)
|
|
60
|
+
throw new Error('--id is required for status get');
|
|
61
|
+
const response = await axios.get(`${apiUrl}/agent-statuses/${options.id}`, { headers });
|
|
62
|
+
return response.data;
|
|
63
|
+
}
|
|
64
|
+
case 'update': {
|
|
65
|
+
if (!options.id)
|
|
66
|
+
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 });
|
|
72
|
+
return response.data;
|
|
73
|
+
}
|
|
74
|
+
case 'delete': {
|
|
75
|
+
if (!options.id)
|
|
76
|
+
throw new Error('--id is required for status delete');
|
|
77
|
+
const response = await axios.delete(`${apiUrl}/agent-statuses/${options.id}`, { headers });
|
|
78
|
+
return response.data;
|
|
79
|
+
}
|
|
80
|
+
default:
|
|
81
|
+
throw new Error(`Unknown action: ${action}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async function executeTaskCommand(apiUrl, headers, action, options) {
|
|
85
|
+
switch (action) {
|
|
86
|
+
case 'list': {
|
|
87
|
+
const response = await axios.get(`${apiUrl}/tasks`, { headers });
|
|
88
|
+
return response.data;
|
|
89
|
+
}
|
|
90
|
+
case 'get': {
|
|
91
|
+
if (!options.id)
|
|
92
|
+
throw new Error('--id is required for task get');
|
|
93
|
+
const response = await axios.get(`${apiUrl}/tasks/${options.id}`, {
|
|
94
|
+
headers,
|
|
95
|
+
});
|
|
96
|
+
return response.data;
|
|
97
|
+
}
|
|
98
|
+
case 'create': {
|
|
99
|
+
if (!options.title)
|
|
100
|
+
throw new Error('--title is required for task create');
|
|
101
|
+
const response = await axios.post(`${apiUrl}/tasks`, {
|
|
102
|
+
title: options.title,
|
|
103
|
+
description: options.description ?? '',
|
|
104
|
+
priority: options.priority ?? 'MEDIUM',
|
|
105
|
+
status: options.status,
|
|
106
|
+
planId: options.planId,
|
|
107
|
+
}, { headers });
|
|
108
|
+
return response.data;
|
|
109
|
+
}
|
|
110
|
+
case 'update': {
|
|
111
|
+
if (!options.id)
|
|
112
|
+
throw new Error('--id is required for task update');
|
|
113
|
+
const body = {};
|
|
114
|
+
if (options.title)
|
|
115
|
+
body.title = options.title;
|
|
116
|
+
if (options.description)
|
|
117
|
+
body.description = options.description;
|
|
118
|
+
if (options.status)
|
|
119
|
+
body.status = options.status;
|
|
120
|
+
if (options.priority)
|
|
121
|
+
body.priority = options.priority;
|
|
122
|
+
const response = await axios.put(`${apiUrl}/tasks/${options.id}`, body, { headers });
|
|
123
|
+
return response.data;
|
|
124
|
+
}
|
|
125
|
+
case 'delete': {
|
|
126
|
+
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` };
|
|
130
|
+
}
|
|
131
|
+
case 'assign': {
|
|
132
|
+
if (!options.id)
|
|
133
|
+
throw new Error('--id is required for task assign');
|
|
134
|
+
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 });
|
|
137
|
+
return response.data;
|
|
138
|
+
}
|
|
139
|
+
default:
|
|
140
|
+
throw new Error(`Unknown action: ${action}`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
async function executeCommentCommand(apiUrl, headers, action, options) {
|
|
144
|
+
switch (action) {
|
|
145
|
+
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 });
|
|
149
|
+
return response.data;
|
|
150
|
+
}
|
|
151
|
+
case 'get': {
|
|
152
|
+
if (!options.id)
|
|
153
|
+
throw new Error('--id is required for comment get');
|
|
154
|
+
const response = await axios.get(`${apiUrl}/comments/${options.id}`, { headers });
|
|
155
|
+
return response.data;
|
|
156
|
+
}
|
|
157
|
+
case 'create': {
|
|
158
|
+
if (!options.taskId)
|
|
159
|
+
throw new Error('--task-id is required for comment create');
|
|
160
|
+
if (!options.content)
|
|
161
|
+
throw new Error('--content is required for comment create');
|
|
162
|
+
const response = await axios.post(`${apiUrl}/tasks/${options.taskId}/comments`, {
|
|
163
|
+
content: options.content,
|
|
164
|
+
authorId: options.authorId,
|
|
165
|
+
}, { headers });
|
|
166
|
+
return response.data;
|
|
167
|
+
}
|
|
168
|
+
case 'update': {
|
|
169
|
+
if (!options.id)
|
|
170
|
+
throw new Error('--id is required for comment update');
|
|
171
|
+
if (!options.content)
|
|
172
|
+
throw new Error('--content is required for comment update');
|
|
173
|
+
const response = await axios.put(`${apiUrl}/comments/${options.id}`, { content: options.content }, { headers });
|
|
174
|
+
return response.data;
|
|
175
|
+
}
|
|
176
|
+
case 'delete': {
|
|
177
|
+
if (!options.id)
|
|
178
|
+
throw new Error('--id is required for comment delete');
|
|
179
|
+
await axios.delete(`${apiUrl}/comments/${options.id}`, { headers });
|
|
180
|
+
return { message: `Comment ${options.id} deleted successfully` };
|
|
181
|
+
}
|
|
182
|
+
default:
|
|
183
|
+
throw new Error(`Unknown action: ${action}`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
async function executeReportCommand(apiUrl, headers, action, options) {
|
|
187
|
+
switch (action) {
|
|
188
|
+
case 'list': {
|
|
189
|
+
const response = await axios.get(`${apiUrl}/completion-reports`, { headers });
|
|
190
|
+
return response.data;
|
|
191
|
+
}
|
|
192
|
+
case 'get': {
|
|
193
|
+
if (!options.id)
|
|
194
|
+
throw new Error('--id is required for report get');
|
|
195
|
+
const response = await axios.get(`${apiUrl}/completion-reports/${options.id}`, { headers });
|
|
196
|
+
return response.data;
|
|
197
|
+
}
|
|
198
|
+
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,
|
|
204
|
+
}, { headers });
|
|
205
|
+
return response.data;
|
|
206
|
+
}
|
|
207
|
+
case 'update': {
|
|
208
|
+
if (!options.id)
|
|
209
|
+
throw new Error('--id is required for report update');
|
|
210
|
+
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 });
|
|
216
|
+
return response.data;
|
|
217
|
+
}
|
|
218
|
+
case 'delete': {
|
|
219
|
+
if (!options.id)
|
|
220
|
+
throw new Error('--id is required for report delete');
|
|
221
|
+
await axios.delete(`${apiUrl}/completion-reports/${options.id}`, { headers });
|
|
222
|
+
return { message: `Report ${options.id} deleted successfully` };
|
|
223
|
+
}
|
|
224
|
+
default:
|
|
225
|
+
throw new Error(`Unknown action: ${action}`);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
async function executeConventionLocalCommand(action) {
|
|
229
|
+
switch (action) {
|
|
230
|
+
case 'show':
|
|
231
|
+
return conventionShow();
|
|
232
|
+
case 'append':
|
|
233
|
+
return conventionAppend();
|
|
234
|
+
case 'update':
|
|
235
|
+
return conventionUpdate();
|
|
236
|
+
default:
|
|
237
|
+
throw new Error(`Unknown convention action: ${action}. Use show, append, or update.`);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
async function executeAgentConfigCommand(action, options) {
|
|
241
|
+
switch (action) {
|
|
242
|
+
case 'list':
|
|
243
|
+
return agentConfigList();
|
|
244
|
+
case 'get': {
|
|
245
|
+
if (!options.id)
|
|
246
|
+
throw new Error('--id is required for agent-config get');
|
|
247
|
+
return agentConfigGet(options.id);
|
|
248
|
+
}
|
|
249
|
+
case 'delete': {
|
|
250
|
+
if (!options.id)
|
|
251
|
+
throw new Error('--id is required for agent-config delete');
|
|
252
|
+
return agentConfigDelete(options.id);
|
|
253
|
+
}
|
|
254
|
+
default:
|
|
255
|
+
throw new Error(`Unknown agent-config action: ${action}. Use list, get, or delete.`);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
async function executeDependencyCommand(action, options) {
|
|
259
|
+
switch (action) {
|
|
260
|
+
case 'list': {
|
|
261
|
+
if (!options.taskId)
|
|
262
|
+
throw new Error('--task-id is required for dependency list');
|
|
263
|
+
return dependencyList(options.taskId);
|
|
264
|
+
}
|
|
265
|
+
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);
|
|
271
|
+
}
|
|
272
|
+
case 'delete': {
|
|
273
|
+
if (!options.taskId)
|
|
274
|
+
throw new Error('--task-id is required for dependency delete');
|
|
275
|
+
if (!options.depId)
|
|
276
|
+
throw new Error('--dep-id is required for dependency delete');
|
|
277
|
+
return dependencyDelete(options.taskId, options.depId);
|
|
278
|
+
}
|
|
279
|
+
default:
|
|
280
|
+
throw new Error(`Unknown dependency action: ${action}. Use list, create, or delete.`);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
async function executeConfigCommand(action) {
|
|
284
|
+
switch (action) {
|
|
285
|
+
case 'whoami': {
|
|
286
|
+
return {
|
|
287
|
+
apiKey: process.env.AGENTTEAMS_API_KEY,
|
|
288
|
+
apiUrl: process.env.AGENTTEAMS_API_URL,
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
default:
|
|
292
|
+
throw new Error(`Unknown action: ${action}`);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type InitOptions = {
|
|
2
|
+
cwd?: string;
|
|
3
|
+
};
|
|
4
|
+
type InitResult = {
|
|
5
|
+
success: true;
|
|
6
|
+
authUrl: string;
|
|
7
|
+
configPath: string;
|
|
8
|
+
conventionPath: string;
|
|
9
|
+
teamId: string;
|
|
10
|
+
projectId: string;
|
|
11
|
+
agentName: string;
|
|
12
|
+
environment: string;
|
|
13
|
+
};
|
|
14
|
+
export declare function executeInitCommand(options?: InitOptions): Promise<InitResult>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { writeFileSync } from 'node:fs';
|
|
2
|
+
import { join, resolve } from 'node:path';
|
|
3
|
+
import open from 'open';
|
|
4
|
+
import { startLocalAuthServer } from '../utils/authServer.js';
|
|
5
|
+
import { saveConfig } from '../utils/config.js';
|
|
6
|
+
const AUTH_BASE_URL = 'http://localhost:3000';
|
|
7
|
+
const CONFIG_DIR = '.agentteams';
|
|
8
|
+
const CONFIG_FILE = 'config.json';
|
|
9
|
+
const CONVENTION_FILE = 'convention.md';
|
|
10
|
+
function isSshEnvironment() {
|
|
11
|
+
return Boolean(process.env.SSH_CONNECTION || process.env.SSH_CLIENT || process.env.SSH_TTY);
|
|
12
|
+
}
|
|
13
|
+
function buildAuthorizeUrl(port) {
|
|
14
|
+
return `${AUTH_BASE_URL}/cli/authorize?port=${port}`;
|
|
15
|
+
}
|
|
16
|
+
function printAuthorizeUrl(url) {
|
|
17
|
+
console.log('Open this URL to continue authentication:');
|
|
18
|
+
console.log(url);
|
|
19
|
+
}
|
|
20
|
+
async function tryOpenBrowser(url) {
|
|
21
|
+
if (isSshEnvironment()) {
|
|
22
|
+
printAuthorizeUrl(url);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
await open(url);
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
printAuthorizeUrl(url);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function toConfig(authResult) {
|
|
33
|
+
return {
|
|
34
|
+
teamId: authResult.teamId,
|
|
35
|
+
projectId: authResult.projectId,
|
|
36
|
+
agentName: authResult.agentName,
|
|
37
|
+
apiKey: authResult.apiKey,
|
|
38
|
+
apiUrl: authResult.apiUrl,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export async function executeInitCommand(options) {
|
|
42
|
+
const cwd = resolve(options?.cwd ?? process.cwd());
|
|
43
|
+
const configPath = join(cwd, CONFIG_DIR, CONFIG_FILE);
|
|
44
|
+
const conventionPath = join(cwd, CONFIG_DIR, CONVENTION_FILE);
|
|
45
|
+
let authContext;
|
|
46
|
+
try {
|
|
47
|
+
authContext = startLocalAuthServer();
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
throw new Error(`Failed to start local OAuth server: ${error instanceof Error ? error.message : String(error)}`);
|
|
51
|
+
}
|
|
52
|
+
const authUrl = buildAuthorizeUrl(authContext.port);
|
|
53
|
+
await tryOpenBrowser(authUrl);
|
|
54
|
+
try {
|
|
55
|
+
const authResult = await authContext.waitForCallback();
|
|
56
|
+
const config = toConfig(authResult);
|
|
57
|
+
saveConfig(configPath, config);
|
|
58
|
+
writeFileSync(conventionPath, authResult.convention.content, 'utf-8');
|
|
59
|
+
return {
|
|
60
|
+
success: true,
|
|
61
|
+
authUrl,
|
|
62
|
+
configPath,
|
|
63
|
+
conventionPath,
|
|
64
|
+
teamId: authResult.teamId,
|
|
65
|
+
projectId: authResult.projectId,
|
|
66
|
+
agentName: authResult.agentName,
|
|
67
|
+
environment: authResult.environment,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
if (authContext.server.listening) {
|
|
72
|
+
authContext.server.close();
|
|
73
|
+
}
|
|
74
|
+
throw new Error(`Initialization failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import { executeCommand } from './commands/index.js';
|
|
4
|
+
import { formatOutput } from './utils/formatter.js';
|
|
5
|
+
import { handleError } from './utils/errors.js';
|
|
6
|
+
const program = new Command();
|
|
7
|
+
program
|
|
8
|
+
.name('agentteams')
|
|
9
|
+
.description('CLI tool for AgentTeams API')
|
|
10
|
+
.version('1.0.0');
|
|
11
|
+
program
|
|
12
|
+
.command('init')
|
|
13
|
+
.description('Initialize AgentTeams CLI via OAuth')
|
|
14
|
+
.option('--format <format>', 'Output format (json, text)', 'text')
|
|
15
|
+
.action(async (options) => {
|
|
16
|
+
try {
|
|
17
|
+
const result = await executeCommand('init', 'start', {});
|
|
18
|
+
console.log(formatOutput(result, options.format));
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
console.error(handleError(error));
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
program
|
|
26
|
+
.command('status')
|
|
27
|
+
.description('Manage agent statuses')
|
|
28
|
+
.argument('<action>', 'Action to perform (report, list, get, update, delete)')
|
|
29
|
+
.option('--id <id>', 'Status ID')
|
|
30
|
+
.option('--agent-name <name>', 'Agent name')
|
|
31
|
+
.option('--status <status>', 'Agent status')
|
|
32
|
+
.option('--project-id <id>', 'Project ID', parseInt)
|
|
33
|
+
.option('--metadata <json>', 'Metadata as JSON string')
|
|
34
|
+
.option('--format <format>', 'Output format (json, text)', 'json')
|
|
35
|
+
.action(async (action, options) => {
|
|
36
|
+
try {
|
|
37
|
+
const result = await executeCommand('status', action, {
|
|
38
|
+
id: options.id,
|
|
39
|
+
agentName: options.agentName,
|
|
40
|
+
status: options.status,
|
|
41
|
+
projectId: options.projectId,
|
|
42
|
+
metadata: options.metadata ? JSON.parse(options.metadata) : undefined,
|
|
43
|
+
});
|
|
44
|
+
console.log(formatOutput(result, options.format));
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
console.error(handleError(error));
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
program
|
|
52
|
+
.command('task')
|
|
53
|
+
.description('Manage tasks')
|
|
54
|
+
.argument('<action>', 'Action to perform (list, get, create, update, delete, assign)')
|
|
55
|
+
.option('--id <id>', 'Task ID')
|
|
56
|
+
.option('--title <title>', 'Task title')
|
|
57
|
+
.option('--description <description>', 'Task description')
|
|
58
|
+
.option('--status <status>', 'Task status (PENDING, IN_PROGRESS, DONE, CANCELLED)')
|
|
59
|
+
.option('--priority <priority>', 'Task priority (LOW, MEDIUM, HIGH)')
|
|
60
|
+
.option('--plan-id <planId>', 'Plan ID')
|
|
61
|
+
.option('--agent <agent>', 'Agent name or ID to assign')
|
|
62
|
+
.option('--format <format>', 'Output format (json, text)', 'json')
|
|
63
|
+
.action(async (action, options) => {
|
|
64
|
+
try {
|
|
65
|
+
const result = await executeCommand('task', action, {
|
|
66
|
+
id: options.id,
|
|
67
|
+
title: options.title,
|
|
68
|
+
description: options.description,
|
|
69
|
+
status: options.status,
|
|
70
|
+
priority: options.priority,
|
|
71
|
+
planId: options.planId,
|
|
72
|
+
agent: options.agent,
|
|
73
|
+
});
|
|
74
|
+
console.log(formatOutput(result, options.format));
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
console.error(handleError(error));
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
program
|
|
82
|
+
.command('comment')
|
|
83
|
+
.description('Manage task comments')
|
|
84
|
+
.argument('<action>', 'Action to perform (list, get, create, update, delete)')
|
|
85
|
+
.option('--id <id>', 'Comment ID', parseInt)
|
|
86
|
+
.option('--task-id <id>', 'Task ID', parseInt)
|
|
87
|
+
.option('--content <content>', 'Comment content')
|
|
88
|
+
.option('--author-id <id>', 'Author ID', parseInt)
|
|
89
|
+
.option('--format <format>', 'Output format (json, text)', 'json')
|
|
90
|
+
.action(async (action, options) => {
|
|
91
|
+
try {
|
|
92
|
+
const result = await executeCommand('comment', action, {
|
|
93
|
+
id: options.id,
|
|
94
|
+
taskId: options.taskId,
|
|
95
|
+
content: options.content,
|
|
96
|
+
authorId: options.authorId,
|
|
97
|
+
});
|
|
98
|
+
console.log(formatOutput(result, options.format));
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
console.error(handleError(error));
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
program
|
|
106
|
+
.command('report')
|
|
107
|
+
.description('Manage completion reports')
|
|
108
|
+
.argument('<action>', 'Action to perform (list, get, create, update, delete)')
|
|
109
|
+
.option('--id <id>', 'Report ID')
|
|
110
|
+
.option('--task-id <id>', 'Task ID', parseInt)
|
|
111
|
+
.option('--summary <summary>', 'Report summary')
|
|
112
|
+
.option('--agent-id <id>', 'Agent ID', parseInt)
|
|
113
|
+
.option('--details <json>', 'Details as JSON string')
|
|
114
|
+
.option('--format <format>', 'Output format (json, text)', 'json')
|
|
115
|
+
.action(async (action, options) => {
|
|
116
|
+
try {
|
|
117
|
+
const result = await executeCommand('report', action, {
|
|
118
|
+
id: options.id,
|
|
119
|
+
taskId: options.taskId,
|
|
120
|
+
summary: options.summary,
|
|
121
|
+
agentId: options.agentId,
|
|
122
|
+
details: options.details ? JSON.parse(options.details) : undefined,
|
|
123
|
+
});
|
|
124
|
+
console.log(formatOutput(result, options.format));
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
console.error(handleError(error));
|
|
128
|
+
process.exit(1);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
program
|
|
132
|
+
.command('convention')
|
|
133
|
+
.description('Manage project conventions')
|
|
134
|
+
.argument('<action>', 'Action to perform (show, append, update)')
|
|
135
|
+
.action(async (action) => {
|
|
136
|
+
try {
|
|
137
|
+
const result = await executeCommand('convention', action, {});
|
|
138
|
+
if (typeof result === 'string') {
|
|
139
|
+
console.log(result);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
console.log(formatOutput(result, 'text'));
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
console.error(handleError(error));
|
|
147
|
+
process.exit(1);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
program
|
|
151
|
+
.command('dependency')
|
|
152
|
+
.description('Manage task dependencies')
|
|
153
|
+
.argument('<action>', 'Action to perform (list, create, delete)')
|
|
154
|
+
.option('--task-id <id>', 'Task ID')
|
|
155
|
+
.option('--depends-on <id>', 'Dependency target task ID')
|
|
156
|
+
.option('--dep-id <id>', 'Dependency ID to delete')
|
|
157
|
+
.option('--format <format>', 'Output format (json, text)', 'json')
|
|
158
|
+
.action(async (action, options) => {
|
|
159
|
+
try {
|
|
160
|
+
const result = await executeCommand('dependency', action, {
|
|
161
|
+
taskId: options.taskId,
|
|
162
|
+
dependsOn: options.dependsOn,
|
|
163
|
+
depId: options.depId,
|
|
164
|
+
});
|
|
165
|
+
console.log(formatOutput(result, options.format));
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
console.error(handleError(error));
|
|
169
|
+
process.exit(1);
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
program
|
|
173
|
+
.command('agent-config')
|
|
174
|
+
.description('Manage agent configurations')
|
|
175
|
+
.argument('<action>', 'Action to perform (list, get, delete)')
|
|
176
|
+
.option('--id <id>', 'Agent config ID')
|
|
177
|
+
.option('--format <format>', 'Output format (json, text)', 'json')
|
|
178
|
+
.action(async (action, options) => {
|
|
179
|
+
try {
|
|
180
|
+
const result = await executeCommand('agent-config', action, {
|
|
181
|
+
id: options.id,
|
|
182
|
+
});
|
|
183
|
+
console.log(formatOutput(result, options.format));
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
console.error(handleError(error));
|
|
187
|
+
process.exit(1);
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
program
|
|
191
|
+
.command('config')
|
|
192
|
+
.description('Manage configuration')
|
|
193
|
+
.argument('<action>', 'Action to perform (whoami)')
|
|
194
|
+
.option('--format <format>', 'Output format (json, text)', 'json')
|
|
195
|
+
.action(async (action, options) => {
|
|
196
|
+
try {
|
|
197
|
+
const result = await executeCommand('config', action, {});
|
|
198
|
+
console.log(formatOutput(result, options.format));
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
console.error(handleError(error));
|
|
202
|
+
process.exit(1);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
program.parse();
|
|
206
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|