@xrkseek/harness 0.7.5 → 0.7.7

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 (175) hide show
  1. package/node_modules/@xrkseek/a2a/dist/inbound.d.ts.map +1 -1
  2. package/node_modules/@xrkseek/a2a/dist/inbound.js +72 -2
  3. package/node_modules/@xrkseek/a2a/dist/inbound.js.map +1 -1
  4. package/node_modules/@xrkseek/checkpoint/dist/store.d.ts +50 -0
  5. package/node_modules/@xrkseek/checkpoint/dist/store.d.ts.map +1 -1
  6. package/node_modules/@xrkseek/checkpoint/dist/store.js +240 -16
  7. package/node_modules/@xrkseek/checkpoint/dist/store.js.map +1 -1
  8. package/node_modules/@xrkseek/checkpoint/dist/types.d.ts +18 -0
  9. package/node_modules/@xrkseek/checkpoint/dist/types.d.ts.map +1 -1
  10. package/node_modules/@xrkseek/checkpoint/dist/types.js.map +1 -1
  11. package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.d.ts.map +1 -1
  12. package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.js +2 -0
  13. package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.js.map +1 -1
  14. package/node_modules/@xrkseek/exec-voice/README.md +4 -3
  15. package/node_modules/@xrkseek/exec-voice/dist/browser/index.d.ts +1 -0
  16. package/node_modules/@xrkseek/exec-voice/dist/browser/index.d.ts.map +1 -1
  17. package/node_modules/@xrkseek/exec-voice/dist/browser/index.js +1 -0
  18. package/node_modules/@xrkseek/exec-voice/dist/browser/index.js.map +1 -1
  19. package/node_modules/@xrkseek/exec-voice/dist/browser/wav-capture.d.ts +91 -0
  20. package/node_modules/@xrkseek/exec-voice/dist/browser/wav-capture.d.ts.map +1 -0
  21. package/node_modules/@xrkseek/exec-voice/dist/browser/wav-capture.js +269 -0
  22. package/node_modules/@xrkseek/exec-voice/dist/browser/wav-capture.js.map +1 -0
  23. package/node_modules/@xrkseek/exec-voice/dist/download-http.d.ts +27 -0
  24. package/node_modules/@xrkseek/exec-voice/dist/download-http.d.ts.map +1 -0
  25. package/node_modules/@xrkseek/exec-voice/dist/download-http.js +179 -0
  26. package/node_modules/@xrkseek/exec-voice/dist/download-http.js.map +1 -0
  27. package/node_modules/@xrkseek/exec-voice/dist/engine-ids.d.ts +19 -0
  28. package/node_modules/@xrkseek/exec-voice/dist/engine-ids.d.ts.map +1 -0
  29. package/node_modules/@xrkseek/exec-voice/dist/engine-ids.js +36 -0
  30. package/node_modules/@xrkseek/exec-voice/dist/engine-ids.js.map +1 -0
  31. package/node_modules/@xrkseek/exec-voice/dist/engines.d.ts +60 -0
  32. package/node_modules/@xrkseek/exec-voice/dist/engines.d.ts.map +1 -0
  33. package/node_modules/@xrkseek/exec-voice/dist/engines.js +130 -0
  34. package/node_modules/@xrkseek/exec-voice/dist/engines.js.map +1 -0
  35. package/node_modules/@xrkseek/exec-voice/dist/format.d.ts +13 -0
  36. package/node_modules/@xrkseek/exec-voice/dist/format.d.ts.map +1 -1
  37. package/node_modules/@xrkseek/exec-voice/dist/format.js +22 -3
  38. package/node_modules/@xrkseek/exec-voice/dist/format.js.map +1 -1
  39. package/node_modules/@xrkseek/exec-voice/dist/index.d.ts +22 -31
  40. package/node_modules/@xrkseek/exec-voice/dist/index.d.ts.map +1 -1
  41. package/node_modules/@xrkseek/exec-voice/dist/index.js +16 -66
  42. package/node_modules/@xrkseek/exec-voice/dist/index.js.map +1 -1
  43. package/node_modules/@xrkseek/exec-voice/dist/readiness.d.ts +14 -8
  44. package/node_modules/@xrkseek/exec-voice/dist/readiness.d.ts.map +1 -1
  45. package/node_modules/@xrkseek/exec-voice/dist/readiness.js +36 -27
  46. package/node_modules/@xrkseek/exec-voice/dist/readiness.js.map +1 -1
  47. package/node_modules/@xrkseek/exec-voice/dist/sensevoice-assets.d.ts +48 -0
  48. package/node_modules/@xrkseek/exec-voice/dist/sensevoice-assets.d.ts.map +1 -0
  49. package/node_modules/@xrkseek/exec-voice/dist/sensevoice-assets.js +64 -0
  50. package/node_modules/@xrkseek/exec-voice/dist/sensevoice-assets.js.map +1 -0
  51. package/node_modules/@xrkseek/exec-voice/dist/sensevoice-local.d.ts +24 -0
  52. package/node_modules/@xrkseek/exec-voice/dist/sensevoice-local.d.ts.map +1 -1
  53. package/node_modules/@xrkseek/exec-voice/dist/sensevoice-local.js +66 -4
  54. package/node_modules/@xrkseek/exec-voice/dist/sensevoice-local.js.map +1 -1
  55. package/node_modules/@xrkseek/exec-voice/dist/sensevoice-runtime.d.ts +76 -0
  56. package/node_modules/@xrkseek/exec-voice/dist/sensevoice-runtime.d.ts.map +1 -0
  57. package/node_modules/@xrkseek/exec-voice/dist/sensevoice-runtime.js +315 -0
  58. package/node_modules/@xrkseek/exec-voice/dist/sensevoice-runtime.js.map +1 -0
  59. package/node_modules/@xrkseek/exec-voice/dist/system-tts.d.ts +40 -0
  60. package/node_modules/@xrkseek/exec-voice/dist/system-tts.d.ts.map +1 -0
  61. package/node_modules/@xrkseek/exec-voice/dist/system-tts.js +260 -0
  62. package/node_modules/@xrkseek/exec-voice/dist/system-tts.js.map +1 -0
  63. package/node_modules/@xrkseek/exec-voice/dist/tools.d.ts +13 -12
  64. package/node_modules/@xrkseek/exec-voice/dist/tools.d.ts.map +1 -1
  65. package/node_modules/@xrkseek/exec-voice/dist/tools.js +12 -6
  66. package/node_modules/@xrkseek/exec-voice/dist/tools.js.map +1 -1
  67. package/node_modules/@xrkseek/exec-voice/dist/types.d.ts +3 -1
  68. package/node_modules/@xrkseek/exec-voice/dist/types.d.ts.map +1 -1
  69. package/node_modules/@xrkseek/exec-voice/dist/types.js.map +1 -1
  70. package/node_modules/@xrkseek/exec-voice/package.json +36 -31
  71. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts +4 -3
  72. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
  73. package/node_modules/@xrkseek/preset-harness/dist/preset.js +31 -18
  74. package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
  75. package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
  76. package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
  77. package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
  78. package/node_modules/@xrkseek/protocol/dist/sidebar-previews.d.ts +2 -0
  79. package/node_modules/@xrkseek/protocol/dist/sidebar-previews.d.ts.map +1 -1
  80. package/node_modules/@xrkseek/protocol/dist/sidebar-previews.js.map +1 -1
  81. package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.d.ts +21 -2
  82. package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.d.ts.map +1 -1
  83. package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.js +56 -7
  84. package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.js.map +1 -1
  85. package/node_modules/@xrkseek/server-face/dist/agent-roster-store.d.ts +18 -3
  86. package/node_modules/@xrkseek/server-face/dist/agent-roster-store.d.ts.map +1 -1
  87. package/node_modules/@xrkseek/server-face/dist/agent-roster-store.js +154 -10
  88. package/node_modules/@xrkseek/server-face/dist/agent-roster-store.js.map +1 -1
  89. package/node_modules/@xrkseek/server-face/dist/agent-team-roles.d.ts.map +1 -1
  90. package/node_modules/@xrkseek/server-face/dist/agent-team-roles.js +4 -0
  91. package/node_modules/@xrkseek/server-face/dist/agent-team-roles.js.map +1 -1
  92. package/node_modules/@xrkseek/server-face/dist/context.d.ts +7 -6
  93. package/node_modules/@xrkseek/server-face/dist/context.d.ts.map +1 -1
  94. package/node_modules/@xrkseek/server-face/dist/dispatch.d.ts.map +1 -1
  95. package/node_modules/@xrkseek/server-face/dist/dispatch.js +16 -0
  96. package/node_modules/@xrkseek/server-face/dist/dispatch.js.map +1 -1
  97. package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts.map +1 -1
  98. package/node_modules/@xrkseek/server-face/dist/handlers/session.js +19 -1
  99. package/node_modules/@xrkseek/server-face/dist/handlers/session.js.map +1 -1
  100. package/node_modules/@xrkseek/server-face/dist/handlers/subagent.d.ts.map +1 -1
  101. package/node_modules/@xrkseek/server-face/dist/handlers/subagent.js +4 -17
  102. package/node_modules/@xrkseek/server-face/dist/handlers/subagent.js.map +1 -1
  103. package/node_modules/@xrkseek/server-face/dist/handlers/voice.d.ts +30 -0
  104. package/node_modules/@xrkseek/server-face/dist/handlers/voice.d.ts.map +1 -0
  105. package/node_modules/@xrkseek/server-face/dist/handlers/voice.js +181 -0
  106. package/node_modules/@xrkseek/server-face/dist/handlers/voice.js.map +1 -0
  107. package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts +15 -0
  108. package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts.map +1 -1
  109. package/node_modules/@xrkseek/server-face/dist/model-catalog.js +44 -10
  110. package/node_modules/@xrkseek/server-face/dist/model-catalog.js.map +1 -1
  111. package/node_modules/@xrkseek/server-face/dist/presence-dressing.d.ts +3 -3
  112. package/node_modules/@xrkseek/server-face/dist/presence-dressing.d.ts.map +1 -1
  113. package/node_modules/@xrkseek/server-face/dist/presence-dressing.js +70 -3
  114. package/node_modules/@xrkseek/server-face/dist/presence-dressing.js.map +1 -1
  115. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
  116. package/node_modules/@xrkseek/server-face/dist/runtime.js +36 -8
  117. package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
  118. package/node_modules/@xrkseek/server-face/dist/seat-channel.d.ts +9 -0
  119. package/node_modules/@xrkseek/server-face/dist/seat-channel.d.ts.map +1 -1
  120. package/node_modules/@xrkseek/server-face/dist/seat-channel.js +11 -0
  121. package/node_modules/@xrkseek/server-face/dist/seat-channel.js.map +1 -1
  122. package/node_modules/@xrkseek/server-face/dist/select-session-model.d.ts.map +1 -1
  123. package/node_modules/@xrkseek/server-face/dist/select-session-model.js +68 -1
  124. package/node_modules/@xrkseek/server-face/dist/select-session-model.js.map +1 -1
  125. package/node_modules/@xrkseek/server-face/dist/session-status.d.ts +2 -0
  126. package/node_modules/@xrkseek/server-face/dist/session-status.d.ts.map +1 -1
  127. package/node_modules/@xrkseek/server-face/dist/session-status.js +2 -0
  128. package/node_modules/@xrkseek/server-face/dist/session-status.js.map +1 -1
  129. package/node_modules/@xrkseek/server-face/dist/session-tool-copy.d.ts +4 -0
  130. package/node_modules/@xrkseek/server-face/dist/session-tool-copy.d.ts.map +1 -1
  131. package/node_modules/@xrkseek/server-face/dist/session-tool-copy.js +16 -0
  132. package/node_modules/@xrkseek/server-face/dist/session-tool-copy.js.map +1 -1
  133. package/node_modules/@xrkseek/server-face/dist/session-tools.d.ts.map +1 -1
  134. package/node_modules/@xrkseek/server-face/dist/session-tools.js +2 -0
  135. package/node_modules/@xrkseek/server-face/dist/session-tools.js.map +1 -1
  136. package/node_modules/@xrkseek/server-face/dist/settings-document.d.ts.map +1 -1
  137. package/node_modules/@xrkseek/server-face/dist/settings-document.js +61 -2
  138. package/node_modules/@xrkseek/server-face/dist/settings-document.js.map +1 -1
  139. package/node_modules/@xrkseek/server-face/dist/settings-schemas.d.ts.map +1 -1
  140. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js +36 -14
  141. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
  142. package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts +43 -0
  143. package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
  144. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +293 -24
  145. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
  146. package/node_modules/@xrkseek/server-face/dist/wire/paths.d.ts.map +1 -1
  147. package/node_modules/@xrkseek/server-face/dist/wire/paths.js +6 -0
  148. package/node_modules/@xrkseek/server-face/dist/wire/paths.js.map +1 -1
  149. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.d.ts.map +1 -1
  150. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.js +16 -3
  151. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.js.map +1 -1
  152. package/node_modules/@xrkseek/server-face/package.json +1 -0
  153. package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.d.ts.map +1 -1
  154. package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.js +8 -1
  155. package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.js.map +1 -1
  156. package/node_modules/@xrkseek/server-host/dist/index.d.ts +1 -1
  157. package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
  158. package/node_modules/@xrkseek/server-host/dist/index.js +44 -45
  159. package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
  160. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.d.ts.map +1 -1
  161. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js +2 -0
  162. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js.map +1 -1
  163. package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-tool-pre.d.ts.map +1 -1
  164. package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-tool-pre.js +5 -2
  165. package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-tool-pre.js.map +1 -1
  166. package/node_modules/@xrkseek/server-http/dist/dsh-compat/cordis-credentials-bridge.d.ts +6 -0
  167. package/node_modules/@xrkseek/server-http/dist/dsh-compat/cordis-credentials-bridge.d.ts.map +1 -1
  168. package/node_modules/@xrkseek/server-http/dist/dsh-compat/cordis-credentials-bridge.js +18 -10
  169. package/node_modules/@xrkseek/server-http/dist/dsh-compat/cordis-credentials-bridge.js.map +1 -1
  170. package/node_modules/@xrkseek/server-http/dist/dsh-compat/our-free-model-host.d.ts +39 -0
  171. package/node_modules/@xrkseek/server-http/dist/dsh-compat/our-free-model-host.d.ts.map +1 -1
  172. package/node_modules/@xrkseek/server-http/dist/dsh-compat/our-free-model-host.js +137 -5
  173. package/node_modules/@xrkseek/server-http/dist/dsh-compat/our-free-model-host.js.map +1 -1
  174. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-center.d.ts +1 -1
  175. 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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"}
