@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.
- package/README.md +244 -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 +96 -1
- package/dist/services/ai/schemas.d.ts.map +1 -1
- package/dist/services/ai/schemas.js +56 -2
- 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 +4 -4
- 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 +2 -1
- package/dist/services/ai/tools/index.d.ts.map +1 -1
- package/dist/services/ai/tools/index.js +8 -3
- package/dist/services/ai/tools/index.js.map +1 -1
- package/dist/services/ai/tools/initializeContextTool.d.ts +9 -1
- package/dist/services/ai/tools/initializeContextTool.d.ts.map +1 -1
- package/dist/services/ai/tools/initializeContextTool.js +33 -3
- package/dist/services/ai/tools/initializeContextTool.js.map +1 -1
- package/dist/services/ai/tools/scaffoldPlanTool.d.ts +6 -0
- package/dist/services/ai/tools/scaffoldPlanTool.d.ts.map +1 -1
- package/dist/services/ai/tools/scaffoldPlanTool.js +16 -3
- 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 +1451 -1
- 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,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared Path Helpers
|
|
4
|
+
*
|
|
5
|
+
* Common path resolution and context path utilities.
|
|
6
|
+
* Reduces duplication of path handling across services.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.resolveContextPaths = resolveContextPaths;
|
|
43
|
+
exports.resolveAbsolutePath = resolveAbsolutePath;
|
|
44
|
+
exports.ensureDirectory = ensureDirectory;
|
|
45
|
+
exports.ensureParentDirectory = ensureParentDirectory;
|
|
46
|
+
exports.getRelativePath = getRelativePath;
|
|
47
|
+
exports.pathExists = pathExists;
|
|
48
|
+
exports.isDirectory = isDirectory;
|
|
49
|
+
exports.isFile = isFile;
|
|
50
|
+
exports.normalizePath = normalizePath;
|
|
51
|
+
exports.deduplicatePaths = deduplicatePaths;
|
|
52
|
+
exports.getExtension = getExtension;
|
|
53
|
+
exports.getBasename = getBasename;
|
|
54
|
+
exports.joinPaths = joinPaths;
|
|
55
|
+
const path = __importStar(require("path"));
|
|
56
|
+
const fs = __importStar(require("fs-extra"));
|
|
57
|
+
/**
|
|
58
|
+
* Resolve all context paths for a repository
|
|
59
|
+
*/
|
|
60
|
+
function resolveContextPaths(repoPath) {
|
|
61
|
+
const absolutePath = path.resolve(repoPath);
|
|
62
|
+
const contextPath = path.join(absolutePath, '.context');
|
|
63
|
+
return {
|
|
64
|
+
absolutePath,
|
|
65
|
+
contextPath,
|
|
66
|
+
docsPath: path.join(contextPath, 'docs'),
|
|
67
|
+
agentsPath: path.join(contextPath, 'agents'),
|
|
68
|
+
plansPath: path.join(contextPath, 'plans'),
|
|
69
|
+
rulesPath: path.join(contextPath, 'rules'),
|
|
70
|
+
workflowPath: path.join(contextPath, 'workflow'),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Resolve an absolute path from input
|
|
75
|
+
*/
|
|
76
|
+
function resolveAbsolutePath(inputPath, defaultPath, basePath) {
|
|
77
|
+
const resolved = inputPath || defaultPath;
|
|
78
|
+
return path.isAbsolute(resolved)
|
|
79
|
+
? resolved
|
|
80
|
+
: path.join(basePath, resolved);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Ensure a directory exists
|
|
84
|
+
*/
|
|
85
|
+
async function ensureDirectory(dirPath) {
|
|
86
|
+
await fs.ensureDir(dirPath);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Ensure parent directory of a file exists
|
|
90
|
+
*/
|
|
91
|
+
async function ensureParentDirectory(filePath) {
|
|
92
|
+
await fs.ensureDir(path.dirname(filePath));
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get relative path from base
|
|
96
|
+
*/
|
|
97
|
+
function getRelativePath(fullPath, basePath) {
|
|
98
|
+
return path.relative(basePath, fullPath);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Check if path exists
|
|
102
|
+
*/
|
|
103
|
+
async function pathExists(targetPath) {
|
|
104
|
+
return fs.pathExists(targetPath);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Check if path is a directory
|
|
108
|
+
*/
|
|
109
|
+
async function isDirectory(targetPath) {
|
|
110
|
+
try {
|
|
111
|
+
const stat = await fs.stat(targetPath);
|
|
112
|
+
return stat.isDirectory();
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Check if path is a file
|
|
120
|
+
*/
|
|
121
|
+
async function isFile(targetPath) {
|
|
122
|
+
try {
|
|
123
|
+
const stat = await fs.stat(targetPath);
|
|
124
|
+
return stat.isFile();
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Normalize path separators to forward slashes
|
|
132
|
+
*/
|
|
133
|
+
function normalizePath(inputPath) {
|
|
134
|
+
return inputPath.replace(/\\/g, '/');
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Deduplicate an array of paths
|
|
138
|
+
*/
|
|
139
|
+
function deduplicatePaths(paths) {
|
|
140
|
+
return [...new Set(paths.map((p) => path.normalize(p)))];
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Get file extension without dot
|
|
144
|
+
*/
|
|
145
|
+
function getExtension(filePath) {
|
|
146
|
+
const ext = path.extname(filePath);
|
|
147
|
+
return ext.startsWith('.') ? ext.slice(1) : ext;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Get filename without extension
|
|
151
|
+
*/
|
|
152
|
+
function getBasename(filePath) {
|
|
153
|
+
return path.basename(filePath, path.extname(filePath));
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Join paths safely, handling undefined values
|
|
157
|
+
*/
|
|
158
|
+
function joinPaths(...parts) {
|
|
159
|
+
const validParts = parts.filter((p) => p !== undefined && p !== '');
|
|
160
|
+
return path.join(...validParts);
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=pathHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathHelpers.js","sourceRoot":"","sources":["../../../src/services/shared/pathHelpers.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBH,kDAaC;AAKD,kDASC;AAKD,0CAEC;AAKD,sDAEC;AAKD,0CAEC;AAKD,gCAEC;AAKD,kCAOC;AAKD,wBAOC;AAKD,sCAEC;AAKD,4CAEC;AAKD,oCAGC;AAKD,kCAEC;AAKD,8BAGC;AAvID,2CAA6B;AAC7B,6CAA+B;AAe/B;;GAEG;AACH,SAAgB,mBAAmB,CAAC,QAAgB;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAExD,OAAO;QACL,YAAY;QACZ,WAAW;QACX,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;QACxC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;QAC5C,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;QAC1C,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;QAC1C,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;KACjD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CACjC,SAA6B,EAC7B,WAAmB,EACnB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,SAAS,IAAI,WAAW,CAAC;IAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC9B,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,eAAe,CAAC,OAAe;IACnD,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,qBAAqB,CAAC,QAAgB;IAC1D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,QAAgB,EAAE,QAAgB;IAChE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,UAAU,CAAC,UAAkB;IACjD,OAAO,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,WAAW,CAAC,UAAkB;IAClD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,MAAM,CAAC,UAAkB;IAC7C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,SAAiB;IAC7C,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAAe;IAC9C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,QAAgB;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,QAAgB;IAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,GAAG,KAA6B;IACxD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACjF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Service Types
|
|
3
|
+
*
|
|
4
|
+
* Common interfaces and types used across all services.
|
|
5
|
+
* Reduces duplication of dependency injection patterns and result types.
|
|
6
|
+
*/
|
|
7
|
+
import type { CLIInterface } from '../../utils/cliUI';
|
|
8
|
+
import type { TranslateFn } from '../../utils/i18n';
|
|
9
|
+
/**
|
|
10
|
+
* Base dependencies for all services
|
|
11
|
+
*/
|
|
12
|
+
export interface BaseDependencies {
|
|
13
|
+
ui: CLIInterface;
|
|
14
|
+
t: TranslateFn;
|
|
15
|
+
version: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Extended dependencies for services that use AI
|
|
19
|
+
*/
|
|
20
|
+
export interface AIDependencies extends BaseDependencies {
|
|
21
|
+
defaultModel: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Common result type for file operations (import, export, sync)
|
|
25
|
+
*/
|
|
26
|
+
export interface OperationResult {
|
|
27
|
+
filesCreated: number;
|
|
28
|
+
filesSkipped: number;
|
|
29
|
+
filesFailed: number;
|
|
30
|
+
errors: OperationError[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Error entry in operation results
|
|
34
|
+
*/
|
|
35
|
+
export interface OperationError {
|
|
36
|
+
file: string;
|
|
37
|
+
error: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Base file information for detection services
|
|
41
|
+
*/
|
|
42
|
+
export interface FileInfo {
|
|
43
|
+
name: string;
|
|
44
|
+
path: string;
|
|
45
|
+
relativePath: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Detection result for file discovery services
|
|
49
|
+
*/
|
|
50
|
+
export interface DetectionResult<T extends FileInfo = FileInfo> {
|
|
51
|
+
files: T[];
|
|
52
|
+
sources: string[];
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Options for dry-run operations
|
|
56
|
+
*/
|
|
57
|
+
export interface DryRunOptions {
|
|
58
|
+
dryRun?: boolean;
|
|
59
|
+
verbose?: boolean;
|
|
60
|
+
force?: boolean;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Create an empty operation result
|
|
64
|
+
*/
|
|
65
|
+
export declare function createEmptyResult(): OperationResult;
|
|
66
|
+
/**
|
|
67
|
+
* Merge multiple operation results
|
|
68
|
+
*/
|
|
69
|
+
export declare function mergeResults(...results: OperationResult[]): OperationResult;
|
|
70
|
+
/**
|
|
71
|
+
* Add an error to operation result
|
|
72
|
+
*/
|
|
73
|
+
export declare function addError(result: OperationResult, file: string, error: unknown): void;
|
|
74
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/shared/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,YAAY,CAAC;IACjB,CAAC,EAAE,WAAW,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IAC5D,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,eAAe,CAOnD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,OAAO,EAAE,eAAe,EAAE,GAAG,eAAe,CAU3E;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,IAAI,CAMN"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared Service Types
|
|
4
|
+
*
|
|
5
|
+
* Common interfaces and types used across all services.
|
|
6
|
+
* Reduces duplication of dependency injection patterns and result types.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.createEmptyResult = createEmptyResult;
|
|
10
|
+
exports.mergeResults = mergeResults;
|
|
11
|
+
exports.addError = addError;
|
|
12
|
+
/**
|
|
13
|
+
* Create an empty operation result
|
|
14
|
+
*/
|
|
15
|
+
function createEmptyResult() {
|
|
16
|
+
return {
|
|
17
|
+
filesCreated: 0,
|
|
18
|
+
filesSkipped: 0,
|
|
19
|
+
filesFailed: 0,
|
|
20
|
+
errors: [],
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Merge multiple operation results
|
|
25
|
+
*/
|
|
26
|
+
function mergeResults(...results) {
|
|
27
|
+
return results.reduce((acc, result) => ({
|
|
28
|
+
filesCreated: acc.filesCreated + result.filesCreated,
|
|
29
|
+
filesSkipped: acc.filesSkipped + result.filesSkipped,
|
|
30
|
+
filesFailed: acc.filesFailed + result.filesFailed,
|
|
31
|
+
errors: [...acc.errors, ...result.errors],
|
|
32
|
+
}), createEmptyResult());
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Add an error to operation result
|
|
36
|
+
*/
|
|
37
|
+
function addError(result, file, error) {
|
|
38
|
+
result.filesFailed++;
|
|
39
|
+
result.errors.push({
|
|
40
|
+
file,
|
|
41
|
+
error: error instanceof Error ? error.message : String(error),
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/shared/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAoEH,8CAOC;AAKD,oCAUC;AAKD,4BAUC;AAxCD;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,OAAO;QACL,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,MAAM,EAAE,EAAE;KACX,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,GAAG,OAA0B;IACxD,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAChB,YAAY,EAAE,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY;QACpD,YAAY,EAAE,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY;QACpD,WAAW,EAAE,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW;QACjD,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;KAC1C,CAAC,EACF,iBAAiB,EAAE,CACpB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,QAAQ,CACtB,MAAuB,EACvB,IAAY,EACZ,KAAc;IAEd,MAAM,CAAC,WAAW,EAAE,CAAC;IACrB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QACjB,IAAI;QACJ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KAC9D,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared UI Helpers
|
|
3
|
+
*
|
|
4
|
+
* Common UI interaction patterns used across services.
|
|
5
|
+
* Reduces duplication of spinner and summary display logic.
|
|
6
|
+
*/
|
|
7
|
+
import type { CLIInterface } from '../../utils/cliUI';
|
|
8
|
+
import type { OperationResult } from './types';
|
|
9
|
+
/**
|
|
10
|
+
* Status types for spinner updates
|
|
11
|
+
*/
|
|
12
|
+
export type SpinnerStatus = 'success' | 'fail' | 'warn' | 'info';
|
|
13
|
+
/**
|
|
14
|
+
* Execute an async operation with spinner feedback
|
|
15
|
+
*/
|
|
16
|
+
export declare function withSpinner<T>(ui: CLIInterface, message: string, fn: () => Promise<T>, options?: {
|
|
17
|
+
successMessage?: string;
|
|
18
|
+
failMessage?: string;
|
|
19
|
+
successStatus?: SpinnerStatus;
|
|
20
|
+
failStatus?: SpinnerStatus;
|
|
21
|
+
}): Promise<{
|
|
22
|
+
result: T | null;
|
|
23
|
+
success: boolean;
|
|
24
|
+
error?: Error;
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Display operation summary with consistent formatting
|
|
28
|
+
*/
|
|
29
|
+
export declare function displayOperationSummary(result: OperationResult, options?: {
|
|
30
|
+
title?: string;
|
|
31
|
+
dryRun?: boolean;
|
|
32
|
+
showErrors?: boolean;
|
|
33
|
+
labels?: {
|
|
34
|
+
created?: string;
|
|
35
|
+
skipped?: string;
|
|
36
|
+
failed?: string;
|
|
37
|
+
};
|
|
38
|
+
}): void;
|
|
39
|
+
/**
|
|
40
|
+
* Display a visual progress bar
|
|
41
|
+
*/
|
|
42
|
+
export declare function displayProgressBar(current: number, total: number, options?: {
|
|
43
|
+
width?: number;
|
|
44
|
+
label?: string;
|
|
45
|
+
showPercentage?: boolean;
|
|
46
|
+
}): string;
|
|
47
|
+
/**
|
|
48
|
+
* Display a visual phase indicator
|
|
49
|
+
*/
|
|
50
|
+
export declare function displayPhaseIndicator(phases: Array<{
|
|
51
|
+
id: string;
|
|
52
|
+
status: 'completed' | 'in_progress' | 'pending' | 'skipped';
|
|
53
|
+
}>, options?: {
|
|
54
|
+
currentLabel?: string;
|
|
55
|
+
symbols?: {
|
|
56
|
+
completed?: string;
|
|
57
|
+
inProgress?: string;
|
|
58
|
+
pending?: string;
|
|
59
|
+
skipped?: string;
|
|
60
|
+
};
|
|
61
|
+
}): string;
|
|
62
|
+
/**
|
|
63
|
+
* Create a box with content
|
|
64
|
+
*/
|
|
65
|
+
export declare function createBox(content: string[], options?: {
|
|
66
|
+
width?: number;
|
|
67
|
+
title?: string;
|
|
68
|
+
padding?: number;
|
|
69
|
+
}): string;
|
|
70
|
+
//# sourceMappingURL=uiHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uiHelpers.d.ts","sourceRoot":"","sources":["../../../src/services/shared/uiHelpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjE;;GAEG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,EAAE,EAAE,YAAY,EAChB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE;IACR,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B,GACA,OAAO,CAAC;IAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,CA+BhE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,GACA,IAAI,CA2BN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GACA,MAAM,CAoBR;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,CAAA;CAAE,CAAC,EAC1F,OAAO,CAAC,EAAE;IACR,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,GACA,MAAM,CA6BR;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACA,MAAM,CA8BR"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared UI Helpers
|
|
4
|
+
*
|
|
5
|
+
* Common UI interaction patterns used across services.
|
|
6
|
+
* Reduces duplication of spinner and summary display logic.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.withSpinner = withSpinner;
|
|
10
|
+
exports.displayOperationSummary = displayOperationSummary;
|
|
11
|
+
exports.displayProgressBar = displayProgressBar;
|
|
12
|
+
exports.displayPhaseIndicator = displayPhaseIndicator;
|
|
13
|
+
exports.createBox = createBox;
|
|
14
|
+
const theme_1 = require("../../utils/theme");
|
|
15
|
+
/**
|
|
16
|
+
* Execute an async operation with spinner feedback
|
|
17
|
+
*/
|
|
18
|
+
async function withSpinner(ui, message, fn, options) {
|
|
19
|
+
const { successMessage, failMessage, successStatus = 'success', failStatus = 'fail', } = options || {};
|
|
20
|
+
ui.startSpinner(message);
|
|
21
|
+
try {
|
|
22
|
+
const result = await fn();
|
|
23
|
+
if (successMessage) {
|
|
24
|
+
ui.updateSpinner(successMessage, successStatus);
|
|
25
|
+
}
|
|
26
|
+
ui.stopSpinner();
|
|
27
|
+
return { result, success: true };
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
if (failMessage) {
|
|
31
|
+
ui.updateSpinner(failMessage, failStatus);
|
|
32
|
+
}
|
|
33
|
+
ui.stopSpinner();
|
|
34
|
+
return {
|
|
35
|
+
result: null,
|
|
36
|
+
success: false,
|
|
37
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Display operation summary with consistent formatting
|
|
43
|
+
*/
|
|
44
|
+
function displayOperationSummary(result, options) {
|
|
45
|
+
const { title = 'Summary', dryRun = false, showErrors = true, labels = {}, } = options || {};
|
|
46
|
+
const { created = dryRun ? 'Would create' : 'Created', skipped = 'Skipped', failed = 'Failed', } = labels;
|
|
47
|
+
console.log('');
|
|
48
|
+
console.log(theme_1.typography.header(title));
|
|
49
|
+
console.log(theme_1.typography.labeledValue(created, String(result.filesCreated)));
|
|
50
|
+
console.log(theme_1.typography.labeledValue(skipped, String(result.filesSkipped)));
|
|
51
|
+
console.log(theme_1.typography.labeledValue(failed, String(result.filesFailed)));
|
|
52
|
+
if (showErrors && result.errors.length > 0) {
|
|
53
|
+
console.log('');
|
|
54
|
+
console.log(theme_1.typography.header('Errors'));
|
|
55
|
+
for (const { file, error } of result.errors) {
|
|
56
|
+
console.log(theme_1.typography.labeledValue(file, error));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Display a visual progress bar
|
|
62
|
+
*/
|
|
63
|
+
function displayProgressBar(current, total, options) {
|
|
64
|
+
const { width = 40, label, showPercentage = true } = options || {};
|
|
65
|
+
const percentage = total > 0 ? Math.round((current / total) * 100) : 0;
|
|
66
|
+
const filledWidth = Math.round((current / total) * width);
|
|
67
|
+
const emptyWidth = width - filledWidth;
|
|
68
|
+
const filled = '█'.repeat(filledWidth);
|
|
69
|
+
const empty = '░'.repeat(emptyWidth);
|
|
70
|
+
const bar = `${filled}${empty}`;
|
|
71
|
+
let output = bar;
|
|
72
|
+
if (showPercentage) {
|
|
73
|
+
output += ` ${percentage}%`;
|
|
74
|
+
}
|
|
75
|
+
if (label) {
|
|
76
|
+
output += ` (${label})`;
|
|
77
|
+
}
|
|
78
|
+
return output;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Display a visual phase indicator
|
|
82
|
+
*/
|
|
83
|
+
function displayPhaseIndicator(phases, options) {
|
|
84
|
+
const { currentLabel, symbols = {} } = options || {};
|
|
85
|
+
const { completed = '[x]', inProgress = '[>]', pending = '[ ]', skipped = '[-]', } = symbols;
|
|
86
|
+
const symbolMap = {
|
|
87
|
+
completed,
|
|
88
|
+
in_progress: inProgress,
|
|
89
|
+
pending,
|
|
90
|
+
skipped,
|
|
91
|
+
};
|
|
92
|
+
const parts = phases.map((phase) => {
|
|
93
|
+
const symbol = symbolMap[phase.status] || pending;
|
|
94
|
+
return `${symbol} ${phase.id}`;
|
|
95
|
+
});
|
|
96
|
+
let output = parts.join(' → ');
|
|
97
|
+
if (currentLabel) {
|
|
98
|
+
output += `\n${' '.repeat(10)}^ ${currentLabel}`;
|
|
99
|
+
}
|
|
100
|
+
return output;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Create a box with content
|
|
104
|
+
*/
|
|
105
|
+
function createBox(content, options) {
|
|
106
|
+
const { width = 50, title, padding = 1 } = options || {};
|
|
107
|
+
const innerWidth = width - 2;
|
|
108
|
+
const padStr = ' '.repeat(padding);
|
|
109
|
+
const lines = [];
|
|
110
|
+
// Top border
|
|
111
|
+
if (title) {
|
|
112
|
+
const titlePadded = ` ${title} `;
|
|
113
|
+
const remainingWidth = innerWidth - titlePadded.length;
|
|
114
|
+
const leftWidth = Math.floor(remainingWidth / 2);
|
|
115
|
+
const rightWidth = remainingWidth - leftWidth;
|
|
116
|
+
lines.push(`╭${'─'.repeat(leftWidth)}${titlePadded}${'─'.repeat(rightWidth)}╮`);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
lines.push(`╭${'─'.repeat(innerWidth)}╮`);
|
|
120
|
+
}
|
|
121
|
+
// Content
|
|
122
|
+
for (const line of content) {
|
|
123
|
+
const contentWidth = innerWidth - padding * 2;
|
|
124
|
+
const paddedLine = line.slice(0, contentWidth).padEnd(contentWidth);
|
|
125
|
+
lines.push(`│${padStr}${paddedLine}${padStr}│`);
|
|
126
|
+
}
|
|
127
|
+
// Bottom border
|
|
128
|
+
lines.push(`╰${'─'.repeat(innerWidth)}╯`);
|
|
129
|
+
return lines.join('\n');
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=uiHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uiHelpers.js","sourceRoot":"","sources":["../../../src/services/shared/uiHelpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { StackDetector } from './stackDetector';
|
|
2
|
+
export type { StackInfo } from './stackDetector';
|
|
3
|
+
export { classifyProject, detectCLILibraries, isLibraryPackage, PROJECT_TYPES, } from './projectTypeClassifier';
|
|
4
|
+
export type { ProjectType, ProjectClassification, ExtendedStackInfo, } from './projectTypeClassifier';
|
|
5
|
+
export { getAgentsForProjectType, getDocsForProjectType, getSkillsForProjectType, getFilteredScaffolds, shouldIncludeAgent, shouldIncludeDoc, shouldIncludeSkill, CORE_AGENTS, CORE_DOCS, CORE_SKILLS, AGENT_FILTER_MATRIX, DOCS_FILTER_MATRIX, SKILLS_FILTER_MATRIX, } from './scaffoldFilter';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/stack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SKILLS_FILTER_MATRIX = exports.DOCS_FILTER_MATRIX = exports.AGENT_FILTER_MATRIX = exports.CORE_SKILLS = exports.CORE_DOCS = exports.CORE_AGENTS = exports.shouldIncludeSkill = exports.shouldIncludeDoc = exports.shouldIncludeAgent = exports.getFilteredScaffolds = exports.getSkillsForProjectType = exports.getDocsForProjectType = exports.getAgentsForProjectType = exports.PROJECT_TYPES = exports.isLibraryPackage = exports.detectCLILibraries = exports.classifyProject = exports.StackDetector = void 0;
|
|
4
|
+
var stackDetector_1 = require("./stackDetector");
|
|
5
|
+
Object.defineProperty(exports, "StackDetector", { enumerable: true, get: function () { return stackDetector_1.StackDetector; } });
|
|
6
|
+
var projectTypeClassifier_1 = require("./projectTypeClassifier");
|
|
7
|
+
Object.defineProperty(exports, "classifyProject", { enumerable: true, get: function () { return projectTypeClassifier_1.classifyProject; } });
|
|
8
|
+
Object.defineProperty(exports, "detectCLILibraries", { enumerable: true, get: function () { return projectTypeClassifier_1.detectCLILibraries; } });
|
|
9
|
+
Object.defineProperty(exports, "isLibraryPackage", { enumerable: true, get: function () { return projectTypeClassifier_1.isLibraryPackage; } });
|
|
10
|
+
Object.defineProperty(exports, "PROJECT_TYPES", { enumerable: true, get: function () { return projectTypeClassifier_1.PROJECT_TYPES; } });
|
|
11
|
+
var scaffoldFilter_1 = require("./scaffoldFilter");
|
|
12
|
+
Object.defineProperty(exports, "getAgentsForProjectType", { enumerable: true, get: function () { return scaffoldFilter_1.getAgentsForProjectType; } });
|
|
13
|
+
Object.defineProperty(exports, "getDocsForProjectType", { enumerable: true, get: function () { return scaffoldFilter_1.getDocsForProjectType; } });
|
|
14
|
+
Object.defineProperty(exports, "getSkillsForProjectType", { enumerable: true, get: function () { return scaffoldFilter_1.getSkillsForProjectType; } });
|
|
15
|
+
Object.defineProperty(exports, "getFilteredScaffolds", { enumerable: true, get: function () { return scaffoldFilter_1.getFilteredScaffolds; } });
|
|
16
|
+
Object.defineProperty(exports, "shouldIncludeAgent", { enumerable: true, get: function () { return scaffoldFilter_1.shouldIncludeAgent; } });
|
|
17
|
+
Object.defineProperty(exports, "shouldIncludeDoc", { enumerable: true, get: function () { return scaffoldFilter_1.shouldIncludeDoc; } });
|
|
18
|
+
Object.defineProperty(exports, "shouldIncludeSkill", { enumerable: true, get: function () { return scaffoldFilter_1.shouldIncludeSkill; } });
|
|
19
|
+
Object.defineProperty(exports, "CORE_AGENTS", { enumerable: true, get: function () { return scaffoldFilter_1.CORE_AGENTS; } });
|
|
20
|
+
Object.defineProperty(exports, "CORE_DOCS", { enumerable: true, get: function () { return scaffoldFilter_1.CORE_DOCS; } });
|
|
21
|
+
Object.defineProperty(exports, "CORE_SKILLS", { enumerable: true, get: function () { return scaffoldFilter_1.CORE_SKILLS; } });
|
|
22
|
+
Object.defineProperty(exports, "AGENT_FILTER_MATRIX", { enumerable: true, get: function () { return scaffoldFilter_1.AGENT_FILTER_MATRIX; } });
|
|
23
|
+
Object.defineProperty(exports, "DOCS_FILTER_MATRIX", { enumerable: true, get: function () { return scaffoldFilter_1.DOCS_FILTER_MATRIX; } });
|
|
24
|
+
Object.defineProperty(exports, "SKILLS_FILTER_MATRIX", { enumerable: true, get: function () { return scaffoldFilter_1.SKILLS_FILTER_MATRIX; } });
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/stack/index.ts"],"names":[],"mappings":";;;AAAA,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAGtB,iEAKiC;AAJ/B,wHAAA,eAAe,OAAA;AACf,2HAAA,kBAAkB,OAAA;AAClB,yHAAA,gBAAgB,OAAA;AAChB,sHAAA,aAAa,OAAA;AAQf,mDAc0B;AAbxB,yHAAA,uBAAuB,OAAA;AACvB,uHAAA,qBAAqB,OAAA;AACrB,yHAAA,uBAAuB,OAAA;AACvB,sHAAA,oBAAoB,OAAA;AACpB,oHAAA,kBAAkB,OAAA;AAClB,kHAAA,gBAAgB,OAAA;AAChB,oHAAA,kBAAkB,OAAA;AAClB,6GAAA,WAAW,OAAA;AACX,2GAAA,SAAS,OAAA;AACT,6GAAA,WAAW,OAAA;AACX,qHAAA,mBAAmB,OAAA;AACnB,oHAAA,kBAAkB,OAAA;AAClB,sHAAA,oBAAoB,OAAA"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Type Classifier
|
|
3
|
+
*
|
|
4
|
+
* Classifies projects into categories based on detected stack information.
|
|
5
|
+
* Used to filter which agents, skills, and documentation are relevant.
|
|
6
|
+
*/
|
|
7
|
+
import { StackInfo } from './stackDetector';
|
|
8
|
+
export declare const PROJECT_TYPES: readonly ["cli", "web-frontend", "web-backend", "full-stack", "mobile", "library", "monorepo", "desktop", "unknown"];
|
|
9
|
+
export type ProjectType = (typeof PROJECT_TYPES)[number];
|
|
10
|
+
export interface ProjectClassification {
|
|
11
|
+
primaryType: ProjectType;
|
|
12
|
+
secondaryTypes: ProjectType[];
|
|
13
|
+
confidence: 'high' | 'medium' | 'low';
|
|
14
|
+
reasoning: string[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Framework categories for project type detection.
|
|
18
|
+
* Exported for testing and extensibility.
|
|
19
|
+
*/
|
|
20
|
+
export declare const FRAMEWORK_CATEGORIES: {
|
|
21
|
+
readonly frontend: readonly ["react", "vue", "angular", "svelte", "nextjs", "nuxt", "gatsby", "remix", "astro", "solid", "qwik"];
|
|
22
|
+
readonly backend: readonly ["express", "nestjs", "fastify", "koa", "hapi", "django", "flask", "fastapi", "rails", "laravel", "spring", "phoenix", "gin", "echo", "fiber"];
|
|
23
|
+
readonly mobile: readonly ["react-native", "flutter", "ionic", "capacitor", "expo"];
|
|
24
|
+
readonly desktop: readonly ["electron", "tauri", "neutralino"];
|
|
25
|
+
readonly cli: readonly ["commander", "yargs", "meow", "inquirer", "prompts", "chalk", "ora", "listr", "oclif", "clipanion", "cac", "arg"];
|
|
26
|
+
readonly monorepo: readonly ["lerna", "nx", "turborepo", "pnpm-workspace", "rush"];
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Extended stack info with additional fields for classification
|
|
30
|
+
*/
|
|
31
|
+
export interface ExtendedStackInfo extends StackInfo {
|
|
32
|
+
hasBinField?: boolean;
|
|
33
|
+
hasMainExport?: boolean;
|
|
34
|
+
hasTypesField?: boolean;
|
|
35
|
+
cliLibraries?: string[];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Classify a project based on its detected stack
|
|
39
|
+
*/
|
|
40
|
+
export declare function classifyProject(stack: StackInfo | ExtendedStackInfo): ProjectClassification;
|
|
41
|
+
/**
|
|
42
|
+
* Get CLI libraries from dependencies
|
|
43
|
+
*/
|
|
44
|
+
export declare function detectCLILibraries(dependencies: Record<string, string>): string[];
|
|
45
|
+
/**
|
|
46
|
+
* Check if package.json indicates a library
|
|
47
|
+
*/
|
|
48
|
+
export declare function isLibraryPackage(packageJson: {
|
|
49
|
+
main?: string;
|
|
50
|
+
exports?: unknown;
|
|
51
|
+
bin?: unknown;
|
|
52
|
+
types?: string;
|
|
53
|
+
typings?: string;
|
|
54
|
+
}): {
|
|
55
|
+
hasMain: boolean;
|
|
56
|
+
hasBin: boolean;
|
|
57
|
+
hasTypes: boolean;
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=projectTypeClassifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectTypeClassifier.d.ts","sourceRoot":"","sources":["../../../src/services/stack/projectTypeClassifier.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,aAAa,sHAUhB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;CAgDvB,CAAC;AAQX;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAoBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,iBAAiB,GAAG,qBAAqB,CAiG3F;AAqDD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAEjF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAM3D"}
|