@ai-coders/context 0.5.2 → 0.6.1
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/README.md +247 -12
- package/dist/generators/agents/agentGenerator.d.ts +3 -0
- package/dist/generators/agents/agentGenerator.d.ts.map +1 -1
- package/dist/generators/agents/agentGenerator.js +13 -7
- package/dist/generators/agents/agentGenerator.js.map +1 -1
- package/dist/generators/agents/templates/playbookTemplate.d.ts.map +1 -1
- package/dist/generators/agents/templates/playbookTemplate.js +3 -1
- package/dist/generators/agents/templates/playbookTemplate.js.map +1 -1
- package/dist/generators/documentation/codebaseMapGenerator.d.ts +98 -0
- package/dist/generators/documentation/codebaseMapGenerator.d.ts.map +1 -0
- package/dist/generators/documentation/codebaseMapGenerator.js +247 -0
- package/dist/generators/documentation/codebaseMapGenerator.js.map +1 -0
- package/dist/generators/documentation/documentationGenerator.d.ts +2 -0
- package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -1
- package/dist/generators/documentation/documentationGenerator.js +20 -1
- package/dist/generators/documentation/documentationGenerator.js.map +1 -1
- package/dist/generators/documentation/index.d.ts +2 -0
- package/dist/generators/documentation/index.d.ts.map +1 -1
- package/dist/generators/documentation/index.js +3 -1
- package/dist/generators/documentation/index.js.map +1 -1
- package/dist/generators/documentation/templates/architectureTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/architectureTemplate.js +2 -31
- package/dist/generators/documentation/templates/architectureTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/common.d.ts +4 -1
- package/dist/generators/documentation/templates/common.d.ts.map +1 -1
- package/dist/generators/documentation/templates/common.js +4 -2
- package/dist/generators/documentation/templates/common.js.map +1 -1
- package/dist/generators/plans/templates/planTemplate.d.ts.map +1 -1
- package/dist/generators/plans/templates/planTemplate.js +46 -2
- package/dist/generators/plans/templates/planTemplate.js.map +1 -1
- package/dist/generators/skills/index.d.ts +7 -0
- package/dist/generators/skills/index.d.ts.map +1 -0
- package/dist/generators/skills/index.js +15 -0
- package/dist/generators/skills/index.js.map +1 -0
- package/dist/generators/skills/skillGenerator.d.ts +53 -0
- package/dist/generators/skills/skillGenerator.d.ts.map +1 -0
- package/dist/generators/skills/skillGenerator.js +149 -0
- package/dist/generators/skills/skillGenerator.js.map +1 -0
- package/dist/generators/skills/templates/indexTemplate.d.ts +13 -0
- package/dist/generators/skills/templates/indexTemplate.d.ts.map +1 -0
- package/dist/generators/skills/templates/indexTemplate.js +102 -0
- package/dist/generators/skills/templates/indexTemplate.js.map +1 -0
- package/dist/generators/skills/templates/skillTemplate.d.ts +20 -0
- package/dist/generators/skills/templates/skillTemplate.d.ts.map +1 -0
- package/dist/generators/skills/templates/skillTemplate.js +85 -0
- package/dist/generators/skills/templates/skillTemplate.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1315 -43
- package/dist/index.js.map +1 -1
- package/dist/services/ai/agentEvents.d.ts +1 -1
- package/dist/services/ai/agentEvents.d.ts.map +1 -1
- package/dist/services/ai/agents/index.d.ts +2 -0
- package/dist/services/ai/agents/index.d.ts.map +1 -1
- package/dist/services/ai/agents/index.js +3 -1
- package/dist/services/ai/agents/index.js.map +1 -1
- package/dist/services/ai/agents/skillAgent.d.ts +49 -0
- package/dist/services/ai/agents/skillAgent.d.ts.map +1 -0
- package/dist/services/ai/agents/skillAgent.js +179 -0
- package/dist/services/ai/agents/skillAgent.js.map +1 -0
- package/dist/services/ai/prompts/index.d.ts +1 -1
- package/dist/services/ai/prompts/index.d.ts.map +1 -1
- package/dist/services/ai/prompts/index.js +2 -1
- package/dist/services/ai/prompts/index.js.map +1 -1
- package/dist/services/ai/prompts/sharedPrompts.d.ts +4 -0
- package/dist/services/ai/prompts/sharedPrompts.d.ts.map +1 -1
- package/dist/services/ai/prompts/sharedPrompts.js +33 -0
- package/dist/services/ai/prompts/sharedPrompts.js.map +1 -1
- package/dist/services/ai/schemas.d.ts +98 -1
- package/dist/services/ai/schemas.d.ts.map +1 -1
- package/dist/services/ai/schemas.js +61 -3
- package/dist/services/ai/schemas.js.map +1 -1
- package/dist/services/ai/toolRegistry.d.ts.map +1 -1
- package/dist/services/ai/toolRegistry.js +17 -0
- package/dist/services/ai/toolRegistry.js.map +1 -1
- package/dist/services/ai/tools/fillScaffoldingTool.d.ts +21 -4
- package/dist/services/ai/tools/fillScaffoldingTool.d.ts.map +1 -1
- package/dist/services/ai/tools/fillScaffoldingTool.js +17 -0
- package/dist/services/ai/tools/fillScaffoldingTool.js.map +1 -1
- package/dist/services/ai/tools/getCodebaseMapTool.d.ts +17 -0
- package/dist/services/ai/tools/getCodebaseMapTool.d.ts.map +1 -0
- package/dist/services/ai/tools/getCodebaseMapTool.js +115 -0
- package/dist/services/ai/tools/getCodebaseMapTool.js.map +1 -0
- package/dist/services/ai/tools/index.d.ts +3 -2
- package/dist/services/ai/tools/index.d.ts.map +1 -1
- package/dist/services/ai/tools/index.js +12 -3
- package/dist/services/ai/tools/index.js.map +1 -1
- package/dist/services/ai/tools/initializeContextTool.d.ts +22 -4
- package/dist/services/ai/tools/initializeContextTool.d.ts.map +1 -1
- package/dist/services/ai/tools/initializeContextTool.js +201 -16
- package/dist/services/ai/tools/initializeContextTool.js.map +1 -1
- package/dist/services/ai/tools/scaffoldPlanTool.d.ts +11 -0
- package/dist/services/ai/tools/scaffoldPlanTool.d.ts.map +1 -1
- package/dist/services/ai/tools/scaffoldPlanTool.js +79 -7
- package/dist/services/ai/tools/scaffoldPlanTool.js.map +1 -1
- package/dist/services/export/exportRulesService.d.ts +62 -0
- package/dist/services/export/exportRulesService.d.ts.map +1 -0
- package/dist/services/export/exportRulesService.js +242 -0
- package/dist/services/export/exportRulesService.js.map +1 -0
- package/dist/services/export/index.d.ts +5 -0
- package/dist/services/export/index.d.ts.map +1 -0
- package/dist/services/export/index.js +10 -0
- package/dist/services/export/index.js.map +1 -0
- package/dist/services/export/skillExportService.d.ts +64 -0
- package/dist/services/export/skillExportService.d.ts.map +1 -0
- package/dist/services/export/skillExportService.js +238 -0
- package/dist/services/export/skillExportService.js.map +1 -0
- package/dist/services/fill/skillFillService.d.ts +50 -0
- package/dist/services/fill/skillFillService.d.ts.map +1 -0
- package/dist/services/fill/skillFillService.js +254 -0
- package/dist/services/fill/skillFillService.js.map +1 -0
- package/dist/services/import/agentsDetector.d.ts +12 -0
- package/dist/services/import/agentsDetector.d.ts.map +1 -0
- package/dist/services/import/agentsDetector.js +183 -0
- package/dist/services/import/agentsDetector.js.map +1 -0
- package/dist/services/import/importAgentsService.d.ts +14 -0
- package/dist/services/import/importAgentsService.d.ts.map +1 -0
- package/dist/services/import/importAgentsService.js +195 -0
- package/dist/services/import/importAgentsService.js.map +1 -0
- package/dist/services/import/importRulesService.d.ts +17 -0
- package/dist/services/import/importRulesService.d.ts.map +1 -0
- package/dist/services/import/importRulesService.js +222 -0
- package/dist/services/import/importRulesService.js.map +1 -0
- package/dist/services/import/index.d.ts +7 -0
- package/dist/services/import/index.d.ts.map +1 -0
- package/dist/services/import/index.js +28 -0
- package/dist/services/import/index.js.map +1 -0
- package/dist/services/import/presets.d.ts +8 -0
- package/dist/services/import/presets.d.ts.map +1 -0
- package/dist/services/import/presets.js +176 -0
- package/dist/services/import/presets.js.map +1 -0
- package/dist/services/import/rulesDetector.d.ts +16 -0
- package/dist/services/import/rulesDetector.d.ts.map +1 -0
- package/dist/services/import/rulesDetector.js +278 -0
- package/dist/services/import/rulesDetector.js.map +1 -0
- package/dist/services/import/types.d.ts +72 -0
- package/dist/services/import/types.d.ts.map +1 -0
- package/dist/services/import/types.js +3 -0
- package/dist/services/import/types.js.map +1 -0
- package/dist/services/mcp/mcpServer.d.ts +24 -0
- package/dist/services/mcp/mcpServer.d.ts.map +1 -1
- package/dist/services/mcp/mcpServer.js +1651 -7
- package/dist/services/mcp/mcpServer.js.map +1 -1
- package/dist/services/quickSync/index.d.ts +3 -0
- package/dist/services/quickSync/index.d.ts.map +1 -0
- package/dist/services/quickSync/index.js +7 -0
- package/dist/services/quickSync/index.js.map +1 -0
- package/dist/services/quickSync/quickSyncService.d.ts +72 -0
- package/dist/services/quickSync/quickSyncService.d.ts.map +1 -0
- package/dist/services/quickSync/quickSyncService.js +268 -0
- package/dist/services/quickSync/quickSyncService.js.map +1 -0
- package/dist/services/report/index.d.ts +3 -0
- package/dist/services/report/index.d.ts.map +1 -0
- package/dist/services/report/index.js +6 -0
- package/dist/services/report/index.js.map +1 -0
- package/dist/services/report/reportService.d.ts +131 -0
- package/dist/services/report/reportService.d.ts.map +1 -0
- package/dist/services/report/reportService.js +372 -0
- package/dist/services/report/reportService.js.map +1 -0
- package/dist/services/semantic/contextBuilder.d.ts +8 -1
- package/dist/services/semantic/contextBuilder.d.ts.map +1 -1
- package/dist/services/semantic/contextBuilder.js +107 -20
- package/dist/services/semantic/contextBuilder.js.map +1 -1
- package/dist/services/shared/globPatterns.d.ts +48 -0
- package/dist/services/shared/globPatterns.d.ts.map +1 -0
- package/dist/services/shared/globPatterns.js +110 -0
- package/dist/services/shared/globPatterns.js.map +1 -0
- package/dist/services/shared/index.d.ts +10 -0
- package/dist/services/shared/index.d.ts.map +1 -0
- package/dist/services/shared/index.js +46 -0
- package/dist/services/shared/index.js.map +1 -0
- package/dist/services/shared/pathHelpers.d.ts +71 -0
- package/dist/services/shared/pathHelpers.d.ts.map +1 -0
- package/dist/services/shared/pathHelpers.js +162 -0
- package/dist/services/shared/pathHelpers.js.map +1 -0
- package/dist/services/shared/types.d.ts +74 -0
- package/dist/services/shared/types.d.ts.map +1 -0
- package/dist/services/shared/types.js +44 -0
- package/dist/services/shared/types.js.map +1 -0
- package/dist/services/shared/uiHelpers.d.ts +70 -0
- package/dist/services/shared/uiHelpers.d.ts.map +1 -0
- package/dist/services/shared/uiHelpers.js +131 -0
- package/dist/services/shared/uiHelpers.js.map +1 -0
- package/dist/services/stack/index.d.ts +6 -0
- package/dist/services/stack/index.d.ts.map +1 -0
- package/dist/services/stack/index.js +25 -0
- package/dist/services/stack/index.js.map +1 -0
- package/dist/services/stack/projectTypeClassifier.d.ts +59 -0
- package/dist/services/stack/projectTypeClassifier.d.ts.map +1 -0
- package/dist/services/stack/projectTypeClassifier.js +242 -0
- package/dist/services/stack/projectTypeClassifier.js.map +1 -0
- package/dist/services/stack/scaffoldFilter.d.ts +75 -0
- package/dist/services/stack/scaffoldFilter.d.ts.map +1 -0
- package/dist/services/stack/scaffoldFilter.js +222 -0
- package/dist/services/stack/scaffoldFilter.js.map +1 -0
- package/dist/services/stack/stackDetector.d.ts +43 -0
- package/dist/services/stack/stackDetector.d.ts.map +1 -0
- package/dist/services/stack/stackDetector.js +406 -0
- package/dist/services/stack/stackDetector.js.map +1 -0
- package/dist/services/start/index.d.ts +3 -0
- package/dist/services/start/index.d.ts.map +1 -0
- package/dist/services/start/index.js +6 -0
- package/dist/services/start/index.js.map +1 -0
- package/dist/services/start/startService.d.ts +64 -0
- package/dist/services/start/startService.d.ts.map +1 -0
- package/dist/services/start/startService.js +180 -0
- package/dist/services/start/startService.js.map +1 -0
- package/dist/services/sync/presets.d.ts.map +1 -1
- package/dist/services/sync/presets.js +16 -1
- package/dist/services/sync/presets.js.map +1 -1
- package/dist/services/sync/types.d.ts +1 -1
- package/dist/services/sync/types.d.ts.map +1 -1
- package/dist/services/workflow/autoAdvance.d.ts +38 -0
- package/dist/services/workflow/autoAdvance.d.ts.map +1 -0
- package/dist/services/workflow/autoAdvance.js +219 -0
- package/dist/services/workflow/autoAdvance.js.map +1 -0
- package/dist/services/workflow/index.d.ts +6 -0
- package/dist/services/workflow/index.d.ts.map +1 -0
- package/dist/services/workflow/index.js +11 -0
- package/dist/services/workflow/index.js.map +1 -0
- package/dist/services/workflow/workflowService.d.ts +98 -0
- package/dist/services/workflow/workflowService.d.ts.map +1 -0
- package/dist/services/workflow/workflowService.js +210 -0
- package/dist/services/workflow/workflowService.js.map +1 -0
- package/dist/utils/cliUI.d.ts +4 -0
- package/dist/utils/cliUI.d.ts.map +1 -1
- package/dist/utils/cliUI.js +31 -1
- package/dist/utils/cliUI.js.map +1 -1
- package/dist/utils/i18n.d.ts +202 -0
- package/dist/utils/i18n.d.ts.map +1 -1
- package/dist/utils/i18n.js +438 -2
- package/dist/utils/i18n.js.map +1 -1
- package/dist/utils/theme.d.ts +1 -0
- package/dist/utils/theme.d.ts.map +1 -1
- package/dist/utils/theme.js +1 -0
- package/dist/utils/theme.js.map +1 -1
- package/dist/workflow/agents/agentRegistry.d.ts +82 -0
- package/dist/workflow/agents/agentRegistry.d.ts.map +1 -0
- package/dist/workflow/agents/agentRegistry.js +205 -0
- package/dist/workflow/agents/agentRegistry.js.map +1 -0
- package/dist/workflow/agents/index.d.ts +7 -0
- package/dist/workflow/agents/index.d.ts.map +1 -0
- package/dist/workflow/agents/index.js +14 -0
- package/dist/workflow/agents/index.js.map +1 -0
- package/dist/workflow/collaboration.d.ts +110 -0
- package/dist/workflow/collaboration.d.ts.map +1 -0
- package/dist/workflow/collaboration.js +301 -0
- package/dist/workflow/collaboration.js.map +1 -0
- package/dist/workflow/index.d.ts +25 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +124 -0
- package/dist/workflow/index.js.map +1 -0
- package/dist/workflow/orchestration/agentOrchestrator.d.ts +68 -0
- package/dist/workflow/orchestration/agentOrchestrator.d.ts.map +1 -0
- package/dist/workflow/orchestration/agentOrchestrator.js +280 -0
- package/dist/workflow/orchestration/agentOrchestrator.js.map +1 -0
- package/dist/workflow/orchestration/documentLinker.d.ts +100 -0
- package/dist/workflow/orchestration/documentLinker.d.ts.map +1 -0
- package/dist/workflow/orchestration/documentLinker.js +266 -0
- package/dist/workflow/orchestration/documentLinker.js.map +1 -0
- package/dist/workflow/orchestration/index.d.ts +9 -0
- package/dist/workflow/orchestration/index.d.ts.map +1 -0
- package/dist/workflow/orchestration/index.js +25 -0
- package/dist/workflow/orchestration/index.js.map +1 -0
- package/dist/workflow/orchestrator.d.ts +99 -0
- package/dist/workflow/orchestrator.d.ts.map +1 -0
- package/dist/workflow/orchestrator.js +217 -0
- package/dist/workflow/orchestrator.js.map +1 -0
- package/dist/workflow/phases.d.ts +64 -0
- package/dist/workflow/phases.d.ts.map +1 -0
- package/dist/workflow/phases.js +151 -0
- package/dist/workflow/phases.js.map +1 -0
- package/dist/workflow/plans/index.d.ts +8 -0
- package/dist/workflow/plans/index.d.ts.map +1 -0
- package/dist/workflow/plans/index.js +27 -0
- package/dist/workflow/plans/index.js.map +1 -0
- package/dist/workflow/plans/planLinker.d.ts +119 -0
- package/dist/workflow/plans/planLinker.d.ts.map +1 -0
- package/dist/workflow/plans/planLinker.js +499 -0
- package/dist/workflow/plans/planLinker.js.map +1 -0
- package/dist/workflow/plans/types.d.ts +167 -0
- package/dist/workflow/plans/types.d.ts.map +1 -0
- package/dist/workflow/plans/types.js +25 -0
- package/dist/workflow/plans/types.js.map +1 -0
- package/dist/workflow/prevcConfig.d.ts +27 -0
- package/dist/workflow/prevcConfig.d.ts.map +1 -0
- package/dist/workflow/prevcConfig.js +153 -0
- package/dist/workflow/prevcConfig.js.map +1 -0
- package/dist/workflow/roles.d.ts +44 -0
- package/dist/workflow/roles.d.ts.map +1 -0
- package/dist/workflow/roles.js +112 -0
- package/dist/workflow/roles.js.map +1 -0
- package/dist/workflow/scaling.d.ts +44 -0
- package/dist/workflow/scaling.d.ts.map +1 -0
- package/dist/workflow/scaling.js +224 -0
- package/dist/workflow/scaling.js.map +1 -0
- package/dist/workflow/skills/frontmatter.d.ts +23 -0
- package/dist/workflow/skills/frontmatter.d.ts.map +1 -0
- package/dist/workflow/skills/frontmatter.js +100 -0
- package/dist/workflow/skills/frontmatter.js.map +1 -0
- package/dist/workflow/skills/index.d.ts +10 -0
- package/dist/workflow/skills/index.d.ts.map +1 -0
- package/dist/workflow/skills/index.js +22 -0
- package/dist/workflow/skills/index.js.map +1 -0
- package/dist/workflow/skills/skillRegistry.d.ts +60 -0
- package/dist/workflow/skills/skillRegistry.d.ts.map +1 -0
- package/dist/workflow/skills/skillRegistry.js +257 -0
- package/dist/workflow/skills/skillRegistry.js.map +1 -0
- package/dist/workflow/skills/skillTemplates.d.ts +16 -0
- package/dist/workflow/skills/skillTemplates.d.ts.map +1 -0
- package/dist/workflow/skills/skillTemplates.js +610 -0
- package/dist/workflow/skills/skillTemplates.js.map +1 -0
- package/dist/workflow/skills/types.d.ts +72 -0
- package/dist/workflow/skills/types.d.ts.map +1 -0
- package/dist/workflow/skills/types.js +48 -0
- package/dist/workflow/skills/types.js.map +1 -0
- package/dist/workflow/status/statusManager.d.ts +84 -0
- package/dist/workflow/status/statusManager.d.ts.map +1 -0
- package/dist/workflow/status/statusManager.js +402 -0
- package/dist/workflow/status/statusManager.js.map +1 -0
- package/dist/workflow/status/templates.d.ts +40 -0
- package/dist/workflow/status/templates.d.ts.map +1 -0
- package/dist/workflow/status/templates.js +148 -0
- package/dist/workflow/status/templates.js.map +1 -0
- package/dist/workflow/types.d.ts +178 -0
- package/dist/workflow/types.d.ts.map +1 -0
- package/dist/workflow/types.js +25 -0
- package/dist/workflow/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -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"}
|