arcane-os 0.2.3 → 0.3.1

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 (118) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +8 -8
  3. package/browser-runtime/ARCANE_SDK_BROWSER_RELEASE.json +29 -22
  4. package/browser-runtime/ai/ARCANE_AI_BROWSER_SPEECH_COMPONENTS.json +203 -0
  5. package/browser-runtime/ai/browser-kokoro-worker.mjs +11 -2
  6. package/browser-runtime/ai/browser-speech-artifacts.mjs +3242 -391
  7. package/browser-runtime/ai/browser-speech-providers.mjs +1209 -157
  8. package/browser-runtime/ai/browser-speech.mjs +2 -0
  9. package/browser-runtime/ai/browser-whisper-worker.mjs +11 -2
  10. package/browser-runtime/ai/model-controller.mjs +285 -95
  11. package/browser-runtime/ai/speech-worker-client.mjs +249 -32
  12. package/browser-runtime/ai/speech-worker-runtime.mjs +2322 -167
  13. package/browser-runtime/event-manager.mjs +1097 -1
  14. package/docs/architecture.md +2 -2
  15. package/docs/event-manager.md +155 -27
  16. package/docs/reference/README.md +18 -20
  17. package/docs/reference/ai/browser-speech-package-authority.json +835 -0
  18. package/docs/reference/ai/browser-speech.md +1205 -246
  19. package/docs/reference/ai/browser-wasm.md +18 -7
  20. package/docs/reference/availability-and-normalization.md +2 -2
  21. package/docs/reference/behavioral-testing.md +28 -5
  22. package/docs/reference/cli.md +115 -7
  23. package/docs/reference/core/arcane-ai-contracts.md +1 -1
  24. package/docs/reference/event-manager.md +577 -32
  25. package/docs/reference/inventory/package-api.json +478 -2
  26. package/docs/reference/inventory/runtime-components.json +86 -37
  27. package/docs/reference/inventory/runtime-modules.json +126 -49
  28. package/docs/reference/mail.md +316 -0
  29. package/docs/reference/protocols.md +185 -33
  30. package/docs/reference/runtime-components.md +192 -80
  31. package/docs/reference/runtime-modules.md +589 -70
  32. package/docs/reference/sdk-api.md +1017 -24
  33. package/package.json +5 -4
  34. package/runtime/ARCANE_RUNTIME_RELEASE.json +145 -140
  35. package/runtime/arcane/components/app-bar.html +34 -13
  36. package/runtime/arcane/components/assistant-panel.html +110 -57
  37. package/runtime/arcane/components/calculator.html +7 -4
  38. package/runtime/arcane/components/chart.html +58 -17
  39. package/runtime/arcane/components/chat.html +606 -136
  40. package/runtime/arcane/components/conversation-view.html +13 -6
  41. package/runtime/arcane/components/dashboard-config.html +96 -59
  42. package/runtime/arcane/components/data-maintenance.html +69 -14
  43. package/runtime/arcane/components/data-view.html +53 -7
  44. package/runtime/arcane/components/directory-picker.html +118 -32
  45. package/runtime/arcane/components/document-inspector.html +47 -10
  46. package/runtime/arcane/components/file-drop.html +81 -35
  47. package/runtime/arcane/components/file-inspector.html +72 -22
  48. package/runtime/arcane/components/file-manager.html +374 -79
  49. package/runtime/arcane/components/integration-settings.html +12 -5
  50. package/runtime/arcane/components/local-ai-status.html +48 -19
  51. package/runtime/arcane/components/markdown-document.html +161 -68
  52. package/runtime/arcane/components/markdown-editor.html +110 -33
  53. package/runtime/arcane/components/media-embed.html +8 -5
  54. package/runtime/arcane/components/modal.html +15 -5
  55. package/runtime/arcane/components/output-panel.html +28 -23
  56. package/runtime/arcane/components/preferences-form.html +22 -4
  57. package/runtime/arcane/components/record-timeline.html +18 -2
  58. package/runtime/arcane/components/relationship-board.html +23 -3
  59. package/runtime/arcane/components/screen-capture.html +10 -4
  60. package/runtime/arcane/components/source-code-viewer.html +76 -9
  61. package/runtime/arcane/components/source-explanation.html +23 -3
  62. package/runtime/arcane/components/speech.html +453 -131
  63. package/runtime/arcane/components/summary-strip.html +22 -11
  64. package/runtime/arcane/components/table.html +39 -21
  65. package/runtime/arcane/components/task-progress.html +79 -21
  66. package/runtime/arcane/components/terminal-workspace.html +7 -4
  67. package/runtime/arcane/components/theme-editor.html +7 -3
  68. package/runtime/arcane/components/unified-inbox.html +9 -4
  69. package/runtime/arcane/components/voice-transcription.html +244 -72
  70. package/runtime/arcane/components/weather-widget.html +5 -3
  71. package/runtime/arcane/components/web-navigator.html +48 -8
  72. package/runtime/arcane/entities/Chat.js +1 -1
  73. package/runtime/arcane/entities/User.js +110 -23
  74. package/runtime/arcane/modules/AI.js +2117 -130
  75. package/runtime/arcane/modules/AIProviderRuntime.js +756 -13
  76. package/runtime/arcane/modules/AIRuntimeState.js +109 -52
  77. package/runtime/arcane/modules/ApiModelDatabase.js +390 -17
  78. package/runtime/arcane/modules/BrowserTestSuite.js +205 -28
  79. package/runtime/arcane/modules/CalculatorEngine.js +63 -3
  80. package/runtime/arcane/modules/CommunicationAppController.js +588 -28
  81. package/runtime/arcane/modules/CommunicationHub.js +590 -10
  82. package/runtime/arcane/modules/ComponentContracts.js +235 -37
  83. package/runtime/arcane/modules/ConversationTimebox.js +152 -33
  84. package/runtime/arcane/modules/DBLS.js +40 -7
  85. package/runtime/arcane/modules/DBOPFS.js +35 -11
  86. package/runtime/arcane/modules/DataMaintenance.js +12 -2
  87. package/runtime/arcane/modules/Errors.js +65 -7
  88. package/runtime/arcane/modules/HTMLImport.js +198 -14
  89. package/runtime/arcane/modules/LocalAIReadinessController.js +208 -29
  90. package/runtime/arcane/modules/Mail.js +738 -115
  91. package/runtime/arcane/modules/MailOutbox.mjs +1395 -0
  92. package/runtime/arcane/modules/MailTransport.mjs +197 -39
  93. package/runtime/arcane/modules/Ollama.js +36 -1
  94. package/runtime/arcane/modules/OpenMeteoWeatherProvider.js +583 -7
  95. package/runtime/arcane/modules/PreferenceStore.js +367 -33
  96. package/runtime/arcane/modules/RecordReviewStore.js +322 -23
  97. package/runtime/arcane/modules/ScreenCapture.js +1397 -15
  98. package/runtime/arcane/modules/SpeechPlayback.js +438 -41
  99. package/runtime/arcane/modules/TerminalClient.js +277 -12
  100. package/runtime/arcane/modules/ThemeBootstrap.js +80 -6
  101. package/runtime/arcane/modules/ThemeManager.js +39 -7
  102. package/runtime/arcane/modules/TimeGuard.js +131 -20
  103. package/runtime/arcane/modules/WaitForComponent.js +386 -33
  104. package/schemas/arcane-lock.schema.json +2 -2
  105. package/src/cli/main.mjs +435 -9
  106. package/src/event-manager.mjs +1097 -1
  107. package/src/import-map.mjs +21 -3
  108. package/src/index.mjs +13 -0
  109. package/src/installed-sdk-runtime.mjs +130 -0
  110. package/src/mail-api.mjs +22 -0
  111. package/src/mail-credentials.mjs +667 -0
  112. package/src/mail-server.mjs +1769 -0
  113. package/src/mail.mjs +261 -0
  114. package/src/sdk-browser-runtime.mjs +85 -41
  115. package/src/testing-loader.mjs +7 -0
  116. package/src/toolchain.mjs +3 -0
  117. package/src/workspace-runtime.mjs +804 -22
  118. package/src/workspace.mjs +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.1
