@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.
- package/AGENTS.md +317 -0
- package/CLAUDE.md +1 -0
- package/LICENSE +7 -0
- package/README.md +185 -0
- package/dist/Provider.svelte +204 -0
- package/dist/Provider.svelte.d.ts +73 -0
- package/dist/Provider.svelte.d.ts.map +1 -0
- package/dist/__tests__/app-state.test.js +156 -0
- package/dist/__tests__/warm-clients.test.js +186 -0
- package/dist/browser-ai/adapters/llm/factory.d.ts +38 -0
- package/dist/browser-ai/adapters/llm/factory.d.ts.map +1 -0
- package/dist/browser-ai/adapters/llm/factory.js +91 -0
- package/dist/browser-ai/adapters/llm/index.d.ts +7 -0
- package/dist/browser-ai/adapters/llm/index.d.ts.map +1 -0
- package/dist/browser-ai/adapters/llm/index.js +6 -0
- package/dist/browser-ai/adapters/llm/types.d.ts +182 -0
- package/dist/browser-ai/adapters/llm/types.d.ts.map +1 -0
- package/dist/browser-ai/adapters/llm/types.js +43 -0
- package/dist/browser-ai/adapters/llm/webllm.d.ts +33 -0
- package/dist/browser-ai/adapters/llm/webllm.d.ts.map +1 -0
- package/dist/browser-ai/adapters/llm/webllm.js +225 -0
- package/dist/browser-ai/adapters/stt/browser-speech.d.ts +31 -0
- package/dist/browser-ai/adapters/stt/browser-speech.d.ts.map +1 -0
- package/dist/browser-ai/adapters/stt/browser-speech.js +217 -0
- package/dist/browser-ai/adapters/stt/factory.d.ts +49 -0
- package/dist/browser-ai/adapters/stt/factory.d.ts.map +1 -0
- package/dist/browser-ai/adapters/stt/factory.js +110 -0
- package/dist/browser-ai/adapters/stt/index.d.ts +9 -0
- package/dist/browser-ai/adapters/stt/index.d.ts.map +1 -0
- package/dist/browser-ai/adapters/stt/index.js +8 -0
- package/dist/browser-ai/adapters/stt/types.d.ts +154 -0
- package/dist/browser-ai/adapters/stt/types.d.ts.map +1 -0
- package/dist/browser-ai/adapters/stt/types.js +4 -0
- package/dist/browser-ai/adapters/stt/whisper-cpp.d.ts +46 -0
- package/dist/browser-ai/adapters/stt/whisper-cpp.d.ts.map +1 -0
- package/dist/browser-ai/adapters/stt/whisper-cpp.js +348 -0
- package/dist/browser-ai/adapters/stt/whisper-wasm.d.ts +51 -0
- package/dist/browser-ai/adapters/stt/whisper-wasm.d.ts.map +1 -0
- package/dist/browser-ai/adapters/stt/whisper-wasm.js +380 -0
- package/dist/browser-ai/adapters/tts/browser-synthesis.d.ts +42 -0
- package/dist/browser-ai/adapters/tts/browser-synthesis.d.ts.map +1 -0
- package/dist/browser-ai/adapters/tts/browser-synthesis.js +235 -0
- package/dist/browser-ai/adapters/tts/factory.d.ts +53 -0
- package/dist/browser-ai/adapters/tts/factory.d.ts.map +1 -0
- package/dist/browser-ai/adapters/tts/factory.js +92 -0
- package/dist/browser-ai/adapters/tts/index.d.ts +7 -0
- package/dist/browser-ai/adapters/tts/index.d.ts.map +1 -0
- package/dist/browser-ai/adapters/tts/index.js +6 -0
- package/dist/browser-ai/adapters/tts/types.d.ts +140 -0
- package/dist/browser-ai/adapters/tts/types.d.ts.map +1 -0
- package/dist/browser-ai/adapters/tts/types.js +4 -0
- package/dist/browser-ai/capabilities/detector.d.ts +38 -0
- package/dist/browser-ai/capabilities/detector.d.ts.map +1 -0
- package/dist/browser-ai/capabilities/detector.js +211 -0
- package/dist/browser-ai/core/errors.d.ts +62 -0
- package/dist/browser-ai/core/errors.d.ts.map +1 -0
- package/dist/browser-ai/core/errors.js +92 -0
- package/dist/browser-ai/core/index.d.ts +6 -0
- package/dist/browser-ai/core/index.d.ts.map +1 -0
- package/dist/browser-ai/core/index.js +5 -0
- package/dist/browser-ai/core/types.d.ts +115 -0
- package/dist/browser-ai/core/types.d.ts.map +1 -0
- package/dist/browser-ai/core/types.js +34 -0
- package/dist/browser-ai/index.d.ts +12 -0
- package/dist/browser-ai/index.d.ts.map +1 -0
- package/dist/browser-ai/index.js +16 -0
- package/dist/browser-ai/svelte/components/AILoadingOverlay.svelte +77 -0
- package/dist/browser-ai/svelte/components/AILoadingOverlay.svelte.d.ts +16 -0
- package/dist/browser-ai/svelte/components/AILoadingOverlay.svelte.d.ts.map +1 -0
- package/dist/browser-ai/svelte/components/CapabilityGate.svelte +57 -0
- package/dist/browser-ai/svelte/components/CapabilityGate.svelte.d.ts +15 -0
- package/dist/browser-ai/svelte/components/CapabilityGate.svelte.d.ts.map +1 -0
- package/dist/browser-ai/svelte/components/DownloadProgress.svelte +141 -0
- package/dist/browser-ai/svelte/components/DownloadProgress.svelte.d.ts +15 -0
- package/dist/browser-ai/svelte/components/DownloadProgress.svelte.d.ts.map +1 -0
- package/dist/browser-ai/svelte/components/STTTest.svelte +379 -0
- package/dist/browser-ai/svelte/components/STTTest.svelte.d.ts +9 -0
- package/dist/browser-ai/svelte/components/STTTest.svelte.d.ts.map +1 -0
- package/dist/browser-ai/svelte/components/VoiceInput.svelte +200 -0
- package/dist/browser-ai/svelte/components/VoiceInput.svelte.d.ts +16 -0
- package/dist/browser-ai/svelte/components/VoiceInput.svelte.d.ts.map +1 -0
- package/dist/browser-ai/svelte/index.d.ts +15 -0
- package/dist/browser-ai/svelte/index.d.ts.map +1 -0
- package/dist/browser-ai/svelte/index.js +28 -0
- package/dist/browser-ai/ui.d.ts +16 -0
- package/dist/browser-ai/ui.d.ts.map +1 -0
- package/dist/browser-ai/ui.js +67 -0
- package/dist/components/admin/AgentAdminPanel.svelte +111 -0
- package/dist/components/admin/AgentAdminPanel.svelte.d.ts +25 -0
- package/dist/components/admin/AgentAdminPanel.svelte.d.ts.map +1 -0
- package/dist/components/admin/AgentAdminTabs.svelte +280 -0
- package/dist/components/admin/AgentAdminTabs.svelte.d.ts +23 -0
- package/dist/components/admin/AgentAdminTabs.svelte.d.ts.map +1 -0
- package/dist/components/admin/AgentSettingsShell.svelte +257 -0
- package/dist/components/admin/AgentSettingsShell.svelte.d.ts +33 -0
- package/dist/components/admin/AgentSettingsShell.svelte.d.ts.map +1 -0
- package/dist/components/admin/index.d.ts +5 -0
- package/dist/components/admin/index.d.ts.map +1 -0
- package/dist/components/admin/index.js +6 -0
- package/dist/components/forms/AddressInput.svelte +500 -0
- package/dist/components/forms/AddressInput.svelte.d.ts +36 -0
- package/dist/components/forms/AddressInput.svelte.d.ts.map +1 -0
- package/dist/components/forms/CheckboxInput.svelte +208 -0
- package/dist/components/forms/CheckboxInput.svelte.d.ts +20 -0
- package/dist/components/forms/CheckboxInput.svelte.d.ts.map +1 -0
- package/dist/components/forms/DateRangeInput.svelte +628 -0
- package/dist/components/forms/DateRangeInput.svelte.d.ts +33 -0
- package/dist/components/forms/DateRangeInput.svelte.d.ts.map +1 -0
- package/dist/components/forms/DateTimeInput.svelte +521 -0
- package/dist/components/forms/DateTimeInput.svelte.d.ts +24 -0
- package/dist/components/forms/DateTimeInput.svelte.d.ts.map +1 -0
- package/dist/components/forms/FileUpload.svelte +358 -0
- package/dist/components/forms/FileUpload.svelte.d.ts +22 -0
- package/dist/components/forms/FileUpload.svelte.d.ts.map +1 -0
- package/dist/components/forms/Form.svelte +771 -0
- package/dist/components/forms/Form.svelte.d.ts +26 -0
- package/dist/components/forms/Form.svelte.d.ts.map +1 -0
- package/dist/components/forms/FormGroup.svelte +86 -0
- package/dist/components/forms/FormGroup.svelte.d.ts +13 -0
- package/dist/components/forms/FormGroup.svelte.d.ts.map +1 -0
- package/dist/components/forms/FormMicButton.svelte +179 -0
- package/dist/components/forms/FormMicButton.svelte.d.ts +10 -0
- package/dist/components/forms/FormMicButton.svelte.d.ts.map +1 -0
- package/dist/components/forms/Input.svelte +83 -0
- package/dist/components/forms/Input.svelte.d.ts +9 -0
- package/dist/components/forms/Input.svelte.d.ts.map +1 -0
- package/dist/components/forms/MeasurementInput.svelte +505 -0
- package/dist/components/forms/MeasurementInput.svelte.d.ts +35 -0
- package/dist/components/forms/MeasurementInput.svelte.d.ts.map +1 -0
- package/dist/components/forms/MoneyInput.svelte +412 -0
- package/dist/components/forms/MoneyInput.svelte.d.ts +30 -0
- package/dist/components/forms/MoneyInput.svelte.d.ts.map +1 -0
- package/dist/components/forms/NumberInput.svelte +310 -0
- package/dist/components/forms/NumberInput.svelte.d.ts +28 -0
- package/dist/components/forms/NumberInput.svelte.d.ts.map +1 -0
- package/dist/components/forms/PhoneInput.svelte +530 -0
- package/dist/components/forms/PhoneInput.svelte.d.ts +22 -0
- package/dist/components/forms/PhoneInput.svelte.d.ts.map +1 -0
- package/dist/components/forms/SearchInput.svelte +358 -0
- package/dist/components/forms/SearchInput.svelte.d.ts +33 -0
- package/dist/components/forms/SearchInput.svelte.d.ts.map +1 -0
- package/dist/components/forms/Select.svelte +83 -0
- package/dist/components/forms/Select.svelte.d.ts +11 -0
- package/dist/components/forms/Select.svelte.d.ts.map +1 -0
- package/dist/components/forms/SelectInput.svelte +254 -0
- package/dist/components/forms/SelectInput.svelte.d.ts +25 -0
- package/dist/components/forms/SelectInput.svelte.d.ts.map +1 -0
- package/dist/components/forms/TextInput.svelte +415 -0
- package/dist/components/forms/TextInput.svelte.d.ts +26 -0
- package/dist/components/forms/TextInput.svelte.d.ts.map +1 -0
- package/dist/components/forms/Textarea.svelte +85 -0
- package/dist/components/forms/Textarea.svelte.d.ts +10 -0
- package/dist/components/forms/Textarea.svelte.d.ts.map +1 -0
- package/dist/components/forms/TextareaInput.svelte +386 -0
- package/dist/components/forms/TextareaInput.svelte.d.ts +26 -0
- package/dist/components/forms/TextareaInput.svelte.d.ts.map +1 -0
- package/dist/components/forms/Toggle.svelte +217 -0
- package/dist/components/forms/Toggle.svelte.d.ts +37 -0
- package/dist/components/forms/Toggle.svelte.d.ts.map +1 -0
- package/dist/components/forms/__tests__/AddressInput.behavior.test.js +122 -0
- package/dist/components/forms/__tests__/CheckboxInput.test.js +92 -0
- package/dist/components/forms/__tests__/DateRangeInput.behavior.test.js +135 -0
- package/dist/components/forms/__tests__/DateTimeInput.behavior.test.js +103 -0
- package/dist/components/forms/__tests__/FileUpload.test.js +90 -0
- package/dist/components/forms/__tests__/Form.behavior.test.js +137 -0
- package/dist/components/forms/__tests__/Form.test.js +58 -0
- package/dist/components/forms/__tests__/FormGroup.test.js +48 -0
- package/dist/components/forms/__tests__/FormMicButton.test.js +86 -0
- package/dist/components/forms/__tests__/Input.test.js +49 -0
- package/dist/components/forms/__tests__/MeasurementInput.behavior.test.js +129 -0
- package/dist/components/forms/__tests__/MoneyInput.behavior.test.js +124 -0
- package/dist/components/forms/__tests__/NumberInput.behavior.test.js +141 -0
- package/dist/components/forms/__tests__/PhoneInput.behavior.test.js +96 -0
- package/dist/components/forms/__tests__/SearchInput.test.js +79 -0
- package/dist/components/forms/__tests__/Select.test.js +37 -0
- package/dist/components/forms/__tests__/SelectInput.behavior.test.js +132 -0
- package/dist/components/forms/__tests__/TextInput.behavior.test.js +131 -0
- package/dist/components/forms/__tests__/Textarea.test.js +39 -0
- package/dist/components/forms/__tests__/TextareaInput.behavior.test.js +96 -0
- package/dist/components/forms/__tests__/Toggle.test.js +87 -0
- package/dist/components/forms/__tests__/composite-inputs-a11y.test.js +69 -0
- package/dist/components/forms/__tests__/form-group-input.fixture.svelte +16 -0
- package/dist/components/forms/__tests__/form-group-input.fixture.svelte.d.ts +9 -0
- package/dist/components/forms/__tests__/form-group-input.fixture.svelte.d.ts.map +1 -0
- package/dist/components/forms/__tests__/form-with-fields.fixture.svelte +33 -0
- package/dist/components/forms/__tests__/form-with-fields.fixture.svelte.d.ts +12 -0
- package/dist/components/forms/__tests__/form-with-fields.fixture.svelte.d.ts.map +1 -0
- package/dist/components/forms/__tests__/rich-inputs-a11y.test.js +87 -0
- package/dist/components/forms/index.d.ts +25 -0
- package/dist/components/forms/index.d.ts.map +1 -0
- package/dist/components/forms/index.js +25 -0
- package/dist/components/forms/types.d.ts +33 -0
- package/dist/components/forms/types.d.ts.map +1 -0
- package/dist/components/forms/types.js +4 -0
- package/dist/components/module/ModulePanel.svelte +134 -0
- package/dist/components/module/ModulePanel.svelte.d.ts +22 -0
- package/dist/components/module/ModulePanel.svelte.d.ts.map +1 -0
- package/dist/components/module/index.d.ts +5 -0
- package/dist/components/module/index.d.ts.map +1 -0
- package/dist/components/module/index.js +4 -0
- package/dist/components/workspace/Breadcrumbs.svelte +141 -0
- package/dist/components/workspace/Breadcrumbs.svelte.d.ts +21 -0
- package/dist/components/workspace/Breadcrumbs.svelte.d.ts.map +1 -0
- package/dist/components/workspace/NavTree.svelte +354 -0
- package/dist/components/workspace/NavTree.svelte.d.ts +45 -0
- package/dist/components/workspace/NavTree.svelte.d.ts.map +1 -0
- package/dist/components/workspace/README.md +34 -0
- package/dist/components/workspace/RoleShell.svelte +309 -0
- package/dist/components/workspace/RoleShell.svelte.d.ts +91 -0
- package/dist/components/workspace/RoleShell.svelte.d.ts.map +1 -0
- package/dist/components/workspace/WorkspaceShell.svelte +951 -0
- package/dist/components/workspace/WorkspaceShell.svelte.d.ts +112 -0
- package/dist/components/workspace/WorkspaceShell.svelte.d.ts.map +1 -0
- package/dist/components/workspace/__tests__/RoleShell.test.js +772 -0
- package/dist/components/workspace/__tests__/WorkspaceShell.test.js +630 -0
- package/dist/components/workspace/__tests__/breadcrumbs-helpers.test.js +141 -0
- package/dist/components/workspace/__tests__/context-forwarding-harness.svelte +45 -0
- package/dist/components/workspace/__tests__/context-forwarding-harness.svelte.d.ts +21 -0
- package/dist/components/workspace/__tests__/context-forwarding-harness.svelte.d.ts.map +1 -0
- package/dist/components/workspace/__tests__/define-tools-dock.test.js +1010 -0
- package/dist/components/workspace/__tests__/harness.svelte +25 -0
- package/dist/components/workspace/__tests__/harness.svelte.d.ts +14 -0
- package/dist/components/workspace/__tests__/harness.svelte.d.ts.map +1 -0
- package/dist/components/workspace/__tests__/index.test.js +37 -0
- package/dist/components/workspace/__tests__/manifest-nav-helpers.test.js +24 -0
- package/dist/components/workspace/__tests__/manifest-nav.test.js +599 -0
- package/dist/components/workspace/__tests__/nav-helpers.test.js +95 -0
- package/dist/components/workspace/__tests__/render-harness.svelte +66 -0
- package/dist/components/workspace/__tests__/render-harness.svelte.d.ts +32 -0
- package/dist/components/workspace/__tests__/render-harness.svelte.d.ts.map +1 -0
- package/dist/components/workspace/__tests__/render-tools-dock.test.js +243 -0
- package/dist/components/workspace/__tests__/role-shell-bind-harness.svelte +58 -0
- package/dist/components/workspace/__tests__/role-shell-bind-harness.svelte.d.ts +16 -0
- package/dist/components/workspace/__tests__/role-shell-bind-harness.svelte.d.ts.map +1 -0
- package/dist/components/workspace/__tests__/role-shell-switch-harness.svelte +41 -0
- package/dist/components/workspace/__tests__/role-shell-switch-harness.svelte.d.ts +13 -0
- package/dist/components/workspace/__tests__/role-shell-switch-harness.svelte.d.ts.map +1 -0
- package/dist/components/workspace/__tests__/test-icon.svelte +17 -0
- package/dist/components/workspace/__tests__/test-icon.svelte.d.ts +19 -0
- package/dist/components/workspace/__tests__/test-icon.svelte.d.ts.map +1 -0
- package/dist/components/workspace/__tests__/typed-tool-fixture/TypedTool.svelte +38 -0
- package/dist/components/workspace/__tests__/typed-tool-fixture/TypedTool.svelte.d.ts +22 -0
- package/dist/components/workspace/__tests__/typed-tool-fixture/TypedTool.svelte.d.ts.map +1 -0
- package/dist/components/workspace/__tests__/typed-tool-fixture/register-typed-tool.d.ts +65 -0
- package/dist/components/workspace/__tests__/typed-tool-fixture/register-typed-tool.d.ts.map +1 -0
- package/dist/components/workspace/__tests__/typed-tool-fixture/register-typed-tool.js +115 -0
- package/dist/components/workspace/__tests__/typed-tool-fixture/typed-tool-types.d.ts +15 -0
- package/dist/components/workspace/__tests__/typed-tool-fixture/typed-tool-types.d.ts.map +1 -0
- package/dist/components/workspace/__tests__/typed-tool-fixture/typed-tool-types.js +7 -0
- package/dist/components/workspace/__tests__/typed-tool-fixture.test.js +115 -0
- package/dist/components/workspace/__tests__/use-harness-orphan.svelte +9 -0
- package/dist/components/workspace/__tests__/use-harness-orphan.svelte.d.ts +19 -0
- package/dist/components/workspace/__tests__/use-harness-orphan.svelte.d.ts.map +1 -0
- package/dist/components/workspace/__tests__/use-harness.svelte +23 -0
- package/dist/components/workspace/__tests__/use-harness.svelte.d.ts +8 -0
- package/dist/components/workspace/__tests__/use-harness.svelte.d.ts.map +1 -0
- package/dist/components/workspace/__tests__/use-tools-dock.test.js +33 -0
- package/dist/components/workspace/__tests__/workspace-shell-bind-harness.svelte +43 -0
- package/dist/components/workspace/__tests__/workspace-shell-bind-harness.svelte.d.ts +11 -0
- package/dist/components/workspace/__tests__/workspace-shell-bind-harness.svelte.d.ts.map +1 -0
- package/dist/components/workspace/breadcrumbs-helpers.d.ts +44 -0
- package/dist/components/workspace/breadcrumbs-helpers.d.ts.map +1 -0
- package/dist/components/workspace/breadcrumbs-helpers.js +88 -0
- package/dist/components/workspace/index.d.ts +16 -0
- package/dist/components/workspace/index.d.ts.map +1 -0
- package/dist/components/workspace/index.js +14 -0
- package/dist/components/workspace/manifest-nav.d.ts +200 -0
- package/dist/components/workspace/manifest-nav.d.ts.map +1 -0
- package/dist/components/workspace/manifest-nav.js +408 -0
- package/dist/components/workspace/nav-helpers.d.ts +36 -0
- package/dist/components/workspace/nav-helpers.d.ts.map +1 -0
- package/dist/components/workspace/nav-helpers.js +60 -0
- package/dist/components/workspace/server/__tests__/compose-availability.test.js +383 -0
- package/dist/components/workspace/server/__tests__/typed-context-fixture.d.ts +78 -0
- package/dist/components/workspace/server/__tests__/typed-context-fixture.d.ts.map +1 -0
- package/dist/components/workspace/server/__tests__/typed-context-fixture.js +104 -0
- package/dist/components/workspace/server/compose-availability.d.ts +73 -0
- package/dist/components/workspace/server/compose-availability.d.ts.map +1 -0
- package/dist/components/workspace/server/compose-availability.js +114 -0
- package/dist/components/workspace/server/index.d.ts +13 -0
- package/dist/components/workspace/server/index.d.ts.map +1 -0
- package/dist/components/workspace/server/index.js +11 -0
- package/dist/components/workspace/server/types.d.ts +108 -0
- package/dist/components/workspace/server/types.d.ts.map +1 -0
- package/dist/components/workspace/server/types.js +11 -0
- package/dist/components/workspace/tools-dock/ToolsDock.svelte +565 -0
- package/dist/components/workspace/tools-dock/ToolsDock.svelte.d.ts +14 -0
- package/dist/components/workspace/tools-dock/ToolsDock.svelte.d.ts.map +1 -0
- package/dist/components/workspace/tools-dock/define-tools-dock.svelte.d.ts +143 -0
- package/dist/components/workspace/tools-dock/define-tools-dock.svelte.d.ts.map +1 -0
- package/dist/components/workspace/tools-dock/define-tools-dock.svelte.js +487 -0
- package/dist/components/workspace/tools-dock/use-tools-dock.d.ts +41 -0
- package/dist/components/workspace/tools-dock/use-tools-dock.d.ts.map +1 -0
- package/dist/components/workspace/tools-dock/use-tools-dock.js +50 -0
- package/dist/components/workspace/types.d.ts +372 -0
- package/dist/components/workspace/types.d.ts.map +1 -0
- package/dist/components/workspace/types.js +6 -0
- package/dist/hooks/index.d.ts +11 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +10 -0
- package/dist/hooks/useAppState.svelte.d.ts +46 -0
- package/dist/hooks/useAppState.svelte.d.ts.map +1 -0
- package/dist/hooks/useAppState.svelte.js +59 -0
- package/dist/hooks/useAuth.svelte.d.ts +41 -0
- package/dist/hooks/useAuth.svelte.d.ts.map +1 -0
- package/dist/hooks/useAuth.svelte.js +43 -0
- package/dist/hooks/useLLM.svelte.d.ts +69 -0
- package/dist/hooks/useLLM.svelte.d.ts.map +1 -0
- package/dist/hooks/useLLM.svelte.js +85 -0
- package/dist/hooks/useSTT.svelte.d.ts +68 -0
- package/dist/hooks/useSTT.svelte.d.ts.map +1 -0
- package/dist/hooks/useSTT.svelte.js +97 -0
- package/dist/hooks/useSocket.svelte.d.ts +45 -0
- package/dist/hooks/useSocket.svelte.d.ts.map +1 -0
- package/dist/hooks/useSocket.svelte.js +54 -0
- package/dist/hooks/useTTS.svelte.d.ts +65 -0
- package/dist/hooks/useTTS.svelte.d.ts.map +1 -0
- package/dist/hooks/useTTS.svelte.js +93 -0
- package/dist/hooks/useTheme.d.ts +13 -0
- package/dist/hooks/useTheme.d.ts.map +1 -0
- package/dist/hooks/useTheme.js +16 -0
- package/dist/i18n/__tests__/server.spec.js +50 -0
- package/dist/i18n/server.d.ts +47 -0
- package/dist/i18n/server.d.ts.map +1 -0
- package/dist/i18n/server.js +58 -0
- package/dist/i18n/strings.forms.d.ts +33 -0
- package/dist/i18n/strings.forms.d.ts.map +1 -0
- package/dist/i18n/strings.forms.js +54 -0
- package/dist/i18n/strings.workspace.d.ts +34 -0
- package/dist/i18n/strings.workspace.d.ts.map +1 -0
- package/dist/i18n/strings.workspace.js +40 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/state/__tests__/warm-clients.test.js +40 -0
- package/dist/state/app-state.d.ts +308 -0
- package/dist/state/app-state.d.ts.map +1 -0
- package/dist/state/app-state.js +64 -0
- package/dist/state/app-state.svelte.d.ts +196 -0
- package/dist/state/app-state.svelte.d.ts.map +1 -0
- package/dist/state/app-state.svelte.js +774 -0
- package/dist/state/context.d.ts +23 -0
- package/dist/state/context.d.ts.map +1 -0
- package/dist/state/context.js +32 -0
- package/dist/state/form-context.d.ts +59 -0
- package/dist/state/form-context.d.ts.map +1 -0
- package/dist/state/form-context.js +31 -0
- package/dist/state/form-group-context.d.ts +13 -0
- package/dist/state/form-group-context.d.ts.map +1 -0
- package/dist/state/form-group-context.js +28 -0
- package/dist/state/index.d.ts +9 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +8 -0
- package/dist/state/warm-clients.d.ts +136 -0
- package/dist/state/warm-clients.d.ts.map +1 -0
- package/dist/state/warm-clients.js +231 -0
- 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
|
+
});
|
package/dist/index.d.ts
ADDED
|
@@ -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
|
+
});
|