suzi-cli 0.1.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.
- package/dist/commands/agents.d.ts +3 -0
- package/dist/commands/agents.d.ts.map +1 -0
- package/dist/commands/agents.js +274 -0
- package/dist/commands/agents.js.map +1 -0
- package/dist/commands/deploy.d.ts +3 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +149 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/import.d.ts +3 -0
- package/dist/commands/import.d.ts.map +1 -0
- package/dist/commands/import.js +70 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/list-tools.d.ts +3 -0
- package/dist/commands/list-tools.d.ts.map +1 -0
- package/dist/commands/list-tools.js +163 -0
- package/dist/commands/list-tools.js.map +1 -0
- package/dist/commands/login.d.ts +13 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +311 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/portfolio.d.ts +3 -0
- package/dist/commands/portfolio.d.ts.map +1 -0
- package/dist/commands/portfolio.js +170 -0
- package/dist/commands/portfolio.js.map +1 -0
- package/dist/commands/preferences.d.ts +3 -0
- package/dist/commands/preferences.d.ts.map +1 -0
- package/dist/commands/preferences.js +121 -0
- package/dist/commands/preferences.js.map +1 -0
- package/dist/commands/prompt-suggestions.d.ts +3 -0
- package/dist/commands/prompt-suggestions.d.ts.map +1 -0
- package/dist/commands/prompt-suggestions.js +148 -0
- package/dist/commands/prompt-suggestions.js.map +1 -0
- package/dist/commands/skills.d.ts +3 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +571 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/subagents.d.ts +3 -0
- package/dist/commands/subagents.d.ts.map +1 -0
- package/dist/commands/subagents.js +194 -0
- package/dist/commands/subagents.js.map +1 -0
- package/dist/commands/transactions.d.ts +3 -0
- package/dist/commands/transactions.d.ts.map +1 -0
- package/dist/commands/transactions.js +153 -0
- package/dist/commands/transactions.js.map +1 -0
- package/dist/commands/wallet.d.ts +3 -0
- package/dist/commands/wallet.d.ts.map +1 -0
- package/dist/commands/wallet.js +183 -0
- package/dist/commands/wallet.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +95 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api.d.ts +12 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +82 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/config.d.ts +42 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +85 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/utils/ui.d.ts +26 -0
- package/dist/utils/ui.d.ts.map +1 -0
- package/dist/utils/ui.js +111 -0
- package/dist/utils/ui.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmT5D"}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerAgentsCommand = registerAgentsCommand;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const ora_1 = __importDefault(require("ora"));
|
|
9
|
+
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
10
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
11
|
+
const api_1 = require("../lib/api");
|
|
12
|
+
const ui_1 = require("../utils/ui");
|
|
13
|
+
function registerAgentsCommand(program) {
|
|
14
|
+
const agents = program
|
|
15
|
+
.command('agents')
|
|
16
|
+
.description('List and manage your agents');
|
|
17
|
+
// suzi agents -- list all agents
|
|
18
|
+
agents
|
|
19
|
+
.action(async () => {
|
|
20
|
+
if (!(0, ui_1.requireAuth)())
|
|
21
|
+
return;
|
|
22
|
+
const spinner = (0, ora_1.default)('Loading agents...').start();
|
|
23
|
+
const resp = await (0, api_1.get)('/api/agent?limit=50');
|
|
24
|
+
if (!resp.ok) {
|
|
25
|
+
spinner.fail();
|
|
26
|
+
(0, ui_1.error)(`Failed to load agents: ${resp.data?.error || 'Unknown error'}`);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
spinner.stop();
|
|
30
|
+
const agentList = resp.data.agents || [];
|
|
31
|
+
if (agentList.length === 0) {
|
|
32
|
+
(0, ui_1.header)('Agents');
|
|
33
|
+
console.log();
|
|
34
|
+
(0, ui_1.info)('No agents found. Create one with `suzi deploy <file>`.');
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
(0, ui_1.header)(`Agents (${agentList.length})`);
|
|
38
|
+
console.log();
|
|
39
|
+
const table = new cli_table3_1.default({
|
|
40
|
+
head: [
|
|
41
|
+
chalk_1.default.gray('#'),
|
|
42
|
+
chalk_1.default.gray('Name'),
|
|
43
|
+
chalk_1.default.gray('Status'),
|
|
44
|
+
chalk_1.default.gray('ID'),
|
|
45
|
+
chalk_1.default.gray('Created'),
|
|
46
|
+
],
|
|
47
|
+
style: { head: [], border: ['gray'] },
|
|
48
|
+
});
|
|
49
|
+
for (let i = 0; i < agentList.length; i++) {
|
|
50
|
+
const agent = agentList[i];
|
|
51
|
+
table.push([
|
|
52
|
+
ui_1.colors.muted(String(i + 1)),
|
|
53
|
+
chalk_1.default.bold(agent.title || 'Untitled'),
|
|
54
|
+
(0, ui_1.statusBadge)(agent.status),
|
|
55
|
+
agent.id,
|
|
56
|
+
ui_1.colors.muted(new Date(agent.createdAt).toLocaleDateString()),
|
|
57
|
+
]);
|
|
58
|
+
}
|
|
59
|
+
console.log(table.toString());
|
|
60
|
+
});
|
|
61
|
+
// suzi agents view <id>
|
|
62
|
+
agents
|
|
63
|
+
.command('view <id>')
|
|
64
|
+
.description('View agent details')
|
|
65
|
+
.action(async (id) => {
|
|
66
|
+
if (!(0, ui_1.requireAuth)())
|
|
67
|
+
return;
|
|
68
|
+
const spinner = (0, ora_1.default)('Loading agent...').start();
|
|
69
|
+
const resp = await (0, api_1.get)(`/api/agent/${id}`);
|
|
70
|
+
if (!resp.ok) {
|
|
71
|
+
spinner.fail();
|
|
72
|
+
(0, ui_1.error)(`Agent not found: ${resp.data?.error || 'Unknown error'}`);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
spinner.stop();
|
|
76
|
+
const agent = resp.data;
|
|
77
|
+
(0, ui_1.header)(agent.title || 'Untitled Agent');
|
|
78
|
+
console.log();
|
|
79
|
+
(0, ui_1.label)('ID', agent.id);
|
|
80
|
+
(0, ui_1.label)('Status', (0, ui_1.statusBadge)(agent.status));
|
|
81
|
+
(0, ui_1.label)('Description', agent.description || ui_1.colors.muted('None'));
|
|
82
|
+
(0, ui_1.label)('Created', new Date(agent.createdAt).toLocaleString());
|
|
83
|
+
(0, ui_1.label)('Updated', new Date(agent.updatedAt).toLocaleString());
|
|
84
|
+
// Show spec info
|
|
85
|
+
if (agent.spec) {
|
|
86
|
+
const spec = typeof agent.spec === 'string' ? JSON.parse(agent.spec) : agent.spec;
|
|
87
|
+
console.log();
|
|
88
|
+
console.log(ui_1.colors.muted(' Agent Spec:'));
|
|
89
|
+
if (spec.meta) {
|
|
90
|
+
(0, ui_1.label)(' Version', spec.meta.version || 'N/A');
|
|
91
|
+
}
|
|
92
|
+
if (spec.triggers) {
|
|
93
|
+
const triggerNames = Object.keys(spec.triggers);
|
|
94
|
+
(0, ui_1.label)(' Triggers', triggerNames.join(', ') || 'None');
|
|
95
|
+
}
|
|
96
|
+
if (spec.resources) {
|
|
97
|
+
const resourceTypes = Object.entries(spec.resources)
|
|
98
|
+
.map(([key, val]) => `${key}(${val.type || val})`)
|
|
99
|
+
.join(', ');
|
|
100
|
+
(0, ui_1.label)(' Resources', resourceTypes || 'None');
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// Show resources
|
|
104
|
+
const resResp = await (0, api_1.get)(`/api/agent/${id}/resources`);
|
|
105
|
+
if (resResp.ok && resResp.data?.resources?.length > 0) {
|
|
106
|
+
console.log();
|
|
107
|
+
console.log(ui_1.colors.muted(' Wallet Resources:'));
|
|
108
|
+
for (const res of resResp.data.resources) {
|
|
109
|
+
(0, ui_1.label)(` ${res.walletType.toUpperCase()}`, (0, ui_1.truncateAddress)(res.address));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
console.log();
|
|
113
|
+
(0, ui_1.divider)();
|
|
114
|
+
});
|
|
115
|
+
// suzi agents activate <id>
|
|
116
|
+
agents
|
|
117
|
+
.command('activate <id>')
|
|
118
|
+
.description('Activate an agent')
|
|
119
|
+
.action(async (id) => {
|
|
120
|
+
if (!(0, ui_1.requireAuth)())
|
|
121
|
+
return;
|
|
122
|
+
const spinner = (0, ora_1.default)('Activating agent...').start();
|
|
123
|
+
const resp = await (0, api_1.post)(`/api/agent/${id}/activate`);
|
|
124
|
+
if (!resp.ok) {
|
|
125
|
+
spinner.fail();
|
|
126
|
+
(0, ui_1.error)(`Failed to activate: ${resp.data?.error || resp.data?.message || 'Unknown error'}`);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
spinner.succeed();
|
|
130
|
+
(0, ui_1.success)(`Agent ${id.slice(0, 8)}... activated.`);
|
|
131
|
+
});
|
|
132
|
+
// suzi agents deactivate <id>
|
|
133
|
+
agents
|
|
134
|
+
.command('deactivate <id>')
|
|
135
|
+
.description('Deactivate an agent')
|
|
136
|
+
.action(async (id) => {
|
|
137
|
+
if (!(0, ui_1.requireAuth)())
|
|
138
|
+
return;
|
|
139
|
+
const spinner = (0, ora_1.default)('Deactivating agent...').start();
|
|
140
|
+
const resp = await (0, api_1.post)(`/api/agent/${id}/deactivate`);
|
|
141
|
+
if (!resp.ok) {
|
|
142
|
+
spinner.fail();
|
|
143
|
+
(0, ui_1.error)(`Failed to deactivate: ${resp.data?.error || resp.data?.message || 'Unknown error'}`);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
spinner.succeed();
|
|
147
|
+
(0, ui_1.success)(`Agent ${id.slice(0, 8)}... deactivated.`);
|
|
148
|
+
});
|
|
149
|
+
// suzi agents execute <id> [trigger]
|
|
150
|
+
agents
|
|
151
|
+
.command('execute <id> [trigger]')
|
|
152
|
+
.description('Manually execute an agent trigger')
|
|
153
|
+
.action(async (id, trigger) => {
|
|
154
|
+
if (!(0, ui_1.requireAuth)())
|
|
155
|
+
return;
|
|
156
|
+
// If no trigger specified, fetch agent to find manual triggers
|
|
157
|
+
let triggerName = trigger;
|
|
158
|
+
if (!triggerName) {
|
|
159
|
+
const agentResp = await (0, api_1.get)(`/api/agent/${id}`);
|
|
160
|
+
if (agentResp.ok && agentResp.data?.spec) {
|
|
161
|
+
const spec = typeof agentResp.data.spec === 'string'
|
|
162
|
+
? JSON.parse(agentResp.data.spec)
|
|
163
|
+
: agentResp.data.spec;
|
|
164
|
+
const triggers = Object.keys(spec.triggers || {});
|
|
165
|
+
if (triggers.length === 1) {
|
|
166
|
+
triggerName = triggers[0];
|
|
167
|
+
}
|
|
168
|
+
else if (triggers.length > 1) {
|
|
169
|
+
const answers = await inquirer_1.default.prompt([
|
|
170
|
+
{
|
|
171
|
+
type: 'list',
|
|
172
|
+
name: 'trigger',
|
|
173
|
+
message: 'Select a trigger to execute:',
|
|
174
|
+
choices: triggers,
|
|
175
|
+
},
|
|
176
|
+
]);
|
|
177
|
+
triggerName = answers.trigger;
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
(0, ui_1.error)('No triggers found on this agent.');
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
(0, ui_1.error)('Could not fetch agent spec. Specify trigger name explicitly.');
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
const spinner = (0, ora_1.default)(`Executing trigger "${triggerName}"...`).start();
|
|
190
|
+
const resp = await (0, api_1.post)(`/api/agent/${id}/execute`, {
|
|
191
|
+
triggerName: triggerName,
|
|
192
|
+
});
|
|
193
|
+
if (!resp.ok) {
|
|
194
|
+
spinner.fail();
|
|
195
|
+
(0, ui_1.error)(`Execution failed: ${resp.data?.error || resp.data?.message || 'Unknown error'}`);
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
spinner.succeed();
|
|
199
|
+
(0, ui_1.success)(`Execution started. Run ID: ${resp.data.executionId || 'N/A'}`);
|
|
200
|
+
});
|
|
201
|
+
// suzi agents logs <id>
|
|
202
|
+
agents
|
|
203
|
+
.command('logs <id>')
|
|
204
|
+
.description('View agent logs')
|
|
205
|
+
.option('-n, --limit <n>', 'Number of log entries', '20')
|
|
206
|
+
.option('--level <level>', 'Filter by level (info|warn|error|debug)')
|
|
207
|
+
.action(async (id, opts) => {
|
|
208
|
+
if (!(0, ui_1.requireAuth)())
|
|
209
|
+
return;
|
|
210
|
+
const spinner = (0, ora_1.default)('Loading logs...').start();
|
|
211
|
+
let path = `/api/agent/${id}/logs?limit=${opts.limit}`;
|
|
212
|
+
if (opts.level)
|
|
213
|
+
path += `&level=${opts.level}`;
|
|
214
|
+
const resp = await (0, api_1.get)(path);
|
|
215
|
+
if (!resp.ok) {
|
|
216
|
+
spinner.fail();
|
|
217
|
+
(0, ui_1.error)(`Failed to load logs: ${resp.data?.error || 'Unknown error'}`);
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
spinner.stop();
|
|
221
|
+
const logs = resp.data.logs || [];
|
|
222
|
+
if (logs.length === 0) {
|
|
223
|
+
(0, ui_1.info)('No logs found.');
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
(0, ui_1.header)(`Agent Logs (${logs.length})`);
|
|
227
|
+
console.log();
|
|
228
|
+
for (const log of logs) {
|
|
229
|
+
const levelColor = log.level === 'error'
|
|
230
|
+
? chalk_1.default.red
|
|
231
|
+
: log.level === 'warn'
|
|
232
|
+
? chalk_1.default.yellow
|
|
233
|
+
: log.level === 'debug'
|
|
234
|
+
? chalk_1.default.gray
|
|
235
|
+
: chalk_1.default.white;
|
|
236
|
+
const ts = new Date(log.createdAt).toLocaleTimeString();
|
|
237
|
+
console.log(` ${ui_1.colors.muted(ts)} ${levelColor(`[${log.level}]`)} ${log.log}`);
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
// suzi agents delete <id>
|
|
241
|
+
agents
|
|
242
|
+
.command('delete <id>')
|
|
243
|
+
.description('Delete an agent')
|
|
244
|
+
.option('-f, --force', 'Skip confirmation')
|
|
245
|
+
.action(async (id, opts) => {
|
|
246
|
+
if (!(0, ui_1.requireAuth)())
|
|
247
|
+
return;
|
|
248
|
+
if (!opts.force) {
|
|
249
|
+
const answers = await inquirer_1.default.prompt([
|
|
250
|
+
{
|
|
251
|
+
type: 'confirm',
|
|
252
|
+
name: 'confirm',
|
|
253
|
+
message: `Are you sure you want to delete agent ${id.slice(0, 8)}...?`,
|
|
254
|
+
default: false,
|
|
255
|
+
},
|
|
256
|
+
]);
|
|
257
|
+
if (!answers.confirm) {
|
|
258
|
+
(0, ui_1.info)('Cancelled.');
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
const spinner = (0, ora_1.default)('Deleting agent...').start();
|
|
263
|
+
const { del } = require('../lib/api');
|
|
264
|
+
const resp = await del(`/api/agent/${id}`);
|
|
265
|
+
if (!resp.ok) {
|
|
266
|
+
spinner.fail();
|
|
267
|
+
(0, ui_1.error)(`Failed to delete: ${resp.data?.error || 'Unknown error'}`);
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
spinner.succeed();
|
|
271
|
+
(0, ui_1.success)(`Agent ${id.slice(0, 8)}... deleted.`);
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyJ5D"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerDeployCommand = registerDeployCommand;
|
|
7
|
+
const ora_1 = __importDefault(require("ora"));
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
11
|
+
const api_1 = require("../lib/api");
|
|
12
|
+
const ui_1 = require("../utils/ui");
|
|
13
|
+
function registerDeployCommand(program) {
|
|
14
|
+
program
|
|
15
|
+
.command('deploy [file]')
|
|
16
|
+
.description('Deploy an agent from a TypeScript file')
|
|
17
|
+
.option('-t, --title <title>', 'Agent title')
|
|
18
|
+
.option('-d, --description <desc>', 'Agent description')
|
|
19
|
+
.option('--update <agentId>', 'Update an existing agent instead of creating new')
|
|
20
|
+
.option('--activate', 'Activate the agent after deploying')
|
|
21
|
+
.action(async (file, opts) => {
|
|
22
|
+
if (!(0, ui_1.requireAuth)())
|
|
23
|
+
return;
|
|
24
|
+
// Find the agent file
|
|
25
|
+
let filePath = file;
|
|
26
|
+
if (!filePath) {
|
|
27
|
+
// Look for common agent file patterns in current directory
|
|
28
|
+
const candidates = [
|
|
29
|
+
'agent.ts',
|
|
30
|
+
'src/agent.ts',
|
|
31
|
+
'index.ts',
|
|
32
|
+
'src/index.ts',
|
|
33
|
+
];
|
|
34
|
+
for (const candidate of candidates) {
|
|
35
|
+
const resolved = path_1.default.resolve(process.cwd(), candidate);
|
|
36
|
+
if (fs_1.default.existsSync(resolved)) {
|
|
37
|
+
filePath = resolved;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (!filePath) {
|
|
42
|
+
(0, ui_1.error)('No agent file found. Specify a file path: `suzi deploy ./agent.ts`');
|
|
43
|
+
(0, ui_1.info)('Looked for: ' + candidates.join(', '));
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const resolvedPath = path_1.default.resolve(process.cwd(), filePath);
|
|
48
|
+
if (!fs_1.default.existsSync(resolvedPath)) {
|
|
49
|
+
(0, ui_1.error)(`File not found: ${resolvedPath}`);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const source = fs_1.default.readFileSync(resolvedPath, 'utf-8');
|
|
53
|
+
if (!source.includes('defineAgent')) {
|
|
54
|
+
(0, ui_1.error)('File does not appear to be a Suzi agent (missing defineAgent).');
|
|
55
|
+
(0, ui_1.info)('Agent files must export `defineAgent({...})`.');
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
(0, ui_1.header)('Deploy Agent');
|
|
59
|
+
console.log();
|
|
60
|
+
(0, ui_1.label)('File', path_1.default.relative(process.cwd(), resolvedPath));
|
|
61
|
+
(0, ui_1.label)('Size', `${source.length} bytes`);
|
|
62
|
+
console.log();
|
|
63
|
+
// Determine title
|
|
64
|
+
let title = opts?.title;
|
|
65
|
+
if (!title && !opts?.update) {
|
|
66
|
+
// Try to extract from source
|
|
67
|
+
const metaMatch = source.match(/name:\s*['"]([^'"]+)['"]/);
|
|
68
|
+
if (metaMatch) {
|
|
69
|
+
title = metaMatch[1];
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
const answers = await inquirer_1.default.prompt([
|
|
73
|
+
{
|
|
74
|
+
type: 'input',
|
|
75
|
+
name: 'title',
|
|
76
|
+
message: 'Agent title:',
|
|
77
|
+
default: path_1.default.basename(resolvedPath, path_1.default.extname(resolvedPath)),
|
|
78
|
+
},
|
|
79
|
+
]);
|
|
80
|
+
title = answers.title;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const spinner = (0, ora_1.default)('Deploying agent...').start();
|
|
84
|
+
try {
|
|
85
|
+
let resp;
|
|
86
|
+
if (opts?.update) {
|
|
87
|
+
// Update existing agent
|
|
88
|
+
spinner.text = 'Updating agent...';
|
|
89
|
+
resp = await (0, api_1.put)(`/api/agent/${opts.update}`, {
|
|
90
|
+
code: source,
|
|
91
|
+
...(title ? { title } : {}),
|
|
92
|
+
...(opts?.description ? { description: opts.description } : {}),
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
// Create new agent
|
|
97
|
+
spinner.text = 'Creating agent...';
|
|
98
|
+
resp = await (0, api_1.post)('/api/agent', {
|
|
99
|
+
code: source,
|
|
100
|
+
title: title || 'CLI Agent',
|
|
101
|
+
...(opts?.description ? { description: opts.description } : {}),
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
if (!resp.ok) {
|
|
105
|
+
spinner.fail();
|
|
106
|
+
(0, ui_1.error)(`Deploy failed: ${resp.data?.error || resp.data?.message || 'Unknown error'}`);
|
|
107
|
+
if (resp.data?.details) {
|
|
108
|
+
console.log(ui_1.colors.muted(` ${resp.data.details}`));
|
|
109
|
+
}
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
const agent = resp.data;
|
|
113
|
+
spinner.succeed(opts?.update ? 'Agent updated!' : 'Agent created!');
|
|
114
|
+
console.log();
|
|
115
|
+
(0, ui_1.label)('Agent ID', agent.id);
|
|
116
|
+
(0, ui_1.label)('Title', agent.title || 'Untitled');
|
|
117
|
+
(0, ui_1.label)('Status', (0, ui_1.statusBadge)(agent.status));
|
|
118
|
+
if (agent.spec) {
|
|
119
|
+
const spec = typeof agent.spec === 'string' ? JSON.parse(agent.spec) : agent.spec;
|
|
120
|
+
if (spec.triggers) {
|
|
121
|
+
(0, ui_1.label)('Triggers', Object.keys(spec.triggers).join(', '));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// Activate if requested
|
|
125
|
+
if (opts?.activate) {
|
|
126
|
+
console.log();
|
|
127
|
+
const activateSpinner = (0, ora_1.default)('Activating agent...').start();
|
|
128
|
+
const activateResp = await (0, api_1.post)(`/api/agent/${agent.id}/activate`);
|
|
129
|
+
if (activateResp.ok) {
|
|
130
|
+
activateSpinner.succeed('Agent activated!');
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
activateSpinner.fail();
|
|
134
|
+
(0, ui_1.error)(`Activation failed: ${activateResp.data?.error || activateResp.data?.message || 'Unknown error'}`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
console.log();
|
|
138
|
+
(0, ui_1.divider)();
|
|
139
|
+
if (agent.status === 'draft') {
|
|
140
|
+
(0, ui_1.info)('Activate with: `suzi agents activate ' + agent.id + '`');
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
spinner.fail();
|
|
145
|
+
(0, ui_1.error)(`Deploy error: ${err.message}`);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwE5D"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerImportCommand = registerImportCommand;
|
|
7
|
+
const ora_1 = __importDefault(require("ora"));
|
|
8
|
+
const api_1 = require("../lib/api");
|
|
9
|
+
const ui_1 = require("../utils/ui");
|
|
10
|
+
function registerImportCommand(program) {
|
|
11
|
+
program
|
|
12
|
+
.command('import <slug>')
|
|
13
|
+
.description('Import (clone) a shared agent by its share slug')
|
|
14
|
+
.action(async (slug) => {
|
|
15
|
+
if (!(0, ui_1.requireAuth)())
|
|
16
|
+
return;
|
|
17
|
+
const spinner = (0, ora_1.default)('Fetching shared agent...').start();
|
|
18
|
+
// 1. Get the share preview
|
|
19
|
+
const previewResp = await (0, api_1.get)(`/api/share/${slug}`);
|
|
20
|
+
if (!previewResp.ok) {
|
|
21
|
+
spinner.fail();
|
|
22
|
+
if (previewResp.status === 410) {
|
|
23
|
+
(0, ui_1.error)('This share link has expired.');
|
|
24
|
+
}
|
|
25
|
+
else if (previewResp.status === 404) {
|
|
26
|
+
(0, ui_1.error)(`Share "${slug}" not found.`);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
(0, ui_1.error)(`Failed to fetch share: ${previewResp.data?.error || 'Unknown error'}`);
|
|
30
|
+
}
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const snapshot = previewResp.data.snapshot;
|
|
34
|
+
spinner.stop();
|
|
35
|
+
(0, ui_1.header)('Import Agent');
|
|
36
|
+
console.log();
|
|
37
|
+
(0, ui_1.label)('Title', snapshot.title || 'Untitled');
|
|
38
|
+
(0, ui_1.label)('Description', snapshot.description || ui_1.colors.muted('None'));
|
|
39
|
+
(0, ui_1.label)('Version', snapshot.version || '1');
|
|
40
|
+
(0, ui_1.label)('Clones', String(snapshot.cloneCount || 0));
|
|
41
|
+
if (snapshot.requiredResources) {
|
|
42
|
+
(0, ui_1.label)('Requires', JSON.stringify(snapshot.requiredResources));
|
|
43
|
+
}
|
|
44
|
+
if (snapshot.isExpired) {
|
|
45
|
+
console.log();
|
|
46
|
+
(0, ui_1.error)('This share has expired and cannot be cloned.');
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
console.log();
|
|
50
|
+
// 2. Clone it
|
|
51
|
+
const cloneSpinner = (0, ora_1.default)('Cloning agent...').start();
|
|
52
|
+
const cloneResp = await (0, api_1.post)(`/api/share/${slug}/clone`);
|
|
53
|
+
if (!cloneResp.ok) {
|
|
54
|
+
cloneSpinner.fail();
|
|
55
|
+
(0, ui_1.error)(`Clone failed: ${cloneResp.data?.error || cloneResp.data?.message || 'Unknown error'}`);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
cloneSpinner.succeed('Agent imported!');
|
|
59
|
+
const agent = cloneResp.data.agent;
|
|
60
|
+
console.log();
|
|
61
|
+
(0, ui_1.label)('Agent ID', agent.id);
|
|
62
|
+
(0, ui_1.label)('Title', agent.title || 'Untitled');
|
|
63
|
+
(0, ui_1.label)('Status', (0, ui_1.statusBadge)(agent.status));
|
|
64
|
+
console.log();
|
|
65
|
+
(0, ui_1.divider)();
|
|
66
|
+
(0, ui_1.info)(`Activate with: suzi agents activate ${agent.id}`);
|
|
67
|
+
(0, ui_1.info)(`View source with: suzi agents view ${agent.id}`);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-tools.d.ts","sourceRoot":"","sources":["../../src/commands/list-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8GpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmE/D"}
|