albex 0.1.0 → 0.6.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 (72) hide show
  1. package/CHANGELOG.md +416 -0
  2. package/README.md +244 -112
  3. package/dist/albex-worker.d.ts +70 -0
  4. package/dist/albex-worker.d.ts.map +1 -0
  5. package/dist/albex-worker.js +153 -0
  6. package/dist/albex-worker.js.map +1 -0
  7. package/dist/albex.d.ts +508 -6
  8. package/dist/albex.d.ts.map +1 -1
  9. package/dist/albex.js +1911 -141
  10. package/dist/albex.js.map +1 -1
  11. package/dist/errors.d.ts +52 -0
  12. package/dist/errors.d.ts.map +1 -0
  13. package/dist/errors.js +66 -0
  14. package/dist/errors.js.map +1 -0
  15. package/dist/gpu/bloom-runtime.d.ts +60 -0
  16. package/dist/gpu/bloom-runtime.d.ts.map +1 -0
  17. package/dist/gpu/bloom-runtime.js +176 -0
  18. package/dist/gpu/bloom-runtime.js.map +1 -0
  19. package/dist/gpu/bloom-shader.wgsl.d.ts +19 -0
  20. package/dist/gpu/bloom-shader.wgsl.d.ts.map +1 -0
  21. package/dist/gpu/bloom-shader.wgsl.js +49 -0
  22. package/dist/gpu/bloom-shader.wgsl.js.map +1 -0
  23. package/dist/persistence.d.ts +21 -0
  24. package/dist/persistence.d.ts.map +1 -0
  25. package/dist/persistence.js +174 -0
  26. package/dist/persistence.js.map +1 -0
  27. package/dist/pool/coordinator.d.ts +98 -0
  28. package/dist/pool/coordinator.d.ts.map +1 -0
  29. package/dist/pool/coordinator.js +247 -0
  30. package/dist/pool/coordinator.js.map +1 -0
  31. package/dist/profile.d.ts +100 -0
  32. package/dist/profile.d.ts.map +1 -0
  33. package/dist/profile.js +200 -0
  34. package/dist/profile.js.map +1 -0
  35. package/dist/resource-manager.d.ts +56 -0
  36. package/dist/resource-manager.d.ts.map +1 -0
  37. package/dist/resource-manager.js +138 -0
  38. package/dist/resource-manager.js.map +1 -0
  39. package/dist/tiered-store.d.ts +98 -0
  40. package/dist/tiered-store.d.ts.map +1 -0
  41. package/dist/tiered-store.js +238 -0
  42. package/dist/tiered-store.js.map +1 -0
  43. package/dist/wasm-bindings.d.ts +180 -0
  44. package/dist/wasm-bindings.d.ts.map +1 -0
  45. package/dist/wasm-bindings.js +128 -0
  46. package/dist/wasm-bindings.js.map +1 -0
  47. package/dist/worker-protocol.d.ts +86 -0
  48. package/dist/worker-protocol.d.ts.map +1 -0
  49. package/dist/worker-protocol.js +20 -0
  50. package/dist/worker-protocol.js.map +1 -0
  51. package/dist/worker-runtime.d.ts +14 -0
  52. package/dist/worker-runtime.d.ts.map +1 -0
  53. package/dist/worker-runtime.js +109 -0
  54. package/dist/worker-runtime.js.map +1 -0
  55. package/package.json +60 -13
  56. package/src/albex-worker.ts +187 -0
  57. package/src/albex.ts +2136 -189
  58. package/src/errors.ts +76 -0
  59. package/src/gpu/bloom-runtime.ts +229 -0
  60. package/src/gpu/bloom-shader.wgsl.ts +48 -0
  61. package/src/persistence.ts +175 -0
  62. package/src/pool/coordinator.ts +324 -0
  63. package/src/profile.ts +280 -0
  64. package/src/resource-manager.ts +167 -0
  65. package/src/tiered-store.ts +259 -0
  66. package/src/wasm-bindings.ts +349 -0
  67. package/src/worker-protocol.ts +48 -0
  68. package/src/worker-runtime.ts +106 -0
  69. package/wasm/pkg/albex_pdf.wasm +0 -0
  70. package/wasm/pkg/albex_wasm.wasm +0 -0
  71. package/wasm/pkg/albex_wasm_bg.wasm +0 -0
  72. package/wasm/pkg/albex_wasm_simd.wasm +0 -0
