sdd-mcp-server 5.0.1 → 5.1.0

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 (46) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +60 -7
  3. package/bootstrap.sh +6 -0
  4. package/dist/adapters/cli/SDDToolAdapter.d.ts +1 -0
  5. package/dist/adapters/cli/SDDToolAdapter.js +44 -33
  6. package/dist/adapters/cli/SDDToolAdapter.js.map +1 -1
  7. package/dist/cli/install-skills.d.ts +2 -5
  8. package/dist/cli/install-skills.js +35 -67
  9. package/dist/cli/install-skills.js.map +1 -1
  10. package/dist/cli/install-target.d.ts +6 -0
  11. package/dist/cli/install-target.js +1 -1
  12. package/dist/cli/install-target.js.map +1 -1
  13. package/dist/cli/model-role-config.d.ts +17 -0
  14. package/dist/cli/model-role-config.js +65 -0
  15. package/dist/cli/model-role-config.js.map +1 -0
  16. package/dist/cli/sdd-mcp-cli.js +9 -0
  17. package/dist/cli/sdd-mcp-cli.js.map +1 -1
  18. package/dist/cli/setup-global.d.ts +41 -0
  19. package/dist/cli/setup-global.js +349 -0
  20. package/dist/cli/setup-global.js.map +1 -0
  21. package/dist/cli/tool-support/claude-code.js +2 -2
  22. package/dist/cli/tool-support/claude-code.js.map +1 -1
  23. package/dist/cli/tool-support/codex.js +2 -2
  24. package/dist/cli/tool-support/codex.js.map +1 -1
  25. package/dist/cli/tool-support/mcp-registration.d.ts +10 -1
  26. package/dist/cli/tool-support/mcp-registration.js +22 -14
  27. package/dist/cli/tool-support/mcp-registration.js.map +1 -1
  28. package/dist/cli/tool-support/omp.js +2 -2
  29. package/dist/cli/tool-support/omp.js.map +1 -1
  30. package/dist/cli/tool-support/target-agent-renderer.d.ts +4 -3
  31. package/dist/cli/tool-support/target-agent-renderer.js +8 -8
  32. package/dist/cli/tool-support/target-agent-renderer.js.map +1 -1
  33. package/dist/cli/tool-support/target-installer.d.ts +7 -4
  34. package/dist/cli/tool-support/target-installer.js +33 -15
  35. package/dist/cli/tool-support/target-installer.js.map +1 -1
  36. package/dist/cli/utils/find-package-root.d.ts +6 -0
  37. package/dist/cli/utils/find-package-root.js +36 -0
  38. package/dist/cli/utils/find-package-root.js.map +1 -1
  39. package/dist/cli/utils/preserving-writer.d.ts +11 -4
  40. package/dist/cli/utils/preserving-writer.js +42 -18
  41. package/dist/cli/utils/preserving-writer.js.map +1 -1
  42. package/dist/index.js +0 -0
  43. package/dist/shared/version.d.ts +1 -1
  44. package/dist/shared/version.js +1 -1
  45. package/package.json +3 -1
  46. package/sdd-entry.js +2 -2
