sdd-mcp-server 3.5.0 → 4.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 (95) hide show
  1. package/README.md +97 -671
  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 -5
  9. package/dist/adapters/cli/SDDToolAdapter.js +189 -362
  10. package/dist/adapters/cli/SDDToolAdapter.js.map +1 -1
  11. package/dist/application/services/ContextCompactionService.d.ts +81 -16
  12. package/dist/application/services/ContextCompactionService.js +370 -187
  13. package/dist/application/services/ContextCompactionService.js.map +1 -1
  14. package/dist/application/services/SpecPathResolver.d.ts +24 -0
  15. package/dist/application/services/SpecPathResolver.js +70 -0
  16. package/dist/application/services/SpecPathResolver.js.map +1 -0
  17. package/dist/application/services/WorkflowEngineService.d.ts +100 -46
  18. package/dist/application/services/WorkflowEngineService.js +468 -288
  19. package/dist/application/services/WorkflowEngineService.js.map +1 -1
  20. package/dist/cli/install-skills.d.ts +3 -9
  21. package/dist/cli/install-skills.js +130 -175
  22. package/dist/cli/install-skills.js.map +1 -1
  23. package/dist/cli/install-target.d.ts +45 -14
  24. package/dist/cli/install-target.js +26 -12
  25. package/dist/cli/install-target.js.map +1 -1
  26. package/dist/cli/sdd-mcp-cli.d.ts +1 -1
  27. package/dist/cli/sdd-mcp-cli.js +7 -6
  28. package/dist/cli/sdd-mcp-cli.js.map +1 -1
  29. package/dist/cli/tool-support/claude-code.js +13 -34
  30. package/dist/cli/tool-support/claude-code.js.map +1 -1
  31. package/dist/cli/tool-support/codex.d.ts +0 -53
  32. package/dist/cli/tool-support/codex.js +6 -94
  33. package/dist/cli/tool-support/codex.js.map +1 -1
  34. package/dist/cli/tool-support/index.d.ts +3 -2
  35. package/dist/cli/tool-support/index.js +3 -1
  36. package/dist/cli/tool-support/index.js.map +1 -1
  37. package/dist/cli/tool-support/omp.d.ts +5 -0
  38. package/dist/cli/tool-support/omp.js +43 -0
  39. package/dist/cli/tool-support/omp.js.map +1 -0
  40. package/dist/cli/tool-support/root-guidance.d.ts +2 -9
  41. package/dist/cli/tool-support/root-guidance.js +44 -37
  42. package/dist/cli/tool-support/root-guidance.js.map +1 -1
  43. package/dist/cli/tool-support/target-agent-renderer.d.ts +1 -0
  44. package/dist/cli/tool-support/target-agent-renderer.js +37 -4
  45. package/dist/cli/tool-support/target-agent-renderer.js.map +1 -1
  46. package/dist/cli/tool-support/target-installer.d.ts +8 -2
  47. package/dist/cli/tool-support/target-installer.js +94 -26
  48. package/dist/cli/tool-support/target-installer.js.map +1 -1
  49. package/dist/cli/utils/preserving-writer.d.ts +22 -0
  50. package/dist/cli/utils/preserving-writer.js +233 -11
  51. package/dist/cli/utils/preserving-writer.js.map +1 -1
  52. package/dist/domain/ports.d.ts +4 -0
  53. package/dist/index.d.ts +13 -10
  54. package/dist/index.js +16 -1199
  55. package/dist/index.js.map +1 -1
  56. package/dist/infrastructure/adapters/NodeFileSystemAdapter.d.ts +3 -0
  57. package/dist/infrastructure/adapters/NodeFileSystemAdapter.js +10 -0
  58. package/dist/infrastructure/adapters/NodeFileSystemAdapter.js.map +1 -1
  59. package/dist/infrastructure/mcp/CapabilityNegotiator.js +3 -3
  60. package/dist/infrastructure/mcp/CapabilityNegotiator.js.map +1 -1
  61. package/dist/infrastructure/mcp/sddToolDefinitions.d.ts +6 -0
  62. package/dist/infrastructure/mcp/sddToolDefinitions.js +124 -0
  63. package/dist/infrastructure/mcp/sddToolDefinitions.js.map +1 -0
  64. package/dist/utils/atomicWrite.d.ts +8 -35
  65. package/dist/utils/atomicWrite.js +12 -60
  66. package/dist/utils/atomicWrite.js.map +1 -1
  67. package/mcp-server.js +5 -2883
  68. package/package.json +5 -2
  69. package/scripts/context-usage-report.mjs +602 -0
  70. package/sdd-entry.js +17 -6
  71. package/skills/sdd-commit/REFERENCE.md +31 -0
  72. package/skills/sdd-commit/SKILL.md +17 -273
  73. package/skills/sdd-design/REFERENCE.md +35 -0
  74. package/skills/sdd-design/SKILL.md +19 -265
  75. package/skills/sdd-implement/REFERENCE.md +26 -0
  76. package/skills/sdd-implement/SKILL.md +22 -283
  77. package/skills/sdd-requirements/REFERENCE.md +31 -0
  78. package/skills/sdd-requirements/SKILL.md +23 -135
  79. package/skills/sdd-review/REFERENCE.md +26 -0
  80. package/skills/sdd-review/SKILL.md +17 -181
  81. package/skills/sdd-security-check/REFERENCE.md +19 -0
  82. package/skills/sdd-security-check/SKILL.md +18 -184
  83. package/skills/sdd-steering/REFERENCE.md +25 -0
  84. package/skills/sdd-steering/SKILL.md +18 -216
  85. package/skills/sdd-steering-custom/REFERENCE.md +27 -0
  86. package/skills/sdd-steering-custom/SKILL.md +19 -203
  87. package/skills/sdd-tasks/REFERENCE.md +25 -0
  88. package/skills/sdd-tasks/SKILL.md +19 -248
  89. package/skills/sdd-test-gen/REFERENCE.md +15 -0
  90. package/skills/sdd-test-gen/SKILL.md +17 -287
  91. package/skills/simple-task/REFERENCE.md +22 -0
  92. package/skills/simple-task/SKILL.md +17 -138
  93. package/templates/CLAUDE.md +18 -30
  94. package/rules/git-workflow.md +0 -92
  95. 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,8 @@ 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 session = new TargetInstallSession('codex', request.projectRoot, request.writer ?? new PreservingWriter(request.projectRoot), request.profile ?? 'lean', request.components, request.refreshGenerated);
