@vune-ui/execution 0.1.20
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/LICENSE +21 -0
- package/dist/index.d.ts +247 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +560 -0
- package/dist/index.js.map +1 -0
- package/dist/resident-wasm.d.ts +238 -0
- package/dist/resident-wasm.d.ts.map +1 -0
- package/dist/resident-wasm.js +578 -0
- package/dist/resident-wasm.js.map +1 -0
- package/dist/resident-worker.d.ts +145 -0
- package/dist/resident-worker.d.ts.map +1 -0
- package/dist/resident-worker.js +441 -0
- package/dist/resident-worker.js.map +1 -0
- package/dist/wasm/resident-kernel-scalar.wasm +0 -0
- package/dist/wasm/resident-kernel-shared-scalar.wasm +0 -0
- package/dist/wasm/resident-kernel-shared-simd.wasm +0 -0
- package/dist/wasm/resident-kernel-simd.wasm +0 -0
- package/dist/wasm/resident-worker.mjs +108 -0
- package/package.json +35 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
export type BufferScalarType = "f32" | "f64" | "i32" | "u32" | "u8";
|
|
2
|
+
/** Explicit opt-in switches for the experimental Resident Compute backends. */
|
|
3
|
+
export interface ResidentComputeExperimentalOptions {
|
|
4
|
+
readonly enabled?: boolean;
|
|
5
|
+
readonly wasm?: boolean;
|
|
6
|
+
readonly worker?: boolean;
|
|
7
|
+
readonly gpu?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface ResidentComputeExperimentalState {
|
|
10
|
+
readonly enabled: boolean;
|
|
11
|
+
readonly wasm: boolean;
|
|
12
|
+
readonly worker: boolean;
|
|
13
|
+
readonly gpu: boolean;
|
|
14
|
+
}
|
|
15
|
+
/** Resolve the public toggle. The default is deliberately completely disabled. */
|
|
16
|
+
export declare function resolveResidentComputeExperimental(options?: boolean | ResidentComputeExperimentalOptions | ResidentComputeExperimentalState): ResidentComputeExperimentalState;
|
|
17
|
+
export declare function residentComputeExperimentalEnabled(options?: boolean | ResidentComputeExperimentalOptions | ResidentComputeExperimentalState): boolean;
|
|
18
|
+
export interface BufferField {
|
|
19
|
+
readonly name: string;
|
|
20
|
+
readonly type: BufferScalarType;
|
|
21
|
+
readonly byteOffset: number;
|
|
22
|
+
readonly length: number;
|
|
23
|
+
readonly byteStride: number;
|
|
24
|
+
}
|
|
25
|
+
export interface BufferLayout {
|
|
26
|
+
readonly version: 1;
|
|
27
|
+
readonly fields: readonly BufferField[];
|
|
28
|
+
readonly byteLength: number;
|
|
29
|
+
readonly alignment: number;
|
|
30
|
+
}
|
|
31
|
+
export declare function defineBufferLayout(fields: readonly Readonly<{
|
|
32
|
+
name: string;
|
|
33
|
+
type: BufferScalarType;
|
|
34
|
+
length: number;
|
|
35
|
+
byteStride?: number;
|
|
36
|
+
byteOffset?: number;
|
|
37
|
+
}>[], options?: Readonly<{
|
|
38
|
+
alignment?: number;
|
|
39
|
+
}>): BufferLayout;
|
|
40
|
+
export type ResidentBufferKind = "js" | "wasm" | "shared-wasm" | "gpu";
|
|
41
|
+
export type CpuResidentBufferKind = Exclude<ResidentBufferKind, "gpu">;
|
|
42
|
+
export interface WasmMemory {
|
|
43
|
+
readonly buffer: ArrayBuffer | SharedArrayBuffer;
|
|
44
|
+
grow?(deltaPages: number): number;
|
|
45
|
+
}
|
|
46
|
+
export interface DirtyRange {
|
|
47
|
+
readonly start: number;
|
|
48
|
+
readonly end: number;
|
|
49
|
+
readonly version: number;
|
|
50
|
+
}
|
|
51
|
+
export declare abstract class ResidentBuffer {
|
|
52
|
+
#private;
|
|
53
|
+
readonly layout: BufferLayout;
|
|
54
|
+
readonly byteLength: number;
|
|
55
|
+
abstract readonly kind: ResidentBufferKind;
|
|
56
|
+
protected constructor(layout: BufferLayout, byteLength?: number);
|
|
57
|
+
get storageEpoch(): number;
|
|
58
|
+
get contentVersion(): number;
|
|
59
|
+
get dirtyRanges(): readonly DirtyRange[];
|
|
60
|
+
markWritten(start?: number, end?: number): number;
|
|
61
|
+
markWrittenRanges(ranges: readonly Readonly<{
|
|
62
|
+
start: number;
|
|
63
|
+
end: number;
|
|
64
|
+
}>[]): number;
|
|
65
|
+
consumeDirtyRanges(): readonly DirtyRange[];
|
|
66
|
+
protected markStorageRebound(): number;
|
|
67
|
+
static js(layout: BufferLayout, views: readonly ArrayBufferView[]): CpuResidentBuffer;
|
|
68
|
+
static wasm(layout: BufferLayout, memory: WasmMemory, views: readonly ArrayBufferView[]): WasmResidentBuffer;
|
|
69
|
+
static sharedWasm(layout: BufferLayout, memory: WasmMemory, views: readonly ArrayBufferView[]): WasmResidentBuffer;
|
|
70
|
+
static gpu(layout: BufferLayout, resource: unknown, byteLength?: number): GpuResidentBuffer;
|
|
71
|
+
}
|
|
72
|
+
export declare class CpuResidentBuffer extends ResidentBuffer {
|
|
73
|
+
#private;
|
|
74
|
+
readonly kind: CpuResidentBufferKind;
|
|
75
|
+
constructor(kind: CpuResidentBufferKind, layout: BufferLayout, views: readonly ArrayBufferView[]);
|
|
76
|
+
get cpuViews(): readonly ArrayBufferView[];
|
|
77
|
+
rebindCpuViews(views: readonly ArrayBufferView[]): number;
|
|
78
|
+
}
|
|
79
|
+
export declare class WasmResidentBuffer extends CpuResidentBuffer {
|
|
80
|
+
#private;
|
|
81
|
+
constructor(kind: "wasm" | "shared-wasm", layout: BufferLayout, memory: WasmMemory, views: readonly ArrayBufferView[]);
|
|
82
|
+
get memory(): WasmMemory;
|
|
83
|
+
rebindMemory(memory: WasmMemory, views: readonly ArrayBufferView[]): number;
|
|
84
|
+
}
|
|
85
|
+
export declare class GpuResidentBuffer extends ResidentBuffer {
|
|
86
|
+
#private;
|
|
87
|
+
readonly kind: "gpu";
|
|
88
|
+
constructor(layout: BufferLayout, resource: unknown, byteLength?: number);
|
|
89
|
+
get resource(): unknown;
|
|
90
|
+
rebindResource(resource: unknown): number;
|
|
91
|
+
}
|
|
92
|
+
export type ExecutionRegionLifetime = "single-use" | "persistent" | "frame-persistent";
|
|
93
|
+
export type ExecutionEntrypoint<Context, Result> = (context: Context, region: ExecutionRegion<Context, Result, unknown>) => Result | PromiseLike<Result>;
|
|
94
|
+
export interface ExecutionRegionOptions<Context = unknown, Result = unknown, Metadata = unknown> {
|
|
95
|
+
readonly id: string;
|
|
96
|
+
readonly inputs: readonly ResidentBuffer[];
|
|
97
|
+
readonly outputs: readonly ResidentBuffer[];
|
|
98
|
+
readonly lifetime: ExecutionRegionLifetime;
|
|
99
|
+
readonly noMaterialization: true;
|
|
100
|
+
readonly noReadback: true;
|
|
101
|
+
readonly entrypoints?: Readonly<Record<string, ExecutionEntrypoint<Context, Result>>>;
|
|
102
|
+
readonly metadata?: Metadata;
|
|
103
|
+
}
|
|
104
|
+
export declare class ExecutionRegion<Context = unknown, Result = unknown, Metadata = unknown> {
|
|
105
|
+
readonly id: string;
|
|
106
|
+
readonly inputs: readonly ResidentBuffer[];
|
|
107
|
+
readonly outputs: readonly ResidentBuffer[];
|
|
108
|
+
readonly lifetime: ExecutionRegionLifetime;
|
|
109
|
+
readonly noMaterialization: true;
|
|
110
|
+
readonly noReadback: true;
|
|
111
|
+
readonly entrypoints: Readonly<Record<string, ExecutionEntrypoint<Context, Result>>>;
|
|
112
|
+
readonly metadata: Metadata | undefined;
|
|
113
|
+
constructor(options: ExecutionRegionOptions<Context, Result, Metadata>);
|
|
114
|
+
get source(): ResidentBuffer;
|
|
115
|
+
get sink(): ResidentBuffer;
|
|
116
|
+
entrypoint(backend: ExecutionBackend): ExecutionEntrypoint<Context, Result> | undefined;
|
|
117
|
+
execute(backend: ExecutionBackend, context: Context): Result | PromiseLike<Result>;
|
|
118
|
+
}
|
|
119
|
+
export type ExecutionBackend = "packed-js" | "wasm-simd" | "shared-worker-wasm" | "webgpu" | (string & {});
|
|
120
|
+
export interface BackendCapabilityOptions {
|
|
121
|
+
readonly backend: ExecutionBackend;
|
|
122
|
+
readonly available: boolean;
|
|
123
|
+
readonly residentKinds: readonly ResidentBufferKind[];
|
|
124
|
+
readonly supportsPersistentMemory: boolean;
|
|
125
|
+
readonly supportsSharedMemory: boolean;
|
|
126
|
+
readonly supportsGpuSink: boolean;
|
|
127
|
+
readonly supportsSimd?: boolean;
|
|
128
|
+
readonly requiresCrossOriginIsolated?: boolean;
|
|
129
|
+
readonly crossOriginIsolated?: boolean;
|
|
130
|
+
readonly sharedMemoryAvailable?: boolean;
|
|
131
|
+
readonly webgpuLimits?: Readonly<Record<string, number>>;
|
|
132
|
+
readonly requiredWebgpuLimits?: Readonly<Record<string, number>>;
|
|
133
|
+
readonly deviceState?: "ready" | "lost" | "unavailable";
|
|
134
|
+
readonly deviceLossReason?: string;
|
|
135
|
+
readonly reason?: string;
|
|
136
|
+
}
|
|
137
|
+
export declare class BackendCapability implements BackendCapabilityOptions {
|
|
138
|
+
readonly backend: ExecutionBackend;
|
|
139
|
+
readonly available: boolean;
|
|
140
|
+
readonly residentKinds: readonly ResidentBufferKind[];
|
|
141
|
+
readonly supportsPersistentMemory: boolean;
|
|
142
|
+
readonly supportsSharedMemory: boolean;
|
|
143
|
+
readonly supportsGpuSink: boolean;
|
|
144
|
+
readonly supportsSimd: boolean;
|
|
145
|
+
readonly requiresCrossOriginIsolated: boolean;
|
|
146
|
+
readonly crossOriginIsolated: boolean;
|
|
147
|
+
readonly sharedMemoryAvailable: boolean;
|
|
148
|
+
readonly webgpuLimits: Readonly<Record<string, number>>;
|
|
149
|
+
readonly requiredWebgpuLimits: Readonly<Record<string, number>>;
|
|
150
|
+
readonly deviceState: "ready" | "lost" | "unavailable";
|
|
151
|
+
readonly deviceLossReason: string | undefined;
|
|
152
|
+
readonly reason: string | undefined;
|
|
153
|
+
constructor(options: BackendCapabilityOptions);
|
|
154
|
+
rejectionReason(region: ExecutionRegion): string | null;
|
|
155
|
+
supports(region: ExecutionRegion): boolean;
|
|
156
|
+
}
|
|
157
|
+
export interface ExecutionSample {
|
|
158
|
+
readonly backend: ExecutionBackend;
|
|
159
|
+
readonly computeMs: number;
|
|
160
|
+
readonly transferBytes?: number;
|
|
161
|
+
readonly transferMs?: number;
|
|
162
|
+
readonly materializationBytes?: number;
|
|
163
|
+
readonly materializationMs?: number;
|
|
164
|
+
readonly readbackBytes?: number;
|
|
165
|
+
readonly readbackMs?: number;
|
|
166
|
+
readonly synchronizationBytes?: number;
|
|
167
|
+
readonly synchronizationMs?: number;
|
|
168
|
+
readonly totalMs?: number;
|
|
169
|
+
}
|
|
170
|
+
export interface ExecutionAggregate {
|
|
171
|
+
readonly backend: ExecutionBackend;
|
|
172
|
+
readonly samples: number;
|
|
173
|
+
readonly computeMs: number;
|
|
174
|
+
readonly transferBytes: number;
|
|
175
|
+
readonly transferMs: number;
|
|
176
|
+
readonly materializationBytes: number;
|
|
177
|
+
readonly materializationMs: number;
|
|
178
|
+
readonly readbackBytes: number;
|
|
179
|
+
readonly readbackMs: number;
|
|
180
|
+
readonly synchronizationBytes: number;
|
|
181
|
+
readonly synchronizationMs: number;
|
|
182
|
+
readonly totalMs: number;
|
|
183
|
+
}
|
|
184
|
+
export declare class ExecutionTelemetry {
|
|
185
|
+
#private;
|
|
186
|
+
readonly baselineBackend: "packed-js";
|
|
187
|
+
readonly recentCapacity = 31;
|
|
188
|
+
record(sample: ExecutionSample): ExecutionAggregate;
|
|
189
|
+
aggregate(backend: ExecutionBackend): ExecutionAggregate | null;
|
|
190
|
+
packedJsBaseline(): ExecutionAggregate | null;
|
|
191
|
+
/**
|
|
192
|
+
* Median of the most recent measurements. Promotion decisions use this
|
|
193
|
+
* instead of lifetime means so one cold compile/GC pause cannot permanently
|
|
194
|
+
* bias a region and later workload changes can be observed.
|
|
195
|
+
*/
|
|
196
|
+
recentAggregate(backend: ExecutionBackend, windowSize?: number): ExecutionAggregate | null;
|
|
197
|
+
recentPackedJsBaseline(windowSize?: number): ExecutionAggregate | null;
|
|
198
|
+
compareWithPackedJs(backend: ExecutionBackend): Readonly<{
|
|
199
|
+
ready: boolean;
|
|
200
|
+
wins: boolean;
|
|
201
|
+
ratio: number | null;
|
|
202
|
+
savedMs: number | null;
|
|
203
|
+
}>;
|
|
204
|
+
compareRecentWithPackedJs(backend: ExecutionBackend, windowSize?: number): Readonly<{
|
|
205
|
+
ready: boolean;
|
|
206
|
+
wins: boolean;
|
|
207
|
+
ratio: number | null;
|
|
208
|
+
savedMs: number | null;
|
|
209
|
+
}>;
|
|
210
|
+
snapshot(): Readonly<Record<string, ExecutionAggregate>>;
|
|
211
|
+
}
|
|
212
|
+
export type FrameBudgetLevel = "idle" | "comfortable" | "pressured" | "critical";
|
|
213
|
+
export interface FrameBudgetSnapshot {
|
|
214
|
+
readonly budgetMs: number;
|
|
215
|
+
readonly emaMainThreadMs: number;
|
|
216
|
+
readonly peakMainThreadMs: number;
|
|
217
|
+
readonly pressure: number;
|
|
218
|
+
readonly level: FrameBudgetLevel;
|
|
219
|
+
readonly samples: number;
|
|
220
|
+
}
|
|
221
|
+
export declare class FrameBudgetSignal {
|
|
222
|
+
#private;
|
|
223
|
+
readonly budgetMs: number;
|
|
224
|
+
readonly alpha: number;
|
|
225
|
+
constructor(options?: Readonly<{
|
|
226
|
+
budgetMs?: number;
|
|
227
|
+
alpha?: number;
|
|
228
|
+
}>);
|
|
229
|
+
get pressure(): number;
|
|
230
|
+
get level(): FrameBudgetLevel;
|
|
231
|
+
observe(mainThreadMs: number): FrameBudgetSnapshot;
|
|
232
|
+
snapshot(): FrameBudgetSnapshot;
|
|
233
|
+
subscribe(listener: (snapshot: FrameBudgetSnapshot) => void, options?: Readonly<{
|
|
234
|
+
emitCurrent?: boolean;
|
|
235
|
+
}>): () => void;
|
|
236
|
+
}
|
|
237
|
+
export declare class FrameBudgetGovernor extends FrameBudgetSignal {
|
|
238
|
+
}
|
|
239
|
+
export declare class SerializedExecutionQueue {
|
|
240
|
+
#private;
|
|
241
|
+
get pending(): number;
|
|
242
|
+
get closed(): boolean;
|
|
243
|
+
enqueue<Result>(task: () => Result | PromiseLike<Result>): Promise<Result>;
|
|
244
|
+
idle(): Promise<void>;
|
|
245
|
+
close(): void;
|
|
246
|
+
}
|
|
247
|
+
//# 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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"}
|