@agents-inc/cli 0.85.0 → 0.87.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/{chunk-6VGBO6SZ.js → chunk-5M6Q5UQO.js} +2 -2
  3. package/dist/chunk-5UJJQFET.js +564 -0
  4. package/dist/chunk-5UJJQFET.js.map +1 -0
  5. package/dist/{chunk-TXW257CU.js → chunk-7FFNNDJQ.js} +181 -202
  6. package/dist/chunk-7FFNNDJQ.js.map +1 -0
  7. package/dist/{chunk-YJ2URWF7.js → chunk-B6MYECV6.js} +2 -2
  8. package/dist/{chunk-G2MINRWX.js → chunk-C5IYJ42F.js} +2 -2
  9. package/dist/{chunk-7UZUDHP7.js → chunk-CXWBVBDM.js} +2 -2
  10. package/dist/{chunk-CYPCJ536.js → chunk-FBZR46GC.js} +92 -92
  11. package/dist/chunk-FBZR46GC.js.map +1 -0
  12. package/dist/{chunk-LTFGEVTM.js → chunk-HH3AWXF4.js} +3 -3
  13. package/dist/{chunk-2XVLQDNI.js → chunk-HSLVCKVQ.js} +3 -3
  14. package/dist/{chunk-TAQGYJIS.js → chunk-HZ2IBXVQ.js} +3 -3
  15. package/dist/{chunk-LN76TJJP.js → chunk-HZQOFFKA.js} +10 -10
  16. package/dist/{chunk-W7LHI54P.js → chunk-I44YG6VI.js} +2 -2
  17. package/dist/{chunk-FT46LN7K.js → chunk-I5AZKNNL.js} +7 -8
  18. package/dist/chunk-I5AZKNNL.js.map +1 -0
  19. package/dist/chunk-J6PI73YV.js +68 -0
  20. package/dist/chunk-J6PI73YV.js.map +1 -0
  21. package/dist/{chunk-L7COG2EX.js → chunk-LZ7XQ3IU.js} +2 -2
  22. package/dist/{chunk-LMR7VAP3.js → chunk-MMTMXLI4.js} +2 -2
  23. package/dist/chunk-N6A7A4RA.js +16 -0
  24. package/dist/chunk-N6A7A4RA.js.map +1 -0
  25. package/dist/{chunk-WJKD6EGK.js → chunk-NUU3U43A.js} +5 -6
  26. package/dist/chunk-NUU3U43A.js.map +1 -0
  27. package/dist/{chunk-YYIWB42G.js → chunk-Q4DMIPZB.js} +2 -2
  28. package/dist/{chunk-YSLDMYWP.js → chunk-SGZOFIFF.js} +2 -2
  29. package/dist/{chunk-FKXD3EXJ.js → chunk-TMTUTUEV.js} +42 -228
  30. package/dist/chunk-TMTUTUEV.js.map +1 -0
  31. package/dist/{chunk-WCCWQ56J.js → chunk-UNEJKTLP.js} +3 -3
  32. package/dist/{chunk-ZGD7PLLC.js → chunk-ZOWRO7UQ.js} +3 -3
  33. package/dist/commands/build/marketplace.js +3 -3
  34. package/dist/commands/build/plugins.js +5 -5
  35. package/dist/commands/build/stack.js +5 -5
  36. package/dist/commands/compile.js +77 -171
  37. package/dist/commands/compile.js.map +1 -1
  38. package/dist/commands/config/index.js +5 -5
  39. package/dist/commands/config/path.js +4 -4
  40. package/dist/commands/config/show.js +5 -5
  41. package/dist/commands/diff.js +161 -167
  42. package/dist/commands/diff.js.map +1 -1
  43. package/dist/commands/doctor.js +68 -83
  44. package/dist/commands/doctor.js.map +1 -1
  45. package/dist/commands/edit.js +275 -209
  46. package/dist/commands/edit.js.map +1 -1
  47. package/dist/commands/eject.js +206 -124
  48. package/dist/commands/eject.js.map +1 -1
  49. package/dist/commands/import/skill.js +175 -144
  50. package/dist/commands/import/skill.js.map +1 -1
  51. package/dist/commands/info.js +58 -102
  52. package/dist/commands/info.js.map +1 -1
  53. package/dist/commands/init.js +19 -16
  54. package/dist/commands/list.js +4 -4
  55. package/dist/commands/new/agent.js +124 -102
  56. package/dist/commands/new/agent.js.map +1 -1
  57. package/dist/commands/new/marketplace.js +6 -6
  58. package/dist/commands/new/marketplace.js.map +1 -1
  59. package/dist/commands/new/skill.js +328 -15
  60. package/dist/commands/new/skill.js.map +1 -1
  61. package/dist/commands/outdated.js +16 -24
  62. package/dist/commands/outdated.js.map +1 -1
  63. package/dist/commands/search.js +166 -132
  64. package/dist/commands/search.js.map +1 -1
  65. package/dist/commands/uninstall.js +269 -189
  66. package/dist/commands/uninstall.js.map +1 -1
  67. package/dist/commands/update.js +238 -219
  68. package/dist/commands/update.js.map +1 -1
  69. package/dist/commands/validate.js +4 -4
  70. package/dist/components/skill-search/skill-search.js +2 -1
  71. package/dist/components/wizard/category-grid.test.js +4 -4
  72. package/dist/components/wizard/domain-selection.js +5 -5
  73. package/dist/components/wizard/help-modal.js +5 -5
  74. package/dist/components/wizard/source-grid.test.js +4 -4
  75. package/dist/components/wizard/stack-selection.js +5 -5
  76. package/dist/components/wizard/step-agents.js +5 -5
  77. package/dist/components/wizard/step-agents.test.js +5 -5
  78. package/dist/components/wizard/step-build.js +5 -5
  79. package/dist/components/wizard/step-build.test.js +5 -5
  80. package/dist/components/wizard/step-confirm.test.js +4 -4
  81. package/dist/components/wizard/step-settings.js +4 -4
  82. package/dist/components/wizard/step-settings.test.js +7 -7
  83. package/dist/components/wizard/step-sources.js +5 -5
  84. package/dist/components/wizard/step-sources.test.js +5 -5
  85. package/dist/components/wizard/step-stack.js +6 -6
  86. package/dist/components/wizard/step-stack.test.js +6 -6
  87. package/dist/components/wizard/wizard-layout.js +6 -6
  88. package/dist/components/wizard/wizard.js +14 -14
  89. package/dist/hooks/init.js +19 -16
  90. package/dist/hooks/init.js.map +1 -1
  91. package/dist/{loader-GT2A7R7U.js → loader-GSEGPK64.js} +3 -3
  92. package/dist/{source-loader-TNQW4P47.js → source-loader-OGFTIRIX.js} +4 -4
  93. package/dist/{source-manager-INRXRFJE.js → source-manager-FMMDDVZA.js} +4 -4
  94. package/dist/stores/wizard-store.js +4 -4
  95. package/dist/stores/wizard-store.test.js +4 -4
  96. package/package.json +1 -1
  97. package/dist/chunk-AABH2HSE.js +0 -340
  98. package/dist/chunk-AABH2HSE.js.map +0 -1
  99. package/dist/chunk-CYPCJ536.js.map +0 -1
  100. package/dist/chunk-FKXD3EXJ.js.map +0 -1
  101. package/dist/chunk-FT46LN7K.js.map +0 -1
  102. package/dist/chunk-TXW257CU.js.map +0 -1
  103. package/dist/chunk-WJKD6EGK.js.map +0 -1
  104. /package/dist/{chunk-6VGBO6SZ.js.map → chunk-5M6Q5UQO.js.map} +0 -0
  105. /package/dist/{chunk-YJ2URWF7.js.map → chunk-B6MYECV6.js.map} +0 -0
  106. /package/dist/{chunk-G2MINRWX.js.map → chunk-C5IYJ42F.js.map} +0 -0
  107. /package/dist/{chunk-7UZUDHP7.js.map → chunk-CXWBVBDM.js.map} +0 -0
  108. /package/dist/{chunk-LTFGEVTM.js.map → chunk-HH3AWXF4.js.map} +0 -0
  109. /package/dist/{chunk-2XVLQDNI.js.map → chunk-HSLVCKVQ.js.map} +0 -0
  110. /package/dist/{chunk-TAQGYJIS.js.map → chunk-HZ2IBXVQ.js.map} +0 -0
  111. /package/dist/{chunk-LN76TJJP.js.map → chunk-HZQOFFKA.js.map} +0 -0
  112. /package/dist/{chunk-W7LHI54P.js.map → chunk-I44YG6VI.js.map} +0 -0
  113. /package/dist/{chunk-L7COG2EX.js.map → chunk-LZ7XQ3IU.js.map} +0 -0
  114. /package/dist/{chunk-LMR7VAP3.js.map → chunk-MMTMXLI4.js.map} +0 -0
  115. /package/dist/{chunk-YYIWB42G.js.map → chunk-Q4DMIPZB.js.map} +0 -0
  116. /package/dist/{chunk-YSLDMYWP.js.map → chunk-SGZOFIFF.js.map} +0 -0
  117. /package/dist/{chunk-WCCWQ56J.js.map → chunk-UNEJKTLP.js.map} +0 -0
  118. /package/dist/{chunk-ZGD7PLLC.js.map → chunk-ZOWRO7UQ.js.map} +0 -0
  119. /package/dist/{loader-GT2A7R7U.js.map → loader-GSEGPK64.js.map} +0 -0
  120. /package/dist/{source-loader-TNQW4P47.js.map → source-loader-OGFTIRIX.js.map} +0 -0
  121. /package/dist/{source-manager-INRXRFJE.js.map → source-manager-FMMDDVZA.js.map} +0 -0