4
+
5
+ - Restored ordinary warn-first Browser Speech operation with explicit
6
+ `secure:false` defaults, one concise load warning, and truthful
7
+ `unchecked`/`pending`/`verified`/`failed` integrity telemetry while keeping
8
+ strict authenticated-graph admission behind explicit `secure:true`.
9
+ - Added atomic hydration for exact saved-but-unregistered STT/TTS selections
10
+ without a transient provider fallback, including independent mixed
11
+ browser/Cloud/Core role ownership and mismatch-safe rollback.
12
+ - Continued to resolve speech runtimes, models, voices, and providers from
13
+ their upstream npm/fetch distribution paths; the SDK package redistributes
14
+ none of those third-party payloads or their legal corpora.
15
+
16
+ ## 0.3.0
17
+
18
+ - Added the branded, versioned, per-realm `globalThis.arcaneEvents` authority
19
+ and moved SDK semantic publishers onto one event-pubsub-backed source while
20
+ retaining bounded legacy EventTarget and DOM projections.
21
+ - Added independent Browser Speech STT/TTS provider ownership with initial or
22
+ later role-scoped replacement, mixed Cloud/Core/browser routes, explicit
23
+ lifecycle, and no omitted-role unload, mute, disposal, or state clobbering.
24
+ - Made Browser Speech warn-first by default: applications select version-pinned
25
+ upstream runtime/model/voice downloads and browser cache behavior, while
26
+ `secure:true` remains the explicit strict authenticated-graph option.
27
+ - Added the portable `arcane-os/mail` API, durable DBOPFS-compatible outbox,
28
+ secure local Resend gateway and CLI, event-owned reconnect drain, bounded
29
+ retries, cancellation, cleanup, and provider-acceptance evidence.
30
+ - Kept speech runtimes, model and voice bytes, third-party legal/notice files,
31
+ and corresponding-source archives out of the SDK package and release assets.
32
+
3
33
  ## 0.2.3
