@shardworks/nexus 0.1.100 → 0.1.102

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 (150) hide show
  1. package/README.md +208 -0
  2. package/dist/cli.d.ts +4 -8
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +4 -8
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/index.d.ts +14 -0
  7. package/dist/commands/index.d.ts.map +1 -0
  8. package/dist/commands/index.js +27 -0
  9. package/dist/commands/index.js.map +1 -0
  10. package/dist/commands/init.d.ts +19 -0
  11. package/dist/commands/init.d.ts.map +1 -0
  12. package/dist/commands/init.js +90 -0
  13. package/dist/commands/init.js.map +1 -0
  14. package/dist/commands/plugin.d.ts +28 -0
  15. package/dist/commands/plugin.d.ts.map +1 -0
  16. package/dist/commands/plugin.js +174 -0
  17. package/dist/commands/plugin.js.map +1 -0
  18. package/dist/commands/status.d.ts +16 -0
  19. package/dist/commands/status.d.ts.map +1 -0
  20. package/dist/commands/status.js +54 -0
  21. package/dist/commands/status.js.map +1 -0
  22. package/dist/commands/test-helpers.d.ts +18 -0
  23. package/dist/commands/test-helpers.d.ts.map +1 -0
  24. package/dist/commands/test-helpers.js +56 -0
  25. package/dist/commands/test-helpers.js.map +1 -0
  26. package/dist/commands/upgrade.d.ts +13 -0
  27. package/dist/commands/upgrade.d.ts.map +1 -0
  28. package/dist/commands/upgrade.js +21 -0
  29. package/dist/commands/upgrade.js.map +1 -0
  30. package/dist/commands/version.d.ts +15 -0
  31. package/dist/commands/version.d.ts.map +1 -0
  32. package/dist/commands/version.js +52 -0
  33. package/dist/commands/version.js.map +1 -0
  34. package/dist/helpers.d.ts +27 -0
  35. package/dist/helpers.d.ts.map +1 -0
  36. package/dist/helpers.js +48 -0
  37. package/dist/helpers.js.map +1 -0
  38. package/dist/index.d.ts +2 -0
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +2 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/program.d.ts +11 -26
  43. package/dist/program.d.ts.map +1 -1
  44. package/dist/program.js +45 -92
  45. package/dist/program.js.map +1 -1
  46. package/package.json +9 -20
  47. package/dist/v1/cli.d.ts +0 -3
  48. package/dist/v1/cli.d.ts.map +0 -1
  49. package/dist/v1/cli.js +0 -4
  50. package/dist/v1/cli.js.map +0 -1
  51. package/dist/v1/commands/anima.d.ts +0 -2
  52. package/dist/v1/commands/anima.d.ts.map +0 -1
  53. package/dist/v1/commands/anima.js +0 -176
  54. package/dist/v1/commands/anima.js.map +0 -1
  55. package/dist/v1/commands/audit.d.ts +0 -2
  56. package/dist/v1/commands/audit.d.ts.map +0 -1
  57. package/dist/v1/commands/audit.js +0 -42
  58. package/dist/v1/commands/audit.js.map +0 -1
  59. package/dist/v1/commands/clock.d.ts +0 -2
  60. package/dist/v1/commands/clock.d.ts.map +0 -1
  61. package/dist/v1/commands/clock.js +0 -185
  62. package/dist/v1/commands/clock.js.map +0 -1
  63. package/dist/v1/commands/consult.d.ts +0 -9
  64. package/dist/v1/commands/consult.d.ts.map +0 -1
  65. package/dist/v1/commands/consult.js +0 -105
  66. package/dist/v1/commands/consult.js.map +0 -1
  67. package/dist/v1/commands/convene.d.ts +0 -2
  68. package/dist/v1/commands/convene.d.ts.map +0 -1
  69. package/dist/v1/commands/convene.js +0 -78
  70. package/dist/v1/commands/convene.js.map +0 -1
  71. package/dist/v1/commands/conversation.d.ts +0 -2
  72. package/dist/v1/commands/conversation.d.ts.map +0 -1
  73. package/dist/v1/commands/conversation.js +0 -140
  74. package/dist/v1/commands/conversation.js.map +0 -1
  75. package/dist/v1/commands/dashboard.d.ts +0 -2
  76. package/dist/v1/commands/dashboard.d.ts.map +0 -1
  77. package/dist/v1/commands/dashboard.js +0 -36
  78. package/dist/v1/commands/dashboard.js.map +0 -1
  79. package/dist/v1/commands/dispatch.d.ts +0 -2
  80. package/dist/v1/commands/dispatch.d.ts.map +0 -1
  81. package/dist/v1/commands/dispatch.js +0 -41
  82. package/dist/v1/commands/dispatch.js.map +0 -1
  83. package/dist/v1/commands/event.d.ts +0 -2
  84. package/dist/v1/commands/event.d.ts.map +0 -1
  85. package/dist/v1/commands/event.js +0 -65
  86. package/dist/v1/commands/event.js.map +0 -1
  87. package/dist/v1/commands/init.d.ts +0 -2
  88. package/dist/v1/commands/init.d.ts.map +0 -1
  89. package/dist/v1/commands/init.js +0 -98
  90. package/dist/v1/commands/init.js.map +0 -1
  91. package/dist/v1/commands/install-tool.d.ts +0 -2
  92. package/dist/v1/commands/install-tool.d.ts.map +0 -1
  93. package/dist/v1/commands/install-tool.js +0 -74
  94. package/dist/v1/commands/install-tool.js.map +0 -1
  95. package/dist/v1/commands/rehydrate.d.ts +0 -2
  96. package/dist/v1/commands/rehydrate.d.ts.map +0 -1
  97. package/dist/v1/commands/rehydrate.js +0 -43
  98. package/dist/v1/commands/rehydrate.js.map +0 -1
  99. package/dist/v1/commands/remove-tool.d.ts +0 -2
  100. package/dist/v1/commands/remove-tool.d.ts.map +0 -1
  101. package/dist/v1/commands/remove-tool.js +0 -25
  102. package/dist/v1/commands/remove-tool.js.map +0 -1
  103. package/dist/v1/commands/session.d.ts +0 -2
  104. package/dist/v1/commands/session.d.ts.map +0 -1
  105. package/dist/v1/commands/session.js +0 -93
  106. package/dist/v1/commands/session.js.map +0 -1
  107. package/dist/v1/commands/signal.d.ts +0 -2
  108. package/dist/v1/commands/signal.d.ts.map +0 -1
  109. package/dist/v1/commands/signal.js +0 -36
  110. package/dist/v1/commands/signal.js.map +0 -1
  111. package/dist/v1/commands/status.d.ts +0 -2
  112. package/dist/v1/commands/status.d.ts.map +0 -1
  113. package/dist/v1/commands/status.js +0 -111
  114. package/dist/v1/commands/status.js.map +0 -1
  115. package/dist/v1/commands/tool.d.ts +0 -2
  116. package/dist/v1/commands/tool.d.ts.map +0 -1
  117. package/dist/v1/commands/tool.js +0 -47
  118. package/dist/v1/commands/tool.js.map +0 -1
  119. package/dist/v1/commands/upgrade-books.d.ts +0 -2
  120. package/dist/v1/commands/upgrade-books.d.ts.map +0 -1
  121. package/dist/v1/commands/upgrade-books.js +0 -33
  122. package/dist/v1/commands/upgrade-books.js.map +0 -1
  123. package/dist/v1/commands/upgrade.d.ts +0 -2
  124. package/dist/v1/commands/upgrade.d.ts.map +0 -1
  125. package/dist/v1/commands/upgrade.js +0 -222
  126. package/dist/v1/commands/upgrade.js.map +0 -1
  127. package/dist/v1/commands/version.d.ts +0 -2
  128. package/dist/v1/commands/version.d.ts.map +0 -1
  129. package/dist/v1/commands/version.js +0 -80
  130. package/dist/v1/commands/version.js.map +0 -1
  131. package/dist/v1/commands/workshop.d.ts +0 -2
  132. package/dist/v1/commands/workshop.d.ts.map +0 -1
  133. package/dist/v1/commands/workshop.js +0 -128
  134. package/dist/v1/commands/workshop.js.map +0 -1
  135. package/dist/v1/commands/writ.d.ts +0 -2
  136. package/dist/v1/commands/writ.d.ts.map +0 -1
  137. package/dist/v1/commands/writ.js +0 -202
  138. package/dist/v1/commands/writ.js.map +0 -1
  139. package/dist/v1/index.d.ts +0 -2
  140. package/dist/v1/index.d.ts.map +0 -1
  141. package/dist/v1/index.js +0 -2
  142. package/dist/v1/index.js.map +0 -1
  143. package/dist/v1/program.d.ts +0 -2
  144. package/dist/v1/program.d.ts.map +0 -1
  145. package/dist/v1/program.js +0 -70
  146. package/dist/v1/program.js.map +0 -1
  147. package/dist/v1/resolve-home.d.ts +0 -16
  148. package/dist/v1/resolve-home.d.ts.map +0 -1
  149. package/dist/v1/resolve-home.js +0 -18
  150. package/dist/v1/resolve-home.js.map +0 -1
