@ai-coders/context 0.5.2 → 0.6.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 (325) hide show
  1. package/README.md +244 -12
  2. package/dist/generators/agents/agentGenerator.d.ts +3 -0
  3. package/dist/generators/agents/agentGenerator.d.ts.map +1 -1
  4. package/dist/generators/agents/agentGenerator.js +13 -7
  5. package/dist/generators/agents/agentGenerator.js.map +1 -1
  6. package/dist/generators/agents/templates/playbookTemplate.d.ts.map +1 -1
  7. package/dist/generators/agents/templates/playbookTemplate.js +3 -1
  8. package/dist/generators/agents/templates/playbookTemplate.js.map +1 -1
  9. package/dist/generators/documentation/codebaseMapGenerator.d.ts +98 -0
  10. package/dist/generators/documentation/codebaseMapGenerator.d.ts.map +1 -0
  11. package/dist/generators/documentation/codebaseMapGenerator.js +247 -0
  12. package/dist/generators/documentation/codebaseMapGenerator.js.map +1 -0
  13. package/dist/generators/documentation/documentationGenerator.d.ts +2 -0
  14. package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -1
  15. package/dist/generators/documentation/documentationGenerator.js +20 -1
  16. package/dist/generators/documentation/documentationGenerator.js.map +1 -1
  17. package/dist/generators/documentation/index.d.ts +2 -0
  18. package/dist/generators/documentation/index.d.ts.map +1 -1
  19. package/dist/generators/documentation/index.js +3 -1
  20. package/dist/generators/documentation/index.js.map +1 -1
  21. package/dist/generators/documentation/templates/architectureTemplate.d.ts.map +1 -1
  22. package/dist/generators/documentation/templates/architectureTemplate.js +2 -31
  23. package/dist/generators/documentation/templates/architectureTemplate.js.map +1 -1
  24. package/dist/generators/documentation/templates/common.d.ts +4 -1
  25. package/dist/generators/documentation/templates/common.d.ts.map +1 -1
  26. package/dist/generators/documentation/templates/common.js +4 -2
  27. package/dist/generators/documentation/templates/common.js.map +1 -1
  28. package/dist/generators/plans/templates/planTemplate.d.ts.map +1 -1
  29. package/dist/generators/plans/templates/planTemplate.js +46 -2
  30. package/dist/generators/plans/templates/planTemplate.js.map +1 -1
  31. package/dist/generators/skills/index.d.ts +7 -0
  32. package/dist/generators/skills/index.d.ts.map +1 -0
  33. package/dist/generators/skills/index.js +15 -0
  34. package/dist/generators/skills/index.js.map +1 -0
  35. package/dist/generators/skills/skillGenerator.d.ts +53 -0
  36. package/dist/generators/skills/skillGenerator.d.ts.map +1 -0
  37. package/dist/generators/skills/skillGenerator.js +149 -0
  38. package/dist/generators/skills/skillGenerator.js.map +1 -0
  39. package/dist/generators/skills/templates/indexTemplate.d.ts +13 -0
  40. package/dist/generators/skills/templates/indexTemplate.d.ts.map +1 -0
  41. package/dist/generators/skills/templates/indexTemplate.js +102 -0
  42. package/dist/generators/skills/templates/indexTemplate.js.map +1 -0
  43. package/dist/generators/skills/templates/skillTemplate.d.ts +20 -0
  44. package/dist/generators/skills/templates/skillTemplate.d.ts.map +1 -0
  45. package/dist/generators/skills/templates/skillTemplate.js +85 -0
  46. package/dist/generators/skills/templates/skillTemplate.js.map +1 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +1315 -43
  49. package/dist/index.js.map +1 -1
  50. package/dist/services/ai/agentEvents.d.ts +1 -1
  51. package/dist/services/ai/agentEvents.d.ts.map +1 -1
  52. package/dist/services/ai/agents/index.d.ts +2 -0
  53. package/dist/services/ai/agents/index.d.ts.map +1 -1
  54. package/dist/services/ai/agents/index.js +3 -1
  55. package/dist/services/ai/agents/index.js.map +1 -1
  56. package/dist/services/ai/agents/skillAgent.d.ts +49 -0
  57. package/dist/services/ai/agents/skillAgent.d.ts.map +1 -0
  58. package/dist/services/ai/agents/skillAgent.js +179 -0
  59. package/dist/services/ai/agents/skillAgent.js.map +1 -0
  60. package/dist/services/ai/prompts/index.d.ts +1 -1
  61. package/dist/services/ai/prompts/index.d.ts.map +1 -1
  62. package/dist/services/ai/prompts/index.js +2 -1
  63. package/dist/services/ai/prompts/index.js.map +1 -1
  64. package/dist/services/ai/prompts/sharedPrompts.d.ts +4 -0
  65. package/dist/services/ai/prompts/sharedPrompts.d.ts.map +1 -1
  66. package/dist/services/ai/prompts/sharedPrompts.js +33 -0
  67. package/dist/services/ai/prompts/sharedPrompts.js.map +1 -1
  68. package/dist/services/ai/schemas.d.ts +96 -1
  69. package/dist/services/ai/schemas.d.ts.map +1 -1
  70. package/dist/services/ai/schemas.js +56 -2
  71. package/dist/services/ai/schemas.js.map +1 -1
  72. package/dist/services/ai/toolRegistry.d.ts.map +1 -1
  73. package/dist/services/ai/toolRegistry.js +17 -0
  74. package/dist/services/ai/toolRegistry.js.map +1 -1
  75. package/dist/services/ai/tools/fillScaffoldingTool.d.ts +4 -4
  76. package/dist/services/ai/tools/getCodebaseMapTool.d.ts +17 -0
  77. package/dist/services/ai/tools/getCodebaseMapTool.d.ts.map +1 -0
  78. package/dist/services/ai/tools/getCodebaseMapTool.js +115 -0
  79. package/dist/services/ai/tools/getCodebaseMapTool.js.map +1 -0
  80. package/dist/services/ai/tools/index.d.ts +2 -1
  81. package/dist/services/ai/tools/index.d.ts.map +1 -1
  82. package/dist/services/ai/tools/index.js +8 -3
  83. package/dist/services/ai/tools/index.js.map +1 -1
  84. package/dist/services/ai/tools/initializeContextTool.d.ts +9 -1
  85. package/dist/services/ai/tools/initializeContextTool.d.ts.map +1 -1
  86. package/dist/services/ai/tools/initializeContextTool.js +33 -3
  87. package/dist/services/ai/tools/initializeContextTool.js.map +1 -1
  88. package/dist/services/ai/tools/scaffoldPlanTool.d.ts +6 -0
  89. package/dist/services/ai/tools/scaffoldPlanTool.d.ts.map +1 -1
  90. package/dist/services/ai/tools/scaffoldPlanTool.js +16 -3
  91. package/dist/services/ai/tools/scaffoldPlanTool.js.map +1 -1
  92. package/dist/services/export/exportRulesService.d.ts +62 -0
  93. package/dist/services/export/exportRulesService.d.ts.map +1 -0
  94. package/dist/services/export/exportRulesService.js +242 -0
  95. package/dist/services/export/exportRulesService.js.map +1 -0
  96. package/dist/services/export/index.d.ts +5 -0
  97. package/dist/services/export/index.d.ts.map +1 -0
  98. package/dist/services/export/index.js +10 -0
  99. package/dist/services/export/index.js.map +1 -0
  100. package/dist/services/export/skillExportService.d.ts +64 -0
  101. package/dist/services/export/skillExportService.d.ts.map +1 -0
  102. package/dist/services/export/skillExportService.js +238 -0
  103. package/dist/services/export/skillExportService.js.map +1 -0
  104. package/dist/services/fill/skillFillService.d.ts +50 -0
  105. package/dist/services/fill/skillFillService.d.ts.map +1 -0
  106. package/dist/services/fill/skillFillService.js +254 -0
  107. package/dist/services/fill/skillFillService.js.map +1 -0
  108. package/dist/services/import/agentsDetector.d.ts +12 -0
  109. package/dist/services/import/agentsDetector.d.ts.map +1 -0
  110. package/dist/services/import/agentsDetector.js +183 -0
  111. package/dist/services/import/agentsDetector.js.map +1 -0
  112. package/dist/services/import/importAgentsService.d.ts +14 -0
  113. package/dist/services/import/importAgentsService.d.ts.map +1 -0
  114. package/dist/services/import/importAgentsService.js +195 -0
  115. package/dist/services/import/importAgentsService.js.map +1 -0
  116. package/dist/services/import/importRulesService.d.ts +17 -0
  117. package/dist/services/import/importRulesService.d.ts.map +1 -0
  118. package/dist/services/import/importRulesService.js +222 -0
  119. package/dist/services/import/importRulesService.js.map +1 -0
  120. package/dist/services/import/index.d.ts +7 -0
  121. package/dist/services/import/index.d.ts.map +1 -0
  122. package/dist/services/import/index.js +28 -0
  123. package/dist/services/import/index.js.map +1 -0
  124. package/dist/services/import/presets.d.ts +8 -0
  125. package/dist/services/import/presets.d.ts.map +1 -0
  126. package/dist/services/import/presets.js +176 -0
  127. package/dist/services/import/presets.js.map +1 -0
  128. package/dist/services/import/rulesDetector.d.ts +16 -0
  129. package/dist/services/import/rulesDetector.d.ts.map +1 -0
  130. package/dist/services/import/rulesDetector.js +278 -0
  131. package/dist/services/import/rulesDetector.js.map +1 -0
  132. package/dist/services/import/types.d.ts +72 -0
  133. package/dist/services/import/types.d.ts.map +1 -0
  134. package/dist/services/import/types.js +3 -0
  135. package/dist/services/import/types.js.map +1 -0
  136. package/dist/services/mcp/mcpServer.d.ts +24 -0
  137. package/dist/services/mcp/mcpServer.d.ts.map +1 -1
  138. package/dist/services/mcp/mcpServer.js +1451 -1
  139. package/dist/services/mcp/mcpServer.js.map +1 -1
  140. package/dist/services/quickSync/index.d.ts +3 -0
  141. package/dist/services/quickSync/index.d.ts.map +1 -0
  142. package/dist/services/quickSync/index.js +7 -0
  143. package/dist/services/quickSync/index.js.map +1 -0
  144. package/dist/services/quickSync/quickSyncService.d.ts +72 -0
  145. package/dist/services/quickSync/quickSyncService.d.ts.map +1 -0
  146. package/dist/services/quickSync/quickSyncService.js +268 -0
  147. package/dist/services/quickSync/quickSyncService.js.map +1 -0
  148. package/dist/services/report/index.d.ts +3 -0
  149. package/dist/services/report/index.d.ts.map +1 -0
  150. package/dist/services/report/index.js +6 -0
  151. package/dist/services/report/index.js.map +1 -0
  152. package/dist/services/report/reportService.d.ts +131 -0
  153. package/dist/services/report/reportService.d.ts.map +1 -0
  154. package/dist/services/report/reportService.js +372 -0
  155. package/dist/services/report/reportService.js.map +1 -0
  156. package/dist/services/semantic/contextBuilder.d.ts +8 -1
  157. package/dist/services/semantic/contextBuilder.d.ts.map +1 -1
  158. package/dist/services/semantic/contextBuilder.js +107 -20
  159. package/dist/services/semantic/contextBuilder.js.map +1 -1
  160. package/dist/services/shared/globPatterns.d.ts +48 -0
  161. package/dist/services/shared/globPatterns.d.ts.map +1 -0
  162. package/dist/services/shared/globPatterns.js +110 -0
  163. package/dist/services/shared/globPatterns.js.map +1 -0
  164. package/dist/services/shared/index.d.ts +10 -0
  165. package/dist/services/shared/index.d.ts.map +1 -0
  166. package/dist/services/shared/index.js +46 -0
  167. package/dist/services/shared/index.js.map +1 -0
  168. package/dist/services/shared/pathHelpers.d.ts +71 -0
  169. package/dist/services/shared/pathHelpers.d.ts.map +1 -0
  170. package/dist/services/shared/pathHelpers.js +162 -0
  171. package/dist/services/shared/pathHelpers.js.map +1 -0
  172. package/dist/services/shared/types.d.ts +74 -0
  173. package/dist/services/shared/types.d.ts.map +1 -0
  174. package/dist/services/shared/types.js +44 -0
  175. package/dist/services/shared/types.js.map +1 -0
  176. package/dist/services/shared/uiHelpers.d.ts +70 -0
  177. package/dist/services/shared/uiHelpers.d.ts.map +1 -0
  178. package/dist/services/shared/uiHelpers.js +131 -0
  179. package/dist/services/shared/uiHelpers.js.map +1 -0
  180. package/dist/services/stack/index.d.ts +6 -0
  181. package/dist/services/stack/index.d.ts.map +1 -0
  182. package/dist/services/stack/index.js +25 -0
  183. package/dist/services/stack/index.js.map +1 -0
  184. package/dist/services/stack/projectTypeClassifier.d.ts +59 -0
  185. package/dist/services/stack/projectTypeClassifier.d.ts.map +1 -0
  186. package/dist/services/stack/projectTypeClassifier.js +242 -0
  187. package/dist/services/stack/projectTypeClassifier.js.map +1 -0
  188. package/dist/services/stack/scaffoldFilter.d.ts +75 -0
  189. package/dist/services/stack/scaffoldFilter.d.ts.map +1 -0
  190. package/dist/services/stack/scaffoldFilter.js +222 -0
  191. package/dist/services/stack/scaffoldFilter.js.map +1 -0
  192. package/dist/services/stack/stackDetector.d.ts +43 -0
  193. package/dist/services/stack/stackDetector.d.ts.map +1 -0
  194. package/dist/services/stack/stackDetector.js +406 -0
  195. package/dist/services/stack/stackDetector.js.map +1 -0
  196. package/dist/services/start/index.d.ts +3 -0
  197. package/dist/services/start/index.d.ts.map +1 -0
  198. package/dist/services/start/index.js +6 -0
  199. package/dist/services/start/index.js.map +1 -0
  200. package/dist/services/start/startService.d.ts +64 -0
  201. package/dist/services/start/startService.d.ts.map +1 -0
  202. package/dist/services/start/startService.js +180 -0
  203. package/dist/services/start/startService.js.map +1 -0
  204. package/dist/services/sync/presets.d.ts.map +1 -1
  205. package/dist/services/sync/presets.js +16 -1
  206. package/dist/services/sync/presets.js.map +1 -1
  207. package/dist/services/sync/types.d.ts +1 -1
  208. package/dist/services/sync/types.d.ts.map +1 -1
  209. package/dist/services/workflow/autoAdvance.d.ts +38 -0
  210. package/dist/services/workflow/autoAdvance.d.ts.map +1 -0
  211. package/dist/services/workflow/autoAdvance.js +219 -0
  212. package/dist/services/workflow/autoAdvance.js.map +1 -0
  213. package/dist/services/workflow/index.d.ts +6 -0
  214. package/dist/services/workflow/index.d.ts.map +1 -0
  215. package/dist/services/workflow/index.js +11 -0
  216. package/dist/services/workflow/index.js.map +1 -0
  217. package/dist/services/workflow/workflowService.d.ts +98 -0
  218. package/dist/services/workflow/workflowService.d.ts.map +1 -0
  219. package/dist/services/workflow/workflowService.js +210 -0
  220. package/dist/services/workflow/workflowService.js.map +1 -0
  221. package/dist/utils/cliUI.d.ts +4 -0
  222. package/dist/utils/cliUI.d.ts.map +1 -1
  223. package/dist/utils/cliUI.js +31 -1
  224. package/dist/utils/cliUI.js.map +1 -1
  225. package/dist/utils/i18n.d.ts +202 -0
  226. package/dist/utils/i18n.d.ts.map +1 -1
  227. package/dist/utils/i18n.js +438 -2
  228. package/dist/utils/i18n.js.map +1 -1
  229. package/dist/utils/theme.d.ts +1 -0
  230. package/dist/utils/theme.d.ts.map +1 -1
  231. package/dist/utils/theme.js +1 -0
  232. package/dist/utils/theme.js.map +1 -1
  233. package/dist/workflow/agents/agentRegistry.d.ts +82 -0
  234. package/dist/workflow/agents/agentRegistry.d.ts.map +1 -0
  235. package/dist/workflow/agents/agentRegistry.js +205 -0
  236. package/dist/workflow/agents/agentRegistry.js.map +1 -0
  237. package/dist/workflow/agents/index.d.ts +7 -0
  238. package/dist/workflow/agents/index.d.ts.map +1 -0
  239. package/dist/workflow/agents/index.js +14 -0
  240. package/dist/workflow/agents/index.js.map +1 -0
  241. package/dist/workflow/collaboration.d.ts +110 -0
  242. package/dist/workflow/collaboration.d.ts.map +1 -0
  243. package/dist/workflow/collaboration.js +301 -0
  244. package/dist/workflow/collaboration.js.map +1 -0
  245. package/dist/workflow/index.d.ts +25 -0
  246. package/dist/workflow/index.d.ts.map +1 -0
  247. package/dist/workflow/index.js +124 -0
  248. package/dist/workflow/index.js.map +1 -0
  249. package/dist/workflow/orchestration/agentOrchestrator.d.ts +68 -0
  250. package/dist/workflow/orchestration/agentOrchestrator.d.ts.map +1 -0
  251. package/dist/workflow/orchestration/agentOrchestrator.js +280 -0
  252. package/dist/workflow/orchestration/agentOrchestrator.js.map +1 -0
  253. package/dist/workflow/orchestration/documentLinker.d.ts +100 -0
  254. package/dist/workflow/orchestration/documentLinker.d.ts.map +1 -0
  255. package/dist/workflow/orchestration/documentLinker.js +266 -0
  256. package/dist/workflow/orchestration/documentLinker.js.map +1 -0
  257. package/dist/workflow/orchestration/index.d.ts +9 -0
  258. package/dist/workflow/orchestration/index.d.ts.map +1 -0
  259. package/dist/workflow/orchestration/index.js +25 -0
  260. package/dist/workflow/orchestration/index.js.map +1 -0
  261. package/dist/workflow/orchestrator.d.ts +99 -0
  262. package/dist/workflow/orchestrator.d.ts.map +1 -0
  263. package/dist/workflow/orchestrator.js +217 -0
  264. package/dist/workflow/orchestrator.js.map +1 -0
  265. package/dist/workflow/phases.d.ts +64 -0
  266. package/dist/workflow/phases.d.ts.map +1 -0
  267. package/dist/workflow/phases.js +151 -0
  268. package/dist/workflow/phases.js.map +1 -0
  269. package/dist/workflow/plans/index.d.ts +8 -0
  270. package/dist/workflow/plans/index.d.ts.map +1 -0
  271. package/dist/workflow/plans/index.js +27 -0
  272. package/dist/workflow/plans/index.js.map +1 -0
  273. package/dist/workflow/plans/planLinker.d.ts +119 -0
  274. package/dist/workflow/plans/planLinker.d.ts.map +1 -0
  275. package/dist/workflow/plans/planLinker.js +499 -0
  276. package/dist/workflow/plans/planLinker.js.map +1 -0
  277. package/dist/workflow/plans/types.d.ts +167 -0
  278. package/dist/workflow/plans/types.d.ts.map +1 -0
  279. package/dist/workflow/plans/types.js +25 -0
  280. package/dist/workflow/plans/types.js.map +1 -0
  281. package/dist/workflow/prevcConfig.d.ts +27 -0
  282. package/dist/workflow/prevcConfig.d.ts.map +1 -0
  283. package/dist/workflow/prevcConfig.js +153 -0
  284. package/dist/workflow/prevcConfig.js.map +1 -0
  285. package/dist/workflow/roles.d.ts +44 -0
  286. package/dist/workflow/roles.d.ts.map +1 -0
  287. package/dist/workflow/roles.js +112 -0
  288. package/dist/workflow/roles.js.map +1 -0
  289. package/dist/workflow/scaling.d.ts +44 -0
  290. package/dist/workflow/scaling.d.ts.map +1 -0
  291. package/dist/workflow/scaling.js +224 -0
  292. package/dist/workflow/scaling.js.map +1 -0
  293. package/dist/workflow/skills/frontmatter.d.ts +23 -0
  294. package/dist/workflow/skills/frontmatter.d.ts.map +1 -0
  295. package/dist/workflow/skills/frontmatter.js +100 -0
  296. package/dist/workflow/skills/frontmatter.js.map +1 -0
  297. package/dist/workflow/skills/index.d.ts +10 -0
  298. package/dist/workflow/skills/index.d.ts.map +1 -0
  299. package/dist/workflow/skills/index.js +22 -0
  300. package/dist/workflow/skills/index.js.map +1 -0
  301. package/dist/workflow/skills/skillRegistry.d.ts +60 -0
  302. package/dist/workflow/skills/skillRegistry.d.ts.map +1 -0
  303. package/dist/workflow/skills/skillRegistry.js +257 -0
  304. package/dist/workflow/skills/skillRegistry.js.map +1 -0
  305. package/dist/workflow/skills/skillTemplates.d.ts +16 -0
  306. package/dist/workflow/skills/skillTemplates.d.ts.map +1 -0
  307. package/dist/workflow/skills/skillTemplates.js +610 -0
  308. package/dist/workflow/skills/skillTemplates.js.map +1 -0
  309. package/dist/workflow/skills/types.d.ts +72 -0
  310. package/dist/workflow/skills/types.d.ts.map +1 -0
  311. package/dist/workflow/skills/types.js +48 -0
  312. package/dist/workflow/skills/types.js.map +1 -0
  313. package/dist/workflow/status/statusManager.d.ts +84 -0
  314. package/dist/workflow/status/statusManager.d.ts.map +1 -0
  315. package/dist/workflow/status/statusManager.js +402 -0
  316. package/dist/workflow/status/statusManager.js.map +1 -0
  317. package/dist/workflow/status/templates.d.ts +40 -0
  318. package/dist/workflow/status/templates.d.ts.map +1 -0
  319. package/dist/workflow/status/templates.js +148 -0
  320. package/dist/workflow/status/templates.js.map +1 -0
  321. package/dist/workflow/types.d.ts +178 -0
  322. package/dist/workflow/types.d.ts.map +1 -0
  323. package/dist/workflow/types.js +25 -0
  324. package/dist/workflow/types.js.map +1 -0
  325. package/package.json +1 -1
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Skill Export Service
3
+ *
4
+ * Export skills from .context/skills to AI tool skill directories.
5
+ */
6
+ import { BaseDependencies, OperationResult } from '../shared';
7
+ export type SkillExportServiceDependencies = BaseDependencies;
8
+ export interface SkillExportTarget {
9
+ name: string;
10
+ path: string;
11
+ description: string;
12
+ }
13
+ export interface SkillExportOptions {
14
+ targets?: string[];
15
+ preset?: string;
16
+ force?: boolean;
17
+ dryRun?: boolean;
18
+ verbose?: boolean;
19
+ /** Only export specific skills */
20
+ skills?: string[];
21
+ /** Include built-in skills even if not scaffolded */
22
+ includeBuiltIn?: boolean;
23
+ }
24
+ export interface SkillExportResult extends OperationResult {
25
+ targets: string[];
26
+ skillsExported: string[];
27
+ }
28
+ /**
29
+ * Skill export presets for different AI tools
30
+ */
31
+ export declare const SKILL_EXPORT_PRESETS: Record<string, SkillExportTarget[]>;
32
+ export declare class SkillExportService {
33
+ private deps;
34
+ constructor(deps: SkillExportServiceDependencies);
35
+ /**
36
+ * Export skills to AI tool directories
37
+ */
38
+ run(repoPath: string, options?: SkillExportOptions): Promise<SkillExportResult>;
39
+ /**
40
+ * Get skills to export
41
+ */
42
+ private getSkillsToExport;
43
+ /**
44
+ * Export to a single target
45
+ */
46
+ private exportToTarget;
47
+ /**
48
+ * Export a single skill to target directory
49
+ */
50
+ private exportSkill;
51
+ /**
52
+ * Generate SKILL.md content with frontmatter
53
+ */
54
+ private generateSkillContent;
55
+ /**
56
+ * Resolve export targets from options
57
+ */
58
+ private resolveTargets;
59
+ /**
60
+ * Get available presets
61
+ */
62
+ getAvailablePresets(): string[];
63
+ }
64
+ //# sourceMappingURL=skillExportService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skillExportService.d.ts","sourceRoot":"","sources":["../../../src/services/export/skillExportService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,gBAAgB,EAChB,eAAe,EAMhB,MAAM,WAAW,CAAC;AAGnB,MAAM,MAAM,8BAA8B,GAAG,gBAAgB,CAAC;AAE9D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,qDAAqD;IACrD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAWpE,CAAC;AAOF,qBAAa,kBAAkB;IACjB,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,8BAA8B;IAExD;;OAEG;IACG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA6CzF;;OAEG;YACW,iBAAiB;IAsC/B;;OAEG;YACW,cAAc;IAqC5B;;OAEG;YACW,WAAW;IAyCzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAkBtB;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;CAGhC"}
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ /**
3
+ * Skill Export Service
4
+ *
5
+ * Export skills from .context/skills to AI tool skill directories.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.SkillExportService = exports.SKILL_EXPORT_PRESETS = void 0;
42
+ const path = __importStar(require("path"));
43
+ const fs = __importStar(require("fs-extra"));
44
+ const shared_1 = require("../shared");
45
+ const skills_1 = require("../../workflow/skills");
46
+ /**
47
+ * Skill export presets for different AI tools
48
+ */
49
+ exports.SKILL_EXPORT_PRESETS = {
50
+ claude: [
51
+ { name: 'claude-skills', path: '.claude/skills', description: 'Claude Code skills directory' },
52
+ ],
53
+ gemini: [
54
+ { name: 'gemini-skills', path: '.gemini/skills', description: 'Gemini CLI skills directory' },
55
+ ],
56
+ codex: [
57
+ { name: 'codex-skills', path: '.codex/skills', description: 'Codex CLI skills directory' },
58
+ ],
59
+ all: [], // Populated dynamically below
60
+ };
61
+ // Populate 'all' preset
62
+ exports.SKILL_EXPORT_PRESETS.all = Object.entries(exports.SKILL_EXPORT_PRESETS)
63
+ .filter(([key]) => key !== 'all')
64
+ .flatMap(([, targets]) => targets);
65
+ class SkillExportService {
66
+ constructor(deps) {
67
+ this.deps = deps;
68
+ }
69
+ /**
70
+ * Export skills to AI tool directories
71
+ */
72
+ async run(repoPath, options = {}) {
73
+ const absolutePath = path.resolve(repoPath);
74
+ const result = {
75
+ ...(0, shared_1.createEmptyResult)(),
76
+ targets: [],
77
+ skillsExported: [],
78
+ };
79
+ // Determine targets
80
+ const targets = this.resolveTargets(options);
81
+ if (targets.length === 0) {
82
+ this.deps.ui.displayError('No export targets specified');
83
+ return result;
84
+ }
85
+ // Get skills to export
86
+ const skills = await this.getSkillsToExport(absolutePath, options);
87
+ if (skills.length === 0) {
88
+ this.deps.ui.displayWarning('No skills found to export');
89
+ return result;
90
+ }
91
+ // Export to each target
92
+ for (const target of targets) {
93
+ await this.exportToTarget(absolutePath, target, skills, options, result);
94
+ }
95
+ // Display summary
96
+ if (!options.dryRun && result.filesCreated > 0) {
97
+ this.deps.ui.displaySuccess(`Exported ${result.skillsExported.length} skills to ${result.targets.length} targets`);
98
+ }
99
+ if (options.verbose) {
100
+ (0, shared_1.displayOperationSummary)(result, {
101
+ dryRun: options.dryRun,
102
+ labels: { created: 'Exported' },
103
+ });
104
+ }
105
+ return result;
106
+ }
107
+ /**
108
+ * Get skills to export
109
+ */
110
+ async getSkillsToExport(repoPath, options) {
111
+ const registry = (0, skills_1.createSkillRegistry)(repoPath);
112
+ const discovered = await registry.discoverAll();
113
+ let skills = discovered.all;
114
+ // If includeBuiltIn, add any built-in skills that aren't scaffolded
115
+ if (options.includeBuiltIn) {
116
+ const templates = (0, skills_1.getBuiltInSkillTemplates)();
117
+ const existingSlugs = new Set(skills.map(s => s.slug));
118
+ for (const skillType of skills_1.BUILT_IN_SKILLS) {
119
+ if (!existingSlugs.has(skillType)) {
120
+ const template = templates[skillType];
121
+ skills.push({
122
+ slug: skillType,
123
+ path: path.join(repoPath, '.context', 'skills', skillType, 'SKILL.md'),
124
+ metadata: {
125
+ name: skillType,
126
+ description: template.description,
127
+ phases: skills_1.SKILL_TO_PHASES[skillType],
128
+ },
129
+ content: template.content,
130
+ resources: [],
131
+ isBuiltIn: true,
132
+ });
133
+ }
134
+ }
135
+ }
136
+ // Filter by specific skills if provided
137
+ if (options.skills?.length) {
138
+ skills = skills.filter(s => options.skills.includes(s.slug));
139
+ }
140
+ return skills;
141
+ }
142
+ /**
143
+ * Export to a single target
144
+ */
145
+ async exportToTarget(repoPath, target, skills, options, result) {
146
+ const targetPath = path.join(repoPath, target.path);
147
+ try {
148
+ this.deps.ui.startSpinner(`Exporting skills to ${target.name}...`);
149
+ if (options.dryRun) {
150
+ this.deps.ui.updateSpinner(`[DRY-RUN] Would export to ${targetPath}`, 'success');
151
+ result.filesSkipped++;
152
+ this.deps.ui.stopSpinner();
153
+ return;
154
+ }
155
+ // Create target directory
156
+ await (0, shared_1.ensureDirectory)(targetPath);
157
+ // Export each skill
158
+ for (const skill of skills) {
159
+ await this.exportSkill(targetPath, skill, options, result);
160
+ }
161
+ result.targets.push(targetPath);
162
+ this.deps.ui.updateSpinner(`Exported to ${targetPath}`, 'success');
163
+ }
164
+ catch (error) {
165
+ (0, shared_1.addError)(result, target.name, error);
166
+ this.deps.ui.updateSpinner(`Failed to export to ${target.name}`, 'fail');
167
+ }
168
+ finally {
169
+ this.deps.ui.stopSpinner();
170
+ }
171
+ }
172
+ /**
173
+ * Export a single skill to target directory
174
+ */
175
+ async exportSkill(targetPath, skill, options, result) {
176
+ const skillDir = path.join(targetPath, skill.slug);
177
+ const skillFile = path.join(skillDir, 'SKILL.md');
178
+ // Check if exists and force not set
179
+ if (await (0, shared_1.pathExists)(skillFile) && !options.force) {
180
+ result.filesSkipped++;
181
+ return;
182
+ }
183
+ // Create skill directory
184
+ await (0, shared_1.ensureDirectory)(skillDir);
185
+ // Generate SKILL.md content
186
+ const content = this.generateSkillContent(skill);
187
+ await fs.writeFile(skillFile, content, 'utf-8');
188
+ // Copy resources if any
189
+ for (const resource of skill.resources) {
190
+ const relativePath = path.relative(path.dirname(skill.path), resource);
191
+ const destPath = path.join(skillDir, relativePath);
192
+ await (0, shared_1.ensureDirectory)(path.dirname(destPath));
193
+ try {
194
+ await fs.copy(resource, destPath);
195
+ }
196
+ catch {
197
+ // Skip if resource can't be copied
198
+ }
199
+ }
200
+ result.filesCreated++;
201
+ if (!result.skillsExported.includes(skill.slug)) {
202
+ result.skillsExported.push(skill.slug);
203
+ }
204
+ }
205
+ /**
206
+ * Generate SKILL.md content with frontmatter
207
+ */
208
+ generateSkillContent(skill) {
209
+ return (0, skills_1.wrapWithFrontmatter)(skill.metadata, skill.content);
210
+ }
211
+ /**
212
+ * Resolve export targets from options
213
+ */
214
+ resolveTargets(options) {
215
+ if (options.preset) {
216
+ const preset = exports.SKILL_EXPORT_PRESETS[options.preset.toLowerCase()];
217
+ if (preset)
218
+ return preset;
219
+ }
220
+ if (options.targets?.length) {
221
+ return options.targets.map((t) => ({
222
+ name: path.basename(t),
223
+ path: t,
224
+ description: 'Custom target',
225
+ }));
226
+ }
227
+ // Default: export to all supported tools
228
+ return exports.SKILL_EXPORT_PRESETS.all;
229
+ }
230
+ /**
231
+ * Get available presets
232
+ */
233
+ getAvailablePresets() {
234
+ return Object.keys(exports.SKILL_EXPORT_PRESETS);
235
+ }
236
+ }
237
+ exports.SkillExportService = SkillExportService;
238
+ //# sourceMappingURL=skillExportService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skillExportService.js","sourceRoot":"","sources":["../../../src/services/export/skillExportService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { CLIInterface } from '../../utils/cliUI';
2
+ import type { TranslateFn } from '../../utils/i18n';
3
+ import { LLMClientFactory } from '../llmClientFactory';
4
+ import type { LLMConfig } from '../../types';
5
+ export interface SkillFillCommandFlags {
6
+ output?: string;
7
+ skills?: string[];
8
+ force?: boolean;
9
+ verbose?: boolean;
10
+ limit?: number;
11
+ model?: string;
12
+ provider?: LLMConfig['provider'];
13
+ apiKey?: string;
14
+ baseUrl?: string;
15
+ /** Use pre-computed semantic context instead of tool-based exploration */
16
+ semantic?: boolean;
17
+ /** Enable LSP for deeper semantic analysis */
18
+ useLsp?: boolean;
19
+ }
20
+ interface SkillFillServiceDependencies {
21
+ ui: CLIInterface;
22
+ t: TranslateFn;
23
+ version: string;
24
+ defaultModel: string;
25
+ llmClientFactory?: typeof LLMClientFactory;
26
+ }
27
+ export interface SkillFillResult {
28
+ filled: string[];
29
+ skipped: string[];
30
+ failed: Array<{
31
+ skill: string;
32
+ error: string;
33
+ }>;
34
+ model: string;
35
+ }
36
+ export declare class SkillFillService {
37
+ private readonly ui;
38
+ private readonly t;
39
+ private readonly version;
40
+ private readonly defaultModel;
41
+ private readonly llmClientFactory;
42
+ constructor(dependencies: SkillFillServiceDependencies);
43
+ run(repoPath: string, rawOptions: SkillFillCommandFlags): Promise<SkillFillResult>;
44
+ private loadContextDocs;
45
+ private fillSkill;
46
+ private printSkillFillSummary;
47
+ private ensureTrailingNewline;
48
+ }
49
+ export {};
50
+ //# sourceMappingURL=skillFillService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skillFillService.d.ts","sourceRoot":"","sources":["../../../src/services/fill/skillFillService.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAkBD,UAAU,4BAA4B;IACpC,EAAE,EAAE,YAAY,CAAC;IACjB,CAAC,EAAE,WAAW,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,CAAC;CAC5C;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAe;IAClC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAc;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA0B;gBAE/C,YAAY,EAAE,4BAA4B;IAQhD,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;YA4I1E,eAAe;YAuCf,SAAS;IAmDvB,OAAO,CAAC,qBAAqB;IA6B7B,OAAO,CAAC,qBAAqB;CAG9B"}
@@ -0,0 +1,254 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.SkillFillService = void 0;
37
+ const path = __importStar(require("path"));
38
+ const fs = __importStar(require("fs-extra"));
39
+ const glob_1 = require("glob");
40
+ const theme_1 = require("../../utils/theme");
41
+ const llmClientFactory_1 = require("../llmClientFactory");
42
+ const skillAgent_1 = require("../ai/agents/skillAgent");
43
+ const llmConfig_1 = require("../shared/llmConfig");
44
+ const skills_1 = require("../../workflow/skills");
45
+ class SkillFillService {
46
+ constructor(dependencies) {
47
+ this.ui = dependencies.ui;
48
+ this.t = dependencies.t;
49
+ this.version = dependencies.version;
50
+ this.defaultModel = dependencies.defaultModel;
51
+ this.llmClientFactory = dependencies.llmClientFactory ?? llmClientFactory_1.LLMClientFactory;
52
+ }
53
+ async run(repoPath, rawOptions) {
54
+ const resolvedRepo = path.resolve(repoPath);
55
+ const outputDir = path.resolve(rawOptions.output || './.context');
56
+ const skillsDir = path.join(outputDir, 'skills');
57
+ // Skills directory must exist
58
+ const skillsExists = await fs.pathExists(skillsDir);
59
+ if (!skillsExists) {
60
+ throw new Error(this.t('errors.skill.missingScaffold'));
61
+ }
62
+ const llmConfig = await (0, llmConfig_1.resolveLlmConfig)({
63
+ rawOptions: {
64
+ provider: rawOptions.provider,
65
+ model: rawOptions.model,
66
+ apiKey: rawOptions.apiKey,
67
+ baseUrl: rawOptions.baseUrl
68
+ },
69
+ fallbackModel: this.defaultModel,
70
+ t: this.t,
71
+ factory: this.llmClientFactory
72
+ });
73
+ const options = {
74
+ repoPath: resolvedRepo,
75
+ outputDir,
76
+ skillsDir,
77
+ skills: rawOptions.skills,
78
+ force: Boolean(rawOptions.force),
79
+ verbose: Boolean(rawOptions.verbose),
80
+ limit: rawOptions.limit,
81
+ provider: llmConfig.provider,
82
+ model: llmConfig.model,
83
+ apiKey: llmConfig.apiKey,
84
+ baseUrl: llmConfig.baseUrl,
85
+ useSemanticContext: rawOptions.semantic !== false,
86
+ useLSP: Boolean(rawOptions.useLsp)
87
+ };
88
+ this.ui.displayWelcome(this.version);
89
+ this.ui.displayProjectInfo(options.repoPath, options.outputDir, `skill-fill:${options.provider}`);
90
+ // Step 1: Discover skills
91
+ this.ui.displayStep(1, 4, this.t('steps.skill.discover'));
92
+ this.ui.startSpinner(this.t('spinner.skill.discovering'));
93
+ const registry = (0, skills_1.createSkillRegistry)(options.repoPath);
94
+ const discovered = await registry.discoverAll();
95
+ // Filter to scaffolded skills only (or specified subset)
96
+ let targetSkills = discovered.all.filter(s => !s.isBuiltIn || fs.existsSync(path.join(skillsDir, s.slug, 'SKILL.md')));
97
+ // If specific skills requested, filter further
98
+ if (options.skills && options.skills.length > 0) {
99
+ targetSkills = targetSkills.filter(s => options.skills.includes(s.slug));
100
+ }
101
+ // Apply limit
102
+ if (options.limit && options.limit > 0) {
103
+ targetSkills = targetSkills.slice(0, options.limit);
104
+ }
105
+ this.ui.updateSpinner(this.t('spinner.skill.discovered', { count: targetSkills.length }), 'success');
106
+ if (targetSkills.length === 0) {
107
+ this.ui.displayWarning(this.t('warnings.skill.noTargets'));
108
+ return {
109
+ filled: [],
110
+ skipped: [],
111
+ failed: [],
112
+ model: options.model
113
+ };
114
+ }
115
+ // Step 2: Load docs and agents context
116
+ this.ui.displayStep(2, 4, this.t('steps.skill.loadContext'));
117
+ this.ui.startSpinner(this.t('spinner.skill.loadingContext'));
118
+ const { docsContext, agentsContext } = await this.loadContextDocs(options.repoPath, options.outputDir);
119
+ this.ui.updateSpinner(this.t('spinner.skill.contextLoaded', {
120
+ docsSize: docsContext.length,
121
+ agentsSize: agentsContext.length
122
+ }), 'success');
123
+ // Step 3: Fill each skill
124
+ this.ui.displayStep(3, 4, this.t('steps.skill.fillSkills', { count: targetSkills.length, model: options.model }));
125
+ const result = {
126
+ filled: [],
127
+ skipped: [],
128
+ failed: [],
129
+ model: options.model
130
+ };
131
+ const callbacks = this.ui.createAgentCallbacks();
132
+ const llmConfigForAgent = {
133
+ apiKey: options.apiKey,
134
+ model: options.model,
135
+ provider: options.provider,
136
+ baseUrl: options.baseUrl
137
+ };
138
+ for (const skill of targetSkills) {
139
+ const skillPath = path.join(skillsDir, skill.slug, 'SKILL.md');
140
+ const skillResult = await this.fillSkill(skill.slug, skillPath, skill.content || '', llmConfigForAgent, docsContext, agentsContext, options, callbacks);
141
+ if (skillResult.status === 'filled') {
142
+ result.filled.push(skill.slug);
143
+ }
144
+ else if (skillResult.status === 'skipped') {
145
+ result.skipped.push(skill.slug);
146
+ }
147
+ else {
148
+ result.failed.push({ skill: skill.slug, error: skillResult.error || 'Unknown error' });
149
+ }
150
+ }
151
+ // Step 4: Summary
152
+ this.ui.displayStep(4, 4, this.t('steps.skill.summary'));
153
+ this.printSkillFillSummary(result, options.model);
154
+ return result;
155
+ }
156
+ async loadContextDocs(repoPath, outputDir) {
157
+ const docsDir = path.join(outputDir, 'docs');
158
+ const agentsDir = path.join(outputDir, 'agents');
159
+ let docsContext = '';
160
+ let agentsContext = '';
161
+ // Load key docs files
162
+ if (await fs.pathExists(docsDir)) {
163
+ const keyDocs = ['README.md', 'architecture.md', 'overview.md', 'development.md'];
164
+ for (const doc of keyDocs) {
165
+ const docPath = path.join(docsDir, doc);
166
+ if (await fs.pathExists(docPath)) {
167
+ const content = await fs.readFile(docPath, 'utf-8');
168
+ if (content.length > 100) { // Only include if has meaningful content
169
+ docsContext += `\n### ${doc}\n${content.slice(0, 2000)}\n`;
170
+ }
171
+ }
172
+ }
173
+ }
174
+ // Load key agent files
175
+ if (await fs.pathExists(agentsDir)) {
176
+ const agentFiles = await (0, glob_1.glob)('*.md', { cwd: agentsDir });
177
+ for (const agentFile of agentFiles.slice(0, 5)) { // Limit to 5 agents
178
+ const agentPath = path.join(agentsDir, agentFile);
179
+ const content = await fs.readFile(agentPath, 'utf-8');
180
+ if (content.length > 100) {
181
+ agentsContext += `\n### ${agentFile}\n${content.slice(0, 1500)}\n`;
182
+ }
183
+ }
184
+ }
185
+ return { docsContext, agentsContext };
186
+ }
187
+ async fillSkill(skillSlug, skillPath, existingContent, llmConfig, docsContext, agentsContext, options, callbacks) {
188
+ console.log(''); // Add spacing before agent output
189
+ try {
190
+ const skillAgent = new skillAgent_1.SkillAgent(llmConfig);
191
+ const result = await skillAgent.generateSkill({
192
+ repoPath: options.repoPath,
193
+ skillSlug,
194
+ existingContent,
195
+ docsContext,
196
+ agentsContext,
197
+ useSemanticContext: options.useSemanticContext,
198
+ useLSP: options.useLSP,
199
+ callbacks
200
+ });
201
+ if (!result.text || !result.text.trim()) {
202
+ console.log('');
203
+ this.ui.displayWarning(this.t('spinner.skill.noContent', { skill: skillSlug }));
204
+ return { status: 'skipped' };
205
+ }
206
+ // Ensure directory exists
207
+ await fs.ensureDir(path.dirname(skillPath));
208
+ // Write the result
209
+ await fs.writeFile(skillPath, this.ensureTrailingNewline(result.text));
210
+ console.log('');
211
+ this.ui.displaySuccess(this.t('spinner.skill.filled', { skill: skillSlug }));
212
+ return { status: 'filled' };
213
+ }
214
+ catch (error) {
215
+ console.log('');
216
+ this.ui.displayError(this.t('spinner.skill.failed', { skill: skillSlug }), error);
217
+ return {
218
+ status: 'failed',
219
+ error: error instanceof Error ? error.message : String(error)
220
+ };
221
+ }
222
+ }
223
+ printSkillFillSummary(result, model) {
224
+ console.log('');
225
+ console.log(theme_1.typography.separator());
226
+ console.log(theme_1.typography.header('Skill Fill Summary'));
227
+ console.log('');
228
+ console.log(theme_1.typography.labeledValue('Filled', result.filled.length.toString()));
229
+ console.log(theme_1.typography.labeledValue('Skipped', result.skipped.length.toString()));
230
+ console.log(theme_1.typography.labeledValue('Failed', result.failed.length.toString()));
231
+ console.log(theme_1.typography.labeledValue('Model', model));
232
+ if (result.filled.length > 0) {
233
+ console.log('');
234
+ console.log(theme_1.colors.success(`${theme_1.symbols.success} Filled skills:`));
235
+ for (const skill of result.filled) {
236
+ console.log(` ${theme_1.colors.primary(skill)}`);
237
+ }
238
+ }
239
+ if (result.failed.length > 0) {
240
+ console.log('');
241
+ console.log(theme_1.colors.error(`${theme_1.symbols.error} Failed skills:`));
242
+ for (const item of result.failed) {
243
+ console.log(` ${theme_1.colors.error(theme_1.symbols.error)} ${theme_1.colors.primary(item.skill)}`);
244
+ console.log(` ${theme_1.colors.secondaryDim(item.error)}`);
245
+ }
246
+ }
247
+ console.log('');
248
+ }
249
+ ensureTrailingNewline(content) {
250
+ return content.endsWith('\n') ? content : `${content}\n`;
251
+ }
252
+ }
253
+ exports.SkillFillService = SkillFillService;
254
+ //# sourceMappingURL=skillFillService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skillFillService.js","sourceRoot":"","sources":["../../../src/services/fill/skillFillService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { DetectionResult } from './types';
2
+ export declare class AgentsDetector {
3
+ /**
4
+ * Detect agent files in the repository and common locations
5
+ */
6
+ detectAgents(repoPath: string, autoDetect?: boolean): Promise<DetectionResult>;
7
+ /**
8
+ * Detect agents from specific source paths
9
+ */
10
+ detectFromPaths(sourcePaths: string[], repoPath: string): Promise<DetectionResult>;
11
+ }
12
+ //# sourceMappingURL=agentsDetector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentsDetector.d.ts","sourceRoot":"","sources":["../../../src/services/import/agentsDetector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,eAAe,EAAE,MAAM,SAAS,CAAC;AAG7D,qBAAa,cAAc;IACzB;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,OAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAsF1F;;OAEG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CA0DzF"}