@shardworks/nexus 0.1.62 → 0.1.63

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.
@@ -0,0 +1,2 @@
1
+ export declare function makeConveneCommand(): import("commander").Command;
2
+ //# sourceMappingURL=convene.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convene.d.ts","sourceRoot":"","sources":["../../src/commands/convene.ts"],"names":[],"mappings":"AAmBA,wBAAgB,kBAAkB,gCAyEjC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * convene command
3
+ *
4
+ * Start a multi-turn dialogue between animas. Each anima takes turns
5
+ * responding, seeing what the others said. Runs to completion.
6
+ *
7
+ * Usage:
8
+ * nsg convene steward artificer --topic "discuss X" --turns 10
9
+ */
10
+ import { createCommand } from 'commander';
11
+ import { createConversation, takeTurn, nextParticipant, formatConveneMessage, showConversation, } from '@shardworks/nexus-core';
12
+ import { resolveHome } from "../resolve-home.js";
13
+ export function makeConveneCommand() {
14
+ return createCommand('convene')
15
+ .description('Start a multi-turn dialogue between animas')
16
+ .argument('<animas...>', 'Anima names to participate (at least 2)')
17
+ .option('--topic <text>', 'Topic or prompt to seed the conversation')
18
+ .option('--turns <n>', 'Maximum number of turns', parseInt)
19
+ .action(async (animaNames, options, cmd) => {
20
+ const home = resolveHome(cmd);
21
+ if (animaNames.length < 2) {
22
+ console.error('Error: convene requires at least 2 anima names.');
23
+ process.exitCode = 1;
24
+ return;
25
+ }
26
+ if (!options.topic) {
27
+ console.error('Error: --topic is required.');
28
+ process.exitCode = 1;
29
+ return;
30
+ }
31
+ const turnLimit = options.turns ?? 10;
32
+ // Create the conversation
33
+ const { conversationId, participants } = createConversation(home, {
34
+ kind: 'convene',
35
+ topic: options.topic,
36
+ turnLimit,
37
+ participants: animaNames.map(name => ({ kind: 'anima', name })),
38
+ });
39
+ console.log(`Convene ${conversationId} started`);
40
+ console.log(`Participants: ${participants.map(p => p.name).join(', ')}`);
41
+ console.log(`Topic: ${options.topic}`);
42
+ console.log(`Turn limit: ${turnLimit}`);
43
+ console.log('─'.repeat(60));
44
+ console.log();
45
+ // Run the dialogue
46
+ let turnCount = 0;
47
+ while (true) {
48
+ const next = nextParticipant(home, conversationId);
49
+ if (!next)
50
+ break;
51
+ const message = formatConveneMessage(home, conversationId, next.participantId);
52
+ console.log(`[Turn ${turnCount + 1}] ${next.name}:`);
53
+ console.log();
54
+ let responseText = '';
55
+ for await (const chunk of takeTurn(home, conversationId, next.participantId, message)) {
56
+ if (chunk.type === 'text') {
57
+ process.stdout.write(chunk.text);
58
+ responseText += chunk.text;
59
+ }
60
+ else if (chunk.type === 'turn_complete') {
61
+ const cost = chunk.costUsd ? ` ($${chunk.costUsd.toFixed(4)})` : '';
62
+ console.log();
63
+ console.log(` [turn ${chunk.turnNumber} complete${cost}]`);
64
+ }
65
+ }
66
+ console.log();
67
+ console.log('─'.repeat(60));
68
+ console.log();
69
+ turnCount++;
70
+ }
71
+ // Summary
72
+ const detail = showConversation(home, conversationId);
73
+ if (detail) {
74
+ console.log(`Convene complete: ${detail.turnCount} turns, $${detail.totalCostUsd.toFixed(4)} total cost`);
75
+ }
76
+ });
77
+ }
78
+ //# sourceMappingURL=convene.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convene.js","sourceRoot":"","sources":["../../src/commands/convene.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function makeConversationCommand(): import("commander").Command;
2
+ //# sourceMappingURL=conversation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/commands/conversation.ts"],"names":[],"mappings":"AAkBA,wBAAgB,uBAAuB,gCAyJtC"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * conversation command group
3
+ *
4
+ * Manage conversations — multi-turn interactions with animas.
5
+ *
6
+ * Subcommands:
7
+ * nsg conversation list — list conversations
8
+ * nsg conversation show — show conversation detail with turns
9
+ * nsg conversation end — end an active conversation
10
+ */
11
+ import { createCommand } from 'commander';
12
+ import { listConversations, showConversation, endConversation, } from '@shardworks/nexus-core';
13
+ import { resolveHome } from "../resolve-home.js";
14
+ export function makeConversationCommand() {
15
+ const cmd = createCommand('conversation')
16
+ .description('Manage conversations (multi-turn interactions)')
17
+ .alias('conv');
18
+ // ── list ───────────────────────────────────────────────────────────
19
+ cmd
20
+ .command('list')
21
+ .description('List conversations')
22
+ .option('--status <status>', 'Filter by status (active, concluded, abandoned)')
23
+ .option('--kind <kind>', 'Filter by kind (consult, convene)')
24
+ .option('--limit <n>', 'Maximum results', parseInt)
25
+ .action((options, command) => {
26
+ const home = resolveHome(command);
27
+ const conversations = listConversations(home, {
28
+ status: options.status,
29
+ kind: options.kind,
30
+ limit: options.limit,
31
+ });
32
+ if (conversations.length === 0) {
33
+ console.log('No conversations found.');
34
+ return;
35
+ }
36
+ // Table output
37
+ console.log('ID'.padEnd(16) +
38
+ 'Kind'.padEnd(10) +
39
+ 'Status'.padEnd(12) +
40
+ 'Turns'.padEnd(8) +
41
+ 'Cost'.padEnd(10) +
42
+ 'Participants'.padEnd(30) +
43
+ 'Created');
44
+ console.log('─'.repeat(100));
45
+ for (const c of conversations) {
46
+ const participants = c.participants.map(p => p.name).join(', ');
47
+ const cost = c.totalCostUsd > 0 ? `$${c.totalCostUsd.toFixed(4)}` : '—';
48
+ const turns = c.turnLimit
49
+ ? `${c.turnCount}/${c.turnLimit}`
50
+ : String(c.turnCount);
51
+ console.log(c.id.padEnd(16) +
52
+ c.kind.padEnd(10) +
53
+ c.status.padEnd(12) +
54
+ turns.padEnd(8) +
55
+ cost.padEnd(10) +
56
+ participants.slice(0, 28).padEnd(30) +
57
+ c.createdAt.slice(0, 19));
58
+ }
59
+ });
60
+ // ── show ───────────────────────────────────────────────────────────
61
+ cmd
62
+ .command('show <id>')
63
+ .description('Show conversation detail with turns')
64
+ .action((id, _options, command) => {
65
+ const home = resolveHome(command);
66
+ const detail = showConversation(home, id);
67
+ if (!detail) {
68
+ console.error(`Conversation "${id}" not found.`);
69
+ process.exitCode = 1;
70
+ return;
71
+ }
72
+ console.log(`Conversation: ${detail.id}`);
73
+ console.log(`Kind: ${detail.kind}`);
74
+ console.log(`Status: ${detail.status}`);
75
+ if (detail.topic) {
76
+ console.log(`Topic: ${detail.topic.slice(0, 80)}${detail.topic.length > 80 ? '...' : ''}`);
77
+ }
78
+ console.log(`Turn Limit: ${detail.turnLimit ?? 'none'}`);
79
+ console.log(`Turns: ${detail.turnCount}`);
80
+ console.log(`Total Cost: ${detail.totalCostUsd > 0 ? `$${detail.totalCostUsd.toFixed(4)}` : '—'}`);
81
+ console.log(`Created: ${detail.createdAt}`);
82
+ if (detail.endedAt) {
83
+ console.log(`Ended: ${detail.endedAt}`);
84
+ }
85
+ console.log(`\nParticipants:`);
86
+ for (const p of detail.participants) {
87
+ console.log(` ${p.name} (${p.kind})`);
88
+ }
89
+ if (detail.turns.length > 0) {
90
+ console.log(`\nTurns:`);
91
+ console.log(' #'.padEnd(5) +
92
+ 'Participant'.padEnd(20) +
93
+ 'Cost'.padEnd(10) +
94
+ 'Duration'.padEnd(10) +
95
+ 'Exit'.padEnd(6) +
96
+ 'Session');
97
+ console.log(' ' + '─'.repeat(70));
98
+ for (const t of detail.turns) {
99
+ const cost = t.costUsd != null ? `$${t.costUsd.toFixed(4)}` : '—';
100
+ const duration = t.durationMs != null ? `${(t.durationMs / 1000).toFixed(1)}s` : '—';
101
+ const exit = t.exitCode != null ? String(t.exitCode) : '—';
102
+ console.log(` ${String(t.turnNumber).padEnd(3)}` +
103
+ t.participant.padEnd(20) +
104
+ cost.padEnd(10) +
105
+ duration.padEnd(10) +
106
+ exit.padEnd(6) +
107
+ t.sessionId);
108
+ // Show the prompt (human's message in a consult) if available
109
+ if (t.prompt) {
110
+ const preview = t.prompt.slice(0, 72).replace(/\n/g, ' ');
111
+ console.log(` → ${preview}${t.prompt.length > 72 ? '...' : ''}`);
112
+ }
113
+ }
114
+ }
115
+ });
116
+ // ── end ────────────────────────────────────────────────────────────
117
+ cmd
118
+ .command('end <id>')
119
+ .description('End an active conversation')
120
+ .option('--reason <reason>', 'Reason: concluded or abandoned', 'concluded')
121
+ .action((id, options, command) => {
122
+ const home = resolveHome(command);
123
+ const reason = options.reason;
124
+ if (reason !== 'concluded' && reason !== 'abandoned') {
125
+ console.error('Error: --reason must be "concluded" or "abandoned".');
126
+ process.exitCode = 1;
127
+ return;
128
+ }
129
+ try {
130
+ endConversation(home, id, reason);
131
+ console.log(`Conversation ${id} ${reason}.`);
132
+ }
133
+ catch (err) {
134
+ console.error(`Error: ${err.message}`);
135
+ process.exitCode = 1;
136
+ }
137
+ });
138
+ return cmd;
139
+ }
140
+ //# sourceMappingURL=conversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/commands/conversation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,OAAO,6BAGkE,CAAC"}
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,OAAO,6BAGkE,CAAC"}
package/dist/program.js CHANGED
@@ -17,6 +17,8 @@ import { makeDispatchCommand } from "./commands/dispatch.js";
17
17
  import { makeAuditCommand } from "./commands/audit.js";
