@xrkseek/harness 0.7.8 → 0.7.10
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/core-tools/dist/output-bound.d.ts +4 -1
- package/node_modules/@xrkseek/core-tools/dist/output-bound.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/output-bound.js +19 -5
- package/node_modules/@xrkseek/core-tools/dist/output-bound.js.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.js +2 -2
- package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.js.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/index.d.ts +2 -2
- package/node_modules/@xrkseek/exec-memory/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/index.js +2 -2
- package/node_modules/@xrkseek/exec-memory/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/layered.d.ts +20 -3
- package/node_modules/@xrkseek/exec-memory/dist/layered.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/layered.js +46 -17
- package/node_modules/@xrkseek/exec-memory/dist/layered.js.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/store.d.ts +17 -0
- package/node_modules/@xrkseek/exec-memory/dist/store.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/store.js +35 -14
- package/node_modules/@xrkseek/exec-memory/dist/store.js.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/tools.js +20 -8
- package/node_modules/@xrkseek/exec-memory/dist/tools.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/edge-tts.d.ts +60 -0
- package/node_modules/@xrkseek/exec-voice/dist/edge-tts.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/edge-tts.js +393 -0
- package/node_modules/@xrkseek/exec-voice/dist/edge-tts.js.map +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/engine-ids.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/engine-ids.js +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/engine-ids.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/engines.d.ts +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/engines.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/engines.js +19 -1
- package/node_modules/@xrkseek/exec-voice/dist/engines.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/format.js +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/format.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/index.d.ts +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/index.js +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/openai-http.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/openai-http.js +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/openai-http.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/readiness.d.ts +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/readiness.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/readiness.js +13 -1
- package/node_modules/@xrkseek/exec-voice/dist/readiness.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-local.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-local.js +6 -5
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-local.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/system-tts.d.ts +2 -0
- package/node_modules/@xrkseek/exec-voice/dist/system-tts.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/system-tts.js +10 -7
- package/node_modules/@xrkseek/exec-voice/dist/system-tts.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/tools.d.ts +19 -0
- package/node_modules/@xrkseek/exec-voice/dist/tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/tools.js +160 -25
- package/node_modules/@xrkseek/exec-voice/dist/tools.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/types.d.ts +12 -1
- package/node_modules/@xrkseek/exec-voice/dist/types.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/types.js +6 -0
- package/node_modules/@xrkseek/exec-voice/dist/types.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/package.json +7 -2
- package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts +5 -0
- package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.js +13 -6
- 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/preset.d.ts.map +1 -1
- package/node_modules/@xrkseek/preset-server/dist/preset.js +14 -2
- package/node_modules/@xrkseek/preset-server/dist/preset.js.map +1 -1
- package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-home-boundary.d.ts +14 -0
- package/node_modules/@xrkseek/server-face/dist/agent-home-boundary.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-home-boundary.js +40 -0
- package/node_modules/@xrkseek/server-face/dist/agent-home-boundary.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-member-pack.d.ts +21 -1
- package/node_modules/@xrkseek/server-face/dist/agent-member-pack.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-member-pack.js +29 -1
- package/node_modules/@xrkseek/server-face/dist/agent-member-pack.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.js +4 -4
- package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.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 +30 -15
- package/node_modules/@xrkseek/server-face/dist/agent-team-roles.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/canvas-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/canvas-tools.js +2 -1
- package/node_modules/@xrkseek/server-face/dist/canvas-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/voice.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/voice.js +32 -5
- package/node_modules/@xrkseek/server-face/dist/handlers/voice.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/index.d.ts +1 -0
- package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/index.js +1 -0
- package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/model-catalog.js +18 -8
- 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 +12 -0
- package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-attachment.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-attachment.js +60 -5
- package/node_modules/@xrkseek/server-face/dist/session-attachment.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-capability.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-capability.js +45 -19
- package/node_modules/@xrkseek/server-face/dist/session-capability.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-thread-tools.d.ts +2 -2
- package/node_modules/@xrkseek/server-face/dist/session-thread-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-thread-tools.js +5 -38
- package/node_modules/@xrkseek/server-face/dist/session-thread-tools.js.map +1 -1
- 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 +6 -2
- 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 +0 -2
- package/node_modules/@xrkseek/server-face/dist/session-tools.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 +40 -7
- package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts +2 -2
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +15 -56
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/tts-availability.d.ts +33 -0
- package/node_modules/@xrkseek/server-face/dist/tts-availability.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/tts-availability.js +67 -0
- package/node_modules/@xrkseek/server-face/dist/tts-availability.js.map +1 -0
- 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 +58 -18
- package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/xiangyang-skill-bodies/mainline-sideline.d.ts +1 -1
- package/node_modules/@xrkseek/server-face/dist/xiangyang-skill-bodies/mainline-sideline.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/xiangyang-skill-bodies/mainline-sideline.js +1 -1
- package/node_modules/@xrkseek/server-host/dist/im-reply-tool.d.ts +5 -1
- package/node_modules/@xrkseek/server-host/dist/im-reply-tool.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/im-reply-tool.js +1 -1
- package/node_modules/@xrkseek/server-host/dist/im-reply-tool.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.d.ts +5 -0
- package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.js +79 -8
- package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/durable-inject.d.ts +10 -4
- package/node_modules/@xrkseek/workspace/dist/durable-inject.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/durable-inject.js +26 -8
- package/node_modules/@xrkseek/workspace/dist/durable-inject.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skill-tools.js +1 -1
- package/node_modules/@xrkseek/workspace/dist/skill-tools.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skills.d.ts +1 -1
- package/node_modules/@xrkseek/workspace/dist/skills.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skills.js +2 -2
- package/node_modules/@xrkseek/workspace/dist/skills.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/standing-skill-dirs.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/standing-skill-dirs.js +1 -7
- package/node_modules/@xrkseek/workspace/dist/standing-skill-dirs.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,qBAAqB,CAAC;AAC7E,OAAO,KAAK,EAEV,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,qBAAqB,CAAC;AAC7E,OAAO,KAAK,EAEV,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,QAmB4C,CAAC;AAyBpF;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,GAAG,cAAc,EAAE,CAkKpF"}
|
|
@@ -16,11 +16,19 @@ export const CURATED_MEMORY_PROMPT_TEXT = "Curated memory is two files under {XR
|
|
|
16
16
|
+ "The `memory` tool requires `action` (`add|replace|remove|list`) or a non-empty "
|
|
17
17
|
+ "`operations` batch — do not call it with an empty action. "
|
|
18
18
|
+ "list returns live disk entries for the chosen target. "
|
|
19
|
+
+ "Both files are writable: `target: memory` (default) for agent notes, `target: user` "
|
|
20
|
+
+ "for who-the-user-is facts the user stated about themselves. "
|
|
19
21
|
+ "Writes hit disk immediately and do not change this session's frozen block. "
|
|
20
22
|
+ "This block and the memory tool exist only while Settings → Plugins → Curated memory is on; "
|
|
21
23
|
+ "turning it off drops both on the next agent rebuild (idle sessions now, a busy session after its turn). "
|
|
22
24
|
+ "This is not the Mnemon document library and not standing AGENTS.md / SOUL.md.";
|
|
23
25
|
const ACTIONS = ["add", "replace", "remove", "list"];
|
|
26
|
+
/**
|
|
27
|
+
* Both files are writable, but `USER.md` is the heavier hammer: it changes who
|
|
28
|
+
* every later session believes the user is. Calls that target it should carry
|
|
29
|
+
* only facts the user stated about themselves (or asked to be remembered),
|
|
30
|
+
* never inferred persona.
|
|
31
|
+
*/
|
|
24
32
|
function asTarget(raw) {
|
|
25
33
|
const target = String(raw ?? "memory");
|
|
26
34
|
if (target === "memory" || target === "user")
|
|
@@ -32,10 +40,10 @@ function asOps(raw) {
|
|
|
32
40
|
return undefined;
|
|
33
41
|
if (!Array.isArray(raw))
|
|
34
42
|
return [];
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
43
|
+
// Pass items through untouched: `applyBatch` already rejects an unknown
|
|
44
|
+
// action with the real one-based index (`Operation N (unknown)`) and applies
|
|
45
|
+
// nothing, so rewriting a bad item to `{}` here would only hide its source.
|
|
46
|
+
return raw.map((item) => item);
|
|
39
47
|
}
|
|
40
48
|
/**
|
|
41
49
|
* Model-facing `memory` tool. Disk writes do not refresh {@link CuratedMemoryStore.frozenSystemBlock}.
|
|
@@ -61,7 +69,8 @@ export function createCuratedMemoryTools(store) {
|
|
|
61
69
|
target: {
|
|
62
70
|
type: "string",
|
|
63
71
|
enum: ["memory", "user"],
|
|
64
|
-
description: "memory = MEMORY.md
|
|
72
|
+
description: "memory = MEMORY.md durable agent notes (default). "
|
|
73
|
+
+ "user = USER.md who-the-user-is profile — only facts the user stated about themselves.",
|
|
65
74
|
},
|
|
66
75
|
content: {
|
|
67
76
|
type: "string",
|
|
@@ -90,7 +99,9 @@ export function createCuratedMemoryTools(store) {
|
|
|
90
99
|
},
|
|
91
100
|
},
|
|
92
101
|
},
|
|
93
|
-
required:
|
|
102
|
+
// `target` is deliberately not required: it defaults to `memory`, and
|
|
103
|
+
// demanding it made the common call carry a constant.
|
|
104
|
+
required: [],
|
|
94
105
|
},
|
|
95
106
|
isConcurrencySafe() {
|
|
96
107
|
return false;
|
|
@@ -102,7 +113,8 @@ export function createCuratedMemoryTools(store) {
|
|
|
102
113
|
isError: true,
|
|
103
114
|
content: JSON.stringify({
|
|
104
115
|
success: false,
|
|
105
|
-
error: `Invalid memory target '${String(args.target)}'.
|
|
116
|
+
error: `Invalid memory target '${String(args.target)}'. `
|
|
117
|
+
+ "Use 'memory' (MEMORY.md) or 'user' (USER.md).",
|
|
106
118
|
}),
|
|
107
119
|
};
|
|
108
120
|
}
|
|
@@ -133,7 +145,7 @@ export function createCuratedMemoryTools(store) {
|
|
|
133
145
|
};
|
|
134
146
|
}
|
|
135
147
|
const ops = asOps(args.operations);
|
|
136
|
-
if (
|
|
148
|
+
if (ops && ops.length > 0) {
|
|
137
149
|
const result = await Promise.resolve(store.applyBatch(target, ops));
|
|
138
150
|
return { isError: !result.success, content: JSON.stringify(result) };
|
|
139
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GACrC,iFAAiF;MAC/E,gFAAgF;MAChF,mFAAmF;MACnF,mFAAmF;MACnF,iFAAiF;MACjF,oFAAoF;MACpF,qFAAqF;MACrF,mFAAmF;MACnF,+EAA+E;MAC/E,iFAAiF;MACjF,iFAAiF;MACjF,4DAA4D;MAC5D,wDAAwD;MACxD,6EAA6E;MAC7E,6FAA6F;MAC7F,0GAA0G;MAC1G,+EAA+E,CAAC;AAEpF,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAE9D,SAAS,QAAQ,CAAC,GAAY;IAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAC5D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,KAAK,CAAC,GAAY;IACzB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import WebSocket from "ws";
|
|
2
|
+
import { type VoiceService } from "./types.js";
|
|
3
|
+
/** Chinese female, the voice this product ships as default. */
|
|
4
|
+
export declare const EDGE_DEFAULT_VOICE = "zh-CN-XiaoxiaoNeural";
|
|
5
|
+
/** One row of the Read Aloud voice catalog. */
|
|
6
|
+
export interface EdgeVoice {
|
|
7
|
+
readonly shortName: string;
|
|
8
|
+
readonly gender: string;
|
|
9
|
+
readonly locale: string;
|
|
10
|
+
readonly friendlyName: string;
|
|
11
|
+
}
|
|
12
|
+
export interface EdgeTtsOptions {
|
|
13
|
+
readonly defaultVoice?: string;
|
|
14
|
+
/** Network seam for tests and gateways. */
|
|
15
|
+
readonly fetchImpl?: typeof fetch;
|
|
16
|
+
/** WebSocket implementation override (tests). */
|
|
17
|
+
readonly webSocketImpl?: typeof WebSocket;
|
|
18
|
+
/** Connection budget; synthesis inherits a larger one. */
|
|
19
|
+
readonly connectTimeoutMs?: number;
|
|
20
|
+
readonly synthesisTimeoutMs?: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* `Sec-MS-GEC` is `<CS64 checksum>-<SHA-256>` over Edge's copyright line plus
|
|
24
|
+
* the Windows-tick timestamp and token.
|
|
25
|
+
*/
|
|
26
|
+
export declare function hashSecMsGecV2(ticksAndToken: string): Promise<string>;
|
|
27
|
+
declare function voiceLocale(voice: string): string;
|
|
28
|
+
declare function escapeXml(text: string): string;
|
|
29
|
+
declare function ssmlFor(text: string, voice: string): string;
|
|
30
|
+
declare function speechConfig(outputFormat: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* Fetch the Read Aloud voice catalog.
|
|
33
|
+
*
|
|
34
|
+
* The card filters this by locale; the list is stable enough to cache for a
|
|
35
|
+
* day on the Host, but this function stays a plain fetch so callers decide.
|
|
36
|
+
*/
|
|
37
|
+
export declare function listEdgeVoices(options?: Pick<EdgeTtsOptions, "fetchImpl">): Promise<readonly EdgeVoice[]>;
|
|
38
|
+
export interface EdgeVoiceProviderOptions extends EdgeTtsOptions {
|
|
39
|
+
readonly now?: () => number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Build the Edge TTS Provider.
|
|
43
|
+
*
|
|
44
|
+
* `transcribe` / `createLiveSession` are honestly unsupported: Edge has no
|
|
45
|
+
* STT and no realtime session, and pretending otherwise would make ASR
|
|
46
|
+
* cards silently point at nothing.
|
|
47
|
+
*/
|
|
48
|
+
export declare function createEdgeVoiceProvider(options?: EdgeVoiceProviderOptions): VoiceService;
|
|
49
|
+
/** Voices for one locale prefix (`zh-CN`, `en-US`, …); empty means all. */
|
|
50
|
+
export declare function filterEdgeVoices(voices: readonly EdgeVoice[], localePrefix?: string): readonly EdgeVoice[];
|
|
51
|
+
/** Exposed for the voice catalog test: pure, no network. */
|
|
52
|
+
export declare const edgeTtsInternals: {
|
|
53
|
+
readonly hashSecMsGecV2: typeof hashSecMsGecV2;
|
|
54
|
+
readonly ssmlFor: typeof ssmlFor;
|
|
55
|
+
readonly speechConfig: typeof speechConfig;
|
|
56
|
+
readonly voiceLocale: typeof voiceLocale;
|
|
57
|
+
readonly escapeXml: typeof escapeXml;
|
|
58
|
+
};
|
|
59
|
+
export {};
|
|
60
|
+
//# sourceMappingURL=edge-tts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edge-tts.d.ts","sourceRoot":"","sources":["../src/edge-tts.ts"],"names":[],"mappings":"AAqBA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAKL,KAAK,YAAY,EAKlB,MAAM,YAAY,CAAC;AAyBpB,+DAA+D;AAC/D,eAAO,MAAM,kBAAkB,yBAAyB,CAAC;AAEzD,+CAA+C;AAC/C,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,2CAA2C;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC,iDAAiD;IACjD,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,SAAS,CAAC;IAC1C,0DAA0D;IAC1D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AA+FD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM3E;AAiBD,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG1C;AAED,iBAAS,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOvC;AAED,iBAAS,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQpD;AA4HD,iBAAS,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAkBlD;AA2CD;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,GAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAM,GAC9C,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAsB/B;AAMD,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC9D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,wBAA6B,GACrC,YAAY,CAkEd;AAED,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,YAAY,CAAC,EAAE,MAAM,GACpB,SAAS,SAAS,EAAE,CAItB;AAED,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB;;;;;;CAMnB,CAAC"}
|
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Edge TTS — Microsoft Edge "Read Aloud" neural voices.
|
|
3
|
+
*
|
|
4
|
+
* Why this engine exists: the Host's OS voices (SAPI / `say` / espeak-ng) are
|
|
5
|
+
* concatenative engines from another era. Edge's Read Aloud endpoint speaks
|
|
6
|
+
* the same neural voices Microsoft ships in Azure Speech, but needs no key,
|
|
7
|
+
* no account and no model download — only a WebSocket. It is the only
|
|
8
|
+
* zero-install TTS worth listening to, and it covers Chinese and English
|
|
9
|
+
* with the same voice set.
|
|
10
|
+
*
|
|
11
|
+
* The trade-off is honestly a trade-off: this is the browser feature's
|
|
12
|
+
* endpoint, not a contracted API. Microsoft has changed the handshake before
|
|
13
|
+
* (Oct 2026) and may again, so `system` stays registered as the offline
|
|
14
|
+
* fallback rather than being replaced.
|
|
15
|
+
*
|
|
16
|
+
* Protocol frame shapes and the Sec-MS-GEC v2 derivation are adapted from
|
|
17
|
+
* `msedge-tts` (MIT) — https://github.com/MiniGlome/msedge-tts. The checksum
|
|
18
|
+
* is not documented by Microsoft; keeping the port close to the reference is
|
|
19
|
+
* what makes a future protocol change cheap to follow.
|
|
20
|
+
*/
|
|
21
|
+
import { randomUUID } from "node:crypto";
|
|
22
|
+
import WebSocket from "ws";
|
|
23
|
+
import { VoiceError, } from "./types.js";
|
|
24
|
+
/** Public token Edge ships in its own client. */
|
|
25
|
+
const TRUSTED_CLIENT_TOKEN = "6A5AA1D4EAFF4E9FB37E23D68491D6F4";
|
|
26
|
+
const WSS_URL = "wss://speech.platform.bing.com/consumer/speech/synthesize/readaloud/edge/v1";
|
|
27
|
+
const VOICES_URL = `https://speech.platform.bing.com/consumer/speech/synthesize/readaloud/voices/list?trustedclienttoken=${TRUSTED_CLIENT_TOKEN}`;
|
|
28
|
+
/** Client build string in the handshake; Edge bumps this, so may we. */
|
|
29
|
+
const GEC_VERSION = "2-143.0.3650.96";
|
|
30
|
+
/**
|
|
31
|
+
* The endpoint rejects a bare Node handshake with 403. Edge's own client
|
|
32
|
+
* connects from its read-aloud extension origin, so present the same pair.
|
|
33
|
+
* Keep these in sync with {@link GEC_VERSION} when Microsoft ships a new Edge.
|
|
34
|
+
*/
|
|
35
|
+
const EDGE_HANDSHAKE_HEADERS = {
|
|
36
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0",
|
|
37
|
+
Origin: "chrome-extension://jdiccldimpdaibmpdkjnbmckianbfold",
|
|
38
|
+
};
|
|
39
|
+
const JSON_XML_DELIM = "\r\n\r\n";
|
|
40
|
+
const AUDIO_DELIM = "Path:audio\r\n";
|
|
41
|
+
const TURN_END = "Path:turn.end";
|
|
42
|
+
const DEFAULT_OUTPUT_FORMAT = "audio-24khz-48kbitrate-mono-mp3";
|
|
43
|
+
/** Chinese female, the voice this product ships as default. */
|
|
44
|
+
export const EDGE_DEFAULT_VOICE = "zh-CN-XiaoxiaoNeural";
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
// Sec-MS-GEC v2 — adapted from msedge-tts (MIT). See file header.
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
const EDGE_COPYRIGHT = "Copyright (C) Microsoft Corporation. All rights reserved.";
|
|
49
|
+
const SWAP_FIRST_WORD = {
|
|
50
|
+
swappedWord: 0xef0569fb,
|
|
51
|
+
swappedSum: 0x76f50f34,
|
|
52
|
+
swappedProduct: 0xc3efea97,
|
|
53
|
+
};
|
|
54
|
+
const SWAP_SECOND_WORD = {
|
|
55
|
+
swappedWord: 0xc31713db,
|
|
56
|
+
swappedSum: 0x1881ce3c,
|
|
57
|
+
swappedProduct: 0x35bd1ec9,
|
|
58
|
+
};
|
|
59
|
+
const MIX_FIRST_WORD = [0xcf98b111, 0x87085b9f, 0x12ceb96d, 0x257e1d83];
|
|
60
|
+
const MIX_SECOND_WORD = [0xa27416f5, 0xd38396ff, 0x7c932b89, 0xbfa49f69];
|
|
61
|
+
function swapHalves(value) {
|
|
62
|
+
return ((value << 16) | (value >>> 16)) >>> 0;
|
|
63
|
+
}
|
|
64
|
+
function swapTerm(word, key, multipliers) {
|
|
65
|
+
const sum = Math.imul(word, key) + Math.imul(swapHalves(word), multipliers.swappedWord);
|
|
66
|
+
const product = Math.imul(swapHalves(sum), multipliers.swappedSum) >>> 0;
|
|
67
|
+
return ((Math.imul(swapHalves(product), multipliers.swappedProduct) + product) >>> 0);
|
|
68
|
+
}
|
|
69
|
+
function swapAndMultiply(value, multipliers) {
|
|
70
|
+
let next = value;
|
|
71
|
+
for (const multiplier of multipliers) {
|
|
72
|
+
next = Math.imul(swapHalves(next), multiplier) >>> 0;
|
|
73
|
+
}
|
|
74
|
+
return next;
|
|
75
|
+
}
|
|
76
|
+
function cs64(message, digest) {
|
|
77
|
+
const digestView = new DataView(digest.buffer, digest.byteOffset, digest.byteLength);
|
|
78
|
+
const firstKey = (digestView.getUint32(0, true) | 1) >>> 0;
|
|
79
|
+
const secondKey = (digestView.getUint32(4, true) | 1) >>> 0;
|
|
80
|
+
const padded = new Uint8Array(Math.ceil(message.length / 8) * 8);
|
|
81
|
+
padded.set(message);
|
|
82
|
+
const words = new DataView(padded.buffer);
|
|
83
|
+
let swapSum = 0;
|
|
84
|
+
let lastSwap = 0;
|
|
85
|
+
let mix = 0;
|
|
86
|
+
let mixSum = 0;
|
|
87
|
+
for (let offset = 0; offset < padded.length; offset += 8) {
|
|
88
|
+
const firstWord = words.getUint32(offset, true);
|
|
89
|
+
const secondWord = words.getUint32(offset + 4, true);
|
|
90
|
+
const firstSwap = swapTerm(firstWord, firstKey, SWAP_FIRST_WORD);
|
|
91
|
+
lastSwap = swapTerm(secondWord, secondKey, SWAP_SECOND_WORD);
|
|
92
|
+
swapSum = (swapSum + firstSwap + lastSwap) >>> 0;
|
|
93
|
+
mix = swapAndMultiply(Math.imul(mix + firstWord, firstKey), MIX_FIRST_WORD);
|
|
94
|
+
mixSum = (mixSum + mix) >>> 0;
|
|
95
|
+
mix = swapAndMultiply(Math.imul(mix + secondWord, secondKey), MIX_SECOND_WORD);
|
|
96
|
+
mixSum = (mixSum + mix) >>> 0;
|
|
97
|
+
}
|
|
98
|
+
const checksum = new Uint8Array(8);
|
|
99
|
+
const view = new DataView(checksum.buffer);
|
|
100
|
+
view.setUint32(0, lastSwap ^ mix, true);
|
|
101
|
+
view.setUint32(4, swapSum ^ mixSum, true);
|
|
102
|
+
return checksum;
|
|
103
|
+
}
|
|
104
|
+
function upperHex(bytes) {
|
|
105
|
+
return Array.from(bytes, (b) => b.toString(16).padStart(2, "0"))
|
|
106
|
+
.join("")
|
|
107
|
+
.toUpperCase();
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* `Sec-MS-GEC` is `<CS64 checksum>-<SHA-256>` over Edge's copyright line plus
|
|
111
|
+
* the Windows-tick timestamp and token.
|
|
112
|
+
*/
|
|
113
|
+
export async function hashSecMsGecV2(ticksAndToken) {
|
|
114
|
+
const message = new TextEncoder().encode(EDGE_COPYRIGHT + ticksAndToken);
|
|
115
|
+
const digest = new Uint8Array(await crypto.subtle.digest("SHA-256", message));
|
|
116
|
+
return `${upperHex(cs64(message, digest))}-${upperHex(digest)}`;
|
|
117
|
+
}
|
|
118
|
+
/** Ticks rounded to five minutes, matching the Edge client's cadence. */
|
|
119
|
+
async function generateSecMsGec(token, now = Date.now()) {
|
|
120
|
+
const ticks = Math.floor(now / 1000) + 11644473600;
|
|
121
|
+
const rounded = ticks - (ticks % 300);
|
|
122
|
+
const windowsTicks = rounded * 10000000;
|
|
123
|
+
return hashSecMsGecV2(`${windowsTicks}${token}`);
|
|
124
|
+
}
|
|
125
|
+
// ---------------------------------------------------------------------------
|
|
126
|
+
// SSML + socket
|
|
127
|
+
// ---------------------------------------------------------------------------
|
|
128
|
+
function voiceLocale(voice) {
|
|
129
|
+
const match = /\b([a-z]{2,}-[A-Z]{2})\b/.exec(voice);
|
|
130
|
+
return match?.[1] ?? "en-US";
|
|
131
|
+
}
|
|
132
|
+
function escapeXml(text) {
|
|
133
|
+
return text
|
|
134
|
+
.replaceAll("&", "&")
|
|
135
|
+
.replaceAll("<", "<")
|
|
136
|
+
.replaceAll(">", ">")
|
|
137
|
+
.replaceAll('"', """)
|
|
138
|
+
.replaceAll("'", "'");
|
|
139
|
+
}
|
|
140
|
+
function ssmlFor(text, voice) {
|
|
141
|
+
const lang = voiceLocale(voice);
|
|
142
|
+
return (`<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" ` +
|
|
143
|
+
`xml:lang="${lang}"><voice name="${voice}">` +
|
|
144
|
+
`<prosody pitch="+0Hz" rate="+0%" volume="+0%">${escapeXml(text)}</prosody>` +
|
|
145
|
+
`</voice></speak>`);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* One synthesis over one socket. Resolves with the concatenated audio frames;
|
|
149
|
+
* rejects on handshake failure, socket error, or a synthesis timeout.
|
|
150
|
+
*/
|
|
151
|
+
function synthesizeOverSocket(input) {
|
|
152
|
+
return new Promise((resolve, reject) => {
|
|
153
|
+
const connectionId = randomUUID();
|
|
154
|
+
const requestId = randomUUID().replaceAll("-", "");
|
|
155
|
+
let settled = false;
|
|
156
|
+
// One clock per phase, held as object properties: a `let` pair is what
|
|
157
|
+
// prefer-const rejects, and a plain Set cannot express "re-arm the same
|
|
158
|
+
// clock" (the synth deadline is pushed back on every audio frame).
|
|
159
|
+
const clocks = {};
|
|
160
|
+
const chunks = [];
|
|
161
|
+
const finish = (err) => {
|
|
162
|
+
if (settled)
|
|
163
|
+
return;
|
|
164
|
+
settled = true;
|
|
165
|
+
if (clocks.connect)
|
|
166
|
+
clearTimeout(clocks.connect);
|
|
167
|
+
if (clocks.synth)
|
|
168
|
+
clearTimeout(clocks.synth);
|
|
169
|
+
try {
|
|
170
|
+
// `close()` starts a graceful handshake and can leave a half-open
|
|
171
|
+
// socket (and its keepalive timer) behind; `terminate()` drops it now,
|
|
172
|
+
// so a one-shot CLI or test process actually exits.
|
|
173
|
+
const closable = socket;
|
|
174
|
+
if (typeof closable.terminate === "function")
|
|
175
|
+
closable.terminate();
|
|
176
|
+
else
|
|
177
|
+
closable.close?.();
|
|
178
|
+
}
|
|
179
|
+
catch {
|
|
180
|
+
/* already closing */
|
|
181
|
+
}
|
|
182
|
+
if (err)
|
|
183
|
+
reject(err);
|
|
184
|
+
else
|
|
185
|
+
resolve(concat(chunks));
|
|
186
|
+
};
|
|
187
|
+
const socket = new input.webSocketImpl(urlFor(connectionId, input.gec), {
|
|
188
|
+
headers: EDGE_HANDSHAKE_HEADERS,
|
|
189
|
+
});
|
|
190
|
+
clocks.connect = setTimeout(() => {
|
|
191
|
+
finish(new VoiceError(`edge tts connect timed out after ${input.connectTimeoutMs}ms`, "VOICE_BACKEND"));
|
|
192
|
+
}, input.connectTimeoutMs);
|
|
193
|
+
socket.on("open", () => {
|
|
194
|
+
if (settled)
|
|
195
|
+
return;
|
|
196
|
+
if (clocks.connect)
|
|
197
|
+
clearTimeout(clocks.connect);
|
|
198
|
+
clocks.synth = setTimeout(() => {
|
|
199
|
+
finish(new VoiceError(`edge tts synthesis timed out after ${input.synthesisTimeoutMs}ms`, "VOICE_BACKEND"));
|
|
200
|
+
}, input.synthesisTimeoutMs);
|
|
201
|
+
socket.send(speechConfig(input.outputFormat));
|
|
202
|
+
socket.send(ssmlFrame(requestId, ssmlFor(input.text, input.voice)));
|
|
203
|
+
});
|
|
204
|
+
socket.on("message", (data, isBinary) => {
|
|
205
|
+
if (settled)
|
|
206
|
+
return;
|
|
207
|
+
const buf = Buffer.isBuffer(data) ? data : Buffer.from(data);
|
|
208
|
+
if (!isBinary) {
|
|
209
|
+
const text = buf.toString("utf8");
|
|
210
|
+
if (text.includes(TURN_END))
|
|
211
|
+
finish();
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
const headerEnd = buf.indexOf(AUDIO_DELIM);
|
|
215
|
+
if (headerEnd < 0)
|
|
216
|
+
return;
|
|
217
|
+
chunks.push(buf.subarray(headerEnd + AUDIO_DELIM.length));
|
|
218
|
+
if (clocks.synth) {
|
|
219
|
+
clearTimeout(clocks.synth);
|
|
220
|
+
clocks.synth = setTimeout(() => {
|
|
221
|
+
finish(new VoiceError(`edge tts synthesis timed out after ${input.synthesisTimeoutMs}ms`, "VOICE_BACKEND"));
|
|
222
|
+
}, input.synthesisTimeoutMs);
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
socket.on("error", (err) => {
|
|
226
|
+
finish(new VoiceError(`edge tts socket: ${err.message}`, "VOICE_BACKEND"));
|
|
227
|
+
});
|
|
228
|
+
socket.on("close", () => {
|
|
229
|
+
// A close before `turn.end` still delivers whatever audio arrived; only
|
|
230
|
+
// an empty body means the handshake was rejected.
|
|
231
|
+
finish(chunks.length > 0 ? undefined : new VoiceError("edge tts closed before audio (handshake rejected or voice unavailable)", "VOICE_BACKEND"));
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
function urlFor(connectionId, gec) {
|
|
236
|
+
return `${WSS_URL}?TrustedClientToken=${TRUSTED_CLIENT_TOKEN}` +
|
|
237
|
+
`&Sec-MS-GEC=${encodeURIComponent(gec)}` +
|
|
238
|
+
`&Sec-MS-GEC-Version=${GEC_VERSION}` +
|
|
239
|
+
`&ConnectionId=${connectionId}`;
|
|
240
|
+
}
|
|
241
|
+
function speechConfig(outputFormat) {
|
|
242
|
+
const payload = JSON.stringify({
|
|
243
|
+
context: {
|
|
244
|
+
synthesis: {
|
|
245
|
+
audio: {
|
|
246
|
+
metadataoptions: {
|
|
247
|
+
sentenceBoundaryEnabled: "false",
|
|
248
|
+
wordBoundaryEnabled: "false",
|
|
249
|
+
},
|
|
250
|
+
outputFormat,
|
|
251
|
+
},
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
});
|
|
255
|
+
return (`Content-Type:application/json; charset=utf-8\r\n` +
|
|
256
|
+
`Path:speech.config${JSON_XML_DELIM}${payload}`);
|
|
257
|
+
}
|
|
258
|
+
function ssmlFrame(requestId, ssml) {
|
|
259
|
+
return (`X-RequestId:${requestId}\r\n` +
|
|
260
|
+
`Content-Type:application/ssml+xml\r\n` +
|
|
261
|
+
`Path:ssml${JSON_XML_DELIM}${ssml}`);
|
|
262
|
+
}
|
|
263
|
+
function concat(chunks) {
|
|
264
|
+
const total = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
|
|
265
|
+
const out = new Uint8Array(total);
|
|
266
|
+
let offset = 0;
|
|
267
|
+
for (const chunk of chunks) {
|
|
268
|
+
out.set(chunk, offset);
|
|
269
|
+
offset += chunk.length;
|
|
270
|
+
}
|
|
271
|
+
return out;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Sec-MS-GEC is expensive enough (SHA-256 + checksum over a long string) that
|
|
275
|
+
* re-deriving it per request would be waste; it also only changes every five
|
|
276
|
+
* minutes. Cache one value per five-minute bucket.
|
|
277
|
+
*/
|
|
278
|
+
const gecCache = { value: "", bucket: -1 };
|
|
279
|
+
async function currentGec(now = Date.now()) {
|
|
280
|
+
const bucket = Math.floor(now / 1000 / 300);
|
|
281
|
+
if (gecCache.bucket === bucket && gecCache.value !== "") {
|
|
282
|
+
return gecCache.value;
|
|
283
|
+
}
|
|
284
|
+
const value = await generateSecMsGec(TRUSTED_CLIENT_TOKEN, now);
|
|
285
|
+
gecCache.value = value;
|
|
286
|
+
gecCache.bucket = bucket;
|
|
287
|
+
return value;
|
|
288
|
+
}
|
|
289
|
+
// ---------------------------------------------------------------------------
|
|
290
|
+
// Voice catalog
|
|
291
|
+
// ---------------------------------------------------------------------------
|
|
292
|
+
/**
|
|
293
|
+
* Fetch the Read Aloud voice catalog.
|
|
294
|
+
*
|
|
295
|
+
* The card filters this by locale; the list is stable enough to cache for a
|
|
296
|
+
* day on the Host, but this function stays a plain fetch so callers decide.
|
|
297
|
+
*/
|
|
298
|
+
export async function listEdgeVoices(options = {}) {
|
|
299
|
+
const fetchImpl = options.fetchImpl ?? fetch;
|
|
300
|
+
const res = await fetchImpl(VOICES_URL);
|
|
301
|
+
if (!res.ok) {
|
|
302
|
+
throw new VoiceError(`edge voices HTTP ${res.status}`, "VOICE_BACKEND");
|
|
303
|
+
}
|
|
304
|
+
const rows = (await res.json());
|
|
305
|
+
const out = [];
|
|
306
|
+
for (const row of rows) {
|
|
307
|
+
const shortName = String(row.ShortName ?? "").trim();
|
|
308
|
+
if (shortName === "")
|
|
309
|
+
continue;
|
|
310
|
+
out.push({
|
|
311
|
+
shortName,
|
|
312
|
+
gender: String(row.Gender ?? ""),
|
|
313
|
+
locale: String(row.Locale ?? ""),
|
|
314
|
+
friendlyName: String(row.FriendlyName ?? shortName),
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
return out;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Build the Edge TTS Provider.
|
|
321
|
+
*
|
|
322
|
+
* `transcribe` / `createLiveSession` are honestly unsupported: Edge has no
|
|
323
|
+
* STT and no realtime session, and pretending otherwise would make ASR
|
|
324
|
+
* cards silently point at nothing.
|
|
325
|
+
*/
|
|
326
|
+
export function createEdgeVoiceProvider(options = {}) {
|
|
327
|
+
const webSocketImpl = options.webSocketImpl ?? WebSocket;
|
|
328
|
+
const defaultVoice = options.defaultVoice?.trim() || EDGE_DEFAULT_VOICE;
|
|
329
|
+
const connectTimeoutMs = options.connectTimeoutMs ?? 10_000;
|
|
330
|
+
const synthesisTimeoutMs = options.synthesisTimeoutMs ?? 30_000;
|
|
331
|
+
return {
|
|
332
|
+
async synthesize(req) {
|
|
333
|
+
const text = String(req.text ?? "").trim();
|
|
334
|
+
if (text === "") {
|
|
335
|
+
throw new VoiceError("synthesize text is empty", "VOICE_BAD_ARGS");
|
|
336
|
+
}
|
|
337
|
+
// Edge always streams MP3 regardless of the requested container; say so
|
|
338
|
+
// instead of returning WAV bytes under a WAV mime.
|
|
339
|
+
const voice = req.voice?.trim() || defaultVoice;
|
|
340
|
+
const gec = await currentGec(options.now?.() ?? Date.now());
|
|
341
|
+
const bytes = await synthesizeOverSocket({
|
|
342
|
+
text,
|
|
343
|
+
voice,
|
|
344
|
+
outputFormat: DEFAULT_OUTPUT_FORMAT,
|
|
345
|
+
gec,
|
|
346
|
+
connectTimeoutMs,
|
|
347
|
+
synthesisTimeoutMs,
|
|
348
|
+
webSocketImpl,
|
|
349
|
+
});
|
|
350
|
+
if (bytes.length === 0) {
|
|
351
|
+
throw new VoiceError(`edge tts returned no audio for voice ${voice}`, "VOICE_BACKEND");
|
|
352
|
+
}
|
|
353
|
+
return {
|
|
354
|
+
bytes,
|
|
355
|
+
mimeType: "audio/mpeg",
|
|
356
|
+
provider: "edge",
|
|
357
|
+
delivery: "edge",
|
|
358
|
+
voice,
|
|
359
|
+
note: `edge-tts bytes=${bytes.length} voice=${voice}`,
|
|
360
|
+
};
|
|
361
|
+
},
|
|
362
|
+
async transcribe(_req) {
|
|
363
|
+
throw new VoiceError("Edge TTS is synthesis-only; use the local or openai engine for dictation", "VOICE_UNAVAILABLE");
|
|
364
|
+
},
|
|
365
|
+
async createLiveSession(_req) {
|
|
366
|
+
throw new VoiceError("Edge TTS has no realtime session; use the openai engine for live voice", "VOICE_LIVE_UNSUPPORTED");
|
|
367
|
+
},
|
|
368
|
+
liveStatus() {
|
|
369
|
+
return {
|
|
370
|
+
available: false,
|
|
371
|
+
mode: "none",
|
|
372
|
+
provider: "edge",
|
|
373
|
+
reason: "TTS-only engine (no dictation / realtime session)",
|
|
374
|
+
};
|
|
375
|
+
},
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
/** Voices for one locale prefix (`zh-CN`, `en-US`, …); empty means all. */
|
|
379
|
+
export function filterEdgeVoices(voices, localePrefix) {
|
|
380
|
+
const prefix = localePrefix?.trim().toLowerCase();
|
|
381
|
+
if (prefix === undefined || prefix === "")
|
|
382
|
+
return voices;
|
|
383
|
+
return voices.filter((voice) => voice.locale.toLowerCase().startsWith(prefix));
|
|
384
|
+
}
|
|
385
|
+
/** Exposed for the voice catalog test: pure, no network. */
|
|
386
|
+
export const edgeTtsInternals = {
|
|
387
|
+
hashSecMsGecV2,
|
|
388
|
+
ssmlFor,
|
|
389
|
+
speechConfig,
|
|
390
|
+
voiceLocale,
|
|
391
|
+
escapeXml,
|
|
392
|
+
};
|
|
393
|
+
//# sourceMappingURL=edge-tts.js.map
|