@shardworks/nexus-core 0.1.5 → 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 +9 -5
  8. package/dist/guild-config.d.ts.map +1 -1
  9. package/dist/guild-config.js +4 -5
  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 +4 -5
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +4 -5
  17. package/dist/index.js.map +1 -1
  18. package/dist/init-guild.d.ts +14 -11
  19. package/dist/init-guild.d.ts.map +1 -1
  20. package/dist/init-guild.js +29 -39
  21. package/dist/init-guild.js.map +1 -1
  22. package/dist/install-tool.d.ts +29 -26
  23. package/dist/install-tool.d.ts.map +1 -1
  24. package/dist/install-tool.js +185 -142
  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 +0 -3
  39. package/dist/remove-tool.d.ts.map +1 -1
  40. package/dist/remove-tool.js +21 -40
  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
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Bundle — a manifest that delivers multiple installable artifacts to a guild.
3
+ *
4
+ * A bundle is a recipe, not a dependency. The installer reads the manifest,
5
+ * installs each artifact individually (via installTool), and discards the
6
+ * bundle itself. Each artifact becomes an independent guild dependency.
7
+ *
8
+ * ## Manifest: `nexus-bundle.json`
9
+ *
10
+ * The manifest has explicit top-level arrays for each artifact category:
11
+ * - `implements` and `engines` require a `package` specifier (runtime code)
12
+ * - `curricula` and `temperaments` support `package` OR `path` (content-only)
13
+ *
14
+ * ## Transitive bundles
15
+ *
16
+ * A package entry can itself contain a `nexus-bundle.json`. The installer
17
+ * recurses, so bundles can compose other bundles.
18
+ */
19
+ /** A package-based artifact entry (implements and engines). */
20
+ export interface BundlePackageEntry {
21
+ /** npm package specifier or git URL. */
22
+ package: string;
23
+ /** Override the artifact name in the guild. */
24
+ name?: string;
25
+ /** Roles for implements (which roles can use this tool). */
26
+ roles?: string[];
27
+ }
28
+ /** A content artifact entry (curricula and temperaments). */
29
+ export interface BundleContentEntry {
30
+ /** npm package specifier or git URL. */
31
+ package?: string;
32
+ /** Path relative to the bundle root for inline content. */
33
+ path?: string;
34
+ /** Override the artifact name in the guild. */
35
+ name?: string;
36
+ }
37
+ /** A migration entry (always inline via `path`). */
38
+ export interface BundleMigrationEntry {
39
+ /** Path relative to the bundle root for the .sql file. */
40
+ path: string;
41
+ }
42
+ /** The `nexus-bundle.json` manifest shape. */
43
+ export interface BundleManifest {
44
+ /** Human-readable description of the bundle. */
45
+ description?: string;
46
+ /** Implements to install (require `package`). */
47
+ implements?: BundlePackageEntry[];
48
+ /** Engines to install (require `package`). */
49
+ engines?: BundlePackageEntry[];
50
+ /** Curricula to install (`package` or `path`). */
51
+ curricula?: BundleContentEntry[];
52
+ /** Temperaments to install (`package` or `path`). */
53
+ temperaments?: BundleContentEntry[];
54
+ /** Migrations to install (always inline, renumbered on install). */
55
+ migrations?: BundleMigrationEntry[];
56
+ }
57
+ export interface InstallBundleOptions {
58
+ /** Absolute path to the guild root directory. */
59
+ home: string;
60
+ /** Absolute path to the bundle directory (contains nexus-bundle.json). */
61
+ bundleDir: string;
62
+ /** Bundle provenance string, e.g. "@shardworks/guild-starter-kit@0.1.0". */
63
+ bundleSource?: string;
64
+ /** Whether to create a git commit after installing. Defaults to true. */
65
+ commit?: boolean;
66
+ }
67
+ export interface InstallBundleResult {
68
+ /** Number of artifacts installed. */
69
+ installed: number;
70
+ /** Names of installed artifacts, grouped by category. */
71
+ artifacts: {
72
+ implements: string[];
73
+ engines: string[];
74
+ curricula: string[];
75
+ temperaments: string[];
76
+ migrations: string[];
77
+ };
78
+ /** Provenance map for installed migrations: guild filename → { bundle, originalName }. */
79
+ migrationProvenance?: Record<string, {
80
+ bundle: string;
81
+ originalName: string;
82
+ }>;
83
+ }
84
+ /**
85
+ * Check if a directory contains a nexus-bundle.json manifest.
86
+ */
87
+ export declare function isBundleDir(dir: string): boolean;
88
+ /**
89
+ * Read and validate a nexus-bundle.json manifest.
90
+ *
91
+ * Enforces schema rules:
92
+ * - implements/engines must use `package`, not `path`
93
+ * - curricula/temperaments must have either `package` or `path`
94
+ */
95
+ export declare function readBundleManifest(bundleDir: string): BundleManifest;
96
+ /**
97
+ * Install a bundle into a guild.
98
+ *
99
+ * Reads the bundle manifest, installs all referenced artifacts individually,
100
+ * and optionally commits the result. The bundle itself is NOT retained as
101
+ * a guild dependency — each artifact is installed independently.
102
+ *
103
+ * Package artifacts (implements, engines, and packaged content) are installed
104
+ * via npm. Inline content artifacts (curricula/temperaments with `path`) are
105
+ * copied directly from the bundle directory.
106
+ *
107
+ * If an installed package contains its own `nexus-bundle.json`, the installer
108
+ * recurses to install the transitive bundle's artifacts.
109
+ */
110
+ export declare function installBundle(opts: InstallBundleOptions): InstallBundleResult;
111
+ //# sourceMappingURL=bundle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAUH,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,oDAAoD;AACpD,MAAM,WAAW,oBAAoB;IACnC,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;CACd;AAED,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAClC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC/B,kDAAkD;IAClD,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACjC,qDAAqD;IACrD,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACpC,oEAAoE;IACpE,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACrC;AAID,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,SAAS,EAAE;QACT,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;IACF,0FAA0F;IAC1F,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChF;AAkCD;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEhD;AAID;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CA+DpE;AA8ED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,mBAAmB,CAqP7E"}
package/dist/bundle.js ADDED
@@ -0,0 +1,438 @@
1
+ /**
2
+ * Bundle — a manifest that delivers multiple installable artifacts to a guild.
3
+ *
4
+ * A bundle is a recipe, not a dependency. The installer reads the manifest,
5
+ * installs each artifact individually (via installTool), and discards the
6
+ * bundle itself. Each artifact becomes an independent guild dependency.
7
+ *
8
+ * ## Manifest: `nexus-bundle.json`
9
+ *
10
+ * The manifest has explicit top-level arrays for each artifact category:
11
+ * - `implements` and `engines` require a `package` specifier (runtime code)
12
+ * - `curricula` and `temperaments` support `package` OR `path` (content-only)
13
+ *
14
+ * ## Transitive bundles
15
+ *
16
+ * A package entry can itself contain a `nexus-bundle.json`. The installer
17
+ * recurses, so bundles can compose other bundles.
18
+ */
19
+ import fs from 'node:fs';
20
+ import path from 'node:path';
21
+ import { execFileSync } from 'node:child_process';
22
+ import { installTool } from "./install-tool.js";
23
+ import { readGuildConfig, writeGuildConfig } from "./guild-config.js";
24
+ // ── Helpers ─────────────────────────────────────────────────────────────
25
+ const BUNDLE_MANIFEST = 'nexus-bundle.json';
26
+ function git(args, cwd) {
27
+ execFileSync('git', args, { cwd, stdio: 'pipe' });
28
+ }
29
+ function npm(args, cwd) {
30
+ return execFileSync('npm', args, { cwd, stdio: 'pipe', encoding: 'utf-8' });
31
+ }
32
+ function readJson(filePath) {
33
+ return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
34
+ }
35
+ // ── Descriptor types for each category ──────────────────────────────────
36
+ const DESCRIPTOR_MAP = {
37
+ implements: 'nexus-implement.json',
38
+ engines: 'nexus-engine.json',
39
+ curricula: 'nexus-curriculum.json',
40
+ temperaments: 'nexus-temperament.json',
41
+ };
42
+ const DIR_MAP = {
43
+ implements: 'implements',
44
+ engines: 'engines',
45
+ curricula: 'training/curricula',
46
+ temperaments: 'training/temperaments',
47
+ };
48
+ /**
49
+ * Check if a directory contains a nexus-bundle.json manifest.
50
+ */
51
+ export function isBundleDir(dir) {
52
+ return fs.existsSync(path.join(dir, BUNDLE_MANIFEST));
53
+ }
54
+ // ── Validation ──────────────────────────────────────────────────────────
55
+ /**
56
+ * Read and validate a nexus-bundle.json manifest.
57
+ *
58
+ * Enforces schema rules:
59
+ * - implements/engines must use `package`, not `path`
60
+ * - curricula/temperaments must have either `package` or `path`
61
+ */
62
+ export function readBundleManifest(bundleDir) {
63
+ const manifestPath = path.join(bundleDir, BUNDLE_MANIFEST);
64
+ if (!fs.existsSync(manifestPath)) {
65
+ throw new Error(`No ${BUNDLE_MANIFEST} found in ${bundleDir}`);
66
+ }
67
+ const manifest = readJson(manifestPath);
68
+ // Validate implements: must have package, no path allowed
69
+ for (const entry of manifest.implements ?? []) {
70
+ if (!entry.package) {
71
+ throw new Error('Implements must have a "package" specifier. ' +
72
+ 'Implements have runtime code and potential npm dependencies — they cannot be inline.');
73
+ }
74
+ if ('path' in entry) {
75
+ throw new Error('Implements must be npm packages or git URLs. Use a "package" specifier instead of "path".');
76
+ }
77
+ }
78
+ // Validate engines: must have package, no path allowed
79
+ for (const entry of manifest.engines ?? []) {
80
+ if (!entry.package) {
81
+ throw new Error('Engines must have a "package" specifier. ' +
82
+ 'Engines have runtime code and potential npm dependencies — they cannot be inline.');
83
+ }
84
+ if ('path' in entry) {
85
+ throw new Error('Engines must be npm packages or git URLs. Use a "package" specifier instead of "path".');
86
+ }
87
+ }
88
+ // Validate content entries: must have package or path
89
+ for (const entry of manifest.curricula ?? []) {
90
+ if (!entry.package && !entry.path) {
91
+ throw new Error('Curriculum entries must have either a "package" or "path" specifier.');
92
+ }
93
+ }
94
+ for (const entry of manifest.temperaments ?? []) {
95
+ if (!entry.package && !entry.path) {
96
+ throw new Error('Temperament entries must have either a "package" or "path" specifier.');
97
+ }
98
+ }
99
+ // Validate migrations: must have path, no package allowed
100
+ for (const entry of manifest.migrations ?? []) {
101
+ if (!entry.path) {
102
+ throw new Error('Migration entries must have a "path" specifier.');
103
+ }
104
+ if ('package' in entry) {
105
+ throw new Error('Migrations must be inline SQL files. Use a "path" specifier instead of "package".');
106
+ }
107
+ }
108
+ return manifest;
109
+ }
110
+ // ── Inline content installation ─────────────────────────────────────────
111
+ /**
112
+ * Install an inline content artifact (curriculum or temperament) from a
113
+ * path relative to the bundle directory.
114
+ *
115
+ * Copies the full directory to the guild slot and registers in guild.json.
116
+ */
117
+ function installInlineContent(home, bundleDir, category, entry, bundleSource) {
118
+ const contentDir = path.resolve(bundleDir, entry.path);
119
+ if (!fs.existsSync(contentDir)) {
120
+ throw new Error(`Inline content path not found: ${contentDir}`);
121
+ }
122
+ // Read descriptor to get version
123
+ const descriptorFile = DESCRIPTOR_MAP[category];
124
+ const descriptorPath = path.join(contentDir, descriptorFile);
125
+ if (!fs.existsSync(descriptorPath)) {
126
+ throw new Error(`No ${descriptorFile} found in ${contentDir}`);
127
+ }
128
+ const descriptor = readJson(descriptorPath);
129
+ const name = entry.name || path.basename(contentDir);
130
+ const slot = descriptor['version'];
131
+ if (!slot) {
132
+ throw new Error(`No version in ${descriptorPath}`);
133
+ }
134
+ // Copy full directory to guild slot
135
+ const parentDir = DIR_MAP[category];
136
+ const targetDir = path.join(home, parentDir, name, slot);
137
+ if (fs.existsSync(targetDir)) {
138
+ fs.rmSync(targetDir, { recursive: true });
139
+ }
140
+ fs.mkdirSync(targetDir, { recursive: true });
141
+ copyDir(contentDir, targetDir);
142
+ // Register in guild.json
143
+ const config = readGuildConfig(home);
144
+ config[category][name] = {
145
+ slot,
146
+ upstream: null,
147
+ installedAt: new Date().toISOString(),
148
+ ...(bundleSource ? { bundle: bundleSource } : {}),
149
+ };
150
+ writeGuildConfig(home, config);
151
+ return name;
152
+ }
153
+ /** Recursively copy a directory, skipping node_modules and .git. */
154
+ const SKIP_DIRS = new Set(['node_modules', '.git']);
155
+ function copyDir(src, dest) {
156
+ fs.mkdirSync(dest, { recursive: true });
157
+ for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
158
+ const srcPath = path.join(src, entry.name);
159
+ const destPath = path.join(dest, entry.name);
160
+ if (entry.isDirectory()) {
161
+ if (!SKIP_DIRS.has(entry.name)) {
162
+ copyDir(srcPath, destPath);
163
+ }
164
+ }
165
+ else {
166
+ fs.copyFileSync(srcPath, destPath);
167
+ }
168
+ }
169
+ }
170
+ // ── Main ────────────────────────────────────────────────────────────────
171
+ /**
172
+ * Install a bundle into a guild.
173
+ *
174
+ * Reads the bundle manifest, installs all referenced artifacts individually,
175
+ * and optionally commits the result. The bundle itself is NOT retained as
176
+ * a guild dependency — each artifact is installed independently.
177
+ *
178
+ * Package artifacts (implements, engines, and packaged content) are installed
179
+ * via npm. Inline content artifacts (curricula/temperaments with `path`) are
180
+ * copied directly from the bundle directory.
181
+ *
182
+ * If an installed package contains its own `nexus-bundle.json`, the installer
183
+ * recurses to install the transitive bundle's artifacts.
184
+ */
185
+ export function installBundle(opts) {
186
+ const { home, bundleDir, commit = true } = opts;
187
+ // Auto-detect bundle provenance from package.json if not provided
188
+ let bundleSource = opts.bundleSource;
189
+ if (!bundleSource) {
190
+ const bundlePkgPath = path.join(bundleDir, 'package.json');
191
+ if (fs.existsSync(bundlePkgPath)) {
192
+ const bundlePkg = readJson(bundlePkgPath);
193
+ const name = bundlePkg['name'];
194
+ const version = bundlePkg['version'];
195
+ if (name && version) {
196
+ bundleSource = `${name}@${version}`;
197
+ }
198
+ }
199
+ }
200
+ const manifest = readBundleManifest(bundleDir);
201
+ const result = {
202
+ installed: 0,
203
+ artifacts: { implements: [], engines: [], curricula: [], temperaments: [], migrations: [] },
204
+ };
205
+ // ── Collect all package specifiers for batch npm install ──────────────
206
+ const packageSpecs = [];
207
+ for (const entry of manifest.implements ?? []) {
208
+ packageSpecs.push(entry.package);
209
+ }
210
+ for (const entry of manifest.engines ?? []) {
211
+ packageSpecs.push(entry.package);
212
+ }
213
+ for (const entry of manifest.curricula ?? []) {
214
+ if (entry.package)
215
+ packageSpecs.push(entry.package);
216
+ }
217
+ for (const entry of manifest.temperaments ?? []) {
218
+ if (entry.package)
219
+ packageSpecs.push(entry.package);
220
+ }
221
+ // Batch npm install all package dependencies at once
222
+ if (packageSpecs.length > 0) {
223
+ npm(['install', '--save', ...packageSpecs], home);
224
+ }
225
+ // ── Install package-based artifacts ───────────────────────────────────
226
+ // Helper to install a single package artifact via installTool
227
+ const installPackageArtifact = (entry, category) => {
228
+ const spec = entry.package;
229
+ // Resolve package name from the specifier
230
+ const packageName = resolvePackageName(spec, home);
231
+ const packageDir = path.join(home, 'node_modules', packageName);
232
+ // Check for transitive bundle
233
+ const nestedBundlePath = path.join(packageDir, BUNDLE_MANIFEST);
234
+ if (fs.existsSync(nestedBundlePath)) {
235
+ const nestedResult = installBundle({
236
+ home,
237
+ bundleDir: packageDir,
238
+ bundleSource: spec,
239
+ commit: false,
240
+ });
241
+ // Merge nested results
242
+ result.installed += nestedResult.installed;
243
+ for (const cat of ['implements', 'engines', 'curricula', 'temperaments']) {
244
+ result.artifacts[cat].push(...nestedResult.artifacts[cat]);
245
+ }
246
+ return packageName;
247
+ }
248
+ // Find descriptor to determine artifact type
249
+ const descriptorFile = DESCRIPTOR_MAP[category];
250
+ const descriptorPath = path.join(packageDir, descriptorFile);
251
+ if (!fs.existsSync(descriptorPath)) {
252
+ throw new Error(`Package "${packageName}" does not contain ${descriptorFile}. ` +
253
+ `Expected a ${category.slice(0, -1)} descriptor.`);
254
+ }
255
+ const descriptor = readJson(descriptorPath);
256
+ // Determine artifact name and slot
257
+ const name = entry.name || packageName.replace(/^@[^/]+\//, '');
258
+ const slot = descriptor['version'];
259
+ if (!slot) {
260
+ throw new Error(`No version in ${descriptorPath}`);
261
+ }
262
+ // Copy metadata to guild slot
263
+ const parentDir = DIR_MAP[category];
264
+ const targetDir = path.join(home, parentDir, name, slot);
265
+ if (fs.existsSync(targetDir)) {
266
+ fs.rmSync(targetDir, { recursive: true });
267
+ }
268
+ fs.mkdirSync(targetDir, { recursive: true });
269
+ // Copy descriptor
270
+ fs.copyFileSync(descriptorPath, path.join(targetDir, descriptorFile));
271
+ // Copy instructions if referenced
272
+ const instructionsFile = descriptor['instructions'];
273
+ if (instructionsFile) {
274
+ const instrPath = path.join(packageDir, instructionsFile);
275
+ if (fs.existsSync(instrPath)) {
276
+ fs.copyFileSync(instrPath, path.join(targetDir, instructionsFile));
277
+ }
278
+ }
279
+ // Copy content file if referenced (for curricula/temperaments)
280
+ const contentFile = descriptor['content'];
281
+ if (contentFile) {
282
+ const contentPath = path.join(packageDir, contentFile);
283
+ if (fs.existsSync(contentPath)) {
284
+ fs.copyFileSync(contentPath, path.join(targetDir, contentFile));
285
+ }
286
+ }
287
+ // Register in guild.json
288
+ const config = readGuildConfig(home);
289
+ const now = new Date().toISOString();
290
+ if (category === 'implements' || category === 'engines') {
291
+ config[category][name] = {
292
+ slot,
293
+ upstream: `${packageName}@${descriptor['version']}`,
294
+ installedAt: now,
295
+ ...(category === 'implements' && entry.roles
296
+ ? { roles: entry.roles }
297
+ : {}),
298
+ package: packageName,
299
+ ...(bundleSource ? { bundle: bundleSource } : {}),
300
+ };
301
+ }
302
+ else {
303
+ config[category][name] = {
304
+ slot,
305
+ upstream: `${packageName}@${descriptor['version']}`,
306
+ installedAt: now,
307
+ ...(bundleSource ? { bundle: bundleSource } : {}),
308
+ };
309
+ }
310
+ writeGuildConfig(home, config);
311
+ return name;
312
+ };
313
+ // Install implements
314
+ for (const entry of manifest.implements ?? []) {
315
+ const name = installPackageArtifact(entry, 'implements');
316
+ result.artifacts.implements.push(name);
317
+ result.installed++;
318
+ }
319
+ // Install engines
320
+ for (const entry of manifest.engines ?? []) {
321
+ const name = installPackageArtifact(entry, 'engines');
322
+ result.artifacts.engines.push(name);
323
+ result.installed++;
324
+ }
325
+ // Install curricula (package or inline)
326
+ for (const entry of manifest.curricula ?? []) {
327
+ if (entry.package) {
328
+ const name = installPackageArtifact(entry, 'curricula');
329
+ result.artifacts.curricula.push(name);
330
+ }
331
+ else {
332
+ const name = installInlineContent(home, bundleDir, 'curricula', entry, bundleSource);
333
+ result.artifacts.curricula.push(name);
334
+ }
335
+ result.installed++;
336
+ }
337
+ // Install temperaments (package or inline)
338
+ for (const entry of manifest.temperaments ?? []) {
339
+ if (entry.package) {
340
+ const name = installPackageArtifact(entry, 'temperaments');
341
+ result.artifacts.temperaments.push(name);
342
+ }
343
+ else {
344
+ const name = installInlineContent(home, bundleDir, 'temperaments', entry, bundleSource);
345
+ result.artifacts.temperaments.push(name);
346
+ }
347
+ result.installed++;
348
+ }
349
+ // Install migrations (inline only, renumbered into guild sequence)
350
+ if (manifest.migrations && manifest.migrations.length > 0) {
351
+ const migrationsDir = path.join(home, 'nexus', 'migrations');
352
+ fs.mkdirSync(migrationsDir, { recursive: true });
353
+ // Find current highest sequence in guild
354
+ const existing = fs.readdirSync(migrationsDir);
355
+ const MIGRATION_PATTERN = /^(\d{3})-(.+)\.sql$/;
356
+ let maxSeq = 0;
357
+ for (const file of existing) {
358
+ const match = file.match(MIGRATION_PATTERN);
359
+ if (match) {
360
+ maxSeq = Math.max(maxSeq, parseInt(match[1], 10));
361
+ }
362
+ }
363
+ const provenance = {};
364
+ for (const entry of manifest.migrations) {
365
+ const srcPath = path.resolve(bundleDir, entry.path);
366
+ if (!fs.existsSync(srcPath)) {
367
+ throw new Error(`Migration file not found: ${srcPath}`);
368
+ }
369
+ const originalName = path.basename(srcPath);
370
+ maxSeq++;
371
+ const seq = String(maxSeq).padStart(3, '0');
372
+ // Derive description from original filename (strip sequence prefix if present)
373
+ const descMatch = originalName.match(/^\d{3}-(.+)$/);
374
+ const description = descMatch ? descMatch[1] : originalName;
375
+ const guildFilename = `${seq}-${description}`;
376
+ fs.copyFileSync(srcPath, path.join(migrationsDir, guildFilename));
377
+ if (bundleSource) {
378
+ provenance[guildFilename] = { bundle: bundleSource, originalName };
379
+ }
380
+ result.artifacts.migrations.push(guildFilename);
381
+ result.installed++;
382
+ }
383
+ if (Object.keys(provenance).length > 0) {
384
+ result.migrationProvenance = provenance;
385
+ }
386
+ }
387
+ // Commit all changes in one batch
388
+ if (commit) {
389
+ git(['add', '-A'], home);
390
+ const bundleLabel = bundleSource || path.basename(bundleDir);
391
+ git(['commit', '-m', `Install bundle ${bundleLabel}`], home);
392
+ }
393
+ return result;
394
+ }
395
+ // ── Package name resolution ─────────────────────────────────────────────
396
+ /**
397
+ * Resolve a package specifier to a package name.
398
+ *
399
+ * - Local paths: reads name from the source's package.json
400
+ * - Git URLs: finds the package in guild's package.json deps
401
+ * - Registry specifiers: parses name from "name@version" or "@scope/name@version"
402
+ */
403
+ function resolvePackageName(spec, guildRoot) {
404
+ // Local path: read package.json directly
405
+ const isLocalPath = spec.startsWith('/') || spec.startsWith('./') || spec.startsWith('../');
406
+ if (isLocalPath) {
407
+ const pkgJsonPath = path.join(path.resolve(spec), 'package.json');
408
+ if (!fs.existsSync(pkgJsonPath)) {
409
+ throw new Error(`No package.json found at ${pkgJsonPath}`);
410
+ }
411
+ const pkg = readJson(pkgJsonPath);
412
+ const name = pkg['name'];
413
+ if (!name) {
414
+ throw new Error(`No "name" field in ${pkgJsonPath}`);
415
+ }
416
+ return name;
417
+ }
418
+ // Git URL: find the package in node_modules by reading package.json deps
419
+ if (spec.startsWith('git+')) {
420
+ const guildPkg = readJson(path.join(guildRoot, 'package.json'));
421
+ const deps = guildPkg['dependencies'] ?? {};
422
+ for (const [name, value] of Object.entries(deps)) {
423
+ if (value === spec || value.includes(spec.replace(/^git\+/, ''))) {
424
+ return name;
425
+ }
426
+ }
427
+ throw new Error(`Could not resolve package name for git URL: ${spec}`);
428
+ }
429
+ // Registry specifier: parse name from "name@version" or "@scope/name@version"
430
+ if (spec.startsWith('@') && spec.lastIndexOf('@') > 0) {
431
+ return spec.substring(0, spec.lastIndexOf('@'));
432
+ }
433
+ if (spec.includes('@')) {
434
+ return spec.split('@')[0];
435
+ }
436
+ return spec;
437
+ }
438
+ //# sourceMappingURL=bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export interface DispatchOptions {
2
- /** Absolute path to NEXUS_HOME. */
2
+ /** Absolute path to the guild root. */
3
3
  home: string;
4
4
  /** Commission specification — what needs to be done. */
5
5
  spec: string;
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,eAAe;IAC9B,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,QAAQ,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc,CAgE9D"}
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,QAAQ,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc,CAgE9D"}
@@ -1,7 +1,5 @@
1
1
  /** A reference to an implement or engine registered in guild.json. */
2
2
  export interface ToolEntry {
3
- /** Whether the tool is provided by the Nexus framework or authored by the guild. */
4
- source: 'nexus' | 'guild';
5
3
  /** Guild-local version slot — the directory name under {implements|engines}/{name}/. */
6
4
  slot: string;
7
5
  /** Upstream package identifier, e.g. "@shardworks/implement-dispatch@1.11.3". Null for locally-built tools. */
@@ -10,6 +8,10 @@ export interface ToolEntry {
10
8
  installedAt: string;
11
9
  /** Which roles have access (implements only). ["*"] means all roles. */
12
10
  roles?: string[];
11
+ /** npm package name for runtime resolution via node_modules. Omitted for script-only tools. */
12
+ package?: string;
13
+ /** Bundle that delivered this artifact, e.g. "@shardworks/guild-starter-kit@0.1.0". */
14
+ bundle?: string;
13
15
  }
14
16
  /** A reference to a curriculum or temperament registered in guild.json. */
15
17
  export interface TrainingEntry {
@@ -19,6 +21,8 @@ export interface TrainingEntry {
19
21
  upstream: string | null;
20
22
  /** ISO-8601 timestamp of when the content was installed into this slot. */
21
23
  installedAt: string;
24
+ /** Bundle that delivered this artifact, e.g. "@shardworks/guild-starter-kit@0.1.0". */
25
+ bundle?: string;
22
26
  }
23
27
  /** The guild's central configuration file shape (`guild.json`). */
24
28
  export interface GuildConfig {
@@ -44,10 +48,10 @@ export interface GuildConfig {
44
48
  * All registries (implements, engines, curricula, temperaments) start empty.
45
49
  */
46
50
  export declare function createInitialGuildConfig(name: string, nexusVersion: string, model: string): GuildConfig;
47
- /** Resolve the path to guild.json in the standing worktree. */
51
+ /** Resolve the path to guild.json in the guild root. */
48
52
  export declare function guildConfigPath(home: string): string;
49
- /** Read and parse guild.json from the standing worktree. */
53
+ /** Read and parse guild.json from the guild root. */
50
54
  export declare function readGuildConfig(home: string): GuildConfig;
51
- /** Write guild.json to the standing worktree. */
55
+ /** Write guild.json to the guild root. */
52
56
  export declare function writeGuildConfig(home: string, config: GuildConfig): void;
53
57
  //# sourceMappingURL=guild-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guild-config.d.ts","sourceRoot":"","sources":["../src/guild-config.ts"],"names":[],"mappings":"AAIA,sEAAsE;AACtE,MAAM,WAAW,SAAS;IACxB,oFAAoF;IACpF,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1B,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb,+GAA+G;IAC/G,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,qGAAqG;IACrG,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtC,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnC,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACzC,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC7C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAWvG;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,4DAA4D;AAC5D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAGzD;AAED,iDAAiD;AACjD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAGxE"}
1
+ {"version":3,"file":"guild-config.d.ts","sourceRoot":"","sources":["../src/guild-config.ts"],"names":[],"mappings":"AAGA,sEAAsE;AACtE,MAAM,WAAW,SAAS;IACxB,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb,+GAA+G;IAC/G,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,qGAAqG;IACrG,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IACpB,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtC,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnC,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACzC,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC7C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAWvG;AAED,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,qDAAqD;AACrD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAGzD;AAED,0CAA0C;AAC1C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAGxE"}