runmat 0.2.7

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 (54) hide show
  1. package/README.md +228 -0
  2. package/dist/fs/default.d.ts +7 -0
  3. package/dist/fs/default.d.ts.map +1 -0
  4. package/dist/fs/default.js +21 -0
  5. package/dist/fs/default.js.map +1 -0
  6. package/dist/fs/index.d.ts +6 -0
  7. package/dist/fs/index.d.ts.map +1 -0
  8. package/dist/fs/index.js +5 -0
  9. package/dist/fs/index.js.map +1 -0
  10. package/dist/fs/indexeddb.d.ts +16 -0
  11. package/dist/fs/indexeddb.d.ts.map +1 -0
  12. package/dist/fs/indexeddb.js +186 -0
  13. package/dist/fs/indexeddb.js.map +1 -0
  14. package/dist/fs/memory.d.ts +41 -0
  15. package/dist/fs/memory.d.ts.map +1 -0
  16. package/dist/fs/memory.js +429 -0
  17. package/dist/fs/memory.js.map +1 -0
  18. package/dist/fs/path.d.ts +5 -0
  19. package/dist/fs/path.d.ts.map +1 -0
  20. package/dist/fs/path.js +56 -0
  21. package/dist/fs/path.js.map +1 -0
  22. package/dist/fs/provider-types.d.ts +28 -0
  23. package/dist/fs/provider-types.d.ts.map +1 -0
  24. package/dist/fs/provider-types.js +2 -0
  25. package/dist/fs/provider-types.js.map +1 -0
  26. package/dist/fs/remote.d.ts +10 -0
  27. package/dist/fs/remote.d.ts.map +1 -0
  28. package/dist/fs/remote.js +200 -0
  29. package/dist/fs/remote.js.map +1 -0
  30. package/dist/fusion-plan.d.ts +15 -0
  31. package/dist/fusion-plan.d.ts.map +1 -0
  32. package/dist/fusion-plan.js +59 -0
  33. package/dist/fusion-plan.js.map +1 -0
  34. package/dist/index.d.ts +434 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +619 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/test/node-sync-xhr.d.ts +2 -0
  39. package/dist/test/node-sync-xhr.d.ts.map +1 -0
  40. package/dist/test/node-sync-xhr.js +163 -0
  41. package/dist/test/node-sync-xhr.js.map +1 -0
  42. package/dist/test/setup.d.ts +2 -0
  43. package/dist/test/setup.d.ts.map +1 -0
  44. package/dist/test/setup.js +6 -0
  45. package/dist/test/setup.js.map +1 -0
  46. package/dist/webgpu-shims.d.ts +14 -0
  47. package/dist/webgpu-shims.d.ts.map +1 -0
  48. package/dist/webgpu-shims.js +85 -0
  49. package/dist/webgpu-shims.js.map +1 -0
  50. package/dist/workspace-hover.d.ts +69 -0
  51. package/dist/workspace-hover.d.ts.map +1 -0
  52. package/dist/workspace-hover.js +168 -0
  53. package/dist/workspace-hover.js.map +1 -0
  54. package/package.json +62 -0
