@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,47 @@
1
+ /**
2
+ * @happyvertical/smrt-svelte/i18n/server — server snapshot builder (S13 #1418).
3
+ *
4
+ * Node-only. Pulls the full `@happyvertical/smrt-languages` resolver (and thus
5
+ * its server dependency tree), so it MUST stay off the client bundle — it lives
6
+ * on a dedicated subpath the browser never imports. The browser-facing i18n
7
+ * layer is `@happyvertical/smrt-svelte/i18n`.
8
+ *
9
+ * A consumer's load function calls `buildI18nSnapshot` for the request locale
10
+ * and passes the result to `<Provider i18n={snapshot}>`.
11
+ *
12
+ * Requires `@happyvertical/smrt-languages` to be installed. It is an *optional*
13
+ * peer of smrt-svelte by design — the client i18n layer (`/i18n`) is
14
+ * languages-free, so apps that never use this server bridge are not forced to
15
+ * pull the languages server dependency tree (smrt-core/sql/ai/jobs). Importing
16
+ * this subpath without languages installed is a clear module-not-found error.
17
+ */
18
+ import { type ResolveLanguageStringOptions } from '@happyvertical/smrt-languages';
19
+ import { type I18nSnapshot } from '@happyvertical/smrt-ui/i18n';
20
+ import '@happyvertical/smrt-ui/i18n';
21
+ import './strings.forms.js';
22
+ import './strings.workspace.js';
23
+ export interface BuildI18nSnapshotOptions {
24
+ /** Target locale (BCP-47-ish, e.g. `fr-CA`). */
25
+ locale: string;
26
+ /** Tenant scope for tenant-level overrides. */
27
+ tenantId?: ResolveLanguageStringOptions['tenantId'];
28
+ /**
29
+ * DB handle for app/tenant overrides and auto-translation. Omit to resolve
30
+ * code defaults only (no overrides, no translation jobs).
31
+ */
32
+ db?: ResolveLanguageStringOptions['db'];
33
+ /**
34
+ * Restrict the snapshot to these keys. Defaults to every key registered via
35
+ * `defineMessages` (the catalogs imported on the server so far).
36
+ */
37
+ keys?: string[];
38
+ }
39
+ /**
40
+ * Resolve a per-locale dictionary of message **templates** for the keys an app
41
+ * uses. Seeds `LanguageRegistry` from the English defaults registered via
42
+ * `defineMessages`, then walks each key through the override/tenant/locale
43
+ * chain. Variables are NOT applied — the client interpolates them at render
44
+ * time with the same `renderTemplate`.
45
+ */
46
+ export declare function buildI18nSnapshot(options: BuildI18nSnapshotOptions): Promise<I18nSnapshot>;
47
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/i18n/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAGL,KAAK,4BAA4B,EAElC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,6BAA6B,CAAC;AAMrC,OAAO,6BAA6B,CAAC;AACrC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,wBAAwB,CAAC;AAEhC,MAAM,WAAW,wBAAwB;IACvC,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,4BAA4B,CAAC,UAAU,CAAC,CAAC;IACpD;;;OAGG;IACH,EAAE,CAAC,EAAE,4BAA4B,CAAC,IAAI,CAAC,CAAC;IACxC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,YAAY,CAAC,CA4BvB"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @happyvertical/smrt-svelte/i18n/server — server snapshot builder (S13 #1418).
3
+ *
4
+ * Node-only. Pulls the full `@happyvertical/smrt-languages` resolver (and thus
5
+ * its server dependency tree), so it MUST stay off the client bundle — it lives
6
+ * on a dedicated subpath the browser never imports. The browser-facing i18n
7
+ * layer is `@happyvertical/smrt-svelte/i18n`.
8
+ *
9
+ * A consumer's load function calls `buildI18nSnapshot` for the request locale
10
+ * and passes the result to `<Provider i18n={snapshot}>`.
11
+ *
12
+ * Requires `@happyvertical/smrt-languages` to be installed. It is an *optional*
13
+ * peer of smrt-svelte by design — the client i18n layer (`/i18n`) is
14
+ * languages-free, so apps that never use this server bridge are not forced to
15
+ * pull the languages server dependency tree (smrt-core/sql/ai/jobs). Importing
16
+ * this subpath without languages installed is a clear module-not-found error.
17
+ */
18
+ import { defineLanguageString, LanguageRegistry, resolveLanguageString, } from '@happyvertical/smrt-languages';
19
+ import { getRegisteredDefaults, } from '@happyvertical/smrt-ui/i18n';
20
+ // Side-effect: register ALL of smrt-svelte's own UI catalogs (ui.*) so they are
21
+ // in every snapshot even when a consumer imports only `buildI18nSnapshot` from
22
+ // this subpath and never the components themselves. Add any new smrt-svelte
23
+ // catalog here so its keys are server-resolvable. The smrt-ui i18n barrel
24
+ // registers the leaf's own primitive catalogs (`strings.ts` + `strings.ui.ts`).
25
+ import '@happyvertical/smrt-ui/i18n';
26
+ import './strings.forms.js';
27
+ import './strings.workspace.js';
28
+ /**
29
+ * Resolve a per-locale dictionary of message **templates** for the keys an app
30
+ * uses. Seeds `LanguageRegistry` from the English defaults registered via
31
+ * `defineMessages`, then walks each key through the override/tenant/locale
32
+ * chain. Variables are NOT applied — the client interpolates them at render
33
+ * time with the same `renderTemplate`.
34
+ */
35
+ export async function buildI18nSnapshot(options) {
36
+ const { locale, tenantId = null, db, keys } = options;
37
+ // Seed the languages registry with smrt-svelte's English code defaults so the
38
+ // resolver's code layer can serve them. Idempotent — skip keys already
39
+ // registered (a different template for the same key would have thrown at
40
+ // `defineMessages` time).
41
+ const defaults = getRegisteredDefaults();
42
+ for (const [key, template] of Object.entries(defaults)) {
43
+ if (!LanguageRegistry.has(key, 'en')) {
44
+ defineLanguageString({ key, locale: 'en', template });
45
+ }
46
+ }
47
+ const targetKeys = keys ?? Object.keys(defaults);
48
+ const messages = {};
49
+ await Promise.all(targetKeys.map(async (key) => {
50
+ const resolved = await resolveLanguageString(key, {
51
+ db,
52
+ tenantId,
53
+ locale,
54
+ });
55
+ messages[key] = resolved.template;
56
+ }));
57
+ return { locale, messages };
58
+ }
@@ -0,0 +1,33 @@
1
+ export declare const M: {
2
+ readonly 'ui.address_input.street_placeholder': "ui.address_input.street_placeholder";
3
+ readonly 'ui.address_input.city_placeholder': "ui.address_input.city_placeholder";
4
+ readonly 'ui.address_input.postal_code_placeholder': "ui.address_input.postal_code_placeholder";
5
+ readonly 'ui.date_range_input.mic_aria_label': "ui.date_range_input.mic_aria_label";
6
+ readonly 'ui.date_range_input.parsing': "ui.date_range_input.parsing";
7
+ readonly 'ui.date_range_input.end_after_start': "ui.date_range_input.end_after_start";
8
+ readonly 'ui.date_time_input.mic_aria_label': "ui.date_time_input.mic_aria_label";
9
+ readonly 'ui.date_time_input.parsing': "ui.date_time_input.parsing";
10
+ readonly 'ui.file_upload.remove_file': "ui.file_upload.remove_file";
11
+ readonly 'ui.form.extracting': "ui.form.extracting";
12
+ readonly 'ui.form.listening_status': "ui.form.listening_status";
13
+ readonly 'ui.form.listening_button': "ui.form.listening_button";
14
+ readonly 'ui.form.speak_all_fields': "ui.form.speak_all_fields";
15
+ readonly 'ui.form.you_said': "ui.form.you_said";
16
+ readonly 'ui.form_mic_button.tooltip': "ui.form_mic_button.tooltip";
17
+ readonly 'ui.measurement_input.value_at_least': "ui.measurement_input.value_at_least";
18
+ readonly 'ui.measurement_input.value_at_most': "ui.measurement_input.value_at_most";
19
+ readonly 'ui.money_input.value_at_least': "ui.money_input.value_at_least";
20
+ readonly 'ui.money_input.value_at_most': "ui.money_input.value_at_most";
21
+ readonly 'ui.number_input.value_at_least': "ui.number_input.value_at_least";
22
+ readonly 'ui.number_input.value_at_most': "ui.number_input.value_at_most";
23
+ readonly 'ui.phone_input.mic_aria_label': "ui.phone_input.mic_aria_label";
24
+ readonly 'ui.phone_input.downloading_model': "ui.phone_input.downloading_model";
25
+ readonly 'ui.phone_input.invalid': "ui.phone_input.invalid";
26
+ readonly 'ui.search_input.clear_aria_label': "ui.search_input.clear_aria_label";
27
+ readonly 'ui.text_input.mic_aria_label': "ui.text_input.mic_aria_label";
28
+ readonly 'ui.text_input.downloading_model': "ui.text_input.downloading_model";
29
+ readonly 'ui.text_input.invalid_email': "ui.text_input.invalid_email";
30
+ readonly 'ui.textarea_input.mic_aria_label': "ui.textarea_input.mic_aria_label";
31
+ readonly 'ui.textarea_input.downloading_model': "ui.textarea_input.downloading_model";
32
+ };
33
+ //# sourceMappingURL=strings.forms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strings.forms.d.ts","sourceRoot":"","sources":["../../src/i18n/strings.forms.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DZ,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Forms-component message catalog (i18n, Sweep S13 #1418).
3
+ *
4
+ * English code defaults for user-facing strings in
5
+ * `src/components/forms/*.svelte`, registered via `defineMessages`. Keys follow
6
+ * the `ui` namespace (`ui.<component>.<descriptor>`) for smrt-svelte primitives.
7
+ */
8
+ import { defineMessages } from '@happyvertical/smrt-ui/i18n';
9
+ export const M = defineMessages({
10
+ // AddressInput
11
+ 'ui.address_input.street_placeholder': '123 Main Street',
12
+ 'ui.address_input.city_placeholder': 'City',
13
+ 'ui.address_input.postal_code_placeholder': 'A1A 1A1',
14
+ // DateRangeInput
15
+ 'ui.date_range_input.mic_aria_label': 'Hold to speak date range',
16
+ 'ui.date_range_input.parsing': 'Parsing dates...',
17
+ 'ui.date_range_input.end_after_start': 'End date must be after start date',
18
+ // DateTimeInput
19
+ 'ui.date_time_input.mic_aria_label': 'Hold to speak',
20
+ 'ui.date_time_input.parsing': 'Parsing date...',
21
+ // FileUpload
22
+ 'ui.file_upload.remove_file': 'Remove {name}',
23
+ // Form
24
+ 'ui.form.extracting': 'Extracting form fields…',
25
+ 'ui.form.listening_status': 'Listening. Say "done" to finish.',
26
+ 'ui.form.listening_button': 'Listening... (say "done" to finish)',
27
+ 'ui.form.speak_all_fields': 'Speak all fields',
28
+ 'ui.form.you_said': 'You said:',
29
+ // FormMicButton
30
+ 'ui.form_mic_button.tooltip': 'Speak to fill all fields. Click again to stop.',
31
+ // MeasurementInput
32
+ 'ui.measurement_input.value_at_least': 'Value must be at least {min} {unit}',
33
+ 'ui.measurement_input.value_at_most': 'Value must be at most {max} {unit}',
34
+ // MoneyInput — the currency symbol lives in the {min}/{max} var (passed by the
35
+ // component) so a translation can place it per locale, and the template has no `${…}`.
36
+ 'ui.money_input.value_at_least': 'Value must be at least {min}',
37
+ 'ui.money_input.value_at_most': 'Value must be at most {max}',
38
+ // NumberInput
39
+ 'ui.number_input.value_at_least': 'Value must be at least {min}',
40
+ 'ui.number_input.value_at_most': 'Value must be at most {max}',
41
+ // PhoneInput
42
+ 'ui.phone_input.mic_aria_label': 'Hold to speak',
43
+ 'ui.phone_input.downloading_model': 'Downloading Whisper model... {progress}%',
44
+ 'ui.phone_input.invalid': 'Invalid phone number',
45
+ // SearchInput
46
+ 'ui.search_input.clear_aria_label': 'Clear search',
47
+ // TextInput
48
+ 'ui.text_input.mic_aria_label': 'Hold to speak',
49
+ 'ui.text_input.downloading_model': 'Downloading Whisper model... {progress}%',
50
+ 'ui.text_input.invalid_email': 'Invalid email address',
51
+ // TextareaInput
52
+ 'ui.textarea_input.mic_aria_label': 'Hold to speak',
53
+ 'ui.textarea_input.downloading_model': 'Downloading Whisper model... {progress}%',
54
+ });
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Workspace / admin / browser-AI message catalog (i18n, Sweep S13 #1418).
3
+ *
4
+ * English code defaults for user-facing strings in the workspace shell, admin
5
+ * panels, and browser-AI test components. Keys use the `ui` namespace and follow
6
+ * `ui.<component_snake>.<descriptor_snake>`. Client-safe (no languages root
7
+ * import). Registered via `defineMessages` so the client `t` / `<Trans>` fall
8
+ * back to these defaults when no server snapshot is present.
9
+ */
10
+ export declare const M: {
11
+ readonly 'ui.stt_test.heading': "ui.stt_test.heading";
12
+ readonly 'ui.stt_test.adapter_browser': "ui.stt_test.adapter_browser";
13
+ readonly 'ui.stt_test.adapter_whisper_wasm': "ui.stt_test.adapter_whisper_wasm";
14
+ readonly 'ui.stt_test.adapter_whisper_cpp': "ui.stt_test.adapter_whisper_cpp";
15
+ readonly 'ui.stt_test.status_initializing': "ui.stt_test.status_initializing";
16
+ readonly 'ui.stt_test.status_ready': "ui.stt_test.status_ready";
17
+ readonly 'ui.stt_test.status_not_initialized': "ui.stt_test.status_not_initialized";
18
+ readonly 'ui.agent_admin_panel.no_panel_message': "ui.agent_admin_panel.no_panel_message";
19
+ readonly 'ui.agent_admin_panel.no_panel_hint': "ui.agent_admin_panel.no_panel_hint";
20
+ readonly 'ui.agent_admin_tabs.no_slots': "ui.agent_admin_tabs.no_slots";
21
+ readonly 'ui.agent_admin_tabs.tablist_label': "ui.agent_admin_tabs.tablist_label";
22
+ readonly 'ui.agent_settings_shell.no_agents_message': "ui.agent_settings_shell.no_agents_message";
23
+ readonly 'ui.agent_settings_shell.no_agents_hint': "ui.agent_settings_shell.no_agents_hint";
24
+ readonly 'ui.workspace_shell.close_navigation': "ui.workspace_shell.close_navigation";
25
+ readonly 'ui.workspace_shell.close_inspector': "ui.workspace_shell.close_inspector";
26
+ readonly 'ui.workspace_shell.primary_navigation': "ui.workspace_shell.primary_navigation";
27
+ readonly 'ui.workspace_shell.workspace_navigation': "ui.workspace_shell.workspace_navigation";
28
+ readonly 'ui.workspace_shell.inspector_tools': "ui.workspace_shell.inspector_tools";
29
+ readonly 'ui.tools_dock.no_tools_available': "ui.tools_dock.no_tools_available";
30
+ readonly 'ui.tools_dock.no_tools_context': "ui.tools_dock.no_tools_context";
31
+ readonly 'ui.tools_dock.select_tool': "ui.tools_dock.select_tool";
32
+ readonly 'ui.tools_dock.workspace_tools': "ui.tools_dock.workspace_tools";
33
+ };
34
+ //# sourceMappingURL=strings.workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strings.workspace.d.ts","sourceRoot":"","sources":["../../src/i18n/strings.workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;CAuCZ,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Workspace / admin / browser-AI message catalog (i18n, Sweep S13 #1418).
3
+ *
4
+ * English code defaults for user-facing strings in the workspace shell, admin
5
+ * panels, and browser-AI test components. Keys use the `ui` namespace and follow
6
+ * `ui.<component_snake>.<descriptor_snake>`. Client-safe (no languages root
7
+ * import). Registered via `defineMessages` so the client `t` / `<Trans>` fall
8
+ * back to these defaults when no server snapshot is present.
9
+ */
10
+ import { defineMessages } from '@happyvertical/smrt-ui/i18n';
11
+ export const M = defineMessages({
12
+ // browser-ai/svelte/components/STTTest.svelte
13
+ 'ui.stt_test.heading': 'STT Adapter Test',
14
+ 'ui.stt_test.adapter_browser': 'Browser (Web Speech API)',
15
+ 'ui.stt_test.adapter_whisper_wasm': 'Whisper WASM (v2)',
16
+ 'ui.stt_test.adapter_whisper_cpp': 'Whisper CPP',
17
+ 'ui.stt_test.status_initializing': 'Initializing...',
18
+ 'ui.stt_test.status_ready': 'Ready',
19
+ 'ui.stt_test.status_not_initialized': 'Not initialized',
20
+ // components/admin/AgentAdminPanel.svelte
21
+ 'ui.agent_admin_panel.no_panel_message': 'No admin panel registered for',
22
+ 'ui.agent_admin_panel.no_panel_hint': "Import the agent's admin package to register its panels.",
23
+ // components/admin/AgentAdminTabs.svelte
24
+ 'ui.agent_admin_tabs.no_slots': 'No configuration slots available for this agent.',
25
+ 'ui.agent_admin_tabs.tablist_label': 'Agent configuration tabs',
26
+ // components/admin/AgentSettingsShell.svelte
27
+ 'ui.agent_settings_shell.no_agents_message': 'No agents configured for this site.',
28
+ 'ui.agent_settings_shell.no_agents_hint': 'Agents are discovered by matching their context field to the site domain.',
29
+ // components/workspace/WorkspaceShell.svelte
30
+ 'ui.workspace_shell.close_navigation': 'Close navigation',
31
+ 'ui.workspace_shell.close_inspector': 'Close inspector',
32
+ 'ui.workspace_shell.primary_navigation': 'Primary navigation',
33
+ 'ui.workspace_shell.workspace_navigation': 'Workspace navigation',
34
+ 'ui.workspace_shell.inspector_tools': 'Inspector tools',
35
+ // components/workspace/tools-dock/ToolsDock.svelte
36
+ 'ui.tools_dock.no_tools_available': 'No tools available',
37
+ 'ui.tools_dock.no_tools_context': 'No tools are available for the current context.',
38
+ 'ui.tools_dock.select_tool': 'Select a tool to begin.',
39
+ 'ui.tools_dock.workspace_tools': 'Workspace tools',
40
+ });
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @happyvertical/smrt-svelte
3
+ *
4
+ * Top-of-stack Svelte 5 integration layer for SMRT: the app `Provider`, auth /
5
+ * AI hooks, browser-AI adapters, server-side i18n, and the domain-aware
6
+ * composite components (admin, memberships, roles, module, workspace, forms).
7
+ *
8
+ * Domain-agnostic UI primitives, the i18n client, the theme system, and the
9
+ * module UI registry now live in `@happyvertical/smrt-ui` — import those from
10
+ * there (e.g. `@happyvertical/smrt-ui/ui`, `@happyvertical/smrt-ui/i18n`).
11
+ */
12
+ export * from './components/admin/index.js';
13
+ export * from './components/forms/index.js';
14
+ export * from './components/module/index.js';
15
+ export * from './hooks/index.js';
16
+ export { default as Provider } from './Provider.svelte';
17
+ export * from './state/index.js';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,cAAc,6BAA6B,CAAC;AAE5C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kBAAkB,CAAC;AAEjC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAExD,cAAc,kBAAkB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @happyvertical/smrt-svelte
3
+ *
4
+ * Top-of-stack Svelte 5 integration layer for SMRT: the app `Provider`, auth /
5
+ * AI hooks, browser-AI adapters, server-side i18n, and the domain-aware
6
+ * composite components (admin, memberships, roles, module, workspace, forms).
7
+ *
8
+ * Domain-agnostic UI primitives, the i18n client, the theme system, and the
9
+ * module UI registry now live in `@happyvertical/smrt-ui` — import those from
10
+ * there (e.g. `@happyvertical/smrt-ui/ui`, `@happyvertical/smrt-ui/i18n`).
11
+ */
12
+ // Admin components
13
+ export * from './components/admin/index.js';
14
+ // Form components
15
+ export * from './components/forms/index.js';
16
+ // Module components (for dynamic module UI rendering)
17
+ export * from './components/module/index.js';
18
+ // Hooks
19
+ export * from './hooks/index.js';
20
+ // Core - App wrapper/provider
21
+ export { default as Provider } from './Provider.svelte';
22
+ // State management
23
+ export * from './state/index.js';
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Unit tests for the warm client cache (coverage uplift, S6 gate). Module-level
3
+ * Map caches for STT/TTS/LLM adapters — get/set/update/remove + stats.
4
+ */
5
+ import { describe, expect, it, vi } from 'vitest';
6
+ import { getCachedLLM, getCachedSTT, getCachedTTS, getCacheStats, removeCachedLLM, removeCachedSTT, removeCachedTTS, setCachedLLM, setCachedSTT, setCachedTTS, updateLLMCacheState, updateSTTCacheState, updateTTSCacheState, } from '../warm-clients';
7
+ const fakeAdapter = () => ({ dispose: vi.fn() });
8
+ describe('warm client cache', () => {
9
+ it('STT: set / get / update / remove', () => {
10
+ const adapter = fakeAdapter();
11
+ setCachedSTT('whisper-wasm', adapter);
12
+ expect(getCachedSTT('whisper-wasm')?.adapter).toBe(adapter);
13
+ updateSTTCacheState('whisper-wasm', { downloadProgress: 50 });
14
+ expect(getCachedSTT('whisper-wasm')?.downloadProgress).toBe(50);
15
+ removeCachedSTT('whisper-wasm');
16
+ expect(getCachedSTT('whisper-wasm')).toBeUndefined();
17
+ });
18
+ it('TTS: set / get / update / remove', () => {
19
+ const adapter = fakeAdapter();
20
+ setCachedTTS('browser-synthesis', adapter);
21
+ expect(getCachedTTS('browser-synthesis')?.adapter).toBe(adapter);
22
+ updateTTSCacheState('browser-synthesis', { initState: 'ready' });
23
+ removeCachedTTS('browser-synthesis');
24
+ expect(getCachedTTS('browser-synthesis')).toBeUndefined();
25
+ });
26
+ it('LLM: set / get / update / remove', () => {
27
+ const adapter = fakeAdapter();
28
+ setCachedLLM('webllm', adapter);
29
+ expect(getCachedLLM('webllm')?.adapter).toBe(adapter);
30
+ updateLLMCacheState('webllm', { downloadProgress: 10 });
31
+ removeCachedLLM('webllm');
32
+ expect(getCachedLLM('webllm')).toBeUndefined();
33
+ });
34
+ it('getCacheStats reports cache contents', () => {
35
+ setCachedSTT('whisper-cpp', fakeAdapter());
36
+ const stats = getCacheStats();
37
+ expect(stats).toBeDefined();
38
+ removeCachedSTT('whisper-cpp');
39
+ });
40
+ });