understanding-graph 0.1.1 → 0.1.3

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 (25) hide show
  1. package/README.md +1 -1
  2. package/bin/cli.js +2 -2
  3. package/node_modules/@understanding-graph/core/dist/database/sqlite.d.ts.map +1 -1
  4. package/node_modules/@understanding-graph/core/dist/database/sqlite.js +24 -1
  5. package/node_modules/@understanding-graph/core/dist/database/sqlite.js.map +1 -1
  6. package/node_modules/@understanding-graph/core/package.json +1 -1
  7. package/node_modules/@understanding-graph/core/src/database/sqlite.ts +25 -1
  8. package/node_modules/@understanding-graph/mcp-server/dist/tools/batch.d.ts.map +1 -1
  9. package/node_modules/@understanding-graph/mcp-server/dist/tools/batch.js +242 -182
  10. package/node_modules/@understanding-graph/mcp-server/dist/tools/batch.js.map +1 -1
  11. package/node_modules/@understanding-graph/mcp-server/dist/tools/solvers.js +1 -1
  12. package/node_modules/@understanding-graph/mcp-server/dist/tools/solvers.js.map +1 -1
  13. package/node_modules/@understanding-graph/mcp-server/package.json +1 -1
  14. package/package.json +1 -1
  15. package/packages/core/dist/database/sqlite.d.ts.map +1 -1
  16. package/packages/core/dist/database/sqlite.js +24 -1
  17. package/packages/core/dist/database/sqlite.js.map +1 -1
  18. package/packages/core/package.json +1 -1
  19. package/packages/mcp-server/dist/tools/batch.d.ts.map +1 -1
  20. package/packages/mcp-server/dist/tools/batch.js +242 -182
  21. package/packages/mcp-server/dist/tools/batch.js.map +1 -1
  22. package/packages/mcp-server/dist/tools/solvers.js +1 -1
  23. package/packages/mcp-server/dist/tools/solvers.js.map +1 -1
  24. package/packages/mcp-server/package.json +1 -1
  25. package/server.json +2 -2
@@ -1,6 +1,19 @@
1
1
  import path from 'node:path';
2
- import { createCommit, createDocumentWriter, getGraphStore, } from '@understanding-graph/core';
2
+ import { createCommit, createDocumentWriter, getGraphStore, sqlite, } from '@understanding-graph/core';
3
3
  import { handleToolCall } from './index.js';
4
+ // Sentinel error class used by handleBatchTools to bubble an
5
+ // "intentional early return with payload" out of a transactional block
6
+ // and force the surrounding catch handler to ROLLBACK before returning
7
+ // the carried payload. We can't `return` directly from inside the
8
+ // transaction without also calling COMMIT, so we throw and recover.
9
+ class BatchEarlyExit extends Error {
10
+ payload;
11
+ constructor(payload) {
12
+ super('__batch_early_exit__');
13
+ this.payload = payload;
14
+ this.name = 'BatchEarlyExit';
15
+ }
16
+ }
4
17
  // Tools that create nodes and need immediate embedding generation
