sdd-mcp-server 3.4.0 → 3.5.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 (69) hide show
  1. package/README.md +75 -40
  2. package/dist/adapters/cli/SDDToolAdapter.js +3 -3
  3. package/dist/adapters/cli/SDDToolAdapter.js.map +1 -1
  4. package/dist/application/services/staticSteering.js +2 -4
  5. package/dist/application/services/staticSteering.js.map +1 -1
  6. package/dist/cli/install-skills.d.ts +10 -32
  7. package/dist/cli/install-skills.js +213 -176
  8. package/dist/cli/install-skills.js.map +1 -1
  9. package/dist/cli/install-target.d.ts +127 -0
  10. package/dist/cli/install-target.js +127 -0
  11. package/dist/cli/install-target.js.map +1 -0
  12. package/dist/cli/migrate-steering.js +13 -13
  13. package/dist/cli/migrate-steering.js.map +1 -1
  14. package/dist/cli/sdd-mcp-cli.d.ts +1 -1
  15. package/dist/cli/sdd-mcp-cli.js +14 -10
  16. package/dist/cli/sdd-mcp-cli.js.map +1 -1
  17. package/dist/cli/tool-support/antigravity.d.ts +6 -1
  18. package/dist/cli/tool-support/antigravity.js +55 -12
  19. package/dist/cli/tool-support/antigravity.js.map +1 -1
  20. package/dist/cli/tool-support/claude-code.d.ts +5 -0
  21. package/dist/cli/tool-support/claude-code.js +93 -0
  22. package/dist/cli/tool-support/claude-code.js.map +1 -0
  23. package/dist/cli/tool-support/codex.d.ts +18 -1
  24. package/dist/cli/tool-support/codex.js +161 -36
  25. package/dist/cli/tool-support/codex.js.map +1 -1
  26. package/dist/cli/tool-support/index.d.ts +2 -2
  27. package/dist/cli/tool-support/root-guidance.d.ts +9 -0
  28. package/dist/cli/tool-support/root-guidance.js +40 -0
  29. package/dist/cli/tool-support/root-guidance.js.map +1 -0
  30. package/dist/cli/tool-support/target-agent-renderer.d.ts +11 -0
  31. package/dist/cli/tool-support/target-agent-renderer.js +52 -0
  32. package/dist/cli/tool-support/target-agent-renderer.js.map +1 -0
  33. package/dist/cli/tool-support/target-installer.d.ts +40 -0
  34. package/dist/cli/tool-support/target-installer.js +116 -0
  35. package/dist/cli/tool-support/target-installer.js.map +1 -0
  36. package/dist/cli/utils/gitignore-manager.d.ts +5 -0
  37. package/dist/cli/utils/gitignore-manager.js +85 -0
  38. package/dist/cli/utils/gitignore-manager.js.map +1 -0
  39. package/dist/cli/utils/preserving-writer.d.ts +13 -0
  40. package/dist/cli/utils/preserving-writer.js +106 -0
  41. package/dist/cli/utils/preserving-writer.js.map +1 -0
  42. package/dist/hooks/HookLoader.js +9 -1
  43. package/dist/hooks/HookLoader.js.map +1 -1
  44. package/dist/index.js +6 -6
  45. package/dist/index.js.map +1 -1
  46. package/dist/shared/BaseManager.d.ts +10 -1
  47. package/dist/shared/BaseManager.js +34 -5
  48. package/dist/shared/BaseManager.js.map +1 -1
  49. package/dist/skills/SkillManager.d.ts +3 -1
  50. package/dist/skills/SkillManager.js +15 -3
  51. package/dist/skills/SkillManager.js.map +1 -1
  52. package/package.json +1 -1
  53. package/sdd-entry.js +2 -2
  54. package/skills/sdd-design/SKILL.md +4 -0
  55. package/skills/sdd-implement/SKILL.md +4 -0
  56. package/skills/sdd-requirements/SKILL.md +4 -0
  57. package/skills/sdd-review/SKILL.md +4 -0
  58. package/skills/sdd-security-check/SKILL.md +4 -0
  59. package/skills/sdd-steering/SKILL.md +4 -0
  60. package/skills/sdd-steering-custom/SKILL.md +4 -0
  61. package/skills/sdd-tasks/SKILL.md +4 -0
  62. package/skills/sdd-test-gen/SKILL.md +4 -0
  63. package/skills/simple-task/SKILL.md +4 -0
  64. package/templates/CLAUDE.md +2 -36
  65. package/templates/codex-AGENTS.md +1 -2
  66. package/templates/codex-hook-runner.js +85 -0
  67. package/dist/utils/sddPaths.d.ts +0 -69
  68. package/dist/utils/sddPaths.js +0 -138
  69. package/dist/utils/sddPaths.js.map +0 -1
