@jungjaehoon/mama-core 1.9.0 → 2.1.0

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 (139) hide show
  1. package/db/migrations/043-add-tool-trace-failure-code.sql +11 -0
  2. package/dist/agent-graph/alias-write.js +3 -0
  3. package/dist/agent-graph/entity-resolve.js +3 -7
  4. package/dist/agent-graph/graph-query.js +5 -4
  5. package/dist/agent-graph/types.d.ts +30 -0
  6. package/dist/cases/store.d.ts +0 -4
  7. package/dist/cases/store.js +0 -66
  8. package/dist/cases/wiki-page-index.d.ts +0 -13
  9. package/dist/cases/wiki-page-index.js +0 -153
  10. package/dist/connectors/event-index.d.ts +1 -22
  11. package/dist/connectors/event-index.js +0 -157
  12. package/dist/context-compile/channel-grant.d.ts +46 -0
  13. package/dist/context-compile/channel-grant.js +66 -0
  14. package/dist/context-compile/compiler.js +5 -2
  15. package/dist/context-compile/index.d.ts +1 -0
  16. package/dist/context-compile/index.js +1 -0
  17. package/dist/context-compile/packet-store.d.ts +0 -1
  18. package/dist/context-compile/packet-store.js +0 -16
  19. package/dist/context-compile/source-readers.d.ts +1 -0
  20. package/dist/context-compile/source-readers.js +156 -23
  21. package/dist/context-compile/types.d.ts +17 -0
  22. package/dist/context-compile/visibility.js +28 -4
  23. package/dist/db-adapter/node-sqlite-adapter.js +4 -0
  24. package/dist/db-manager.d.ts +0 -13
  25. package/dist/db-manager.js +0 -66
  26. package/dist/decision-formatter.d.ts +0 -11
  27. package/dist/decision-formatter.js +0 -122
  28. package/dist/decision-tracker.d.ts +0 -12
  29. package/dist/decision-tracker.js +0 -50
  30. package/dist/edges/ref-validation.d.ts +1 -2
  31. package/dist/edges/ref-validation.js +33 -13
  32. package/dist/edges/store.d.ts +1 -3
  33. package/dist/edges/store.js +0 -214
  34. package/dist/edges/types.d.ts +10 -0
  35. package/dist/embedding-client.d.ts +0 -17
  36. package/dist/embedding-client.js +0 -80
  37. package/dist/embedding-server/mobile/auth.d.ts +1 -10
  38. package/dist/embedding-server/mobile/auth.js +0 -15
  39. package/dist/embeddings.d.ts +0 -12
  40. package/dist/embeddings.js +0 -68
  41. package/dist/entities/audit-metrics.d.ts +0 -5
  42. package/dist/entities/audit-metrics.js +0 -4
  43. package/dist/entities/candidate-generator.d.ts +1 -2
  44. package/dist/entities/candidate-generator.js +0 -412
  45. package/dist/entities/entity-list.d.ts +0 -1
  46. package/dist/entities/entity-list.js +0 -96
  47. package/dist/entities/entity-orphan-list.d.ts +0 -9
  48. package/dist/entities/entity-orphan-list.js +0 -88
  49. package/dist/entities/entity-search.d.ts +0 -1
  50. package/dist/entities/entity-search.js +0 -147
  51. package/dist/entities/errors.d.ts +0 -10
  52. package/dist/entities/errors.js +1 -25
  53. package/dist/entities/lineage-store.d.ts +0 -23
  54. package/dist/entities/lineage-store.js +0 -104
  55. package/dist/entities/policy-store.d.ts +0 -9
  56. package/dist/entities/policy-store.js +0 -188
  57. package/dist/entities/provenance-query.d.ts +0 -1
  58. package/dist/entities/provenance-query.js +0 -164
  59. package/dist/entities/resolution-engine.d.ts +1 -8
  60. package/dist/entities/resolution-engine.js +0 -66
  61. package/dist/entities/rollback-preview.d.ts +0 -4
  62. package/dist/entities/rollback-preview.js +0 -232
  63. package/dist/entities/store.d.ts +1 -10
  64. package/dist/entities/store.js +0 -49
  65. package/dist/index.d.ts +15 -31
  66. package/dist/index.js +4 -46
  67. package/dist/mama-api.d.ts +19 -1
  68. package/dist/mama-api.js +97 -2
  69. package/dist/memory/api.d.ts +8 -0
  70. package/dist/memory/api.js +55 -2
  71. package/dist/memory/event-store.d.ts +0 -1
  72. package/dist/memory/event-store.js +0 -15
  73. package/dist/memory/finding-store.d.ts +0 -1
  74. package/dist/memory/finding-store.js +0 -12
  75. package/dist/memory/scope-backfill.d.ts +0 -3
  76. package/dist/memory/scope-backfill.js +0 -74
  77. package/dist/memory/scope-store.d.ts +0 -1
  78. package/dist/memory/scope-store.js +0 -4
  79. package/dist/memory/truth-store.d.ts +0 -3
  80. package/dist/memory/truth-store.js +0 -22
  81. package/dist/memory/types.d.ts +0 -1
  82. package/dist/memory/types.js +0 -13
  83. package/dist/memory-store.d.ts +0 -16
  84. package/dist/memory-store.js +0 -51
  85. package/dist/model-runs/tool-trace-store.js +9 -5
  86. package/dist/model-runs/types.d.ts +3 -0
  87. package/dist/ollama-client.d.ts +0 -9
  88. package/dist/ollama-client.js +0 -125
  89. package/dist/outcome-tracker.d.ts +0 -14
  90. package/dist/outcome-tracker.js +0 -44
  91. package/dist/progress-indicator.d.ts +0 -4
  92. package/dist/progress-indicator.js +0 -7
  93. package/dist/provenance/source-ref.d.ts +0 -9
  94. package/dist/provenance/source-ref.js +0 -145
  95. package/dist/query-intent.d.ts +0 -4
  96. package/dist/query-intent.js +0 -30
  97. package/dist/relevance-scorer.d.ts +0 -9
  98. package/dist/relevance-scorer.js +0 -81
  99. package/dist/search/feedback-store.d.ts +0 -1
  100. package/dist/search/feedback-store.js +0 -4
  101. package/dist/search/ranker-rescore.d.ts +0 -3
  102. package/dist/search/ranker-rescore.js +0 -27
  103. package/dist/search/ranker-trainer.d.ts +0 -8
  104. package/dist/search/ranker-trainer.js +0 -376
  105. package/dist/tier-validator.d.ts +0 -12
  106. package/dist/tier-validator.js +0 -56
  107. package/package.json +1 -10
  108. package/dist/cases/case-links.d.ts +0 -116
  109. package/dist/cases/case-links.js +0 -794
  110. package/dist/cases/composition-overrides.d.ts +0 -90
  111. package/dist/cases/composition-overrides.js +0 -724
  112. package/dist/cases/corrections.d.ts +0 -156
  113. package/dist/cases/corrections.js +0 -1045
  114. package/dist/cases/freshness.d.ts +0 -57
  115. package/dist/cases/freshness.js +0 -283
  116. package/dist/cases/live-state.d.ts +0 -48
  117. package/dist/cases/live-state.js +0 -256
  118. package/dist/cases/membership-explain.d.ts +0 -56
  119. package/dist/cases/membership-explain.js +0 -140
  120. package/dist/cases/membership-matcher.d.ts +0 -23
  121. package/dist/cases/membership-matcher.js +0 -193
  122. package/dist/cases/merge-split.d.ts +0 -61
  123. package/dist/cases/merge-split.js +0 -368
  124. package/dist/cases/role-inference.d.ts +0 -10
  125. package/dist/cases/role-inference.js +0 -85
  126. package/dist/cases/sqlite-transaction.d.ts +0 -10
  127. package/dist/cases/sqlite-transaction.js +0 -62
  128. package/dist/cases/target-ref.d.ts +0 -25
  129. package/dist/cases/target-ref.js +0 -22
  130. package/dist/cases/tombstone-sweeper.d.ts +0 -13
  131. package/dist/cases/tombstone-sweeper.js +0 -128
  132. package/dist/entities/entity-impact.d.ts +0 -41
  133. package/dist/entities/entity-impact.js +0 -140
  134. package/dist/entities/exact-merge-backfill.d.ts +0 -11
  135. package/dist/entities/exact-merge-backfill.js +0 -161
  136. package/dist/entities/lineage-backfill.d.ts +0 -12
  137. package/dist/entities/lineage-backfill.js +0 -101
  138. package/dist/memory-inject.d.ts +0 -24
  139. package/dist/memory-inject.js +0 -116
