aifastdb 3.10.5 → 3.10.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 (73) hide show
  1. package/aifastdb.node +0 -0
  2. package/aifastdb.win32-x64-msvc.node +0 -0
  3. package/dist/concurrent-document-store.d.ts +4 -0
  4. package/dist/concurrent-document-store.d.ts.map +1 -1
  5. package/dist/concurrent-document-store.js +6 -0
  6. package/dist/concurrent-document-store.js.map +1 -1
  7. package/dist/find-async-baseline.d.ts +33 -0
  8. package/dist/find-async-baseline.d.ts.map +1 -0
  9. package/dist/find-async-baseline.js +424 -0
  10. package/dist/find-async-baseline.js.map +1 -0
  11. package/dist/find-async-bench.d.ts +22 -0
  12. package/dist/find-async-bench.d.ts.map +1 -0
  13. package/dist/find-async-bench.js +322 -0
  14. package/dist/find-async-bench.js.map +1 -0
  15. package/dist/find-async-verify.d.ts +23 -0
  16. package/dist/find-async-verify.d.ts.map +1 -0
  17. package/dist/find-async-verify.js +286 -0
  18. package/dist/find-async-verify.js.map +1 -0
  19. package/dist/hnsw-insert-profile-verify.d.ts +35 -0
  20. package/dist/hnsw-insert-profile-verify.d.ts.map +1 -0
  21. package/dist/hnsw-insert-profile-verify.js +250 -0
  22. package/dist/hnsw-insert-profile-verify.js.map +1 -0
  23. package/dist/micro-batcher-benchmark.d.ts +3 -0
  24. package/dist/micro-batcher-benchmark.d.ts.map +1 -0
  25. package/dist/micro-batcher-benchmark.js +296 -0
  26. package/dist/micro-batcher-benchmark.js.map +1 -0
  27. package/dist/micro-batcher.d.ts +97 -0
  28. package/dist/micro-batcher.d.ts.map +1 -0
  29. package/dist/micro-batcher.js +77 -0
  30. package/dist/micro-batcher.js.map +1 -0
  31. package/dist/native.d.ts +71 -0
  32. package/dist/native.d.ts.map +1 -1
  33. package/dist/native.js +6 -1
  34. package/dist/native.js.map +1 -1
  35. package/dist/phase-387-reproducibility-audit.d.ts +3 -0
  36. package/dist/phase-387-reproducibility-audit.d.ts.map +1 -0
  37. package/dist/phase-387-reproducibility-audit.js +236 -0
  38. package/dist/phase-387-reproducibility-audit.js.map +1 -0
  39. package/dist/phase-390-baseline-multiseed.d.ts +3 -0
  40. package/dist/phase-390-baseline-multiseed.d.ts.map +1 -0
  41. package/dist/phase-390-baseline-multiseed.js +241 -0
  42. package/dist/phase-390-baseline-multiseed.js.map +1 -0
  43. package/dist/phase-390-t2-mb-grid-sweep.d.ts +3 -0
  44. package/dist/phase-390-t2-mb-grid-sweep.d.ts.map +1 -0
  45. package/dist/phase-390-t2-mb-grid-sweep.js +291 -0
  46. package/dist/phase-390-t2-mb-grid-sweep.js.map +1 -0
  47. package/dist/read-profiler-verify.js +236 -1
  48. package/dist/read-profiler-verify.js.map +1 -1
  49. package/dist/remember-many-spawn-benchmark.d.ts +3 -0
  50. package/dist/remember-many-spawn-benchmark.d.ts.map +1 -0
  51. package/dist/remember-many-spawn-benchmark.js +163 -0
  52. package/dist/remember-many-spawn-benchmark.js.map +1 -0
  53. package/dist/remember-spawn-benchmark.d.ts +3 -0
  54. package/dist/remember-spawn-benchmark.d.ts.map +1 -0
  55. package/dist/remember-spawn-benchmark.js +230 -0
  56. package/dist/remember-spawn-benchmark.js.map +1 -0
  57. package/dist/remember-spawn-receipt-benchmark.d.ts +3 -0
  58. package/dist/remember-spawn-receipt-benchmark.d.ts.map +1 -0
  59. package/dist/remember-spawn-receipt-benchmark.js +266 -0
  60. package/dist/remember-spawn-receipt-benchmark.js.map +1 -0
  61. package/dist/sgv2-async-verify.d.ts +17 -0
  62. package/dist/sgv2-async-verify.d.ts.map +1 -0
  63. package/dist/sgv2-async-verify.js +217 -0
  64. package/dist/sgv2-async-verify.js.map +1 -0
  65. package/dist/social-graph-v2-read-benchmark.d.ts +11 -2
  66. package/dist/social-graph-v2-read-benchmark.d.ts.map +1 -1
  67. package/dist/social-graph-v2-read-benchmark.js +145 -3
  68. package/dist/social-graph-v2-read-benchmark.js.map +1 -1
  69. package/dist/social-graph-v2.d.ts +65 -4
  70. package/dist/social-graph-v2.d.ts.map +1 -1
  71. package/dist/social-graph-v2.js +72 -6
  72. package/dist/social-graph-v2.js.map +1 -1
  73. package/package.json +1 -1
