@happyvertical/smrt-svelte 0.30.0

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 (357) hide show
  1. package/AGENTS.md +317 -0
  2. package/CLAUDE.md +1 -0
  3. package/LICENSE +7 -0
  4. package/README.md +185 -0
  5. package/dist/Provider.svelte +204 -0
  6. package/dist/Provider.svelte.d.ts +73 -0
  7. package/dist/Provider.svelte.d.ts.map +1 -0
  8. package/dist/__tests__/app-state.test.js +156 -0
  9. package/dist/__tests__/warm-clients.test.js +186 -0
  10. package/dist/browser-ai/adapters/llm/factory.d.ts +38 -0
  11. package/dist/browser-ai/adapters/llm/factory.d.ts.map +1 -0
  12. package/dist/browser-ai/adapters/llm/factory.js +91 -0
  13. package/dist/browser-ai/adapters/llm/index.d.ts +7 -0
  14. package/dist/browser-ai/adapters/llm/index.d.ts.map +1 -0
  15. package/dist/browser-ai/adapters/llm/index.js +6 -0
  16. package/dist/browser-ai/adapters/llm/types.d.ts +182 -0
  17. package/dist/browser-ai/adapters/llm/types.d.ts.map +1 -0
  18. package/dist/browser-ai/adapters/llm/types.js +43 -0
  19. package/dist/browser-ai/adapters/llm/webllm.d.ts +33 -0
  20. package/dist/browser-ai/adapters/llm/webllm.d.ts.map +1 -0
  21. package/dist/browser-ai/adapters/llm/webllm.js +225 -0
  22. package/dist/browser-ai/adapters/stt/browser-speech.d.ts +31 -0
  23. package/dist/browser-ai/adapters/stt/browser-speech.d.ts.map +1 -0
  24. package/dist/browser-ai/adapters/stt/browser-speech.js +217 -0
  25. package/dist/browser-ai/adapters/stt/factory.d.ts +49 -0
  26. package/dist/browser-ai/adapters/stt/factory.d.ts.map +1 -0
  27. package/dist/browser-ai/adapters/stt/factory.js +110 -0
  28. package/dist/browser-ai/adapters/stt/index.d.ts +9 -0
  29. package/dist/browser-ai/adapters/stt/index.d.ts.map +1 -0
  30. package/dist/browser-ai/adapters/stt/index.js +8 -0
  31. package/dist/browser-ai/adapters/stt/types.d.ts +154 -0
  32. package/dist/browser-ai/adapters/stt/types.d.ts.map +1 -0
  33. package/dist/browser-ai/adapters/stt/types.js +4 -0
  34. package/dist/browser-ai/adapters/stt/whisper-cpp.d.ts +46 -0
  35. package/dist/browser-ai/adapters/stt/whisper-cpp.d.ts.map +1 -0
  36. package/dist/browser-ai/adapters/stt/whisper-cpp.js +348 -0
  37. package/dist/browser-ai/adapters/stt/whisper-wasm.d.ts +51 -0
  38. package/dist/browser-ai/adapters/stt/whisper-wasm.d.ts.map +1 -0
  39. package/dist/browser-ai/adapters/stt/whisper-wasm.js +380 -0
  40. package/dist/browser-ai/adapters/tts/browser-synthesis.d.ts +42 -0
  41. package/dist/browser-ai/adapters/tts/browser-synthesis.d.ts.map +1 -0
  42. package/dist/browser-ai/adapters/tts/browser-synthesis.js +235 -0
  43. package/dist/browser-ai/adapters/tts/factory.d.ts +53 -0
  44. package/dist/browser-ai/adapters/tts/factory.d.ts.map +1 -0
  45. package/dist/browser-ai/adapters/tts/factory.js +92 -0
  46. package/dist/browser-ai/adapters/tts/index.d.ts +7 -0
  47. package/dist/browser-ai/adapters/tts/index.d.ts.map +1 -0
  48. package/dist/browser-ai/adapters/tts/index.js +6 -0
  49. package/dist/browser-ai/adapters/tts/types.d.ts +140 -0
  50. package/dist/browser-ai/adapters/tts/types.d.ts.map +1 -0
  51. package/dist/browser-ai/adapters/tts/types.js +4 -0
  52. package/dist/browser-ai/capabilities/detector.d.ts +38 -0
  53. package/dist/browser-ai/capabilities/detector.d.ts.map +1 -0
  54. package/dist/browser-ai/capabilities/detector.js +211 -0
  55. package/dist/browser-ai/core/errors.d.ts +62 -0
  56. package/dist/browser-ai/core/errors.d.ts.map +1 -0
  57. package/dist/browser-ai/core/errors.js +92 -0
  58. package/dist/browser-ai/core/index.d.ts +6 -0
  59. package/dist/browser-ai/core/index.d.ts.map +1 -0
  60. package/dist/browser-ai/core/index.js +5 -0
  61. package/dist/browser-ai/core/types.d.ts +115 -0
  62. package/dist/browser-ai/core/types.d.ts.map +1 -0
  63. package/dist/browser-ai/core/types.js +34 -0
  64. package/dist/browser-ai/index.d.ts +12 -0
  65. package/dist/browser-ai/index.d.ts.map +1 -0
  66. package/dist/browser-ai/index.js +16 -0
  67. package/dist/browser-ai/svelte/components/AILoadingOverlay.svelte +77 -0
  68. package/dist/browser-ai/svelte/components/AILoadingOverlay.svelte.d.ts +16 -0
  69. package/dist/browser-ai/svelte/components/AILoadingOverlay.svelte.d.ts.map +1 -0
  70. package/dist/browser-ai/svelte/components/CapabilityGate.svelte +57 -0
  71. package/dist/browser-ai/svelte/components/CapabilityGate.svelte.d.ts +15 -0
  72. package/dist/browser-ai/svelte/components/CapabilityGate.svelte.d.ts.map +1 -0
  73. package/dist/browser-ai/svelte/components/DownloadProgress.svelte +141 -0
  74. package/dist/browser-ai/svelte/components/DownloadProgress.svelte.d.ts +15 -0
  75. package/dist/browser-ai/svelte/components/DownloadProgress.svelte.d.ts.map +1 -0
  76. package/dist/browser-ai/svelte/components/STTTest.svelte +379 -0
  77. package/dist/browser-ai/svelte/components/STTTest.svelte.d.ts +9 -0
  78. package/dist/browser-ai/svelte/components/STTTest.svelte.d.ts.map +1 -0
  79. package/dist/browser-ai/svelte/components/VoiceInput.svelte +200 -0
  80. package/dist/browser-ai/svelte/components/VoiceInput.svelte.d.ts +16 -0
  81. package/dist/browser-ai/svelte/components/VoiceInput.svelte.d.ts.map +1 -0
  82. package/dist/browser-ai/svelte/index.d.ts +15 -0
  83. package/dist/browser-ai/svelte/index.d.ts.map +1 -0
  84. package/dist/browser-ai/svelte/index.js +28 -0
  85. package/dist/browser-ai/ui.d.ts +16 -0
  86. package/dist/browser-ai/ui.d.ts.map +1 -0
  87. package/dist/browser-ai/ui.js +67 -0
  88. package/dist/components/admin/AgentAdminPanel.svelte +111 -0
  89. package/dist/components/admin/AgentAdminPanel.svelte.d.ts +25 -0
  90. package/dist/components/admin/AgentAdminPanel.svelte.d.ts.map +1 -0
  91. package/dist/components/admin/AgentAdminTabs.svelte +280 -0
  92. package/dist/components/admin/AgentAdminTabs.svelte.d.ts +23 -0
  93. package/dist/components/admin/AgentAdminTabs.svelte.d.ts.map +1 -0
  94. package/dist/components/admin/AgentSettingsShell.svelte +257 -0
  95. package/dist/components/admin/AgentSettingsShell.svelte.d.ts +33 -0
  96. package/dist/components/admin/AgentSettingsShell.svelte.d.ts.map +1 -0
  97. package/dist/components/admin/index.d.ts +5 -0
  98. package/dist/components/admin/index.d.ts.map +1 -0
  99. package/dist/components/admin/index.js +6 -0
  100. package/dist/components/forms/AddressInput.svelte +500 -0
  101. package/dist/components/forms/AddressInput.svelte.d.ts +36 -0
  102. package/dist/components/forms/AddressInput.svelte.d.ts.map +1 -0
  103. package/dist/components/forms/CheckboxInput.svelte +208 -0
  104. package/dist/components/forms/CheckboxInput.svelte.d.ts +20 -0
  105. package/dist/components/forms/CheckboxInput.svelte.d.ts.map +1 -0
  106. package/dist/components/forms/DateRangeInput.svelte +628 -0
  107. package/dist/components/forms/DateRangeInput.svelte.d.ts +33 -0
  108. package/dist/components/forms/DateRangeInput.svelte.d.ts.map +1 -0
  109. package/dist/components/forms/DateTimeInput.svelte +521 -0
  110. package/dist/components/forms/DateTimeInput.svelte.d.ts +24 -0
  111. package/dist/components/forms/DateTimeInput.svelte.d.ts.map +1 -0
  112. package/dist/components/forms/FileUpload.svelte +358 -0
  113. package/dist/components/forms/FileUpload.svelte.d.ts +22 -0
  114. package/dist/components/forms/FileUpload.svelte.d.ts.map +1 -0
  115. package/dist/components/forms/Form.svelte +771 -0
  116. package/dist/components/forms/Form.svelte.d.ts +26 -0
  117. package/dist/components/forms/Form.svelte.d.ts.map +1 -0
  118. package/dist/components/forms/FormGroup.svelte +86 -0
  119. package/dist/components/forms/FormGroup.svelte.d.ts +13 -0
  120. package/dist/components/forms/FormGroup.svelte.d.ts.map +1 -0
  121. package/dist/components/forms/FormMicButton.svelte +179 -0
  122. package/dist/components/forms/FormMicButton.svelte.d.ts +10 -0
  123. package/dist/components/forms/FormMicButton.svelte.d.ts.map +1 -0
  124. package/dist/components/forms/Input.svelte +83 -0
  125. package/dist/components/forms/Input.svelte.d.ts +9 -0
  126. package/dist/components/forms/Input.svelte.d.ts.map +1 -0
  127. package/dist/components/forms/MeasurementInput.svelte +505 -0
  128. package/dist/components/forms/MeasurementInput.svelte.d.ts +35 -0
  129. package/dist/components/forms/MeasurementInput.svelte.d.ts.map +1 -0
  130. package/dist/components/forms/MoneyInput.svelte +412 -0
  131. package/dist/components/forms/MoneyInput.svelte.d.ts +30 -0
  132. package/dist/components/forms/MoneyInput.svelte.d.ts.map +1 -0
  133. package/dist/components/forms/NumberInput.svelte +310 -0
  134. package/dist/components/forms/NumberInput.svelte.d.ts +28 -0
  135. package/dist/components/forms/NumberInput.svelte.d.ts.map +1 -0
  136. package/dist/components/forms/PhoneInput.svelte +530 -0
  137. package/dist/components/forms/PhoneInput.svelte.d.ts +22 -0
  138. package/dist/components/forms/PhoneInput.svelte.d.ts.map +1 -0
  139. package/dist/components/forms/SearchInput.svelte +358 -0
  140. package/dist/components/forms/SearchInput.svelte.d.ts +33 -0
  141. package/dist/components/forms/SearchInput.svelte.d.ts.map +1 -0
  142. package/dist/components/forms/Select.svelte +83 -0
  143. package/dist/components/forms/Select.svelte.d.ts +11 -0
  144. package/dist/components/forms/Select.svelte.d.ts.map +1 -0
  145. package/dist/components/forms/SelectInput.svelte +254 -0
  146. package/dist/components/forms/SelectInput.svelte.d.ts +25 -0
  147. package/dist/components/forms/SelectInput.svelte.d.ts.map +1 -0
  148. package/dist/components/forms/TextInput.svelte +415 -0
  149. package/dist/components/forms/TextInput.svelte.d.ts +26 -0
  150. package/dist/components/forms/TextInput.svelte.d.ts.map +1 -0
  151. package/dist/components/forms/Textarea.svelte +85 -0
  152. package/dist/components/forms/Textarea.svelte.d.ts +10 -0
  153. package/dist/components/forms/Textarea.svelte.d.ts.map +1 -0
  154. package/dist/components/forms/TextareaInput.svelte +386 -0
  155. package/dist/components/forms/TextareaInput.svelte.d.ts +26 -0
  156. package/dist/components/forms/TextareaInput.svelte.d.ts.map +1 -0
  157. package/dist/components/forms/Toggle.svelte +217 -0
  158. package/dist/components/forms/Toggle.svelte.d.ts +37 -0
  159. package/dist/components/forms/Toggle.svelte.d.ts.map +1 -0
  160. package/dist/components/forms/__tests__/AddressInput.behavior.test.js +122 -0
  161. package/dist/components/forms/__tests__/CheckboxInput.test.js +92 -0
  162. package/dist/components/forms/__tests__/DateRangeInput.behavior.test.js +135 -0
  163. package/dist/components/forms/__tests__/DateTimeInput.behavior.test.js +103 -0
  164. package/dist/components/forms/__tests__/FileUpload.test.js +90 -0
  165. package/dist/components/forms/__tests__/Form.behavior.test.js +137 -0
  166. package/dist/components/forms/__tests__/Form.test.js +58 -0
  167. package/dist/components/forms/__tests__/FormGroup.test.js +48 -0
  168. package/dist/components/forms/__tests__/FormMicButton.test.js +86 -0
  169. package/dist/components/forms/__tests__/Input.test.js +49 -0
  170. package/dist/components/forms/__tests__/MeasurementInput.behavior.test.js +129 -0
  171. package/dist/components/forms/__tests__/MoneyInput.behavior.test.js +124 -0
  172. package/dist/components/forms/__tests__/NumberInput.behavior.test.js +141 -0
  173. package/dist/components/forms/__tests__/PhoneInput.behavior.test.js +96 -0
  174. package/dist/components/forms/__tests__/SearchInput.test.js +79 -0
  175. package/dist/components/forms/__tests__/Select.test.js +37 -0
  176. package/dist/components/forms/__tests__/SelectInput.behavior.test.js +132 -0
  177. package/dist/components/forms/__tests__/TextInput.behavior.test.js +131 -0
  178. package/dist/components/forms/__tests__/Textarea.test.js +39 -0
  179. package/dist/components/forms/__tests__/TextareaInput.behavior.test.js +96 -0
  180. package/dist/components/forms/__tests__/Toggle.test.js +87 -0
  181. package/dist/components/forms/__tests__/composite-inputs-a11y.test.js +69 -0
  182. package/dist/components/forms/__tests__/form-group-input.fixture.svelte +16 -0
  183. package/dist/components/forms/__tests__/form-group-input.fixture.svelte.d.ts +9 -0
  184. package/dist/components/forms/__tests__/form-group-input.fixture.svelte.d.ts.map +1 -0
  185. package/dist/components/forms/__tests__/form-with-fields.fixture.svelte +33 -0
  186. package/dist/components/forms/__tests__/form-with-fields.fixture.svelte.d.ts +12 -0
  187. package/dist/components/forms/__tests__/form-with-fields.fixture.svelte.d.ts.map +1 -0
  188. package/dist/components/forms/__tests__/rich-inputs-a11y.test.js +87 -0
  189. package/dist/components/forms/index.d.ts +25 -0
  190. package/dist/components/forms/index.d.ts.map +1 -0
  191. package/dist/components/forms/index.js +25 -0
  192. package/dist/components/forms/types.d.ts +33 -0
  193. package/dist/components/forms/types.d.ts.map +1 -0
  194. package/dist/components/forms/types.js +4 -0
  195. package/dist/components/module/ModulePanel.svelte +134 -0
  196. package/dist/components/module/ModulePanel.svelte.d.ts +22 -0
  197. package/dist/components/module/ModulePanel.svelte.d.ts.map +1 -0
  198. package/dist/components/module/index.d.ts +5 -0
  199. package/dist/components/module/index.d.ts.map +1 -0
  200. package/dist/components/module/index.js +4 -0
  201. package/dist/components/workspace/Breadcrumbs.svelte +141 -0
  202. package/dist/components/workspace/Breadcrumbs.svelte.d.ts +21 -0
  203. package/dist/components/workspace/Breadcrumbs.svelte.d.ts.map +1 -0
  204. package/dist/components/workspace/NavTree.svelte +354 -0
  205. package/dist/components/workspace/NavTree.svelte.d.ts +45 -0
  206. package/dist/components/workspace/NavTree.svelte.d.ts.map +1 -0
  207. package/dist/components/workspace/README.md +34 -0
  208. package/dist/components/workspace/RoleShell.svelte +309 -0
  209. package/dist/components/workspace/RoleShell.svelte.d.ts +91 -0
  210. package/dist/components/workspace/RoleShell.svelte.d.ts.map +1 -0
  211. package/dist/components/workspace/WorkspaceShell.svelte +951 -0
  212. package/dist/components/workspace/WorkspaceShell.svelte.d.ts +112 -0
  213. package/dist/components/workspace/WorkspaceShell.svelte.d.ts.map +1 -0
  214. package/dist/components/workspace/__tests__/RoleShell.test.js +772 -0
  215. package/dist/components/workspace/__tests__/WorkspaceShell.test.js +630 -0
  216. package/dist/components/workspace/__tests__/breadcrumbs-helpers.test.js +141 -0
  217. package/dist/components/workspace/__tests__/context-forwarding-harness.svelte +45 -0
  218. package/dist/components/workspace/__tests__/context-forwarding-harness.svelte.d.ts +21 -0
  219. package/dist/components/workspace/__tests__/context-forwarding-harness.svelte.d.ts.map +1 -0
  220. package/dist/components/workspace/__tests__/define-tools-dock.test.js +1010 -0
  221. package/dist/components/workspace/__tests__/harness.svelte +25 -0
  222. package/dist/components/workspace/__tests__/harness.svelte.d.ts +14 -0
  223. package/dist/components/workspace/__tests__/harness.svelte.d.ts.map +1 -0
  224. package/dist/components/workspace/__tests__/index.test.js +37 -0
  225. package/dist/components/workspace/__tests__/manifest-nav-helpers.test.js +24 -0
  226. package/dist/components/workspace/__tests__/manifest-nav.test.js +599 -0
  227. package/dist/components/workspace/__tests__/nav-helpers.test.js +95 -0
  228. package/dist/components/workspace/__tests__/render-harness.svelte +66 -0
  229. package/dist/components/workspace/__tests__/render-harness.svelte.d.ts +32 -0
  230. package/dist/components/workspace/__tests__/render-harness.svelte.d.ts.map +1 -0
  231. package/dist/components/workspace/__tests__/render-tools-dock.test.js +243 -0
  232. package/dist/components/workspace/__tests__/role-shell-bind-harness.svelte +58 -0
  233. package/dist/components/workspace/__tests__/role-shell-bind-harness.svelte.d.ts +16 -0
  234. package/dist/components/workspace/__tests__/role-shell-bind-harness.svelte.d.ts.map +1 -0
  235. package/dist/components/workspace/__tests__/role-shell-switch-harness.svelte +41 -0
  236. package/dist/components/workspace/__tests__/role-shell-switch-harness.svelte.d.ts +13 -0
  237. package/dist/components/workspace/__tests__/role-shell-switch-harness.svelte.d.ts.map +1 -0
  238. package/dist/components/workspace/__tests__/test-icon.svelte +17 -0
  239. package/dist/components/workspace/__tests__/test-icon.svelte.d.ts +19 -0
  240. package/dist/components/workspace/__tests__/test-icon.svelte.d.ts.map +1 -0
  241. package/dist/components/workspace/__tests__/typed-tool-fixture/TypedTool.svelte +38 -0
  242. package/dist/components/workspace/__tests__/typed-tool-fixture/TypedTool.svelte.d.ts +22 -0
  243. package/dist/components/workspace/__tests__/typed-tool-fixture/TypedTool.svelte.d.ts.map +1 -0
  244. package/dist/components/workspace/__tests__/typed-tool-fixture/register-typed-tool.d.ts +65 -0
  245. package/dist/components/workspace/__tests__/typed-tool-fixture/register-typed-tool.d.ts.map +1 -0
  246. package/dist/components/workspace/__tests__/typed-tool-fixture/register-typed-tool.js +115 -0
  247. package/dist/components/workspace/__tests__/typed-tool-fixture/typed-tool-types.d.ts +15 -0
  248. package/dist/components/workspace/__tests__/typed-tool-fixture/typed-tool-types.d.ts.map +1 -0
  249. package/dist/components/workspace/__tests__/typed-tool-fixture/typed-tool-types.js +7 -0
  250. package/dist/components/workspace/__tests__/typed-tool-fixture.test.js +115 -0
  251. package/dist/components/workspace/__tests__/use-harness-orphan.svelte +9 -0
  252. package/dist/components/workspace/__tests__/use-harness-orphan.svelte.d.ts +19 -0
  253. package/dist/components/workspace/__tests__/use-harness-orphan.svelte.d.ts.map +1 -0
  254. package/dist/components/workspace/__tests__/use-harness.svelte +23 -0
  255. package/dist/components/workspace/__tests__/use-harness.svelte.d.ts +8 -0
  256. package/dist/components/workspace/__tests__/use-harness.svelte.d.ts.map +1 -0
  257. package/dist/components/workspace/__tests__/use-tools-dock.test.js +33 -0
  258. package/dist/components/workspace/__tests__/workspace-shell-bind-harness.svelte +43 -0
  259. package/dist/components/workspace/__tests__/workspace-shell-bind-harness.svelte.d.ts +11 -0
  260. package/dist/components/workspace/__tests__/workspace-shell-bind-harness.svelte.d.ts.map +1 -0
  261. package/dist/components/workspace/breadcrumbs-helpers.d.ts +44 -0
  262. package/dist/components/workspace/breadcrumbs-helpers.d.ts.map +1 -0
  263. package/dist/components/workspace/breadcrumbs-helpers.js +88 -0
  264. package/dist/components/workspace/index.d.ts +16 -0
  265. package/dist/components/workspace/index.d.ts.map +1 -0
  266. package/dist/components/workspace/index.js +14 -0
  267. package/dist/components/workspace/manifest-nav.d.ts +200 -0
  268. package/dist/components/workspace/manifest-nav.d.ts.map +1 -0
  269. package/dist/components/workspace/manifest-nav.js +408 -0
  270. package/dist/components/workspace/nav-helpers.d.ts +36 -0
  271. package/dist/components/workspace/nav-helpers.d.ts.map +1 -0
  272. package/dist/components/workspace/nav-helpers.js +60 -0
  273. package/dist/components/workspace/server/__tests__/compose-availability.test.js +383 -0
  274. package/dist/components/workspace/server/__tests__/typed-context-fixture.d.ts +78 -0
  275. package/dist/components/workspace/server/__tests__/typed-context-fixture.d.ts.map +1 -0
  276. package/dist/components/workspace/server/__tests__/typed-context-fixture.js +104 -0
  277. package/dist/components/workspace/server/compose-availability.d.ts +73 -0
  278. package/dist/components/workspace/server/compose-availability.d.ts.map +1 -0
  279. package/dist/components/workspace/server/compose-availability.js +114 -0
  280. package/dist/components/workspace/server/index.d.ts +13 -0
  281. package/dist/components/workspace/server/index.d.ts.map +1 -0
  282. package/dist/components/workspace/server/index.js +11 -0
  283. package/dist/components/workspace/server/types.d.ts +108 -0
  284. package/dist/components/workspace/server/types.d.ts.map +1 -0
  285. package/dist/components/workspace/server/types.js +11 -0
  286. package/dist/components/workspace/tools-dock/ToolsDock.svelte +565 -0
  287. package/dist/components/workspace/tools-dock/ToolsDock.svelte.d.ts +14 -0
  288. package/dist/components/workspace/tools-dock/ToolsDock.svelte.d.ts.map +1 -0
  289. package/dist/components/workspace/tools-dock/define-tools-dock.svelte.d.ts +143 -0
  290. package/dist/components/workspace/tools-dock/define-tools-dock.svelte.d.ts.map +1 -0
  291. package/dist/components/workspace/tools-dock/define-tools-dock.svelte.js +487 -0
  292. package/dist/components/workspace/tools-dock/use-tools-dock.d.ts +41 -0
  293. package/dist/components/workspace/tools-dock/use-tools-dock.d.ts.map +1 -0
  294. package/dist/components/workspace/tools-dock/use-tools-dock.js +50 -0
  295. package/dist/components/workspace/types.d.ts +372 -0
  296. package/dist/components/workspace/types.d.ts.map +1 -0
  297. package/dist/components/workspace/types.js +6 -0
  298. package/dist/hooks/index.d.ts +11 -0
  299. package/dist/hooks/index.d.ts.map +1 -0
  300. package/dist/hooks/index.js +10 -0
  301. package/dist/hooks/useAppState.svelte.d.ts +46 -0
  302. package/dist/hooks/useAppState.svelte.d.ts.map +1 -0
  303. package/dist/hooks/useAppState.svelte.js +59 -0
  304. package/dist/hooks/useAuth.svelte.d.ts +41 -0
  305. package/dist/hooks/useAuth.svelte.d.ts.map +1 -0
  306. package/dist/hooks/useAuth.svelte.js +43 -0
  307. package/dist/hooks/useLLM.svelte.d.ts +69 -0
  308. package/dist/hooks/useLLM.svelte.d.ts.map +1 -0
  309. package/dist/hooks/useLLM.svelte.js +85 -0
  310. package/dist/hooks/useSTT.svelte.d.ts +68 -0
  311. package/dist/hooks/useSTT.svelte.d.ts.map +1 -0
  312. package/dist/hooks/useSTT.svelte.js +97 -0
  313. package/dist/hooks/useSocket.svelte.d.ts +45 -0
  314. package/dist/hooks/useSocket.svelte.d.ts.map +1 -0
  315. package/dist/hooks/useSocket.svelte.js +54 -0
  316. package/dist/hooks/useTTS.svelte.d.ts +65 -0
  317. package/dist/hooks/useTTS.svelte.d.ts.map +1 -0
  318. package/dist/hooks/useTTS.svelte.js +93 -0
  319. package/dist/hooks/useTheme.d.ts +13 -0
  320. package/dist/hooks/useTheme.d.ts.map +1 -0
  321. package/dist/hooks/useTheme.js +16 -0
  322. package/dist/i18n/__tests__/server.spec.js +50 -0
  323. package/dist/i18n/server.d.ts +47 -0
  324. package/dist/i18n/server.d.ts.map +1 -0
  325. package/dist/i18n/server.js +58 -0
  326. package/dist/i18n/strings.forms.d.ts +33 -0
  327. package/dist/i18n/strings.forms.d.ts.map +1 -0
  328. package/dist/i18n/strings.forms.js +54 -0
  329. package/dist/i18n/strings.workspace.d.ts +34 -0
  330. package/dist/i18n/strings.workspace.d.ts.map +1 -0
  331. package/dist/i18n/strings.workspace.js +40 -0
  332. package/dist/index.d.ts +18 -0
  333. package/dist/index.d.ts.map +1 -0
  334. package/dist/index.js +23 -0
  335. package/dist/state/__tests__/warm-clients.test.js +40 -0
  336. package/dist/state/app-state.d.ts +308 -0
  337. package/dist/state/app-state.d.ts.map +1 -0
  338. package/dist/state/app-state.js +64 -0
  339. package/dist/state/app-state.svelte.d.ts +196 -0
  340. package/dist/state/app-state.svelte.d.ts.map +1 -0
  341. package/dist/state/app-state.svelte.js +774 -0
  342. package/dist/state/context.d.ts +23 -0
  343. package/dist/state/context.d.ts.map +1 -0
  344. package/dist/state/context.js +32 -0
  345. package/dist/state/form-context.d.ts +59 -0
  346. package/dist/state/form-context.d.ts.map +1 -0
  347. package/dist/state/form-context.js +31 -0
  348. package/dist/state/form-group-context.d.ts +13 -0
  349. package/dist/state/form-group-context.d.ts.map +1 -0
  350. package/dist/state/form-group-context.js +28 -0
  351. package/dist/state/index.d.ts +9 -0
  352. package/dist/state/index.d.ts.map +1 -0
  353. package/dist/state/index.js +8 -0
  354. package/dist/state/warm-clients.d.ts +136 -0
  355. package/dist/state/warm-clients.d.ts.map +1 -0
  356. package/dist/state/warm-clients.js +231 -0
  357. package/package.json +137 -0