@@ -52,21 +52,33 @@ export class PreservingWriter {
52
52
  pendingShared = new Map();
53
53
  runtimePaths = new Map();
54
54
  runtimeResults = new Map();
55
+ runtimeEnabled = new Map();
55
56
  activeLeaseAssert;
56
57
  pendingWrites = new Map();
57
58
  committedTargets = new Set();
58
59
  preservedModifiedFiles = new Map();
59
60
  backupStamp;
60
- constructor(projectRoot) {
61
+ stateRoot;
62
+ constructor(projectRoot, options = {}) {
61
63
  this.projectRoot = projectRoot;
64
+ const stateDirectory = options.stateDirectory ?? '.sdd-mcp';
65
+ this.stateRoot = path.resolve(projectRoot, stateDirectory);
66
+ if (!stateDirectory || /\p{Cc}/u.test(stateDirectory)
67
+ || this.stateRoot === path.resolve(projectRoot)) {
68
+ throw new Error('Unsafe installer state directory');
69
+ }
70
+ if (options.stateDirectory !== undefined)
71
+ this.validateDestination(this.stateRoot);
62
72
  }
63
- beginTarget(target, profile, components, refreshGenerated = false) {
73
+ beginTarget(target, profile, components, refreshGenerated = false, registerRuntime = true) {
64
74
  this.generated.set(target, new Map());
65
75
  this.preservedModifiedFiles.set(target, new Set());
66
76
  this.committedTargets.delete(target);
67
77
  this.runtimeResults.delete(target);
78
+ this.runtimePaths.delete(target);
79
+ this.runtimeEnabled.set(target, registerRuntime);
68
80
  this.profiles.set(target, profile);
69
- this.selectedComponents.set(target, new Set([...components, 'root']));
81
+ this.selectedComponents.set(target, new Set(registerRuntime ? [...components, 'root'] : components));
70
82
  if (refreshGenerated)
71
83
  this.refreshTargets.add(target);
72
84
  else
@@ -74,8 +86,8 @@ export class PreservingWriter {
74
86
  }
75
87
  async withInstallLock(action) {
76
88
  if (this.activeLeaseAssert)
77
- return action();
78
- const lockPath = path.join(this.projectRoot, '.sdd-mcp', 'install.lock');
89
+ return action(this.activeLeaseAssert);
90
+ const lockPath = path.join(this.stateRoot, 'install.lock');
79
91
  this.validateDestination(lockPath);
80
92
  await fs.promises.mkdir(path.dirname(lockPath), { recursive: true });
81
93
  this.validateDestination(lockPath);
@@ -86,7 +98,7 @@ export class PreservingWriter {
86
98
  return await withFilesystemLock(lockPath, async (lease) => {
87
99
  this.activeLeaseAssert = lease.assertHeld;
88
100
  try {
89
- value = await action();
101
+ value = await action(lease.assertHeld);
90
102
  completed = true;
91
103
  return value;
92
104
  }
@@ -114,6 +126,11 @@ export class PreservingWriter {
114
126
  return value;
115
127
  }
116
128
  }
129
+ async validateState() {
130
+ const assertHeld = this.requireActiveLease();
131
+ await assertHeld();
132
+ await this.readManifest();
133
+ }
117
134
  requireRuntimeRegistration(target, paths) {
118
135
  this.runtimePaths.set(target, paths);
119
136
  }
@@ -126,6 +143,11 @@ export class PreservingWriter {
126
143
  return;
127
144
  const leaseAssert = assertHeld ?? (async () => undefined);
128
145
  for (const [filePath, snapshot] of [...writes].reverse()) {
146
+ // Only restore bytes still owned by this attempt; editor changes survive.
147
+ if (!buffersEqual(await readOptionalBytes(filePath), snapshot.next)) {
148
+ writes.delete(filePath);
149
+ continue;
150
+ }
129
151
  if (snapshot.prior === null) {
130
152
  if (snapshot.next !== null) {
131
153
  await this.removeBytesCas(filePath, snapshot.next, leaseAssert);
@@ -134,6 +156,7 @@ export class PreservingWriter {
134
156
  else {
135
157
  await this.replaceBytesCas(filePath, snapshot.next, snapshot.prior, leaseAssert);
136
158
  }
159
+ writes.delete(filePath);
137
160
  }
138
161
  this.pendingWrites.delete(target);
139
162
  }
@@ -196,13 +219,13 @@ export class PreservingWriter {
196
219
  },
197
220
  };
198
221
  }
199
- async installRuntimeRegistration(target, paths = getTargetPolicy(target).defaultPaths) {
222
+ async installRuntimeRegistration(target, paths = getTargetPolicy(target).defaultPaths, options = {}) {
200
223
  return this.withInstallLock(async () => {
201
224
  const assertHeld = this.requireActiveLease();
202
225
  const manifestSnapshot = await this.readManifestSnapshot();
203
226
  const manifest = manifestSnapshot.manifest;
204
227
  const previous = manifest.targets[target];
205
- const runtime = await registerRuntimeLocked(this.projectRoot, target, paths, previous?.registrations[0], assertHeld);
228
+ const runtime = await registerRuntimeLocked(this.projectRoot, target, paths, previous?.registrations[0], assertHeld, options);
206
229
  const latest = manifest;
207
230
  latest.targets[target] = {
208
231
  profile: previous?.profile ?? 'lean',
@@ -297,7 +320,7 @@ export class PreservingWriter {
297
320
  }
298
321
  }
299
322
  const runtimePaths = this.runtimePaths.get(target) ?? getTargetPolicy(target).defaultPaths;
300
- const runtime = await registerRuntimeLocked(this.projectRoot, target, runtimePaths, previousTarget?.registrations[0], assertHeld);
323
+ const runtime = this.runtimeEnabled.get(target) !== false ? await registerRuntimeLocked(this.projectRoot, target, runtimePaths, previousTarget?.registrations[0], assertHeld) : undefined;
301
324
  const retainedUnselected = Object.fromEntries(Object.entries(previous).filter(([, record]) => !selected.has(record.component)));
302
325
  const latest = manifest;
303
326
  latest.targets[target] = {
@@ -305,37 +328,37 @@ export class PreservingWriter {
305
328
  packageVersion: PACKAGE_VERSION,
306
329
  rendererVersion: INSTALL_RENDERER_VERSION,
307
330
  files: { ...retainedUnselected, ...Object.fromEntries(generated) },
308
- registrations: [runtime.registration],
331
+ registrations: runtime ? [runtime.registration] : previousTarget?.registrations ?? [],
309
332
  };
310
333
  Object.assign(latest.shared, Object.fromEntries(this.pendingShared));
311
334
  const priorManifestBytes = manifestSnapshot.bytes;
312
335
  const nextManifestBytes = Buffer.from(`${JSON.stringify(latest, null, 2)}\n`);
313
336
  try {
314
337
  await this.verifyPendingOwnership(target, generated, assertHeld);
315
- await runtime.verify();
338
+ await runtime?.verify();
316
339
  await this.replaceBytesCas(this.manifestPath, priorManifestBytes, nextManifestBytes, assertHeld);
317
340
  }
318
341
  catch (error) {
319
342
  const currentManifestBytes = await readOptionalBytes(this.manifestPath);
320
343
  if (buffersEqual(currentManifestBytes, nextManifestBytes)) {
321
344
  this.runtimeResults.set(target, {
322
- installed: runtime.installed,
323
- skipped: runtime.skipped,
345
+ installed: runtime?.installed ?? [],
346
+ skipped: runtime?.skipped ?? [],
324
347
  warnings: [`Installation committed, but manifest write reported an error: ${error instanceof Error ? error.message : String(error)}`],
325
348
  });
326
349
  this.markTargetCommitted(target);
327
350
  return conflicts;
328
351
  }
329
352
  if (buffersEqual(currentManifestBytes, priorManifestBytes)) {
330
- await runtime.rollback();
353
+ await runtime?.rollback();
331
354
  throw error;
332
355
  }
333
356
  this.pendingWrites.delete(target);
334
357
  throw new Error('Install manifest changed to unknown bytes; installer partials were preserved');
335
358
  }
336
359
  this.runtimeResults.set(target, {
337
- installed: runtime.installed,
338
- skipped: runtime.skipped,
360
+ installed: runtime?.installed ?? [],
361
+ skipped: runtime?.skipped ?? [],
339
362
  warnings: [],
340
363
  });
341
364
  this.markTargetCommitted(target);
@@ -416,9 +439,10 @@ export class PreservingWriter {
416
439
  }
417
440
  async backup(target, relative, source) {
418
441
  this.backupStamp ??= new Date().toISOString().replace(/[:.]/g, '-');
419
- const destination = path.join(this.projectRoot, '.sdd-mcp', 'backups', this.backupStamp, target, relative);
442
+ const destination = path.join(this.stateRoot, 'backups', this.backupStamp, target, relative);
420
443
  this.validateDestination(destination);
421
444
  await fs.promises.mkdir(path.dirname(destination), { recursive: true });
445
+ this.validateDestination(destination);
422
446
  await fs.promises.copyFile(source, destination);
423
447
  }
424
448
  async verifyPendingOwnership(target, generated, assertHeld) {
@@ -442,7 +466,7 @@ export class PreservingWriter {
442
466
  }
443
467
  }
444
468
  get manifestPath() {
445
- return path.join(this.projectRoot, '.sdd-mcp', 'install-manifest.json');
469
+ return path.join(this.stateRoot, 'install-manifest.json');
446
470
  }
447
471
  async readManifest() {
448
472
  return (await this.readManifestSnapshot()).manifest;
@@ -1 +1 @@
1
- {"version":3,"file":"preserving-writer.js","sourceRoot":"","sources":["../../../src/cli/utils/preserving-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preserving-writer.js","sourceRoot":"","sources":["../../../src/cli/utils/preserving-writer.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
File without changes
@@ -1,3 +1,3 @@
1
- export declare const PACKAGE_VERSION = "5.0.1";
1
+ export declare const PACKAGE_VERSION = "5.1.0";
2
2
  export declare const INSTALL_MANIFEST_SCHEMA_VERSION = 2;
3
3
  export declare const INSTALL_RENDERER_VERSION = 5;
@@ -1,4 +1,4 @@
1
- export const PACKAGE_VERSION = '5.0.1';
1
+ export const PACKAGE_VERSION = '5.1.0';
2
2
  export const INSTALL_MANIFEST_SCHEMA_VERSION = 2;
3
3
  export const INSTALL_RENDERER_VERSION = 5;
4
4
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sdd-mcp-server",
3
- "version": "5.0.1",
3
+ "version": "5.1.0",
4
4
  "description": "MCP server for spec-driven development workflows across AI-agent CLIs and IDEs",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -19,6 +19,7 @@
19
19
  "templates/**/*",
20
20
  "scripts/context-usage-report.mjs",
21
21
  "sdd-entry.js",
22
+ "bootstrap.sh",
22
23
  "mcp-server.js",
23
24
  "atomicWrite.js",
24
25
  "documentGenerator.js",
@@ -82,6 +83,7 @@
82
83
  "smol-toml": "^1.7.0",
83
84
  "uuid": "^11.1.1",
84
85
  "write-file-atomic": "^5.0.1",
86
+ "yaml": "^2.9.1",
85
87
  "zod": "^3.23.8"
86
88
  },
87
89
  "devDependencies": {
package/sdd-entry.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Unified entry point for sdd-mcp-server
4
4
  *
5
5
  * Handles both:
6
- * - CLI commands (install, install-skills, migrate-kiro)
6
+ * - CLI commands (setup-global, install, install-skills, migrations)
7
7
  * - MCP server mode (default)
8
8
  *
9
9
  * Usage:
@@ -12,7 +12,7 @@
12
12
  * npx sdd-mcp-server # MCP: Start MCP server
13
13
  */
14
14
 
15
- const CLI_COMMANDS = ['install', 'install-skills', 'migrate-kiro', 'migrate-steering'];
15
+ const CLI_COMMANDS = ['setup-global', 'install', 'install-skills', 'migrate-kiro', 'migrate-steering'];
16
16
  const args = process.argv.slice(2);
17
17
  const command = args[0];
18
18