specky-sdd 3.7.3 → 3.9.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.
- package/.apm/agents/{design-architect.agent.md → specky-design-architect.agent.md} +2 -2
- package/.apm/agents/{implementer.agent.md → specky-implementer.agent.md} +9 -9
- package/.apm/agents/specky-onboarding.agent.md +2 -2
- package/.apm/agents/specky-orchestrator.agent.md +10 -10
- package/.apm/agents/{quality-reviewer.agent.md → specky-quality-reviewer.agent.md} +6 -6
- package/.apm/agents/{release-engineer.agent.md → specky-release-engineer.agent.md} +11 -11
- package/.apm/agents/{requirements-engineer.agent.md → specky-requirements-engineer.agent.md} +8 -8
- package/.apm/agents/{research-analyst.agent.md → specky-research-analyst.agent.md} +9 -9
- package/.apm/agents/{sdd-clarify.agent.md → specky-sdd-clarify.agent.md} +4 -3
- package/.apm/agents/{sdd-init.agent.md → specky-sdd-init.agent.md} +3 -3
- package/.apm/agents/{spec-engineer.agent.md → specky-spec-engineer.agent.md} +2 -2
- package/.apm/agents/{task-planner.agent.md → specky-task-planner.agent.md} +2 -2
- package/.apm/agents/{test-verifier.agent.md → specky-test-verifier.agent.md} +2 -2
- package/.apm/hooks/scripts/{artifact-validator.sh → specky-artifact-validator.sh} +11 -11
- package/.apm/hooks/scripts/{auto-checkpoint.sh → specky-auto-checkpoint.sh} +1 -1
- package/.apm/hooks/scripts/{branch-validator.sh → specky-branch-validator.sh} +3 -3
- package/.apm/hooks/scripts/{cognitive-debt-alert.sh → specky-cognitive-debt-alert.sh} +1 -1
- package/.apm/hooks/scripts/{drift-monitor.sh → specky-drift-monitor.sh} +1 -1
- package/.apm/hooks/scripts/{ears-validator.sh → specky-ears-validator.sh} +1 -1
- package/.apm/hooks/scripts/{lgtm-gate.sh → specky-lgtm-gate.sh} +1 -1
- package/.apm/hooks/scripts/{metrics-dashboard.sh → specky-metrics-dashboard.sh} +2 -2
- package/.apm/hooks/scripts/{phase-gate.sh → specky-phase-gate.sh} +1 -1
- package/.apm/hooks/scripts/{pipeline-guard.sh → specky-pipeline-guard.sh} +3 -3
- package/.apm/hooks/scripts/{release-gate.sh → specky-release-gate.sh} +1 -1
- package/.apm/hooks/scripts/{security-scan.sh → specky-security-scan.sh} +2 -2
- package/.apm/hooks/scripts/{session-banner.sh → specky-session-banner.sh} +4 -4
- package/.apm/hooks/scripts/{spec-quality.sh → specky-spec-quality.sh} +1 -1
- package/.apm/hooks/scripts/{spec-sync.sh → specky-spec-sync.sh} +2 -2
- package/.apm/hooks/scripts/{task-tracer.sh → specky-task-tracer.sh} +1 -1
- package/.apm/hooks/sdd-hooks.json +51 -51
- package/.apm/hooks/specky-run.sh +32 -0
- package/.apm/instructions/claude-instructions.instructions.md +74 -0
- package/.apm/instructions/copilot-instructions.instructions.md +19 -25
- package/.apm/instructions/cursor-instructions.instructions.md +20 -0
- package/.apm/prompts/specky-api.prompt.md +2 -2
- package/.apm/prompts/specky-brownfield.prompt.md +2 -2
- package/.apm/prompts/specky-clarify.prompt.md +1 -1
- package/.apm/prompts/specky-debug-hook.prompt.md +1 -1
- package/.apm/prompts/specky-deploy.prompt.md +1 -1
- package/.apm/prompts/specky-design.prompt.md +1 -1
- package/.apm/prompts/specky-from-meeting.prompt.md +1 -1
- package/.apm/prompts/specky-greenfield.prompt.md +2 -2
- package/.apm/prompts/specky-implement.prompt.md +1 -1
- package/.apm/prompts/specky-migration.prompt.md +3 -3
- package/.apm/prompts/specky-onboarding.prompt.md +1 -0
- package/.apm/prompts/specky-pipeline-status.prompt.md +1 -0
- package/.apm/prompts/specky-release.prompt.md +1 -1
- package/.apm/prompts/specky-research.prompt.md +1 -1
- package/.apm/prompts/specky-specify.prompt.md +1 -1
- package/.apm/prompts/specky-tasks.prompt.md +1 -1
- package/.apm/prompts/specky-verify.prompt.md +1 -1
- package/.apm/skills/specky-design-architect/SKILL.md +21 -0
- package/.apm/skills/{implementer → specky-implementer}/SKILL.md +3 -3
- package/.apm/skills/specky-onboarding/SKILL.md +37 -31
- package/.apm/skills/specky-orchestrator/SKILL.md +28 -28
- package/.apm/skills/specky-quality-reviewer/SKILL.md +28 -0
- package/.apm/skills/{release-engineer → specky-release-engineer}/SKILL.md +7 -7
- package/.apm/skills/{research-analyst → specky-research-analyst}/SKILL.md +2 -2
- package/.apm/skills/specky-sdd-clarify/SKILL.md +25 -0
- package/.apm/skills/specky-sdd-init/SKILL.md +28 -0
- package/.apm/skills/{sdd-markdown-standard → specky-sdd-markdown-standard}/SKILL.md +2 -2
- package/.apm/skills/{sdd-pipeline → specky-sdd-pipeline}/SKILL.md +42 -49
- package/.apm/skills/specky-spec-engineer/SKILL.md +27 -0
- package/.apm/skills/specky-task-planner/SKILL.md +20 -0
- package/.apm/skills/{test-verifier → specky-test-verifier}/SKILL.md +2 -2
- package/CHANGELOG.md +57 -0
- package/README.md +189 -96
- package/apm-policy.yml +19 -0
- package/apm.lock.yaml +70 -61
- package/apm.yml +10 -7
- package/config.yml +35 -33
- package/dist/claude-hooks.json +51 -51
- package/dist/cli/commands/compile.d.ts +7 -0
- package/dist/cli/commands/compile.d.ts.map +1 -0
- package/dist/cli/commands/compile.js +127 -0
- package/dist/cli/commands/compile.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +167 -18
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/hooks.js +2 -2
- package/dist/cli/commands/hooks.js.map +1 -1
- package/dist/cli/commands/init.d.ts +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +121 -19
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/upgrade.d.ts.map +1 -1
- package/dist/cli/commands/upgrade.js +5 -2
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/index.js +21 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/lib/apm/policy.d.ts.map +1 -1
- package/dist/cli/lib/apm/policy.js +47 -33
- package/dist/cli/lib/apm/policy.js.map +1 -1
- package/dist/cli/lib/asset-copier.d.ts +13 -0
- package/dist/cli/lib/asset-copier.d.ts.map +1 -1
- package/dist/cli/lib/asset-copier.js +107 -32
- package/dist/cli/lib/asset-copier.js.map +1 -1
- package/dist/cli/lib/gitignore-writer.d.ts.map +1 -1
- package/dist/cli/lib/gitignore-writer.js +11 -0
- package/dist/cli/lib/gitignore-writer.js.map +1 -1
- package/dist/cli/lib/harness/compilers/agent-skills.d.ts +7 -0
- package/dist/cli/lib/harness/compilers/agent-skills.d.ts.map +1 -0
- package/dist/cli/lib/harness/compilers/agent-skills.js +23 -0
- package/dist/cli/lib/harness/compilers/agent-skills.js.map +1 -0
- package/dist/cli/lib/harness/compilers/cursor.d.ts +8 -0
- package/dist/cli/lib/harness/compilers/cursor.d.ts.map +1 -0
- package/dist/cli/lib/harness/compilers/cursor.js +28 -0
- package/dist/cli/lib/harness/compilers/cursor.js.map +1 -0
- package/dist/cli/lib/harness/compilers/opencode.d.ts +7 -0
- package/dist/cli/lib/harness/compilers/opencode.d.ts.map +1 -0
- package/dist/cli/lib/harness/compilers/opencode.js +26 -0
- package/dist/cli/lib/harness/compilers/opencode.js.map +1 -0
- package/dist/cli/lib/harness/index.d.ts.map +1 -1
- package/dist/cli/lib/harness/index.js +6 -0
- package/dist/cli/lib/harness/index.js.map +1 -1
- package/dist/cli/lib/harness/tool-map.d.ts.map +1 -1
- package/dist/cli/lib/harness/tool-map.js +23 -1
- package/dist/cli/lib/harness/tool-map.js.map +1 -1
- package/dist/cli/lib/harness/types.d.ts +2 -2
- package/dist/cli/lib/harness/types.d.ts.map +1 -1
- package/dist/cli/lib/mcp-writer.d.ts +1 -0
- package/dist/cli/lib/mcp-writer.d.ts.map +1 -1
- package/dist/cli/lib/mcp-writer.js +5 -1
- package/dist/cli/lib/mcp-writer.js.map +1 -1
- package/dist/cli/lib/paths.d.ts +19 -0
- package/dist/cli/lib/paths.d.ts.map +1 -1
- package/dist/cli/lib/paths.js +21 -0
- package/dist/cli/lib/paths.js.map +1 -1
- package/dist/copilot-hooks.json +46 -46
- package/dist/cursor-hooks.json +288 -0
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/services/state-machine.d.ts +4 -3
- package/dist/services/state-machine.d.ts.map +1 -1
- package/dist/services/state-machine.js +17 -9
- package/dist/services/state-machine.js.map +1 -1
- package/package.json +6 -7
- package/site/specky-icon.png +0 -0
- /package/.apm/skills/{sdd-pipeline → specky-sdd-pipeline}/references/ears-notation.md +0 -0
- /package/.apm/skills/{sdd-pipeline → specky-sdd-pipeline}/references/model-routing.md +0 -0
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* - .vscode/settings.json has Copilot MCP discovery enabled
|
|
8
8
|
* - .mcp.json / .vscode/mcp.json register the specky server
|
|
9
9
|
*/
|
|
10
|
-
import { existsSync, readFileSync, statSync } from "node:fs";
|
|
10
|
+
import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
11
11
|
import { resolve } from "node:path";
|
|
12
12
|
import { VERSION } from "../../constants.js";
|
|
13
13
|
import { hashFile } from "../lib/asset-copier.js";
|
|
@@ -92,47 +92,196 @@ function checkMcpRegistration(path, label) {
|
|
|
92
92
|
const cfg = readJsonSafe(path);
|
|
93
93
|
if (!cfg)
|
|
94
94
|
return { name: label, pass: false, detail: "file missing" };
|
|
95
|
-
const hasServer = Boolean(cfg.mcpServers?.["specky"]) ||
|
|
95
|
+
const hasServer = Boolean(cfg.mcpServers?.["specky"]) ||
|
|
96
|
+
Boolean(cfg.servers?.["specky"]) ||
|
|
97
|
+
Boolean(cfg.mcp?.["specky"]);
|
|
96
98
|
return {
|
|
97
99
|
name: label,
|
|
98
100
|
pass: hasServer,
|
|
99
101
|
detail: hasServer ? "specky server registered" : "specky entry missing",
|
|
100
102
|
};
|
|
101
103
|
}
|
|
104
|
+
function checkFileExists(path, label) {
|
|
105
|
+
return {
|
|
106
|
+
name: label,
|
|
107
|
+
pass: existsSync(path),
|
|
108
|
+
detail: existsSync(path) ? "present" : "missing",
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function countEntries(dir, predicate) {
|
|
112
|
+
if (!existsSync(dir))
|
|
113
|
+
return 0;
|
|
114
|
+
try {
|
|
115
|
+
return readdirSync(dir).filter((name) => predicate(name, resolve(dir, name))).length;
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
return 0;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
function checkFileCount(dir, minCount, label, predicate = (name) => name.length > 0) {
|
|
122
|
+
const count = countEntries(dir, predicate);
|
|
123
|
+
return {
|
|
124
|
+
name: label,
|
|
125
|
+
pass: count >= minCount,
|
|
126
|
+
detail: `${count}/${minCount} present`,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function walkFiles(dir) {
|
|
130
|
+
if (!existsSync(dir))
|
|
131
|
+
return [];
|
|
132
|
+
const files = [];
|
|
133
|
+
for (const name of readdirSync(dir)) {
|
|
134
|
+
const path = resolve(dir, name);
|
|
135
|
+
const st = statSync(path);
|
|
136
|
+
if (st.isDirectory())
|
|
137
|
+
files.push(...walkFiles(path));
|
|
138
|
+
else if (st.isFile())
|
|
139
|
+
files.push(path);
|
|
140
|
+
}
|
|
141
|
+
return files;
|
|
142
|
+
}
|
|
143
|
+
function checkCursorRule(targets) {
|
|
144
|
+
const path = resolve(targets.cursor.rules, "specky-sdd.mdc");
|
|
145
|
+
if (!existsSync(path)) {
|
|
146
|
+
return { name: "Cursor rule", pass: false, detail: "specky-sdd.mdc missing" };
|
|
147
|
+
}
|
|
148
|
+
const text = readFileSync(path, "utf8");
|
|
149
|
+
const ruleLines = text.trimEnd().split(/\r?\n/);
|
|
150
|
+
const hasDescription = ruleLines.some((line) => line.startsWith("description:") && line.trim() !== "description:");
|
|
151
|
+
const hasAlwaysApply = ruleLines.some((line) => line.trim() === "alwaysApply: true");
|
|
152
|
+
const lines = ruleLines.length;
|
|
153
|
+
const ok = hasDescription && hasAlwaysApply && lines <= 40;
|
|
154
|
+
const details = [
|
|
155
|
+
hasDescription ? "description" : "missing description",
|
|
156
|
+
hasAlwaysApply ? "alwaysApply" : "missing alwaysApply",
|
|
157
|
+
`${lines} lines`,
|
|
158
|
+
];
|
|
159
|
+
return { name: "Cursor rule", pass: ok, detail: details.join(", ") };
|
|
160
|
+
}
|
|
161
|
+
function checkNoCopilotLeak(root, workspace, label) {
|
|
162
|
+
const needles = ["applyTo", "@workspace", ".vscode/mcp.json", "Copilot Instructions"];
|
|
163
|
+
const hits = [];
|
|
164
|
+
for (const file of walkFiles(root)) {
|
|
165
|
+
const text = readFileSync(file, "utf8");
|
|
166
|
+
if (needles.some((needle) => text.includes(needle))) {
|
|
167
|
+
hits.push(file.replace(workspace + "/", ""));
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return {
|
|
171
|
+
name: label,
|
|
172
|
+
pass: hits.length === 0,
|
|
173
|
+
detail: hits.length === 0 ? "no Copilot/.vscode tokens" : hits.slice(0, 3).join(", "),
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
function checkCursorHooksManifest(targets) {
|
|
177
|
+
const manifest = readJsonSafe(targets.cursor.hooksManifest);
|
|
178
|
+
if (!manifest) {
|
|
179
|
+
return { name: "Cursor hooks.json", pass: false, detail: "missing or unreadable" };
|
|
180
|
+
}
|
|
181
|
+
const hasMcpHooks = Boolean(manifest.hooks?.beforeMCPExecution?.length) && Boolean(manifest.hooks?.afterMCPExecution?.length);
|
|
182
|
+
return {
|
|
183
|
+
name: "Cursor hooks.json",
|
|
184
|
+
pass: manifest.version === 1 && hasMcpHooks,
|
|
185
|
+
detail: manifest.version === 1 && hasMcpHooks ? "version 1 with MCP hooks" : "missing version 1 or MCP hooks",
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
function checkCursorInstall(targets, workspace) {
|
|
189
|
+
return [
|
|
190
|
+
checkMcpRegistration(targets.cursor.mcp, ".cursor/mcp.json"),
|
|
191
|
+
checkFileCount(targets.cursor.agents, 13, "Cursor agents", (name) => name.startsWith("specky-") && name.endsWith(".md")),
|
|
192
|
+
checkFileCount(targets.cursor.commands, 22, "Cursor commands", (name) => name.startsWith("specky-") && name.endsWith(".md")),
|
|
193
|
+
checkFileCount(targets.shared.agentSkills, 14, "Cursor skills", (name, path) => name.startsWith("specky-") && statSync(path).isDirectory()),
|
|
194
|
+
checkCursorRule(targets),
|
|
195
|
+
checkNoCopilotLeak(targets.cursor.root, workspace, "Cursor leakage"),
|
|
196
|
+
checkCursorHooksManifest(targets),
|
|
197
|
+
checkFileCount(targets.cursor.hooksScripts, 16, "Cursor hook scripts", (name) => name.endsWith(".sh") || name.endsWith(".mjs")),
|
|
198
|
+
checkFileExists(targets.cursor.hooksRunner, "Cursor hook runner"),
|
|
199
|
+
];
|
|
200
|
+
}
|
|
201
|
+
function checkCopilotInstall(targets, workspace) {
|
|
202
|
+
return [
|
|
203
|
+
checkMcpRegistration(targets.shared.vscodeMcp, ".vscode/mcp.json"),
|
|
204
|
+
checkVscodeSettings(workspace),
|
|
205
|
+
checkFileCount(targets.copilot.agents, 13, "Copilot agents", (name) => name.startsWith("specky-") && name.endsWith(".md")),
|
|
206
|
+
checkFileCount(targets.copilot.prompts, 22, "Copilot prompts", (name) => name.startsWith("specky-") && name.endsWith(".md")),
|
|
207
|
+
checkFileCount(targets.copilot.skills, 14, "Copilot skills", (name, path) => name.startsWith("specky-") && statSync(path).isDirectory()),
|
|
208
|
+
checkFileExists(resolve(targets.copilot.instructions, "copilot-instructions.instructions.md"), "Copilot instruction"),
|
|
209
|
+
checkFileCount(targets.copilot.hooksScripts, 16, "Copilot hook scripts", (name) => name.endsWith(".sh") || name.endsWith(".mjs")),
|
|
210
|
+
];
|
|
211
|
+
}
|
|
212
|
+
function checkClaudeInstall(targets, workspace) {
|
|
213
|
+
return [
|
|
214
|
+
checkMcpRegistration(targets.shared.claudeMcp, ".mcp.json"),
|
|
215
|
+
checkClaudePermissions(targets),
|
|
216
|
+
checkFileCount(targets.claude.agents, 13, "Claude agents", (name) => name.startsWith("specky-") && name.endsWith(".md")),
|
|
217
|
+
checkFileCount(targets.claude.commands, 22, "Claude commands", (name) => name.startsWith("specky-") && name.endsWith(".md")),
|
|
218
|
+
checkFileCount(targets.claude.skills, 14, "Claude skills", (name, path) => name.startsWith("specky-") && statSync(path).isDirectory()),
|
|
219
|
+
checkFileExists(resolve(targets.claude.rules, "specky-sdd.md"), "Claude rule"),
|
|
220
|
+
checkNoCopilotLeak(targets.claude.root, workspace, "Claude leakage"),
|
|
221
|
+
checkFileCount(targets.claude.hooksScripts, 16, "Claude hook scripts", (name) => name.endsWith(".sh") || name.endsWith(".mjs")),
|
|
222
|
+
];
|
|
223
|
+
}
|
|
224
|
+
function checkOpenCodeInstall(targets, workspace) {
|
|
225
|
+
return [
|
|
226
|
+
checkMcpRegistration(targets.opencode.mcp, "opencode.json"),
|
|
227
|
+
checkFileCount(targets.opencode.agents, 13, "OpenCode agents", (name) => name.startsWith("specky-") && name.endsWith(".md")),
|
|
228
|
+
checkFileCount(targets.opencode.commands, 22, "OpenCode commands", (name) => name.startsWith("specky-") && name.endsWith(".md")),
|
|
229
|
+
checkFileCount(targets.shared.agentSkills, 14, "OpenCode skills", (name, path) => name.startsWith("specky-") && statSync(path).isDirectory()),
|
|
230
|
+
checkNoCopilotLeak(targets.opencode.root, workspace, "OpenCode leakage"),
|
|
231
|
+
];
|
|
232
|
+
}
|
|
102
233
|
function loadInstallMeta(path) {
|
|
103
234
|
return readJsonSafe(path);
|
|
104
235
|
}
|
|
105
|
-
function
|
|
236
|
+
function targetsFromIde(ide) {
|
|
237
|
+
if (ide === "claude")
|
|
238
|
+
return ["claude"];
|
|
239
|
+
if (ide === "copilot")
|
|
240
|
+
return ["copilot"];
|
|
241
|
+
return ["claude", "copilot"];
|
|
242
|
+
}
|
|
243
|
+
function resolveInstalledTargets(installMeta, workspace) {
|
|
244
|
+
if (Array.isArray(installMeta?.targets) && installMeta.targets.length > 0) {
|
|
245
|
+
return {
|
|
246
|
+
targets: installMeta.targets,
|
|
247
|
+
source: "install.json",
|
|
248
|
+
detail: "recorded as targets in .specky/install.json",
|
|
249
|
+
};
|
|
250
|
+
}
|
|
106
251
|
if (installMeta?.ide) {
|
|
107
252
|
return {
|
|
108
|
-
|
|
253
|
+
targets: targetsFromIde(installMeta.ide),
|
|
109
254
|
source: "install.json",
|
|
110
|
-
detail:
|
|
255
|
+
detail: `recorded as legacy ide=${installMeta.ide} in .specky/install.json`,
|
|
111
256
|
};
|
|
112
257
|
}
|
|
113
258
|
const detected = detectIde(workspace);
|
|
114
259
|
if (detected.signals.length > 0) {
|
|
115
260
|
return {
|
|
116
|
-
|
|
261
|
+
targets: targetsFromIde(detected.recommendation),
|
|
117
262
|
source: "workspace-signals",
|
|
118
263
|
detail: `inferred from workspace signals: ${detected.signals.join(", ")}`,
|
|
119
264
|
};
|
|
120
265
|
}
|
|
121
266
|
return {
|
|
122
|
-
|
|
267
|
+
targets: ["claude", "copilot"],
|
|
123
268
|
source: "default",
|
|
124
269
|
detail: "no install metadata or IDE signals found; validating shared defaults only",
|
|
125
270
|
};
|
|
126
271
|
}
|
|
127
|
-
function runConfigChecks(targets, workspace,
|
|
272
|
+
function runConfigChecks(targets, workspace, installTargets) {
|
|
128
273
|
const checks = [];
|
|
129
|
-
if (
|
|
130
|
-
checks.push(
|
|
131
|
-
|
|
274
|
+
if (installTargets.includes("claude")) {
|
|
275
|
+
checks.push(...checkClaudeInstall(targets, workspace));
|
|
276
|
+
}
|
|
277
|
+
if (installTargets.includes("copilot")) {
|
|
278
|
+
checks.push(...checkCopilotInstall(targets, workspace));
|
|
279
|
+
}
|
|
280
|
+
if (installTargets.includes("cursor")) {
|
|
281
|
+
checks.push(...checkCursorInstall(targets, workspace));
|
|
132
282
|
}
|
|
133
|
-
if (
|
|
134
|
-
checks.push(
|
|
135
|
-
checks.push(checkVscodeSettings(workspace));
|
|
283
|
+
if (installTargets.includes("opencode")) {
|
|
284
|
+
checks.push(...checkOpenCodeInstall(targets, workspace));
|
|
136
285
|
}
|
|
137
286
|
return checks;
|
|
138
287
|
}
|
|
@@ -178,17 +327,17 @@ export async function runDoctor(opts) {
|
|
|
178
327
|
}
|
|
179
328
|
const lock = JSON.parse(readFileSync(lockPath, "utf8"));
|
|
180
329
|
const installMeta = loadInstallMeta(installJsonPath);
|
|
181
|
-
const
|
|
330
|
+
const resolvedTargets = resolveInstalledTargets(installMeta, workspace);
|
|
182
331
|
console.log(`[specky doctor] Lock version: ${lock.version} (generated ${lock.generated_at})`);
|
|
183
332
|
console.log(`[specky doctor] Files tracked: ${Object.keys(lock.files).length}`);
|
|
184
|
-
console.log(`[specky doctor]
|
|
333
|
+
console.log(`[specky doctor] Target scope: ${resolvedTargets.targets.join(", ")} (${resolvedTargets.detail})`);
|
|
185
334
|
// Version-drift advisory (zero network): installed assets vs running CLI.
|
|
186
335
|
if (installMeta?.version && installMeta.version !== VERSION) {
|
|
187
336
|
console.log(`[specky doctor] ⚠️ Version drift: installed assets are v${installMeta.version} but this CLI is v${VERSION} — run \`specky upgrade\` to refresh.`);
|
|
188
337
|
}
|
|
189
338
|
const integrity = verifyIntegrity(lock, targets.shared.specky);
|
|
190
339
|
printIntegrity(integrity, opts.verbose);
|
|
191
|
-
const checks = runConfigChecks(targets, workspace,
|
|
340
|
+
const checks = runConfigChecks(targets, workspace, resolvedTargets.targets);
|
|
192
341
|
printChecks(checks);
|
|
193
342
|
const integrityOk = integrity.missing.length === 0 && integrity.modified.length === 0;
|
|
194
343
|
const configOk = checks.every((c) => c.pass);
|
|
@@ -204,7 +353,7 @@ export async function runDoctor(opts) {
|
|
|
204
353
|
return init.runInit({
|
|
205
354
|
force: true,
|
|
206
355
|
dryRun: false,
|
|
207
|
-
|
|
356
|
+
target: resolvedTargets.targets.join(","),
|
|
208
357
|
workspace,
|
|
209
358
|
});
|
|
210
359
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,8 @@ import { targetPaths } from "../lib/paths.js";
|
|
|
8
8
|
export async function runHooks(opts) {
|
|
9
9
|
const workspace = opts.workspace ?? process.cwd();
|
|
10
10
|
const t = targetPaths(workspace);
|
|
11
|
-
// Prefer
|
|
12
|
-
const candidates = [t.claude.hooksScripts, t.copilot.hooksScripts];
|
|
11
|
+
// Prefer Cursor hooks for Cursor-only workspaces, then Claude/Copilot.
|
|
12
|
+
const candidates = [t.cursor.hooksScripts, t.claude.hooksScripts, t.copilot.hooksScripts];
|
|
13
13
|
const hooksDir = candidates.find((d) => existsSync(d));
|
|
14
14
|
if (!hooksDir) {
|
|
15
15
|
console.error("[specky hooks] No hooks directory found. Run `npx specky init` first.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/cli/commands/hooks.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAQ9C,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAkB;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAClD,MAAM,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IAEjC,
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/cli/commands/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAQjE,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuND,wBAAsB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAgEhE"}
|
|
@@ -4,13 +4,62 @@
|
|
|
4
4
|
import { copyFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
5
5
|
import { resolve } from "node:path";
|
|
6
6
|
import { VERSION } from "../../constants.js";
|
|
7
|
-
import { copyToClaude, copyToCopilot, summarizeCopy, writeInstallLock, } from "../lib/asset-copier.js";
|
|
7
|
+
import { copyToAgentSkills, copyToClaude, copyToCopilot, copyToCursor, copyToOpenCode, summarizeCopy, writeInstallLock, } from "../lib/asset-copier.js";
|
|
8
8
|
import { detectIde } from "../lib/ide-detect.js";
|
|
9
|
+
import { SUPPORTED_TARGETS } from "../lib/harness/index.js";
|
|
9
10
|
import { packageRoot, sourcePaths, targetPaths } from "../lib/paths.js";
|
|
10
11
|
import { loadClaudeHooksManifest, mergeClaudeHooks } from "../lib/settings-merger.js";
|
|
11
12
|
import { writeMcpRegistration } from "../lib/mcp-writer.js";
|
|
12
13
|
import { writeVscodeSettings } from "../lib/vscode-settings-writer.js";
|
|
13
14
|
import { writeGitignoreBlock } from "../lib/gitignore-writer.js";
|
|
15
|
+
const TARGET_ALIASES = {
|
|
16
|
+
"github-copilot": "copilot",
|
|
17
|
+
vscode: "copilot",
|
|
18
|
+
"claude-code": "claude",
|
|
19
|
+
both: "both",
|
|
20
|
+
all: "all",
|
|
21
|
+
auto: "auto",
|
|
22
|
+
};
|
|
23
|
+
function uniqueTargets(targets) {
|
|
24
|
+
return [...new Set(targets)];
|
|
25
|
+
}
|
|
26
|
+
function targetsFromLegacyIde(ide, detected) {
|
|
27
|
+
const resolved = ide === "auto" ? detected.recommendation : ide;
|
|
28
|
+
if (resolved === "both")
|
|
29
|
+
return ["claude", "copilot"];
|
|
30
|
+
return [resolved];
|
|
31
|
+
}
|
|
32
|
+
function parseTargetToken(token, detected) {
|
|
33
|
+
const normalized = token.trim().toLowerCase();
|
|
34
|
+
const aliased = TARGET_ALIASES[normalized] ?? normalized;
|
|
35
|
+
if (aliased === "auto")
|
|
36
|
+
return targetsFromLegacyIde("auto", detected);
|
|
37
|
+
if (aliased === "both")
|
|
38
|
+
return ["claude", "copilot"];
|
|
39
|
+
if (aliased === "all")
|
|
40
|
+
return SUPPORTED_TARGETS.filter((target) => target !== "agent-skills");
|
|
41
|
+
if (SUPPORTED_TARGETS.includes(aliased))
|
|
42
|
+
return [aliased];
|
|
43
|
+
throw new Error(`[specky init] Unknown target "${token}". Supported targets: ${SUPPORTED_TARGETS.join(", ")}, both, all`);
|
|
44
|
+
}
|
|
45
|
+
function resolveInstallTargets(opts, detected) {
|
|
46
|
+
if (opts.target) {
|
|
47
|
+
return uniqueTargets(opts.target
|
|
48
|
+
.split(",")
|
|
49
|
+
.flatMap((token) => parseTargetToken(token, detected)));
|
|
50
|
+
}
|
|
51
|
+
return targetsFromLegacyIde(opts.ide ?? "auto", detected);
|
|
52
|
+
}
|
|
53
|
+
function legacyIdeFromTargets(targets) {
|
|
54
|
+
const set = new Set(targets);
|
|
55
|
+
if (set.size === 1 && set.has("claude"))
|
|
56
|
+
return "claude";
|
|
57
|
+
if (set.size === 1 && set.has("copilot"))
|
|
58
|
+
return "copilot";
|
|
59
|
+
if (set.size === 2 && set.has("claude") && set.has("copilot"))
|
|
60
|
+
return "both";
|
|
61
|
+
return "auto";
|
|
62
|
+
}
|
|
14
63
|
function installClaude(ctx) {
|
|
15
64
|
console.log("[specky init] Installing to .claude/ …");
|
|
16
65
|
const r = copyToClaude(ctx.pkg, ctx.targets, ctx.copyOpts);
|
|
@@ -56,7 +105,41 @@ function installCopilot(ctx) {
|
|
|
56
105
|
console.log("");
|
|
57
106
|
return r;
|
|
58
107
|
}
|
|
59
|
-
function
|
|
108
|
+
function installCursor(ctx) {
|
|
109
|
+
console.log("[specky init] Installing to .cursor/ …");
|
|
110
|
+
const r = copyToCursor(ctx.pkg, ctx.targets, ctx.copyOpts);
|
|
111
|
+
console.log(summarizeCopy(".cursor", r));
|
|
112
|
+
const mcp = writeMcpRegistration(ctx.targets.cursor.mcp, {
|
|
113
|
+
dryRun: ctx.dryRun,
|
|
114
|
+
serverName: "specky",
|
|
115
|
+
});
|
|
116
|
+
console.log(` .cursor/mcp.json: ${mcp.action}`);
|
|
117
|
+
console.log(` .cursor/hooks.json: ${existsSync(ctx.targets.cursor.hooksManifest) ? "installed" : "skipped"}`);
|
|
118
|
+
console.log("");
|
|
119
|
+
return r;
|
|
120
|
+
}
|
|
121
|
+
function installOpenCode(ctx) {
|
|
122
|
+
console.log("[specky init] Installing to .opencode/ …");
|
|
123
|
+
const r = copyToOpenCode(ctx.pkg, ctx.targets, ctx.copyOpts);
|
|
124
|
+
console.log(summarizeCopy(".opencode", r));
|
|
125
|
+
const mcp = writeMcpRegistration(ctx.targets.opencode.mcp, {
|
|
126
|
+
dryRun: ctx.dryRun,
|
|
127
|
+
serverName: "specky",
|
|
128
|
+
useOpenCodeSchema: true,
|
|
129
|
+
});
|
|
130
|
+
console.log(` opencode.json: ${mcp.action}`);
|
|
131
|
+
console.log(" hooks: skipped (OpenCode has no hooks concept)");
|
|
132
|
+
console.log("");
|
|
133
|
+
return r;
|
|
134
|
+
}
|
|
135
|
+
function installAgentSkills(ctx) {
|
|
136
|
+
console.log("[specky init] Installing to .agents/skills/ …");
|
|
137
|
+
const r = copyToAgentSkills(ctx.pkg, ctx.targets, ctx.copyOpts);
|
|
138
|
+
console.log(summarizeCopy(".agents/skills", r));
|
|
139
|
+
console.log("");
|
|
140
|
+
return r;
|
|
141
|
+
}
|
|
142
|
+
function writeSpeckyMeta(ctx, resolvedIde, resolvedTargets) {
|
|
60
143
|
if (ctx.dryRun)
|
|
61
144
|
return;
|
|
62
145
|
mkdirSync(ctx.targets.shared.specky, { recursive: true });
|
|
@@ -68,6 +151,7 @@ function writeSpeckyMeta(ctx, resolvedIde) {
|
|
|
68
151
|
const meta = {
|
|
69
152
|
version: VERSION,
|
|
70
153
|
ide: resolvedIde,
|
|
154
|
+
targets: resolvedTargets,
|
|
71
155
|
installed_at: new Date().toISOString(),
|
|
72
156
|
};
|
|
73
157
|
writeFileSync(resolve(ctx.targets.shared.specky, "install.json"), JSON.stringify(meta, null, 2) + "\n", "utf8");
|
|
@@ -88,11 +172,16 @@ function ensureGitignore(ctx) {
|
|
|
88
172
|
const suffix = r.linesAdded > 0 ? `+${r.linesAdded} lines` : "no changes";
|
|
89
173
|
console.log(`[specky init] .gitignore: ${verb} (${suffix})`);
|
|
90
174
|
}
|
|
91
|
-
function printHeader(opts, workspace, resolvedIde, detected) {
|
|
92
|
-
const autoNote = opts.ide === "auto" || !opts.ide ? " (auto-detected)" : "";
|
|
175
|
+
function printHeader(opts, workspace, resolvedTargets, resolvedIde, detected) {
|
|
176
|
+
const autoNote = !opts.target && (opts.ide === "auto" || !opts.ide) ? " (auto-detected)" : "";
|
|
93
177
|
console.log(`[specky init] Version ${VERSION}`);
|
|
94
178
|
console.log(`[specky init] Workspace: ${workspace}`);
|
|
95
|
-
console.log(`[specky init]
|
|
179
|
+
console.log(`[specky init] Target(s): ${resolvedTargets.join(", ")}${autoNote}`);
|
|
180
|
+
if (opts.ide && opts.ide !== "auto") {
|
|
181
|
+
console.log(`[specky init] --ide is deprecated; prefer --target=${resolvedTargets.join(",")}`);
|
|
182
|
+
}
|
|
183
|
+
if (resolvedIde !== "auto")
|
|
184
|
+
console.log(`[specky init] Legacy IDE metadata: ${resolvedIde}`);
|
|
96
185
|
if (detected.signals.length) {
|
|
97
186
|
console.log(`[specky init] Detected signals: ${detected.signals.join(", ")}`);
|
|
98
187
|
}
|
|
@@ -100,11 +189,14 @@ function printHeader(opts, workspace, resolvedIde, detected) {
|
|
|
100
189
|
console.log(`[specky init] DRY RUN — no files will be written`);
|
|
101
190
|
console.log("");
|
|
102
191
|
}
|
|
103
|
-
function printFooter() {
|
|
192
|
+
function printFooter(resolvedTargets) {
|
|
104
193
|
console.log("");
|
|
105
194
|
console.log("[specky init] ✅ Done. Next steps:");
|
|
106
|
-
console.log(" •
|
|
107
|
-
|
|
195
|
+
console.log(" • Restart or reload your target IDE session to activate MCP + hooks");
|
|
196
|
+
if (resolvedTargets.includes("cursor")) {
|
|
197
|
+
console.log(" • Cursor: confirm the specky MCP server is enabled in Settings → MCP");
|
|
198
|
+
}
|
|
199
|
+
console.log(" • Start the pipeline: invoke @specky-onboarding or /specky-onboarding");
|
|
108
200
|
console.log(" • Run `npx specky doctor` anytime to validate install integrity");
|
|
109
201
|
}
|
|
110
202
|
export async function runInit(opts) {
|
|
@@ -119,20 +211,30 @@ export async function runInit(opts) {
|
|
|
119
211
|
dryRun: opts.dryRun,
|
|
120
212
|
};
|
|
121
213
|
const detected = detectIde(workspace);
|
|
122
|
-
const
|
|
123
|
-
|
|
214
|
+
const resolvedTargets = resolveInstallTargets(opts, detected);
|
|
215
|
+
const resolvedIde = legacyIdeFromTargets(resolvedTargets);
|
|
216
|
+
printHeader(opts, workspace, resolvedTargets, resolvedIde, detected);
|
|
124
217
|
const results = [];
|
|
125
|
-
if (
|
|
218
|
+
if (resolvedTargets.includes("claude")) {
|
|
126
219
|
results.push(installClaude(ctx));
|
|
127
220
|
}
|
|
128
|
-
if (
|
|
221
|
+
if (resolvedTargets.includes("copilot")) {
|
|
129
222
|
results.push(installCopilot(ctx));
|
|
130
223
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
224
|
+
if (resolvedTargets.includes("cursor")) {
|
|
225
|
+
results.push(installCursor(ctx));
|
|
226
|
+
}
|
|
227
|
+
if (resolvedTargets.includes("opencode")) {
|
|
228
|
+
results.push(installOpenCode(ctx));
|
|
229
|
+
}
|
|
230
|
+
if (resolvedTargets.includes("agent-skills")) {
|
|
231
|
+
results.push(installAgentSkills(ctx));
|
|
232
|
+
}
|
|
233
|
+
// rc.14+: When Copilot is installed in this workspace, strip hooks from
|
|
234
|
+
// .claude/settings.json to prevent Copilot from cross-reading Claude Code
|
|
235
|
+
// lifecycle hooks. Users that need Claude hooks should run a Claude-only
|
|
236
|
+
// install in a separate workspace.
|
|
237
|
+
if (resolvedTargets.includes("copilot") && !ctx.dryRun) {
|
|
136
238
|
const claudeSettings = ctx.targets.claude.settingsJson;
|
|
137
239
|
if (existsSync(claudeSettings)) {
|
|
138
240
|
try {
|
|
@@ -149,11 +251,11 @@ export async function runInit(opts) {
|
|
|
149
251
|
}
|
|
150
252
|
}
|
|
151
253
|
}
|
|
152
|
-
writeSpeckyMeta(ctx, resolvedIde);
|
|
254
|
+
writeSpeckyMeta(ctx, resolvedIde, resolvedTargets);
|
|
153
255
|
ensureGitignore(ctx);
|
|
154
256
|
const lockPath = writeInstallLock(ctx.targets, results, VERSION, ctx.copyOpts);
|
|
155
257
|
console.log(`[specky init] Integrity manifest: ${lockPath}`);
|
|
156
|
-
printFooter();
|
|
258
|
+
printFooter(resolvedTargets);
|
|
157
259
|
return 0;
|
|
158
260
|
}
|
|
159
261
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAuCtE"}
|
|
@@ -25,10 +25,13 @@ export async function runUpgrade(opts) {
|
|
|
25
25
|
}
|
|
26
26
|
// Upgrade = init with --force, re-detect IDE from existing install
|
|
27
27
|
let ide = "auto";
|
|
28
|
+
let target;
|
|
28
29
|
if (existsSync(installJson)) {
|
|
29
30
|
try {
|
|
30
31
|
const meta = JSON.parse(readFileSync(installJson, "utf8"));
|
|
31
|
-
if (meta.
|
|
32
|
+
if (Array.isArray(meta.targets) && meta.targets.length > 0)
|
|
33
|
+
target = meta.targets.join(",");
|
|
34
|
+
else if (meta.ide)
|
|
32
35
|
ide = meta.ide;
|
|
33
36
|
}
|
|
34
37
|
catch {
|
|
@@ -36,6 +39,6 @@ export async function runUpgrade(opts) {
|
|
|
36
39
|
}
|
|
37
40
|
}
|
|
38
41
|
console.log(`[specky upgrade] .specs/ and .specky/profile.json will be preserved.`);
|
|
39
|
-
return runInit({ force: true, dryRun: false, ide, workspace });
|
|
42
|
+
return runInit({ force: true, dryRun: false, ide, target, workspace });
|
|
40
43
|
}
|
|
41
44
|
//# sourceMappingURL=upgrade.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAoB;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAClD,MAAM,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAE7D,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;IAE/C,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAGxD,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,uCAAuC,IAAI,CAAC,OAAO,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACtF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;IACtF,CAAC;IAED,mEAAmE;IACnE,IAAI,GAAG,GAA2C,MAAM,CAAC;IACzD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAoB;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAClD,MAAM,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAE7D,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;IAE/C,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAGxD,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,uCAAuC,IAAI,CAAC,OAAO,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACtF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;IACtF,CAAC;IAED,mEAAmE;IACnE,IAAI,GAAG,GAA2C,MAAM,CAAC;IACzD,IAAI,MAA0B,CAAC;IAC/B,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAGxD,CAAC;YACF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACvF,IAAI,IAAI,CAAC,GAAG;gBAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;IACpF,OAAO,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AACzE,CAAC"}
|