5
18
  const NODE_CREATING_TOOLS = [
6
19
  'graph_add_concept',
@@ -21,13 +34,23 @@ const DOC_MUTATION_TOOLS = [
21
34
  export const batchTools = [
22
35
  {
23
36
  name: 'graph_batch',
24
- description: `Execute multiple graph operations in a single call.
37
+ description: `Execute multiple graph operations as an ATOMIC COMMIT.
38
+
39
+ The entire batch is wrapped in a SQLite transaction. If any operation
40
+ fails, the entire batch is rolled back as if it never ran — there is no
41
+ half-state to clean up. This is the system's "Atomic Commit" primitive
42
+ from the paper: it lets you branch and revert cognitive states cleanly.
43
+
44
+ The required commit_message becomes the Origin Story attached to every
45
+ node and edge created in the batch. Future agents reading those nodes see
46
+ the intent that created them, not just the content. The commit stream is
47
+ the metacognitive log of how the graph evolved.
25
48
 
26
49
  Use for:
27
50
  - Document splitting (create children + clear parent)
28
51
  - Creating hierarchies (root + multiple children)
29
52
  - Bulk concept/connection creation
30
- - Any multi-step modifications
53
+ - Any multi-step modification that should land all-or-nothing
31
54
 
32
55
  EDGE QUALITY REMINDER: When using graph_connect, edges should aid cognition — help future agents think better. Don't create edges for bureaucracy or "completeness". Each edge should answer: "When reasoning about X, why should I consider Y?"
33
56
 
@@ -452,135 +475,238 @@ export async function handleBatchTools(name, args, contextManager) {
452
475
  return false;
453
476
  }
454
477
  })();
455
- for (let i = 0; i < operations.length; i++) {
456
- const op = operations[i];
457
- try {
458
- // Resolve any variable references in params
459
- const resolvedParams = resolveReferences(op.params, results);
460
- // Pre-execution check: doc_create with parentId but no afterId
461
- if (op.tool === 'doc_create' &&
462
- resolvedParams.parentId &&
463
- !resolvedParams.afterId &&
464
- !allowUnorderedDocs) {
465
- const store = getGraphStore();
466
- const parentId = resolvedParams.parentId;
467
- const existingSiblings = store.getChildren(parentId);
468
- if (existingSiblings.length > 0) {
469
- const siblingNames = existingSiblings.map((s) => s.title).join(', ');
470
- throw new Error(`doc_create requires afterId when parent already has children. ` +
471
- `Parent "${parentId}" has siblings: [${siblingNames}]. ` +
472
- `Use afterId to specify position, or set allowUnorderedDocs: true to allow arbitrary ordering.`);
478
+ // Hoisted out of the try block below so the post-commit return statement
479
+ // can read them. `commit` is set inside the transaction, `hasErrors` is
480
+ // computed after the loop but still inside the transactional section.
481
+ let commit;
482
+ let hasErrors = false;
483
+ // ATOMICITY: wrap the entire batch in a SQLite transaction so that a
484
+ // mid-batch failure (op N throws, an orphan is detected, etc.) leaves
485
+ // the graph in EXACTLY the state it was in before the batch ran.
486
+ //
487
+ // The paper's "Atomic Commits" framing makes this load-bearing — agents
488
+ // need to be able to revert a failed reasoning step cleanly. The earlier
489
+ // version had no transaction wrapping; ops 1..N-1 were persisted when op
490
+ // N failed, and the manual cleanup only handled the special case of
491
+ // "orphaned concept nodes". Connected nodes from prior ops survived
492
+ // failures, so a half-finished commit could land in the graph.
493
+ //
494
+ // Implementation notes:
495
+ // * better-sqlite3's `db.transaction(fn)` requires fn to be sync.
496
+ // Our batch loop awaits the embedding service, so we use manual
497
+ // BEGIN/COMMIT/ROLLBACK instead. This is safe because the MCP server
498
+ // handles requests serially against a single per-project connection.
499
+ // * Early-return cases (mid-loop error with stopOnError, orphan-sweep
500
+ // failure) are signalled via the BatchEarlyExit sentinel so the
501
+ // catch block can ROLLBACK before returning the payload.
502
+ // * Doc auto-regeneration writes files (not the DB), so it happens
503
+ // AFTER commit. Score-hint computation is read-only, also after.
504
+ const txnDb = sqlite.getDb();
505
+ txnDb.exec('BEGIN');
506
+ let txnCommitted = false;
507
+ try {
508
+ for (let i = 0; i < operations.length; i++) {
509
+ const op = operations[i];
510
+ try {
511
+ // Resolve any variable references in params
512
+ const resolvedParams = resolveReferences(op.params, results);
513
+ // Pre-execution check: doc_create with parentId but no afterId
514
+ if (op.tool === 'doc_create' &&
515
+ resolvedParams.parentId &&
516
+ !resolvedParams.afterId &&
517
+ !allowUnorderedDocs) {
518
+ const store = getGraphStore();
519
+ const parentId = resolvedParams.parentId;
520
+ const existingSiblings = store.getChildren(parentId);
521
+ if (existingSiblings.length > 0) {
522
+ const siblingNames = existingSiblings.map((s) => s.title).join(', ');
523
+ throw new Error(`doc_create requires afterId when parent already has children. ` +
524
+ `Parent "${parentId}" has siblings: [${siblingNames}]. ` +
525
+ `Use afterId to specify position, or set allowUnorderedDocs: true to allow arbitrary ordering.`);
526
+ }
473
527
  }
474
- }
475
- // Execute the tool
476
- const result = await handleToolCall(op.tool, resolvedParams, contextManager);
477
- results.push(result);
478
- // Track affected node/edge IDs for commit
479
- const resultObj = result;
480
- if (resultObj.id && typeof resultObj.id === 'string') {
481
- if (resultObj.id.startsWith('e_')) {
482
- affectedEdgeIds.push(resultObj.id);
528
+ // Execute the tool
529
+ const result = await handleToolCall(op.tool, resolvedParams, contextManager);
530
+ results.push(result);
531
+ // Track affected node/edge IDs for commit
532
+ const resultObj = result;
533
+ if (resultObj.id && typeof resultObj.id === 'string') {
534
+ if (resultObj.id.startsWith('e_')) {
535
+ affectedEdgeIds.push(resultObj.id);
536
+ }
537
+ else if (resultObj.id.startsWith('n_')) {
538
+ affectedNodeIds.push(resultObj.id);
539
+ }
483
540
  }
484
- else if (resultObj.id.startsWith('n_')) {
485
- affectedNodeIds.push(resultObj.id);
541
+ // Some tools return nodeId instead of id
542
+ if (resultObj.nodeId && typeof resultObj.nodeId === 'string') {
543
+ affectedNodeIds.push(resultObj.nodeId);
486
544
  }
487
- }
488
- // Some tools return nodeId instead of id
489
- if (resultObj.nodeId && typeof resultObj.nodeId === 'string') {
490
- affectedNodeIds.push(resultObj.nodeId);
491
- }
492
- // graph_revise returns the updated node id
493
- if (resultObj.newId && typeof resultObj.newId === 'string') {
494
- affectedNodeIds.push(resultObj.newId);
495
- }
496
- // Generate embedding immediately for node-creating tools
497
- // This ensures duplicate detection works within the same batch
498
- if (NODE_CREATING_TOOLS.includes(op.tool)) {
499
- const nodeId = result.id ||
500
- result.newId;
501
- if (nodeId && typeof nodeId === 'string') {
502
- try {
503
- const store = getGraphStore();
504
- await store.generateAndStoreEmbedding(nodeId);
545
+ // graph_revise returns the updated node id
546
+ if (resultObj.newId && typeof resultObj.newId === 'string') {
547
+ affectedNodeIds.push(resultObj.newId);
548
+ }
549
+ // Generate embedding immediately for node-creating tools
550
+ // This ensures duplicate detection works within the same batch
551
+ if (NODE_CREATING_TOOLS.includes(op.tool)) {
552
+ const nodeId = result.id ||
553
+ result.newId;
554
+ if (nodeId && typeof nodeId === 'string') {
555
+ try {
556
+ const store = getGraphStore();
557
+ await store.generateAndStoreEmbedding(nodeId);
558
+ }
559
+ catch {
560
+ // Non-fatal: embedding generation can fail without breaking the batch
561
+ }
505
562
  }
506
- catch {
507
- // Non-fatal: embedding generation can fail without breaking the batch
563
+ }
564
+ // Post-creation verification: doc_create nodes must trace to root
565
+ // This catches forward references that bypassed pre-validation
566
+ if (op.tool === 'doc_create') {
567
+ const resultObj = result;
568
+ const nodeId = resultObj.id;
569
+ const isRoot = resultObj.isDocRoot;
570
+ if (nodeId && !isRoot) {
571
+ const store = getGraphStore();
572
+ const docPath = store.getDocumentPath(nodeId);
573
+ if (!docPath) {
574
+ throw new Error(`Created document node "${nodeId}" does not trace to a document root. ` +
575
+ 'This may indicate a broken forward reference or missing parentId.');
576
+ }
508
577
  }
509
578
  }
510
- }
511
- // Post-creation verification: doc_create nodes must trace to root
512
- // This catches forward references that bypassed pre-validation
513
- if (op.tool === 'doc_create') {
514
- const resultObj = result;
515
- const nodeId = resultObj.id;
516
- const isRoot = resultObj.isDocRoot;
517
- if (nodeId && !isRoot) {
518
- const store = getGraphStore();
519
- const docPath = store.getDocumentPath(nodeId);
520
- if (!docPath) {
521
- throw new Error(`Created document node "${nodeId}" does not trace to a document root. ` +
522
- 'This may indicate a broken forward reference or missing parentId.');
579
+ // Track affected document roots for auto-regeneration
580
+ if (DOC_MUTATION_TOOLS.includes(op.tool)) {
581
+ const resultObj = result;
582
+ const nodeId = (resultObj.id || resultObj.nodeId);
583
+ if (nodeId) {
584
+ const store = getGraphStore();
585
+ const docPath = store.getDocumentPath(nodeId);
586
+ if (docPath && docPath.length > 0 && docPath[0].isDocRoot) {
587
+ affectedDocRoots.add(docPath[0].id);
588
+ }
523
589
  }
524
590
  }
525
591
  }
526
- // Track affected document roots for auto-regeneration
527
- if (DOC_MUTATION_TOOLS.includes(op.tool)) {
528
- const resultObj = result;
529
- const nodeId = (resultObj.id || resultObj.nodeId);
530
- if (nodeId) {
531
- const store = getGraphStore();
532
- const docPath = store.getDocumentPath(nodeId);
533
- if (docPath && docPath.length > 0 && docPath[0].isDocRoot) {
534
- affectedDocRoots.add(docPath[0].id);
535
- }
592
+ catch (error) {
593
+ // Don't double-wrap our own sentinel
594
+ if (error instanceof BatchEarlyExit)
595
+ throw error;
596
+ const errorMsg = error instanceof Error ? error.message : String(error);
597
+ errors.push({ index: i, tool: op.tool, error: errorMsg });
598
+ if (stopOnError) {
599
+ // The whole batch is in a SQLite transaction, so the outer catch
600
+ // will ROLLBACK and undo every prior op. No need for the manual
601
+ // orphan cleanup that the pre-transaction version had to do.
602
+ throw new BatchEarlyExit({
603
+ success: false,
604
+ completed: i,
605
+ total: operations.length,
606
+ results,
607
+ errors,
608
+ message: `Batch stopped at operation ${i} (${op.tool}): ${errorMsg}. Entire batch rolled back.`,
609
+ });
536
610
  }
611
+ // Push null result for failed operation
612
+ results.push({ success: false, error: errorMsg });
537
613
  }
538
614
  }
539
- catch (error) {
540
- const errorMsg = error instanceof Error ? error.message : String(error);
541
- errors.push({ index: i, tool: op.tool, error: errorMsg });
542
- if (stopOnError) {
543
- // CRITICAL: Clean up orphaned nodes before returning
544
- // Otherwise nodes created before the error become orphans
545
- const graphStore = getGraphStore();
546
- const { edges: currentEdges } = graphStore.getAll();
547
- const connectedNodeIds = new Set();
548
- for (const edge of currentEdges) {
549
- connectedNodeIds.add(edge.fromId);
550
- connectedNodeIds.add(edge.toId);
551
- }
552
- const orphanedNodes = [];
553
- for (const nodeId of affectedNodeIds) {
554
- if (!nodeId.startsWith('n_'))
555
- continue;
556
- const node = graphStore.getNode(nodeId);
557
- if (!node)
558
- continue;
559
- if (node.fileType || node.isDocRoot)
560
- continue;
561
- if (!connectedNodeIds.has(nodeId)) {
562
- orphanedNodes.push(nodeId);
563
- graphStore.archiveNode(nodeId);
564
- }
615
+ hasErrors = errors.length > 0;
616
+ // ORPHAN PREVENTION: detect any concept nodes created in this batch that
617
+ // have no edges. Exception: if the graph was empty when this batch started,
618
+ // the very first concept node is allowed to remain unconnected — by
619
+ // definition there's nothing for it to connect to yet. This matches
620
+ // validateNoOrphans's pre-check exemption.
621
+ //
622
+ // Inside the transaction. If we find orphans, throw BatchEarlyExit so
623
+ // the catch block ROLLBACKs the entire batch (no half-state). The
624
+ // pre-transaction version manually archived the orphan nodes and left
625
+ // everything else committed; the transactional version is cleaner.
626
+ const sweepStore = getGraphStore();
627
+ const sweepEdges = sweepStore.getAll().edges;
628
+ const sweepConnectedIds = new Set();
629
+ for (const edge of sweepEdges) {
630
+ sweepConnectedIds.add(edge.fromId);
631
+ sweepConnectedIds.add(edge.toId);
632
+ }
633
+ const orphanedNodes = [];
634
+ let seedNodeAllowed = graphWasEmptyAtBatchStart;
635
+ for (const nodeId of affectedNodeIds) {
636
+ if (!nodeId.startsWith('n_'))
637
+ continue;
638
+ const node = sweepStore.getNode(nodeId);
639
+ if (!node)
640
+ continue;
641
+ // Skip document nodes (they have structural edges managed elsewhere)
642
+ if (node.fileType || node.isDocRoot)
643
+ continue;
644
+ // Check if node has any edges
645
+ if (!sweepConnectedIds.has(nodeId)) {
646
+ // Allow exactly one seed node when the batch started against an empty graph.
647
+ if (seedNodeAllowed) {
648
+ seedNodeAllowed = false;
649
+ continue;
565
650
  }
566
- const orphanMsg = orphanedNodes.length > 0
567
- ? ` Rolled back ${orphanedNodes.length} orphaned node(s).`
568
- : '';
569
- return {
570
- success: false,
571
- completed: i,
572
- total: operations.length,
573
- results,
574
- errors,
575
- message: `Batch stopped at operation ${i} (${op.tool}): ${errorMsg}${orphanMsg}`,
576
- };
651
+ orphanedNodes.push(nodeId);
577
652
  }
578
- // Push null result for failed operation
579
- results.push({ success: false, error: errorMsg });
580
653
  }
654
+ if (orphanedNodes.length > 0) {
655
+ const orphanNames = orphanedNodes
656
+ .map((id) => {
657
+ const r = results.find((r) => r?.id === id);
658
+ return r?.name || id;
659
+ })
660
+ .join(', ');
661
+ throw new BatchEarlyExit({
662
+ success: false,
663
+ completed: operations.length,
664
+ total: operations.length,
665
+ results,
666
+ errors: [
667
+ {
668
+ index: -1,
669
+ tool: 'orphan_check',
670
+ error: `${orphanedNodes.length} concept node(s) would be orphaned (no edges): ${orphanNames}. The entire batch has been rolled back. Add graph_connect operations that link every new concept to an existing or just-created node.`,
671
+ },
672
+ ],
673
+ message: `Batch rolled back: ${orphanedNodes.length} orphaned concept node(s) detected. No changes were persisted.`,
674
+ hint: 'Every concept node MUST have at least one edge. Check that graph_connect operations exist for every new concept.',
675
+ });
676
+ }
677
+ // Create commit record if message provided and batch had changes.
678
+ // Inside the transaction so a rollback also rolls back the commit row.
679
+ if (commitMessage &&
680
+ (affectedNodeIds.length > 0 || affectedEdgeIds.length > 0)) {
681
+ const uniqueNodeIds = [...new Set(affectedNodeIds)];
682
+ const uniqueEdgeIds = [...new Set(affectedEdgeIds)];
683
+ const createdCommit = createCommit(commitMessage, uniqueNodeIds, uniqueEdgeIds, agentName);
684
+ commit = { id: createdCommit.id, message: createdCommit.message };
685
+ }
686
+ // Everything inside the transaction succeeded. COMMIT.
687
+ txnDb.exec('COMMIT');
688
+ txnCommitted = true;
581
689
  }
582
- const hasErrors = errors.length > 0;
583
- // Auto-regenerate affected document roots
690
+ catch (err) {
691
+ // Roll back any uncommitted work. Either a real error from a sub-tool,
692
+ // or a BatchEarlyExit sentinel carrying a structured payload.
693
+ if (!txnCommitted) {
694
+ try {
695
+ txnDb.exec('ROLLBACK');
696
+ }
697
+ catch {
698
+ // Swallow — if rollback itself fails the connection is wedged
699
+ // and there's nothing useful we can do here.
700
+ }
701
+ }
702
+ if (err instanceof BatchEarlyExit) {
703
+ // Intentional early exit — return its payload as the tool result.
704
+ return err.payload;
705
+ }
706
+ throw err;
707
+ }
708
+ // POST-COMMIT: doc auto-regeneration writes files (not the DB), and
709
+ // score-hint computation is read-only. Both are safe to do after commit.
584
710
  const regeneratedDocs = [];
585
711
  if (affectedDocRoots.size > 0) {
586
712
  const projectId = contextManager.getCurrentProjectId();
@@ -637,72 +763,6 @@ Or use source_commit with type: "thinking" nodes.`;
637
763
  scoreHint += `\n\n📊 ${avgEdges.toFixed(1)} avg edges per thinking (target: 2-3). Externalize more of the cognitive journey.`;
638
764
  }
639
765
  }
640
- // ORPHAN PREVENTION: Delete any concept nodes created in this batch that have no edges.
641
- // Exception: if the graph was empty when this batch started, the very first concept
642
- // node is allowed to remain unconnected — by definition there's nothing for it to
643
- // connect to yet. This matches validateNoOrphans's pre-check exemption.
644
- const orphanedNodes = [];
645
- const { edges: currentEdges } = store.getAll();
646
- const connectedNodeIds = new Set();
647
- for (const edge of currentEdges) {
648
- connectedNodeIds.add(edge.fromId);
649
- connectedNodeIds.add(edge.toId);
650
- }
651
- let seedNodeAllowed = graphWasEmptyAtBatchStart;
652
- for (const nodeId of affectedNodeIds) {
653
- if (!nodeId.startsWith('n_'))
654
- continue;
655
- const node = store.getNode(nodeId);
656
- if (!node)
657
- continue;
658
- // Skip document nodes (they have structural edges managed elsewhere)
659
- if (node.fileType || node.isDocRoot)
660
- continue;
661
- // Check if node has any edges
662
- if (!connectedNodeIds.has(nodeId)) {
663
- // Allow exactly one seed node when the batch started against an empty graph.
664
- if (seedNodeAllowed) {
665
- seedNodeAllowed = false;
666
- continue;
667
- }
668
- orphanedNodes.push(nodeId);
669
- // Delete the orphan
670
- store.archiveNode(nodeId);
671
- }
672
- }
673
- if (orphanedNodes.length > 0) {
674
- const orphanNames = orphanedNodes
675
- .map((id) => {
676
- const r = results.find((r) => r?.id === id);
677
- return r?.name || id;
678
- })
679
- .join(', ');
680
- return {
681
- success: false,
682
- completed: operations.length,
683
- total: operations.length,
684
- results,
685
- errors: [
686
- {
687
- index: -1,
688
- tool: 'orphan_check',
689
- error: `${orphanedNodes.length} concept node(s) were orphaned (no edges): ${orphanNames}. They have been deleted. Ensure graph_connect operations succeed for all new concepts.`,
690
- },
691
- ],
692
- message: `Batch failed: ${orphanedNodes.length} orphaned concept node(s) deleted. Add graph_connect calls with valid 'why' field.`,
693
- hint: 'Every concept node MUST have at least one edge. Check that graph_connect calls include required fields (from, to, why).',
694
- };
695
- }
696
- // Create commit record if message provided and batch had changes
697
- let commit;
698
- if (commitMessage &&
699
- (affectedNodeIds.length > 0 || affectedEdgeIds.length > 0)) {
700
- // Deduplicate IDs
701
- const uniqueNodeIds = [...new Set(affectedNodeIds)];
702
- const uniqueEdgeIds = [...new Set(affectedEdgeIds)];
703
- const createdCommit = createCommit(commitMessage, uniqueNodeIds, uniqueEdgeIds, agentName);
704
- commit = { id: createdCommit.id, message: createdCommit.message };
705
- }
706
766
  return {
707
767
  success: !hasErrors,
708
768
  completed: operations.length,
@@ -1 +1 @@
1
- {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/tools/batch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/tools/batch.ts"],"names":[],"mappings":"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"}
@@ -305,7 +305,7 @@ Coloring anchors:
305
305
  },
306
306
  {
307
307
  name: 'solver_lock',
308
- description: 'Advisory (cooperative) lock on resources. Records "agent X is working on these node IDs until time T" in a shared table that other agents can query via solver_list_locks. This is NOT a mutex: nothing in the mutation path (graph_batch, graph_add_concept, etc.) checks the lock table, so a second agent that ignores the advisory will still be able to modify locked nodes. Use this when cooperating agents agree to honor the lock; do not rely on it for safety against uncoordinated writers. Locks auto-expire (default 5 min, max 30).',
308
+ description: 'Cooperative subtree-partition lock for parallel cognition. Records "agent X is working on resource R (or the subtree rooted at R) until time T" in a shared table. The intended use is to PARTITION the graph among cooperating agents Agent A locks the "Economics" subtree, Agent B locks the "Ethics" subtree, and they refactor in parallel without colliding. Use scope="subtree" to lock an entire branch atomically. Cooperating agents query solver_list_locks before mutating to honor each other\'s claims. Honest caveat: the lock is advisory at the storage layer — graph_batch and the other mutation tools do NOT check the lock table, so an uncooperative or unaware agent can still write through it. This is by design (cooperative coordination, not kernel mutex), but worth knowing if you\'re building against adversarial actors. Locks auto-expire (default 5 min, max 30) so a crashed agent can\'t deadlock the partition.',
309
309
  inputSchema: {
310
310
  type: 'object',
311
311
  properties: {