openlore 2.0.5 → 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -16,7 +16,7 @@ AI agents are powerful but amnesiac. On every new task:
16
16
  - They re-read the same source files to understand structure
17
17
  - They forget architectural decisions made two sessions ago
18
18
  - They have no link between specs and code — drift is invisible
19
- - File-by-file navigation often burns **15,000–50,000 tokens** per orientation pass, before a single line of useful code is written
19
+ - File-by-file navigation often burns an estimated **15,000–50,000 tokens** per orientation pass, before a single line of useful code is written (measured benefit is task-dependent — it shows up on deep questions in larger codebases, not on small/familiar repos; see the † note below)
20
20
  - In long sessions, they drift from authoritative retrieval toward internally cached reasoning — producing subtly wrong architectural assumptions that compound silently until a refactor breaks
21
21
 
22
22
  openlore closes this loop. Run a full analysis once, then keep the graph incrementally updated as the codebase evolves. Even greenfield projects become cognitively "brownfield" after only a few agent sessions — architectural context fragments, decisions disappear, and agents repeatedly reconstruct the same understanding from scratch.
@@ -47,9 +47,24 @@ You can use layer 1 alone to give agents structural context. Add layer 2 for sem
47
47
  | Spec drift detection | ❌ | ❌ | ✓ milliseconds, no API |
48
48
  | Architectural decision gates | ❌ | ❌ | ✓ pre-commit hook |
49
49
  | Offline structural analysis | ❌ | ❌ | ✓ |
50
- | Token-efficient orient() | ❌ | ❌ | ✓ ~1–3k vs 15–50k tokens |
50
+ | Token-efficient orient() | ❌ | ❌ | ✓ ~1–3k vs 15–50k tokens |
51
51
  | Living spec generation | ❌ | ❌ | ✓ |
52
52
  | Persistent cross-session architectural memory | ❌ | Partial | ✓ |
53
+
54
+ † **Measured, and it depends on the task.** The exact token figures above remain
55
+ an estimate, but the Spec 14 agent benchmark (`npm run bench:agent`, WITH vs
56
+ WITHOUT openlore, `claude -p`, N=4 medians) now gives a measured two-tier result:
57
+ - **Small, familiar repos + shallow "who-calls-X" queries:** openlore *adds*
58
+ ~43% cost — the model already knows the code, so there's no orientation to save.
59
+ - **Larger codebases + deep "how does X flow through Y" questions (its target):**
60
+ with the lean `--preset navigation` tool surface, openlore is a **net win —
61
+ −7% cost and −26% tool-calls at N=4, scaling with repo size (up to −21% on
62
+ ~640–790-file repos)**, at 100% answer correctness in both arms.
63
+
64
+ So the headline savings hold where openlore is designed to help, not on toy
65
+ queries. Full results, methodology, and honest caveats:
66
+ [docs/AGENT-BENCHMARKS.md](docs/AGENT-BENCHMARKS.md). The plumbing latency (orient
67
+ ~430µs p50) is separate and real — see [scripts/BENCHMARKS.md](scripts/BENCHMARKS.md).
53
68
  | Long-session confidence decay (Epistemic Lease) | ❌ | ❌ | ✓ |
54
69
 
55
70
  Traditional coding agents reconstruct architecture from repeated file reads every session. openlore persists it as a queryable graph.
@@ -82,7 +97,7 @@ See [docs/install.md](docs/install.md). The MCP server keeps the index fresh as
82
97
 
83
98
  Then ask your agent: **`orient("add a new payment method")`**
84
99
 
85
- That single call returns the relevant functions, their call neighbours, matching spec sections, and insertion-point candidates — preserving architectural continuity across sessions instead of forcing the agent to repeatedly reconstruct context from raw file reads. In practice, this often reduces orientation cost from ~30,000 exploratory tokens to ~1,000 targeted tokens.
100
+ That single call returns the relevant functions, their call neighbours, matching spec sections, and insertion-point candidates — preserving architectural continuity across sessions instead of forcing the agent to repeatedly reconstruct context from raw file reads. The Spec 14 benchmark ([docs/AGENT-BENCHMARKS.md](docs/AGENT-BENCHMARKS.md)) measures this directly: on deep "how does X flow through Y" questions in larger codebases, openlore (with `--preset navigation`) cuts cost ~7% and tool-calls ~26% at N=4 (more on bigger repos); on small/familiar repos with shallow queries it adds overhead instead. Net: it pays off in its target arena, not on toy queries.
86
101
 