@@ -262,11 +262,246 @@ async function verifySocialGraphV2() {
262
262
  console.log(graph.readProfileSnapshot());
263
263
  fs.rmSync(dir, { recursive: true, force: true });
264
264
  }
265
+ /**
266
+ * phase-377/T377.3 (E377.B): verify SGV2 NAPI smart routing for
267
+ * `getTagMembers` actually pushes `limit/offset` into the core
268
+ * `get_tag_members_limited` path. The phase-378 read profiler captures
269
+ * one sample per `get_tag_members` call, so we compare `avg_ns` between:
270
+ *
271
+ * * limited path: `getTagMembers(tagId, { limit: L })`
272
+ * -> NAPI smart routing -> `core::get_tag_members_limited`
273
+ * -> at most `L` get_person + Entity clones per call
274
+ * * full path: `getTagMembers(tagId)` (no options)
275
+ * -> NAPI legacy wrapper -> `core::get_tag_members(tag)`
276
+ * -> all `card` get_person + Entity clones per call
277
+ *
278
+ * Unlike the CDS counterpart, SGV2 also pays the fixed
279
+ * `router.incoming_to` floor regardless of `limit`, which caps the
280
+ * achievable ratio. The keep gate is therefore loosened to "limited
281
+ * avg_ns must be measurably below full avg_ns" with a soft target of
282
+ * `>= card / limit / 6` (T377.1 baseline composition predicts a
283
+ * structural ~1.7× core ratio at card=1000 / limit=10, so we accept any
284
+ * regression that drops below ~1.5× as a routing bug).
285
+ */
286
+ async function verifyGetTagMembersLimitPushdown() {
287
+ const dir = makeTempDir('sgv2-get-tag-members-limit-pushdown-');
288
+ console.log(`\n[SGV2/limit-pushdown] tempdir = ${dir}`);
289
+ const graph = new social_graph_v2_1.SocialGraphV2({ path: dir, walEnabled: false });
290
+ // Hot tag with 1000 members -> mirrors the T377.1 baseline scenario
291
+ // (`getTagMembers_high`).
292
+ const card = 1000;
293
+ const limit = 10;
294
+ const iterations = 30;
295
+ const tag = graph.addTag({ name: 'phase-377-verify', tagType: 'organization' });
296
+ const personIds = [];
297
+ for (let i = 0; i < card; i++) {
298
+ const p = graph.addPerson({ name: `p-${i}` });
299
+ personIds.push(p.id);
300
+ graph.tagPerson(p.id, tag.id);
301
+ }
302
+ // ---- limited path (NAPI smart routing -> get_tag_members_limited)
303
+ graph.readProfileReset();
304
+ for (let i = 0; i < iterations; i++) {
305
+ const r = graph.getTagMembers(tag.id, { limit });
306
+ if (r.length !== limit) {
307
+ failures.push({
308
+ message: ` FAIL: getTagMembers(tag, {limit:${limit}}) returned ${r.length}, expected ${limit}`,
309
+ });
310
+ }
311
+ }
312
+ const limitedSnapshot = graph.readProfileSnapshot();
313
+ console.log('\n--- read profile (SGV2 limited path) ---');
314
+ console.log(limitedSnapshot);
315
+ const limitedTotal = readSlotMetrics(limitedSnapshot, 'get_tag_members_total');
316
+ assertEq(limitedTotal?.count ?? null, iterations, 'limited get_tag_members_total count');
317
+ // ---- full path (NAPI legacy wrapper -> get_tag_members)
318
+ graph.readProfileReset();
319
+ for (let i = 0; i < iterations; i++) {
320
+ const r = graph.getTagMembers(tag.id);
321
+ if (r.length !== card) {
322
+ failures.push({
323
+ message: ` FAIL: getTagMembers(tag) (no options) returned ${r.length}, expected ${card}`,
324
+ });
325
+ }
326
+ }
327
+ const fullSnapshot = graph.readProfileSnapshot();
328
+ console.log('\n--- read profile (SGV2 full path) ---');
329
+ console.log(fullSnapshot);
330
+ const fullTotal = readSlotMetrics(fullSnapshot, 'get_tag_members_total');
331
+ assertEq(fullTotal?.count ?? null, iterations, 'full get_tag_members_total count');
332
+ // Core routing assertion: full path must walk + clone every member,
333
+ // limited path must short-circuit at `limit`. The avg_ns ratio
334
+ // therefore reflects work-per-call ratio, gated by the structural
335
+ // SGV2 floor. We expect ~1.7× core (T377.2 microbench was 1.70×); we
336
+ // accept any ratio >= 1.4× as PASS, anything below is a routing bug.
337
+ if (limitedTotal && fullTotal && limitedTotal.avgNs > 0) {
338
+ const observedRatio = fullTotal.avgNs / Math.max(1, limitedTotal.avgNs);
339
+ const minRatio = 1.4;
340
+ if (observedRatio >= minRatio) {
341
+ console.log(` PASS: full vs limited get_tag_members_total avg_ns ratio = ${observedRatio.toFixed(2)}x (limited=${limitedTotal.avgNs}ns, full=${fullTotal.avgNs}ns); expected >= ${minRatio.toFixed(2)}x given card=${card}/limit=${limit}`);
342
+ }
343
+ else {
344
+ const failMsg = ` FAIL: full vs limited get_tag_members_total avg_ns ratio = ${observedRatio.toFixed(2)}x (limited=${limitedTotal.avgNs}ns, full=${fullTotal.avgNs}ns); expected >= ${minRatio.toFixed(2)}x. Likely regression: NAPI smart routing no longer pushes limit into core when options.limit is set.`;
345
+ console.log(failMsg);
346
+ failures.push({ message: failMsg });
347
+ }
348
+ }
349
+ else {
350
+ failures.push({
351
+ message: ` FAIL: missing slot data — limitedTotal=${JSON.stringify(limitedTotal)} fullTotal=${JSON.stringify(fullTotal)}`,
352
+ });
353
+ }
354
+ fs.rmSync(dir, { recursive: true, force: true });
355
+ }
356
+ /**
357
+ * phase-377/T377.5 (E377.D): regression guard for the NAPI listTags
358
+ * smart routing into `core::list_tags_limited`. Seeds 1000 company tags
359
+ * and asserts that `listTags({ tagType, limit })` produces an
360
+ * `list_tags_total.avg_ns` strictly smaller than the legacy
361
+ * `listTags({ tagType })` full-set materialize. The keep gate is
362
+ * deliberately conservative (>= 5×) given the T377.4 microbench
363
+ * structural ceiling is `N / limit = 100×` and the e2e benchmark sees
364
+ * tens of × — anything below 5× signals a real routing regression.
365
+ */
366
+ async function verifyListTagsLimitPushdown() {
367
+ const dir = makeTempDir('sgv2-list-tags-limit-pushdown-');
368
+ console.log(`\n[SGV2/list-tags-limit-pushdown] tempdir = ${dir}`);
369
+ const graph = new social_graph_v2_1.SocialGraphV2({ path: dir, walEnabled: false });
370
+ const card = 1000;
371
+ const limit = 10;
372
+ const iterations = 50;
373
+ for (let i = 0; i < card; i++) {
374
+ graph.addTag({ name: `verify-co-${i}`, tagType: 'company' });
375
+ }
376
+ // ---- limited path (filter.limit forwarded into list_tags_limited)
377
+ graph.readProfileReset();
378
+ for (let i = 0; i < iterations; i++) {
379
+ const r = graph.listTags({ tagType: 'company', limit });
380
+ if (r.length !== limit) {
381
+ failures.push({
382
+ message: ` FAIL: listTags({tagType:'company', limit:${limit}}) returned ${r.length}, expected ${limit}`,
383
+ });
384
+ }
385
+ }
386
+ const limitedSnapshot = graph.readProfileSnapshot();
387
+ console.log('\n--- read profile (SGV2 listTags limited path) ---');
388
+ console.log(limitedSnapshot);
389
+ const limitedTotal = readSlotMetrics(limitedSnapshot, 'list_tags_total');
390
+ assertEq(limitedTotal?.count ?? null, iterations, 'limited list_tags_total count');
391
+ // ---- full path (no limit -> legacy collect-all then return everything)
392
+ graph.readProfileReset();
393
+ for (let i = 0; i < iterations; i++) {
394
+ const r = graph.listTags({ tagType: 'company' });
395
+ if (r.length !== card) {
396
+ failures.push({
397
+ message: ` FAIL: listTags({tagType:'company'}) returned ${r.length}, expected ${card}`,
398
+ });
399
+ }
400
+ }
401
+ const fullSnapshot = graph.readProfileSnapshot();
402
+ console.log('\n--- read profile (SGV2 listTags full path) ---');
403
+ console.log(fullSnapshot);
404
+ const fullTotal = readSlotMetrics(fullSnapshot, 'list_tags_total');
405
+ assertEq(fullTotal?.count ?? null, iterations, 'full list_tags_total count');
406
+ if (limitedTotal && fullTotal && limitedTotal.avgNs > 0) {
407
+ const observedRatio = fullTotal.avgNs / Math.max(1, limitedTotal.avgNs);
408
+ const minRatio = 5.0;
409
+ if (observedRatio >= minRatio) {
410
+ console.log(` PASS: full vs limited list_tags_total avg_ns ratio = ${observedRatio.toFixed(2)}x (limited=${limitedTotal.avgNs}ns, full=${fullTotal.avgNs}ns); expected >= ${minRatio.toFixed(2)}x given card=${card}/limit=${limit}`);
411
+ }
412
+ else {
413
+ const failMsg = ` FAIL: full vs limited list_tags_total avg_ns ratio = ${observedRatio.toFixed(2)}x (limited=${limitedTotal.avgNs}ns, full=${fullTotal.avgNs}ns); expected >= ${minRatio.toFixed(2)}x. Likely regression: filter.limit no longer routed into list_tags_limited fast path.`;
414
+ console.log(failMsg);
415
+ failures.push({ message: failMsg });
416
+ }
417
+ }
418
+ else {
419
+ failures.push({
420
+ message: ` FAIL: missing slot data — limitedTotal=${JSON.stringify(limitedTotal)} fullTotal=${JSON.stringify(fullTotal)}`,
421
+ });
422
+ }
423
+ fs.rmSync(dir, { recursive: true, force: true });
424
+ }
425
+ /**
426
+ * phase-377/T377.7 (E377.F): regression guard for the NAPI
427
+ * getPersonsByAttribute smart routing into
428
+ * `core::get_persons_by_attribute_limited`. Seeds 1000 holders of a
429
+ * single hot attribute and asserts that limited(limit=10) avg_ns is
430
+ * strictly smaller than the legacy full-set materialize.
431
+ */
432
+ async function verifyGetPersonsByAttributeLimitPushdown() {
433
+ const dir = makeTempDir('sgv2-get-persons-by-attribute-limit-pushdown-');
434
+ console.log(`\n[SGV2/get-persons-by-attribute-limit-pushdown] tempdir = ${dir}`);
435
+ const graph = new social_graph_v2_1.SocialGraphV2({ path: dir, walEnabled: false });
436
+ const card = 1000;
437
+ const limit = 10;
438
+ const iterations = 30;
439
+ const attr = graph.findOrCreateAttribute('industry', 'tech');
440
+ for (let i = 0; i < card; i++) {
441
+ const p = graph.addPerson({ name: `p-${i}` });
442
+ graph.setPersonAttribute(p.id, attr.id);
443
+ }
444
+ // ---- limited path
445
+ graph.readProfileReset();
446
+ for (let i = 0; i < iterations; i++) {
447
+ const r = graph.getPersonsByAttribute(attr.id, { limit });
448
+ if (r.length !== limit) {
449
+ failures.push({
450
+ message: ` FAIL: getPersonsByAttribute(attr, {limit:${limit}}) returned ${r.length}, expected ${limit}`,
451
+ });
452
+ }
453
+ }
454
+ const limitedSnapshot = graph.readProfileSnapshot();
455
+ console.log('\n--- read profile (SGV2 getPersonsByAttribute limited path) ---');
456
+ console.log(limitedSnapshot);
457
+ const limitedTotal = readSlotMetrics(limitedSnapshot, 'get_persons_by_attribute_total');
458
+ assertEq(limitedTotal?.count ?? null, iterations, 'limited get_persons_by_attribute_total count');
459
+ // ---- full path (legacy wrapper)
460
+ graph.readProfileReset();
461
+ for (let i = 0; i < iterations; i++) {
462
+ const r = graph.getPersonsByAttribute(attr.id);
463
+ if (r.length !== card) {
464
+ failures.push({
465
+ message: ` FAIL: getPersonsByAttribute(attr) (no options) returned ${r.length}, expected ${card}`,
466
+ });
467
+ }
468
+ }
469
+ const fullSnapshot = graph.readProfileSnapshot();
470
+ console.log('\n--- read profile (SGV2 getPersonsByAttribute full path) ---');
471
+ console.log(fullSnapshot);
472
+ const fullTotal = readSlotMetrics(fullSnapshot, 'get_persons_by_attribute_total');
473
+ assertEq(fullTotal?.count ?? null, iterations, 'full get_persons_by_attribute_total count');
474
+ if (limitedTotal && fullTotal && limitedTotal.avgNs > 0) {
475
+ const observedRatio = fullTotal.avgNs / Math.max(1, limitedTotal.avgNs);
476
+ // Same structural ceiling as T377.3: router::incoming_to materializes
477
+ // the full Vec<Relation> regardless of limit, so the achievable ratio
478
+ // is bounded by the (card - limit) × per-id get_person fan-out.
479
+ // T377.7 microbench observed median 1.60×; we accept >= 1.4× as PASS.
480
+ const minRatio = 1.4;
481
+ if (observedRatio >= minRatio) {
482
+ console.log(` PASS: full vs limited get_persons_by_attribute_total avg_ns ratio = ${observedRatio.toFixed(2)}x (limited=${limitedTotal.avgNs}ns, full=${fullTotal.avgNs}ns); expected >= ${minRatio.toFixed(2)}x given card=${card}/limit=${limit}`);
483
+ }
484
+ else {
485
+ const failMsg = ` FAIL: full vs limited get_persons_by_attribute_total avg_ns ratio = ${observedRatio.toFixed(2)}x (limited=${limitedTotal.avgNs}ns, full=${fullTotal.avgNs}ns); expected >= ${minRatio.toFixed(2)}x. Likely regression: NAPI smart routing no longer pushes limit into core.`;
486
+ console.log(failMsg);
487
+ failures.push({ message: failMsg });
488
+ }
489
+ }
490
+ else {
491
+ failures.push({
492
+ message: ` FAIL: missing slot data — limitedTotal=${JSON.stringify(limitedTotal)} fullTotal=${JSON.stringify(fullTotal)}`,
493
+ });
494
+ }
495
+ fs.rmSync(dir, { recursive: true, force: true });
496
+ }
265
497
  async function main() {
266
498
  await verifyConcurrentDocumentStore();
267
499
  await verifySocialGraphV2();
268
500
  await verifyFindByTagLimitPushdown();
269
- console.log('\nphase-378/T378.4 + phase-376/T376.3: read-profile dump verification done.');
501
+ await verifyGetTagMembersLimitPushdown();
502
+ await verifyListTagsLimitPushdown();
503
+ await verifyGetPersonsByAttributeLimitPushdown();
504
+ console.log('\nphase-378/T378.4 + phase-376/T376.3 + phase-377/T377.3 + phase-377/T377.5 + phase-377/T377.7: read-profile dump verification done.');
270
505
  if (failures.length > 0) {
271
506
  console.error(`\n!!! ${failures.length} assertion(s) FAILED:`);
272
507
  for (const f of failures) {
@@ -1 +1 @@
1
- {"version":3,"file":"read-profiler-verify.js","sourceRoot":"","sources":["../ts/read-profiler-verify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read-profiler-verify.js","sourceRoot":"","sources":["../ts/read-profiler-verify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=remember-many-spawn-benchmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remember-many-spawn-benchmark.d.ts","sourceRoot":"","sources":["../ts/remember-many-spawn-benchmark.ts"],"names":[],"mappings":""}
@@ -0,0 +1,163 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ /**
38
+ * phase-384/T384.2 (E384.B): rememberManySpawn batch benchmark
39
+ *
40
+ * Compares per-call rememberSpawn (one cross-runtime spawn per doc)
41
+ * against rememberManySpawn (one cross-runtime spawn per batch).
42
+ * The hypothesis is that NAPI dispatcher + cross-runtime spawn
43
+ * overhead is what caps `rememberSpawn(c=16) = 67K ops/s` even when
44
+ * the underlying ConcurrentHNSWIndex can push 100K ops/s with
45
+ * `ef_construction=50`. Batching amortises that overhead across N
46
+ * docs and should push the NAPI ceiling closer to the direct-Rust
47
+ * ceiling.
48
+ *
49
+ * Usage:
50
+ * npx tsx packages/node/ts/remember-many-spawn-benchmark.ts
51
+ * npx tsx packages/node/ts/remember-many-spawn-benchmark.ts --ef 50 --batch-sizes 50,100,200,500,1000
52
+ */
53
+ const path = __importStar(require("path"));
54
+ const os = __importStar(require("os"));
55
+ const fs = __importStar(require("fs"));
56
+ const args = new Map();
57
+ process.argv.slice(2).forEach((arg, i, arr) => {
58
+ if (arg.startsWith('--')) {
59
+ const key = arg.slice(2);
60
+ if (i + 1 < arr.length && !arr[i + 1].startsWith('--')) {
61
+ args.set(key, arr[i + 1]);
62
+ }
63
+ else {
64
+ args.set(key, 'true');
65
+ }
66
+ }
67
+ });
68
+ const DIM = parseInt(args.get('dim') ?? '128', 10);
69
+ const TOTAL = parseInt(args.get('total') ?? '5000', 10);
70
+ const BATCH_SIZES = (args.get('batch-sizes') ?? '50,100,200,500,1000')
71
+ .split(',')
72
+ .map((s) => parseInt(s, 10));
73
+ const EF_CONSTRUCTION = parseInt(args.get('ef') ?? '50', 10);
74
+ const EF_SEARCH = parseInt(args.get('ef-search') ?? '50', 10);
75
+ const M = parseInt(args.get('m') ?? '16', 10);
76
+ const ROOT = path.resolve(__dirname, '..', '..', '..');
77
+ const tmpRoot = path.join(os.tmpdir(), `aidb-rms-bench-${process.pid}`);
78
+ fs.mkdirSync(tmpRoot, { recursive: true });
79
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
80
+ const { AiFastDb } = require(path.join(ROOT, 'packages', 'node'));
81
+ function vectorOf(seed, dim) {
82
+ const v = new Array(dim);
83
+ for (let i = 0; i < dim; i++) {
84
+ v[i] = Math.sin(seed * 2654435761 + i * 374761393);
85
+ }
86
+ return v;
87
+ }
88
+ function makeInput(id, dim) {
89
+ return {
90
+ content: `bench doc ${id}`,
91
+ embedding: vectorOf(id, dim),
92
+ tags: ['bench'],
93
+ metadata: { id_num: id },
94
+ importance: 0.5,
95
+ };
96
+ }
97
+ function makeDb(dbPath, dim) {
98
+ fs.mkdirSync(dbPath, { recursive: true });
99
+ return new AiFastDb({
100
+ path: dbPath,
101
+ dimension: dim,
102
+ hnsw: {
103
+ m: M,
104
+ efConstruction: EF_CONSTRUCTION,
105
+ efSearch: EF_SEARCH,
106
+ dimension: dim,
107
+ maxElements: 1000000,
108
+ },
109
+ });
110
+ }
111
+ async function runRememberManySpawn(batchSize, total, dim) {
112
+ const dbPath = path.join(tmpRoot, `bs${batchSize}-${Date.now()}`);
113
+ const db = makeDb(dbPath, dim);
114
+ const inputs = Array.from({ length: total }, (_, i) => makeInput(i, dim));
115
+ const start = process.hrtime.bigint();
116
+ for (let i = 0; i < total; i += batchSize) {
117
+ const end = Math.min(i + batchSize, total);
118
+ await db.rememberManySpawn(inputs.slice(i, end));
119
+ }
120
+ const elapsed = Number(process.hrtime.bigint() - start) / 1e9;
121
+ return { batchSize, elapsed, opsPerSec: total / elapsed };
122
+ }
123
+ async function runRememberMany(batchSize, total, dim) {
124
+ // Sync rememberMany (existing API) for back-to-back comparison.
125
+ const dbPath = path.join(tmpRoot, `sync-bs${batchSize}-${Date.now()}`);
126
+ const db = makeDb(dbPath, dim);
127
+ const inputs = Array.from({ length: total }, (_, i) => makeInput(i, dim));
128
+ const start = process.hrtime.bigint();
129
+ for (let i = 0; i < total; i += batchSize) {
130
+ const end = Math.min(i + batchSize, total);
131
+ db.rememberMany(inputs.slice(i, end));
132
+ }
133
+ const elapsed = Number(process.hrtime.bigint() - start) / 1e9;
134
+ return { batchSize, elapsed, opsPerSec: total / elapsed };
135
+ }
136
+ async function main() {
137
+ console.log(`[bench] phase-384/T384.2 rememberManySpawn batch benchmark`);
138
+ console.log(`[bench] dim=${DIM} total=${TOTAL} batch_sizes=${BATCH_SIZES.join(',')} ef_construction=${EF_CONSTRUCTION}`);
139
+ console.log(`[bench] node=${process.version} cpus=${os.cpus().length}`);
140
+ console.log('');
141
+ console.log('Phase A: rememberMany (sync) — baseline');
142
+ for (const bs of BATCH_SIZES) {
143
+ const r = await runRememberMany(bs, TOTAL, DIM);
144
+ console.log(` rememberMany bs=${String(bs).padStart(5)} elapsed=${r.elapsed.toFixed(3)}s ops/s=${r.opsPerSec.toFixed(1).padStart(10)}`);
145
+ }
146
+ console.log('');
147
+ console.log('Phase B: rememberManySpawn — async wrapper');
148
+ for (const bs of BATCH_SIZES) {
149
+ const r = await runRememberManySpawn(bs, TOTAL, DIM);
150
+ console.log(` rememberManySpawn bs=${String(bs).padStart(5)} elapsed=${r.elapsed.toFixed(3)}s ops/s=${r.opsPerSec.toFixed(1).padStart(10)}`);
151
+ }
152
+ try {
153
+ fs.rmSync(tmpRoot, { recursive: true, force: true });
154
+ }
155
+ catch {
156
+ // best-effort
157
+ }
158
+ }
159
+ main().catch((err) => {
160
+ console.error('[bench] error:', err);
161
+ process.exit(1);
162
+ });
163
+ //# sourceMappingURL=remember-many-spawn-benchmark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remember-many-spawn-benchmark.js","sourceRoot":"","sources":["../ts/remember-many-spawn-benchmark.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=remember-spawn-benchmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remember-spawn-benchmark.d.ts","sourceRoot":"","sources":["../ts/remember-spawn-benchmark.ts"],"names":[],"mappings":""}