@@ -13,10 +13,10 @@ import {
13
13
  } from "./chunk-NL5EB57E.js";
14
14
  import {
15
15
  HelpModal
16
- } from "./chunk-7UZUDHP7.js";
16
+ } from "./chunk-CXWBVBDM.js";
17
17
  import {
18
18
  useWizardStore
19
- } from "./chunk-2XVLQDNI.js";
19
+ } from "./chunk-HSLVCKVQ.js";
20
20
  import {
21
21
  HOTKEY_FILTER_INCOMPATIBLE,
22
22
  HOTKEY_HELP,
@@ -250,4 +250,4 @@ var WizardLayout = ({
250
250
  export {
251
251
  WizardLayout
252
252
  };
253
- //# sourceMappingURL=chunk-WCCWQ56J.js.map
253
+ //# sourceMappingURL=chunk-UNEJKTLP.js.map
@@ -24,11 +24,11 @@ import {
24
24
  addSource,
25
25
  getSourceSummary,
26
26
  removeSource
27
- } from "./chunk-FKXD3EXJ.js";
27
+ } from "./chunk-TMTUTUEV.js";
28
28
  import {
29
29
  getErrorMessage,
30
30
  verbose
31
- } from "./chunk-WJKD6EGK.js";
31
+ } from "./chunk-NUU3U43A.js";
32
32
  import {
33
33
  CLI_COLORS
34
34
  } from "./chunk-6PGL2XMY.js";
@@ -263,4 +263,4 @@ var StepSettings = ({
263
263
  export {
264
264
  StepSettings
265
265
  };
266
- //# sourceMappingURL=chunk-ZGD7PLLC.js.map
266
+ //# sourceMappingURL=chunk-ZOWRO7UQ.js.map
@@ -3,13 +3,13 @@ import {
3
3
  generateMarketplace,
4
4
  getMarketplaceStats,
5
5
  writeMarketplace
6
- } from "../../chunk-W7LHI54P.js";
6
+ } from "../../chunk-I44YG6VI.js";
7
7
  import {
8
8
  BaseCommand
9
- } from "../../chunk-LMR7VAP3.js";
9
+ } from "../../chunk-MMTMXLI4.js";
10
10
  import {
11
11
  setVerbose
12
- } from "../../chunk-WJKD6EGK.js";
12
+ } from "../../chunk-NUU3U43A.js";
13
13
  import "../../chunk-6XWHJHNZ.js";
14
14
  import {
15
15
  DEFAULT_BRANDING,
@@ -2,20 +2,20 @@
2
2
  import {
3
3
  compileAllAgentPlugins,
4
4
  printAgentCompilationSummary
5
- } from "../../chunk-CYPCJ536.js";
5
+ } from "../../chunk-FBZR46GC.js";
6
6
  import {
7
7
  compileAllSkillPlugins,
8
8
  compileSkillPlugin,
9
9
  printCompilationSummary
10
- } from "../../chunk-FKXD3EXJ.js";
11
- import "../../chunk-YJ2URWF7.js";
10
+ } from "../../chunk-TMTUTUEV.js";
11
+ import "../../chunk-B6MYECV6.js";
12
12
  import "../../chunk-ANXHMG32.js";
13
13
  import {
14
14
  BaseCommand
15
- } from "../../chunk-LMR7VAP3.js";
15
+ } from "../../chunk-MMTMXLI4.js";
16
16
  import {
17
17
  setVerbose
18
- } from "../../chunk-WJKD6EGK.js";
18
+ } from "../../chunk-NUU3U43A.js";
19
19
  import "../../chunk-6XWHJHNZ.js";
