@jungjaehoon/mama-core 1.3.3 → 1.4.1
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 +67 -19
- package/db/migrations/001-initial-decision-graph.sql +6 -1
- package/db/migrations/002-add-error-patterns.sql +1 -1
- package/db/migrations/014-add-is-static-column.sql +5 -0
- package/db/migrations/015-add-fts5-search.sql +34 -0
- package/db/migrations/016-add-memory-v2-columns.sql +14 -0
- package/db/migrations/017-create-memory-scopes.sql +10 -0
- package/db/migrations/018-create-memory-scope-bindings.sql +15 -0
- package/db/migrations/019-create-memory-events.sql +18 -0
- package/db/migrations/020-create-audit-findings.sql +18 -0
- package/db/migrations/021-create-memory-truth.sql +20 -0
- package/db/migrations/022-create-channel-summaries.sql +9 -0
- package/db/migrations/023-create-channel-summary-state.sql +9 -0
- package/db/migrations/024-add-event-date.sql +9 -0
- package/db/migrations/025-extend-kind-check.sql +59 -0
- package/dist/config-loader.d.ts +1 -1
- package/dist/config-loader.js +3 -3
- package/dist/db-adapter/base-adapter.d.ts +2 -2
- package/dist/db-adapter/index.js +2 -8
- package/dist/db-adapter/node-sqlite-adapter.d.ts +6 -1
- package/dist/db-adapter/node-sqlite-adapter.js +99 -45
- package/dist/db-manager.d.ts +32 -4
- package/dist/db-manager.js +133 -8
- package/dist/decision-formatter.d.ts +2 -0
- package/dist/embedding-server/mobile/session-manager.js +22 -7
- package/dist/embeddings.d.ts +2 -2
- package/dist/embeddings.js +2 -2
- package/dist/index.d.ts +5 -1
- package/dist/index.js +31 -3
- package/dist/mama-api.d.ts +67 -2
- package/dist/mama-api.js +295 -80
- package/dist/memory/api.d.ts +81 -0
- package/dist/memory/api.js +972 -0
- package/dist/memory/bootstrap-builder.d.ts +10 -0
- package/dist/memory/bootstrap-builder.js +66 -0
- package/dist/memory/channel-summary-state-store.d.ts +19 -0
- package/dist/memory/channel-summary-state-store.js +223 -0
- package/dist/memory/channel-summary-store.d.ts +8 -0
- package/dist/memory/channel-summary-store.js +41 -0
- package/dist/memory/event-store.d.ts +5 -0
- package/dist/memory/event-store.js +72 -0
- package/dist/memory/evolution-engine.d.ts +22 -0
- package/dist/memory/evolution-engine.js +133 -0
- package/dist/memory/extraction-prompt.d.ts +4 -0
- package/dist/memory/extraction-prompt.js +89 -0
- package/dist/memory/finding-store.d.ts +5 -0
- package/dist/memory/finding-store.js +75 -0
- package/dist/memory/profile-builder.d.ts +3 -0
- package/dist/memory/profile-builder.js +23 -0
- package/dist/memory/scope-store.d.ts +5 -0
- package/dist/memory/scope-store.js +13 -0
- package/dist/memory/truth-store.d.ts +11 -0
- package/dist/memory/truth-store.js +102 -0
- package/dist/memory/types.d.ts +267 -0
- package/dist/memory/types.js +83 -0
- package/package.json +4 -1
package/dist/index.js
CHANGED
|
@@ -12,9 +12,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.
|
|
16
|
-
exports.
|
|
17
|
-
exports.
|
|
15
|
+
exports.recallMemory = exports.saveMemory = exports.createEmptyRecallBundle = exports.MEMORY_EDGE_TYPES = exports.MEMORY_STATUSES = exports.MEMORY_KINDS = exports.MEMORY_SCOPE_KINDS = exports.mama = exports.DEFAULT_DB_PATH = exports.LEGACY_DB_PATH = exports.DB_DIR = exports.DB_PATH = exports.traverseDecisionChain = exports.getDecisionById = exports.incrementUsageFailure = exports.incrementUsageSuccess = exports.getSessionDecisions = exports.SQLiteAdapter = exports.DatabaseAdapter = exports.createAdapter = exports.reindexEmbeddings = exports.fts5Search = exports.getDbPath = exports.getPreparedStmt = exports.updateDecisionOutcome = exports.querySemanticEdges = exports.queryDecisionGraph = exports.insertDecisionWithEmbedding = exports.queryVectorSearch = exports.vectorSearch = exports.insertEmbedding = exports.closeDB = exports.getAdapter = exports.getDB = exports.initDB = exports.TIMEOUT_MS = exports.HOST = exports.DEFAULT_PORT = exports.getServerPort = exports.isServerRunning = exports.getServerStatus = exports.getEmbeddingFromServer = exports.EmbeddingCache = exports.MODEL_NAME = exports.EMBEDDING_DIM = exports.embeddingCache = exports.cosineSimilarity = exports.generateBatchEmbeddings = exports.generateEnhancedEmbedding = exports.generateEmbedding = void 0;
|
|
16
|
+
exports.logLoading = exports.logInfo = exports.logError = exports.logFailed = exports.logComplete = exports.logProgress = exports.getTierBanner = exports.getTierDescription = exports.checkDatabase = exports.checkEmbeddings = exports.checkSQLite = exports.checkNodeVersion = exports.validateTier = exports.VALID_EDGE_TYPES = exports.updateConfidence = exports.getSupersededChainDepth = exports.createEdgesFromReasoning = exports.parseReasoningForRelationships = exports.detectRefinement = exports.calculateCombinedConfidence = exports.markSuperseded = exports.createSupersedesEdge = exports.createEdge = exports.getPreviousDecision = exports.generateDecisionId = exports.learnDecision = exports.testRelevanceScoring = exports.formatTopNContext = exports.selectTopDecisions = exports.calculateRelevance = exports.DEFAULT_CONFIG = exports.getConfigPath = exports.updateConfig = exports.getCacheDir = exports.getEmbeddingDim = exports.getModelName = exports.loadConfig = exports.listRecentMemoryEvents = exports.parseExtractionResponse = exports.buildExtractionPrompt = exports.getChannelSummary = exports.upsertChannelSummary = exports.setExtractionFn = exports.ingestConversation = exports.recordMemoryAudit = exports.createAuditAck = exports.buildMemoryBootstrap = exports.evolveMemory = exports.ingestMemory = exports.buildProfile = void 0;
|
|
17
|
+
exports.analyzeQueryIntent = exports.analyzeDecision = exports.generate = exports.extractTopicKeywords = exports.analyzeIntent = exports.injectDecisionContext = exports.RECENT_WINDOW_MS = exports.PARTIAL_INDICATORS = exports.SUCCESS_INDICATORS = exports.FAILURE_INDICATORS = exports.onUserPromptSubmit = exports.markOutcome = exports.getEvidenceImpact = exports.calculateDurationDays = exports.getRecentDecision = exports.extractFailureReason = exports.matchesPartialIndicators = exports.matchesSuccessIndicators = exports.matchesFailureIndicators = exports.analyzeOutcome = exports.extractCodeExample = exports.extractQuickAnswer = exports.estimateTokens = exports.ensureTokenBudget = exports.formatTrustContext = exports.formatInstantAnswer = exports.formatTeaser = exports.formatList = exports.formatRecall = exports.formatLegacyContext = exports.formatContext = exports.isMAMAError = exports.wrapError = exports.ErrorCodes = exports.TimeoutError = exports.RateLimitError = exports.LinkError = exports.ConfigurationError = exports.EmbeddingError = exports.DatabaseError = exports.ValidationError = exports.NotFoundError = exports.MAMAError = exports.formatTimeAgo = exports.DebugLogger = exports.error = exports.warn = exports.info = exports.debug = exports.logSearching = void 0;
|
|
18
|
+
exports.notifyInsight = exports.FALLBACK_MODEL = exports.DEFAULT_MODEL = exports.listModels = exports.isAvailable = void 0;
|
|
18
19
|
// Embeddings
|
|
19
20
|
var embeddings_js_1 = require("./embeddings.js");
|
|
20
21
|
Object.defineProperty(exports, "generateEmbedding", { enumerable: true, get: function () { return embeddings_js_1.generateEmbedding; } });
|
|
@@ -51,6 +52,8 @@ Object.defineProperty(exports, "querySemanticEdges", { enumerable: true, get: fu
|
|
|
51
52
|
Object.defineProperty(exports, "updateDecisionOutcome", { enumerable: true, get: function () { return db_manager_js_1.updateDecisionOutcome; } });
|
|
52
53
|
Object.defineProperty(exports, "getPreparedStmt", { enumerable: true, get: function () { return db_manager_js_1.getPreparedStmt; } });
|
|
53
54
|
Object.defineProperty(exports, "getDbPath", { enumerable: true, get: function () { return db_manager_js_1.getDbPath; } });
|
|
55
|
+
Object.defineProperty(exports, "fts5Search", { enumerable: true, get: function () { return db_manager_js_1.fts5Search; } });
|
|
56
|
+
Object.defineProperty(exports, "reindexEmbeddings", { enumerable: true, get: function () { return db_manager_js_1.reindexEmbeddings; } });
|
|
54
57
|
// Database adapter
|
|
55
58
|
var index_js_1 = require("./db-adapter/index.js");
|
|
56
59
|
Object.defineProperty(exports, "createAdapter", { enumerable: true, get: function () { return index_js_1.createAdapter; } });
|
|
@@ -70,6 +73,31 @@ Object.defineProperty(exports, "DEFAULT_DB_PATH", { enumerable: true, get: funct
|
|
|
70
73
|
// MAMA API
|
|
71
74
|
const mama_api_js_1 = __importDefault(require("./mama-api.js"));
|
|
72
75
|
exports.mama = mama_api_js_1.default;
|
|
76
|
+
// Memory V2
|
|
77
|
+
var types_js_1 = require("./memory/types.js");
|
|
78
|
+
Object.defineProperty(exports, "MEMORY_SCOPE_KINDS", { enumerable: true, get: function () { return types_js_1.MEMORY_SCOPE_KINDS; } });
|
|
79
|
+
Object.defineProperty(exports, "MEMORY_KINDS", { enumerable: true, get: function () { return types_js_1.MEMORY_KINDS; } });
|
|
80
|
+
Object.defineProperty(exports, "MEMORY_STATUSES", { enumerable: true, get: function () { return types_js_1.MEMORY_STATUSES; } });
|
|
81
|
+
Object.defineProperty(exports, "MEMORY_EDGE_TYPES", { enumerable: true, get: function () { return types_js_1.MEMORY_EDGE_TYPES; } });
|
|
82
|
+
Object.defineProperty(exports, "createEmptyRecallBundle", { enumerable: true, get: function () { return types_js_1.createEmptyRecallBundle; } });
|
|
83
|
+
var api_js_1 = require("./memory/api.js");
|
|
84
|
+
Object.defineProperty(exports, "saveMemory", { enumerable: true, get: function () { return api_js_1.saveMemory; } });
|
|
85
|
+
Object.defineProperty(exports, "recallMemory", { enumerable: true, get: function () { return api_js_1.recallMemory; } });
|
|
86
|
+
Object.defineProperty(exports, "buildProfile", { enumerable: true, get: function () { return api_js_1.buildProfile; } });
|
|
87
|
+
Object.defineProperty(exports, "ingestMemory", { enumerable: true, get: function () { return api_js_1.ingestMemory; } });
|
|
88
|
+
Object.defineProperty(exports, "evolveMemory", { enumerable: true, get: function () { return api_js_1.evolveMemory; } });
|
|
89
|
+
Object.defineProperty(exports, "buildMemoryBootstrap", { enumerable: true, get: function () { return api_js_1.buildMemoryBootstrap; } });
|
|
90
|
+
Object.defineProperty(exports, "createAuditAck", { enumerable: true, get: function () { return api_js_1.createAuditAck; } });
|
|
91
|
+
Object.defineProperty(exports, "recordMemoryAudit", { enumerable: true, get: function () { return api_js_1.recordMemoryAudit; } });
|
|
92
|
+
Object.defineProperty(exports, "ingestConversation", { enumerable: true, get: function () { return api_js_1.ingestConversation; } });
|
|
93
|
+
Object.defineProperty(exports, "setExtractionFn", { enumerable: true, get: function () { return api_js_1.setExtractionFn; } });
|
|
94
|
+
Object.defineProperty(exports, "upsertChannelSummary", { enumerable: true, get: function () { return api_js_1.upsertChannelSummary; } });
|
|
95
|
+
Object.defineProperty(exports, "getChannelSummary", { enumerable: true, get: function () { return api_js_1.getChannelSummary; } });
|
|
96
|
+
var extraction_prompt_js_1 = require("./memory/extraction-prompt.js");
|
|
97
|
+
Object.defineProperty(exports, "buildExtractionPrompt", { enumerable: true, get: function () { return extraction_prompt_js_1.buildExtractionPrompt; } });
|
|
98
|
+
Object.defineProperty(exports, "parseExtractionResponse", { enumerable: true, get: function () { return extraction_prompt_js_1.parseExtractionResponse; } });
|
|
99
|
+
var event_store_js_1 = require("./memory/event-store.js");
|
|
100
|
+
Object.defineProperty(exports, "listRecentMemoryEvents", { enumerable: true, get: function () { return event_store_js_1.listRecentMemoryEvents; } });
|
|
73
101
|
// Config loader
|
|
74
102
|
var config_loader_js_1 = require("./config-loader.js");
|
|
75
103
|
Object.defineProperty(exports, "loadConfig", { enumerable: true, get: function () { return config_loader_js_1.loadConfig; } });
|
package/dist/mama-api.d.ts
CHANGED
|
@@ -19,6 +19,9 @@
|
|
|
19
19
|
*/
|
|
20
20
|
import { DecisionRecord } from './db-manager.js';
|
|
21
21
|
import { SemanticEdges } from './decision-formatter.js';
|
|
22
|
+
import { saveMemory, recallMemory, buildProfile, ingestMemory, evolveMemory, buildMemoryBootstrap, createAuditAck, recordMemoryAudit, upsertChannelSummary, getChannelSummary } from './memory/api.js';
|
|
23
|
+
import { listOpenAuditFindings } from './memory/finding-store.js';
|
|
24
|
+
import { listRecentMemoryEvents } from './memory/event-store.js';
|
|
22
25
|
/**
|
|
23
26
|
* Parameters for mama.save()
|
|
24
27
|
*/
|
|
@@ -32,6 +35,13 @@ interface SaveParams {
|
|
|
32
35
|
failure_reason?: string | null;
|
|
33
36
|
limitation?: string | null;
|
|
34
37
|
trust_context?: Record<string, unknown> | null;
|
|
38
|
+
is_static?: number;
|
|
39
|
+
scopes?: Array<{
|
|
40
|
+
kind: 'global' | 'user' | 'channel' | 'project';
|
|
41
|
+
id: string;
|
|
42
|
+
}>;
|
|
43
|
+
/** ISO 8601 date string for when the event actually occurred (e.g. "2023-01-15") */
|
|
44
|
+
event_date?: string | null;
|
|
35
45
|
}
|
|
36
46
|
/**
|
|
37
47
|
* Similar decision result from search
|
|
@@ -43,6 +53,7 @@ interface SimilarDecision {
|
|
|
43
53
|
reasoning?: string;
|
|
44
54
|
similarity?: number;
|
|
45
55
|
created_at?: number | string;
|
|
56
|
+
event_date?: string | null;
|
|
46
57
|
}
|
|
47
58
|
/**
|
|
48
59
|
* Search result from mama.search()
|
|
@@ -394,7 +405,7 @@ export interface QualityReport {
|
|
|
394
405
|
* outcome: 'success'
|
|
395
406
|
* });
|
|
396
407
|
*/
|
|
397
|
-
declare function save({ topic, decision, reasoning, confidence, type, outcome, failure_reason, limitation, trust_context, }: SaveParams): Promise<SaveResult>;
|
|
408
|
+
declare function save({ topic, decision, reasoning, confidence, type, outcome, failure_reason, limitation, trust_context: _trust_context, is_static, scopes: inputScopes, event_date, }: SaveParams): Promise<SaveResult>;
|
|
398
409
|
/**
|
|
399
410
|
* Recall decisions by topic
|
|
400
411
|
*
|
|
@@ -485,6 +496,38 @@ interface UpdateOutcomeParams {
|
|
|
485
496
|
limitation?: string | null;
|
|
486
497
|
}
|
|
487
498
|
declare function updateOutcome(decisionId: string, { outcome, failure_reason, limitation }: UpdateOutcomeParams): Promise<void>;
|
|
499
|
+
/**
|
|
500
|
+
* Expand search results with graph context (Phase 1 - Graph-Enhanced Retrieval)
|
|
501
|
+
*
|
|
502
|
+
* For each candidate decision:
|
|
503
|
+
* 1. Add supersedes chain (evolution history)
|
|
504
|
+
* 2. Add semantic edges (refines, contradicts)
|
|
505
|
+
* 3. Deduplicate by ID
|
|
506
|
+
* 4. Re-rank by relevance (primary candidates ranked higher)
|
|
507
|
+
*
|
|
508
|
+
* @param {Array} candidates - Initial search results from vector/keyword search
|
|
509
|
+
* @returns {Promise<Array>} Graph-enhanced results with evolution context
|
|
510
|
+
*/
|
|
511
|
+
interface SearchCandidate {
|
|
512
|
+
id: string;
|
|
513
|
+
topic: string;
|
|
514
|
+
decision: string;
|
|
515
|
+
reasoning?: string | null;
|
|
516
|
+
confidence?: number;
|
|
517
|
+
similarity?: number;
|
|
518
|
+
created_at?: number | string;
|
|
519
|
+
graph_source?: string;
|
|
520
|
+
graph_rank?: number;
|
|
521
|
+
related_to?: string | null;
|
|
522
|
+
edge_reason?: string | null;
|
|
523
|
+
recency_score?: number;
|
|
524
|
+
recency_age_days?: number;
|
|
525
|
+
final_score?: number;
|
|
526
|
+
outcome?: string | null;
|
|
527
|
+
failure_reason?: string | null;
|
|
528
|
+
is_static?: number;
|
|
529
|
+
}
|
|
530
|
+
declare function expandWithGraph(candidates: SearchCandidate[]): Promise<SearchCandidate[]>;
|
|
488
531
|
/**
|
|
489
532
|
* Suggest relevant decisions based on user question
|
|
490
533
|
*
|
|
@@ -520,6 +563,11 @@ interface SuggestFunctionOptions {
|
|
|
520
563
|
recencyScale?: number;
|
|
521
564
|
recencyDecay?: number;
|
|
522
565
|
disableRecency?: boolean;
|
|
566
|
+
topicPrefix?: string;
|
|
567
|
+
scopes?: Array<{
|
|
568
|
+
kind: 'global' | 'user' | 'channel' | 'project';
|
|
569
|
+
id: string;
|
|
570
|
+
}>;
|
|
523
571
|
}
|
|
524
572
|
declare function suggest(userQuestion: string, options?: SuggestFunctionOptions): Promise<any>;
|
|
525
573
|
/**
|
|
@@ -536,6 +584,10 @@ declare function suggest(userQuestion: string, options?: SuggestFunctionOptions)
|
|
|
536
584
|
interface ListDecisionsOptions {
|
|
537
585
|
limit?: number;
|
|
538
586
|
format?: 'json' | 'markdown';
|
|
587
|
+
scopes?: Array<{
|
|
588
|
+
kind: 'global' | 'user' | 'channel' | 'project';
|
|
589
|
+
id: string;
|
|
590
|
+
}>;
|
|
539
591
|
}
|
|
540
592
|
declare function listDecisions(options?: ListDecisionsOptions): Promise<DecisionRecord[] | string>;
|
|
541
593
|
/**
|
|
@@ -978,9 +1030,21 @@ declare function generateQualityReport(options?: QualityReportOptions): string |
|
|
|
978
1030
|
declare const mama: {
|
|
979
1031
|
save: typeof save;
|
|
980
1032
|
suggest: typeof suggest;
|
|
1033
|
+
saveMemory: typeof saveMemory;
|
|
1034
|
+
recallMemory: typeof recallMemory;
|
|
981
1035
|
list: typeof listDecisions;
|
|
982
1036
|
listCheckpoints: typeof listCheckpoints;
|
|
983
1037
|
updateOutcome: typeof updateOutcome;
|
|
1038
|
+
buildProfile: typeof buildProfile;
|
|
1039
|
+
ingestMemory: typeof ingestMemory;
|
|
1040
|
+
evolveMemory: typeof evolveMemory;
|
|
1041
|
+
buildMemoryBootstrap: typeof buildMemoryBootstrap;
|
|
1042
|
+
createAuditAck: typeof createAuditAck;
|
|
1043
|
+
recordMemoryAudit: typeof recordMemoryAudit;
|
|
1044
|
+
upsertChannelSummary: typeof upsertChannelSummary;
|
|
1045
|
+
getChannelSummary: typeof getChannelSummary;
|
|
1046
|
+
listAuditFindings: typeof listOpenAuditFindings;
|
|
1047
|
+
listRecentMemoryEvents: typeof listRecentMemoryEvents;
|
|
984
1048
|
saveCheckpoint: typeof saveCheckpoint;
|
|
985
1049
|
loadCheckpoint: typeof loadCheckpoint;
|
|
986
1050
|
recall: typeof recall;
|
|
@@ -1003,7 +1067,8 @@ declare const mama: {
|
|
|
1003
1067
|
verifyBackupExists: typeof verifyBackupExists;
|
|
1004
1068
|
deleteAutoLinks: typeof deleteAutoLinks;
|
|
1005
1069
|
validateCleanupResult: typeof validateCleanupResult;
|
|
1070
|
+
expandWithGraph: typeof expandWithGraph;
|
|
1006
1071
|
};
|
|
1007
|
-
export { save, suggest, listDecisions as list, listCheckpoints, updateOutcome, saveCheckpoint, loadCheckpoint, recall, proposeLink, approveLink, rejectLink, getPendingLinks, deprecateAutoLinks, calculateCoverage, calculateQuality, generateQualityReport, logRestartAttempt, calculateRestartSuccessRate, calculateRestartLatency, getRestartMetrics, scanAutoLinks, createLinkBackup, generatePreCleanupReport, restoreLinkBackup, verifyBackupExists, deleteAutoLinks, validateCleanupResult, };
|
|
1072
|
+
export { save, suggest, saveMemory, recallMemory, listDecisions as list, listCheckpoints, updateOutcome, buildProfile, ingestMemory, evolveMemory, buildMemoryBootstrap, createAuditAck, recordMemoryAudit, upsertChannelSummary, getChannelSummary, listOpenAuditFindings, listRecentMemoryEvents, saveCheckpoint, loadCheckpoint, recall, proposeLink, approveLink, rejectLink, getPendingLinks, deprecateAutoLinks, calculateCoverage, calculateQuality, generateQualityReport, logRestartAttempt, calculateRestartSuccessRate, calculateRestartLatency, getRestartMetrics, scanAutoLinks, createLinkBackup, generatePreCleanupReport, restoreLinkBackup, verifyBackupExists, deleteAutoLinks, validateCleanupResult, };
|
|
1008
1073
|
export default mama;
|
|
1009
1074
|
//# sourceMappingURL=mama-api.d.ts.map
|