@litert-lm/core 0.16.0 → 0.17.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 (106) hide show
  1. package/README.md +164 -0
  2. package/dist/cleanup.d.ts +25 -0
  3. package/dist/cleanup.d.ts.map +1 -0
  4. package/dist/cleanup.js +36 -0
  5. package/dist/cleanup.js.map +1 -0
  6. package/dist/conversation.d.ts +51 -0
  7. package/dist/conversation.d.ts.map +1 -0
  8. package/dist/conversation.js +171 -0
  9. package/dist/conversation.js.map +1 -0
  10. package/dist/conversation_config.d.ts +153 -0
  11. package/dist/conversation_config.d.ts.map +1 -0
  12. package/dist/conversation_config.js +17 -0
  13. package/dist/conversation_config.js.map +1 -0
  14. package/dist/engine.d.ts +37 -0
  15. package/dist/engine.d.ts.map +1 -0
  16. package/dist/engine.js +203 -0
  17. package/dist/engine.js.map +1 -0
  18. package/dist/engine_settings.d.ts +57 -0
  19. package/dist/engine_settings.d.ts.map +1 -0
  20. package/dist/engine_settings.js +114 -0
  21. package/dist/engine_settings.js.map +1 -0
  22. package/dist/global_litertlm.d.ts +66 -0
  23. package/dist/global_litertlm.d.ts.map +1 -0
  24. package/dist/global_litertlm.js +85 -0
  25. package/dist/global_litertlm.js.map +1 -0
  26. package/dist/index.d.ts +31 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +31 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/litertlm_web.d.ts +32 -0
  31. package/dist/litertlm_web.d.ts.map +1 -0
  32. package/dist/litertlm_web.js +75 -0
  33. package/dist/litertlm_web.js.map +1 -0
  34. package/dist/load.d.ts +28 -0
  35. package/dist/load.d.ts.map +1 -0
  36. package/dist/load.js +50 -0
  37. package/dist/load.js.map +1 -0
  38. package/dist/load_litertlm.d.ts +58 -0
  39. package/dist/load_litertlm.d.ts.map +1 -0
  40. package/dist/load_litertlm.js +87 -0
  41. package/dist/load_litertlm.js.map +1 -0
  42. package/dist/mutex.d.ts +45 -0
  43. package/dist/mutex.d.ts.map +1 -0
  44. package/dist/mutex.js +62 -0
  45. package/dist/mutex.js.map +1 -0
  46. package/dist/orchestration/auto_tool_chat.d.ts +82 -0
  47. package/dist/orchestration/auto_tool_chat.d.ts.map +1 -0
  48. package/dist/orchestration/auto_tool_chat.js +304 -0
  49. package/dist/orchestration/auto_tool_chat.js.map +1 -0
  50. package/dist/orchestration/chat_interface.d.ts +30 -0
  51. package/dist/orchestration/chat_interface.d.ts.map +1 -0
  52. package/dist/orchestration/chat_interface.js +17 -0
  53. package/dist/orchestration/chat_interface.js.map +1 -0
  54. package/dist/orchestration/webmcp_tool.d.ts +41 -0
  55. package/dist/orchestration/webmcp_tool.d.ts.map +1 -0
  56. package/dist/orchestration/webmcp_tool.js +32 -0
  57. package/dist/orchestration/webmcp_tool.js.map +1 -0
  58. package/dist/readable_stream_data_stream_wrapper.d.ts +44 -0
  59. package/dist/readable_stream_data_stream_wrapper.d.ts.map +1 -0
  60. package/dist/readable_stream_data_stream_wrapper.js +315 -0
  61. package/dist/readable_stream_data_stream_wrapper.js.map +1 -0
  62. package/dist/session.d.ts +51 -0
  63. package/dist/session.d.ts.map +1 -0
  64. package/dist/session.js +107 -0
  65. package/dist/session.js.map +1 -0
  66. package/dist/session_config.d.ts +60 -0
  67. package/dist/session_config.d.ts.map +1 -0
  68. package/dist/session_config.js +109 -0
  69. package/dist/session_config.js.map +1 -0
  70. package/dist/testing/fakes.d.ts +67 -0
  71. package/dist/testing/fakes.d.ts.map +1 -0
  72. package/dist/testing/fakes.js +125 -0
  73. package/dist/testing/fakes.js.map +1 -0
  74. package/dist/testing/index.d.ts +17 -0
  75. package/dist/testing/index.d.ts.map +1 -0
  76. package/dist/testing/index.js +17 -0
  77. package/dist/testing/index.js.map +1 -0
  78. package/dist/types.d.ts +42 -0
  79. package/dist/types.d.ts.map +1 -0
  80. package/dist/types.js +17 -0
  81. package/dist/types.js.map +1 -0
  82. package/dist/url_path_utils.d.ts +28 -0
  83. package/dist/url_path_utils.d.ts.map +1 -0
  84. package/dist/url_path_utils.js +34 -0
  85. package/dist/url_path_utils.js.map +1 -0
  86. package/dist/wasm_binding_types.d.ts +379 -0
  87. package/dist/wasm_binding_types.d.ts.map +1 -0
  88. package/dist/wasm_binding_types.js +39 -0
  89. package/dist/wasm_binding_types.js.map +1 -0
  90. package/dist/wasm_feature_detect.d.ts +45 -0
  91. package/dist/wasm_feature_detect.d.ts.map +1 -0
  92. package/dist/wasm_feature_detect.js +139 -0
  93. package/dist/wasm_feature_detect.js.map +1 -0
  94. package/dist/wasm_utils.d.ts +30 -0
  95. package/dist/wasm_utils.d.ts.map +1 -0
  96. package/dist/wasm_utils.js +41 -0
  97. package/dist/wasm_utils.js.map +1 -0
  98. package/package.json +1 -1
  99. package/wasm/litertlm_wasm_asyncify_internal.js +8724 -0
  100. package/wasm/litertlm_wasm_asyncify_internal.wasm +0 -0
  101. package/wasm/litertlm_wasm_compat_asyncify_internal.js +8733 -0
  102. package/wasm/litertlm_wasm_compat_asyncify_internal.wasm +0 -0
  103. package/wasm/litertlm_wasm_compat_internal.js +8521 -0
  104. package/wasm/litertlm_wasm_compat_internal.wasm +0 -0
  105. package/wasm/litertlm_wasm_internal.js +8510 -0
  106. package/wasm/litertlm_wasm_internal.wasm +0 -0