@@ -0,0 +1,127 @@
1
+ export type InstallTarget = 'codex' | 'claude-code';
2
+ export type InstallProfile = 'lean' | 'full';
3
+ export type ComponentType = 'skills' | 'steering' | 'rules' | 'contexts' | 'agents' | 'hooks';
4
+ export type AgentRole = 'planner' | 'architect' | 'reviewer' | 'security-auditor' | 'implementer' | 'tdd-guide';
5
+ export interface ResolvedInstallPaths {
6
+ skills: string;
7
+ steering: string;
8
+ rules: string;
9
+ contexts: string;
10
+ agents: string;
11
+ hooks: string;
12
+ rootGuidance: string;
13
+ }
14
+ export interface PathOverrides {
15
+ skills?: string;
16
+ steering?: string;
17
+ rules?: string;
18
+ contexts?: string;
19
+ agents?: string;
20
+ hooks?: string;
21
+ }
22
+ export interface TargetPolicy {
23
+ target: InstallTarget;
24
+ defaultPaths: ResolvedInstallPaths;
25
+ ignoreEntries: readonly string[];
26
+ }
27
+ export interface TargetResolutionOptions {
28
+ target?: InstallTarget;
29
+ legacyCodex: boolean;
30
+ profile: InstallProfile;
31
+ }
32
+ export interface TargetPromptIO {
33
+ isInteractive(): boolean;
34
+ chooseTarget(): Promise<InstallTarget | null>;
35
+ writeNotice(message: string): void;
36
+ }
37
+ export interface ResolvedTarget {
38
+ target: InstallTarget;
39
+ source: 'explicit' | 'legacy-codex' | 'interactive' | 'compatibility-default';
40
+ }
41
+ export interface InstallFailure {
42
+ component: ComponentType | 'root';
43
+ name: string;
44
+ path: string;
45
+ error: string;
46
+ }
47
+ export interface TargetInstallReport {
48
+ target: InstallTarget;
49
+ installed: string[];
50
+ skipped: string[];
51
+ failed: InstallFailure[];
52
+ }
53
+ export declare class CliUsageError extends Error {
54
+ constructor(message: string);
55
+ }
56
+ export declare class InstallCancelledError extends Error {
57
+ constructor();
58
+ }
59
+ export declare const SUPPORTED_CODEX_MODELS: readonly ["gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna"];
60
+ export declare const DEFAULT_CODEX_MODEL: "gpt-5.6-luna";
61
+ export declare const ROLE_MODEL_ROUTES: {
62
+ readonly planner: {
63
+ readonly taskClass: "high-level" | "implementation";
64
+ readonly codex: {
65
+ readonly model: "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna";
66
+ readonly reasoningEffort: "xhigh" | "max";
67
+ };
68
+ readonly claudeCode: {
69
+ readonly model: "opus" | "sonnet";
70
+ };
71
+ };
72
+ readonly architect: {
73
+ readonly taskClass: "high-level" | "implementation";
74
+ readonly codex: {
75
+ readonly model: "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna";
76
+ readonly reasoningEffort: "xhigh" | "max";
77
+ };
78
+ readonly claudeCode: {
79
+ readonly model: "opus" | "sonnet";
80
+ };
81
+ };
82
+ readonly reviewer: {
83
+ readonly taskClass: "high-level" | "implementation";
84
+ readonly codex: {
85
+ readonly model: "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna";
86
+ readonly reasoningEffort: "xhigh" | "max";
87
+ };
88
+ readonly claudeCode: {
89
+ readonly model: "opus" | "sonnet";
90
+ };
91
+ };
92
+ readonly 'security-auditor': {
93
+ readonly taskClass: "high-level" | "implementation";
94
+ readonly codex: {
95
+ readonly model: "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna";
96
+ readonly reasoningEffort: "xhigh" | "max";
97
+ };
98
+ readonly claudeCode: {
99
+ readonly model: "opus" | "sonnet";
100
+ };
101
+ };
102
+ readonly implementer: {
103
+ readonly taskClass: "high-level" | "implementation";
104
+ readonly codex: {
105
+ readonly model: "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna";
106
+ readonly reasoningEffort: "xhigh" | "max";
107
+ };
108
+ readonly claudeCode: {
109
+ readonly model: "opus" | "sonnet";
110
+ };
111
+ };
112
+ readonly 'tdd-guide': {
113
+ readonly taskClass: "high-level" | "implementation";
114
+ readonly codex: {
115
+ readonly model: "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna";
116
+ readonly reasoningEffort: "xhigh" | "max";
117
+ };
118
+ readonly claudeCode: {
119
+ readonly model: "opus" | "sonnet";
120
+ };
121
+ };
122
+ };
123
+ export declare const SKILL_AGENT_ROUTES: Readonly<Record<string, AgentRole>>;
124
+ export declare function isInstallTarget(value: string): value is InstallTarget;
125
+ export declare function getTargetPolicy(target: InstallTarget): TargetPolicy;
126
+ export declare function resolveInstallPaths(policy: TargetPolicy, overrides: PathOverrides): ResolvedInstallPaths;
127
+ export declare function resolveInstallTarget(options: TargetResolutionOptions, io: TargetPromptIO): Promise<ResolvedTarget>;
@@ -0,0 +1,127 @@
1
+ import * as path from 'path';
2
+ export class CliUsageError extends Error {
3
+ constructor(message) {
4
+ super(message);
5
+ this.name = 'CliUsageError';
6
+ }
7
+ }
8
+ export class InstallCancelledError extends Error {
9
+ constructor() {
10
+ super('Installation cancelled');
11
+ this.name = 'InstallCancelledError';
12
+ }
13
+ }
14
+ export const SUPPORTED_CODEX_MODELS = [
15
+ 'gpt-5.6-sol',
16
+ 'gpt-5.6-terra',
17
+ 'gpt-5.6-luna',
18
+ ];
19
+ export const DEFAULT_CODEX_MODEL = 'gpt-5.6-luna';
20
+ export const ROLE_MODEL_ROUTES = {
21
+ planner: route('high-level', 'gpt-5.6-sol', 'xhigh', 'opus'),
22
+ architect: route('high-level', 'gpt-5.6-sol', 'xhigh', 'opus'),
23
+ reviewer: route('high-level', 'gpt-5.6-sol', 'xhigh', 'opus'),
24
+ 'security-auditor': route('high-level', 'gpt-5.6-sol', 'xhigh', 'opus'),
25
+ implementer: route('implementation', DEFAULT_CODEX_MODEL, 'max', 'sonnet'),
26
+ 'tdd-guide': route('implementation', DEFAULT_CODEX_MODEL, 'max', 'sonnet'),
27
+ };
28
+ function route(taskClass, model, reasoningEffort, claudeModel) {
29
+ return {
30
+ taskClass,
31
+ codex: { model, reasoningEffort },
32
+ claudeCode: { model: claudeModel },
33
+ };
34
+ }
35
+ export const SKILL_AGENT_ROUTES = {
36
+ 'sdd-requirements': 'planner',
37
+ 'sdd-tasks': 'planner',
38
+ 'sdd-steering': 'planner',
39
+ 'sdd-steering-custom': 'planner',
40
+ 'sdd-design': 'architect',
41
+ 'sdd-implement': 'implementer',
42
+ 'simple-task': 'implementer',
43
+ 'sdd-test-gen': 'tdd-guide',
44
+ 'sdd-review': 'reviewer',
45
+ 'sdd-security-check': 'security-auditor',
46
+ };
47
+ const TARGET_POLICIES = {
48
+ 'claude-code': {
49
+ target: 'claude-code',
50
+ defaultPaths: {
51
+ skills: '.claude/skills',
52
+ steering: '.spec/steering',
53
+ rules: '.claude/rules',
54
+ contexts: '.claude/contexts',
55
+ agents: '.claude/agents',
56
+ hooks: '.claude/hooks',
57
+ rootGuidance: 'CLAUDE.md',
58
+ },
59
+ ignoreEntries: ['.claude/'],
60
+ },
61
+ codex: {
62
+ target: 'codex',
63
+ defaultPaths: {
64
+ skills: '.agents/skills',
65
+ steering: '.spec/steering',
66
+ rules: '.codex/guidance/rules',
67
+ contexts: '.codex/guidance/contexts',
68
+ agents: '.codex/agents',
69
+ hooks: '.codex/hooks',
70
+ rootGuidance: 'AGENTS.md',
71
+ },
72
+ ignoreEntries: ['.agents/', '.codex/'],
73
+ },
74
+ };
75
+ export function isInstallTarget(value) {
76
+ return value === 'codex' || value === 'claude-code';
77
+ }
78
+ export function getTargetPolicy(target) {
79
+ return TARGET_POLICIES[target];
80
+ }
81
+ export function resolveInstallPaths(policy, overrides) {
82
+ const paths = { ...policy.defaultPaths, ...overrides };
83
+ for (const [component, value] of Object.entries(paths)) {
84
+ if (!value || containsControlCharacter(value)) {
85
+ throw new CliUsageError(`Invalid ${component} path: paths must be non-empty and contain no control characters.`);
86
+ }
87
+ }
88
+ if (policy.target === 'codex') {
89
+ const unsafePath = Object.entries(paths).find(([, value]) => isCodexCommandPolicyPath(value));
90
+ if (unsafePath) {
91
+ throw new CliUsageError(`Codex ${unsafePath[0]} path cannot be installed under .codex/rules; choose a guidance path instead.`);
92
+ }
93
+ }
94
+ return paths;
95
+ }
96
+ function containsControlCharacter(value) {
97
+ return [...value].some(character => {
98
+ const code = character.charCodeAt(0);
99
+ return code <= 31 || code === 127;
100
+ });
101
+ }
102
+ function isCodexCommandPolicyPath(value) {
103
+ const normalized = path.posix.normalize(value.replaceAll('\\', '/'))
104
+ .replace(/^\.\//, '')
105
+ .replace(/\/+$/, '');
106
+ return /(?:^|\/)\.codex\/rules(?:\/|$)/.test(normalized);
107
+ }
108
+ export async function resolveInstallTarget(options, io) {
109
+ if (options.target && options.legacyCodex && options.target !== 'codex') {
110
+ throw new CliUsageError('--codex conflicts with --target claude-code');
111
+ }
112
+ if (options.target)
113
+ return { target: options.target, source: 'explicit' };
114
+ if (options.legacyCodex) {
115
+ io.writeNotice('--codex is deprecated; use --target codex.');
116
+ return { target: 'codex', source: 'legacy-codex' };
117
+ }
118
+ if (options.profile === 'full' && io.isInteractive()) {
119
+ const target = await io.chooseTarget();
120
+ if (!target)
121
+ throw new InstallCancelledError();
122
+ return { target, source: 'interactive' };
123
+ }
124
+ io.writeNotice('No target selected; using claude-code. Use --target codex or --target claude-code.');
125
+ return { target: 'claude-code', source: 'compatibility-default' };
126
+ }
127
+ //# sourceMappingURL=install-target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-target.js","sourceRoot":"","sources":["../../src/cli/install-target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAqE7B,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C;QACE,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,aAAa;IACb,eAAe;IACf,cAAc;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAuB,CAAC;AAE3D,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,KAAK,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC;IAC5D,SAAS,EAAE,KAAK,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC;IAC9D,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC;IAC7D,kBAAkB,EAAE,KAAK,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC;IACvE,WAAW,EAAE,KAAK,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,KAAK,EAAE,QAAQ,CAAC;IAC1E,WAAW,EAAE,KAAK,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,KAAK,EAAE,QAAQ,CAAC;CAClE,CAAC;AAEX,SAAS,KAAK,CACZ,SAA0C,EAC1C,KAA4C,EAC5C,eAAgC,EAChC,WAA8B;IAE9B,OAAO;QACL,SAAS;QACT,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE;QACjC,UAAU,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;KAC1B,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAwC;IACrE,kBAAkB,EAAE,SAAS;IAC7B,WAAW,EAAE,SAAS;IACtB,cAAc,EAAE,SAAS;IACzB,qBAAqB,EAAE,SAAS;IAChC,YAAY,EAAE,WAAW;IACzB,eAAe,EAAE,aAAa;IAC9B,aAAa,EAAE,aAAa;IAC5B,cAAc,EAAE,WAAW;IAC3B,YAAY,EAAE,UAAU;IACxB,oBAAoB,EAAE,kBAAkB;CACzC,CAAC;AAEF,MAAM,eAAe,GAAkD;IACrE,aAAa,EAAE;QACb,MAAM,EAAE,aAAa;QACrB,YAAY,EAAE;YACZ,MAAM,EAAE,gBAAgB;YACxB,QAAQ,EAAE,gBAAgB;YAC1B,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,gBAAgB;YACxB,KAAK,EAAE,eAAe;YACtB,YAAY,EAAE,WAAW;SAC1B;QACD,aAAa,EAAE,CAAC,UAAU,CAAC;KAC5B;IACD,KAAK,EAAE;QACL,MAAM,EAAE,OAAO;QACf,YAAY,EAAE;YACZ,MAAM,EAAE,gBAAgB;YACxB,QAAQ,EAAE,gBAAgB;YAC1B,KAAK,EAAE,uBAAuB;YAC9B,QAAQ,EAAE,0BAA0B;YACpC,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,cAAc;YACrB,YAAY,EAAE,WAAW;SAC1B;QACD,aAAa,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;KACvC;CACF,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,aAAa,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAqB;IACnD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAAoB,EACpB,SAAwB;IAExB,MAAM,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,SAAS,EAAE,CAAC;IACvD,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,KAAK,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,aAAa,CAAC,WAAW,SAAS,mEAAmE,CAAC,CAAC;QACnH,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9F,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,aAAa,CACrB,SAAS,UAAU,CAAC,CAAC,CAAC,+EAA+E,CACtG,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAa;IAC7C,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QACjC,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO,IAAI,IAAI,EAAE,IAAI,IAAI,KAAK,GAAG,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAa;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SACjE,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvB,OAAO,gCAAgC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAgC,EAChC,EAAkB;IAElB,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QACxE,MAAM,IAAI,aAAa,CAAC,6CAA6C,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAC1E,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,EAAE,CAAC,WAAW,CAAC,4CAA4C,CAAC,CAAC;QAC7D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IACrD,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,qBAAqB,EAAE,CAAC;QAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAC3C,CAAC;IACD,EAAE,CAAC,WAAW,CAAC,oFAAoF,CAAC,CAAC;IACrG,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;AACpE,CAAC"}
@@ -48,12 +48,12 @@ What This Tool Does:
48
48
  - structure.md
49
49
 
50
50
  Migration Path:
51
- The static guidance content now lives in enhanced components:
52
- - Design principles: .claude/rules/coding-style.md
53
- - TDD methodology: .claude/agents/tdd-guide.md
54
- - Review criteria: .claude/agents/reviewer.md
55
- - Security checklist: .claude/agents/security-auditor.md
56
- - Commit format: .claude/skills/sdd-commit/SKILL.md
51
+ The static guidance content now lives in packaged component sources:
52
+ - Design principles: rules/coding-style.md
53
+ - TDD methodology: agents/tdd-guide.md
54
+ - Review criteria: agents/reviewer.md
55
+ - Security checklist: agents/security-auditor.md
56
+ - Commit format: skills/sdd-commit/SKILL.md
57
57
 
58
58
  Examples:
59
59
  npx sdd-mcp-server migrate-steering # Migrate current directory
@@ -271,13 +271,13 @@ export async function main() {
271
271
  }
272
272
  else {
273
273
  console.log('✅ Migration complete!\n');
274
- console.log(' The static steering content now lives in:');
275
- console.log(' • .claude/rules/coding-style.md (SOLID, DRY, KISS, YAGNI)');
276
- console.log(' • .claude/agents/reviewer.md (Linus-style review)');
277
- console.log(' • .claude/agents/tdd-guide.md (TDD methodology)');
278
- console.log(' • .claude/agents/security-auditor.md (OWASP Top 10)');
279
- console.log(' • .claude/skills/sdd-commit/SKILL.md (Commit format)\n');
280
- console.log(' To update .claude/ components, run: npx sdd-mcp-server install\n');
274
+ console.log(' The static steering content now lives in packaged sources:');
275
+ console.log(' • rules/coding-style.md (SOLID, DRY, KISS, YAGNI)');
276
+ console.log(' • agents/reviewer.md (Linus-style review)');
277
+ console.log(' • agents/tdd-guide.md (TDD methodology)');
278
+ console.log(' • agents/security-auditor.md (OWASP Top 10)');
279
+ console.log(' • skills/sdd-commit/SKILL.md (Commit format)\n');
280
+ console.log(' Install native components with: npx sdd-mcp-server install --profile full\n');
281
281
  }
282
282
  }
