graphvault-studio 0.1.2 → 0.1.4

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.
@@ -6,9 +6,13 @@ import { StorageWriter } from "@sprengmeister/graphvault/internal/storage/storag
6
6
  import { verifyStorage } from "@sprengmeister/graphvault/internal/storage/storage-verifier";
7
7
  import { buildParentIndexRecord } from "@sprengmeister/graphvault/internal/storage/storage-parent-index";
8
8
  import { executeGvqlStatement, parseGvql } from "@sprengmeister/graphvault/internal/gvql/gvql";
9
+ import { envelopeHash, transactionRecordHash, transactionHashPayload, verifyAdminIntegrity, } from "./admin-integrity.js";
10
+ import { graphvaultLibraryCompatibility } from "./admin-compatibility.js";
9
11
  import { referencedChildren, summarizeNode, visitNode } from "./admin-inspection.js";
10
12
  import { encodeAdminValue, getNodePath, setNodePath } from "./admin-mutation.js";
11
13
  import { pathFromObjectToRoot } from "./admin-parent-index.js";
14
+ import { loadAdminSubtree } from "./admin-subtree.js";
15
+ import { envelopeFromAdminManifest, readAdminObjectRecord, writeAdminManifest, writeAdminObjectRecords, } from "./admin-storage-io.js";
12
16
  export class StorageAdminClient {
13
17
  options;
14
18
  target;
@@ -33,13 +37,19 @@ export class StorageAdminClient {
33
37
  this.readTypeDictionary(),
34
38
  ]);
35
39
  const verification = options.verify === false ? undefined : await this.verify();
40
+ const hardening = this.hardening();
41
+ const operations = await this.operations(manifest, latestTransaction);
36
42
  return {
37
43
  storageDirectory: this.options.storageDirectory,
38
44
  transactionId: manifest.transactionId,
39
45
  ...(currentSnapshot ? { currentSnapshot } : {}),
40
46
  objectCount: manifest.objectIds.length,
47
+ library: graphvaultLibraryCompatibility(),
41
48
  ...(latestTransaction ? { latestTransaction } : {}),
42
49
  ...(typeDictionary ? { typeDictionary } : {}),
50
+ hardening,
51
+ operations,
52
+ productionSafety: this.productionSafety(hardening, operations, verification),
43
53
  ...(verification ? { verification } : { verificationSkipped: true }),
44
54
  };
45
55
  }
