fixo-cli 1.0.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of fixo-cli might be problematic. Click here for more details.
- package/CHANGELOG.md +62 -0
- package/README.md +18 -14
- package/dist/agent/agent-client.d.ts +28 -6
- package/dist/agent/agent-client.d.ts.map +1 -1
- package/dist/agent/agent-client.js +118 -39
- package/dist/agent/agent-client.js.map +1 -1
- package/dist/agent/agent-pool.d.ts +55 -6
- package/dist/agent/agent-pool.d.ts.map +1 -1
- package/dist/agent/agent-pool.js +120 -20
- package/dist/agent/agent-pool.js.map +1 -1
- package/dist/agent/auto-verifier.d.ts +55 -0
- package/dist/agent/auto-verifier.d.ts.map +1 -0
- package/dist/agent/auto-verifier.js +50 -0
- package/dist/agent/auto-verifier.js.map +1 -0
- package/dist/agent/command-parser.d.ts +37 -0
- package/dist/agent/command-parser.d.ts.map +1 -1
- package/dist/agent/command-parser.js +473 -1
- package/dist/agent/command-parser.js.map +1 -1
- package/dist/agent/context-builder.d.ts +24 -0
- package/dist/agent/context-builder.d.ts.map +1 -0
- package/dist/agent/context-builder.js +197 -0
- package/dist/agent/context-builder.js.map +1 -0
- package/dist/agent/conversation.d.ts +32 -2
- package/dist/agent/conversation.d.ts.map +1 -1
- package/dist/agent/conversation.js +84 -9
- package/dist/agent/conversation.js.map +1 -1
- package/dist/agent/duration.d.ts +24 -0
- package/dist/agent/duration.d.ts.map +1 -0
- package/dist/agent/duration.js +42 -0
- package/dist/agent/duration.js.map +1 -0
- package/dist/agent/file-writing-rules.d.ts +19 -0
- package/dist/agent/file-writing-rules.d.ts.map +1 -0
- package/dist/agent/file-writing-rules.js +31 -0
- package/dist/agent/file-writing-rules.js.map +1 -0
- package/dist/agent/mcp-bridge.js +1 -1
- package/dist/agent/mcp-bridge.js.map +1 -1
- package/dist/agent/orchestrator.d.ts +45 -0
- package/dist/agent/orchestrator.d.ts.map +1 -1
- package/dist/agent/orchestrator.js +140 -3
- package/dist/agent/orchestrator.js.map +1 -1
- package/dist/agent/parser-adapter.d.ts +17 -0
- package/dist/agent/parser-adapter.d.ts.map +1 -1
- package/dist/agent/parser-adapter.js +311 -7
- package/dist/agent/parser-adapter.js.map +1 -1
- package/dist/agent/predictive-gate.d.ts.map +1 -1
- package/dist/agent/predictive-gate.js +4 -1
- package/dist/agent/predictive-gate.js.map +1 -1
- package/dist/agent/provider-cooldown.d.ts.map +1 -1
- package/dist/agent/provider-cooldown.js +3 -2
- package/dist/agent/provider-cooldown.js.map +1 -1
- package/dist/agent/providers-manager.d.ts +5 -0
- package/dist/agent/providers-manager.d.ts.map +1 -1
- package/dist/agent/providers-manager.js +119 -8
- package/dist/agent/providers-manager.js.map +1 -1
- package/dist/agent/repo-map.d.ts +18 -1
- package/dist/agent/repo-map.d.ts.map +1 -1
- package/dist/agent/repo-map.js +144 -54
- package/dist/agent/repo-map.js.map +1 -1
- package/dist/agent/retry.js +1 -2
- package/dist/agent/retry.js.map +1 -1
- package/dist/agent/single-agent.d.ts +13 -0
- package/dist/agent/single-agent.d.ts.map +1 -1
- package/dist/agent/single-agent.js +225 -37
- package/dist/agent/single-agent.js.map +1 -1
- package/dist/agent/skills.d.ts.map +1 -1
- package/dist/agent/skills.js +2 -1
- package/dist/agent/skills.js.map +1 -1
- package/dist/agent/subagent.js +2 -2
- package/dist/agent/subagent.js.map +1 -1
- package/dist/agent/task-router.d.ts +46 -0
- package/dist/agent/task-router.d.ts.map +1 -0
- package/dist/agent/task-router.js +352 -0
- package/dist/agent/task-router.js.map +1 -0
- package/dist/agent/telemetry.d.ts +29 -1
- package/dist/agent/telemetry.d.ts.map +1 -1
- package/dist/agent/telemetry.js +29 -11
- package/dist/agent/telemetry.js.map +1 -1
- package/dist/agent/tool-definitions.d.ts +3 -0
- package/dist/agent/tool-definitions.d.ts.map +1 -0
- package/dist/agent/tool-definitions.js +519 -0
- package/dist/agent/tool-definitions.js.map +1 -0
- package/dist/agent/tool-executor.d.ts +6 -1
- package/dist/agent/tool-executor.d.ts.map +1 -1
- package/dist/agent/tool-executor.js +99 -553
- package/dist/agent/tool-executor.js.map +1 -1
- package/dist/agent/tools/command-tools.d.ts +6 -0
- package/dist/agent/tools/command-tools.d.ts.map +1 -0
- package/dist/agent/tools/command-tools.js +104 -0
- package/dist/agent/tools/command-tools.js.map +1 -0
- package/dist/agent/tools/file-tools.d.ts +15 -0
- package/dist/agent/tools/file-tools.d.ts.map +1 -0
- package/dist/agent/tools/file-tools.js +551 -0
- package/dist/agent/tools/file-tools.js.map +1 -0
- package/dist/agent/tools/todo-tools.d.ts +3 -0
- package/dist/agent/tools/todo-tools.d.ts.map +1 -0
- package/dist/agent/tools/todo-tools.js +70 -0
- package/dist/agent/tools/todo-tools.js.map +1 -0
- package/dist/agent/web-impl.d.ts.map +1 -1
- package/dist/agent/web-impl.js +45 -0
- package/dist/agent/web-impl.js.map +1 -1
- package/dist/agent/worker-agent.d.ts +3 -1
- package/dist/agent/worker-agent.d.ts.map +1 -1
- package/dist/agent/worker-agent.js +56 -16
- package/dist/agent/worker-agent.js.map +1 -1
- package/dist/config.d.ts +253 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +81 -1
- package/dist/config.js.map +1 -1
- package/dist/git/git-manager.d.ts +33 -2
- package/dist/git/git-manager.d.ts.map +1 -1
- package/dist/git/git-manager.js +111 -15
- package/dist/git/git-manager.js.map +1 -1
- package/dist/git/git-ops.d.ts.map +1 -1
- package/dist/git/git-ops.js +2 -1
- package/dist/git/git-ops.js.map +1 -1
- package/dist/index.js +89 -8
- package/dist/index.js.map +1 -1
- package/dist/lsp/lsp-manager.js +1 -1
- package/dist/lsp/lsp-manager.js.map +1 -1
- package/dist/model-outcomes.d.ts.map +1 -1
- package/dist/model-outcomes.js +2 -1
- package/dist/model-outcomes.js.map +1 -1
- package/dist/planner.d.ts +0 -9
- package/dist/planner.d.ts.map +1 -1
- package/dist/planner.js +0 -9
- package/dist/planner.js.map +1 -1
- package/dist/project-memory.d.ts +12 -1
- package/dist/project-memory.d.ts.map +1 -1
- package/dist/project-memory.js +8 -6
- package/dist/project-memory.js.map +1 -1
- package/dist/runtime/loop-mitigation.d.ts +119 -0
- package/dist/runtime/loop-mitigation.d.ts.map +1 -0
- package/dist/runtime/loop-mitigation.js +192 -0
- package/dist/runtime/loop-mitigation.js.map +1 -0
- package/dist/runtime/os-sandbox.d.ts +100 -0
- package/dist/runtime/os-sandbox.d.ts.map +1 -0
- package/dist/runtime/os-sandbox.js +246 -0
- package/dist/runtime/os-sandbox.js.map +1 -0
- package/dist/runtime/run-inventory.d.ts +17 -0
- package/dist/runtime/run-inventory.d.ts.map +1 -0
- package/dist/runtime/run-inventory.js +49 -0
- package/dist/runtime/run-inventory.js.map +1 -0
- package/dist/runtime/session-snapshots.d.ts +52 -2
- package/dist/runtime/session-snapshots.d.ts.map +1 -1
- package/dist/runtime/session-snapshots.js +76 -1
- package/dist/runtime/session-snapshots.js.map +1 -1
- package/dist/runtime/staging.d.ts.map +1 -1
- package/dist/runtime/staging.js +4 -1
- package/dist/runtime/staging.js.map +1 -1
- package/dist/runtime/task-session.d.ts +14 -0
- package/dist/runtime/task-session.d.ts.map +1 -1
- package/dist/runtime/task-session.js +26 -0
- package/dist/runtime/task-session.js.map +1 -1
- package/dist/setup-wizard.d.ts +11 -3
- package/dist/setup-wizard.d.ts.map +1 -1
- package/dist/setup-wizard.js +113 -15
- package/dist/setup-wizard.js.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/commands/context-commands.d.ts +7 -0
- package/dist/ui/commands/context-commands.d.ts.map +1 -0
- package/dist/ui/commands/context-commands.js +241 -0
- package/dist/ui/commands/context-commands.js.map +1 -0
- package/dist/ui/commands/index.d.ts +3 -0
- package/dist/ui/commands/index.d.ts.map +1 -0
- package/dist/ui/commands/index.js +46 -0
- package/dist/ui/commands/index.js.map +1 -0
- package/dist/ui/commands/info-commands.d.ts +15 -0
- package/dist/ui/commands/info-commands.d.ts.map +1 -0
- package/dist/ui/commands/info-commands.js +122 -0
- package/dist/ui/commands/info-commands.js.map +1 -0
- package/dist/ui/commands/model-commands.d.ts +5 -0
- package/dist/ui/commands/model-commands.d.ts.map +1 -0
- package/dist/ui/commands/model-commands.js +417 -0
- package/dist/ui/commands/model-commands.js.map +1 -0
- package/dist/ui/commands/session-commands.d.ts +5 -0
- package/dist/ui/commands/session-commands.d.ts.map +1 -0
- package/dist/ui/commands/session-commands.js +154 -0
- package/dist/ui/commands/session-commands.js.map +1 -0
- package/dist/ui/commands/task-commands.d.ts +8 -0
- package/dist/ui/commands/task-commands.d.ts.map +1 -0
- package/dist/ui/commands/task-commands.js +152 -0
- package/dist/ui/commands/task-commands.js.map +1 -0
- package/dist/ui/commands/types.d.ts +46 -0
- package/dist/ui/commands/types.d.ts.map +1 -0
- package/dist/ui/commands/types.js +2 -0
- package/dist/ui/commands/types.js.map +1 -0
- package/dist/ui/commands/workspace-commands.d.ts +8 -0
- package/dist/ui/commands/workspace-commands.d.ts.map +1 -0
- package/dist/ui/commands/workspace-commands.js +131 -0
- package/dist/ui/commands/workspace-commands.js.map +1 -0
- package/dist/ui/loading-animation.d.ts +24 -0
- package/dist/ui/loading-animation.d.ts.map +1 -0
- package/dist/ui/loading-animation.js +123 -0
- package/dist/ui/loading-animation.js.map +1 -0
- package/dist/ui/markdown-stream.js +2 -2
- package/dist/ui/markdown-stream.js.map +1 -1
- package/dist/ui/prompt.d.ts +7 -0
- package/dist/ui/prompt.d.ts.map +1 -1
- package/dist/ui/prompt.js +461 -1143
- package/dist/ui/prompt.js.map +1 -1
- package/dist/ui/render-primitives.d.ts +6 -0
- package/dist/ui/render-primitives.d.ts.map +1 -1
- package/dist/ui/render-primitives.js +30 -13
- package/dist/ui/render-primitives.js.map +1 -1
- package/dist/ui/render.d.ts.map +1 -1
- package/dist/ui/render.js +2 -0
- package/dist/ui/render.js.map +1 -1
- package/dist/ui/session-header.d.ts +13 -0
- package/dist/ui/session-header.d.ts.map +1 -1
- package/dist/ui/session-header.js +6 -0
- package/dist/ui/session-header.js.map +1 -1
- package/package.json +22 -4
- package/scripts/check-vendor-wasm.js +55 -0
- package/vendor/tree-sitter-bash.wasm +0 -0
- package/vendor/tree-sitter-go.wasm +0 -0
- package/vendor/tree-sitter-javascript.wasm +0 -0
- package/vendor/tree-sitter-python.wasm +0 -0
- package/vendor/tree-sitter-rust.wasm +0 -0
- package/vendor/tree-sitter-tsx.wasm +0 -0
- package/vendor/tree-sitter-typescript.wasm +0 -0
- package/vendor/tree-sitter.wasm +0 -0
|
@@ -16,7 +16,19 @@
|
|
|
16
16
|
import fs from 'node:fs';
|
|
17
17
|
import path from 'node:path';
|
|
18
18
|
import os from 'node:os';
|
|
19
|
+
import crypto from 'node:crypto';
|
|
19
20
|
import { getProviderKeyVault, resetProviderKeyVault, } from '../runtime/credential-vault.js';
|
|
21
|
+
/* ──────────────────────── Provider Registry ──────────────────────── */
|
|
22
|
+
/**
|
|
23
|
+
* Known-good models that reliably follow the multi-agent DAG orchestration contract.
|
|
24
|
+
* Used by the router when `modelRouting === 'auto'` to prevent task deadlocks.
|
|
25
|
+
*/
|
|
26
|
+
export const MODEL_DAG_VERIFIED = new Set([
|
|
27
|
+
'claude-3-5-sonnet-20241022',
|
|
28
|
+
'gemini-2.5-pro',
|
|
29
|
+
'gpt-4o',
|
|
30
|
+
'o3-mini',
|
|
31
|
+
]);
|
|
20
32
|
export const PROVIDER_REGISTRY = [
|
|
21
33
|
{
|
|
22
34
|
name: 'openai',
|
|
@@ -32,7 +44,7 @@ export const PROVIDER_REGISTRY = [
|
|
|
32
44
|
displayName: 'Anthropic (Claude)',
|
|
33
45
|
baseUrl: 'https://api.anthropic.com/v1',
|
|
34
46
|
openAICompat: false,
|
|
35
|
-
models: ['claude-opus-4-
|
|
47
|
+
models: ['claude-opus-4-7', 'claude-sonnet-4-6', 'claude-haiku-4-5-20251001'],
|
|
36
48
|
requiresKey: true,
|
|
37
49
|
docsUrl: 'https://console.anthropic.com/settings/keys',
|
|
38
50
|
},
|
|
@@ -77,7 +89,7 @@ export const PROVIDER_REGISTRY = [
|
|
|
77
89
|
displayName: 'OpenRouter',
|
|
78
90
|
baseUrl: 'https://openrouter.ai/api/v1',
|
|
79
91
|
openAICompat: true,
|
|
80
|
-
models: ['anthropic/claude-opus-4-
|
|
92
|
+
models: ['anthropic/claude-opus-4-7', 'openai/gpt-4o', 'google/gemini-2.5-pro', 'meta-llama/llama-4-maverick'],
|
|
81
93
|
requiresKey: true,
|
|
82
94
|
docsUrl: 'https://openrouter.ai/keys',
|
|
83
95
|
},
|
|
@@ -151,13 +163,62 @@ export const PROVIDER_REGISTRY = [
|
|
|
151
163
|
function getProvidersFilePath() {
|
|
152
164
|
return path.join(os.homedir(), '.fixocli', 'providers.json');
|
|
153
165
|
}
|
|
166
|
+
function getMachineKey() {
|
|
167
|
+
const p = path.join(os.homedir(), '.fixocli', '.machine_key');
|
|
168
|
+
if (fs.existsSync(p)) {
|
|
169
|
+
return Buffer.from(fs.readFileSync(p, 'utf-8').trim(), 'hex');
|
|
170
|
+
}
|
|
171
|
+
const key = crypto.randomBytes(32);
|
|
172
|
+
fs.writeFileSync(p, key.toString('hex') + '\n', { mode: 0o600 });
|
|
173
|
+
return key;
|
|
174
|
+
}
|
|
175
|
+
function encryptKey(key) {
|
|
176
|
+
if (key.startsWith('ENC:'))
|
|
177
|
+
return key;
|
|
178
|
+
const iv = crypto.randomBytes(16);
|
|
179
|
+
const cipher = crypto.createCipheriv('aes-256-gcm', getMachineKey(), iv);
|
|
180
|
+
let encrypted = cipher.update(key, 'utf8', 'hex');
|
|
181
|
+
encrypted += cipher.final('hex');
|
|
182
|
+
const authTag = cipher.getAuthTag().toString('hex');
|
|
183
|
+
return `ENC:${iv.toString('hex')}:${authTag}:${encrypted}`;
|
|
184
|
+
}
|
|
185
|
+
function decryptKey(val) {
|
|
186
|
+
if (!val.startsWith('ENC:'))
|
|
187
|
+
return val;
|
|
188
|
+
const parts = val.split(':');
|
|
189
|
+
if (parts.length !== 4) {
|
|
190
|
+
console.warn('[FixO] providers.json: malformed ENC entry — removing this key. Run /providers remove and re-add it.');
|
|
191
|
+
throw new Error('Malformed encrypted key entry in providers.json');
|
|
192
|
+
}
|
|
193
|
+
const iv = Buffer.from(parts[1], 'hex');
|
|
194
|
+
const authTag = Buffer.from(parts[2], 'hex');
|
|
195
|
+
const encrypted = parts[3];
|
|
196
|
+
try {
|
|
197
|
+
const decipher = crypto.createDecipheriv('aes-256-gcm', getMachineKey(), iv);
|
|
198
|
+
decipher.setAuthTag(authTag);
|
|
199
|
+
let decrypted = decipher.update(encrypted, 'hex', 'utf8');
|
|
200
|
+
decrypted += decipher.final('utf8');
|
|
201
|
+
return decrypted;
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
console.warn('[FixO] Failed to decrypt a stored API key. Your ~/.fixocli/providers.json may be corrupted\n' +
|
|
205
|
+
' or the machine key has changed. Run: /providers remove <name>, then re-add the key.');
|
|
206
|
+
throw new Error('AES-256-GCM decryption failed — corrupted providers.json or rotated machine key');
|
|
207
|
+
}
|
|
208
|
+
}
|
|
154
209
|
function loadStore() {
|
|
155
210
|
const filePath = getProvidersFilePath();
|
|
156
211
|
try {
|
|
157
212
|
if (!fs.existsSync(filePath))
|
|
158
213
|
return {};
|
|
159
214
|
const raw = fs.readFileSync(filePath, 'utf-8');
|
|
160
|
-
|
|
215
|
+
const store = JSON.parse(raw);
|
|
216
|
+
for (const k of Object.keys(store)) {
|
|
217
|
+
if (store[k].apiKey) {
|
|
218
|
+
store[k].apiKey = decryptKey(store[k].apiKey);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return store;
|
|
161
222
|
}
|
|
162
223
|
catch {
|
|
163
224
|
return {};
|
|
@@ -169,14 +230,20 @@ function saveStore(store) {
|
|
|
169
230
|
fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
170
231
|
}
|
|
171
232
|
const filePath = getProvidersFilePath();
|
|
172
|
-
|
|
233
|
+
const toSave = JSON.parse(JSON.stringify(store)); // deep copy
|
|
234
|
+
for (const k of Object.keys(toSave)) {
|
|
235
|
+
if (toSave[k].apiKey) {
|
|
236
|
+
toSave[k].apiKey = encryptKey(toSave[k].apiKey);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
fs.writeFileSync(filePath, JSON.stringify(toSave, null, 2) + '\n', {
|
|
173
240
|
encoding: 'utf-8',
|
|
174
241
|
mode: 0o600,
|
|
175
242
|
});
|
|
176
243
|
try {
|
|
177
244
|
fs.chmodSync(filePath, 0o600);
|
|
178
245
|
}
|
|
179
|
-
catch { /*
|
|
246
|
+
catch { /* safe: see above */ }
|
|
180
247
|
}
|
|
181
248
|
function maskKey(key) {
|
|
182
249
|
if (key.length <= 8)
|
|
@@ -210,10 +277,11 @@ function saveModelsCache(store) {
|
|
|
210
277
|
encoding: 'utf-8',
|
|
211
278
|
mode: 0o600,
|
|
212
279
|
});
|
|
280
|
+
// safe: same belt-and-braces chmod as saveStore — see comment there.
|
|
213
281
|
try {
|
|
214
282
|
fs.chmodSync(filePath, 0o600);
|
|
215
283
|
}
|
|
216
|
-
catch { /*
|
|
284
|
+
catch { /* safe: see saveStore */ }
|
|
217
285
|
}
|
|
218
286
|
/**
|
|
219
287
|
* Build the same provider-specific headers that the existing
|
|
@@ -249,6 +317,25 @@ function parseModelsResponse(payload) {
|
|
|
249
317
|
.filter((s) => typeof s === 'string' && s.length > 0);
|
|
250
318
|
return ids.length > 0 ? ids : null;
|
|
251
319
|
}
|
|
320
|
+
function getModelHintsPath() {
|
|
321
|
+
return path.join(os.homedir(), '.fixocli', 'model-hints.json');
|
|
322
|
+
}
|
|
323
|
+
function loadModelProviderHints() {
|
|
324
|
+
try {
|
|
325
|
+
const raw = fs.readFileSync(getModelHintsPath(), 'utf-8');
|
|
326
|
+
const parsed = JSON.parse(raw);
|
|
327
|
+
return new Map(Object.entries(parsed));
|
|
328
|
+
}
|
|
329
|
+
catch {
|
|
330
|
+
return new Map();
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
function persistModelProviderHints(hints) {
|
|
334
|
+
const dir = path.join(os.homedir(), '.fixocli');
|
|
335
|
+
if (!fs.existsSync(dir))
|
|
336
|
+
fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
337
|
+
fs.writeFileSync(getModelHintsPath(), JSON.stringify(Object.fromEntries(hints), null, 2) + '\n', { encoding: 'utf-8', mode: 0o600 });
|
|
338
|
+
}
|
|
252
339
|
/**
|
|
253
340
|
* Maps model IDs to their explicitly-selected provider name.
|
|
254
341
|
* Populated when the user picks a model from a provider's list
|
|
@@ -256,11 +343,12 @@ function parseModelsResponse(payload) {
|
|
|
256
343
|
* AgentClient.resolveDirectConfig() before heuristic matching,
|
|
257
344
|
* which makes live-fetched models route to their correct provider.
|
|
258
345
|
*/
|
|
259
|
-
let modelProviderHints =
|
|
346
|
+
let modelProviderHints = loadModelProviderHints();
|
|
260
347
|
export const ProvidersManager = {
|
|
261
348
|
/** Set an explicit model-to-provider association. */
|
|
262
349
|
setModelProviderHint(model, provider) {
|
|
263
350
|
modelProviderHints.set(model.toLowerCase().trim(), provider);
|
|
351
|
+
persistModelProviderHints(modelProviderHints);
|
|
264
352
|
},
|
|
265
353
|
/** Get the explicit provider hint for a model, if one exists. */
|
|
266
354
|
getModelProviderHint(model) {
|
|
@@ -269,6 +357,7 @@ export const ProvidersManager = {
|
|
|
269
357
|
/** Clear all model-provider hints (e.g. when context resets). */
|
|
270
358
|
clearModelProviderHints() {
|
|
271
359
|
modelProviderHints = new Map();
|
|
360
|
+
persistModelProviderHints(modelProviderHints);
|
|
272
361
|
},
|
|
273
362
|
/** List all connected providers with masked keys. */
|
|
274
363
|
list() {
|
|
@@ -363,10 +452,28 @@ export const ProvidersManager = {
|
|
|
363
452
|
hydrateVault() {
|
|
364
453
|
const store = loadStore();
|
|
365
454
|
const vault = getProviderKeyVault();
|
|
455
|
+
let needsMigration = false;
|
|
456
|
+
// We read directly from file without decrypting to check if any are unencrypted
|
|
457
|
+
try {
|
|
458
|
+
const raw = fs.readFileSync(getProvidersFilePath(), 'utf-8');
|
|
459
|
+
const rawStore = JSON.parse(raw);
|
|
460
|
+
for (const entry of Object.values(rawStore)) {
|
|
461
|
+
if (entry.apiKey && !entry.apiKey.startsWith('ENC:')) {
|
|
462
|
+
needsMigration = true;
|
|
463
|
+
break;
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
catch {
|
|
468
|
+
// ignore
|
|
469
|
+
}
|
|
366
470
|
for (const [name, entry] of Object.entries(store)) {
|
|
367
471
|
const def = PROVIDER_REGISTRY.find((p) => p.name === name);
|
|
368
472
|
vault.ingest(name, entry.apiKey, def ? def.baseUrl : '', def ? def.displayName : name);
|
|
369
473
|
}
|
|
474
|
+
if (needsMigration) {
|
|
475
|
+
saveStore(store);
|
|
476
|
+
}
|
|
370
477
|
},
|
|
371
478
|
/**
|
|
372
479
|
* Drop the cached vault singleton. Used by the
|
|
@@ -435,10 +542,14 @@ export const ProvidersManager = {
|
|
|
435
542
|
// having to know whether a live fetch was ever attempted.
|
|
436
543
|
const store = loadModelsCache();
|
|
437
544
|
store[name] = { models: def.models.slice(), fetchedAt: now, source: 'registry-fallback' };
|
|
545
|
+
// safe: cache persistence is a perf optimisation only — losing
|
|
546
|
+
// it means the next /model call re-runs the fallback, never
|
|
547
|
+
// user-visible breakage. ENOSPC / read-only $HOME are the only
|
|
548
|
+
// realistic causes.
|
|
438
549
|
try {
|
|
439
550
|
saveModelsCache(store);
|
|
440
551
|
}
|
|
441
|
-
catch { /*
|
|
552
|
+
catch { /* safe: see above */ }
|
|
442
553
|
return { models: def.models.slice(), source: 'registry-fallback', fetchedAt: now };
|
|
443
554
|
};
|
|
444
555
|
// No key on disk → cannot live-fetch; fall through to cache → registry.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers-manager.js","sourceRoot":"","sources":["../../src/agent/providers-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"providers-manager.js","sourceRoot":"","sources":["../../src/agent/providers-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/repo-map.d.ts
CHANGED
|
@@ -1,6 +1,23 @@
|
|
|
1
|
+
/** Phase 3.3 — per-call overrides for the workspace-walk caps. */
|
|
2
|
+
export interface BuildRepoMapOptions {
|
|
3
|
+
/** Override `IGNORE_DIRS` with additional names. */
|
|
4
|
+
additionalExcludes?: string[];
|
|
5
|
+
/** Override the recursion depth cap (default: 4). */
|
|
6
|
+
maxDepth?: number;
|
|
7
|
+
/** Override the per-directory file cap (default: 200). */
|
|
8
|
+
maxFiles?: number;
|
|
9
|
+
}
|
|
1
10
|
/**
|
|
2
11
|
* Build a compact repo map string suitable for LLM context injection.
|
|
3
12
|
* Returns ~200-500 tokens of structured information about the workspace.
|
|
13
|
+
*
|
|
14
|
+
* Async because the parser adapter loads language grammars lazily on
|
|
15
|
+
* first use. The cost is paid once per process; subsequent calls hit
|
|
16
|
+
* the {@link ParserFactory} cache and resolve immediately.
|
|
17
|
+
*
|
|
18
|
+
* Back-compat: the second positional argument may still be the
|
|
19
|
+
* legacy `additionalExcludes` string array. New callers should pass
|
|
20
|
+
* a {@link BuildRepoMapOptions} object.
|
|
4
21
|
*/
|
|
5
|
-
export declare function buildRepoMap(cwd: string,
|
|
22
|
+
export declare function buildRepoMap(cwd: string, optsOrExcludes?: BuildRepoMapOptions | string[]): Promise<string>;
|
|
6
23
|
//# sourceMappingURL=repo-map.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo-map.d.ts","sourceRoot":"","sources":["../../src/agent/repo-map.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"repo-map.d.ts","sourceRoot":"","sources":["../../src/agent/repo-map.ts"],"names":[],"mappings":"AAoEA,kEAAkE;AAClE,MAAM,WAAW,mBAAmB;IAClC,oDAAoD;IACpD,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,cAAc,CAAC,EAAE,mBAAmB,GAAG,MAAM,EAAE,GAC9C,OAAO,CAAC,MAAM,CAAC,CA8CjB"}
|
package/dist/agent/repo-map.js
CHANGED
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* repo-map.ts — Compact workspace snapshot for LLM context injection.
|
|
3
|
+
*
|
|
3
4
|
* Instead of sending the full codebase content to the LLM (~8000 tokens),
|
|
4
|
-
* this produces a compact directory tree + export signatures (~500
|
|
5
|
-
* The model can then selectively read specific files via the
|
|
5
|
+
* this produces a compact directory tree + export signatures (~500
|
|
6
|
+
* tokens). The model can then selectively read specific files via the
|
|
7
|
+
* read_file tool.
|
|
8
|
+
*
|
|
9
|
+
* Phase 3.1 — export extraction is now driven by the shared
|
|
10
|
+
* {@link ParserFactory} adapter. When the vendored tree-sitter WASM
|
|
11
|
+
* grammars are available (the npm package ships them; CI gates the
|
|
12
|
+
* publish on their presence), real AST extraction is used per
|
|
13
|
+
* language. When a grammar is missing or the parser fails to load
|
|
14
|
+
* for any reason, the call gracefully falls back to the pre-existing
|
|
15
|
+
* regex extractor in src/agent/parsers/symbols.ts — so output is
|
|
16
|
+
* never worse than before.
|
|
17
|
+
*
|
|
18
|
+
* Adds Rust as a first-class language for the first time (the old
|
|
19
|
+
* regex-only path did not extract Rust symbols at all).
|
|
6
20
|
*/
|
|
7
21
|
import fs from 'fs';
|
|
8
22
|
import path from 'path';
|
|
23
|
+
import { ParserFactory, languageIdFromExtension } from './parser-adapter.js';
|
|
9
24
|
/* ──────────────────────── Config ──────────────────────── */
|
|
10
25
|
const IGNORE_DIRS = new Set([
|
|
11
26
|
'node_modules', '.git', 'dist', 'build', '.next', '.nuxt',
|
|
@@ -21,16 +36,55 @@ const CODE_EXTENSIONS = new Set([
|
|
|
21
36
|
'.java', '.kt', '.swift', '.rb', '.php', '.c', '.cpp',
|
|
22
37
|
'.h', '.cs', '.vue', '.svelte',
|
|
23
38
|
]);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Default caps. The Phase 3.3 work makes both overridable via the
|
|
41
|
+
* `opts` argument to {@link buildRepoMap}; the constants here are
|
|
42
|
+
* the defaults the v1.0.4 codebase used.
|
|
43
|
+
*/
|
|
44
|
+
const DEFAULT_MAX_DEPTH = 4;
|
|
45
|
+
const DEFAULT_MAX_FILES = 200;
|
|
46
|
+
/** Tree-sitter languages we pre-warm before scanning. Anything not in
|
|
47
|
+
* this list falls back to the regex extractor — that's the existing
|
|
48
|
+
* behaviour for Java/Kotlin/Swift/Ruby/etc. */
|
|
49
|
+
const PREWARM_LANGUAGES = ['typescript', 'javascript', 'python', 'go', 'rust'];
|
|
27
50
|
/**
|
|
28
51
|
* Build a compact repo map string suitable for LLM context injection.
|
|
29
52
|
* Returns ~200-500 tokens of structured information about the workspace.
|
|
53
|
+
*
|
|
54
|
+
* Async because the parser adapter loads language grammars lazily on
|
|
55
|
+
* first use. The cost is paid once per process; subsequent calls hit
|
|
56
|
+
* the {@link ParserFactory} cache and resolve immediately.
|
|
57
|
+
*
|
|
58
|
+
* Back-compat: the second positional argument may still be the
|
|
59
|
+
* legacy `additionalExcludes` string array. New callers should pass
|
|
60
|
+
* a {@link BuildRepoMapOptions} object.
|
|
30
61
|
*/
|
|
31
|
-
export function buildRepoMap(cwd,
|
|
32
|
-
const
|
|
33
|
-
|
|
62
|
+
export async function buildRepoMap(cwd, optsOrExcludes) {
|
|
63
|
+
const opts = Array.isArray(optsOrExcludes)
|
|
64
|
+
? { additionalExcludes: optsOrExcludes }
|
|
65
|
+
: (optsOrExcludes ?? {});
|
|
66
|
+
const excludes = new Set([...IGNORE_DIRS, ...(opts.additionalExcludes ?? [])]);
|
|
67
|
+
const maxDepth = Math.max(1, opts.maxDepth ?? DEFAULT_MAX_DEPTH);
|
|
68
|
+
const maxFiles = Math.max(1, opts.maxFiles ?? DEFAULT_MAX_FILES);
|
|
69
|
+
// Pre-warm the parser + language grammars we plan to use. Failures
|
|
70
|
+
// here are non-fatal: scanDirectory below falls back to the regex
|
|
71
|
+
// extractor on any extractSymbols failure.
|
|
72
|
+
let adapter = null;
|
|
73
|
+
try {
|
|
74
|
+
adapter = await ParserFactory.getParser();
|
|
75
|
+
if (adapter.name === 'tree-sitter') {
|
|
76
|
+
const ts = adapter;
|
|
77
|
+
if (ts.loadLanguage) {
|
|
78
|
+
await Promise.all(PREWARM_LANGUAGES.map((l) => ts.loadLanguage(l)));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
// safe: any parser-init failure leaves `adapter` null; the regex
|
|
84
|
+
// path inside extractExports handles that case.
|
|
85
|
+
adapter = null;
|
|
86
|
+
}
|
|
87
|
+
const tree = scanDirectory(cwd, excludes, 0, adapter, maxDepth, maxFiles);
|
|
34
88
|
if (!tree)
|
|
35
89
|
return '(empty workspace)';
|
|
36
90
|
const lines = ['## Workspace Structure'];
|
|
@@ -47,8 +101,8 @@ export function buildRepoMap(cwd, additionalExcludes) {
|
|
|
47
101
|
return lines.join('\n');
|
|
48
102
|
}
|
|
49
103
|
/* ──────────────────────── Tree Scanner ──────────────────────── */
|
|
50
|
-
function scanDirectory(dirPath, excludes, depth) {
|
|
51
|
-
if (depth >
|
|
104
|
+
function scanDirectory(dirPath, excludes, depth, adapter, maxDepth, maxFiles) {
|
|
105
|
+
if (depth > maxDepth)
|
|
52
106
|
return null;
|
|
53
107
|
let entries;
|
|
54
108
|
try {
|
|
@@ -78,13 +132,13 @@ function scanDirectory(dirPath, excludes, depth) {
|
|
|
78
132
|
if (entry.name.startsWith('.') && entry.isFile())
|
|
79
133
|
continue;
|
|
80
134
|
if (entry.isDirectory()) {
|
|
81
|
-
const subtree = scanDirectory(path.join(dirPath, entry.name), excludes, depth + 1);
|
|
135
|
+
const subtree = scanDirectory(path.join(dirPath, entry.name), excludes, depth + 1, adapter, maxDepth, maxFiles);
|
|
82
136
|
if (subtree) {
|
|
83
137
|
children.push(subtree);
|
|
84
138
|
}
|
|
85
139
|
}
|
|
86
140
|
else if (entry.isFile()) {
|
|
87
|
-
if (filesSeen >=
|
|
141
|
+
if (filesSeen >= maxFiles)
|
|
88
142
|
continue;
|
|
89
143
|
filesSeen++;
|
|
90
144
|
const ext = path.extname(entry.name);
|
|
@@ -95,16 +149,15 @@ function scanDirectory(dirPath, excludes, depth) {
|
|
|
95
149
|
sizeBytes = stat.size;
|
|
96
150
|
}
|
|
97
151
|
catch {
|
|
98
|
-
//
|
|
152
|
+
// safe: stat failures (permissions, race) just leave size undefined
|
|
99
153
|
}
|
|
100
154
|
const treeEntry = {
|
|
101
155
|
name: entry.name,
|
|
102
156
|
isDir: false,
|
|
103
157
|
sizeBytes,
|
|
104
158
|
};
|
|
105
|
-
// Extract export signatures from code files (fast, regex-based)
|
|
106
159
|
if (CODE_EXTENSIONS.has(ext) && sizeBytes && sizeBytes < 100_000) {
|
|
107
|
-
const exports = extractExports(filePath, ext);
|
|
160
|
+
const exports = extractExports(filePath, ext, adapter);
|
|
108
161
|
if (exports.length > 0) {
|
|
109
162
|
treeEntry.exports = exports;
|
|
110
163
|
}
|
|
@@ -121,55 +174,93 @@ function scanDirectory(dirPath, excludes, depth) {
|
|
|
121
174
|
};
|
|
122
175
|
}
|
|
123
176
|
/* ──────────────────────── Export Extraction ──────────────────────── */
|
|
124
|
-
|
|
177
|
+
/**
|
|
178
|
+
* Extract top-level exported symbol names from a single file.
|
|
179
|
+
*
|
|
180
|
+
* Tries the shared parser adapter first (real tree-sitter AST walk
|
|
181
|
+
* when the language grammar is loaded; otherwise the curated regex
|
|
182
|
+
* patterns in parsers/symbols.ts). On any failure — file read, parse,
|
|
183
|
+
* adapter error — returns an empty list rather than crashing the
|
|
184
|
+
* scan.
|
|
185
|
+
*/
|
|
186
|
+
function extractExports(filePath, ext, adapter) {
|
|
187
|
+
let content;
|
|
125
188
|
try {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
189
|
+
content = fs.readFileSync(filePath, 'utf-8');
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
return [];
|
|
193
|
+
}
|
|
194
|
+
const language = languageIdFromExtension(ext);
|
|
195
|
+
// Adapter path — used whenever the parser factory has produced a
|
|
196
|
+
// working adapter. The adapter itself decides whether to use
|
|
197
|
+
// tree-sitter (if the grammar loaded) or the regex extractor.
|
|
198
|
+
if (adapter) {
|
|
199
|
+
try {
|
|
200
|
+
const symbols = adapter.extractSymbols(content, language);
|
|
201
|
+
const names = symbols
|
|
202
|
+
.filter((s) => s.exported)
|
|
203
|
+
.map((s) => s.name);
|
|
204
|
+
// Dedupe while preserving order — repo-map only renders the
|
|
205
|
+
// first ~8 anyway, but stable ordering keeps cached output
|
|
206
|
+
// diffs minimal.
|
|
207
|
+
const seen = new Set();
|
|
208
|
+
const out = [];
|
|
209
|
+
for (const n of names) {
|
|
210
|
+
if (seen.has(n))
|
|
211
|
+
continue;
|
|
212
|
+
seen.add(n);
|
|
213
|
+
out.push(n);
|
|
214
|
+
if (out.length >= 15)
|
|
215
|
+
break;
|
|
144
216
|
}
|
|
217
|
+
if (out.length > 0)
|
|
218
|
+
return out;
|
|
145
219
|
}
|
|
146
|
-
|
|
147
|
-
//
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
220
|
+
catch {
|
|
221
|
+
// safe: fall through to the inline regex below
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
// Final safety net — the pre-Phase-3.1 inline regex. Kept verbatim
|
|
225
|
+
// so the worst-case behaviour matches the v1.0.4 baseline exactly.
|
|
226
|
+
return inlineRegexExports(content, ext);
|
|
227
|
+
}
|
|
228
|
+
function inlineRegexExports(content, ext) {
|
|
229
|
+
const exports = [];
|
|
230
|
+
if (['.ts', '.tsx', '.js', '.jsx'].includes(ext)) {
|
|
231
|
+
const patterns = [
|
|
232
|
+
/export\s+(?:async\s+)?function\s+(\w+)/g,
|
|
233
|
+
/export\s+class\s+(\w+)/g,
|
|
234
|
+
/export\s+(?:const|let|var)\s+(\w+)/g,
|
|
235
|
+
/export\s+interface\s+(\w+)/g,
|
|
236
|
+
/export\s+type\s+(\w+)/g,
|
|
237
|
+
/export\s+enum\s+(\w+)/g,
|
|
238
|
+
/export\s+default\s+(?:class|function)\s+(\w+)/g,
|
|
239
|
+
];
|
|
240
|
+
for (const pattern of patterns) {
|
|
241
|
+
let match;
|
|
242
|
+
while ((match = pattern.exec(content)) !== null) {
|
|
243
|
+
exports.push(match[1]);
|
|
157
244
|
}
|
|
158
245
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
246
|
+
}
|
|
247
|
+
else if (ext === '.py') {
|
|
248
|
+
const patterns = [/^def\s+(\w+)/gm, /^class\s+(\w+)/gm];
|
|
249
|
+
for (const pattern of patterns) {
|
|
162
250
|
let match;
|
|
163
251
|
while ((match = pattern.exec(content)) !== null) {
|
|
164
252
|
exports.push(match[1]);
|
|
165
253
|
}
|
|
166
254
|
}
|
|
167
|
-
// Deduplicate
|
|
168
|
-
return [...new Set(exports)].slice(0, 15); // Max 15 per file
|
|
169
255
|
}
|
|
170
|
-
|
|
171
|
-
|
|
256
|
+
else if (ext === '.go') {
|
|
257
|
+
const pattern = /^func\s+([A-Z]\w*)/gm;
|
|
258
|
+
let match;
|
|
259
|
+
while ((match = pattern.exec(content)) !== null) {
|
|
260
|
+
exports.push(match[1]);
|
|
261
|
+
}
|
|
172
262
|
}
|
|
263
|
+
return [...new Set(exports)].slice(0, 15);
|
|
173
264
|
}
|
|
174
265
|
/* ──────────────────────── Tree Rendering ──────────────────────── */
|
|
175
266
|
function renderTree(entry, prefix, lines, isRoot) {
|
|
@@ -189,7 +280,6 @@ function renderTree(entry, prefix, lines, isRoot) {
|
|
|
189
280
|
}
|
|
190
281
|
else {
|
|
191
282
|
let line = `${prefix}${connector}${child.name}`;
|
|
192
|
-
// Append compact export list
|
|
193
283
|
if (child.exports && child.exports.length > 0) {
|
|
194
284
|
const exportStr = child.exports.slice(0, 8).join(', ');
|
|
195
285
|
const suffix = child.exports.length > 8 ? ', …' : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo-map.js","sourceRoot":"","sources":["../../src/agent/repo-map.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"repo-map.js","sourceRoot":"","sources":["../../src/agent/repo-map.ts"],"names":[],"mappings":"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"}
|