@@ -0,0 +1,217 @@
1
+ /// <reference path="../../../../web-speech.d.ts" />
2
+ /**
3
+ * Browser Speech Recognition API adapter
4
+ *
5
+ * Uses the Web Speech API (SpeechRecognition) available in most modern browsers.
6
+ * No download required, works immediately.
7
+ */
8
+ import { CapabilityNotAvailableError, PermissionDeniedError, } from '../../core/errors.js';
9
+ /**
10
+ * Get the SpeechRecognition constructor (handles vendor prefix)
11
+ */
12
+ function getSpeechRecognition() {
13
+ if (typeof window === 'undefined')
14
+ return null;
15
+ return (window.SpeechRecognition ||
16
+ window.webkitSpeechRecognition ||
17
+ null);
18
+ }
19
+ /**
20
+ * Browser Speech Recognition adapter
21
+ */
22
+ export class BrowserSpeechSTTAdapter {
23
+ type = 'browser-speech';
24
+ _initState = 'uninitialized';
25
+ recognition = null;
26
+ options;
27
+ _isListening = false;
28
+ // Event listeners
29
+ resultListeners = new Set();
30
+ errorListeners = new Set();
31
+ startListeners = new Set();
32
+ endListeners = new Set();
33
+ constructor(options = {}) {
34
+ this.options = {
35
+ defaultLanguage: 'en-US',
36
+ maxAlternatives: 3,
37
+ ...options,
38
+ };
39
+ }
40
+ get initState() {
41
+ return this._initState;
42
+ }
43
+ async ensureInitialized(_onProgress) {
44
+ if (this._initState === 'ready')
45
+ return;
46
+ if (this._initState === 'initializing') {
47
+ // Wait for existing initialization
48
+ return new Promise((resolve, reject) => {
49
+ const check = () => {
50
+ if (this._initState === 'ready')
51
+ resolve();
52
+ else if (this._initState === 'error')
53
+ reject(new Error('Initialization failed'));
54
+ else
55
+ setTimeout(check, 50);
56
+ };
57
+ check();
58
+ });
59
+ }
60
+ this._initState = 'initializing';
61
+ try {
62
+ const SpeechRecognitionCtor = getSpeechRecognition();
63
+ if (!SpeechRecognitionCtor) {
64
+ throw new CapabilityNotAvailableError('Web Speech API (SpeechRecognition)', 'browser-speech');
65
+ }
66
+ this.recognition = new SpeechRecognitionCtor();
67
+ this.setupRecognitionHandlers();
68
+ this._initState = 'ready';
69
+ }
70
+ catch (error) {
71
+ this._initState = 'error';
72
+ throw error;
73
+ }
74
+ }
75
+ setupRecognitionHandlers() {
76
+ if (!this.recognition)
77
+ return;
78
+ this.recognition.onresult = (event) => {
79
+ for (let i = event.resultIndex; i < event.results.length; i++) {
80
+ const result = event.results[i];
81
+ const sttResult = {
82
+ text: result[0].transcript,
83
+ confidence: result[0].confidence,
84
+ isFinal: result.isFinal,
85
+ timestamp: Date.now(),
86
+ alternatives: Array.from({ length: result.length }, (_, index) => result[index])
87
+ .slice(1)
88
+ .map((alt) => ({
89
+ text: alt.transcript,
90
+ confidence: alt.confidence,
91
+ })),
92
+ };
93
+ for (const cb of this.resultListeners) {
94
+ cb(sttResult);
95
+ }
96
+ }
97
+ };
98
+ this.recognition.onerror = (event) => {
99
+ let error;
100
+ switch (event.error) {
101
+ case 'not-allowed':
102
+ case 'service-not-allowed':
103
+ error = new PermissionDeniedError('microphone', 'browser-speech');
104
+ break;
105
+ case 'no-speech':
106
+ error = new Error('No speech detected');
107
+ break;
108
+ case 'audio-capture':
109
+ error = new Error('Audio capture failed - check microphone');
110
+ break;
111
+ case 'network':
112
+ error = new Error('Network error during speech recognition');
113
+ break;
114
+ case 'aborted':
115
+ // User aborted, not really an error
116
+ return;
117
+ default:
118
+ error = new Error(`Speech recognition error: ${event.error}`);
119
+ }
120
+ for (const cb of this.errorListeners) {
121
+ cb(error);
122
+ }
123
+ };
124
+ this.recognition.onstart = () => {
125
+ this._isListening = true;
126
+ for (const cb of this.startListeners) {
127
+ cb();
128
+ }
129
+ };
130
+ this.recognition.onend = () => {
131
+ this._isListening = false;
132
+ for (const cb of this.endListeners) {
133
+ cb();
134
+ }
135
+ };
136
+ }
137
+ getCapabilities() {
138
+ return {
139
+ continuous: true,
140
+ interimResults: true,
141
+ languages: [
142
+ 'en-US',
143
+ 'en-GB',
144
+ 'en-AU',
145
+ 'es-ES',
146
+ 'es-MX',
147
+ 'fr-FR',
148
+ 'fr-CA',
149
+ 'de-DE',
150
+ 'it-IT',
151
+ 'pt-BR',
152
+ 'pt-PT',
153
+ 'zh-CN',
154
+ 'zh-TW',
155
+ 'ja-JP',
156
+ 'ko-KR',
157
+ // Many more supported, this is a subset
158
+ ],
159
+ accuracy: 'medium',
160
+ requiresDownload: false,
161
+ };
162
+ }
163
+ async start(options = {}) {
164
+ await this.ensureInitialized();
165
+ if (!this.recognition) {
166
+ throw new Error('Recognition not initialized');
167
+ }
168
+ if (this._isListening) {
169
+ return; // Already listening
170
+ }
171
+ // Configure recognition
172
+ this.recognition.lang =
173
+ options.language || this.options.defaultLanguage || 'en-US';
174
+ this.recognition.continuous = options.continuous ?? false;
175
+ this.recognition.interimResults = options.interimResults ?? true;
176
+ this.recognition.maxAlternatives = this.options.maxAlternatives || 3;
177
+ this.recognition.start();
178
+ }
179
+ async stop() {
180
+ if (this.recognition && this._isListening) {
181
+ this.recognition.stop();
182
+ }
183
+ }
184
+ abort() {
185
+ if (this.recognition && this._isListening) {
186
+ this.recognition.abort();
187
+ }
188
+ }
189
+ isListening() {
190
+ return this._isListening;
191
+ }
192
+ onResult(callback) {
193
+ this.resultListeners.add(callback);
194
+ return () => this.resultListeners.delete(callback);
195
+ }
196
+ onError(callback) {
197
+ this.errorListeners.add(callback);
198
+ return () => this.errorListeners.delete(callback);
199
+ }
200
+ onStart(callback) {
201
+ this.startListeners.add(callback);
202
+ return () => this.startListeners.delete(callback);
203
+ }
204
+ onEnd(callback) {
205
+ this.endListeners.add(callback);
206
+ return () => this.endListeners.delete(callback);
207
+ }
208
+ async dispose() {
209
+ this.abort();
210
+ this.recognition = null;
211
+ this.resultListeners.clear();
212
+ this.errorListeners.clear();
213
+ this.startListeners.clear();
214
+ this.endListeners.clear();
215
+ this._initState = 'uninitialized';
216
+ }
217
+ }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * STT adapter factory with type guards
3
+ *
4
+ * Uses discriminated unions and lazy loading following SDK patterns.
5
+ */
6
+ import type { GetSTTOptions, STTAdapter } from './types.js';
7
+ /**
8
+ * Create an STT adapter
9
+ *
10
+ * Uses lazy loading to only import the requested adapter.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * // Browser Speech API (default)
15
+ * const stt = await getSTT();
16
+ *
17
+ * // Explicit Browser Speech
18
+ * const stt = await getSTT({ type: 'browser-speech' });
19
+ *
20
+ * // Whisper.cpp (recommended for accuracy)
21
+ * const stt = await getSTT({ type: 'whisper-cpp', model: 'tiny.en' });
22
+ *
23
+ * // Whisper WASM (transformers.js - has known issues)
24
+ * const stt = await getSTT({ type: 'whisper-wasm', modelSize: 'tiny' });
25
+ * ```
26
+ */
27
+ export declare function getSTT(options?: GetSTTOptions): Promise<STTAdapter>;
28
+ /**
29
+ * Auto-detect and create the best available STT adapter
30
+ *
31
+ * Selection priority:
32
+ * 1. Whisper WASM if WebGPU is available (best accuracy)
33
+ * 2. Browser Speech API if available (no download)
34
+ * 3. Whisper WASM as fallback
35
+ *
36
+ * @throws {CapabilityNotAvailableError} If no STT adapter is available
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * const stt = await getSTTAuto();
41
+ * console.log(`Using ${stt.type} adapter`);
42
+ * ```
43
+ */
44
+ export declare function getSTTAuto(options?: Partial<Omit<GetSTTOptions, 'type'>>): Promise<STTAdapter>;
45
+ /**
46
+ * Check if a specific STT backend is available
47
+ */
48
+ export declare function isSTTAvailable(type: 'browser-speech' | 'whisper-wasm'): boolean;
49
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/browser-ai/adapters/stt/factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAEV,aAAa,EACb,UAAU,EAGX,MAAM,YAAY,CAAC;AA6BpB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAqB7E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,UAAU,CAC9B,OAAO,GAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAM,GACjD,OAAO,CAAC,UAAU,CAAC,CAmBrB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,gBAAgB,GAAG,cAAc,GACtC,OAAO,CAYT"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * STT adapter factory with type guards
3
+ *
4
+ * Uses discriminated unions and lazy loading following SDK patterns.
5
+ */
6
+ import { detectCapabilities, getBestSTTBackend, } from '../../capabilities/detector.js';
7
+ import { UnsupportedAdapterError } from '../../core/errors.js';
8
+ /**
9
+ * Type guard for Browser Speech API options
10
+ */
11
+ function isBrowserSpeechOptions(options) {
12
+ return !options.type || options.type === 'browser-speech';
13
+ }
14
+ /**
15
+ * Type guard for Whisper WASM options (transformers.js)
16
+ */
17
+ function isWhisperWasmOptions(options) {
18
+ return options.type === 'whisper-wasm';
19
+ }
20
+ /**
21
+ * Type guard for Whisper.cpp options (@remotion/whisper-web)
22
+ */
23
+ function isWhisperCppOptions(options) {
24
+ return options.type === 'whisper-cpp';
25
+ }
26
+ /**
27
+ * Create an STT adapter
28
+ *
29
+ * Uses lazy loading to only import the requested adapter.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * // Browser Speech API (default)
34
+ * const stt = await getSTT();
35
+ *
36
+ * // Explicit Browser Speech
37
+ * const stt = await getSTT({ type: 'browser-speech' });
38
+ *
39
+ * // Whisper.cpp (recommended for accuracy)
40
+ * const stt = await getSTT({ type: 'whisper-cpp', model: 'tiny.en' });
41
+ *
42
+ * // Whisper WASM (transformers.js - has known issues)
43
+ * const stt = await getSTT({ type: 'whisper-wasm', modelSize: 'tiny' });
44
+ * ```
45
+ */
46
+ export async function getSTT(options = {}) {
47
+ if (isBrowserSpeechOptions(options)) {
48
+ const { BrowserSpeechSTTAdapter } = await import('./browser-speech.js');
49
+ return new BrowserSpeechSTTAdapter(options);
50
+ }
51
+ if (isWhisperCppOptions(options)) {
52
+ const { WhisperCppSTTAdapter } = await import('./whisper-cpp.js');
53
+ return new WhisperCppSTTAdapter(options);
54
+ }
55
+ if (isWhisperWasmOptions(options)) {
56
+ const { WhisperWasmSTTAdapter } = await import('./whisper-wasm.js');
57
+ return new WhisperWasmSTTAdapter(options);
58
+ }
59
+ throw new UnsupportedAdapterError(options.type, [
60
+ 'browser-speech',
61
+ 'whisper-cpp',
62
+ 'whisper-wasm',
63
+ ]);
64
+ }
65
+ /**
66
+ * Auto-detect and create the best available STT adapter
67
+ *
68
+ * Selection priority:
69
+ * 1. Whisper WASM if WebGPU is available (best accuracy)
70
+ * 2. Browser Speech API if available (no download)
71
+ * 3. Whisper WASM as fallback
72
+ *
73
+ * @throws {CapabilityNotAvailableError} If no STT adapter is available
74
+ *
75
+ * @example
76
+ * ```ts
77
+ * const stt = await getSTTAuto();
78
+ * console.log(`Using ${stt.type} adapter`);
79
+ * ```
80
+ */
81
+ export async function getSTTAuto(options = {}) {
82
+ const caps = detectCapabilities();
83
+ const backend = getBestSTTBackend(caps);
84
+ if (!backend) {
85
+ throw new Error('No STT capability available in this browser');
86
+ }
87
+ if (backend === 'whisper-wasm') {
88
+ return getSTT({
89
+ type: 'whisper-wasm',
90
+ ...options,
91
+ });
92
+ }
93
+ return getSTT({
94
+ type: 'browser-speech',
95
+ ...options,
96
+ });
97
+ }
98
+ /**
99
+ * Check if a specific STT backend is available
100
+ */
101
+ export function isSTTAvailable(type) {
102
+ const caps = detectCapabilities();
103
+ if (type === 'browser-speech') {
104
+ return caps.stt.browserSpeechAPI;
105
+ }
106
+ if (type === 'whisper-wasm') {
107
+ return caps.stt.whisperWasm;
108
+ }
109
+ return false;
110
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Speech-to-Text adapters
3
+ */
4
+ export { BrowserSpeechSTTAdapter } from './browser-speech.js';
5
+ export * from './factory.js';
6
+ export * from './types.js';
7
+ export { WhisperCppSTTAdapter } from './whisper-cpp.js';
8
+ export { WhisperWasmSTTAdapter } from './whisper-wasm.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/browser-ai/adapters/stt/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Speech-to-Text adapters
3
+ */
4
+ export { BrowserSpeechSTTAdapter } from './browser-speech.js';
5
+ export * from './factory.js';
6
+ export * from './types.js';
7
+ export { WhisperCppSTTAdapter } from './whisper-cpp.js';
8
+ export { WhisperWasmSTTAdapter } from './whisper-wasm.js';
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Speech-to-Text adapter types
3
+ */
4
+ import type { BaseBrowserAIOptions, InitState, OnProgress } from '../../core/types.js';
5
+ /**
6
+ * STT recognition result
7
+ */
8
+ export interface STTResult {
9
+ /** Transcribed text */
10
+ text: string;
11
+ /** Confidence score (0-1), if available */
12
+ confidence: number;
13
+ /** Whether this is a final result or interim */
14
+ isFinal: boolean;
15
+ /** Alternative transcriptions, if available */
16
+ alternatives?: Array<{
17
+ text: string;
18
+ confidence: number;
19
+ }>;
20
+ /** Timestamp of the result */
21
+ timestamp: number;
22
+ }
23
+ /**
24
+ * STT adapter capabilities
25
+ */
26
+ export interface STTCapabilities {
27
+ /** Whether continuous listening is supported */
28
+ continuous: boolean;
29
+ /** Whether interim results are supported */
30
+ interimResults: boolean;
31
+ /** Supported languages (BCP-47 codes) */
32
+ languages: string[];
33
+ /** Estimated accuracy level */
34
+ accuracy: 'low' | 'medium' | 'high';
35
+ /** Whether download is required before use */
36
+ requiresDownload: boolean;
37
+ /** Estimated download size in bytes (if requiresDownload) */
38
+ downloadSize?: number;
39
+ }
40
+ /**
41
+ * Options for STT recognition session
42
+ */
43
+ export interface STTOptions {
44
+ /** Language code (BCP-47, e.g., 'en-US') */
45
+ language?: string;
46
+ /** Enable continuous recognition (keep listening after results) */
47
+ continuous?: boolean;
48
+ /** Provide interim results as user speaks */
49
+ interimResults?: boolean;
50
+ }
51
+ /**
52
+ * STT event callbacks
53
+ */
54
+ export interface STTEventHandlers {
55
+ onResult?: (result: STTResult) => void;
56
+ onError?: (error: Error) => void;
57
+ onStart?: () => void;
58
+ onEnd?: () => void;
59
+ onSoundStart?: () => void;
60
+ onSoundEnd?: () => void;
61
+ }
62
+ /**
63
+ * STT adapter interface - all STT implementations must implement this
64
+ */
65
+ export interface STTAdapter {
66
+ /** Adapter type identifier */
67
+ readonly type: 'browser-speech' | 'whisper-wasm' | 'whisper-cpp';
68
+ /** Current initialization state */
69
+ readonly initState: InitState;
70
+ /**
71
+ * Initialize the adapter (phase 2 of two-phase init)
72
+ * Downloads models/WASM if required
73
+ */
74
+ ensureInitialized(onProgress?: OnProgress): Promise<void>;
75
+ /**
76
+ * Get adapter capabilities
77
+ */
78
+ getCapabilities(): STTCapabilities;
79
+ /**
80
+ * Start listening for speech
81
+ */
82
+ start(options?: STTOptions): Promise<void>;
83
+ /**
84
+ * Stop listening
85
+ */
86
+ stop(): Promise<void>;
87
+ /**
88
+ * Abort listening (stops immediately without final result)
89
+ */
90
+ abort(): void;
91
+ /**
92
+ * Check if currently listening
93
+ */
94
+ isListening(): boolean;
95
+ /**
96
+ * Subscribe to recognition results
97
+ * @returns Unsubscribe function
98
+ */
99
+ onResult(callback: (result: STTResult) => void): () => void;
100
+ /**
101
+ * Subscribe to errors
102
+ * @returns Unsubscribe function
103
+ */
104
+ onError(callback: (error: Error) => void): () => void;
105
+ /**
106
+ * Subscribe to start event
107
+ * @returns Unsubscribe function
108
+ */
109
+ onStart(callback: () => void): () => void;
110
+ /**
111
+ * Subscribe to end event
112
+ * @returns Unsubscribe function
113
+ */
114
+ onEnd(callback: () => void): () => void;
115
+ /**
116
+ * Dispose of resources
117
+ */
118
+ dispose(): Promise<void>;
119
+ }
120
+ /**
121
+ * Browser Speech API adapter options
122
+ */
123
+ export interface BrowserSpeechSTTOptions extends BaseBrowserAIOptions {
124
+ type?: 'browser-speech';
125
+ /** Override default language */
126
+ defaultLanguage?: string;
127
+ /** Max alternatives to return */
128
+ maxAlternatives?: number;
129
+ }
130
+ /**
131
+ * Whisper WASM adapter options
132
+ */
133
+ export interface WhisperWasmSTTOptions extends BaseBrowserAIOptions {
134
+ type: 'whisper-wasm';
135
+ /** Model size: 'tiny', 'base', 'small' */
136
+ modelSize?: 'tiny' | 'base' | 'small';
137
+ /** Custom model URL (overrides modelSize) */
138
+ modelUrl?: string;
139
+ /** Language code for transcription */
140
+ defaultLanguage?: string;
141
+ }
142
+ /**
143
+ * Whisper.cpp WASM adapter options (using @remotion/whisper-web)
144
+ */
145
+ export interface WhisperCppSTTOptions extends BaseBrowserAIOptions {
146
+ type: 'whisper-cpp';
147
+ /** Model size: 'tiny.en', 'base.en', 'small.en', 'tiny', 'base', 'small' */
148
+ model?: 'tiny.en' | 'base.en' | 'small.en' | 'tiny' | 'base' | 'small';
149
+ }
150
+ /**
151
+ * Union type for STT factory options
152
+ */
153
+ export type GetSTTOptions = BrowserSpeechSTTOptions | WhisperWasmSTTOptions | WhisperCppSTTOptions;
154
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/browser-ai/adapters/stt/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Speech-to-Text adapter types
3
+ */
4
+ export {};
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Whisper.cpp adapter using @remotion/whisper-web
3
+ *
4
+ * Uses whisper.cpp compiled to WASM for high-accuracy speech recognition.
5
+ * More stable than transformers.js implementation.
6
+ */
7
+ import type { InitState, OnProgress } from '../../core/types.js';
8
+ import type { STTAdapter, STTCapabilities, STTOptions, STTResult, WhisperCppSTTOptions } from './types.js';
9
+ /**
10
+ * Whisper.cpp adapter for high-accuracy speech recognition
11
+ */
12
+ export declare class WhisperCppSTTAdapter implements STTAdapter {
13
+ readonly type: "whisper-cpp";
14
+ private _initState;
15
+ private options;
16
+ private _isListening;
17
+ private mediaRecorder;
18
+ private audioChunks;
19
+ private stream;
20
+ private resultListeners;
21
+ private errorListeners;
22
+ private startListeners;
23
+ private endListeners;
24
+ private whisperWeb;
25
+ private modelDownloaded;
26
+ private processingPromise;
27
+ private processingResolve;
28
+ constructor(options?: Partial<WhisperCppSTTOptions>);
29
+ get initState(): InitState;
30
+ private get model();
31
+ ensureInitialized(onProgress?: OnProgress): Promise<void>;
32
+ private importWhisperWeb;
33
+ getCapabilities(): STTCapabilities;
34
+ start(_options?: STTOptions): Promise<void>;
35
+ private getSupportedMimeType;
36
+ private processRecording;
37
+ stop(): Promise<void>;
38
+ abort(): void;
39
+ isListening(): boolean;
40
+ onResult(callback: (result: STTResult) => void): () => void;
41
+ onError(callback: (error: Error) => void): () => void;
42
+ onStart(callback: () => void): () => void;
43
+ onEnd(callback: () => void): () => void;
44
+ dispose(): Promise<void>;
45
+ }
46
+ //# sourceMappingURL=whisper-cpp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whisper-cpp.d.ts","sourceRoot":"","sources":["../../../../src/browser-ai/adapters/stt/whisper-cpp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,UAAU,EACV,SAAS,EACT,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAoBpB;;GAEG;AACH,qBAAa,oBAAqB,YAAW,UAAU;IACrD,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAU;IAEvC,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,YAAY,CAAS;IAG7B,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,MAAM,CAA4B;IAG1C,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,YAAY,CAAyB;IAG7C,OAAO,CAAC,UAAU,CAAa;IAE/B,OAAO,CAAC,eAAe,CAAS;IAGhC,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,iBAAiB,CAA6B;gBAE1C,OAAO,GAAE,OAAO,CAAC,oBAAoB,CAAM;IAQvD,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,OAAO,KAAK,KAAK,GAEhB;IAEK,iBAAiB,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YA8FjD,gBAAgB;IAW9B,eAAe,IAAI,eAAe;IA+B5B,KAAK,CAAC,QAAQ,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAmDrD,OAAO,CAAC,oBAAoB;YAiBd,gBAAgB;IAyExB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB3B,KAAK,IAAI,IAAI;IAmBb,WAAW,IAAI,OAAO;IAItB,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI;IAK3D,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,MAAM,IAAI;IAKrD,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAKzC,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAKjC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAU/B"}