Updates
Rolling release / release (push) Failing after 1m49s

This commit is contained in:
2026-09-12 19:36:06 -04:00
parent 9ad09b593c
commit d47e9e260f
30 changed files with 917 additions and 162 deletions
+43
View File
@@ -0,0 +1,43 @@
import test from 'node:test';
import assert from 'node:assert/strict';
import { readFileSync } from 'node:fs';
import { createRequire } from 'node:module';
import vm from 'node:vm';
const enginePath = new URL('../vendor/agent-harness/lib/qvac.js', import.meta.url);
const source = readFileSync(enginePath, 'utf8');
const require = createRequire(enginePath);
function engineHarness(required) {
const attempts = [];
const fakeSdk = {
getSystemResources: async () => ({ gpus: [{ name: 'Test GPU', memory: 16e9 }], drivers: { vulkan: true }, vramBytes: 16e9 }),
lookupModelSrc: async () => 'test-model.gguf',
loadModel: async ({ modelConfig }) => {
attempts.push({ ...modelConfig });
if (modelConfig.device === 'gpu') throw new Error('GPU allocation failed');
return 'cpu-model';
},
};
const context = vm.createContext({ require, module: { exports: {} }, process: { env: { JARVIS_GPU_REQUIRED: required ? '1' : '0' } }, console: { error() {} }, fakeSdk });
vm.runInContext(source + '\nsdk = fakeSdk;', context);
return { engine: context.module.exports, attempts };
}
for (const [requested, required] of [['gpu', false], ['auto', true]]) {
test(`GPU-required loading does not waste a CPU reload (${requested}, required=${required})`, async () => {
const { engine, attempts } = engineHarness(required);
await assert.rejects(engine.load({ model: 'test-model', device: requested, vision: false }), /GPU allocation failed/);
assert.equal(attempts.length, 1);
assert.equal(attempts[0].gpu_layers, 99);
});
}
test('optional automatic CPU fallback reports its actual backend', async () => {
const { engine, attempts } = engineHarness(false);
const loaded = await engine.load({ model: 'test-model', device: 'auto', vision: false });
assert.deepEqual(attempts.map((config) => config.device), ['gpu', 'cpu']);
assert.equal(loaded.device, 'cpu');
assert.equal(loaded.backend, 'cpu');
assert.equal(loaded.backendId, 0);
});