mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-13 10:43:43 +03:00
* feat(modality-bridge): resolve audio input capability * feat(modality-bridge): resolve audio runtime settings * feat(modality-bridge): add audio transcription helpers * feat(modality-bridge): add Audio Bridge guardrail * feat(dashboard): make Modality Bridge audio tab functional * docs(guardrails): document Audio Bridge runtime * fix(modality-bridge): harden audio catalog and response header * chore(changelog): record audio modality bridge --------- Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com>
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);
|
|
});
|