mycontext-cli 2.0.8 → 2.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/dist/agents/communication/AgentCommunicationManager.d.ts +3 -3
  2. package/dist/agents/communication/AgentCommunicationManager.d.ts.map +1 -1
  3. package/dist/agents/communication/AgentCommunicationManager.js +7 -6
  4. package/dist/agents/communication/AgentCommunicationManager.js.map +1 -1
  5. package/dist/agents/evolution/CodeEvolutionEngine.d.ts.map +1 -1
  6. package/dist/agents/evolution/CodeEvolutionEngine.js +10 -7
  7. package/dist/agents/evolution/CodeEvolutionEngine.js.map +1 -1
  8. package/dist/agents/implementations/ArchitectAgent.js +2 -2
  9. package/dist/agents/implementations/ArchitectAgent.js.map +1 -1
  10. package/dist/agents/implementations/BackendDevAgent.d.ts.map +1 -1
  11. package/dist/agents/implementations/BackendDevAgent.js +4 -1
  12. package/dist/agents/implementations/BackendDevAgent.js.map +1 -1
  13. package/dist/agents/implementations/BuildStrategyAgent.d.ts.map +1 -1
  14. package/dist/agents/implementations/BuildStrategyAgent.js +4 -3
  15. package/dist/agents/implementations/BuildStrategyAgent.js.map +1 -1
  16. package/dist/agents/implementations/CodeGenSubAgent.d.ts.map +1 -1
  17. package/dist/agents/implementations/CodeGenSubAgent.js +6 -5
  18. package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -1
  19. package/dist/agents/implementations/DocsSubAgent.js +2 -2
  20. package/dist/agents/implementations/DocsSubAgent.js.map +1 -1
  21. package/dist/agents/implementations/EnhancementAgent.d.ts.map +1 -1
  22. package/dist/agents/implementations/EnhancementAgent.js +6 -4
  23. package/dist/agents/implementations/EnhancementAgent.js.map +1 -1
  24. package/dist/agents/implementations/InteractiveAgent.d.ts.map +1 -1
  25. package/dist/agents/implementations/InteractiveAgent.js +8 -1
  26. package/dist/agents/implementations/InteractiveAgent.js.map +1 -1
  27. package/dist/agents/implementations/PromptConstructorAgent.d.ts.map +1 -1
  28. package/dist/agents/implementations/PromptConstructorAgent.js +79 -31
  29. package/dist/agents/implementations/PromptConstructorAgent.js.map +1 -1
  30. package/dist/agents/implementations/QASubAgent.js +2 -2
  31. package/dist/agents/implementations/QASubAgent.js.map +1 -1
  32. package/dist/agents/implementations/SecurityAgent.js +2 -2
  33. package/dist/agents/implementations/SecurityAgent.js.map +1 -1
  34. package/dist/agents/implementations/WorkflowAgent.d.ts +0 -1
  35. package/dist/agents/implementations/WorkflowAgent.d.ts.map +1 -1
  36. package/dist/agents/implementations/WorkflowAgent.js +6 -10
  37. package/dist/agents/implementations/WorkflowAgent.js.map +1 -1
  38. package/dist/agents/intelligence/ProjectIntelligence.js +5 -5
  39. package/dist/agents/intelligence/ProjectIntelligence.js.map +1 -1
  40. package/dist/agents/orchestrator/SubAgentOrchestrator.d.ts.map +1 -1
  41. package/dist/agents/orchestrator/SubAgentOrchestrator.js +4 -4
  42. package/dist/agents/orchestrator/SubAgentOrchestrator.js.map +1 -1
  43. package/dist/cli.js +8 -40
  44. package/dist/cli.js.map +1 -1
  45. package/dist/commands/analyze.d.ts.map +1 -1
  46. package/dist/commands/analyze.js +9 -9
  47. package/dist/commands/analyze.js.map +1 -1
  48. package/dist/commands/enhance.d.ts.map +1 -1
  49. package/dist/commands/enhance.js +23 -78
  50. package/dist/commands/enhance.js.map +1 -1
  51. package/dist/commands/generate-components.d.ts.map +1 -1
  52. package/dist/commands/generate-components.js +12 -7
  53. package/dist/commands/generate-components.js.map +1 -1
  54. package/dist/commands/generate-todos.js +1 -1
  55. package/dist/commands/generate-todos.js.map +1 -1
  56. package/dist/commands/generate.d.ts.map +1 -1
  57. package/dist/commands/generate.js +57 -41
  58. package/dist/commands/generate.js.map +1 -1
  59. package/dist/commands/init.d.ts +1 -0
  60. package/dist/commands/init.d.ts.map +1 -1
  61. package/dist/commands/init.js +59 -13
  62. package/dist/commands/init.js.map +1 -1
  63. package/dist/commands/playbooks.d.ts.map +1 -1
  64. package/dist/commands/playbooks.js +14 -8
  65. package/dist/commands/playbooks.js.map +1 -1
  66. package/dist/commands/preview.js +1 -1
  67. package/dist/commands/preview.js.map +1 -1
  68. package/dist/commands/refine.d.ts.map +1 -1
  69. package/dist/commands/refine.js +5 -3
  70. package/dist/commands/refine.js.map +1 -1
  71. package/dist/commands/sanitize.d.ts.map +1 -1
  72. package/dist/commands/sanitize.js +11 -4
  73. package/dist/commands/sanitize.js.map +1 -1
  74. package/dist/commands/setup-database.d.ts.map +1 -1
  75. package/dist/commands/setup-database.js +9 -7
  76. package/dist/commands/setup-database.js.map +1 -1
  77. package/dist/commands/setup-instantdb.d.ts.map +1 -1
  78. package/dist/commands/setup-instantdb.js +9 -7
  79. package/dist/commands/setup-instantdb.js.map +1 -1
  80. package/dist/config/build-strategies.json +2 -2
  81. package/dist/{agents/personalities/definitions.d.ts → constants/subAgentPersonalities.d.ts} +2 -2
  82. package/dist/constants/subAgentPersonalities.d.ts.map +1 -0
  83. package/dist/{agents/personalities/definitions.js → constants/subAgentPersonalities.js} +2 -2
  84. package/dist/constants/subAgentPersonalities.js.map +1 -0
  85. package/dist/package.json +1 -1
  86. package/dist/types/analysis.d.ts +67 -0
  87. package/dist/types/analysis.d.ts.map +1 -0
  88. package/dist/types/analysis.js +7 -0
  89. package/dist/types/analysis.js.map +1 -0
  90. package/dist/types/components.d.ts +90 -0
  91. package/dist/types/components.d.ts.map +1 -0
  92. package/dist/types/components.js +7 -0
  93. package/dist/types/components.js.map +1 -0
  94. package/dist/types/enhancement.d.ts +127 -0
  95. package/dist/types/enhancement.d.ts.map +1 -0
  96. package/dist/types/enhancement.js +7 -0
  97. package/dist/types/enhancement.js.map +1 -0
  98. package/dist/types/index.d.ts +4 -0
  99. package/dist/types/index.d.ts.map +1 -1
  100. package/dist/types/index.js +25 -0
  101. package/dist/types/index.js.map +1 -1
  102. package/dist/types/progress.d.ts +88 -0
  103. package/dist/types/progress.d.ts.map +1 -0
  104. package/dist/types/progress.js +7 -0
  105. package/dist/types/progress.js.map +1 -0
  106. package/dist/utils/ProjectHealthMonitor.d.ts.map +1 -1
  107. package/dist/utils/ProjectHealthMonitor.js +47 -36
  108. package/dist/utils/ProjectHealthMonitor.js.map +1 -1
  109. package/dist/utils/agentDefinitions.d.ts +2 -2
  110. package/dist/utils/agentDefinitions.d.ts.map +1 -1
  111. package/dist/utils/agentDefinitions.js +40 -33
  112. package/dist/utils/agentDefinitions.js.map +1 -1
  113. package/dist/utils/buildStrategyManager.d.ts.map +1 -1
  114. package/dist/utils/buildStrategyManager.js +1 -1
  115. package/dist/utils/buildStrategyManager.js.map +1 -1
  116. package/dist/utils/claudeAgentClient.d.ts +0 -1
  117. package/dist/utils/claudeAgentClient.d.ts.map +1 -1
  118. package/dist/utils/claudeAgentClient.js +46 -39
  119. package/dist/utils/claudeAgentClient.js.map +1 -1
  120. package/dist/utils/hybridAIClient.d.ts +1 -9
  121. package/dist/utils/hybridAIClient.d.ts.map +1 -1
  122. package/dist/utils/hybridAIClient.js +81 -78
  123. package/dist/utils/hybridAIClient.js.map +1 -1
  124. package/dist/utils/mcpAgentIntegration.d.ts.map +1 -1
  125. package/dist/utils/mcpAgentIntegration.js +1 -1
  126. package/dist/utils/mcpAgentIntegration.js.map +1 -1
  127. package/dist/utils/mcpTools.d.ts +5 -5
  128. package/dist/utils/mcpTools.d.ts.map +1 -1
  129. package/dist/utils/mcpTools.js +319 -241
  130. package/dist/utils/mcpTools.js.map +1 -1
  131. package/dist/utils/progressTracker.d.ts +3 -79
  132. package/dist/utils/progressTracker.d.ts.map +1 -1
  133. package/dist/utils/progressTracker.js +92 -68
  134. package/dist/utils/progressTracker.js.map +1 -1
  135. package/dist/utils/typeTemplateGenerator.d.ts.map +1 -1
  136. package/dist/utils/typeTemplateGenerator.js +125 -79
  137. package/dist/utils/typeTemplateGenerator.js.map +1 -1
  138. package/package.json +1 -1
  139. package/dist/agents/implementations/ClaudeAgentWorkflow.d.ts +0 -110
  140. package/dist/agents/implementations/ClaudeAgentWorkflow.d.ts.map +0 -1
  141. package/dist/agents/implementations/ClaudeAgentWorkflow.js +0 -661
  142. package/dist/agents/implementations/ClaudeAgentWorkflow.js.map +0 -1
  143. package/dist/agents/personalities/definitions.d.ts.map +0 -1
  144. package/dist/agents/personalities/definitions.js.map +0 -1
  145. package/dist/commands/model.d.ts +0 -22
  146. package/dist/commands/model.d.ts.map +0 -1
  147. package/dist/commands/model.js +0 -130
  148. package/dist/commands/model.js.map +0 -1
  149. package/dist/commands/normalize.d.ts +0 -5
  150. package/dist/commands/normalize.d.ts.map +0 -1
  151. package/dist/commands/normalize.js +0 -128
  152. package/dist/commands/normalize.js.map +0 -1
  153. package/dist/commands/pricing.d.ts +0 -15
  154. package/dist/commands/pricing.d.ts.map +0 -1
  155. package/dist/commands/pricing.js +0 -94
  156. package/dist/commands/pricing.js.map +0 -1
  157. package/dist/config/ai-providers.json +0 -102
  158. package/dist/config/pricing.json +0 -55
  159. package/dist/utils/aiClientFactory.d.ts +0 -93
  160. package/dist/utils/aiClientFactory.d.ts.map +0 -1
  161. package/dist/utils/aiClientFactory.js +0 -290
  162. package/dist/utils/aiClientFactory.js.map +0 -1
  163. package/dist/utils/aiClientRouter.d.ts +0 -121
  164. package/dist/utils/aiClientRouter.d.ts.map +0 -1
  165. package/dist/utils/aiClientRouter.js +0 -401
  166. package/dist/utils/aiClientRouter.js.map +0 -1
  167. package/dist/utils/apiKeyManager.d.ts +0 -137
  168. package/dist/utils/apiKeyManager.d.ts.map +0 -1
  169. package/dist/utils/apiKeyManager.js +0 -479
  170. package/dist/utils/apiKeyManager.js.map +0 -1
  171. package/dist/utils/claudeClient.d.ts +0 -28
  172. package/dist/utils/claudeClient.d.ts.map +0 -1
  173. package/dist/utils/claudeClient.js +0 -233
  174. package/dist/utils/claudeClient.js.map +0 -1
  175. package/dist/utils/geminiClient.d.ts +0 -61
  176. package/dist/utils/geminiClient.d.ts.map +0 -1
  177. package/dist/utils/geminiClient.js +0 -173
  178. package/dist/utils/geminiClient.js.map +0 -1
  179. package/dist/utils/githubModelsClient.d.ts +0 -27
  180. package/dist/utils/githubModelsClient.d.ts.map +0 -1
  181. package/dist/utils/githubModelsClient.js +0 -332
  182. package/dist/utils/githubModelsClient.js.map +0 -1
  183. package/dist/utils/huggingFaceClient.d.ts +0 -44
  184. package/dist/utils/huggingFaceClient.d.ts.map +0 -1
  185. package/dist/utils/huggingFaceClient.js +0 -169
  186. package/dist/utils/huggingFaceClient.js.map +0 -1
  187. package/dist/utils/openaiClient.d.ts +0 -24
  188. package/dist/utils/openaiClient.d.ts.map +0 -1
  189. package/dist/utils/openaiClient.js +0 -204
  190. package/dist/utils/openaiClient.js.map +0 -1
  191. package/dist/utils/qwenClient.d.ts +0 -22
  192. package/dist/utils/qwenClient.d.ts.map +0 -1
  193. package/dist/utils/qwenClient.js +0 -185
  194. package/dist/utils/qwenClient.js.map +0 -1
  195. package/dist/utils/streamingHandler.d.ts +0 -98
  196. package/dist/utils/streamingHandler.d.ts.map +0 -1
  197. package/dist/utils/streamingHandler.js +0 -259
  198. package/dist/utils/streamingHandler.js.map +0 -1
  199. package/dist/utils/xaiClient.d.ts +0 -19
  200. package/dist/utils/xaiClient.d.ts.map +0 -1
  201. package/dist/utils/xaiClient.js +0 -135
  202. package/dist/utils/xaiClient.js.map +0 -1
