aifastdb 3.10.0 → 3.10.5

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 (65) hide show
  1. package/aifastdb.win32-x64-msvc.node +0 -0
  2. package/dist/architecture-store.d.ts +2 -2
  3. package/dist/architecture-store.d.ts.map +1 -1
  4. package/dist/architecture-store.js +4 -4
  5. package/dist/architecture-store.js.map +1 -1
  6. package/dist/concurrent-document-store-benchmark.d.ts +29 -0
  7. package/dist/concurrent-document-store-benchmark.d.ts.map +1 -0
  8. package/dist/concurrent-document-store-benchmark.js +726 -0
  9. package/dist/concurrent-document-store-benchmark.js.map +1 -0
  10. package/dist/concurrent-document-store-profile.d.ts +15 -0
  11. package/dist/concurrent-document-store-profile.d.ts.map +1 -0
  12. package/dist/concurrent-document-store-profile.js +197 -0
  13. package/dist/concurrent-document-store-profile.js.map +1 -0
  14. package/dist/concurrent-document-store.d.ts +281 -0
  15. package/dist/concurrent-document-store.d.ts.map +1 -0
  16. package/dist/concurrent-document-store.js +354 -0
  17. package/dist/concurrent-document-store.js.map +1 -0
  18. package/dist/document-store.d.ts +11 -12
  19. package/dist/document-store.d.ts.map +1 -1
  20. package/dist/document-store.js +8 -9
  21. package/dist/document-store.js.map +1 -1
  22. package/dist/federation/FederatedDb.d.ts +17 -2
  23. package/dist/federation/FederatedDb.d.ts.map +1 -1
  24. package/dist/federation/FederatedDb.js +23 -4
  25. package/dist/federation/FederatedDb.js.map +1 -1
  26. package/dist/federation/index.d.ts +1 -1
  27. package/dist/federation/index.d.ts.map +1 -1
  28. package/dist/federation/index.js.map +1 -1
  29. package/dist/federation/types.d.ts +11 -0
  30. package/dist/federation/types.d.ts.map +1 -1
  31. package/dist/federation/types.js.map +1 -1
  32. package/dist/find-by-metadata-fast-path-bench.d.ts +19 -0
  33. package/dist/find-by-metadata-fast-path-bench.d.ts.map +1 -0
  34. package/dist/find-by-metadata-fast-path-bench.js +146 -0
  35. package/dist/find-by-metadata-fast-path-bench.js.map +1 -0
  36. package/dist/index.d.ts +4 -3
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +11 -6
  39. package/dist/index.js.map +1 -1
  40. package/dist/llm-gateway.d.ts +20 -0
  41. package/dist/llm-gateway.d.ts.map +1 -1
  42. package/dist/llm-gateway.js.map +1 -1
  43. package/dist/mcp-server/index.js +1 -1
  44. package/dist/mcp-server/index.js.map +1 -1
  45. package/dist/native.d.ts +3 -2
  46. package/dist/native.d.ts.map +1 -1
  47. package/dist/native.js +9 -4
  48. package/dist/native.js.map +1 -1
  49. package/dist/read-profiler-verify.d.ts +15 -0
  50. package/dist/read-profiler-verify.d.ts.map +1 -0
  51. package/dist/read-profiler-verify.js +283 -0
  52. package/dist/read-profiler-verify.js.map +1 -0
  53. package/dist/social-graph-v2-benchmark.js +98 -8
  54. package/dist/social-graph-v2-benchmark.js.map +1 -1
  55. package/dist/social-graph-v2-read-benchmark.d.ts +19 -0
  56. package/dist/social-graph-v2-read-benchmark.d.ts.map +1 -0
  57. package/dist/social-graph-v2-read-benchmark.js +153 -0
  58. package/dist/social-graph-v2-read-benchmark.js.map +1 -0
  59. package/dist/social-graph-v2.d.ts +20 -0
  60. package/dist/social-graph-v2.d.ts.map +1 -1
  61. package/dist/social-graph-v2.js +28 -0
  62. package/dist/social-graph-v2.js.map +1 -1
  63. package/dist/test-delete.js +2 -2
  64. package/dist/test-delete.js.map +1 -1
  65. package/package.json +3 -3
