@shardworks/nexus 0.1.6 → 0.1.8
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 @@
|
|
|
1
|
+
{"version":3,"file":"consult.d.ts","sourceRoot":"","sources":["../../src/commands/consult.ts"],"names":[],"mappings":"AAyFA,wBAAgB,kBAAkB;;OA2EjC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
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
|
+
* Session setup:
|
|
8
|
+
* 1. Look up the anima in the Ledger
|
|
9
|
+
* 2. Manifest the anima (system prompt + MCP config via engine-manifest)
|
|
10
|
+
* 3. Write temp files: system prompt, MCP server config, Claude MCP config
|
|
11
|
+
* 4. Launch `claude --bare --dangerously-skip-permissions` in the guild root
|
|
12
|
+
* 5. Clean up temp files after the session exits
|
|
13
|
+
*
|
|
14
|
+
* --bare prevents Claude from auto-discovering CLAUDE.md files in the guild,
|
|
15
|
+
* which could bleed unintended instructions into the anima's context.
|
|
16
|
+
*/
|
|
17
|
+
import { createCommand } from 'commander';
|
|
18
|
+
import { spawnSync } from 'node:child_process';
|
|
19
|
+
import { createRequire } from 'node:module';
|
|
20
|
+
import fs from 'node:fs';
|
|
21
|
+
import os from 'node:os';
|
|
22
|
+
import path from 'node:path';
|
|
23
|
+
import Database from 'better-sqlite3';
|
|
24
|
+
import { manifest } from '@shardworks/engine-manifest';
|
|
25
|
+
import { ledgerPath } from '@shardworks/nexus-core';
|
|
26
|
+
import { resolveHome } from "../resolve-home.js";
|
|
27
|
+
/**
|
|
28
|
+
* Look up the name of the first active anima holding a given role.
|
|
29
|
+
*
|
|
30
|
+
* If multiple animas share the role, one is selected arbitrarily (lowest id).
|
|
31
|
+
* Throws if no active anima holds the role.
|
|
32
|
+
*/
|
|
33
|
+
function resolveAnimaByRole(home, role) {
|
|
34
|
+
const db = new Database(ledgerPath(home));
|
|
35
|
+
db.pragma('foreign_keys = ON');
|
|
36
|
+
try {
|
|
37
|
+
const row = db.prepare(`
|
|
38
|
+
SELECT a.name FROM animas a
|
|
39
|
+
JOIN roster r ON r.anima_id = a.id
|
|
40
|
+
WHERE r.role = ? AND a.status = 'active'
|
|
41
|
+
ORDER BY a.id ASC
|
|
42
|
+
LIMIT 1
|
|
43
|
+
`).get(role);
|
|
44
|
+
if (!row) {
|
|
45
|
+
throw new Error(`No active anima found for role "${role}".`);
|
|
46
|
+
}
|
|
47
|
+
return row.name;
|
|
48
|
+
}
|
|
49
|
+
finally {
|
|
50
|
+
db.close();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Build the Claude MCP config JSON (mcpServers format) that launches the
|
|
55
|
+
* engine-mcp-server as a stdio process serving the anima's implements.
|
|
56
|
+
*
|
|
57
|
+
* Resolves the engine-mcp-server entry point via require.resolve — handles
|
|
58
|
+
* both the dev (TypeScript source) and prod (compiled dist) cases.
|
|
59
|
+
*/
|
|
60
|
+
function buildClaudeMcpConfig(mcpServerConfigPath, serverConfig) {
|
|
61
|
+
const require = createRequire(import.meta.url);
|
|
62
|
+
const enginePath = require.resolve('@shardworks/engine-mcp-server');
|
|
63
|
+
// In dev the resolved path is the .ts source; add the transform flag.
|
|
64
|
+
const nodeArgs = [];
|
|
65
|
+
if (enginePath.endsWith('.ts')) {
|
|
66
|
+
nodeArgs.push('--disable-warning=ExperimentalWarning', '--experimental-transform-types');
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
mcpServers: {
|
|
70
|
+
'nexus-guild': {
|
|
71
|
+
command: 'node',
|
|
72
|
+
args: [...nodeArgs, enginePath, mcpServerConfigPath],
|
|
73
|
+
env: serverConfig.env ?? {},
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
export function makeConsultCommand() {
|
|
79
|
+
return createCommand('consult')
|
|
80
|
+
.description('Start an interactive consultation with a guild member')
|
|
81
|
+
.argument('[role]', 'Role to consult (finds the active anima holding this role)')
|
|
82
|
+
.option('--name <anima>', 'Consult by anima name directly, bypassing role lookup')
|
|
83
|
+
.action(async (role, options, cmd) => {
|
|
84
|
+
const home = resolveHome(cmd);
|
|
85
|
+
if (!role && !options.name) {
|
|
86
|
+
cmd.help();
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (role && options.name) {
|
|
90
|
+
console.error('Error: provide a role argument or --name, not both.');
|
|
91
|
+
process.exitCode = 1;
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
// Resolve anima name
|
|
95
|
+
let animaName;
|
|
96
|
+
try {
|
|
97
|
+
animaName = options.name
|
|
98
|
+
? options.name
|
|
99
|
+
: resolveAnimaByRole(home, role);
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
console.error(`Error: ${err.message}`);
|
|
103
|
+
process.exitCode = 1;
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
// Manifest the anima (system prompt + MCP config)
|
|
107
|
+
let result;
|
|
108
|
+
try {
|
|
109
|
+
result = await manifest(home, animaName);
|
|
110
|
+
}
|
|
111
|
+
catch (err) {
|
|
112
|
+
console.error(`Error: ${err.message}`);
|
|
113
|
+
process.exitCode = 1;
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
// Write temp files into a dedicated temp dir
|
|
117
|
+
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'nsg-consult-'));
|
|
118
|
+
try {
|
|
119
|
+
const systemPromptPath = path.join(tmpDir, 'system-prompt.md');
|
|
120
|
+
const mcpServerConfigPath = path.join(tmpDir, 'mcp-server-config.json');
|
|
121
|
+
const claudeMcpConfigPath = path.join(tmpDir, 'claude-mcp-config.json');
|
|
122
|
+
fs.writeFileSync(systemPromptPath, result.systemPrompt);
|
|
123
|
+
fs.writeFileSync(mcpServerConfigPath, JSON.stringify(result.mcpConfig, null, 2));
|
|
124
|
+
fs.writeFileSync(claudeMcpConfigPath, JSON.stringify(buildClaudeMcpConfig(mcpServerConfigPath, result.mcpConfig), null, 2));
|
|
125
|
+
console.log(`Consulting ${result.anima.name} (${result.anima.roles.join(', ')})...\n`);
|
|
126
|
+
spawnSync('claude', [
|
|
127
|
+
'--bare',
|
|
128
|
+
'--dangerously-skip-permissions',
|
|
129
|
+
'--system-prompt-file', systemPromptPath,
|
|
130
|
+
'--mcp-config', claudeMcpConfigPath,
|
|
131
|
+
], {
|
|
132
|
+
cwd: home,
|
|
133
|
+
stdio: 'inherit',
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
finally {
|
|
137
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=consult.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consult.js","sourceRoot":"","sources":["../../src/commands/consult.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,IAAY,EAAE,IAAY;IACpD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;KAMtB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAiC,CAAC;QAE7C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAC3B,mBAA2B,EAC3B,YAA6B;IAE7B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAEpE,sEAAsE;IACtE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CACX,uCAAuC,EACvC,gCAAgC,CACjC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,UAAU,EAAE;YACV,aAAa,EAAE;gBACb,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,UAAU,EAAE,mBAAmB,CAAC;gBACpD,GAAG,EAAE,YAAY,CAAC,GAAG,IAAI,EAAE;aAC5B;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,aAAa,CAAC,SAAS,CAAC;SAC5B,WAAW,CAAC,uDAAuD,CAAC;SACpE,QAAQ,CAAC,QAAQ,EAAE,4DAA4D,CAAC;SAChF,MAAM,CAAC,gBAAgB,EAAE,uDAAuD,CAAC;SACjF,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,OAA0B,EAAE,GAAG,EAAE,EAAE;QAC1E,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACrE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,qBAAqB;QACrB,IAAI,SAAiB,CAAC;QACtB,IAAI,CAAC;YACH,SAAS,GAAG,OAAO,CAAC,IAAI;gBACtB,CAAC,CAAC,OAAO,CAAC,IAAI;gBACd,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAK,CAAC,CAAC;QACtC,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;YACrB,OAAO;QACT,CAAC;QAED,kDAAkD;QAClD,IAAI,MAA4C,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC3C,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;YACrB,OAAO;QACT,CAAC;QAED,6CAA6C;QAC7C,MAAM,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;QAEtE,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YAC/D,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;YACxE,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;YAExE,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YACxD,EAAE,CAAC,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACjF,EAAE,CAAC,aAAa,CACd,mBAAmB,EACnB,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CACrF,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEvF,SAAS,CACP,QAAQ,EACR;gBACE,QAAQ;gBACR,gCAAgC;gBAChC,sBAAsB,EAAE,gBAAgB;gBACxC,cAAc,EAAE,mBAAmB;aACpC,EACD;gBACE,GAAG,EAAE,IAAI;gBACT,KAAK,EAAE,SAAS;aACjB,CACF,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/program.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,OAAO;;MAGkE,CAAC"}
|
package/dist/program.js
CHANGED
|
@@ -8,12 +8,14 @@ import { makeDispatchCommand } from "./commands/dispatch.js";
|
|
|
8
8
|
import { makeInstantiateCommand } from "./commands/instantiate.js";
|
|
9
9
|
import { makeManifestCommand } from "./commands/manifest.js";
|
|
10
10
|
import { makeStatusCommand } from "./commands/status.js";
|
|
11
|
+
import { makeConsultCommand } from "./commands/consult.js";
|
|
11
12
|
export const program = createCommand('nsg')
|
|
12
13
|
.description('Nexus Mk 2.1 — experimental multi-agent AI system')
|
|
13
14
|
.version(VERSION)
|
|
14
15
|
.option('--guild-root <path>', 'Path to guild root (default: auto-detect from cwd)');
|
|
15
16
|
// ── Top-level commands ──────────────────────────────────────────────────
|
|
16
17
|
program.addCommand(makeInitCommand());
|
|
18
|
+
program.addCommand(makeConsultCommand());
|
|
17
19
|
program.addCommand(makeDispatchCommand());
|
|
18
20
|
program.addCommand(makeStatusCommand());
|
|
19
21
|
// ── nsg tool [install|remove|rehydrate] ─────────────────────────────────
|
package/dist/program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC;KACxC,WAAW,CAAC,mDAAmD,CAAC;KAChE,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,qBAAqB,EAAE,oDAAoD,CAAC,CAAC;AAEvF,2EAA2E;AAC3E,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAExC,2EAA2E;AAC3E,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC;KACpC,WAAW,CAAC,mEAAmE,CAAC,CAAC;AACpF,SAAS,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAC/C,SAAS,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAC9C,SAAS,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAC7C,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAE9B,2EAA2E;AAC3E,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC;KACtC,WAAW,CAAC,eAAe,CAAC,CAAC;AAChC,UAAU,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAChD,UAAU,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC7C,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shardworks/nexus",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"license": "ISC",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,16 +26,16 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"better-sqlite3": "12.8.0",
|
|
28
28
|
"commander": "14.0.3",
|
|
29
|
-
"@shardworks/nexus-core": "0.1.
|
|
30
|
-
"@shardworks/engine-ledger-migrate": "0.1.
|
|
31
|
-
"@shardworks/engine-manifest": "0.1.
|
|
32
|
-
"@shardworks/implement-
|
|
33
|
-
"@shardworks/implement-
|
|
34
|
-
"@shardworks/implement-instantiate": "0.1.
|
|
35
|
-
"@shardworks/
|
|
36
|
-
"@shardworks/
|
|
37
|
-
"@shardworks/
|
|
38
|
-
"@shardworks/
|
|
29
|
+
"@shardworks/nexus-core": "0.1.8",
|
|
30
|
+
"@shardworks/engine-ledger-migrate": "0.1.8",
|
|
31
|
+
"@shardworks/engine-manifest": "0.1.8",
|
|
32
|
+
"@shardworks/implement-dispatch": "0.1.8",
|
|
33
|
+
"@shardworks/implement-nexus-version": "0.1.8",
|
|
34
|
+
"@shardworks/implement-instantiate": "0.1.8",
|
|
35
|
+
"@shardworks/engine-mcp-server": "0.1.8",
|
|
36
|
+
"@shardworks/implement-remove-tool": "0.1.8",
|
|
37
|
+
"@shardworks/engine-worktree-setup": "0.1.8",
|
|
38
|
+
"@shardworks/implement-install-tool": "0.1.8"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@commander-js/extra-typings": "14.0.0",
|