agent-Specialization/easyagent/src/core/state.js

30 lines
998 B
JavaScript

'use strict';
function resolveDefaultModel(config) {
const key = config.default_model_key || '';
const model = config.model_map && typeof config.model_map.get === 'function'
? config.model_map.get(key)
: null;
const modelKey = model && model.key ? model.key : key;
const modelId = model && (model.model_id || model.name) ? (model.model_id || model.name) : modelKey;
const supportsThinking = model ? (model.modes === 'thinking' || model.modes === 'fast+thinking') : false;
const thinkingMode = supportsThinking && model.modes !== 'fast';
return { modelKey, modelId, thinkingMode };
}
function createState(config, workspace) {
const resolved = resolveDefaultModel(config);
return {
workspace,
allowMode: 'full_access',
modelKey: resolved.modelKey,
modelId: resolved.modelId,
thinkingMode: resolved.thinkingMode,
tokenUsage: { prompt: 0, completion: 0, total: 0 },
conversation: null,
messages: [],
};
}
module.exports = { createState };