@@ -1,55 +0,0 @@
1
- {
2
- "plans": {
3
- "free_beta": {
4
- "name": "Free Beta",
5
- "price": 0,
6
- "currency": "USD",
7
- "interval": "month",
8
- "features": [
9
- "Unlimited Qwen3 Coder generations",
10
- "All component types",
11
- "Basic support",
12
- "Community access"
13
- ],
14
- "limits": {
15
- "generations_per_month": -1,
16
- "max_tokens_per_request": 4000,
17
- "concurrent_requests": 5
18
- },
19
- "description": "Free during beta period - unlimited usage with Qwen3 Coder"
20
- },
21
- "unlimited": {
22
- "name": "Unlimited Pro",
23
- "price": 5,
24
- "currency": "USD",
25
- "interval": "month",
26
- "features": [
27
- "Unlimited generations with all AI providers",
28
- "Priority support",
29
- "Advanced features",
30
- "Team collaboration",
31
- "API access"
32
- ],
33
- "limits": {
34
- "generations_per_month": -1,
35
- "max_tokens_per_request": 8000,
36
- "concurrent_requests": 20
37
- },
38
- "description": "Unlimited usage with all AI providers and premium features"
39
- }
40
- },
41
- "hosted_api": {
42
- "base_url": "https://api.mycontext.fbien.com/v1",
43
- "endpoints": {
44
- "generate": "/generate",
45
- "status": "/status",
46
- "pricing": "/pricing"
47
- },
48
- "fallback_providers": ["qwen", "github", "claude", "openai"]
49
- },
50
- "beta_period": {
51
- "enabled": true,
52
- "end_date": "2025-12-31",
53
- "message": "Free beta until December 31, 2025"
54
- }
55
- }
@@ -1,93 +0,0 @@
1
- /**
2
- * AI Client Factory
3
- *
4
- * Factory for creating and managing AI client instances.
5
- * Handles client selection, caching, and lifecycle management.
6
- */
7
- import { AIClient, AgentAIClient, AIClientFactoryConfig, OperationComplexity } from '../interfaces/AIClient';
8
- /**
9
- * Singleton factory for creating and managing AI clients
10
- */
11
- export declare class AIClientFactory {
12
- private static instance;
13
- private config;
14
- private clientCache;
15
- private workingDirectory;
16
- private constructor();
17
- /**
18
- * Get singleton instance
19
- */
20
- static getInstance(config?: AIClientFactoryConfig): AIClientFactory;
21
- /**
22
- * Reset singleton (useful for testing)
23
- */
24
- static reset(): void;
25
- /**
26
- * Update factory configuration
27
- */
28
- configure(config: Partial<AIClientFactoryConfig>): void;
29
- /**
30
- * Get or create a client based on requirements
31
- */
32
- getClient(complexity?: OperationComplexity, requiresTools?: boolean, requiresStreaming?: boolean): Promise<AIClient>;
33
- /**
34
- * Get Agent SDK client specifically (for advanced operations)
35
- */
36
- getAgentClient(): Promise<AgentAIClient>;
37
- /**
38
- * Get Direct API client specifically (for simple operations)
39
- */
40
- getDirectClient(): Promise<AIClient>;
41
- /**
42
- * Select appropriate client type based on operation requirements
43
- */
44
- private selectClientType;
45
- /**
46
- * Create a new client instance
47
- */
48
- private createClient;
49
- /**
50
- * Check if any AI client is available and configured
51
- */
52
- isAvailable(): Promise<boolean>;
53
- /**
54
- * Test connection for a specific client type
55
- */
56
- testConnection(clientType?: 'direct-api' | 'agent-sdk'): Promise<boolean>;
57
- /**
58
- * Get current configuration
59
- */
60
- getConfig(): AIClientFactoryConfig;
61
- /**
62
- * Clear client cache
63
- */
64
- clearCache(): void;
65
- /**
66
- * Cleanup all cached clients
67
- */
68
- cleanup(): Promise<void>;
69
- /**
70
- * Get statistics about cached clients
71
- */
72
- getStats(): {
73
- cachedClients: number;
74
- clientTypes: Record<string, number>;
75
- };
76
- /**
77
- * Log current factory state (for debugging)
78
- */
79
- logState(): void;
80
- }
81
- /**
82
- * Convenience function to get factory instance
83
- */
84
- export declare function getAIClientFactory(config?: AIClientFactoryConfig): AIClientFactory;
85
- /**
86
- * Convenience function to get an AI client
87
- */
88
- export declare function getAIClient(complexity?: OperationComplexity, requiresTools?: boolean, requiresStreaming?: boolean): Promise<AIClient>;
89
- /**
90
- * Convenience function to get Agent SDK client
91
- */
92
- export declare function getAgentClient(): Promise<AgentAIClient>;
93
- //# sourceMappingURL=aiClientFactory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aiClientFactory.d.ts","sourceRoot":"","sources":["../../src/utils/aiClientFactory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,QAAQ,EACR,aAAa,EACb,qBAAqB,EAErB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAKhC;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IACzC,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO;IAaP;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,eAAe;IAOnE;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;IAIpB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,IAAI;IAOvD;;OAEG;IACG,SAAS,CACb,UAAU,CAAC,EAAE,mBAAmB,EAChC,aAAa,GAAE,OAAe,EAC9B,iBAAiB,GAAE,OAAe,GACjC,OAAO,CAAC,QAAQ,CAAC;IAqBpB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAqC9C;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,QAAQ,CAAC;IAqB1C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkDxB;;OAEG;YACW,YAAY;IAU1B;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IA4BrC;;OAEG;IACG,cAAc,CAClB,UAAU,GAAE,YAAY,GAAG,WAAyB,GACnD,OAAO,CAAC,OAAO,CAAC;IASnB;;OAEG;IACH,SAAS,IAAI,qBAAqB;IAIlC;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB9B;;OAEG;IACH,QAAQ,IAAI;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACrC;IAcD;;OAEG;IACH,QAAQ,IAAI,IAAI;CAgBjB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,CAAC,EAAE,qBAAqB,GAC7B,eAAe,CAEjB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,UAAU,CAAC,EAAE,mBAAmB,EAChC,aAAa,CAAC,EAAE,OAAO,EACvB,iBAAiB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC,CAG7D"}
@@ -1,290 +0,0 @@
1
- "use strict";
2
- /**
3
- * AI Client Factory
4
- *
5
- * Factory for creating and managing AI client instances.
6
- * Handles client selection, caching, and lifecycle management.
7
- */
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.AIClientFactory = void 0;
13
- exports.getAIClientFactory = getAIClientFactory;
14
- exports.getAIClient = getAIClient;
15
- exports.getAgentClient = getAgentClient;
16
- const AIClient_1 = require("../interfaces/AIClient");
17
- const claudeClient_1 = require("./claudeClient");
18
- const claudeAgentClient_1 = require("./claudeAgentClient");
19
- const chalk_1 = __importDefault(require("chalk"));
20
- /**
21
- * Singleton factory for creating and managing AI clients
22
- */
23
- class AIClientFactory {
24
- constructor(config = {}) {
25
- this.clientCache = new Map();
26
- this.config = {
27
- preferredClient: config.preferredClient || 'auto',
28
- fallbackEnabled: config.fallbackEnabled !== false,
29
- autoSelectByComplexity: config.autoSelectByComplexity !== false,
30
- defaultModel: config.defaultModel || 'claude-3-5-sonnet-20241022',
31
- defaultTemperature: config.defaultTemperature || 0.7,
32
- defaultMaxTokens: config.defaultMaxTokens || 4096,
33
- workingDirectory: config.workingDirectory || process.cwd(),
34
- };
35
- this.workingDirectory = this.config.workingDirectory;
36
- }
37
- /**
38
- * Get singleton instance
39
- */
40
- static getInstance(config) {
41
- if (!AIClientFactory.instance) {
42
- AIClientFactory.instance = new AIClientFactory(config);
43
- }
44
- return AIClientFactory.instance;
45
- }
46
- /**
47
- * Reset singleton (useful for testing)
48
- */
49
- static reset() {
50
- AIClientFactory.instance = null;
51
- }
52
- /**
53
- * Update factory configuration
54
- */
55
- configure(config) {
56
- this.config = { ...this.config, ...config };
57
- if (config.workingDirectory) {
58
- this.workingDirectory = config.workingDirectory;
59
- }
60
- }
61
- /**
62
- * Get or create a client based on requirements
63
- */
64
- async getClient(complexity, requiresTools = false, requiresStreaming = false) {
65
- // Determine which client to use
66
- const clientType = this.selectClientType(complexity, requiresTools, requiresStreaming);
67
- // Check cache first
68
- const cacheKey = `${clientType}-${this.workingDirectory}`;
69
- if (this.clientCache.has(cacheKey)) {
70
- return this.clientCache.get(cacheKey);
71
- }
72
- // Create new client
73
- const client = await this.createClient(clientType);
74
- this.clientCache.set(cacheKey, client);
75
- return client;
76
- }
77
- /**
78
- * Get Agent SDK client specifically (for advanced operations)
79
- */
80
- async getAgentClient() {
81
- const cacheKey = `agent-sdk-${this.workingDirectory}`;
82
- if (this.clientCache.has(cacheKey)) {
83
- return this.clientCache.get(cacheKey);
84
- }
85
- const client = new claudeAgentClient_1.ClaudeAgentClient(this.workingDirectory);
86
- // Verify API key is available
87
- if (!client.hasApiKey()) {
88
- throw new AIClient_1.AIClientError('Claude API key not configured. Set MYCONTEXT_CLAUDE_API_KEY or ANTHROPIC_API_KEY', 'NO_API_KEY', false);
89
- }
90
- // Initialize the agent
91
- try {
92
- await client.initialize({
93
- model: this.config.defaultModel,
94
- temperature: this.config.defaultTemperature,
95
- maxTokens: this.config.defaultMaxTokens,
96
- });
97
- }
98
- catch (error) {
99
- throw new AIClient_1.AIClientError(`Failed to initialize Agent SDK: ${error.message}`, 'AGENT_INIT_FAILED', false);
100
- }
101
- this.clientCache.set(cacheKey, client);
102
- return client;
103
- }
104
- /**
105
- * Get Direct API client specifically (for simple operations)
106
- */
107
- async getDirectClient() {
108
- const cacheKey = `direct-api-${this.workingDirectory}`;
109
- if (this.clientCache.has(cacheKey)) {
110
- return this.clientCache.get(cacheKey);
111
- }
112
- const client = new claudeClient_1.ClaudeClient();
113
- if (!client.hasApiKey()) {
114
- throw new AIClient_1.AIClientError('Claude API key not configured. Set MYCONTEXT_CLAUDE_API_KEY or ANTHROPIC_API_KEY', 'NO_API_KEY', false);
115
- }
116
- this.clientCache.set(cacheKey, client);
117
- return client;
118
- }
119
- /**
120
- * Select appropriate client type based on operation requirements
121
- */
122
- selectClientType(complexity, requiresTools = false, requiresStreaming = false) {
123
- // If explicitly configured, use that preference
124
- if (this.config.preferredClient === 'direct-api') {
125
- if (requiresTools) {
126
- console.log(chalk_1.default.yellow('⚠️ Operation requires tools but preferredClient is direct-api. Consider using agent-sdk.'));
127
- }
128
- return 'direct-api';
129
- }
130
- if (this.config.preferredClient === 'agent-sdk') {
131
- return 'agent-sdk';
132
- }
133
- // Auto-select based on requirements
134
- if (this.config.autoSelectByComplexity) {
135
- // Use Agent SDK for:
136
- // - Complex operations
137
- // - Operations requiring tools (file access, validation)
138
- // - Operations requiring streaming
139
- if (complexity === 'complex' ||
140
- requiresTools ||
141
- requiresStreaming) {
142
- return 'agent-sdk';
143
- }
144
- // Use Direct API for:
145
- // - Simple operations
146
- // - Single-shot text generation
147
- if (complexity === 'simple') {
148
- return 'direct-api';
149
- }
150
- // Default to Agent SDK for moderate complexity
151
- return 'agent-sdk';
152
- }
153
- // Default to Agent SDK
154
- return 'agent-sdk';
155
- }
156
- /**
157
- * Create a new client instance
158
- */
159
- async createClient(clientType) {
160
- if (clientType === 'agent-sdk') {
161
- return await this.getAgentClient();
162
- }
163
- else {
164
- return await this.getDirectClient();
165
- }
166
- }
167
- /**
168
- * Check if any AI client is available and configured
169
- */
170
- async isAvailable() {
171
- try {
172
- // Try Agent SDK first
173
- const agentClient = new claudeAgentClient_1.ClaudeAgentClient(this.workingDirectory);
174
- if (agentClient.hasApiKey()) {
175
- const connected = await agentClient.checkConnection();
176
- if (connected) {
177
- console.log(chalk_1.default.green('✅ Claude Agent SDK available'));
178
- return true;
179
- }
180
- }
181
- // Fallback to direct API
182
- const directClient = new claudeClient_1.ClaudeClient();
183
- if (directClient.hasApiKey()) {
184
- const connected = await directClient.checkConnection();
185
- if (connected) {
186
- console.log(chalk_1.default.green('✅ Claude Direct API available'));
187
- return true;
188
- }
189
- }
190
- return false;
191
- }
192
- catch (error) {
193
- return false;
194
- }
195
- }
196
- /**
197
- * Test connection for a specific client type
198
- */
199
- async testConnection(clientType = 'agent-sdk') {
200
- try {
201
- const client = await this.createClient(clientType);
202
- return await client.checkConnection();
203
- }
204
- catch (error) {
205
- return false;
206
- }
207
- }
208
- /**
209
- * Get current configuration
210
- */
211
- getConfig() {
212
- return { ...this.config };
213
- }
214
- /**
215
- * Clear client cache
216
- */
217
- clearCache() {
218
- this.clientCache.clear();
219
- }
220
- /**
221
- * Cleanup all cached clients
222
- */
223
- async cleanup() {
224
- for (const [key, client] of this.clientCache.entries()) {
225
- if (client.cleanup) {
226
- try {
227
- await client.cleanup();
228
- }
229
- catch (error) {
230
- console.error(chalk_1.default.red(`Failed to cleanup client ${key}:`), error);
231
- }
232
- }
233
- }
234
- this.clearCache();
235
- }
236
- /**
237
- * Get statistics about cached clients
238
- */
239
- getStats() {
240
- const stats = {
241
- cachedClients: this.clientCache.size,
242
- clientTypes: {},
243
- };
244
- for (const [key] of this.clientCache.entries()) {
245
- const type = key.split('-')[0];
246
- stats.clientTypes[type] = (stats.clientTypes[type] || 0) + 1;
247
- }
248
- return stats;
249
- }
250
- /**
251
- * Log current factory state (for debugging)
252
- */
253
- logState() {
254
- console.log(chalk_1.default.blue('\n🏭 AI Client Factory State:'));
255
- console.log(chalk_1.default.gray(` Preferred Client: ${this.config.preferredClient}`));
256
- console.log(chalk_1.default.gray(` Fallback Enabled: ${this.config.fallbackEnabled}`));
257
- console.log(chalk_1.default.gray(` Auto-Select: ${this.config.autoSelectByComplexity}`));
258
- console.log(chalk_1.default.gray(` Working Directory: ${this.workingDirectory}`));
259
- const stats = this.getStats();
260
- console.log(chalk_1.default.gray(` Cached Clients: ${stats.cachedClients}`));
261
- if (stats.cachedClients > 0) {
262
- for (const [type, count] of Object.entries(stats.clientTypes)) {
263
- console.log(chalk_1.default.gray(` - ${type}: ${count}`));
264
- }
265
- }
266
- console.log();
267
- }
268
- }
269
- exports.AIClientFactory = AIClientFactory;
270
- /**
271
- * Convenience function to get factory instance
272
- */
273
- function getAIClientFactory(config) {
274
- return AIClientFactory.getInstance(config);
275
- }
276
- /**
277
- * Convenience function to get an AI client
278
- */
279
- async function getAIClient(complexity, requiresTools, requiresStreaming) {
280
- const factory = AIClientFactory.getInstance();
281
- return await factory.getClient(complexity, requiresTools, requiresStreaming);
282
- }
283
- /**
284
- * Convenience function to get Agent SDK client
285
- */
286
- async function getAgentClient() {
287
- const factory = AIClientFactory.getInstance();
288
- return await factory.getAgentClient();
289
- }
290
- //# sourceMappingURL=aiClientFactory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aiClientFactory.js","sourceRoot":"","sources":["../../src/utils/aiClientFactory.ts"],"names":[],"mappings":"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"}
@@ -1,121 +0,0 @@
1
- /**
2
- * AI Client Router
3
- *
4
- * Intelligent routing layer that decides which AI client to use based on
5
- * operation characteristics, context, and system state.
6
- */
7
- import { AgentContext, AIClientOptions } from '../interfaces/AIClient';
8
- import { AIClientFactory } from './aiClientFactory';
9
- /**
10
- * Router that intelligently selects the appropriate AI client for operations
11
- */
12
- export declare class AIClientRouter {
13
- private factory;
14
- private operationHistory;
15
- private performanceMetrics;
16
- constructor(factory?: AIClientFactory);
17
- /**
18
- * Route a simple text generation request
19
- */
20
- generateText(prompt: string, options?: AIClientOptions): Promise<string>;
21
- /**
22
- * Route a component generation request
23
- */
24
- generateComponent(prompt: string, context?: AgentContext, options?: AIClientOptions): Promise<string>;
25
- /**
26
- * Route a component refinement request
27
- */
28
- refineComponent(componentCode: string, prompt: string, context?: AgentContext, options?: AIClientOptions): Promise<string>;
29
- /**
30
- * Route a workflow request (Agent SDK only)
31
- */
32
- runWorkflow(workflowPrompt: string, context?: AgentContext, options?: AIClientOptions): Promise<any>;
33
- /**
34
- * Route a generation with specific tools (Agent SDK only)
35
- */
36
- generateWithTools(prompt: string, tools: string[], context?: AgentContext, options?: AIClientOptions): Promise<any>;
37
- /**
38
- * Analyze operation to determine requirements
39
- */
40
- private analyzeOperation;
41
- /**
42
- * Determine operation complexity
43
- */
44
- private determineComplexity;
45
- /**
46
- * Check if operation requires tools
47
- */
48
- private checkToolRequirement;
49
- /**
50
- * Check if operation would benefit from streaming
51
- */
52
- private checkStreamingRequirement;
53
- /**
54
- * Check if operation is multi-step
55
- */
56
- private checkMultiStepRequirement;
57
- /**
58
- * Check if operation needs file access
59
- */
60
- private checkFileAccessRequirement;
61
- /**
62
- * Check if operation needs validation
63
- */
64
- private checkValidationRequirement;
65
- /**
66
- * Estimate token count for operation
67
- */
68
- private estimateTokens;
69
- /**
70
- * Select appropriate client based on metadata
71
- */
72
- private selectClient;
73
- /**
74
- * Check if client is an Agent SDK client
75
- */
76
- private isAgentClient;
77
- /**
78
- * Handle and transform errors
79
- */
80
- private handleError;
81
- /**
82
- * Record performance metrics
83
- */
84
- private recordPerformance;
85
- /**
86
- * Get performance statistics
87
- */
88
- getPerformanceStats(operation?: string): PerformanceStats;
89
- /**
90
- * Calculate statistics from metrics
91
- */
92
- private calculateStats;
93
- /**
94
- * Log router statistics
95
- */
96
- logStats(): void;
97
- /**
98
- * Clear performance history
99
- */
100
- clearHistory(): void;
101
- }
102
- /**
103
- * Performance statistics
104
- */
105
- interface PerformanceStats {
106
- count: number;
107
- successRate: number;
108
- avgDuration: number;
109
- minDuration: number;
110
- maxDuration: number;
111
- }
112
- /**
113
- * Get router instance
114
- */
115
- export declare function getAIClientRouter(): AIClientRouter;
116
- /**
117
- * Reset router (useful for testing)
118
- */
119
- export declare function resetAIClientRouter(): void;
120
- export {};
121
- //# sourceMappingURL=aiClientRouter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aiClientRouter.d.ts","sourceRoot":"","sources":["../../src/utils/aiClientRouter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAML,YAAY,EACZ,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,gBAAgB,CAA6C;IACrE,OAAO,CAAC,kBAAkB,CAA+C;gBAE7D,OAAO,CAAC,EAAE,eAAe;IAIrC;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,MAAM,CAAC;IAmBlB;;OAEG;IACG,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,MAAM,CAAC;IAoBlB;;OAEG;IACG,eAAe,CACnB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,MAAM,CAAC;IA0BlB;;OAEG;IACG,WAAW,CACf,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,GAAG,CAAC;IAsCf;;OAEG;IACG,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,GAAG,CAAC;IAsCf;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyB3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAe5B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAYjC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAMjC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IASlC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAQlC;;OAEG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;YACW,YAAY;IAgB1B;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,WAAW;IAsCnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;OAEG;IACH,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAezD;;OAEG;IACH,OAAO,CAAC,cAAc;IAuBtB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAehB;;OAEG;IACH,YAAY,IAAI,IAAI;CAIrB;AAuBD;;GAEG;AACH,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAOD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAKlD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}