4
34
 
5
35
  - Made shared voice transcription consume authoritative sticky STT state,
package/README.md CHANGED
@@ -19,7 +19,7 @@ version-locked SDK runtime, while an integrated Arcane checkout uses its live
19
19
  `arcane/` runtime. Both profiles preserve the same app URLs, theme, packaging,
20
20
  event, cancellation, and browser run contracts.
21
21
 
22
- This checkout defines the `0.2.3` SDK contract. Applications pin one exact npm
22
+ This checkout defines the `0.3.1` SDK contract. Applications pin one exact npm
23
23
  version and lockfile; registry state is deliberately not baked into immutable
24
24
  application artifacts.
25
25
 
@@ -132,7 +132,7 @@ uses the same controller for automatic memory extraction.
132
132
  Create a new repository-shaped Arcane application with the exact stable SDK:
133
133
 
134
134
  ```bash
135
- npx arcane-os@0.2.3 new my-app --path ./my-app --target portable --git
135
+ npx arcane-os@0.3.1 new my-app --path ./my-app --target portable --git
136
136
  cd my-app
137
137
  npm install
138
138
  npm run check
@@ -143,7 +143,7 @@ To enroll an existing repository, install the exact SDK and initialize only
143
143
  missing Arcane files:
144
144
 
145
145
  ```bash
146
- npm install --save-dev --save-exact arcane-os@0.2.3
146
+ npm install --save-dev --save-exact arcane-os@0.3.1
147
147
  npm exec -- arcane init my-app --target portable
148
148
  ```
149
149
 
@@ -159,7 +159,7 @@ npm exec -- arcane-os targets
159
159
  No global SDK install or standalone Arcane CLI is required. The application
160
160
  repository's exact npm dependency and lockfile own the CLI and toolchain version.
161
161
 
162
- Use `npx arcane-os@0.2.3` for the initial bootstrap because it names this npm
162
+ Use `npx arcane-os@0.3.1` for the initial bootstrap because it names this npm
163
163
  package explicitly; bare `npx arcane` outside an installed project could resolve
164
164
  a different package. Both installed commands invoke the same headless toolchain.
165
165
  Project-local npm scripts use the SDK pinned by that app's `package-lock.json`,
@@ -180,7 +180,7 @@ node ./bin/arcane.mjs new local-app --path ../local-app --target portable --git
180
180
 
181
181
  # From the generated app repository
182
182
  cd ../local-app
183
- npm install --save-dev --save-exact ../arcane-os-sdk/arcane-os-0.2.3.tgz
183
+ npm install --save-dev --save-exact ../arcane-os-sdk/arcane-os-0.3.1.tgz
184
184
  npm run check
185
185
  npm ci
186
186
  ```
@@ -191,7 +191,7 @@ still verifies the installed package name and exact version, the locked runtime
191
191
  identity, and the runtime bytes. Local directory `file:` dependencies are not
192
192
  accepted because npm may install them as links; use a packed `.tgz`. A GitHub
193
193
  runner also needs that tarball at the locked path. After publication, replace
194
- the local declaration with the exact `arcane-os@0.2.3` registry package and
194
+ the local declaration with the exact `arcane-os@0.3.1` registry package and
195
195
  commit the regenerated lock.
