universal-agent-memory 0.1.5 → 0.2.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.
Files changed (67) hide show
  1. package/dist/bin/cli.js +207 -0
  2. package/dist/bin/cli.js.map +1 -1
  3. package/dist/cli/agent.d.ts +20 -0
  4. package/dist/cli/agent.d.ts.map +1 -0
  5. package/dist/cli/agent.js +388 -0
  6. package/dist/cli/agent.js.map +1 -0
  7. package/dist/cli/coord.d.ts +7 -0
  8. package/dist/cli/coord.d.ts.map +1 -0
  9. package/dist/cli/coord.js +145 -0
  10. package/dist/cli/coord.js.map +1 -0
  11. package/dist/cli/deploy.d.ts +19 -0
  12. package/dist/cli/deploy.d.ts.map +1 -0
  13. package/dist/cli/deploy.js +267 -0
  14. package/dist/cli/deploy.js.map +1 -0
  15. package/dist/cli/task.d.ts +33 -0
  16. package/dist/cli/task.d.ts.map +1 -0
  17. package/dist/cli/task.js +570 -0
  18. package/dist/cli/task.js.map +1 -0
  19. package/dist/coordination/database.d.ts +13 -0
  20. package/dist/coordination/database.d.ts.map +1 -0
  21. package/dist/coordination/database.js +131 -0
  22. package/dist/coordination/database.js.map +1 -0
  23. package/dist/coordination/deploy-batcher.d.ts +38 -0
  24. package/dist/coordination/deploy-batcher.d.ts.map +1 -0
  25. package/dist/coordination/deploy-batcher.js +401 -0
  26. package/dist/coordination/deploy-batcher.js.map +1 -0
  27. package/dist/coordination/index.d.ts +4 -0
  28. package/dist/coordination/index.d.ts.map +1 -0
  29. package/dist/coordination/index.js +4 -0
  30. package/dist/coordination/index.js.map +1 -0
  31. package/dist/coordination/service.d.ts +79 -0
  32. package/dist/coordination/service.d.ts.map +1 -0
  33. package/dist/coordination/service.js +591 -0
  34. package/dist/coordination/service.js.map +1 -0
  35. package/dist/index.d.ts +2 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +2 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/tasks/coordination.d.ts +74 -0
  40. package/dist/tasks/coordination.d.ts.map +1 -0
  41. package/dist/tasks/coordination.js +237 -0
  42. package/dist/tasks/coordination.js.map +1 -0
  43. package/dist/tasks/database.d.ts +14 -0
  44. package/dist/tasks/database.d.ts.map +1 -0
  45. package/dist/tasks/database.js +128 -0
  46. package/dist/tasks/database.js.map +1 -0
  47. package/dist/tasks/index.d.ts +5 -0
  48. package/dist/tasks/index.d.ts.map +1 -0
  49. package/dist/tasks/index.js +5 -0
  50. package/dist/tasks/index.js.map +1 -0
  51. package/dist/tasks/service.d.ts +39 -0
  52. package/dist/tasks/service.d.ts.map +1 -0
  53. package/dist/tasks/service.js +582 -0
  54. package/dist/tasks/service.js.map +1 -0
  55. package/dist/tasks/types.d.ts +224 -0
  56. package/dist/tasks/types.d.ts.map +1 -0
  57. package/dist/tasks/types.js +64 -0
  58. package/dist/tasks/types.js.map +1 -0
  59. package/dist/types/coordination.d.ts +240 -0
  60. package/dist/types/coordination.d.ts.map +1 -0
  61. package/dist/types/coordination.js +43 -0
  62. package/dist/types/coordination.js.map +1 -0
  63. package/dist/types/index.d.ts +1 -0
  64. package/dist/types/index.d.ts.map +1 -1
  65. package/dist/types/index.js +1 -0
  66. package/dist/types/index.js.map +1 -1
  67. package/package.json +1 -1
