@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.
Files changed (54) hide show
  1. package/dist/bundle.d.ts +111 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +438 -0
  4. package/dist/bundle.js.map +1 -0
  5. package/dist/dispatch.d.ts +1 -1
  6. package/dist/dispatch.d.ts.map +1 -1
  7. package/dist/guild-config.d.ts +12 -6
  8. package/dist/guild-config.d.ts.map +1 -1
  9. package/dist/guild-config.js +6 -6
  10. package/dist/guild-config.js.map +1 -1
  11. package/dist/implement.d.ts +2 -2
  12. package/dist/implement.d.ts.map +1 -1
  13. package/dist/implement.js +1 -1
  14. package/dist/index.d.ts +6 -7
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +9 -7
  17. package/dist/index.js.map +1 -1
  18. package/dist/init-guild.d.ts +15 -11
  19. package/dist/init-guild.d.ts.map +1 -1
  20. package/dist/init-guild.js +33 -38
  21. package/dist/init-guild.js.map +1 -1
  22. package/dist/install-tool.d.ts +48 -11
  23. package/dist/install-tool.d.ts.map +1 -1
  24. package/dist/install-tool.js +304 -38
  25. package/dist/install-tool.js.map +1 -1
  26. package/dist/instantiate.d.ts +1 -1
  27. package/dist/instantiate.d.ts.map +1 -1
  28. package/dist/instantiate.js +6 -7
  29. package/dist/instantiate.js.map +1 -1
  30. package/dist/nexus-home.d.ts +15 -8
  31. package/dist/nexus-home.d.ts.map +1 -1
  32. package/dist/nexus-home.js +32 -17
  33. package/dist/nexus-home.js.map +1 -1
  34. package/dist/rehydrate.d.ts +15 -0
  35. package/dist/rehydrate.d.ts.map +1 -0
  36. package/dist/rehydrate.js +84 -0
  37. package/dist/rehydrate.js.map +1 -0
  38. package/dist/remove-tool.d.ts +2 -2
  39. package/dist/remove-tool.d.ts.map +1 -1
  40. package/dist/remove-tool.js +43 -11
  41. package/dist/remove-tool.js.map +1 -1
  42. package/package.json +1 -1
  43. package/dist/base-tools.d.ts +0 -27
  44. package/dist/base-tools.d.ts.map +0 -1
  45. package/dist/base-tools.js +0 -30
  46. package/dist/base-tools.js.map +0 -1
  47. package/dist/bootstrap.d.ts +0 -14
  48. package/dist/bootstrap.d.ts.map +0 -1
  49. package/dist/bootstrap.js +0 -46
  50. package/dist/bootstrap.js.map +0 -1
  51. package/dist/publish.d.ts +0 -20
  52. package/dist/publish.d.ts.map +0 -1
  53. package/dist/publish.js +0 -41
  54. package/dist/publish.js.map +0 -1
@@ -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 { guildhallWorktreePath } from "./nexus-home.js";
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 artifact category in guild.json */
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 on-disk parent directory (relative to guildhall worktree). */
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, returning an empty object on missing fields. */
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
- * Install a tool (implement, engine, curriculum, or temperament) into the guild.
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
- * Currently supports local directory sources only. Detects the descriptor type,
76
- * copies the directory to the correct slot, and registers in guild.json.
100
+ * @param source - The source specifier.
101
+ * @param link - Whether the --link flag was set.
77
102
  */
78
- export function installTool(opts) {
79
- const { home, source, roles, framework = false, commit = true } = opts;
80
- const worktree = guildhallWorktreePath(home);
81
- // Resolve source to absolute path
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
- // Detect descriptor
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
- // Read optional package.json for fallbacks
91
- const pkgJsonPath = path.join(sourceDir, 'package.json');
92
- const pkg = fs.existsSync(pkgJsonPath) ? readJson(pkgJsonPath) : {};
93
- // Resolve name: --name flag > directory basename
94
- const name = opts.name || path.basename(sourceDir);
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 prefix = framework && (category === 'implements' || category === 'engines')
110
- ? path.join('nexus', parentDir)
111
- : parentDir;
112
- const targetDir = path.join(worktree, prefix, name, slot);
113
- // Copy source to target
114
- if (fs.existsSync(targetDir)) {
115
- fs.rmSync(targetDir, { recursive: true });
116
- }
117
- copyDir(sourceDir, targetDir);
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: null,
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: null,
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 e.g. during bootstrap)
392
+ // Commit (unless suppressed -- e.g. during bootstrap)
143
393
  if (commit) {
144
- git(['add', '-A'], worktree);
145
- git(['commit', '-m', `Install ${category.slice(0, -1)} ${name}@${slot}`], worktree);
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 { category, name, slot, installedTo: targetDir };
410
+ return {
411
+ workshop: withoutPrefix.substring(0, hashIndex),
412
+ ref: withoutPrefix.substring(hashIndex + 1),
413
+ };
148
414
  }
149
415
  //# sourceMappingURL=install-tool.js.map
@@ -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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"}
@@ -1,5 +1,5 @@
1
1
  export interface InstantiateOptions {
2
- /** Absolute path to NEXUS_HOME. */
2
+ /** Absolute path to the guild root. */
3
3
  home: string;
4
4
  /** Name for the new anima. Must be unique within the guild. */
5
5
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"instantiate.d.ts","sourceRoot":"","sources":["../src/instantiate.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,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,CAyGvE"}
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"}
@@ -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, guildhallWorktreePath } from "./nexus-home.js";
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 worktree - Path to the guildhall worktree.
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(worktree, category, name, slot) {
23
- const dir = path.join(worktree, 'training', category, name, slot);
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(worktree, 'curricula', curriculum, entry.slot);
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(worktree, 'temperaments', temperament, entry.slot);
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));
@@ -1 +1 @@
1
- {"version":3,"file":"instantiate.js","sourceRoot":"","sources":["../src/instantiate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instantiate.js","sourceRoot":"","sources":["../src/instantiate.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,21 @@
1
1
  /**
2
- * Resolve NEXUS_HOME from the environment.
3
- * @throws If `NEXUS_HOME` is not set.
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 resolveNexusHome(): string;
6
- /** Path to the guildhall bare git repo. */
7
- export declare function guildhallBarePath(home: string): string;
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
@@ -1 +1 @@
1
- {"version":3,"file":"nexus-home.d.ts","sourceRoot":"","sources":["../src/nexus-home.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AAED,2CAA2C;AAC3C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,0CAA0C;AAC1C,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,iDAAiD;AACjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD"}
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"}