@shardworks/nexus-core 0.1.4 → 0.1.6
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/bundle.d.ts +111 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +438 -0
- package/dist/bundle.js.map +1 -0
- package/dist/dispatch.d.ts +1 -1
- package/dist/dispatch.d.ts.map +1 -1
- package/dist/guild-config.d.ts +12 -6
- package/dist/guild-config.d.ts.map +1 -1
- package/dist/guild-config.js +6 -6
- package/dist/guild-config.js.map +1 -1
- package/dist/implement.d.ts +2 -2
- package/dist/implement.d.ts.map +1 -1
- package/dist/implement.js +1 -1
- package/dist/index.d.ts +6 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -7
- package/dist/index.js.map +1 -1
- package/dist/init-guild.d.ts +15 -11
- package/dist/init-guild.d.ts.map +1 -1
- package/dist/init-guild.js +33 -38
- package/dist/init-guild.js.map +1 -1
- package/dist/install-tool.d.ts +48 -11
- package/dist/install-tool.d.ts.map +1 -1
- package/dist/install-tool.js +304 -38
- package/dist/install-tool.js.map +1 -1
- package/dist/instantiate.d.ts +1 -1
- package/dist/instantiate.d.ts.map +1 -1
- package/dist/instantiate.js +6 -7
- package/dist/instantiate.js.map +1 -1
- package/dist/nexus-home.d.ts +15 -8
- package/dist/nexus-home.d.ts.map +1 -1
- package/dist/nexus-home.js +32 -17
- package/dist/nexus-home.js.map +1 -1
- package/dist/rehydrate.d.ts +15 -0
- package/dist/rehydrate.d.ts.map +1 -0
- package/dist/rehydrate.js +84 -0
- package/dist/rehydrate.js.map +1 -0
- package/dist/remove-tool.d.ts +2 -2
- package/dist/remove-tool.d.ts.map +1 -1
- package/dist/remove-tool.js +43 -11
- package/dist/remove-tool.js.map +1 -1
- package/package.json +1 -1
- package/dist/base-tools.d.ts +0 -27
- package/dist/base-tools.d.ts.map +0 -1
- package/dist/base-tools.js +0 -30
- package/dist/base-tools.js.map +0 -1
- package/dist/bootstrap.d.ts +0 -14
- package/dist/bootstrap.d.ts.map +0 -1
- package/dist/bootstrap.js +0 -46
- package/dist/bootstrap.js.map +0 -1
- package/dist/publish.d.ts +0 -20
- package/dist/publish.d.ts.map +0 -1
- package/dist/publish.js +0 -41
- package/dist/publish.js.map +0 -1
package/dist/install-tool.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { execFileSync } from 'node:child_process';
|
|
4
|
-
import {
|
|
4
|
+
import { workshopBarePath } from "./nexus-home.js";
|
|
5
5
|
import { readGuildConfig, writeGuildConfig } from "./guild-config.js";
|
|
6
6
|
/** Descriptor file names in priority order for detection. */
|
|
7
7
|
const DESCRIPTOR_FILES = [
|
|
@@ -10,14 +10,14 @@ const DESCRIPTOR_FILES = [
|
|
|
10
10
|
'nexus-curriculum.json',
|
|
11
11
|
'nexus-temperament.json',
|
|
12
12
|
];
|
|
13
|
-
/** Map descriptor file
|
|
13
|
+
/** Map descriptor file -> artifact category in guild.json */
|
|
14
14
|
const CATEGORY_MAP = {
|
|
15
15
|
'nexus-implement.json': 'implements',
|
|
16
16
|
'nexus-engine.json': 'engines',
|
|
17
17
|
'nexus-curriculum.json': 'curricula',
|
|
18
18
|
'nexus-temperament.json': 'temperaments',
|
|
19
19
|
};
|
|
20
|
-
/** Map category
|
|
20
|
+
/** Map category -> on-disk parent directory (relative to guild root). */
|
|
21
21
|
const DIR_MAP = {
|
|
22
22
|
implements: 'implements',
|
|
23
23
|
engines: 'engines',
|
|
@@ -27,6 +27,9 @@ const DIR_MAP = {
|
|
|
27
27
|
function git(args, cwd) {
|
|
28
28
|
execFileSync('git', args, { cwd, stdio: 'pipe' });
|
|
29
29
|
}
|
|
30
|
+
function npm(args, cwd) {
|
|
31
|
+
return execFileSync('npm', args, { cwd, stdio: 'pipe', encoding: 'utf-8' });
|
|
32
|
+
}
|
|
30
33
|
/** Detect the descriptor file in a directory. Returns the filename or throws. */
|
|
31
34
|
function findDescriptor(dir) {
|
|
32
35
|
for (const f of DESCRIPTOR_FILES) {
|
|
@@ -35,10 +38,14 @@ function findDescriptor(dir) {
|
|
|
35
38
|
}
|
|
36
39
|
throw new Error(`No descriptor found in ${dir}. Expected one of: ${DESCRIPTOR_FILES.join(', ')}`);
|
|
37
40
|
}
|
|
38
|
-
/** Read a JSON file
|
|
41
|
+
/** Read a JSON file. */
|
|
39
42
|
function readJson(filePath) {
|
|
40
43
|
return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
|
|
41
44
|
}
|
|
45
|
+
/** Write a JSON file. */
|
|
46
|
+
function writeJson(filePath, data) {
|
|
47
|
+
fs.writeFileSync(filePath, JSON.stringify(data, null, 2) + '\n');
|
|
48
|
+
}
|
|
42
49
|
/** Directories to skip when copying tool sources. */
|
|
43
50
|
const SKIP_DIRS = new Set(['node_modules', '.git']);
|
|
44
51
|
/** Recursively copy a directory, skipping node_modules and .git. */
|
|
@@ -53,7 +60,6 @@ function copyDir(src, dest) {
|
|
|
53
60
|
}
|
|
54
61
|
}
|
|
55
62
|
else if (entry.isSymbolicLink()) {
|
|
56
|
-
// Resolve symlink and copy the target
|
|
57
63
|
const realPath = fs.realpathSync(srcPath);
|
|
58
64
|
if (fs.statSync(realPath).isDirectory()) {
|
|
59
65
|
if (!SKIP_DIRS.has(entry.name)) {
|
|
@@ -70,28 +76,256 @@ function copyDir(src, dest) {
|
|
|
70
76
|
}
|
|
71
77
|
}
|
|
72
78
|
/**
|
|
73
|
-
*
|
|
79
|
+
* Copy only the metadata files (descriptor + instructions) from a source
|
|
80
|
+
* directory into the guild slot. This is used for npm-installed tools
|
|
81
|
+
* where the runtime code lives in node_modules but the metadata needs to
|
|
82
|
+
* be git-tracked in the guild.
|
|
83
|
+
*/
|
|
84
|
+
function copyMetadata(sourceDir, targetDir, descriptorFile, descriptor) {
|
|
85
|
+
fs.mkdirSync(targetDir, { recursive: true });
|
|
86
|
+
// Always copy the descriptor
|
|
87
|
+
fs.copyFileSync(path.join(sourceDir, descriptorFile), path.join(targetDir, descriptorFile));
|
|
88
|
+
// Copy instructions if referenced
|
|
89
|
+
const instructionsFile = descriptor['instructions'];
|
|
90
|
+
if (instructionsFile) {
|
|
91
|
+
const instrPath = path.join(sourceDir, instructionsFile);
|
|
92
|
+
if (fs.existsSync(instrPath)) {
|
|
93
|
+
fs.copyFileSync(instrPath, path.join(targetDir, instructionsFile));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Classify a source string to determine the installation method.
|
|
74
99
|
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
100
|
+
* @param source - The source specifier.
|
|
101
|
+
* @param link - Whether the --link flag was set.
|
|
77
102
|
*/
|
|
78
|
-
export function
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
103
|
+
export function classifySource(source, link = false) {
|
|
104
|
+
if (link)
|
|
105
|
+
return 'link';
|
|
106
|
+
if (source.startsWith('workshop:'))
|
|
107
|
+
return 'workshop';
|
|
108
|
+
if (source.startsWith('git+'))
|
|
109
|
+
return 'git-url';
|
|
110
|
+
if (source.endsWith('.tgz') || source.endsWith('.tar.gz'))
|
|
111
|
+
return 'tarball';
|
|
112
|
+
return 'registry';
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Resolve the installed package directory in node_modules after npm install.
|
|
116
|
+
*/
|
|
117
|
+
function resolveInstalledPackage(guildRoot, packageName) {
|
|
118
|
+
const pkgDir = path.join(guildRoot, 'node_modules', packageName);
|
|
119
|
+
if (!fs.existsSync(pkgDir)) {
|
|
120
|
+
throw new Error(`Could not find installed package at ${pkgDir}`);
|
|
121
|
+
}
|
|
122
|
+
return pkgDir;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Read the package name from a package.json file.
|
|
126
|
+
*/
|
|
127
|
+
function readPackageName(dir) {
|
|
128
|
+
const pkgPath = path.join(dir, 'package.json');
|
|
129
|
+
if (!fs.existsSync(pkgPath)) {
|
|
130
|
+
throw new Error(`No package.json found in ${dir}`);
|
|
131
|
+
}
|
|
132
|
+
const pkg = readJson(pkgPath);
|
|
133
|
+
const name = pkg['name'];
|
|
134
|
+
if (!name) {
|
|
135
|
+
throw new Error(`No "name" field in ${pkgPath}`);
|
|
136
|
+
}
|
|
137
|
+
return name;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Parse a registry source specifier to extract the package name.
|
|
141
|
+
* e.g. "foo@1.0" -> "foo", "@scope/foo@1.0" -> "@scope/foo"
|
|
142
|
+
*/
|
|
143
|
+
function parsePackageName(source) {
|
|
144
|
+
// Scoped packages: @scope/name@version
|
|
145
|
+
if (source.startsWith('@') && source.lastIndexOf('@') > 0) {
|
|
146
|
+
return source.substring(0, source.lastIndexOf('@'));
|
|
147
|
+
}
|
|
148
|
+
// Unscoped: name@version
|
|
149
|
+
if (source.includes('@')) {
|
|
150
|
+
return source.split('@')[0];
|
|
151
|
+
}
|
|
152
|
+
// Bare name without version
|
|
153
|
+
return source;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Determine package name from guild's package.json dependencies.
|
|
157
|
+
* Used when we can't derive the name from the source specifier (e.g. tarballs).
|
|
158
|
+
*/
|
|
159
|
+
function findNewDependency(guildRoot) {
|
|
160
|
+
const guildhallPkg = readJson(path.join(guildRoot, 'package.json'));
|
|
161
|
+
const deps = guildhallPkg['dependencies'] ?? {};
|
|
162
|
+
const depNames = Object.keys(deps);
|
|
163
|
+
const packageName = depNames[depNames.length - 1];
|
|
164
|
+
if (!packageName) {
|
|
165
|
+
throw new Error('Could not determine package name after npm install');
|
|
166
|
+
}
|
|
167
|
+
return packageName;
|
|
168
|
+
}
|
|
169
|
+
// ── Install paths ───────────────────────────────────────────────────────
|
|
170
|
+
/**
|
|
171
|
+
* Install via npm --save (registry and git-url sources).
|
|
172
|
+
* Package is added to guild's package.json for durability.
|
|
173
|
+
*/
|
|
174
|
+
function installViaNpmSave(guildRoot, source, sourceKind) {
|
|
175
|
+
npm(['install', '--save', source], guildRoot);
|
|
176
|
+
// Determine the installed package name:
|
|
177
|
+
// - Registry specifiers (e.g. "foo@1.0"): parse name from specifier
|
|
178
|
+
// - Local paths: read name from source's package.json (reliable for batch installs)
|
|
179
|
+
// - Git URLs: detect as new dependency in guild's package.json
|
|
180
|
+
const isLocalPath = source.startsWith('/') || source.startsWith('./') || source.startsWith('../');
|
|
181
|
+
let packageName;
|
|
182
|
+
if (isLocalPath) {
|
|
183
|
+
packageName = readPackageName(path.resolve(source));
|
|
184
|
+
}
|
|
185
|
+
else if (sourceKind === 'registry') {
|
|
186
|
+
packageName = parsePackageName(source);
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
packageName = findNewDependency(guildRoot);
|
|
190
|
+
}
|
|
191
|
+
const packageDir = resolveInstalledPackage(guildRoot, packageName);
|
|
192
|
+
const descriptorFile = findDescriptor(packageDir);
|
|
193
|
+
const descriptor = readJson(path.join(packageDir, descriptorFile));
|
|
194
|
+
const pkg = readJson(path.join(packageDir, 'package.json'));
|
|
195
|
+
return { packageName, packageDir, descriptorFile, descriptor, pkg };
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Install via npm, detect package name, optionally remove from package.json.
|
|
199
|
+
* Used for tarball and workshop sources where we need --no-save semantics
|
|
200
|
+
* but need to discover the package name.
|
|
201
|
+
*/
|
|
202
|
+
function installViaNpmDetect(guildRoot, npmSource, save) {
|
|
203
|
+
// Always install with --save first to detect the package name
|
|
204
|
+
npm(['install', '--save', npmSource], guildRoot);
|
|
205
|
+
const packageName = findNewDependency(guildRoot);
|
|
206
|
+
const packageDir = resolveInstalledPackage(guildRoot, packageName);
|
|
207
|
+
const descriptorFile = findDescriptor(packageDir);
|
|
208
|
+
const descriptor = readJson(path.join(packageDir, descriptorFile));
|
|
209
|
+
const pkg = readJson(path.join(packageDir, 'package.json'));
|
|
210
|
+
// If we don't want to save, remove from package.json but keep in node_modules
|
|
211
|
+
if (!save) {
|
|
212
|
+
const guildPkg = readJson(path.join(guildRoot, 'package.json'));
|
|
213
|
+
const deps = guildPkg['dependencies'];
|
|
214
|
+
if (deps && packageName in deps) {
|
|
215
|
+
delete deps[packageName];
|
|
216
|
+
writeJson(path.join(guildRoot, 'package.json'), guildPkg);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return { packageName, packageDir, descriptorFile, descriptor, pkg };
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Install via symlink (dev mode for local dirs with package.json).
|
|
223
|
+
* Creates a symlink in node_modules pointing to the source directory.
|
|
224
|
+
*/
|
|
225
|
+
function installViaLink(guildRoot, source) {
|
|
82
226
|
const sourceDir = path.resolve(source);
|
|
83
227
|
if (!fs.existsSync(sourceDir) || !fs.statSync(sourceDir).isDirectory()) {
|
|
84
228
|
throw new Error(`Source is not a directory: ${sourceDir}`);
|
|
85
229
|
}
|
|
86
|
-
|
|
230
|
+
if (!fs.existsSync(path.join(sourceDir, 'package.json'))) {
|
|
231
|
+
throw new Error('The --link option requires a directory with a package.json.');
|
|
232
|
+
}
|
|
233
|
+
const packageName = readPackageName(sourceDir);
|
|
234
|
+
// Ensure node_modules exists
|
|
235
|
+
const nodeModulesDir = path.join(guildRoot, 'node_modules');
|
|
236
|
+
fs.mkdirSync(nodeModulesDir, { recursive: true });
|
|
237
|
+
// Handle scoped packages: @scope/name needs @scope/ directory
|
|
238
|
+
const linkTarget = path.join(nodeModulesDir, packageName);
|
|
239
|
+
fs.mkdirSync(path.dirname(linkTarget), { recursive: true });
|
|
240
|
+
// Remove existing link/directory if present
|
|
241
|
+
if (fs.existsSync(linkTarget)) {
|
|
242
|
+
fs.rmSync(linkTarget, { recursive: true });
|
|
243
|
+
}
|
|
244
|
+
fs.symlinkSync(sourceDir, linkTarget, 'dir');
|
|
87
245
|
const descriptorFile = findDescriptor(sourceDir);
|
|
88
|
-
const category = CATEGORY_MAP[descriptorFile];
|
|
89
246
|
const descriptor = readJson(path.join(sourceDir, descriptorFile));
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
247
|
+
const pkg = readJson(path.join(sourceDir, 'package.json'));
|
|
248
|
+
return { packageName, packageDir: sourceDir, descriptorFile, descriptor, pkg };
|
|
249
|
+
}
|
|
250
|
+
// ── Main ────────────────────────────────────────────────────────────────
|
|
251
|
+
/**
|
|
252
|
+
* Install a tool (implement, engine, curriculum, or temperament) into the guild.
|
|
253
|
+
*
|
|
254
|
+
* Supports five source types:
|
|
255
|
+
* - **Registry** — npm package specifier, fully durable via package.json
|
|
256
|
+
* - **Git URL** — `git+https://...`, fully durable via package.json
|
|
257
|
+
* - **Workshop** — `workshop:name#ref`, durable within the guild via full source in slot
|
|
258
|
+
* - **Tarball** — `.tgz` file, durable via full source in slot
|
|
259
|
+
* - **Link** — symlinked local dir (dev mode), NOT durable
|
|
260
|
+
*
|
|
261
|
+
* For npm-installed tools, runtime code lives in node_modules. Metadata
|
|
262
|
+
* (descriptor + instructions) is copied to the guild slot for git tracking.
|
|
263
|
+
* The `package` field in guild.json tells the manifest engine to resolve by package name.
|
|
264
|
+
*/
|
|
265
|
+
export function installTool(opts) {
|
|
266
|
+
const { home, source, roles, commit = true, link = false, bundle } = opts;
|
|
267
|
+
const sourceKind = classifySource(source, link);
|
|
268
|
+
let descriptorFile;
|
|
269
|
+
let descriptor;
|
|
270
|
+
let pkg;
|
|
271
|
+
let packageName = null;
|
|
272
|
+
let isNpmInstalled = false;
|
|
273
|
+
let copyFullSource = false;
|
|
274
|
+
let upstream = null;
|
|
275
|
+
if (sourceKind === 'link') {
|
|
276
|
+
// ── Link mode: symlink local dir ──────────────────────────────────
|
|
277
|
+
const result = installViaLink(home, source);
|
|
278
|
+
descriptorFile = result.descriptorFile;
|
|
279
|
+
descriptor = result.descriptor;
|
|
280
|
+
pkg = result.pkg;
|
|
281
|
+
packageName = result.packageName;
|
|
282
|
+
isNpmInstalled = true;
|
|
283
|
+
upstream = null;
|
|
284
|
+
}
|
|
285
|
+
else if (sourceKind === 'registry' || sourceKind === 'git-url') {
|
|
286
|
+
// ── Registry / Git URL: npm install --save ────────────────────────
|
|
287
|
+
const result = installViaNpmSave(home, source, sourceKind);
|
|
288
|
+
descriptorFile = result.descriptorFile;
|
|
289
|
+
descriptor = result.descriptor;
|
|
290
|
+
pkg = result.pkg;
|
|
291
|
+
packageName = result.packageName;
|
|
292
|
+
isNpmInstalled = true;
|
|
293
|
+
upstream = sourceKind === 'git-url' ? source : `${result.packageName}@${result.pkg['version']}`;
|
|
294
|
+
}
|
|
295
|
+
else if (sourceKind === 'workshop') {
|
|
296
|
+
// ── Workshop: resolve to git+file:// URL, npm install, full source ─
|
|
297
|
+
const parsed = parseWorkshopSource(source);
|
|
298
|
+
const barePath = workshopBarePath(home, parsed.workshop);
|
|
299
|
+
if (!fs.existsSync(barePath)) {
|
|
300
|
+
throw new Error(`Workshop bare repo not found: ${barePath}`);
|
|
301
|
+
}
|
|
302
|
+
const gitFileUrl = `git+file://${barePath}#${parsed.ref}`;
|
|
303
|
+
const result = installViaNpmDetect(home, gitFileUrl, false);
|
|
304
|
+
descriptorFile = result.descriptorFile;
|
|
305
|
+
descriptor = result.descriptor;
|
|
306
|
+
pkg = result.pkg;
|
|
307
|
+
packageName = result.packageName;
|
|
308
|
+
isNpmInstalled = true;
|
|
309
|
+
copyFullSource = true;
|
|
310
|
+
upstream = source; // Store the original workshop:name#ref specifier
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
// ── Tarball: npm install --no-save, full source to slot ───────────
|
|
314
|
+
const resolvedSource = path.resolve(source);
|
|
315
|
+
const result = installViaNpmDetect(home, resolvedSource, false);
|
|
316
|
+
descriptorFile = result.descriptorFile;
|
|
317
|
+
descriptor = result.descriptor;
|
|
318
|
+
pkg = result.pkg;
|
|
319
|
+
packageName = result.packageName;
|
|
320
|
+
isNpmInstalled = true;
|
|
321
|
+
copyFullSource = true;
|
|
322
|
+
upstream = null;
|
|
323
|
+
}
|
|
324
|
+
const category = CATEGORY_MAP[descriptorFile];
|
|
325
|
+
// Resolve name: --name flag > package name > directory basename
|
|
326
|
+
const name = opts.name
|
|
327
|
+
|| (packageName ? packageName.replace(/^@[^/]+\//, '') : null)
|
|
328
|
+
|| path.basename(path.resolve(source));
|
|
95
329
|
if (!name || name === '.' || name === '..') {
|
|
96
330
|
throw new Error('Could not determine tool name. Use --name to specify one.');
|
|
97
331
|
}
|
|
@@ -102,48 +336,80 @@ export function installTool(opts) {
|
|
|
102
336
|
if (!slot) {
|
|
103
337
|
throw new Error('No version found in descriptor or package.json. Use --slot to specify a version slot.');
|
|
104
338
|
}
|
|
105
|
-
// Determine target directory.
|
|
106
|
-
// Framework tools go under nexus/{implements,engines}/.
|
|
107
|
-
// Guild tools go under {implements,engines}/ (or training/ for curricula/temperaments).
|
|
339
|
+
// Determine target directory for metadata/files in the guild.
|
|
108
340
|
const parentDir = DIR_MAP[category];
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
:
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
341
|
+
const targetDir = path.join(home, parentDir, name, slot);
|
|
342
|
+
if (isNpmInstalled && copyFullSource) {
|
|
343
|
+
// Workshop/tarball: copy full source to slot for durability
|
|
344
|
+
const pkgSourceDir = resolveInstalledPackage(home, packageName);
|
|
345
|
+
if (fs.existsSync(targetDir)) {
|
|
346
|
+
fs.rmSync(targetDir, { recursive: true });
|
|
347
|
+
}
|
|
348
|
+
copyDir(pkgSourceDir, targetDir);
|
|
349
|
+
}
|
|
350
|
+
else if (isNpmInstalled) {
|
|
351
|
+
// Registry/git-url/link: copy only metadata to slot
|
|
352
|
+
const pkgSourceDir = sourceKind === 'link'
|
|
353
|
+
? path.resolve(source)
|
|
354
|
+
: resolveInstalledPackage(home, packageName);
|
|
355
|
+
if (fs.existsSync(targetDir)) {
|
|
356
|
+
fs.rmSync(targetDir, { recursive: true });
|
|
357
|
+
}
|
|
358
|
+
copyMetadata(pkgSourceDir, targetDir, descriptorFile, descriptor);
|
|
359
|
+
}
|
|
118
360
|
// Register in guild.json
|
|
119
361
|
const config = readGuildConfig(home);
|
|
120
362
|
const now = new Date().toISOString();
|
|
121
363
|
if (category === 'implements' || category === 'engines') {
|
|
122
364
|
const entry = {
|
|
123
|
-
source: framework ? 'nexus' : 'guild',
|
|
124
365
|
slot,
|
|
125
|
-
upstream
|
|
366
|
+
upstream,
|
|
126
367
|
installedAt: now,
|
|
127
368
|
};
|
|
128
369
|
if (category === 'implements' && roles && roles.length > 0) {
|
|
129
370
|
entry.roles = roles;
|
|
130
371
|
}
|
|
372
|
+
if (packageName) {
|
|
373
|
+
entry.package = packageName;
|
|
374
|
+
}
|
|
375
|
+
if (bundle) {
|
|
376
|
+
entry.bundle = bundle;
|
|
377
|
+
}
|
|
131
378
|
config[category][name] = entry;
|
|
132
379
|
}
|
|
133
380
|
else {
|
|
134
381
|
const entry = {
|
|
135
382
|
slot,
|
|
136
|
-
upstream
|
|
383
|
+
upstream,
|
|
137
384
|
installedAt: now,
|
|
138
385
|
};
|
|
386
|
+
if (bundle) {
|
|
387
|
+
entry.bundle = bundle;
|
|
388
|
+
}
|
|
139
389
|
config[category][name] = entry;
|
|
140
390
|
}
|
|
141
391
|
writeGuildConfig(home, config);
|
|
142
|
-
// Commit (unless suppressed
|
|
392
|
+
// Commit (unless suppressed -- e.g. during bootstrap)
|
|
143
393
|
if (commit) {
|
|
144
|
-
git(['add', '-A'],
|
|
145
|
-
git(['commit', '-m', `Install ${category.slice(0, -1)} ${name}@${slot}`],
|
|
394
|
+
git(['add', '-A'], home);
|
|
395
|
+
git(['commit', '-m', `Install ${category.slice(0, -1)} ${name}@${slot}`], home);
|
|
396
|
+
}
|
|
397
|
+
return { category, name, slot, installedTo: targetDir, sourceKind };
|
|
398
|
+
}
|
|
399
|
+
// ── Workshop source parsing ─────────────────────────────────────────────
|
|
400
|
+
/**
|
|
401
|
+
* Parse a workshop source specifier.
|
|
402
|
+
* Format: `workshop:<name>#<ref>`
|
|
403
|
+
*/
|
|
404
|
+
function parseWorkshopSource(source) {
|
|
405
|
+
const withoutPrefix = source.substring('workshop:'.length);
|
|
406
|
+
const hashIndex = withoutPrefix.indexOf('#');
|
|
407
|
+
if (hashIndex === -1) {
|
|
408
|
+
throw new Error(`Invalid workshop source "${source}". Expected format: workshop:<name>#<ref>`);
|
|
146
409
|
}
|
|
147
|
-
return {
|
|
410
|
+
return {
|
|
411
|
+
workshop: withoutPrefix.substring(0, hashIndex),
|
|
412
|
+
ref: withoutPrefix.substring(hashIndex + 1),
|
|
413
|
+
};
|
|
148
414
|
}
|
|
149
415
|
//# sourceMappingURL=install-tool.js.map
|
package/dist/install-tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-tool.js","sourceRoot":"","sources":["../src/install-tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install-tool.js","sourceRoot":"","sources":["../src/install-tool.ts"],"names":[],"mappings":"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"}
|
package/dist/instantiate.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instantiate.d.ts","sourceRoot":"","sources":["../src/instantiate.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,kBAAkB;IACjC,
|
|
1
|
+
{"version":3,"file":"instantiate.d.ts","sourceRoot":"","sources":["../src/instantiate.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AA6CD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,iBAAiB,CAuGvE"}
|
package/dist/instantiate.js
CHANGED
|
@@ -8,19 +8,19 @@
|
|
|
8
8
|
import fs from 'node:fs';
|
|
9
9
|
import path from 'node:path';
|
|
10
10
|
import Database from 'better-sqlite3';
|
|
11
|
-
import { ledgerPath
|
|
11
|
+
import { ledgerPath } from "./nexus-home.js";
|
|
12
12
|
import { readGuildConfig } from "./guild-config.js";
|
|
13
13
|
/**
|
|
14
14
|
* Read training content from disk given its guild.json entry.
|
|
15
15
|
*
|
|
16
|
-
* @param
|
|
16
|
+
* @param guildRoot - Path to the guild root.
|
|
17
17
|
* @param category - 'curricula' or 'temperaments'.
|
|
18
18
|
* @param name - The training content name.
|
|
19
19
|
* @param slot - The version slot.
|
|
20
20
|
* @returns Object with version and the actual content text.
|
|
21
21
|
*/
|
|
22
|
-
function readTrainingContent(
|
|
23
|
-
const dir = path.join(
|
|
22
|
+
function readTrainingContent(guildRoot, category, name, slot) {
|
|
23
|
+
const dir = path.join(guildRoot, 'training', category, name, slot);
|
|
24
24
|
const descriptorFile = category === 'curricula'
|
|
25
25
|
? 'nexus-curriculum.json'
|
|
26
26
|
: 'nexus-temperament.json';
|
|
@@ -48,7 +48,6 @@ function readTrainingContent(worktree, category, name, slot) {
|
|
|
48
48
|
*/
|
|
49
49
|
export function instantiate(opts) {
|
|
50
50
|
const { home, name, roles, curriculum, temperament } = opts;
|
|
51
|
-
const worktree = guildhallWorktreePath(home);
|
|
52
51
|
if (roles.length === 0) {
|
|
53
52
|
throw new Error('At least one role is required.');
|
|
54
53
|
}
|
|
@@ -64,13 +63,13 @@ export function instantiate(opts) {
|
|
|
64
63
|
let curriculumSnapshot = null;
|
|
65
64
|
if (curriculum) {
|
|
66
65
|
const entry = config.curricula[curriculum];
|
|
67
|
-
const { version, content } = readTrainingContent(
|
|
66
|
+
const { version, content } = readTrainingContent(home, 'curricula', curriculum, entry.slot);
|
|
68
67
|
curriculumSnapshot = { name: curriculum, version, content };
|
|
69
68
|
}
|
|
70
69
|
let temperamentSnapshot = null;
|
|
71
70
|
if (temperament) {
|
|
72
71
|
const entry = config.temperaments[temperament];
|
|
73
|
-
const { version, content } = readTrainingContent(
|
|
72
|
+
const { version, content } = readTrainingContent(home, 'temperaments', temperament, entry.slot);
|
|
74
73
|
temperamentSnapshot = { name: temperament, version, content };
|
|
75
74
|
}
|
|
76
75
|
const db = new Database(ledgerPath(home));
|
package/dist/instantiate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instantiate.js","sourceRoot":"","sources":["../src/instantiate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"instantiate.js","sourceRoot":"","sources":["../src/instantiate.ts"],"names":[],"mappings":"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"}
|
package/dist/nexus-home.d.ts
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Find the guild root by walking up from a starting directory looking for guild.json.
|
|
3
|
+
*
|
|
4
|
+
* This replaces the old NEXUS_HOME env var approach. The guild root IS the
|
|
5
|
+
* guildhall — a regular git clone with guild.json at the root.
|
|
6
|
+
*
|
|
7
|
+
* @param startDir - Directory to start searching from (defaults to cwd).
|
|
8
|
+
* @throws If no guild.json is found before reaching the filesystem root.
|
|
4
9
|
*/
|
|
5
|
-
export declare function
|
|
6
|
-
/** Path to the
|
|
7
|
-
export declare function
|
|
8
|
-
/** Path to the guildhall's standing worktree (`worktrees/guildhall/main`). */
|
|
9
|
-
export declare function guildhallWorktreePath(home: string): string;
|
|
10
|
+
export declare function findGuildRoot(startDir?: string): string;
|
|
11
|
+
/** Path to the .nexus framework-managed directory. */
|
|
12
|
+
export declare function nexusDir(home: string): string;
|
|
10
13
|
/** Path to the Ledger SQLite database. */
|
|
11
14
|
export declare function ledgerPath(home: string): string;
|
|
12
|
-
/** Path to the top-level worktrees directory. */
|
|
15
|
+
/** Path to the top-level worktrees directory (for commission worktrees). */
|
|
13
16
|
export declare function worktreesPath(home: string): string;
|
|
17
|
+
/** Path to the workshops directory (contains bare clones). */
|
|
18
|
+
export declare function workshopsPath(home: string): string;
|
|
19
|
+
/** Path to a specific workshop's bare clone. */
|
|
20
|
+
export declare function workshopBarePath(home: string, name: string): string;
|
|
14
21
|
//# sourceMappingURL=nexus-home.d.ts.map
|
package/dist/nexus-home.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nexus-home.d.ts","sourceRoot":"","sources":["../src/nexus-home.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nexus-home.d.ts","sourceRoot":"","sources":["../src/nexus-home.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAYvD;AAED,sDAAsD;AACtD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,0CAA0C;AAC1C,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,gDAAgD;AAChD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnE"}
|