package/dist/albex.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"albex.js","sourceRoot":"","sources":["../src/albex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"albex.js","sourceRoot":"","sources":["../src/albex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Albex error hierarchy.
3
+ *
4
+ * All errors thrown by Albex extend `AlbexError`, which itself extends
5
+ * `Error`. This lets callers `catch` on the base class to handle every Albex
6
+ * failure, or on a specific subclass when they want to react differently to,
7
+ * say, "wrong file type" versus "PDF parse error".
8
+ *
9
+ * The strings are intentionally short and machine-friendly so they can be
10
+ * logged or mapped to user-facing messages without parsing the `.message`.
11
+ */
12
+ export declare class AlbexError extends Error {
13
+ /** Discriminator for runtime branching when the prototype chain is lost
14
+ * (e.g. after structuredClone across a Worker boundary). */
15
+ readonly kind: string;
16
+ constructor(kind: string, message: string);
17
+ }
18
+ /** Thrown when `init()` was not called or the WASM module failed to load. */
19
+ export declare class AlbexInitError extends AlbexError {
20
+ constructor(message: string);
21
+ }
22
+ /** Thrown when a file's extension is not in the supported list. */
23
+ export declare class AlbexUnsupportedFormatError extends AlbexError {
24
+ /** The lowercase extension that was rejected, without leading dot. */
25
+ readonly ext: string;
26
+ constructor(ext: string);
27
+ }
28
+ /** Thrown when a document parser fails (corrupt ZIP, malformed PDF, etc.). */
29
+ export declare class AlbexParseError extends AlbexError {
30
+ /** The format that failed (`'pdf'`, `'docx'`, …). */
31
+ readonly format: string;
32
+ constructor(format: string, message: string);
33
+ }
34
+ /**
35
+ * Thrown when an indexing operation does not fit: either the scratchpad was
36
+ * too small for a single write, or one of the engine's pools (chunks, text,
37
+ * documents, names) ran out of room mid-document. Before 0.6.0 the latter was
38
+ * silent — the corpus was truncated with no signal.
39
+ *
40
+ * `limit` names which pool overflowed (or `'scratchpad'`), so callers can
41
+ * branch — e.g. start a fresh shard, `compact()`, or surface "library full".
42
+ * When a capacity error is raised during `indexFile`, the engine may hold a
43
+ * partially-indexed copy of the offending document; treat the index as full
44
+ * and stop adding.
45
+ */
46
+ export type AlbexCapacityLimit = 'chunks' | 'text' | 'docs' | 'names' | 'scratchpad';
47
+ export declare class AlbexCapacityError extends AlbexError {
48
+ /** Which pool overflowed. Undefined for older call sites that didn't set it. */
49
+ readonly limit?: AlbexCapacityLimit;
50
+ constructor(message: string, limit?: AlbexCapacityLimit);
51
+ }
52
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,qBAAa,UAAW,SAAQ,KAAK;IACnC;iEAC6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK1C;AAED,6EAA6E;AAC7E,qBAAa,cAAe,SAAQ,UAAU;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,mEAAmE;AACnE,qBAAa,2BAA4B,SAAQ,UAAU;IACzD,sEAAsE;IACtE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBACT,GAAG,EAAE,MAAM;CAKxB;AAED,8EAA8E;AAC9E,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK5C;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC;AAErF,qBAAa,kBAAmB,SAAQ,UAAU;IAChD,gFAAgF;IAChF,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;gBACxB,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,kBAAkB;CAKxD"}
package/dist/errors.js ADDED
@@ -0,0 +1,66 @@
1
+ /*!
2
+ * albex v0.6.0
3
+ * Zero-config local full-text search for documents — runs entirely in the browser, no server, no upload.
4
+ * (c) 2026 RafaCalRob
5
+ * @license MIT
6
+ * https://github.com/RafaCalRob/Albex#readme
7
+ */
8
+ /**
9
+ * Albex error hierarchy.
10
+ *
11
+ * All errors thrown by Albex extend `AlbexError`, which itself extends
12
+ * `Error`. This lets callers `catch` on the base class to handle every Albex
13
+ * failure, or on a specific subclass when they want to react differently to,
14
+ * say, "wrong file type" versus "PDF parse error".
15
+ *
16
+ * The strings are intentionally short and machine-friendly so they can be
17
+ * logged or mapped to user-facing messages without parsing the `.message`.
18
+ */
19
+ export class AlbexError extends Error {
20
+ /** Discriminator for runtime branching when the prototype chain is lost
21
+ * (e.g. after structuredClone across a Worker boundary). */
22
+ kind;
23
+ constructor(kind, message) {
24
+ super(message);
25
+ this.name = 'AlbexError';
26
+ this.kind = kind;
27
+ }
28
+ }
29
+ /** Thrown when `init()` was not called or the WASM module failed to load. */
30
+ export class AlbexInitError extends AlbexError {
31
+ constructor(message) {
32
+ super('init', message);
33
+ this.name = 'AlbexInitError';
34
+ }
35
+ }
36
+ /** Thrown when a file's extension is not in the supported list. */
37
+ export class AlbexUnsupportedFormatError extends AlbexError {
38
+ /** The lowercase extension that was rejected, without leading dot. */
39
+ ext;
40
+ constructor(ext) {
41
+ super('unsupported_format', `Unsupported format: .${ext}`);
42
+ this.name = 'AlbexUnsupportedFormatError';
43
+ this.ext = ext;
44
+ }
45
+ }
46
+ /** Thrown when a document parser fails (corrupt ZIP, malformed PDF, etc.). */
47
+ export class AlbexParseError extends AlbexError {
48
+ /** The format that failed (`'pdf'`, `'docx'`, …). */
49
+ format;
50
+ constructor(format, message) {
51
+ super('parse', message);
52
+ this.name = 'AlbexParseError';
53
+ this.format = format;
54
+ }
55
+ }
56
+ export class AlbexCapacityError extends AlbexError {
57
+ /** Which pool overflowed. Undefined for older call sites that didn't set it. */
58
+ limit;
59
+ constructor(message, limit) {
60
+ super('capacity', message);
61
+ this.name = 'AlbexCapacityError';
62
+ if (limit)
63
+ this.limit = limit;
64
+ }
65
+ }
66
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC;iEAC6D;IACpD,IAAI,CAAS;IACtB,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,6EAA6E;AAC7E,MAAM,OAAO,cAAe,SAAQ,UAAU;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,mEAAmE;AACnE,MAAM,OAAO,2BAA4B,SAAQ,UAAU;IACzD,sEAAsE;IAC7D,GAAG,CAAS;IACrB,YAAY,GAAW;QACrB,KAAK,CAAC,oBAAoB,EAAE,wBAAwB,GAAG,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;QAC1C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;CACF;AAED,8EAA8E;AAC9E,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC7C,qDAAqD;IAC5C,MAAM,CAAS;IACxB,YAAY,MAAc,EAAE,OAAe;QACzC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAgBD,MAAM,OAAO,kBAAmB,SAAQ,UAAU;IAChD,gFAAgF;IACvE,KAAK,CAAsB;IACpC,YAAY,OAAe,EAAE,KAA0B;QACrD,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAChC,CAAC;CACF"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * WebGPU Bloom pre-filter accelerator.
3
+ *
4
+ * For large corpora (>20 k chunks) the per-chunk `(bloom & pattern) == pattern`
5
+ * check dominates Albex's CPU search time even though each check is one
6
+ * AND and one compare. Running ~100 k of them in a single GPU dispatch
7
+ * cuts that cost by an order of magnitude on modern integrated and
8
+ * discrete GPUs alike.
9
+ *
10
+ * Usage flow (driven by `AlbexEngine` when `shouldUseGpu` returns true):
11
+ *
12
+ * 1. After indexing settles, call `uploadChunkBlooms(blooms)` once to
13
+ * copy the per-chunk Bloom values to a `GPUBuffer`.
14
+ * 2. Before each search, call `scan(patternBloom)` to dispatch the
15
+ * compute shader. The function returns a packed Uint32Array where
16
+ * bit `i` indicates that chunk `i` passed the Bloom test.
17
+ * 3. The CPU then runs the (much smaller) Bitap pass over only the
18
+ * candidates, in WASM as before.
19
+ *
20
+ * The class is intentionally one-shot and tolerant: if `init()` fails
21
+ * because WebGPU is unavailable or refuses a device, callers must check
22
+ * `available` and fall back to the CPU pre-filter.
23
+ */
24
+ export declare class BloomGpu {
25
+ available: boolean;
26
+ private _device;
27
+ private _pipeline;
28
+ private _chunkBuf;
29
+ private _paramBuf;
30
+ private _passBuf;
31
+ private _readBuf;
32
+ private _chunkCount;
33
+ /** Try to acquire a WebGPU device. Sets `available = true` on success. */
34
+ init(): Promise<boolean>;
35
+ /**
36
+ * Upload the per-chunk Bloom values to a fresh GPU buffer. Resizes if
37
+ * the chunk count changed since last upload. Pass a `Uint32Array` where
38
+ * each chunk occupies two consecutive entries (low half then high half).
39
+ */
40
+ uploadChunkBlooms(blooms: Uint32Array, chunkCount: number): void;
41
+ /**
42
+ * Dispatch the Bloom scan and read back the packed pass-bitset.
43
+ *
44
+ * Returns a `Uint32Array` of length `ceil(chunkCount / 32)`. Each set
45
+ * bit indicates a chunk that passed the Bloom pre-filter.
46
+ */
47
+ scan(patternLo: number, patternHi: number): Promise<Uint32Array>;
48
+ destroy(): void;
49
+ /** TC39 explicit-resource-management alias of `destroy()`. */
50
+ [Symbol.dispose](): void;
51
+ }
52
+ /**
53
+ * Convenience: take a flat `Uint8Array` view of a WASM `chunks[]` array
54
+ * (32 bytes per Chunk) and extract just the 8-byte Bloom field at offset 0
55
+ * into a `Uint32Array` packed `[lo, hi, lo, hi, …]`.
56
+ *
57
+ * Used by the engine when uploading to the GPU buffer.
58
+ */
59
+ export declare function packBloomsFromChunks(chunkBytes: Uint8Array, chunkCount: number): Uint32Array;
60
+ //# sourceMappingURL=bloom-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bloom-runtime.d.ts","sourceRoot":"","sources":["../../src/gpu/bloom-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAsDH,qBAAa,QAAQ;IACnB,SAAS,UAAS;IAClB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,WAAW,CAAK;IAExB,0EAA0E;IACpE,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAuB9B;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAgBhE;;;;;OAKG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAyDtE,OAAO,IAAI,IAAI;IAcf,8DAA8D;IAC9D,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CAS5F"}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * WebGPU Bloom pre-filter accelerator.
3
+ *
4
+ * For large corpora (>20 k chunks) the per-chunk `(bloom & pattern) == pattern`
5
+ * check dominates Albex's CPU search time even though each check is one
6
+ * AND and one compare. Running ~100 k of them in a single GPU dispatch
7
+ * cuts that cost by an order of magnitude on modern integrated and
8
+ * discrete GPUs alike.
9
+ *
10
+ * Usage flow (driven by `AlbexEngine` when `shouldUseGpu` returns true):
11
+ *
12
+ * 1. After indexing settles, call `uploadChunkBlooms(blooms)` once to
13
+ * copy the per-chunk Bloom values to a `GPUBuffer`.
14
+ * 2. Before each search, call `scan(patternBloom)` to dispatch the
15
+ * compute shader. The function returns a packed Uint32Array where
16
+ * bit `i` indicates that chunk `i` passed the Bloom test.
17
+ * 3. The CPU then runs the (much smaller) Bitap pass over only the
18
+ * candidates, in WASM as before.
19
+ *
20
+ * The class is intentionally one-shot and tolerant: if `init()` fails
21
+ * because WebGPU is unavailable or refuses a device, callers must check
22
+ * `available` and fall back to the CPU pre-filter.
23
+ */
24
+ import { BLOOM_SCAN_WGSL } from './bloom-shader.wgsl.js';
25
+ // GPUBufferUsage / GPUMapMode constants are exposed on the global as
26
+ // numeric enums. We mirror only the values we need to avoid pulling typings.
27
+ const USAGE_STORAGE = 0x80;
28
+ const USAGE_COPY_DST = 0x08;
29
+ const USAGE_COPY_SRC = 0x04;
30
+ const USAGE_MAP_READ = 0x01;
31
+ const MAP_READ = 0x01;
32
+ export class BloomGpu {
33
+ available = false;
34
+ _device = null;
35
+ _pipeline = null;
36
+ _chunkBuf = null;
37
+ _paramBuf = null;
38
+ _passBuf = null;
39
+ _readBuf = null;
40
+ _chunkCount = 0;
41
+ /** Try to acquire a WebGPU device. Sets `available = true` on success. */
42
+ async init() {
43
+ try {
44
+ const gpu = globalThis.navigator?.gpu;
45
+ if (!gpu)
46
+ return false;
47
+ const adapter = await gpu.requestAdapter();
48
+ if (!adapter)
49
+ return false;
50
+ const device = await adapter.requestDevice();
51
+ const module = device.createShaderModule({ code: BLOOM_SCAN_WGSL });
52
+ this._pipeline = device.createComputePipeline({
53
+ layout: 'auto',
54
+ compute: { module, entryPoint: 'bloom_scan' },
55
+ });
56
+ this._device = device;
57
+ this.available = true;
58
+ return true;
59
+ }
60
+ catch {
61
+ this.available = false;
62
+ return false;
63
+ }
64
+ }
65
+ /**
66
+ * Upload the per-chunk Bloom values to a fresh GPU buffer. Resizes if
67
+ * the chunk count changed since last upload. Pass a `Uint32Array` where
68
+ * each chunk occupies two consecutive entries (low half then high half).
69
+ */
70
+ uploadChunkBlooms(blooms, chunkCount) {
71
+ if (!this._device)
72
+ throw new Error('BloomGpu not initialised');
73
+ if (this._chunkBuf && this._chunkCount !== chunkCount) {
74
+ this._chunkBuf.destroy();
75
+ this._chunkBuf = null;
76
+ }
77
+ if (!this._chunkBuf) {
78
+ this._chunkBuf = this._device.createBuffer({
79
+ size: blooms.byteLength,
80
+ usage: USAGE_STORAGE | USAGE_COPY_DST,
81
+ });
82
+ }
83
+ this._device.queue.writeBuffer(this._chunkBuf, 0, blooms);
84
+ this._chunkCount = chunkCount;
85
+ }
86
+ /**
87
+ * Dispatch the Bloom scan and read back the packed pass-bitset.
88
+ *
89
+ * Returns a `Uint32Array` of length `ceil(chunkCount / 32)`. Each set
90
+ * bit indicates a chunk that passed the Bloom pre-filter.
91
+ */
92
+ async scan(patternLo, patternHi) {
93
+ if (!this._device || !this._pipeline || !this._chunkBuf) {
94
+ throw new Error('BloomGpu not ready');
95
+ }
96
+ const device = this._device;
97
+ const passWords = Math.ceil(this._chunkCount / 32);
98
+ if (!this._paramBuf) {
99
+ this._paramBuf = device.createBuffer({
100
+ size: 16,
101
+ usage: USAGE_STORAGE | USAGE_COPY_DST,
102
+ });
103
+ }
104
+ const paramBytes = new Uint32Array([patternLo >>> 0, patternHi >>> 0, this._chunkCount, 0]);
105
+ device.queue.writeBuffer(this._paramBuf, 0, paramBytes);
106
+ if (!this._passBuf || this._passBuf.size < passWords * 4) {
107
+ this._passBuf?.destroy();
108
+ this._readBuf?.destroy();
109
+ this._passBuf = device.createBuffer({
110
+ size: Math.max(4, passWords * 4),
111
+ usage: USAGE_STORAGE | USAGE_COPY_SRC,
112
+ });
113
+ this._readBuf = device.createBuffer({
114
+ size: Math.max(4, passWords * 4),
115
+ usage: USAGE_MAP_READ | USAGE_COPY_DST,
116
+ });
117
+ }
118
+ // Zero the pass buffer between dispatches — writeBuffer with empty
119
+ // suffices since atomics set bits cumulatively.
120
+ device.queue.writeBuffer(this._passBuf, 0, new Uint32Array(passWords));
121
+ const layout = this._pipeline.getBindGroupLayout(0);
122
+ const bindGroup = device.createBindGroup({
123
+ layout,
124
+ entries: [
125
+ { binding: 0, resource: { buffer: this._chunkBuf } },
126
+ { binding: 1, resource: { buffer: this._paramBuf } },
127
+ { binding: 2, resource: { buffer: this._passBuf } },
128
+ ],
129
+ });
130
+ const encoder = device.createCommandEncoder();
131
+ const pass = encoder.beginComputePass();
132
+ pass.setPipeline(this._pipeline);
133
+ pass.setBindGroup(0, bindGroup);
134
+ pass.dispatchWorkgroups(Math.ceil(this._chunkCount / 64));
135
+ pass.end();
136
+ encoder.copyBufferToBuffer(this._passBuf, 0, this._readBuf, 0, passWords * 4);
137
+ device.queue.submit([encoder.finish()]);
138
+ await this._readBuf.mapAsync(MAP_READ);
139
+ const out = new Uint32Array(this._readBuf.getMappedRange().slice(0));
140
+ this._readBuf.unmap();
141
+ return out;
142
+ }
143
+ destroy() {
144
+ this._chunkBuf?.destroy();
145
+ this._paramBuf?.destroy();
146
+ this._passBuf?.destroy();
147
+ this._readBuf?.destroy();
148
+ this._device?.destroy();
149
+ this._device = null;
150
+ this._chunkBuf = null;
151
+ this._paramBuf = null;
152
+ this._passBuf = null;
153
+ this._readBuf = null;
154
+ this.available = false;
155
+ }
156
+ /** TC39 explicit-resource-management alias of `destroy()`. */
157
+ [Symbol.dispose]() { this.destroy(); }
158
+ }
159
+ /**
160
+ * Convenience: take a flat `Uint8Array` view of a WASM `chunks[]` array
161
+ * (32 bytes per Chunk) and extract just the 8-byte Bloom field at offset 0
162
+ * into a `Uint32Array` packed `[lo, hi, lo, hi, …]`.
163
+ *
164
+ * Used by the engine when uploading to the GPU buffer.
165
+ */
166
+ export function packBloomsFromChunks(chunkBytes, chunkCount) {
167
+ const out = new Uint32Array(chunkCount * 2);
168
+ const view = new DataView(chunkBytes.buffer, chunkBytes.byteOffset, chunkBytes.byteLength);
169
+ for (let i = 0; i < chunkCount; i++) {
170
+ // Chunk struct: bloom: u64 at offset 0 within a 32-byte record.
171
+ out[i * 2] = view.getUint32(i * 32 + 0, true); // low
172
+ out[i * 2 + 1] = view.getUint32(i * 32 + 4, true); // high
173
+ }
174
+ return out;
175
+ }
176
+ //# sourceMappingURL=bloom-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bloom-runtime.js","sourceRoot":"","sources":["../../src/gpu/bloom-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * WGSL compute shader for batched Bloom-filter pre-checks.
3
+ *
4
+ * Inputs (storage buffers):
5
+ * blooms : array<u32> — 2 u32 per chunk encoding the chunk's u64 Bloom.
6
+ * Index 2*i = low half, 2*i+1 = high half.
7
+ * params : { pattern_lo: u32, pattern_hi: u32, chunk_count: u32 }
8
+ *
9
+ * Outputs:
10
+ * passes : array<atomic<u32>> — bit i (in passes[i / 32]) set iff
11
+ * chunks[i] might contain the pattern.
12
+ *
13
+ * Workgroup size of 64 matches typical occupancy on Apple GPUs and
14
+ * Snapdragon; larger workgroups gain little for this memory-bound op.
15
+ *
16
+ * Kept in TS so the bundler ships it inline — no extra `.wgsl` asset fetch.
17
+ */
18
+ export declare const BLOOM_SCAN_WGSL = "\nstruct Params {\n pattern_lo: u32,\n pattern_hi: u32,\n chunk_count: u32,\n _pad: u32,\n};\n\n@group(0) @binding(0) var<storage, read> blooms : array<u32>;\n@group(0) @binding(1) var<storage, read> params : Params;\n@group(0) @binding(2) var<storage, read_write> passes : array<atomic<u32>>;\n\n@compute @workgroup_size(64)\nfn bloom_scan(@builtin(global_invocation_id) gid: vec3<u32>) {\n let i = gid.x;\n if (i >= params.chunk_count) { return; }\n\n let bloom_lo = blooms[i * 2u];\n let bloom_hi = blooms[i * 2u + 1u];\n\n // (bloom & pattern) == pattern iff pattern is a subset of bloom.\n let match_lo = (bloom_lo & params.pattern_lo) == params.pattern_lo;\n let match_hi = (bloom_hi & params.pattern_hi) == params.pattern_hi;\n if (!(match_lo && match_hi)) { return; }\n\n // Mark bit i in the packed result. Each u32 holds 32 chunk results.\n let word = i / 32u;\n let bit = i % 32u;\n atomicOr(&passes[word], 1u << bit);\n}\n";
19
+ //# sourceMappingURL=bloom-shader.wgsl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bloom-shader.wgsl.d.ts","sourceRoot":"","sources":["../../src/gpu/bloom-shader.wgsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,eAAe,49BA8B3B,CAAC"}