@lovelybunch/cli 1.0.78-alpha.0 → 1.0.78-alpha.2

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/cli.js CHANGED
@@ -23,6 +23,7 @@ import { taskCommand } from './commands/task.js';
23
23
  import { notifyCommand } from './commands/notify.js';
24
24
  import { mailCommand } from './commands/mail.js';
25
25
  import { connectCommand } from './commands/connect.js';
26
+ import { coconutCommand } from './commands/coconut.js';
26
27
  const __filename = fileURLToPath(import.meta.url);
27
28
  const __dirname = dirname(__filename);
28
29
  // Read version from package.json
@@ -56,6 +57,7 @@ program.addCommand(eventsCommand);
56
57
  program.addCommand(notifyCommand);
57
58
  program.addCommand(mailCommand);
58
59
  program.addCommand(connectCommand);
60
+ program.addCommand(coconutCommand);
59
61
  // Deprecated aliases for backward compatibility
60
62
  // These will show a deprecation warning and delegate to the new task command
61
63
  const deprecatedProposeCommand = proposeCommand.hook('preAction', () => {
@@ -72,10 +74,16 @@ const deprecatedShowCommand = showCommand.hook('preAction', () => {
72
74
  program.addCommand(deprecatedShowCommand);
73
75
  // Global error handling
74
76
  program.hook('preAction', async (_thisCommand, actionCommand) => {
75
- const commandName = actionCommand.name();
77
+ const commandPath = actionCommand.name().split(' ');
78
+ let node = actionCommand.parent;
79
+ while (node && node.parent) {
80
+ commandPath.unshift(node.name());
81
+ node = node.parent;
82
+ }
83
+ const topLevelCommandName = commandPath[0] ?? actionCommand.name();
76
84
  // Skip initialization check for 'init', 'config', 'auth', and 'serve' commands
77
- const skipInitCheck = ['init', 'config', 'auth', 'serve', 'notify', 'connect'];
78
- if (skipInitCheck.includes(commandName)) {
85
+ const skipInitCheck = ['init', 'config', 'auth', 'serve', 'notify', 'connect', 'coconut'];
86
+ if (skipInitCheck.includes(topLevelCommandName)) {
79
87
  return;
80
88
  }
81
89
  // Check if GAIT is initialized for other commands
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Command } from 'commander';
2
+ interface CreateCoconutCommandOptions {
3
+ deprecatedUnderConnect?: boolean;
4
+ }
5
+ export declare function createCoconutCommand(options?: CreateCoconutCommandOptions): Command;
6
+ export declare const coconutCommand: Command;
7
+ export {};
8
+ //# sourceMappingURL=coconut.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coconut.d.ts","sourceRoot":"","sources":["../../src/commands/coconut.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwCpC,UAAU,2BAA2B;IACnC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAslBD,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,2BAAgC,GAAG,OAAO,CAsGvF;AAED,eAAO,MAAM,cAAc,SAAyB,CAAC"}
@@ -0,0 +1,627 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ import { readFileSync } from 'node:fs';
5
+ import { resolveControlPlaneAuth } from '../lib/control-plane.js';
6
+ const MCP_PROTOCOL_VERSION = '2025-11-25';
7
+ class CliExitError extends Error {
8
+ exitCode;
9
+ label;
10
+ detail;
11
+ constructor(message, exitCode = 1, label = 'Error', detail) {
12
+ super(message);
13
+ this.exitCode = exitCode;
14
+ this.label = label;
15
+ this.detail = detail;
16
+ }
17
+ }
18
+ function collect(value, previous = []) {
19
+ return [...previous, value];
20
+ }
21
+ function getMergedOpts(cmd) {
22
+ const chain = [];
23
+ let node = cmd;
24
+ while (node) {
25
+ chain.unshift(node);
26
+ node = node.parent;
27
+ }
28
+ const merged = {};
29
+ for (const item of chain) {
30
+ for (const [key, value] of Object.entries(item.opts())) {
31
+ if (value !== undefined)
32
+ merged[key] = value;
33
+ }
34
+ }
35
+ return merged;
36
+ }
37
+ function readJsonObject(value, flagName) {
38
+ if (!value)
39
+ return {};
40
+ let raw = value;
41
+ if (raw.startsWith('@')) {
42
+ const filePath = raw.slice(1);
43
+ try {
44
+ raw = readFileSync(filePath, 'utf-8');
45
+ }
46
+ catch (error) {
47
+ throw new CliExitError(`failed to read ${flagName} file "${filePath}": ${error.message}`);
48
+ }
49
+ }
50
+ let parsed;
51
+ try {
52
+ parsed = JSON.parse(raw);
53
+ }
54
+ catch {
55
+ throw new CliExitError(`invalid JSON for ${flagName}`);
56
+ }
57
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
58
+ throw new CliExitError(`invalid JSON for ${flagName} (must be a JSON object)`);
59
+ }
60
+ return parsed;
61
+ }
62
+ function parseArgValue(value) {
63
+ try {
64
+ return JSON.parse(value);
65
+ }
66
+ catch {
67
+ return value;
68
+ }
69
+ }
70
+ function parseArgAssignments(assignments) {
71
+ const parsed = {};
72
+ for (const assignment of assignments ?? []) {
73
+ const separator = assignment.indexOf('=');
74
+ if (separator <= 0) {
75
+ throw new CliExitError(`invalid --arg "${assignment}" (expected key=value)`);
76
+ }
77
+ parsed[assignment.slice(0, separator)] = parseArgValue(assignment.slice(separator + 1));
78
+ }
79
+ return parsed;
80
+ }
81
+ function getAuth(cmd) {
82
+ const opts = getMergedOpts(cmd);
83
+ return resolveControlPlaneAuth(opts);
84
+ }
85
+ async function requestMcp(auth, body) {
86
+ let res;
87
+ try {
88
+ res = await fetch(`${auth.host}/mcp`, {
89
+ method: 'POST',
90
+ headers: {
91
+ 'Content-Type': 'application/json',
92
+ 'MCP-Protocol-Version': MCP_PROTOCOL_VERSION,
93
+ 'x-callback-token': auth.token,
94
+ },
95
+ body: JSON.stringify(body),
96
+ });
97
+ }
98
+ catch (error) {
99
+ throw new CliExitError(`transport error: ${error.message}`, 1, 'Transport error');
100
+ }
101
+ if (res.status === 401) {
102
+ const detail = await res.text().catch(() => '');
103
+ throw new CliExitError('auth error: bad or revoked callback token', 3, 'Auth error', detail);
104
+ }
105
+ if (res.status === 503) {
106
+ const detail = await res.text().catch(() => '');
107
+ throw new CliExitError('server unavailable: MCP not configured on control plane', 4, 'Server unavailable', detail);
108
+ }
109
+ if (!res.ok) {
110
+ const detail = await res.text().catch(() => '');
111
+ throw new CliExitError(`transport error (HTTP ${res.status})`, 1, `Transport error (${res.status})`, detail);
112
+ }
113
+ try {
114
+ return await res.json();
115
+ }
116
+ catch (error) {
117
+ throw new CliExitError(`transport error: malformed JSON response: ${error.message}`, 1, 'Malformed response');
118
+ }
119
+ }
120
+ function callTool(auth, toolName, args) {
121
+ return requestMcp(auth, {
122
+ jsonrpc: '2.0',
123
+ id: 1,
124
+ method: 'tools/call',
125
+ params: { name: toolName, arguments: args },
126
+ });
127
+ }
128
+ function listTools(auth) {
129
+ return requestMcp(auth, {
130
+ jsonrpc: '2.0',
131
+ id: 1,
132
+ method: 'tools/list',
133
+ });
134
+ }
135
+ function fail(error, spinner) {
136
+ if (error instanceof CliExitError) {
137
+ if (spinner)
138
+ spinner.fail(error.label);
139
+ console.error(chalk.red('Error:'), error.message);
140
+ if (error.detail)
141
+ console.error(chalk.gray(error.detail));
142
+ process.exit(error.exitCode);
143
+ }
144
+ const message = error instanceof Error ? error.message : String(error);
145
+ if (spinner)
146
+ spinner.fail('Request failed');
147
+ console.error(chalk.red('Error:'), message);
148
+ process.exit(1);
149
+ }
150
+ function handleMcpError(envelope) {
151
+ if (!envelope.error)
152
+ return;
153
+ const { code, message, data } = envelope.error;
154
+ const codeStr = typeof code === 'number' ? code : 'unknown';
155
+ console.error(chalk.red(`MCP error ${codeStr}:`), message || '(no message)');
156
+ if (data !== undefined) {
157
+ console.error(chalk.gray(typeof data === 'string' ? data : JSON.stringify(data, null, 2)));
158
+ }
159
+ if (typeof code === 'number' && code >= -32768 && code <= -32000) {
160
+ process.exit(2);
161
+ }
162
+ process.exit(1);
163
+ }
164
+ function printEnvelope(envelope, rawOutput) {
165
+ handleMcpError(envelope);
166
+ if (rawOutput) {
167
+ console.log(JSON.stringify(envelope));
168
+ return;
169
+ }
170
+ const result = envelope.result;
171
+ if (!result) {
172
+ console.log(JSON.stringify(envelope, null, 2));
173
+ return;
174
+ }
175
+ if (result.structuredContent !== undefined) {
176
+ console.log(JSON.stringify(result.structuredContent, null, 2));
177
+ return;
178
+ }
179
+ if (Array.isArray(result.content)) {
180
+ const text = result.content
181
+ .filter((content) => content && typeof content.text === 'string')
182
+ .map((content) => content.text)
183
+ .join('\n');
184
+ if (text) {
185
+ console.log(text);
186
+ return;
187
+ }
188
+ }
189
+ console.log(JSON.stringify(result, null, 2));
190
+ }
191
+ function extractStructuredList(value) {
192
+ if (Array.isArray(value))
193
+ return value.filter(isJsonObject);
194
+ if (!isJsonObject(value))
195
+ return [];
196
+ for (const key of ['coconuts', 'items', 'data', 'results']) {
197
+ const candidate = value[key];
198
+ if (Array.isArray(candidate))
199
+ return candidate.filter(isJsonObject);
200
+ }
201
+ return [];
202
+ }
203
+ function isJsonObject(value) {
204
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
205
+ }
206
+ function getStringField(value, keys) {
207
+ for (const key of keys) {
208
+ const field = value[key];
209
+ if (typeof field === 'string' && field.trim())
210
+ return field.trim();
211
+ }
212
+ return undefined;
213
+ }
214
+ async function resolveCoconutIdByName(auth, name) {
215
+ const envelope = await callTool(auth, 'coconuts_list', {});
216
+ handleMcpError(envelope);
217
+ const candidates = extractStructuredList(envelope.result?.structuredContent);
218
+ const normalizedName = name.trim().toLowerCase();
219
+ const matches = candidates.filter((candidate) => {
220
+ const candidateName = getStringField(candidate, ['name', 'slug', 'displayName', 'title']);
221
+ return candidateName?.toLowerCase() === normalizedName;
222
+ });
223
+ if (matches.length === 0) {
224
+ throw new CliExitError(`no coconut found with name "${name}"`);
225
+ }
226
+ if (matches.length > 1) {
227
+ throw new CliExitError(`multiple coconuts matched name "${name}"; use --id instead`);
228
+ }
229
+ const id = getStringField(matches[0], ['id', 'coconutId', 'instanceId']);
230
+ if (!id) {
231
+ throw new CliExitError(`coconut "${name}" did not include an id in coconuts_list`);
232
+ }
233
+ return id;
234
+ }
235
+ async function addCoconutTarget(auth, args, options) {
236
+ if (options.id && options.name) {
237
+ throw new CliExitError('use either --id or --name, not both');
238
+ }
239
+ if (options.id) {
240
+ return { ...args, coconutId: options.id };
241
+ }
242
+ if (options.name) {
243
+ return { ...args, coconutId: await resolveCoconutIdByName(auth, options.name) };
244
+ }
245
+ return args;
246
+ }
247
+ function rawOutput(cmd) {
248
+ const opts = getMergedOpts(cmd);
249
+ return Boolean(opts.raw || opts.json);
250
+ }
251
+ function addTargetOptions(command) {
252
+ return command
253
+ .option('--id <coconutId>', 'Target coconut id')
254
+ .option('--name <name>', 'Target coconut name from `nut coconut list`');
255
+ }
256
+ function getTargetOptions(cmd, options = {}) {
257
+ const merged = getMergedOpts(cmd);
258
+ return {
259
+ id: options.id ?? (typeof merged.id === 'string' ? merged.id : undefined),
260
+ name: options.name ?? (typeof merged.name === 'string' ? merged.name : undefined),
261
+ };
262
+ }
263
+ async function runTool(cmd, toolName, args, options = {}) {
264
+ const auth = getAuth(cmd);
265
+ const spinner = ora(`Calling ${toolName}...`).start();
266
+ try {
267
+ const finalArgs = await addCoconutTarget(auth, args, getTargetOptions(cmd, options));
268
+ const envelope = await callTool(auth, toolName, finalArgs);
269
+ spinner.stop();
270
+ printEnvelope(envelope, rawOutput(cmd));
271
+ }
272
+ catch (error) {
273
+ fail(error, spinner);
274
+ }
275
+ }
276
+ function addTaskCommands(parent) {
277
+ const task = new Command('task')
278
+ .alias('tasks')
279
+ .description('Call task tools on a target coconut');
280
+ addTargetOptions(task);
281
+ addTargetOptions(task.command('list'))
282
+ .description('List tasks on a target coconut')
283
+ .option('-s, --status <status>', 'Filter by task status')
284
+ .option('-p, --priority <priority>', 'Filter by priority')
285
+ .option('-a, --author <author>', 'Filter by author')
286
+ .option('-q, --search <query>', 'Search query')
287
+ .option('-t, --tags <tags>', 'Comma-separated tags')
288
+ .action(async (options, cmd) => {
289
+ const args = {};
290
+ if (options.status)
291
+ args.status = options.status;
292
+ if (options.priority)
293
+ args.priority = options.priority;
294
+ if (options.author)
295
+ args.author = options.author;
296
+ if (options.search)
297
+ args.q = options.search;
298
+ if (options.tags)
299
+ args.tags = options.tags;
300
+ await runTool(cmd, 'tasks_list', args, options);
301
+ });
302
+ addTargetOptions(task.command('get'))
303
+ .alias('show')
304
+ .description('Get one task from a target coconut')
305
+ .argument('<taskId>', 'Task id')
306
+ .action(async (taskId, options, cmd) => {
307
+ await runTool(cmd, 'tasks_get', { taskId }, options);
308
+ });
309
+ addTargetOptions(task.command('create'))
310
+ .description('Create a task on a target coconut')
311
+ .argument('<title>', 'Task title')
312
+ .option('-c, --content <content>', 'Task body content; defaults to title')
313
+ .option('-p, --priority <priority>', 'Task priority')
314
+ .option('-t, --tags <tags>', 'Comma-separated tags')
315
+ .action(async (title, options, cmd) => {
316
+ const metadata = {};
317
+ if (options.priority)
318
+ metadata.priority = options.priority;
319
+ if (options.tags)
320
+ metadata.tags = options.tags.split(',').map((tag) => tag.trim()).filter(Boolean);
321
+ const args = {
322
+ title,
323
+ content: options.content ?? title,
324
+ };
325
+ if (Object.keys(metadata).length > 0)
326
+ args.metadata = metadata;
327
+ await runTool(cmd, 'tasks_create', args, options);
328
+ });
329
+ addTargetOptions(task.command('update'))
330
+ .description('Update a task on a target coconut')
331
+ .argument('<taskId>', 'Task id')
332
+ .option('--title <title>', 'New task title')
333
+ .option('-c, --content <content>', 'New task body content')
334
+ .option('-s, --status <status>', 'New task status')
335
+ .option('-p, --priority <priority>', 'New task priority')
336
+ .option('-t, --tags <tags>', 'Comma-separated replacement tags')
337
+ .action(async (taskId, options, cmd) => {
338
+ const args = { taskId };
339
+ if (options.title)
340
+ args.title = options.title;
341
+ if (options.content)
342
+ args.content = options.content;
343
+ if (options.status)
344
+ args.status = options.status;
345
+ if (options.priority)
346
+ args.priority = options.priority;
347
+ if (options.tags)
348
+ args.tags = options.tags.split(',').map((tag) => tag.trim()).filter(Boolean);
349
+ await runTool(cmd, 'task_update', args, options);
350
+ });
351
+ parent.addCommand(task);
352
+ }
353
+ function addKnowledgeCommands(parent) {
354
+ const knowledge = new Command('knowledge')
355
+ .alias('know')
356
+ .description('Call knowledge tools on a target coconut');
357
+ addTargetOptions(knowledge);
358
+ addTargetOptions(knowledge.command('search'))
359
+ .description('Search knowledge documents on a target coconut')
360
+ .argument('<query>', 'Search query')
361
+ .option('-l, --limit <number>', 'Maximum results')
362
+ .action(async (query, options, cmd) => {
363
+ const args = { q: query };
364
+ if (options.limit)
365
+ args.limit = Number.parseInt(options.limit, 10);
366
+ await runTool(cmd, 'knowledge_search', args, options);
367
+ });
368
+ addTargetOptions(knowledge.command('get'))
369
+ .description('Get a knowledge document from a target coconut')
370
+ .argument('<filename>', 'Document filename')
371
+ .action(async (filename, options, cmd) => {
372
+ await runTool(cmd, 'knowledge_get', { filename }, options);
373
+ });
374
+ addTargetOptions(knowledge.command('create'))
375
+ .description('Create a knowledge document on a target coconut')
376
+ .argument('<title>', 'Document title')
377
+ .option('-c, --content <content>', 'Markdown content')
378
+ .option('-f, --file <path>', 'Read markdown content from file')
379
+ .option('-t, --tags <tags>', 'Comma-separated tags')
380
+ .action(async (title, options, cmd) => {
381
+ if (!options.content && !options.file) {
382
+ console.error(chalk.red('Error:'), 'either --content or --file is required');
383
+ process.exit(1);
384
+ }
385
+ const args = {
386
+ title,
387
+ content: options.file ? readFileSync(options.file, 'utf-8') : options.content,
388
+ };
389
+ if (options.tags)
390
+ args.tags = options.tags.split(',').map((tag) => tag.trim()).filter(Boolean);
391
+ await runTool(cmd, 'knowledge_create', args, options);
392
+ });
393
+ addTargetOptions(knowledge.command('update'))
394
+ .description('Update a knowledge document on a target coconut')
395
+ .argument('<filename>', 'Document filename')
396
+ .option('--title <title>', 'New document title')
397
+ .option('-c, --content <content>', 'New markdown content')
398
+ .option('-f, --file <path>', 'Read new markdown content from file')
399
+ .option('-t, --tags <tags>', 'Comma-separated replacement tags')
400
+ .action(async (filename, options, cmd) => {
401
+ const args = { filename };
402
+ if (options.title)
403
+ args.title = options.title;
404
+ if (options.file)
405
+ args.content = readFileSync(options.file, 'utf-8');
406
+ if (options.content)
407
+ args.content = options.content;
408
+ if (options.tags)
409
+ args.tags = options.tags.split(',').map((tag) => tag.trim()).filter(Boolean);
410
+ await runTool(cmd, 'knowledge_update', args, options);
411
+ });
412
+ parent.addCommand(knowledge);
413
+ }
414
+ function addSkillCommands(parent) {
415
+ const skill = new Command('skill')
416
+ .alias('skills')
417
+ .description('Call skill tools on a target coconut');
418
+ addTargetOptions(skill);
419
+ addTargetOptions(skill.command('list'))
420
+ .alias('ls')
421
+ .description('List skills on a target coconut')
422
+ .action(async (options, cmd) => {
423
+ await runTool(cmd, 'skills_list', {}, options);
424
+ });
425
+ addTargetOptions(skill.command('get'))
426
+ .alias('show')
427
+ .description('Get one skill from a target coconut')
428
+ .argument('<skillId>', 'Skill id')
429
+ .action(async (skillId, options, cmd) => {
430
+ await runTool(cmd, 'skills_get', { skillId }, options);
431
+ });
432
+ addTargetOptions(skill.command('create'))
433
+ .description('Create a skill on a target coconut')
434
+ .argument('<name>', 'Skill name')
435
+ .argument('<description>', 'Skill description')
436
+ .option('-c, --content <content>', 'Skill instructions')
437
+ .option('-f, --file <path>', 'Read skill instructions from file')
438
+ .option('-t, --allowed-tools <tools>', 'Space-separated list of allowed tools')
439
+ .option('--license <license>', 'License')
440
+ .option('--compatibility <compatibility>', 'Compatibility requirements')
441
+ .option('--metadata <json>', 'Additional metadata JSON object, or @path/to/file.json')
442
+ .action(async (name, description, options, cmd) => {
443
+ const args = { name, description };
444
+ if (options.file)
445
+ args.content = readFileSync(options.file, 'utf-8');
446
+ if (options.content)
447
+ args.content = options.content;
448
+ if (options.allowedTools)
449
+ args.allowedTools = options.allowedTools;
450
+ if (options.license)
451
+ args.license = options.license;
452
+ if (options.compatibility)
453
+ args.compatibility = options.compatibility;
454
+ if (options.metadata) {
455
+ try {
456
+ args.metadata = readJsonObject(options.metadata, '--metadata');
457
+ }
458
+ catch (error) {
459
+ fail(error);
460
+ }
461
+ }
462
+ await runTool(cmd, 'skills_create', args, options);
463
+ });
464
+ addTargetOptions(skill.command('update'))
465
+ .description('Update a skill on a target coconut')
466
+ .argument('<skillId>', 'Skill id')
467
+ .option('-n, --name <name>', 'New skill name')
468
+ .option('-d, --description <description>', 'New skill description')
469
+ .option('-c, --content <content>', 'New skill instructions')
470
+ .option('-f, --file <path>', 'Read new skill instructions from file')
471
+ .option('-t, --allowed-tools <tools>', 'Space-separated list of allowed tools')
472
+ .option('--license <license>', 'License')
473
+ .option('--compatibility <compatibility>', 'Compatibility requirements')
474
+ .option('--metadata <json>', 'Replacement metadata JSON object, or @path/to/file.json')
475
+ .action(async (skillId, options, cmd) => {
476
+ const args = { skillId };
477
+ if (options.name)
478
+ args.name = options.name;
479
+ if (options.description)
480
+ args.description = options.description;
481
+ if (options.file)
482
+ args.content = readFileSync(options.file, 'utf-8');
483
+ if (options.content)
484
+ args.content = options.content;
485
+ if (options.allowedTools)
486
+ args.allowedTools = options.allowedTools;
487
+ if (options.license)
488
+ args.license = options.license;
489
+ if (options.compatibility)
490
+ args.compatibility = options.compatibility;
491
+ if (options.metadata) {
492
+ try {
493
+ args.metadata = readJsonObject(options.metadata, '--metadata');
494
+ }
495
+ catch (error) {
496
+ fail(error);
497
+ }
498
+ }
499
+ await runTool(cmd, 'skills_update', args, options);
500
+ });
501
+ addTargetOptions(skill.command('delete'))
502
+ .alias('remove')
503
+ .description('Delete a skill on a target coconut')
504
+ .argument('<skillId>', 'Skill id')
505
+ .action(async (skillId, options, cmd) => {
506
+ await runTool(cmd, 'skills_delete', { skillId }, options);
507
+ });
508
+ parent.addCommand(skill);
509
+ }
510
+ function addJobCommands(parent) {
511
+ const job = new Command('job')
512
+ .alias('jobs')
513
+ .description('Call job tools on a target coconut');
514
+ addTargetOptions(job);
515
+ addTargetOptions(job.command('list'))
516
+ .alias('ls')
517
+ .description('List jobs for a target coconut')
518
+ .action(async (options, cmd) => {
519
+ await runTool(cmd, 'jobs_list', {}, options);
520
+ });
521
+ addTargetOptions(job.command('get'))
522
+ .alias('show')
523
+ .description('Get one job definition from a target coconut')
524
+ .argument('<jobId>', 'Job id')
525
+ .action(async (jobId, options, cmd) => {
526
+ await runTool(cmd, 'jobs_get', { jobId }, options);
527
+ });
528
+ parent.addCommand(job);
529
+ }
530
+ export function createCoconutCommand(options = {}) {
531
+ const coconut = new Command('coconut')
532
+ .description('Call peer coconut MCP tools through the control plane')
533
+ .option('-t, --token <token>', 'Callback token (default: $COCONUT_CALLBACK_TOKEN or auth.json)')
534
+ .option('--host <url>', 'Control plane base URL (default: $COCONUT_HOST or https://app.coconut.dev)')
535
+ .option('-r, --raw', 'Output raw JSON-RPC envelope')
536
+ .option('--json', 'Output raw JSON-RPC envelope (alias for --raw)')
537
+ .option('--id <coconutId>', 'Default target coconut id for subcommands that need one')
538
+ .option('--name <name>', 'Default target coconut name for subcommands that need one')
539
+ .addHelpText('after', `
540
+ Examples:
541
+ ${chalk.gray('# List visible peer coconuts')}
542
+ nut coconut list
543
+
544
+ ${chalk.gray('# Call any MCP tool directly')}
545
+ nut coconut call tasks_list --name coconut-research
546
+ nut coconut call tasks_create --id <id> --arg title="Review docs" --arg content="Check the new API docs"
547
+
548
+ ${chalk.gray('# Thin wrappers for common tool families')}
549
+ nut coconut task list --name coconut-research
550
+ nut coconut knowledge search runbook --name coconut-research --limit 5
551
+ nut coconut skill list --name coconut-research
552
+ nut coconut job list --name coconut-research
553
+
554
+ ${chalk.gray('# Discover currently exposed MCP tools')}
555
+ nut coconut tools
556
+ `);
557
+ if (options.deprecatedUnderConnect) {
558
+ coconut.hook('preAction', () => {
559
+ console.warn(chalk.yellow('Warning: "nut connect coconut" is deprecated. Use "nut coconut" instead.\n'));
560
+ });
561
+ }
562
+ coconut
563
+ .command('tools')
564
+ .description('List MCP tools exposed by the control plane')
565
+ .action(async (_options, cmd) => {
566
+ const auth = getAuth(cmd);
567
+ const spinner = ora('Listing tools...').start();
568
+ try {
569
+ const envelope = await listTools(auth);
570
+ spinner.stop();
571
+ printEnvelope(envelope, rawOutput(cmd));
572
+ }
573
+ catch (error) {
574
+ fail(error, spinner);
575
+ }
576
+ });
577
+ coconut
578
+ .command('list')
579
+ .description('List visible peer coconuts')
580
+ .action(async (_options, cmd) => {
581
+ await runTool(cmd, 'coconuts_list', {});
582
+ });
583
+ coconut
584
+ .command('health')
585
+ .description('List visible coconut health and latency')
586
+ .action(async (_options, cmd) => {
587
+ await runTool(cmd, 'coconuts_health_list', {});
588
+ });
589
+ addTargetOptions(coconut.command('context'))
590
+ .description('Get context documents from a target coconut')
591
+ .option('--keys <keys>', 'Comma-separated subset: role,agents,team,memory')
592
+ .action(async (commandOptions, cmd) => {
593
+ const args = {};
594
+ if (commandOptions.keys)
595
+ args.keys = commandOptions.keys.split(',').map((key) => key.trim()).filter(Boolean);
596
+ await runTool(cmd, 'context_get', args, commandOptions);
597
+ });
598
+ addTargetOptions(coconut.command('call', { isDefault: true }))
599
+ .description('Invoke an MCP tool by name via JSON-RPC tools/call')
600
+ .argument('<tool_name>', 'MCP tool name (e.g. coconuts_list, tasks_list)')
601
+ .option('--args <json>', 'Tool arguments as JSON object, or @path/to/file.json to read from disk')
602
+ .option('--arg <key=value>', 'Add/override one tool argument; JSON values are accepted', collect, [])
603
+ .action(async (toolName, commandOptions, cmd) => {
604
+ if (!toolName || !toolName.trim()) {
605
+ console.error(chalk.red('Error:'), 'tool name is required');
606
+ process.exit(1);
607
+ }
608
+ let args;
609
+ try {
610
+ args = {
611
+ ...readJsonObject(commandOptions.args, '--args'),
612
+ ...parseArgAssignments(commandOptions.arg),
613
+ };
614
+ }
615
+ catch (error) {
616
+ fail(error);
617
+ }
618
+ await runTool(cmd, toolName, args, commandOptions);
619
+ });
620
+ addTaskCommands(coconut);
621
+ addKnowledgeCommands(coconut);
622
+ addSkillCommands(coconut);
623
+ addJobCommands(coconut);
624
+ return coconut;
625
+ }
626
+ export const coconutCommand = createCoconutCommand();
627
+ //# sourceMappingURL=coconut.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coconut.js","sourceRoot":"","sources":["../../src/commands/coconut.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6FpC,eAAO,MAAM,cAAc,SAmBzB,CAAC"}
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+DpC,eAAO,MAAM,cAAc,SAmBzB,CAAC"}
@@ -2,9 +2,8 @@ import { Command } from 'commander';
2
2
  import chalk from 'chalk';
3
3
  import ora from 'ora';
4
4
  import { table } from 'table';
5
- import { readFileSync } from 'node:fs';
6
- import { getAuthConfigPath } from '@lovelybunch/core';
7
- const DEFAULT_HOST = 'https://app.coconut.dev';
5
+ import { createCoconutCommand } from './coconut.js';
6
+ import { resolveControlPlaneAuth } from '../lib/control-plane.js';
8
7
  const BASE_URL_MAP = {
9
8
  google_drive: 'https://www.googleapis.com',
10
9
  hubspot: 'https://api.hubapi.com',
@@ -12,32 +11,8 @@ const BASE_URL_MAP = {
12
11
  notion: 'https://api.notion.com',
13
12
  github: 'https://api.github.com',
14
13
  };
15
- // Future: convenience shortcuts — e.g. google_drive.list → GET /drive/v3/files
16
- // const SHORTCUTS: Record<string, Record<string, { method: string; path: string }>> = {};
17
- function readCallbackTokenFromAuthConfig() {
18
- try {
19
- const authConfig = JSON.parse(readFileSync(getAuthConfigPath(), 'utf-8'));
20
- const token = authConfig.controlPlane?.callbackToken;
21
- return typeof token === 'string' && token.trim() ? token.trim() : undefined;
22
- }
23
- catch {
24
- return undefined;
25
- }
26
- }
27
14
  function resolveAuth(options) {
28
- const token = options.token || process.env.COCONUT_CALLBACK_TOKEN || readCallbackTokenFromAuthConfig();
29
- const host = options.host || process.env.COCONUT_HOST || DEFAULT_HOST;
30
- if (!token) {
31
- console.error(chalk.red('Error: No callback token provided.'));
32
- console.error(chalk.yellow('\nSet the COCONUT_CALLBACK_TOKEN environment variable:'));
33
- console.error(chalk.gray(' export COCONUT_CALLBACK_TOKEN=cpt_xxx'));
34
- console.error(chalk.yellow('\nOr pass it as a flag:'));
35
- console.error(chalk.gray(' nut connect --token cpt_xxx list'));
36
- console.error(chalk.yellow('\nOr save it in auth.json:'));
37
- console.error(chalk.gray(` ${getAuthConfigPath()}`));
38
- process.exit(1);
39
- }
40
- return { token, host };
15
+ return resolveControlPlaneAuth(options, { tokenFlagExample: 'nut connect --token cpt_xxx list' });
41
16
  }
42
17
  async function fetchAccounts(host, token) {
43
18
  const url = `${host}/api/connectors/accounts`;
@@ -214,4 +189,5 @@ connectCommand
214
189
  process.exit(1);
215
190
  }
216
191
  });
192
+ connectCommand.addCommand(createCoconutCommand({ deprecatedUnderConnect: true }));
217
193
  //# sourceMappingURL=connect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export declare const DEFAULT_CONTROL_PLANE_HOST = "https://app.coconut.dev";
2
+ export interface ControlPlaneOptions {
3
+ token?: string;
4
+ host?: string;
5
+ }
6
+ export interface ControlPlaneAuth {
7
+ token: string;
8
+ host: string;
9
+ }
10
+ export interface ResolveControlPlaneAuthOptions {
11
+ tokenFlagExample?: string;
12
+ }
13
+ export declare function resolveControlPlaneAuth(options: ControlPlaneOptions, resolveOptions?: ResolveControlPlaneAuthOptions): ControlPlaneAuth;
14
+ //# sourceMappingURL=control-plane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-plane.d.ts","sourceRoot":"","sources":["../../src/lib/control-plane.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,0BAA0B,4BAA4B,CAAC;AAEpE,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,8BAA8B;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAYD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,mBAAmB,EAC5B,cAAc,GAAE,8BAAmC,GAClD,gBAAgB,CAgBlB"}
@@ -0,0 +1,30 @@
1
+ import chalk from 'chalk';
2
+ import { readFileSync } from 'node:fs';
3
+ import { getAuthConfigPath } from '@lovelybunch/core';
4
+ export const DEFAULT_CONTROL_PLANE_HOST = 'https://app.coconut.dev';
5
+ function readCallbackTokenFromAuthConfig() {
6
+ try {
7
+ const authConfig = JSON.parse(readFileSync(getAuthConfigPath(), 'utf-8'));
8
+ const token = authConfig.controlPlane?.callbackToken;
9
+ return typeof token === 'string' && token.trim() ? token.trim() : undefined;
10
+ }
11
+ catch {
12
+ return undefined;
13
+ }
14
+ }
15
+ export function resolveControlPlaneAuth(options, resolveOptions = {}) {
16
+ const token = options.token || process.env.COCONUT_CALLBACK_TOKEN || readCallbackTokenFromAuthConfig();
17
+ const host = options.host || process.env.COCONUT_HOST || DEFAULT_CONTROL_PLANE_HOST;
18
+ if (!token) {
19
+ console.error(chalk.red('Error: No callback token provided.'));
20
+ console.error(chalk.yellow('\nSet the COCONUT_CALLBACK_TOKEN environment variable:'));
21
+ console.error(chalk.gray(' export COCONUT_CALLBACK_TOKEN=cpt_xxx'));
22
+ console.error(chalk.yellow('\nOr pass it as a flag:'));
23
+ console.error(chalk.gray(` ${resolveOptions.tokenFlagExample ?? 'nut coconut --token cpt_xxx list'}`));
24
+ console.error(chalk.yellow('\nOr save it in auth.json:'));
25
+ console.error(chalk.gray(` ${getAuthConfigPath()}`));
26
+ process.exit(1);
27
+ }
28
+ return { token, host };
29
+ }
30
+ //# sourceMappingURL=control-plane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-plane.js","sourceRoot":"","sources":["../../src/lib/control-plane.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD,MAAM,CAAC,MAAM,0BAA0B,GAAG,yBAAyB,CAAC;AAgBpE,SAAS,+BAA+B;IACtC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,iBAAiB,EAAE,EAAE,OAAO,CAAC,CAAwB,CAAC;QACjG,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,EAAE,aAAa,CAAC;QACrD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,OAA4B,EAC5B,iBAAiD,EAAE;IAEnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,+BAA+B,EAAE,CAAC;IACvG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,0BAA0B,CAAC;IAEpF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,wDAAwD,CAAC,CAAC,CAAC;QACtF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,cAAc,CAAC,gBAAgB,IAAI,kCAAkC,EAAE,CAAC,CAAC,CAAC;QACxG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lovelybunch/cli",
3
- "version": "1.0.78-alpha.0",
3
+ "version": "1.0.78-alpha.2",
4
4
  "description": "Command-line interface for Coconut",
5
5
  "type": "module",
6
6
  "main": "./dist/cli.js",
@@ -37,9 +37,9 @@
37
37
  "ora": "^8.0.1",
38
38
  "table": "^6.8.1",
39
39
  "ws": "^8.14.2",
40
- "@lovelybunch/api": "1.0.78-alpha.0",
41
- "@lovelybunch/core": "1.0.78-alpha.0",
42
- "@lovelybunch/types": "1.0.78-alpha.0"
40
+ "@lovelybunch/api": "1.0.78-alpha.2",
41
+ "@lovelybunch/core": "1.0.78-alpha.2",
42
+ "@lovelybunch/types": "1.0.78-alpha.2"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/adm-zip": "^0.5.7",