196
196
 
197
197
  Generated repositories use `npm ci --ignore-scripts` in CI. Run dependency
@@ -304,7 +304,7 @@ recorded length through a final identity check; an appended byte, concurrent
304
304
  growth, path replacement, or hard link fails closed. NFC paths use defined
305
305
  UTF-8 byte ordering, covered by one pinned golden bundle digest on every
306
306
  supported Node/runner combination. This SDK accepts only the explicitly listed
307
- `0.2.3` bundle generation; structural validity does not imply cross-SDK
307
+ `0.3.1` bundle generation; structural validity does not imply cross-SDK
308
308
  compatibility, and a release with zero payload bytes cannot be created. Portable
309
309
  path validation rejects file/directory prefix conflicts, case-colliding prefix
310
310
  spellings, and Windows device aliases including superscript COM/LPT digits.
@@ -350,7 +350,7 @@ package installation, or assertions.
350
350
 
351
351
  ## Current target support
352
352
 
353
- Version `0.2.3` exposes one browser target and five explicitly paired
353
+ Version `0.3.1` exposes one browser target and five explicitly paired
354
354
  native development targets: a verified non-runnable portable directory, a
355
355
  Windows x64 unsigned-local-test EXE bundle, Linux x64 and Linux ARM64
356
356
  unsigned-local-test DEBs, and an Android development-signed APK. The
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "builder": "arcane-sdk-browser-runtime-v1",
4
- "sdkVersion": "0.2.3",
4
+ "sdkVersion": "0.3.1",
5
5
  "source": {
6
6
  "authority": "arcane-os-sdk",
7
7
  "repository": "https://github.com/TheWizardNexus/arcane-os-sdk.git",
@@ -28,10 +28,17 @@
28
28
  }
29
29
  ]
30
30
  },