@@ -0,0 +1,434 @@
1
+ import type { RunMatFilesystemProvider } from "./fs/provider-types.js";
2
+ export { createInMemoryFsProvider, createIndexedDbFsHandle, createIndexedDbFsProvider, createDefaultFsProvider, createRemoteFsProvider, MemoryVolume } from "./fs/index.js";
3
+ export type { InMemoryFsProviderOptions, IndexedDbFsHandle, IndexedDbProviderOptions, RemoteProviderOptions, VolumeSnapshotEntry } from "./fs/index.js";
4
+ export type { RunMatFsFileType, RunMatFilesystemDirEntry, RunMatFilesystemMetadata, RunMatFilesystemProvider } from "./fs/provider-types.js";
5
+ export { createWorkspaceHoverProvider } from "./workspace-hover.js";
6
+ export type { WorkspaceHoverOptions, WorkspaceHoverController, HoverFormatState } from "./workspace-hover.js";
7
+ export { createFusionPlanAdapter } from "./fusion-plan.js";
8
+ export type { FusionPlanAdapter, FusionPlanAdapterOptions } from "./fusion-plan.js";
9
+ export type LanguageCompatMode = "matlab" | "strict";
10
+ export type WasmInitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
11
+ export interface RunMatSnapshotSource {
12
+ bytes?: Uint8Array | ArrayBuffer;
13
+ url?: string;
14
+ fetcher?: SnapshotFetcher;
15
+ stream?: ReadableStream<Uint8Array | ArrayBufferView | ArrayBuffer>;
16
+ }
17
+ export interface SnapshotFetcherContext {
18
+ url?: string;
19
+ }
20
+ export type SnapshotFetcher = (ctx: SnapshotFetcherContext) => Promise<SnapshotFetcherResult>;
21
+ export type SnapshotFetcherResult = Uint8Array | ArrayBuffer | ArrayBufferView | Response | ReadableStream<Uint8Array | ArrayBufferView | ArrayBuffer>;
22
+ export interface RunMatInitOptions {
23
+ snapshot?: RunMatSnapshotSource;
24
+ enableGpu?: boolean;
25
+ enableJit?: boolean;
26
+ verbose?: boolean;
27
+ telemetryConsent?: boolean;
28
+ telemetryId?: string;
29
+ wgpuPowerPreference?: "auto" | "high-performance" | "low-power";
30
+ wgpuForceFallbackAdapter?: boolean;
31
+ wasmModule?: WasmInitInput;
32
+ fsProvider?: RunMatFilesystemProvider;
33
+ plotCanvas?: HTMLCanvasElement;
34
+ scatterTargetPoints?: number;
35
+ surfaceVertexBudget?: number;
36
+ emitFusionPlan?: boolean;
37
+ language?: {
38
+ compat?: LanguageCompatMode;
39
+ };
40
+ }
41
+ export type FigureEventKind = "created" | "updated" | "cleared" | "closed";
42
+ export interface FigureEvent {
43
+ handle: number;
44
+ kind: FigureEventKind;
45
+ figure?: FigureSnapshot;
46
+ }
47
+ export interface FigureSnapshot {
48
+ layout: FigureLayout;
49
+ metadata: FigureMetadata;
50
+ plots: FigurePlotDescriptor[];
51
+ }
52
+ export interface FigureLayout {
53
+ axesRows: number;
54
+ axesCols: number;
55
+ axesIndices: number[];
56
+ }
57
+ export interface FigureMetadata {
58
+ title?: string;
59
+ xLabel?: string;
60
+ yLabel?: string;
61
+ gridEnabled: boolean;
62
+ legendEnabled: boolean;
63
+ colorbarEnabled: boolean;
64
+ axisEqual: boolean;
65
+ backgroundRgba: [number, number, number, number];
66
+ colormap?: string;
67
+ colorLimits?: [number, number];
68
+ legendEntries: FigureLegendEntry[];
69
+ }
70
+ export interface FigureLegendEntry {
71
+ label: string;
72
+ plotType: FigurePlotKind;
73
+ colorRgba: [number, number, number, number];
74
+ }
75
+ export interface FigurePlotDescriptor {
76
+ kind: FigurePlotKind;
77
+ label?: string;
78
+ axesIndex: number;
79
+ colorRgba: [number, number, number, number];
80
+ visible: boolean;
81
+ }
82
+ export type FigurePlotKind = "line" | "scatter" | "bar" | "error_bar" | "stairs" | "stem" | "area" | "quiver" | "pie" | "image" | "surface" | "scatter3" | "contour" | "contour_fill";
83
+ export type FigureEventListener = (event: FigureEvent) => void;
84
+ export type HoldMode = "on" | "off" | "toggle" | boolean;
85
+ export type StdoutStreamKind = "stdout" | "stderr";
86
+ export interface StdoutEntry {
87
+ stream: StdoutStreamKind;
88
+ text: string;
89
+ timestampMs: number;
90
+ }
91
+ export type StdoutListener = (entry: StdoutEntry) => void;
92
+ export interface RuntimeLogEntry {
93
+ ts: string;
94
+ level: string;
95
+ target: string;
96
+ message: string;
97
+ traceId?: string;
98
+ spanId?: string;
99
+ fields?: Record<string, unknown>;
100
+ }
101
+ export type RuntimeLogListener = (entry: RuntimeLogEntry) => void;
102
+ export interface TraceEvent {
103
+ name: string;
104
+ cat: string;
105
+ ph: string;
106
+ ts: number;
107
+ dur?: number;
108
+ pid?: number;
109
+ tid?: number;
110
+ traceId?: string;
111
+ spanId?: string;
112
+ args?: Record<string, unknown>;
113
+ }
114
+ export type TraceEventListener = (entries: TraceEvent[]) => void;
115
+ export type InputRequest = {
116
+ kind: "line";
117
+ prompt: string;
118
+ echo: boolean;
119
+ } | {
120
+ kind: "keyPress";
121
+ prompt: string;
122
+ echo: boolean;
123
+ };
124
+ export interface ResumeInputPayload {
125
+ value?: string | number | boolean;
126
+ line?: string | number | boolean;
127
+ kind?: "line" | "keyPress";
128
+ error?: string;
129
+ }
130
+ export type ResumeInputScalar = string | number | boolean | null | undefined;
131
+ export type ResumeInputValue = ResumeInputScalar | ResumeInputPayload;
132
+ export type InputHandlerResult = ResumeInputValue | Promise<ResumeInputValue>;
133
+ export type InputHandler = (request: InputRequest) => InputHandlerResult;
134
+ export interface PendingStdinRequest {
135
+ id: string;
136
+ request: {
137
+ prompt: string;
138
+ kind: "line" | "keyPress";
139
+ echo: boolean;
140
+ };
141
+ waitingMs: number;
142
+ }
143
+ export interface AxesInfo {
144
+ handle: number;
145
+ axesRows: number;
146
+ axesCols: number;
147
+ activeIndex: number;
148
+ }
149
+ export interface FigureImageOptions {
150
+ handle?: number;
151
+ width?: number;
152
+ height?: number;
153
+ }
154
+ export interface FigureBindingError extends Error {
155
+ code: "InvalidHandle" | "InvalidSubplotGrid" | "InvalidSubplotIndex" | "RenderFailure" | "Unknown";
156
+ handle?: number;
157
+ rows?: number;
158
+ cols?: number;
159
+ index?: number;
160
+ details?: string;
161
+ }
162
+ export interface MatlabWarning {
163
+ identifier: string;
164
+ message: string;
165
+ }
166
+ export interface StdinEventLog {
167
+ prompt: string;
168
+ kind: "line" | "keyPress";
169
+ echo: boolean;
170
+ value?: string;
171
+ error?: string;
172
+ }
173
+ export interface ExecuteResult {
174
+ valueText?: string;
175
+ valueJson?: unknown;
176
+ typeInfo?: string;
177
+ error?: string;
178
+ executionTimeMs: number;
179
+ usedJit: boolean;
180
+ stdout: StdoutEntry[];
181
+ workspace: WorkspaceSnapshot;
182
+ figuresTouched: number[];
183
+ warnings: MatlabWarning[];
184
+ stdinEvents: StdinEventLog[];
185
+ profiling?: ProfilingSummary;
186
+ fusionPlan?: FusionPlanSnapshot;
187
+ stdinRequested?: PendingStdinRequest;
188
+ }
189
+ export type WorkspaceResidency = "cpu" | "gpu" | "unknown";
190
+ export interface WorkspaceSnapshot {
191
+ full: boolean;
192
+ version: number;
193
+ values: WorkspaceEntry[];
194
+ }
195
+ export interface WorkspaceEntry {
196
+ name: string;
197
+ className: string;
198
+ dtype?: string;
199
+ shape: number[];
200
+ isGpu: boolean;
201
+ sizeBytes?: number;
202
+ preview?: WorkspacePreview;
203
+ residency: WorkspaceResidency;
204
+ previewToken?: string;
205
+ }
206
+ export interface WorkspacePreview {
207
+ values: number[];
208
+ truncated: boolean;
209
+ }
210
+ export type WorkspaceMaterializeSelector = string | {
211
+ name?: string;
212
+ previewToken?: string;
213
+ };
214
+ export interface MaterializeVariableOptions {
215
+ limit?: number;
216
+ }
217
+ export interface MaterializedVariable {
218
+ name: string;
219
+ className: string;
220
+ dtype?: string;
221
+ shape: number[];
222
+ isGpu: boolean;
223
+ residency: WorkspaceResidency;
224
+ sizeBytes?: number;
225
+ preview?: WorkspacePreview;
226
+ valueText: string;
227
+ valueJson: unknown;
228
+ }
229
+ export interface ProfilingSummary {
230
+ totalMs: number;
231
+ cpuMs?: number;
232
+ gpuMs?: number;
233
+ kernelCount?: number;
234
+ }
235
+ export interface FusionPlanSnapshot {
236
+ nodes: FusionPlanNode[];
237
+ edges: FusionPlanEdge[];
238
+ shaders: FusionPlanShader[];
239
+ decisions: FusionPlanDecision[];
240
+ }
241
+ export interface FusionPlanNode {
242
+ id: string;
243
+ kind: string;
244
+ label: string;
245
+ shape: number[];
246
+ residency?: string;
247
+ }
248
+ export interface FusionPlanEdge {
249
+ from: string;
250
+ to: string;
251
+ reason?: string;
252
+ }
253
+ export interface FusionPlanShader {
254
+ name: string;
255
+ stage: string;
256
+ workgroupSize?: [number, number, number];
257
+ sourceHash?: string;
258
+ }
259
+ export interface FusionPlanDecision {
260
+ nodeId: string;
261
+ fused: boolean;
262
+ reason?: string;
263
+ thresholds?: string;
264
+ }
265
+ export interface SessionStats {
266
+ totalExecutions: number;
267
+ jitCompiled: number;
268
+ interpreterFallback: number;
269
+ totalExecutionTimeMs: number;
270
+ averageExecutionTimeMs: number;
271
+ }
272
+ export interface GpuStatus {
273
+ requested: boolean;
274
+ active: boolean;
275
+ error?: string;
276
+ adapter?: GpuAdapterInfo;
277
+ }
278
+ export interface GpuAdapterInfo {
279
+ deviceId: number;
280
+ name: string;
281
+ vendor: string;
282
+ backend?: string;
283
+ memoryBytes?: number;
284
+ precision?: "single" | "double";
285
+ }
286
+ export interface MemoryUsage {
287
+ bytes: number;
288
+ pages: number;
289
+ }
290
+ export interface RunMatSessionHandle {
291
+ execute(source: string): Promise<ExecuteResult>;
292
+ resetSession(): Promise<void>;
293
+ stats(): Promise<SessionStats>;
294
+ clearWorkspace(): void;
295
+ dispose(): void;
296
+ telemetryConsent(): boolean;
297
+ memoryUsage(): Promise<MemoryUsage>;
298
+ telemetryClientId(): string | undefined;
299
+ gpuStatus(): GpuStatus;
300
+ cancelExecution(): void;
301
+ cancelPendingRequests(): void;
302
+ setInputHandler(handler: InputHandler | null): Promise<void>;
303
+ resumeInput(requestId: string, value: ResumeInputValue): Promise<ExecuteResult>;
304
+ pendingStdinRequests(): Promise<PendingStdinRequest[]>;
305
+ materializeVariable(selector: WorkspaceMaterializeSelector, options?: MaterializeVariableOptions): Promise<MaterializedVariable>;
306
+ setFusionPlanEnabled(enabled: boolean): void;
307
+ setLanguageCompat(mode: LanguageCompatMode): void;
308
+ fusionPlanForSource?(source: string): Promise<FusionPlanSnapshot | null>;
309
+ }
310
+ interface NativeInitOptions {
311
+ snapshotBytes?: Uint8Array;
312
+ snapshotStream?: ReadableStream<Uint8Array | ArrayBufferView | ArrayBuffer>;
313
+ snapshotUrl?: string;
314
+ enableGpu?: boolean;
315
+ enableJit?: boolean;
316
+ verbose?: boolean;
317
+ telemetryConsent?: boolean;
318
+ telemetryId?: string;
319
+ wgpuPowerPreference?: string;
320
+ wgpuForceFallbackAdapter?: boolean;
321
+ scatterTargetPoints?: number;
322
+ surfaceVertexBudget?: number;
323
+ emitFusionPlan?: boolean;
324
+ languageCompat?: LanguageCompatMode;
325
+ }
326
+ interface RunMatNativeSession {
327
+ execute(source: string): ExecuteResult;
328
+ resetSession(): void;
329
+ stats(): SessionStats;
330
+ clearWorkspace(): void;
331
+ dispose?: () => void;
332
+ telemetryConsent(): boolean;
333
+ memoryUsage?: () => MemoryUsage;
334
+ telemetryClientId?: () => string | undefined;
335
+ gpuStatus(): GpuStatus;
336
+ cancelExecution?: () => void;
337
+ cancelPendingRequests?: () => void;
338
+ setInputHandler?: (handler: InputHandler | null) => void;
339
+ resumeInput?: (requestId: string, value: ResumeInputWireValue) => ExecuteResult;
340
+ pendingStdinRequests?: () => PendingStdinRequest[];
341
+ materializeVariable?: (selector: WorkspaceMaterializeSelectorWire, options?: MaterializeVariableOptionsWire) => MaterializedVariable;
342
+ setFusionPlanEnabled?: (enabled: boolean) => void;
343
+ setLanguageCompat?: (mode: LanguageCompatMode) => void;
344
+ fusionPlanForSource?: (source: string) => FusionPlanSnapshot | null;
345
+ }
346
+ interface ResumeInputWireValue {
347
+ kind?: "line" | "keyPress";
348
+ value?: string;
349
+ error?: string;
350
+ }
351
+ type WorkspaceMaterializeSelectorWire = string | {
352
+ name?: string;
353
+ token?: string;
354
+ previewToken?: string;
355
+ };
356
+ interface MaterializeVariableOptionsWire {
357
+ limit?: number;
358
+ }
359
+ interface RunMatNativeModule {
360
+ default: (module?: WasmInitInput | Promise<WasmInitInput>) => Promise<unknown>;
361
+ initRunMat(options: NativeInitOptions): Promise<RunMatNativeSession>;
362
+ registerFsProvider?: (provider: RunMatFilesystemProvider) => void;
363
+ registerPlotCanvas?: (canvas: HTMLCanvasElement) => Promise<void>;
364
+ deregisterPlotCanvas?: () => void;
365
+ plotRendererReady?: () => boolean;
366
+ registerFigureCanvas?: (handle: number, canvas: HTMLCanvasElement) => Promise<void>;
367
+ resizeFigureCanvas?: (handle: number, width: number, height: number) => void;
368
+ renderCurrentFigureScene?: (handle: number) => void;
369
+ deregisterFigureCanvas?: (handle: number) => void;
370
+ onFigureEvent?: (callback: ((event: FigureEvent) => void) | null) => void;
371
+ newFigureHandle?: () => number;
372
+ selectFigure?: (handle: number) => void;
373
+ currentFigureHandle?: () => number;
374
+ setHoldMode?: (mode: HoldMode) => boolean;
375
+ configureSubplot?: (rows: number, cols: number, index: number) => void;
376
+ clearFigure?: (handle: number | null) => number;
377
+ closeFigure?: (handle: number | null) => number;
378
+ currentAxesInfo?: () => AxesInfo;
379
+ renderFigureImage?: (handle: number | null, width: number, height: number) => Promise<Uint8Array>;
380
+ subscribeStdout?: (listener: (entry: StdoutEntry) => void) => number;
381
+ unsubscribeStdout?: (id: number) => void;
382
+ subscribeRuntimeLog?: (listener: (entry: RuntimeLogEntry) => void) => number;
383
+ unsubscribeRuntimeLog?: (id: number) => void;
384
+ subscribeTraceEvents?: (listener: (entries: TraceEvent[]) => void) => number;
385
+ unsubscribeTraceEvents?: (id: number) => void;
386
+ resumeInput?: (requestId: string, value: ResumeInputWireValue) => ExecuteResult;
387
+ pendingStdinRequests?: () => PendingStdinRequest[];
388
+ }
389
+ export declare function initRunMat(options?: RunMatInitOptions): Promise<RunMatSessionHandle>;
390
+ export declare function attachPlotCanvas(canvas: HTMLCanvasElement): Promise<void>;
391
+ export declare function plotRendererReady(): Promise<boolean>;
392
+ export declare function registerFigureCanvas(handle: number, canvas: HTMLCanvasElement): Promise<void>;
393
+ export declare function resizeFigureCanvas(handle: number, widthPx: number, heightPx: number): Promise<void>;
394
+ export declare function renderCurrentFigureScene(handle: number): Promise<void>;
395
+ export declare function deregisterPlotCanvas(): Promise<void>;
396
+ export declare function deregisterFigureCanvas(handle: number): Promise<void>;
397
+ export declare function onFigureEvent(listener: FigureEventListener | null): Promise<void>;
398
+ export declare function subscribeStdout(listener: StdoutListener): Promise<number>;
399
+ export declare function unsubscribeStdout(id: number): Promise<void>;
400
+ export declare function subscribeRuntimeLog(listener: RuntimeLogListener): Promise<number>;
401
+ export declare function unsubscribeRuntimeLog(id: number): Promise<void>;
402
+ export declare function subscribeTraceEvents(listener: TraceEventListener): Promise<number>;
403
+ export declare function unsubscribeTraceEvents(id: number): Promise<void>;
404
+ export declare function figure(handle?: number): Promise<number>;
405
+ export declare function newFigureHandle(): Promise<number>;
406
+ export declare function currentFigureHandle(): Promise<number>;
407
+ export declare function setHoldMode(mode?: HoldMode): Promise<boolean>;
408
+ export declare function hold(mode?: HoldMode): Promise<boolean>;
409
+ export declare function holdOn(): Promise<boolean>;
410
+ export declare function holdOff(): Promise<boolean>;
411
+ export declare function configureSubplot(rows: number, cols: number, index?: number): Promise<void>;
412
+ export declare function subplot(rows: number, cols: number, index?: number): Promise<void>;
413
+ export declare function clearFigure(handle?: number): Promise<number>;
414
+ export declare function closeFigure(handle?: number): Promise<number>;
415
+ export declare function currentAxesInfo(): Promise<AxesInfo>;
416
+ export declare function renderFigureImage(options?: FigureImageOptions): Promise<Uint8Array>;
417
+ declare function coerceFigureError(value: unknown): FigureBindingError;
418
+ type SnapshotStream = ReadableStream<Uint8Array | ArrayBufferView | ArrayBuffer>;
419
+ interface SnapshotResolution {
420
+ bytes?: Uint8Array;
421
+ stream?: SnapshotStream;
422
+ }
423
+ declare function resolveSnapshotSource(source?: RunMatSnapshotSource): Promise<SnapshotResolution>;
424
+ declare function fetchSnapshotFromUrl(url: string): Promise<Uint8Array>;
425
+ declare function normalizeResumeInputValue(input: ResumeInputValue): ResumeInputWireValue;
426
+ export declare const __internals: {
427
+ resolveSnapshotSource: typeof resolveSnapshotSource;
428
+ fetchSnapshotFromUrl: typeof fetchSnapshotFromUrl;
429
+ coerceFigureError: typeof coerceFigureError;
430
+ normalizeResumeInputValue: typeof normalizeResumeInputValue;
431
+ workspaceHover: Record<string, unknown>;
432
+ setNativeModuleOverride(module: RunMatNativeModule | RunMatNativeSession | null): void;
433
+ };
434
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}