96
28
  const selected = new Set(request.components);
97
29
  if (selected.has('skills')) {
98
30
  await session.copySkills(request.sources.skillManager, request.paths.skills);
@@ -143,27 +75,10 @@ export async function installCodexTarget(request) {
143
75
  await session.write('hooks', 'hooks.json', configDestination, renderCodexHooksConfig(request.paths.hooks, request.projectRoot));
144
76
  }
145
77
  }
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;
78
+ if (selected.size > 0 || request.rootGuidancePreamble !== undefined) {
79
+ await session.write('root', request.paths.rootGuidance, session.resolve(request.paths.rootGuidance), buildCompactRootGuidance('codex', request.paths, selected, request.rootGuidancePreamble ?? loadPreamble()));
80
+ }
81
+ return session.complete();
167
82
  }
168
83
  export function renderCodexHooksConfig(hooksPath, projectRoot = process.cwd()) {
169
84
  const runner = resolveHookRunnerCommandPath(hooksPath, projectRoot);
@@ -210,7 +125,4 @@ async function loadHookRunnerTemplate() {
210
125
  return null;
211
126
  return fs.promises.readFile(template, 'utf8');
212
127
  }
213
- function isAlreadyExists(error) {
214
- return typeof error === 'object' && error !== null && 'code' in error && error.code === 'EEXIST';
215
- }
216
128
  //# 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,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,43 @@
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
+ if (request.components.includes('hooks')) {
10
+ throw new CliUsageError('Oh My Pi does not support packaged Markdown hooks; omit --hooks.');
11
+ }
12
+ const session = new TargetInstallSession('omp', request.projectRoot, request.writer ?? new PreservingWriter(request.projectRoot), request.profile ?? 'lean', request.components, request.refreshGenerated);
13
+ const selected = new Set(request.components);
14
+ if (selected.has('skills'))
15
+ await session.copySkills(request.sources.skillManager, request.paths.skills);
16
+ if (selected.has('steering'))
17
+ await session.copySteering(request.sources.steeringSource, request.paths.steering);
18
+ if (selected.has('rules')) {
19
+ await copyFlatComponents(session, 'rules', request.paths.rules, await request.sources.rulesManager.listComponents());
20
+ }
21
+ if (selected.has('contexts')) {
22
+ await copyFlatComponents(session, 'contexts', request.paths.contexts, await request.sources.contextManager.listComponents());
23
+ }
24
+ if (selected.has('agents')) {
25
+ const destinationRoot = session.resolve(request.paths.agents);
26
+ for (const descriptor of await request.sources.agentManager.listComponents()) {
27
+ const destination = path.join(destinationRoot, `${descriptor.name}.md`);
28
+ try {
29
+ validateChildName(descriptor.name);
30
+ const source = await fs.promises.readFile(descriptor.path, 'utf8');
31
+ await session.write('agents', descriptor.name, destination, renderOmpAgent(parseSourceAgent(source)));
32
+ }
33
+ catch (error) {
34
+ session.fail('agents', descriptor.name, destination, error);
35
+ }
36
+ }
37
+ }
38
+ if (selected.size > 0 || request.rootGuidancePreamble !== undefined) {
39
+ await session.write('root', request.paths.rootGuidance, session.resolve(request.paths.rootGuidance), buildCompactRootGuidance('omp', request.paths, selected, request.rootGuidancePreamble));
40
+ }
41
+ return session.complete();
42
+ }
43
+ //# 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;
@@ -1,40 +1,47 @@
1
- import * as fs from 'fs';
2
- export function buildTableSection(title, subtitle, basePath, items, pathFormatter) {
3
- if (items.length === 0)
4
- return '';
5
- let section = `### ${title} (\`${basePath}/\`)\n\n`;
6
- section += `${subtitle}\n\n`;
7
- section += `| ${title.slice(0, -1)} | Description | Path |\n`;
8
- section += '|-------|-------------|------|\n';
9
- for (const item of items) {
10
- section += `| ${item.name} | ${item.description || '—'} | \`${pathFormatter(item)}\` |\n`;
11
- }
12
- section += '\n';
13
- return section;
14
- }
15
- export function buildSteeringSection(basePath, docs) {
16
- if (docs.length === 0)
17
- return '';
18
- let section = `### Steering (\`${basePath}/\`)\n\n`;
19
- section += 'Project-specific context documents:\n\n';
20
- for (const doc of docs) {
21
- section += `- \`${basePath}/${doc}\`\n`;
22
- }
23
- section += '\n';
24
- return section;
25
- }
26
- export function buildGuidanceSection(title, basePath) {
27
- if (!basePath)
28
- return '';
29
- return `### ${title} (\`${basePath}/\`)\n\nRead the relevant guidance files from this directory on demand.\n\n`;
30
- }
31
- export async function listMarkdownFiles(directory) {
32
- try {
33
- const entries = await fs.promises.readdir(directory);
34
- return entries.filter(file => file.endsWith('.md'));
35
- }
36
- catch {
37
- return [];
1
+ const TITLES = {
2
+ skills: 'Skills',
3
+ steering: 'Steering',
4
+ rules: 'Rules',
5
+ contexts: 'Contexts',
6
+ agents: 'Agents',
7
+ hooks: 'Hooks',
8
+ };
9
+ export function buildCompactRootGuidance(target, paths, selected, preamble) {
10
+ const invocation = target === 'codex' ? '$' : target === 'omp' ? '/skill:' : '/';
11
+ const heading = preamble?.split(/\r?\n/).find(line => line.trim())?.trim();
12
+ const routing = target === 'omp'
13
+ ? [
14
+ 'High-level work runs inline on Sol/medium by default. Project Sol/xhigh advisors are explicit opt-in.',
15
+ 'When explicitly invoked, use one advisor without nested delegation; on failure, record one fallback and continue inline without retrying.',
16
+ ]
17
+ : target === 'claude-code'
18
+ ? [
19
+ 'High-level planning, architecture, review, and security execute in the current turn on Opus.',
20
+ 'Implementation and TDD execute in the current turn on Sonnet; do not spawn a redundant specialist.',
21
+ ]
22
+ : [
23
+ 'High-level planning, architecture, review, and security may use one configured Sol/xhigh custom agent.',
24
+ 'Implementation and TDD run inline on Sol/medium; on advisor failure, record one fallback and continue inline without retrying.',
25
+ ];
26
+ const lines = [
27
+ heading || `# SDD guidance for ${target}`,
28
+ '',
29
+ '## Workflow',
30
+ '',
31
+ `Use \`${invocation}simple-task <description>\` for small changes. For formal work, run \`${invocation}sdd-requirements <feature-name>\`, then \`${invocation}sdd-design\`, \`${invocation}sdd-tasks\`, and \`${invocation}sdd-implement\` after each approval.`,
32
+ 'Use installed `sdd-*` MCP tools for durable workflow state; load compact context by default.',
33
+ '',
34
+ ];
35
+ if (selected.size > 0) {
36
+ lines.push('## On-demand directories', '');
37
+ for (const component of ['skills', 'rules', 'contexts', 'agents', 'hooks', 'steering']) {
38
+ if (!selected.has(component))
39
+ continue;
40
+ lines.push(`- ${TITLES[component]}: \`${paths[component]}/\``);
41
+ }
42
+ lines.push('');
38
43
  }
44
+ lines.push('## Model routing', '', ...routing, '');
45
+ return `${lines.join('\n').trim()}\n`;
39
46
  }
40
47
  //# sourceMappingURL=root-guidance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"root-guidance.js","sourceRoot":"","sources":["../../../src/cli/tool-support/root-guidance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAQzB,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,QAAgB,EAChB,QAAgB,EAChB,KAAqB,EACrB,aAA6C;IAE7C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,IAAI,OAAO,GAAG,OAAO,KAAK,OAAO,QAAQ,UAAU,CAAC;IACpD,OAAO,IAAI,GAAG,QAAQ,MAAM,CAAC;IAC7B,OAAO,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,2BAA2B,CAAC;IAC9D,OAAO,IAAI,kCAAkC,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,WAAW,IAAI,GAAG,QAAQ,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC5F,CAAC;IACD,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,IAAc;IACnE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjC,IAAI,OAAO,GAAG,mBAAmB,QAAQ,UAAU,CAAC;IACpD,OAAO,IAAI,yCAAyC,CAAC;IACrD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,IAAI,OAAO,QAAQ,IAAI,GAAG,MAAM,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAa,EAAE,QAA4B;IAC9E,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,OAAO,OAAO,KAAK,OAAO,QAAQ,6EAA6E,CAAC;AAClH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,SAAiB;IACvD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"root-guidance.js","sourceRoot":"","sources":["../../../src/cli/tool-support/root-guidance.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAA4C;IACtD,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,MAAM,UAAU,wBAAwB,CACtC,MAAqB,EACrB,KAA2B,EAC3B,QAAoC,EACpC,QAAiB;IAEjB,MAAM,UAAU,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;IACjF,MAAM,OAAO,GAAG,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IAC3E,MAAM,OAAO,GAAG,MAAM,KAAK,KAAK;QAC9B,CAAC,CAAC;YACA,uGAAuG;YACvG,2IAA2I;SAC5I;QACD,CAAC,CAAC,MAAM,KAAK,aAAa;YACxB,CAAC,CAAC;gBACA,8FAA8F;gBAC9F,oGAAoG;aACrG;YACD,CAAC,CAAC;gBACA,wGAAwG;gBACxG,gIAAgI;aACjI,CAAC;IACN,MAAM,KAAK,GAAG;QACZ,OAAO,IAAI,sBAAsB,MAAM,EAAE;QACzC,EAAE;QACF,aAAa;QACb,EAAE;QACF,SAAS,UAAU,yEAAyE,UAAU,6CAA6C,UAAU,mBAAmB,UAAU,sBAAsB,UAAU,sCAAsC;QAChQ,8FAA8F;QAC9F,EAAE;KACH,CAAC;IACF,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;QAC3C,KAAK,MAAM,SAAS,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAU,EAAE,CAAC;YAChG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,SAAS;YACvC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,KAAK,CAAC,IAAI,CACR,kBAAkB,EAClB,EAAE,EACF,GAAG,OAAO,EACV,EAAE,CACH,CAAC;IACF,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;AACxC,CAAC"}
@@ -9,3 +9,4 @@ export interface SourceAgent {
9
9
  export declare function parseSourceAgent(content: string): SourceAgent;
10
10
  export declare function renderClaudeCodeAgent(agent: SourceAgent): string;
11
11
  export declare function renderCodexAgent(agent: SourceAgent): string;
12
+ export declare function renderOmpAgent(agent: SourceAgent): string;
@@ -22,17 +22,50 @@ export function parseSourceAgent(content) {
22
22
  };
23
23
  }
24
24
  export function renderClaudeCodeAgent(agent) {
25
- const model = ROLE_MODEL_ROUTES[agent.role].claudeCode.model;
26
- return `---\nname: ${agent.name}\ndescription: ${agent.description}\nrole: ${agent.role}\nexpertise: ${agent.expertise}\nmodel: ${model}\n---\n\n${agent.instructions}\n`;
25
+ const route = ROLE_MODEL_ROUTES[agent.role];
26
+ const readOnly = route.taskClass === 'advisor';
27
+ const tools = readOnly ? 'Read, Grep, Glob' : 'Read, Grep, Glob, Edit, Write, Bash';
28
+ const maxTurns = readOnly ? 12 : 24;
29
+ return `---\nname: ${agent.name}\ndescription: ${agent.description}\nrole: ${agent.role}\nexpertise: ${agent.expertise}\nmodel: ${route.claudeCode.model}\ntools: ${tools}\nmaxTurns: ${maxTurns}\n---\n\n${agent.instructions}\n`;
27
30
  }
28
31
  export function renderCodexAgent(agent) {
29
- const route = ROLE_MODEL_ROUTES[agent.role].codex;
32
+ const roleRoute = ROLE_MODEL_ROUTES[agent.role];
33
+ const route = roleRoute.codex;
34
+ const readOnly = roleRoute.taskClass === 'advisor';
35
+ const instructions = `${agent.instructions}\n\nDo not delegate or spawn another agent. Return only decisions, affected artifacts, verification evidence, and unresolved blockers; at most 2,048 estimated tokens.`;
30
36
  return [
31
37
  `name = ${JSON.stringify(agent.name)}`,
32
38
  `description = ${JSON.stringify(agent.description)}`,
33
39
  `model = ${JSON.stringify(route.model)}`,
34
40
  `model_reasoning_effort = ${JSON.stringify(route.reasoningEffort)}`,
35
- `developer_instructions = ${JSON.stringify(agent.instructions)}`,
41
+ `sandbox_mode = ${JSON.stringify(readOnly ? 'read-only' : 'workspace-write')}`,
42
+ `max_turns = ${readOnly ? 12 : 24}`,
43
+ `developer_instructions = ${JSON.stringify(instructions)}`,
44
+ '',
45
+ ].join('\n');
46
+ }
47
+ export function renderOmpAgent(agent) {
48
+ const route = ROLE_MODEL_ROUTES[agent.role].omp;
49
+ const readOnly = ROLE_MODEL_ROUTES[agent.role].taskClass === 'advisor';
50
+ const tools = readOnly
51
+ ? ['read', 'grep', 'glob']
52
+ : ['read', 'grep', 'glob', 'edit', 'write', 'bash'];
53
+ const maxTurns = readOnly ? 12 : 24;
54
+ return [
55
+ '---',
56
+ `name: ${agent.name}`,
57
+ `description: ${agent.description}`,
58
+ `model: ${route.model}`,
59
+ `thinkingLevel: ${route.thinkingLevel}`,
60
+ 'tools:',
61
+ ...tools.map(tool => ` - ${tool}`),
62
+ `maxTurns: ${maxTurns}`,
63
+ '---',
64
+ '',
65
+ agent.instructions,
66
+ '',
67
+ 'Return only: decisions, affected artifacts, verification evidence, and unresolved blockers.',
68
+ 'Do not delegate or spawn another agent. Keep the result at most 2,048 estimated tokens.',
36
69
  '',
37
70
  ].join('\n');
38
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"target-agent-renderer.js","sourceRoot":"","sources":["../../../src/cli/tool-support/target-agent-renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"target-agent-renderer.js","sourceRoot":"","sources":["../../../src/cli/tool-support/target-agent-renderer.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { RulesManager } from '../../rules/RulesManager.js';
3
3
  import type { ContextManager } from '../../contexts/ContextManager.js';
4
4
  import type { AgentManager } from '../../agents/AgentManager.js';
5
5
  import type { HookLoader } from '../../hooks/HookLoader.js';
6
- import type { ComponentType, InstallTarget, ResolvedInstallPaths, TargetInstallReport } from '../install-target.js';
6
+ import { type ComponentType, type InstallProfile, type InstallTarget, type ResolvedInstallPaths, type TargetInstallReport } from '../install-target.js';
7
7
  import { PreservingWriter } from '../utils/preserving-writer.js';
8
8
  export interface TargetSources {
9
9
  skillManager: SkillManager;
@@ -19,22 +19,28 @@ export interface BaseTargetInstallRequest {
19
19
  components: readonly ComponentType[];
20
20
  sources: TargetSources;
21
21
  writer?: PreservingWriter;
22
+ profile?: InstallProfile;
23
+ refreshGenerated?: boolean;
22
24
  }
23
25
  export declare class TargetInstallSession {
24
26
  readonly target: InstallTarget;
25
27
  readonly projectRoot: string;
26
28
  readonly writer: PreservingWriter;
27
29
  readonly report: TargetInstallReport;
28
- constructor(target: InstallTarget, projectRoot: string, writer: PreservingWriter);
30
+ constructor(target: InstallTarget, projectRoot: string, writer: PreservingWriter, profile: InstallProfile, components: readonly ComponentType[], refreshGenerated?: boolean);
29
31
  resolve(configuredPath: string): string;
30
32
  label(destination: string): string;
31
33
  write(component: ComponentType | 'root', name: string, destination: string, content: string): Promise<void>;
32
34
  copy(component: ComponentType | 'root', name: string, source: string, destination: string): Promise<void>;
33
35
  copySkills(sourceManager: SkillManager, configuredPath: string): Promise<void>;
34
36
  copySteering(source: string, configuredPath: string): Promise<void>;
37
+ complete(): Promise<TargetInstallReport>;
35
38
  fail(component: ComponentType | 'root', name: string, destination: string, error: unknown): void;
39
+ private copySkillTree;
36
40
  }
37
41
  export declare function copyFlatComponents(session: TargetInstallSession, component: 'rules' | 'contexts', configuredPath: string, descriptors: Array<{
38
42
  name: string;
39
43
  path: string;
40
44
  }>): Promise<void>;
45
+ export declare function renderTargetRule(target: InstallTarget, fileName: string, source: string): string;
46
+ export declare function renderTargetSkill(target: InstallTarget, skillName: string, source: string): string;