87
102
  **Full pipeline** (specs + decisions — optional and additive):
88
103
 
@@ -1 +1 @@
1
- {"version":3,"file":"decisions.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/decisions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkLpC,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0E1E;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0D5E;AAeD,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBvE;AAUD,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAczE;AAiDD,eAAO,MAAM,gBAAgB,SAyiBzB,CAAC"}
1
+ {"version":3,"file":"decisions.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/decisions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmLpC,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0E1E;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0D5E;AAeD,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBvE;AAUD,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAczE;AAiDD,eAAO,MAAM,gBAAgB,SAqjBzB,CAAC"}
@@ -20,6 +20,7 @@ import { createLLMService } from '../../core/services/llm-service.js';
20
20
  import { isGitRepository, getChangedFiles, getFileDiff, getCommitMessages, resolveBaseRef, buildSpecMap } from '../../core/drift/index.js';
21
21
  import { loadDecisionStore, saveDecisionStore, replaceDecisions, patchDecision, getDecisionsByStatus, INACTIVE_STATUSES, } from '../../core/decisions/store.js';
22
22
  import { consolidateDrafts } from '../../core/decisions/consolidator.js';
23
+ import { acquireDecisionsLock } from '../../core/decisions/lock.js';
23
24
  import { extractFromDiff } from '../../core/decisions/extractor.js';
24
25
  import { verifyDecisions } from '../../core/decisions/verifier.js';
25
26
  import { syncApprovedDecisions } from '../../core/decisions/syncer.js';
@@ -418,7 +419,8 @@ Examples:
418
419
  return;
419
420
  }
420
421
  // ── Load store (always needed) ───────────────────────────────────────────
421
- const store = await loadDecisionStore(rootPath);
422
+ // `let` so the consolidate branch can re-read fresh state inside its lock.
423
+ let store = await loadDecisionStore(rootPath);
422
424
  // ── Approve ──────────────────────────────────────────────────────────────
423
425
  if (options.approve) {
424
426
  const id = options.approve;
@@ -501,192 +503,203 @@ Examples:
501
503
  process.exitCode = 1;
502
504
  return;
503
505
  }
