@codemieai/code 0.0.18 → 0.0.20
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/core/AgentCLI.d.ts +4 -0
- package/dist/agents/core/AgentCLI.d.ts.map +1 -1
- package/dist/agents/core/AgentCLI.js +97 -24
- package/dist/agents/core/AgentCLI.js.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.d.ts +24 -0
- package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.js +191 -81
- package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
- package/dist/agents/core/flag-transform.d.ts +37 -0
- package/dist/agents/core/flag-transform.d.ts.map +1 -0
- package/dist/agents/core/flag-transform.js +107 -0
- package/dist/agents/core/flag-transform.js.map +1 -0
- package/dist/agents/core/types.d.ts +53 -6
- package/dist/agents/core/types.d.ts.map +1 -1
- package/dist/agents/plugins/claude.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/claude.plugin.js +11 -4
- package/dist/agents/plugins/claude.plugin.js.map +1 -1
- package/dist/agents/plugins/codemie-code.plugin.d.ts +1 -0
- package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/codemie-code.plugin.js +14 -26
- package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
- package/dist/agents/plugins/codex.plugin.d.ts +4 -0
- package/dist/agents/plugins/codex.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/codex.plugin.js +231 -22
- package/dist/agents/plugins/codex.plugin.js.map +1 -1
- package/dist/agents/plugins/deepagents.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/deepagents.plugin.js +7 -4
- package/dist/agents/plugins/deepagents.plugin.js.map +1 -1
- package/dist/agents/plugins/gemini.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/gemini.plugin.js +15 -12
- package/dist/agents/plugins/gemini.plugin.js.map +1 -1
- package/dist/cli/commands/doctor/checks/FrameworksCheck.d.ts +12 -0
- package/dist/cli/commands/doctor/checks/FrameworksCheck.d.ts.map +1 -0
- package/dist/cli/commands/doctor/checks/FrameworksCheck.js +103 -0
- package/dist/cli/commands/doctor/checks/FrameworksCheck.js.map +1 -0
- package/dist/cli/commands/doctor/checks/index.d.ts +1 -0
- package/dist/cli/commands/doctor/checks/index.d.ts.map +1 -1
- package/dist/cli/commands/doctor/checks/index.js +1 -0
- package/dist/cli/commands/doctor/checks/index.js.map +1 -1
- package/dist/cli/commands/doctor/index.d.ts.map +1 -1
- package/dist/cli/commands/doctor/index.js +3 -2
- package/dist/cli/commands/doctor/index.js.map +1 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +79 -30
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/list.js +55 -15
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/uninstall.d.ts.map +1 -1
- package/dist/cli/commands/uninstall.js +85 -34
- package/dist/cli/commands/uninstall.js.map +1 -1
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/frameworks/core/BaseFrameworkAdapter.d.ts +88 -0
- package/dist/frameworks/core/BaseFrameworkAdapter.d.ts.map +1 -0
- package/dist/frameworks/core/BaseFrameworkAdapter.js +156 -0
- package/dist/frameworks/core/BaseFrameworkAdapter.js.map +1 -0
- package/dist/frameworks/core/index.d.ts +9 -0
- package/dist/frameworks/core/index.d.ts.map +1 -0
- package/dist/frameworks/core/index.js +9 -0
- package/dist/frameworks/core/index.js.map +1 -0
- package/dist/frameworks/core/registry.d.ts +53 -0
- package/dist/frameworks/core/registry.d.ts.map +1 -0
- package/dist/frameworks/core/registry.js +82 -0
- package/dist/frameworks/core/registry.js.map +1 -0
- package/dist/frameworks/core/types.d.ts +130 -0
- package/dist/frameworks/core/types.d.ts.map +1 -0
- package/dist/frameworks/core/types.js +8 -0
- package/dist/frameworks/core/types.js.map +1 -0
- package/dist/frameworks/index.d.ts +9 -0
- package/dist/frameworks/index.d.ts.map +1 -0
- package/dist/frameworks/index.js +12 -0
- package/dist/frameworks/index.js.map +1 -0
- package/dist/frameworks/plugins/bmad.plugin.d.ts +46 -0
- package/dist/frameworks/plugins/bmad.plugin.d.ts.map +1 -0
- package/dist/frameworks/plugins/bmad.plugin.js +111 -0
- package/dist/frameworks/plugins/bmad.plugin.js.map +1 -0
- package/dist/frameworks/plugins/index.d.ts +8 -0
- package/dist/frameworks/plugins/index.d.ts.map +1 -0
- package/dist/frameworks/plugins/index.js +15 -0
- package/dist/frameworks/plugins/index.js.map +1 -0
- package/dist/frameworks/plugins/speckit.plugin.d.ts +59 -0
- package/dist/frameworks/plugins/speckit.plugin.d.ts.map +1 -0
- package/dist/frameworks/plugins/speckit.plugin.js +213 -0
- package/dist/frameworks/plugins/speckit.plugin.js.map +1 -0
- package/dist/metrics/config.d.ts.map +1 -1
- package/dist/metrics/config.js +7 -1
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/sync/aggregator.d.ts +7 -1
- package/dist/metrics/sync/aggregator.d.ts.map +1 -1
- package/dist/metrics/sync/aggregator.js +14 -5
- package/dist/metrics/sync/aggregator.js.map +1 -1
- package/dist/metrics/sync/post-processor.d.ts +48 -0
- package/dist/metrics/sync/post-processor.d.ts.map +1 -0
- package/dist/metrics/sync/post-processor.js +147 -0
- package/dist/metrics/sync/post-processor.js.map +1 -0
- package/dist/metrics/sync/types.d.ts +2 -2
- package/dist/metrics/sync/types.d.ts.map +1 -1
- package/dist/metrics/types.d.ts +6 -0
- package/dist/metrics/types.d.ts.map +1 -1
- package/dist/providers/core/types.d.ts +0 -5
- package/dist/providers/core/types.d.ts.map +1 -1
- package/dist/providers/plugins/bedrock/bedrock.template.d.ts.map +1 -1
- package/dist/providers/plugins/bedrock/bedrock.template.js +0 -5
- package/dist/providers/plugins/bedrock/bedrock.template.js.map +1 -1
- package/dist/providers/plugins/litellm/litellm.template.d.ts.map +1 -1
- package/dist/providers/plugins/litellm/litellm.template.js +0 -6
- package/dist/providers/plugins/litellm/litellm.template.js.map +1 -1
- package/dist/providers/plugins/ollama/ollama.template.d.ts.map +1 -1
- package/dist/providers/plugins/ollama/ollama.template.js +22 -17
- package/dist/providers/plugins/ollama/ollama.template.js.map +1 -1
- package/dist/providers/plugins/sso/sso.template.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.template.js +0 -5
- package/dist/providers/plugins/sso/sso.template.js.map +1 -1
- package/dist/proxy/plugins/metrics-sync.plugin.js +20 -9
- package/dist/proxy/plugins/metrics-sync.plugin.js.map +1 -1
- package/dist/proxy/plugins/sso-auth.plugin.js +7 -2
- package/dist/proxy/plugins/sso-auth.plugin.js.map +1 -1
- package/dist/utils/codemie-proxy.d.ts +1 -0
- package/dist/utils/codemie-proxy.d.ts.map +1 -1
- package/dist/utils/codemie-proxy.js +9 -3
- package/dist/utils/codemie-proxy.js.map +1 -1
- package/dist/utils/config-loader.d.ts +4 -2
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +43 -33
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/exec.d.ts +1 -0
- package/dist/utils/exec.d.ts.map +1 -1
- package/dist/utils/exec.js +23 -9
- package/dist/utils/exec.js.map +1 -1
- package/dist/utils/first-time.d.ts +3 -3
- package/dist/utils/first-time.d.ts.map +1 -1
- package/dist/utils/first-time.js +21 -4
- package/dist/utils/first-time.js.map +1 -1
- package/dist/utils/logger.js +2 -2
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/profile.d.ts +12 -0
- package/dist/utils/profile.d.ts.map +1 -0
- package/dist/utils/profile.js +32 -0
- package/dist/utils/profile.js.map +1 -0
- package/package.json +22 -6
- package/scripts/README.md +80 -0
- package/scripts/release.sh +267 -0
- package/scripts/validate-secrets.js +54 -0
- package/dist/utils/ascii-logo.d.ts +0 -21
- package/dist/utils/ascii-logo.d.ts.map +0 -1
- package/dist/utils/ascii-logo.js +0 -85
- package/dist/utils/ascii-logo.js.map +0 -1
|
@@ -1,8 +1,203 @@
|
|
|
1
1
|
import { BaseAgentAdapter } from '../core/BaseAgentAdapter.js';
|
|
2
|
-
import { mkdir, writeFile } from 'fs/promises';
|
|
2
|
+
import { mkdir, writeFile, readFile } from 'fs/promises';
|
|
3
3
|
import { existsSync } from 'fs';
|
|
4
4
|
import { join } from 'path';
|
|
5
5
|
import { homedir } from 'os';
|
|
6
|
+
/**
|
|
7
|
+
* Helper functions
|
|
8
|
+
*/
|
|
9
|
+
async function atomicWrite(filePath, content) {
|
|
10
|
+
const tempFile = filePath + '.tmp';
|
|
11
|
+
await writeFile(tempFile, content);
|
|
12
|
+
const { rename } = await import('fs/promises');
|
|
13
|
+
await rename(tempFile, filePath);
|
|
14
|
+
}
|
|
15
|
+
async function countActiveSessions(configFile, excludeSessionId) {
|
|
16
|
+
if (!existsSync(configFile))
|
|
17
|
+
return 0;
|
|
18
|
+
const configContent = await readFile(configFile, 'utf-8');
|
|
19
|
+
const sessionMarkerRegex = /# --- CODEMIE SESSION START: (.+?) ---/g;
|
|
20
|
+
const matches = [...configContent.matchAll(sessionMarkerRegex)];
|
|
21
|
+
// Count sessions, excluding the one being cleaned up
|
|
22
|
+
let count = 0;
|
|
23
|
+
for (const match of matches) {
|
|
24
|
+
const sessionId = match[1];
|
|
25
|
+
if (sessionId !== excludeSessionId) {
|
|
26
|
+
count++;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return count;
|
|
30
|
+
}
|
|
31
|
+
export async function cleanupAuthJson(authFile, sessionEnv, configFile) {
|
|
32
|
+
if (!existsSync(authFile))
|
|
33
|
+
return;
|
|
34
|
+
const authContent = await readFile(authFile, 'utf-8');
|
|
35
|
+
const authConfig = JSON.parse(authContent);
|
|
36
|
+
const provider = sessionEnv?.CODEMIE_PROFILE_NAME || sessionEnv?.CODEMIE_PROVIDER;
|
|
37
|
+
// Count remaining active sessions (excluding current one being cleaned)
|
|
38
|
+
const sessionId = sessionEnv?.CODEMIE_SESSION_ID;
|
|
39
|
+
const remainingSessions = configFile ? await countActiveSessions(configFile, sessionId) : 0;
|
|
40
|
+
const cleanedAuth = {};
|
|
41
|
+
// Provider-specific cleanup
|
|
42
|
+
if (provider === 'gemini') {
|
|
43
|
+
// Remove only Gemini-specific vars that match this session
|
|
44
|
+
for (const [key, value] of Object.entries(authConfig)) {
|
|
45
|
+
if (typeof value !== 'string')
|
|
46
|
+
continue;
|
|
47
|
+
// Remove only this session's gemini keys
|
|
48
|
+
if (key === 'GEMINI_API_KEY' && value === sessionEnv?.GEMINI_API_KEY) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (key === 'GOOGLE_GEMINI_BASE_URL' && value === sessionEnv?.GOOGLE_GEMINI_BASE_URL) {
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
// Remove OPENAI_API_KEY if it was set by gemini and no other sessions remain
|
|
55
|
+
if (key === 'OPENAI_API_KEY' && value === sessionEnv?.OPENAI_API_KEY && value === 'not-required' && remainingSessions === 0) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
cleanedAuth[key] = value;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
// Ollama or other OpenAI-compatible providers
|
|
63
|
+
const sessionBaseUrl = sessionEnv?.OPENAI_BASE_URL || sessionEnv?.OPENAI_API_BASE;
|
|
64
|
+
for (const [key, value] of Object.entries(authConfig)) {
|
|
65
|
+
if (typeof value !== 'string')
|
|
66
|
+
continue;
|
|
67
|
+
// Only remove OPENAI_API_BASE if it matches this session's URL
|
|
68
|
+
if (key === 'OPENAI_API_BASE' && value === sessionBaseUrl) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
// Remove OPENAI_API_KEY only if no other sessions remain
|
|
72
|
+
if (key === 'OPENAI_API_KEY' && value === sessionEnv?.OPENAI_API_KEY && value === 'not-required' && remainingSessions === 0) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
// Keep everything else
|
|
76
|
+
cleanedAuth[key] = value;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
await atomicWrite(authFile, JSON.stringify(cleanedAuth, null, 2));
|
|
80
|
+
}
|
|
81
|
+
export async function cleanupConfigToml(configFile, sessionEnv) {
|
|
82
|
+
if (!existsSync(configFile))
|
|
83
|
+
return;
|
|
84
|
+
const sessionId = sessionEnv?.CODEMIE_SESSION_ID;
|
|
85
|
+
if (!sessionId) {
|
|
86
|
+
// Fallback: try to find any session for this provider (backward compat)
|
|
87
|
+
const profileName = sessionEnv?.CODEMIE_PROFILE_NAME || sessionEnv?.CODEMIE_PROVIDER;
|
|
88
|
+
if (!profileName)
|
|
89
|
+
return;
|
|
90
|
+
let configContent = await readFile(configFile, 'utf-8');
|
|
91
|
+
// Remove any session block for this provider
|
|
92
|
+
const sessionBlockRegex = new RegExp(`# --- CODEMIE SESSION START: ${profileName}-\\d+ ---[\\s\\S]*?# --- CODEMIE SESSION END: ${profileName}-\\d+ ---\\n?`, 'g');
|
|
93
|
+
configContent = configContent.replace(sessionBlockRegex, '');
|
|
94
|
+
configContent = configContent.replace(/^\s*\n+/gm, '\n').replace(/^\n/, ''); // Clean up empty lines
|
|
95
|
+
await atomicWrite(configFile, configContent);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
// Use session ID for precise removal
|
|
99
|
+
let configContent = await readFile(configFile, 'utf-8');
|
|
100
|
+
const sessionStartMarker = `# --- CODEMIE SESSION START: ${sessionId} ---`;
|
|
101
|
+
const sessionEndMarker = `# --- CODEMIE SESSION END: ${sessionId} ---`;
|
|
102
|
+
const sessionBlockRegex = new RegExp(`${sessionStartMarker.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}[\\s\\S]*?${sessionEndMarker.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\n?`, 'g');
|
|
103
|
+
configContent = configContent.replace(sessionBlockRegex, '');
|
|
104
|
+
configContent = configContent.replace(/^\s*\n+/gm, '\n').replace(/^\n/, ''); // Clean up empty lines
|
|
105
|
+
await atomicWrite(configFile, configContent);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Setup helper functions
|
|
109
|
+
*/
|
|
110
|
+
async function ensureCodexDirectory(codexDir) {
|
|
111
|
+
if (!existsSync(codexDir)) {
|
|
112
|
+
await mkdir(codexDir, { recursive: true });
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
async function loadExistingAuth(authFile) {
|
|
116
|
+
if (!existsSync(authFile)) {
|
|
117
|
+
return {};
|
|
118
|
+
}
|
|
119
|
+
try {
|
|
120
|
+
const authContent = await readFile(authFile, 'utf-8');
|
|
121
|
+
return JSON.parse(authContent);
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
// Ignore parse errors, will overwrite with valid JSON
|
|
125
|
+
return {};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function buildAuthConfig(env, existingAuth) {
|
|
129
|
+
const authConfig = {
|
|
130
|
+
...existingAuth
|
|
131
|
+
};
|
|
132
|
+
const provider = env.CODEMIE_PROFILE_NAME || env.CODEMIE_PROVIDER;
|
|
133
|
+
// Provider-specific auth configuration
|
|
134
|
+
if (provider === 'gemini') {
|
|
135
|
+
// Gemini session: add Gemini-specific vars
|
|
136
|
+
if (env.GEMINI_API_KEY) {
|
|
137
|
+
authConfig.GEMINI_API_KEY = env.GEMINI_API_KEY;
|
|
138
|
+
}
|
|
139
|
+
if (env.GOOGLE_GEMINI_BASE_URL) {
|
|
140
|
+
authConfig.GOOGLE_GEMINI_BASE_URL = env.GOOGLE_GEMINI_BASE_URL;
|
|
141
|
+
}
|
|
142
|
+
// Also set OPENAI_* for compatibility (gemini can use OpenAI SDK)
|
|
143
|
+
if (env.OPENAI_API_KEY) {
|
|
144
|
+
authConfig.OPENAI_API_KEY = env.OPENAI_API_KEY;
|
|
145
|
+
}
|
|
146
|
+
// Don't overwrite OPENAI_API_BASE if it exists from another session
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
// Ollama or other OpenAI-compatible providers
|
|
150
|
+
authConfig.OPENAI_API_KEY = env.OPENAI_API_KEY || existingAuth.OPENAI_API_KEY || 'not-required';
|
|
151
|
+
// Codex prioritizes OPENAI_API_BASE over OPENAI_BASE_URL
|
|
152
|
+
if (env.OPENAI_BASE_URL) {
|
|
153
|
+
authConfig.OPENAI_API_BASE = env.OPENAI_BASE_URL;
|
|
154
|
+
}
|
|
155
|
+
else if (env.OPENAI_API_BASE) {
|
|
156
|
+
authConfig.OPENAI_API_BASE = env.OPENAI_API_BASE;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return authConfig;
|
|
160
|
+
}
|
|
161
|
+
export async function setupAuthJson(authFile, env) {
|
|
162
|
+
const existingAuth = await loadExistingAuth(authFile);
|
|
163
|
+
const authConfig = buildAuthConfig(env, existingAuth);
|
|
164
|
+
await atomicWrite(authFile, JSON.stringify(authConfig, null, 2));
|
|
165
|
+
}
|
|
166
|
+
function buildSessionBlock(providerName, baseUrl, model) {
|
|
167
|
+
// Generate unique session ID (timestamp + provider)
|
|
168
|
+
const sessionId = `${providerName}-${Date.now()}`;
|
|
169
|
+
let content = '';
|
|
170
|
+
content += `# --- CODEMIE SESSION START: ${sessionId} ---\n`;
|
|
171
|
+
content += `profile = "${providerName}"\n\n`;
|
|
172
|
+
content += `[model_providers.${providerName}]\n`;
|
|
173
|
+
content += `name = "${providerName}"\n`;
|
|
174
|
+
content += `base_url = "${baseUrl}"\n\n`;
|
|
175
|
+
content += `[profiles.${providerName}]\n`;
|
|
176
|
+
content += `model_provider = "${providerName}"\n`;
|
|
177
|
+
content += `model = "${model}"\n`;
|
|
178
|
+
content += `# --- CODEMIE SESSION END: ${sessionId} ---\n`;
|
|
179
|
+
return content;
|
|
180
|
+
}
|
|
181
|
+
export async function setupConfigToml(configFile, env) {
|
|
182
|
+
const model = env.OPENAI_MODEL || env.CODEX_MODEL;
|
|
183
|
+
const baseUrl = env.OPENAI_BASE_URL || env.OPENAI_API_BASE;
|
|
184
|
+
if (!model || !baseUrl) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
const providerName = env.CODEMIE_PROFILE_NAME || env.CODEMIE_PROVIDER || 'default';
|
|
188
|
+
// Read existing content (or empty if file doesn't exist)
|
|
189
|
+
let existingContent = '';
|
|
190
|
+
if (existsSync(configFile)) {
|
|
191
|
+
existingContent = await readFile(configFile, 'utf-8');
|
|
192
|
+
}
|
|
193
|
+
// Build session block
|
|
194
|
+
const sessionBlock = buildSessionBlock(providerName, baseUrl, model);
|
|
195
|
+
// Append session block to existing content
|
|
196
|
+
const newContent = existingContent ? `${existingContent}\n${sessionBlock}` : sessionBlock;
|
|
197
|
+
// Store session ID for cleanup
|
|
198
|
+
env.CODEMIE_SESSION_ID = sessionBlock.match(/# --- CODEMIE SESSION START: (.*?) ---/)?.[1] || '';
|
|
199
|
+
await atomicWrite(configFile, newContent);
|
|
200
|
+
}
|
|
6
201
|
// Define metadata object for reusability
|
|
7
202
|
const metadata = {
|
|
8
203
|
name: 'codex',
|
|
@@ -23,21 +218,17 @@ const metadata = {
|
|
|
23
218
|
},
|
|
24
219
|
supportedProviders: ['ollama', 'litellm', 'ai-run-sso'],
|
|
25
220
|
blockedModelPatterns: [/^claude/i],
|
|
221
|
+
recommendedModels: ['gpt-4.1', 'gpt-4o', 'qwen2.5-coder'],
|
|
26
222
|
ssoConfig: {
|
|
27
223
|
enabled: true,
|
|
28
|
-
clientType: 'codex-cli'
|
|
29
|
-
envOverrides: {
|
|
30
|
-
baseUrl: 'OPENAI_BASE_URL',
|
|
31
|
-
apiKey: 'OPENAI_API_KEY'
|
|
32
|
-
}
|
|
224
|
+
clientType: 'codex-cli'
|
|
33
225
|
},
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
226
|
+
flagMappings: {
|
|
227
|
+
'--task': {
|
|
228
|
+
type: 'subcommand',
|
|
229
|
+
target: 'exec',
|
|
230
|
+
position: 'before'
|
|
39
231
|
}
|
|
40
|
-
return args;
|
|
41
232
|
}
|
|
42
233
|
};
|
|
43
234
|
/**
|
|
@@ -47,21 +238,39 @@ export const CodexPluginMetadata = {
|
|
|
47
238
|
...metadata,
|
|
48
239
|
// Lifecycle hook uses dataPaths from metadata (DRY!)
|
|
49
240
|
lifecycle: {
|
|
241
|
+
enrichArgs: (args, config) => {
|
|
242
|
+
// Pass profile to Codex (uses config.toml profiles)
|
|
243
|
+
const hasProfileArg = args.some((arg, idx) => (arg === '--profile') && idx < args.length - 1);
|
|
244
|
+
// Use CodeMie profile name (matches beforeRun setup)
|
|
245
|
+
const profileName = config.profileName || config.provider || 'default';
|
|
246
|
+
if (!hasProfileArg) {
|
|
247
|
+
return ['--profile', profileName, ...args];
|
|
248
|
+
}
|
|
249
|
+
return args;
|
|
250
|
+
},
|
|
50
251
|
beforeRun: async (env) => {
|
|
51
252
|
const codexDir = join(homedir(), metadata.dataPaths.home.replace('~/', ''));
|
|
52
253
|
const authFile = join(codexDir, metadata.dataPaths.settings);
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
254
|
+
const configFile = join(codexDir, 'config.toml');
|
|
255
|
+
await ensureCodexDirectory(codexDir);
|
|
256
|
+
await setupAuthJson(authFile, env);
|
|
257
|
+
await setupConfigToml(configFile, env);
|
|
258
|
+
return env;
|
|
259
|
+
},
|
|
260
|
+
afterRun: async (exitCode, sessionEnv) => {
|
|
261
|
+
// Cleanup session-specific configuration after session ends
|
|
262
|
+
const codexDir = join(homedir(), metadata.dataPaths.home.replace('~/', ''));
|
|
263
|
+
const authFile = join(codexDir, metadata.dataPaths.settings);
|
|
264
|
+
const configFile = join(codexDir, 'config.toml');
|
|
265
|
+
try {
|
|
266
|
+
await cleanupAuthJson(authFile, sessionEnv, configFile);
|
|
267
|
+
await cleanupConfigToml(configFile, sessionEnv);
|
|
56
268
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
};
|
|
62
|
-
await writeFile(authFile, JSON.stringify(authConfig, null, 2));
|
|
269
|
+
catch (error) {
|
|
270
|
+
// Ignore cleanup errors (session already ended, non-critical)
|
|
271
|
+
const { logger } = await import('../../utils/logger.js');
|
|
272
|
+
logger.debug(`Cleanup failed (non-critical): ${error instanceof Error ? error.message : String(error)}`);
|
|
63
273
|
}
|
|
64
|
-
return env;
|
|
65
274
|
}
|
|
66
275
|
},
|
|
67
276
|
// Analytics adapter uses same metadata (DRY!)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.plugin.js","sourceRoot":"","sources":["../../../src/agents/plugins/codex.plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"codex.plugin.js","sourceRoot":"","sources":["../../../src/agents/plugins/codex.plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepagents.plugin.d.ts","sourceRoot":"","sources":["../../../src/agents/plugins/deepagents.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAI/D;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,
|
|
1
|
+
{"version":3,"file":"deepagents.plugin.d.ts","sourceRoot":"","sources":["../../../src/agents/plugins/deepagents.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAI/D;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,aAsDtC,CAAC;AAEF;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,gBAAgB;;IAKpD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB9B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAkBjC"}
|
|
@@ -17,14 +17,17 @@ export const DeepAgentsPluginMetadata = {
|
|
|
17
17
|
},
|
|
18
18
|
supportedProviders: ['ollama', 'litellm', 'ai-run-sso'],
|
|
19
19
|
blockedModelPatterns: [], // Accepts both Claude and OpenAI models
|
|
20
|
+
recommendedModels: ['claude-4-5-sonnet', 'gpt-4.1', 'gpt-4o'],
|
|
20
21
|
// Note: Deep Agents CLI doesn't support CLI arguments for API configuration
|
|
21
22
|
// All configuration must be done via environment variables
|
|
22
23
|
ssoConfig: {
|
|
23
24
|
enabled: true,
|
|
24
|
-
clientType: 'codemie-deepagents'
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
clientType: 'codemie-deepagents'
|
|
26
|
+
},
|
|
27
|
+
flagMappings: {
|
|
28
|
+
'--task': {
|
|
29
|
+
type: 'positional',
|
|
30
|
+
target: null
|
|
28
31
|
}
|
|
29
32
|
},
|
|
30
33
|
lifecycle: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepagents.plugin.js","sourceRoot":"","sources":["../../../src/agents/plugins/deepagents.plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAkB;IACrD,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,+DAA+D;IAE5E,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAE5B,UAAU,EAAE;QACV,OAAO,EAAE,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;QAClD,MAAM,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;QAC/C,KAAK,EAAE,EAAE,CAAC,kGAAkG;KAC7G;IAED,kBAAkB,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC;IACvD,oBAAoB,EAAE,EAAE,EAAE,wCAAwC;
|
|
1
|
+
{"version":3,"file":"deepagents.plugin.js","sourceRoot":"","sources":["../../../src/agents/plugins/deepagents.plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.plugin.d.ts","sourceRoot":"","sources":["../../../src/agents/plugins/gemini.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"gemini.plugin.d.ts","sourceRoot":"","sources":["../../../src/agents/plugins/gemini.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AA6C/D;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,aA2ClC,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAa,SAAQ,gBAAgB;;CAIjD"}
|
|
@@ -17,12 +17,15 @@ const metadata = {
|
|
|
17
17
|
},
|
|
18
18
|
supportedProviders: ['ai-run-sso', 'litellm'],
|
|
19
19
|
blockedModelPatterns: [/^claude/i, /^gpt/i], // Gemini models only
|
|
20
|
+
recommendedModels: ['gemini-2.5-flash', 'gemini-2.5-pro'],
|
|
20
21
|
ssoConfig: {
|
|
21
22
|
enabled: true,
|
|
22
|
-
clientType: 'gemini-cli'
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
clientType: 'gemini-cli'
|
|
24
|
+
},
|
|
25
|
+
flagMappings: {
|
|
26
|
+
'--task': {
|
|
27
|
+
type: 'flag',
|
|
28
|
+
target: '-p'
|
|
26
29
|
}
|
|
27
30
|
},
|
|
28
31
|
// Data paths (used by lifecycle hooks and analytics)
|
|
@@ -37,16 +40,16 @@ const metadata = {
|
|
|
37
40
|
*/
|
|
38
41
|
export const GeminiPluginMetadata = {
|
|
39
42
|
...metadata,
|
|
40
|
-
// Gemini CLI uses -m flag for model selection
|
|
41
|
-
argumentTransform: (args, config) => {
|
|
42
|
-
const hasModelArg = args.some((arg, idx) => (arg === '-m' || arg === '--model') && idx < args.length - 1);
|
|
43
|
-
if (!hasModelArg && config.model) {
|
|
44
|
-
return ['-m', config.model, ...args];
|
|
45
|
-
}
|
|
46
|
-
return args;
|
|
47
|
-
},
|
|
48
43
|
// Lifecycle hook to ensure settings file exists (uses metadata.dataPaths)
|
|
49
44
|
lifecycle: {
|
|
45
|
+
enrichArgs: (args, config) => {
|
|
46
|
+
// Gemini CLI uses -m flag for model selection
|
|
47
|
+
const hasModelArg = args.some((arg, idx) => (arg === '-m' || arg === '--model') && idx < args.length - 1);
|
|
48
|
+
if (!hasModelArg && config.model) {
|
|
49
|
+
return ['-m', config.model, ...args];
|
|
50
|
+
}
|
|
51
|
+
return args;
|
|
52
|
+
},
|
|
50
53
|
beforeRun: async (env) => {
|
|
51
54
|
const geminiDir = join(homedir(), metadata.dataPaths.home.replace('~/', ''));
|
|
52
55
|
const settingsFile = join(geminiDir, metadata.dataPaths.settings);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.plugin.js","sourceRoot":"","sources":["../../../src/agents/plugins/gemini.plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,+DAA+D;AAC/D,MAAM,QAAQ,GAAG;IACf,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,yCAAyC;IAEtD,UAAU,EAAE,oBAAoB;IAChC,UAAU,EAAE,QAAQ;IAEpB,UAAU,EAAE;QACV,OAAO,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;QACtD,MAAM,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;QAC5C,KAAK,EAAE,CAAC,cAAc,CAAC;KACxB;IAED,kBAAkB,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;IAC7C,oBAAoB,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,qBAAqB;
|
|
1
|
+
{"version":3,"file":"gemini.plugin.js","sourceRoot":"","sources":["../../../src/agents/plugins/gemini.plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Frameworks Health Check
|
|
3
|
+
*
|
|
4
|
+
* Verifies installation status of development frameworks
|
|
5
|
+
*/
|
|
6
|
+
import type { HealthCheckResult, ItemWiseHealthCheck, HealthCheckDetail } from '../types.js';
|
|
7
|
+
export declare class FrameworksCheck implements ItemWiseHealthCheck {
|
|
8
|
+
name: string;
|
|
9
|
+
run(): Promise<HealthCheckResult>;
|
|
10
|
+
runWithItemDisplay(onStartItem: (itemName: string) => void, onDisplayItem: (detail: HealthCheckDetail) => void): Promise<HealthCheckResult>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=FrameworksCheck.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrameworksCheck.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/FrameworksCheck.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAG7F,qBAAa,eAAgB,YAAW,mBAAmB;IACzD,IAAI,SAAgB;IAEd,GAAG,IAAI,OAAO,CAAC,iBAAiB,CAAC;IA8CjC,kBAAkB,CACtB,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvC,aAAa,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,GACjD,OAAO,CAAC,iBAAiB,CAAC;CAsD9B"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Frameworks Health Check
|
|
3
|
+
*
|
|
4
|
+
* Verifies installation status of development frameworks
|
|
5
|
+
*/
|
|
6
|
+
import { FrameworkRegistry } from '../../../../frameworks/index.js';
|
|
7
|
+
export class FrameworksCheck {
|
|
8
|
+
name = 'Frameworks';
|
|
9
|
+
async run() {
|
|
10
|
+
const details = [];
|
|
11
|
+
let success = true;
|
|
12
|
+
try {
|
|
13
|
+
const frameworks = FrameworkRegistry.getAllFrameworks();
|
|
14
|
+
if (frameworks.length === 0) {
|
|
15
|
+
details.push({
|
|
16
|
+
status: 'info',
|
|
17
|
+
message: 'No frameworks registered'
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
// Check each framework
|
|
22
|
+
for (const framework of frameworks) {
|
|
23
|
+
const installed = await framework.isInstalled();
|
|
24
|
+
const version = installed ? await framework.getVersion() : null;
|
|
25
|
+
const versionStr = version ? ` (${version})` : '';
|
|
26
|
+
if (installed) {
|
|
27
|
+
details.push({
|
|
28
|
+
status: 'ok',
|
|
29
|
+
message: `${framework.metadata.displayName}${versionStr}`
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
details.push({
|
|
34
|
+
status: 'info',
|
|
35
|
+
message: `${framework.metadata.displayName} - not installed`
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return { name: this.name, success, details };
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
return {
|
|
44
|
+
name: this.name,
|
|
45
|
+
success: false,
|
|
46
|
+
details: [{
|
|
47
|
+
status: 'error',
|
|
48
|
+
message: `Failed to check frameworks: ${error instanceof Error ? error.message : String(error)}`
|
|
49
|
+
}]
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async runWithItemDisplay(onStartItem, onDisplayItem) {
|
|
54
|
+
const details = [];
|
|
55
|
+
let success = true;
|
|
56
|
+
try {
|
|
57
|
+
const frameworks = FrameworkRegistry.getAllFrameworks();
|
|
58
|
+
if (frameworks.length === 0) {
|
|
59
|
+
const detail = {
|
|
60
|
+
status: 'info',
|
|
61
|
+
message: 'No frameworks registered'
|
|
62
|
+
};
|
|
63
|
+
details.push(detail);
|
|
64
|
+
onDisplayItem(detail);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
// Check each framework
|
|
68
|
+
for (const framework of frameworks) {
|
|
69
|
+
onStartItem(`Checking ${framework.metadata.displayName}...`);
|
|
70
|
+
const installed = await framework.isInstalled();
|
|
71
|
+
const version = installed ? await framework.getVersion() : null;
|
|
72
|
+
const versionStr = version ? ` (${version})` : '';
|
|
73
|
+
const detail = installed
|
|
74
|
+
? {
|
|
75
|
+
status: 'ok',
|
|
76
|
+
message: `${framework.metadata.displayName}${versionStr}`
|
|
77
|
+
}
|
|
78
|
+
: {
|
|
79
|
+
status: 'info',
|
|
80
|
+
message: `${framework.metadata.displayName} - not installed`
|
|
81
|
+
};
|
|
82
|
+
details.push(detail);
|
|
83
|
+
onDisplayItem(detail);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return { name: this.name, success, details };
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
const detail = {
|
|
90
|
+
status: 'error',
|
|
91
|
+
message: `Failed to check frameworks: ${error instanceof Error ? error.message : String(error)}`
|
|
92
|
+
};
|
|
93
|
+
details.push(detail);
|
|
94
|
+
onDisplayItem(detail);
|
|
95
|
+
return {
|
|
96
|
+
name: this.name,
|
|
97
|
+
success: false,
|
|
98
|
+
details
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=FrameworksCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrameworksCheck.js","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/FrameworksCheck.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,4 +9,5 @@ export { AwsCliCheck } from './AwsCliCheck.js';
|
|
|
9
9
|
export { AIConfigCheck } from './AIConfigCheck.js';
|
|
10
10
|
export { AgentsCheck } from './AgentsCheck.js';
|
|
11
11
|
export { WorkflowsCheck } from './WorkflowsCheck.js';
|
|
12
|
+
export { FrameworksCheck } from './FrameworksCheck.js';
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -9,4 +9,5 @@ export { AwsCliCheck } from './AwsCliCheck.js';
|
|
|
9
9
|
export { AIConfigCheck } from './AIConfigCheck.js';
|
|
10
10
|
export { AgentsCheck } from './AgentsCheck.js';
|
|
11
11
|
export { WorkflowsCheck } from './WorkflowsCheck.js';
|
|
12
|
+
export { FrameworksCheck } from './FrameworksCheck.js';
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/doctor/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/doctor/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,mBAAmB,IAAI,OAAO,CAoL7C"}
|
|
@@ -5,7 +5,7 @@ import { Command } from 'commander';
|
|
|
5
5
|
import chalk from 'chalk';
|
|
6
6
|
import os from 'os';
|
|
7
7
|
import { HealthCheckFormatter } from './formatter.js';
|
|
8
|
-
import { NodeVersionCheck, NpmCheck, PythonCheck, UvCheck, AwsCliCheck, AIConfigCheck, AgentsCheck, WorkflowsCheck } from './checks/index.js';
|
|
8
|
+
import { NodeVersionCheck, NpmCheck, PythonCheck, UvCheck, AwsCliCheck, AIConfigCheck, AgentsCheck, WorkflowsCheck, FrameworksCheck } from './checks/index.js';
|
|
9
9
|
import { ProviderRegistry } from '../../../providers/core/registry.js';
|
|
10
10
|
import { adaptProviderResult } from './type-adapters.js';
|
|
11
11
|
import { logger } from '../../../utils/logger.js';
|
|
@@ -69,7 +69,8 @@ export function createDoctorCommand() {
|
|
|
69
69
|
new AwsCliCheck(),
|
|
70
70
|
new AIConfigCheck(),
|
|
71
71
|
new AgentsCheck(),
|
|
72
|
-
new WorkflowsCheck()
|
|
72
|
+
new WorkflowsCheck(),
|
|
73
|
+
new FrameworksCheck()
|
|
73
74
|
];
|
|
74
75
|
// Run and display standard checks immediately
|
|
75
76
|
for (const check of checks) {
|