18
18
  import { makeDashboardCommand } from "./commands/dashboard.js";
19
19
  import { makeUpgradeCommand } from "./commands/upgrade.js";
20
+ import { makeConversationCommand } from "./commands/conversation.js";
21
+ import { makeConveneCommand } from "./commands/convene.js";
20
22
  // Register the Claude Code session provider so core's session funnel
21
23
  // can launch claude sessions.
22
24
  registerSessionProvider(claudeCodeProvider);
@@ -27,6 +29,7 @@ export const program = createCommand('nsg')
27
29
  // ── Top-level commands (special operations, not noun-verb) ─────────────
28
30
  program.addCommand(makeInitCommand());
29
31
  program.addCommand(makeConsultCommand());
32
+ program.addCommand(makeConveneCommand());
30
33
  program.addCommand(makeStatusCommand());
31
34
  program.addCommand(makeSignalCommand());
32
35
  // ── Noun groups ────────────────────────────────────────────────────────
@@ -53,6 +56,8 @@ program.addCommand(makeEventCommand());
53
56
  program.addCommand(makeDispatchCommand());
54
57
  // nsg audit [list]
55
58
  program.addCommand(makeAuditCommand());
59
+ // nsg conversation [list|show|end]
60
+ program.addCommand(makeConversationCommand());
56
61
  // nsg dashboard
57
62
  program.addCommand(makeDashboardCommand());
58
63
  // nsg upgrade [--dry-run]
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shardworks/nexus",
3
- "version": "0.1.62",
3
+ "version": "0.1.63",
4
4
  "license": "ISC",
5
5
  "repository": {
6
6
  "type": "git",
@@ -27,9 +27,9 @@
27
27
  "@shardworks/guild-monitor": "0.1.4",
28
28
  "better-sqlite3": "12.8.0",
29
29
  "commander": "14.0.3",
30
- "@shardworks/claude-code-session-provider": "0.1.62",
31
- "@shardworks/nexus-core": "0.1.62",
32
- "@shardworks/nexus-stdlib": "0.1.62"
30
+ "@shardworks/claude-code-session-provider": "0.1.63",
31
+ "@shardworks/nexus-core": "0.1.63",
32
+ "@shardworks/nexus-stdlib": "0.1.63"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@commander-js/extra-typings": "14.0.0",