@@ -1,116 +0,0 @@
1
- "use strict";
2
- /**
3
- * MAMA (Memory-Augmented MCP Architecture) - Memory Injection Hook
4
- *
5
- * UserPromptSubmit hook that injects decision history into Claude's context
6
- * Tasks: 1.1-1.9 (Hook setup, timeout handling, context injection)
7
- * AC #1: Query intent → Graph query → Format → Inject (5s timeout for LLM latency)
8
- * AC #2: No history → null (graceful fallback)
9
- * AC #3: Timeout → graceful fallback
10
- *
11
- * @module memory-inject
12
- * @version 1.0
13
- * @date 2025-11-14
14
- */
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.injectDecisionContext = injectDecisionContext;
17
- // Error handling policy:
18
- // - Timeout errors: thrown (caller handles retry/fallback)
19
- // - Vector search unavailable: returns empty array (recoverable, not critical)
20
- const debug_logger_js_1 = require("./debug-logger.js");
21
- const memory_store_js_1 = require("./memory-store.js");
22
- const decision_formatter_js_1 = require("./decision-formatter.js");
23
- // Configuration
24
- const TIMEOUT_MS = 5000; // LLM-based intent detection, user accepts longer thinking
25
- const TOKEN_BUDGET = 500; // AC #1: Max 500 tokens per injection
26
- /**
27
- * UserPromptSubmit Hook Handler
28
- *
29
- * Task 1.1-1.9: Main entry point for memory injection
30
- * AC #1, #2, #3: Intent analysis → Query → Format → Inject
31
- *
32
- * @param userMessage - User's message from prompt
33
- * @returns Injected context or null
34
- */
35
- async function injectDecisionContext(userMessage) {
36
- const startTime = Date.now();
37
- let timeoutId = null;
38
- try {
39
- // Task 1.3: Implement timeout wrapper (Promise.race with timeout)
40
- const timeoutPromise = new Promise((_, reject) => {
41
- timeoutId = setTimeout(() => {
42
- reject(new Error(`Memory injection timeout (${TIMEOUT_MS}ms)`));
43
- }, TIMEOUT_MS);
44
- });
45
- const context = await Promise.race([
46
- performMemoryInjection(userMessage, startTime),
47
- timeoutPromise,
48
- ]);
49
- // Clear timeout on success to prevent timer leak
50
- if (timeoutId) {
51
- clearTimeout(timeoutId);
52
- }
53
- return context;
54
- }
55
- catch (error) {
56
- // Clear timeout on error to prevent timer leak
57
- if (timeoutId) {
58
- clearTimeout(timeoutId);
59
- }
60
- // CLAUDE.md Rule #1: NO FALLBACK
61
- // Errors must be thrown for debugging (including timeout)
62
- const message = error instanceof Error ? error.message : String(error);
63
- (0, debug_logger_js_1.error)(`[MAMA] Memory injection FAILED: ${message}`);
64
- throw error;
65
- }
66
- }
67
- /**
68
- * Perform memory injection with all steps
69
- *
70
- * Simplified: Direct vector search without LLM intent analysis
71
- * Faster, more reliable, works with all query types
72
- *
73
- * @param userMessage - User's message
74
- * @param startTime - Start timestamp for latency tracking
75
- * @returns Formatted context or null
76
- */
77
- async function performMemoryInjection(userMessage, startTime) {
78
- // 1. Generate query embedding
79
- const { generateEmbedding } = await import('./embeddings.js');
80
- const queryEmbedding = await generateEmbedding(userMessage, 'query');
81
- const embeddingLatency = Date.now() - startTime;
82
- (0, debug_logger_js_1.info)(`[MAMA] Embedding generation: ${embeddingLatency}ms`);
83
- // 2. Adaptive threshold (shorter queries need higher confidence)
84
- const wordCount = userMessage.split(/\s+/).length;
85
- const adaptiveThreshold = wordCount < 3 ? 0.7 : 0.6;
86
- // 3. Vector search (returns [] on error for graceful degradation)
87
- let results;
88
- try {
89
- results = (await (0, memory_store_js_1.vectorSearch)(queryEmbedding, 10, 0.5)); // Get more candidates
90
- }
91
- catch (error) {
92
- // Vector search unavailability should not block the main conversation flow
93
- const message = error instanceof Error ? error.message : String(error);
94
- (0, debug_logger_js_1.error)(`[MAMA] Vector search failed: ${message}`);
95
- return null;
96
- }
97
- // 4. Filter by adaptive threshold
98
- results = results.filter((r) => r.similarity >= adaptiveThreshold);
99
- const searchLatency = Date.now() - startTime;
100
- (0, debug_logger_js_1.info)(`[MAMA] Vector search: ${searchLatency - embeddingLatency}ms (${results.length} results, threshold: ${adaptiveThreshold})`);
101
- // 5. Check if we have any decisions
102
- if (results.length === 0) {
103
- // Redact user content for privacy - only log length, not content
104
- (0, debug_logger_js_1.info)(`[MAMA] No relevant decisions found (query length: ${userMessage.length} chars)`);
105
- return null;
106
- }
107
- // 6. Format context summary
108
- const formattedContext = (0, decision_formatter_js_1.formatContext)(results, {
109
- maxTokens: TOKEN_BUDGET,
110
- });
111
- const formatLatency = Date.now() - startTime;
112
- (0, debug_logger_js_1.info)(`[MAMA] Format context: ${formatLatency - searchLatency}ms (total: ${formatLatency}ms)`);
113
- // 7. Return formatted context (Claude Code will inject it)
114
- return formattedContext;
115
- }
116
- //# sourceMappingURL=memory-inject.js.map