sdd-mcp-server 3.5.1 → 5.0.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 (124) hide show
  1. package/README.md +92 -683
  2. package/agents/architect.md +15 -93
  3. package/agents/implementer.md +16 -141
  4. package/agents/planner.md +16 -84
  5. package/agents/reviewer.md +16 -239
  6. package/agents/security-auditor.md +16 -114
  7. package/agents/tdd-guide.md +17 -228
  8. package/dist/adapters/cli/SDDToolAdapter.d.ts +14 -8
  9. package/dist/adapters/cli/SDDToolAdapter.js +188 -405
  10. package/dist/adapters/cli/SDDToolAdapter.js.map +1 -1
  11. package/dist/application/services/ContextCompactionService.d.ts +88 -16
  12. package/dist/application/services/ContextCompactionService.js +474 -187
  13. package/dist/application/services/ContextCompactionService.js.map +1 -1
  14. package/dist/application/services/ProjectService.js +3 -3
  15. package/dist/application/services/ProjectService.js.map +1 -1
  16. package/dist/application/services/SpecPathResolver.d.ts +24 -0
  17. package/dist/application/services/SpecPathResolver.js +70 -0
  18. package/dist/application/services/SpecPathResolver.js.map +1 -0
  19. package/dist/application/services/WorkflowEngineService.d.ts +214 -50
  20. package/dist/application/services/WorkflowEngineService.js +1447 -292
  21. package/dist/application/services/WorkflowEngineService.js.map +1 -1
  22. package/dist/application/services/WorkflowErrors.d.ts +16 -0
  23. package/dist/application/services/WorkflowErrors.js +53 -0
  24. package/dist/application/services/WorkflowErrors.js.map +1 -0
  25. package/dist/application/services/WorkflowValidationService.d.ts +25 -46
  26. package/dist/application/services/WorkflowValidationService.js +284 -627
  27. package/dist/application/services/WorkflowValidationService.js.map +1 -1
  28. package/dist/cli/install-skills.d.ts +3 -9
  29. package/dist/cli/install-skills.js +129 -174
  30. package/dist/cli/install-skills.js.map +1 -1
  31. package/dist/cli/install-target.d.ts +42 -8
  32. package/dist/cli/install-target.js +27 -9
  33. package/dist/cli/install-target.js.map +1 -1
  34. package/dist/cli/sdd-mcp-cli.d.ts +1 -1
  35. package/dist/cli/sdd-mcp-cli.js +7 -6
  36. package/dist/cli/sdd-mcp-cli.js.map +1 -1
  37. package/dist/cli/tool-support/claude-code.js +17 -34
  38. package/dist/cli/tool-support/claude-code.js.map +1 -1
  39. package/dist/cli/tool-support/codex.d.ts +0 -53
  40. package/dist/cli/tool-support/codex.js +10 -94
  41. package/dist/cli/tool-support/codex.js.map +1 -1
  42. package/dist/cli/tool-support/index.d.ts +3 -2
  43. package/dist/cli/tool-support/index.js +3 -1
  44. package/dist/cli/tool-support/index.js.map +1 -1
  45. package/dist/cli/tool-support/mcp-registration.d.ts +22 -0
  46. package/dist/cli/tool-support/mcp-registration.js +275 -0
  47. package/dist/cli/tool-support/mcp-registration.js.map +1 -0
  48. package/dist/cli/tool-support/omp.d.ts +5 -0
  49. package/dist/cli/tool-support/omp.js +47 -0
  50. package/dist/cli/tool-support/omp.js.map +1 -0
  51. package/dist/cli/tool-support/root-guidance.d.ts +2 -9
  52. package/dist/cli/tool-support/root-guidance.js +44 -37
  53. package/dist/cli/tool-support/root-guidance.js.map +1 -1
  54. package/dist/cli/tool-support/target-agent-renderer.d.ts +1 -0
  55. package/dist/cli/tool-support/target-agent-renderer.js +37 -4
  56. package/dist/cli/tool-support/target-agent-renderer.js.map +1 -1
  57. package/dist/cli/tool-support/target-installer.d.ts +9 -3
  58. package/dist/cli/tool-support/target-installer.js +100 -26
  59. package/dist/cli/tool-support/target-installer.js.map +1 -1
  60. package/dist/cli/utils/preserving-writer.d.ts +56 -0
  61. package/dist/cli/utils/preserving-writer.js +603 -10
  62. package/dist/cli/utils/preserving-writer.js.map +1 -1
  63. package/dist/domain/ports.d.ts +4 -0
  64. package/dist/domain/types.d.ts +52 -7
  65. package/dist/domain/types.js +5 -4
  66. package/dist/domain/types.js.map +1 -1
  67. package/dist/index.d.ts +13 -10
  68. package/dist/index.js +16 -1199
  69. package/dist/index.js.map +1 -1
  70. package/dist/infrastructure/adapters/NodeFileSystemAdapter.d.ts +3 -0
  71. package/dist/infrastructure/adapters/NodeFileSystemAdapter.js +10 -0
  72. package/dist/infrastructure/adapters/NodeFileSystemAdapter.js.map +1 -1
  73. package/dist/infrastructure/mcp/CapabilityNegotiator.js +3 -3
  74. package/dist/infrastructure/mcp/CapabilityNegotiator.js.map +1 -1
  75. package/dist/infrastructure/mcp/MCPServer.js +13 -13
  76. package/dist/infrastructure/mcp/MCPServer.js.map +1 -1
  77. package/dist/infrastructure/mcp/ToolRegistry.d.ts +5 -1
  78. package/dist/infrastructure/mcp/ToolRegistry.js +11 -4
  79. package/dist/infrastructure/mcp/ToolRegistry.js.map +1 -1
  80. package/dist/infrastructure/mcp/sddToolDefinitions.d.ts +6 -0
  81. package/dist/infrastructure/mcp/sddToolDefinitions.js +110 -0
  82. package/dist/infrastructure/mcp/sddToolDefinitions.js.map +1 -0
  83. package/dist/infrastructure/schemas/project.schema.d.ts +2 -2
  84. package/dist/infrastructure/schemas/project.schema.js +2 -2
  85. package/dist/infrastructure/schemas/project.schema.js.map +1 -1
  86. package/dist/shared/version.d.ts +3 -0
  87. package/dist/shared/version.js +4 -0
  88. package/dist/shared/version.js.map +1 -0
  89. package/dist/utils/atomicWrite.d.ts +8 -35
  90. package/dist/utils/atomicWrite.js +24 -57
  91. package/dist/utils/atomicWrite.js.map +1 -1
  92. package/dist/utils/withFilesystemLock.d.ts +22 -0
  93. package/dist/utils/withFilesystemLock.js +219 -0
  94. package/dist/utils/withFilesystemLock.js.map +1 -0
  95. package/mcp-server.js +5 -2883
  96. package/package.json +8 -3
  97. package/scripts/context-usage-report.mjs +602 -0
  98. package/sdd-entry.js +17 -6
  99. package/skills/sdd-commit/REFERENCE.md +31 -0
  100. package/skills/sdd-commit/SKILL.md +17 -273
  101. package/skills/sdd-design/REFERENCE.md +51 -0
  102. package/skills/sdd-design/SKILL.md +25 -262
  103. package/skills/sdd-implement/REFERENCE.md +30 -0
  104. package/skills/sdd-implement/SKILL.md +27 -284
  105. package/skills/sdd-requirements/REFERENCE.md +39 -0
  106. package/skills/sdd-requirements/SKILL.md +28 -132
  107. package/skills/sdd-review/REFERENCE.md +26 -0
  108. package/skills/sdd-review/SKILL.md +17 -181
  109. package/skills/sdd-security-check/REFERENCE.md +19 -0
  110. package/skills/sdd-security-check/SKILL.md +18 -184
  111. package/skills/sdd-steering/REFERENCE.md +25 -0
  112. package/skills/sdd-steering/SKILL.md +18 -216
  113. package/skills/sdd-steering-custom/REFERENCE.md +27 -0
  114. package/skills/sdd-steering-custom/SKILL.md +19 -203
  115. package/skills/sdd-tasks/REFERENCE.md +25 -0
  116. package/skills/sdd-tasks/SKILL.md +27 -244
  117. package/skills/sdd-test-gen/REFERENCE.md +15 -0
  118. package/skills/sdd-test-gen/SKILL.md +17 -287
  119. package/skills/simple-task/REFERENCE.md +22 -0
  120. package/skills/simple-task/SKILL.md +17 -138
  121. package/templates/CLAUDE.md +13 -31
  122. package/templates/codex-AGENTS.md +7 -9
  123. package/rules/git-workflow.md +0 -92
  124. package/rules/sdd-workflow.md +0 -116
