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.
- package/dist/agents/communication/AgentCommunicationManager.d.ts +3 -3
- package/dist/agents/communication/AgentCommunicationManager.d.ts.map +1 -1
- package/dist/agents/communication/AgentCommunicationManager.js +7 -6
- package/dist/agents/communication/AgentCommunicationManager.js.map +1 -1
- package/dist/agents/evolution/CodeEvolutionEngine.d.ts.map +1 -1
- package/dist/agents/evolution/CodeEvolutionEngine.js +10 -7
- package/dist/agents/evolution/CodeEvolutionEngine.js.map +1 -1
- package/dist/agents/implementations/ArchitectAgent.js +2 -2
- package/dist/agents/implementations/ArchitectAgent.js.map +1 -1
- package/dist/agents/implementations/BackendDevAgent.d.ts.map +1 -1
- package/dist/agents/implementations/BackendDevAgent.js +4 -1
- package/dist/agents/implementations/BackendDevAgent.js.map +1 -1
- package/dist/agents/implementations/BuildStrategyAgent.d.ts.map +1 -1
- package/dist/agents/implementations/BuildStrategyAgent.js +4 -3
- package/dist/agents/implementations/BuildStrategyAgent.js.map +1 -1
- package/dist/agents/implementations/CodeGenSubAgent.d.ts.map +1 -1
- package/dist/agents/implementations/CodeGenSubAgent.js +6 -5
- package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -1
- package/dist/agents/implementations/DocsSubAgent.js +2 -2
- package/dist/agents/implementations/DocsSubAgent.js.map +1 -1
- package/dist/agents/implementations/EnhancementAgent.d.ts.map +1 -1
- package/dist/agents/implementations/EnhancementAgent.js +6 -4
- package/dist/agents/implementations/EnhancementAgent.js.map +1 -1
- package/dist/agents/implementations/InteractiveAgent.d.ts.map +1 -1
- package/dist/agents/implementations/InteractiveAgent.js +8 -1
- package/dist/agents/implementations/InteractiveAgent.js.map +1 -1
- package/dist/agents/implementations/PromptConstructorAgent.d.ts.map +1 -1
- package/dist/agents/implementations/PromptConstructorAgent.js +79 -31
- package/dist/agents/implementations/PromptConstructorAgent.js.map +1 -1
- package/dist/agents/implementations/QASubAgent.js +2 -2
- package/dist/agents/implementations/QASubAgent.js.map +1 -1
- package/dist/agents/implementations/SecurityAgent.js +2 -2
- package/dist/agents/implementations/SecurityAgent.js.map +1 -1
- package/dist/agents/implementations/WorkflowAgent.d.ts +0 -1
- package/dist/agents/implementations/WorkflowAgent.d.ts.map +1 -1
- package/dist/agents/implementations/WorkflowAgent.js +6 -10
- package/dist/agents/implementations/WorkflowAgent.js.map +1 -1
- package/dist/agents/intelligence/ProjectIntelligence.js +5 -5
- package/dist/agents/intelligence/ProjectIntelligence.js.map +1 -1
- package/dist/agents/orchestrator/SubAgentOrchestrator.d.ts.map +1 -1
- package/dist/agents/orchestrator/SubAgentOrchestrator.js +4 -4
- package/dist/agents/orchestrator/SubAgentOrchestrator.js.map +1 -1
- package/dist/cli.js +8 -40
- package/dist/cli.js.map +1 -1
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +9 -9
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/enhance.d.ts.map +1 -1
- package/dist/commands/enhance.js +23 -78
- package/dist/commands/enhance.js.map +1 -1
- package/dist/commands/generate-components.d.ts.map +1 -1
- package/dist/commands/generate-components.js +12 -7
- package/dist/commands/generate-components.js.map +1 -1
- package/dist/commands/generate-todos.js +1 -1
- package/dist/commands/generate-todos.js.map +1 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +57 -41
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +59 -13
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/playbooks.d.ts.map +1 -1
- package/dist/commands/playbooks.js +14 -8
- package/dist/commands/playbooks.js.map +1 -1
- package/dist/commands/preview.js +1 -1
- package/dist/commands/preview.js.map +1 -1
- package/dist/commands/refine.d.ts.map +1 -1
- package/dist/commands/refine.js +5 -3
- package/dist/commands/refine.js.map +1 -1
- package/dist/commands/sanitize.d.ts.map +1 -1
- package/dist/commands/sanitize.js +11 -4
- package/dist/commands/sanitize.js.map +1 -1
- package/dist/commands/setup-database.d.ts.map +1 -1
- package/dist/commands/setup-database.js +9 -7
- package/dist/commands/setup-database.js.map +1 -1
- package/dist/commands/setup-instantdb.d.ts.map +1 -1
- package/dist/commands/setup-instantdb.js +9 -7
- package/dist/commands/setup-instantdb.js.map +1 -1
- package/dist/config/build-strategies.json +2 -2
- package/dist/{agents/personalities/definitions.d.ts → constants/subAgentPersonalities.d.ts} +2 -2
- package/dist/constants/subAgentPersonalities.d.ts.map +1 -0
- package/dist/{agents/personalities/definitions.js → constants/subAgentPersonalities.js} +2 -2
- package/dist/constants/subAgentPersonalities.js.map +1 -0
- package/dist/package.json +1 -1
- package/dist/types/analysis.d.ts +67 -0
- package/dist/types/analysis.d.ts.map +1 -0
- package/dist/types/analysis.js +7 -0
- package/dist/types/analysis.js.map +1 -0
- package/dist/types/components.d.ts +90 -0
- package/dist/types/components.d.ts.map +1 -0
- package/dist/types/components.js +7 -0
- package/dist/types/components.js.map +1 -0
- package/dist/types/enhancement.d.ts +127 -0
- package/dist/types/enhancement.d.ts.map +1 -0
- package/dist/types/enhancement.js +7 -0
- package/dist/types/enhancement.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +25 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/progress.d.ts +88 -0
- package/dist/types/progress.d.ts.map +1 -0
- package/dist/types/progress.js +7 -0
- package/dist/types/progress.js.map +1 -0
- package/dist/utils/ProjectHealthMonitor.d.ts.map +1 -1
- package/dist/utils/ProjectHealthMonitor.js +47 -36
- package/dist/utils/ProjectHealthMonitor.js.map +1 -1
- package/dist/utils/agentDefinitions.d.ts +2 -2
- package/dist/utils/agentDefinitions.d.ts.map +1 -1
- package/dist/utils/agentDefinitions.js +40 -33
- package/dist/utils/agentDefinitions.js.map +1 -1
- package/dist/utils/buildStrategyManager.d.ts.map +1 -1
- package/dist/utils/buildStrategyManager.js +1 -1
- package/dist/utils/buildStrategyManager.js.map +1 -1
- package/dist/utils/claudeAgentClient.d.ts +0 -1
- package/dist/utils/claudeAgentClient.d.ts.map +1 -1
- package/dist/utils/claudeAgentClient.js +46 -39
- package/dist/utils/claudeAgentClient.js.map +1 -1
- package/dist/utils/hybridAIClient.d.ts +1 -9
- package/dist/utils/hybridAIClient.d.ts.map +1 -1
- package/dist/utils/hybridAIClient.js +81 -78
- package/dist/utils/hybridAIClient.js.map +1 -1
- package/dist/utils/mcpAgentIntegration.d.ts.map +1 -1
- package/dist/utils/mcpAgentIntegration.js +1 -1
- package/dist/utils/mcpAgentIntegration.js.map +1 -1
- package/dist/utils/mcpTools.d.ts +5 -5
- package/dist/utils/mcpTools.d.ts.map +1 -1
- package/dist/utils/mcpTools.js +319 -241
- package/dist/utils/mcpTools.js.map +1 -1
- package/dist/utils/progressTracker.d.ts +3 -79
- package/dist/utils/progressTracker.d.ts.map +1 -1
- package/dist/utils/progressTracker.js +92 -68
- package/dist/utils/progressTracker.js.map +1 -1
- package/dist/utils/typeTemplateGenerator.d.ts.map +1 -1
- package/dist/utils/typeTemplateGenerator.js +125 -79
- package/dist/utils/typeTemplateGenerator.js.map +1 -1
- package/package.json +1 -1
- package/dist/agents/implementations/ClaudeAgentWorkflow.d.ts +0 -110
- package/dist/agents/implementations/ClaudeAgentWorkflow.d.ts.map +0 -1
- package/dist/agents/implementations/ClaudeAgentWorkflow.js +0 -661
- package/dist/agents/implementations/ClaudeAgentWorkflow.js.map +0 -1
- package/dist/agents/personalities/definitions.d.ts.map +0 -1
- package/dist/agents/personalities/definitions.js.map +0 -1
- package/dist/commands/model.d.ts +0 -22
- package/dist/commands/model.d.ts.map +0 -1
- package/dist/commands/model.js +0 -130
- package/dist/commands/model.js.map +0 -1
- package/dist/commands/normalize.d.ts +0 -5
- package/dist/commands/normalize.d.ts.map +0 -1
- package/dist/commands/normalize.js +0 -128
- package/dist/commands/normalize.js.map +0 -1
- package/dist/commands/pricing.d.ts +0 -15
- package/dist/commands/pricing.d.ts.map +0 -1
- package/dist/commands/pricing.js +0 -94
- package/dist/commands/pricing.js.map +0 -1
- package/dist/config/ai-providers.json +0 -102
- package/dist/config/pricing.json +0 -55
- package/dist/utils/aiClientFactory.d.ts +0 -93
- package/dist/utils/aiClientFactory.d.ts.map +0 -1
- package/dist/utils/aiClientFactory.js +0 -290
- package/dist/utils/aiClientFactory.js.map +0 -1
- package/dist/utils/aiClientRouter.d.ts +0 -121
- package/dist/utils/aiClientRouter.d.ts.map +0 -1
- package/dist/utils/aiClientRouter.js +0 -401
- package/dist/utils/aiClientRouter.js.map +0 -1
- package/dist/utils/apiKeyManager.d.ts +0 -137
- package/dist/utils/apiKeyManager.d.ts.map +0 -1
- package/dist/utils/apiKeyManager.js +0 -479
- package/dist/utils/apiKeyManager.js.map +0 -1
- package/dist/utils/claudeClient.d.ts +0 -28
- package/dist/utils/claudeClient.d.ts.map +0 -1
- package/dist/utils/claudeClient.js +0 -233
- package/dist/utils/claudeClient.js.map +0 -1
- package/dist/utils/geminiClient.d.ts +0 -61
- package/dist/utils/geminiClient.d.ts.map +0 -1
- package/dist/utils/geminiClient.js +0 -173
- package/dist/utils/geminiClient.js.map +0 -1
- package/dist/utils/githubModelsClient.d.ts +0 -27
- package/dist/utils/githubModelsClient.d.ts.map +0 -1
- package/dist/utils/githubModelsClient.js +0 -332
- package/dist/utils/githubModelsClient.js.map +0 -1
- package/dist/utils/huggingFaceClient.d.ts +0 -44
- package/dist/utils/huggingFaceClient.d.ts.map +0 -1
- package/dist/utils/huggingFaceClient.js +0 -169
- package/dist/utils/huggingFaceClient.js.map +0 -1
- package/dist/utils/openaiClient.d.ts +0 -24
- package/dist/utils/openaiClient.d.ts.map +0 -1
- package/dist/utils/openaiClient.js +0 -204
- package/dist/utils/openaiClient.js.map +0 -1
- package/dist/utils/qwenClient.d.ts +0 -22
- package/dist/utils/qwenClient.d.ts.map +0 -1
- package/dist/utils/qwenClient.js +0 -185
- package/dist/utils/qwenClient.js.map +0 -1
- package/dist/utils/streamingHandler.d.ts +0 -98
- package/dist/utils/streamingHandler.d.ts.map +0 -1
- package/dist/utils/streamingHandler.js +0 -259
- package/dist/utils/streamingHandler.js.map +0 -1
- package/dist/utils/xaiClient.d.ts +0 -19
- package/dist/utils/xaiClient.d.ts.map +0 -1
- package/dist/utils/xaiClient.js +0 -135
- package/dist/utils/xaiClient.js.map +0 -1
package/dist/config/pricing.json
DELETED
|
@@ -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"}
|