wave-agent-sdk 0.11.7 → 0.12.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/builtin/skills/settings/MODELS.md +67 -0
- package/builtin/skills/settings/SKILL.md +13 -7
- package/dist/agent.d.ts +10 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +16 -1
- package/dist/managers/aiManager.d.ts.map +1 -1
- package/dist/managers/aiManager.js +1 -0
- package/dist/managers/liveConfigManager.d.ts +2 -0
- package/dist/managers/liveConfigManager.d.ts.map +1 -1
- package/dist/managers/liveConfigManager.js +3 -0
- package/dist/managers/messageManager.d.ts +5 -1
- package/dist/managers/messageManager.d.ts.map +1 -1
- package/dist/managers/messageManager.js +28 -1
- package/dist/managers/slashCommandManager.d.ts.map +1 -1
- package/dist/managers/slashCommandManager.js +38 -41
- package/dist/managers/toolManager.d.ts +1 -0
- package/dist/managers/toolManager.d.ts.map +1 -1
- package/dist/services/aiService.d.ts.map +1 -1
- package/dist/services/aiService.js +30 -5
- package/dist/services/configurationService.d.ts +8 -0
- package/dist/services/configurationService.d.ts.map +1 -1
- package/dist/services/configurationService.js +67 -1
- package/dist/tools/skillTool.d.ts.map +1 -1
- package/dist/tools/skillTool.js +4 -1
- package/dist/tools/types.d.ts +1 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/types/agent.d.ts +3 -0
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/config.d.ts +1 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/configuration.d.ts +3 -0
- package/dist/types/configuration.d.ts.map +1 -1
- package/dist/types/messaging.d.ts +11 -2
- package/dist/types/messaging.d.ts.map +1 -1
- package/dist/utils/configValidator.d.ts +4 -5
- package/dist/utils/configValidator.d.ts.map +1 -1
- package/dist/utils/configValidator.js +4 -4
- package/dist/utils/containerSetup.d.ts.map +1 -1
- package/dist/utils/containerSetup.js +7 -1
- package/dist/utils/convertMessagesForAPI.d.ts.map +1 -1
- package/dist/utils/convertMessagesForAPI.js +16 -1
- package/dist/utils/messageOperations.d.ts +28 -3
- package/dist/utils/messageOperations.d.ts.map +1 -1
- package/dist/utils/messageOperations.js +79 -7
- package/package.json +1 -1
- package/src/agent.ts +18 -4
- package/src/managers/aiManager.ts +1 -0
- package/src/managers/liveConfigManager.ts +5 -1
- package/src/managers/messageManager.ts +40 -0
- package/src/managers/slashCommandManager.ts +39 -46
- package/src/managers/toolManager.ts +1 -0
- package/src/services/aiService.ts +58 -5
- package/src/services/configurationService.ts +81 -1
- package/src/tools/skillTool.ts +12 -2
- package/src/tools/types.ts +1 -0
- package/src/types/agent.ts +3 -0
- package/src/types/config.ts +1 -0
- package/src/types/configuration.ts +3 -0
- package/src/types/messaging.ts +12 -1
- package/src/utils/configValidator.ts +6 -4
- package/src/utils/containerSetup.ts +7 -1
- package/src/utils/convertMessagesForAPI.ts +17 -1
- package/src/utils/messageOperations.ts +111 -8
|
@@ -208,6 +208,21 @@ export class ConfigurationService {
|
|
|
208
208
|
result.isValid = false;
|
|
209
209
|
result.errors.push("autoMemoryEnabled configuration must be a boolean");
|
|
210
210
|
}
|
|
211
|
+
// Validate models if present
|
|
212
|
+
if (config.models !== undefined) {
|
|
213
|
+
if (typeof config.models !== "object" || config.models === null) {
|
|
214
|
+
result.isValid = false;
|
|
215
|
+
result.errors.push("models configuration must be an object");
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
for (const [modelName, modelConfig] of Object.entries(config.models)) {
|
|
219
|
+
if (typeof modelConfig !== "object" || modelConfig === null) {
|
|
220
|
+
result.isValid = false;
|
|
221
|
+
result.errors.push(`Configuration for model '${modelName}' must be an object`);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
211
226
|
return result;
|
|
212
227
|
}
|
|
213
228
|
/**
|
|
@@ -354,12 +369,21 @@ export class ConfigurationService {
|
|
|
354
369
|
resolvedFastModel || process.env.WAVE_FAST_MODEL || DEFAULT_FAST_MODEL;
|
|
355
370
|
// Resolve max output tokens
|
|
356
371
|
const resolvedMaxTokens = this.resolveMaxOutputTokens(maxTokens);
|
|
357
|
-
|
|
372
|
+
const baseConfig = {
|
|
358
373
|
model: resolvedAgentModel,
|
|
359
374
|
fastModel: resolvedFastModel,
|
|
360
375
|
maxTokens: resolvedMaxTokens,
|
|
361
376
|
permissionMode: permissionMode ?? this.options.permissionMode,
|
|
362
377
|
};
|
|
378
|
+
// Merge model-specific settings from configuration
|
|
379
|
+
const modelSpecificConfig = this.currentConfiguration?.models?.[resolvedAgentModel];
|
|
380
|
+
if (modelSpecificConfig) {
|
|
381
|
+
return {
|
|
382
|
+
...baseConfig,
|
|
383
|
+
...modelSpecificConfig,
|
|
384
|
+
};
|
|
385
|
+
}
|
|
386
|
+
return baseConfig;
|
|
363
387
|
}
|
|
364
388
|
/**
|
|
365
389
|
* Resolves token limit with fallbacks
|
|
@@ -452,6 +476,33 @@ export class ConfigurationService {
|
|
|
452
476
|
// Use default
|
|
453
477
|
return DEFAULT_WAVE_MAX_OUTPUT_TOKENS;
|
|
454
478
|
}
|
|
479
|
+
/**
|
|
480
|
+
* Set the active model in the session
|
|
481
|
+
*/
|
|
482
|
+
setModel(model) {
|
|
483
|
+
this.options.model = model;
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* Get all configured models from settings.json and defaults
|
|
487
|
+
*/
|
|
488
|
+
getConfiguredModels() {
|
|
489
|
+
const DEFAULT_AGENT_MODEL = "gemini-3-flash";
|
|
490
|
+
const models = new Set();
|
|
491
|
+
// Add default model
|
|
492
|
+
models.add(DEFAULT_AGENT_MODEL);
|
|
493
|
+
// Add current model from options or environment
|
|
494
|
+
const currentModel = this.options.model || this.env.WAVE_MODEL || process.env.WAVE_MODEL;
|
|
495
|
+
if (currentModel) {
|
|
496
|
+
models.add(currentModel);
|
|
497
|
+
}
|
|
498
|
+
// Add models from merged configuration
|
|
499
|
+
if (this.currentConfiguration?.models) {
|
|
500
|
+
Object.keys(this.currentConfiguration.models).forEach((model) => {
|
|
501
|
+
models.add(model);
|
|
502
|
+
});
|
|
503
|
+
}
|
|
504
|
+
return Array.from(models);
|
|
505
|
+
}
|
|
455
506
|
/**
|
|
456
507
|
* Resolve all configuration file paths
|
|
457
508
|
*/
|
|
@@ -684,6 +735,7 @@ export function loadWaveConfigFromFile(filePath) {
|
|
|
684
735
|
autoMemoryEnabled: config.autoMemoryEnabled !== undefined
|
|
685
736
|
? config.autoMemoryEnabled
|
|
686
737
|
: undefined,
|
|
738
|
+
models: config.models || undefined,
|
|
687
739
|
};
|
|
688
740
|
}
|
|
689
741
|
catch (error) {
|
|
@@ -796,6 +848,17 @@ export function loadMergedWaveConfig(workdir) {
|
|
|
796
848
|
if (config.autoMemoryEnabled !== undefined) {
|
|
797
849
|
mergedConfig.autoMemoryEnabled = config.autoMemoryEnabled;
|
|
798
850
|
}
|
|
851
|
+
// Merge models
|
|
852
|
+
if (config.models) {
|
|
853
|
+
if (!mergedConfig.models)
|
|
854
|
+
mergedConfig.models = {};
|
|
855
|
+
for (const [modelName, modelConfig] of Object.entries(config.models)) {
|
|
856
|
+
if (!mergedConfig.models[modelName]) {
|
|
857
|
+
mergedConfig.models[modelName] = {};
|
|
858
|
+
}
|
|
859
|
+
Object.assign(mergedConfig.models[modelName], modelConfig);
|
|
860
|
+
}
|
|
861
|
+
}
|
|
799
862
|
}
|
|
800
863
|
return {
|
|
801
864
|
hooks: mergedConfig.hooks && Object.keys(mergedConfig.hooks).length > 0
|
|
@@ -814,5 +877,8 @@ export function loadMergedWaveConfig(workdir) {
|
|
|
814
877
|
: undefined,
|
|
815
878
|
language: mergedConfig.language,
|
|
816
879
|
autoMemoryEnabled: mergedConfig.autoMemoryEnabled,
|
|
880
|
+
models: mergedConfig.models && Object.keys(mergedConfig.models).length > 0
|
|
881
|
+
? mergedConfig.models
|
|
882
|
+
: undefined,
|
|
817
883
|
};
|
|
818
884
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skillTool.d.ts","sourceRoot":"","sources":["../../src/tools/skillTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAgBtE,eAAO,MAAM,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"skillTool.d.ts","sourceRoot":"","sources":["../../src/tools/skillTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAgBtE,eAAO,MAAM,SAAS,EAAE,UAmNvB,CAAC"}
|
package/dist/tools/skillTool.js
CHANGED
|
@@ -30,7 +30,10 @@ export const skillTool = {
|
|
|
30
30
|
},
|
|
31
31
|
},
|
|
32
32
|
prompt: (args) => {
|
|
33
|
-
|
|
33
|
+
let availableSkills = args?.availableSkills?.filter((skill) => !skill.disableModelInvocation);
|
|
34
|
+
if (args?.isSubagent) {
|
|
35
|
+
availableSkills = availableSkills?.filter((skill) => skill.context !== "fork");
|
|
36
|
+
}
|
|
34
37
|
if (!availableSkills || availableSkills.length === 0) {
|
|
35
38
|
return `${SKILL_TOOL_DESCRIPTION} No skills are currently available.`;
|
|
36
39
|
}
|
package/dist/tools/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,0BAA0B,CAAC;IACnC,OAAO,EAAE,CACP,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,KACjB,OAAO,CAAC,UAAU,CAAC,CAAC;IACzB,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,WAAW,KACjB,MAAM,CAAC;IACZ;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;QACf,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;QAC7C,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types/agent.d.ts
CHANGED
|
@@ -65,6 +65,7 @@ export interface AgentOptions {
|
|
|
65
65
|
* These rules follow the standard permission rule syntax: `ToolName` or `ToolName(pattern)`.
|
|
66
66
|
*/
|
|
67
67
|
disallowedTools?: string[];
|
|
68
|
+
[key: string]: unknown;
|
|
68
69
|
}
|
|
69
70
|
export interface AgentCallbacks extends MessageManagerCallbacks, BackgroundTaskManagerCallbacks, McpManagerCallbacks, SubagentManagerCallbacks {
|
|
70
71
|
onBackgroundTasksChange?: (tasks: BackgroundTask[]) => void;
|
|
@@ -72,5 +73,7 @@ export interface AgentCallbacks extends MessageManagerCallbacks, BackgroundTaskM
|
|
|
72
73
|
onPermissionModeChange?: (mode: PermissionMode) => void;
|
|
73
74
|
onSubagentLatestTotalTokensChange?: (subagentId: string, tokens: number) => void;
|
|
74
75
|
onBackgroundCurrentTask?: () => void;
|
|
76
|
+
onModelChange?: (model: string) => void;
|
|
77
|
+
onConfiguredModelsChange?: (models: string[]) => void;
|
|
75
78
|
}
|
|
76
79
|
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EACV,OAAO,EACP,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAE3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,gCAAgC;IAChC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,oCAAoC;IACpC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { HookEvent, HookEventConfig } from "./hooks.js";
|
|
9
9
|
import type { PermissionMode } from "./permissions.js";
|
|
10
|
+
import type { ModelConfig } from "./config.js";
|
|
10
11
|
export type Scope = "user" | "project" | "local";
|
|
11
12
|
/**
|
|
12
13
|
* Root configuration structure for all Wave Agent settings including hooks and environment variables
|
|
@@ -31,6 +32,8 @@ export interface WaveConfiguration {
|
|
|
31
32
|
language?: string;
|
|
32
33
|
/** Whether auto-memory is enabled */
|
|
33
34
|
autoMemoryEnabled?: boolean;
|
|
35
|
+
/** Model-specific configuration overrides */
|
|
36
|
+
models?: Record<string, Partial<ModelConfig>>;
|
|
34
37
|
}
|
|
35
38
|
/**
|
|
36
39
|
* Legacy alias for backward compatibility - will be deprecated
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/types/configuration.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/types/configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,13 +15,22 @@ export interface Message {
|
|
|
15
15
|
additionalFields?: Record<string, unknown>;
|
|
16
16
|
isMeta?: boolean;
|
|
17
17
|
}
|
|
18
|
-
export type MessageBlock = TextBlock | ErrorBlock | ToolBlock | ImageBlock | BangBlock | CompressBlock | ReasoningBlock | FileHistoryBlock;
|
|
18
|
+
export type MessageBlock = TextBlock | ErrorBlock | ToolBlock | ImageBlock | BangBlock | SlashBlock | CompressBlock | ReasoningBlock | FileHistoryBlock;
|
|
19
19
|
export interface TextBlock {
|
|
20
20
|
type: "text";
|
|
21
21
|
content: string;
|
|
22
|
-
customCommandContent?: string;
|
|
23
22
|
source?: MessageSource;
|
|
24
23
|
}
|
|
24
|
+
export interface SlashBlock {
|
|
25
|
+
type: "slash";
|
|
26
|
+
command: string;
|
|
27
|
+
args?: string;
|
|
28
|
+
content?: string;
|
|
29
|
+
result?: string;
|
|
30
|
+
stage: "running" | "success" | "error" | "aborted";
|
|
31
|
+
error?: string;
|
|
32
|
+
shortResult?: string;
|
|
33
|
+
}
|
|
25
34
|
export interface ErrorBlock {
|
|
26
35
|
type: "error";
|
|
27
36
|
content: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../src/types/messaging.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEvC,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,aAAa,GACb,cAAc,GACd,gBAAgB,CAAC;AAErB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../src/types/messaging.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Configuration validator utilities for Agent Constructor Configuration
|
|
3
3
|
* Validates configuration values for correctness and security
|
|
4
4
|
*/
|
|
5
|
-
import { GatewayConfig } from "../types/index.js";
|
|
5
|
+
import { GatewayConfig, ModelConfig } from "../types/index.js";
|
|
6
6
|
export declare class ConfigValidator {
|
|
7
7
|
/**
|
|
8
8
|
* Validates gateway configuration
|
|
@@ -18,11 +18,10 @@ export declare class ConfigValidator {
|
|
|
18
18
|
static validateMaxInputTokens(maxInputTokens: number): void;
|
|
19
19
|
/**
|
|
20
20
|
* Validates model configuration (basic validation)
|
|
21
|
-
* @param
|
|
22
|
-
* @param fastModel - Fast model string
|
|
21
|
+
* @param config - Model configuration object
|
|
23
22
|
* @throws ConfigurationError if invalid
|
|
24
23
|
*/
|
|
25
|
-
static validateModelConfig(
|
|
24
|
+
static validateModelConfig(config: ModelConfig): void;
|
|
26
25
|
}
|
|
27
26
|
/**
|
|
28
27
|
* Static configuration validator instance
|
|
@@ -31,6 +30,6 @@ export declare class ConfigValidator {
|
|
|
31
30
|
export declare const configValidator: {
|
|
32
31
|
validateGatewayConfig: typeof ConfigValidator.validateGatewayConfig;
|
|
33
32
|
validateMaxInputTokens: typeof ConfigValidator.validateMaxInputTokens;
|
|
34
|
-
validateModelConfig:
|
|
33
|
+
validateModelConfig: (config: ModelConfig) => void;
|
|
35
34
|
};
|
|
36
35
|
//# sourceMappingURL=configValidator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configValidator.d.ts","sourceRoot":"","sources":["../../src/utils/configValidator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,aAAa,
|
|
1
|
+
{"version":3,"file":"configValidator.d.ts","sourceRoot":"","sources":["../../src/utils/configValidator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,aAAa,EACb,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,eAAe;IAC1B;;;;OAIG;IACH,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAyCzD;;;;OAIG;IACH,MAAM,CAAC,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IA0B3D;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;CAsBtD;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe;;;kCAGI,WAAW;CAE1C,CAAC"}
|
|
@@ -49,11 +49,11 @@ export class ConfigValidator {
|
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* Validates model configuration (basic validation)
|
|
52
|
-
* @param
|
|
53
|
-
* @param fastModel - Fast model string
|
|
52
|
+
* @param config - Model configuration object
|
|
54
53
|
* @throws ConfigurationError if invalid
|
|
55
54
|
*/
|
|
56
|
-
static validateModelConfig(
|
|
55
|
+
static validateModelConfig(config) {
|
|
56
|
+
const { model, fastModel } = config;
|
|
57
57
|
if (!model || typeof model !== "string" || model.trim() === "") {
|
|
58
58
|
throw new ConfigurationError("Agent model must be a non-empty string.", "model", model);
|
|
59
59
|
}
|
|
@@ -71,5 +71,5 @@ export class ConfigValidator {
|
|
|
71
71
|
export const configValidator = {
|
|
72
72
|
validateGatewayConfig: ConfigValidator.validateGatewayConfig,
|
|
73
73
|
validateMaxInputTokens: ConfigValidator.validateMaxInputTokens,
|
|
74
|
-
validateModelConfig: ConfigValidator.validateModelConfig,
|
|
74
|
+
validateModelConfig: (config) => ConfigValidator.validateModelConfig(config),
|
|
75
75
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerSetup.d.ts","sourceRoot":"","sources":["../../src/utils/containerSetup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAqB3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAI3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EACV,cAAc,EACd,KAAK,EACL,IAAI,EACJ,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAI3B,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAGhB,uBAAuB,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAC3D,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACvC,sBAAsB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACvD,wBAAwB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACzD,iBAAiB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAClD,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,0BAA0B,GACvC,SAAS,
|
|
1
|
+
{"version":3,"file":"containerSetup.d.ts","sourceRoot":"","sources":["../../src/utils/containerSetup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAqB3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAI3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EACV,cAAc,EACd,KAAK,EACL,IAAI,EACJ,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAI3B,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAGhB,uBAAuB,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAC3D,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACvC,sBAAsB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACvD,wBAAwB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACzD,iBAAiB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAClD,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,0BAA0B,GACvC,SAAS,CA0PX"}
|
|
@@ -169,7 +169,13 @@ export function setupAgentContainer(setupOptions) {
|
|
|
169
169
|
hasCallback: !!canUseToolWithPermissionRequest,
|
|
170
170
|
});
|
|
171
171
|
container.register("CanUseToolCallback", canUseToolWithPermissionRequest);
|
|
172
|
-
const liveConfigManager = new LiveConfigManager(container, {
|
|
172
|
+
const liveConfigManager = new LiveConfigManager(container, {
|
|
173
|
+
workdir,
|
|
174
|
+
onReload: () => {
|
|
175
|
+
const models = configurationService.getConfiguredModels();
|
|
176
|
+
callbacks.onConfiguredModelsChange?.(models);
|
|
177
|
+
},
|
|
178
|
+
});
|
|
173
179
|
container.register("LiveConfigManager", liveConfigManager);
|
|
174
180
|
const subagentManager = new SubagentManager(container, {
|
|
175
181
|
workdir,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertMessagesForAPI.d.ts","sourceRoot":"","sources":["../../src/utils/convertMessagesForAPI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAIjD,OAAO,EAEL,0BAA0B,EAC3B,MAAM,qBAAqB,CAAC;AA0B7B;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,OAAO,EAAE,GAClB,0BAA0B,EAAE,
|
|
1
|
+
{"version":3,"file":"convertMessagesForAPI.d.ts","sourceRoot":"","sources":["../../src/utils/convertMessagesForAPI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAIjD,OAAO,EAEL,0BAA0B,EAC3B,MAAM,qBAAqB,CAAC;AA0B7B;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,OAAO,EAAE,GAClB,0BAA0B,EAAE,CA8O9B"}
|
|
@@ -152,9 +152,24 @@ export function convertMessagesForAPI(messages) {
|
|
|
152
152
|
block.content.trim().length > 0) {
|
|
153
153
|
contentParts.push({
|
|
154
154
|
type: "text",
|
|
155
|
-
text: block.
|
|
155
|
+
text: block.content,
|
|
156
156
|
});
|
|
157
157
|
}
|
|
158
|
+
// Handle SlashBlock
|
|
159
|
+
if (block.type === "slash") {
|
|
160
|
+
if (block.content && block.content.trim().length > 0) {
|
|
161
|
+
contentParts.push({
|
|
162
|
+
type: "text",
|
|
163
|
+
text: block.content,
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
if (block.result && block.result.trim().length > 0) {
|
|
167
|
+
contentParts.push({
|
|
168
|
+
type: "text",
|
|
169
|
+
text: `<local-command-stdout>\n${stripAnsiColors(block.result)}\n</local-command-stdout>`,
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
158
173
|
// If there is an image, add image content
|
|
159
174
|
if (block.type === "image" &&
|
|
160
175
|
block.imageUrls &&
|
|
@@ -7,7 +7,6 @@ export interface UserMessageParams {
|
|
|
7
7
|
path: string;
|
|
8
8
|
mimeType: string;
|
|
9
9
|
}>;
|
|
10
|
-
customCommandContent?: string;
|
|
11
10
|
source?: MessageSource;
|
|
12
11
|
isMeta?: boolean;
|
|
13
12
|
}
|
|
@@ -15,6 +14,24 @@ export interface AddUserMessageParams extends UserMessageParams {
|
|
|
15
14
|
messages: Message[];
|
|
16
15
|
id?: string;
|
|
17
16
|
}
|
|
17
|
+
export interface AddSlashParams {
|
|
18
|
+
messages: Message[];
|
|
19
|
+
command: string;
|
|
20
|
+
args?: string;
|
|
21
|
+
content?: string;
|
|
22
|
+
id?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface UpdateSlashParams {
|
|
25
|
+
messages: Message[];
|
|
26
|
+
command: string;
|
|
27
|
+
messageId?: string;
|
|
28
|
+
args?: string;
|
|
29
|
+
content?: string;
|
|
30
|
+
result?: string;
|
|
31
|
+
stage?: "running" | "success" | "error" | "aborted";
|
|
32
|
+
error?: string;
|
|
33
|
+
shortResult?: string;
|
|
34
|
+
}
|
|
18
35
|
export interface UpdateToolBlockParams {
|
|
19
36
|
messages: Message[];
|
|
20
37
|
id: string;
|
|
@@ -69,9 +86,17 @@ export interface CompleteBangParams {
|
|
|
69
86
|
*/
|
|
70
87
|
export declare const convertImageToBase64: (imagePath: string) => string;
|
|
71
88
|
export declare const generateMessageId: () => string;
|
|
72
|
-
export declare const addUserMessageToMessages: ({ messages, content, images,
|
|
89
|
+
export declare const addUserMessageToMessages: ({ messages, content, images, source, id, isMeta, }: AddUserMessageParams) => Message[];
|
|
90
|
+
/**
|
|
91
|
+
* Add a slash command message to the conversation.
|
|
92
|
+
*/
|
|
93
|
+
export declare const addSlashMessageToMessages: ({ messages, command, args, content, id, }: AddSlashParams) => Message[];
|
|
94
|
+
/**
|
|
95
|
+
* Update a slash block in a message.
|
|
96
|
+
*/
|
|
97
|
+
export declare const updateSlashBlockInMessage: ({ messages, command, messageId, args, content, result, stage, error, shortResult, }: UpdateSlashParams) => Message[];
|
|
73
98
|
/**
|
|
74
|
-
* Update a user message's content
|
|
99
|
+
* Update a user message's content by its ID.
|
|
75
100
|
*/
|
|
76
101
|
export declare const updateUserMessageInMessages: (messages: Message[], id: string, params: Partial<UserMessageParams>) => Message[];
|
|
77
102
|
export declare const addAssistantMessageToMessages: (messages: Message[], content?: string, toolCalls?: ChatCompletionMessageFunctionToolCall[], usage?: Usage, additionalFields?: Record<string, unknown>) => Message[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageOperations.d.ts","sourceRoot":"","sources":["../../src/utils/messageOperations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAa,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAE,qCAAqC,EAAE,MAAM,qBAAqB,CAAC;AAI5E,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,
|
|
1
|
+
{"version":3,"file":"messageOperations.d.ts","sourceRoot":"","sources":["../../src/utils/messageOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,13 +44,12 @@ export const convertImageToBase64 = (imagePath) => {
|
|
|
44
44
|
};
|
|
45
45
|
export const generateMessageId = () => `msg-${randomUUID()}`;
|
|
46
46
|
// Add user message
|
|
47
|
-
export const addUserMessageToMessages = ({ messages, content, images,
|
|
47
|
+
export const addUserMessageToMessages = ({ messages, content, images, source, id, isMeta, }) => {
|
|
48
48
|
const blocks = [];
|
|
49
|
-
// Create text block with optional
|
|
49
|
+
// Create text block with optional source
|
|
50
50
|
const textBlock = {
|
|
51
51
|
type: "text",
|
|
52
52
|
content,
|
|
53
|
-
...(customCommandContent && { customCommandContent }),
|
|
54
53
|
...(source && { source }),
|
|
55
54
|
};
|
|
56
55
|
blocks.push(textBlock);
|
|
@@ -71,7 +70,83 @@ export const addUserMessageToMessages = ({ messages, content, images, customComm
|
|
|
71
70
|
return [...messages, userMessage];
|
|
72
71
|
};
|
|
73
72
|
/**
|
|
74
|
-
*
|
|
73
|
+
* Add a slash command message to the conversation.
|
|
74
|
+
*/
|
|
75
|
+
export const addSlashMessageToMessages = ({ messages, command, args, content, id, }) => {
|
|
76
|
+
const slashMessage = {
|
|
77
|
+
id: id || generateMessageId(),
|
|
78
|
+
role: "user",
|
|
79
|
+
blocks: [
|
|
80
|
+
{
|
|
81
|
+
type: "slash",
|
|
82
|
+
command,
|
|
83
|
+
args,
|
|
84
|
+
content,
|
|
85
|
+
stage: "running",
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
};
|
|
89
|
+
return [...messages, slashMessage];
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Update a slash block in a message.
|
|
93
|
+
*/
|
|
94
|
+
export const updateSlashBlockInMessage = ({ messages, command, messageId, args, content, result, stage, error, shortResult, }) => {
|
|
95
|
+
const newMessages = [...messages];
|
|
96
|
+
// If messageId is provided, target that specific message
|
|
97
|
+
if (messageId) {
|
|
98
|
+
const messageIndex = newMessages.findIndex((msg) => msg.id === messageId);
|
|
99
|
+
if (messageIndex !== -1) {
|
|
100
|
+
const slashBlockIndex = newMessages[messageIndex].blocks.findIndex((block) => block.type === "slash" && block.command === command);
|
|
101
|
+
if (slashBlockIndex !== -1) {
|
|
102
|
+
const slashBlock = newMessages[messageIndex].blocks[slashBlockIndex];
|
|
103
|
+
if (slashBlock.type === "slash") {
|
|
104
|
+
if (args !== undefined)
|
|
105
|
+
slashBlock.args = args;
|
|
106
|
+
if (content !== undefined)
|
|
107
|
+
slashBlock.content = content;
|
|
108
|
+
if (result !== undefined)
|
|
109
|
+
slashBlock.result = result;
|
|
110
|
+
if (stage !== undefined)
|
|
111
|
+
slashBlock.stage = stage;
|
|
112
|
+
if (error !== undefined)
|
|
113
|
+
slashBlock.error = error;
|
|
114
|
+
if (shortResult !== undefined)
|
|
115
|
+
slashBlock.shortResult = shortResult;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return newMessages;
|
|
120
|
+
}
|
|
121
|
+
// Find the last user message with a slash block for this command
|
|
122
|
+
for (let i = newMessages.length - 1; i >= 0; i--) {
|
|
123
|
+
const msg = newMessages[i];
|
|
124
|
+
if (msg.role === "user") {
|
|
125
|
+
const slashBlockIndex = msg.blocks.findIndex((block) => block.type === "slash" && block.command === command);
|
|
126
|
+
if (slashBlockIndex !== -1) {
|
|
127
|
+
const slashBlock = msg.blocks[slashBlockIndex];
|
|
128
|
+
if (slashBlock.type === "slash") {
|
|
129
|
+
if (args !== undefined)
|
|
130
|
+
slashBlock.args = args;
|
|
131
|
+
if (content !== undefined)
|
|
132
|
+
slashBlock.content = content;
|
|
133
|
+
if (result !== undefined)
|
|
134
|
+
slashBlock.result = result;
|
|
135
|
+
if (stage !== undefined)
|
|
136
|
+
slashBlock.stage = stage;
|
|
137
|
+
if (error !== undefined)
|
|
138
|
+
slashBlock.error = error;
|
|
139
|
+
if (shortResult !== undefined)
|
|
140
|
+
slashBlock.shortResult = shortResult;
|
|
141
|
+
}
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return newMessages;
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* Update a user message's content by its ID.
|
|
75
150
|
*/
|
|
76
151
|
export const updateUserMessageInMessages = (messages, id, params) => {
|
|
77
152
|
return messages.map((msg) => {
|
|
@@ -81,9 +156,6 @@ export const updateUserMessageInMessages = (messages, id, params) => {
|
|
|
81
156
|
return {
|
|
82
157
|
...block,
|
|
83
158
|
...(params.content !== undefined && { content: params.content }),
|
|
84
|
-
...(params.customCommandContent !== undefined && {
|
|
85
|
-
customCommandContent: params.customCommandContent,
|
|
86
|
-
}),
|
|
87
159
|
...(params.source !== undefined && { source: params.source }),
|
|
88
160
|
};
|
|
89
161
|
}
|
package/package.json
CHANGED
package/src/agent.ts
CHANGED
|
@@ -101,6 +101,23 @@ export class Agent {
|
|
|
101
101
|
return this.configurationService.resolveLanguage();
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
+
/**
|
|
105
|
+
* Set the active model for the agent session
|
|
106
|
+
* @param model - The ID of the model to use
|
|
107
|
+
*/
|
|
108
|
+
public setModel(model: string): void {
|
|
109
|
+
this.configurationService.setModel(model);
|
|
110
|
+
this.options.callbacks?.onModelChange?.(model);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Get all configured models from settings.json and defaults
|
|
115
|
+
* @returns Array of model IDs
|
|
116
|
+
*/
|
|
117
|
+
public getConfiguredModels(): string[] {
|
|
118
|
+
return this.configurationService.getConfiguredModels();
|
|
119
|
+
}
|
|
120
|
+
|
|
104
121
|
/**
|
|
105
122
|
* Agent constructor - handles configuration resolution and validation
|
|
106
123
|
*
|
|
@@ -341,10 +358,7 @@ export class Agent {
|
|
|
341
358
|
// Validate resolved configuration
|
|
342
359
|
configValidator.validateGatewayConfig(gatewayConfig);
|
|
343
360
|
configValidator.validateMaxInputTokens(maxInputTokens);
|
|
344
|
-
configValidator.validateModelConfig(
|
|
345
|
-
modelConfig.model,
|
|
346
|
-
modelConfig.fastModel,
|
|
347
|
-
);
|
|
361
|
+
configValidator.validateModelConfig(modelConfig);
|
|
348
362
|
}
|
|
349
363
|
|
|
350
364
|
/** Private initialization method, handles async initialization logic */
|