283
283
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"migrate-steering.js","sourceRoot":"","sources":["../../src/cli/migrate-steering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrate-steering.js","sourceRoot":"","sources":["../../src/cli/migrate-steering.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCZ,CAAC;AAEF;;;GAGG;AACH,MAAM,oBAAoB,GAAG;IAC3B,WAAW;IACX,WAAW;IACX,iBAAiB;IACjB,sBAAsB;IACtB,eAAe;IACf,kBAAkB;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,qBAAqB,GAAG;IAC5B,YAAY;IACZ,SAAS;IACT,cAAc;CACf,CAAC;AAEF;;GAEG;AACH,SAAS,SAAS,CAAC,IAAc;IAM/B,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAChC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,KAAK,QAAQ;gBACX,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC7C,MAAM;YACR,KAAK,WAAW,CAAC;YACjB,KAAK,IAAI;gBACP,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM;YACR,KAAK,SAAS,CAAC;YACf,KAAK,IAAI;gBACP,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM;YACR,KAAK,QAAQ,CAAC;YACd,KAAK,IAAI;gBACP,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAEtC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,YAAoB;IAM9C,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;IACtE,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAE7C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QAErC,IAAI,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO;QACL,aAAa,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC;QACpC,UAAU;QACV,WAAW;QACX,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,YAAoB,EAAE,UAAkB,EAAE,MAAe;IAC/E,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,oBAAoB,YAAY,MAAM,UAAU,EAAE,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IAED,0CAA0C;IAC1C,IAAI,eAAe,GAAG,UAAU,CAAC;IACjC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACjE,eAAe,GAAG,GAAG,UAAU,IAAI,SAAS,EAAE,CAAC;IACjD,CAAC;IAED,2BAA2B;IAC3B,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAExC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QACjD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,sBAAsB,eAAe,EAAE,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,YAAoB,EAAE,UAAoB,EAAE,MAAe;IACnF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC7C,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAEjE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAEtE,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IAEpD,iCAAiC;IACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;QAC9E,OAAO;IACT,CAAC;IAED,mBAAmB;IACnB,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAE/F,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;QAC1F,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QACD,OAAO;IACT,CAAC;IAED,2BAA2B;IAC3B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAEpC,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACvE,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,MAAM,UAAU,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACzD,CAAC;IAED,SAAS;IACT,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,qBAAqB;IACrB,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACjD,gBAAgB,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,UAAU;IACV,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAC/E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QAEnE,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,GAAW;IACjC,MAAM,OAAO,GAA2B;QACtC,WAAW,EAAE,gCAAgC;QAC7C,WAAW,EAAE,4BAA4B;QACzC,iBAAiB,EAAE,oBAAoB;QACvC,sBAAsB,EAAE,4BAA4B;QACpD,eAAe,EAAE,uBAAuB;QACxC,kBAAkB,EAAE,qBAAqB;KAC1C,CAAC;IACF,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC;AACrC,CAAC;AAED,4BAA4B;AAC5B,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAClD,CAAC;AAEF,IAAI,YAAY,EAAE,CAAC;IACjB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * Main CLI entry point for sdd-mcp commands
4
4
  *
5
5
  * Usage:
6
- * npx sdd-mcp install [options] # Install skills AND steering (unified)
6
+ * npx sdd-mcp install [options] # Install target-native SDD components
7
7
  * npx sdd-mcp install-skills [options] # Install skills only (legacy)
8
8
  * npx sdd-mcp migrate-kiro [options]
9
9
  * npx sdd-mcp --help
@@ -3,12 +3,12 @@
3
3
  * Main CLI entry point for sdd-mcp commands
4
4
  *
5
5
  * Usage:
6
- * npx sdd-mcp install [options] # Install skills AND steering (unified)
6
+ * npx sdd-mcp install [options] # Install target-native SDD components
7
7
  * npx sdd-mcp install-skills [options] # Install skills only (legacy)
8
8
  * npx sdd-mcp migrate-kiro [options]
9
9
  * npx sdd-mcp --help
10
10
  */
11
- import { main as installSkillsMain, mainInstall as installMain } from './install-skills.js';
11
+ import { cliExitCode, main as installSkillsMain, mainInstall as installMain, } from './install-skills.js';
12
12
  import { main as migrateKiroMain } from './migrate-kiro.js';
13
13
  import { main as migrateSteeringMain } from './migrate-steering.js';
14
14
  const HELP = `
@@ -17,7 +17,7 @@ SDD MCP CLI
17
17
  Usage: npx sdd-mcp-server <command> [options]
18
18
 
19
19
  Commands:
20
- install Install SDD skills AND steering documents (recommended)
20
+ install Install target-native SDD components (recommended)
21
21
  install-skills Install SDD skills only (legacy)
22
22
  migrate-kiro Migrate .kiro directory to .spec (v2.1.0+)
23
23
  migrate-steering Migrate steering docs to consolidated components (v3.1.0+)
@@ -25,18 +25,22 @@ Commands:
25
25
  Options:
26
26
  --help, -h Show this help message
27
27
 
28
- Multi-Tool Support:
29
- --codex Also generate AGENTS.md for OpenAI Codex CLI
28
+ Agent Target:
29
+ --target <target> Choose codex or claude-code
30
+ --codex Deprecated alias for --target codex
31
+
32
+ Additional Integrations:
30
33
  --antigravity Also create .agent/ symlinks for Google Antigravity
31
34
  --all-tools Enable all tool integrations (codex + antigravity)
32
35
 
33
36
  Examples:
34
- npx sdd-mcp-server install # Install skills + steering
37
+ npx sdd-mcp-server install # Lean target-native install
35
38
  npx sdd-mcp-server install --skills # Install skills only
36
39
  npx sdd-mcp-server install --steering # Install steering only
37
40
  npx sdd-mcp-server install --list # List available content
38
- npx sdd-mcp-server install --codex # Claude + Codex CLI
39
- npx sdd-mcp-server install --all-tools # Claude + all tools
41
+ npx sdd-mcp-server install --profile full # Prompt for the target agent
42
+ npx sdd-mcp-server install --target codex # Native Codex install
43
+ npx sdd-mcp-server install --all-tools # Add optional integrations
40
44
  npx sdd-mcp-server install-skills # Legacy: Install skills
41
45
  npx sdd-mcp-server install-skills --list # List available skills
42
46
  npx sdd-mcp-server migrate-kiro # Migrate .kiro to .spec
@@ -55,7 +59,7 @@ async function main() {
55
59
  }
56
60
  switch (command) {
57
61
  case 'install':
58
- // Unified install command - both skills and steering
62
+ // Unified target-aware component installer
59
63
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
60
64
  await installMain();
61
65
  break;
@@ -82,6 +86,6 @@ async function main() {
82
86
  }
83
87
  main().catch((error) => {
84
88
  console.error('Error:', error.message);
85
- process.exit(1);
89
+ process.exit(cliExitCode(error));
86
90
  });
87
91
  //# sourceMappingURL=sdd-mcp-cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdd-mcp-cli.js","sourceRoot":"","sources":["../../src/cli/sdd-mcp-cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,IAAI,iBAAiB,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,IAAI,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCZ,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,qDAAqD;YACrD,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,MAAM,WAAW,EAAE,CAAC;YACpB,MAAM;QAER,KAAK,gBAAgB;YACnB,8BAA8B;YAC9B,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,MAAM,iBAAiB,EAAE,CAAC;YAC1B,MAAM;QAER,KAAK,cAAc;YACjB,iEAAiE;YACjE,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,MAAM,eAAe,EAAE,CAAC;YACxB,MAAM;QAER,KAAK,kBAAkB;YACrB,qEAAqE;YACrE,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,MAAM,mBAAmB,EAAE,CAAC;YAC5B,MAAM;QAER;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"sdd-mcp-cli.js","sourceRoot":"","sources":["../../src/cli/sdd-mcp-cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AAEH,OAAO,EACL,WAAW,EACX,IAAI,IAAI,iBAAiB,EACzB,WAAW,IAAI,WAAW,GAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,IAAI,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCZ,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,2CAA2C;YAC3C,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,MAAM,WAAW,EAAE,CAAC;YACpB,MAAM;QAER,KAAK,gBAAgB;YACnB,8BAA8B;YAC9B,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,MAAM,iBAAiB,EAAE,CAAC;YAC1B,MAAM;QAER,KAAK,cAAc;YACjB,iEAAiE;YACjE,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,MAAM,eAAe,EAAE,CAAC;YACxB,MAAM;QAER,KAAK,kBAAkB;YACrB,qEAAqE;YACrE,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,MAAM,mBAAmB,EAAE,CAAC;YAC5B,MAAM;QAER;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC"}
@@ -5,6 +5,11 @@ export interface AntigravityPaths {
5
5
  skillsPath: string;
6
6
  rulesPath: string;
7
7
  }
8
+ export interface AntigravityFailure {
9
+ name: string;
10
+ path: string;
11
+ error: string;
12
+ }
8
13
  /**
9
14
  * Create `.agent/` symlinks pointing to component directories
10
15
  * for Google Antigravity compatibility.
@@ -15,4 +20,4 @@ export interface AntigravityPaths {
15
20
  * Symlink targets are derived from effective install paths,
16
21
  * so custom `--path` / `--rules-path` flags are respected.
17
22
  */
18
- export declare function createAntigravitySymlinks(projectRoot: string, paths?: AntigravityPaths): Promise<void>;
23
+ export declare function createAntigravitySymlinks(projectRoot: string, paths?: AntigravityPaths): Promise<AntigravityFailure[]>;
@@ -21,47 +21,90 @@ const LINK_DEFS = [
21
21
  */
22
22
  export async function createAntigravitySymlinks(projectRoot, paths = { skillsPath: '.claude/skills', rulesPath: '.claude/rules' }) {
23
23
  const agentDir = path.join(projectRoot, '.agent');
24
+ const failures = [];
24
25
  // Warn on Windows where symlinks may require elevated privileges
25
26
  if (process.platform === 'win32') {
26
27
  console.log(' ⚠️ Symlinks on Windows may require administrator privileges');
27
28
  }
28
- // Create .agent/ directory if needed
29
- if (!fs.existsSync(agentDir)) {
30
- fs.mkdirSync(agentDir, { recursive: true });
29
+ // Create .agent/ directory if needed.
30
+ try {
31
+ if (isSymlink(agentDir)) {
32
+ throw new Error(`Unsafe .agent destination is a symlink: ${agentDir}`);
33
+ }
34
+ if (!fs.existsSync(agentDir))
35
+ fs.mkdirSync(agentDir, { recursive: true });
36
+ }
37
+ catch (error) {
38
+ const message = error instanceof Error ? error.message : String(error);
39
+ console.error(' ❌ Failed to create .agent/:', message);
40
+ failures.push({ name: '.agent', path: agentDir, error: message });
41
+ return failures;
31
42
  }
32
43
  for (const { link, pathKey } of LINK_DEFS) {
33
- // Compute relative symlink target: from .agent/ back to project root, then to effective path
34
- const target = path.join('..', paths[pathKey]);
44
+ // Compute a relative symlink target from .agent to the effective path.
45
+ const resolvedTarget = path.resolve(projectRoot, paths[pathKey]);
46
+ const target = path.relative(agentDir, resolvedTarget) || '.';
35
47
  const linkPath = path.join(agentDir, link);
36
48
  // Check if something already exists at the link path
49
+ let existingTarget;
37
50
  if (fs.existsSync(linkPath) || isSymlink(linkPath)) {
38
51
  if (isSymlink(linkPath)) {
39
- const existingTarget = fs.readlinkSync(linkPath);
52
+ existingTarget = fs.readlinkSync(linkPath);
40
53
  if (existingTarget === target) {
41
54
  console.log(` ⏭️ .agent/${link} symlink already exists, skipping`);
42
55
  continue;
43
56
  }
44
- // Symlink points somewhere else — warn, remove, and recreate
45
57
  console.log(` ⚠️ .agent/${link} symlink points to ${existingTarget}, replacing with ${target}`);
46
- fs.unlinkSync(linkPath);
47
58
  }
48
59
  else {
49
60
  console.log(` ⚠️ .agent/${link} exists as a regular directory, skipping`);
50
61
  continue;
51
62
  }
52
63
  }
53
- // Verify the target directory exists before creating the symlink
54
- const resolvedTarget = path.resolve(agentDir, target);
64
+ // Verify the target directory exists before creating the symlink.
55
65
  if (!fs.existsSync(resolvedTarget)) {
56
66
  console.log(` ⚠️ Target ${target} does not exist yet, creating symlink anyway`);
57
67
  }
58
68
  try {
59
- fs.symlinkSync(target, linkPath, 'dir');
69
+ createSymlinkSafely(target, linkPath, existingTarget);
60
70
  console.log(` ✅ Created .agent/${link} → ${target}`);
61
71
  }
62
72
  catch (error) {
63
- console.error(` ❌ Failed to create .agent/${link} symlink:`, error.message);
73
+ const message = error instanceof Error ? error.message : String(error);
74
+ console.error(` ❌ Failed to create .agent/${link} symlink:`, message);
75
+ failures.push({ name: link, path: linkPath, error: message });
76
+ }
77
+ }
78
+ return failures;
79
+ }
80
+ function createSymlinkSafely(target, linkPath, existingTarget) {
81
+ const temporaryPath = `${linkPath}.sdd-${process.pid}-${Date.now()}`;
82
+ try {
83
+ fs.symlinkSync(target, temporaryPath, 'dir');
84
+ try {
85
+ fs.renameSync(temporaryPath, linkPath);
64
86
  }
87
+ catch (error) {
88
+ if (existingTarget === undefined)
89
+ throw error;
90
+ fs.unlinkSync(linkPath);
91
+ try {
92
+ fs.renameSync(temporaryPath, linkPath);
93
+ }
94
+ catch (replacementError) {
95
+ try {
96
+ fs.symlinkSync(existingTarget, linkPath, 'dir');
97
+ }
98
+ catch {
99
+ // Preserve the original replacement error for the structured report.
100
+ }
101
+ throw replacementError;
102
+ }
103
+ }
104
+ }
105
+ finally {
106
+ if (isSymlink(temporaryPath))
107
+ fs.unlinkSync(temporaryPath);
65
108
  }
66
109
  }
67
110
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"antigravity.js","sourceRoot":"","sources":["../../../src/cli/tool-support/antigravity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"antigravity.js","sourceRoot":"","sources":["../../../src/cli/tool-support/antigravity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type BaseTargetInstallRequest } from './target-installer.js';
2
+ export interface ClaudeCodeInstallRequest extends BaseTargetInstallRequest {
3
+ rootGuidanceContent?: string;
4
+ }
5
+ export declare function installClaudeCodeTarget(request: ClaudeCodeInstallRequest): Promise<import("../install-target.js").TargetInstallReport>;