@agents-inc/cli 0.82.0 → 0.82.4
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/CHANGELOG.md +37 -0
- package/dist/{chunk-J3ZWLR5Z.js → chunk-35ESNSF5.js} +4 -4
- package/dist/{chunk-2E25UBLM.js → chunk-3BDCU5QB.js} +3 -3
- package/dist/{chunk-XNHMUPIJ.js → chunk-3MXMYHO3.js} +17 -17
- package/dist/{chunk-XNHMUPIJ.js.map → chunk-3MXMYHO3.js.map} +1 -1
- package/dist/{chunk-DWIB547V.js → chunk-3PB7KSF7.js} +4 -4
- package/dist/{chunk-LKDQLCS3.js → chunk-5AHKXBNC.js} +2 -2
- package/dist/{chunk-TJ62CLXB.js → chunk-5BRHJD7Q.js} +2 -2
- package/dist/{chunk-K2RQU5HR.js → chunk-63E7LOLB.js} +2 -2
- package/dist/{chunk-SXGCCUTH.js → chunk-AAW3PYXA.js} +10 -2
- package/dist/chunk-AAW3PYXA.js.map +1 -0
- package/dist/{chunk-W642FYQJ.js → chunk-AD2UT2TN.js} +2 -2
- package/dist/{chunk-L7SKXTUO.js → chunk-C4I4Q33M.js} +2 -2
- package/dist/{chunk-EB5E7IKL.js → chunk-FBLRTXEA.js} +4 -4
- package/dist/{chunk-AW7LLMZZ.js → chunk-FIXWR56O.js} +2 -2
- package/dist/{chunk-WO433W2G.js → chunk-FS4YWW36.js} +2 -2
- package/dist/{chunk-RLKRDDJD.js → chunk-GEU62YD2.js} +2 -2
- package/dist/{chunk-Y7GAKUM7.js → chunk-IMO6EQKT.js} +2 -2
- package/dist/{chunk-BFLAAMMA.js → chunk-IMP35ETG.js} +17 -17
- package/dist/chunk-IMP35ETG.js.map +1 -0
- package/dist/{chunk-UXIZK65O.js → chunk-JQDOUNHF.js} +23 -15
- package/dist/chunk-JQDOUNHF.js.map +1 -0
- package/dist/{chunk-WVLBGBRU.js → chunk-K76AXQ7A.js} +3 -3
- package/dist/{chunk-MPTXU4VS.js → chunk-KB6LCTCD.js} +16 -8
- package/dist/chunk-KB6LCTCD.js.map +1 -0
- package/dist/{chunk-JQNN2SVG.js → chunk-KEW246HB.js} +2 -2
- package/dist/{chunk-PY7C6CUI.js → chunk-KZLGBHDZ.js} +3 -3
- package/dist/{chunk-HWDEPKIR.js → chunk-LOB3OU2D.js} +5 -5
- package/dist/chunk-LOB3OU2D.js.map +1 -0
- package/dist/{chunk-2GI4NKKO.js → chunk-LQ3EJBUN.js} +6 -3
- package/dist/chunk-LQ3EJBUN.js.map +1 -0
- package/dist/{chunk-A5MK4XJB.js → chunk-M2CS5EOK.js} +5 -5
- package/dist/{chunk-WYODBBUA.js → chunk-RTXJLZ7A.js} +4 -4
- package/dist/commands/build/plugins.js +4 -4
- package/dist/commands/build/stack.js +4 -4
- package/dist/commands/compile.js +4 -4
- package/dist/commands/config/index.js +4 -4
- package/dist/commands/config/path.js +3 -3
- package/dist/commands/config/show.js +4 -4
- package/dist/commands/diff.js +3 -3
- package/dist/commands/doctor.js +3 -3
- package/dist/commands/edit.js +68 -20
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +3 -3
- package/dist/commands/import/skill.js +3 -3
- package/dist/commands/info.js +3 -3
- package/dist/commands/init.js +19 -19
- package/dist/commands/list.js +3 -3
- package/dist/commands/new/agent.js +4 -4
- package/dist/commands/new/marketplace.js +4 -4
- package/dist/commands/new/skill.js +4 -4
- package/dist/commands/outdated.js +3 -3
- package/dist/commands/search.js +3 -3
- package/dist/commands/uninstall.js +3 -3
- package/dist/commands/update.js +4 -4
- package/dist/commands/validate.js +3 -3
- package/dist/components/wizard/category-grid.js +2 -2
- package/dist/components/wizard/category-grid.test.js +8 -8
- package/dist/components/wizard/domain-selection.js +6 -6
- package/dist/components/wizard/help-modal.js +8 -1
- package/dist/components/wizard/source-grid.js +2 -2
- package/dist/components/wizard/source-grid.test.js +8 -8
- package/dist/components/wizard/stack-selection.js +5 -5
- package/dist/components/wizard/step-agents.js +6 -6
- package/dist/components/wizard/step-agents.test.js +9 -9
- package/dist/components/wizard/step-build.js +6 -6
- package/dist/components/wizard/step-build.test.js +9 -9
- package/dist/components/wizard/step-confirm.js +3 -3
- package/dist/components/wizard/step-confirm.test.js +7 -7
- package/dist/components/wizard/step-settings.js +4 -4
- package/dist/components/wizard/step-settings.test.js +7 -7
- package/dist/components/wizard/step-sources.js +6 -6
- package/dist/components/wizard/step-sources.test.js +9 -9
- package/dist/components/wizard/step-stack.js +6 -6
- package/dist/components/wizard/step-stack.test.js +7 -7
- package/dist/components/wizard/wizard-layout.js +7 -7
- package/dist/components/wizard/wizard.js +18 -18
- package/dist/config-exports.js +1 -1
- package/dist/hooks/init.js +19 -19
- package/dist/{source-loader-V5MKKNZF.js → source-loader-FMDHHYDQ.js} +4 -4
- package/dist/{source-manager-S64CYXPA.js → source-manager-YMJ4Z5UG.js} +4 -4
- package/dist/stores/wizard-store.js +4 -4
- package/dist/stores/wizard-store.test.js +31 -7
- package/dist/stores/wizard-store.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-2GI4NKKO.js.map +0 -1
- package/dist/chunk-BFLAAMMA.js.map +0 -1
- package/dist/chunk-HWDEPKIR.js.map +0 -1
- package/dist/chunk-MPTXU4VS.js.map +0 -1
- package/dist/chunk-SXGCCUTH.js.map +0 -1
- package/dist/chunk-UXIZK65O.js.map +0 -1
- /package/dist/{chunk-J3ZWLR5Z.js.map → chunk-35ESNSF5.js.map} +0 -0
- /package/dist/{chunk-2E25UBLM.js.map → chunk-3BDCU5QB.js.map} +0 -0
- /package/dist/{chunk-DWIB547V.js.map → chunk-3PB7KSF7.js.map} +0 -0
- /package/dist/{chunk-LKDQLCS3.js.map → chunk-5AHKXBNC.js.map} +0 -0
- /package/dist/{chunk-TJ62CLXB.js.map → chunk-5BRHJD7Q.js.map} +0 -0
- /package/dist/{chunk-K2RQU5HR.js.map → chunk-63E7LOLB.js.map} +0 -0
- /package/dist/{chunk-W642FYQJ.js.map → chunk-AD2UT2TN.js.map} +0 -0
- /package/dist/{chunk-L7SKXTUO.js.map → chunk-C4I4Q33M.js.map} +0 -0
- /package/dist/{chunk-EB5E7IKL.js.map → chunk-FBLRTXEA.js.map} +0 -0
- /package/dist/{chunk-AW7LLMZZ.js.map → chunk-FIXWR56O.js.map} +0 -0
- /package/dist/{chunk-WO433W2G.js.map → chunk-FS4YWW36.js.map} +0 -0
- /package/dist/{chunk-RLKRDDJD.js.map → chunk-GEU62YD2.js.map} +0 -0
- /package/dist/{chunk-Y7GAKUM7.js.map → chunk-IMO6EQKT.js.map} +0 -0
- /package/dist/{chunk-WVLBGBRU.js.map → chunk-K76AXQ7A.js.map} +0 -0
- /package/dist/{chunk-JQNN2SVG.js.map → chunk-KEW246HB.js.map} +0 -0
- /package/dist/{chunk-PY7C6CUI.js.map → chunk-KZLGBHDZ.js.map} +0 -0
- /package/dist/{chunk-A5MK4XJB.js.map → chunk-M2CS5EOK.js.map} +0 -0
- /package/dist/{chunk-WYODBBUA.js.map → chunk-RTXJLZ7A.js.map} +0 -0
- /package/dist/{source-loader-V5MKKNZF.js.map → source-loader-FMDHHYDQ.js.map} +0 -0
- /package/dist/{source-manager-S64CYXPA.js.map → source-manager-YMJ4Z5UG.js.map} +0 -0
package/dist/commands/edit.js
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
Wizard
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-JQDOUNHF.js";
|
|
5
|
+
import "../chunk-LOB3OU2D.js";
|
|
6
6
|
import "../chunk-YVFGISUO.js";
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
7
|
+
import "../chunk-5AHKXBNC.js";
|
|
8
|
+
import "../chunk-3PB7KSF7.js";
|
|
9
9
|
import "../chunk-V36FRPAU.js";
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-63E7LOLB.js";
|
|
11
|
+
import "../chunk-K76AXQ7A.js";
|
|
12
|
+
import "../chunk-35ESNSF5.js";
|
|
13
|
+
import "../chunk-M2CS5EOK.js";
|
|
14
14
|
import "../chunk-FQTYF3OU.js";
|
|
15
15
|
import "../chunk-K77I4XGL.js";
|
|
16
|
-
import "../chunk-
|
|
16
|
+
import "../chunk-C4I4Q33M.js";
|
|
17
17
|
import "../chunk-6XEZLWG5.js";
|
|
18
|
-
import "../chunk-
|
|
18
|
+
import "../chunk-5BRHJD7Q.js";
|
|
19
19
|
import "../chunk-7SOPVGDV.js";
|
|
20
20
|
import "../chunk-SB2R5KHJ.js";
|
|
21
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-GEU62YD2.js";
|
|
22
22
|
import "../chunk-P2FHS5IS.js";
|
|
23
|
-
import "../chunk-
|
|
24
|
-
import "../chunk-
|
|
23
|
+
import "../chunk-RTXJLZ7A.js";
|
|
24
|
+
import "../chunk-FS4YWW36.js";
|
|
25
25
|
import "../chunk-HSKKGAOW.js";
|
|
26
26
|
import "../chunk-4QA5TIBU.js";
|
|
27
27
|
import "../chunk-WJXWYSBT.js";
|
|
28
|
-
import "../chunk-
|
|
28
|
+
import "../chunk-AAW3PYXA.js";
|
|
29
29
|
import "../chunk-XO6X5QE5.js";
|
|
30
30
|
import "../chunk-KUV24B5M.js";
|
|
31
|
-
import "../chunk-
|
|
31
|
+
import "../chunk-LQ3EJBUN.js";
|
|
32
32
|
import "../chunk-HEQVUIHQ.js";
|
|
33
33
|
import "../chunk-U3IGFMCY.js";
|
|
34
34
|
import "../chunk-HK53FRMU.js";
|
|
35
35
|
import {
|
|
36
36
|
getAgentDefinitions,
|
|
37
37
|
recompileAgents
|
|
38
|
-
} from "../chunk-
|
|
38
|
+
} from "../chunk-KZLGBHDZ.js";
|
|
39
39
|
import {
|
|
40
40
|
ERROR_MESSAGES,
|
|
41
41
|
INFO_MESSAGES,
|
|
@@ -47,6 +47,7 @@ import {
|
|
|
47
47
|
claudePluginMarketplaceAdd,
|
|
48
48
|
claudePluginMarketplaceExists,
|
|
49
49
|
claudePluginUninstall,
|
|
50
|
+
copySkillsToLocalFlattened,
|
|
50
51
|
deleteLocalSkill,
|
|
51
52
|
deriveInstallMode,
|
|
52
53
|
detectInstallation,
|
|
@@ -57,15 +58,16 @@ import {
|
|
|
57
58
|
loadProjectConfig,
|
|
58
59
|
loadSkillsMatrixFromSource,
|
|
59
60
|
migrateLocalSkillScope,
|
|
61
|
+
resolveInstallPaths,
|
|
60
62
|
writeScopedConfigs
|
|
61
|
-
} from "../chunk-
|
|
63
|
+
} from "../chunk-KB6LCTCD.js";
|
|
62
64
|
import {
|
|
63
65
|
loadAllAgents
|
|
64
66
|
} from "../chunk-XTVWVOLD.js";
|
|
65
67
|
import {
|
|
66
68
|
getSkillById,
|
|
67
69
|
matrix
|
|
68
|
-
} from "../chunk-
|
|
70
|
+
} from "../chunk-3MXMYHO3.js";
|
|
69
71
|
import {
|
|
70
72
|
BaseCommand,
|
|
71
73
|
EXIT_CODES
|
|
@@ -74,6 +76,7 @@ import {
|
|
|
74
76
|
disableBuffering,
|
|
75
77
|
drainBuffer,
|
|
76
78
|
enableBuffering,
|
|
79
|
+
ensureDir,
|
|
77
80
|
getErrorMessage,
|
|
78
81
|
pushBufferMessage,
|
|
79
82
|
remove
|
|
@@ -88,7 +91,7 @@ import {
|
|
|
88
91
|
SOURCE_DISPLAY_NAMES,
|
|
89
92
|
STANDARD_FILES
|
|
90
93
|
} from "../chunk-6PGL2XMY.js";
|
|
91
|
-
import "../chunk-
|
|
94
|
+
import "../chunk-IMP35ETG.js";
|
|
92
95
|
import {
|
|
93
96
|
init_esm_shims
|
|
94
97
|
} from "../chunk-DHET7RCE.js";
|
|
@@ -190,6 +193,7 @@ var Edit = class _Edit extends BaseCommand {
|
|
|
190
193
|
lockedSkillIds,
|
|
191
194
|
installedAgentConfigs: projectConfig?.config?.agents,
|
|
192
195
|
lockedAgentNames,
|
|
196
|
+
isEditingFromGlobalScope: isGlobalDir,
|
|
193
197
|
projectDir,
|
|
194
198
|
startupMessages,
|
|
195
199
|
onComplete: (result2) => {
|
|
@@ -214,6 +218,10 @@ var Edit = class _Edit extends BaseCommand {
|
|
|
214
218
|
const newSkillIds = result.skills.map((s) => s.id);
|
|
215
219
|
const addedSkills = newSkillIds.filter((id) => !currentSkillIds.includes(id));
|
|
216
220
|
const removedSkills = currentSkillIds.filter((id) => !newSkillIds.includes(id));
|
|
221
|
+
const oldAgentNames = projectConfig?.config?.agents?.map((a) => a.name) ?? [];
|
|
222
|
+
const newAgentNames = result.agentConfigs.map((a) => a.name);
|
|
223
|
+
const addedAgents = newAgentNames.filter((name) => !oldAgentNames.includes(name));
|
|
224
|
+
const removedAgents = oldAgentNames.filter((name) => !newAgentNames.includes(name));
|
|
217
225
|
const sourceChanges = /* @__PURE__ */ new Map();
|
|
218
226
|
const scopeChanges = /* @__PURE__ */ new Map();
|
|
219
227
|
if (projectConfig?.config?.skills) {
|
|
@@ -249,7 +257,8 @@ var Edit = class _Edit extends BaseCommand {
|
|
|
249
257
|
const hasScopeChanges = scopeChanges.size > 0;
|
|
250
258
|
const hasAgentScopeChanges = agentScopeChanges.size > 0;
|
|
251
259
|
const hasSkillChanges = addedSkills.length > 0 || removedSkills.length > 0;
|
|
252
|
-
|
|
260
|
+
const hasAgentChanges = addedAgents.length > 0 || removedAgents.length > 0;
|
|
261
|
+
if (!hasSkillChanges && !hasAgentChanges && !hasSourceChanges && !hasScopeChanges && !hasAgentScopeChanges) {
|
|
253
262
|
this.log(INFO_MESSAGES.NO_CHANGES_MADE);
|
|
254
263
|
this.log("Plugin unchanged\n");
|
|
255
264
|
return;
|
|
@@ -262,6 +271,12 @@ var Edit = class _Edit extends BaseCommand {
|
|
|
262
271
|
const skill = matrix.skills[skillId];
|
|
263
272
|
this.log(` - ${skill?.displayName ?? skillId}`);
|
|
264
273
|
}
|
|
274
|
+
for (const agentName of addedAgents) {
|
|
275
|
+
this.log(` + ${agentName} (agent)`);
|
|
276
|
+
}
|
|
277
|
+
for (const agentName of removedAgents) {
|
|
278
|
+
this.log(` - ${agentName} (agent)`);
|
|
279
|
+
}
|
|
265
280
|
for (const [skillId, change] of sourceChanges) {
|
|
266
281
|
const fromLabel = formatSourceDisplayName(change.from);
|
|
267
282
|
const toLabel = formatSourceDisplayName(change.to);
|
|
@@ -360,6 +375,34 @@ var Edit = class _Edit extends BaseCommand {
|
|
|
360
375
|
}
|
|
361
376
|
}
|
|
362
377
|
}
|
|
378
|
+
const addedLocalSkills = result.skills.filter(
|
|
379
|
+
(s) => addedSkills.includes(s.id) && s.source === "local"
|
|
380
|
+
);
|
|
381
|
+
if (addedLocalSkills.length > 0) {
|
|
382
|
+
const projectLocalSkills = addedLocalSkills.filter((s) => s.scope !== "global");
|
|
383
|
+
const globalLocalSkills = addedLocalSkills.filter((s) => s.scope === "global");
|
|
384
|
+
const projectPaths = resolveInstallPaths(cwd, "project");
|
|
385
|
+
const globalPaths = resolveInstallPaths(cwd, "global");
|
|
386
|
+
if (projectLocalSkills.length > 0) {
|
|
387
|
+
await ensureDir(projectPaths.skillsDir);
|
|
388
|
+
await copySkillsToLocalFlattened(
|
|
389
|
+
projectLocalSkills.map((s) => s.id),
|
|
390
|
+
projectPaths.skillsDir,
|
|
391
|
+
sourceResult.matrix,
|
|
392
|
+
sourceResult
|
|
393
|
+
);
|
|
394
|
+
}
|
|
395
|
+
if (globalLocalSkills.length > 0) {
|
|
396
|
+
await ensureDir(globalPaths.skillsDir);
|
|
397
|
+
await copySkillsToLocalFlattened(
|
|
398
|
+
globalLocalSkills.map((s) => s.id),
|
|
399
|
+
globalPaths.skillsDir,
|
|
400
|
+
sourceResult.matrix,
|
|
401
|
+
sourceResult
|
|
402
|
+
);
|
|
403
|
+
}
|
|
404
|
+
this.log(`Copied ${addedLocalSkills.length} local skill(s) to .claude/skills/`);
|
|
405
|
+
}
|
|
363
406
|
let sourcePath;
|
|
364
407
|
this.log(
|
|
365
408
|
flags["agent-source"] ? STATUS_MESSAGES.FETCHING_AGENT_PARTIALS : STATUS_MESSAGES.LOADING_AGENT_PARTIALS
|
|
@@ -437,6 +480,11 @@ var Edit = class _Edit extends BaseCommand {
|
|
|
437
480
|
}
|
|
438
481
|
}
|
|
439
482
|
const summaryParts = [`${addedSkills.length} added`, `${removedSkills.length} removed`];
|
|
483
|
+
if (hasAgentChanges) {
|
|
484
|
+
summaryParts.push(
|
|
485
|
+
`${addedAgents.length} agent${addedAgents.length !== 1 ? "s" : ""} added, ${removedAgents.length} agent${removedAgents.length !== 1 ? "s" : ""} removed`
|
|
486
|
+
);
|
|
487
|
+
}
|
|
440
488
|
if (hasSourceChanges) {
|
|
441
489
|
summaryParts.push(`${sourceChanges.size} source${sourceChanges.size > 1 ? "s" : ""} changed`);
|
|
442
490
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cli/commands/edit.tsx"],"sourcesContent":["import os from \"os\";\nimport path from \"path\";\n\nimport { Flags } from \"@oclif/core\";\nimport { render } from \"ink\";\n\nimport { BaseCommand } from \"../base-command.js\";\nimport { Wizard, type WizardResultV2 } from \"../components/wizard/wizard.js\";\nimport {\n CLAUDE_DIR,\n CLAUDE_SRC_DIR,\n CLI_BIN_NAME,\n GLOBAL_INSTALL_ROOT,\n PROJECT_ROOT,\n SOURCE_DISPLAY_NAMES,\n STANDARD_FILES,\n} from \"../consts.js\";\nimport { getAgentDefinitions, recompileAgents } from \"../lib/agents/index.js\";\nimport { loadProjectConfig } from \"../lib/configuration/index.js\";\nimport { ensureBlankGlobalConfig } from \"../lib/configuration/config-writer.js\";\nimport { EXIT_CODES } from \"../lib/exit-codes.js\";\nimport {\n detectInstallation,\n buildAndMergeConfig,\n writeScopedConfigs,\n detectMigrations,\n executeMigration,\n deriveInstallMode,\n} from \"../lib/installation/index.js\";\nimport { loadAllAgents, loadSkillsMatrixFromSource } from \"../lib/loading/index.js\";\nimport { matrix, getSkillById } from \"../lib/matrix/matrix-provider\";\nimport { discoverAllPluginSkills } from \"../lib/plugins/index.js\";\nimport { deleteLocalSkill, migrateLocalSkillScope } from \"../lib/skills/index.js\";\nimport type { AgentDefinition, AgentName, SkillId } from \"../types/index.js\";\nimport { getErrorMessage } from \"../utils/errors.js\";\nimport { remove } from \"../utils/fs.js\";\nimport {\n claudePluginInstall,\n claudePluginUninstall,\n claudePluginMarketplaceExists,\n claudePluginMarketplaceAdd,\n} from \"../utils/exec.js\";\nimport {\n enableBuffering,\n drainBuffer,\n disableBuffering,\n pushBufferMessage,\n type StartupMessage,\n} from \"../utils/logger.js\";\nimport { ERROR_MESSAGES, INFO_MESSAGES, STATUS_MESSAGES } from \"../utils/messages.js\";\n\nfunction formatSourceDisplayName(sourceName: string): string {\n return SOURCE_DISPLAY_NAMES[sourceName] ?? sourceName;\n}\n\nexport default class Edit extends BaseCommand {\n static summary = \"Edit skills in the plugin\";\n static description = \"Modify the currently installed skills via interactive wizard\";\n\n static examples = [\n {\n description: \"Open the edit wizard\",\n command: \"<%= config.bin %> <%= command.id %>\",\n },\n {\n description: \"Edit with a custom source\",\n command: \"<%= config.bin %> <%= command.id %> --source github:org/marketplace\",\n },\n {\n description: \"Force refresh skills from remote\",\n command: \"<%= config.bin %> <%= command.id %> --refresh\",\n },\n ];\n\n static flags = {\n ...BaseCommand.baseFlags,\n refresh: Flags.boolean({\n description: \"Force refresh from remote sources\",\n default: false,\n }),\n \"agent-source\": Flags.string({\n description: \"Remote agent partials source (default: local CLI)\",\n }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(Edit);\n const cwd = process.cwd();\n\n const installation = await detectInstallation();\n\n if (!installation) {\n this.error(ERROR_MESSAGES.NO_INSTALLATION, {\n exit: EXIT_CODES.ERROR,\n });\n }\n\n // Use installation.projectDir for reads (loading config, discovering installed skills).\n // Use cwd for writes (config saves, plugin installs, scope migrations, recompilation output)\n // and for the locked-items check (determining whether global items are read-only).\n const projectDir = installation.projectDir;\n\n enableBuffering();\n\n let sourceResult;\n let startupMessages: StartupMessage[] = [];\n try {\n sourceResult = await loadSkillsMatrixFromSource({\n sourceFlag: flags.source,\n projectDir,\n forceRefresh: flags.refresh,\n });\n\n const sourceInfo = sourceResult.isLocal ? \"local\" : sourceResult.sourceConfig.sourceOrigin;\n pushBufferMessage(\n \"info\",\n `Loaded ${Object.keys(matrix.skills).length} skills (${sourceInfo})`,\n );\n } catch (error) {\n disableBuffering();\n this.handleError(error);\n }\n\n const projectConfig = await loadProjectConfig(projectDir);\n\n let currentSkillIds: SkillId[];\n try {\n const discoveredSkills = await discoverAllPluginSkills(projectDir);\n // Boundary cast: discoverAllPluginSkills keys are skill IDs from frontmatter\n const pluginSkillIds = Object.keys(discoveredSkills) as SkillId[];\n\n // Merge plugin-discovered skills with config skills (catches local skills and\n // global-scoped plugins that discoverAllPluginSkills doesn't find).\n const configSkillIds = projectConfig?.config?.skills?.map((s) => s.id) ?? [];\n const mergedIds = new Set<SkillId>([...pluginSkillIds, ...configSkillIds]);\n currentSkillIds = [...mergedIds];\n\n pushBufferMessage(\"info\", `Found ${currentSkillIds.length} installed skills`);\n } catch (error) {\n disableBuffering();\n this.handleError(error);\n }\n\n startupMessages = drainBuffer();\n disableBuffering();\n\n let wizardResult: WizardResultV2 | null = null;\n\n // D9: In project context, existing global items are read-only (locked).\n // When editing from ~/ (global context), nothing is locked.\n // Uses cwd (not projectDir) so that global items are correctly locked\n // even when detectInstallation() fell back to the global installation.\n const isGlobalDir = cwd === GLOBAL_INSTALL_ROOT;\n const lockedSkillIds = isGlobalDir\n ? undefined\n : projectConfig?.config?.skills?.filter((s) => s.scope === \"global\").map((s) => s.id);\n const lockedAgentNames = isGlobalDir\n ? undefined\n : projectConfig?.config?.agents?.filter((a) => a.scope === \"global\").map((a) => a.name);\n\n const { waitUntilExit } = render(\n <Wizard\n version={this.config.version}\n initialStep=\"build\"\n initialDomains={projectConfig?.config?.domains}\n initialAgents={projectConfig?.config?.selectedAgents}\n installedSkillIds={currentSkillIds}\n installedSkillConfigs={projectConfig?.config?.skills}\n lockedSkillIds={lockedSkillIds}\n installedAgentConfigs={projectConfig?.config?.agents}\n lockedAgentNames={lockedAgentNames}\n projectDir={projectDir}\n startupMessages={startupMessages}\n onComplete={(result) => {\n wizardResult = result;\n }}\n onCancel={() => {\n this.log(\"\\nEdit cancelled\");\n }}\n />,\n );\n\n await waitUntilExit();\n\n // TypeScript can't track that onComplete callback mutates wizardResult before waitUntilExit resolves\n const result = wizardResult as WizardResultV2 | null;\n\n if (!result || result.cancelled) {\n this.error(\"Cancelled\", { exit: EXIT_CODES.CANCELLED });\n }\n\n if (result.validation.errors.length > 0) {\n for (const err of result.validation.errors) {\n this.warn(err.message);\n }\n }\n\n const newSkillIds = result.skills.map((s) => s.id);\n const addedSkills = newSkillIds.filter((id) => !currentSkillIds.includes(id));\n const removedSkills = currentSkillIds.filter((id) => !newSkillIds.includes(id));\n\n const sourceChanges = new Map<SkillId, { from: string; to: string }>();\n const scopeChanges = new Map<\n SkillId,\n { from: \"project\" | \"global\"; to: \"project\" | \"global\" }\n >();\n if (projectConfig?.config?.skills) {\n for (const newSkill of result.skills) {\n const oldSkill = projectConfig.config.skills.find((s) => s.id === newSkill.id);\n if (oldSkill && oldSkill.source !== newSkill.source) {\n sourceChanges.set(newSkill.id, {\n from: oldSkill.source,\n to: newSkill.source,\n });\n }\n if (oldSkill && oldSkill.scope !== newSkill.scope) {\n scopeChanges.set(newSkill.id, {\n from: oldSkill.scope,\n to: newSkill.scope,\n });\n }\n }\n }\n\n const agentScopeChanges = new Map<\n AgentName,\n { from: \"project\" | \"global\"; to: \"project\" | \"global\" }\n >();\n if (projectConfig?.config?.agents) {\n for (const newAgent of result.agentConfigs) {\n const oldAgent = projectConfig.config.agents.find((a) => a.name === newAgent.name);\n if (oldAgent && oldAgent.scope !== newAgent.scope) {\n agentScopeChanges.set(newAgent.name, {\n from: oldAgent.scope,\n to: newAgent.scope,\n });\n }\n }\n }\n\n const hasSourceChanges = sourceChanges.size > 0;\n const hasScopeChanges = scopeChanges.size > 0;\n const hasAgentScopeChanges = agentScopeChanges.size > 0;\n const hasSkillChanges = addedSkills.length > 0 || removedSkills.length > 0;\n\n if (!hasSkillChanges && !hasSourceChanges && !hasScopeChanges && !hasAgentScopeChanges) {\n this.log(INFO_MESSAGES.NO_CHANGES_MADE);\n this.log(\"Plugin unchanged\\n\");\n return;\n }\n\n this.log(\"\\nChanges:\");\n for (const skillId of addedSkills) {\n this.log(` + ${getSkillById(skillId).displayName}`);\n }\n for (const skillId of removedSkills) {\n const skill = matrix.skills[skillId];\n this.log(` - ${skill?.displayName ?? skillId}`);\n }\n for (const [skillId, change] of sourceChanges) {\n const fromLabel = formatSourceDisplayName(change.from);\n const toLabel = formatSourceDisplayName(change.to);\n this.log(` ~ ${skillId} (${fromLabel} \\u2192 ${toLabel})`);\n }\n for (const [skillId, change] of scopeChanges) {\n const fromLabel = change.from === \"global\" ? \"[G]\" : \"[P]\";\n const toLabel = change.to === \"global\" ? \"[G]\" : \"[P]\";\n this.log(` ~ ${skillId} (${fromLabel} \\u2192 ${toLabel})`);\n }\n for (const [agentName, change] of agentScopeChanges) {\n const fromLabel = change.from === \"global\" ? \"[G]\" : \"[P]\";\n const toLabel = change.to === \"global\" ? \"[G]\" : \"[P]\";\n this.log(` ~ ${agentName} (${fromLabel} \\u2192 ${toLabel})`);\n }\n this.log(\"\");\n\n // Handle per-skill mode migrations (local <-> plugin)\n const oldSkills = projectConfig?.config?.skills ?? [];\n const migrationPlan = detectMigrations(oldSkills, result.skills);\n const hasMigrations = migrationPlan.toLocal.length > 0 || migrationPlan.toPlugin.length > 0;\n\n if (hasMigrations) {\n if (migrationPlan.toLocal.length > 0) {\n this.log(`Switching ${migrationPlan.toLocal.length} skill(s) to local:`);\n for (const migration of migrationPlan.toLocal) {\n this.log(` - ${migration.id}`);\n }\n }\n if (migrationPlan.toPlugin.length > 0) {\n this.log(`Switching ${migrationPlan.toPlugin.length} skill(s) to plugin:`);\n for (const migration of migrationPlan.toPlugin) {\n this.log(` - ${migration.id}`);\n }\n }\n\n const migrationResult = await executeMigration(migrationPlan, cwd, sourceResult);\n\n for (const warning of migrationResult.warnings) {\n this.warn(warning);\n }\n }\n\n const migratedSkillIds = new Set([\n ...migrationPlan.toLocal.map((m) => m.id),\n ...migrationPlan.toPlugin.map((m) => m.id),\n ]);\n\n // Handle scope migrations (P→G or G→P) for local-mode skills\n for (const [skillId, change] of scopeChanges) {\n const skillConfig = result.skills.find((s) => s.id === skillId);\n if (skillConfig?.source === \"local\") {\n await migrateLocalSkillScope(skillId, change.from, cwd);\n } else if (sourceResult.marketplace && skillConfig) {\n // Plugin-mode scope change: uninstall from old scope, install to new scope\n const oldPluginScope = change.from === \"global\" ? \"user\" : \"project\";\n const newPluginScope = change.to === \"global\" ? \"user\" : \"project\";\n try {\n await claudePluginUninstall(skillId, oldPluginScope, cwd);\n const pluginRef = `${skillId}@${sourceResult.marketplace}`;\n await claudePluginInstall(pluginRef, newPluginScope, cwd);\n } catch (error) {\n this.warn(`Failed to migrate plugin scope for ${skillId}: ${getErrorMessage(error)}`);\n }\n }\n }\n\n // Handle remaining non-migration source changes (e.g., marketplace A -> marketplace B)\n for (const [skillId, change] of sourceChanges) {\n // Skip skills already handled by mode migration\n if (migratedSkillIds.has(skillId)) {\n continue;\n }\n if (change.from === \"local\") {\n const oldSkill = projectConfig?.config?.skills?.find((s) => s.id === skillId);\n const deleteDir = oldSkill?.scope === \"global\" ? os.homedir() : cwd;\n await deleteLocalSkill(deleteDir, skillId);\n }\n }\n\n if (sourceResult.marketplace) {\n const marketplaceExists = await claudePluginMarketplaceExists(sourceResult.marketplace);\n if (!marketplaceExists) {\n this.log(`Registering marketplace \"${sourceResult.marketplace}\"...`);\n const marketplaceSource = sourceResult.sourceConfig.source.replace(/^github:/, \"\");\n await claudePluginMarketplaceAdd(marketplaceSource);\n this.log(`Registered marketplace: ${sourceResult.marketplace}`);\n }\n\n for (const skillId of addedSkills) {\n // Find the skill config to get its scope\n const skillConfig = result.skills.find((s) => s.id === skillId);\n if (!skillConfig || skillConfig.source === \"local\") continue;\n\n const pluginRef = `${skillId}@${sourceResult.marketplace}`;\n const pluginScope = skillConfig.scope === \"global\" ? \"user\" : \"project\";\n this.log(`Installing plugin: ${pluginRef}...`);\n try {\n await claudePluginInstall(pluginRef, pluginScope, cwd);\n } catch (error) {\n this.warn(`Failed to install plugin ${pluginRef}: ${getErrorMessage(error)}`);\n }\n }\n for (const skillId of removedSkills) {\n // For removed skills, use old config to determine scope\n const oldSkill = projectConfig?.config?.skills?.find((s) => s.id === skillId);\n const pluginScope = oldSkill?.scope === \"global\" ? \"user\" : \"project\";\n this.log(`Uninstalling plugin: ${skillId}...`);\n try {\n await claudePluginUninstall(skillId, pluginScope, cwd);\n } catch (error) {\n this.warn(`Failed to uninstall plugin ${skillId}: ${getErrorMessage(error)}`);\n }\n }\n }\n\n // Load agent definitions first — needed for both config-types.ts and recompilation\n let sourcePath: string;\n this.log(\n flags[\"agent-source\"]\n ? STATUS_MESSAGES.FETCHING_AGENT_PARTIALS\n : STATUS_MESSAGES.LOADING_AGENT_PARTIALS,\n );\n try {\n const agentDefs = await getAgentDefinitions(flags[\"agent-source\"], {\n forceRefresh: flags.refresh,\n });\n sourcePath = agentDefs.sourcePath;\n this.log(flags[\"agent-source\"] ? \"✓ Agent partials fetched\\n\" : \"✓ Agent partials loaded\\n\");\n } catch (error) {\n this.handleError(error);\n }\n\n // Persist wizard result to config.ts and config-types.ts (split by scope when in project context)\n try {\n const mergeResult = await buildAndMergeConfig(result, sourceResult, cwd, flags.source);\n\n // Load full agent definitions for config-types.ts generation\n const cliAgents = await loadAllAgents(PROJECT_ROOT);\n const sourceAgents = await loadAllAgents(sourcePath);\n const agents: Record<AgentName, AgentDefinition> = { ...cliAgents, ...sourceAgents };\n\n // Ensure global config exists before writing project config (so the\n // `import globalConfig from \"~/.claude-src/config\"` doesn't throw)\n if (cwd !== os.homedir()) {\n await ensureBlankGlobalConfig();\n }\n\n // Recompute configPath from cwd — when detectInstallation() fell back to\n // global, installation.configPath points to ~/.claude-src/config.ts, but\n // writeScopedConfigs uses it as the project config path.\n const configPath = path.join(cwd, CLAUDE_SRC_DIR, STANDARD_FILES.CONFIG_TS);\n\n // Determine whether a project installation already exists:\n // If detectInstallation() found a project config, projectDir differs from homedir.\n // If it fell back to global, projectDir === homedir (no project installation).\n const projectInstallationExists =\n path.resolve(installation.projectDir) !== path.resolve(os.homedir());\n\n await writeScopedConfigs(\n mergeResult.config,\n sourceResult.matrix,\n agents,\n cwd,\n configPath,\n projectInstallationExists,\n );\n } catch (error) {\n this.warn(`Could not update config: ${getErrorMessage(error)}`);\n }\n\n this.log(STATUS_MESSAGES.RECOMPILING_AGENTS);\n try {\n const recompileSkills = await discoverAllPluginSkills(cwd);\n\n // Build scope map so recompileAgents routes agents to the correct directory:\n // global agents -> ~/.claude/agents/, project agents -> <cwd>/.claude/agents/\n const agentScopeMap = new Map(result.agentConfigs.map((a) => [a.name, a.scope] as const));\n const outputDir = path.join(cwd, CLAUDE_DIR, \"agents\");\n\n const recompileResult = await recompileAgents({\n pluginDir: cwd,\n sourcePath,\n skills: recompileSkills,\n projectDir: cwd,\n outputDir,\n installMode: deriveInstallMode(result.skills),\n agentScopeMap,\n });\n\n if (recompileResult.failed.length > 0) {\n this.log(\n `✓ Recompiled ${recompileResult.compiled.length} agents (${recompileResult.failed.length} failed)\\n`,\n );\n for (const warning of recompileResult.warnings) {\n this.warn(warning);\n }\n } else if (recompileResult.compiled.length > 0) {\n this.log(`✓ Recompiled ${recompileResult.compiled.length} agents\\n`);\n } else {\n this.log(\"✓ No agents to recompile\\n\");\n }\n } catch (error) {\n this.warn(`Agent recompilation failed: ${getErrorMessage(error)}`);\n this.log(`You can manually recompile with '${CLI_BIN_NAME} compile'.\\n`);\n }\n\n // Clean up old agent .md files after scope changes.\n // Recompilation wrote the new file to the correct scope directory;\n // now delete the stale copy from the old scope directory.\n for (const [agentName, change] of agentScopeChanges) {\n const oldBaseDir = change.from === \"global\" ? os.homedir() : cwd;\n const oldAgentPath = path.join(oldBaseDir, CLAUDE_DIR, \"agents\", `${agentName}.md`);\n try {\n await remove(oldAgentPath);\n } catch (error) {\n this.warn(`Could not remove old agent file ${oldAgentPath}: ${getErrorMessage(error)}`);\n }\n }\n\n const summaryParts = [`${addedSkills.length} added`, `${removedSkills.length} removed`];\n if (hasSourceChanges) {\n summaryParts.push(`${sourceChanges.size} source${sourceChanges.size > 1 ? \"s\" : \"\"} changed`);\n }\n if (hasScopeChanges || hasAgentScopeChanges) {\n const totalScopeChanges = scopeChanges.size + agentScopeChanges.size;\n summaryParts.push(`${totalScopeChanges} scope${totalScopeChanges > 1 ? \"s\" : \"\"} changed`);\n }\n this.log(`\\n\\u2713 Plugin updated! (${summaryParts.join(\", \")})\\n`);\n }\n}\n"],"mappings":"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","names":["result"]}
|
|
1
|
+
{"version":3,"sources":["../../src/cli/commands/edit.tsx"],"sourcesContent":["import os from \"os\";\nimport path from \"path\";\n\nimport { Flags } from \"@oclif/core\";\nimport { render } from \"ink\";\n\nimport { BaseCommand } from \"../base-command.js\";\nimport { Wizard, type WizardResultV2 } from \"../components/wizard/wizard.js\";\nimport {\n CLAUDE_DIR,\n CLAUDE_SRC_DIR,\n CLI_BIN_NAME,\n GLOBAL_INSTALL_ROOT,\n PROJECT_ROOT,\n SOURCE_DISPLAY_NAMES,\n STANDARD_FILES,\n} from \"../consts.js\";\nimport { getAgentDefinitions, recompileAgents } from \"../lib/agents/index.js\";\nimport { loadProjectConfig } from \"../lib/configuration/index.js\";\nimport { ensureBlankGlobalConfig } from \"../lib/configuration/config-writer.js\";\nimport { EXIT_CODES } from \"../lib/exit-codes.js\";\nimport {\n detectInstallation,\n buildAndMergeConfig,\n writeScopedConfigs,\n detectMigrations,\n executeMigration,\n deriveInstallMode,\n resolveInstallPaths,\n} from \"../lib/installation/index.js\";\nimport { loadAllAgents, loadSkillsMatrixFromSource } from \"../lib/loading/index.js\";\nimport { matrix, getSkillById } from \"../lib/matrix/matrix-provider\";\nimport { discoverAllPluginSkills } from \"../lib/plugins/index.js\";\nimport {\n deleteLocalSkill,\n migrateLocalSkillScope,\n copySkillsToLocalFlattened,\n} from \"../lib/skills/index.js\";\nimport type { AgentDefinition, AgentName, SkillId } from \"../types/index.js\";\nimport { getErrorMessage } from \"../utils/errors.js\";\nimport { ensureDir, remove } from \"../utils/fs.js\";\nimport {\n claudePluginInstall,\n claudePluginUninstall,\n claudePluginMarketplaceExists,\n claudePluginMarketplaceAdd,\n} from \"../utils/exec.js\";\nimport {\n enableBuffering,\n drainBuffer,\n disableBuffering,\n pushBufferMessage,\n type StartupMessage,\n} from \"../utils/logger.js\";\nimport { ERROR_MESSAGES, INFO_MESSAGES, STATUS_MESSAGES } from \"../utils/messages.js\";\n\nfunction formatSourceDisplayName(sourceName: string): string {\n return SOURCE_DISPLAY_NAMES[sourceName] ?? sourceName;\n}\n\nexport default class Edit extends BaseCommand {\n static summary = \"Edit skills in the plugin\";\n static description = \"Modify the currently installed skills via interactive wizard\";\n\n static examples = [\n {\n description: \"Open the edit wizard\",\n command: \"<%= config.bin %> <%= command.id %>\",\n },\n {\n description: \"Edit with a custom source\",\n command: \"<%= config.bin %> <%= command.id %> --source github:org/marketplace\",\n },\n {\n description: \"Force refresh skills from remote\",\n command: \"<%= config.bin %> <%= command.id %> --refresh\",\n },\n ];\n\n static flags = {\n ...BaseCommand.baseFlags,\n refresh: Flags.boolean({\n description: \"Force refresh from remote sources\",\n default: false,\n }),\n \"agent-source\": Flags.string({\n description: \"Remote agent partials source (default: local CLI)\",\n }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(Edit);\n const cwd = process.cwd();\n\n const installation = await detectInstallation();\n\n if (!installation) {\n this.error(ERROR_MESSAGES.NO_INSTALLATION, {\n exit: EXIT_CODES.ERROR,\n });\n }\n\n // Use installation.projectDir for reads (loading config, discovering installed skills).\n // Use cwd for writes (config saves, plugin installs, scope migrations, recompilation output)\n // and for the locked-items check (determining whether global items are read-only).\n const projectDir = installation.projectDir;\n\n enableBuffering();\n\n let sourceResult;\n let startupMessages: StartupMessage[] = [];\n try {\n sourceResult = await loadSkillsMatrixFromSource({\n sourceFlag: flags.source,\n projectDir,\n forceRefresh: flags.refresh,\n });\n\n const sourceInfo = sourceResult.isLocal ? \"local\" : sourceResult.sourceConfig.sourceOrigin;\n pushBufferMessage(\n \"info\",\n `Loaded ${Object.keys(matrix.skills).length} skills (${sourceInfo})`,\n );\n } catch (error) {\n disableBuffering();\n this.handleError(error);\n }\n\n const projectConfig = await loadProjectConfig(projectDir);\n\n let currentSkillIds: SkillId[];\n try {\n const discoveredSkills = await discoverAllPluginSkills(projectDir);\n // Boundary cast: discoverAllPluginSkills keys are skill IDs from frontmatter\n const pluginSkillIds = Object.keys(discoveredSkills) as SkillId[];\n\n // Merge plugin-discovered skills with config skills (catches local skills and\n // global-scoped plugins that discoverAllPluginSkills doesn't find).\n const configSkillIds = projectConfig?.config?.skills?.map((s) => s.id) ?? [];\n const mergedIds = new Set<SkillId>([...pluginSkillIds, ...configSkillIds]);\n currentSkillIds = [...mergedIds];\n\n pushBufferMessage(\"info\", `Found ${currentSkillIds.length} installed skills`);\n } catch (error) {\n disableBuffering();\n this.handleError(error);\n }\n\n startupMessages = drainBuffer();\n disableBuffering();\n\n let wizardResult: WizardResultV2 | null = null;\n\n // D9: In project context, existing global items are read-only (locked).\n // When editing from ~/ (global context), nothing is locked.\n // Uses cwd (not projectDir) so that global items are correctly locked\n // even when detectInstallation() fell back to the global installation.\n const isGlobalDir = cwd === GLOBAL_INSTALL_ROOT;\n const lockedSkillIds = isGlobalDir\n ? undefined\n : projectConfig?.config?.skills?.filter((s) => s.scope === \"global\").map((s) => s.id);\n const lockedAgentNames = isGlobalDir\n ? undefined\n : projectConfig?.config?.agents?.filter((a) => a.scope === \"global\").map((a) => a.name);\n\n const { waitUntilExit } = render(\n <Wizard\n version={this.config.version}\n initialStep=\"build\"\n initialDomains={projectConfig?.config?.domains}\n initialAgents={projectConfig?.config?.selectedAgents}\n installedSkillIds={currentSkillIds}\n installedSkillConfigs={projectConfig?.config?.skills}\n lockedSkillIds={lockedSkillIds}\n installedAgentConfigs={projectConfig?.config?.agents}\n lockedAgentNames={lockedAgentNames}\n isEditingFromGlobalScope={isGlobalDir}\n projectDir={projectDir}\n startupMessages={startupMessages}\n onComplete={(result) => {\n wizardResult = result;\n }}\n onCancel={() => {\n this.log(\"\\nEdit cancelled\");\n }}\n />,\n );\n\n await waitUntilExit();\n\n // TypeScript can't track that onComplete callback mutates wizardResult before waitUntilExit resolves\n const result = wizardResult as WizardResultV2 | null;\n\n if (!result || result.cancelled) {\n this.error(\"Cancelled\", { exit: EXIT_CODES.CANCELLED });\n }\n\n if (result.validation.errors.length > 0) {\n for (const err of result.validation.errors) {\n this.warn(err.message);\n }\n }\n\n const newSkillIds = result.skills.map((s) => s.id);\n const addedSkills = newSkillIds.filter((id) => !currentSkillIds.includes(id));\n const removedSkills = currentSkillIds.filter((id) => !newSkillIds.includes(id));\n\n const oldAgentNames = projectConfig?.config?.agents?.map((a) => a.name) ?? [];\n const newAgentNames = result.agentConfigs.map((a) => a.name);\n const addedAgents = newAgentNames.filter((name) => !oldAgentNames.includes(name));\n const removedAgents = oldAgentNames.filter((name) => !newAgentNames.includes(name));\n\n const sourceChanges = new Map<SkillId, { from: string; to: string }>();\n const scopeChanges = new Map<\n SkillId,\n { from: \"project\" | \"global\"; to: \"project\" | \"global\" }\n >();\n if (projectConfig?.config?.skills) {\n for (const newSkill of result.skills) {\n const oldSkill = projectConfig.config.skills.find((s) => s.id === newSkill.id);\n if (oldSkill && oldSkill.source !== newSkill.source) {\n sourceChanges.set(newSkill.id, {\n from: oldSkill.source,\n to: newSkill.source,\n });\n }\n if (oldSkill && oldSkill.scope !== newSkill.scope) {\n scopeChanges.set(newSkill.id, {\n from: oldSkill.scope,\n to: newSkill.scope,\n });\n }\n }\n }\n\n const agentScopeChanges = new Map<\n AgentName,\n { from: \"project\" | \"global\"; to: \"project\" | \"global\" }\n >();\n if (projectConfig?.config?.agents) {\n for (const newAgent of result.agentConfigs) {\n const oldAgent = projectConfig.config.agents.find((a) => a.name === newAgent.name);\n if (oldAgent && oldAgent.scope !== newAgent.scope) {\n agentScopeChanges.set(newAgent.name, {\n from: oldAgent.scope,\n to: newAgent.scope,\n });\n }\n }\n }\n\n const hasSourceChanges = sourceChanges.size > 0;\n const hasScopeChanges = scopeChanges.size > 0;\n const hasAgentScopeChanges = agentScopeChanges.size > 0;\n const hasSkillChanges = addedSkills.length > 0 || removedSkills.length > 0;\n const hasAgentChanges = addedAgents.length > 0 || removedAgents.length > 0;\n\n if (\n !hasSkillChanges &&\n !hasAgentChanges &&\n !hasSourceChanges &&\n !hasScopeChanges &&\n !hasAgentScopeChanges\n ) {\n this.log(INFO_MESSAGES.NO_CHANGES_MADE);\n this.log(\"Plugin unchanged\\n\");\n return;\n }\n\n this.log(\"\\nChanges:\");\n for (const skillId of addedSkills) {\n this.log(` + ${getSkillById(skillId).displayName}`);\n }\n for (const skillId of removedSkills) {\n const skill = matrix.skills[skillId];\n this.log(` - ${skill?.displayName ?? skillId}`);\n }\n for (const agentName of addedAgents) {\n this.log(` + ${agentName} (agent)`);\n }\n for (const agentName of removedAgents) {\n this.log(` - ${agentName} (agent)`);\n }\n for (const [skillId, change] of sourceChanges) {\n const fromLabel = formatSourceDisplayName(change.from);\n const toLabel = formatSourceDisplayName(change.to);\n this.log(` ~ ${skillId} (${fromLabel} \\u2192 ${toLabel})`);\n }\n for (const [skillId, change] of scopeChanges) {\n const fromLabel = change.from === \"global\" ? \"[G]\" : \"[P]\";\n const toLabel = change.to === \"global\" ? \"[G]\" : \"[P]\";\n this.log(` ~ ${skillId} (${fromLabel} \\u2192 ${toLabel})`);\n }\n for (const [agentName, change] of agentScopeChanges) {\n const fromLabel = change.from === \"global\" ? \"[G]\" : \"[P]\";\n const toLabel = change.to === \"global\" ? \"[G]\" : \"[P]\";\n this.log(` ~ ${agentName} (${fromLabel} \\u2192 ${toLabel})`);\n }\n this.log(\"\");\n\n // Handle per-skill mode migrations (local <-> plugin)\n const oldSkills = projectConfig?.config?.skills ?? [];\n const migrationPlan = detectMigrations(oldSkills, result.skills);\n const hasMigrations = migrationPlan.toLocal.length > 0 || migrationPlan.toPlugin.length > 0;\n\n if (hasMigrations) {\n if (migrationPlan.toLocal.length > 0) {\n this.log(`Switching ${migrationPlan.toLocal.length} skill(s) to local:`);\n for (const migration of migrationPlan.toLocal) {\n this.log(` - ${migration.id}`);\n }\n }\n if (migrationPlan.toPlugin.length > 0) {\n this.log(`Switching ${migrationPlan.toPlugin.length} skill(s) to plugin:`);\n for (const migration of migrationPlan.toPlugin) {\n this.log(` - ${migration.id}`);\n }\n }\n\n const migrationResult = await executeMigration(migrationPlan, cwd, sourceResult);\n\n for (const warning of migrationResult.warnings) {\n this.warn(warning);\n }\n }\n\n const migratedSkillIds = new Set([\n ...migrationPlan.toLocal.map((m) => m.id),\n ...migrationPlan.toPlugin.map((m) => m.id),\n ]);\n\n // Handle scope migrations (P→G or G→P) for local-mode skills\n for (const [skillId, change] of scopeChanges) {\n const skillConfig = result.skills.find((s) => s.id === skillId);\n if (skillConfig?.source === \"local\") {\n await migrateLocalSkillScope(skillId, change.from, cwd);\n } else if (sourceResult.marketplace && skillConfig) {\n // Plugin-mode scope change: uninstall from old scope, install to new scope\n const oldPluginScope = change.from === \"global\" ? \"user\" : \"project\";\n const newPluginScope = change.to === \"global\" ? \"user\" : \"project\";\n try {\n await claudePluginUninstall(skillId, oldPluginScope, cwd);\n const pluginRef = `${skillId}@${sourceResult.marketplace}`;\n await claudePluginInstall(pluginRef, newPluginScope, cwd);\n } catch (error) {\n this.warn(`Failed to migrate plugin scope for ${skillId}: ${getErrorMessage(error)}`);\n }\n }\n }\n\n // Handle remaining non-migration source changes (e.g., marketplace A -> marketplace B)\n for (const [skillId, change] of sourceChanges) {\n // Skip skills already handled by mode migration\n if (migratedSkillIds.has(skillId)) {\n continue;\n }\n if (change.from === \"local\") {\n const oldSkill = projectConfig?.config?.skills?.find((s) => s.id === skillId);\n const deleteDir = oldSkill?.scope === \"global\" ? os.homedir() : cwd;\n await deleteLocalSkill(deleteDir, skillId);\n }\n }\n\n if (sourceResult.marketplace) {\n const marketplaceExists = await claudePluginMarketplaceExists(sourceResult.marketplace);\n if (!marketplaceExists) {\n this.log(`Registering marketplace \"${sourceResult.marketplace}\"...`);\n const marketplaceSource = sourceResult.sourceConfig.source.replace(/^github:/, \"\");\n await claudePluginMarketplaceAdd(marketplaceSource);\n this.log(`Registered marketplace: ${sourceResult.marketplace}`);\n }\n\n for (const skillId of addedSkills) {\n // Find the skill config to get its scope\n const skillConfig = result.skills.find((s) => s.id === skillId);\n if (!skillConfig || skillConfig.source === \"local\") continue;\n\n const pluginRef = `${skillId}@${sourceResult.marketplace}`;\n const pluginScope = skillConfig.scope === \"global\" ? \"user\" : \"project\";\n this.log(`Installing plugin: ${pluginRef}...`);\n try {\n await claudePluginInstall(pluginRef, pluginScope, cwd);\n } catch (error) {\n this.warn(`Failed to install plugin ${pluginRef}: ${getErrorMessage(error)}`);\n }\n }\n for (const skillId of removedSkills) {\n // For removed skills, use old config to determine scope\n const oldSkill = projectConfig?.config?.skills?.find((s) => s.id === skillId);\n const pluginScope = oldSkill?.scope === \"global\" ? \"user\" : \"project\";\n this.log(`Uninstalling plugin: ${skillId}...`);\n try {\n await claudePluginUninstall(skillId, pluginScope, cwd);\n } catch (error) {\n this.warn(`Failed to uninstall plugin ${skillId}: ${getErrorMessage(error)}`);\n }\n }\n }\n\n // Copy newly added local-source skills to .claude/skills/ (split by scope)\n const addedLocalSkills = result.skills.filter(\n (s) => addedSkills.includes(s.id) && s.source === \"local\",\n );\n\n if (addedLocalSkills.length > 0) {\n const projectLocalSkills = addedLocalSkills.filter((s) => s.scope !== \"global\");\n const globalLocalSkills = addedLocalSkills.filter((s) => s.scope === \"global\");\n\n const projectPaths = resolveInstallPaths(cwd, \"project\");\n const globalPaths = resolveInstallPaths(cwd, \"global\");\n\n if (projectLocalSkills.length > 0) {\n await ensureDir(projectPaths.skillsDir);\n await copySkillsToLocalFlattened(\n projectLocalSkills.map((s) => s.id),\n projectPaths.skillsDir,\n sourceResult.matrix,\n sourceResult,\n );\n }\n\n if (globalLocalSkills.length > 0) {\n await ensureDir(globalPaths.skillsDir);\n await copySkillsToLocalFlattened(\n globalLocalSkills.map((s) => s.id),\n globalPaths.skillsDir,\n sourceResult.matrix,\n sourceResult,\n );\n }\n\n this.log(`Copied ${addedLocalSkills.length} local skill(s) to .claude/skills/`);\n }\n\n // Load agent definitions first — needed for both config-types.ts and recompilation\n let sourcePath: string;\n this.log(\n flags[\"agent-source\"]\n ? STATUS_MESSAGES.FETCHING_AGENT_PARTIALS\n : STATUS_MESSAGES.LOADING_AGENT_PARTIALS,\n );\n try {\n const agentDefs = await getAgentDefinitions(flags[\"agent-source\"], {\n forceRefresh: flags.refresh,\n });\n sourcePath = agentDefs.sourcePath;\n this.log(flags[\"agent-source\"] ? \"✓ Agent partials fetched\\n\" : \"✓ Agent partials loaded\\n\");\n } catch (error) {\n this.handleError(error);\n }\n\n // Persist wizard result to config.ts and config-types.ts (split by scope when in project context)\n try {\n const mergeResult = await buildAndMergeConfig(result, sourceResult, cwd, flags.source);\n\n // Load full agent definitions for config-types.ts generation\n const cliAgents = await loadAllAgents(PROJECT_ROOT);\n const sourceAgents = await loadAllAgents(sourcePath);\n const agents: Record<AgentName, AgentDefinition> = { ...cliAgents, ...sourceAgents };\n\n // Ensure global config exists before writing project config (so the\n // `import globalConfig from \"~/.claude-src/config\"` doesn't throw)\n if (cwd !== os.homedir()) {\n await ensureBlankGlobalConfig();\n }\n\n // Recompute configPath from cwd — when detectInstallation() fell back to\n // global, installation.configPath points to ~/.claude-src/config.ts, but\n // writeScopedConfigs uses it as the project config path.\n const configPath = path.join(cwd, CLAUDE_SRC_DIR, STANDARD_FILES.CONFIG_TS);\n\n // Determine whether a project installation already exists:\n // If detectInstallation() found a project config, projectDir differs from homedir.\n // If it fell back to global, projectDir === homedir (no project installation).\n const projectInstallationExists =\n path.resolve(installation.projectDir) !== path.resolve(os.homedir());\n\n await writeScopedConfigs(\n mergeResult.config,\n sourceResult.matrix,\n agents,\n cwd,\n configPath,\n projectInstallationExists,\n );\n } catch (error) {\n this.warn(`Could not update config: ${getErrorMessage(error)}`);\n }\n\n this.log(STATUS_MESSAGES.RECOMPILING_AGENTS);\n try {\n const recompileSkills = await discoverAllPluginSkills(cwd);\n\n // Build scope map so recompileAgents routes agents to the correct directory:\n // global agents -> ~/.claude/agents/, project agents -> <cwd>/.claude/agents/\n const agentScopeMap = new Map(result.agentConfigs.map((a) => [a.name, a.scope] as const));\n const outputDir = path.join(cwd, CLAUDE_DIR, \"agents\");\n\n const recompileResult = await recompileAgents({\n pluginDir: cwd,\n sourcePath,\n skills: recompileSkills,\n projectDir: cwd,\n outputDir,\n installMode: deriveInstallMode(result.skills),\n agentScopeMap,\n });\n\n if (recompileResult.failed.length > 0) {\n this.log(\n `✓ Recompiled ${recompileResult.compiled.length} agents (${recompileResult.failed.length} failed)\\n`,\n );\n for (const warning of recompileResult.warnings) {\n this.warn(warning);\n }\n } else if (recompileResult.compiled.length > 0) {\n this.log(`✓ Recompiled ${recompileResult.compiled.length} agents\\n`);\n } else {\n this.log(\"✓ No agents to recompile\\n\");\n }\n } catch (error) {\n this.warn(`Agent recompilation failed: ${getErrorMessage(error)}`);\n this.log(`You can manually recompile with '${CLI_BIN_NAME} compile'.\\n`);\n }\n\n // Clean up old agent .md files after scope changes.\n // Recompilation wrote the new file to the correct scope directory;\n // now delete the stale copy from the old scope directory.\n for (const [agentName, change] of agentScopeChanges) {\n const oldBaseDir = change.from === \"global\" ? os.homedir() : cwd;\n const oldAgentPath = path.join(oldBaseDir, CLAUDE_DIR, \"agents\", `${agentName}.md`);\n try {\n await remove(oldAgentPath);\n } catch (error) {\n this.warn(`Could not remove old agent file ${oldAgentPath}: ${getErrorMessage(error)}`);\n }\n }\n\n const summaryParts = [`${addedSkills.length} added`, `${removedSkills.length} removed`];\n if (hasAgentChanges) {\n summaryParts.push(\n `${addedAgents.length} agent${addedAgents.length !== 1 ? \"s\" : \"\"} added, ${removedAgents.length} agent${removedAgents.length !== 1 ? \"s\" : \"\"} removed`,\n );\n }\n if (hasSourceChanges) {\n summaryParts.push(`${sourceChanges.size} source${sourceChanges.size > 1 ? \"s\" : \"\"} changed`);\n }\n if (hasScopeChanges || hasAgentScopeChanges) {\n const totalScopeChanges = scopeChanges.size + agentScopeChanges.size;\n summaryParts.push(`${totalScopeChanges} scope${totalScopeChanges > 1 ? \"s\" : \"\"} changed`);\n }\n this.log(`\\n\\u2713 Plugin updated! (${summaryParts.join(\", \")})\\n`);\n }\n}\n"],"mappings":"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","names":["result"]}
|
package/dist/commands/eject.js
CHANGED
|
@@ -5,12 +5,12 @@ import {
|
|
|
5
5
|
loadSkillsMatrixFromSource,
|
|
6
6
|
resolveSource,
|
|
7
7
|
saveSourceToProjectConfig
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-KB6LCTCD.js";
|
|
9
9
|
import "../chunk-XTVWVOLD.js";
|
|
10
10
|
import {
|
|
11
11
|
matrix,
|
|
12
12
|
typedKeys
|
|
13
|
-
} from "../chunk-
|
|
13
|
+
} from "../chunk-3MXMYHO3.js";
|
|
14
14
|
import {
|
|
15
15
|
BaseCommand,
|
|
16
16
|
EXIT_CODES
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
PROJECT_ROOT,
|
|
33
33
|
STANDARD_FILES
|
|
34
34
|
} from "../chunk-6PGL2XMY.js";
|
|
35
|
-
import "../chunk-
|
|
35
|
+
import "../chunk-IMP35ETG.js";
|
|
36
36
|
import {
|
|
37
37
|
init_esm_shims
|
|
38
38
|
} from "../chunk-DHET7RCE.js";
|
|
@@ -8,9 +8,9 @@ import {
|
|
|
8
8
|
computeFileHash,
|
|
9
9
|
fetchFromSource,
|
|
10
10
|
getCurrentDate
|
|
11
|
-
} from "../../chunk-
|
|
11
|
+
} from "../../chunk-KB6LCTCD.js";
|
|
12
12
|
import "../../chunk-XTVWVOLD.js";
|
|
13
|
-
import "../../chunk-
|
|
13
|
+
import "../../chunk-3MXMYHO3.js";
|
|
14
14
|
import {
|
|
15
15
|
BaseCommand,
|
|
16
16
|
EXIT_CODES
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
STANDARD_FILES,
|
|
35
35
|
YAML_FORMATTING
|
|
36
36
|
} from "../../chunk-6PGL2XMY.js";
|
|
37
|
-
import "../../chunk-
|
|
37
|
+
import "../../chunk-IMP35ETG.js";
|
|
38
38
|
import {
|
|
39
39
|
init_esm_shims
|
|
40
40
|
} from "../../chunk-DHET7RCE.js";
|
package/dist/commands/info.js
CHANGED
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
discoverLocalSkills,
|
|
7
7
|
loadSkillsMatrixFromSource
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-KB6LCTCD.js";
|
|
9
9
|
import "../chunk-XTVWVOLD.js";
|
|
10
10
|
import {
|
|
11
11
|
matrix
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-3MXMYHO3.js";
|
|
13
13
|
import {
|
|
14
14
|
BaseCommand,
|
|
15
15
|
EXIT_CODES
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
CLI_BIN_NAME,
|
|
24
24
|
STANDARD_FILES
|
|
25
25
|
} from "../chunk-6PGL2XMY.js";
|
|
26
|
-
import "../chunk-
|
|
26
|
+
import "../chunk-IMP35ETG.js";
|
|
27
27
|
import {
|
|
28
28
|
init_esm_shims
|
|
29
29
|
} from "../chunk-DHET7RCE.js";
|
package/dist/commands/init.js
CHANGED
|
@@ -4,47 +4,47 @@ import {
|
|
|
4
4
|
formatDashboardText,
|
|
5
5
|
getDashboardData,
|
|
6
6
|
showDashboard
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-FBLRTXEA.js";
|
|
8
|
+
import "../chunk-JQDOUNHF.js";
|
|
9
|
+
import "../chunk-LOB3OU2D.js";
|
|
10
10
|
import "../chunk-YVFGISUO.js";
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-5AHKXBNC.js";
|
|
12
|
+
import "../chunk-3PB7KSF7.js";
|
|
13
13
|
import "../chunk-V36FRPAU.js";
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
17
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-63E7LOLB.js";
|
|
15
|
+
import "../chunk-K76AXQ7A.js";
|
|
16
|
+
import "../chunk-35ESNSF5.js";
|
|
17
|
+
import "../chunk-M2CS5EOK.js";
|
|
18
18
|
import "../chunk-FQTYF3OU.js";
|
|
19
19
|
import "../chunk-K77I4XGL.js";
|
|
20
|
-
import "../chunk-
|
|
20
|
+
import "../chunk-C4I4Q33M.js";
|
|
21
21
|
import "../chunk-6XEZLWG5.js";
|
|
22
|
-
import "../chunk-
|
|
22
|
+
import "../chunk-5BRHJD7Q.js";
|
|
23
23
|
import "../chunk-7SOPVGDV.js";
|
|
24
24
|
import "../chunk-SB2R5KHJ.js";
|
|
25
|
-
import "../chunk-
|
|
25
|
+
import "../chunk-GEU62YD2.js";
|
|
26
26
|
import "../chunk-P2FHS5IS.js";
|
|
27
|
-
import "../chunk-
|
|
28
|
-
import "../chunk-
|
|
27
|
+
import "../chunk-RTXJLZ7A.js";
|
|
28
|
+
import "../chunk-FS4YWW36.js";
|
|
29
29
|
import "../chunk-HSKKGAOW.js";
|
|
30
30
|
import "../chunk-4QA5TIBU.js";
|
|
31
31
|
import "../chunk-WJXWYSBT.js";
|
|
32
|
-
import "../chunk-
|
|
32
|
+
import "../chunk-AAW3PYXA.js";
|
|
33
33
|
import "../chunk-XO6X5QE5.js";
|
|
34
34
|
import "../chunk-KUV24B5M.js";
|
|
35
|
-
import "../chunk-
|
|
35
|
+
import "../chunk-LQ3EJBUN.js";
|
|
36
36
|
import "../chunk-HEQVUIHQ.js";
|
|
37
37
|
import "../chunk-U3IGFMCY.js";
|
|
38
38
|
import "../chunk-HK53FRMU.js";
|
|
39
39
|
import "../chunk-B7KZLXHV.js";
|
|
40
|
-
import "../chunk-
|
|
40
|
+
import "../chunk-KB6LCTCD.js";
|
|
41
41
|
import "../chunk-XTVWVOLD.js";
|
|
42
|
-
import "../chunk-
|
|
42
|
+
import "../chunk-3MXMYHO3.js";
|
|
43
43
|
import "../chunk-X2HE3W74.js";
|
|
44
44
|
import "../chunk-32HQMUEJ.js";
|
|
45
45
|
import "../chunk-WYHFSJ7O.js";
|
|
46
46
|
import "../chunk-6PGL2XMY.js";
|
|
47
|
-
import "../chunk-
|
|
47
|
+
import "../chunk-IMP35ETG.js";
|
|
48
48
|
import "../chunk-DHET7RCE.js";
|
|
49
49
|
export {
|
|
50
50
|
Init as default,
|
package/dist/commands/list.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import {
|
|
3
3
|
formatInstallationDisplay,
|
|
4
4
|
getInstallationInfo
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-KB6LCTCD.js";
|
|
6
6
|
import "../chunk-XTVWVOLD.js";
|
|
7
|
-
import "../chunk-
|
|
7
|
+
import "../chunk-3MXMYHO3.js";
|
|
8
8
|
import {
|
|
9
9
|
BaseCommand
|
|
10
10
|
} from "../chunk-X2HE3W74.js";
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
CLI_BIN_NAME,
|
|
15
15
|
DEFAULT_BRANDING
|
|
16
16
|
} from "../chunk-6PGL2XMY.js";
|
|
17
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-IMP35ETG.js";
|
|
18
18
|
import {
|
|
19
19
|
init_esm_shims
|
|
20
20
|
} from "../chunk-DHET7RCE.js";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
getAgentDefinitions
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-KZLGBHDZ.js";
|
|
5
5
|
import {
|
|
6
6
|
isClaudeCLIAvailable,
|
|
7
7
|
loadConfigTypesDataInBackground,
|
|
8
8
|
regenerateConfigTypes,
|
|
9
9
|
resolveSource
|
|
10
|
-
} from "../../chunk-
|
|
10
|
+
} from "../../chunk-KB6LCTCD.js";
|
|
11
11
|
import "../../chunk-XTVWVOLD.js";
|
|
12
|
-
import "../../chunk-
|
|
12
|
+
import "../../chunk-3MXMYHO3.js";
|
|
13
13
|
import {
|
|
14
14
|
BaseCommand,
|
|
15
15
|
EXIT_CODES
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
CLI_COLORS,
|
|
26
26
|
STANDARD_FILES
|
|
27
27
|
} from "../../chunk-6PGL2XMY.js";
|
|
28
|
-
import "../../chunk-
|
|
28
|
+
import "../../chunk-IMP35ETG.js";
|
|
29
29
|
import {
|
|
30
30
|
init_esm_shims
|
|
31
31
|
} from "../../chunk-DHET7RCE.js";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
generateSkillCategoriesTs,
|
|
4
4
|
generateSkillRulesTs
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-KEW246HB.js";
|
|
6
6
|
import {
|
|
7
7
|
generateMarketplace,
|
|
8
8
|
writeMarketplace
|
|
@@ -13,9 +13,9 @@ import {
|
|
|
13
13
|
generateConfigSource,
|
|
14
14
|
loadConfigTypesDataInBackground,
|
|
15
15
|
regenerateConfigTypes
|
|
16
|
-
} from "../../chunk-
|
|
16
|
+
} from "../../chunk-KB6LCTCD.js";
|
|
17
17
|
import "../../chunk-XTVWVOLD.js";
|
|
18
|
-
import "../../chunk-
|
|
18
|
+
import "../../chunk-3MXMYHO3.js";
|
|
19
19
|
import {
|
|
20
20
|
BaseCommand,
|
|
21
21
|
EXIT_CODES
|
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
STACKS_FILE_PATH,
|
|
39
39
|
STANDARD_FILES
|
|
40
40
|
} from "../../chunk-6PGL2XMY.js";
|
|
41
|
-
import "../../chunk-
|
|
41
|
+
import "../../chunk-IMP35ETG.js";
|
|
42
42
|
import {
|
|
43
43
|
init_esm_shims
|
|
44
44
|
} from "../../chunk-DHET7RCE.js";
|
|
@@ -7,15 +7,15 @@ import {
|
|
|
7
7
|
generateSkillRulesTs,
|
|
8
8
|
toTitleCase,
|
|
9
9
|
validateSkillName
|
|
10
|
-
} from "../../chunk-
|
|
11
|
-
import "../../chunk-
|
|
10
|
+
} from "../../chunk-KEW246HB.js";
|
|
11
|
+
import "../../chunk-KB6LCTCD.js";
|
|
12
12
|
import "../../chunk-XTVWVOLD.js";
|
|
13
|
-
import "../../chunk-
|
|
13
|
+
import "../../chunk-3MXMYHO3.js";
|
|
14
14
|
import "../../chunk-X2HE3W74.js";
|
|
15
15
|
import "../../chunk-32HQMUEJ.js";
|
|
16
16
|
import "../../chunk-WYHFSJ7O.js";
|
|
17
17
|
import "../../chunk-6PGL2XMY.js";
|
|
18
|
-
import "../../chunk-
|
|
18
|
+
import "../../chunk-IMP35ETG.js";
|
|
19
19
|
import "../../chunk-DHET7RCE.js";
|
|
20
20
|
export {
|
|
21
21
|
NewSkill as default,
|
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
compareLocalSkillsWithSource,
|
|
4
4
|
detectInstallation,
|
|
5
5
|
loadSkillsMatrixFromSource
|
|
6
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-KB6LCTCD.js";
|
|
7
7
|
import "../chunk-XTVWVOLD.js";
|
|
8
8
|
import {
|
|
9
9
|
typedEntries
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-3MXMYHO3.js";
|
|
11
11
|
import {
|
|
12
12
|
BaseCommand,
|
|
13
13
|
EXIT_CODES
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
CLI_BIN_NAME,
|
|
22
22
|
LOCAL_SKILLS_PATH
|
|
23
23
|
} from "../chunk-6PGL2XMY.js";
|
|
24
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-IMP35ETG.js";
|
|
25
25
|
import {
|
|
26
26
|
init_esm_shims
|
|
27
27
|
} from "../chunk-DHET7RCE.js";
|
package/dist/commands/search.js
CHANGED
|
@@ -14,11 +14,11 @@ import {
|
|
|
14
14
|
fetchFromSource,
|
|
15
15
|
loadSkillsMatrixFromSource,
|
|
16
16
|
resolveAllSources
|
|
17
|
-
} from "../chunk-
|
|
17
|
+
} from "../chunk-KB6LCTCD.js";
|
|
18
18
|
import {
|
|
19
19
|
parseFrontmatter
|
|
20
20
|
} from "../chunk-XTVWVOLD.js";
|
|
21
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-3MXMYHO3.js";
|
|
22
22
|
import {
|
|
23
23
|
BaseCommand,
|
|
24
24
|
EXIT_CODES
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
LOCAL_SKILLS_PATH,
|
|
37
37
|
STANDARD_FILES
|
|
38
38
|
} from "../chunk-6PGL2XMY.js";
|
|
39
|
-
import "../chunk-
|
|
39
|
+
import "../chunk-IMP35ETG.js";
|
|
40
40
|
import {
|
|
41
41
|
init_esm_shims
|
|
42
42
|
} from "../chunk-DHET7RCE.js";
|
|
@@ -13,9 +13,9 @@ import {
|
|
|
13
13
|
listPluginNames,
|
|
14
14
|
loadProjectConfigFromDir,
|
|
15
15
|
readForkedFromMetadata
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-KB6LCTCD.js";
|
|
17
17
|
import "../chunk-XTVWVOLD.js";
|
|
18
|
-
import "../chunk-
|
|
18
|
+
import "../chunk-3MXMYHO3.js";
|
|
19
19
|
import {
|
|
20
20
|
BaseCommand,
|
|
21
21
|
EXIT_CODES
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
CLI_COLORS,
|
|
34
34
|
DEFAULT_BRANDING
|
|
35
35
|
} from "../chunk-6PGL2XMY.js";
|
|
36
|
-
import "../chunk-
|
|
36
|
+
import "../chunk-IMP35ETG.js";
|
|
37
37
|
import {
|
|
38
38
|
init_esm_shims
|
|
39
39
|
} from "../chunk-DHET7RCE.js";
|