This commit is contained in:
@@ -22,8 +22,8 @@ export async function serveOnSessionBus(daemon) {
|
||||
Sleep() { daemon.sleep(); }
|
||||
Shutdown() { daemon.close(); }
|
||||
PushToTalk(pressed) { daemon.setPushToTalk?.(Boolean(pressed)); }
|
||||
Say(text) { return daemon.say?.(text); }
|
||||
Ask(text) { return daemon.ask(text); }
|
||||
async Say(text) { await daemon.say?.(text); }
|
||||
async Ask(text) { await daemon.ask(text); }
|
||||
Cancel() { daemon.cancel(); }
|
||||
SetMode(mode) { daemon.mode = mode; daemon.emit('ModeChanged', mode); }
|
||||
GetState() { return daemon.state; }
|
||||
|
||||
@@ -105,9 +105,17 @@ export async function loadAuxiliaryModel(name, modelConfig = {}, modelType = und
|
||||
if (existing) return existing;
|
||||
const sdk = await qvacSdk();
|
||||
if (typeof sdk.loadModel !== 'function') throw new Error('QVAC SDK does not expose loadModel()');
|
||||
const auxiliaryConfig = resolveModelConfigAssets(sdk, modelConfig);
|
||||
// GPU placement belongs to the LLM model configuration. ASR and TTS have
|
||||
// their own validated schemas and reject llama.cpp-only keys.
|
||||
if (!modelType || modelType === 'llm') {
|
||||
auxiliaryConfig.device = 'gpu';
|
||||
auxiliaryConfig.gpu_layers = QVAC_MASTER.gpuLayers;
|
||||
auxiliaryConfig['mmproj-use-gpu'] = true;
|
||||
}
|
||||
const loadOptions = {
|
||||
modelSrc: resolveSdkAsset(sdk, name),
|
||||
modelConfig: { ...resolveModelConfigAssets(sdk, modelConfig), device: 'gpu', gpu_layers: QVAC_MASTER.gpuLayers, 'mmproj-use-gpu': true },
|
||||
modelConfig: auxiliaryConfig,
|
||||
};
|
||||
if (modelType) loadOptions.modelType = modelType;
|
||||
const modelId = await withQvacMaster(() => sdk.loadModel(loadOptions));
|
||||
|
||||
@@ -7,7 +7,7 @@ export function createComputerActTools({ actuator } = {}) {
|
||||
['cu_right_click', 'Right-click a coordinate.', { x: { type: 'number' }, y: { type: 'number' } }, 'rightClick'],
|
||||
['cu_hover', 'Move the visible agent cursor.', { x: { type: 'number' }, y: { type: 'number' } }, 'hover'],
|
||||
['cu_scroll', 'Scroll at a target.', { ref: { type: 'string' }, x: { type: 'number' }, y: { type: 'number' }, dy: { type: 'number' }, dx: { type: 'number' } }, 'scroll'],
|
||||
['cu_drag', 'Drag between semantic refs or coordinates.', { from: {}, to: {} }, 'drag'],
|
||||
['cu_drag', 'Drag between semantic refs or coordinates.', { from: { type: 'object', properties: { ref: { type: 'string' }, x: { type: 'number' }, y: { type: 'number' } } }, to: { type: 'object', properties: { ref: { type: 'string' }, x: { type: 'number' }, y: { type: 'number' } } } }, 'drag'],
|
||||
['cu_type', 'Type Unicode through the granted input backend.', { text: { type: 'string' }, ref: { type: 'string' }, submit: { type: 'boolean' } }, 'type'],
|
||||
['cu_key', 'Send a keyboard combination through the granted input backend.', { combo: { type: 'string' } }, 'key'],
|
||||
].map(([name, description, properties, method]) => ({ name, permission: 'computer-use', description, parameters: { type: 'object', properties }, execute: call(method) }));
|
||||
|
||||
Vendored
+4
@@ -79,7 +79,11 @@ async function ensureInit() {
|
||||
// the in-process inference surface and register the engines they own.
|
||||
mod = await import('@qvac/inference');
|
||||
const { llmPlugin } = await import('@qvac/inference/llamacpp-completion/plugin');
|
||||
const { whisperPlugin } = await import('@qvac/inference/whispercpp-transcription/plugin');
|
||||
const { ttsPlugin } = await import('@qvac/inference/tts-ggml/plugin');
|
||||
mod.registerPlugin(llmPlugin);
|
||||
mod.registerPlugin(whisperPlugin);
|
||||
mod.registerPlugin(ttsPlugin);
|
||||
} else {
|
||||
mod = await import('@qvac/sdk');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user