@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.
Files changed (155) hide show
  1. package/node_modules/@xrkseek/core-tools/dist/output-bound.d.ts +4 -1
  2. package/node_modules/@xrkseek/core-tools/dist/output-bound.d.ts.map +1 -1
  3. package/node_modules/@xrkseek/core-tools/dist/output-bound.js +19 -5
  4. package/node_modules/@xrkseek/core-tools/dist/output-bound.js.map +1 -1
  5. package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.js +2 -2
  6. package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.js.map +1 -1
  7. package/node_modules/@xrkseek/exec-memory/dist/index.d.ts +2 -2
  8. package/node_modules/@xrkseek/exec-memory/dist/index.d.ts.map +1 -1
  9. package/node_modules/@xrkseek/exec-memory/dist/index.js +2 -2
  10. package/node_modules/@xrkseek/exec-memory/dist/index.js.map +1 -1
  11. package/node_modules/@xrkseek/exec-memory/dist/layered.d.ts +20 -3
  12. package/node_modules/@xrkseek/exec-memory/dist/layered.d.ts.map +1 -1
  13. package/node_modules/@xrkseek/exec-memory/dist/layered.js +46 -17
  14. package/node_modules/@xrkseek/exec-memory/dist/layered.js.map +1 -1
  15. package/node_modules/@xrkseek/exec-memory/dist/store.d.ts +17 -0
  16. package/node_modules/@xrkseek/exec-memory/dist/store.d.ts.map +1 -1
  17. package/node_modules/@xrkseek/exec-memory/dist/store.js +35 -14
  18. package/node_modules/@xrkseek/exec-memory/dist/store.js.map +1 -1
  19. package/node_modules/@xrkseek/exec-memory/dist/tools.d.ts.map +1 -1
  20. package/node_modules/@xrkseek/exec-memory/dist/tools.js +20 -8
  21. package/node_modules/@xrkseek/exec-memory/dist/tools.js.map +1 -1
  22. package/node_modules/@xrkseek/exec-voice/dist/edge-tts.d.ts +60 -0
  23. package/node_modules/@xrkseek/exec-voice/dist/edge-tts.d.ts.map +1 -0
  24. package/node_modules/@xrkseek/exec-voice/dist/edge-tts.js +393 -0
  25. package/node_modules/@xrkseek/exec-voice/dist/edge-tts.js.map +1 -0
  26. package/node_modules/@xrkseek/exec-voice/dist/engine-ids.d.ts.map +1 -1
  27. package/node_modules/@xrkseek/exec-voice/dist/engine-ids.js +1 -0
  28. package/node_modules/@xrkseek/exec-voice/dist/engine-ids.js.map +1 -1
  29. package/node_modules/@xrkseek/exec-voice/dist/engines.d.ts +1 -1
  30. package/node_modules/@xrkseek/exec-voice/dist/engines.d.ts.map +1 -1
  31. package/node_modules/@xrkseek/exec-voice/dist/engines.js +19 -1
  32. package/node_modules/@xrkseek/exec-voice/dist/engines.js.map +1 -1
  33. package/node_modules/@xrkseek/exec-voice/dist/format.js +1 -1
  34. package/node_modules/@xrkseek/exec-voice/dist/format.js.map +1 -1
  35. package/node_modules/@xrkseek/exec-voice/dist/index.d.ts +1 -0
  36. package/node_modules/@xrkseek/exec-voice/dist/index.d.ts.map +1 -1
  37. package/node_modules/@xrkseek/exec-voice/dist/index.js +1 -0
  38. package/node_modules/@xrkseek/exec-voice/dist/index.js.map +1 -1
  39. package/node_modules/@xrkseek/exec-voice/dist/openai-http.d.ts.map +1 -1
  40. package/node_modules/@xrkseek/exec-voice/dist/openai-http.js +1 -0
  41. package/node_modules/@xrkseek/exec-voice/dist/openai-http.js.map +1 -1
  42. package/node_modules/@xrkseek/exec-voice/dist/readiness.d.ts +1 -1
  43. package/node_modules/@xrkseek/exec-voice/dist/readiness.d.ts.map +1 -1
  44. package/node_modules/@xrkseek/exec-voice/dist/readiness.js +13 -1
  45. package/node_modules/@xrkseek/exec-voice/dist/readiness.js.map +1 -1
  46. package/node_modules/@xrkseek/exec-voice/dist/sensevoice-local.d.ts.map +1 -1
  47. package/node_modules/@xrkseek/exec-voice/dist/sensevoice-local.js +6 -5
  48. package/node_modules/@xrkseek/exec-voice/dist/sensevoice-local.js.map +1 -1
  49. package/node_modules/@xrkseek/exec-voice/dist/system-tts.d.ts +2 -0
  50. package/node_modules/@xrkseek/exec-voice/dist/system-tts.d.ts.map +1 -1
  51. package/node_modules/@xrkseek/exec-voice/dist/system-tts.js +10 -7
  52. package/node_modules/@xrkseek/exec-voice/dist/system-tts.js.map +1 -1
  53. package/node_modules/@xrkseek/exec-voice/dist/tools.d.ts +19 -0
  54. package/node_modules/@xrkseek/exec-voice/dist/tools.d.ts.map +1 -1
  55. package/node_modules/@xrkseek/exec-voice/dist/tools.js +160 -25
  56. package/node_modules/@xrkseek/exec-voice/dist/tools.js.map +1 -1
  57. package/node_modules/@xrkseek/exec-voice/dist/types.d.ts +12 -1
  58. package/node_modules/@xrkseek/exec-voice/dist/types.d.ts.map +1 -1
  59. package/node_modules/@xrkseek/exec-voice/dist/types.js +6 -0
  60. package/node_modules/@xrkseek/exec-voice/dist/types.js.map +1 -1
  61. package/node_modules/@xrkseek/exec-voice/package.json +7 -2
  62. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts +5 -0
  63. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
  64. package/node_modules/@xrkseek/preset-harness/dist/preset.js +13 -6
  65. package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
  66. package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
  67. package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
  68. package/node_modules/@xrkseek/preset-server/dist/preset.d.ts.map +1 -1
  69. package/node_modules/@xrkseek/preset-server/dist/preset.js +14 -2
  70. package/node_modules/@xrkseek/preset-server/dist/preset.js.map +1 -1
  71. package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
  72. package/node_modules/@xrkseek/server-face/dist/agent-home-boundary.d.ts +14 -0
  73. package/node_modules/@xrkseek/server-face/dist/agent-home-boundary.d.ts.map +1 -1
  74. package/node_modules/@xrkseek/server-face/dist/agent-home-boundary.js +40 -0
  75. package/node_modules/@xrkseek/server-face/dist/agent-home-boundary.js.map +1 -1
  76. package/node_modules/@xrkseek/server-face/dist/agent-member-pack.d.ts +21 -1
  77. package/node_modules/@xrkseek/server-face/dist/agent-member-pack.d.ts.map +1 -1
  78. package/node_modules/@xrkseek/server-face/dist/agent-member-pack.js +29 -1
  79. package/node_modules/@xrkseek/server-face/dist/agent-member-pack.js.map +1 -1
  80. package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.js +4 -4
  81. package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.js.map +1 -1
  82. package/node_modules/@xrkseek/server-face/dist/agent-team-roles.d.ts.map +1 -1
  83. package/node_modules/@xrkseek/server-face/dist/agent-team-roles.js +30 -15
  84. package/node_modules/@xrkseek/server-face/dist/agent-team-roles.js.map +1 -1
  85. package/node_modules/@xrkseek/server-face/dist/canvas-tools.d.ts.map +1 -1
  86. package/node_modules/@xrkseek/server-face/dist/canvas-tools.js +2 -1
  87. package/node_modules/@xrkseek/server-face/dist/canvas-tools.js.map +1 -1
  88. package/node_modules/@xrkseek/server-face/dist/handlers/voice.d.ts.map +1 -1
  89. package/node_modules/@xrkseek/server-face/dist/handlers/voice.js +32 -5
  90. package/node_modules/@xrkseek/server-face/dist/handlers/voice.js.map +1 -1
  91. package/node_modules/@xrkseek/server-face/dist/index.d.ts +1 -0
  92. package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
  93. package/node_modules/@xrkseek/server-face/dist/index.js +1 -0
  94. package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
  95. package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts.map +1 -1
  96. package/node_modules/@xrkseek/server-face/dist/model-catalog.js +18 -8
  97. package/node_modules/@xrkseek/server-face/dist/model-catalog.js.map +1 -1
  98. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
  99. package/node_modules/@xrkseek/server-face/dist/runtime.js +12 -0
  100. package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
  101. package/node_modules/@xrkseek/server-face/dist/session-attachment.d.ts.map +1 -1
  102. package/node_modules/@xrkseek/server-face/dist/session-attachment.js +60 -5
  103. package/node_modules/@xrkseek/server-face/dist/session-attachment.js.map +1 -1
  104. package/node_modules/@xrkseek/server-face/dist/session-capability.d.ts.map +1 -1
  105. package/node_modules/@xrkseek/server-face/dist/session-capability.js +45 -19
  106. package/node_modules/@xrkseek/server-face/dist/session-capability.js.map +1 -1
  107. package/node_modules/@xrkseek/server-face/dist/session-thread-tools.d.ts +2 -2
  108. package/node_modules/@xrkseek/server-face/dist/session-thread-tools.d.ts.map +1 -1
  109. package/node_modules/@xrkseek/server-face/dist/session-thread-tools.js +5 -38
  110. package/node_modules/@xrkseek/server-face/dist/session-thread-tools.js.map +1 -1
  111. package/node_modules/@xrkseek/server-face/dist/session-tool-copy.d.ts.map +1 -1
  112. package/node_modules/@xrkseek/server-face/dist/session-tool-copy.js +6 -2
  113. package/node_modules/@xrkseek/server-face/dist/session-tool-copy.js.map +1 -1
  114. package/node_modules/@xrkseek/server-face/dist/session-tools.d.ts.map +1 -1
  115. package/node_modules/@xrkseek/server-face/dist/session-tools.js +0 -2
  116. package/node_modules/@xrkseek/server-face/dist/session-tools.js.map +1 -1
  117. package/node_modules/@xrkseek/server-face/dist/settings-schemas.d.ts.map +1 -1
  118. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js +40 -7
  119. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
  120. package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts +2 -2
  121. package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
  122. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +15 -56
  123. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
  124. package/node_modules/@xrkseek/server-face/dist/tts-availability.d.ts +33 -0
  125. package/node_modules/@xrkseek/server-face/dist/tts-availability.d.ts.map +1 -0
  126. package/node_modules/@xrkseek/server-face/dist/tts-availability.js +67 -0
  127. package/node_modules/@xrkseek/server-face/dist/tts-availability.js.map +1 -0
  128. package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.d.ts.map +1 -1
  129. package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.js +58 -18
  130. package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.js.map +1 -1
  131. package/node_modules/@xrkseek/server-face/dist/xiangyang-skill-bodies/mainline-sideline.d.ts +1 -1
  132. package/node_modules/@xrkseek/server-face/dist/xiangyang-skill-bodies/mainline-sideline.d.ts.map +1 -1
  133. package/node_modules/@xrkseek/server-face/dist/xiangyang-skill-bodies/mainline-sideline.js +1 -1
  134. package/node_modules/@xrkseek/server-host/dist/im-reply-tool.d.ts +5 -1
  135. package/node_modules/@xrkseek/server-host/dist/im-reply-tool.d.ts.map +1 -1
  136. package/node_modules/@xrkseek/server-host/dist/im-reply-tool.js +1 -1
  137. package/node_modules/@xrkseek/server-host/dist/im-reply-tool.js.map +1 -1
  138. package/node_modules/@xrkseek/server-host/dist/index.d.ts +5 -0
  139. package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
  140. package/node_modules/@xrkseek/server-host/dist/index.js +79 -8
  141. package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
  142. package/node_modules/@xrkseek/workspace/dist/durable-inject.d.ts +10 -4
  143. package/node_modules/@xrkseek/workspace/dist/durable-inject.d.ts.map +1 -1
  144. package/node_modules/@xrkseek/workspace/dist/durable-inject.js +26 -8
  145. package/node_modules/@xrkseek/workspace/dist/durable-inject.js.map +1 -1
  146. package/node_modules/@xrkseek/workspace/dist/skill-tools.js +1 -1
  147. package/node_modules/@xrkseek/workspace/dist/skill-tools.js.map +1 -1
  148. package/node_modules/@xrkseek/workspace/dist/skills.d.ts +1 -1
  149. package/node_modules/@xrkseek/workspace/dist/skills.d.ts.map +1 -1
  150. package/node_modules/@xrkseek/workspace/dist/skills.js +2 -2
  151. package/node_modules/@xrkseek/workspace/dist/skills.js.map +1 -1
  152. package/node_modules/@xrkseek/workspace/dist/standing-skill-dirs.d.ts.map +1 -1
  153. package/node_modules/@xrkseek/workspace/dist/standing-skill-dirs.js +1 -7
  154. package/node_modules/@xrkseek/workspace/dist/standing-skill-dirs.js.map +1 -1
  155. 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,QAiB4C,CAAC;AAmBpF;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,GAAG,cAAc,EAAE,CA4JpF"}
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
- return raw.map((item) => {
36
- const op = item && typeof item === "object" ? item : {};
37
- return op;
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 notes; user = USER.md profile.",
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: ["target"],
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)}'. Use 'memory' or 'user'.`,
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 (Array.isArray(args.operations) && args.operations.length > 0 && ops && ops.length > 0) {
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":"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"}
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("&", "&amp;")
135
+ .replaceAll("<", "&lt;")
136
+ .replaceAll(">", "&gt;")
137
+ .replaceAll('"', "&quot;")
138
+ .replaceAll("'", "&apos;");
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