@jungjaehoon/mama-core 1.9.0 → 2.0.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.
- package/dist/agent-graph/alias-write.js +3 -0
- package/dist/agent-graph/entity-resolve.js +3 -7
- package/dist/agent-graph/graph-query.js +5 -4
- package/dist/agent-graph/types.d.ts +30 -0
- package/dist/cases/store.d.ts +0 -4
- package/dist/cases/store.js +0 -66
- package/dist/cases/wiki-page-index.d.ts +0 -13
- package/dist/cases/wiki-page-index.js +0 -153
- package/dist/connectors/event-index.d.ts +1 -22
- package/dist/connectors/event-index.js +0 -157
- package/dist/context-compile/channel-grant.d.ts +46 -0
- package/dist/context-compile/channel-grant.js +66 -0
- package/dist/context-compile/compiler.js +5 -2
- package/dist/context-compile/index.d.ts +1 -0
- package/dist/context-compile/index.js +1 -0
- package/dist/context-compile/packet-store.d.ts +0 -1
- package/dist/context-compile/packet-store.js +0 -16
- package/dist/context-compile/source-readers.d.ts +1 -0
- package/dist/context-compile/source-readers.js +156 -23
- package/dist/context-compile/types.d.ts +17 -0
- package/dist/context-compile/visibility.js +28 -4
- package/dist/db-adapter/node-sqlite-adapter.js +4 -0
- package/dist/db-manager.d.ts +0 -13
- package/dist/db-manager.js +0 -66
- package/dist/decision-formatter.d.ts +0 -11
- package/dist/decision-formatter.js +0 -122
- package/dist/decision-tracker.d.ts +0 -12
- package/dist/decision-tracker.js +0 -50
- package/dist/edges/ref-validation.d.ts +1 -2
- package/dist/edges/ref-validation.js +33 -13
- package/dist/edges/store.d.ts +1 -3
- package/dist/edges/store.js +0 -214
- package/dist/edges/types.d.ts +10 -0
- package/dist/embedding-client.d.ts +0 -17
- package/dist/embedding-client.js +0 -80
- package/dist/embedding-server/mobile/auth.d.ts +1 -10
- package/dist/embedding-server/mobile/auth.js +0 -15
- package/dist/embeddings.d.ts +0 -12
- package/dist/embeddings.js +0 -68
- package/dist/entities/audit-metrics.d.ts +0 -5
- package/dist/entities/audit-metrics.js +0 -4
- package/dist/entities/candidate-generator.d.ts +1 -2
- package/dist/entities/candidate-generator.js +0 -412
- package/dist/entities/entity-list.d.ts +0 -1
- package/dist/entities/entity-list.js +0 -96
- package/dist/entities/entity-orphan-list.d.ts +0 -9
- package/dist/entities/entity-orphan-list.js +0 -88
- package/dist/entities/entity-search.d.ts +0 -1
- package/dist/entities/entity-search.js +0 -147
- package/dist/entities/errors.d.ts +0 -10
- package/dist/entities/errors.js +1 -25
- package/dist/entities/lineage-store.d.ts +0 -23
- package/dist/entities/lineage-store.js +0 -104
- package/dist/entities/policy-store.d.ts +0 -9
- package/dist/entities/policy-store.js +0 -188
- package/dist/entities/provenance-query.d.ts +0 -1
- package/dist/entities/provenance-query.js +0 -164
- package/dist/entities/resolution-engine.d.ts +1 -8
- package/dist/entities/resolution-engine.js +0 -66
- package/dist/entities/rollback-preview.d.ts +0 -4
- package/dist/entities/rollback-preview.js +0 -232
- package/dist/entities/store.d.ts +1 -10
- package/dist/entities/store.js +0 -49
- package/dist/index.d.ts +15 -31
- package/dist/index.js +4 -46
- package/dist/mama-api.d.ts +19 -1
- package/dist/mama-api.js +97 -2
- package/dist/memory/api.d.ts +8 -0
- package/dist/memory/api.js +55 -2
- package/dist/memory/event-store.d.ts +0 -1
- package/dist/memory/event-store.js +0 -15
- package/dist/memory/finding-store.d.ts +0 -1
- package/dist/memory/finding-store.js +0 -12
- package/dist/memory/scope-backfill.d.ts +0 -3
- package/dist/memory/scope-backfill.js +0 -74
- package/dist/memory/scope-store.d.ts +0 -1
- package/dist/memory/scope-store.js +0 -4
- package/dist/memory/truth-store.d.ts +0 -3
- package/dist/memory/truth-store.js +0 -22
- package/dist/memory/types.d.ts +0 -1
- package/dist/memory/types.js +0 -13
- package/dist/memory-store.d.ts +0 -16
- package/dist/memory-store.js +0 -51
- package/dist/ollama-client.d.ts +0 -9
- package/dist/ollama-client.js +0 -125
- package/dist/outcome-tracker.d.ts +0 -14
- package/dist/outcome-tracker.js +0 -44
- package/dist/progress-indicator.d.ts +0 -4
- package/dist/progress-indicator.js +0 -7
- package/dist/provenance/source-ref.d.ts +0 -9
- package/dist/provenance/source-ref.js +0 -145
- package/dist/query-intent.d.ts +0 -4
- package/dist/query-intent.js +0 -30
- package/dist/relevance-scorer.d.ts +0 -9
- package/dist/relevance-scorer.js +0 -81
- package/dist/search/feedback-store.d.ts +0 -1
- package/dist/search/feedback-store.js +0 -4
- package/dist/search/ranker-rescore.d.ts +0 -3
- package/dist/search/ranker-rescore.js +0 -27
- package/dist/search/ranker-trainer.d.ts +0 -8
- package/dist/search/ranker-trainer.js +0 -376
- package/dist/tier-validator.d.ts +0 -12
- package/dist/tier-validator.js +0 -56
- package/package.json +1 -10
- package/dist/cases/case-links.d.ts +0 -116
- package/dist/cases/case-links.js +0 -794
- package/dist/cases/composition-overrides.d.ts +0 -90
- package/dist/cases/composition-overrides.js +0 -724
- package/dist/cases/corrections.d.ts +0 -156
- package/dist/cases/corrections.js +0 -1045
- package/dist/cases/freshness.d.ts +0 -57
- package/dist/cases/freshness.js +0 -283
- package/dist/cases/live-state.d.ts +0 -48
- package/dist/cases/live-state.js +0 -256
- package/dist/cases/membership-explain.d.ts +0 -56
- package/dist/cases/membership-explain.js +0 -140
- package/dist/cases/membership-matcher.d.ts +0 -23
- package/dist/cases/membership-matcher.js +0 -193
- package/dist/cases/merge-split.d.ts +0 -61
- package/dist/cases/merge-split.js +0 -368
- package/dist/cases/role-inference.d.ts +0 -10
- package/dist/cases/role-inference.js +0 -85
- package/dist/cases/sqlite-transaction.d.ts +0 -10
- package/dist/cases/sqlite-transaction.js +0 -62
- package/dist/cases/target-ref.d.ts +0 -25
- package/dist/cases/target-ref.js +0 -22
- package/dist/cases/tombstone-sweeper.d.ts +0 -13
- package/dist/cases/tombstone-sweeper.js +0 -128
- package/dist/entities/entity-impact.d.ts +0 -41
- package/dist/entities/entity-impact.js +0 -140
- package/dist/entities/exact-merge-backfill.d.ts +0 -11
- package/dist/entities/exact-merge-backfill.js +0 -161
- package/dist/entities/lineage-backfill.d.ts +0 -12
- package/dist/entities/lineage-backfill.js +0 -101
- package/dist/memory-inject.d.ts +0 -24
- package/dist/memory-inject.js +0 -116
package/dist/memory-inject.js
DELETED
|
@@ -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
|