@@ -41,6 +41,15 @@ export interface WorkspaceCheckpointRecord {
41
41
  readonly label?: string;
42
42
  /** Tracked files captured at this point. */
43
43
  readonly fileCount: number;
44
+ /**
45
+ * Files present in the worktree but **not** in this point, because they
46
+ * exceeded the per-file byte cap (a short sample, not the full list).
47
+ *
48
+ * Present so a restore can be honest: those paths are untouched by
49
+ * `restore`, so their current content will not be rolled back. Absent when
50
+ * nothing was skipped.
51
+ */
52
+ readonly skippedOversized?: readonly string[];
44
53
  }
45
54
  export interface SnapshotInput {
46
55
  readonly sessionId: string;
@@ -61,6 +70,15 @@ export interface RestorePlan {
61
70
  readonly fileCount: number;
62
71
  /** Untracked, non-ignored files present now but absent from the snapshot. */
63
72
  readonly extra: readonly string[];
73
+ /**
74
+ * Files the recorded point never captured, because they exceeded the
75
+ * per-file byte cap (sample, see {@link WorkspaceCheckpointRecord}).
76
+ *
77
+ * `restore` does not touch them, so their current content survives the
78
+ * rollback. Present on the plan so the caller can say that out loud instead
79
+ * of implying a complete restore.
80
+ */
81
+ readonly skippedOversized?: readonly string[];
64
82
  }
65
83
  export interface RestoreResult extends RestorePlan {
66
84
  readonly restored: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,6EAA6E;AAC7E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,4CAA4C;AAC5C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,CACtB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,CAAC,EAAE,gBAAgB,KACpB,OAAO,CAAC,SAAS,CAAC,CAAC;AAExB,6DAA6D;AAC7D,MAAM,WAAW,yBAAyB;IACxC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,oDAAoD;IACpD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,MAAM,4BAA4B,GACpC,cAAc,GACd,iBAAiB,GACjB,WAAW,GACX,aAAa,GACb,iBAAiB,GACjB,gBAAgB,GAChB,oBAAoB,CAAC;AAEzB,yEAAyE;AACzE,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC;gBAEhC,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,MAAM;CAKhE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,6EAA6E;AAC7E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,4CAA4C;AAC5C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,CACtB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,CAAC,EAAE,gBAAgB,KACpB,OAAO,CAAC,SAAS,CAAC,CAAC;AAExB,6DAA6D;AAC7D,MAAM,WAAW,yBAAyB;IACxC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,oDAAoD;IACpD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;;;;;OAOG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,MAAM,4BAA4B,GACpC,cAAc,GACd,iBAAiB,GACjB,WAAW,GACX,aAAa,GACb,iBAAiB,GACjB,gBAAgB,GAChB,oBAAoB,CAAC;AAEzB,yEAAyE;AACzE,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC;gBAEhC,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,MAAM;CAKhE"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkFH,yEAAyE;AACzE,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACxC,IAAI,CAA+B;IAE5C,YAAY,IAAkC,EAAE,OAAe;QAC7D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAoGH,yEAAyE;AACzE,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACxC,IAAI,CAA+B;IAE5C,YAAY,IAAkC,EAAE,OAAe;QAC7D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-prompt.d.ts","sourceRoot":"","sources":["../src/subagent-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,WAAW,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CActE;AAED,wBAAgB,qBAAqB,CACnC,IAAI,GAAE,qBAAmC,GACxC,MAAM,CA2BR;AAED,2EAA2E;AAC3E,eAAO,MAAM,4BAA4B,QAAqC,CAAC"}
1
+ {"version":3,"file":"subagent-prompt.d.ts","sourceRoot":"","sources":["../src/subagent-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,WAAW,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CActE;AAED,wBAAgB,qBAAqB,CACnC,IAAI,GAAE,qBAAmC,GACxC,MAAM,CA6BR;AAED,2EAA2E;AAC3E,eAAO,MAAM,4BAA4B,QAAqC,CAAC"}
@@ -38,6 +38,8 @@ export function subagentRoutingPrompt(mode = "proactive") {
38
38
  " - Need this conversation: `inherit_context: true` (in-process only).",
39
39
  " - Isolated git tree: `worktree: true` (same repo, separate checkout).",
40
40
  " - Child profile: prefer `member_id` from the live `subagent` / `team_list` catalog (turn-start board lists the same roster). `team_save` creates a 干员; `propose_skill` only writes a SKILL.md. Bare `role` is the fallback.",
41
+ "- The child's LLM route defaults to this session's current provider / model / reasoning effort. Pass `provider` / `model` / `reasoning_effort` on `subagent` only when the task needs a different route (bulk work on a cheap model, hard reasoning at `max`).",
42
+ "- A child that ends with `(QUOTA)` did not fail its task — its route ran out. Do not resend there: `set_agent_model` (or `model` / `reasoning_effort` on `followup_task`) moves it onto a route that still works, then follow up. `(RATE_LIMIT)` is temporary — wait and resend on the same route. `list_models` shows routable pairs, efforts and live slot use.",
41
43
  "- After you have handed work to a child: if this turn has nothing else useful to do, end the turn and let the child's result arrive as that steer notice. Keep working in this turn when you still have independent steps. Call `wait_agent` when the next step in this turn needs the child's answer (foreground spawn is usually clearer for that case).",
42
44
  "- Parent↔child and peer follow-ups use `delivery=steer` by default (插队 at the next tool-step boundary). `delivery=queue` waits until the child is idle.",
43
45
  "- Match the live catalog by name and brief when this session has subagent tools. If a member fits, `subagent` with that `member_id` this turn. Do not Skill-load a standing skill that covers the same job. Frugal has no subagent tools — Skill-load here. Tiny asks with no catalog match stay with you. `presence_set` may run in parallel.",
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-prompt.js","sourceRoot":"","sources":["../src/subagent-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA2B;IAC5D,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,OAAO;YACL,4BAA4B;YAC5B,0FAA0F;YAC1F,+FAA+F;YAC/F,0DAA0D;SAC3D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,OAAO;QACL,wBAAwB;QACxB,uIAAuI;QACvI,sFAAsF;KACvF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAA8B,WAAW;IAEzC,OAAO;QACL,YAAY;QACZ,uXAAuX;QACvX,iGAAiG;QACjG,iMAAiM;QACjM,+KAA+K;QAC/K,qNAAqN;QACrN,kJAAkJ;QAClJ,2UAA2U;QAC3U,yBAAyB;QACzB,+SAA+S;QAC/S,4LAA4L;QAC5L,wEAAwE;QACxE,yEAAyE;QACzE,+NAA+N;QAC/N,4VAA4V;QAC5V,yJAAyJ;QACzJ,gVAAgV;QAChV,uJAAuJ;QACvJ,uLAAuL;QACvL,+FAA+F;QAC/F,kSAAkS;QAClS,qNAAqN;QACrN,wOAAwO;QACxO,kBAAkB,CAAC,IAAI,CAAC;KACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,MAAM,4BAA4B,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"subagent-prompt.js","sourceRoot":"","sources":["../src/subagent-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA2B;IAC5D,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,OAAO;YACL,4BAA4B;YAC5B,0FAA0F;YAC1F,+FAA+F;YAC/F,0DAA0D;SAC3D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,OAAO;QACL,wBAAwB;QACxB,uIAAuI;QACvI,sFAAsF;KACvF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAA8B,WAAW;IAEzC,OAAO;QACL,YAAY;QACZ,uXAAuX;QACvX,iGAAiG;QACjG,iMAAiM;QACjM,+KAA+K;QAC/K,qNAAqN;QACrN,kJAAkJ;QAClJ,2UAA2U;QAC3U,yBAAyB;QACzB,+SAA+S;QAC/S,4LAA4L;QAC5L,wEAAwE;QACxE,yEAAyE;QACzE,+NAA+N;QAC/N,gQAAgQ;QAChQ,mWAAmW;QACnW,4VAA4V;QAC5V,yJAAyJ;QACzJ,gVAAgV;QAChV,uJAAuJ;QACvJ,uLAAuL;QACvL,+FAA+F;QAC/F,kSAAkS;QAClS,qNAAqN;QACrN,wOAAwO;QACxO,kBAAkB,CAAC,IAAI,CAAC;KACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,MAAM,4BAA4B,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC"}
@@ -3,12 +3,13 @@
3
3
  Voice Host seam: TTS · dictation (STT) · realtime voice session broker.
4
4
 
5
5
  - **Definition**: `VoiceService` (`synthesize` · `transcribe` · `createLiveSession` · `liveStatus`)
6
- - **Provider**: `createMemoryVoiceProvider` · `createOpenAiVoiceProvider` · `createSenseVoiceLocalProvider` · Host-injected
6
+ - **Provider**: `createMemoryVoiceProvider` · `createOpenAiVoiceProvider` · `createSenseVoiceLocalProvider` · `createSystemVoiceProvider` · Host-injected
7
+ - **Registry**: `createVoiceAccess({ direction, engine, … })` — one row per engine in `engines.ts`; adding a Provider does not touch the Host mount, the Face handler or the cards.
7
8
  - **Consumer**: `createVoiceTools` → `text_to_speech` · `voice_transcribe` · `voice_session`
8
9
 
9
- Mic/speaker and WebRTC stay on the client. Tools stay registered when no Provider is configured; execute fails honestly (`describeVoiceAccess` / `voiceUnavailableMessage` share the same copy with Settings and `xrkh doctor`).
10
+ Mic/speaker and WebRTC stay on the client. Tools are bound by the switch that owns them (`asr.enabled` → transcription + live session, `tts.enabled` → `text_to_speech`); when a switch is on without a usable credential the tool stays bound and execute fails honestly (`describeVoiceAccess` / `voiceUnavailableMessage` share the same copy with Settings and `xrkh doctor`).
10
11
 
11
- Product path: Settings → Plugins → Voice (`mode` off/openai + Credentials key). Env: `XRK_VOICE=memory` | `XRK_VOICE=1` + `OPENAI_API_KEY` / `XRK_VOICE_OPENAI_KEY`. Wake word is not shipped.
12
+ Product path: Settings → Plugins → **ASR** (`engine: local` SenseVoice / `openai`) and **TTS** (`engine: local` OS voices / `openai`), sharing Credentials `XRK_VOICE_OPENAI_KEY`. Env: `XRK_VOICE=memory` | `local` | `system` | `1` + `OPENAI_API_KEY` / `XRK_VOICE_OPENAI_KEY`. Wake word is not shipped.
12
13
 
13
14
  ## Browser mic transport
14
15
 
@@ -13,6 +13,7 @@ import { type VoiceSessionHandle } from "./session.js";
13
13
  import type { BrowserVoiceDeps, VoiceSessionBroker } from "./types.js";
14
14
  export { dictateOnce, pickRecorderMime, startDictation, RECORDER_MIME_CANDIDATES, type DictateOnceOptions, type DictationRecorder, type DictationResult, type StartDictationOptions, } from "./dictation.js";
15
15
  export { encodeBase64, micCapabilities, releaseStream } from "./env.js";
16
+ export { dictationAvailable, encodeWav, MAX_RECORDING_MS, startVoiceCapture, toBase64, toPcm16, type CapturedClip, type VoiceCapture, } from "./wav-capture.js";
16
17
  export { startVoiceSession, type StartVoiceSessionOptions, type VoiceSessionHandle, } from "./session.js";
17
18
  export type { BrowserVoiceDeps, GetUserMedia, MicConstraints, VoiceAudioTrack, VoiceBlob, VoiceMediaRecorder, VoiceMediaRecorderCtor, VoiceMediaStream, VoicePeerConnection, VoicePeerConnectionCtor, VoiceRecorderEvent, VoiceSessionBroker, VoiceSessionBrokerRequest, VoiceSessionBrokerResult, VoiceSessionDescription, } from "./types.js";
18
19
  export interface BrowserVoiceCapabilities {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC3B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEvE,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,qBAAqB,GAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,GACxB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,SAAS,EACT,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,YAAY,IAAI,wBAAwB,CAAC;IACzC,wEAAwE;IACxE,OAAO,CACL,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,eAAe,GAAG;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,yEAAyE;IACzE,aAAa,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3E,4DAA4D;IAC5D,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC/D;AAED,wBAAgB,2BAA2B,CACzC,IAAI,GAAE,gBAAqB,GAC1B,qBAAqB,CA0BvB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC3B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEvE,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,qBAAqB,GAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,GACxB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,SAAS,EACT,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,YAAY,IAAI,wBAAwB,CAAC;IACzC,wEAAwE;IACxE,OAAO,CACL,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,eAAe,GAAG;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,yEAAyE;IACzE,aAAa,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3E,4DAA4D;IAC5D,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC/D;AAED,wBAAgB,2BAA2B,CACzC,IAAI,GAAE,gBAAqB,GAC1B,qBAAqB,CA0BvB"}
@@ -13,6 +13,7 @@ import { micCapabilities } from "./env.js";
13
13
  import { startVoiceSession, } from "./session.js";
14
14
  export { dictateOnce, pickRecorderMime, startDictation, RECORDER_MIME_CANDIDATES, } from "./dictation.js";
15
15
  export { encodeBase64, micCapabilities, releaseStream } from "./env.js";
16
+ export { dictationAvailable, encodeWav, MAX_RECORDING_MS, startVoiceCapture, toBase64, toPcm16, } from "./wav-capture.js";
16
17
  export { startVoiceSession, } from "./session.js";
17
18
  export function createBrowserVoiceTransport(deps = {}) {
18
19
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EACL,WAAW,EACX,cAAc,GAKf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EACL,iBAAiB,GAGlB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GAKzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EACL,iBAAiB,GAGlB,MAAM,cAAc,CAAC;AAuDtB,MAAM,UAAU,2BAA2B,CACzC,OAAyB,EAAE;IAE3B,OAAO;QACL,IAAI;QACJ,YAAY,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;QACzC,OAAO,EAAE,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE;YACxB,MAAM,IAAI,GAAuB;gBAC/B,IAAI;gBACJ,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzE,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;oBACnC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;oBACtC,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;oBACrC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE;oBAC1C,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;YACF,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,aAAa,EAAE,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC;QACrE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;YACnB,MAAM,KAAK,GAA6B;gBACtC,GAAG,OAAO;gBACV,IAAI;aACL,CAAC;YACF,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EACL,WAAW,EACX,cAAc,GAKf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EACL,iBAAiB,GAGlB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GAKzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,OAAO,GAGR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,GAGlB,MAAM,cAAc,CAAC;AAuDtB,MAAM,UAAU,2BAA2B,CACzC,OAAyB,EAAE;IAE3B,OAAO;QACL,IAAI;QACJ,YAAY,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;QACzC,OAAO,EAAE,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE;YACxB,MAAM,IAAI,GAAuB;gBAC/B,IAAI;gBACJ,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzE,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;oBACnC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;oBACtC,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;oBACrC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE;oBAC1C,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;YACF,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,aAAa,EAAE,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC;QACrE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;YACnB,MAAM,KAAK,GAA6B;gBACtC,GAAG,OAAO;gBACV,IAAI;aACL,CAAC;YACF,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * WAV dictation capture — record in the browser, hand the Host one clip.
3
+ *
4
+ * Both Host STT deliveries we target — an OpenAI-compatible
5
+ * `/audio/transcriptions` and a local sherpa SenseVoice build — take 16 kHz
6
+ * mono PCM WAV, so the clip is decoded and resampled here instead of shipping
7
+ * whatever container the recorder happened to produce: one capture format,
8
+ * two backends, no ffmpeg on either side. (DSH's composer does the same; see
9
+ * `.tmp/dsh-asr-tts-audit.md`.)
10
+ *
11
+ * Capture is a plain `MediaRecorder`: no worklet to load, it works on every
12
+ * browser the composer already supports, and {@link MAX_RECORDING_MS} bounds a
13
+ * stuck press so a forgotten stop cannot grow into an unbounded upload.
14
+ *
15
+ * `packages/exec/voice` compiles WITHOUT `lib.dom` on purpose (its Node entry
16
+ * must never reach for a browser global), so the handful of members this
17
+ * module touches are declared locally in {@link WavDom}. The encoding half —
18
+ * {@link toPcm16} / {@link encodeWav} / {@link toBase64} — is pure and takes
19
+ * no DOM at all.
20
+ */
21
+ /** Bounded take; the recorder stops itself and transcribes what it has. */
22
+ export declare const MAX_RECORDING_MS = 120000;
23
+ /** One finished dictation take. */
24
+ export interface CapturedClip {
25
+ /** Base64 PCM WAV, no `data:` prefix. */
26
+ readonly audio: string;
27
+ readonly mimeType: "audio/wav";
28
+ readonly filename: string;
29
+ /** Wall-clock length of the decoded take (diagnostics / empty checks). */
30
+ readonly durationMs: number;
31
+ }
32
+ /** A live take: exactly one of {@link stop} / {@link cancel} settles it. */
33
+ export interface VoiceCapture {
34
+ /** Stop the recorder, release the microphone, and resolve the encoded clip. */
35
+ stop(): Promise<CapturedClip>;
36
+ /** Stop and discard without decoding (Escape / unmount). */
37
+ cancel(): void;
38
+ }
39
+ /** One `audioinput` entry from `enumerateDevices`. */
40
+ interface InputDevice {
41
+ readonly kind: string;
42
+ readonly deviceId: string;
43
+ readonly label: string;
44
+ }
45
+ /**
46
+ * Whether this browser should show a dictation seat at all.
47
+ *
48
+ * Two independent reasons to stay quiet, both decided at render time:
49
+ *
50
+ * - **No capture API**. `navigator.mediaDevices.getUserMedia` exists only in a
51
+ * secure context, so a phone reaching the Host over plain `http://<lan-ip>`
52
+ * would render a button whose every press fails. Deciding this at render
53
+ * time is why the seat never appears on that device.
54
+ * - **Touch-only device**. Phones and tablets are where the transcript cost is
55
+ * highest and where this path has not been exercised; the seat stays off
56
+ * there until that case is designed for, rather than shipped half-tested.
57
+ *
58
+ * Deliberately not memoised: `matchMedia` is a synchronous property read, and
59
+ * a module-level cache would leak one test's environment into the next.
60
+ */
61
+ export declare function dictationAvailable(): boolean;
62
+ /**
63
+ * Pick a concrete physical input, falling back to the system default.
64
+ *
65
+ * `enumerateDevices` only exposes labels after the page holds a capture
66
+ * permission, so the caller must have opened (and closed) one stream first.
67
+ * The `default` / `communications` aliases are skipped because they resolve
68
+ * back to whatever the OS — not this picker — considers default.
69
+ * @param devices - Every media device the page can see.
70
+ * @returns Device id to pin, or undefined to keep the OS default.
71
+ */
72
+ export declare function pickPhysicalInput(devices: readonly InputDevice[]): string | undefined;
73
+ /** Begin a take; resolves once the microphone is actually open. */
74
+ export declare function startVoiceCapture(): Promise<VoiceCapture>;
75
+ /** Float samples → signed 16-bit PCM (clamped, never wrapping). */
76
+ export declare function toPcm16(samples: Float32Array): Int16Array;
77
+ /**
78
+ * Whether every sample is zero.
79
+ *
80
+ * A take can be seconds long and still carry nothing: the recorder opened, the
81
+ * driver answered, and the processing chain emitted zeros. @see startVoiceCapture.
82
+ * @param pcm - Decoded clip.
83
+ * @returns True when no sample carries any amplitude.
84
+ */
85
+ export declare function isSilent(pcm: Int16Array): boolean;
86
+ /** Canonical 44-byte RIFF header + PCM body at {@link TARGET_SAMPLE_RATE}. */
87
+ export declare function encodeWav(pcm: Int16Array): Uint8Array;
88
+ /** `btoa` over a typed array in chunks (spreading 100k+ args overflows). */
89
+ export declare function toBase64(bytes: Uint8Array): string;
90
+ export {};
91
+ //# sourceMappingURL=wav-capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wav-capture.d.ts","sourceRoot":"","sources":["../../src/browser/wav-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,2EAA2E;AAC3E,eAAO,MAAM,gBAAgB,SAAU,CAAA;AAKvC,mCAAmC;AACnC,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAED,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC,CAAA;IAC7B,4DAA4D;IAC5D,MAAM,IAAI,IAAI,CAAA;CACf;AA4DD,sDAAsD;AACtD,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAU5C;AAaD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,SAAS,WAAW,EAAE,GAC9B,MAAM,GAAG,SAAS,CAUpB;AAED,mEAAmE;AACnE,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,YAAY,CAAC,CA8E/D;AA2CD,mEAAmE;AACnE,wBAAgB,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CAQzD;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAKjD;AAED,8EAA8E;AAC9E,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAqBrD;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAOlD"}
@@ -0,0 +1,269 @@
1
+ /**
2
+ * WAV dictation capture — record in the browser, hand the Host one clip.
3
+ *
4
+ * Both Host STT deliveries we target — an OpenAI-compatible
5
+ * `/audio/transcriptions` and a local sherpa SenseVoice build — take 16 kHz
6
+ * mono PCM WAV, so the clip is decoded and resampled here instead of shipping
7
+ * whatever container the recorder happened to produce: one capture format,
8
+ * two backends, no ffmpeg on either side. (DSH's composer does the same; see
9
+ * `.tmp/dsh-asr-tts-audit.md`.)
10
+ *
11
+ * Capture is a plain `MediaRecorder`: no worklet to load, it works on every
12
+ * browser the composer already supports, and {@link MAX_RECORDING_MS} bounds a
13
+ * stuck press so a forgotten stop cannot grow into an unbounded upload.
14
+ *
15
+ * `packages/exec/voice` compiles WITHOUT `lib.dom` on purpose (its Node entry
16
+ * must never reach for a browser global), so the handful of members this
17
+ * module touches are declared locally in {@link WavDom}. The encoding half —
18
+ * {@link toPcm16} / {@link encodeWav} / {@link toBase64} — is pure and takes
19
+ * no DOM at all.
20
+ */
21
+ /** Bounded take; the recorder stops itself and transcribes what it has. */
22
+ export const MAX_RECORDING_MS = 120_000;
23
+ /** Rate every target backend accepts. */
24
+ const TARGET_SAMPLE_RATE = 16_000;
25
+ function dom() {
26
+ return globalThis;
27
+ }
28
+ /**
29
+ * Whether this browser should show a dictation seat at all.
30
+ *
31
+ * Two independent reasons to stay quiet, both decided at render time:
32
+ *
33
+ * - **No capture API**. `navigator.mediaDevices.getUserMedia` exists only in a
34
+ * secure context, so a phone reaching the Host over plain `http://<lan-ip>`
35
+ * would render a button whose every press fails. Deciding this at render
36
+ * time is why the seat never appears on that device.
37
+ * - **Touch-only device**. Phones and tablets are where the transcript cost is
38
+ * highest and where this path has not been exercised; the seat stays off
39
+ * there until that case is designed for, rather than shipped half-tested.
40
+ *
41
+ * Deliberately not memoised: `matchMedia` is a synchronous property read, and
42
+ * a module-level cache would leak one test's environment into the next.
43
+ */
44
+ export function dictationAvailable() {
45
+ const env = dom();
46
+ if (typeof env.navigator?.mediaDevices?.getUserMedia !== "function")
47
+ return false;
48
+ if (typeof env.matchMedia === "function") {
49
+ const coarse = env.matchMedia("(pointer: coarse)").matches;
50
+ const fine = env.matchMedia("(pointer: fine)").matches;
51
+ // A touchscreen laptop reports both; only a touch-*only* device is blocked.
52
+ if (coarse && !fine)
53
+ return false;
54
+ }
55
+ return true;
56
+ }
57
+ /**
58
+ * Labels of inputs that are virtual or aggregate and therefore carry silence.
59
+ *
60
+ * A machine with the Steam client, an NVIDIA HDMI path, or a VB-Audio cable
61
+ * exposes several `audioinput` entries that open successfully and record zeros
62
+ * — indistinguishable from a broken recogniser once the clip reaches the Host.
63
+ * Measured here: the browser picked such an input while the OS default (a real
64
+ * USB microphone) was fine, so every take arrived silent.
65
+ */
66
+ const VIRTUAL_INPUT = /steam|virtual|vb-audio|voicemeeter|obs|sound ?mapper|stereo ?mix|立体声混音|回放|wave out/i;
67
+ /**
68
+ * Pick a concrete physical input, falling back to the system default.
69
+ *
70
+ * `enumerateDevices` only exposes labels after the page holds a capture
71
+ * permission, so the caller must have opened (and closed) one stream first.
72
+ * The `default` / `communications` aliases are skipped because they resolve
73
+ * back to whatever the OS — not this picker — considers default.
74
+ * @param devices - Every media device the page can see.
75
+ * @returns Device id to pin, or undefined to keep the OS default.
76
+ */
77
+ export function pickPhysicalInput(devices) {
78
+ const inputs = devices.filter((device) => device.kind === "audioinput");
79
+ const physical = inputs.filter((device) => device.deviceId !== "default" &&
80
+ device.deviceId !== "communications" &&
81
+ device.label !== "" &&
82
+ !VIRTUAL_INPUT.test(device.label));
83
+ return physical[0]?.deviceId;
84
+ }
85
+ /** Begin a take; resolves once the microphone is actually open. */
86
+ export async function startVoiceCapture() {
87
+ const env = dom();
88
+ const media = env.navigator?.mediaDevices;
89
+ if (media === undefined || typeof media.getUserMedia !== "function") {
90
+ throw new Error("this browser cannot record audio (no navigator.mediaDevices)");
91
+ }
92
+ if (typeof env.MediaRecorder !== "function") {
93
+ throw new Error("this browser cannot record audio (no MediaRecorder)");
94
+ }
95
+ // Open the OS default first.
96
+ //
97
+ // Two separate reasons the default must not be trusted blindly:
98
+ // - labels only appear once the page holds a capture permission, so the
99
+ // picker below needs a live stream to look at;
100
+ // - a machine running Steam / NVIDIA / VB-Audio exposes virtual inputs
101
+ // that open successfully and record pure zeros. Measured here: the
102
+ // browser picked such an input while the OS default (a real USB mic)
103
+ // worked, and all seven takes arrived silent.
104
+ // Forcing `echoCancellation` / `noiseSuppression` / `autoGainControl` is a
105
+ // third way to be handed silence by a driver, so none of them is requested.
106
+ const probe = await media.getUserMedia({ audio: true });
107
+ const currentLabel = probe.getAudioTracks?.()[0]?.label ?? "";
108
+ let pin;
109
+ if (currentLabel === "" || VIRTUAL_INPUT.test(currentLabel)) {
110
+ try {
111
+ pin = pickPhysicalInput((await media.enumerateDevices?.()) ?? []);
112
+ }
113
+ catch {
114
+ pin = undefined;
115
+ }
116
+ }
117
+ let stream = probe;
118
+ if (pin !== undefined) {
119
+ for (const track of probe.getTracks())
120
+ track.stop();
121
+ stream = await media.getUserMedia({ audio: { deviceId: { exact: pin } } });
122
+ }
123
+ const recorder = new env.MediaRecorder(stream);
124
+ const chunks = [];
125
+ let settled = false;
126
+ recorder.addEventListener("dataavailable", (event) => {
127
+ if (event.data.size > 0)
128
+ chunks.push(event.data);
129
+ });
130
+ const stopped = new Promise((resolve) => {
131
+ recorder.addEventListener("stop", () => {
132
+ resolve();
133
+ });
134
+ });
135
+ const release = () => {
136
+ for (const track of stream.getTracks())
137
+ track.stop();
138
+ };
139
+ recorder.start();
140
+ const timer = env.setTimeout(() => {
141
+ if (recorder.state === "recording")
142
+ recorder.stop();
143
+ }, MAX_RECORDING_MS);
144
+ const halt = () => {
145
+ env.clearTimeout(timer);
146
+ if (recorder.state !== "inactive")
147
+ recorder.stop();
148
+ };
149
+ return {
150
+ async stop() {
151
+ if (settled)
152
+ throw new Error("voice capture already settled");
153
+ settled = true;
154
+ halt();
155
+ await stopped;
156
+ release();
157
+ const blob = new Blob(chunks, {
158
+ type: recorder.mimeType === "" ? "audio/webm" : recorder.mimeType,
159
+ });
160
+ return await encodeClip(blob);
161
+ },
162
+ cancel() {
163
+ if (settled)
164
+ return;
165
+ settled = true;
166
+ halt();
167
+ release();
168
+ },
169
+ };
170
+ }
171
+ /** Decode the recorded container and re-encode it as one 16 kHz mono WAV. */
172
+ async function encodeClip(blob) {
173
+ const env = dom();
174
+ const raw = new Uint8Array(await blob.arrayBuffer());
175
+ const Ctor = env.AudioContext ?? env.webkitAudioContext;
176
+ if (Ctor === undefined) {
177
+ throw new Error("this browser cannot decode recorded audio (no AudioContext)");
178
+ }
179
+ const decoder = new Ctor();
180
+ let decoded;
181
+ try {
182
+ // decodeAudioData detaches the buffer it is handed, so pass a copy.
183
+ decoded = await decoder.decodeAudioData(raw.slice().buffer);
184
+ }
185
+ finally {
186
+ void decoder.close().catch(() => undefined);
187
+ }
188
+ const frames = Math.max(1, Math.ceil(decoded.duration * TARGET_SAMPLE_RATE));
189
+ const resampler = new env.OfflineAudioContext(1, frames, TARGET_SAMPLE_RATE);
190
+ const source = resampler.createBufferSource();
191
+ source.buffer = decoded;
192
+ source.connect(resampler.destination);
193
+ source.start();
194
+ // A mono destination downmixes a stereo take; the rate change is the point.
195
+ const rendered = await resampler.startRendering();
196
+ const pcm = toPcm16(rendered.getChannelData(0));
197
+ // A silent take must not travel: the model would answer with a stray
198
+ // character, which reads as broken recognition rather than a dead capture.
199
+ if (isSilent(pcm)) {
200
+ throw new Error("no sound was captured — check the system microphone (muted, wrong input device, or held by another app)");
201
+ }
202
+ const wav = encodeWav(pcm);
203
+ return {
204
+ audio: toBase64(wav),
205
+ mimeType: "audio/wav",
206
+ filename: "dictation.wav",
207
+ durationMs: Math.round(decoded.duration * 1000),
208
+ };
209
+ }
210
+ /** Float samples → signed 16-bit PCM (clamped, never wrapping). */
211
+ export function toPcm16(samples) {
212
+ const pcm = new Int16Array(samples.length);
213
+ for (let i = 0; i < samples.length; i += 1) {
214
+ const sample = samples[i] ?? 0;
215
+ const clamped = Math.max(-1, Math.min(1, sample));
216
+ pcm[i] = clamped < 0 ? clamped * 0x8000 : clamped * 0x7fff;
217
+ }
218
+ return pcm;
219
+ }
220
+ /**
221
+ * Whether every sample is zero.
222
+ *
223
+ * A take can be seconds long and still carry nothing: the recorder opened, the
224
+ * driver answered, and the processing chain emitted zeros. @see startVoiceCapture.
225
+ * @param pcm - Decoded clip.
226
+ * @returns True when no sample carries any amplitude.
227
+ */
228
+ export function isSilent(pcm) {
229
+ for (let i = 0; i < pcm.length; i += 1) {
230
+ if (pcm[i] !== 0)
231
+ return false;
232
+ }
233
+ return true;
234
+ }
235
+ /** Canonical 44-byte RIFF header + PCM body at {@link TARGET_SAMPLE_RATE}. */
236
+ export function encodeWav(pcm) {
237
+ const bytes = new Uint8Array(44 + pcm.length * 2);
238
+ const view = new DataView(bytes.buffer);
239
+ const ascii = (offset, text) => {
240
+ for (let i = 0; i < text.length; i += 1)
241
+ view.setUint8(offset + i, text.charCodeAt(i));
242
+ };
243
+ ascii(0, "RIFF");
244
+ view.setUint32(4, 36 + pcm.length * 2, true);
245
+ ascii(8, "WAVE");
246
+ ascii(12, "fmt ");
247
+ view.setUint32(16, 16, true); // fmt chunk size
248
+ view.setUint16(20, 1, true); // PCM
249
+ view.setUint16(22, 1, true); // mono
250
+ view.setUint32(24, TARGET_SAMPLE_RATE, true);
251
+ view.setUint32(28, TARGET_SAMPLE_RATE * 2, true); // byte rate
252
+ view.setUint16(32, 2, true); // block align
253
+ view.setUint16(34, 16, true); // bits per sample
254
+ ascii(36, "data");
255
+ view.setUint32(40, pcm.length * 2, true);
256
+ for (let i = 0; i < pcm.length; i += 1)
257
+ view.setInt16(44 + i * 2, pcm[i] ?? 0, true);
258
+ return bytes;
259
+ }
260
+ /** `btoa` over a typed array in chunks (spreading 100k+ args overflows). */
261
+ export function toBase64(bytes) {
262
+ const chunk = 0x8000;
263
+ let binary = "";
264
+ for (let offset = 0; offset < bytes.length; offset += chunk) {
265
+ binary += String.fromCharCode(...bytes.subarray(offset, offset + chunk));
266
+ }
267
+ return btoa(binary);
268
+ }
269
+ //# sourceMappingURL=wav-capture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wav-capture.js","sourceRoot":"","sources":["../../src/browser/wav-capture.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /** One opened asset: status plus the body, which is null for a non-2xx. */
2
+ export interface DownloadStream {
3
+ readonly status: number;
4
+ readonly body: AsyncIterable<Uint8Array> | null;
5
+ }
6
+ interface ProxyTarget {
7
+ readonly host: string;
8
+ readonly port: number;
9
+ }
10
+ /**
11
+ * Parse an operator-supplied proxy URL (`http://127.0.0.1:7897`, or the bare
12
+ * `127.0.0.1:7897` form people paste from a Clash panel).
13
+ * @param value - Setting text; empty means 「no proxy」.
14
+ * @returns The loopback-or-remote CONNECT endpoint, or undefined when unset.
15
+ */
16
+ export declare function parseProxy(value: string | undefined): ProxyTarget | undefined;
17
+ /**
18
+ * Open one asset URL, preferring a local proxy and falling back to a direct
19
+ * request when the proxy cannot carry the hop.
20
+ * @param rawUrl - Absolute asset URL.
21
+ * @param signal - Caller cancellation (no header deadline of its own).
22
+ * @param proxyUrl - Operator-configured proxy, if any.
23
+ * @returns Status plus a byte stream.
24
+ */
25
+ export declare function openAssetStream(rawUrl: string, signal: AbortSignal, proxyUrl?: string): Promise<DownloadStream>;
26
+ export {};
27
+ //# sourceMappingURL=download-http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download-http.d.ts","sourceRoot":"","sources":["../src/download-http.ts"],"names":[],"mappings":"AA6BA,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;CACjD;AAED,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAKD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAW7E;AA+HD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,CAczB"}