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,401 +0,0 @@
1
- "use strict";
2
- /**
3
- * AI Client Router
4
- *
5
- * Intelligent routing layer that decides which AI client to use based on
6
- * operation characteristics, context, and system state.
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.AIClientRouter = void 0;
13
- exports.getAIClientRouter = getAIClientRouter;
14
- exports.resetAIClientRouter = resetAIClientRouter;
15
- const AIClient_1 = require("../interfaces/AIClient");
16
- const aiClientFactory_1 = require("./aiClientFactory");
17
- const chalk_1 = __importDefault(require("chalk"));
18
- /**
19
- * Router that intelligently selects the appropriate AI client for operations
20
- */
21
- class AIClientRouter {
22
- constructor(factory) {
23
- this.operationHistory = new Map();
24
- this.performanceMetrics = new Map();
25
- this.factory = factory || aiClientFactory_1.AIClientFactory.getInstance();
26
- }
27
- /**
28
- * Route a simple text generation request
29
- */
30
- async generateText(prompt, options) {
31
- const metadata = this.analyzeOperation({
32
- prompt,
33
- operationType: 'text-generation',
34
- });
35
- const client = await this.selectClient(metadata);
36
- const startTime = Date.now();
37
- try {
38
- const result = await client.generateText(prompt, options);
39
- this.recordPerformance('text-generation', Date.now() - startTime, true);
40
- return result;
41
- }
42
- catch (error) {
43
- this.recordPerformance('text-generation', Date.now() - startTime, false);
44
- throw this.handleError(error, metadata);
45
- }
46
- }
47
- /**
48
- * Route a component generation request
49
- */
50
- async generateComponent(prompt, context, options) {
51
- const metadata = this.analyzeOperation({
52
- prompt,
53
- context,
54
- operationType: 'component-generation',
55
- });
56
- const client = await this.selectClient(metadata);
57
- const startTime = Date.now();
58
- try {
59
- const result = await client.generateComponent(prompt, context, options);
60
- this.recordPerformance('component-generation', Date.now() - startTime, true);
61
- return result;
62
- }
63
- catch (error) {
64
- this.recordPerformance('component-generation', Date.now() - startTime, false);
65
- throw this.handleError(error, metadata);
66
- }
67
- }
68
- /**
69
- * Route a component refinement request
70
- */
71
- async refineComponent(componentCode, prompt, context, options) {
72
- const metadata = this.analyzeOperation({
73
- prompt,
74
- context,
75
- componentCode,
76
- operationType: 'component-refinement',
77
- });
78
- const client = await this.selectClient(metadata);
79
- const startTime = Date.now();
80
- try {
81
- const result = await client.generateComponentRefinement(componentCode, prompt, context, options);
82
- this.recordPerformance('component-refinement', Date.now() - startTime, true);
83
- return result;
84
- }
85
- catch (error) {
86
- this.recordPerformance('component-refinement', Date.now() - startTime, false);
87
- throw this.handleError(error, metadata);
88
- }
89
- }
90
- /**
91
- * Route a workflow request (Agent SDK only)
92
- */
93
- async runWorkflow(workflowPrompt, context, options) {
94
- const metadata = this.analyzeOperation({
95
- prompt: workflowPrompt,
96
- context,
97
- operationType: 'workflow',
98
- });
99
- // Workflows always require Agent SDK
100
- metadata.requiresTools = true;
101
- metadata.requiresMultiStep = true;
102
- metadata.complexity = 'complex';
103
- const client = await this.selectClient(metadata);
104
- if (!this.isAgentClient(client)) {
105
- throw new AIClient_1.AIClientError('Workflow operations require Agent SDK client', 'AGENT_SDK_REQUIRED', false);
106
- }
107
- const startTime = Date.now();
108
- try {
109
- const result = await client.runWorkflow(workflowPrompt, context, options);
110
- this.recordPerformance('workflow', Date.now() - startTime, true);
111
- return result;
112
- }
113
- catch (error) {
114
- this.recordPerformance('workflow', Date.now() - startTime, false);
115
- throw this.handleError(error, metadata);
116
- }
117
- }
118
- /**
119
- * Route a generation with specific tools (Agent SDK only)
120
- */
121
- async generateWithTools(prompt, tools, context, options) {
122
- const metadata = this.analyzeOperation({
123
- prompt,
124
- context,
125
- tools,
126
- operationType: 'generation-with-tools',
127
- });
128
- metadata.requiresTools = true;
129
- metadata.complexity = 'complex';
130
- const client = await this.selectClient(metadata);
131
- if (!this.isAgentClient(client)) {
132
- throw new AIClient_1.AIClientError('Tool-based generation requires Agent SDK client', 'AGENT_SDK_REQUIRED', false);
133
- }
134
- const startTime = Date.now();
135
- try {
136
- const result = await client.generateWithTools(prompt, tools, context, options);
137
- this.recordPerformance('generation-with-tools', Date.now() - startTime, true);
138
- return result;
139
- }
140
- catch (error) {
141
- this.recordPerformance('generation-with-tools', Date.now() - startTime, false);
142
- throw this.handleError(error, metadata);
143
- }
144
- }
145
- /**
146
- * Analyze operation to determine requirements
147
- */
148
- analyzeOperation(input) {
149
- const metadata = {
150
- complexity: this.determineComplexity(input),
151
- requiresTools: this.checkToolRequirement(input),
152
- requiresStreaming: this.checkStreamingRequirement(input),
153
- requiresMultiStep: this.checkMultiStepRequirement(input),
154
- requiresFileAccess: this.checkFileAccessRequirement(input),
155
- requiresValidation: this.checkValidationRequirement(input),
156
- estimatedTokens: this.estimateTokens(input),
157
- };
158
- // Store for future analysis
159
- const key = input.operationType || 'unknown';
160
- this.operationHistory.set(key, metadata);
161
- return metadata;
162
- }
163
- /**
164
- * Determine operation complexity
165
- */
166
- determineComplexity(input) {
167
- const { prompt, context, operationType, componentCode } = input;
168
- // Workflows and multi-file operations are always complex
169
- if (operationType === 'workflow' || operationType === 'generation-with-tools') {
170
- return 'complex';
171
- }
172
- // Component operations with rich context are moderate to complex
173
- if (operationType === 'component-generation' || operationType === 'component-refinement') {
174
- const hasContext = context && (context.prd || context.types || context.brand);
175
- const isLarge = (prompt?.length || 0) > 1000 || (componentCode?.length || 0) > 2000;
176
- if (hasContext && isLarge)
177
- return 'complex';
178
- if (hasContext || isLarge)
179
- return 'moderate';
180
- }
181
- // Simple text generation
182
- if ((prompt?.length || 0) < 500) {
183
- return 'simple';
184
- }
185
- return 'moderate';
186
- }
187
- /**
188
- * Check if operation requires tools
189
- */
190
- checkToolRequirement(input) {
191
- const { operationType, tools, context } = input;
192
- // Explicit tool requirements
193
- if (tools && tools.length > 0)
194
- return true;
195
- // Workflow operations need tools
196
- if (operationType === 'workflow')
197
- return true;
198
- // Check context for file references
199
- if (context?.workingDirectory)
200
- return true;
201
- return false;
202
- }
203
- /**
204
- * Check if operation would benefit from streaming
205
- */
206
- checkStreamingRequirement(input) {
207
- const { operationType, estimatedDuration } = input;
208
- // Long-running operations benefit from streaming
209
- if (estimatedDuration && estimatedDuration > 5000)
210
- return true;
211
- // Workflows should stream progress
212
- if (operationType === 'workflow')
213
- return true;
214
- return false;
215
- }
216
- /**
217
- * Check if operation is multi-step
218
- */
219
- checkMultiStepRequirement(input) {
220
- const { operationType } = input;
221
- return operationType === 'workflow' || operationType === 'generation-with-tools';
222
- }
223
- /**
224
- * Check if operation needs file access
225
- */
226
- checkFileAccessRequirement(input) {
227
- const { context, tools } = input;
228
- if (context?.workingDirectory)
229
- return true;
230
- if (tools?.some(t => ['Read', 'Write', 'Edit', 'Glob'].includes(t)))
231
- return true;
232
- return false;
233
- }
234
- /**
235
- * Check if operation needs validation
236
- */
237
- checkValidationRequirement(input) {
238
- const { operationType } = input;
239
- return operationType === 'component-generation' ||
240
- operationType === 'component-refinement' ||
241
- operationType === 'workflow';
242
- }
243
- /**
244
- * Estimate token count for operation
245
- */
246
- estimateTokens(input) {
247
- const { prompt, context, componentCode } = input;
248
- let tokens = 0;
249
- // Estimate prompt tokens (rough approximation: 1 token ≈ 4 characters)
250
- if (prompt)
251
- tokens += Math.ceil(prompt.length / 4);
252
- if (componentCode)
253
- tokens += Math.ceil(componentCode.length / 4);
254
- // Add context tokens
255
- if (context) {
256
- if (context.prd)
257
- tokens += Math.ceil(context.prd.length / 4);
258
- if (context.types)
259
- tokens += Math.ceil(context.types.length / 4);
260
- if (context.brand)
261
- tokens += Math.ceil(context.brand.length / 4);
262
- }
263
- return tokens;
264
- }
265
- /**
266
- * Select appropriate client based on metadata
267
- */
268
- async selectClient(metadata) {
269
- try {
270
- return await this.factory.getClient(metadata.complexity, metadata.requiresTools, metadata.requiresStreaming);
271
- }
272
- catch (error) {
273
- throw new AIClient_1.AIClientError(`Failed to get AI client: ${error.message}`, 'CLIENT_SELECTION_FAILED', false);
274
- }
275
- }
276
- /**
277
- * Check if client is an Agent SDK client
278
- */
279
- isAgentClient(client) {
280
- return client.clientType === 'agent-sdk' && client.supportsTools;
281
- }
282
- /**
283
- * Handle and transform errors
284
- */
285
- handleError(error, metadata) {
286
- if (error instanceof AIClient_1.AIClientError) {
287
- return error;
288
- }
289
- // Transform common errors
290
- if (error.message?.includes('permission')) {
291
- return new AIClient_1.AIClientError(error.message, 'PERMISSION_DENIED', true);
292
- }
293
- if (error.message?.includes('timeout')) {
294
- return new AIClient_1.AIClientError(error.message, 'TIMEOUT', true);
295
- }
296
- if (error.message?.includes('context')) {
297
- return new AIClient_1.AIClientError(error.message, 'CONTEXT_OVERFLOW', true);
298
- }
299
- // Generic error
300
- return new AIClient_1.AIClientError(error.message || 'Unknown error', 'UNKNOWN_ERROR', false);
301
- }
302
- /**
303
- * Record performance metrics
304
- */
305
- recordPerformance(operation, duration, success) {
306
- if (!this.performanceMetrics.has(operation)) {
307
- this.performanceMetrics.set(operation, []);
308
- }
309
- this.performanceMetrics.get(operation).push({
310
- duration,
311
- success,
312
- timestamp: Date.now(),
313
- });
314
- // Keep only last 100 entries per operation
315
- const metrics = this.performanceMetrics.get(operation);
316
- if (metrics.length > 100) {
317
- metrics.shift();
318
- }
319
- }
320
- /**
321
- * Get performance statistics
322
- */
323
- getPerformanceStats(operation) {
324
- if (operation) {
325
- const metrics = this.performanceMetrics.get(operation) || [];
326
- return this.calculateStats(metrics);
327
- }
328
- // Aggregate all operations
329
- const allMetrics = [];
330
- for (const metrics of this.performanceMetrics.values()) {
331
- allMetrics.push(...metrics);
332
- }
333
- return this.calculateStats(allMetrics);
334
- }
335
- /**
336
- * Calculate statistics from metrics
337
- */
338
- calculateStats(metrics) {
339
- if (metrics.length === 0) {
340
- return {
341
- count: 0,
342
- successRate: 0,
343
- avgDuration: 0,
344
- minDuration: 0,
345
- maxDuration: 0,
346
- };
347
- }
348
- const durations = metrics.map(m => m.duration);
349
- const successes = metrics.filter(m => m.success).length;
350
- return {
351
- count: metrics.length,
352
- successRate: successes / metrics.length,
353
- avgDuration: durations.reduce((a, b) => a + b, 0) / durations.length,
354
- minDuration: Math.min(...durations),
355
- maxDuration: Math.max(...durations),
356
- };
357
- }
358
- /**
359
- * Log router statistics
360
- */
361
- logStats() {
362
- console.log(chalk_1.default.blue('\n📊 AI Client Router Statistics:'));
363
- for (const [operation, metrics] of this.performanceMetrics.entries()) {
364
- const stats = this.calculateStats(metrics);
365
- console.log(chalk_1.default.gray(`\n ${operation}:`));
366
- console.log(chalk_1.default.gray(` Count: ${stats.count}`));
367
- console.log(chalk_1.default.gray(` Success Rate: ${(stats.successRate * 100).toFixed(1)}%`));
368
- console.log(chalk_1.default.gray(` Avg Duration: ${stats.avgDuration.toFixed(0)}ms`));
369
- console.log(chalk_1.default.gray(` Range: ${stats.minDuration.toFixed(0)}ms - ${stats.maxDuration.toFixed(0)}ms`));
370
- }
371
- console.log();
372
- }
373
- /**
374
- * Clear performance history
375
- */
376
- clearHistory() {
377
- this.operationHistory.clear();
378
- this.performanceMetrics.clear();
379
- }
380
- }
381
- exports.AIClientRouter = AIClientRouter;
382
- /**
383
- * Singleton router instance
384
- */
385
- let routerInstance = null;
386
- /**
387
- * Get router instance
388
- */
389
- function getAIClientRouter() {
390
- if (!routerInstance) {
391
- routerInstance = new AIClientRouter();
392
- }
393
- return routerInstance;
394
- }
395
- /**
396
- * Reset router (useful for testing)
397
- */
398
- function resetAIClientRouter() {
399
- routerInstance = null;
400
- }
401
- //# sourceMappingURL=aiClientRouter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aiClientRouter.js","sourceRoot":"","sources":["../../src/utils/aiClientRouter.ts"],"names":[],"mappings":"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"}
@@ -1,137 +0,0 @@
1
- /**
2
- * Secure API Key Management System for MyContext CLI
3
- *
4
- * Handles storage, validation, and secure access to API keys for multiple AI providers.
5
- * Supports environment variables, encrypted local storage, and secure key rotation.
6
- */
7
- export interface APIKeyConfig {
8
- provider: string;
9
- key: string;
10
- environment?: string;
11
- createdAt: string;
12
- lastUsed?: string;
13
- isValid?: boolean;
14
- permissions?: string[];
15
- metadata?: Record<string, unknown>;
16
- }
17
- export interface APIKeyValidation {
18
- isValid: boolean;
19
- provider: string;
20
- permissions?: string[];
21
- rateLimit?: {
22
- requests: number;
23
- window: number;
24
- resetTime?: string;
25
- };
26
- error?: string;
27
- }
28
- export interface ProviderConfig {
29
- name: string;
30
- envVar: string;
31
- validationUrl?: string;
32
- requiredPermissions?: string[];
33
- rateLimits?: {
34
- requests: number;
35
- window: number;
36
- };
37
- }
38
- export declare class APIKeyManager {
39
- private static instance;
40
- private keys;
41
- private configPath;
42
- private encryptionKey;
43
- private providers;
44
- private constructor();
45
- static getInstance(): APIKeyManager;
46
- /**
47
- * Initialize supported AI providers
48
- */
49
- private initializeProviders;
50
- /**
51
- * Get or generate encryption key for secure storage
52
- */
53
- private getEncryptionKey;
54
- /**
55
- * Encrypt sensitive data
56
- */
57
- private encrypt;
58
- /**
59
- * Decrypt sensitive data
60
- */
61
- private decrypt;
62
- /**
63
- * Load API keys from secure storage
64
- */
65
- loadKeys(): Promise<void>;
66
- /**
67
- * Save API keys to secure storage
68
- */
69
- saveKeys(): Promise<void>;
70
- /**
71
- * Get API key for a provider
72
- */
73
- getKey(provider: string): Promise<string | null>;
74
- /**
75
- * Get API key from environment variables
76
- */
77
- private getKeyFromEnvironment;
78
- /**
79
- * Set API key for a provider
80
- */
81
- setKey(provider: string, key: string, options?: Partial<APIKeyConfig>): Promise<void>;
82
- /**
83
- * Validate API key format
84
- */
85
- private validateKeyFormat;
86
- /**
87
- * Validate API key with provider
88
- */
89
- validateKey(provider: string, key?: string): Promise<APIKeyValidation>;
90
- /**
91
- * Validate API key with provider's API
92
- */
93
- private validateWithProvider;
94
- /**
95
- * Remove API key for a provider
96
- */
97
- removeKey(provider: string): Promise<void>;
98
- /**
99
- * List all configured API keys
100
- */
101
- listKeys(): Array<{
102
- provider: string;
103
- hasKey: boolean;
104
- source: "environment" | "storage" | "none";
105
- }>;
106
- /**
107
- * Get provider configuration
108
- */
109
- getProviderConfig(provider: string): ProviderConfig | undefined;
110
- /**
111
- * List all supported providers
112
- */
113
- getSupportedProviders(): string[];
114
- /**
115
- * Clear all stored API keys
116
- */
117
- clearAllKeys(): Promise<void>;
118
- /**
119
- * Export API keys (for backup purposes)
120
- */
121
- exportKeys(password: string): Promise<string>;
122
- /**
123
- * Import API keys from backup
124
- */
125
- importKeys(backupData: string, password: string): Promise<void>;
126
- }
127
- export declare const apiKeyManager: APIKeyManager;
128
- export declare const getAPIKey: (provider: string) => Promise<string | null>;
129
- export declare const setAPIKey: (provider: string, key: string, options?: Partial<APIKeyConfig>) => Promise<void>;
130
- export declare const validateAPIKey: (provider: string, key?: string) => Promise<APIKeyValidation>;
131
- export declare const removeAPIKey: (provider: string) => Promise<void>;
132
- export declare const listAPIKeys: () => {
133
- provider: string;
134
- hasKey: boolean;
135
- source: "environment" | "storage" | "none";
136
- }[];
137
- //# sourceMappingURL=apiKeyManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apiKeyManager.d.ts","sourceRoot":"","sources":["../../src/utils/apiKeyManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,IAAI,CAAwC;IACpD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAA0C;IAE3D,OAAO;WAMO,WAAW,IAAI,aAAa;IAO1C;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6C3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;IACH,OAAO,CAAC,OAAO;IAUf;;OAEG;IACH,OAAO,CAAC,OAAO;IAqBf;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB/B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB/B;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAmBtD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;IACG,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,OAAO,CAAC,YAAY,CAAM,GAClC,OAAO,CAAC,IAAI,CAAC;IAwBhB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgE5E;;OAEG;YACW,oBAAoB;IAsBlC;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhD;;OAEG;IACH,QAAQ,IAAI,KAAK,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC;KAC5C,CAAC;IA4BF;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI/D;;OAEG;IACH,qBAAqB,IAAI,MAAM,EAAE;IAIjC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAMnC;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA2BnD;;OAEG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAuCtE;AAGD,eAAO,MAAM,aAAa,eAA8B,CAAC;AAGzD,eAAO,MAAM,SAAS,GAAI,UAAU,MAAM,2BAAmC,CAAC;AAC9E,eAAO,MAAM,SAAS,GACpB,UAAU,MAAM,EAChB,KAAK,MAAM,EACX,UAAU,OAAO,CAAC,YAAY,CAAC,kBACgB,CAAC;AAClD,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,MAAM,MAAM,8BACnB,CAAC;AAC3C,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM,kBACV,CAAC;AACpC,eAAO,MAAM,WAAW;cA9IV,MAAM;YACR,OAAO;YACP,aAAa,GAAG,SAAS,GAAG,MAAM;GA4IW,CAAC"}