mycontext-cli 1.0.94 → 2.0.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 +446 -130
- package/dist/agents/implementations/ClaudeAgentWorkflow.d.ts +110 -0
- package/dist/agents/implementations/ClaudeAgentWorkflow.d.ts.map +1 -0
- package/dist/agents/implementations/ClaudeAgentWorkflow.js +590 -0
- package/dist/agents/implementations/ClaudeAgentWorkflow.js.map +1 -0
- package/dist/agents/implementations/WorkflowAgent.d.ts +5 -0
- package/dist/agents/implementations/WorkflowAgent.d.ts.map +1 -1
- package/dist/agents/implementations/WorkflowAgent.js +98 -10
- package/dist/agents/implementations/WorkflowAgent.js.map +1 -1
- package/dist/agents/interfaces/SubAgent.d.ts +5 -0
- package/dist/agents/interfaces/SubAgent.d.ts.map +1 -1
- package/dist/commands/build-app.d.ts +5 -0
- package/dist/commands/build-app.d.ts.map +1 -1
- package/dist/commands/build-app.js +127 -4
- package/dist/commands/build-app.js.map +1 -1
- package/dist/commands/compile-prd.d.ts.map +1 -1
- package/dist/commands/compile-prd.js +18 -54
- package/dist/commands/compile-prd.js.map +1 -1
- package/dist/commands/enhance.d.ts +21 -0
- package/dist/commands/enhance.d.ts.map +1 -1
- package/dist/commands/enhance.js +155 -12
- package/dist/commands/enhance.js.map +1 -1
- package/dist/commands/generate-components.d.ts +43 -0
- package/dist/commands/generate-components.d.ts.map +1 -1
- package/dist/commands/generate-components.js +270 -0
- package/dist/commands/generate-components.js.map +1 -1
- package/dist/constants/fileNames.d.ts +68 -0
- package/dist/constants/fileNames.d.ts.map +1 -0
- package/dist/constants/fileNames.js +102 -0
- package/dist/constants/fileNames.js.map +1 -0
- package/dist/interfaces/AIClient.d.ts +198 -0
- package/dist/interfaces/AIClient.d.ts.map +1 -0
- package/dist/interfaces/AIClient.js +40 -0
- package/dist/interfaces/AIClient.js.map +1 -0
- package/dist/package.json +5 -3
- package/dist/types/index.d.ts +423 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/agentDefinitions.d.ts +60 -0
- package/dist/utils/agentDefinitions.d.ts.map +1 -0
- package/dist/utils/agentDefinitions.js +344 -0
- package/dist/utils/agentDefinitions.js.map +1 -0
- package/dist/utils/aiClientFactory.d.ts +93 -0
- package/dist/utils/aiClientFactory.d.ts.map +1 -0
- package/dist/utils/aiClientFactory.js +290 -0
- package/dist/utils/aiClientFactory.js.map +1 -0
- package/dist/utils/aiClientRouter.d.ts +121 -0
- package/dist/utils/aiClientRouter.d.ts.map +1 -0
- package/dist/utils/aiClientRouter.js +401 -0
- package/dist/utils/aiClientRouter.js.map +1 -0
- package/dist/utils/claudeAgentClient.d.ts +166 -0
- package/dist/utils/claudeAgentClient.d.ts.map +1 -0
- package/dist/utils/claudeAgentClient.js +714 -0
- package/dist/utils/claudeAgentClient.js.map +1 -0
- package/dist/utils/claudeClient.d.ts +7 -3
- package/dist/utils/claudeClient.d.ts.map +1 -1
- package/dist/utils/claudeClient.js +28 -5
- package/dist/utils/claudeClient.js.map +1 -1
- package/dist/utils/completeArchitectureEngine.d.ts +67 -0
- package/dist/utils/completeArchitectureEngine.d.ts.map +1 -0
- package/dist/utils/completeArchitectureEngine.js +329 -0
- package/dist/utils/completeArchitectureEngine.js.map +1 -0
- package/dist/utils/contextLoader.d.ts +1 -12
- package/dist/utils/contextLoader.d.ts.map +1 -1
- package/dist/utils/contextLoader.js +29 -150
- package/dist/utils/contextLoader.js.map +1 -1
- package/dist/utils/contextManager.d.ts +76 -0
- package/dist/utils/contextManager.d.ts.map +1 -0
- package/dist/utils/contextManager.js +327 -0
- package/dist/utils/contextManager.js.map +1 -0
- package/dist/utils/hybridAIClient.d.ts +25 -1
- package/dist/utils/hybridAIClient.d.ts.map +1 -1
- package/dist/utils/hybridAIClient.js +69 -2
- package/dist/utils/hybridAIClient.js.map +1 -1
- package/dist/utils/mcpAgentIntegration.d.ts +104 -0
- package/dist/utils/mcpAgentIntegration.d.ts.map +1 -0
- package/dist/utils/mcpAgentIntegration.js +382 -0
- package/dist/utils/mcpAgentIntegration.js.map +1 -0
- package/dist/utils/mcpTools.d.ts +164 -0
- package/dist/utils/mcpTools.d.ts.map +1 -0
- package/dist/utils/mcpTools.js +385 -0
- package/dist/utils/mcpTools.js.map +1 -0
- package/dist/utils/routeGenerator.d.ts +56 -0
- package/dist/utils/routeGenerator.d.ts.map +1 -0
- package/dist/utils/routeGenerator.js +231 -0
- package/dist/utils/routeGenerator.js.map +1 -0
- package/dist/utils/serverActionGenerator.d.ts +56 -0
- package/dist/utils/serverActionGenerator.d.ts.map +1 -0
- package/dist/utils/serverActionGenerator.js +258 -0
- package/dist/utils/serverActionGenerator.js.map +1 -0
- package/dist/utils/streamingHandler.d.ts +98 -0
- package/dist/utils/streamingHandler.d.ts.map +1 -0
- package/dist/utils/streamingHandler.js +259 -0
- package/dist/utils/streamingHandler.js.map +1 -0
- package/dist/utils/toolPermissions.d.ts +105 -0
- package/dist/utils/toolPermissions.d.ts.map +1 -0
- package/dist/utils/toolPermissions.js +408 -0
- package/dist/utils/toolPermissions.js.map +1 -0
- package/package.json +5 -3
|
@@ -0,0 +1,401 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aiClientRouter.js","sourceRoot":"","sources":["../../src/utils/aiClientRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { type AgentDefinition } from "@anthropic-ai/claude-agent-sdk";
|
|
2
|
+
import { AgentAIClient, AIClientOptions, AgentContext, AgentConfiguration, GenerationResult, WorkflowResult, StreamingOptions, HookCallback, HookEvent, CanUseToolCallback, SettingSource, MCPTool } from "../interfaces/AIClient";
|
|
3
|
+
export interface ClaudeAgentOptions {
|
|
4
|
+
model?: string;
|
|
5
|
+
temperature?: number;
|
|
6
|
+
maxTokens?: number;
|
|
7
|
+
systemPrompt?: string;
|
|
8
|
+
allowedTools?: string[];
|
|
9
|
+
disallowedTools?: string[];
|
|
10
|
+
permissionMode?: "strict" | "permissive";
|
|
11
|
+
contextManagement?: boolean;
|
|
12
|
+
agents?: Record<string, AgentDefinition>;
|
|
13
|
+
settingSources?: SettingSource[];
|
|
14
|
+
hooks?: Partial<Record<HookEvent, HookCallback>>;
|
|
15
|
+
canUseTool?: CanUseToolCallback;
|
|
16
|
+
mcpTools?: MCPTool[];
|
|
17
|
+
}
|
|
18
|
+
export declare class ClaudeAgentClient implements AgentAIClient {
|
|
19
|
+
readonly clientType: "agent-sdk";
|
|
20
|
+
readonly supportsTools = true;
|
|
21
|
+
readonly supportsStreaming = true;
|
|
22
|
+
private queryInstance;
|
|
23
|
+
private apiKey;
|
|
24
|
+
private baseUrl;
|
|
25
|
+
private workingDirectory;
|
|
26
|
+
private options;
|
|
27
|
+
private registeredAgents;
|
|
28
|
+
private registeredHooks;
|
|
29
|
+
private mcpServer;
|
|
30
|
+
private streamingHandler;
|
|
31
|
+
constructor(workingDirectory?: string);
|
|
32
|
+
hasApiKey(): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Load API key from environment variables and project files
|
|
35
|
+
*/
|
|
36
|
+
private loadApiKey;
|
|
37
|
+
/**
|
|
38
|
+
* Load token from project-level env files
|
|
39
|
+
* Priority: .mycontext/.env -> .env
|
|
40
|
+
*/
|
|
41
|
+
private loadTokenFromEnvFiles;
|
|
42
|
+
/**
|
|
43
|
+
* Initialize the Claude Agent with configuration
|
|
44
|
+
*/
|
|
45
|
+
initialize(options?: ClaudeAgentOptions): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Setup MCP server with custom tools
|
|
48
|
+
*/
|
|
49
|
+
private setupMCPServer;
|
|
50
|
+
/**
|
|
51
|
+
* Convert our hook format to SDK hook format
|
|
52
|
+
*/
|
|
53
|
+
private convertHooks;
|
|
54
|
+
/**
|
|
55
|
+
* Wrap our CanUseTool callback for SDK compatibility
|
|
56
|
+
*/
|
|
57
|
+
private wrapCanUseTool;
|
|
58
|
+
/**
|
|
59
|
+
* Check connection to Claude API
|
|
60
|
+
*/
|
|
61
|
+
checkConnection(): Promise<boolean>;
|
|
62
|
+
/**
|
|
63
|
+
* Generate text using Claude Agent SDK
|
|
64
|
+
*/
|
|
65
|
+
generateText(prompt: string, options?: ClaudeAgentOptions): Promise<string>;
|
|
66
|
+
/**
|
|
67
|
+
* Generate React component with enhanced context
|
|
68
|
+
*/
|
|
69
|
+
generateComponent(prompt: string, context?: AgentContext, options?: ClaudeAgentOptions): Promise<string>;
|
|
70
|
+
/**
|
|
71
|
+
* Refine existing component with Claude Agent SDK
|
|
72
|
+
*/
|
|
73
|
+
generateComponentRefinement(componentCode: string, prompt: string, context?: AgentContext, options?: ClaudeAgentOptions): Promise<string>;
|
|
74
|
+
/**
|
|
75
|
+
* Run agent workflow with context management
|
|
76
|
+
*/
|
|
77
|
+
runAgentWorkflow(workflowPrompt: string, context?: AgentContext, options?: ClaudeAgentOptions): Promise<{
|
|
78
|
+
content: string;
|
|
79
|
+
context: AgentContext;
|
|
80
|
+
}>;
|
|
81
|
+
/**
|
|
82
|
+
* Get available models
|
|
83
|
+
*/
|
|
84
|
+
listModels(): Promise<string[]>;
|
|
85
|
+
/**
|
|
86
|
+
* Set API key
|
|
87
|
+
*/
|
|
88
|
+
setApiKey(apiKey: string): void;
|
|
89
|
+
/**
|
|
90
|
+
* Get default system prompt for MyContext CLI
|
|
91
|
+
*/
|
|
92
|
+
private getDefaultSystemPrompt;
|
|
93
|
+
/**
|
|
94
|
+
* Build comprehensive context prompt for component generation
|
|
95
|
+
*/
|
|
96
|
+
private buildComponentContextPrompt;
|
|
97
|
+
/**
|
|
98
|
+
* Build refinement prompt
|
|
99
|
+
*/
|
|
100
|
+
private buildRefinementPrompt;
|
|
101
|
+
/**
|
|
102
|
+
* Build workflow context prompt
|
|
103
|
+
*/
|
|
104
|
+
private buildWorkflowContextPrompt;
|
|
105
|
+
/**
|
|
106
|
+
* Update context from agent response
|
|
107
|
+
*/
|
|
108
|
+
private updateContextFromResponse;
|
|
109
|
+
/**
|
|
110
|
+
* Generate with specific tools enabled
|
|
111
|
+
*/
|
|
112
|
+
generateWithTools(prompt: string, tools: string[], context?: AgentContext, options?: AIClientOptions): Promise<GenerationResult>;
|
|
113
|
+
/**
|
|
114
|
+
* Generate with streaming progress (using StreamingHandler)
|
|
115
|
+
*/
|
|
116
|
+
generateStream(prompt: string, streamOptions: StreamingOptions, context?: AgentContext, options?: AIClientOptions): Promise<GenerationResult>;
|
|
117
|
+
/**
|
|
118
|
+
* Run agent workflow with enhanced context management
|
|
119
|
+
*/
|
|
120
|
+
runWorkflow(workflowPrompt: string, context?: AgentContext, options?: AIClientOptions): Promise<WorkflowResult>;
|
|
121
|
+
/**
|
|
122
|
+
* Configure agent with specific settings
|
|
123
|
+
*/
|
|
124
|
+
configureAgent(config: AgentConfiguration): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* Request permission for an operation (placeholder for future implementation)
|
|
127
|
+
*/
|
|
128
|
+
requestPermission(operation: string, target: string): Promise<boolean>;
|
|
129
|
+
/**
|
|
130
|
+
* Use a specific agent for generation
|
|
131
|
+
*/
|
|
132
|
+
useAgent(agentName: string, prompt: string, context?: AgentContext, options?: AIClientOptions): Promise<GenerationResult>;
|
|
133
|
+
/**
|
|
134
|
+
* Register a custom agent
|
|
135
|
+
*/
|
|
136
|
+
registerAgent(name: string, agent: AgentDefinition): void;
|
|
137
|
+
/**
|
|
138
|
+
* Register a hook
|
|
139
|
+
*/
|
|
140
|
+
registerHook(event: HookEvent, callback: HookCallback): void;
|
|
141
|
+
/**
|
|
142
|
+
* Get list of available agents
|
|
143
|
+
*/
|
|
144
|
+
getAvailableAgents(): string[];
|
|
145
|
+
/**
|
|
146
|
+
* Get agent info
|
|
147
|
+
*/
|
|
148
|
+
getAgentInfo(name: string): AgentDefinition | undefined;
|
|
149
|
+
/**
|
|
150
|
+
* Enable/disable specific tools
|
|
151
|
+
*/
|
|
152
|
+
setToolPermissions(allowed?: string[], disallowed?: string[]): void;
|
|
153
|
+
/**
|
|
154
|
+
* Get MCP server instance
|
|
155
|
+
*/
|
|
156
|
+
getMCPServer(): any;
|
|
157
|
+
/**
|
|
158
|
+
* Check if agent is available
|
|
159
|
+
*/
|
|
160
|
+
hasAgent(name: string): boolean;
|
|
161
|
+
/**
|
|
162
|
+
* Cleanup resources
|
|
163
|
+
*/
|
|
164
|
+
cleanup(): Promise<void>;
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=claudeAgentClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeAgentClient.d.ts","sourceRoot":"","sources":["../../src/utils/claudeAgentClient.ts"],"names":[],"mappings":"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"}
|