31
- "fileCount": 25,
32
- "totalBytes": 9280047,
33
- "contentSha256": "3c82ed11b24c7b7b91b62f6dc52e0b1dcd444112a29cd48413eedc008380eb61",
31
+ "fileCount": 26,
32
+ "totalBytes": 9554968,
33
+ "contentSha256": "1493497265c330507abed847e52e65dc2ce22c15efaf5646ed7ae544b107ad6f",
34
34
  "files": [
35
+ {
36
+ "path": "ai/ARCANE_AI_BROWSER_SPEECH_COMPONENTS.json",
37
+ "sourcePath": "browser-runtime/ai/ARCANE_AI_BROWSER_SPEECH_COMPONENTS.json",
38
+ "provenance": "sdk-source-identity",
39
+ "bytes": 9233,
40
+ "sha256": "5ff2e20d2a15b4a867ec66810f196cf6225b79aa734ab3b018e8b006abfa5d39"
41
+ },
35
42
  {
36
43
  "path": "ai/ARCANE_AI_BROWSER_WASM_COMPONENTS.json",
37
44
  "sourcePath": "browser-runtime/ai/ARCANE_AI_BROWSER_WASM_COMPONENTS.json",
@@ -43,29 +50,29 @@
43
50
  "path": "ai/browser-kokoro-worker.mjs",
44
51
  "sourcePath": "browser-runtime/ai/browser-kokoro-worker.mjs",
45
52
  "provenance": "sdk-source-identity",
46
- "bytes": 110,
47
- "sha256": "5c08370aeefa6a99f4018ddaf7c0d7ac8e7189811957947ce2eba4131e19a76f"
53
+ "bytes": 345,
54
+ "sha256": "9a910b3a6818814bfd7548251e3989ac6fe5c105d541bc16fc8124ea1ba39737"
48
55
  },
49
56
  {
50
57
  "path": "ai/browser-speech-artifacts.mjs",
51
58
  "sourcePath": "browser-runtime/ai/browser-speech-artifacts.mjs",
52
59
  "provenance": "sdk-source-identity",
53
- "bytes": 36576,
54
- "sha256": "6504c01f6548a37291619cc6b69ae85da2cc1463ef12e83101eefdc92ad2ea74"
60
+ "bytes": 135988,
61
+ "sha256": "2587922a708f014ae8b4e819a607b1a5b322fc4eb969e470cd6c068b33b3adcd"
55
62
  },
56
63
  {
57
64
  "path": "ai/browser-speech-providers.mjs",
58
65
  "sourcePath": "browser-runtime/ai/browser-speech-providers.mjs",
59
66
  "provenance": "sdk-source-identity",
60
- "bytes": 26055,
61
- "sha256": "6a2c0caa227d78028f42434b86231236055f0cfe0e3d6b71a4f651f7005a2614"
67
+ "bytes": 59278,
68
+ "sha256": "84802cba366c3a54013214240ebaf3ae2896322efc965aab4054a61ca9d06aab"
62
69
  },
63
70
  {
64
71
  "path": "ai/browser-speech.mjs",
65
72
  "sourcePath": "browser-runtime/ai/browser-speech.mjs",
66
73
  "provenance": "sdk-source-identity",
67
- "bytes": 266,
68
- "sha256": "fceadaafc0755ebb39071550bb2f497df14e23bef169779f970195d678e73ffc"
74
+ "bytes": 344,
75
+ "sha256": "4e060177a1aa5ed990b54c6455085973f3edbcd8810ad50367a9618ffdadb35a"
69
76
  },
70
77
  {
71
78
  "path": "ai/browser-wasm-llm-provider.mjs",
@@ -85,8 +92,8 @@
85
92
  "path": "ai/browser-whisper-worker.mjs",
86
93
  "sourcePath": "browser-runtime/ai/browser-whisper-worker.mjs",
87
94
  "provenance": "sdk-source-identity",
88
- "bytes": 110,
89
- "sha256": "949a4dddfae712855fb83c2aed2608657fea62d09b03e131bf8faa95be7e3aed"
95
+ "bytes": 345,
96
+ "sha256": "51f332a86c8b4809ce6a25d34d7cf2de9f0664bd9fbc35bc7ef273c5c550291d"
90
97
  },
91
98
  {
92
99
  "path": "ai/browser-wllama-runtime.mjs",
@@ -106,22 +113,22 @@
106
113
  "path": "ai/model-controller.mjs",
107
114
  "sourcePath": "browser-runtime/ai/model-controller.mjs",
108
115
  "provenance": "sdk-source-identity",
109
- "bytes": 23672,
110
- "sha256": "a36aea3e62835cf568bd03ebc4be0fa8e0112a15dc9fec3c213b1c8cefa33b56"
116
+ "bytes": 31466,
117
+ "sha256": "5a67cd4e6e08c5e754a7ccf667e472ba8ba5269c071279f135889ad91dd235fe"
111
118
  },
112
119
  {
113
120
  "path": "ai/speech-worker-client.mjs",
114
121
  "sourcePath": "browser-runtime/ai/speech-worker-client.mjs",
115
122
  "provenance": "sdk-source-identity",
116
- "bytes": 6501,
117
- "sha256": "ebfa4272725482a89ad6f89a1ff732c1e5b9803075f0d559c046800350abf75d"
123
+ "bytes": 14247,
124
+ "sha256": "2e5580a86d5adc4f44a0d680e1820437b8d22b5555bf73a36b361ee50d24b3f5"
118
125
  },
119
126
  {
120
127
  "path": "ai/speech-worker-runtime.mjs",
121
128
  "sourcePath": "browser-runtime/ai/speech-worker-runtime.mjs",
122
129
  "provenance": "sdk-source-identity",
123
- "bytes": 17308,
124
- "sha256": "feff8873f7d1c7b82f9cd797afe5beb47fa34113e491b2916ada0fcc3e62b101"
130
+ "bytes": 91125,
131
+ "sha256": "c865ad9a84df30ea1d14c81e7bb5c38666afdb65d5237472cdabfb11e7c66de4"
125
132
  },
126
133
  {
127
134
  "path": "ai/wllama/LICENCE",
@@ -204,8 +211,8 @@
204
211
  "path": "event-manager.mjs",
205
212
  "sourcePath": "src/event-manager.mjs",
206
213
  "provenance": "sdk-source-identity",
207
- "bytes": 52508,
208
- "sha256": "96eb36e87fe212e6926f1069cb5305af9fa067774234bb53b11dac7525d2b7f6"
214
+ "bytes": 95656,
215
+ "sha256": "a9367654a9d17fb04e14e1135447d00ce6f975f596633281d76eba7155754dba"
209
216
  }
210
217
  ]
211
218
  }