@@ -3,7 +3,7 @@ import * as path from 'path';
3
3
  import { findTemplate } from '../utils/find-package-root.js';
4
4
  import { PreservingWriter, validateChildName } from '../utils/preserving-writer.js';
5
5
  import { parseSourceAgent, renderCodexAgent } from './target-agent-renderer.js';
6
- import { buildGuidanceSection, buildSteeringSection, buildTableSection, listMarkdownFiles, } from './root-guidance.js';
6
+ import { buildCompactRootGuidance } from './root-guidance.js';
7
7
  import { copyFlatComponents, TargetInstallSession, } from './target-installer.js';
8
8
  const CODEX_HOOK_RUNNER_FILE = 'sdd-hook-runner.mjs';
9
9
  const GIT_ROOT_EXPRESSION = '$(git rev-parse --show-toplevel)';
@@ -23,76 +23,12 @@ function loadPreamble() {
23
23
  }
24
24
  return '# AGENTS.md — Spec-Driven Development (SDD)\n\n';
25
25
  }
26
- /**
27
- * Generate AGENTS.md in the project root for OpenAI Codex CLI.
28
- *
29
- * Produces a lightweight summary file containing component names,
30
- * descriptions, and file path references. Codex CLI reads referenced
31
- * files on demand — no content duplication needed.
32
- *
33
- * Only sections for actually-installed component types are included,
34
- * and paths reflect the effective install targets (not hardcoded defaults).
35
- */
36
- export async function generateCodexAgentsMd(projectRoot, managers, paths, installed) {
37
- const targetPath = path.join(projectRoot, 'AGENTS.md');
38
- const failures = [];
39
- if (fs.existsSync(targetPath)) {
40
- try {
41
- if (fs.statSync(targetPath).isDirectory()) {
42
- const error = 'AGENTS.md destination is a directory';
43
- failures.push({ name: 'AGENTS.md', path: targetPath, error });
44
- console.error(' ❌ Failed to create AGENTS.md:', error);
45
- return failures;
46
- }
47
- }
48
- catch (error) {
49
- const message = error instanceof Error ? error.message : String(error);
50
- failures.push({ name: 'AGENTS.md', path: targetPath, error: message });
51
- console.error(' ❌ Failed to inspect AGENTS.md:', message);
52
- return failures;
53
- }
54
- console.log(' ⏭️ AGENTS.md already exists, skipping');
55
- return failures;
56
- }
57
- let content = loadPreamble();
58
- try {
59
- const [skills, rules, agents, steeringDocs] = await Promise.all([
60
- installed.skills ? managers.skillManager.listSkills() : Promise.resolve([]),
61
- installed.rules ? managers.rulesManager.listComponents() : Promise.resolve([]),
62
- installed.agents ? managers.agentManager.listComponents() : Promise.resolve([]),
63
- installed.steering ? managers.listSteering() : Promise.resolve([]),
64
- ]);
65
- content += buildTableSection('Skills', 'Workflow guidance invoked via slash commands:', paths.skillsPath, skills, (s) => `${paths.skillsPath}/${s.name}/`);
66
- content += buildTableSection('Rules', 'Always-active coding standards:', paths.rulesPath, rules, (r) => `${paths.rulesPath}/${path.basename(r.path)}`);
67
- content += buildTableSection('Agents', 'Specialized AI personas:', paths.agentsPath, agents, (a) => `${paths.agentsPath}/${path.basename(a.path, path.extname(a.path))}${paths.agentExtension ?? path.extname(a.path)}`);
68
- content += buildSteeringSection(paths.steeringPath, steeringDocs);
69
- if (installed.contexts)
70
- content += buildGuidanceSection('Contexts', paths.contextsPath);
71
- if (installed.hooks)
72
- content += buildGuidanceSection('Hooks', paths.hooksPath);
73
- }
74
- catch (error) {
75
- const message = error instanceof Error ? error.message : String(error);
76
- console.error(' ⚠️ Failed to gather component metadata:', message);
77
- failures.push({ name: 'metadata', path: targetPath, error: message });
78
- }
79
- try {
80
- fs.writeFileSync(targetPath, content, { encoding: 'utf-8', flag: 'wx' });
81
- console.log(' ✅ Created AGENTS.md for Codex CLI');
82
- }
83
- catch (error) {
84
- if (isAlreadyExists(error)) {
85
- console.log(' ⏭️ AGENTS.md already exists, skipping');
86
- return failures;
87
- }
88
- const message = error instanceof Error ? error.message : String(error);
89
- failures.push({ name: 'AGENTS.md', path: targetPath, error: message });
90
- console.error(' ❌ Failed to create AGENTS.md:', message);
91
- }
92
- return failures;
93
- }
94
26
  export async function installCodexTarget(request) {
95
- const session = new TargetInstallSession('codex', request.projectRoot, request.writer ?? new PreservingWriter(request.projectRoot));
27
+ const writer = request.writer ?? new PreservingWriter(request.projectRoot);
28
+ return writer.withInstallLock(() => installCodexTargetLocked({ ...request, writer }));
29
+ }
30
+ async function installCodexTargetLocked(request) {
31
+ const session = new TargetInstallSession('codex', request.projectRoot, request.writer, request.profile ?? 'lean', request.components, request.refreshGenerated);
96
32
  const selected = new Set(request.components);
97
33
  if (selected.has('skills')) {
98
34
  await session.copySkills(request.sources.skillManager, request.paths.skills);
@@ -143,27 +79,10 @@ export async function installCodexTarget(request) {
143
79
  await session.write('hooks', 'hooks.json', configDestination, renderCodexHooksConfig(request.paths.hooks, request.projectRoot));
144
80
  }
145
81
  }
146
- const rootContent = await buildCodexRootGuidance(request, selected, request.rootGuidancePreamble ?? loadPreamble());
147
- await session.write('root', request.paths.rootGuidance, session.resolve(request.paths.rootGuidance), rootContent);
148
- return session.report;
149
- }
150
- async function buildCodexRootGuidance(request, selected, preamble) {
151
- const [skills, rules, agents, steeringDocs] = await Promise.all([
152
- selected.has('skills') ? request.sources.skillManager.listSkills() : Promise.resolve([]),
153
- selected.has('rules') ? request.sources.rulesManager.listComponents() : Promise.resolve([]),
154
- selected.has('agents') ? request.sources.agentManager.listComponents() : Promise.resolve([]),
155
- selected.has('steering') ? listMarkdownFiles(request.sources.steeringSource) : Promise.resolve([]),
156
- ]);
157
- let content = preamble;
158
- content += buildTableSection('Skills', 'Workflow guidance invoked as skills:', request.paths.skills, skills, skill => `${request.paths.skills}/${skill.name}/`);
159
- content += buildTableSection('Rules', 'Always-active project guidance:', request.paths.rules, rules, rule => `${request.paths.rules}/${path.basename(rule.path)}`);
160
- content += buildTableSection('Agents', 'Specialized AI personas with role-specific model routing:', request.paths.agents, agents, agent => `${request.paths.agents}/${path.basename(agent.path, path.extname(agent.path))}.toml`);
161
- content += buildSteeringSection(request.paths.steering, steeringDocs);
162
- if (selected.has('contexts'))
163
- content += buildGuidanceSection('Contexts', request.paths.contexts);
164
- if (selected.has('hooks'))
165
- content += buildGuidanceSection('Hooks', request.paths.hooks);
166
- return content;
82
+ if (selected.size > 0 || request.rootGuidancePreamble !== undefined) {
83
+ await session.write('root', request.paths.rootGuidance, session.resolve(request.paths.rootGuidance), buildCompactRootGuidance('codex', request.paths, selected, request.rootGuidancePreamble ?? loadPreamble()));
84
+ }
85
+ return session.complete(request.paths);
167
86
  }