@@ -0,0 +1,379 @@
1
+ /**
2
+ * Copyright 2026 Google LLC
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { WasmModule } from '@litertjs/wasm-utils';
17
+ import { type ReadableStreamDataStreamWrapper } from './readable_stream_data_stream_wrapper.js';
18
+ /**
19
+ * Backend types for LiteRT-LM.
20
+ */
21
+ export declare const Backend: {
22
+ UNSPECIFIED: number;
23
+ CPU_ARTISAN: number;
24
+ GPU_ARTISAN: number;
25
+ CPU: number;
26
+ GPU: number;
27
+ GOOGLE_TENSOR_ARTISAN: number;
28
+ NPU: number;
29
+ };
30
+ /**
31
+ * A LiteRT-LM Backend.
32
+ */
33
+ export type Backend = (typeof Backend)[keyof typeof Backend];
34
+ /**
35
+ * An object that must be manually deleted to free its memory.
36
+ */
37
+ export declare interface Deletable {
38
+ delete(): void;
39
+ }
40
+ /**
41
+ * A C++ vector of elements.
42
+ */
43
+ export declare interface EmscriptenVector<T> extends Deletable {
44
+ size(): number;
45
+ get(index: number): T;
46
+ push_back(item: T): void;
47
+ }
48
+ /**
49
+ * A C++ vector of uint32_t.
50
+ */
51
+ export declare interface VectorUint32Constructor {
52
+ new (): EmscriptenVector<number>;
53
+ }
54
+ /**
55
+ * A C++ vector of int.
56
+ */
57
+ export declare interface VectorIntConstructor {
58
+ new (): EmscriptenVector<number>;
59
+ }
60
+ /**
61
+ * A C++ vector of vector of int.
62
+ */
63
+ export declare interface VectorVectorIntConstructor {
64
+ new (): EmscriptenVector<EmscriptenVector<number>>;
65
+ }
66
+ /**
67
+ * A C++ enum value in Wasm.
68
+ */
69
+ export declare interface EmscriptenEnumElement<T> {
70
+ value: T;
71
+ }
72
+ type EmscriptenEnum<T extends object> = {
73
+ [K in keyof T]: EmscriptenEnumElement<T[K]>;
74
+ };
75
+ declare interface ModelAssetsConstructor {
76
+ new (...args: never[]): ModelAssets;
77
+ create(modelPath: string): ModelAssets;
78
+ createStreaming(stream: ReadableStreamDataStream): ModelAssets;
79
+ }
80
+ declare const ModelAssetsBrand: unique symbol;
81
+ /**
82
+ * LiteRT-LM ModelAssets
83
+ */
84
+ export declare interface ModelAssets extends Deletable {
85
+ [ModelAssetsBrand]: void;
86
+ getPath(): string;
87
+ }
88
+ /**
89
+ * LiteRT-LM Backend enum values
90
+ */
91
+ declare interface EngineSettingsConstructor {
92
+ new (...args: never[]): EngineSettings;
93
+ createDefault(modelAssets: ModelAssets, backend: EmscriptenEnumElement<Backend>): EngineSettings;
94
+ }
95
+ declare const EngineSettingsBrand: unique symbol;
96
+ /**
97
+ * LiteRT-LM EngineSettings
98
+ */
99
+ export declare interface EngineSettings extends Deletable {
100
+ [EngineSettingsBrand]: void;
101
+ getMutableMainExecutorSettings(): LlmExecutorSettings;
102
+ getParallelFileSectionLoading(): boolean;
103
+ setParallelFileSectionLoading(parallelFileSectionLoading: boolean): void;
104
+ getSingleThreadedExecution(): boolean;
105
+ setSingleThreadedExecution(singleThreadedExecution: boolean): void;
106
+ enableBenchmark(): void;
107
+ }
108
+ /**
109
+ * LiteRT-LM CpuConfig
110
+ */
111
+ export declare interface CpuConfig {
112
+ kv_increment_size: number;
113
+ prefill_chunk_size: number;
114
+ number_of_threads: number;
115
+ }
116
+ /**
117
+ * LiteRT-LM GpuConfig
118
+ */
119
+ export declare interface GpuConfig {
120
+ max_top_k: number;
121
+ external_tensor_mode: boolean;
122
+ }
123
+ /**
124
+ * LiteRT-LM GpuArtisanConfig
125
+ */
126
+ export declare interface GpuArtisanConfig {
127
+ num_output_candidates: number;
128
+ wait_for_weight_uploads: boolean;
129
+ num_decode_steps_per_sync: number;
130
+ sequence_batch_size: number;
131
+ supported_lora_ranks: EmscriptenVector<number>;
132
+ max_top_k: number;
133
+ enable_decode_logits: boolean;
134
+ enable_external_embeddings: boolean;
135
+ use_submodel: boolean;
136
+ use_autosized_ringbuffers: boolean;
137
+ }
138
+ /**
139
+ * LiteRT-LM AdvancedSettings
140
+ */
141
+ export declare interface AdvancedSettings {
142
+ prefill_batch_sizes: number[];
143
+ num_output_candidates: number;
144
+ configure_magic_numbers: boolean;
145
+ verify_magic_numbers: boolean;
146
+ clear_kv_cache_before_prefill: boolean;
147
+ num_logits_to_print_after_decode: number;
148
+ gpu_madvise_original_shared_tensors: boolean;
149
+ is_benchmark: boolean;
150
+ preferred_device_substr: string;
151
+ num_threads_to_upload: number;
152
+ num_threads_to_compile: number;
153
+ convert_weights_on_gpu: boolean;
154
+ optimize_shader_compilation: boolean;
155
+ share_constant_tensors: boolean;
156
+ }
157
+ declare const ExecutorSettingsBaseBrand: unique symbol;
158
+ /**
159
+ * LiteRT-LM ExecutorSettingsBase
160
+ */
161
+ export declare interface ExecutorSettingsBase extends Deletable {
162
+ [ExecutorSettingsBaseBrand]: void;
163
+ getCacheDir(): string;
164
+ setCacheDir(cacheDir: string): void;
165
+ }
166
+ /**
167
+ * LiteRT-LM LlmExecutorSettings constructor
168
+ */
169
+ declare interface LlmExecutorSettingsConstructor {
170
+ new (...args: never[]): LlmExecutorSettings;
171
+ }
172
+ declare const LlmExecutorSettingsBrand: unique symbol;
173
+ /**
174
+ * LiteRT-LM LlmExecutorSettings
175
+ */
176
+ export declare interface LlmExecutorSettings extends ExecutorSettingsBase {
177
+ [LlmExecutorSettingsBrand]: void;
178
+ getMaxNumTokens(): number;
179
+ setMaxNumTokens(maxNumTokens: number): void;
180
+ setBackendConfigCpu(cpuConfig: CpuConfig): void;
181
+ setBackendConfigGpu(gpuConfig: GpuConfig): void;
182
+ setBackendConfigGpuArtisan(gpuArtisanConfig: GpuArtisanConfig): void;
183
+ getBackendConfigCpu(): CpuConfig;
184
+ getBackendConfigGpu(): GpuConfig;
185
+ getBackendConfigGpuArtisan(): GpuArtisanConfig;
186
+ setSamplerBackend(backend: EmscriptenEnumElement<Backend>): void;
187
+ getSamplerBackend(): EmscriptenEnumElement<Backend>;
188
+ setAdvancedSettings(advancedSettings: AdvancedSettings): void;
189
+ getAdvancedSettings(): AdvancedSettings;
190
+ }
191
+ /**
192
+ * LiteRT-LM Engine constructor
193
+ */
194
+ declare interface EngineConstructor {
195
+ new (...args: never[]): Engine;
196
+ createEngine(engineSettings: EngineSettings, inputPromptAsHint: string): Promise<Engine>;
197
+ createStreaming(engineSettings: EngineSettings, inputPromptAsHint: string): Promise<Engine>;
198
+ }
199
+ declare const EngineBrand: unique symbol;
200
+ /**
201
+ * LiteRT-LM Engine
202
+ */
203
+ export declare interface Engine extends Deletable {
204
+ [EngineBrand]: void;
205
+ createSession(sessionConfig: SessionConfig): Session;
206
+ getEngineSettings(): EngineSettings;
207
+ waitUntilDone(): Promise<void>;
208
+ }
209
+ /**
210
+ * LiteRT-LM SamplerType enum values
211
+ */
212
+ export declare const SamplerType: {
213
+ readonly TYPE_UNSPECIFIED: 0;
214
+ readonly TOP_K: 1;
215
+ readonly TOP_P: 2;
216
+ readonly GREEDY: 3;
217
+ };
218
+ /**
219
+ * LiteRT-LM SamplerType
220
+ */
221
+ export type SamplerType = typeof SamplerType[keyof typeof SamplerType];
222
+ /**
223
+ * LiteRT-LM SamplerParameters
224
+ */
225
+ export declare interface SamplerParameters {
226
+ type(): EmscriptenEnumElement<SamplerType>;
227
+ setType(type: EmscriptenEnumElement<SamplerType>): void;
228
+ k(): number;
229
+ setK(k: number): void;
230
+ p(): number;
231
+ setP(p: number): void;
232
+ temperature(): number;
233
+ setTemperature(temperature: number): void;
234
+ seed(): number;
235
+ setSeed(seed: number): void;
236
+ }
237
+ /**
238
+ * LiteRT-LM SessionConfig constructor
239
+ */
240
+ declare interface SessionConfigConstructor {
241
+ new (...args: never[]): SessionConfig;
242
+ createDefault(): SessionConfig;
243
+ }
244
+ declare const SessionConfigBrand: unique symbol;
245
+ /**
246
+ * LiteRT-LM SessionConfig
247
+ */
248
+ export declare interface SessionConfig extends Deletable {
249
+ [SessionConfigBrand]: void;
250
+ getAudioModalityEnabled(): boolean;
251
+ setAudioModalityEnabled(audioModalityEnabled: boolean): void;
252
+ getVisionModalityEnabled(): boolean;
253
+ setVisionModalityEnabled(visionModalityEnabled: boolean): void;
254
+ getMutableSamplerParams(): SamplerParameters;
255
+ getStopTokenIds(): EmscriptenVector<EmscriptenVector<number>>;
256
+ setStopTokenIds(stopTokenIds: EmscriptenVector<EmscriptenVector<number>>): void;
257
+ getStartTokenId(): number;
258
+ setStartTokenId(startTokenId: number): void;
259
+ getNumOutputCandidates(): number;
260
+ setNumOutputCandidates(numOutputCandidates: number): void;
261
+ getSamplerBackend(): EmscriptenEnumElement<Backend>;
262
+ setSamplerBackend(backend: EmscriptenEnumElement<Backend>): void;
263
+ getApplyPromptTemplateInSession(): boolean;
264
+ setApplyPromptTemplateInSession(applyPromptTemplateInSession: boolean): void;
265
+ getUseExternalSampler(): boolean;
266
+ setUseExternalSampler(useExternalSampler: boolean): void;
267
+ getMaxOutputTokens(): number;
268
+ setMaxOutputTokens(maxOutputTokens: number): void;
269
+ }
270
+ declare const SessionBrand: unique symbol;
271
+ /**
272
+ * LiteRT-LM Session
273
+ */
274
+ export declare interface Session extends Deletable {
275
+ [SessionBrand]: void;
276
+ getSessionConfig(): SessionConfig;
277
+ runPrefill(inputs: string[]): Promise<void>;
278
+ runDecode(): Promise<Responses>;
279
+ cancelProcess(): void;
280
+ clone(): Session;
281
+ }
282
+ declare const ResponsesBrand: unique symbol;
283
+ /**
284
+ * LiteRT-LM Responses
285
+ */
286
+ export declare interface Responses extends Deletable {
287
+ [ResponsesBrand]: void;
288
+ getTexts(): EmscriptenVector<string>;
289
+ }
290
+ /**
291
+ * LiteRT-LM ConversationConfig constructor
292
+ */
293
+ declare interface ConversationConfigConstructor {
294
+ new (...args: never[]): ConversationConfig;
295
+ createDefault(engine: Engine): ConversationConfig;
296
+ createCustom(engine: Engine, sessionConfig: SessionConfig, enableConstrainedDecoding: boolean, prefillPrefaceOnInit: boolean, filterChannelContentFromKvCache: boolean, prefaceJson: string): ConversationConfig;
297
+ }
298
+ declare const ConversationConfigBrand: unique symbol;
299
+ /**
300
+ * LiteRT-LM ConversationConfig
301
+ */
302
+ export declare interface ConversationConfig extends Deletable {
303
+ [ConversationConfigBrand]: void;
304
+ }
305
+ /**
306
+ * LiteRT-LM Conversation constructor
307
+ */
308
+ declare interface ConversationConstructor {
309
+ new (...args: never[]): Conversation;
310
+ create(engine: Engine, config: ConversationConfig): Promise<Conversation>;
311
+ }
312
+ declare const ConversationBrand: unique symbol;
313
+ /**
314
+ * LiteRT-LM Conversation
315
+ */
316
+ export declare interface Conversation extends Deletable {
317
+ [ConversationBrand]: void;
318
+ sendMessage(messageJson: string): Promise<string>;
319
+ sendMessageAsync(messageJson: string, callback: (chunk: string | null, isDone: boolean, error: string | null) => void): Promise<void>;
320
+ getHistory(): string;
321
+ getTokenCount(): number;
322
+ getBenchmarkInfo(): BenchmarkInfo;
323
+ cancelProcess(): void;
324
+ clone(): Conversation;
325
+ }
326
+ /** Benchmark metadata for tracking decoding efficiency. */
327
+ export declare interface BenchmarkInfo {
328
+ lastPrefillTokensPerSecond: number;
329
+ lastPrefillTokenCount: number;
330
+ lastDecodeTokensPerSecond: number;
331
+ lastDecodeTokenCount: number;
332
+ timeToFirstTokenInSecond: number;
333
+ }
334
+ declare interface ReadableStreamDataStreamConstructor {
335
+ new (...args: never[]): ReadableStreamDataStream;
336
+ create(stream: ReadableStreamDataStreamWrapper): ReadableStreamDataStream;
337
+ }
338
+ declare const ReadableStreamDataStreamBrand: unique symbol;
339
+ /**
340
+ * LiteRT-LM ReadableStreamDataStream.
341
+ */
342
+ export declare interface ReadableStreamDataStream extends Deletable {
343
+ [ReadableStreamDataStreamBrand]: void;
344
+ }
345
+ type BackendEnum = EmscriptenEnum<{
346
+ UNSPECIFIED: Backend;
347
+ CPU_ARTISAN: Backend;
348
+ GPU_ARTISAN: Backend;
349
+ CPU: Backend;
350
+ GPU: Backend;
351
+ GOOGLE_TENSOR_ARTISAN: Backend;
352
+ NPU: Backend;
353
+ }>;
354
+ /**
355
+ * Interface for the C++ LiteRt LM bindings.
356
+ */
357
+ export declare interface LiteRtLmWasm extends WasmModule {
358
+ preinitializedWebGPUDevice?: GPUDevice;
359
+ VectorUint32: VectorUint32Constructor;
360
+ VectorInt: VectorIntConstructor;
361
+ VectorVectorInt: VectorVectorIntConstructor;
362
+ FS: FileSystemApi;
363
+ setupLogging(): void;
364
+ Backend: BackendEnum;
365
+ ModelAssets: ModelAssetsConstructor;
366
+ EngineSettings: EngineSettingsConstructor;
367
+ LlmExecutorSettings: LlmExecutorSettingsConstructor;
368
+ Engine: EngineConstructor;
369
+ SessionConfig: SessionConfigConstructor;
370
+ ReadableStreamDataStream: ReadableStreamDataStreamConstructor;
371
+ ConversationConfig: ConversationConfigConstructor;
372
+ Conversation: ConversationConstructor;
373
+ }
374
+ declare interface FileSystemApi {
375
+ writeFile(path: string, data: string | ArrayBufferView): void;
376
+ unlink(path: string): void;
377
+ }
378
+ export {};
379
+ //# sourceMappingURL=wasm_binding_types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm_binding_types.d.ts","sourceRoot":"","sources":["../src/wasm_binding_types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Copyright 2026 Google LLC
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * Backend types for LiteRT-LM.
18
+ */
19
+ export const Backend = {
20
+ // Ideally, we'd pull these from the Wasm module, but we want them to be
21
+ // available in JS before the Wasm module is loaded.
22
+ UNSPECIFIED: 0,
23
+ CPU_ARTISAN: 1,
24
+ GPU_ARTISAN: 2,
25
+ CPU: 3,
26
+ GPU: 4,
27
+ GOOGLE_TENSOR_ARTISAN: 5,
28
+ NPU: 6,
29
+ };
30
+ /**
31
+ * LiteRT-LM SamplerType enum values
32
+ */
33
+ export const SamplerType = {
34
+ TYPE_UNSPECIFIED: 0,
35
+ TOP_K: 1,
36
+ TOP_P: 2,
37
+ GREEDY: 3,
38
+ };
39
+ //# sourceMappingURL=wasm_binding_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm_binding_types.js","sourceRoot":"","sources":["../src/wasm_binding_types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,wEAAwE;IACxE,oDAAoD;IACpD,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,CAAC;IACd,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,qBAAqB,EAAE,CAAC;IACxB,GAAG,EAAE,CAAC;CACP,CAAC;AA0QF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,gBAAgB,EAAE,CAAC;IACnB,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;CACD,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Copyright 2025 Google LLC
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ interface SupportStatus {
17
+ supported: boolean;
18
+ error?: Error;
19
+ }
20
+ declare interface WasmFeatureValues {
21
+ relaxedSimd: Promise<SupportStatus> | undefined;
22
+ threads: Promise<SupportStatus> | undefined;
23
+ jspi: Promise<SupportStatus> | undefined;
24
+ }
25
+ declare const WASM_FEATURE_VALUES: WasmFeatureValues;
26
+ /** Returns true if JSPI is supported in the browser. */
27
+ export declare function isJspiSupported(): boolean;
28
+ declare const WASM_FEATURE_CHECKS: Record<keyof typeof WASM_FEATURE_VALUES, () => Promise<SupportStatus>>;
29
+ /**
30
+ * Check if a given WASM feature is supported.
31
+ *
32
+ * @param feature The feature to check.
33
+ * @return A promise that resolves to true if the feature is supported,
34
+ * false otherwise.
35
+ */
36
+ export declare function supportsFeature(feature: keyof typeof WASM_FEATURE_CHECKS): Promise<boolean>;
37
+ /**
38
+ * Throw an error if a given WASM feature is not supported.
39
+ *
40
+ * @param feature The feature to check.
41
+ * @throws An error if the feature is not supported.
42
+ */
43
+ export declare function throwIfFeatureNotSupported(feature: keyof typeof WASM_FEATURE_CHECKS): Promise<void>;
44
+ export {};
45
+ //# sourceMappingURL=wasm_feature_detect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm_feature_detect.d.ts","sourceRoot":"","sources":["../src/wasm_feature_detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAqCH,UAAU,aAAa;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAID,OAAO,WAAW,iBAAiB;IACjC,WAAW,EAAE,OAAO,CAAC,aAAa,CAAC,GAAC,SAAS,CAAC;IAC9C,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAC,SAAS,CAAC;IAC1C,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,GAAC,SAAS,CAAC;CACxC;AAED,QAAA,MAAM,mBAAmB,EAAE,iBAI1B,CAAC;AAEF,wDAAwD;AACxD,wBAAgB,eAAe,YAG9B;AAWD,QAAA,MAAM,mBAAmB,EACrB,MAAM,CAAC,MAAM,OAAO,mBAAmB,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAoCpE,CAAC;AAEN;;;;;;GAMG;AACH,wBAAsB,eAAe,CACjC,OAAO,EAAE,MAAM,OAAO,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAO/D;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC5C,OAAO,EAAE,MAAM,OAAO,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5D"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Copyright 2025 Google LLC
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * Checks for relaxed SIMD support.
18
+ *
19
+ * (module
20
+ * (func (result v128)
21
+ * i32.const 1
22
+ * i8x16.splat
23
+ * i32.const 2
24
+ * i8x16.splat
25
+ * i8x16.relaxed_swizzle
26
+ * )
27
+ * )
28
+ */
29
+ const WASM_RELAXED_SIMD_CHECK = new Uint8Array([
30
+ 0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 123, 3, 2, 1,
31
+ 0, 10, 15, 1, 13, 0, 65, 1, 253, 15, 65, 2, 253, 15, 253, 128, 2, 11
32
+ ]);
33
+ /**
34
+ * Checks for WebAssembly Pthreads emulation.
35
+ *
36
+ * (module
37
+ * (memory 1 1 shared)
38
+ * (func
39
+ * i32.const 0
40
+ * i32.atomic.load
41
+ * drop
42
+ * )
43
+ * )
44
+ */
45
+ const WASM_THREADS_CHECK = new Uint8Array([
46
+ 0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 5,
47
+ 4, 1, 3, 1, 1, 10, 11, 1, 9, 0, 65, 0, 254, 16, 2, 0, 26, 11
48
+ ]);
49
+ const WASM_FEATURE_VALUES = {
50
+ 'relaxedSimd': undefined,
51
+ 'threads': undefined,
52
+ 'jspi': undefined,
53
+ };
54
+ /** Returns true if JSPI is supported in the browser. */
55
+ export function isJspiSupported() {
56
+ // tslint:disable-next-line:ban-unsafe-reflection
57
+ return ('Suspending' in WebAssembly);
58
+ }
59
+ async function tryWasm(wasm) {
60
+ try {
61
+ await WebAssembly.instantiate(wasm);
62
+ return { supported: true };
63
+ }
64
+ catch (e) {
65
+ return { supported: false, error: e };
66
+ }
67
+ }
68
+ const WASM_FEATURE_CHECKS = {
69
+ 'relaxedSimd': () => {
70
+ if (WASM_FEATURE_VALUES.relaxedSimd === undefined) {
71
+ WASM_FEATURE_VALUES.relaxedSimd = tryWasm(WASM_RELAXED_SIMD_CHECK);
72
+ }
73
+ return WASM_FEATURE_VALUES.relaxedSimd;
74
+ },
75
+ 'threads': () => {
76
+ if (WASM_FEATURE_VALUES.threads === undefined) {
77
+ try {
78
+ if (typeof MessageChannel !== 'undefined') {
79
+ new MessageChannel().port1.postMessage(new SharedArrayBuffer(1));
80
+ }
81
+ WASM_FEATURE_VALUES.threads = tryWasm(WASM_THREADS_CHECK);
82
+ }
83
+ catch (e) {
84
+ WASM_FEATURE_VALUES.threads =
85
+ Promise.resolve({ supported: false, error: e });
86
+ }
87
+ }
88
+ return WASM_FEATURE_VALUES.threads;
89
+ },
90
+ 'jspi': () => {
91
+ if (WASM_FEATURE_VALUES.jspi === undefined) {
92
+ try {
93
+ const supported = isJspiSupported();
94
+ WASM_FEATURE_VALUES.jspi = Promise.resolve({
95
+ supported,
96
+ error: supported ? undefined : new Error('JSPI is not supported')
97
+ });
98
+ }
99
+ catch (e) {
100
+ WASM_FEATURE_VALUES.jspi =
101
+ Promise.resolve({ supported: false, error: e });
102
+ }
103
+ }
104
+ return WASM_FEATURE_VALUES.jspi;
105
+ },
106
+ };
107
+ /**
108
+ * Check if a given WASM feature is supported.
109
+ *
110
+ * @param feature The feature to check.
111
+ * @return A promise that resolves to true if the feature is supported,
112
+ * false otherwise.
113
+ */
114
+ export async function supportsFeature(feature) {
115
+ const check = WASM_FEATURE_CHECKS[feature]?.();
116
+ if (!check) {
117
+ // Then we don't know how to check for this feature.
118
+ throw new Error(`Unknown feature: ${feature}`);
119
+ }
120
+ return (await check).supported;
121
+ }
122
+ /**
123
+ * Throw an error if a given WASM feature is not supported.
124
+ *
125
+ * @param feature The feature to check.
126
+ * @throws An error if the feature is not supported.
127
+ */
128
+ export async function throwIfFeatureNotSupported(feature) {
129
+ const check = WASM_FEATURE_CHECKS[feature]?.();
130
+ if (!check) {
131
+ // Then we don't know how to check for this feature.
132
+ throw new Error(`Unknown feature: ${feature}`);
133
+ }
134
+ const result = await check;
135
+ if (!result.supported) {
136
+ throw result.error;
137
+ }
138
+ }
139
+ //# sourceMappingURL=wasm_feature_detect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm_feature_detect.js","sourceRoot":"","sources":["../src/wasm_feature_detect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Copyright 2025 Google LLC
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { EmscriptenVector } from './wasm_binding_types.js';
17
+ /**
18
+ * Convert an EmscriptenVector to a native array and delete the vector
19
+ *
20
+ * Deletes the EmscriptenVector when done. The caller must still delete the
21
+ * individual elements of the returned array.
22
+ */
23
+ export declare function consumeEmscriptenVectorToArray<T>(vector: EmscriptenVector<T>): T[];
24
+ /**
25
+ * Fill an EmscriptenVector from an Iterable.
26
+ *
27
+ * The EmscriptenVector must be large enough to hold the data.
28
+ */
29
+ export declare function fillEmscriptenVector<T>(data: Iterable<T>, vector: EmscriptenVector<T>): void;
30
+ //# sourceMappingURL=wasm_utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm_utils.d.ts","sourceRoot":"","sources":["../src/wasm_utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GACzE,CAAC,EAAE,CAON;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,QAKjD"}