@mind2flow/cli 0.2.4 → 0.4.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/README.md CHANGED
@@ -13,8 +13,26 @@ m2f tools push ./tool.py --description "What it does"
13
13
  m2f tasks create --agent-id <id> --name daily --cron "0 8 * * *" --message "Go!"
14
14
  m2f knowledge query "What changed in our prices this year?"
15
15
  m2f mcp setup --mcp-key mcp_xxx # wire Mind2Flow into Cursor
16
+
17
+ # Analyse your agents (new in 0.3.0)
18
+ m2f agents summary <agentId> --bucket week # exact figures, from the database
19
+ m2f agents search <agentId> "drill,paint" # customers' messages by default
20
+ m2f agents conversations <agentId> --full # whole threads
21
+ m2f agents analyze <agentId> "Did it end in a sale?" --field outcome:"bought, quoted or only asked"
22
+ m2f agents integrations <agentId> # connected apps, and whether they work
23
+ m2f agents channels <agentId> # WhatsApp checked live, endpoint, shared link
24
+ m2f org summary --bucket month # TENANT/ADMIN only
25
+
26
+ # New in 0.4.0
27
+ m2f agents actions <agentId> # what its apps actually answered
28
+ m2f agents test <agentId> --cases cases.json --email me@x.com --wait # runs FOR REAL
29
+ m2f artifacts report <agentId> --from 2026-08-01 --to 2026-08-31 # operation report
30
+ m2f artifacts list
31
+ m2f artifacts share <id> # public link, customers hidden
16
32
  ```
17
33
 
34
+ `analyze`, `artifacts report` and `agents test` run an LLM on your own key and cost tokens; `agents test` also runs the agent's connected apps for real. The others only read.
35
+
18
36
  Configuration lives in `~/.m2f/config.json`; `M2F_API_KEY` / `M2F_BASE_URL`
19
37
  environment variables override it.
20
38
 
@@ -150,5 +150,297 @@ function registerAgentCommands(program) {
150
150
  (0, output_1.fail)(error);
151
151
  }
152
152
  });
153
+ // ── Analysis and diagnostics ──────────────────────────────────────────────
154
+ //
155
+ // Every one of these prints `notes` when the API returns any. That is
156
+ // deliberate: the caveats are what keep a number honest, and a CLI that hides
157
+ // them is a CLI that helps you quote a wrong figure.
158
+ const printNotes = (notes) => {
159
+ if (!notes?.length)
160
+ return;
161
+ console.log('\nNotes:');
162
+ for (const n of notes)
163
+ console.log(` - ${n}`);
164
+ };
165
+ agents
166
+ .command('summary <agentId>')
167
+ .description('Aggregated operational figures for an agent (exact, from the database)')
168
+ .option('--from <date>', 'Start of the range, ISO 8601 (default: 30 days back)')
169
+ .option('--to <date>', 'End of the range, ISO 8601 (default: now)')
170
+ .option('--bucket <bucket>', 'Time series granularity: day | week | month', 'day')
171
+ .option('--json', 'Output raw JSON')
172
+ .action(async (agentId, opts) => {
173
+ try {
174
+ const s = await (0, config_1.getClient)().agents.summary(agentId, {
175
+ from: opts.from,
176
+ to: opts.to,
177
+ bucket: opts.bucket,
178
+ });
179
+ if (opts.json)
180
+ return (0, output_1.printJson)(s);
181
+ console.log(`Range: ${s.range.from} to ${s.range.to} (${s.range.days} days)\n`);
182
+ (0, output_1.printTable)([{
183
+ messages: s.totals.messages,
184
+ incoming: s.totals.incoming,
185
+ outgoing: s.totals.outgoing,
186
+ people: s.people.distinct,
187
+ errors: s.totals.errors,
188
+ 'p50 reply': s.responseTimeMs ? `${s.responseTimeMs.p50}ms` : '-',
189
+ }], ['messages', 'incoming', 'outgoing', 'people', 'errors', 'p50 reply']);
190
+ console.log(`\nPer ${s.bucket}:`);
191
+ (0, output_1.printTable)(s.series.map((b) => ({
192
+ [s.bucket]: b.bucket,
193
+ incoming: b.incoming,
194
+ outgoing: b.outgoing,
195
+ people: b.people,
196
+ 'p50 reply': b.responseMs ? `${b.responseMs.p50}ms` : '-',
197
+ })), [s.bucket, 'incoming', 'outgoing', 'people', 'p50 reply']);
198
+ printNotes(s.notes);
199
+ }
200
+ catch (error) {
201
+ (0, output_1.fail)(error);
202
+ }
203
+ });
204
+ agents
205
+ .command('conversations <agentId>')
206
+ .description('Read whole conversations, paged by conversation')
207
+ .option('--from <date>', 'Start of the range, ISO 8601')
208
+ .option('--to <date>', 'End of the range, ISO 8601')
209
+ .option('--limit <n>', 'Conversations per page (default 10, max 50)', (v) => parseInt(v, 10))
210
+ .option('--offset <n>', 'Conversations to skip', (v) => parseInt(v, 10))
211
+ .option('--session-ids <ids>', 'Comma-separated session ids to read instead of the newest')
212
+ .option('--contact <nameOrPhone>', 'A specific customer, by name or phone')
213
+ .option('--full', 'Print every message, not just a summary line per thread')
214
+ .option('--json', 'Output raw JSON')
215
+ .action(async (agentId, opts) => {
216
+ try {
217
+ const r = await (0, config_1.getClient)().agents.conversations(agentId, {
218
+ from: opts.from,
219
+ to: opts.to,
220
+ limit: opts.limit,
221
+ offset: opts.offset,
222
+ sessionIds: opts.sessionIds ? opts.sessionIds.split(',').map((x) => x.trim()) : undefined,
223
+ contact: opts.contact,
224
+ });
225
+ if (opts.json)
226
+ return (0, output_1.printJson)(r);
227
+ console.log(`${r.conversations.length} of ${r.pagination.total} conversations\n`);
228
+ if (opts.full) {
229
+ for (const c of r.conversations) {
230
+ console.log(`── ${c.contact} · ${c.messageCount} messages${c.truncated ? ` (${c.omittedMessages} omitted from the middle)` : ''}`);
231
+ for (const m of c.messages)
232
+ console.log(` ${m.role === 'customer' ? '>' : '<'} ${m.content}`);
233
+ console.log('');
234
+ }
235
+ }
236
+ else {
237
+ (0, output_1.printTable)(r.conversations.map((c) => ({
238
+ contact: c.contact,
239
+ messages: c.messageCount,
240
+ last: c.lastAt,
241
+ cut: c.truncated ? `${c.omittedMessages} omitted` : '',
242
+ })), ['contact', 'messages', 'last', 'cut']);
243
+ }
244
+ printNotes(r.notes);
245
+ }
246
+ catch (error) {
247
+ (0, output_1.fail)(error);
248
+ }
249
+ });
250
+ agents
251
+ .command('search <agentId> <terms>')
252
+ .description('Find which conversations mention given terms (comma-separated)')
253
+ .option('--from <date>', 'Start of the range, ISO 8601')
254
+ .option('--to <date>', 'End of the range, ISO 8601')
255
+ .option('--limit <n>', 'Maximum conversations listed', (v) => parseInt(v, 10))
256
+ .option('--role <role>', 'Whose messages to search: customer (default) | agent | any', 'customer')
257
+ .option('--json', 'Output raw JSON')
258
+ .action(async (agentId, terms, opts) => {
259
+ try {
260
+ const r = await (0, config_1.getClient)().agents.searchConversations(agentId, {
261
+ terms: terms.split(',').map((t) => t.trim()).filter(Boolean),
262
+ from: opts.from,
263
+ to: opts.to,
264
+ limit: opts.limit,
265
+ role: opts.role,
266
+ });
267
+ if (opts.json)
268
+ return (0, output_1.printJson)(r);
269
+ (0, output_1.printTable)(r.terms.map((t) => ({ term: t.term, conversations: t.conversations, messages: t.messages })), ['term', 'conversations', 'messages']);
270
+ console.log(`\n${r.matches.length} distinct conversations matched at least one term (searched: ${r.role} messages).`);
271
+ printNotes(r.notes);
272
+ }
273
+ catch (error) {
274
+ (0, output_1.fail)(error);
275
+ }
276
+ });
277
+ agents
278
+ .command('analyze <agentId> <question>')
279
+ .description('Ask a question of an agent\'s conversations (COSTS TOKENS on your own LLM key)')
280
+ .requiredOption('--field <name:description...>', 'A value to extract, as name:description. Repeatable, up to 8.')
281
+ .option('--from <date>', 'Start of the range, ISO 8601')
282
+ .option('--to <date>', 'End of the range, ISO 8601')
283
+ .option('--max <n>', 'Ceiling on conversations read (default 40, max 200)', (v) => parseInt(v, 10))
284
+ .option('--json', 'Output raw JSON')
285
+ .action(async (agentId, question, opts) => {
286
+ try {
287
+ const fields = opts.field.map((f) => {
288
+ const i = f.indexOf(':');
289
+ if (i < 1)
290
+ throw new Error(`--field must be name:description, got "${f}"`);
291
+ return { name: f.slice(0, i).trim(), description: f.slice(i + 1).trim() };
292
+ });
293
+ const r = await (0, config_1.getClient)().agents.analyzeConversations(agentId, {
294
+ question, fields, from: opts.from, to: opts.to, maxConversations: opts.max,
295
+ });
296
+ if (opts.json)
297
+ return (0, output_1.printJson)(r);
298
+ console.log(`Analysed ${r.analyzed} of ${r.totalInRange} conversations.\n`);
299
+ for (const field of r.fields) {
300
+ console.log(`${field}:`);
301
+ (0, output_1.printTable)((r.aggregates[field] ?? []).map((a) => ({ value: a.value, conversations: a.conversations })), ['value', 'conversations']);
302
+ console.log('');
303
+ }
304
+ printNotes(r.notes);
305
+ }
306
+ catch (error) {
307
+ (0, output_1.fail)(error);
308
+ }
309
+ });
310
+ agents
311
+ .command('integrations <agentId>')
312
+ .description('Connected apps, and whether the wiring actually works')
313
+ .option('--json', 'Output raw JSON')
314
+ .action(async (agentId, opts) => {
315
+ try {
316
+ const r = await (0, config_1.getClient)().agents.integrations(agentId);
317
+ if (opts.json)
318
+ return (0, output_1.printJson)(r);
319
+ (0, output_1.printTable)(r.perToolkit.map((t) => ({
320
+ app: t.toolkit,
321
+ status: t.connectionStatus ?? 'not checked',
322
+ ok: t.ok === null ? '?' : t.ok ? 'yes' : 'NO',
323
+ })), ['app', 'status', 'ok']);
324
+ console.log(`\n${r.selectedActions} actions selected.`);
325
+ if (r.issues.length) {
326
+ console.log('\nIssues:');
327
+ for (const i of r.issues)
328
+ console.log(` - ${i}`);
329
+ }
330
+ printNotes(r.notes);
331
+ }
332
+ catch (error) {
333
+ (0, output_1.fail)(error);
334
+ }
335
+ });
336
+ agents
337
+ .command('channels <agentId>')
338
+ .description('How the agent can be reached, and whether each way works')
339
+ .option('--json', 'Output raw JSON')
340
+ .action(async (agentId, opts) => {
341
+ try {
342
+ const r = await (0, config_1.getClient)().agents.channels(agentId);
343
+ if (opts.json)
344
+ return (0, output_1.printJson)(r);
345
+ (0, output_1.printTable)([
346
+ { channel: 'status', detail: r.status },
347
+ { channel: 'input', detail: `${r.input.type ?? '-'}${r.input.endpointUrl ? ' (endpoint set)' : ''}` },
348
+ { channel: 'output', detail: r.output.type ?? '-' },
349
+ {
350
+ channel: 'whatsapp',
351
+ detail: r.whatsapp.assigned
352
+ ? `${r.whatsapp.deviceName ?? ''} live=${r.whatsapp.liveState ?? `not checked (${r.whatsapp.liveCheck})`} last inbound=${r.whatsapp.lastInboundAt ?? 'never'}`
353
+ : 'not assigned',
354
+ },
355
+ {
356
+ channel: 'shared link',
357
+ detail: r.sharedLink.exists
358
+ ? `active=${r.sharedLink.isActive} expired=${r.sharedLink.expired}`
359
+ : 'none',
360
+ },
361
+ ], ['channel', 'detail']);
362
+ if (r.issues.length) {
363
+ console.log('\nIssues:');
364
+ for (const i of r.issues)
365
+ console.log(` - ${i}`);
366
+ }
367
+ printNotes(r.notes);
368
+ }
369
+ catch (error) {
370
+ (0, output_1.fail)(error);
371
+ }
372
+ });
373
+ agents
374
+ .command('actions <agentId>')
375
+ .description("What the agent's app actions actually did: calls, errors and ids, per action")
376
+ .option('--from <date>', 'Start of the range, ISO 8601')
377
+ .option('--to <date>', 'End of the range, ISO 8601')
378
+ .option('--tool <text>', 'Only actions whose name contains this text')
379
+ .option('--json', 'Output raw JSON')
380
+ .action(async (agentId, opts) => {
381
+ try {
382
+ const r = await (0, config_1.getClient)().agents.actions(agentId, { from: opts.from, to: opts.to, tool: opts.tool });
383
+ if (opts.json)
384
+ return (0, output_1.printJson)(r);
385
+ console.log(`${r.agentName}: ${r.totals.calls} calls, ${r.totals.errors} errors, in ${r.totals.messagesWithActions} replies`);
386
+ (0, output_1.printTable)(r.tools.map((t) => ({
387
+ action: t.tool,
388
+ server: t.server,
389
+ calls: t.calls,
390
+ errors: t.errors,
391
+ 'error %': t.errorRate,
392
+ 'top error': (t.topErrors[0]?.error ?? '').slice(0, 50),
393
+ })), ['action', 'server', 'calls', 'errors', 'error %', 'top error']);
394
+ printNotes(r.notes);
395
+ }
396
+ catch (error) {
397
+ (0, output_1.fail)(error);
398
+ }
399
+ });
400
+ agents
401
+ .command('test <agentId>')
402
+ .description('Play test conversations against the agent, FOR REAL (its apps run). Cases from a JSON file')
403
+ .requiredOption('--cases <file>', 'JSON file: [{ "name", "turns": ["..."], "expected" }] (max 15)')
404
+ .option('--name <name>', 'Test identity name ({{name}} in turns)')
405
+ .option('--email <email>', 'Test identity email ({{email}} in turns)')
406
+ .option('--phone <phone>', 'Test identity phone ({{phone}} in turns)')
407
+ .option('--wait', 'Wait for the run to finish and print the results')
408
+ .option('--json', 'Output raw JSON')
409
+ .action(async (agentId, opts) => {
410
+ try {
411
+ const cases = JSON.parse(fs_1.default.readFileSync(opts.cases, 'utf8'));
412
+ const client = (0, config_1.getClient)();
413
+ const started = await client.agents.runTests(agentId, {
414
+ cases: Array.isArray(cases) ? cases : cases.cases,
415
+ identity: { name: opts.name, email: opts.email, phone: opts.phone },
416
+ });
417
+ if (!opts.wait) {
418
+ if (opts.json)
419
+ return (0, output_1.printJson)(started);
420
+ console.log(`Test run started: ${started.cases} cases. Artifact ${started.artifactId}`);
421
+ console.log(`Follow it with: m2f artifacts get ${started.artifactId}`);
422
+ return;
423
+ }
424
+ let artifact = await client.artifacts.get(started.artifactId);
425
+ while (artifact.status === 'running') {
426
+ await new Promise((r) => setTimeout(r, 4000));
427
+ artifact = await client.artifacts.get(started.artifactId);
428
+ }
429
+ if (opts.json)
430
+ return (0, output_1.printJson)(artifact);
431
+ const block = artifact.blocks.find((b) => b.type === 'test_results');
432
+ const results = block && block.type === 'test_results' ? block.cases : [];
433
+ (0, output_1.printTable)(results.map((c) => ({
434
+ verdict: c.verdict,
435
+ case: c.name.slice(0, 40),
436
+ actions: (c.actions ?? []).map((a) => `${a.tool}${a.ok ? '' : ' ✗'}`).join(', ').slice(0, 50),
437
+ reason: (c.reason ?? '').slice(0, 60),
438
+ })), ['verdict', 'case', 'actions', 'reason']);
439
+ console.log(`\nStatus: ${artifact.status}. Full results: m2f artifacts get ${artifact.id}`);
440
+ }
441
+ catch (error) {
442
+ (0, output_1.fail)(error);
443
+ }
444
+ });
153
445
  }
154
446
  //# sourceMappingURL=agents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerArtifactCommands(program: Command): void;
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerArtifactCommands = registerArtifactCommands;
4
+ const config_1 = require("../config");
5
+ const output_1 = require("../output");
6
+ /**
7
+ * Artifacts: reports, test runs and prompt changes as versioned documents.
8
+ * The terminal shows them as text; the full view (charts, print to PDF) is
9
+ * the app, or the public link from `m2f artifacts share`.
10
+ */
11
+ const APP_URL = () => (process.env.M2F_APP_URL || 'https://app.mind2flow.io').replace(/\/$/, '');
12
+ function readPath(root, path) {
13
+ let cur = root;
14
+ for (const part of (path ?? '').replace(/\[(\d+)\]/g, '.$1').split('.').filter(Boolean)) {
15
+ if (cur === null || cur === undefined)
16
+ return undefined;
17
+ cur = cur[part];
18
+ }
19
+ return cur;
20
+ }
21
+ function resolve(a, src) {
22
+ if (!src)
23
+ return undefined;
24
+ const sources = (a.data ?? {}).sources ?? {};
25
+ const s = sources[src.ref];
26
+ return s && s.ok ? readPath(s.payload, src.path) : undefined;
27
+ }
28
+ /** A plain-text rendering, block by block. Charts show as their data. */
29
+ function printArtifact(a) {
30
+ console.log(`${a.title} [${a.kind} · v${a.version} · ${a.status}]\n`);
31
+ for (const b of a.blocks) {
32
+ switch (b.type) {
33
+ case 'heading':
34
+ console.log(`${b.level === 1 ? '#' : '##'} ${b.text}`);
35
+ break;
36
+ case 'text':
37
+ console.log(b.markdown);
38
+ break;
39
+ case 'callout':
40
+ console.log(`[${b.tone}] ${b.text}`);
41
+ break;
42
+ case 'kpis':
43
+ (0, output_1.printTable)([Object.fromEntries(b.items.map((i) => [i.label, String(i.value ?? resolve(a, i.source) ?? '—')]))], b.items.map((i) => i.label));
44
+ break;
45
+ case 'table':
46
+ case 'chart': {
47
+ const rows = (b.rows ?? resolve(a, b.source));
48
+ if (b.title)
49
+ console.log(b.title);
50
+ if (!Array.isArray(rows)) {
51
+ console.log(' (data not available)');
52
+ break;
53
+ }
54
+ const cols = b.type === 'table' ? b.columns.map((c) => c.key) : [b.x, ...b.y];
55
+ (0, output_1.printTable)(rows.slice(0, 40).map((r) => Object.fromEntries(cols.map((c) => [c, String(r[c] ?? '')]))), cols);
56
+ break;
57
+ }
58
+ case 'test_results':
59
+ (0, output_1.printTable)(b.cases.map((c) => ({ verdict: c.verdict, case: c.name.slice(0, 40), reason: (c.reason ?? '').slice(0, 70) })), ['verdict', 'case', 'reason']);
60
+ break;
61
+ case 'excerpt':
62
+ for (const m of b.messages)
63
+ console.log(` ${m.role === 'customer' ? '>' : '<'} ${m.content}`);
64
+ break;
65
+ case 'diff':
66
+ console.log(`${b.label ?? 'Changes'}: ${b.before.length} → ${b.after.length} characters (see --json or the app)`);
67
+ break;
68
+ case 'divider':
69
+ console.log('―'.repeat(40));
70
+ break;
71
+ }
72
+ console.log('');
73
+ }
74
+ }
75
+ function registerArtifactCommands(program) {
76
+ const art = program.command('artifacts').description('Reports, test runs and prompt changes (versioned, shareable)');
77
+ art
78
+ .command('list')
79
+ .description('Latest version of each artifact')
80
+ .option('--agent <agentId>', 'Only artifacts about this agent')
81
+ .option('--kind <kind>', 'report | operation_report | test_run | prompt_change')
82
+ .option('--json', 'Output raw JSON')
83
+ .action(async (opts) => {
84
+ try {
85
+ const list = await (0, config_1.getClient)().artifacts.list({ agentId: opts.agent, kind: opts.kind });
86
+ if (opts.json)
87
+ return (0, output_1.printJson)(list);
88
+ (0, output_1.printTable)(list.map((a) => ({ id: a.id, kind: a.kind, v: a.version, status: a.status, shared: a.shared ? 'yes' : '', title: a.title.slice(0, 50) })), ['id', 'kind', 'v', 'status', 'shared', 'title']);
89
+ }
90
+ catch (error) {
91
+ (0, output_1.fail)(error);
92
+ }
93
+ });
94
+ art
95
+ .command('get <id>')
96
+ .description('Show an artifact as text')
97
+ .option('--json', 'Output raw JSON')
98
+ .action(async (id, opts) => {
99
+ try {
100
+ const a = await (0, config_1.getClient)().artifacts.get(id);
101
+ if (opts.json)
102
+ return (0, output_1.printJson)(a);
103
+ printArtifact(a);
104
+ }
105
+ catch (error) {
106
+ (0, output_1.fail)(error);
107
+ }
108
+ });
109
+ art
110
+ .command('report <agentId>')
111
+ .description("An agent's operation report (default: last calendar month). Runs an LLM on your key")
112
+ .option('--from <date>', 'Start, YYYY-MM-DD')
113
+ .option('--to <date>', 'End, YYYY-MM-DD')
114
+ .option('--lang <lang>', 'en | es', 'en')
115
+ .option('--json', 'Output raw JSON')
116
+ .action(async (agentId, opts) => {
117
+ try {
118
+ const a = await (0, config_1.getClient)().artifacts.create({
119
+ template: 'operation_report', agentId, from: opts.from, to: opts.to, lang: opts.lang === 'es' ? 'es' : 'en',
120
+ });
121
+ if (opts.json)
122
+ return (0, output_1.printJson)(a);
123
+ printArtifact(a);
124
+ console.log(`Artifact ${a.id}. Share it: m2f artifacts share ${a.id}`);
125
+ }
126
+ catch (error) {
127
+ (0, output_1.fail)(error);
128
+ }
129
+ });
130
+ art
131
+ .command('refresh <id>')
132
+ .description('Resolve the data again (new version)')
133
+ .action(async (id) => {
134
+ try {
135
+ const a = await (0, config_1.getClient)().artifacts.refresh(id);
136
+ console.log(`New version v${a.version}: ${a.id}`);
137
+ }
138
+ catch (error) {
139
+ (0, output_1.fail)(error);
140
+ }
141
+ });
142
+ art
143
+ .command('share <id>')
144
+ .description('Create a public link (customer details hidden by default)')
145
+ .option('--show-customers', 'Do not hide customers’ names, phones and emails')
146
+ .option('--days <n>', 'Expire after n days', (v) => parseInt(v, 10))
147
+ .action(async (id, opts) => {
148
+ try {
149
+ const s = await (0, config_1.getClient)().artifacts.share(id, { redact: !opts.showCustomers, expiresInDays: opts.days ?? null });
150
+ console.log(`${APP_URL()}/a/${s.token}`);
151
+ console.log(`Customer details ${s.redact ? 'hidden' : 'SHOWN'}${s.expiresAt ? `, expires ${s.expiresAt}` : ''}.`);
152
+ }
153
+ catch (error) {
154
+ (0, output_1.fail)(error);
155
+ }
156
+ });
157
+ art
158
+ .command('unshare <id>')
159
+ .description('Revoke the public link')
160
+ .action(async (id) => {
161
+ try {
162
+ await (0, config_1.getClient)().artifacts.unshare(id);
163
+ console.log('Link revoked.');
164
+ }
165
+ catch (error) {
166
+ (0, output_1.fail)(error);
167
+ }
168
+ });
169
+ art
170
+ .command('archive <id>')
171
+ .description('Archive every version and revoke its link')
172
+ .action(async (id) => {
173
+ try {
174
+ await (0, config_1.getClient)().artifacts.archive(id);
175
+ console.log('Archived.');
176
+ }
177
+ catch (error) {
178
+ (0, output_1.fail)(error);
179
+ }
180
+ });
181
+ }
182
+ //# sourceMappingURL=artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/commands/artifacts.ts"],"names":[],"mappings":";;AA0DA,4DAsFC;AA9ID,sCAAsC;AACtC,sCAAwD;AAExD;;;;GAIG;AAEH,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,0BAA0B,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAEjG,SAAS,QAAQ,CAAC,IAAa,EAAE,IAAa;IAC5C,IAAI,GAAG,GAAY,IAAI,CAAC;IACxB,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACxF,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACxD,GAAG,GAAI,GAA+B,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,OAAO,CAAC,CAAW,EAAE,GAAoC;IAChE,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,OAAO,GAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAsE,CAAC,OAAO,IAAI,EAAE,CAAC;IACnH,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,yEAAyE;AACzE,SAAS,aAAa,CAAC,CAAW;IAChC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACvE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAyB,EAAE,CAAC;QAC5C,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,SAAS;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAAC,MAAM;YAC9E,KAAK,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAAC,MAAM;YAC5C,KAAK,SAAS;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAAC,MAAM;YAC5D,KAAK,MAAM;gBAAE,IAAA,mBAAU,EAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAC,MAAM;YACjK,KAAK,OAAO,CAAC;YACb,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAA+C,CAAC;gBAC5F,IAAI,CAAC,CAAC,KAAK;oBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;oBAAC,MAAM;gBAAC,CAAC;gBAC3E,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9E,IAAA,mBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC7G,MAAM;YACR,CAAC;YACD,KAAK,cAAc;gBACjB,IAAA,mBAAU,EAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAC1J,MAAM;YACR,KAAK,SAAS;gBAAE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;oBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAAC,MAAM;YACtH,KAAK,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,SAAS,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,qCAAqC,CAAC,CAAC;gBAAC,MAAM;YACtI,KAAK,SAAS;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAC,MAAM;QACrD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAgB,wBAAwB,CAAC,OAAgB;IACvD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,8DAA8D,CAAC,CAAC;IAErH,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,mBAAmB,EAAE,iCAAiC,CAAC;SAC9D,MAAM,CAAC,eAAe,EAAE,sDAAsD,CAAC;SAC/E,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,IAAuD,EAAE,EAAE;QACxE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAA,kBAAS,GAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACxF,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAA,kBAAS,EAAC,IAAI,CAAC,CAAC;YACtC,IAAA,mBAAU,EACR,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EACzI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CACjD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAA,aAAI,EAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,IAAwB,EAAE,EAAE;QACrD,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,IAAA,kBAAS,GAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAA,kBAAS,EAAC,CAAC,CAAC,CAAC;YACnC,aAAa,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAA,aAAI,EAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,qFAAqF,CAAC;SAClG,MAAM,CAAC,eAAe,EAAE,mBAAmB,CAAC;SAC5C,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAC;SACxC,MAAM,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC;SACxC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,IAAmE,EAAE,EAAE;QACrG,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,IAAA,kBAAS,GAAE,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC3C,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;aAC5G,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAA,kBAAS,EAAC,CAAC,CAAC,CAAC;YACnC,aAAa,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,mCAAmC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAA,aAAI,EAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,IAAA,kBAAS,GAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAA,aAAI,EAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,2DAA2D,CAAC;SACxE,MAAM,CAAC,kBAAkB,EAAE,iDAAiD,CAAC;SAC7E,MAAM,CAAC,YAAY,EAAE,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACnE,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,IAAgD,EAAE,EAAE;QAC7E,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,IAAA,kBAAS,GAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;YACnH,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAA,aAAI,EAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,IAAI,CAAC;YAAC,MAAM,IAAA,kBAAS,GAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAA,aAAI,EAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IAC/G,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,IAAI,CAAC;YAAC,MAAM,IAAA,kBAAS,GAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAA,aAAI,EAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IAC3G,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Organization-wide reads. TENANT or ADMIN only — the role is checked against
4
+ * the database, so a key with `tenant:read` on a regular account still gets a
5
+ * 403 here.
6
+ */
7
+ export declare function registerOrganizationCommands(program: Command): void;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerOrganizationCommands = registerOrganizationCommands;
4
+ const config_1 = require("../config");
5
+ const output_1 = require("../output");
6
+ /**
7
+ * Organization-wide reads. TENANT or ADMIN only — the role is checked against
8
+ * the database, so a key with `tenant:read` on a regular account still gets a
9
+ * 403 here.
10
+ */
11
+ function registerOrganizationCommands(program) {
12
+ const org = program.command('org').description('Organization-wide reporting (TENANT/ADMIN only)');
13
+ org
14
+ .command('summary')
15
+ .description('Aggregated figures across every agent in your organization')
16
+ .option('--agent <agentId>', 'Narrow to one agent within the organization', 'all')
17
+ .option('--from <date>', 'Start of the range, ISO 8601')
18
+ .option('--to <date>', 'End of the range, ISO 8601')
19
+ .option('--bucket <bucket>', 'Time series granularity: day | week | month', 'day')
20
+ .option('--json', 'Output raw JSON')
21
+ .action(async (opts) => {
22
+ try {
23
+ const s = await (0, config_1.getClient)().organization.summary({
24
+ agentId: opts.agent,
25
+ from: opts.from,
26
+ to: opts.to,
27
+ bucket: opts.bucket,
28
+ });
29
+ if (opts.json)
30
+ return (0, output_1.printJson)(s);
31
+ (0, output_1.printTable)([{
32
+ messages: s.totals.messages,
33
+ incoming: s.totals.incoming,
34
+ people: s.people.distinct,
35
+ errors: s.totals.errors,
36
+ }], ['messages', 'incoming', 'people', 'errors']);
37
+ if (s.notes.length) {
38
+ console.log('\nNotes:');
39
+ for (const n of s.notes)
40
+ console.log(` - ${n}`);
41
+ }
42
+ }
43
+ catch (error) {
44
+ (0, output_1.fail)(error);
45
+ }
46
+ });
47
+ org
48
+ .command('activities')
49
+ .description('Raw activity rows across the organization (contents included)')
50
+ .option('--agent <agentId>', 'Narrow to one agent within the organization', 'all')
51
+ .option('--limit <n>', 'Rows to return (default 50, max 100)', (v) => parseInt(v, 10))
52
+ .option('--offset <n>', 'Rows to skip', (v) => parseInt(v, 10))
53
+ .option('--json', 'Output raw JSON')
54
+ .action(async (opts) => {
55
+ try {
56
+ const r = await (0, config_1.getClient)().organization.activities({
57
+ agentId: opts.agent,
58
+ limit: opts.limit,
59
+ offset: opts.offset,
60
+ });
61
+ if (opts.json)
62
+ return (0, output_1.printJson)(r);
63
+ (0, output_1.printTable)(r.activities.map((a) => ({
64
+ at: String(a.timestamp ?? ''),
65
+ type: String(a.messageType ?? ''),
66
+ channel: String(a.channel ?? ''),
67
+ content: String(a.content ?? '').slice(0, 60),
68
+ })), ['at', 'type', 'channel', 'content']);
69
+ }
70
+ catch (error) {
71
+ (0, output_1.fail)(error);
72
+ }
73
+ });
74
+ }
75
+ //# sourceMappingURL=organization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization.js","sourceRoot":"","sources":["../../src/commands/organization.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -12,6 +12,8 @@ const tools_1 = require("./commands/tools");
12
12
  const tasks_1 = require("./commands/tasks");
13
13
  const mcp_1 = require("./commands/mcp");
14
14
  const knowledge_1 = require("./commands/knowledge");
15
+ const organization_1 = require("./commands/organization");
16
+ const artifacts_1 = require("./commands/artifacts");
15
17
  const program = new commander_1.Command();
16
18
  const { version } = JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.join)(__dirname, '..', 'package.json'), 'utf8'));
17
19
  program
@@ -26,5 +28,7 @@ program
26
28
  (0, tasks_1.registerTaskCommands)(program);
27
29
  (0, mcp_1.registerMcpCommands)(program);
28
30
  (0, knowledge_1.registerKnowledgeCommands)(program);
31
+ (0, organization_1.registerOrganizationCommands)(program);
32
+ (0, artifacts_1.registerArtifactCommands)(program);
29
33
  program.parseAsync(process.argv);
30
34
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,qCAAuC;AACvC,yCAAiC;AACjC,yCAAoC;AACpC,0CAAuD;AACvD,8CAA0D;AAC1D,4CAAwD;AACxD,gDAA4D;AAC5D,4CAAwD;AACxD,4CAAwD;AACxD,wCAAqD;AACrD,oDAAiE;AAEjE,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAC5B,IAAA,sBAAY,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CACrC,CAAC;AAEzB,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,oEAAoE,CAAC;KACjF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,IAAA,2BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,yBAAmB,EAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,qCAAyB,EAAC,OAAO,CAAC,CAAC;AAEnC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,qCAAuC;AACvC,yCAAiC;AACjC,yCAAoC;AACpC,0CAAuD;AACvD,8CAA0D;AAC1D,4CAAwD;AACxD,gDAA4D;AAC5D,4CAAwD;AACxD,4CAAwD;AACxD,wCAAqD;AACrD,oDAAiE;AACjE,0DAAuE;AACvE,oDAAgE;AAEhE,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAC5B,IAAA,sBAAY,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CACrC,CAAC;AAEzB,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,oEAAoE,CAAC;KACjF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,IAAA,2BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,yBAAmB,EAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,qCAAyB,EAAC,OAAO,CAAC,CAAC;AACnC,IAAA,2CAA4B,EAAC,OAAO,CAAC,CAAC;AACtC,IAAA,oCAAwB,EAAC,OAAO,CAAC,CAAC;AAElC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mind2flow/cli",
3
- "version": "0.2.4",
3
+ "version": "0.4.0",
4
4
  "description": "Command-line interface for the Mind2Flow AI agents platform",
5
5
  "keywords": [
6
6
  "ai",
@@ -33,7 +33,7 @@
33
33
  "node": ">=18"
34
34
  },
35
35
  "dependencies": {
36
- "@mind2flow/agents-sdk": "^0.2.4",
36
+ "@mind2flow/agents-sdk": "^0.4.0",
37
37
  "commander": "^12.0.0"
38
38
  },
39
39
  "devDependencies": {