mycontext-cli 2.0.8 → 2.0.9
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/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
|
@@ -1,332 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.GitHubModelsClient = void 0;
|
|
40
|
-
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
41
|
-
const fs = __importStar(require("fs"));
|
|
42
|
-
const path = __importStar(require("path"));
|
|
43
|
-
class GitHubModelsClient {
|
|
44
|
-
constructor() {
|
|
45
|
-
this.baseUrl =
|
|
46
|
-
process.env.GITHUB_MODELS_BASE_URL ||
|
|
47
|
-
"https://models.github.ai/inference";
|
|
48
|
-
this.token =
|
|
49
|
-
process.env.MYCONTEXT_GITHUB_TOKEN || process.env.GITHUB_TOKEN || null;
|
|
50
|
-
if (!this.token) {
|
|
51
|
-
const loaded = this.loadTokenFromEnvFiles();
|
|
52
|
-
if (loaded) {
|
|
53
|
-
this.token = loaded;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
hasApiKey() {
|
|
58
|
-
return !!this.token;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Load token from project-level env files without external deps
|
|
62
|
-
* Priority: .mycontext/.env -> .env
|
|
63
|
-
*/
|
|
64
|
-
loadTokenFromEnvFiles() {
|
|
65
|
-
try {
|
|
66
|
-
const cwd = process.cwd();
|
|
67
|
-
const candidates = [
|
|
68
|
-
path.join(cwd, ".mycontext", ".env"),
|
|
69
|
-
path.join(cwd, ".env"),
|
|
70
|
-
];
|
|
71
|
-
for (const file of candidates) {
|
|
72
|
-
if (fs.existsSync(file)) {
|
|
73
|
-
const raw = fs.readFileSync(file, "utf8");
|
|
74
|
-
const lines = raw.split(/\r?\n/);
|
|
75
|
-
for (const line of lines) {
|
|
76
|
-
const trimmed = line.trim();
|
|
77
|
-
if (!trimmed || trimmed.startsWith("#"))
|
|
78
|
-
continue;
|
|
79
|
-
const idx = trimmed.indexOf("=");
|
|
80
|
-
if (idx === -1)
|
|
81
|
-
continue;
|
|
82
|
-
const key = trimmed.slice(0, idx).trim();
|
|
83
|
-
const value = trimmed
|
|
84
|
-
.slice(idx + 1)
|
|
85
|
-
.trim()
|
|
86
|
-
.replace(/^['"]|['"]$/g, "");
|
|
87
|
-
if (!process.env[key]) {
|
|
88
|
-
process.env[key] = value;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
const token = process.env.MYCONTEXT_GITHUB_TOKEN ||
|
|
92
|
-
process.env.GITHUB_TOKEN ||
|
|
93
|
-
null;
|
|
94
|
-
if (token)
|
|
95
|
-
return token;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
catch {
|
|
100
|
-
// ignore
|
|
101
|
-
}
|
|
102
|
-
return null;
|
|
103
|
-
}
|
|
104
|
-
headers() {
|
|
105
|
-
const h = { "Content-Type": "application/json" };
|
|
106
|
-
if (this.token)
|
|
107
|
-
h.Authorization = `Bearer ${this.token}`;
|
|
108
|
-
return h;
|
|
109
|
-
}
|
|
110
|
-
async checkConnection() {
|
|
111
|
-
try {
|
|
112
|
-
const controller = new AbortController();
|
|
113
|
-
const timeout = setTimeout(() => controller.abort(), 15000);
|
|
114
|
-
const res = await (0, node_fetch_1.default)(`${this.baseUrl}/chat/completions`, {
|
|
115
|
-
method: "POST",
|
|
116
|
-
headers: this.headers(),
|
|
117
|
-
body: JSON.stringify({
|
|
118
|
-
model: process.env.MYCONTEXT_MODEL || "grok-3",
|
|
119
|
-
messages: [
|
|
120
|
-
{ role: "system", content: "ping" },
|
|
121
|
-
{ role: "user", content: "ping" },
|
|
122
|
-
],
|
|
123
|
-
max_completion_tokens: 1,
|
|
124
|
-
}),
|
|
125
|
-
signal: controller.signal,
|
|
126
|
-
});
|
|
127
|
-
clearTimeout(timeout);
|
|
128
|
-
// Consider any reachable response as available; details handled at call time
|
|
129
|
-
return this.hasApiKey();
|
|
130
|
-
}
|
|
131
|
-
catch {
|
|
132
|
-
// If we have a token, allow attempts even if the health probe fails
|
|
133
|
-
return this.hasApiKey();
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
async generateText(prompt, opts = {}) {
|
|
137
|
-
const options = {
|
|
138
|
-
model: opts.model || process.env.MYCONTEXT_MODEL || "grok-3",
|
|
139
|
-
modelCandidates: opts.modelCandidates ||
|
|
140
|
-
(process.env.MYCONTEXT_MODEL_CANDIDATES
|
|
141
|
-
? process.env.MYCONTEXT_MODEL_CANDIDATES.split(",")
|
|
142
|
-
.map((s) => s.trim())
|
|
143
|
-
.filter(Boolean)
|
|
144
|
-
: undefined),
|
|
145
|
-
temperature: opts.temperature ?? 0.2,
|
|
146
|
-
maxTokens: opts.maxTokens ?? 1024,
|
|
147
|
-
};
|
|
148
|
-
const messages = [
|
|
149
|
-
{
|
|
150
|
-
role: "system",
|
|
151
|
-
content: "You are a concise, expert product/dev assistant.",
|
|
152
|
-
},
|
|
153
|
-
{ role: "user", content: prompt },
|
|
154
|
-
];
|
|
155
|
-
// Get all available models from GitHub Models API
|
|
156
|
-
let allModels = [];
|
|
157
|
-
try {
|
|
158
|
-
allModels = await this.listModels();
|
|
159
|
-
console.log(`[GitHubModelsClient] Successfully fetched ${allModels.length} models from API`);
|
|
160
|
-
}
|
|
161
|
-
catch (error) {
|
|
162
|
-
console.log(`[GitHubModelsClient] Could not fetch model list (${error}), using curated set`);
|
|
163
|
-
}
|
|
164
|
-
// Build model attempt list: primary, then candidates, then all available models
|
|
165
|
-
const modelsToTry = Array.from(new Set([options.model, ...(options.modelCandidates || []), ...allModels]));
|
|
166
|
-
const maxRetries = parseInt(process.env.MYCONTEXT_GITHUB_RETRIES || "1", // 1 retry to prioritize GitHub Models
|
|
167
|
-
10);
|
|
168
|
-
console.log(`[GitHubModelsClient] Trying ${modelsToTry.length} models: ${modelsToTry.slice(0, 5).join(", ")}${modelsToTry.length > 5 ? "..." : ""}`);
|
|
169
|
-
for (const modelName of modelsToTry) {
|
|
170
|
-
let attempt = 0;
|
|
171
|
-
while (attempt <= maxRetries) {
|
|
172
|
-
const controller = new AbortController();
|
|
173
|
-
const timeout = setTimeout(() => controller.abort(), 30000); // 30 second timeout for faster UX
|
|
174
|
-
try {
|
|
175
|
-
const res = await (0, node_fetch_1.default)(`${this.baseUrl}/chat/completions`, {
|
|
176
|
-
method: "POST",
|
|
177
|
-
headers: this.headers(),
|
|
178
|
-
body: JSON.stringify({
|
|
179
|
-
model: modelName,
|
|
180
|
-
messages,
|
|
181
|
-
max_completion_tokens: options.maxTokens,
|
|
182
|
-
}),
|
|
183
|
-
signal: controller.signal,
|
|
184
|
-
});
|
|
185
|
-
clearTimeout(timeout);
|
|
186
|
-
if (!res.ok) {
|
|
187
|
-
const txt = await res.text();
|
|
188
|
-
// Handle rate limiting - fail fast for better UX
|
|
189
|
-
if (res.status === 429) {
|
|
190
|
-
const retryHeader = res.headers.get("retry-after");
|
|
191
|
-
let waitSeconds = 5; // Default to 5s for faster UX
|
|
192
|
-
if (retryHeader) {
|
|
193
|
-
const numeric = parseInt(retryHeader, 10);
|
|
194
|
-
if (Number.isFinite(numeric)) {
|
|
195
|
-
waitSeconds = Math.min(numeric, 10); // Cap at 10s max
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
console.log(`[GitHubModelsClient] Rate limited. Retry-After=${waitSeconds}s → waiting ${waitSeconds}s (attempt ${attempt + 1}/${maxRetries})`);
|
|
199
|
-
attempt += 1;
|
|
200
|
-
if (attempt <= maxRetries) {
|
|
201
|
-
await new Promise((r) => setTimeout(r, waitSeconds * 1000));
|
|
202
|
-
continue; // retry loop
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
// Max retries reached, try next model
|
|
206
|
-
break;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
// Try next candidate for auth/not-found/validation errors
|
|
210
|
-
if ((res.status === 401 ||
|
|
211
|
-
res.status === 404 ||
|
|
212
|
-
res.status === 422) &&
|
|
213
|
-
modelsToTry.length > 1) {
|
|
214
|
-
console.log(`[GitHubModelsClient] Model ${modelName} failed (HTTP ${res.status}). Trying next candidate...`);
|
|
215
|
-
break; // break retry loop and move to next model
|
|
216
|
-
}
|
|
217
|
-
throw new Error(`HTTP ${res.status}: ${txt}`);
|
|
218
|
-
}
|
|
219
|
-
const data = await res.json();
|
|
220
|
-
const content = data?.choices?.[0]?.message?.content ?? "";
|
|
221
|
-
return String(content).trim();
|
|
222
|
-
}
|
|
223
|
-
catch (err) {
|
|
224
|
-
clearTimeout(timeout);
|
|
225
|
-
if (err?.name === "AbortError") {
|
|
226
|
-
throw new Error("GitHub Models timed out after 60s");
|
|
227
|
-
}
|
|
228
|
-
// On network hiccups, allow a single quick retry if configured
|
|
229
|
-
attempt += 1;
|
|
230
|
-
if (attempt <= maxRetries) {
|
|
231
|
-
console.log(`[GitHubModelsClient] Error: ${err?.message || err}. Retrying (${attempt}/${maxRetries})...`);
|
|
232
|
-
await new Promise((r) => setTimeout(r, 1500));
|
|
233
|
-
continue;
|
|
234
|
-
}
|
|
235
|
-
// Move to next model if available
|
|
236
|
-
if (modelsToTry.length > 1) {
|
|
237
|
-
console.log(`[GitHubModelsClient] Model ${modelName} error after retries. Trying next candidate...`);
|
|
238
|
-
break;
|
|
239
|
-
}
|
|
240
|
-
throw new Error(`GitHub Models request failed: ${err?.message || err}`);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
throw new Error("All GitHub Models candidates failed");
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* Attempt to list available models from GitHub Models. Falls back to a curated set.
|
|
248
|
-
*/
|
|
249
|
-
async listModels() {
|
|
250
|
-
// GitHub Models API might not have a models listing endpoint
|
|
251
|
-
// Try a few common endpoints, but don't rely on them
|
|
252
|
-
const candidates = [
|
|
253
|
-
`${this.baseUrl}/models`,
|
|
254
|
-
`${this.baseUrl}/v1/models`,
|
|
255
|
-
`${this.baseUrl}/v1/models?per_page=100`,
|
|
256
|
-
`${this.baseUrl}/models?per_page=100`,
|
|
257
|
-
];
|
|
258
|
-
for (const url of candidates) {
|
|
259
|
-
try {
|
|
260
|
-
const controller = new AbortController();
|
|
261
|
-
const timeout = setTimeout(() => controller.abort(), 5000); // 5s timeout
|
|
262
|
-
const res = await (0, node_fetch_1.default)(url, {
|
|
263
|
-
headers: this.headers(),
|
|
264
|
-
signal: controller.signal,
|
|
265
|
-
});
|
|
266
|
-
clearTimeout(timeout);
|
|
267
|
-
if (!res.ok) {
|
|
268
|
-
console.log(`[GitHubModelsClient] Endpoint ${url} returned ${res.status}`);
|
|
269
|
-
continue;
|
|
270
|
-
}
|
|
271
|
-
const data = await res.json();
|
|
272
|
-
console.log(`[GitHubModelsClient] Endpoint ${url} response:`, JSON.stringify(data).slice(0, 200) + "...");
|
|
273
|
-
// Normalize: support various response formats
|
|
274
|
-
let models = [];
|
|
275
|
-
if (Array.isArray(data?.data)) {
|
|
276
|
-
models = data.data
|
|
277
|
-
.map((m) => m?.id || m?.name || m?.model_id)
|
|
278
|
-
.filter(Boolean);
|
|
279
|
-
}
|
|
280
|
-
else if (Array.isArray(data?.models)) {
|
|
281
|
-
models = data.models
|
|
282
|
-
.map((m) => typeof m === "string" ? m : m?.id || m?.name || m?.model_id)
|
|
283
|
-
.filter(Boolean);
|
|
284
|
-
}
|
|
285
|
-
else if (Array.isArray(data)) {
|
|
286
|
-
models = data
|
|
287
|
-
.map((m) => m?.id || m?.name || m?.model_id)
|
|
288
|
-
.filter(Boolean);
|
|
289
|
-
}
|
|
290
|
-
if (models.length > 0) {
|
|
291
|
-
console.log(`[GitHubModelsClient] Found ${models.length} available models from ${url}`);
|
|
292
|
-
return models;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
catch (error) {
|
|
296
|
-
console.log(`[GitHubModelsClient] Endpoint ${url} failed:`, error instanceof Error ? error.message : String(error));
|
|
297
|
-
continue;
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
// Curated fallback set commonly available on GitHub Models
|
|
301
|
-
console.log("[GitHubModelsClient] No models endpoint found, using expanded curated set");
|
|
302
|
-
return [
|
|
303
|
-
process.env.MYCONTEXT_MODEL || "grok-3",
|
|
304
|
-
"openai/gpt-4o",
|
|
305
|
-
"openai/gpt-4o-mini",
|
|
306
|
-
"claude-3-5-sonnet-20241022",
|
|
307
|
-
"claude-3-5-haiku-20241022",
|
|
308
|
-
"deepseek/DeepSeek-V3-0324",
|
|
309
|
-
"deepseek/DeepSeek-Coder-V2",
|
|
310
|
-
"meta/Llama-4-Scout-17B-16E-Instruct",
|
|
311
|
-
"meta/llama-3.1-8b-instruct",
|
|
312
|
-
"meta/llama-3.1-70b-instruct",
|
|
313
|
-
"mistral-ai/Codestral-2501",
|
|
314
|
-
"mistral-ai/Mistral-7B-Instruct-v0.3",
|
|
315
|
-
"nvidia/llama-3.1-nemotron-70b-instruct",
|
|
316
|
-
"qwen/qwen2.5-coder-32b-instruct",
|
|
317
|
-
"qwen/qwen2.5-coder-7b-instruct",
|
|
318
|
-
"google/gemini-2.0-flash",
|
|
319
|
-
"google/gemini-1.5-pro",
|
|
320
|
-
"microsoft/Phi-3.5-mini-instruct",
|
|
321
|
-
"microsoft/Phi-3-medium-128k-instruct",
|
|
322
|
-
];
|
|
323
|
-
}
|
|
324
|
-
async generateComponent(prompt, opts) {
|
|
325
|
-
return this.generateText(`Generate a single React component. Output only a code block.\n\n${prompt}`, opts);
|
|
326
|
-
}
|
|
327
|
-
async generateComponentRefinement(componentCode, prompt, opts) {
|
|
328
|
-
return this.generateText(`Refine the following React component with the prompt. Return only a single code block.\n\nComponent:\n\`\`\`tsx\n${componentCode}\n\`\`\`\n\nPrompt: ${prompt}`, opts);
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
exports.GitHubModelsClient = GitHubModelsClient;
|
|
332
|
-
//# sourceMappingURL=githubModelsClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"githubModelsClient.js","sourceRoot":"","sources":["../../src/utils/githubModelsClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
export interface HuggingFaceResponse {
|
|
2
|
-
generated_text: string;
|
|
3
|
-
}
|
|
4
|
-
export interface HuggingFaceOptions {
|
|
5
|
-
model: string;
|
|
6
|
-
temperature?: number;
|
|
7
|
-
maxTokens?: number;
|
|
8
|
-
topP?: number;
|
|
9
|
-
doSample?: boolean;
|
|
10
|
-
}
|
|
11
|
-
export declare class HuggingFaceClient {
|
|
12
|
-
private baseUrl;
|
|
13
|
-
private apiKey;
|
|
14
|
-
constructor(apiKey?: string);
|
|
15
|
-
/**
|
|
16
|
-
* Check if Hugging Face is available
|
|
17
|
-
*/
|
|
18
|
-
checkConnection(): Promise<boolean>;
|
|
19
|
-
/**
|
|
20
|
-
* Generate component refinement using Hugging Face
|
|
21
|
-
*/
|
|
22
|
-
generateComponentRefinement(componentCode: string, prompt: string, options?: Partial<HuggingFaceOptions>): Promise<string>;
|
|
23
|
-
/**
|
|
24
|
-
* Generate new components using Hugging Face
|
|
25
|
-
*/
|
|
26
|
-
generateComponent(prompt: string, options?: Partial<HuggingFaceOptions>): Promise<string>;
|
|
27
|
-
/**
|
|
28
|
-
* Extract component code from generated text
|
|
29
|
-
*/
|
|
30
|
-
private extractComponentCode;
|
|
31
|
-
/**
|
|
32
|
-
* Get request headers
|
|
33
|
-
*/
|
|
34
|
-
private getHeaders;
|
|
35
|
-
/**
|
|
36
|
-
* Check if API key is configured
|
|
37
|
-
*/
|
|
38
|
-
hasApiKey(): boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Set API key
|
|
41
|
-
*/
|
|
42
|
-
setApiKey(apiKey: string): void;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=huggingFaceClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"huggingFaceClient.d.ts","sourceRoot":"","sources":["../../src/utils/huggingFaceClient.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;CAExB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,MAAM,CAAuB;gBAEzB,MAAM,CAAC,EAAE,MAAM;IAI3B;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAYzC;;OAEG;IACG,2BAA2B,CAC/B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAO,CAAC,kBAAkB,CAAM,GACxC,OAAO,CAAC,MAAM,CAAC;IA8DlB;;OAEG;IACG,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAO,CAAC,kBAAkB,CAAM,GACxC,OAAO,CAAC,MAAM,CAAC;IAsDlB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;OAEG;IACH,OAAO,CAAC,UAAU;IAYlB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGhC"}
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.HuggingFaceClient = void 0;
|
|
7
|
-
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
8
|
-
class HuggingFaceClient {
|
|
9
|
-
constructor(apiKey) {
|
|
10
|
-
this.baseUrl = "https://api-inference.huggingface.co";
|
|
11
|
-
this.apiKey = null;
|
|
12
|
-
this.apiKey = apiKey || process.env.HUGGINGFACE_API_KEY || null;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Check if Hugging Face is available
|
|
16
|
-
*/
|
|
17
|
-
async checkConnection() {
|
|
18
|
-
try {
|
|
19
|
-
const response = await (0, node_fetch_1.default)(`${this.baseUrl}/models`, {
|
|
20
|
-
headers: this.getHeaders(),
|
|
21
|
-
signal: AbortSignal.timeout(10000), // 10 second timeout
|
|
22
|
-
});
|
|
23
|
-
return response.ok;
|
|
24
|
-
}
|
|
25
|
-
catch (error) {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Generate component refinement using Hugging Face
|
|
31
|
-
*/
|
|
32
|
-
async generateComponentRefinement(componentCode, prompt, options = {}) {
|
|
33
|
-
const defaultOptions = {
|
|
34
|
-
model: "mycontext/react-component-refiner", // Our specialized model
|
|
35
|
-
temperature: 0.1,
|
|
36
|
-
maxTokens: 2048,
|
|
37
|
-
topP: 0.9,
|
|
38
|
-
doSample: true,
|
|
39
|
-
...options,
|
|
40
|
-
};
|
|
41
|
-
try {
|
|
42
|
-
const controller = new AbortController();
|
|
43
|
-
const timeoutId = setTimeout(() => controller.abort(), 45000); // 45 second timeout
|
|
44
|
-
const requestBody = {
|
|
45
|
-
inputs: `Component Code:\n\`\`\`tsx\n${componentCode}\n\`\`\`\n\nRefinement Prompt: ${prompt}\n\nEnhanced Component:`,
|
|
46
|
-
parameters: {
|
|
47
|
-
temperature: defaultOptions.temperature,
|
|
48
|
-
max_new_tokens: defaultOptions.maxTokens,
|
|
49
|
-
top_p: defaultOptions.topP,
|
|
50
|
-
do_sample: defaultOptions.doSample,
|
|
51
|
-
return_full_text: false,
|
|
52
|
-
},
|
|
53
|
-
};
|
|
54
|
-
console.log(`[HuggingFaceClient] Using model: ${defaultOptions.model}`);
|
|
55
|
-
console.log(`[HuggingFaceClient] Sending request to: ${this.baseUrl}/models/${defaultOptions.model}`);
|
|
56
|
-
const response = await (0, node_fetch_1.default)(`${this.baseUrl}/models/${defaultOptions.model}`, {
|
|
57
|
-
method: "POST",
|
|
58
|
-
headers: this.getHeaders(),
|
|
59
|
-
body: JSON.stringify(requestBody),
|
|
60
|
-
signal: controller.signal,
|
|
61
|
-
});
|
|
62
|
-
clearTimeout(timeoutId);
|
|
63
|
-
if (!response.ok) {
|
|
64
|
-
const errorText = await response.text();
|
|
65
|
-
throw new Error(`HTTP ${response.status}: ${errorText}`);
|
|
66
|
-
}
|
|
67
|
-
const data = (await response.json());
|
|
68
|
-
const generatedText = data[0]?.generated_text || "";
|
|
69
|
-
// Extract just the component code if the model returns explanatory text
|
|
70
|
-
return this.extractComponentCode(generatedText, componentCode);
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
if (error.name === "AbortError") {
|
|
74
|
-
throw new Error("Component refinement timed out after 45 seconds");
|
|
75
|
-
}
|
|
76
|
-
throw new Error(`Failed to generate component refinement: ${error.message}`);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Generate new components using Hugging Face
|
|
81
|
-
*/
|
|
82
|
-
async generateComponent(prompt, options = {}) {
|
|
83
|
-
const defaultOptions = {
|
|
84
|
-
model: "mycontext/react-component-generator", // Our component generation model
|
|
85
|
-
temperature: 0.1,
|
|
86
|
-
maxTokens: 2048,
|
|
87
|
-
topP: 0.9,
|
|
88
|
-
doSample: true,
|
|
89
|
-
...options,
|
|
90
|
-
};
|
|
91
|
-
try {
|
|
92
|
-
const controller = new AbortController();
|
|
93
|
-
const timeoutId = setTimeout(() => controller.abort(), 60000); // 60 second timeout
|
|
94
|
-
const requestBody = {
|
|
95
|
-
inputs: `Generate a React component for: ${prompt}\n\nComponent:`,
|
|
96
|
-
parameters: {
|
|
97
|
-
temperature: defaultOptions.temperature,
|
|
98
|
-
max_new_tokens: defaultOptions.maxTokens,
|
|
99
|
-
top_p: defaultOptions.topP,
|
|
100
|
-
do_sample: defaultOptions.doSample,
|
|
101
|
-
return_full_text: false,
|
|
102
|
-
},
|
|
103
|
-
};
|
|
104
|
-
const response = await (0, node_fetch_1.default)(`${this.baseUrl}/models/${defaultOptions.model}`, {
|
|
105
|
-
method: "POST",
|
|
106
|
-
headers: this.getHeaders(),
|
|
107
|
-
body: JSON.stringify(requestBody),
|
|
108
|
-
signal: controller.signal,
|
|
109
|
-
});
|
|
110
|
-
clearTimeout(timeoutId);
|
|
111
|
-
if (!response.ok) {
|
|
112
|
-
const errorText = await response.text();
|
|
113
|
-
throw new Error(`HTTP ${response.status}: ${errorText}`);
|
|
114
|
-
}
|
|
115
|
-
const data = (await response.json());
|
|
116
|
-
const generatedText = data[0]?.generated_text || "";
|
|
117
|
-
return this.extractComponentCode(generatedText);
|
|
118
|
-
}
|
|
119
|
-
catch (error) {
|
|
120
|
-
if (error.name === "AbortError") {
|
|
121
|
-
throw new Error("Component generation timed out after 60 seconds");
|
|
122
|
-
}
|
|
123
|
-
throw new Error(`Failed to generate component: ${error.message}`);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Extract component code from generated text
|
|
128
|
-
*/
|
|
129
|
-
extractComponentCode(generatedText, originalCode) {
|
|
130
|
-
// Look for code blocks
|
|
131
|
-
const codeBlockMatch = generatedText.match(/```(?:tsx|jsx|ts|js)?\n([\s\S]*?)```/);
|
|
132
|
-
if (codeBlockMatch) {
|
|
133
|
-
return codeBlockMatch[1].trim();
|
|
134
|
-
}
|
|
135
|
-
// Look for JSX/TSX content
|
|
136
|
-
const jsxMatch = generatedText.match(/(?:export\s+)?(?:function|const)\s+\w+.*?{[\s\S]*?}/);
|
|
137
|
-
if (jsxMatch) {
|
|
138
|
-
return jsxMatch[0];
|
|
139
|
-
}
|
|
140
|
-
// If no clear code found, return the original or the full text
|
|
141
|
-
return originalCode || generatedText;
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Get request headers
|
|
145
|
-
*/
|
|
146
|
-
getHeaders() {
|
|
147
|
-
const headers = {
|
|
148
|
-
"Content-Type": "application/json",
|
|
149
|
-
};
|
|
150
|
-
if (this.apiKey) {
|
|
151
|
-
headers["Authorization"] = `Bearer ${this.apiKey}`;
|
|
152
|
-
}
|
|
153
|
-
return headers;
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Check if API key is configured
|
|
157
|
-
*/
|
|
158
|
-
hasApiKey() {
|
|
159
|
-
return !!this.apiKey;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Set API key
|
|
163
|
-
*/
|
|
164
|
-
setApiKey(apiKey) {
|
|
165
|
-
this.apiKey = apiKey;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
exports.HuggingFaceClient = HuggingFaceClient;
|
|
169
|
-
//# sourceMappingURL=huggingFaceClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"huggingFaceClient.js","sourceRoot":"","sources":["../../src/utils/huggingFaceClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export interface OpenAIOptions {
|
|
2
|
-
model: string;
|
|
3
|
-
modelCandidates?: string[];
|
|
4
|
-
temperature?: number;
|
|
5
|
-
maxTokens?: number;
|
|
6
|
-
}
|
|
7
|
-
export declare class OpenAIClient {
|
|
8
|
-
private baseUrl;
|
|
9
|
-
private token;
|
|
10
|
-
constructor();
|
|
11
|
-
hasApiKey(): boolean;
|
|
12
|
-
/**
|
|
13
|
-
* Load token from project-level env files without external deps
|
|
14
|
-
* Priority: .mycontext/.env -> .env
|
|
15
|
-
*/
|
|
16
|
-
private loadTokenFromEnvFiles;
|
|
17
|
-
checkConnection(): Promise<boolean>;
|
|
18
|
-
generateText(prompt: string, options?: OpenAIOptions): Promise<string>;
|
|
19
|
-
generateComponent(prompt: string, options?: OpenAIOptions): Promise<string>;
|
|
20
|
-
generateComponentRefinement(componentCode: string, prompt: string, options?: OpenAIOptions): Promise<string>;
|
|
21
|
-
listModels(): Promise<string[]>;
|
|
22
|
-
setApiKey(apiKey: string): void;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=openaiClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openaiClient.d.ts","sourceRoot":"","sources":["../../src/utils/openaiClient.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAgB;;IAiB7B,SAAS,IAAI,OAAO;IAIpB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAqCvB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAoBnC,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,aAA0C,GAClD,OAAO,CAAC,MAAM,CAAC;IAsCZ,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,aAA0C,GAClD,OAAO,CAAC,MAAM,CAAC;IAeZ,2BAA2B,CAC/B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,aAA0C,GAClD,OAAO,CAAC,MAAM,CAAC;IAmBZ,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAsBrC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGhC"}
|