20
20
  import {
21
21
  DIRS
@@ -1,21 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  getAgentDefinitions
4
- } from "../../chunk-CYPCJ536.js";
4
+ } from "../../chunk-FBZR46GC.js";
5
5
  import {
6
6
  compileStackPlugin,
7
7
  loadStacks,
8
8
  printStackCompilationSummary
9
- } from "../../chunk-FKXD3EXJ.js";
10
- import "../../chunk-YJ2URWF7.js";
9
+ } from "../../chunk-TMTUTUEV.js";
10
+ import "../../chunk-B6MYECV6.js";
11
11
  import "../../chunk-ANXHMG32.js";
12
12
  import {
13
13
  BaseCommand,
14
14
  EXIT_CODES
15
- } from "../../chunk-LMR7VAP3.js";
15
+ } from "../../chunk-MMTMXLI4.js";
16
16
  import {
17
17
  setVerbose
18
- } from "../../chunk-WJKD6EGK.js";
18
+ } from "../../chunk-NUU3U43A.js";
19
19
  import "../../chunk-6XWHJHNZ.js";
20
20
  import {
21
21
  PROJECT_ROOT,
@@ -1,47 +1,33 @@
1
1
  #!/usr/bin/env node
2
- import {
3
- getAgentDefinitions,
4
- recompileAgents
5
- } from "../chunk-CYPCJ536.js";
6
2
  import {
7
3
  ERROR_MESSAGES,
8
4
  INFO_MESSAGES,
9
5
  STATUS_MESSAGES
10
6
  } from "../chunk-B7KZLXHV.js";
11
7
  import {
12
- buildAgentScopeMap,
13
- detectGlobalInstallation,
14
- detectProjectInstallation,
15
- discoverAllPluginSkills,
16
- loadProjectConfigFromDir,
17
- resolveSource
18
- } from "../chunk-FKXD3EXJ.js";
19
- import {
20
- parseFrontmatter
21
- } from "../chunk-YJ2URWF7.js";
8
+ compileAgents,
9
+ detectBothInstallations,
10
+ discoverInstalledSkills,
11
+ loadAgentDefs
12
+ } from "../chunk-5UJJQFET.js";
13
+ import "../chunk-N6A7A4RA.js";
14
+ import "../chunk-FBZR46GC.js";
22
15
  import {
23
- typedEntries,
24
- typedKeys
25
- } from "../chunk-ANXHMG32.js";
16
+ resolveSource
17
+ } from "../chunk-TMTUTUEV.js";
18
+ import "../chunk-B6MYECV6.js";
19
+ import "../chunk-ANXHMG32.js";
26
20
  import {
27
21
  BaseCommand,
28
22
  EXIT_CODES
29
- } from "../chunk-LMR7VAP3.js";
23
+ } from "../chunk-MMTMXLI4.js";
30
24
  import {
31
- directoryExists,
32
- fileExists,
33
- glob,
34
- readFile,
35
25
  setVerbose,
36
- verbose,
37
- warn
38
- } from "../chunk-WJKD6EGK.js";
26
+ verbose
27
+ } from "../chunk-NUU3U43A.js";
39
28
  import "../chunk-6XWHJHNZ.js";
40
29
  import {
41
- CLI_BIN_NAME,
42
- GLOBAL_INSTALL_ROOT,
43
- LOCAL_SKILLS_PATH,
44
- STANDARD_FILES
30
+ CLI_BIN_NAME
45
31
  } from "../chunk-6PGL2XMY.js";
46
32
  import "../chunk-NPMMU4GY.js";