504
- const drafts = getDecisionsByStatus(store, 'draft');
505
- const hasDrafts = drafts.length > 0;
506
- const resolved = resolveLLMProvider(openloreConfig);
507
- if (!resolved) {
508
- logger.error('No LLM provider configured. Consolidation requires an LLM.');
509
- logger.discovery('Set ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, or configure llm in .openlore/config.json');
510
- process.exitCode = 1;
511
- return;
512
- }
513
- const llm = createLLMService({
514
- provider: resolved.provider,
515
- model: openloreConfig.generation?.model,
516
- openaiCompatBaseUrl: resolved.openaiCompatBaseUrl,
517
- apiBase: globalOpts.apiBase ?? openloreConfig.llm?.apiBase,
518
- sslVerify: globalOpts.insecure != null ? !globalOpts.insecure : (openloreConfig.llm?.sslVerify ?? true),
519
- enableLogging: true,
520
- logDir: join(rootPath, OPENLORE_DIR, OPENLORE_LOGS_SUBDIR),
521
- });
522
- // Step 1 — Consolidate drafts OR extract from diff as fallback
523
- const openspecPath = join(rootPath, openloreConfig.openspecPath ?? OPENSPEC_DIR);
524
- const specMapResult = await buildSpecMap({ rootPath, openspecPath }).catch(() => undefined);
525
- let consolidated;
526
- let supersededIds = [];
527
- if (hasDrafts) {
528
- if (!options.json)
529
- logger.discovery(`Consolidating ${drafts.length} draft decision(s) via ${resolved.provider}...`);
530
- const result = await consolidateDrafts(store, llm, specMapResult);
531
- consolidated = result.decisions;
532
- supersededIds = result.supersededIds;
533
- }
534
- else {
535
- if (!options.json)
536
- logger.discovery(`No drafts found — extracting decisions from diff via ${resolved.provider}...`);
537
- const specMap = specMapResult ?? await buildSpecMap({ rootPath, openspecPath });
538
- // Use staged-only scope so the fallback only sees what's actually being committed.
539
- consolidated = await extractFromDiff({ rootPath, stagedOnly: true, specMap, sessionId: store.sessionId, llm });
540
- }
541
- if (consolidated.length === 0) {
542
- if (!options.json)
543
- console.log('No architectural decisions found in drafts.');
544
- if (options.gate)
545
- process.exitCode = 0;
546
- return;
547
- }
548
- // Step 2 — Build diff + commit messages for verification
549
- let combinedDiff = '';
550
- let commitMessages = '';
506
+ // Serialize consolidation across the detached `--consolidate` processes
507
+ // that record_decision spawns: hold the lock for the whole
508
+ // load consolidate → save, and re-read the store INSIDE it so concurrent
509
+ // records don't get clobbered (spec-15 dogfood fix).
510
+ const releaseConsolidateLock = await acquireDecisionsLock(rootPath);
551
511
  try {
552
- if (await isGitRepository(rootPath)) {
553
- const baseRef = await resolveBaseRef(rootPath, 'auto');
554
- const gitResult = await getChangedFiles({ rootPath, baseRef, includeUnstaged: false });
555
- const relevant = gitResult.files.slice(0, DECISIONS_EXTRACTION_MAX_FILES);
556
- const diffs = await Promise.all(relevant.map((f) => getFileDiff(rootPath, f.path, baseRef, DECISIONS_DIFF_MAX_CHARS)));
557
- combinedDiff = diffs.join('\n\n');
558
- commitMessages = await getCommitMessages(rootPath, baseRef).catch(() => '');
559
- }
560
- }
561
- catch (err) {
562
- logger.warning(`Could not build git diff for verification: ${err.message}`);
563
- }
564
- // Step 3 — Verify
565
- const { verified, phantom, missing } = combinedDiff
566
- ? await verifyDecisions(consolidated, combinedDiff, llm, commitMessages)
567
- : { verified: consolidated.map((d) => ({ ...d, status: 'verified', confidence: 'medium' })), phantom: [], missing: [] };
568
- // Step 4 — Persist
569
- let updatedStore = { ...store };
570
- // Reject all original drafts — they've been replaced by consolidated decisions.
571
- // Also reject any explicitly superseded IDs from prior sessions.
572
- const originalDraftIds = new Set(drafts.map((d) => d.id));
573
- const originalById = new Map(store.decisions.map((d) => [d.id, d]));
574
- for (const id of [...originalDraftIds, ...supersededIds]) {
575
- updatedStore = patchDecision(updatedStore, id, { status: 'rejected' });
576
- }
577
- // Preserve recordedAt provenance:
578
- // - Direct match: consolidated decision ID matches original draft → use its recordedAt.
579
- // - Merged decision (new ID, no match): use earliest recordedAt across all superseded
580
- // drafts so the audit trail reflects when the underlying work was first captured.
581
- const earliestSupersededAt = supersededIds
582
- .map((id) => originalById.get(id)?.recordedAt)
583
- .filter((t) => t !== undefined)
584
- .sort()[0];
585
- const withProvenance = [...verified, ...phantom].map((d) => {
586
- const original = originalById.get(d.id);
587
- if (original)
588
- return { ...d, recordedAt: original.recordedAt };
589
- // Merged decision — anchor to earliest superseded draft's recordedAt
590
- if (earliestSupersededAt)
591
- return { ...d, recordedAt: earliestSupersededAt };
592
- return d;
593
- });
594
- // replaceDecisions (not upsertDecisions) — consolidated decisions share IDs
595
- // with their original drafts; upsert would silently no-op after the reject above.
596
- updatedStore = replaceDecisions(updatedStore, withProvenance);
597
- updatedStore = { ...updatedStore, lastConsolidatedAt: new Date().toISOString() };
598
- await saveDecisionStore(rootPath, updatedStore);
599
- if (options.json) {
600
- process.stdout.write(JSON.stringify({ verified, phantom, missing }, null, 2) + '\n');
601
- if (options.gate && missing.length > 0)
512
+ store = await loadDecisionStore(rootPath);
513
+ const drafts = getDecisionsByStatus(store, 'draft');
514
+ const hasDrafts = drafts.length > 0;
515
+ const resolved = resolveLLMProvider(openloreConfig);
516
+ if (!resolved) {
517
+ logger.error('No LLM provider configured. Consolidation requires an LLM.');
518
+ logger.discovery('Set ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, or configure llm in .openlore/config.json');
602
519
  process.exitCode = 1;
603
- return;
604
- }
605
- // Interactive TUI approval when running in a terminal
606
- if (options.gate && process.stdin.isTTY && process.stdout.isTTY && verified.length > 0) {
607
- const results = await runTuiApproval(verified);
608
- let gateStore = updatedStore;
609
- for (const [id, decision] of results) {
610
- if (decision === 'approved' || decision === 'rejected') {
611
- gateStore = patchDecision(gateStore, id, {
612
- status: decision,
613
- reviewedAt: new Date().toISOString(),
614
- });
615
- const d = updatedStore.decisions.find((x) => x.id === id);
616
- emit(rootPath, 'decisions', { event: `decision_${decision}`, id, title: d?.title, transport: 'cli-tui' });
520
+ return;
521
+ }
522
+ const llm = createLLMService({
523
+ provider: resolved.provider,
524
+ model: openloreConfig.generation?.model,
525
+ openaiCompatBaseUrl: resolved.openaiCompatBaseUrl,
526
+ apiBase: globalOpts.apiBase ?? openloreConfig.llm?.apiBase,
527
+ sslVerify: globalOpts.insecure != null ? !globalOpts.insecure : (openloreConfig.llm?.sslVerify ?? true),
528
+ enableLogging: true,
529
+ logDir: join(rootPath, OPENLORE_DIR, OPENLORE_LOGS_SUBDIR),
530
+ });
531
+ // Step 1 — Consolidate drafts OR extract from diff as fallback
532
+ const openspecPath = join(rootPath, openloreConfig.openspecPath ?? OPENSPEC_DIR);
533
+ const specMapResult = await buildSpecMap({ rootPath, openspecPath }).catch(() => undefined);
534
+ let consolidated;
535
+ let supersededIds = [];
536
+ if (hasDrafts) {
537
+ if (!options.json)
538
+ logger.discovery(`Consolidating ${drafts.length} draft decision(s) via ${resolved.provider}...`);
539
+ const result = await consolidateDrafts(store, llm, specMapResult);
540
+ consolidated = result.decisions;
541
+ supersededIds = result.supersededIds;
542
+ }
543
+ else {
544
+ if (!options.json)
545
+ logger.discovery(`No drafts found — extracting decisions from diff via ${resolved.provider}...`);
546
+ const specMap = specMapResult ?? await buildSpecMap({ rootPath, openspecPath });
547
+ // Use staged-only scope so the fallback only sees what's actually being committed.
548
+ consolidated = await extractFromDiff({ rootPath, stagedOnly: true, specMap, sessionId: store.sessionId, llm });
549
+ }
550
+ if (consolidated.length === 0) {
551
+ if (!options.json)
552
+ console.log('No architectural decisions found in drafts.');
553
+ if (options.gate)
554
+ process.exitCode = 0;
555
+ return;
556
+ }
557
+ // Step 2 — Build diff + commit messages for verification
558
+ let combinedDiff = '';
559
+ let commitMessages = '';
560
+ try {
561
+ if (await isGitRepository(rootPath)) {
562
+ const baseRef = await resolveBaseRef(rootPath, 'auto');
563
+ const gitResult = await getChangedFiles({ rootPath, baseRef, includeUnstaged: false });
564
+ const relevant = gitResult.files.slice(0, DECISIONS_EXTRACTION_MAX_FILES);
565
+ const diffs = await Promise.all(relevant.map((f) => getFileDiff(rootPath, f.path, baseRef, DECISIONS_DIFF_MAX_CHARS)));
566
+ combinedDiff = diffs.join('\n\n');
567
+ commitMessages = await getCommitMessages(rootPath, baseRef).catch(() => '');
617
568
  }
618
569
  }
619
- await saveDecisionStore(rootPath, gateStore);
620
- const stillPending = verified.filter((d) => !results.has(d.id) || results.get(d.id) === 'skipped');
621
- const approved = verified.filter((d) => results.get(d.id) === 'approved');
622
- const rejected = verified.filter((d) => results.get(d.id) === 'rejected');
623
- if (approved.length > 0) {
624
- console.log(`\n${approved.length} decision(s) approved. Run "openlore decisions --sync" to write to spec.md.`);
570
+ catch (err) {
571
+ logger.warning(`Could not build git diff for verification: ${err.message}`);
625
572
  }
626
- if (rejected.length > 0) {
627
- console.log(`${rejected.length} decision(s) rejected.`);
573
+ // Step 3 Verify
574
+ const { verified, phantom, missing } = combinedDiff
575
+ ? await verifyDecisions(consolidated, combinedDiff, llm, commitMessages)
576
+ : { verified: consolidated.map((d) => ({ ...d, status: 'verified', confidence: 'medium' })), phantom: [], missing: [] };
577
+ // Step 4 — Persist
578
+ let updatedStore = { ...store };
579
+ // Reject all original drafts — they've been replaced by consolidated decisions.
580
+ // Also reject any explicitly superseded IDs from prior sessions.
581
+ const originalDraftIds = new Set(drafts.map((d) => d.id));
582
+ const originalById = new Map(store.decisions.map((d) => [d.id, d]));
583
+ for (const id of [...originalDraftIds, ...supersededIds]) {
584
+ updatedStore = patchDecision(updatedStore, id, { status: 'rejected' });
628
585
  }
629
- if (stillPending.length > 0) {
630
- logger.warning(`${stillPending.length} decision(s) still pending commit blocked.`);
631
- process.exitCode = 1;
586
+ // Preserve recordedAt provenance:
587
+ // - Direct match: consolidated decision ID matches original draft → use its recordedAt.
588
+ // - Merged decision (new ID, no match): use earliest recordedAt across all superseded
589
+ // drafts so the audit trail reflects when the underlying work was first captured.
590
+ const earliestSupersededAt = supersededIds
591
+ .map((id) => originalById.get(id)?.recordedAt)
592
+ .filter((t) => t !== undefined)
593
+ .sort()[0];
594
+ const withProvenance = [...verified, ...phantom].map((d) => {
595
+ const original = originalById.get(d.id);
596
+ if (original)
597
+ return { ...d, recordedAt: original.recordedAt };
598
+ // Merged decision — anchor to earliest superseded draft's recordedAt
599
+ if (earliestSupersededAt)
600
+ return { ...d, recordedAt: earliestSupersededAt };
601
+ return d;
602
+ });
603
+ // replaceDecisions (not upsertDecisions) — consolidated decisions share IDs
604
+ // with their original drafts; upsert would silently no-op after the reject above.
605
+ updatedStore = replaceDecisions(updatedStore, withProvenance);
606
+ updatedStore = { ...updatedStore, lastConsolidatedAt: new Date().toISOString() };
607
+ await saveDecisionStore(rootPath, updatedStore);
608
+ if (options.json) {
609
+ process.stdout.write(JSON.stringify({ verified, phantom, missing }, null, 2) + '\n');
610
+ if (options.gate && missing.length > 0)
611
+ process.exitCode = 1;
612
+ return;
613
+ }
614
+ // Interactive TUI approval when running in a terminal
615
+ if (options.gate && process.stdin.isTTY && process.stdout.isTTY && verified.length > 0) {
616
+ const results = await runTuiApproval(verified);
617
+ let gateStore = updatedStore;
618
+ for (const [id, decision] of results) {
619
+ if (decision === 'approved' || decision === 'rejected') {
620
+ gateStore = patchDecision(gateStore, id, {
621
+ status: decision,
622
+ reviewedAt: new Date().toISOString(),
623
+ });
624
+ const d = updatedStore.decisions.find((x) => x.id === id);
625
+ emit(rootPath, 'decisions', { event: `decision_${decision}`, id, title: d?.title, transport: 'cli-tui' });
626
+ }
627
+ }
628
+ await saveDecisionStore(rootPath, gateStore);
629
+ const stillPending = verified.filter((d) => !results.has(d.id) || results.get(d.id) === 'skipped');
630
+ const approved = verified.filter((d) => results.get(d.id) === 'approved');
631
+ const rejected = verified.filter((d) => results.get(d.id) === 'rejected');
632
+ if (approved.length > 0) {
633
+ console.log(`\n${approved.length} decision(s) approved. Run "openlore decisions --sync" to write to spec.md.`);
634
+ }
635
+ if (rejected.length > 0) {
636
+ console.log(`${rejected.length} decision(s) rejected.`);
637
+ }
638
+ if (stillPending.length > 0) {
639
+ logger.warning(`${stillPending.length} decision(s) still pending — commit blocked.`);
640
+ process.exitCode = 1;
641
+ }
642
+ displayMissing(missing);
643
+ if (missing.length > 0)
644
+ process.exitCode = 1;
645
+ return;
646
+ }
647
+ // Non-TTY (agent/IDE context): structured JSON for ACP consumption
648
+ if (options.gate && !process.stdout.isTTY) {
649
+ const payload = {
650
+ gated: verified.length > 0 || missing.length > 0,
651
+ verified: verified.map((d) => ({
652
+ id: d.id,
653
+ title: d.title,
654
+ rationale: d.rationale,
655
+ consequences: d.consequences,
656
+ proposedRequirement: d.proposedRequirement,
657
+ affectedDomains: d.affectedDomains,
658
+ affectedFiles: d.affectedFiles,
659
+ confidence: d.confidence,
660
+ })),
661
+ phantom: phantom.map((d) => ({ id: d.id, title: d.title })),
662
+ missing: missing.map((m) => ({ file: m.file, description: m.description })),
663
+ actions: {
664
+ approve: 'openlore decisions --approve <id>',
665
+ reject: 'openlore decisions --reject <id>',
666
+ sync: 'openlore decisions --sync',
667
+ },
668
+ };
669
+ process.stdout.write(JSON.stringify(payload, null, 2) + '\n');
670
+ if (payload.gated)
671
+ process.exitCode = 1;
672
+ return;
673
+ }
674
+ // Plain text recap (non-gate or explicit --list context)
675
+ logger.section('Architectural Decisions — Review Required');
676
+ if (verified.length > 0) {
677
+ console.log('\nVerified decisions (found in code):');
678
+ for (const d of verified)
679
+ displayDecision(d, options.verbose);
680
+ }
681
+ if (phantom.length > 0) {
682
+ console.log('\nPhantom decisions (recorded but not found in diff — may have been rolled back):');
683
+ for (const d of phantom)
684
+ displayDecision(d, options.verbose);
632
685
  }
633
686
  displayMissing(missing);
634
- if (missing.length > 0)
687
+ console.log('\nApprove with: openlore decisions --approve <id>');
688
+ console.log('Reject with: openlore decisions --reject <id>');
689
+ console.log('Sync all approved: openlore decisions --sync');
690
+ if (options.gate && missing.length > 0) {
691
+ logger.warning(`\nCommit gated — ${missing.length} undocumented change(s) require a decision. Record with: openlore decisions --record or record_decision MCP tool.`);
635
692
  process.exitCode = 1;
636
- return;
637
- }
638
- // Non-TTY (agent/IDE context): structured JSON for ACP consumption
639
- if (options.gate && !process.stdout.isTTY) {
640
- const payload = {
641
- gated: verified.length > 0 || missing.length > 0,
642
- verified: verified.map((d) => ({
643
- id: d.id,
644
- title: d.title,
645
- rationale: d.rationale,
646
- consequences: d.consequences,
647
- proposedRequirement: d.proposedRequirement,
648
- affectedDomains: d.affectedDomains,
649
- affectedFiles: d.affectedFiles,
650
- confidence: d.confidence,
651
- })),
652
- phantom: phantom.map((d) => ({ id: d.id, title: d.title })),
653
- missing: missing.map((m) => ({ file: m.file, description: m.description })),
654
- actions: {
655
- approve: 'openlore decisions --approve <id>',
656
- reject: 'openlore decisions --reject <id>',
657
- sync: 'openlore decisions --sync',
658
- },
659
- };
660
- process.stdout.write(JSON.stringify(payload, null, 2) + '\n');
661
- if (payload.gated)
693
+ }
694
+ else if (options.gate && verified.length > 0) {
695
+ logger.warning('\nDecisions verified approve them before syncing: openlore decisions --approve <id>');
662
696
  process.exitCode = 1;
697
+ }
663
698
  return;
664
699
  }
665
- // Plain text recap (non-gate or explicit --list context)
666
- logger.section('Architectural Decisions — Review Required');
667
- if (verified.length > 0) {
668
- console.log('\nVerified decisions (found in code):');
669
- for (const d of verified)
670
- displayDecision(d, options.verbose);
671
- }
672
- if (phantom.length > 0) {
673
- console.log('\nPhantom decisions (recorded but not found in diff — may have been rolled back):');
674
- for (const d of phantom)
675
- displayDecision(d, options.verbose);
676
- }
677
- displayMissing(missing);
678
- console.log('\nApprove with: openlore decisions --approve <id>');
679
- console.log('Reject with: openlore decisions --reject <id>');
680
- console.log('Sync all approved: openlore decisions --sync');
681
- if (options.gate && missing.length > 0) {
682
- logger.warning(`\nCommit gated — ${missing.length} undocumented change(s) require a decision. Record with: openlore decisions --record or record_decision MCP tool.`);
683
- process.exitCode = 1;
684
- }
685
- else if (options.gate && verified.length > 0) {
686
- logger.warning('\nDecisions verified — approve them before syncing: openlore decisions --approve <id>');
687
- process.exitCode = 1;
700
+ finally {
701
+ await releaseConsolidateLock();
688
702
  }
689
- return;
690
703
  }
691
704
  // ── Gate only (no consolidation — consolidation happens on record_decision) ──
692
705
  if (options.gate && !options.consolidate) {
@@ -1 +1 @@
1
- {"version":3,"file":"decisions.js","sourceRoot":"","sources":["../../../src/cli/commands/decisions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decisions.js","sourceRoot":"","sources":["../../../src/cli/commands/decisions.ts"],"names":[],"mappings":"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"}
@@ -2231,5 +2231,18 @@ export declare const TOOL_DEFINITIONS: ({
2231
2231
  required: string[];
2232
2232
  };
2233
2233
  })[];
2234
+ export declare const TOOL_PRESETS: Record<string, Set<string>>;
2235
+ /**
2236
+ * Resolve which tools an MCP session exposes (Spec 14). `--preset` wins over the
2237
+ * legacy `--minimal` (= the 'minimal' preset); no selector = all tools. Throws on
2238
+ * an unknown preset so a typo fails loudly instead of silently exposing all 45.
2239
+ * Pure + exported for unit testing.
2240
+ */
2241
+ export declare function selectActiveTools<T extends {
2242
+ name: string;
2243
+ }>(allTools: T[], opts: {
2244
+ minimal?: boolean;
2245
+ preset?: string;
2246
+ }): T[];
2234
2247
  export declare const mcpCommand: Command;
2235
2248
  //# sourceMappingURL=mcp.d.ts.map