understanding-graph 0.1.1 → 0.1.2
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.
- package/README.md +1 -1
- package/bin/cli.js +2 -2
- package/node_modules/@understanding-graph/core/package.json +1 -1
- package/node_modules/@understanding-graph/mcp-server/dist/tools/batch.d.ts.map +1 -1
- package/node_modules/@understanding-graph/mcp-server/dist/tools/batch.js +242 -182
- package/node_modules/@understanding-graph/mcp-server/dist/tools/batch.js.map +1 -1
- package/node_modules/@understanding-graph/mcp-server/dist/tools/solvers.js +1 -1
- package/node_modules/@understanding-graph/mcp-server/dist/tools/solvers.js.map +1 -1
- package/node_modules/@understanding-graph/mcp-server/package.json +1 -1
- package/package.json +1 -1
- package/packages/core/package.json +1 -1
- package/packages/mcp-server/dist/tools/batch.d.ts.map +1 -1
- package/packages/mcp-server/dist/tools/batch.js +242 -182
- package/packages/mcp-server/dist/tools/batch.js.map +1 -1
- package/packages/mcp-server/dist/tools/solvers.js +1 -1
- package/packages/mcp-server/dist/tools/solvers.js.map +1 -1
- package/packages/mcp-server/package.json +1 -1
- package/server.json +2 -2
package/README.md
CHANGED
|
@@ -175,7 +175,7 @@ Isolated graphs for different contexts. Each project has its own SQLite database
|
|
|
175
175
|
### Batch Operations
|
|
176
176
|
| Tool | Purpose |
|
|
177
177
|
|------|---------|
|
|
178
|
-
| `graph_batch` | Execute multiple operations
|
|
178
|
+
| `graph_batch` | Execute multiple operations as an **atomic commit** with a required `commit_message`. Wrapped in a SQLite transaction: if any operation fails, the entire batch is rolled back. The `commit_message` is preserved as the node's *Origin Story* — future agents reading those nodes see not just the content but the intent that created it. |
|
|
179
179
|
|
|
180
180
|
### Concept & Node Management
|
|
181
181
|
| Tool | Purpose |
|
package/bin/cli.js
CHANGED
|
@@ -220,7 +220,7 @@ Start each session with these three calls:
|
|
|
220
220
|
|
|
221
221
|
## Rules
|
|
222
222
|
|
|
223
|
-
- **All mutations go through \`graph_batch\`** with a \`commit_message\` explaining intent. graph_batch
|
|
223
|
+
- **All mutations go through \`graph_batch\`** with a \`commit_message\` explaining intent. graph_batch is an **atomic commit**: if any operation in the batch fails, the entire batch is rolled back as if it never ran — the graph stays in exactly the state it was in before. The \`commit_message\` is preserved as each node's *Origin Story* so future agents see the intent that created it, not just the result.
|
|
224
224
|
- **Include your name** in commit messages (e.g., "Backend Agent: mapped auth flow") so teammates can follow your reasoning trail.
|
|
225
225
|
- **Check before creating** — call \`graph_semantic_search\` first to avoid creating duplicates of existing concepts.
|
|
226
226
|
- **Never delete, only supersede** — use \`graph_supersede\` when understanding evolves. The old node stays in history.
|
|
@@ -288,6 +288,6 @@ For tasks that span multiple sessions or need async handoff between specialist a
|
|
|
288
288
|
- \`solver_delegate\` — post a task to the queue
|
|
289
289
|
- \`solver_claim_task\` — pick up pending work
|
|
290
290
|
- \`solver_complete_task\` — submit results
|
|
291
|
-
- \`solver_lock\` / \`solver_unlock\` — *
|
|
291
|
+
- \`solver_lock\` / \`solver_unlock\` — cooperative *subtree-partition* locks for parallel cognition. Use \`scope: "subtree"\` to claim an entire branch (e.g. one agent locks the "Economics" subtree, another locks "Ethics", and they refactor in parallel without colliding). Storage-layer advisory: cooperating agents check before mutating; the mutation path does not enforce the lock against an adversary.
|
|
292
292
|
`;
|
|
293
293
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../src/tools/batch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../src/tools/batch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAO/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AA6C5D,eAAO,MAAM,UAAU,EAAE,IAAI,EAsF5B,CAAC;AAkTF,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,OAAO,CAAC,CA8blB"}
|
|
@@ -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
|
|
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
|
|
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
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
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
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
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
|
-
|
|
485
|
-
|
|
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
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
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
|
-
|
|
507
|
-
|
|
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
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
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
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
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
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
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
|
-
|
|
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
|
-
|
|
583
|
-
|
|
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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"}
|