@@ -0,0 +1,388 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import { CoordinationService } from '../coordination/service.js';
4
+ export async function agentCommand(action, options = {}) {
5
+ const service = new CoordinationService();
6
+ switch (action) {
7
+ case 'register':
8
+ await registerAgent(service, options);
9
+ break;
10
+ case 'heartbeat':
11
+ await heartbeatAgent(service, options);
12
+ break;
13
+ case 'status':
14
+ await showAgentStatus(service, options);
15
+ break;
16
+ case 'announce':
17
+ await announceWork(service, options);
18
+ break;
19
+ case 'complete':
20
+ await completeWork(service, options);
21
+ break;
22
+ case 'overlaps':
23
+ await showOverlaps(service, options);
24
+ break;
25
+ case 'broadcast':
26
+ await broadcastMessage(service, options);
27
+ break;
28
+ case 'send':
29
+ await sendMessage(service, options);
30
+ break;
31
+ case 'receive':
32
+ await receiveMessages(service, options);
33
+ break;
34
+ case 'deregister':
35
+ await deregisterAgent(service, options);
36
+ break;
37
+ }
38
+ }
39
+ async function registerAgent(service, options) {
40
+ const name = options.name;
41
+ if (!name) {
42
+ console.error(chalk.red('Error: --name is required for register'));
43
+ process.exit(1);
44
+ }
45
+ const capabilities = options.capabilities?.split(',').map((c) => c.trim());
46
+ const worktree = options.worktree;
47
+ const spinner = ora(`Registering agent: ${name}...`).start();
48
+ try {
49
+ const id = service.register(name, capabilities, worktree);
50
+ spinner.succeed(`Agent registered: ${name}`);
51
+ console.log(chalk.bold.green(`AGENT_ID=${id}`));
52
+ if (worktree) {
53
+ console.log(chalk.dim(`Worktree branch: ${worktree}`));
54
+ }
55
+ console.log(chalk.dim('Use this ID for subsequent agent commands'));
56
+ console.log('');
57
+ console.log(chalk.cyan('Next steps:'));
58
+ console.log(chalk.dim(' 1. Announce your work: uam agent announce --id <id> --resource <file> --intent editing'));
59
+ console.log(chalk.dim(' 2. Check for overlaps: uam agent overlaps --resource <file>'));
60
+ console.log(chalk.dim(' 3. When done: uam agent complete --id <id> --resource <file>'));
61
+ }
62
+ catch (error) {
63
+ spinner.fail('Failed to register agent');
64
+ console.error(chalk.red(error instanceof Error ? error.message : String(error)));
65
+ process.exit(1);
66
+ }
67
+ }
68
+ async function heartbeatAgent(service, options) {
69
+ const id = options.id;
70
+ if (!id) {
71
+ console.error(chalk.red('Error: --id is required for heartbeat'));
72
+ process.exit(1);
73
+ }
74
+ try {
75
+ service.heartbeat(id);
76
+ console.log(chalk.green('Heartbeat sent'));
77
+ }
78
+ catch (error) {
79
+ console.error(chalk.red(error instanceof Error ? error.message : String(error)));
80
+ process.exit(1);
81
+ }
82
+ }
83
+ async function showAgentStatus(service, options) {
84
+ const id = options.id;
85
+ if (id) {
86
+ // Show specific agent
87
+ const agent = service.getAgent(id);
88
+ if (!agent) {
89
+ console.error(chalk.red(`Agent not found: ${id}`));
90
+ process.exit(1);
91
+ }
92
+ console.log(chalk.bold('\n🤖 Agent Status\n'));
93
+ console.log(` ID: ${chalk.cyan(agent.id)}`);
94
+ console.log(` Name: ${chalk.bold(agent.name)}`);
95
+ console.log(` Status: ${statusColor(agent.status)}`);
96
+ if (agent.currentTask) {
97
+ console.log(` Task: ${agent.currentTask}`);
98
+ }
99
+ console.log(` Started: ${chalk.dim(agent.startedAt)}`);
100
+ console.log(` Last Heartbeat: ${chalk.dim(agent.lastHeartbeat)}`);
101
+ if (agent.capabilities && agent.capabilities.length > 0) {
102
+ console.log(` Capabilities: ${agent.capabilities.join(', ')}`);
103
+ }
104
+ // Show claims
105
+ const claims = service.getAgentClaims(id);
106
+ if (claims.length > 0) {
107
+ console.log(chalk.bold('\n Claims:'));
108
+ for (const claim of claims) {
109
+ console.log(` - ${claim.resource} (${claim.claimType})`);
110
+ }
111
+ }
112
+ // Show pending messages
113
+ const pending = service.getPendingMessages(id);
114
+ console.log(`\n Pending Messages: ${chalk.yellow(pending)}`);
115
+ }
116
+ else {
117
+ // Show all agents
118
+ const agents = service.getActiveAgents();
119
+ console.log(chalk.bold('\n🤖 Active Agents\n'));
120
+ if (agents.length === 0) {
121
+ console.log(chalk.dim(' No active agents'));
122
+ return;
123
+ }
124
+ for (const agent of agents) {
125
+ console.log(` ${chalk.cyan(agent.name)} (${agent.id.slice(0, 8)}...)`);
126
+ console.log(` Status: ${statusColor(agent.status)}`);
127
+ if (agent.currentTask) {
128
+ console.log(` Task: ${chalk.dim(agent.currentTask)}`);
129
+ }
130
+ }
131
+ }
132
+ }
133
+ async function announceWork(service, options) {
134
+ const id = options.id;
135
+ const resource = options.resource;
136
+ const intent = options.intent;
137
+ if (!id || !resource || !intent) {
138
+ console.error(chalk.red('Error: --id, --resource, and --intent are required'));
139
+ console.log(chalk.dim('Intent types: editing, reviewing, refactoring, testing, documenting'));
140
+ process.exit(1);
141
+ }
142
+ const validIntents = ['editing', 'reviewing', 'refactoring', 'testing', 'documenting'];
143
+ if (!validIntents.includes(intent)) {
144
+ console.error(chalk.red(`Invalid intent: ${intent}`));
145
+ console.log(chalk.dim('Valid intents: ' + validIntents.join(', ')));
146
+ process.exit(1);
147
+ }
148
+ const spinner = ora(`Announcing work on: ${resource}...`).start();
149
+ try {
150
+ const filesAffected = options.files?.split(',').map((f) => f.trim());
151
+ const estimatedMinutes = options.minutes ? parseInt(options.minutes, 10) : undefined;
152
+ const { announcement, overlaps, suggestions } = service.announceWork(id, resource, intent, {
153
+ description: options.description,
154
+ filesAffected,
155
+ estimatedMinutes,
156
+ });
157
+ spinner.succeed(`Work announced: ${intent} on ${resource}`);
158
+ console.log(chalk.dim(` Announcement ID: ${announcement.id}`));
159
+ if (overlaps.length === 0) {
160
+ console.log(chalk.green('\n No overlapping work detected. You have clear path!'));
161
+ }
162
+ else {
163
+ console.log(chalk.yellow(`\n ⚠️ Overlapping work detected (${overlaps.length}):`));
164
+ for (const overlap of overlaps) {
165
+ const riskColor = getRiskColor(overlap.conflictRisk);
166
+ console.log(`\n ${riskColor(`[${overlap.conflictRisk.toUpperCase()}]`)} ${overlap.resource}`);
167
+ for (const agent of overlap.agents) {
168
+ console.log(chalk.dim(` - ${agent.name || agent.id.slice(0, 8)} (${agent.intentType})`));
169
+ if (agent.worktreeBranch) {
170
+ console.log(chalk.dim(` Branch: ${agent.worktreeBranch}`));
171
+ }
172
+ if (agent.description) {
173
+ console.log(chalk.dim(` "${agent.description}"`));
174
+ }
175
+ }
176
+ console.log(chalk.cyan(` Suggestion: ${overlap.suggestion}`));
177
+ }
178
+ if (suggestions.length > 0) {
179
+ console.log(chalk.bold('\n Collaboration Suggestions:'));
180
+ for (const suggestion of suggestions) {
181
+ console.log(` ${chalk.cyan(suggestion.type)}: ${suggestion.reason}`);
182
+ if (suggestion.suggestedOrder) {
183
+ console.log(chalk.dim(` Suggested merge order: ${suggestion.suggestedOrder.join(' → ')}`));
184
+ }
185
+ }
186
+ }
187
+ }
188
+ }
189
+ catch (error) {
190
+ spinner.fail('Failed to announce work');
191
+ console.error(chalk.red(error instanceof Error ? error.message : String(error)));
192
+ process.exit(1);
193
+ }
194
+ }
195
+ async function completeWork(service, options) {
196
+ const id = options.id;
197
+ const resource = options.resource;
198
+ if (!id || !resource) {
199
+ console.error(chalk.red('Error: --id and --resource are required'));
200
+ process.exit(1);
201
+ }
202
+ try {
203
+ service.completeWork(id, resource);
204
+ console.log(chalk.green(`Work completed: ${resource}`));
205
+ console.log(chalk.dim('Other agents have been notified. They can now safely merge.'));
206
+ }
207
+ catch (error) {
208
+ console.error(chalk.red(error instanceof Error ? error.message : String(error)));
209
+ process.exit(1);
210
+ }
211
+ }
212
+ async function showOverlaps(service, options) {
213
+ const resource = options.resource;
214
+ if (!resource) {
215
+ // Show all active work
216
+ const activeWork = service.getActiveWork();
217
+ console.log(chalk.bold('\n📋 Active Work Across All Agents\n'));
218
+ if (activeWork.length === 0) {
219
+ console.log(chalk.dim(' No active work announcements'));
220
+ return;
221
+ }
222
+ // Group by resource
223
+ const grouped = new Map();
224
+ for (const work of activeWork) {
225
+ const existing = grouped.get(work.resource) || [];
226
+ existing.push(work);
227
+ grouped.set(work.resource, existing);
228
+ }
229
+ for (const [res, works] of grouped) {
230
+ const hasMultiple = works.length > 1;
231
+ console.log(` ${hasMultiple ? chalk.yellow('⚠️') : '📁'} ${chalk.bold(res)}`);
232
+ for (const work of works) {
233
+ console.log(` ${chalk.cyan(work.agentName || work.agentId.slice(0, 8))} - ${work.intentType}`);
234
+ if (work.worktreeBranch) {
235
+ console.log(chalk.dim(` Branch: ${work.worktreeBranch}`));
236
+ }
237
+ if (work.description) {
238
+ console.log(chalk.dim(` "${work.description}"`));
239
+ }
240
+ }
241
+ console.log('');
242
+ }
243
+ }
244
+ else {
245
+ // Check specific resource
246
+ const overlaps = service.detectOverlaps(resource);
247
+ console.log(chalk.bold(`\n🔍 Overlap Check: ${resource}\n`));
248
+ if (overlaps.length === 0) {
249
+ console.log(chalk.green(' ✓ No overlapping work detected'));
250
+ console.log(chalk.dim(' Safe to proceed with your changes'));
251
+ return;
252
+ }
253
+ for (const overlap of overlaps) {
254
+ const riskColor = getRiskColor(overlap.conflictRisk);
255
+ console.log(` ${riskColor(`[${overlap.conflictRisk.toUpperCase()}]`)} ${overlap.resource}`);
256
+ for (const agent of overlap.agents) {
257
+ console.log(` - ${chalk.cyan(agent.name || agent.id.slice(0, 8))} (${agent.intentType})`);
258
+ if (agent.worktreeBranch) {
259
+ console.log(chalk.dim(` Branch: ${agent.worktreeBranch}`));
260
+ }
261
+ }
262
+ console.log(chalk.yellow(` ${overlap.suggestion}`));
263
+ console.log('');
264
+ }
265
+ }
266
+ }
267
+ function getRiskColor(risk) {
268
+ switch (risk) {
269
+ case 'critical':
270
+ return chalk.bgRed.white;
271
+ case 'high':
272
+ return chalk.red;
273
+ case 'medium':
274
+ return chalk.yellow;
275
+ case 'low':
276
+ return chalk.green;
277
+ default:
278
+ return chalk.dim;
279
+ }
280
+ }
281
+ async function broadcastMessage(service, options) {
282
+ const id = options.id;
283
+ const channel = options.channel;
284
+ const message = options.message;
285
+ if (!id || !channel || !message) {
286
+ console.error(chalk.red('Error: --id, --channel, and --message are required for broadcast'));
287
+ process.exit(1);
288
+ }
289
+ try {
290
+ let payload;
291
+ try {
292
+ payload = JSON.parse(message);
293
+ }
294
+ catch {
295
+ payload = { action: 'notification', data: message };
296
+ }
297
+ const priority = options.priority ? parseInt(options.priority, 10) : 5;
298
+ service.broadcast(id, channel, payload, priority);
299
+ console.log(chalk.green(`Broadcast sent to channel: ${channel}`));
300
+ }
301
+ catch (error) {
302
+ console.error(chalk.red(error instanceof Error ? error.message : String(error)));
303
+ process.exit(1);
304
+ }
305
+ }
306
+ async function sendMessage(service, options) {
307
+ const id = options.id;
308
+ const to = options.to;
309
+ const message = options.message;
310
+ if (!id || !to || !message) {
311
+ console.error(chalk.red('Error: --id, --to, and --message are required for send'));
312
+ process.exit(1);
313
+ }
314
+ try {
315
+ let payload;
316
+ try {
317
+ payload = JSON.parse(message);
318
+ }
319
+ catch {
320
+ payload = { action: 'message', data: message };
321
+ }
322
+ const priority = options.priority ? parseInt(options.priority, 10) : 5;
323
+ service.send(id, to, payload, priority);
324
+ console.log(chalk.green(`Message sent to: ${to.slice(0, 8)}...`));
325
+ }
326
+ catch (error) {
327
+ console.error(chalk.red(error instanceof Error ? error.message : String(error)));
328
+ process.exit(1);
329
+ }
330
+ }
331
+ async function receiveMessages(service, options) {
332
+ const id = options.id;
333
+ if (!id) {
334
+ console.error(chalk.red('Error: --id is required for receive'));
335
+ process.exit(1);
336
+ }
337
+ try {
338
+ const channel = options.channel;
339
+ const markRead = options.markRead !== false;
340
+ const messages = service.receive(id, channel, markRead);
341
+ if (messages.length === 0) {
342
+ console.log(chalk.dim('No pending messages'));
343
+ return;
344
+ }
345
+ console.log(chalk.bold(`\n📬 Messages (${messages.length})\n`));
346
+ for (const msg of messages) {
347
+ const fromLabel = msg.fromAgent ? msg.fromAgent.slice(0, 8) + '...' : 'system';
348
+ console.log(` [${chalk.cyan(msg.channel)}] ${chalk.dim(fromLabel)} → ${msg.type}`);
349
+ console.log(` ${chalk.yellow(JSON.stringify(msg.payload))}`);
350
+ console.log(` ${chalk.dim(msg.createdAt)}`);
351
+ console.log('');
352
+ }
353
+ }
354
+ catch (error) {
355
+ console.error(chalk.red(error instanceof Error ? error.message : String(error)));
356
+ process.exit(1);
357
+ }
358
+ }
359
+ async function deregisterAgent(service, options) {
360
+ const id = options.id;
361
+ if (!id) {
362
+ console.error(chalk.red('Error: --id is required for deregister'));
363
+ process.exit(1);
364
+ }
365
+ try {
366
+ service.deregister(id);
367
+ console.log(chalk.green('Agent deregistered'));
368
+ }
369
+ catch (error) {
370
+ console.error(chalk.red(error instanceof Error ? error.message : String(error)));
371
+ process.exit(1);
372
+ }
373
+ }
374
+ function statusColor(status) {
375
+ switch (status) {
376
+ case 'active':
377
+ return chalk.green(status);
378
+ case 'idle':
379
+ return chalk.yellow(status);
380
+ case 'completed':
381
+ return chalk.blue(status);
382
+ case 'failed':
383
+ return chalk.red(status);
384
+ default:
385
+ return status;
386
+ }
387
+ }
388
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/cli/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ type CoordAction = 'status' | 'flush' | 'cleanup';
2
+ interface CoordOptions {
3
+ verbose?: boolean;
4
+ }
5
+ export declare function coordCommand(action: CoordAction, options?: CoordOptions): Promise<void>;
6
+ export {};
7
+ //# sourceMappingURL=coord.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coord.d.ts","sourceRoot":"","sources":["../../src/cli/coord.ts"],"names":[],"mappings":"AAKA,KAAK,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAElD,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAYjG"}
@@ -0,0 +1,145 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import { CoordinationService } from '../coordination/service.js';
4
+ import { DeployBatcher } from '../coordination/deploy-batcher.js';
5
+ export async function coordCommand(action, options = {}) {
6
+ switch (action) {
7
+ case 'status':
8
+ await showStatus(options);
9
+ break;
10
+ case 'flush':
11
+ await flushDeploys(options);
12
+ break;
13
+ case 'cleanup':
14
+ await cleanupCoordination(options);
15
+ break;
16
+ }
17
+ }
18
+ async function showStatus(options) {
19
+ const spinner = ora('Loading coordination status...').start();
20
+ try {
21
+ const service = new CoordinationService();
22
+ const status = service.getStatus();
23
+ spinner.stop();
24
+ console.log(chalk.bold('\n📊 Coordination Status\n'));
25
+ // Active agents
26
+ console.log(chalk.bold.cyan('Active Agents:'));
27
+ if (status.activeAgents.length === 0) {
28
+ console.log(chalk.dim(' No active agents'));
29
+ }
30
+ else {
31
+ for (const agent of status.activeAgents) {
32
+ const statusColor = agent.status === 'active' ? chalk.green : chalk.yellow;
33
+ console.log(` ${chalk.cyan(agent.name)} (${agent.id.slice(0, 8)}...) - ${statusColor(agent.status)}`);
34
+ if (agent.currentTask) {
35
+ console.log(chalk.dim(` Task: ${agent.currentTask}`));
36
+ }
37
+ if (options.verbose) {
38
+ console.log(chalk.dim(` Started: ${agent.startedAt}`));
39
+ console.log(chalk.dim(` Heartbeat: ${agent.lastHeartbeat}`));
40
+ }
41
+ }
42
+ }
43
+ console.log('');
44
+ // Active claims
45
+ console.log(chalk.bold.cyan('Resource Claims:'));
46
+ if (status.activeClaims.length === 0) {
47
+ console.log(chalk.dim(' No active claims'));
48
+ }
49
+ else {
50
+ for (const claim of status.activeClaims) {
51
+ const typeIcon = claim.claimType === 'exclusive' ? '🔒' : '🔓';
52
+ console.log(` ${typeIcon} ${chalk.yellow(claim.resource)}`);
53
+ console.log(chalk.dim(` By: ${claim.agentId.slice(0, 8)}... (${claim.claimType})`));
54
+ if (claim.expiresAt) {
55
+ console.log(chalk.dim(` Expires: ${claim.expiresAt}`));
56
+ }
57
+ }
58
+ }
59
+ console.log('');
60
+ // Pending deploys
61
+ console.log(chalk.bold.cyan('Pending Deploys:'));
62
+ if (status.pendingDeploys.length === 0) {
63
+ console.log(chalk.dim(' No pending deploys'));
64
+ }
65
+ else {
66
+ const grouped = groupByTarget(status.pendingDeploys);
67
+ for (const [target, deploys] of grouped) {
68
+ console.log(` ${chalk.yellow(target)}: ${deploys.length} action(s)`);
69
+ if (options.verbose) {
70
+ for (const deploy of deploys) {
71
+ console.log(chalk.dim(` - ${deploy.actionType} (priority: ${deploy.priority})`));
72
+ }
73
+ }
74
+ }
75
+ }
76
+ console.log('');
77
+ // Summary
78
+ console.log(chalk.bold.cyan('Summary:'));
79
+ console.log(` Agents: ${chalk.green(status.activeAgents.length)}`);
80
+ console.log(` Claims: ${chalk.yellow(status.activeClaims.length)}`);
81
+ console.log(` Pending Deploys: ${chalk.blue(status.pendingDeploys.length)}`);
82
+ console.log(` Unread Messages: ${chalk.magenta(status.pendingMessages)}`);
83
+ console.log('');
84
+ }
85
+ catch (error) {
86
+ spinner.fail('Failed to load status');
87
+ console.error(chalk.red(error instanceof Error ? error.message : String(error)));
88
+ }
89
+ }
90
+ async function flushDeploys(_options) {
91
+ const spinner = ora('Flushing all pending deploys...').start();
92
+ try {
93
+ const batcher = new DeployBatcher();
94
+ const results = await batcher.flushAll();
95
+ if (results.length === 0) {
96
+ spinner.info('No pending deploys to flush');
97
+ return;
98
+ }
99
+ spinner.succeed(`Flushed ${results.length} batch(es)`);
100
+ for (const result of results) {
101
+ console.log('');
102
+ console.log(chalk.bold(`Batch ${result.batchId.slice(0, 8)}...`));
103
+ console.log(` Executed: ${chalk.green(result.executedActions)}`);
104
+ console.log(` Failed: ${result.failedActions > 0 ? chalk.red(result.failedActions) : chalk.dim('0')}`);
105
+ console.log(` Duration: ${chalk.dim(result.duration + 'ms')}`);
106
+ if (result.errors && result.errors.length > 0) {
107
+ console.log(chalk.red(' Errors:'));
108
+ for (const error of result.errors) {
109
+ console.log(chalk.red(` - ${error}`));
110
+ }
111
+ }
112
+ }
113
+ }
114
+ catch (error) {
115
+ spinner.fail('Failed to flush deploys');
116
+ console.error(chalk.red(error instanceof Error ? error.message : String(error)));
117
+ }
118
+ }
119
+ async function cleanupCoordination(_options) {
120
+ const spinner = ora('Cleaning up stale coordination data...').start();
121
+ try {
122
+ const service = new CoordinationService();
123
+ // Cleanup stale agents
124
+ const staleCount = service.cleanupStaleAgents();
125
+ // General cleanup
126
+ service.cleanup();
127
+ spinner.succeed(`Cleanup complete`);
128
+ console.log(chalk.dim(` Marked ${staleCount} stale agent(s) as failed`));
129
+ console.log(chalk.dim(' Removed expired claims, old messages, and completed entries'));
130
+ }
131
+ catch (error) {
132
+ spinner.fail('Cleanup failed');
133
+ console.error(chalk.red(error instanceof Error ? error.message : String(error)));
134
+ }
135
+ }
136
+ function groupByTarget(deploys) {
137
+ const groups = new Map();
138
+ for (const deploy of deploys) {
139
+ const existing = groups.get(deploy.target) || [];
140
+ existing.push(deploy);
141
+ groups.set(deploy.target, existing);
142
+ }
143
+ return groups;
144
+ }
145
+ //# sourceMappingURL=coord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coord.js","sourceRoot":"","sources":["../../src/cli/coord.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ type DeployAction = 'queue' | 'batch' | 'execute' | 'status' | 'flush';
2
+ interface DeployOptions {
3
+ agentId?: string;
4
+ actionType?: string;
5
+ target?: string;
6
+ message?: string;
7
+ files?: string;
8
+ remote?: string;
9
+ force?: boolean;
10
+ ref?: string;
11
+ inputs?: string;
12
+ priority?: string;
13
+ batchId?: string;
14
+ dryRun?: boolean;
15
+ verbose?: boolean;
16
+ }
17
+ export declare function deployCommand(action: DeployAction, options?: DeployOptions): Promise<void>;
18
+ export {};
19
+ //# sourceMappingURL=deploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/cli/deploy.ts"],"names":[],"mappings":"AAMA,KAAK,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEvE,UAAU,aAAa;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBpG"}