168
87
  export function renderCodexHooksConfig(hooksPath, projectRoot = process.cwd()) {
169
88
  const runner = resolveHookRunnerCommandPath(hooksPath, projectRoot);
@@ -210,7 +129,4 @@ async function loadHookRunnerTemplate() {
210
129
  return null;
211
130
  return fs.promises.readFile(template, 'utf8');
212
131
  }
213
- function isAlreadyExists(error) {
214
- return typeof error === 'object' && error !== null && 'code' in error && error.code === 'EEXIST';
215
- }
216
132
  //# sourceMappingURL=codex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/cli/tool-support/codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/cli/tool-support/codex.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- export { generateCodexAgentsMd } from './codex.js';
2
- export type { ManagerRefs, InstallPaths, InstalledComponents, CodexGuidanceFailure } from './codex.js';
1
+ export { installCodexTarget } from './codex.js';
2
+ export { installClaudeCodeTarget } from './claude-code.js';
3
+ export { installOmpTarget } from './omp.js';
3
4
  export { createAntigravitySymlinks } from './antigravity.js';
4
5
  export type { AntigravityPaths, AntigravityFailure } from './antigravity.js';
@@ -1,3 +1,5 @@
1
- export { generateCodexAgentsMd } from './codex.js';
1
+ export { installCodexTarget } from './codex.js';
2
+ export { installClaudeCodeTarget } from './claude-code.js';
3
+ export { installOmpTarget } from './omp.js';
2
4
  export { createAntigravitySymlinks } from './antigravity.js';
3
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/tool-support/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/tool-support/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { InstallTarget, ResolvedInstallPaths } from '../install-target.js';
2
+ export interface RuntimeRegistrationRecord {
3
+ path: string;
4
+ serverName: 'sdd-mcp';
5
+ entrySemanticSha256: string;
6
+ managedRegionSha256?: string;
7
+ permissionPath?: string;
8
+ permissionSemanticSha256?: string;
9
+ }
10
+ export interface RuntimeRegistrationResult {
11
+ registration: RuntimeRegistrationRecord;
12
+ installed: string[];
13
+ skipped: string[];
14
+ verify(): Promise<void>;
15
+ rollback(): Promise<boolean>;
16
+ }
17
+ export declare function installRuntimeRegistration(projectRoot: string, target: InstallTarget, paths?: ResolvedInstallPaths): Promise<{
18
+ installed: string[];
19
+ skipped: string[];
20
+ warnings: string[];
21
+ }>;
22
+ export declare function registerRuntimeLocked(projectRoot: string, target: InstallTarget, paths: ResolvedInstallPaths, previous?: RuntimeRegistrationRecord, assertHeld?: () => Promise<void>): Promise<RuntimeRegistrationResult>;
@@ -0,0 +1,275 @@
1
+ import * as crypto from 'crypto';
2
+ import * as fs from 'fs';
3
+ import * as path from 'path';
4
+ import { applyEdits, modify, parse as parseJsonc, parseTree } from 'jsonc-parser';
5
+ import { parse as parseToml } from 'smol-toml';
6
+ import { atomicWriteFile } from '../../utils/atomicWrite.js';
7
+ import { PACKAGE_VERSION } from '../../shared/version.js';
8
+ import { PreservingWriter, validateDestinationPath } from '../utils/preserving-writer.js';
9
+ const SERVER_NAME = 'sdd-mcp';
10
+ const COMMAND = 'npx';
11
+ const ARGS = ['-y', `sdd-mcp-server@${PACKAGE_VERSION}`];
12
+ const START_MARKER = '# >>> sdd-mcp managed runtime';
13
+ export async function installRuntimeRegistration(projectRoot, target, paths) {
14
+ return new PreservingWriter(projectRoot).installRuntimeRegistration(target, paths);
15
+ }
16
+ const END_MARKER = '# <<< sdd-mcp managed runtime';
17
+ export async function registerRuntimeLocked(projectRoot, target, paths, previous, assertHeld = async () => undefined) {
18
+ const configPath = path.resolve(projectRoot, paths.runtimeConfig);
19
+ validateDestinationPath(projectRoot, configPath);
20
+ const configPrior = await readOptional(configPath);
21
+ const installed = [];
22
+ const skipped = [];
23
+ const relativeConfig = relative(projectRoot, configPath);
24
+ let configNext;
25
+ let entrySemanticSha256;
26
+ let managedRegionSha256;
27
+ if (target === 'codex') {
28
+ const prepared = prepareCodex(configPrior, previous);
29
+ configNext = prepared.bytes;
30
+ entrySemanticSha256 = prepared.semanticHash;
31
+ managedRegionSha256 = prepared.regionHash;
32
+ }
33
+ else {
34
+ const prepared = prepareJsonc(configPrior, target, previous);
35
+ configNext = prepared.bytes;
36
+ entrySemanticSha256 = prepared.semanticHash;
37
+ }
38
+ let permissionPath;
39
+ let permissionSemanticSha256;
40
+ let permissionPrior = null;
41
+ let permissionNext = null;
42
+ if (target === 'claude-code') {
43
+ permissionPath = path.resolve(projectRoot, paths.runtimePermissionConfig);
44
+ validateDestinationPath(projectRoot, permissionPath);
45
+ permissionPrior = await readOptional(permissionPath);
46
+ const prepared = prepareClaudePermissions(permissionPrior);
47
+ permissionNext = prepared.bytes;
48
+ permissionSemanticSha256 = prepared.semanticHash;
49
+ }
50
+ const writes = [
51
+ { file: configPath, prior: configPrior, next: configNext },
52
+ ];
53
+ if (permissionPath && permissionNext)
54
+ writes.push({ file: permissionPath, prior: permissionPrior, next: permissionNext });
55
+ const committed = [];
56
+ try {
57
+ for (const write of writes) {
58
+ if (buffersEqual(write.prior, write.next)) {
59
+ skipped.push(relative(projectRoot, write.file));
60
+ continue;
61
+ }
62
+ await replaceCas(write.file, write.prior, write.next, assertHeld);
63
+ committed.push(write);
64
+ installed.push(relative(projectRoot, write.file));
65
+ }
66
+ }
67
+ catch (error) {
68
+ for (const write of committed.reverse()) {
69
+ await assertHeld();
70
+ const current = await readOptional(write.file);
71
+ if (buffersEqual(current, write.next)) {
72
+ if (write.prior === null)
73
+ await fs.promises.rm(write.file, { force: true });
74
+ else
75
+ await atomicWriteFile(write.file, write.prior.toString('utf8'));
76
+ await assertHeld();
77
+ }
78
+ }
79
+ throw error;
80
+ }
81
+ return {
82
+ registration: {
83
+ path: relativeConfig,
84
+ serverName: SERVER_NAME,
85
+ entrySemanticSha256,
86
+ managedRegionSha256,
87
+ permissionPath: permissionPath ? relative(projectRoot, permissionPath) : undefined,
88
+ permissionSemanticSha256,
89
+ },
90
+ installed,
91
+ skipped,
92
+ verify: async () => {
93
+ for (const write of writes) {
94
+ if (!buffersEqual(await readOptional(write.file), write.next)) {
95
+ throw new Error(`Runtime changed before manifest commit: ${write.file}`);
96
+ }
97
+ }
98
+ await assertHeld();
99
+ },
100
+ rollback: async () => {
101
+ let restored = true;
102
+ for (const write of [...committed].reverse()) {
103
+ await assertHeld();
104
+ const current = await readOptional(write.file);
105
+ if (!buffersEqual(current, write.next)) {
106
+ restored = false;
107
+ continue;
108
+ }
109
+ if (write.prior === null)
110
+ await fs.promises.rm(write.file, { force: true });
111
+ else
112
+ await atomicWriteFile(write.file, write.prior.toString('utf8'));
113
+ await assertHeld();
114
+ }
115
+ return restored;
116
+ },
117
+ };
118
+ }
119
+ function uniqueJsoncProperty(node, key, context) {
120
+ if (!node || node.type !== 'object')
121
+ return undefined;
122
+ const matches = (node.children ?? []).filter((child) => child.type === 'property' && child.children?.[0]?.value === key);
123
+ if (matches.length > 1)
124
+ throw new Error(`Duplicate JSONC property ${context}.${key}`);
125
+ return matches[0]?.children?.[1];
126
+ }
127
+ function prepareJsonc(prior, target, previous) {
128
+ const source = prior?.toString('utf8') ?? '{}\n';
129
+ const errors = [];
130
+ const parsed = parseJsonc(source, errors, { allowTrailingComma: true });
131
+ if (errors.length || !parsed || typeof parsed !== 'object' || Array.isArray(parsed))
132
+ throw new Error('Malformed JSONC runtime config');
133
+ const tree = parseTree(source, [], { allowTrailingComma: true });
134
+ const serversNode = uniqueJsoncProperty(tree, 'mcpServers', 'root');
135
+ uniqueJsoncProperty(serversNode, SERVER_NAME, 'mcpServers');
136
+ const desired = { type: 'stdio', command: COMMAND, args: [...ARGS] };
137
+ const servers = parsed.mcpServers;
138
+ if (servers !== undefined
139
+ && (servers === null || typeof servers !== 'object' || Array.isArray(servers))) {
140
+ throw new Error('JSONC runtime config mcpServers must be an object');
141
+ }
142
+ const existing = servers && typeof servers === 'object' && !Array.isArray(servers)
143
+ ? servers[SERVER_NAME]
144
+ : undefined;
145
+ assertOwnedOrDesired(existing, desired, previous?.entrySemanticSha256, 'runtime server');
146
+ const edits = modify(source, ['mcpServers', SERVER_NAME], desired, {
147
+ formattingOptions: { insertSpaces: true, tabSize: 2, eol: source.includes('\r\n') ? '\r\n' : '\n' },
148
+ });
149
+ return { bytes: Buffer.from(applyEdits(source, edits)), semanticHash: semanticHash(desired), target };
150
+ }
151
+ function prepareClaudePermissions(prior) {
152
+ const source = prior?.toString('utf8') ?? '{}\n';
153
+ const errors = [];
154
+ const parsed = parseJsonc(source, errors, { allowTrailingComma: true });
155
+ if (errors.length || !parsed || typeof parsed !== 'object' || Array.isArray(parsed))
156
+ throw new Error('Malformed Claude permission settings');
157
+ const tree = parseTree(source, [], { allowTrailingComma: true });
158
+ const permissionsNode = uniqueJsoncProperty(tree, 'permissions', 'root');
159
+ uniqueJsoncProperty(permissionsNode, 'allow', 'permissions');
160
+ const permissions = parsed.permissions;
161
+ if (permissions !== undefined && (typeof permissions !== 'object' || permissions === null || Array.isArray(permissions))) {
162
+ throw new Error('Claude permissions must be an object');
163
+ }
164
+ const allow = permissions?.allow;
165
+ if (allow !== undefined && (!Array.isArray(allow) || allow.some(value => typeof value !== 'string'))) {
166
+ throw new Error('Claude permissions.allow must be a string array');
167
+ }
168
+ const desiredRule = 'mcp__sdd-mcp__*';
169
+ const desiredAllow = [...(allow ?? [])];
170
+ if (!desiredAllow.includes(desiredRule))
171
+ desiredAllow.push(desiredRule);
172
+ const edits = modify(source, ['permissions', 'allow'], desiredAllow, {
173
+ formattingOptions: { insertSpaces: true, tabSize: 2, eol: source.includes('\r\n') ? '\r\n' : '\n' },
174
+ });
175
+ return { bytes: Buffer.from(applyEdits(source, edits)), semanticHash: semanticHash(desiredRule) };
176
+ }
177
+ function prepareCodex(prior, previous) {
178
+ const source = prior?.toString('utf8') ?? '';
179
+ let parsed;
180
+ try {
181
+ parsed = parseToml(source);
182
+ }
183
+ catch {
184
+ throw new Error('Malformed TOML runtime config');
185
+ }
186
+ const lines = source.split(/(?<=\n)/);
187
+ const starts = lines.map((line, index) => line.replace(/[\r\n]+$/, '') === START_MARKER ? index : -1).filter(index => index >= 0);
188
+ const ends = lines.map((line, index) => line.replace(/[\r\n]+$/, '') === END_MARKER ? index : -1).filter(index => index >= 0);
189
+ if (starts.length !== ends.length || starts.length > 1 || (starts.length === 1 && starts[0] >= ends[0])) {
190
+ throw new Error('Partial or multiple sdd-mcp managed runtime markers');
191
+ }
192
+ const desiredEntry = {
193
+ command: COMMAND,
194
+ args: [...ARGS],
195
+ required: true,
196
+ default_tools_approval_mode: 'auto',
197
+ startup_timeout_sec: 30,
198
+ };
199
+ const existing = (parsed.mcp_servers ?? {})[SERVER_NAME];
200
+ const block = `${START_MARKER}\n[mcp_servers.'sdd-mcp']\ncommand = "npx"\nargs = ["-y", "sdd-mcp-server@${PACKAGE_VERSION}"]\nrequired = true\ndefault_tools_approval_mode = "auto"\nstartup_timeout_sec = 30\n${END_MARKER}\n`;
201
+ if (starts.length === 0) {
202
+ if (existing !== undefined) {
203
+ if (semanticHash(existing) !== semanticHash(desiredEntry))
204
+ throw new Error('Unmanaged sdd-mcp runtime server already exists');
205
+ throw new Error('Exact Codex runtime entry lacks managed markers');
206
+ }
207
+ }
208
+ else {
209
+ const currentRegion = Buffer.from(lines.slice(starts[0], ends[0] + 1).join(''));
210
+ const currentRegionHash = sha256(currentRegion);
211
+ if (previous?.managedRegionSha256) {
212
+ if (currentRegionHash !== previous.managedRegionSha256
213
+ || existing === undefined
214
+ || semanticHash(existing) !== previous.entrySemanticSha256) {
215
+ throw new Error('Managed Codex runtime region was modified');
216
+ }
217
+ }
218
+ else if (currentRegionHash !== sha256(Buffer.from(block))
219
+ || existing === undefined
220
+ || semanticHash(existing) !== semanticHash(desiredEntry)) {
221
+ throw new Error('Unowned Codex runtime region differs from the desired entry');
222
+ }
223
+ }
224
+ const next = starts.length === 1
225
+ ? `${lines.slice(0, starts[0]).join('')}${block}${lines.slice(ends[0] + 1).join('')}`
226
+ : `${source}${source && !source.endsWith('\n') ? '\n' : ''}${source ? '\n' : ''}${block}`;
227
+ try {
228
+ parseToml(next);
229
+ }
230
+ catch {
231
+ throw new Error('Generated Codex runtime config is invalid');
232
+ }
233
+ return { bytes: Buffer.from(next), semanticHash: semanticHash(desiredEntry), regionHash: sha256(Buffer.from(block)) };
234
+ }
235
+ function assertOwnedOrDesired(existing, desired, ownedHash, label) {
236
+ if (existing === undefined)
237
+ return;
238
+ const existingHash = semanticHash(existing);
239
+ if (existingHash === semanticHash(desired) || existingHash === ownedHash)
240
+ return;
241
+ throw new Error(`Conflicting unmanaged ${label} named ${SERVER_NAME}`);
242
+ }
243
+ async function replaceCas(file, prior, next, assertHeld) {
244
+ await assertHeld();
245
+ const current = await readOptional(file);
246
+ if (!buffersEqual(current, prior))
247
+ throw new Error(`Concurrent edit detected: ${file}`);
248
+ await atomicWriteFile(file, next.toString('utf8'));
249
+ const written = await readOptional(file);
250
+ if (!buffersEqual(written, next))
251
+ throw new Error(`Runtime write verification failed: ${file}`);
252
+ await assertHeld();
253
+ }
254
+ async function readOptional(file) {
255
+ try {
256
+ return await fs.promises.readFile(file);
257
+ }
258
+ catch (error) {
259
+ if (typeof error === 'object' && error !== null && 'code' in error && error.code === 'ENOENT')
260
+ return null;
261
+ throw error;
262
+ }
263
+ }
264
+ function stable(value) {
265
+ if (Array.isArray(value))
266
+ return value.map(stable);
267
+ if (value && typeof value === 'object')
268
+ return Object.fromEntries(Object.entries(value).sort(([a], [b]) => a.localeCompare(b)).map(([key, child]) => [key, stable(child)]));
269
+ return value;
270
+ }
271
+ function semanticHash(value) { return sha256(Buffer.from(JSON.stringify(stable(value)))); }
272
+ function sha256(bytes) { return crypto.createHash('sha256').update(bytes).digest('hex'); }
273
+ function buffersEqual(left, right) { return left === null || right === null ? left === right : left.equals(right); }
274
+ function relative(root, file) { return path.relative(root, file).split(path.sep).join('/'); }
275
+ //# sourceMappingURL=mcp-registration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-registration.js","sourceRoot":"","sources":["../../../src/cli/tool-support/mcp-registration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,UAAU,EAAE,SAAS,EAA2C,MAAM,cAAc,CAAC;AAC3H,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAkB1F,MAAM,WAAW,GAAG,SAAkB,CAAC;AACvC,MAAM,OAAO,GAAG,KAAK,CAAC;AACtB,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,kBAAkB,eAAe,EAAE,CAAU,CAAC;AAClE,MAAM,YAAY,GAAG,+BAA+B,CAAC;AACrD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,WAAmB,EACnB,MAAqB,EACrB,KAA4B;IAE5B,OAAO,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC,0BAA0B,CACjE,MAAM,EACN,KAAK,CACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,+BAA+B,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAAmB,EACnB,MAAqB,EACrB,KAA2B,EAC3B,QAAoC,EACpC,aAAkC,KAAK,IAAI,EAAE,CAAC,SAAS;IAEvD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAClE,uBAAuB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACzD,IAAI,UAAkB,CAAC;IACvB,IAAI,mBAA2B,CAAC;IAChC,IAAI,mBAAuC,CAAC;IAE5C,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACrD,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC5B,mBAAmB,GAAG,QAAQ,CAAC,YAAY,CAAC;QAC5C,mBAAmB,GAAG,QAAQ,CAAC,UAAU,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7D,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC5B,mBAAmB,GAAG,QAAQ,CAAC,YAAY,CAAC;IAC9C,CAAC;IAED,IAAI,cAAkC,CAAC;IACvC,IAAI,wBAA4C,CAAC;IACjD,IAAI,eAAe,GAAkB,IAAI,CAAC;IAC1C,IAAI,cAAc,GAAkB,IAAI,CAAC;IACzC,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,uBAAwB,CAAC,CAAC;QAC3E,uBAAuB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACrD,eAAe,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,eAAe,CAAC,CAAC;QAC3D,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC;QAChC,wBAAwB,GAAG,QAAQ,CAAC,YAAY,CAAC;IACnD,CAAC;IAED,MAAM,MAAM,GAAgE;QAC1E,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE;KAC3D,CAAC;IACF,IAAI,cAAc,IAAI,cAAc;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IAC1H,MAAM,SAAS,GAAkB,EAAE,CAAC;IACpC,IAAI,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChD,SAAS;YACX,CAAC;YACD,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAClE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YACxC,MAAM,UAAU,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI;oBAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;oBACvE,MAAM,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBACrE,MAAM,UAAU,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,OAAO;QACL,YAAY,EAAE;YACZ,IAAI,EAAE,cAAc;YACpB,UAAU,EAAE,WAAW;YACvB,mBAAmB;YACnB,mBAAmB;YACnB,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS;YAClF,wBAAwB;SACzB;QACD,SAAS;QACT,OAAO;QACP,MAAM,EAAE,KAAK,IAAI,EAAE;YACjB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,YAAY,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9D,MAAM,IAAI,KAAK,CAAC,2CAA2C,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;YACD,MAAM,UAAU,EAAE,CAAC;QACrB,CAAC;QACD,QAAQ,EAAE,KAAK,IAAI,EAAE;YACnB,IAAI,QAAQ,GAAG,IAAI,CAAC;YACpB,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC7C,MAAM,UAAU,EAAE,CAAC;gBACnB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvC,QAAQ,GAAG,KAAK,CAAC;oBACjB,SAAS;gBACX,CAAC;gBACD,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI;oBAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;oBACvE,MAAM,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBACrE,MAAM,UAAU,EAAE,CAAC;YACrB,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAA2B,EAAE,GAAW,EAAE,OAAe;IACpF,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CACrD,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,GAAG,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;IACtF,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,YAAY,CAAC,KAAoB,EAAE,MAA6B,EAAE,QAAoC;IAC7G,MAAM,MAAM,GAAG,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;IACjD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAwC,CAAC;IAC/G,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACvI,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IACpE,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IACrE,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;IAClC,IACE,OAAO,KAAK,SAAS;WAClB,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAC9E,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAChF,CAAC,CAAE,OAAmC,CAAC,WAAW,CAAC;QACnD,CAAC,CAAC,SAAS,CAAC;IACd,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;IACzF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE;QACjE,iBAAiB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;KACpG,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;AACxG,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAoB;IACpD,MAAM,MAAM,GAAG,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;IACjD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAwC,CAAC;IAC/G,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC7I,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,MAAM,eAAe,GAAG,mBAAmB,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACzE,mBAAmB,CAAC,eAAe,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACvC,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QACzH,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,KAAK,GAAI,WAAmD,EAAE,KAAK,CAAC;IAC1E,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC;QACrG,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,WAAW,GAAG,iBAAiB,CAAC;IACtC,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,KAA6B,IAAI,EAAE,CAAC,CAAC,CAAC;IAChE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,YAAY,EAAE;QACnE,iBAAiB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;KACpG,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;AACpG,CAAC;AAED,SAAS,YAAY,CAAC,KAAoB,EAAE,QAAoC;IAC9E,MAAM,MAAM,GAAG,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC7C,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAA4B,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAAC,CAAC;IAC1H,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IAClI,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IAC9H,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxG,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACf,QAAQ,EAAE,IAAI;QACd,2BAA2B,EAAE,MAAM;QACnC,mBAAmB,EAAE,EAAE;KACxB,CAAC;IACF,MAAM,QAAQ,GAAG,CAAE,MAAM,CAAC,WAAmD,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;IAClG,MAAM,KAAK,GAAG,GAAG,YAAY,6EAA6E,eAAe,wFAAwF,UAAU,IAAI,CAAC;IAChO,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,YAAY,CAAC,YAAY,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YAC9H,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAChF,MAAM,iBAAiB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QAChD,IAAI,QAAQ,EAAE,mBAAmB,EAAE,CAAC;YAClC,IACE,iBAAiB,KAAK,QAAQ,CAAC,mBAAmB;mBAC/C,QAAQ,KAAK,SAAS;mBACtB,YAAY,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,mBAAmB,EAC1D,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;aAAM,IACL,iBAAiB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;eAC7C,QAAQ,KAAK,SAAS;eACtB,YAAY,CAAC,QAAQ,CAAC,KAAK,YAAY,CAAC,YAAY,CAAC,EACxD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC;QAC9B,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QACrF,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IAC5F,IAAI,CAAC;QAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAAC,CAAC;IAChG,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;AACxH,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAiB,EAAE,OAAgB,EAAE,SAA6B,EAAE,KAAa;IAC7G,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO;IACnC,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,YAAY,KAAK,YAAY,CAAC,OAAO,CAAC,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO;IACjF,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,UAAU,WAAW,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,KAAoB,EAAE,IAAY,EAAE,UAA+B;IACzG,MAAM,UAAU,EAAE,CAAC;IACnB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IACxF,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;IAChG,MAAM,UAAU,EAAE,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAY;IACtC,IAAI,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3G,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5K,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,YAAY,CAAC,KAAc,IAAY,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5G,SAAS,MAAM,CAAC,KAAa,IAAY,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1G,SAAS,YAAY,CAAC,IAAmB,EAAE,KAAoB,IAAa,OAAO,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3J,SAAS,QAAQ,CAAC,IAAY,EAAE,IAAY,IAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type BaseTargetInstallRequest } from './target-installer.js';
2
+ export interface OmpInstallRequest extends BaseTargetInstallRequest {
3
+ rootGuidancePreamble?: string;
4
+ }
5
+ export declare function installOmpTarget(request: OmpInstallRequest): Promise<import("../install-target.js").TargetInstallReport>;
@@ -0,0 +1,47 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import { CliUsageError } from '../install-target.js';
4
+ import { PreservingWriter, validateChildName } from '../utils/preserving-writer.js';
5
+ import { buildCompactRootGuidance } from './root-guidance.js';
6
+ import { parseSourceAgent, renderOmpAgent } from './target-agent-renderer.js';
7
+ import { copyFlatComponents, TargetInstallSession, } from './target-installer.js';
8
+ export async function installOmpTarget(request) {
9
+ const writer = request.writer ?? new PreservingWriter(request.projectRoot);
10
+ return writer.withInstallLock(() => installOmpTargetLocked({ ...request, writer }));
11
+ }
12
+ async function installOmpTargetLocked(request) {
13
+ if (request.components.includes('hooks')) {
14
+ throw new CliUsageError('Oh My Pi does not support packaged Markdown hooks; omit --hooks.');
15
+ }
16
+ const session = new TargetInstallSession('omp', request.projectRoot, request.writer, request.profile ?? 'lean', request.components, request.refreshGenerated);
17
+ const selected = new Set(request.components);
18
+ if (selected.has('skills'))
19
+ await session.copySkills(request.sources.skillManager, request.paths.skills);
20
+ if (selected.has('steering'))
21
+ await session.copySteering(request.sources.steeringSource, request.paths.steering);
22
+ if (selected.has('rules')) {
23
+ await copyFlatComponents(session, 'rules', request.paths.rules, await request.sources.rulesManager.listComponents());
24
+ }
25
+ if (selected.has('contexts')) {
26
+ await copyFlatComponents(session, 'contexts', request.paths.contexts, await request.sources.contextManager.listComponents());
27
+ }
28
+ if (selected.has('agents')) {
29
+ const destinationRoot = session.resolve(request.paths.agents);
30
+ for (const descriptor of await request.sources.agentManager.listComponents()) {
31
+ const destination = path.join(destinationRoot, `${descriptor.name}.md`);
32
+ try {
33
+ validateChildName(descriptor.name);
34
+ const source = await fs.promises.readFile(descriptor.path, 'utf8');
35
+ await session.write('agents', descriptor.name, destination, renderOmpAgent(parseSourceAgent(source)));
36
+ }
37
+ catch (error) {
38
+ session.fail('agents', descriptor.name, destination, error);
39
+ }
40
+ }
41
+ }
42
+ if (selected.size > 0 || request.rootGuidancePreamble !== undefined) {
43
+ await session.write('root', request.paths.rootGuidance, session.resolve(request.paths.rootGuidance), buildCompactRootGuidance('omp', request.paths, selected, request.rootGuidancePreamble));
44
+ }
45
+ return session.complete(request.paths);
46
+ }
47
+ //# sourceMappingURL=omp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omp.js","sourceRoot":"","sources":["../../../src/cli/tool-support/omp.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,2 @@
1
- export interface GuidanceItem {
2
- name: string;
3
- description: string;
4
- path: string;
5
- }
6
- export declare function buildTableSection(title: string, subtitle: string, basePath: string, items: GuidanceItem[], pathFormatter: (item: GuidanceItem) => string): string;
7
- export declare function buildSteeringSection(basePath: string, docs: string[]): string;
8
- export declare function buildGuidanceSection(title: string, basePath: string | undefined): string;
9
- export declare function listMarkdownFiles(directory: string): Promise<string[]>;
1
+ import type { ComponentType, InstallTarget, ResolvedInstallPaths } from '../install-target.js';
2
+ export declare function buildCompactRootGuidance(target: InstallTarget, paths: ResolvedInstallPaths, selected: ReadonlySet<ComponentType>, preamble?: string): string;