@@ -49,6 +49,14 @@ const fs = __importStar(require("fs"));
49
49
  const os = __importStar(require("os"));
50
50
  const path = __importStar(require("path"));
51
51
  const social_graph_v2_1 = require("./social-graph-v2");
52
+ const ALL_SCENARIOS = new Set([
53
+ 'personAsync',
54
+ 'personFast',
55
+ 'personBatch',
56
+ 'friendAsync',
57
+ 'friendFast',
58
+ 'friendBatch',
59
+ ]);
52
60
  function parseArgs() {
53
61
  const cpuCount = os.cpus().length;
54
62
  const defaults = {
@@ -56,14 +64,21 @@ function parseArgs() {
56
64
  concurrency: Math.max(8, Math.min(cpuCount * 2, 128)),
57
65
  batchSize: 500,
58
66
  shardCount: Math.max(4, Math.min(cpuCount, 32)),
67
+ profile: false,
59
68
  };
60
69
  const args = new Map();
70
+ const flags = new Set();
61
71
  for (const rawArg of process.argv.slice(2)) {
62
72
  if (!rawArg.startsWith('--'))
63
73
  continue;
64
- const [key, value] = rawArg.slice(2).split('=');
65
- if (key && value)
66
- args.set(key, value);
74
+ const body = rawArg.slice(2);
75
+ const eqIdx = body.indexOf('=');
76
+ if (eqIdx === -1) {
77
+ flags.add(body);
78
+ }
79
+ else {
80
+ args.set(body.slice(0, eqIdx), body.slice(eqIdx + 1));
81
+ }
67
82
  }
68
83
  const readPositiveInt = (key) => {
69
84
  const raw = args.get(key);
@@ -75,11 +90,20 @@ function parseArgs() {
75
90
  }
76
91
  return parsed;
77
92
  };
93
+ const scenariosRaw = args.get('scenarios');
94
+ const scenarios = scenariosRaw
95
+ ? new Set(scenariosRaw.split(',').map((s) => s.trim()).filter((s) => ALL_SCENARIOS.has(s)))
96
+ : ALL_SCENARIOS;
97
+ const walRaw = args.get('wal');
98
+ const walEnabled = walRaw === undefined ? true : !(walRaw === 'false' || walRaw === '0' || walRaw === 'off');
78
99
  return {
79
100
  total: readPositiveInt('total'),
80
101
  concurrency: readPositiveInt('concurrency'),
81
102
  batchSize: readPositiveInt('batchSize'),
82
103
  shardCount: readPositiveInt('shardCount'),
104
+ profile: flags.has('profile'),
105
+ scenarios,
106
+ walEnabled,
83
107
  };
84
108
  }
85
109
  function makeTempDir(prefix) {
@@ -117,10 +141,19 @@ function printHeader(options) {
117
141
  console.log(` Async concurrency: ${options.concurrency.toLocaleString()}`);
118
142
  console.log(` Batch size: ${options.batchSize.toLocaleString()}`);
119
143
  console.log(` Shards: ${options.shardCount.toLocaleString()}`);
144
+ console.log(` WAL enabled: ${options.walEnabled}`);
120
145
  console.log(` CPU cores: ${os.cpus().length}`);
121
146
  console.log(` Platform: ${process.platform} ${process.arch}`);
122
147
  console.log('');
123
148
  }
149
+ function makeGraph(dbPath, options) {
150
+ return new social_graph_v2_1.SocialGraphV2({
151
+ path: dbPath,
152
+ shardCount: options.shardCount,
153
+ mode: 'high_throughput',
154
+ walEnabled: options.walEnabled,
155
+ });
156
+ }
124
157
  async function runConcurrentRange(total, concurrency, worker) {
125
158
  let nextIndex = 0;
126
159
  const workerCount = Math.min(concurrency, total);
@@ -178,9 +211,10 @@ function printResult(result) {
178
211
  }
179
212
  async function benchmarkAddPersonAsync(options) {
180
213
  const dbPath = makeTempDir('sgv2-api-async');
181
- const graph = social_graph_v2_1.SocialGraphV2.highThroughput(dbPath, options.shardCount);
214
+ const graph = makeGraph(dbPath, options);
182
215
  try {
183
216
  const workerCount = Math.min(options.concurrency, options.total);
217
+ graph.profileReset();
184
218
  const start = performance.now();
185
219
  await runConcurrentRange(options.total, workerCount, async (index) => {
186
220
  await graph.addPersonAsync(makePerson(index));
@@ -188,6 +222,10 @@ async function benchmarkAddPersonAsync(options) {
188
222
  graph.flush();
189
223
  graph.save();
190
224
  const elapsedMs = performance.now() - start;
225
+ if (process.env.SGV2_DUMP_PROFILE === '1') {
226
+ console.log('\n--- profile (addPersonAsync) ---');
227
+ console.log(graph.profileSnapshot());
228
+ }
191
229
  return {
192
230
  scenario: `addPersonAsync (concurrency=${workerCount})`,
193
231
  total: options.total,
@@ -205,10 +243,45 @@ async function benchmarkAddPersonAsync(options) {
205
243
  cleanupDir(dbPath);
206
244
  }
207
245
  }
246
+ async function benchmarkAddPersonFast(options) {
247
+ const dbPath = makeTempDir('sgv2-api-fast');
248
+ const graph = makeGraph(dbPath, options);
249
+ try {
250
+ const workerCount = Math.min(options.concurrency, options.total);
251
+ graph.profileReset();
252
+ const start = performance.now();
253
+ await runConcurrentRange(options.total, workerCount, async (index) => {
254
+ await graph.addPersonFast(makePerson(index));
255
+ });
256
+ graph.flush();
257
+ graph.save();
258
+ const elapsedMs = performance.now() - start;
259
+ if (process.env.SGV2_DUMP_PROFILE === '1') {
260
+ console.log('\n--- profile (addPersonFast) ---');
261
+ console.log(graph.profileSnapshot());
262
+ }
263
+ return {
264
+ scenario: `addPersonFast (concurrency=${workerCount})`,
265
+ total: options.total,
266
+ elapsedMs,
267
+ throughput: options.total / (elapsedMs / 1000),
268
+ avgMsPerItem: elapsedMs / options.total,
269
+ unit: 'persons',
270
+ entityCount: graph.getEntityCount(),
271
+ relationCount: graph.getRelationCount(),
272
+ metrics: graph.getMetrics(),
273
+ };
274
+ }
275
+ finally {
276
+ graph.shutdown();
277
+ cleanupDir(dbPath);
278
+ }
279
+ }
208
280
  async function benchmarkAddPersonsBatch(options) {
209
281
  const dbPath = makeTempDir('sgv2-api-batch');
210
- const graph = social_graph_v2_1.SocialGraphV2.highThroughput(dbPath, options.shardCount);
282
+ const graph = makeGraph(dbPath, options);
211
283
  try {
284
+ graph.profileReset();
212
285
  const start = performance.now();
213
286
  for (let batchStart = 0; batchStart < options.total; batchStart += options.batchSize) {
214
287
  const batchEnd = Math.min(batchStart + options.batchSize, options.total);
@@ -221,6 +294,10 @@ async function benchmarkAddPersonsBatch(options) {
221
294
  graph.flush();
222
295
  graph.save();
223
296
  const elapsedMs = performance.now() - start;
297
+ if (process.env.SGV2_DUMP_PROFILE === '1') {
298
+ console.log('\n--- profile (addPersonsBatch) ---');
299
+ console.log(graph.profileSnapshot());
300
+ }
224
301
  return {
225
302
  scenario: `addPersonsBatch (batchSize=${options.batchSize})`,
226
303
  total: options.total,
@@ -240,7 +317,7 @@ async function benchmarkAddPersonsBatch(options) {
240
317
  }
241
318
  async function benchmarkAddFriendAsync(options) {
242
319
  const dbPath = makeTempDir('sgv2-api-friend-async');
243
- const graph = social_graph_v2_1.SocialGraphV2.highThroughput(dbPath, options.shardCount);
320
+ const graph = makeGraph(dbPath, options);
244
321
  try {
245
322
  await seedPersons(graph, options.total + 1, options.concurrency);
246
323
  const workerCount = Math.min(options.concurrency, options.total);
@@ -271,7 +348,7 @@ async function benchmarkAddFriendAsync(options) {
271
348
  }
272
349
  async function benchmarkAddFriendsBatch(options) {
273
350
  const dbPath = makeTempDir('sgv2-api-friend-batch');
274
- const graph = social_graph_v2_1.SocialGraphV2.highThroughput(dbPath, options.shardCount);
351
+ const graph = makeGraph(dbPath, options);
275
352
  try {
276
353
  await seedPersons(graph, options.total + 1, options.concurrency);
277
354
  const start = performance.now();
@@ -321,13 +398,26 @@ async function main() {
321
398
  printHeader(options);
322
399
  const asyncResult = await benchmarkAddPersonAsync(options);
323
400
  printResult(asyncResult);
401
+ const fastResult = await benchmarkAddPersonFast(options);
402
+ printResult(fastResult);
324
403
  const batchResult = await benchmarkAddPersonsBatch(options);
325
404
  printResult(batchResult);
326
405
  const friendAsyncResult = await benchmarkAddFriendAsync(options);
327
406
  printResult(friendAsyncResult);
328
407
  const friendBatchResult = await benchmarkAddFriendsBatch(options);
329
408
  printResult(friendBatchResult);
330
- printSummary(asyncResult, batchResult, friendAsyncResult, friendBatchResult);
409
+ console.log('\n============================================================');
410
+ console.log(' Summary (phase-374 baseline)');
411
+ console.log('============================================================');
412
+ console.log(` addPersonAsync: ${Math.round(asyncResult.throughput).toLocaleString()} persons/sec`);
413
+ console.log(` addPersonFast: ${Math.round(fastResult.throughput).toLocaleString()} persons/sec`);
414
+ console.log(` addPersonsBatch: ${Math.round(batchResult.throughput).toLocaleString()} persons/sec`);
415
+ console.log(` addFriendAsync: ${Math.round(friendAsyncResult.throughput).toLocaleString()} relations/sec`);
416
+ console.log(` addFriendsBatch: ${Math.round(friendBatchResult.throughput).toLocaleString()} relations/sec`);
417
+ const personFastVsAsync = fastResult.throughput / Math.max(asyncResult.throughput, 1);
418
+ const personBatchVsFast = batchResult.throughput / Math.max(fastResult.throughput, 1);
419
+ console.log(` fast vs async: ${personFastVsAsync.toFixed(2)}x`);
420
+ console.log(` batch vs fast: ${personBatchVsFast.toFixed(2)}x`);
331
421
  }
332
422
  main().catch((error) => {
333
423
  console.error('Benchmark failed:', error);
@@ -1 +1 @@
1
- {"version":3,"file":"social-graph-v2-benchmark.js","sourceRoot":"","sources":["../ts/social-graph-v2-benchmark.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"social-graph-v2-benchmark.js","sourceRoot":"","sources":["../ts/social-graph-v2-benchmark.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SocialGraphV2 read-path baseline (phase-378/T378.5).
4
+ *
5
+ * Drives the high-frequency read paths instrumented by
6
+ * `social::concurrent::read_profiler` and dumps the profile snapshot per
7
+ * scenario so we can establish baseline numbers + identify the hottest
8
+ * sub-slots.
9
+ *
10
+ * Scenarios:
11
+ * - getPerson (single-id point read)
12
+ * - listPersons (full-scan O(N_persons))
13
+ * - getFriends (relation walk + entity lookup)
14
+ * - areFriends (boolean relation existence)
15
+ * - listRelations (full relation scan)
16
+ * - getEntityRelations(per-entity relation walk)
17
+ */
18
+ export {};
19
+ //# sourceMappingURL=social-graph-v2-read-benchmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social-graph-v2-read-benchmark.d.ts","sourceRoot":"","sources":["../ts/social-graph-v2-read-benchmark.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;GAeG"}
@@ -0,0 +1,153 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * SocialGraphV2 read-path baseline (phase-378/T378.5).
5
+ *
6
+ * Drives the high-frequency read paths instrumented by
7
+ * `social::concurrent::read_profiler` and dumps the profile snapshot per
8
+ * scenario so we can establish baseline numbers + identify the hottest
9
+ * sub-slots.
10
+ *
11
+ * Scenarios:
12
+ * - getPerson (single-id point read)
13
+ * - listPersons (full-scan O(N_persons))
14
+ * - getFriends (relation walk + entity lookup)
15
+ * - areFriends (boolean relation existence)
16
+ * - listRelations (full relation scan)
17
+ * - getEntityRelations(per-entity relation walk)
18
+ */
19
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ var desc = Object.getOwnPropertyDescriptor(m, k);
22
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
23
+ desc = { enumerable: true, get: function() { return m[k]; } };
24
+ }
25
+ Object.defineProperty(o, k2, desc);
26
+ }) : (function(o, m, k, k2) {
27
+ if (k2 === undefined) k2 = k;
28
+ o[k2] = m[k];
29
+ }));
30
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
31
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
32
+ }) : function(o, v) {
33
+ o["default"] = v;
34
+ });
35
+ var __importStar = (this && this.__importStar) || (function () {
36
+ var ownKeys = function(o) {
37
+ ownKeys = Object.getOwnPropertyNames || function (o) {
38
+ var ar = [];
39
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
40
+ return ar;
41
+ };
42
+ return ownKeys(o);
43
+ };
44
+ return function (mod) {
45
+ if (mod && mod.__esModule) return mod;
46
+ var result = {};
47
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
48
+ __setModuleDefault(result, mod);
49
+ return result;
50
+ };
51
+ })();
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ const fs = __importStar(require("fs"));
54
+ const os = __importStar(require("os"));
55
+ const path = __importStar(require("path"));
56
+ const social_graph_v2_1 = require("./social-graph-v2");
57
+ function parseArgs() {
58
+ const args = new Map();
59
+ for (const a of process.argv.slice(2)) {
60
+ if (!a.startsWith('--'))
61
+ continue;
62
+ const [k, v] = a.slice(2).split('=', 2);
63
+ args.set(k, v ?? 'true');
64
+ }
65
+ const num = (key, def) => {
66
+ const v = args.get(key);
67
+ return v ? Number.parseInt(v, 10) : def;
68
+ };
69
+ return {
70
+ persons: num('persons', 5000),
71
+ friends: num('friends', 20000),
72
+ reads: num('reads', 50000),
73
+ walEnabled: args.get('wal') !== 'false',
74
+ };
75
+ }
76
+ function makeTempDir(prefix) {
77
+ return fs.mkdtempSync(path.join(os.tmpdir(), prefix));
78
+ }
79
+ function fmt(n) {
80
+ return n.toLocaleString('en-US', { maximumFractionDigits: 1 });
81
+ }
82
+ async function main() {
83
+ const opt = parseArgs();
84
+ const dir = makeTempDir('sgv2-read-bench-');
85
+ console.log('============================================================');
86
+ console.log(' SocialGraphV2 read-path baseline (phase-378/T378.5)');
87
+ console.log('============================================================');
88
+ console.log(` persons=${opt.persons.toLocaleString()} friends=${opt.friends.toLocaleString()} reads=${opt.reads.toLocaleString()} wal=${opt.walEnabled}`);
89
+ const graph = new social_graph_v2_1.SocialGraphV2({ path: dir, walEnabled: opt.walEnabled });
90
+ console.log(`\n[seed] adding ${opt.persons} persons + ${opt.friends} friend relations ...`);
91
+ const t0 = performance.now();
92
+ const ids = [];
93
+ for (let i = 0; i < opt.persons; i++) {
94
+ ids.push(graph.addPerson({ name: `p-${i}` }).id);
95
+ }
96
+ for (let i = 0; i < opt.friends; i++) {
97
+ const a = ids[(i * 2654435761) % opt.persons];
98
+ const b = ids[((i * 17 + 7) * 2654435761) % opt.persons];
99
+ if (a !== b)
100
+ graph.addFriend(a, b);
101
+ }
102
+ console.log(`[seed] done in ${((performance.now() - t0) / 1000).toFixed(1)}s`);
103
+ const results = [];
104
+ function runScenario(name, runs, fn) {
105
+ graph.readProfileReset();
106
+ const start = performance.now();
107
+ for (let i = 0; i < runs; i++)
108
+ fn();
109
+ const elapsedMs = performance.now() - start;
110
+ console.log(`\n--- read profile (${name}) ---`);
111
+ console.log(graph.readProfileSnapshot());
112
+ const r = {
113
+ scenario: name,
114
+ total: runs,
115
+ elapsedMs,
116
+ throughput: runs / (elapsedMs / 1000),
117
+ };
118
+ console.log(`=== ${name} === ${fmt(r.throughput)} ops/s (${(elapsedMs / runs).toFixed(4)} ms/op)`);
119
+ results.push(r);
120
+ }
121
+ runScenario('getPerson', opt.reads, () => {
122
+ graph.getPerson(ids[(Math.random() * opt.persons) | 0]);
123
+ });
124
+ runScenario('listPersons', Math.min(opt.reads / 100, 200) | 0, () => {
125
+ graph.listPersons();
126
+ });
127
+ runScenario('getFriends', Math.min(opt.reads / 5, 10000) | 0, () => {
128
+ graph.getFriends(ids[(Math.random() * opt.persons) | 0]);
129
+ });
130
+ runScenario('areFriends', opt.reads, () => {
131
+ const a = ids[(Math.random() * opt.persons) | 0];
132
+ const b = ids[(Math.random() * opt.persons) | 0];
133
+ graph.areFriends(a, b);
134
+ });
135
+ runScenario('listRelations', Math.min(opt.reads / 100, 200) | 0, () => {
136
+ graph.listRelations();
137
+ });
138
+ runScenario('getEntityRelations', Math.min(opt.reads / 5, 10000) | 0, () => {
139
+ graph.getEntityRelations(ids[(Math.random() * opt.persons) | 0]);
140
+ });
141
+ console.log('\n============================================================');
142
+ console.log(' Summary');
143
+ console.log('============================================================');
144
+ for (const r of results) {
145
+ console.log(` ${r.scenario.padEnd(22)} ${fmt(r.throughput)} ops/s (${(r.elapsedMs / r.total).toFixed(4)} ms/op)`);
146
+ }
147
+ fs.rmSync(dir, { recursive: true, force: true });
148
+ }
149
+ main().catch((err) => {
150
+ console.error(err);
151
+ process.exit(1);
152
+ });
153
+ //# sourceMappingURL=social-graph-v2-read-benchmark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social-graph-v2-read-benchmark.js","sourceRoot":"","sources":["../ts/social-graph-v2-read-benchmark.ts"],"names":[],"mappings":"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"}
@@ -1332,6 +1332,26 @@ export declare class SocialGraphV2 {
1332
1332
  * Shutdown the store gracefully
1333
1333
  */
1334
1334
  shutdown(): void;
1335
+ /**
1336
+ * phase-374/T374.1: dump the Rust-side SocialGraphV2 write-path profile
1337
+ * counters as a multi-line text snapshot. Counters are global / process-wide.
1338
+ * Use `profileReset()` between benchmark runs.
1339
+ */
1340
+ profileSnapshot(): string;
1341
+ /**
1342
+ * phase-374/T374.1: zero all SocialGraphV2 write-path profile counters.
1343
+ */
1344
+ profileReset(): void;
1345
+ /**
1346
+ * phase-378/T378.4: dump the Rust-side SocialGraphV2 **read-path** profile
1347
+ * counters as a multi-line text snapshot. Independent from the write-path
1348
+ * profiler. Use `readProfileReset()` between benchmark runs.
1349
+ */
1350
+ readProfileSnapshot(): string;
1351
+ /**
1352
+ * phase-378/T378.4: zero all SocialGraphV2 read-path profile counters.
1353
+ */
1354
+ readProfileReset(): void;
1335
1355
  /**
1336
1356
  * Export the complete social graph for visualization
1337
1357
  *