@xrkseek/harness 0.7.6 → 0.7.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node_modules/@xrkseek/a2a/dist/inbound.d.ts.map +1 -1
- package/node_modules/@xrkseek/a2a/dist/inbound.js +72 -2
- package/node_modules/@xrkseek/a2a/dist/inbound.js.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.js +2 -0
- package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/README.md +4 -3
- package/node_modules/@xrkseek/exec-voice/dist/browser/index.d.ts +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/browser/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/browser/index.js +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/browser/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/browser/wav-capture.d.ts +91 -0
- package/node_modules/@xrkseek/exec-voice/dist/browser/wav-capture.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/browser/wav-capture.js +269 -0
- package/node_modules/@xrkseek/exec-voice/dist/browser/wav-capture.js.map +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/download-http.d.ts +46 -0
- package/node_modules/@xrkseek/exec-voice/dist/download-http.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/download-http.js +223 -0
- package/node_modules/@xrkseek/exec-voice/dist/download-http.js.map +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/engine-ids.d.ts +19 -0
- package/node_modules/@xrkseek/exec-voice/dist/engine-ids.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/engine-ids.js +36 -0
- package/node_modules/@xrkseek/exec-voice/dist/engine-ids.js.map +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/engines.d.ts +60 -0
- package/node_modules/@xrkseek/exec-voice/dist/engines.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/engines.js +130 -0
- package/node_modules/@xrkseek/exec-voice/dist/engines.js.map +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/format.d.ts +13 -0
- package/node_modules/@xrkseek/exec-voice/dist/format.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/format.js +22 -3
- package/node_modules/@xrkseek/exec-voice/dist/format.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/index.d.ts +23 -31
- package/node_modules/@xrkseek/exec-voice/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/index.js +17 -66
- package/node_modules/@xrkseek/exec-voice/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/readiness.d.ts +14 -8
- package/node_modules/@xrkseek/exec-voice/dist/readiness.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/readiness.js +36 -27
- package/node_modules/@xrkseek/exec-voice/dist/readiness.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-assets.d.ts +48 -0
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-assets.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-assets.js +64 -0
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-assets.js.map +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-local.d.ts +24 -0
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-local.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-local.js +66 -4
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-local.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-runtime.d.ts +78 -0
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-runtime.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-runtime.js +332 -0
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-runtime.js.map +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/system-tts.d.ts +40 -0
- package/node_modules/@xrkseek/exec-voice/dist/system-tts.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/system-tts.js +260 -0
- package/node_modules/@xrkseek/exec-voice/dist/system-tts.js.map +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/tools.d.ts +13 -12
- package/node_modules/@xrkseek/exec-voice/dist/tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/tools.js +12 -6
- package/node_modules/@xrkseek/exec-voice/dist/tools.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/types.d.ts +3 -1
- package/node_modules/@xrkseek/exec-voice/dist/types.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/types.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/package.json +39 -31
- package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts +4 -3
- package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.js +31 -18
- package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/protocol/dist/sidebar-previews.d.ts +2 -0
- package/node_modules/@xrkseek/protocol/dist/sidebar-previews.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/sidebar-previews.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.d.ts +21 -2
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.js +56 -7
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-roster-store.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-roster-store.js +26 -3
- package/node_modules/@xrkseek/server-face/dist/agent-roster-store.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-team-roles.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-team-roles.js +4 -0
- package/node_modules/@xrkseek/server-face/dist/agent-team-roles.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/dispatch.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/dispatch.js +16 -0
- package/node_modules/@xrkseek/server-face/dist/dispatch.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/voice.d.ts +30 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/voice.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/voice.js +195 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/voice.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts +15 -0
- package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/model-catalog.js +44 -10
- package/node_modules/@xrkseek/server-face/dist/model-catalog.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/runtime.js +7 -2
- package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/select-session-model.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/select-session-model.js +68 -1
- package/node_modules/@xrkseek/server-face/dist/select-session-model.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-posture.js +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-posture.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-tool-copy.d.ts +4 -0
- package/node_modules/@xrkseek/server-face/dist/session-tool-copy.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-tool-copy.js +16 -0
- package/node_modules/@xrkseek/server-face/dist/session-tool-copy.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-tools.js +2 -0
- package/node_modules/@xrkseek/server-face/dist/session-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-document.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-document.js +56 -1
- package/node_modules/@xrkseek/server-face/dist/settings-document.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-schemas.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-schemas.js +42 -12
- package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts +43 -0
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +293 -24
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/wire/paths.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/wire/paths.js +6 -0
- package/node_modules/@xrkseek/server-face/dist/wire/paths.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.js +4 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/package.json +1 -0
- package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.js +8 -1
- package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.d.ts +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.js +44 -45
- package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js +2 -0
- package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-tool-pre.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-tool-pre.js +5 -2
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-tool-pre.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/our-free-model-host.d.ts +15 -0
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/our-free-model-host.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/our-free-model-host.js +61 -3
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/our-free-model-host.js.map +1 -1
- package/node_modules/sherpa-onnx-node/README.md +11 -0
- package/node_modules/sherpa-onnx-node/addon-static-import.js +76 -0
- package/node_modules/sherpa-onnx-node/addon.js +98 -0
- package/node_modules/sherpa-onnx-node/audio-tagg.js +45 -0
- package/node_modules/sherpa-onnx-node/keyword-spotter.js +68 -0
- package/node_modules/sherpa-onnx-node/non-streaming-asr.js +158 -0
- package/node_modules/sherpa-onnx-node/non-streaming-speaker-diarization.js +38 -0
- package/node_modules/sherpa-onnx-node/non-streaming-speech-denoiser.js +32 -0
- package/node_modules/sherpa-onnx-node/non-streaming-tts.js +117 -0
- package/node_modules/sherpa-onnx-node/online-speech-denoiser.js +46 -0
- package/node_modules/sherpa-onnx-node/package.json +68 -0
- package/node_modules/sherpa-onnx-node/punctuation.js +43 -0
- package/node_modules/sherpa-onnx-node/resampler.js +80 -0
- package/node_modules/sherpa-onnx-node/sherpa-onnx.js +49 -0
- package/node_modules/sherpa-onnx-node/speaker-identification.js +152 -0
- package/node_modules/sherpa-onnx-node/spoken-language-identification.js +38 -0
- package/node_modules/sherpa-onnx-node/streaming-asr.js +181 -0
- package/node_modules/sherpa-onnx-node/types.js +833 -0
- package/node_modules/sherpa-onnx-node/vad.js +134 -0
- package/node_modules/sherpa-onnx-win-x64/README.md +3 -0
- package/node_modules/sherpa-onnx-win-x64/index.js +1 -0
- package/node_modules/sherpa-onnx-win-x64/onnxruntime.dll +0 -0
- package/node_modules/sherpa-onnx-win-x64/onnxruntime_providers_shared.dll +0 -0
- package/node_modules/sherpa-onnx-win-x64/package.json +65 -0
- package/node_modules/sherpa-onnx-win-x64/sherpa-onnx-c-api.dll +0 -0
- package/node_modules/sherpa-onnx-win-x64/sherpa-onnx-cxx-api.dll +0 -0
- package/node_modules/sherpa-onnx-win-x64/sherpa-onnx.node +0 -0
- package/package.json +5 -1
|
@@ -5,7 +5,7 @@ import { loadPolicyRulesetFile } from "@xrkseek/policy";
|
|
|
5
5
|
import { flattenText, isHumanUserMessageSource } from "@xrkseek/protocol";
|
|
6
6
|
import { effectiveApprovalPolicy, effectiveSandboxMode, pathAccessModeFromSandbox, shouldConfineSandbox, } from "@xrkseek/protocol";
|
|
7
7
|
import { runCuratedMemoryConsolidate, createLayeredCuratedMemoryStore, } from "@xrkseek/exec-memory";
|
|
8
|
-
import { createSpeakTool,
|
|
8
|
+
import { createSpeakTool, createVoiceAccess, } from "@xrkseek/exec-voice";
|
|
9
9
|
import { runSkillCurator } from "@xrkseek/workspace";
|
|
10
10
|
import { resolveSecretStore } from "@xrkseek/secrets";
|
|
11
11
|
import { hostSettingsPath, defaultSpillDir, expandHomePath, resolveXrkHome, } from "@xrkseek/server-config";
|
|
@@ -15,7 +15,7 @@ import { watchPolicyFile } from "./policy-file-watch.js";
|
|
|
15
15
|
import { createA2aInboundPublicHandler } from "./a2a-inbound-public.js";
|
|
16
16
|
import { createCronApiHandler } from "./cron-http.js";
|
|
17
17
|
import { tryMountHostIsolatingWorkflowEngine } from "./workflow-engine-mount.js";
|
|
18
|
-
import { applyXrkProductBootPolicy, chainPublicHandlers, ensureDshCompatHostPlugin, ensureSunflowerFreePlugin, remountSunflowerFreePlugin, applySunflowerFreeEgressSettings, DSH_COMPAT_HOST_PLUGIN_ID, SUNFLOWER_FREE_PLUGIN_ID, SUNFLOWER_FREE_BRAND_ID, createLiveHostPluginsPublicHandler, createHttpServer, createXrkPluginPublicHandler, createSidebarPublicHandler, prewarmDshCompatAdapters, shutdownDshCompatServices, applyHostPackageByName, stopHostPackage, listHostAppliedPackages, invokeDshCompatRpc, attachDshCompatUpgrades, DSH_SETTINGS_NAMESPACES, DSH_SETTINGS_DEFAULTS, runPluginMutate, ensureXrkPlatformClientBootEntries, injectBootIntoHtml, injectBootThemeIntoHtml, injectMobileAccessShellIntoHtml, loadBootManifestFromWebDist, mergeWebBootManifests, resolveWebBootManifest, createXrkWalletPort, armAccessGateForListen, createMobileAccessGateChecker, createMobileAccessGateHandler, disposeDesktopLanShare, resetDesktopLanShareOnBoot, loadSidebarPrefs, createAutoReviewToolPre,
|
|
18
|
+
import { applyXrkProductBootPolicy, chainPublicHandlers, ensureDshCompatHostPlugin, ensureSunflowerFreePlugin, remountSunflowerFreePlugin, applySunflowerFreeEgressSettings, DSH_COMPAT_HOST_PLUGIN_ID, SUNFLOWER_FREE_PLUGIN_ID, SUNFLOWER_FREE_BRAND_ID, createLiveHostPluginsPublicHandler, createHttpServer, createXrkPluginPublicHandler, createSidebarPublicHandler, prewarmDshCompatAdapters, shutdownDshCompatServices, applyHostPackageByName, stopHostPackage, listHostAppliedPackages, invokeDshCompatRpc, attachDshCompatUpgrades, DSH_SETTINGS_NAMESPACES, DSH_SETTINGS_DEFAULTS, runPluginMutate, ensureXrkPlatformClientBootEntries, injectBootIntoHtml, injectBootThemeIntoHtml, injectMobileAccessShellIntoHtml, loadBootManifestFromWebDist, mergeWebBootManifests, resolveWebBootManifest, createXrkWalletPort, armAccessGateForListen, createMobileAccessGateChecker, createMobileAccessGateHandler, disposeDesktopLanShare, resetDesktopLanShareOnBoot, loadSidebarPrefs, createAutoReviewToolPre, setImFaceAdmitHook, } from "@xrkseek/server-http";
|
|
19
19
|
import { attachFaceUpgrades, bindSubagentTools, bindSessionQueryTools, createFaceRuntime, IM_AGENT_PRESET_ID, IM_WORKSPACE_ID, QICHUANG_AGENT_PRESET_ID, XIANGYANG_WORKSPACE_ID, isOrchestrationWorkspaceId, effectiveHostApiKey, ensureMcpLiveIfIdle, timingSafeStringEqual, listCredentialSlots, peekSettingsYamlSection, publishRemoteEvent, createSessionRoutingLlm, liveRouteAllowsImageInput, resolveSessionCwd, ensureSessionWorkingDirectory, setSessionWorkingDirectory, createSessionWorktree, canonicalAgentPresetId, resolveAgentPresetProfile, effectiveSessionAgentPreset, tryHandleFaceHttp, isPluginSoftDisabledAt, readDisabledPluginIdsAt, readManagedPackageIndexAt, reconcileManagedProcessPlugins, snapshotSessionWorkspace, SNAPSHOT_DRAIN_BUDGET_MS, applyRosterToolPolicy, migrateAutoSessionsToFullAccess, approvePendingAutoReview, createBossStatusFragmentProvider, createCollabBoardFragmentProvider, createSeatIdentityFragmentProvider, createSessionCapabilityFragmentProvider, createSessionPostureFragmentProvider, createInstructionAuthorityFragmentProvider, canvasWorkspaceIdForSession, memberPackSkillsDir, resolveSessionModelSelection, credentialsSet, settingsMutateFace, communityLoopbackBaseUrlCollision, existingPiAiProvider, mergeCommunityProviderModels, } from "@xrkseek/server-face";
|
|
20
20
|
import { createPluginLoader, composeHostPolicyEngine, wireCompositionChannels, wireCompositionLlm, collectChannelPluginRegistrations, isOptionalBundleEnabledAt, } from "@xrkseek/server-loader";
|
|
21
21
|
import { existsSync } from "node:fs";
|
|
@@ -1113,13 +1113,7 @@ export function createHostManager() {
|
|
|
1113
1113
|
},
|
|
1114
1114
|
autoReviewPre: createAutoReviewToolPre({
|
|
1115
1115
|
xrkHome: resolveXrkHome(),
|
|
1116
|
-
//
|
|
1117
|
-
isEnabled: () => {
|
|
1118
|
-
const ar = faceRuntime.settingsNamespaces.view("auto-review")
|
|
1119
|
-
.value;
|
|
1120
|
-
return (ar.enabled === true ||
|
|
1121
|
-
isAutoReviewEnabled({ xrkHome: resolveXrkHome() }));
|
|
1122
|
-
},
|
|
1116
|
+
// No master switch: Auto permission preset implies review.
|
|
1123
1117
|
// Session Auto gate: resolveSessionEvents → folded permission/preset.
|
|
1124
1118
|
product: () => {
|
|
1125
1119
|
const ns = faceRuntime.settingsNamespaces.view("auto-review")
|
|
@@ -1219,18 +1213,22 @@ export function createHostManager() {
|
|
|
1219
1213
|
});
|
|
1220
1214
|
}
|
|
1221
1215
|
}
|
|
1222
|
-
// Settings
|
|
1223
|
-
// (including Minimal / IM).
|
|
1224
|
-
//
|
|
1225
|
-
|
|
1226
|
-
|
|
1216
|
+
// Settings tts.enabled: bind text_to_speech on every surface
|
|
1217
|
+
// (including Minimal / IM). `tts.engine` picks the Provider —
|
|
1218
|
+
// OS voices (SAPI / say / espeak-ng) or an OpenAI-compatible
|
|
1219
|
+
// endpoint — and an unresolvable one still mounts the tool so it
|
|
1220
|
+
// can fail honestly instead of vanishing.
|
|
1221
|
+
const ttsNs = faceBox.runtime.settingsNamespaces.view("tts").value;
|
|
1222
|
+
if (ttsNs.enabled === true &&
|
|
1227
1223
|
!agent.tools.get("text_to_speech")) {
|
|
1228
|
-
const
|
|
1229
|
-
?
|
|
1230
|
-
:
|
|
1231
|
-
const
|
|
1232
|
-
|
|
1233
|
-
|
|
1224
|
+
const ttsBase = typeof ttsNs.baseUrl === "string" && ttsNs.baseUrl.trim()
|
|
1225
|
+
? ttsNs.baseUrl.trim()
|
|
1226
|
+
: undefined;
|
|
1227
|
+
const ttsVoice = typeof ttsNs.voice === "string" && ttsNs.voice.trim()
|
|
1228
|
+
? ttsNs.voice.trim()
|
|
1229
|
+
: undefined;
|
|
1230
|
+
const ttsModel = typeof ttsNs.model === "string" && ttsNs.model.trim()
|
|
1231
|
+
? ttsNs.model.trim()
|
|
1234
1232
|
: undefined;
|
|
1235
1233
|
const voiceKey = faceBox.runtime.credentials.peek("voice.openai")?.trim() ||
|
|
1236
1234
|
process.env.XRK_VOICE_OPENAI_KEY?.trim() ||
|
|
@@ -1238,20 +1236,21 @@ export function createHostManager() {
|
|
|
1238
1236
|
const voiceEnv = voiceKey
|
|
1239
1237
|
? { ...process.env, XRK_VOICE_OPENAI_KEY: voiceKey }
|
|
1240
1238
|
: undefined;
|
|
1241
|
-
const
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1239
|
+
const ttsEngine = typeof ttsNs.engine === "string" && ttsNs.engine.trim()
|
|
1240
|
+
? ttsNs.engine.trim().toLowerCase()
|
|
1241
|
+
: "local";
|
|
1242
|
+
const access = createVoiceAccess({
|
|
1243
|
+
direction: "tts",
|
|
1244
|
+
engine: ttsEngine,
|
|
1245
|
+
...(ttsBase ? { baseUrl: ttsBase } : {}),
|
|
1246
|
+
...(ttsVoice ? { voice: ttsVoice } : {}),
|
|
1247
|
+
...(ttsModel ? { model: ttsModel } : {}),
|
|
1249
1248
|
...(voiceEnv ? { env: voiceEnv } : {}),
|
|
1250
1249
|
});
|
|
1251
|
-
const service = access.service ?? createMemoryVoiceProvider();
|
|
1252
1250
|
agent.tools.register(createSpeakTool({
|
|
1253
|
-
|
|
1254
|
-
|
|
1251
|
+
direction: "tts",
|
|
1252
|
+
engine: ttsEngine,
|
|
1253
|
+
...(access.service ? { service: access.service } : {}),
|
|
1255
1254
|
...(voiceEnv ? { env: voiceEnv } : {}),
|
|
1256
1255
|
}));
|
|
1257
1256
|
}
|
|
@@ -1996,17 +1995,22 @@ export function createHostManager() {
|
|
|
1996
1995
|
mode: brModeRaw === "cdp" ? "cdp" : "http",
|
|
1997
1996
|
...(brCdpUrl ? { cdpUrl: brCdpUrl } : {}),
|
|
1998
1997
|
};
|
|
1999
|
-
const
|
|
1998
|
+
const asrNs = faceRuntime.settingsNamespaces.view("asr")
|
|
2000
1999
|
.value;
|
|
2001
|
-
const
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2000
|
+
const asrEnabled = asrNs.enabled === true;
|
|
2001
|
+
const asrEngineRaw = typeof asrNs.engine === "string"
|
|
2002
|
+
? asrNs.engine.trim().toLowerCase()
|
|
2003
|
+
: "local";
|
|
2004
|
+
const asrBase = typeof asrNs.baseUrl === "string" && asrNs.baseUrl.trim()
|
|
2005
|
+
? asrNs.baseUrl.trim()
|
|
2006
2006
|
: undefined;
|
|
2007
2007
|
const voiceProduct = {
|
|
2008
|
-
mode:
|
|
2009
|
-
|
|
2008
|
+
mode: asrEnabled
|
|
2009
|
+
? asrEngineRaw === "openai"
|
|
2010
|
+
? "openai"
|
|
2011
|
+
: "local"
|
|
2012
|
+
: "off",
|
|
2013
|
+
...(asrBase ? { baseUrl: asrBase } : {}),
|
|
2010
2014
|
};
|
|
2011
2015
|
const voiceKey = faceRuntime.credentials.peek("voice.openai")?.trim() ||
|
|
2012
2016
|
process.env.XRK_VOICE_OPENAI_KEY?.trim() ||
|
|
@@ -2258,12 +2262,7 @@ export function createHostManager() {
|
|
|
2258
2262
|
if (event === "settings/document-updated") {
|
|
2259
2263
|
const ns = frame.args[0];
|
|
2260
2264
|
if (ns === "auto-review") {
|
|
2261
|
-
|
|
2262
|
-
.value;
|
|
2263
|
-
if (typeof ar.enabled === "boolean") {
|
|
2264
|
-
setAutoReviewEnabled({ xrkHome: resolveXrkHome() }, ar.enabled);
|
|
2265
|
-
}
|
|
2266
|
-
// Classifier URL is live; no agent invalidate required.
|
|
2265
|
+
// No master switch; classifier URL/token are read live via product().
|
|
2267
2266
|
return;
|
|
2268
2267
|
}
|
|
2269
2268
|
if (ns === "cron") {
|