bernard-agent 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +80 -44
- package/dist/agent.d.ts +14 -3
- package/dist/agent.js +228 -38
- package/dist/agent.js.map +1 -1
- package/dist/builtin-specialists/correction-agent.json +32 -0
- package/dist/builtin-specialists/file-wrapper.json +43 -0
- package/dist/builtin-specialists/shell-wrapper.json +50 -0
- package/dist/builtin-specialists/specialist-creator.json +32 -0
- package/dist/builtin-specialists/web-wrapper.json +38 -0
- package/dist/candidate-bootstrap.d.ts +18 -0
- package/dist/candidate-bootstrap.js +61 -0
- package/dist/candidate-bootstrap.js.map +1 -0
- package/dist/config.d.ts +132 -10
- package/dist/config.js +234 -47
- package/dist/config.js.map +1 -1
- package/dist/context.js +23 -6
- package/dist/context.js.map +1 -1
- package/dist/correction-candidates.d.ts +54 -0
- package/dist/correction-candidates.js +138 -0
- package/dist/correction-candidates.js.map +1 -0
- package/dist/correction.d.ts +67 -0
- package/dist/correction.js +138 -0
- package/dist/correction.js.map +1 -0
- package/dist/critic.js +2 -1
- package/dist/critic.js.map +1 -1
- package/dist/cron/notes-store.d.ts +41 -0
- package/dist/cron/notes-store.js +134 -0
- package/dist/cron/notes-store.js.map +1 -0
- package/dist/cron/runner.js +25 -3
- package/dist/cron/runner.js.map +1 -1
- package/dist/cron/scoped-notes-tools.d.ts +24 -0
- package/dist/cron/scoped-notes-tools.js +50 -0
- package/dist/cron/scoped-notes-tools.js.map +1 -0
- package/dist/custom-providers.d.ts +80 -0
- package/dist/custom-providers.js +238 -0
- package/dist/custom-providers.js.map +1 -0
- package/dist/fs-utils.d.ts +2 -0
- package/dist/fs-utils.js +44 -0
- package/dist/fs-utils.js.map +1 -0
- package/dist/history.js +3 -1
- package/dist/history.js.map +1 -1
- package/dist/image.d.ts +59 -0
- package/dist/image.js +228 -0
- package/dist/image.js.map +1 -0
- package/dist/index.js +72 -4
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +1 -1
- package/dist/mcp.js.map +1 -1
- package/dist/memory.d.ts +13 -0
- package/dist/memory.js +45 -4
- package/dist/memory.js.map +1 -1
- package/dist/menu.d.ts +97 -0
- package/dist/menu.js +338 -0
- package/dist/menu.js.map +1 -0
- package/dist/os-info.d.ts +22 -0
- package/dist/os-info.js +111 -0
- package/dist/os-info.js.map +1 -0
- package/dist/output.d.ts +35 -1
- package/dist/output.js +256 -45
- package/dist/output.js.map +1 -1
- package/dist/pac.d.ts +14 -2
- package/dist/pac.js +5 -5
- package/dist/pac.js.map +1 -1
- package/dist/paths.d.ts +5 -0
- package/dist/paths.js +6 -1
- package/dist/paths.js.map +1 -1
- package/dist/plan-store.d.ts +47 -0
- package/dist/plan-store.js +94 -0
- package/dist/plan-store.js.map +1 -0
- package/dist/prompt-rewriter.d.ts +29 -0
- package/dist/prompt-rewriter.js +155 -0
- package/dist/prompt-rewriter.js.map +1 -0
- package/dist/providers/index.d.ts +56 -4
- package/dist/providers/index.js +86 -5
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/profiles.d.ts +37 -0
- package/dist/providers/profiles.js +110 -0
- package/dist/providers/profiles.js.map +1 -0
- package/dist/providers/types.d.ts +11 -2
- package/dist/providers/types.js +3 -0
- package/dist/providers/types.js.map +1 -1
- package/dist/rag-query.js +15 -1
- package/dist/rag-query.js.map +1 -1
- package/dist/react.d.ts +38 -0
- package/dist/react.js +116 -0
- package/dist/react.js.map +1 -0
- package/dist/reasoning-log.d.ts +30 -0
- package/dist/reasoning-log.js +102 -0
- package/dist/reasoning-log.js.map +1 -0
- package/dist/reference-resolver.d.ts +47 -0
- package/dist/reference-resolver.js +316 -0
- package/dist/reference-resolver.js.map +1 -0
- package/dist/reference-tool-lookup.d.ts +37 -0
- package/dist/reference-tool-lookup.js +318 -0
- package/dist/reference-tool-lookup.js.map +1 -0
- package/dist/repl.js +1053 -346
- package/dist/repl.js.map +1 -1
- package/dist/setup.js +2 -1
- package/dist/setup.js.map +1 -1
- package/dist/specialist-detector.js +2 -1
- package/dist/specialist-detector.js.map +1 -1
- package/dist/specialists.d.ts +74 -3
- package/dist/specialists.js +152 -20
- package/dist/specialists.js.map +1 -1
- package/dist/structured-output.d.ts +58 -0
- package/dist/structured-output.js +138 -0
- package/dist/structured-output.js.map +1 -0
- package/dist/theme.d.ts +2 -0
- package/dist/theme.js +18 -12
- package/dist/theme.js.map +1 -1
- package/dist/tool-call-repair.d.ts +29 -0
- package/dist/tool-call-repair.js +99 -0
- package/dist/tool-call-repair.js.map +1 -0
- package/dist/tool-profiles.d.ts +70 -0
- package/dist/tool-profiles.js +385 -0
- package/dist/tool-profiles.js.map +1 -0
- package/dist/tools/activity-summary.d.ts +15 -0
- package/dist/tools/activity-summary.js +44 -0
- package/dist/tools/activity-summary.js.map +1 -0
- package/dist/tools/ask-user.d.ts +49 -0
- package/dist/tools/ask-user.js +52 -0
- package/dist/tools/ask-user.js.map +1 -0
- package/dist/tools/augment.d.ts +17 -0
- package/dist/tools/augment.js +102 -0
- package/dist/tools/augment.js.map +1 -0
- package/dist/tools/cron-logs.js +7 -0
- package/dist/tools/cron-logs.js.map +1 -1
- package/dist/tools/cron-notes.d.ts +52 -0
- package/dist/tools/cron-notes.js +105 -0
- package/dist/tools/cron-notes.js.map +1 -0
- package/dist/tools/datetime.d.ts +7 -0
- package/dist/tools/datetime.js +29 -3
- package/dist/tools/datetime.js.map +1 -1
- package/dist/tools/evaluate.d.ts +20 -0
- package/dist/tools/evaluate.js +29 -0
- package/dist/tools/evaluate.js.map +1 -0
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mcp.d.ts +3 -3
- package/dist/tools/plan.d.ts +81 -0
- package/dist/tools/plan.js +108 -0
- package/dist/tools/plan.js.map +1 -0
- package/dist/tools/result-cap.d.ts +24 -0
- package/dist/tools/result-cap.js +44 -0
- package/dist/tools/result-cap.js.map +1 -0
- package/dist/tools/routine.d.ts +3 -3
- package/dist/tools/shell.d.ts +14 -1
- package/dist/tools/shell.js +86 -4
- package/dist/tools/shell.js.map +1 -1
- package/dist/tools/specialist-run.d.ts +5 -3
- package/dist/tools/specialist-run.js +115 -24
- package/dist/tools/specialist-run.js.map +1 -1
- package/dist/tools/specialist.d.ts +83 -3
- package/dist/tools/specialist.js +83 -3
- package/dist/tools/specialist.js.map +1 -1
- package/dist/tools/subagent.js +32 -14
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/task.d.ts +19 -16
- package/dist/tools/task.js +69 -40
- package/dist/tools/task.js.map +1 -1
- package/dist/tools/think.d.ts +18 -0
- package/dist/tools/think.js +25 -0
- package/dist/tools/think.js.map +1 -0
- package/dist/tools/tool-wrapper-run.d.ts +121 -0
- package/dist/tools/tool-wrapper-run.js +382 -0
- package/dist/tools/tool-wrapper-run.js.map +1 -0
- package/dist/tools/types.d.ts +28 -2
- package/dist/tools/web-search.d.ts +31 -0
- package/dist/tools/web-search.js +172 -0
- package/dist/tools/web-search.js.map +1 -0
- package/dist/tools/wrap-with-specialist.d.ts +55 -0
- package/dist/tools/wrap-with-specialist.js +137 -0
- package/dist/tools/wrap-with-specialist.js.map +1 -0
- package/package.json +2 -2
package/dist/config.js
CHANGED
|
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.PROVIDER_MODELS = exports.OPTIONS_REGISTRY = exports.PROVIDER_ENV_VARS = void 0;
|
|
37
|
+
exports.normalizeThreshold = normalizeThreshold;
|
|
37
38
|
exports.savePreferences = savePreferences;
|
|
38
39
|
exports.loadPreferences = loadPreferences;
|
|
39
40
|
exports.saveProviderKey = saveProviderKey;
|
|
@@ -47,11 +48,16 @@ exports.getProviderApiKey = getProviderApiKey;
|
|
|
47
48
|
exports.getAvailableProviders = getAvailableProviders;
|
|
48
49
|
exports.isValidProvider = isValidProvider;
|
|
49
50
|
exports.hasProviderKey = hasProviderKey;
|
|
51
|
+
exports.providerEnvVar = providerEnvVar;
|
|
52
|
+
exports.blankToUndefined = blankToUndefined;
|
|
53
|
+
exports.resolveProviderAndModel = resolveProviderAndModel;
|
|
54
|
+
exports.defaultProviderErrorMessage = defaultProviderErrorMessage;
|
|
50
55
|
exports.loadConfig = loadConfig;
|
|
51
56
|
const dotenv = __importStar(require("dotenv"));
|
|
52
57
|
const path = __importStar(require("node:path"));
|
|
53
58
|
const fs = __importStar(require("node:fs"));
|
|
54
59
|
const paths_js_1 = require("./paths.js");
|
|
60
|
+
const custom_providers_js_1 = require("./custom-providers.js");
|
|
55
61
|
const DEFAULT_PROVIDER = 'anthropic';
|
|
56
62
|
const DEFAULT_MAX_TOKENS = 4096;
|
|
57
63
|
const DEFAULT_SHELL_TIMEOUT = 30000;
|
|
@@ -59,6 +65,15 @@ const DEFAULT_TOKEN_WINDOW = 0;
|
|
|
59
65
|
const DEFAULT_MAX_STEPS = 25;
|
|
60
66
|
const DEFAULT_AUTO_CREATE_SPECIALISTS = false;
|
|
61
67
|
const DEFAULT_AUTO_CREATE_THRESHOLD = 0.8;
|
|
68
|
+
/**
|
|
69
|
+
* Normalizes a threshold value to the 0-1 range.
|
|
70
|
+
* Accepts both 0-1 (fractional) and >1-100 (percentage) inputs.
|
|
71
|
+
* Values >1 are divided by 100. Result is clamped to [0, 1].
|
|
72
|
+
*/
|
|
73
|
+
function normalizeThreshold(value) {
|
|
74
|
+
const normalized = value > 1 ? value / 100 : value;
|
|
75
|
+
return Math.max(0, Math.min(1, normalized));
|
|
76
|
+
}
|
|
62
77
|
/** Maps each provider name to the environment variable that holds its API key. */
|
|
63
78
|
exports.PROVIDER_ENV_VARS = {
|
|
64
79
|
anthropic: 'ANTHROPIC_API_KEY',
|
|
@@ -93,7 +108,7 @@ exports.OPTIONS_REGISTRY = {
|
|
|
93
108
|
'max-steps': {
|
|
94
109
|
configKey: 'maxSteps',
|
|
95
110
|
default: DEFAULT_MAX_STEPS,
|
|
96
|
-
description: 'Maximum agent loop iterations per request (
|
|
111
|
+
description: 'Maximum agent loop iterations per request (tripled automatically in coordinator / ReAct mode)',
|
|
97
112
|
envVar: 'BERNARD_MAX_STEPS',
|
|
98
113
|
},
|
|
99
114
|
};
|
|
@@ -118,12 +133,22 @@ function savePreferences(prefs) {
|
|
|
118
133
|
data.maxSteps = prefs.maxSteps;
|
|
119
134
|
if (prefs.theme !== undefined)
|
|
120
135
|
data.theme = prefs.theme;
|
|
136
|
+
if (prefs.autoUpdate !== undefined)
|
|
137
|
+
data.autoUpdate = prefs.autoUpdate;
|
|
121
138
|
if (prefs.criticMode !== undefined)
|
|
122
139
|
data.criticMode = prefs.criticMode;
|
|
140
|
+
if (prefs.reactMode !== undefined)
|
|
141
|
+
data.reactMode = prefs.reactMode;
|
|
142
|
+
if (prefs.toolDetails !== undefined)
|
|
143
|
+
data.toolDetails = prefs.toolDetails;
|
|
123
144
|
if (prefs.autoCreateSpecialists !== undefined)
|
|
124
145
|
data.autoCreateSpecialists = prefs.autoCreateSpecialists;
|
|
125
146
|
if (prefs.autoCreateThreshold !== undefined)
|
|
126
147
|
data.autoCreateThreshold = prefs.autoCreateThreshold;
|
|
148
|
+
if (prefs.promptRewriter !== undefined)
|
|
149
|
+
data.promptRewriter = prefs.promptRewriter;
|
|
150
|
+
if (prefs.referenceLookup !== undefined)
|
|
151
|
+
data.referenceLookup = prefs.referenceLookup;
|
|
127
152
|
// Preserve autoUpdate, criticMode, and auto-create settings from existing prefs when callers don't pass them
|
|
128
153
|
let existing;
|
|
129
154
|
try {
|
|
@@ -132,14 +157,18 @@ function savePreferences(prefs) {
|
|
|
132
157
|
catch {
|
|
133
158
|
/* ignore */
|
|
134
159
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
160
|
+
const booleanKeys = [
|
|
161
|
+
'autoUpdate',
|
|
162
|
+
'criticMode',
|
|
163
|
+
'reactMode',
|
|
164
|
+
'toolDetails',
|
|
165
|
+
'promptRewriter',
|
|
166
|
+
'referenceLookup',
|
|
167
|
+
];
|
|
168
|
+
for (const k of booleanKeys) {
|
|
169
|
+
if (prefs[k] === undefined && existing && typeof existing[k] === 'boolean') {
|
|
170
|
+
data[k] = existing[k];
|
|
171
|
+
}
|
|
143
172
|
}
|
|
144
173
|
// Preserve numeric options from existing prefs when callers don't pass them.
|
|
145
174
|
// Use 'in' to distinguish "key absent" (preserve) from "key explicitly set to undefined" (reset).
|
|
@@ -186,10 +215,14 @@ function loadPreferences() {
|
|
|
186
215
|
theme: typeof parsed.theme === 'string' ? parsed.theme : undefined,
|
|
187
216
|
autoUpdate: typeof parsed.autoUpdate === 'boolean' ? parsed.autoUpdate : undefined,
|
|
188
217
|
criticMode: typeof parsed.criticMode === 'boolean' ? parsed.criticMode : undefined,
|
|
218
|
+
reactMode: typeof parsed.reactMode === 'boolean' ? parsed.reactMode : undefined,
|
|
219
|
+
toolDetails: typeof parsed.toolDetails === 'boolean' ? parsed.toolDetails : undefined,
|
|
189
220
|
autoCreateSpecialists: typeof parsed.autoCreateSpecialists === 'boolean'
|
|
190
221
|
? parsed.autoCreateSpecialists
|
|
191
222
|
: undefined,
|
|
192
223
|
autoCreateThreshold: typeof parsed.autoCreateThreshold === 'number' ? parsed.autoCreateThreshold : undefined,
|
|
224
|
+
promptRewriter: typeof parsed.promptRewriter === 'boolean' ? parsed.promptRewriter : undefined,
|
|
225
|
+
referenceLookup: typeof parsed.referenceLookup === 'boolean' ? parsed.referenceLookup : undefined,
|
|
193
226
|
};
|
|
194
227
|
}
|
|
195
228
|
catch {
|
|
@@ -212,11 +245,20 @@ function loadStoredKeys() {
|
|
|
212
245
|
/**
|
|
213
246
|
* Stores an API key for the given provider in the config directory (mode 0600).
|
|
214
247
|
*
|
|
215
|
-
*
|
|
248
|
+
* Accepts both built-in providers and custom providers that have been
|
|
249
|
+
* registered via `bernard add-provider`.
|
|
250
|
+
*
|
|
251
|
+
* @throws {Error} If `provider` is neither a built-in nor a known custom provider.
|
|
216
252
|
*/
|
|
217
253
|
function saveProviderKey(provider, key) {
|
|
218
|
-
|
|
219
|
-
|
|
254
|
+
const isBuiltin = !!exports.PROVIDER_ENV_VARS[provider];
|
|
255
|
+
if (!isBuiltin) {
|
|
256
|
+
const customProviders = (0, custom_providers_js_1.loadCustomProviders)();
|
|
257
|
+
if (!Object.hasOwn(customProviders, provider)) {
|
|
258
|
+
const known = [...Object.keys(exports.PROVIDER_ENV_VARS), ...Object.keys(customProviders)];
|
|
259
|
+
throw new Error(`Unknown provider "${provider}". Known: ${known.join(', ') || '(none)'}. ` +
|
|
260
|
+
`Run \`bernard add-provider ${provider} …\` first to register a custom provider.`);
|
|
261
|
+
}
|
|
220
262
|
}
|
|
221
263
|
const dir = path.dirname(paths_js_1.KEYS_PATH);
|
|
222
264
|
if (!fs.existsSync(dir)) {
|
|
@@ -232,12 +274,9 @@ function saveProviderKey(provider, key) {
|
|
|
232
274
|
*
|
|
233
275
|
* Deletes `keys.json` entirely when no keys remain.
|
|
234
276
|
*
|
|
235
|
-
* @throws {Error} If `provider`
|
|
277
|
+
* @throws {Error} If `provider` has no stored key.
|
|
236
278
|
*/
|
|
237
279
|
function removeProviderKey(provider) {
|
|
238
|
-
if (!exports.PROVIDER_ENV_VARS[provider]) {
|
|
239
|
-
throw new Error(`Unknown provider "${provider}". Supported: ${Object.keys(exports.PROVIDER_ENV_VARS).join(', ')}`);
|
|
240
|
-
}
|
|
241
280
|
const existing = loadStoredKeys();
|
|
242
281
|
if (!existing[provider]) {
|
|
243
282
|
throw new Error(`No stored API key found for "${provider}".`);
|
|
@@ -311,9 +350,11 @@ function resetAllOptions() {
|
|
|
311
350
|
});
|
|
312
351
|
}
|
|
313
352
|
/**
|
|
314
|
-
* Returns the API key availability status for every known provider
|
|
353
|
+
* Returns the API key availability status for every known provider —
|
|
354
|
+
* built-in providers plus any registered custom providers.
|
|
315
355
|
*
|
|
316
|
-
* Checks both stored keys and environment variables
|
|
356
|
+
* Checks both stored keys and environment variables (env vars apply only
|
|
357
|
+
* to the three built-in providers; custom providers always use `keys.json`).
|
|
317
358
|
*/
|
|
318
359
|
function getProviderKeyStatus() {
|
|
319
360
|
const cwdEnv = path.join(process.cwd(), '.env');
|
|
@@ -329,10 +370,17 @@ function getProviderKeyStatus() {
|
|
|
329
370
|
dotenv.config({ path: legacyEnv });
|
|
330
371
|
}
|
|
331
372
|
const storedKeys = loadStoredKeys();
|
|
332
|
-
|
|
373
|
+
const customProviders = (0, custom_providers_js_1.loadCustomProviders)();
|
|
374
|
+
const builtin = Object.entries(exports.PROVIDER_ENV_VARS).map(([provider, envVar]) => ({
|
|
333
375
|
provider,
|
|
334
376
|
hasKey: !!(storedKeys[provider] || process.env[envVar]),
|
|
335
377
|
}));
|
|
378
|
+
const custom = Object.keys(customProviders).map((provider) => ({
|
|
379
|
+
provider,
|
|
380
|
+
hasKey: !!storedKeys[provider],
|
|
381
|
+
custom: true,
|
|
382
|
+
}));
|
|
383
|
+
return [...builtin, ...custom];
|
|
336
384
|
}
|
|
337
385
|
/** Known model identifiers for each provider, ordered by preference (first = default). */
|
|
338
386
|
exports.PROVIDER_MODELS = {
|
|
@@ -364,31 +412,127 @@ exports.PROVIDER_MODELS = {
|
|
|
364
412
|
'grok-3-mini',
|
|
365
413
|
],
|
|
366
414
|
};
|
|
367
|
-
/**
|
|
368
|
-
|
|
369
|
-
|
|
415
|
+
/**
|
|
416
|
+
* Returns the first (preferred) model for a provider.
|
|
417
|
+
*
|
|
418
|
+
* For built-ins this is the first entry in `PROVIDER_MODELS`. For custom
|
|
419
|
+
* providers it is the registered `defaultModel`. Falls back to Anthropic's
|
|
420
|
+
* built-in default when the provider is unknown.
|
|
421
|
+
*/
|
|
422
|
+
function getDefaultModel(provider, customProviders) {
|
|
423
|
+
if (exports.PROVIDER_MODELS[provider])
|
|
424
|
+
return exports.PROVIDER_MODELS[provider][0];
|
|
425
|
+
const custom = customProviders ?? (0, custom_providers_js_1.loadCustomProviders)();
|
|
426
|
+
if (custom[provider])
|
|
427
|
+
return custom[provider].defaultModel;
|
|
428
|
+
return exports.PROVIDER_MODELS[DEFAULT_PROVIDER][0];
|
|
370
429
|
}
|
|
371
|
-
/**
|
|
430
|
+
/**
|
|
431
|
+
* Returns the API key for the given provider from config, or undefined if not set.
|
|
432
|
+
*
|
|
433
|
+
* Looks up the generic `apiKeys` map first (which carries keys for both
|
|
434
|
+
* built-in and custom providers), then falls back to the legacy named fields
|
|
435
|
+
* (`anthropicApiKey`/`openaiApiKey`/`xaiApiKey`) for backwards compat with
|
|
436
|
+
* older test fixtures.
|
|
437
|
+
*/
|
|
372
438
|
function getProviderApiKey(config, provider) {
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
439
|
+
if (config.apiKeys && Object.hasOwn(config.apiKeys, provider) && config.apiKeys[provider]) {
|
|
440
|
+
return config.apiKeys[provider];
|
|
441
|
+
}
|
|
442
|
+
switch (provider) {
|
|
443
|
+
case 'anthropic':
|
|
444
|
+
return config.anthropicApiKey;
|
|
445
|
+
case 'openai':
|
|
446
|
+
return config.openaiApiKey;
|
|
447
|
+
case 'xai':
|
|
448
|
+
return config.xaiApiKey;
|
|
449
|
+
default:
|
|
450
|
+
return undefined;
|
|
451
|
+
}
|
|
379
452
|
}
|
|
380
|
-
/**
|
|
453
|
+
/**
|
|
454
|
+
* Returns provider names that have an API key present in the given config.
|
|
455
|
+
* Built-ins precede custom providers in the returned list.
|
|
456
|
+
*/
|
|
381
457
|
function getAvailableProviders(config) {
|
|
382
|
-
|
|
458
|
+
const builtin = Object.keys(exports.PROVIDER_MODELS).filter((p) => !!getProviderApiKey(config, p));
|
|
459
|
+
const custom = Object.keys(config.customProviders ?? {}).filter((p) => !!getProviderApiKey(config, p));
|
|
460
|
+
return [...builtin, ...custom];
|
|
383
461
|
}
|
|
384
|
-
/**
|
|
385
|
-
|
|
386
|
-
|
|
462
|
+
/**
|
|
463
|
+
* Returns true if `provider` is a known provider — built-in or registered
|
|
464
|
+
* as a custom provider in the supplied (or freshly loaded) registry.
|
|
465
|
+
*/
|
|
466
|
+
function isValidProvider(provider, customProviders) {
|
|
467
|
+
if (Object.hasOwn(exports.PROVIDER_MODELS, provider))
|
|
468
|
+
return true;
|
|
469
|
+
const custom = customProviders ?? (0, custom_providers_js_1.loadCustomProviders)();
|
|
470
|
+
return Object.hasOwn(custom, provider);
|
|
387
471
|
}
|
|
388
472
|
/** Returns true if the given config has an API key for the specified provider. */
|
|
389
473
|
function hasProviderKey(config, provider) {
|
|
390
474
|
return !!getProviderApiKey(config, provider);
|
|
391
475
|
}
|
|
476
|
+
/**
|
|
477
|
+
* Returns the conventional env-var name for an API key for the given provider.
|
|
478
|
+
* Built-ins return the canonical `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `XAI_API_KEY`;
|
|
479
|
+
* custom providers return `BERNARD_<NAME>_API_KEY` (informational only — custom
|
|
480
|
+
* keys are never read from env, only from `keys.json`).
|
|
481
|
+
*/
|
|
482
|
+
function providerEnvVar(provider) {
|
|
483
|
+
return (exports.PROVIDER_ENV_VARS[provider] ?? `BERNARD_${provider.toUpperCase().replace(/-/g, '_')}_API_KEY`);
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* Coerces an empty or whitespace-only string to undefined, otherwise trims it.
|
|
487
|
+
* Used to normalize provider/model overrides — the model sometimes passes
|
|
488
|
+
* `provider: ""` to mean "use default" and saved specialists may have
|
|
489
|
+
* `"provider": ""`. With `??` chains, empty strings would falsely "win" over
|
|
490
|
+
* the next fallback; this helper makes them fall through.
|
|
491
|
+
*/
|
|
492
|
+
function blankToUndefined(v) {
|
|
493
|
+
return v && v.trim() ? v.trim() : undefined;
|
|
494
|
+
}
|
|
495
|
+
/**
|
|
496
|
+
* Resolves the provider and model to use for a sub-agent / specialist /
|
|
497
|
+
* task / tool-wrapper invocation, applying the same precedence rule across
|
|
498
|
+
* all four call sites:
|
|
499
|
+
*
|
|
500
|
+
* 1. Invocation-level override (the model passes `provider`/`model` args).
|
|
501
|
+
* 2. Specialist-level default (when invoking a saved specialist).
|
|
502
|
+
* 3. Global config.
|
|
503
|
+
*
|
|
504
|
+
* Empty/whitespace strings are treated as "not provided". When the resolved
|
|
505
|
+
* provider differs from `config.provider` and no explicit model override is
|
|
506
|
+
* given, `getDefaultModel(provider)` is used to avoid cross-provider model
|
|
507
|
+
* mismatches (e.g. xai provider with an Anthropic model name).
|
|
508
|
+
*/
|
|
509
|
+
function resolveProviderAndModel(opts) {
|
|
510
|
+
const provider = blankToUndefined(opts.provider) ??
|
|
511
|
+
blankToUndefined(opts.specialistProvider) ??
|
|
512
|
+
opts.config.provider;
|
|
513
|
+
const explicitModel = blankToUndefined(opts.model) ?? blankToUndefined(opts.specialistModel);
|
|
514
|
+
const model = explicitModel ??
|
|
515
|
+
(provider !== opts.config.provider
|
|
516
|
+
? getDefaultModel(provider, opts.config.customProviders)
|
|
517
|
+
: opts.config.model);
|
|
518
|
+
if (!hasProviderKey(opts.config, provider)) {
|
|
519
|
+
const isCustom = Object.hasOwn(opts.config.customProviders ?? {}, provider);
|
|
520
|
+
return { ok: false, provider, envVar: providerEnvVar(provider), isCustom };
|
|
521
|
+
}
|
|
522
|
+
return { ok: true, provider, model };
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* Default error message format for a {@link ProviderResolution} failure.
|
|
526
|
+
* Used by the plain-string callers (specialist-run, subagent). Other callers
|
|
527
|
+
* (task: JSON-wrapped, tool-wrapper-run: shorter format) format their own.
|
|
528
|
+
*
|
|
529
|
+
* For custom providers, omits the env-var suggestion — those keys are not
|
|
530
|
+
* read from `process.env`.
|
|
531
|
+
*/
|
|
532
|
+
function defaultProviderErrorMessage(provider, envVar, isCustom = false) {
|
|
533
|
+
const envHint = isCustom ? '' : ` or set ${envVar}`;
|
|
534
|
+
return `No API key found for provider "${provider}". Run: bernard add-key ${provider} <your-api-key>${envHint}.`;
|
|
535
|
+
}
|
|
392
536
|
/**
|
|
393
537
|
* Builds a fully-resolved {@link BernardConfig} by merging (in priority order):
|
|
394
538
|
* CLI overrides, saved preferences, environment variables, and built-in defaults.
|
|
@@ -411,31 +555,43 @@ function loadConfig(overrides) {
|
|
|
411
555
|
else if (fs.existsSync(legacyEnv)) {
|
|
412
556
|
dotenv.config({ path: legacyEnv });
|
|
413
557
|
}
|
|
414
|
-
// Stored keys override .env — user explicitly ran `add-key
|
|
558
|
+
// Stored keys override .env — user explicitly ran `add-key`.
|
|
559
|
+
// Built-in providers also get their key bridged into `process.env` so the
|
|
560
|
+
// AI SDK module-level singletons pick it up. Custom-provider keys live only
|
|
561
|
+
// in `config.apiKeys` and are read directly when constructing the model.
|
|
415
562
|
const storedKeys = loadStoredKeys();
|
|
416
563
|
for (const [provider, key] of Object.entries(storedKeys)) {
|
|
417
564
|
const envVar = exports.PROVIDER_ENV_VARS[provider];
|
|
418
565
|
if (envVar && key)
|
|
419
566
|
process.env[envVar] = key;
|
|
420
567
|
}
|
|
568
|
+
const customProviders = (0, custom_providers_js_1.loadCustomProviders)();
|
|
421
569
|
const prefs = loadPreferences();
|
|
422
570
|
const explicitProvider = overrides?.provider || prefs.provider || process.env.BERNARD_PROVIDER;
|
|
423
571
|
let provider = explicitProvider || DEFAULT_PROVIDER;
|
|
424
|
-
let model = overrides?.model ||
|
|
572
|
+
let model = overrides?.model ||
|
|
573
|
+
prefs.model ||
|
|
574
|
+
process.env.BERNARD_MODEL ||
|
|
575
|
+
getDefaultModel(provider, customProviders);
|
|
425
576
|
// When provider was not explicitly chosen and the default has no key,
|
|
426
|
-
// auto-detect the first provider that does have
|
|
577
|
+
// auto-detect the first provider (built-in or custom) that does have one.
|
|
427
578
|
if (!explicitProvider) {
|
|
428
|
-
const
|
|
579
|
+
const builtinKeys = {
|
|
429
580
|
anthropic: process.env.ANTHROPIC_API_KEY,
|
|
430
581
|
openai: process.env.OPENAI_API_KEY,
|
|
431
582
|
xai: process.env.XAI_API_KEY,
|
|
432
583
|
};
|
|
433
|
-
|
|
434
|
-
|
|
584
|
+
const hasKey = (p) => {
|
|
585
|
+
if (builtinKeys[p])
|
|
586
|
+
return true;
|
|
587
|
+
return !!storedKeys[p];
|
|
588
|
+
};
|
|
589
|
+
if (!hasKey(provider)) {
|
|
590
|
+
const available = Object.keys(exports.PROVIDER_ENV_VARS).find(hasKey) ?? Object.keys(customProviders).find(hasKey);
|
|
435
591
|
if (available) {
|
|
436
592
|
provider = available;
|
|
437
593
|
if (!overrides?.model && !prefs.model && !process.env.BERNARD_MODEL) {
|
|
438
|
-
model = getDefaultModel(provider);
|
|
594
|
+
model = getDefaultModel(provider, customProviders);
|
|
439
595
|
}
|
|
440
596
|
}
|
|
441
597
|
}
|
|
@@ -451,16 +607,37 @@ function loadConfig(overrides) {
|
|
|
451
607
|
const theme = prefs.theme || 'bernard';
|
|
452
608
|
const criticMode = prefs.criticMode ??
|
|
453
609
|
(process.env.BERNARD_CRITIC_MODE === 'true' || process.env.BERNARD_CRITIC_MODE === '1');
|
|
610
|
+
const reactMode = prefs.reactMode ??
|
|
611
|
+
(process.env.BERNARD_REACT_MODE === 'true' || process.env.BERNARD_REACT_MODE === '1');
|
|
612
|
+
const toolDetails = prefs.toolDetails ??
|
|
613
|
+
(process.env.BERNARD_TOOL_DETAILS === 'true' || process.env.BERNARD_TOOL_DETAILS === '1');
|
|
454
614
|
const autoCreateSpecialists = prefs.autoCreateSpecialists ??
|
|
455
615
|
(process.env.BERNARD_AUTO_CREATE_SPECIALISTS === 'true' ||
|
|
456
616
|
process.env.BERNARD_AUTO_CREATE_SPECIALISTS === '1'
|
|
457
617
|
? true
|
|
458
618
|
: DEFAULT_AUTO_CREATE_SPECIALISTS);
|
|
459
619
|
const envAutoCreateThreshold = parseFloat(process.env.BERNARD_AUTO_CREATE_THRESHOLD ?? '');
|
|
460
|
-
const autoCreateThreshold = prefs.autoCreateThreshold ??
|
|
620
|
+
const autoCreateThreshold = normalizeThreshold(prefs.autoCreateThreshold ??
|
|
461
621
|
(Number.isFinite(envAutoCreateThreshold)
|
|
462
622
|
? envAutoCreateThreshold
|
|
463
|
-
: DEFAULT_AUTO_CREATE_THRESHOLD);
|
|
623
|
+
: DEFAULT_AUTO_CREATE_THRESHOLD));
|
|
624
|
+
// Correction agent runs by default; users can opt out with BERNARD_CORRECTION_ENABLED=false.
|
|
625
|
+
const rawCorrection = process.env.BERNARD_CORRECTION_ENABLED;
|
|
626
|
+
const correctionEnabled = rawCorrection === undefined ? true : !(rawCorrection === 'false' || rawCorrection === '0');
|
|
627
|
+
// Prompt rewriter runs by default; users can opt out with BERNARD_PROMPT_REWRITER=false.
|
|
628
|
+
const rawRewriter = process.env.BERNARD_PROMPT_REWRITER;
|
|
629
|
+
const promptRewriter = prefs.promptRewriter ??
|
|
630
|
+
(rawRewriter === undefined ? true : !(rawRewriter === 'false' || rawRewriter === '0'));
|
|
631
|
+
// Reference tool-lookup runs by default; users can opt out with BERNARD_REFERENCE_LOOKUP=false.
|
|
632
|
+
const rawReferenceLookup = process.env.BERNARD_REFERENCE_LOOKUP;
|
|
633
|
+
const referenceLookup = prefs.referenceLookup ??
|
|
634
|
+
(rawReferenceLookup === undefined
|
|
635
|
+
? true
|
|
636
|
+
: !(rawReferenceLookup === 'false' || rawReferenceLookup === '0'));
|
|
637
|
+
const referenceLookupTools = (process.env.BERNARD_LOOKUP_TOOLS ?? '')
|
|
638
|
+
.split(',')
|
|
639
|
+
.map((s) => s.trim())
|
|
640
|
+
.filter((s) => s.length > 0);
|
|
464
641
|
const config = {
|
|
465
642
|
provider,
|
|
466
643
|
model,
|
|
@@ -471,11 +648,19 @@ function loadConfig(overrides) {
|
|
|
471
648
|
ragEnabled,
|
|
472
649
|
theme,
|
|
473
650
|
criticMode,
|
|
651
|
+
reactMode,
|
|
652
|
+
toolDetails,
|
|
474
653
|
autoCreateSpecialists,
|
|
475
654
|
autoCreateThreshold,
|
|
655
|
+
correctionEnabled,
|
|
656
|
+
promptRewriter,
|
|
657
|
+
referenceLookup,
|
|
658
|
+
referenceLookupTools,
|
|
476
659
|
anthropicApiKey: process.env.ANTHROPIC_API_KEY,
|
|
477
660
|
openaiApiKey: process.env.OPENAI_API_KEY,
|
|
478
661
|
xaiApiKey: process.env.XAI_API_KEY,
|
|
662
|
+
apiKeys: { ...storedKeys },
|
|
663
|
+
customProviders,
|
|
479
664
|
};
|
|
480
665
|
validateConfig(config);
|
|
481
666
|
return config;
|
|
@@ -483,10 +668,12 @@ function loadConfig(overrides) {
|
|
|
483
668
|
function validateConfig(config) {
|
|
484
669
|
const key = getProviderApiKey(config, config.provider);
|
|
485
670
|
if (!key) {
|
|
486
|
-
const envVar =
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
`
|
|
671
|
+
const envVar = providerEnvVar(config.provider);
|
|
672
|
+
const isCustom = Object.hasOwn(config.customProviders ?? {}, config.provider);
|
|
673
|
+
const hint = isCustom
|
|
674
|
+
? `Run: bernard add-key ${config.provider} <your-api-key>`
|
|
675
|
+
: `Run: bernard add-key ${config.provider} <your-api-key>\nOr set ${envVar} in your .env file or environment.`;
|
|
676
|
+
throw new Error(`No API key found for provider "${config.provider}". ${hint}`);
|
|
490
677
|
}
|
|
491
678
|
}
|
|
492
679
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkGA,0CA0EC;AAOD,0CAoCC;AAoBD,0CAcC;AASD,8CAmBC;AAOD,gCAkBC;AAOD,kCAkBC;AAGD,0CAWC;AAOD,oDAkBC;AAkCD,0CAEC;AAGD,8CAOC;AAGD,sDAEC;AAGD,0CAEC;AAGD,wCAEC;AAWD,gCAgGC;AAthBD,+CAAiC;AACjC,gDAAkC;AAClC,4CAA8B;AAC9B,yCAAyE;AAkCzE,MAAM,gBAAgB,GAAG,WAAW,CAAC;AACrC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AACpC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAC9C,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAE1C,kFAAkF;AACrE,QAAA,iBAAiB,GAA2B;IACvD,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,GAAG,EAAE,aAAa;CACnB,CAAC;AAEF;;;;;GAKG;AACU,QAAA,gBAAgB,GAQzB;IACF,YAAY,EAAE;QACZ,SAAS,EAAE,WAAW;QACtB,OAAO,EAAE,kBAAkB;QAC3B,WAAW,EAAE,2DAA2D;QACxE,MAAM,EAAE,oBAAoB;KAC7B;IACD,eAAe,EAAE;QACf,SAAS,EAAE,cAAc;QACzB,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,mEAAmE;QAChF,MAAM,EAAE,uBAAuB;KAChC;IACD,cAAc,EAAE;QACd,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EAAE,kEAAkE;QAC/E,MAAM,EAAE,sBAAsB;KAC/B;IACD,WAAW,EAAE;QACX,SAAS,EAAE,UAAU;QACrB,OAAO,EAAE,iBAAiB;QAC1B,WAAW,EAAE,6EAA6E;QAC1F,MAAM,EAAE,mBAAmB;KAC5B;CACF,CAAC;AAEF;;;;GAIG;AACH,SAAgB,eAAe,CAAC,KAY/B;IACC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAU,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,IAAI,GAA4B,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IACvF,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IACpE,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS;QAAE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IAC7E,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IAC1E,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IACjE,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IACxD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;QAAE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACvE,IAAI,KAAK,CAAC,qBAAqB,KAAK,SAAS;QAC3C,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC;IAC3D,IAAI,KAAK,CAAC,mBAAmB,KAAK,SAAS;QAAE,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAC;IAElG,6GAA6G;IAC7G,IAAI,QAA6C,CAAC;IAClD,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,qBAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACrC,CAAC;SAAM,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAChE,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACxC,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3F,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACxC,CAAC;IAED,6EAA6E;IAC7E,kGAAkG;IAClG,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClF,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QACxF,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QACtF,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IAC1C,CAAC;IACD,IACE,KAAK,CAAC,qBAAqB,KAAK,SAAS;QACzC,QAAQ;QACR,OAAO,QAAQ,CAAC,qBAAqB,KAAK,SAAS,EACnD,CAAC;QACD,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC,qBAAqB,CAAC;IAC9D,CAAC;IACD,IACE,KAAK,CAAC,mBAAmB,KAAK,SAAS;QACvC,QAAQ;QACR,OAAO,QAAQ,CAAC,mBAAmB,KAAK,QAAQ,EAChD,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,mBAAmB,CAAC;IAC1D,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,qBAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACrE,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe;IAa7B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,qBAAU,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO;YACL,QAAQ,EAAE,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YAC3E,KAAK,EAAE,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YAClE,SAAS,EAAE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAC9E,YAAY,EAAE,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;YACvF,WAAW,EAAE,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YACpF,QAAQ,EAAE,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YAC3E,KAAK,EAAE,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YAClE,UAAU,EAAE,OAAO,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAClF,UAAU,EAAE,OAAO,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAClF,qBAAqB,EACnB,OAAO,MAAM,CAAC,qBAAqB,KAAK,SAAS;gBAC/C,CAAC,CAAC,MAAM,CAAC,qBAAqB;gBAC9B,CAAC,CAAC,SAAS;YACf,mBAAmB,EACjB,OAAO,MAAM,CAAC,mBAAmB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;SAC1F,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,oBAAS,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClD,OAAO,MAAgC,CAAC;QAC1C,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,QAAgB,EAAE,GAAW;IAC3D,IAAI,CAAC,yBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,qBAAqB,QAAQ,iBAAiB,MAAM,CAAC,IAAI,CAAC,yBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1F,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAS,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;IACzB,EAAE,CAAC,aAAa,CAAC,oBAAS,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACtE,EAAE,CAAC,SAAS,CAAC,oBAAS,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,QAAgB;IAChD,IAAI,CAAC,yBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,qBAAqB,QAAQ,iBAAiB,MAAM,CAAC,IAAI,CAAC,yBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1F,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,IAAI,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1B,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,IAAI,EAAE,CAAC,UAAU,CAAC,oBAAS,CAAC,EAAE,CAAC;YAC7B,EAAE,CAAC,UAAU,CAAC,oBAAS,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,aAAa,CAAC,oBAAS,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACtE,EAAE,CAAC,SAAS,CAAC,oBAAS,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,IAAY,EAAE,KAAa;IACpD,MAAM,KAAK,GAAG,wBAAgB,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,mBAAmB,IAAI,qBAAqB,MAAM,CAAC,IAAI,CAAC,wBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAC/B,KAAiC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;IAC5D,eAAe,CAAC;QACd,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,WAAW;QACvC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,IAAI,WAAW,CAAC;QACpE,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,IAAY;IACtC,MAAM,KAAK,GAAG,wBAAgB,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,mBAAmB,IAAI,qBAAqB,MAAM,CAAC,IAAI,CAAC,wBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,OAAQ,KAAiC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3D,eAAe,CAAC;QACd,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,WAAW;QACvC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,IAAI,WAAW,CAAC;QACpE,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;AACL,CAAC;AAED,sFAAsF;AACtF,SAAgB,eAAe;IAC7B,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,eAAe,CAAC;QACd,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,WAAW;QACvC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,IAAI,WAAW,CAAC;QACpE,SAAS,EAAE,SAAS;QACpB,YAAY,EAAE,SAAS;QACvB,WAAW,EAAE,SAAS;QACtB,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB;IAClC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,mBAAQ,CAAC;IACzB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAU,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,CAAC;SAAM,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IAEpC,OAAO,MAAM,CAAC,OAAO,CAAC,yBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACpE,QAAQ;QACR,MAAM,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KACxD,CAAC,CAAC,CAAC;AACN,CAAC;AAED,0FAA0F;AAC7E,QAAA,eAAe,GAA6B;IACvD,SAAS,EAAE;QACT,4BAA4B;QAC5B,iBAAiB;QACjB,2BAA2B;QAC3B,wBAAwB;QACxB,0BAA0B;KAC3B;IACD,MAAM,EAAE;QACN,SAAS;QACT,qBAAqB;QACrB,IAAI;QACJ,SAAS;QACT,aAAa;QACb,SAAS;QACT,cAAc;QACd,cAAc;KACf;IACD,GAAG,EAAE;QACH,2BAA2B;QAC3B,uBAAuB;QACvB,6BAA6B;QAC7B,yBAAyB;QACzB,aAAa;QACb,kBAAkB;QAClB,QAAQ;QACR,aAAa;KACd;CACF,CAAC;AAEF,+FAA+F;AAC/F,SAAgB,eAAe,CAAC,QAAgB;IAC9C,OAAO,uBAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,uBAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,uFAAuF;AACvF,SAAgB,iBAAiB,CAAC,MAAqB,EAAE,QAAgB;IACvE,MAAM,MAAM,GAAuC;QACjD,SAAS,EAAE,MAAM,CAAC,eAAe;QACjC,MAAM,EAAE,MAAM,CAAC,YAAY;QAC3B,GAAG,EAAE,MAAM,CAAC,SAAS;KACtB,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC;AAED,+EAA+E;AAC/E,SAAgB,qBAAqB,CAAC,MAAqB;IACzD,OAAO,MAAM,CAAC,IAAI,CAAC,uBAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,sFAAsF;AACtF,SAAgB,eAAe,CAAC,QAAgB;IAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,uBAAe,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC;AAED,kFAAkF;AAClF,SAAgB,cAAc,CAAC,MAAqB,EAAE,QAAgB;IACpE,OAAO,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,UAAU,CAAC,SAAiD;IAC1E,yEAAyE;IACzE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAU,EAAE,MAAM,CAAC,CAAC;IAEhD,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,CAAC;SAAM,IAAI,EAAE,CAAC,UAAU,CAAC,mBAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,mBAAQ,EAAE,CAAC,CAAC;IACpC,CAAC;SAAM,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,4DAA4D;IAC5D,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,yBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,MAAM,IAAI,GAAG;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC/C,CAAC;IAED,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,gBAAgB,GAAG,SAAS,EAAE,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC/F,IAAI,QAAQ,GAAG,gBAAgB,IAAI,gBAAgB,CAAC;IACpD,IAAI,KAAK,GACP,SAAS,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;IAE5F,sEAAsE;IACtE,iEAAiE;IACjE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,MAAM,GAAuC;YACjD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;YACxC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;YAClC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;SAC7B,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,yBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,IAAI,SAAS,EAAE,CAAC;gBACd,QAAQ,GAAG,SAAS,CAAC;gBACrB,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;oBACpE,KAAK,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GACb,KAAK,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,CAAC;IAChG,MAAM,YAAY,GAChB,KAAK,CAAC,YAAY;QAClB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,qBAAqB,CAAC,CAAC;IACnF,MAAM,WAAW,GACf,KAAK,CAAC,WAAW;QACjB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAC,CAAC;IACjF,MAAM,WAAW,GACf,KAAK,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,CAAC;IAC7F,MAAM,QAAQ,GACZ,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEjG,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,OAAO,CAAC;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC;IACvC,MAAM,UAAU,GACd,KAAK,CAAC,UAAU;QAChB,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,GAAG,CAAC,CAAC;IAE1F,MAAM,qBAAqB,GACzB,KAAK,CAAC,qBAAqB;QAC3B,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,MAAM;YACvD,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,GAAG;YACjD,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,+BAA+B,CAAC,CAAC;IAEvC,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IAC3F,MAAM,mBAAmB,GACvB,KAAK,CAAC,mBAAmB;QACzB,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACtC,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,6BAA6B,CAAC,CAAC;IAErC,MAAM,MAAM,GAAkB;QAC5B,QAAQ;QACR,KAAK;QACL,SAAS;QACT,YAAY;QACZ,WAAW;QACX,QAAQ;QACR,UAAU;QACV,KAAK;QACL,UAAU;QACV,qBAAqB;QACrB,mBAAmB;QACnB,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAC9C,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;QACxC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;KACnC,CAAC;IAEF,cAAc,CAAC,MAAM,CAAC,CAAC;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,MAAqB;IAC3C,MAAM,GAAG,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,MAAM,GAAG,yBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,kCAAkC,MAAM,CAAC,QAAQ,KAAK;YACpD,wBAAwB,MAAM,CAAC,QAAQ,mBAAmB;YAC1D,UAAU,MAAM,oCAAoC,CACvD,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/context.js
CHANGED
|
@@ -17,6 +17,7 @@ const ai_1 = require("ai");
|
|
|
17
17
|
const index_js_1 = require("./providers/index.js");
|
|
18
18
|
const logger_js_1 = require("./logger.js");
|
|
19
19
|
const domains_js_1 = require("./domains.js");
|
|
20
|
+
const image_js_1 = require("./image.js");
|
|
20
21
|
/** Model name → context window size in tokens */
|
|
21
22
|
exports.MODEL_CONTEXT_WINDOWS = {
|
|
22
23
|
// Anthropic
|
|
@@ -148,7 +149,8 @@ async function extractDomainFacts(serializedText, config) {
|
|
|
148
149
|
const results = await Promise.allSettled(domainIds.map(async (domainId) => {
|
|
149
150
|
const domain = domains_js_1.DOMAIN_REGISTRY[domainId];
|
|
150
151
|
const result = await (0, ai_1.generateText)({
|
|
151
|
-
model: (0, index_js_1.
|
|
152
|
+
model: (0, index_js_1.getModelForConfig)(config, config.provider, config.model),
|
|
153
|
+
providerOptions: (0, index_js_1.getProviderOptionsForConfig)(config, config.provider),
|
|
152
154
|
maxTokens: 2048,
|
|
153
155
|
system: domain.extractionPrompt,
|
|
154
156
|
messages: [
|
|
@@ -219,7 +221,8 @@ async function compressHistory(history, config, ragStore) {
|
|
|
219
221
|
try {
|
|
220
222
|
// Run summarization and domain-specific fact extraction in parallel
|
|
221
223
|
const summarizePromise = (0, ai_1.generateText)({
|
|
222
|
-
model: (0, index_js_1.
|
|
224
|
+
model: (0, index_js_1.getModelForConfig)(config, config.provider, config.model),
|
|
225
|
+
providerOptions: (0, index_js_1.getProviderOptionsForConfig)(config, config.provider),
|
|
223
226
|
maxTokens: 2048,
|
|
224
227
|
system: exports.SUMMARIZATION_PROMPT,
|
|
225
228
|
messages: [{ role: 'user', content: `Summarize this conversation:\n\n${serialized}` }],
|
|
@@ -291,17 +294,31 @@ function truncateToolResults(messages, maxChars = exports.MAX_TOOL_RESULT_CHARS)
|
|
|
291
294
|
return changed ? { ...msg, content: newContent } : msg;
|
|
292
295
|
});
|
|
293
296
|
}
|
|
297
|
+
/** Estimates token count for a single message's content. */
|
|
298
|
+
function estimateMessageTokens(msg) {
|
|
299
|
+
if (typeof msg.content === 'string') {
|
|
300
|
+
return Math.ceil(msg.content.length / 3.6);
|
|
301
|
+
}
|
|
302
|
+
if (Array.isArray(msg.content)) {
|
|
303
|
+
let tokens = 0;
|
|
304
|
+
for (const part of msg.content) {
|
|
305
|
+
tokens += (0, image_js_1.estimateContentPartTokens)(part);
|
|
306
|
+
}
|
|
307
|
+
return tokens;
|
|
308
|
+
}
|
|
309
|
+
return Math.ceil(JSON.stringify(msg.content).length / 3.6);
|
|
310
|
+
}
|
|
294
311
|
/**
|
|
295
312
|
* Rough-but-safe token estimator for pre-flight checks.
|
|
296
313
|
* Uses 3.6 chars/token (instead of 4) for a ~10% safety margin,
|
|
297
314
|
* since tool-result tokens can be denser than natural language.
|
|
298
315
|
*/
|
|
299
316
|
function estimateHistoryTokens(history) {
|
|
300
|
-
let
|
|
317
|
+
let tokens = 0;
|
|
301
318
|
for (const msg of history) {
|
|
302
|
-
|
|
319
|
+
tokens += estimateMessageTokens(msg);
|
|
303
320
|
}
|
|
304
|
-
return
|
|
321
|
+
return tokens;
|
|
305
322
|
}
|
|
306
323
|
/**
|
|
307
324
|
* Progressively drop oldest messages until estimated tokens fit within budget.
|
|
@@ -330,7 +347,7 @@ function emergencyTruncate(history, tokenBudget, systemPrompt, currentUserMessag
|
|
|
330
347
|
let accumulated = 0;
|
|
331
348
|
let cutoff = history.length;
|
|
332
349
|
for (let i = history.length - 1; i >= 0; i--) {
|
|
333
|
-
const msgTokens =
|
|
350
|
+
const msgTokens = estimateMessageTokens(history[i]);
|
|
334
351
|
if (accumulated + msgTokens > historyBudget) {
|
|
335
352
|
cutoff = i + 1;
|
|
336
353
|
break;
|