@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
|
@@ -39,17 +39,29 @@ const path = __importStar(require("path"));
|
|
|
39
39
|
const fs = __importStar(require("fs-extra"));
|
|
40
40
|
const schemas_1 = require("../schemas");
|
|
41
41
|
const planGenerator_1 = require("../../../generators/plans/planGenerator");
|
|
42
|
+
const stack_1 = require("../../stack");
|
|
42
43
|
exports.scaffoldPlanTool = (0, ai_1.tool)({
|
|
43
|
-
description:
|
|
44
|
+
description: `Create a plan template in .context/plans/.
|
|
45
|
+
When autoFill is true (default), returns semantic context and fill instructions.
|
|
46
|
+
The AI agent MUST then fill the plan with specific implementation details.`,
|
|
44
47
|
inputSchema: schemas_1.ScaffoldPlanInputSchema,
|
|
45
48
|
execute: async (input) => {
|
|
46
|
-
const { planName, repoPath: customRepoPath, outputDir: customOutputDir, title, summary, semantic = true } = input;
|
|
49
|
+
const { planName, repoPath: customRepoPath, outputDir: customOutputDir, title, summary, semantic = true, autoFill = true, } = input;
|
|
47
50
|
const repoPath = customRepoPath ? path.resolve(customRepoPath) : process.cwd();
|
|
48
51
|
const outputDir = customOutputDir
|
|
49
52
|
? path.resolve(customOutputDir)
|
|
50
53
|
: path.resolve(repoPath, '.context');
|
|
51
54
|
try {
|
|
55
|
+
// Detect project type for intelligent agent/doc filtering
|
|
56
|
+
const stackDetector = new stack_1.StackDetector();
|
|
57
|
+
const stackInfo = await stackDetector.detect(repoPath);
|
|
58
|
+
const classification = (0, stack_1.classifyProject)(stackInfo);
|
|
59
|
+
// Get filtered agents and docs based on project type
|
|
60
|
+
const filteredAgents = (0, stack_1.getAgentsForProjectType)(classification.primaryType);
|
|
61
|
+
const filteredDocs = (0, stack_1.getDocsForProjectType)(classification.primaryType);
|
|
52
62
|
const planGenerator = new planGenerator_1.PlanGenerator();
|
|
63
|
+
// When autoFill is true, enable semantic analysis for richer content
|
|
64
|
+
const enableSemantic = autoFill && semantic;
|
|
53
65
|
const result = await planGenerator.generatePlan({
|
|
54
66
|
planName,
|
|
55
67
|
outputDir,
|
|
@@ -57,17 +69,28 @@ exports.scaffoldPlanTool = (0, ai_1.tool)({
|
|
|
57
69
|
summary,
|
|
58
70
|
force: true, // MCP calls should always overwrite (non-interactive)
|
|
59
71
|
verbose: false,
|
|
60
|
-
semantic,
|
|
61
|
-
projectPath:
|
|
62
|
-
selectedAgentTypes:
|
|
63
|
-
selectedDocKeys:
|
|
72
|
+
semantic: enableSemantic,
|
|
73
|
+
projectPath: enableSemantic ? repoPath : undefined,
|
|
74
|
+
selectedAgentTypes: filteredAgents,
|
|
75
|
+
selectedDocKeys: filteredDocs,
|
|
64
76
|
});
|
|
65
77
|
// Read the generated content to return
|
|
66
78
|
const planContent = await fs.readFile(result.planPath, 'utf-8');
|
|
79
|
+
// Build fill instructions for the plan
|
|
80
|
+
const fillInstructions = autoFill ? buildPlanFillInstructions(planName, result.planPath, summary) : undefined;
|
|
67
81
|
return {
|
|
68
82
|
success: true,
|
|
69
83
|
planPath: result.planPath,
|
|
70
|
-
planContent
|
|
84
|
+
planContent,
|
|
85
|
+
classification: {
|
|
86
|
+
projectType: classification.primaryType,
|
|
87
|
+
confidence: classification.confidence,
|
|
88
|
+
reasoning: classification.reasoning,
|
|
89
|
+
},
|
|
90
|
+
fillInstructions,
|
|
91
|
+
instructions: autoFill
|
|
92
|
+
? 'IMPORTANT: Review the generated plan and fill in the specific implementation details. The plan template has been created with codebase context - you must now customize it with the actual tasks, phases, and deliverables for this feature/project.'
|
|
93
|
+
: 'The plan template has been created. You can customize it manually or use fillScaffolding to get suggested content.',
|
|
71
94
|
};
|
|
72
95
|
}
|
|
73
96
|
catch (error) {
|
|
@@ -78,4 +101,53 @@ exports.scaffoldPlanTool = (0, ai_1.tool)({
|
|
|
78
101
|
}
|
|
79
102
|
}
|
|
80
103
|
});
|
|
104
|
+
/**
|
|
105
|
+
* Build fill instructions for a plan file
|
|
106
|
+
*/
|
|
107
|
+
function buildPlanFillInstructions(planName, planPath, summary) {
|
|
108
|
+
const lines = [];
|
|
109
|
+
lines.push('# Plan Fill Instructions');
|
|
110
|
+
lines.push('');
|
|
111
|
+
lines.push(`A plan template has been created at: \`${planPath}\``);
|
|
112
|
+
lines.push('');
|
|
113
|
+
lines.push('You MUST now fill in the following sections with specific implementation details:');
|
|
114
|
+
lines.push('');
|
|
115
|
+
lines.push('## Required Sections to Fill');
|
|
116
|
+
lines.push('');
|
|
117
|
+
lines.push('### 1. Goal & Scope');
|
|
118
|
+
lines.push('- Define the specific objective of this plan');
|
|
119
|
+
lines.push('- List what is included and excluded from scope');
|
|
120
|
+
if (summary) {
|
|
121
|
+
lines.push(`- Initial summary provided: "${summary}"`);
|
|
122
|
+
}
|
|
123
|
+
lines.push('');
|
|
124
|
+
lines.push('### 2. Phases');
|
|
125
|
+
lines.push('- Break down the implementation into logical phases');
|
|
126
|
+
lines.push('- Each phase should have:');
|
|
127
|
+
lines.push(' - Clear objective');
|
|
128
|
+
lines.push(' - Specific steps with owners (agent types)');
|
|
129
|
+
lines.push(' - Deliverables and evidence of completion');
|
|
130
|
+
lines.push(' - Git commit checkpoint message');
|
|
131
|
+
lines.push('');
|
|
132
|
+
lines.push('### 3. Agent Lineup');
|
|
133
|
+
lines.push('- Assign specific agents to phases');
|
|
134
|
+
lines.push('- Define focus areas for each agent');
|
|
135
|
+
lines.push('');
|
|
136
|
+
lines.push('### 4. Documentation Touchpoints');
|
|
137
|
+
lines.push('- List which docs need to be updated');
|
|
138
|
+
lines.push('- Specify which sections and why');
|
|
139
|
+
lines.push('');
|
|
140
|
+
lines.push('### 5. Success Criteria');
|
|
141
|
+
lines.push('- Define measurable success criteria');
|
|
142
|
+
lines.push('- Include testing and validation requirements');
|
|
143
|
+
lines.push('');
|
|
144
|
+
lines.push('## Action Required');
|
|
145
|
+
lines.push('');
|
|
146
|
+
lines.push('1. Read the generated plan template');
|
|
147
|
+
lines.push('2. Fill in each section with specific, actionable content');
|
|
148
|
+
lines.push('3. Write the completed plan back to the file');
|
|
149
|
+
lines.push('');
|
|
150
|
+
lines.push('DO NOT leave placeholder text. Each section must have concrete, implementation-ready content.');
|
|
151
|
+
return lines.join('\n');
|
|
152
|
+
}
|
|
81
153
|
//# sourceMappingURL=scaffoldPlanTool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffoldPlanTool.js","sourceRoot":"","sources":["../../../../src/services/ai/tools/scaffoldPlanTool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAA0B;AAC1B,2CAA6B;AAC7B,6CAA+B;AAC/B,wCAA6E;AAC7E,2EAAwE;
|
|
1
|
+
{"version":3,"file":"scaffoldPlanTool.js","sourceRoot":"","sources":["../../../../src/services/ai/tools/scaffoldPlanTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export Rules Service
|
|
3
|
+
*
|
|
4
|
+
* Bidirectional sync: export rules from .context to AI tool directories.
|
|
5
|
+
*/
|
|
6
|
+
import { BaseDependencies, OperationResult } from '../shared';
|
|
7
|
+
export type ExportRulesServiceDependencies = BaseDependencies;
|
|
8
|
+
export interface ExportTarget {
|
|
9
|
+
name: string;
|
|
10
|
+
path: string;
|
|
11
|
+
format: 'single' | 'directory';
|
|
12
|
+
filename?: string;
|
|
13
|
+
description: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ExportOptions {
|
|
16
|
+
source?: string;
|
|
17
|
+
targets?: string[];
|
|
18
|
+
preset?: string;
|
|
19
|
+
force?: boolean;
|
|
20
|
+
dryRun?: boolean;
|
|
21
|
+
verbose?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface ExportResult extends OperationResult {
|
|
24
|
+
targets: string[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Export presets for different AI tools
|
|
28
|
+
*/
|
|
29
|
+
export declare const EXPORT_PRESETS: Record<string, ExportTarget[]>;
|
|
30
|
+
export declare class ExportRulesService {
|
|
31
|
+
private deps;
|
|
32
|
+
constructor(deps: ExportRulesServiceDependencies);
|
|
33
|
+
/**
|
|
34
|
+
* Export rules to AI tool directories
|
|
35
|
+
*/
|
|
36
|
+
run(repoPath: string, options?: ExportOptions): Promise<ExportResult>;
|
|
37
|
+
/**
|
|
38
|
+
* Export to a single target
|
|
39
|
+
*/
|
|
40
|
+
private exportToTarget;
|
|
41
|
+
/**
|
|
42
|
+
* Resolve export targets from options
|
|
43
|
+
*/
|
|
44
|
+
private resolveTargets;
|
|
45
|
+
/**
|
|
46
|
+
* Read source rules from .context/docs
|
|
47
|
+
*/
|
|
48
|
+
private readSourceRules;
|
|
49
|
+
/**
|
|
50
|
+
* Combine multiple rules into a single content block
|
|
51
|
+
*/
|
|
52
|
+
private combineRules;
|
|
53
|
+
/**
|
|
54
|
+
* Export rules to a directory (multiple files)
|
|
55
|
+
*/
|
|
56
|
+
private exportToDirectory;
|
|
57
|
+
/**
|
|
58
|
+
* Get available presets
|
|
59
|
+
*/
|
|
60
|
+
getAvailablePresets(): string[];
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=exportRulesService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportRulesService.d.ts","sourceRoot":"","sources":["../../../src/services/export/exportRulesService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,gBAAgB,EAChB,eAAe,EAUhB,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,8BAA8B,GAAG,gBAAgB,CAAC;AAE9D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,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;CACnB;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAQD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAkBzD,CAAC;AAOF,qBAAa,kBAAkB;IACjB,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,8BAA8B;IAExD;;OAEG;IACG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAgD/E;;OAEG;YACW,cAAc;IA6D5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAuBtB;;OAEG;YACW,eAAe;IAgC7B;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;YACW,iBAAiB;IAS/B;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;CAGhC"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Export Rules Service
|
|
4
|
+
*
|
|
5
|
+
* Bidirectional sync: export rules from .context to AI tool 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.ExportRulesService = exports.EXPORT_PRESETS = void 0;
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
const fs = __importStar(require("fs-extra"));
|
|
44
|
+
const shared_1 = require("../shared");
|
|
45
|
+
/**
|
|
46
|
+
* Export presets for different AI tools
|
|
47
|
+
*/
|
|
48
|
+
exports.EXPORT_PRESETS = {
|
|
49
|
+
cursor: [
|
|
50
|
+
{ name: 'cursorrules', path: '.cursorrules', format: 'single', description: 'Cursor AI rules file' },
|
|
51
|
+
{ name: 'cursor-rules-dir', path: '.cursor/rules', format: 'directory', description: 'Cursor AI rules directory' },
|
|
52
|
+
],
|
|
53
|
+
claude: [
|
|
54
|
+
{ name: 'claude-md', path: 'CLAUDE.md', format: 'single', description: 'Claude Code main rules file' },
|
|
55
|
+
],
|
|
56
|
+
github: [
|
|
57
|
+
{ name: 'copilot-instructions', path: '.github/copilot-instructions.md', format: 'single', description: 'GitHub Copilot instructions' },
|
|
58
|
+
],
|
|
59
|
+
windsurf: [
|
|
60
|
+
{ name: 'windsurf-rules-dir', path: '.windsurf/rules', format: 'single', description: 'Windsurf rules file' },
|
|
61
|
+
],
|
|
62
|
+
agents: [
|
|
63
|
+
{ name: 'agents-md', path: 'AGENTS.md', format: 'single', description: 'Universal AGENTS.md file' },
|
|
64
|
+
],
|
|
65
|
+
all: [], // Populated dynamically below
|
|
66
|
+
};
|
|
67
|
+
// Populate 'all' preset
|
|
68
|
+
exports.EXPORT_PRESETS.all = Object.entries(exports.EXPORT_PRESETS)
|
|
69
|
+
.filter(([key]) => key !== 'all')
|
|
70
|
+
.flatMap(([, targets]) => targets);
|
|
71
|
+
class ExportRulesService {
|
|
72
|
+
constructor(deps) {
|
|
73
|
+
this.deps = deps;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Export rules to AI tool directories
|
|
77
|
+
*/
|
|
78
|
+
async run(repoPath, options = {}) {
|
|
79
|
+
const absolutePath = path.resolve(repoPath);
|
|
80
|
+
const sourcePath = (0, shared_1.resolveAbsolutePath)(options.source, '.context/docs', absolutePath);
|
|
81
|
+
const result = {
|
|
82
|
+
...(0, shared_1.createEmptyResult)(),
|
|
83
|
+
targets: [],
|
|
84
|
+
};
|
|
85
|
+
// Determine targets
|
|
86
|
+
const targets = this.resolveTargets(options);
|
|
87
|
+
if (targets.length === 0) {
|
|
88
|
+
this.deps.ui.displayError(this.deps.t('errors.export.noTargets'));
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
// Read source rules
|
|
92
|
+
const rules = await this.readSourceRules(sourcePath);
|
|
93
|
+
if (rules.length === 0) {
|
|
94
|
+
this.deps.ui.displayError(this.deps.t('errors.export.noRules'));
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
// Combine rules into single content
|
|
98
|
+
const combinedContent = this.combineRules(rules);
|
|
99
|
+
// Export to each target
|
|
100
|
+
for (const target of targets) {
|
|
101
|
+
await this.exportToTarget(absolutePath, target, rules, combinedContent, options, result);
|
|
102
|
+
}
|
|
103
|
+
// Display summary
|
|
104
|
+
if (!options.dryRun && result.filesCreated > 0) {
|
|
105
|
+
this.deps.ui.displaySuccess(this.deps.t('success.export.completed', { count: result.filesCreated }));
|
|
106
|
+
}
|
|
107
|
+
if (options.verbose) {
|
|
108
|
+
(0, shared_1.displayOperationSummary)(result, {
|
|
109
|
+
dryRun: options.dryRun,
|
|
110
|
+
labels: { created: 'Exported' },
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return result;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Export to a single target
|
|
117
|
+
*/
|
|
118
|
+
async exportToTarget(repoPath, target, rules, combinedContent, options, result) {
|
|
119
|
+
const targetPath = path.join(repoPath, target.path);
|
|
120
|
+
try {
|
|
121
|
+
this.deps.ui.startSpinner(this.deps.t('spinner.export.exporting', { target: target.name }));
|
|
122
|
+
if (options.dryRun) {
|
|
123
|
+
this.deps.ui.updateSpinner(this.deps.t('spinner.export.dryRun', { target: targetPath }), 'success');
|
|
124
|
+
result.filesSkipped++;
|
|
125
|
+
this.deps.ui.stopSpinner();
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
// Check if target exists and force is not set
|
|
129
|
+
if (await (0, shared_1.pathExists)(targetPath) && !options.force) {
|
|
130
|
+
this.deps.ui.updateSpinner(this.deps.t('spinner.export.skipped', { target: targetPath }), 'warn');
|
|
131
|
+
result.filesSkipped++;
|
|
132
|
+
this.deps.ui.stopSpinner();
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
// Export based on format
|
|
136
|
+
if (target.format === 'single') {
|
|
137
|
+
await (0, shared_1.ensureParentDirectory)(targetPath);
|
|
138
|
+
await fs.writeFile(targetPath, combinedContent, 'utf-8');
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
await this.exportToDirectory(targetPath, rules);
|
|
142
|
+
}
|
|
143
|
+
result.filesCreated++;
|
|
144
|
+
result.targets.push(targetPath);
|
|
145
|
+
this.deps.ui.updateSpinner(this.deps.t('spinner.export.exported', { target: targetPath }), 'success');
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
(0, shared_1.addError)(result, target.name, error);
|
|
149
|
+
this.deps.ui.updateSpinner(this.deps.t('spinner.export.failed', { target: target.name }), 'fail');
|
|
150
|
+
}
|
|
151
|
+
finally {
|
|
152
|
+
this.deps.ui.stopSpinner();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Resolve export targets from options
|
|
157
|
+
*/
|
|
158
|
+
resolveTargets(options) {
|
|
159
|
+
if (options.preset) {
|
|
160
|
+
const preset = exports.EXPORT_PRESETS[options.preset.toLowerCase()];
|
|
161
|
+
if (preset)
|
|
162
|
+
return preset;
|
|
163
|
+
}
|
|
164
|
+
if (options.targets?.length) {
|
|
165
|
+
return options.targets.map((t) => ({
|
|
166
|
+
name: path.basename(t),
|
|
167
|
+
path: t,
|
|
168
|
+
format: 'single',
|
|
169
|
+
description: 'Custom target',
|
|
170
|
+
}));
|
|
171
|
+
}
|
|
172
|
+
// Default: export to common targets
|
|
173
|
+
return [
|
|
174
|
+
exports.EXPORT_PRESETS.cursor[0],
|
|
175
|
+
...exports.EXPORT_PRESETS.claude,
|
|
176
|
+
...exports.EXPORT_PRESETS.github,
|
|
177
|
+
];
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Read source rules from .context/docs
|
|
181
|
+
*/
|
|
182
|
+
async readSourceRules(sourcePath) {
|
|
183
|
+
const rules = [];
|
|
184
|
+
const patterns = ['**/*rules*.md', '**/*instructions*.md', '**/*conventions*.md', '**/README.md'];
|
|
185
|
+
try {
|
|
186
|
+
const files = await (0, shared_1.globFiles)(`**/*.md`, sourcePath, { absolute: true });
|
|
187
|
+
for (const file of files) {
|
|
188
|
+
const basename = (0, shared_1.getBasename)(file).toLowerCase();
|
|
189
|
+
const isRuleFile = patterns.some(p => basename.includes('rules') ||
|
|
190
|
+
basename.includes('instructions') ||
|
|
191
|
+
basename.includes('conventions') ||
|
|
192
|
+
basename === 'readme');
|
|
193
|
+
if (isRuleFile || patterns.length === 0) {
|
|
194
|
+
try {
|
|
195
|
+
const content = await fs.readFile(file, 'utf-8');
|
|
196
|
+
rules.push({ name: (0, shared_1.getBasename)(file), content, path: file });
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
// Skip unreadable files
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
catch {
|
|
205
|
+
// Source path doesn't exist
|
|
206
|
+
}
|
|
207
|
+
return rules;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Combine multiple rules into a single content block
|
|
211
|
+
*/
|
|
212
|
+
combineRules(rules) {
|
|
213
|
+
const lines = [
|
|
214
|
+
'# Project Rules and Guidelines',
|
|
215
|
+
'',
|
|
216
|
+
`> Auto-generated from .context/docs on ${new Date().toISOString()}`,
|
|
217
|
+
'',
|
|
218
|
+
];
|
|
219
|
+
for (const rule of rules) {
|
|
220
|
+
lines.push(`## ${rule.name}`, '', rule.content, '');
|
|
221
|
+
}
|
|
222
|
+
return lines.join('\n');
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Export rules to a directory (multiple files)
|
|
226
|
+
*/
|
|
227
|
+
async exportToDirectory(targetPath, rules) {
|
|
228
|
+
await (0, shared_1.ensureDirectory)(targetPath);
|
|
229
|
+
for (const rule of rules) {
|
|
230
|
+
const filePath = path.join(targetPath, `${rule.name}.md`);
|
|
231
|
+
await fs.writeFile(filePath, rule.content, 'utf-8');
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Get available presets
|
|
236
|
+
*/
|
|
237
|
+
getAvailablePresets() {
|
|
238
|
+
return Object.keys(exports.EXPORT_PRESETS);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
exports.ExportRulesService = ExportRulesService;
|
|
242
|
+
//# sourceMappingURL=exportRulesService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportRulesService.js","sourceRoot":"","sources":["../../../src/services/export/exportRulesService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { ExportRulesService, EXPORT_PRESETS } from './exportRulesService';
|
|
2
|
+
export type { ExportOptions, ExportResult, ExportTarget, ExportRulesServiceDependencies } from './exportRulesService';
|
|
3
|
+
export { SkillExportService, SKILL_EXPORT_PRESETS } from './skillExportService';
|
|
4
|
+
export type { SkillExportOptions, SkillExportResult, SkillExportTarget, SkillExportServiceDependencies } from './skillExportService';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/export/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1E,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAEtH,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAChF,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SKILL_EXPORT_PRESETS = exports.SkillExportService = exports.EXPORT_PRESETS = exports.ExportRulesService = void 0;
|
|
4
|
+
var exportRulesService_1 = require("./exportRulesService");
|
|
5
|
+
Object.defineProperty(exports, "ExportRulesService", { enumerable: true, get: function () { return exportRulesService_1.ExportRulesService; } });
|
|
6
|
+
Object.defineProperty(exports, "EXPORT_PRESETS", { enumerable: true, get: function () { return exportRulesService_1.EXPORT_PRESETS; } });
|
|
7
|
+
var skillExportService_1 = require("./skillExportService");
|
|
8
|
+
Object.defineProperty(exports, "SkillExportService", { enumerable: true, get: function () { return skillExportService_1.SkillExportService; } });
|
|
9
|
+
Object.defineProperty(exports, "SKILL_EXPORT_PRESETS", { enumerable: true, get: function () { return skillExportService_1.SKILL_EXPORT_PRESETS; } });
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/export/index.ts"],"names":[],"mappings":";;;AAAA,2DAA0E;AAAjE,wHAAA,kBAAkB,OAAA;AAAE,oHAAA,cAAc,OAAA;AAG3C,2DAAgF;AAAvE,wHAAA,kBAAkB,OAAA;AAAE,0HAAA,oBAAoB,OAAA"}
|
|
@@ -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"}
|