mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-09-13 18:32:12 +03:00
Landed with the design call resolved per the owner's pick — **option 1**: the synced store is now endpoint-agnostic (persistDiscoveredModels and managedModelImport no longer drop non-chat models at write time), and chat selectability moved to read time (auto-pool expansion in autoStrategy applies filterChatSelectableModels; the models-route projection already had its chatOnly filter). Your discovery test now passes end-to-end (3/3): /api/show capabilities persist per connection and image/embedding requests route through the advertising host. Reconciliation notes: conflicted areas merged onto the current tip (adobe discovery import, requestedModel preflight signature, resolvedProvider fast-path coexists with the synced-route override — explicit resolution wins); carried base-red drains (#10055 memoization, #11071 test variants) dropped as already-landed; the managed-model-import exclusion test was propagated to the new contract (image/video models persist; the read filter still hides them from chat pickers — pinned by a new assertion). Full battery: 205/206 focused (the one red is a confirmed periodic-timer timing flake on the loaded devbox — 20/20 isolated), autoCombo vitest 30/30, combo suites 46/46, gates + typecheck clean. Thank you @yourspraveen — the capability probe + routing design was right; it just needed the store contract opened up. Fixes #11087.
57 lines
1.9 KiB
TypeScript
57 lines
1.9 KiB
TypeScript
import assert from "node:assert/strict";
|
|
import test from "node:test";
|
|
|
|
import {
|
|
MODALITY_BRIDGE_DEFAULTS,
|
|
resolveAudioBridgeRuntimeSettings,
|
|
} from "../../src/shared/constants/modalityBridgeDefaults.ts";
|
|
|
|
test("Audio Bridge runtime settings use the PR-1 defaults", () => {
|
|
assert.deepEqual(resolveAudioBridgeRuntimeSettings({}), {
|
|
enabled: MODALITY_BRIDGE_DEFAULTS.audioEnabled,
|
|
model: MODALITY_BRIDGE_DEFAULTS.audioModel,
|
|
timeoutMs: MODALITY_BRIDGE_DEFAULTS.audioTimeoutMs,
|
|
maxClips: MODALITY_BRIDGE_DEFAULTS.audioMaxClips,
|
|
cacheEnabled: MODALITY_BRIDGE_DEFAULTS.cacheEnabled,
|
|
cacheTtlMinutes: MODALITY_BRIDGE_DEFAULTS.cacheTtlMinutes,
|
|
cacheMaxEntries: MODALITY_BRIDGE_DEFAULTS.cacheMaxEntries,
|
|
});
|
|
});
|
|
|
|
test("Audio Bridge runtime settings accept typed persisted values", () => {
|
|
assert.deepEqual(
|
|
resolveAudioBridgeRuntimeSettings({
|
|
modalityBridgeAudioEnabled: false,
|
|
modalityBridgeAudioModel: "deepgram/nova-3",
|
|
modalityBridgeAudioTimeout: 12_000,
|
|
modalityBridgeAudioMaxClips: 2,
|
|
modalityBridgeCacheEnabled: false,
|
|
modalityBridgeCacheTtlMinutes: 5,
|
|
modalityBridgeCacheMaxEntries: 20,
|
|
}),
|
|
{
|
|
enabled: false,
|
|
model: "deepgram/nova-3",
|
|
timeoutMs: 12_000,
|
|
maxClips: 2,
|
|
cacheEnabled: false,
|
|
cacheTtlMinutes: 5,
|
|
cacheMaxEntries: 20,
|
|
}
|
|
);
|
|
});
|
|
|
|
test("Audio Bridge runtime settings ignore wrong-typed persisted values", () => {
|
|
const settings = resolveAudioBridgeRuntimeSettings({
|
|
modalityBridgeAudioEnabled: "false",
|
|
modalityBridgeAudioModel: 42,
|
|
modalityBridgeAudioTimeout: "12000",
|
|
modalityBridgeAudioMaxClips: null,
|
|
});
|
|
|
|
assert.equal(settings.enabled, MODALITY_BRIDGE_DEFAULTS.audioEnabled);
|
|
assert.equal(settings.model, MODALITY_BRIDGE_DEFAULTS.audioModel);
|
|
assert.equal(settings.timeoutMs, MODALITY_BRIDGE_DEFAULTS.audioTimeoutMs);
|
|
assert.equal(settings.maxClips, MODALITY_BRIDGE_DEFAULTS.audioMaxClips);
|
|
});
|