@@ -52,7 +62,7 @@ export class StorageAdminClient {
52
62
  const offset = Math.max(0, options.offset ?? 0);
53
63
  const limit = Math.min(500, Math.max(1, options.limit ?? manifest.objectIds.length));
54
64
  for (const objectId of manifest.objectIds.slice(offset, offset + limit)) {
55
- const record = await this.reader.readObjectRecord(objectId);
65
+ const record = await this.readObjectRecord(manifest, objectId);
56
66
  items.push({
57
67
  objectId,
58
68
  kind: record.node.kind,
@@ -64,7 +74,7 @@ export class StorageAdminClient {
64
74
  return { offset, limit, total: manifest.objectIds.length, items };
65
75
  }
66
76
  async getObject(objectId) {
67
- return this.reader.readObjectRecord(objectId);
77
+ return this.readObjectRecord(await this.requireManifest(), objectId);
68
78
  }
69
79
  async rootReference() {
70
80
  const manifest = await this.requireManifest();
@@ -74,10 +84,11 @@ export class StorageAdminClient {
74
84
  };
75
85
  }
76
86
  async listObjectChildren(objectId) {
77
- const record = await this.reader.readObjectRecord(objectId);
87
+ const manifest = await this.requireManifest();
88
+ const record = await this.readObjectRecord(manifest, objectId);
78
89
  const children = [];
79
90
  for (const [path, to] of referencedChildren(record.node)) {
80
- const child = await this.reader.readObjectRecord(to);
91
+ const child = await this.readObjectRecord(manifest, to);
81
92
  children.push({
82
93
  from: objectId,
83
94
  to,
@@ -92,11 +103,11 @@ export class StorageAdminClient {
92
103
  async hierarchyPath(targetObjectId) {
93
104
  const manifest = await this.requireManifest();
94
105
  const index = await this.parentIndexFor(manifest);
95
- return pathFromObjectToRoot(index, targetObjectId, (objectId) => this.reader.readObjectRecord(objectId));
106
+ return pathFromObjectToRoot(index, targetObjectId, (objectId) => this.readObjectRecord(manifest, objectId));
96
107
  }
97
108
  async graph() {
98
109
  const manifest = await this.requireManifest();
99
- const envelope = await this.reader.envelopeFromManifest(manifest);
110
+ const envelope = await this.envelopeFromManifest(manifest);
100
111
  const nodes = [];
101
112
  const edges = [];
102
113
  for (const [objectId, node] of Object.entries(envelope.nodes)) {
@@ -113,6 +124,10 @@ export class StorageAdminClient {
113
124
  }
114
125
  return { root: envelope.root, nodes, edges };
115
126
  }
127
+ async subtree(options = {}) {
128
+ const manifest = await this.requireManifest();
129
+ return loadAdminSubtree(manifest, (objectId) => this.readObjectRecord(manifest, objectId), options);
130
+ }
116
131
  async search(query, options = {}) {
117
132
  const manifest = await this.requireManifest();
118
133
  const needle = query.trim().toLowerCase();
@@ -122,7 +137,7 @@ export class StorageAdminClient {
122
137
  const limit = Math.min(500, Math.max(1, options.limit ?? 500));
123
138
  const results = [];
124
139
  for (const objectId of manifest.objectIds) {
125
- const record = await this.reader.readObjectRecord(objectId);
140
+ const record = await this.readObjectRecord(manifest, objectId);
126
141
  visitNode(record.node, (path, value) => {
127
142
  if (results.length >= limit) {
128
143
  return;
@@ -140,31 +155,14 @@ export class StorageAdminClient {
140
155
  }
141
156
  async gvql(query, options = {}) {
142
157
  const manifest = await this.requireManifest();
143
- const envelope = await this.reader.envelopeFromManifest(manifest);
158
+ const envelope = await this.envelopeFromManifest(manifest);
144
159
  const statement = parseGvql(query);
145
160
  const result = executeGvqlStatement(envelope, statement, {
146
161
  ...options,
147
162
  allowMutations: this.allowMutations && statement.kind === "update" && !options.dryRun,
148
163
  });
149
164
  if (result.kind === "update" && !result.dryRun) {
150
- const transactionId = manifest.transactionId + 1;
151
- const snapshotFile = `snapshot-${String(transactionId).padStart(12, "0")}.json`;
152
- const changedObjectIds = Array.from(new Set(result.changes.map((change) => change.objectId))).sort((a, b) => Number(a) - Number(b));
153
- await this.writer.writeObjectRecords(envelope, transactionId, changedObjectIds);
154
- await this.writer.writeManifest(envelope, transactionId);
155
- await this.writer.writeParentIndex(envelope, transactionId);
156
- await this.writer.writeJson(join(this.layout.snapshotsDirectory, snapshotFile), envelope);
157
- await this.target.writeTextAtomic(this.layout.currentFile, snapshotFile);
158
- await this.writer.writeTransactionRecord({
159
- format: "graphvault-transaction",
160
- version: 1,
161
- transactionId,
162
- committedAt: new Date().toISOString(),
163
- snapshotFile,
164
- objectIds: Object.keys(envelope.nodes).sort((a, b) => Number(a) - Number(b)),
165
- mode: "standard",
166
- targetCount: changedObjectIds.length,
167
- });
165
+ await this.commitEnvelope(manifest.transactionId, envelope, "standard", result.changes.length, options.metadata);
168
166
  this.parentIndex = undefined;
169
167
  }
170
168
  return result;
@@ -207,13 +205,39 @@ export class StorageAdminClient {
207
205
  }
208
206
  }
209
207
  async verify() {
210
- return verifyStorage({
208
+ let manifest;
209
+ const result = await verifyStorage({
211
210
  target: this.target,
212
211
  lazyDirectory: this.layout.lazyDirectory,
213
- readManifest: () => this.reader.readManifest(),
212
+ readManifest: async () => {
213
+ manifest = await this.reader.readManifest();
214
+ return manifest;
215
+ },
214
216
  readLatestTransactionRecord: () => this.reader.readLatestTransactionRecord(),
215
- readObjectRecord: (objectId) => this.reader.readObjectRecord(objectId),
217
+ readObjectRecord: (objectId) => {
218
+ if (!manifest) {
219
+ throw new Error("Storage manifest not found or unreadable.");
220
+ }
221
+ return this.readObjectRecord(manifest, objectId);
222
+ },
216
223
  });
224
+ result.warnings ??= [];
225
+ if (manifest) {
226
+ const integrity = await verifyAdminIntegrity({
227
+ target: this.target,
228
+ layout: this.layout,
229
+ manifest,
230
+ transactions: await this.listTransactions(),
231
+ });
232
+ result.checkedIntegrityHashes = (result.checkedIntegrityHashes ?? 0) + integrity.checkedIntegrityHashes;
233
+ result.warnings.push(...integrity.warnings);
234
+ result.errors.push(...integrity.errors);
235
+ result.ok = result.errors.length === 0;
236
+ }
237
+ else {
238
+ result.checkedIntegrityHashes ??= 0;
239
+ }
240
+ return result;
217
241
  }
218
242
  async maintain(options = {}) {
219
243
  this.assertMutationsAllowed();
@@ -228,7 +252,7 @@ export class StorageAdminClient {
228
252
  }
229
253
  async previewMutation(mutation) {
230
254
  const manifest = await this.requireManifest();
231
- const envelope = await this.reader.envelopeFromManifest(manifest);
255
+ const envelope = await this.envelopeFromManifest(manifest);
232
256
  const node = envelope.nodes[mutation.objectId];
233
257
  if (!node) {
234
258
  throw new Error(`Object ${mutation.objectId} does not exist.`);
@@ -243,33 +267,83 @@ export class StorageAdminClient {
243
267
  async mutate(mutation) {
244
268
  this.assertMutationsAllowed();
245
269
  const manifest = await this.requireManifest();
246
- const envelope = await this.reader.envelopeFromManifest(manifest);
270
+ const envelope = await this.envelopeFromManifest(manifest);
247
271
  const node = envelope.nodes[mutation.objectId];
248
272
  if (!node) {
249
273
  throw new Error(`Object ${mutation.objectId} does not exist.`);
250
274
  }
251
275
  setNodePath(node, mutation.path, encodeAdminValue(mutation.value));
252
- const transactionId = manifest.transactionId + 1;
253
- const snapshotFile = `snapshot-${String(transactionId).padStart(12, "0")}.json`;
254
- await this.writer.writeObjectRecords(envelope, transactionId, Object.keys(envelope.nodes));
255
- await this.writer.writeManifest(envelope, transactionId);
256
- await this.writer.writeParentIndex(envelope, transactionId);
257
- await this.writer.writeJson(join(this.layout.snapshotsDirectory, snapshotFile), envelope);
258
- await this.target.writeTextAtomic(this.layout.currentFile, snapshotFile);
259
- const record = {
260
- format: "graphvault-transaction",
261
- version: 1,
262
- transactionId,
263
- committedAt: new Date().toISOString(),
264
- snapshotFile,
265
- objectIds: Object.keys(envelope.nodes).sort((a, b) => Number(a) - Number(b)),
266
- mode: "standard",
267
- targetCount: 1,
268
- };
269
- await this.writer.writeTransactionRecord(record);
276
+ const record = await this.commitEnvelope(manifest.transactionId, envelope, "standard", 1, mutation.metadata);
270
277
  this.parentIndex = undefined;
271
278
  return record;
272
279
  }
280
+ async commitEnvelope(expectedTransactionId, envelope, mode, targetCount, metadata) {
281
+ await this.target.ensureDirectory(this.walDirectory);
282
+ const lock = await this.acquireWriteLock();
283
+ try {
284
+ const latestManifest = await this.requireManifest();
285
+ if (latestManifest.transactionId !== expectedTransactionId) {
286
+ throw new Error(`Store changed concurrently. Expected transaction ${expectedTransactionId}, found ${latestManifest.transactionId}.`);
287
+ }
288
+ const transactionId = expectedTransactionId + 1;
289
+ const snapshotFile = `snapshot-${String(transactionId).padStart(12, "0")}.json`;
290
+ const objectIds = Object.keys(envelope.nodes).sort((a, b) => Number(a) - Number(b));
291
+ const prepareFile = `transaction-${String(transactionId).padStart(12, "0")}.prepare.json`;
292
+ if (this.transactionLogEnabled) {
293
+ await this.writeWalJson(prepareFile, {
294
+ format: "graphvault-wal",
295
+ version: 1,
296
+ status: "prepared",
297
+ transactionId,
298
+ preparedAt: new Date().toISOString(),
299
+ snapshotFile,
300
+ objectIds,
301
+ mode,
302
+ targetCount,
303
+ envelope,
304
+ });
305
+ }
306
+ await writeAdminObjectRecords(this.target, this.layout, envelope, transactionId, objectIds);
307
+ await this.writer.writeJson(join(this.layout.snapshotsDirectory, snapshotFile), envelope);
308
+ await this.assertLockValid(lock);
309
+ if (this.transactionLogEnabled) {
310
+ await this.writeWalJson(`transaction-${String(transactionId).padStart(12, "0")}.commit.json`, {
311
+ format: "graphvault-wal",
312
+ version: 1,
313
+ status: "committed",
314
+ transactionId,
315
+ committedAt: new Date().toISOString(),
316
+ prepareFile,
317
+ });
318
+ }
319
+ await this.assertLockValid(lock);
320
+ const previousTransaction = (await this.listTransactions())[0];
321
+ const record = {
322
+ format: "graphvault-transaction",
323
+ version: 1,
324
+ transactionId,
325
+ committedAt: new Date().toISOString(),
326
+ snapshotFile,
327
+ objectIds,
328
+ mode,
329
+ targetCount,
330
+ ...(metadata ? { metadata } : {}),
331
+ envelopeHash: envelopeHash(envelope),
332
+ ...(previousTransaction?.transactionHash ? { previousHash: previousTransaction.transactionHash } : {}),
333
+ };
334
+ record.transactionHash = transactionRecordHash(transactionHashPayload(record));
335
+ await this.writer.writeTransactionRecord(record);
336
+ await this.assertLockValid(lock);
337
+ await this.writer.writeParentIndex(envelope, transactionId);
338
+ await this.assertLockValid(lock);
339
+ await this.target.writeTextAtomic(this.layout.currentFile, snapshotFile);
340
+ await writeAdminManifest(this.target, this.layout, envelope, transactionId, record.transactionHash);
341
+ return record;
342
+ }
343
+ finally {
344
+ await lock.release();
345
+ }
346
+ }
273
347
  async requireManifest() {
274
348
  const manifest = await this.reader.readManifest();
275
349
  if (!manifest) {
@@ -277,6 +351,150 @@ export class StorageAdminClient {
277
351
  }
278
352
  return manifest;
279
353
  }
354
+ readObjectRecord(manifest, objectId) {
355
+ return readAdminObjectRecord(this.target, this.layout, manifest, objectId);
356
+ }
357
+ envelopeFromManifest(manifest) {
358
+ return envelopeFromAdminManifest(this.target, this.layout, manifest);
359
+ }
360
+ get walDirectory() {
361
+ return join(this.options.storageDirectory, "wal");
362
+ }
363
+ get transactionLogEnabled() {
364
+ return (this.options.transactionLog ?? "full") === "full";
365
+ }
366
+ hardening() {
367
+ return {
368
+ mutationsAllowed: this.allowMutations,
369
+ transactionLog: this.options.transactionLog ?? "full",
370
+ writerLock: "enabled",
371
+ fencingTokens: "used-when-supported",
372
+ staleLockRecovery: typeof this.options.staleLockTimeoutMs === "number",
373
+ };
374
+ }
375
+ async operations(manifest, latestTransaction) {
376
+ const walFiles = await this.reader.readDirectoryIfExists(this.walDirectory);
377
+ const prepareFiles = walFiles.filter((file) => file.endsWith(".prepare.json"));
378
+ const commitFiles = walFiles.filter((file) => file.endsWith(".commit.json"));
379
+ const publishedTransactionId = manifest.transactionId;
380
+ let latestWalTransactionId = 0;
381
+ let pendingWalCommits = 0;
382
+ for (const file of commitFiles) {
383
+ try {
384
+ const record = JSON.parse(await this.target.readText(join(this.walDirectory, file)));
385
+ if (record.format !== "graphvault-wal" || record.status !== "committed") {
386
+ continue;
387
+ }
388
+ latestWalTransactionId = Math.max(latestWalTransactionId, record.transactionId);
389
+ if (record.transactionId > publishedTransactionId) {
390
+ pendingWalCommits++;
391
+ }
392
+ }
393
+ catch {
394
+ // Verification surfaces malformed WAL; the operations pane stays lightweight.
395
+ }
396
+ }
397
+ return {
398
+ transactionLog: this.options.transactionLog ?? "full",
399
+ mutationsAllowed: this.allowMutations,
400
+ lockTimeoutMs: this.options.lockTimeoutMs ?? 5_000,
401
+ ...(typeof this.options.staleLockTimeoutMs === "number" ? { staleLockTimeoutMs: this.options.staleLockTimeoutMs } : {}),
402
+ walPrepareFiles: prepareFiles.length,
403
+ walCommitFiles: commitFiles.length,
404
+ latestWalTransactionId,
405
+ latestJournalTransactionId: latestTransaction?.transactionId ?? 0,
406
+ publishedTransactionId,
407
+ pendingWalCommits,
408
+ checkedIntegrityHashes: manifest.latestTransactionHash ? 1 : 0,
409
+ status: pendingWalCommits > 0 ? "recovery-pending" : "healthy",
410
+ };
411
+ }
412
+ productionSafety(hardening, operations, verification) {
413
+ const issues = [];
414
+ if (operations.pendingWalCommits > 0) {
415
+ issues.push({
416
+ code: "wal-recovery-pending",
417
+ severity: "critical",
418
+ message: `${operations.pendingWalCommits} committed WAL record(s) are newer than the published manifest.`,
419
+ recommendation: "Run a writable GraphVault instance with WAL recovery enabled before exposing or mutating the store.",
420
+ });
421
+ }
422
+ if (operations.transactionLog === "off") {
423
+ issues.push({
424
+ code: "transaction-log-disabled",
425
+ severity: "critical",
426
+ message: "The transaction log is disabled, so committed WAL recovery is not available.",
427
+ recommendation: 'Use transactionLog: "full" for critical stores.',
428
+ });
429
+ }
430
+ if (!hardening.staleLockRecovery) {
431
+ issues.push({
432
+ code: "stale-lock-recovery-disabled",
433
+ severity: "warning",
434
+ message: "Stale writer-lock recovery is not configured.",
435
+ recommendation: "Configure staleLockTimeoutMs above the longest expected transaction runtime for multi-pod stores.",
436
+ });
437
+ }
438
+ if (!operations.checkedIntegrityHashes) {
439
+ issues.push({
440
+ code: "hash-chain-missing",
441
+ severity: "warning",
442
+ message: "The summary did not find a transaction hash-chain head in the latest manifest.",
443
+ recommendation: "Rewrite the store with a current GraphVault Library version to restore tamper-evident transaction history.",
444
+ });
445
+ }
446
+ if (verification?.errors.length) {
447
+ issues.push({
448
+ code: "verification-errors",
449
+ severity: "critical",
450
+ message: `Verification reported ${verification.errors.length} error(s).`,
451
+ recommendation: "Inspect verification details and restore or repair the store before serving critical traffic.",
452
+ });
453
+ }
454
+ const verificationWarnings = verification && "warnings" in verification && Array.isArray(verification.warnings) ? verification.warnings : [];
455
+ if (verificationWarnings.length) {
456
+ issues.push({
457
+ code: "verification-warnings",
458
+ severity: "warning",
459
+ message: `Verification reported ${verificationWarnings.length} warning(s).`,
460
+ recommendation: "Review verification warnings before promoting the store to production.",
461
+ });
462
+ }
463
+ if (this.allowMutations) {
464
+ issues.push({
465
+ code: "admin-mutations-enabled",
466
+ severity: "info",
467
+ message: "Studio mutation endpoints are enabled for this admin session.",
468
+ recommendation: "Keep mutations behind admin authentication and a high-entropy confirmation token.",
469
+ });
470
+ }
471
+ return {
472
+ status: productionSafetyStatus(issues),
473
+ score: productionSafetyScore(issues),
474
+ summary: productionSafetySummary(issues),
475
+ transactionLog: operations.transactionLog,
476
+ mutationsAllowed: this.allowMutations,
477
+ staleLockRecovery: hardening.staleLockRecovery,
478
+ pendingRecovery: operations.pendingWalCommits > 0,
479
+ hashChain: operations.checkedIntegrityHashes ? "present" : "missing",
480
+ issues,
481
+ };
482
+ }
483
+ async acquireWriteLock() {
484
+ const acquireLock = this.target.acquireLock;
485
+ return acquireLock(this.layout.lockFile, this.options.lockTimeoutMs ?? 5_000, this.lockOptions());
486
+ }
487
+ lockOptions() {
488
+ return typeof this.options.staleLockTimeoutMs === "number" ? { staleLockTimeoutMs: this.options.staleLockTimeoutMs } : {};
489
+ }
490
+ async assertLockValid(lock) {
491
+ if (lock.assertValid) {
492
+ await lock.assertValid();
493
+ }
494
+ }
495
+ async writeWalJson(file, value) {
496
+ await this.target.writeTextAtomic(join(this.walDirectory, file), `${JSON.stringify(value, null, 2)}\n`);
497
+ }
280
498
  async compact(keepLatest) {
281
499
  const current = await this.reader.readCurrentPointer();
282
500
  if (!current) {
@@ -298,7 +516,8 @@ export class StorageAdminClient {
298
516
  }
299
517
  async collectGarbage() {
300
518
  const manifest = await this.requireManifest();
301
- const liveObjects = new Set(manifest.objectIds);
519
+ const liveJsonRecords = liveObjectRecordFiles(manifest, "json");
520
+ const liveBinaryRecords = liveObjectRecordFiles(manifest, "bin");
302
521
  let keptObjects = 0;
303
522
  let removedObjects = 0;
304
523
  let keptBinaryObjects = 0;
@@ -307,8 +526,7 @@ export class StorageAdminClient {
307
526
  for (const file of await this.reader.readDirectoryIfExists(directory)) {
308
527
  if (!file.endsWith(".json"))
309
528
  continue;
310
- const objectId = file.slice(0, -".json".length);
311
- if (liveObjects.has(objectId))
529
+ if (liveJsonRecords.has(file))
312
530
  keptObjects++;
313
531
  else {
314
532
  await this.target.remove(join(directory, file));
@@ -320,8 +538,7 @@ export class StorageAdminClient {
320
538
  for (const file of await this.reader.readDirectoryIfExists(directory)) {
321
539
  if (!file.endsWith(".bin"))
322
540
  continue;
323
- const objectId = file.slice(0, -".bin".length);
324
- if (liveObjects.has(objectId))
541
+ if (liveBinaryRecords.has(file))
325
542
  keptBinaryObjects++;
326
543
  else {
327
544
  await this.target.remove(join(directory, file));
@@ -343,10 +560,46 @@ export class StorageAdminClient {
343
560
  this.parentIndex = storedIndex;
344
561
  }
345
562
  else {
346
- this.parentIndex = buildParentIndexRecord(await this.reader.envelopeFromManifest(manifest), manifest.transactionId);
563
+ this.parentIndex = buildParentIndexRecord(await this.envelopeFromManifest(manifest), manifest.transactionId);
347
564
  }
348
565
  }
349
566
  return this.parentIndex;
350
567
  }
351
568
  }
569
+ function liveObjectRecordFiles(manifest, extension) {
570
+ const files = new Set();
571
+ for (const objectId of manifest.objectIds) {
572
+ files.add(`${objectId}.${extension}`);
573
+ files.add(`${objectId}.${manifest.objectVersions?.[objectId] ?? manifest.transactionId}.${extension}`);
574
+ }
575
+ return files;
576
+ }
577
+ function productionSafetyStatus(issues) {
578
+ if (issues.some((issue) => issue.severity === "critical")) {
579
+ return "unsafe";
580
+ }
581
+ if (issues.some((issue) => issue.severity === "warning")) {
582
+ return "warning";
583
+ }
584
+ return "production-ready";
585
+ }
586
+ function productionSafetyScore(issues) {
587
+ const penalty = issues.reduce((total, issue) => {
588
+ if (issue.severity === "critical")
589
+ return total + 35;
590
+ if (issue.severity === "warning")
591
+ return total + 12;
592
+ return total + 2;
593
+ }, 0);
594
+ return Math.max(0, 100 - penalty);
595
+ }
596
+ function productionSafetySummary(issues) {
597
+ if (issues.some((issue) => issue.severity === "critical")) {
598
+ return "Not safe for critical production writes until critical issues are resolved.";
599
+ }
600
+ if (issues.some((issue) => issue.severity === "warning")) {
601
+ return "Usable with caveats; review warnings before using for critical or multi-pod stores.";
602
+ }
603
+ return "Configured for critical production use according to GraphVault Studio's local safety checks.";
604
+ }
352
605
  //# sourceMappingURL=admin-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin-client.js","sourceRoot":"","sources":["../src/admin-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin-client.js","sourceRoot":"","sources":["../src/admin-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { AdminLibraryCompatibility } from "./admin-types.js";
2
+ export declare function graphvaultLibraryCompatibility(): AdminLibraryCompatibility;
@@ -0,0 +1,53 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { createRequire } from "node:module";
3
+ import { dirname, join } from "node:path";
4
+ const RECOMMENDED_GRAPHVAULT_VERSION = "0.2.0";
5
+ export function graphvaultLibraryCompatibility() {
6
+ const installedVersion = readInstalledGraphVaultVersion();
7
+ const warnings = [];
8
+ if (!installedVersion) {
9
+ warnings.push("Could not determine installed GraphVault Library version.");
10
+ }
11
+ else if (compareSemver(installedVersion, RECOMMENDED_GRAPHVAULT_VERSION) < 0) {
12
+ warnings.push(`GraphVault Library ${installedVersion} is older than the recommended ${RECOMMENDED_GRAPHVAULT_VERSION}.`);
13
+ }
14
+ return {
15
+ packageName: "@sprengmeister/graphvault",
16
+ recommendedVersion: RECOMMENDED_GRAPHVAULT_VERSION,
17
+ status: warnings.length ? "warning" : "ok",
18
+ warnings,
19
+ ...(installedVersion ? { installedVersion } : {}),
20
+ };
21
+ }
22
+ function readInstalledGraphVaultVersion() {
23
+ try {
24
+ const require = createRequire(import.meta.url);
25
+ const entry = require.resolve("@sprengmeister/graphvault");
26
+ const packageJsonPath = join(dirname(dirname(entry)), "package.json");
27
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf8"));
28
+ return typeof packageJson.version === "string" ? packageJson.version : undefined;
29
+ }
30
+ catch {
31
+ return undefined;
32
+ }
33
+ }
34
+ function compareSemver(left, right) {
35
+ const leftParts = parseSemver(left);
36
+ const rightParts = parseSemver(right);
37
+ for (let index = 0; index < 3; index++) {
38
+ const diff = (leftParts[index] ?? 0) - (rightParts[index] ?? 0);
39
+ if (diff !== 0) {
40
+ return diff;
41
+ }
42
+ }
43
+ return 0;
44
+ }
45
+ function parseSemver(value) {
46
+ return value
47
+ .replace(/^[^\d]*/, "")
48
+ .split(/[.-]/)
49
+ .slice(0, 3)
50
+ .map((part) => Number.parseInt(part, 10))
51
+ .map((part) => (Number.isFinite(part) ? part : 0));
52
+ }
53
+ //# sourceMappingURL=admin-compatibility.js.map