@@ -0,0 +1,203 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "kind": "arcane-ai-browser-speech-components",
4
+ "protocol": "arcane-ai-browser-speech-artifact-graph/1",
5
+ "packageExport": "arcane-os/ai/browser-speech",
6
+ "browserEntry": "ai/browser-speech.mjs",
7
+ "closureStatus": "browser-speech-runtime-resolved-from-upstream-packages-and-provider-downloads",
8
+ "publicationStatus": "browser-speech-public-runtime-ready-warn-first-secure-opt-in",
9
+ "runtimeBytesPacked": false,
10
+ "modelWeightsPacked": false,
11
+ "voiceBytesPacked": false,
12
+ "materializedLegalCorpus": false,
13
+ "evidenceBoundary": "The SDK redistributes no browser speech runtime, model, voice, license corpus, or corresponding-source payload. Applications select upstream npm/provider download authorities. Warn-first is the default; secure:true enables exact byte and capability enforcement.",
14
+ "components": [
15
+ {
16
+ "name": "kokoro-js",
17
+ "version": "1.2.1",
18
+ "publisher": "xenova",
19
+ "declaredLicenseSpdx": "Apache-2.0",
20
+ "effectiveArtifactLicenseExpression": null,
21
+ "sourceRepository": "https://github.com/hexgrad/kokoro.git",
22
+ "sourceRevision": "664c76a704021239ba59c84dcbaa4d3dece01fe9",
23
+ "npm": {
24
+ "resolved": "https://registry.npmjs.org/kokoro-js/-/kokoro-js-1.2.1.tgz",
25
+ "integrity": "sha512-oq0HZJWis3t8lERkMJh84WLU86dpYD0EuBPtqYnLlQzyFP1OkyBRDcweAqCfhNOpltyN9j/azp1H6uuC47gShw==",
26
+ "shasum": "a6a9b0ffc1ab354fa3f9cb71ee95b6e9f0a13527",
27
+ "tarballBytes": 26887218,
28
+ "tarballSha256": "1f0d0383ef0349af0bd9440d81dc12abbea3a5392eb645283eda876f537f5860"
29
+ },
30
+ "selectedArtifacts": [
31
+ {
32
+ "role": "tts-runtime-entrypoint",
33
+ "path": "dist/kokoro.web.js",
34
+ "mediaType": "application/javascript",
35
+ "bytes": 2135146,
36
+ "sha256": "6067712fe4c43cdb36c762f860a5ab8d96ea1d9c8882466438eb9f3d0d20be8f"
37
+ }
38
+ ],
39
+ "candidateObligations": [
40
+ "Apache-2.0",
41
+ "MIT",
42
+ "GPL-3.0-or-later"
43
+ ],
44
+ "noticeClosureStatus": "upstream-publisher-owned-not-sdk-runtime-or-publication-gate",
45
+ "correspondingSourceStatus": "upstream-publisher-owned-not-sdk-runtime-or-publication-gate"
46
+ },
47
+ {
48
+ "name": "@huggingface/transformers",
49
+ "version": "3.5.1",
50
+ "publisher": "xenova",
51
+ "declaredLicenseSpdx": "Apache-2.0",
52
+ "effectiveArtifactLicenseExpression": null,
53
+ "sourceRepository": "https://github.com/huggingface/transformers.js.git",
54
+ "sourceRevision": "746c8c25bf27c5e0684a20f76889b4bb8d23e295",
55
+ "npm": {
56
+ "resolved": "https://registry.npmjs.org/@huggingface/transformers/-/transformers-3.5.1.tgz",
57
+ "integrity": "sha512-qWsPoJMBPYcrGuzRMVL//3dwcLXED9r+j+Hzw+hZpBfrMPdyq57ehNs7lew0D34Paj0DO0E0kZQjOZcIVN17hQ==",
58
+ "shasum": "8022b616ed8f1ec88d8e56def06d5b0ef5c7a1ee",
59
+ "tarballBytes": 10249112,
60
+ "tarballSha256": "b8e9d201f92c7e2001de3601ef47d5a257985921f8f6ffc76734a5ec021bb53e"
61
+ },
62
+ "selectedArtifacts": [
63
+ {
64
+ "role": "stt-runtime-entrypoint-with-bundled-onnx-runtime-javascript",
65
+ "path": "dist/transformers.js",
66
+ "mediaType": "application/javascript",
67
+ "bytes": 2141070,
68
+ "sha256": "730d42f06974f547e1f6a5f5b7313fc731ff21a3d3ac4c8e47d1f69b0a375547"
69
+ },
70
+ {
71
+ "role": "onnx-runtime-jsep-module",
72
+ "path": "dist/ort-wasm-simd-threaded.jsep.mjs",
73
+ "mediaType": "application/javascript",
74
+ "bytes": 44484,
75
+ "sha256": "08fb86ec433c78bfb032c5d84a68b8e8e5a8d81268fa39e24314179a5767a5b9"
76
+ },
77
+ {
78
+ "role": "onnx-runtime-jsep-wasm",
79
+ "path": "dist/ort-wasm-simd-threaded.jsep.wasm",
80
+ "mediaType": "application/wasm",
81
+ "bytes": 21596019,
82
+ "sha256": "c46655e8a94afc45338d4cb2b840475f88e5012d524509916e505079c00bfa39"
83
+ }
84
+ ],
85
+ "candidateObligations": [
86
+ "Apache-2.0",
87
+ "MIT",
88
+ "BSD-3-Clause",
89
+ "ISC"
90
+ ],
91
+ "noticeClosureStatus": "upstream-publisher-owned-not-sdk-runtime-or-publication-gate",
92
+ "correspondingSourceStatus": "upstream-publisher-owned-not-sdk-runtime-or-publication-gate"
93
+ },
94
+ {
95
+ "name": "phonemizer",
96
+ "version": "1.2.1",
97
+ "publisher": "xenova",
98
+ "declaredLicenseSpdx": "Apache-2.0",
99
+ "embeddedBy": "kokoro-js@1.2.1",
100
+ "sourceRepository": "https://github.com/xenova/phonemizer.js.git",
101
+ "sourceRevision": "6835144b7ee9043129222549c1ed2f6a27216278",
102
+ "npm": {
103
+ "resolved": "https://registry.npmjs.org/phonemizer/-/phonemizer-1.2.1.tgz",
104
+ "integrity": "sha512-v0KJ4mi2T4Q7eJQ0W15Xd4G9k4kICSXE8bpDeJ8jisL4RyJhNWsweKTOi88QXFc4r4LZlz5jVL5lCHhkpdT71A==",
105
+ "shasum": "175aed7034b49b9169fc6adf13c16134374d238d",
106
+ "tarballBytes": 1369002,
107
+ "tarballSha256": "12f9f3582f8b5d557a0577180d83ff0458a4a5c15b2efb625ee71c3ebbee22e9"
108
+ },
109
+ "embeddedEspeak": {
110
+ "declaredUpstreamLicenseSpdx": "GPL-3.0-or-later",
111
+ "exactUpstreamRevision": null,
112
+ "generatedWorkerPath": "src/espeakng.worker.js",
113
+ "generatedWorkerBytes": 1449799,
114
+ "generatedWorkerSha256": "6bab8f2f2cf25d65b596b87471cb17567a496012ee6ce649cfa88b284c1fb9f8",
115
+ "dataPath": "data/espeakng.worker.data",
116
+ "dataBytes": 890802,
117
+ "dataSha256": "6262621f3f8267fb61ef41fe7af75b8fe7e2315d6c9092afd29d7629bb21a60b",
118
+ "buildToolchainReceipt": null,
119
+ "generatedOutputToCorrespondingSourceBinding": null,
120
+ "noticeClosureStatus": "upstream-publisher-owned-not-sdk-runtime-or-publication-gate",
121
+ "correspondingSourceStatus": "upstream-publisher-owned-not-sdk-runtime-or-publication-gate"
122
+ }
123
+ },
124
+ {
125
+ "name": "onnxruntime-web",
126
+ "version": "1.22.0-dev.20250409-89f8206ba4",
127
+ "publisher": "onnxruntime",
128
+ "declaredLicenseSpdx": "MIT",
129
+ "embeddedBy": "@huggingface/transformers@3.5.1",
130
+ "sourceRepository": "https://github.com/microsoft/onnxruntime.git",
131
+ "sourceRevision": "89f8206ba4f1c22c39e0297fb55272e8ce8cd7d0",
132
+ "npm": {
133
+ "resolved": "https://registry.npmjs.org/onnxruntime-web/-/onnxruntime-web-1.22.0-dev.20250409-89f8206ba4.tgz",
134
+ "integrity": "sha512-0uS76OPgH0hWCPrFKlL8kYVV7ckM7t/36HfbgoFw6Nd0CZVVbQC4PkrR8mBX8LtNUFZO25IQBqV2Hx2ho3FlbQ==",
135
+ "shasum": "d1e3a04e03dfee392b41d420ef547b6a0351b06b",
136
+ "tarballBytes": 20239097,
137
+ "tarballSha256": "9758fa28ba1acc1b5c9ffef8d60c97b56fd2105a9476a690ed4db16a5588ae10",
138
+ "licenseMemberPresent": false,
139
+ "thirdPartyNoticesMemberPresent": false
140
+ },
141
+ "selectedArtifacts": [
142
+ {
143
+ "role": "onnx-runtime-jsep-module",
144
+ "path": "dist/ort-wasm-simd-threaded.jsep.mjs",
145
+ "mediaType": "application/javascript",
146
+ "bytes": 44484,
147
+ "sha256": "08fb86ec433c78bfb032c5d84a68b8e8e5a8d81268fa39e24314179a5767a5b9",
148
+ "packagedBy": "@huggingface/transformers@3.5.1"
149
+ },
150
+ {
151
+ "role": "onnx-runtime-jsep-wasm",
152
+ "path": "dist/ort-wasm-simd-threaded.jsep.wasm",
153
+ "mediaType": "application/wasm",
154
+ "bytes": 21596019,
155
+ "sha256": "c46655e8a94afc45338d4cb2b840475f88e5012d524509916e505079c00bfa39",
156
+ "packagedBy": "@huggingface/transformers@3.5.1"
157
+ }
158
+ ],
159
+ "noticeClosureStatus": "upstream-publisher-owned-not-sdk-runtime-or-publication-gate"
160
+ }
161
+ ],
162
+ "legalEvidence": [
163
+ {
164
+ "role": "package-license",
165
+ "appliesTo": ["kokoro-js@1.2.1", "phonemizer@1.2.1"],
166
+ "sourceKind": "registry-integrity-verified-tarball-member",
167
+ "sourcePath": "package/LICENSE",
168
+ "mediaType": "text/plain",
169
+ "bytes": 11357,
170
+ "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4"
171
+ },
172
+ {
173
+ "role": "package-license",
174
+ "appliesTo": ["@huggingface/transformers@3.5.1"],
175
+ "sourceKind": "registry-integrity-verified-tarball-member",
176
+ "sourcePath": "package/LICENSE",
177
+ "mediaType": "text/plain",
178
+ "bytes": 11358,
179
+ "sha256": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30"
180
+ },
181
+ {
182
+ "role": "upstream-license",
183
+ "appliesTo": ["onnxruntime-web@1.22.0-dev.20250409-89f8206ba4"],
184
+ "sourceKind": "immutable-upstream-source-revision",
185
+ "sourceUrl": "https://raw.githubusercontent.com/microsoft/onnxruntime/89f8206ba4f1c22c39e0297fb55272e8ce8cd7d0/LICENSE",
186
+ "sourceRevision": "89f8206ba4f1c22c39e0297fb55272e8ce8cd7d0",
187
+ "mediaType": "text/plain",
188
+ "bytes": 1073,
189
+ "sha256": "2f07c72751aed99790b8a4869cf2311df85a860b22ded05fa22803587a48922c"
190
+ },
191
+ {
192
+ "role": "upstream-third-party-notices",
193
+ "appliesTo": ["onnxruntime-web@1.22.0-dev.20250409-89f8206ba4"],
194
+ "sourceKind": "immutable-upstream-source-revision",
195
+ "sourceUrl": "https://raw.githubusercontent.com/microsoft/onnxruntime/89f8206ba4f1c22c39e0297fb55272e8ce8cd7d0/ThirdPartyNotices.txt",
196
+ "sourceRevision": "89f8206ba4f1c22c39e0297fb55272e8ce8cd7d0",
197
+ "mediaType": "text/plain",
198
+ "bytes": 326866,
199
+ "sha256": "e9e90971a8e75a9a8ac0c6412e29c1202d079998389915aa485f46c816c3b4cc"
200
+ }
201
+ ],
202
+ "publicationBlocks": []
203
+ }
@@ -1,3 +1,12 @@
1
- import { installBrowserSpeechWorker } from "./speech-worker-runtime.mjs";
1
+ import {
2
+ installBrowserSpeechArtifactModuleWorker,
3
+ installBrowserSpeechWorker,
4
+ } from "./speech-worker-runtime.mjs";
2
5
 
3
- installBrowserSpeechWorker("tts");
6
+ const mode = new URL(import.meta.url).searchParams.get("arcaneSpeechWorkerMode");
7
+
8
+ if (mode === "artifact-module-worker") {
9
+ installBrowserSpeechArtifactModuleWorker("tts");
10
+ } else {
11
+ installBrowserSpeechWorker("tts");
12
+ }