@@ -1,185 +0,0 @@
1
- import { createCommand } from 'commander';
2
- import { readPendingEvents, clockTick, clockRun, clockStart, clockStop, clockStatus, } from '@shardworks/nexus-core';
3
- import { resolveHome } from "../resolve-home.js";
4
- /**
5
- * Format milliseconds as a human-readable uptime string.
6
- */
7
- function formatUptime(ms) {
8
- const seconds = Math.floor(ms / 1000);
9
- const minutes = Math.floor(seconds / 60);
10
- const hours = Math.floor(minutes / 60);
11
- const days = Math.floor(hours / 24);
12
- if (days > 0)
13
- return `${days}d ${hours % 24}h ${minutes % 60}m`;
14
- if (hours > 0)
15
- return `${hours}h ${minutes % 60}m ${seconds % 60}s`;
16
- if (minutes > 0)
17
- return `${minutes}m ${seconds % 60}s`;
18
- return `${seconds}s`;
19
- }
20
- /**
21
- * Print a warning if the daemon is running, return true if it is.
22
- */
23
- function warnIfDaemonRunning(home) {
24
- const status = clockStatus(home);
25
- if (status.running) {
26
- console.warn(`Warning: Clockworks daemon is running (PID ${status.pid}). Events are being processed automatically.`);
27
- return true;
28
- }
29
- return false;
30
- }
31
- export function makeClockCommand() {
32
- const clock = createCommand('clock')
33
- .description('Clockworks — process the guild event queue');
34
- // nsg clock list
35
- clock.addCommand(createCommand('list')
36
- .description('Show all pending (unprocessed) events')
37
- .action((_, cmd) => {
38
- const home = resolveHome(cmd);
39
- try {
40
- const events = readPendingEvents(home);
41
- if (events.length === 0) {
42
- console.log('No pending events.');
43
- return;
44
- }
45
- console.log(`${events.length} pending event${events.length === 1 ? '' : 's'}:\n`);
46
- for (const event of events) {
47
- const payloadSummary = event.payload
48
- ? ` — ${JSON.stringify(event.payload).slice(0, 80)}`
49
- : '';
50
- console.log(` #${event.id} ${event.name} (${event.emitter}, ${event.firedAt})${payloadSummary}`);
51
- }
52
- }
53
- catch (err) {
54
- console.error(`Error: ${err.message}`);
55
- process.exitCode = 1;
56
- }
57
- }));
58
- // nsg clock tick [id]
59
- clock.addCommand(createCommand('tick')
60
- .description('Process the next pending event, or a specific event by id')
61
- .argument('[id]', 'Specific event id to process')
62
- .action(async (id, _, cmd) => {
63
- const home = resolveHome(cmd);
64
- try {
65
- if (warnIfDaemonRunning(home))
66
- return;
67
- const result = await clockTick(home, id);
68
- if (!result) {
69
- console.log('No pending events to process.');
70
- return;
71
- }
72
- console.log(`Processed event #${result.eventId}: ${result.eventName}`);
73
- if (result.dispatches.length === 0) {
74
- console.log(' No matching standing orders.');
75
- }
76
- else {
77
- for (const d of result.dispatches) {
78
- const statusIcon = d.status === 'success' ? '✓' : d.status === 'skipped' ? '⊘' : '✗';
79
- console.log(` ${statusIcon} ${d.handlerType}: ${d.handlerName}${d.error ? ` — ${d.error}` : ''}`);
80
- }
81
- }
82
- }
83
- catch (err) {
84
- console.error(`Error: ${err.message}`);
85
- process.exitCode = 1;
86
- }
87
- }));
88
- // nsg clock run
89
- clock.addCommand(createCommand('run')
90
- .description('Process all pending events until the queue is empty')
91
- .action(async (_, cmd) => {
92
- const home = resolveHome(cmd);
93
- try {
94
- if (warnIfDaemonRunning(home))
95
- return;
96
- const result = await clockRun(home);
97
- if (result.processed.length === 0) {
98
- console.log('No pending events to process.');
99
- return;
100
- }
101
- console.log(`Processed ${result.processed.length} event${result.processed.length === 1 ? '' : 's'}:\n`);
102
- for (const tick of result.processed) {
103
- console.log(` #${tick.eventId} ${tick.eventName}`);
104
- if (tick.dispatches.length === 0) {
105
- console.log(' No matching standing orders.');
106
- }
107
- else {
108
- for (const d of tick.dispatches) {
109
- const statusIcon = d.status === 'success' ? '✓' : d.status === 'skipped' ? '⊘' : '✗';
110
- console.log(` ${statusIcon} ${d.handlerType}: ${d.handlerName}${d.error ? ` — ${d.error}` : ''}`);
111
- }
112
- }
113
- }
114
- }
115
- catch (err) {
116
- console.error(`Error: ${err.message}`);
117
- process.exitCode = 1;
118
- }
119
- }));
120
- // nsg clock start [--interval <ms>]
121
- clock.addCommand(createCommand('start')
122
- .description('Start the clockworks daemon (background process)')
123
- .option('--interval <ms>', 'Polling interval in milliseconds', '2000')
124
- .action((opts, cmd) => {
125
- const home = resolveHome(cmd);
126
- try {
127
- const interval = parseInt(opts.interval, 10);
128
- if (isNaN(interval) || interval < 100) {
129
- console.error('Error: Interval must be a number >= 100ms.');
130
- process.exitCode = 1;
131
- return;
132
- }
133
- const result = clockStart(home, { interval });
134
- console.log(`Clockworks daemon started (PID ${result.pid}).`);
135
- console.log(`Log file: ${result.logFile}`);
136
- }
137
- catch (err) {
138
- console.error(`Error: ${err.message}`);
139
- process.exitCode = 1;
140
- }
141
- }));
142
- // nsg clock stop
143
- clock.addCommand(createCommand('stop')
144
- .description('Stop the clockworks daemon')
145
- .action((_, cmd) => {
146
- const home = resolveHome(cmd);
147
- try {
148
- const result = clockStop(home);
149
- if (result.stopped) {
150
- console.log(`Clockworks daemon stopped (PID ${result.pid}).`);
151
- }
152
- else {
153
- console.log(`Clockworks daemon was not running (stale PID ${result.pid} cleaned up).`);
154
- }
155
- }
156
- catch (err) {
157
- console.error(`Error: ${err.message}`);
158
- process.exitCode = 1;
159
- }
160
- }));
161
- // nsg clock status
162
- clock.addCommand(createCommand('status')
163
- .description('Show clockworks daemon status')
164
- .action((_, cmd) => {
165
- const home = resolveHome(cmd);
166
- try {
167
- const status = clockStatus(home);
168
- if (status.running) {
169
- console.log(`Clockworks daemon is running.`);
170
- console.log(` PID: ${status.pid}`);
171
- console.log(` Uptime: ${formatUptime(status.uptime)}`);
172
- console.log(` Log: ${status.logFile}`);
173
- }
174
- else {
175
- console.log('Clockworks daemon is not running.');
176
- }
177
- }
178
- catch (err) {
179
- console.error(`Error: ${err.message}`);
180
- process.exitCode = 1;
181
- }
182
- }));
183
- return clock;
184
- }
185
- //# sourceMappingURL=clock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clock.js","sourceRoot":"","sources":["../../../src/v1/commands/clock.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Look up the name of the first active anima holding a given role.
3
- *
4
- * If multiple animas share the role, one is selected arbitrarily (lowest id).
5
- * Throws if no active anima holds the role.
6
- */
7
- export declare function resolveAnimaByRole(home: string, role: string): string;
8
- export declare function makeConsultCommand(): import("commander").Command;
9
- //# sourceMappingURL=consult.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"consult.d.ts","sourceRoot":"","sources":["../../../src/v1/commands/consult.ts"],"names":[],"mappings":"AAwBA;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAmBrE;AAED,wBAAgB,kBAAkB,gCA4DjC"}
@@ -1,105 +0,0 @@
1
- /**
2
- * consult command
3
- *
4
- * Starts an interactive Claude session with a guild member (anima).
5
- * The anima is identified by role (positional) or by name (--name flag).
6
- *
7
- * Uses the unified session funnel in core for setup, metrics, and cleanup.
8
- */
9
- import path from 'node:path';
10
- import { createCommand } from 'commander';
11
- import Database from 'better-sqlite3';
12
- import { manifest, launchSession } from '@shardworks/nexus-core';
13
- import { resolveHome } from "../resolve-home.js";
14
- /**
15
- * @deprecated Direct DB path access — bypasses the Books abstraction.
16
- * Replace with a proper anima query API once Books-based anima lookup exists
17
- * (see RigContext.book() / the planned anima service layer).
18
- */
19
- function _booksPath(home) {
20
- return path.join(home, '.nexus', 'nexus.db');
21
- }
22
- /**
23
- * Look up the name of the first active anima holding a given role.
24
- *
25
- * If multiple animas share the role, one is selected arbitrarily (lowest id).
26
- * Throws if no active anima holds the role.
27
- */
28
- export function resolveAnimaByRole(home, role) {
29
- const db = new Database(_booksPath(home));
30
- db.pragma('foreign_keys = ON');
31
- try {
32
- const row = db.prepare(`
33
- SELECT a.name FROM animas a
34
- JOIN roster r ON r.anima_id = a.id
35
- WHERE r.role = ? AND a.status = 'active'
36
- ORDER BY a.id ASC
37
- LIMIT 1
38
- `).get(role);
39
- if (!row) {
40
- throw new Error(`No active anima found for role "${role}".`);
41
- }
42
- return row.name;
43
- }
44
- finally {
45
- db.close();
46
- }
47
- }
48
- export function makeConsultCommand() {
49
- return createCommand('consult')
50
- .description('Start an interactive consultation with a guild member')
51
- .argument('[role]', 'Role to consult (finds the active anima holding this role)')
52
- .option('--name <anima>', 'Consult by anima name directly, bypassing role lookup')
53
- .action(async (role, options, cmd) => {
54
- const home = resolveHome(cmd);
55
- if (!role && !options.name) {
56
- cmd.help();
57
- return;
58
- }
59
- if (role && options.name) {
60
- console.error('Error: provide a role argument or --name, not both.');
61
- process.exitCode = 1;
62
- return;
63
- }
64
- // Resolve anima name
65
- let animaName;
66
- try {
67
- animaName = options.name
68
- ? options.name
69
- : resolveAnimaByRole(home, role);
70
- }
71
- catch (err) {
72
- console.error(`Error: ${err.message}`);
73
- process.exitCode = 1;
74
- return;
75
- }
76
- // Manifest the anima (system prompt + tools)
77
- let result;
78
- try {
79
- result = await manifest(home, animaName);
80
- }
81
- catch (err) {
82
- console.error(`Error: ${err.message}`);
83
- process.exitCode = 1;
84
- return;
85
- }
86
- console.log(`Consulting ${result.anima.name} (${result.anima.roles.join(', ')})...\n`);
87
- // Workspace: guildhall for now (future: --workshop flag)
88
- const workspace = { kind: 'guildhall' };
89
- try {
90
- await launchSession({
91
- home,
92
- manifest: result,
93
- prompt: null,
94
- interactive: true,
95
- workspace,
96
- trigger: 'consult',
97
- });
98
- }
99
- catch (err) {
100
- console.error(`Error: ${err.message}`);
101
- process.exitCode = 1;
102
- }
103
- });
104
- }
105
- //# sourceMappingURL=consult.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"consult.js","sourceRoot":"","sources":["../../../src/v1/commands/consult.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function makeConveneCommand(): import("commander").Command;
2
- //# sourceMappingURL=convene.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"convene.d.ts","sourceRoot":"","sources":["../../../src/v1/commands/convene.ts"],"names":[],"mappings":"AAmBA,wBAAgB,kBAAkB,gCAyEjC"}
@@ -1,78 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"convene.js","sourceRoot":"","sources":["../../../src/v1/commands/convene.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function makeConversationCommand(): import("commander").Command;
2
- //# sourceMappingURL=conversation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../src/v1/commands/conversation.ts"],"names":[],"mappings":"AAkBA,wBAAgB,uBAAuB,gCAyJtC"}
@@ -1,140 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../../src/v1/commands/conversation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,UAAU,uBAAuB;IACrC,MAAM,GAAG,GAAG,aAAa,CAAC,cAAc,CAAC;SACtC,WAAW,CAAC,gDAAgD,CAAC;SAC7D,KAAK,CAAC,MAAM,CAAC,CAAC;IAEjB,sEAAsE;IAEtE,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,oBAAoB,CAAC;SACjC,MAAM,CAAC,mBAAmB,EAAE,iDAAiD,CAAC;SAC9E,MAAM,CAAC,eAAe,EAAE,mCAAmC,CAAC;SAC5D,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAE,QAAQ,CAAC;SAClD,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAElC,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,EAAE;YAC5C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QAEH,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QAED,eAAe;QACf,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACjB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACjB,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,SAAS,CACV,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAE7B,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChE,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACxE,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS;gBACvB,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,EAAE;gBACjC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAExB,OAAO,CAAC,GAAG,CACT,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;gBACf,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACf,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CACzB,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,sEAAsE;IAEtE,GAAG;SACA,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;YACjD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpG,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,SAAS,IAAI,MAAM,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACrG,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBACf,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChB,SAAS,CACV,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAEnC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAClE,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBACrF,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAE3D,OAAO,CAAC,GAAG,CACT,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;oBACrC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBACf,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBACd,CAAC,CAAC,SAAS,CACZ,CAAC;gBAEF,8DAA8D;gBAC9D,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;oBACb,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAC1D,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,sEAAsE;IAEtE,GAAG;SACA,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,4BAA4B,CAAC;SACzC,MAAM,CAAC,mBAAmB,EAAE,gCAAgC,EAAE,WAAW,CAAC;SAC1E,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAmC,CAAC;QAC3D,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YACrD,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACrE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function makeDashboardCommand(): import("commander").Command;
2
- //# sourceMappingURL=dashboard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/v1/commands/dashboard.ts"],"names":[],"mappings":"AAGA,wBAAgB,oBAAoB,gCAiCnC"}
@@ -1,36 +0,0 @@
1
- import { createCommand } from 'commander';
2
- import { resolveHome } from "../resolve-home.js";
3
- export function makeDashboardCommand() {
4
- return createCommand('dashboard')
5
- .description('Start the guild monitor web dashboard')
6
- .option('-p, --port <number>', 'Port to serve on', '4200')
7
- .action(async (opts, cmd) => {
8
- let home;
9
- try {
10
- home = resolveHome(cmd);
11
- }
12
- catch {
13
- console.error('Not inside a guild. Run `nsg init` to create one, or use --guild-root.');
14
- process.exit(1);
15
- }
16
- const port = parseInt(opts.port, 10);
17
- if (isNaN(port)) {
18
- console.error(`Invalid port: ${opts.port}`);
19
- process.exit(1);
20
- }
21
- // Lazy-load guild-monitor so a broken/outdated version doesn't
22
- // take down every CLI command at import time.
23
- let startMonitor;
24
- try {
25
- ({ startMonitor } = await import('@shardworks/guild-monitor'));
26
- }
27
- catch (err) {
28
- const msg = err instanceof Error ? err.message : String(err);
29
- console.error(`Failed to load @shardworks/guild-monitor: ${msg}`);
30
- console.error('Try updating: npm install -g @shardworks/nexus@latest');
31
- process.exit(1);
32
- }
33
- await startMonitor({ home, port });
34
- });
35
- }
36
- //# sourceMappingURL=dashboard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/v1/commands/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,UAAU,oBAAoB;IAClC,OAAO,aAAa,CAAC,WAAW,CAAC;SAC9B,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC1B,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;YACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,+DAA+D;QAC/D,8CAA8C;QAC9C,IAAI,YAAqE,CAAC;QAC1E,IAAI,CAAC;YACH,CAAC,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,6CAA6C,GAAG,EAAE,CAAC,CAAC;YAClE,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function makeDispatchCommand(): import("commander").Command;
2
- //# sourceMappingURL=dispatch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../src/v1/commands/dispatch.ts"],"names":[],"mappings":"AAIA,wBAAgB,mBAAmB,gCAyClC"}