47
33
  import {
@@ -52,62 +38,6 @@ import {
52
38
  init_esm_shims();
53
39
  import { Flags } from "@oclif/core";
54
40
  import os from "os";
55
- import path from "path";
56
- async function loadSkillsFromDir(skillsDir, pathPrefix = "") {
57
- const skills = {};
58
- if (!await directoryExists(skillsDir)) {
59
- return skills;
60
- }
61
- const skillFiles = await glob("**/SKILL.md", skillsDir);
62
- for (const skillFile of skillFiles) {
63
- const skillPath = path.join(skillsDir, skillFile);
64
- const skillDir = path.dirname(skillPath);
65
- const relativePath = path.relative(skillsDir, skillDir);
66
- const skillDirName = path.basename(skillDir);
67
- const metadataPath = path.join(skillDir, STANDARD_FILES.METADATA_YAML);
68
- if (!await fileExists(metadataPath)) {
69
- const displayPath = pathPrefix ? `${pathPrefix}/${relativePath}/` : `${relativePath}/`;
70
- warn(
71
- `Skill '${skillDirName}' in '${displayPath}' is missing ${STANDARD_FILES.METADATA_YAML} \u2014 skipped. Add ${STANDARD_FILES.METADATA_YAML} to register it with the CLI.`
72
- );
73
- continue;
74
- }
75
- try {
76
- const content = await readFile(skillPath);
77
- const frontmatter = parseFrontmatter(content, skillPath);
78
- if (!frontmatter?.name) {
79
- warn(`Skipping skill in '${skillDirName}': missing or invalid frontmatter name`);
80
- continue;
81
- }
82
- const canonicalId = frontmatter.name;
83
- const skill = {
84
- id: canonicalId,
85
- path: pathPrefix ? `${pathPrefix}/${relativePath}/` : `${relativePath}/`,
86
- description: frontmatter?.description || ""
87
- };
88
- skills[canonicalId] = skill;
89
- verbose(` Loaded skill: ${canonicalId}`);
90
- } catch (error) {
91
- verbose(` Failed to load skill: ${skillFile} - ${error}`);
92
- }
93
- }
94
- return skills;
95
- }
96
- async function discoverLocalProjectSkills(projectDir) {
97
- const localSkillsDir = path.join(projectDir, LOCAL_SKILLS_PATH);
98
- return loadSkillsFromDir(localSkillsDir, LOCAL_SKILLS_PATH);
99
- }
100
- function mergeSkills(...skillSources) {
101
- const merged = {};
102
- for (const source of skillSources) {
103
- for (const [id, skill] of typedEntries(source)) {
104
- if (skill) {
105
- merged[id] = skill;
106
- }
107
- }
108
- }
109
- return merged;
110
- }
111
41
  var Compile = class _Compile extends BaseCommand {
112
42
  static summary = "Compile agents using local skills and agent definitions";
113
43
  static description = "Compile agents with resolved skill references. Compiles to the Claude plugin directory.";
@@ -130,37 +60,65 @@ var Compile = class _Compile extends BaseCommand {
130
60
  const { flags } = await this.parse(_Compile);
131
61
  setVerbose(flags.verbose);
132
62
  const cwd = process.cwd();
133
- const homeDir = os.homedir();
134
- const globalInstallation = await detectGlobalInstallation();
135
- const projectInstallation = cwd === homeDir ? null : await detectProjectInstallation(cwd);
136
- if (!globalInstallation && !projectInstallation) {
63
+ const installations = await this.detectInstallations(cwd);
64
+ await this.resolveAndLogSource(flags.source);
65
+ const agentDefs = await this.loadAgentDefsOrFail(flags, cwd);
66
+ await this.compileAllScopes(installations, agentDefs, cwd);
67
+ }
68
+ async detectInstallations(cwd) {
69
+ const installations = await detectBothInstallations(cwd);
70
+ if (!installations.global && !installations.project) {
137
71
  this.error(ERROR_MESSAGES.NO_INSTALLATION, {
138
72
  exit: EXIT_CODES.ERROR
139
73
  });
140
74
  }
141
- await this.resolveSourceForCompile(flags);
142
- const agentDefs = await this.loadAgentDefsForCompile(flags);
75
+ return installations;
76
+ }
77
+ async resolveAndLogSource(sourceFlag) {
78
+ this.log(STATUS_MESSAGES.RESOLVING_SOURCE);
79
+ try {
80
+ const sourceConfig = await resolveSource(sourceFlag);
81
+ this.log(`Source: ${sourceConfig.sourceOrigin}`);
82
+ } catch (error) {
83
+ this.log(ERROR_MESSAGES.FAILED_RESOLVE_SOURCE);
84
+ this.handleError(error);
85
+ }
86
+ }
87
+ async loadAgentDefsOrFail(flags, cwd) {
88
+ this.log(
89
+ flags["agent-source"] ? STATUS_MESSAGES.FETCHING_AGENT_PARTIALS : STATUS_MESSAGES.LOADING_AGENT_PARTIALS
90
+ );
91
+ try {
92
+ const defs = await loadAgentDefs(flags["agent-source"], { projectDir: cwd });
93
+ this.log(flags["agent-source"] ? "Agent partials fetched" : "Agent partials loaded");
94
+ verbose(` Agents: ${defs.agentSourcePaths.agentsDir}`);
95
+ verbose(` Templates: ${defs.agentSourcePaths.templatesDir}`);
96
+ return defs;
97
+ } catch (error) {
98
+ this.log(ERROR_MESSAGES.FAILED_LOAD_AGENT_PARTIALS);
99
+ this.handleError(error);
100
+ }
101
+ }
102
+ async compileAllScopes(installations, agentDefs, cwd) {
103
+ const homeDir = os.homedir();
143
104
  let totalPassesWithSkills = 0;
144
- const hasBothScopes = !!globalInstallation && !!projectInstallation;
145
- if (globalInstallation) {
105
+ if (installations.global) {
146
106
  const hadSkills = await this.runCompilePass({
147
107
  label: "Global",
148
108
  projectDir: homeDir,
149
- installation: globalInstallation,
150
- agentDefs,
151
- flags,
152
- scopeFilter: hasBothScopes ? "global" : void 0
109
+ installation: installations.global,
110
+ sourcePath: agentDefs.sourcePath,
111
+ scopeFilter: installations.hasBoth ? "global" : void 0
153
112
  });
154
113
  if (hadSkills) totalPassesWithSkills++;
155
114
  }
156
- if (projectInstallation) {
115
+ if (installations.project) {
157
116
  const hadSkills = await this.runCompilePass({
158
117
  label: "Project",
159
118
  projectDir: cwd,
160
- installation: projectInstallation,
161
- agentDefs,
162
- flags,
163
- scopeFilter: hasBothScopes ? "project" : void 0
119
+ installation: installations.project,
120
+ sourcePath: agentDefs.sourcePath,
121
+ scopeFilter: installations.hasBoth ? "project" : void 0
164
122
  });
165
123
  if (hadSkills) totalPassesWithSkills++;
166
124
  }
@@ -171,46 +129,26 @@ var Compile = class _Compile extends BaseCommand {
171
129
  );
172
130
  }
173
131
  }
174
- async discoverAllSkills(projectDir = process.cwd()) {
132
+ async discoverAllSkills(projectDir) {
175
133
  this.log(STATUS_MESSAGES.DISCOVERING_SKILLS);
176
- const isGlobalProject = projectDir === os.homedir();
177
- const globalPluginSkills = isGlobalProject ? {} : await discoverAllPluginSkills(os.homedir());
178
- const globalPluginSkillCount = typedKeys(globalPluginSkills).length;
179
- if (globalPluginSkillCount > 0) {
180
- verbose(` Found ${globalPluginSkillCount} skills from global plugins`);
181
- }
182
- const globalLocalSkillsDir = path.join(GLOBAL_INSTALL_ROOT, LOCAL_SKILLS_PATH);
183
- const globalLocalSkills = isGlobalProject ? {} : await loadSkillsFromDir(globalLocalSkillsDir, LOCAL_SKILLS_PATH);
184
- const globalLocalSkillCount = typedKeys(globalLocalSkills).length;
185
- if (globalLocalSkillCount > 0) {
186
- verbose(` Found ${globalLocalSkillCount} global local skills from ~/.claude/skills/`);
187
- }
188
- const pluginSkills = await discoverAllPluginSkills(projectDir);
189
- const pluginSkillCount = typedKeys(pluginSkills).length;
190
- verbose(` Found ${pluginSkillCount} skills from installed plugins`);
191
- const localSkills = await discoverLocalProjectSkills(projectDir);
192
- const localSkillCount = typedKeys(localSkills).length;
193
- verbose(` Found ${localSkillCount} local skills from .claude/skills/`);
194
- const allSkills = mergeSkills(globalPluginSkills, globalLocalSkills, pluginSkills, localSkills);
195
- const totalSkillCount = typedKeys(allSkills).length;
196
- if (totalSkillCount === 0) {
197
- return { allSkills, totalSkillCount };
134
+ const result = await discoverInstalledSkills(projectDir);
135
+ if (result.totalSkillCount === 0) {
136
+ return result;
198
137
  }
199
- const totalPluginSkillCount = globalPluginSkillCount + pluginSkillCount;
200
- if (totalPluginSkillCount > 0 && totalSkillCount > totalPluginSkillCount) {
201
- const localCount = totalSkillCount - totalPluginSkillCount;
138
+ if (result.pluginSkillCount > 0 && result.totalSkillCount > result.pluginSkillCount) {
139
+ const localCount = result.totalSkillCount - result.pluginSkillCount;
202
140
  this.log(
203
- `Discovered ${totalSkillCount} skills (${totalPluginSkillCount} from plugins, ${localCount} local)`
141
+ `Discovered ${result.totalSkillCount} skills (${result.pluginSkillCount} from plugins, ${localCount} local)`
204
142
  );
205
- } else if (totalPluginSkillCount > 0) {
206
- this.log(`Discovered ${totalPluginSkillCount} skills from plugins`);
143
+ } else if (result.pluginSkillCount > 0) {
144
+ this.log(`Discovered ${result.pluginSkillCount} skills from plugins`);
207
145
  } else {
208
- this.log(`Discovered ${totalSkillCount} local skills`);
146
+ this.log(`Discovered ${result.totalSkillCount} local skills`);
209
147
  }
210
- return { allSkills, totalSkillCount };
148
+ return result;
211
149
  }
212
150
  async runCompilePass(params) {
213
- const { label, projectDir, installation, agentDefs, flags, scopeFilter } = params;
151
+ const { label, projectDir, installation, sourcePath, scopeFilter } = params;
214
152
  this.log("");
215
153
  this.log(`Compiling ${label.toLowerCase()} agents...`);
216
154
  this.log("");
@@ -221,19 +159,15 @@ var Compile = class _Compile extends BaseCommand {
221
159
  this.log(`No skills found for ${label.toLowerCase()} pass, skipping`);
222
160
  return false;
223
161
  }
224
- const loadedConfig = await loadProjectConfigFromDir(projectDir);
225
- const agentScopeMap = loadedConfig?.config ? buildAgentScopeMap(loadedConfig.config) : void 0;
226
- const filteredAgents = scopeFilter && loadedConfig?.config?.agents ? loadedConfig.config.agents.filter((a) => a.scope === scopeFilter).map((a) => a.name) : void 0;
227
162
  this.log(STATUS_MESSAGES.RECOMPILING_AGENTS);
228
163
  try {
229
- const recompileResult = await recompileAgents({
230
- pluginDir: projectDir,
231
- sourcePath: agentDefs.sourcePath,
232
- skills: allSkills,
164
+ const recompileResult = await compileAgents({
233
165
  projectDir,
166
+ sourcePath,
167
+ skills: allSkills,
168
+ pluginDir: projectDir,
234
169
  outputDir: installation.agentsDir,
235
- agentScopeMap,
236
- agents: filteredAgents
170
+ scopeFilter
237
171
  });
238
172
  if (recompileResult.failed.length > 0) {
239
173
  this.log(
@@ -259,34 +193,6 @@ var Compile = class _Compile extends BaseCommand {
259
193
  this.log("");
260
194
  return true;
261
195
  }
262
- async resolveSourceForCompile(flags) {
263
- this.log(STATUS_MESSAGES.RESOLVING_SOURCE);
264
- try {
265
- const sourceConfig = await resolveSource(flags.source);
266
- this.log(`Source: ${sourceConfig.sourceOrigin}`);
267
- } catch (error) {
268
- this.log(ERROR_MESSAGES.FAILED_RESOLVE_SOURCE);
269
- this.handleError(error);
270
- }
271
- }
272
- async loadAgentDefsForCompile(flags) {
273
- const projectDir = process.cwd();
274
- this.log(
275
- flags["agent-source"] ? STATUS_MESSAGES.FETCHING_AGENT_PARTIALS : STATUS_MESSAGES.LOADING_AGENT_PARTIALS
276
- );
277
- try {
278
- const agentDefs = await getAgentDefinitions(flags["agent-source"], {
279
- projectDir
280
- });
281
- this.log(flags["agent-source"] ? "Agent partials fetched" : "Agent partials loaded");
282
- verbose(` Agents: ${agentDefs.agentsDir}`);
283
- verbose(` Templates: ${agentDefs.templatesDir}`);
284
- return agentDefs;
285
- } catch (error) {
286
- this.log(ERROR_MESSAGES.FAILED_LOAD_AGENT_PARTIALS);
287
- return this.handleError(error);
288
- }
289
- }
290
196
  };
291
197
  export {
292
198
  Compile as default
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/commands/compile.ts"],"sourcesContent":["import { Flags } from \"@oclif/core\";\nimport os from \"os\";\nimport path from \"path\";\nimport { BaseCommand } from \"../base-command\";\nimport { setVerbose, verbose, warn } from \"../utils/logger\";\nimport { discoverAllPluginSkills } from \"../lib/plugins\";\nimport { getAgentDefinitions } from \"../lib/agents\";\nimport { resolveSource, loadProjectConfigFromDir } from \"../lib/configuration\";\nimport { directoryExists, glob, readFile, fileExists } from \"../utils/fs\";\nimport { recompileAgents } from \"../lib/agents\";\nimport { parseFrontmatter } from \"../lib/loading\";\nimport { CLI_BIN_NAME, GLOBAL_INSTALL_ROOT, LOCAL_SKILLS_PATH, STANDARD_FILES } from \"../consts\";\nimport { EXIT_CODES } from \"../lib/exit-codes\";\nimport { ERROR_MESSAGES, STATUS_MESSAGES, INFO_MESSAGES } from \"../utils/messages\";\nimport {\n buildAgentScopeMap,\n detectGlobalInstallation,\n detectProjectInstallation,\n type Installation,\n} from \"../lib/installation\";\nimport type { AgentSourcePaths, SkillDefinition, SkillDefinitionMap, SkillId } from \"../types\";\nimport { typedEntries, typedKeys } from \"../utils/typed-object\";\n\nasync function loadSkillsFromDir(skillsDir: string, pathPrefix = \"\"): Promise<SkillDefinitionMap> {\n const skills: SkillDefinitionMap = {};\n\n if (!(await directoryExists(skillsDir))) {\n return skills;\n }\n\n const skillFiles = await glob(\"**/SKILL.md\", skillsDir);\n\n for (const skillFile of skillFiles) {\n const skillPath = path.join(skillsDir, skillFile);\n const skillDir = path.dirname(skillPath);\n const relativePath = path.relative(skillsDir, skillDir);\n const skillDirName = path.basename(skillDir);\n\n const metadataPath = path.join(skillDir, STANDARD_FILES.METADATA_YAML);\n if (!(await fileExists(metadataPath))) {\n const displayPath = pathPrefix ? `${pathPrefix}/${relativePath}/` : `${relativePath}/`;\n warn(\n `Skill '${skillDirName}' in '${displayPath}' is missing ${STANDARD_FILES.METADATA_YAML} — skipped. Add ${STANDARD_FILES.METADATA_YAML} to register it with the CLI.`,\n );\n continue;\n }\n\n try {\n const content = await readFile(skillPath);\n const frontmatter = parseFrontmatter(content, skillPath);\n\n if (!frontmatter?.name) {\n warn(`Skipping skill in '${skillDirName}': missing or invalid frontmatter name`);\n continue;\n }\n\n const canonicalId = frontmatter.name;\n\n const skill: SkillDefinition = {\n id: canonicalId,\n path: pathPrefix ? `${pathPrefix}/${relativePath}/` : `${relativePath}/`,\n description: frontmatter?.description || \"\",\n };\n\n skills[canonicalId] = skill;\n verbose(` Loaded skill: ${canonicalId}`);\n } catch (error) {\n verbose(` Failed to load skill: ${skillFile} - ${error}`);\n }\n }\n\n return skills;\n}\n\nasync function discoverLocalProjectSkills(projectDir: string): Promise<SkillDefinitionMap> {\n const localSkillsDir = path.join(projectDir, LOCAL_SKILLS_PATH);\n return loadSkillsFromDir(localSkillsDir, LOCAL_SKILLS_PATH);\n}\n\n/** Later sources take precedence over earlier ones */\nfunction mergeSkills(...skillSources: SkillDefinitionMap[]): SkillDefinitionMap {\n const merged: SkillDefinitionMap = {};\n\n for (const source of skillSources) {\n for (const [id, skill] of typedEntries<SkillId, SkillDefinition | undefined>(source)) {\n if (skill) {\n merged[id] = skill;\n }\n }\n }\n\n return merged;\n}\n\ntype CompileFlags = {\n source?: string;\n \"agent-source\"?: string;\n verbose: boolean;\n};\n\ntype DiscoveredSkills = {\n allSkills: SkillDefinitionMap;\n totalSkillCount: number;\n};\n\nexport default class Compile extends BaseCommand {\n static summary = \"Compile agents using local skills and agent definitions\";\n\n static description =\n \"Compile agents with resolved skill references. Compiles to the Claude plugin directory.\";\n\n static examples = [\n \"<%= config.bin %> <%= command.id %>\",\n \"<%= config.bin %> <%= command.id %> --verbose\",\n ];\n\n static flags = {\n ...BaseCommand.baseFlags,\n verbose: Flags.boolean({\n char: \"v\",\n description: \"Enable verbose logging\",\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(Compile);\n\n setVerbose(flags.verbose);\n\n const cwd = process.cwd();\n const homeDir = os.homedir();\n\n const globalInstallation = await detectGlobalInstallation();\n // Skip project detection when cwd is home directory to avoid double-compile\n const projectInstallation = cwd === homeDir ? null : await detectProjectInstallation(cwd);\n\n if (!globalInstallation && !projectInstallation) {\n this.error(ERROR_MESSAGES.NO_INSTALLATION, {\n exit: EXIT_CODES.ERROR,\n });\n }\n\n await this.resolveSourceForCompile(flags);\n const agentDefs = await this.loadAgentDefsForCompile(flags);\n\n let totalPassesWithSkills = 0;\n\n // When both installations exist, filter each pass to its own scope to prevent\n // the project pass from overwriting global agents with zero-skill versions\n // (the project config's stack only has project agent entries).\n const hasBothScopes = !!globalInstallation && !!projectInstallation;\n\n if (globalInstallation) {\n const hadSkills = await this.runCompilePass({\n label: \"Global\",\n projectDir: homeDir,\n installation: globalInstallation,\n agentDefs,\n flags,\n scopeFilter: hasBothScopes ? \"global\" : undefined,\n });\n if (hadSkills) totalPassesWithSkills++;\n }\n\n if (projectInstallation) {\n const hadSkills = await this.runCompilePass({\n label: \"Project\",\n projectDir: cwd,\n installation: projectInstallation,\n agentDefs,\n flags,\n scopeFilter: hasBothScopes ? \"project\" : undefined,\n });\n if (hadSkills) totalPassesWithSkills++;\n }\n\n if (totalPassesWithSkills === 0) {\n this.error(\n `No skills found. Add skills with '${CLI_BIN_NAME} add <skill>' or create in .claude/skills/.`,\n { exit: EXIT_CODES.ERROR },\n );\n }\n }\n\n private async discoverAllSkills(projectDir: string = process.cwd()): Promise<DiscoveredSkills> {\n this.log(STATUS_MESSAGES.DISCOVERING_SKILLS);\n\n // Load global plugins (skip if projectDir is already the home directory to avoid double-loading)\n const isGlobalProject = projectDir === os.homedir();\n const globalPluginSkills = isGlobalProject ? {} : await discoverAllPluginSkills(os.homedir());\n const globalPluginSkillCount = typedKeys<SkillId>(globalPluginSkills).length;\n if (globalPluginSkillCount > 0) {\n verbose(` Found ${globalPluginSkillCount} skills from global plugins`);\n }\n\n // Load global local skills (skip if projectDir is already the home directory to avoid double-loading)\n const globalLocalSkillsDir = path.join(GLOBAL_INSTALL_ROOT, LOCAL_SKILLS_PATH);\n const globalLocalSkills = isGlobalProject\n ? {}\n : await loadSkillsFromDir(globalLocalSkillsDir, LOCAL_SKILLS_PATH);\n const globalLocalSkillCount = typedKeys<SkillId>(globalLocalSkills).length;\n if (globalLocalSkillCount > 0) {\n verbose(` Found ${globalLocalSkillCount} global local skills from ~/.claude/skills/`);\n }\n\n const pluginSkills = await discoverAllPluginSkills(projectDir);\n const pluginSkillCount = typedKeys<SkillId>(pluginSkills).length;\n verbose(` Found ${pluginSkillCount} skills from installed plugins`);\n\n const localSkills = await discoverLocalProjectSkills(projectDir);\n const localSkillCount = typedKeys<SkillId>(localSkills).length;\n verbose(` Found ${localSkillCount} local skills from .claude/skills/`);\n\n // Global skills loaded first, project skills second — project wins on conflict (later sources override)\n const allSkills = mergeSkills(globalPluginSkills, globalLocalSkills, pluginSkills, localSkills);\n const totalSkillCount = typedKeys<SkillId>(allSkills).length;\n\n if (totalSkillCount === 0) {\n return { allSkills, totalSkillCount };\n }\n\n const totalPluginSkillCount = globalPluginSkillCount + pluginSkillCount;\n if (totalPluginSkillCount > 0 && totalSkillCount > totalPluginSkillCount) {\n const localCount = totalSkillCount - totalPluginSkillCount;\n this.log(\n `Discovered ${totalSkillCount} skills (${totalPluginSkillCount} from plugins, ${localCount} local)`,\n );\n } else if (totalPluginSkillCount > 0) {\n this.log(`Discovered ${totalPluginSkillCount} skills from plugins`);\n } else {\n this.log(`Discovered ${totalSkillCount} local skills`);\n }\n\n return { allSkills, totalSkillCount };\n }\n\n private async runCompilePass(params: {\n label: string;\n projectDir: string;\n installation: Installation;\n agentDefs: AgentSourcePaths;\n flags: CompileFlags;\n /** When true, only compile agents matching this scope (filters out agents handled by another pass) */\n scopeFilter?: \"project\" | \"global\";\n }): Promise<boolean> {\n const { label, projectDir, installation, agentDefs, flags, scopeFilter } = params;\n\n this.log(\"\");\n this.log(`Compiling ${label.toLowerCase()} agents...`);\n this.log(\"\");\n\n verbose(` Project: ${projectDir}`);\n verbose(` Agents: ${installation.agentsDir}`);\n\n const { allSkills, totalSkillCount } = await this.discoverAllSkills(projectDir);\n\n if (totalSkillCount === 0) {\n this.log(`No skills found for ${label.toLowerCase()} pass, skipping`);\n return false;\n }\n\n // Load config to build scope map so agents are routed to the correct directory\n const loadedConfig = await loadProjectConfigFromDir(projectDir);\n const agentScopeMap = loadedConfig?.config\n ? buildAgentScopeMap(loadedConfig.config)\n : undefined;\n\n // When a scope filter is active, only compile agents matching that scope.\n // This prevents the project pass from overwriting global agents (which were already compiled\n // in the global pass) with zero-skill versions (the project stack only has project entries).\n const filteredAgents =\n scopeFilter && loadedConfig?.config?.agents\n ? loadedConfig.config.agents.filter((a) => a.scope === scopeFilter).map((a) => a.name)\n : undefined;\n\n this.log(STATUS_MESSAGES.RECOMPILING_AGENTS);\n try {\n const recompileResult = await recompileAgents({\n pluginDir: projectDir,\n sourcePath: agentDefs.sourcePath,\n skills: allSkills,\n projectDir,\n outputDir: installation.agentsDir,\n agentScopeMap,\n agents: filteredAgents,\n });\n\n if (recompileResult.failed.length > 0) {\n this.log(\n `Recompiled ${recompileResult.compiled.length} ${label.toLowerCase()} agents (${recompileResult.failed.length} failed)`,\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} ${label.toLowerCase()} agents`);\n } else {\n this.log(INFO_MESSAGES.NO_AGENTS_TO_RECOMPILE);\n }\n\n if (recompileResult.compiled.length > 0) {\n verbose(` Compiled: ${recompileResult.compiled.join(\", \")}`);\n }\n } catch (error) {\n this.log(ERROR_MESSAGES.FAILED_COMPILE_AGENTS);\n this.handleError(error);\n }\n\n this.log(\"\");\n this.logSuccess(`${label} compile complete!`);\n this.log(\"\");\n\n return true;\n }\n\n private async resolveSourceForCompile(flags: CompileFlags): Promise<void> {\n this.log(STATUS_MESSAGES.RESOLVING_SOURCE);\n try {\n const sourceConfig = await resolveSource(flags.source);\n this.log(`Source: ${sourceConfig.sourceOrigin}`);\n } catch (error) {\n this.log(ERROR_MESSAGES.FAILED_RESOLVE_SOURCE);\n this.handleError(error);\n }\n }\n\n private async loadAgentDefsForCompile(flags: CompileFlags): Promise<AgentSourcePaths> {\n const projectDir = process.cwd();\n this.log(\n flags[\"agent-source\"]\n ? STATUS_MESSAGES.FETCHING_AGENT_PARTIALS\n : STATUS_MESSAGES.LOADING_AGENT_PARTIALS,\n );\n\n try {\n const agentDefs = await getAgentDefinitions(flags[\"agent-source\"], {\n projectDir,\n });\n this.log(flags[\"agent-source\"] ? \"Agent partials fetched\" : \"Agent partials loaded\");\n verbose(` Agents: ${agentDefs.agentsDir}`);\n verbose(` Templates: ${agentDefs.templatesDir}`);\n return agentDefs;\n } catch (error) {\n this.log(ERROR_MESSAGES.FAILED_LOAD_AGENT_PARTIALS);\n return this.handleError(error);\n }\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/cli/commands/compile.ts"],"sourcesContent":["import { Flags } from \"@oclif/core\";\nimport os from \"os\";\nimport { BaseCommand } from \"../base-command\";\nimport { setVerbose, verbose } from \"../utils/logger\";\nimport {\n detectBothInstallations,\n type BothInstallations,\n loadAgentDefs,\n type AgentDefs,\n compileAgents,\n discoverInstalledSkills,\n type DiscoveredSkills,\n} from \"../lib/operations\";\nimport { resolveSource } from \"../lib/configuration\";\nimport { CLI_BIN_NAME } from \"../consts\";\nimport { EXIT_CODES } from \"../lib/exit-codes\";\nimport { ERROR_MESSAGES, STATUS_MESSAGES, INFO_MESSAGES } from \"../utils/messages\";\nimport { type Installation } from \"../lib/installation\";\n\nexport default class Compile extends BaseCommand {\n static summary = \"Compile agents using local skills and agent definitions\";\n\n static description =\n \"Compile agents with resolved skill references. Compiles to the Claude plugin directory.\";\n\n static examples = [\n \"<%= config.bin %> <%= command.id %>\",\n \"<%= config.bin %> <%= command.id %> --verbose\",\n ];\n\n static flags = {\n ...BaseCommand.baseFlags,\n verbose: Flags.boolean({\n char: \"v\",\n description: \"Enable verbose logging\",\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(Compile);\n setVerbose(flags.verbose);\n const cwd = process.cwd();\n\n const installations = await this.detectInstallations(cwd);\n await this.resolveAndLogSource(flags.source);\n const agentDefs = await this.loadAgentDefsOrFail(flags, cwd);\n await this.compileAllScopes(installations, agentDefs, cwd);\n }\n\n private async detectInstallations(cwd: string): Promise<BothInstallations> {\n const installations = await detectBothInstallations(cwd);\n\n if (!installations.global && !installations.project) {\n this.error(ERROR_MESSAGES.NO_INSTALLATION, {\n exit: EXIT_CODES.ERROR,\n });\n }\n\n return installations;\n }\n\n private async resolveAndLogSource(sourceFlag?: string): Promise<void> {\n this.log(STATUS_MESSAGES.RESOLVING_SOURCE);\n try {\n const sourceConfig = await resolveSource(sourceFlag);\n this.log(`Source: ${sourceConfig.sourceOrigin}`);\n } catch (error) {\n this.log(ERROR_MESSAGES.FAILED_RESOLVE_SOURCE);\n this.handleError(error);\n }\n }\n\n private async loadAgentDefsOrFail(\n flags: { \"agent-source\"?: string },\n cwd: string,\n ): Promise<AgentDefs> {\n this.log(\n flags[\"agent-source\"]\n ? STATUS_MESSAGES.FETCHING_AGENT_PARTIALS\n : STATUS_MESSAGES.LOADING_AGENT_PARTIALS,\n );\n try {\n const defs = await loadAgentDefs(flags[\"agent-source\"], { projectDir: cwd });\n this.log(flags[\"agent-source\"] ? \"Agent partials fetched\" : \"Agent partials loaded\");\n verbose(` Agents: ${defs.agentSourcePaths.agentsDir}`);\n verbose(` Templates: ${defs.agentSourcePaths.templatesDir}`);\n return defs;\n } catch (error) {\n this.log(ERROR_MESSAGES.FAILED_LOAD_AGENT_PARTIALS);\n this.handleError(error);\n }\n }\n\n private async compileAllScopes(\n installations: BothInstallations,\n agentDefs: AgentDefs,\n cwd: string,\n ): Promise<void> {\n const homeDir = os.homedir();\n let totalPassesWithSkills = 0;\n\n // When both installations exist, filter each pass to its own scope to prevent\n // the project pass from overwriting global agents with zero-skill versions\n // (the project config's stack only has project agent entries).\n if (installations.global) {\n const hadSkills = await this.runCompilePass({\n label: \"Global\",\n projectDir: homeDir,\n installation: installations.global,\n sourcePath: agentDefs.sourcePath,\n scopeFilter: installations.hasBoth ? \"global\" : undefined,\n });\n if (hadSkills) totalPassesWithSkills++;\n }\n\n if (installations.project) {\n const hadSkills = await this.runCompilePass({\n label: \"Project\",\n projectDir: cwd,\n installation: installations.project,\n sourcePath: agentDefs.sourcePath,\n scopeFilter: installations.hasBoth ? \"project\" : undefined,\n });\n if (hadSkills) totalPassesWithSkills++;\n }\n\n if (totalPassesWithSkills === 0) {\n this.error(\n `No skills found. Add skills with '${CLI_BIN_NAME} add <skill>' or create in .claude/skills/.`,\n { exit: EXIT_CODES.ERROR },\n );\n }\n }\n\n private async discoverAllSkills(projectDir: string): Promise<DiscoveredSkills> {\n this.log(STATUS_MESSAGES.DISCOVERING_SKILLS);\n const result = await discoverInstalledSkills(projectDir);\n\n if (result.totalSkillCount === 0) {\n return result;\n }\n\n if (result.pluginSkillCount > 0 && result.totalSkillCount > result.pluginSkillCount) {\n const localCount = result.totalSkillCount - result.pluginSkillCount;\n this.log(\n `Discovered ${result.totalSkillCount} skills (${result.pluginSkillCount} from plugins, ${localCount} local)`,\n );\n } else if (result.pluginSkillCount > 0) {\n this.log(`Discovered ${result.pluginSkillCount} skills from plugins`);\n } else {\n this.log(`Discovered ${result.totalSkillCount} local skills`);\n }\n\n return result;\n }\n\n private async runCompilePass(params: {\n label: string;\n projectDir: string;\n installation: Installation;\n sourcePath: string;\n scopeFilter?: \"project\" | \"global\";\n }): Promise<boolean> {\n const { label, projectDir, installation, sourcePath, scopeFilter } = params;\n\n this.log(\"\");\n this.log(`Compiling ${label.toLowerCase()} agents...`);\n this.log(\"\");\n\n verbose(` Project: ${projectDir}`);\n verbose(` Agents: ${installation.agentsDir}`);\n\n const { allSkills, totalSkillCount } = await this.discoverAllSkills(projectDir);\n\n if (totalSkillCount === 0) {\n this.log(`No skills found for ${label.toLowerCase()} pass, skipping`);\n return false;\n }\n\n this.log(STATUS_MESSAGES.RECOMPILING_AGENTS);\n try {\n const recompileResult = await compileAgents({\n projectDir,\n sourcePath,\n skills: allSkills,\n pluginDir: projectDir,\n outputDir: installation.agentsDir,\n scopeFilter,\n });\n\n if (recompileResult.failed.length > 0) {\n this.log(\n `Recompiled ${recompileResult.compiled.length} ${label.toLowerCase()} agents (${recompileResult.failed.length} failed)`,\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} ${label.toLowerCase()} agents`);\n } else {\n this.log(INFO_MESSAGES.NO_AGENTS_TO_RECOMPILE);\n }\n\n if (recompileResult.compiled.length > 0) {\n verbose(` Compiled: ${recompileResult.compiled.join(\", \")}`);\n }\n } catch (error) {\n this.log(ERROR_MESSAGES.FAILED_COMPILE_AGENTS);\n this.handleError(error);\n }\n\n this.log(\"\");\n this.logSuccess(`${label} compile complete!`);\n this.log(\"\");\n\n return true;\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ConfigShow
4
- } from "../../chunk-TAQGYJIS.js";
5
- import "../../chunk-FKXD3EXJ.js";
6
- import "../../chunk-YJ2URWF7.js";
4
+ } from "../../chunk-HZ2IBXVQ.js";
5
+ import "../../chunk-TMTUTUEV.js";
6
+ import "../../chunk-B6MYECV6.js";
7
7
  import "../../chunk-ANXHMG32.js";
8
- import "../../chunk-LMR7VAP3.js";
9
- import "../../chunk-WJKD6EGK.js";
8
+ import "../../chunk-MMTMXLI4.js";
9
+ import "../../chunk-NUU3U43A.js";
10
10
  import "../../chunk-6XWHJHNZ.js";
11
11
  import "../../chunk-6PGL2XMY.js";
12
12
  import "../../chunk-NPMMU4GY.js";
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  getProjectConfigPath
4
- } from "../../chunk-FKXD3EXJ.js";
5
- import "../../chunk-YJ2URWF7.js";
4
+ } from "../../chunk-TMTUTUEV.js";
5
+ import "../../chunk-B6MYECV6.js";
6
6
  import "../../chunk-ANXHMG32.js";
7
7
  import {
8
8
  BaseCommand
9
- } from "../../chunk-LMR7VAP3.js";
10
- import "../../chunk-WJKD6EGK.js";
9
+ } from "../../chunk-MMTMXLI4.js";
10
+ import "../../chunk-NUU3U43A.js";
11
11
  import "../../chunk-6XWHJHNZ.js";
12
12
  import "../../chunk-6PGL2XMY.js";
13
13
  import "../../chunk-NPMMU4GY.js";
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ConfigShow
4
- } from "../../chunk-TAQGYJIS.js";
5
- import "../../chunk-FKXD3EXJ.js";
6
- import "../../chunk-YJ2URWF7.js";
4
+ } from "../../chunk-HZ2IBXVQ.js";
5
+ import "../../chunk-TMTUTUEV.js";
6
+ import "../../chunk-B6MYECV6.js";
7
7
  import "../../chunk-ANXHMG32.js";
8
- import "../../chunk-LMR7VAP3.js";
9
- import "../../chunk-WJKD6EGK.js";
8
+ import "../../chunk-MMTMXLI4.js";
9
+ import "../../chunk-NUU3U43A.js";
10
10
  import "../../chunk-6XWHJHNZ.js";
11
11
  import "../../chunk-6PGL2XMY.js";
12
12
  import "../../chunk-NPMMU4GY.js";