memctx 1.0.20 → 1.1.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.
@@ -19,10 +19,23 @@ export interface GraphEdge {
19
19
  createdAt: number;
20
20
  }
21
21
  export declare function insertGraphNodes(projectId: string, nodes: Array<Omit<GraphNode, 'projectId' | 'createdAt'>>): void;
22
- export declare function insertGraphEdges(projectId: string, edges: Array<Omit<GraphEdge, 'projectId' | 'createdAt'>>): void;
22
+ /**
23
+ * Generate content-hash edge ID for deduplication across sessions
24
+ */
25
+ export declare function generateEdgeId(projectId: string, sourceId: string, targetId: string, relationship: string): string;
26
+ export declare function insertGraphEdges(projectId: string, edges: Array<Omit<GraphEdge, 'projectId' | 'createdAt' | 'id'>>): void;
23
27
  export declare function getGraphForProject(projectId: string): {
24
28
  nodes: GraphNode[];
25
29
  edges: GraphEdge[];
26
30
  };
27
31
  export declare function searchGraphNodes(projectId: string, query: string): GraphNode[];
28
32
  export declare function deleteGraphForProject(projectId: string): void;
33
+ /**
34
+ * Remap all edges pointing to oldNodeId to point to newNodeId instead
35
+ * Handles UNIQUE constraint conflicts by deleting duplicate edges before remapping
36
+ */
37
+ export declare function remapNodeEdges(oldNodeId: string, newNodeId: string): void;
38
+ /**
39
+ * Delete a graph node by ID
40
+ */
41
+ export declare function deleteGraphNode(nodeId: string): void;
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.insertGraphNodes = insertGraphNodes;
4
+ exports.generateEdgeId = generateEdgeId;
4
5
  exports.insertGraphEdges = insertGraphEdges;
5
6
  exports.getGraphForProject = getGraphForProject;
6
7
  exports.searchGraphNodes = searchGraphNodes;
7
8
  exports.deleteGraphForProject = deleteGraphForProject;
9
+ exports.remapNodeEdges = remapNodeEdges;
10
+ exports.deleteGraphNode = deleteGraphNode;
8
11
  const client_1 = require("./client");
9
12
  function insertGraphNodes(projectId, nodes) {
10
13
  const db = (0, client_1.getDB)();
@@ -25,23 +28,28 @@ function insertGraphNodes(projectId, nodes) {
25
28
  });
26
29
  insertMany(nodes);
27
30
  }
31
+ /**
32
+ * Generate content-hash edge ID for deduplication across sessions
33
+ */
34
+ function generateEdgeId(projectId, sourceId, targetId, relationship) {
35
+ return `${projectId}|${sourceId}|${relationship}|${targetId}`;
36
+ }
28
37
  function insertGraphEdges(projectId, edges) {
29
38
  const db = (0, client_1.getDB)();
30
39
  const now = Date.now();
40
+ // Use UNIQUE constraint conflict to increment weight on duplicate edges
31
41
  const stmt = db.prepare(`
32
42
  INSERT INTO graph_edges (id, projectId, sourceId, targetId, relationship, confidence, weight, metadata, createdAt)
33
43
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
34
- ON CONFLICT(id) DO UPDATE SET
35
- sourceId = excluded.sourceId,
36
- targetId = excluded.targetId,
37
- relationship = excluded.relationship,
44
+ ON CONFLICT(projectId, sourceId, targetId, relationship) DO UPDATE SET
38
45
  confidence = excluded.confidence,
39
- weight = excluded.weight,
46
+ weight = weight + 1,
40
47
  metadata = excluded.metadata
41
48
  `);
42
49
  const insertMany = db.transaction((edges) => {
43
50
  for (const edge of edges) {
44
- stmt.run(edge.id, projectId, edge.sourceId, edge.targetId, edge.relationship, edge.confidence, edge.weight || 1.0, edge.metadata || null, now);
51
+ const edgeId = generateEdgeId(projectId, edge.sourceId, edge.targetId, edge.relationship);
52
+ stmt.run(edgeId, projectId, edge.sourceId, edge.targetId, edge.relationship, edge.confidence, edge.weight || 1.0, edge.metadata || null, now);
45
53
  }
46
54
  });
47
55
  insertMany(edges);
@@ -74,4 +82,45 @@ function deleteGraphForProject(projectId) {
74
82
  });
75
83
  deleteTransaction();
76
84
  }
85
+ /**
86
+ * Remap all edges pointing to oldNodeId to point to newNodeId instead
87
+ * Handles UNIQUE constraint conflicts by deleting duplicate edges before remapping
88
+ */
89
+ function remapNodeEdges(oldNodeId, newNodeId) {
90
+ const db = (0, client_1.getDB)();
91
+ const remapTransaction = db.transaction(() => {
92
+ // First, delete any edges that would create duplicates after remapping
93
+ // (edges where both source and target would match an existing edge)
94
+ db.prepare(`
95
+ DELETE FROM graph_edges
96
+ WHERE id IN (
97
+ SELECT e1.id FROM graph_edges e1
98
+ INNER JOIN graph_edges e2
99
+ ON e1.projectId = e2.projectId
100
+ AND e1.relationship = e2.relationship
101
+ AND (
102
+ (e1.sourceId = ? AND e2.sourceId = ?) OR
103
+ (e1.targetId = ? AND e2.targetId = ?)
104
+ )
105
+ AND (
106
+ (e1.targetId = e2.targetId AND e1.sourceId = ?) OR
107
+ (e1.sourceId = e2.sourceId AND e1.targetId = ?)
108
+ )
109
+ WHERE e1.id != e2.id
110
+ )
111
+ `).run(oldNodeId, newNodeId, oldNodeId, newNodeId, oldNodeId, oldNodeId);
112
+ // Now remap edges where oldNodeId is the source
113
+ db.prepare('UPDATE graph_edges SET sourceId = ? WHERE sourceId = ?').run(newNodeId, oldNodeId);
114
+ // Remap edges where oldNodeId is the target
115
+ db.prepare('UPDATE graph_edges SET targetId = ? WHERE targetId = ?').run(newNodeId, oldNodeId);
116
+ });
117
+ remapTransaction();
118
+ }
119
+ /**
120
+ * Delete a graph node by ID
121
+ */
122
+ function deleteGraphNode(nodeId) {
123
+ const db = (0, client_1.getDB)();
124
+ db.prepare('DELETE FROM graph_nodes WHERE id = ?').run(nodeId);
125
+ }
77
126
  //# sourceMappingURL=graph-queries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph-queries.js","sourceRoot":"","sources":["../../../src/db/graph-queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-queries.js","sourceRoot":"","sources":["../../../src/db/graph-queries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ -- Migration 010: Normalize graph edges with content-hash IDs and unique constraint
2
+ -- Strategy: Clean slate - wipe existing graph data, recreate with new schema
3
+
4
+ -- Drop existing graph tables (if they exist)
5
+ DROP TABLE IF EXISTS graph_edges;
6
+ DROP TABLE IF EXISTS graph_nodes;
7
+
8
+ -- Recreate graph_nodes with same schema
9
+ CREATE TABLE graph_nodes (
10
+ id TEXT PRIMARY KEY,
11
+ projectId TEXT NOT NULL,
12
+ label TEXT NOT NULL,
13
+ type TEXT NOT NULL,
14
+ confidence TEXT NOT NULL,
15
+ metadata TEXT,
16
+ createdAt INTEGER NOT NULL
17
+ );
18
+
19
+ -- Recreate graph_edges with new unique constraint
20
+ CREATE TABLE graph_edges (
21
+ id TEXT PRIMARY KEY,
22
+ projectId TEXT NOT NULL,
23
+ sourceId TEXT NOT NULL,
24
+ targetId TEXT NOT NULL,
25
+ relationship TEXT NOT NULL,
26
+ confidence TEXT NOT NULL,
27
+ weight REAL NOT NULL DEFAULT 1.0,
28
+ metadata TEXT,
29
+ createdAt INTEGER NOT NULL,
30
+ UNIQUE(projectId, sourceId, targetId, relationship)
31
+ );
32
+
33
+ -- Indexes for performance
34
+ CREATE INDEX idx_graph_nodes_project ON graph_nodes(projectId);
35
+ CREATE INDEX idx_graph_nodes_type ON graph_nodes(projectId, type);
36
+ CREATE INDEX idx_graph_edges_project ON graph_edges(projectId);
37
+ CREATE INDEX idx_graph_edges_source ON graph_edges(sourceId);
38
+ CREATE INDEX idx_graph_edges_target ON graph_edges(targetId);
@@ -0,0 +1,8 @@
1
+ -- Migration 011: Add session_id to graph tables for provenance tracking
2
+
3
+ ALTER TABLE graph_nodes ADD COLUMN session_id TEXT;
4
+ ALTER TABLE graph_edges ADD COLUMN session_id TEXT;
5
+
6
+ -- Index for querying by session
7
+ CREATE INDEX idx_graph_nodes_session ON graph_nodes(session_id);
8
+ CREATE INDEX idx_graph_edges_session ON graph_edges(session_id);
@@ -103,4 +103,6 @@ export declare const queries: {
103
103
  updateSessionNotes(sessionId: string, notes: string): void;
104
104
  getStaleSessions(staleThreshold: number): any[];
105
105
  updateSessionActivity(sessionId: string, timestamp: number): void;
106
+ getUnsummarizedSessions(projectId?: string): any[];
107
+ getSessionObservations(sessionId: string): any[];
106
108
  };
@@ -454,7 +454,6 @@ exports.queries = {
454
454
  SELECT * FROM sessions
455
455
  WHERE (status = 'active' OR status IS NULL)
456
456
  AND last_activity < ?
457
- AND transcript_path IS NOT NULL
458
457
  `, staleThreshold);
459
458
  },
460
459
  updateSessionActivity(sessionId, timestamp) {
@@ -463,6 +462,30 @@ exports.queries = {
463
462
  SET last_activity = ?
464
463
  WHERE id = ?
465
464
  `, timestamp, sessionId);
465
+ },
466
+ getUnsummarizedSessions(projectId) {
467
+ if (projectId) {
468
+ return all(`
469
+ SELECT * FROM sessions
470
+ WHERE status = 'completed'
471
+ AND summary_title IS NULL
472
+ AND transcript_path IS NOT NULL
473
+ AND project_id = ?
474
+ `, projectId);
475
+ }
476
+ return all(`
477
+ SELECT * FROM sessions
478
+ WHERE status = 'completed'
479
+ AND summary_title IS NULL
480
+ AND transcript_path IS NOT NULL
481
+ `);
482
+ },
483
+ getSessionObservations(sessionId) {
484
+ return all(`
485
+ SELECT * FROM observations
486
+ WHERE session_id = ?
487
+ ORDER BY created_at ASC
488
+ `, sessionId);
466
489
  }
467
490
  };
468
491
  //# sourceMappingURL=queries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/db/queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/db/queries.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -32,6 +32,8 @@ const session_timeout_1 = require("./services/session-timeout");
32
32
  const rate_limit_1 = require("./middleware/rate-limit");
33
33
  const stale_session_worker_1 = require("./services/stale-session-worker");
34
34
  const logger_1 = require("./services/logger");
35
+ const queries_1 = require("./db/queries");
36
+ const summarization_queue_1 = require("./services/summarization-queue");
35
37
  process.on('uncaughtException', (err) => {
36
38
  console.error('Uncaught exception:', err);
37
39
  });
@@ -80,7 +82,11 @@ async function main() {
80
82
  if (err) {
81
83
  console.error('Error serving index.html:', err);
82
84
  console.error('Attempted path:', indexPath);
83
- res.status(500).send('Failed to load application');
85
+ console.error('Request path:', req.path);
86
+ // Don't send error if headers already sent
87
+ if (!res.headersSent) {
88
+ res.status(500).send('Failed to load application');
89
+ }
84
90
  }
85
91
  });
86
92
  }
@@ -104,6 +110,28 @@ async function main() {
104
110
  // Start stale session worker
105
111
  stale_session_worker_1.staleSessionWorker.start();
106
112
  logger_1.logger.info('Worker', 'Stale session worker started');
113
+ // Startup recovery: queue unsummarized sessions
114
+ try {
115
+ logger_1.logger.info('Startup', 'Running recovery scan for unsummarized sessions');
116
+ const unsummarized = queries_1.queries.getUnsummarizedSessions();
117
+ if (unsummarized.length > 0) {
118
+ logger_1.logger.info('Startup', `Found ${unsummarized.length} unsummarized sessions, queuing for summarization`);
119
+ for (const session of unsummarized) {
120
+ summarization_queue_1.summarizationQueue.enqueue({
121
+ sessionId: session.id,
122
+ transcriptPath: session.transcript_path,
123
+ projectId: session.project_id,
124
+ priority: 'low'
125
+ });
126
+ }
127
+ }
128
+ else {
129
+ logger_1.logger.info('Startup', 'No unsummarized sessions found');
130
+ }
131
+ }
132
+ catch (err) {
133
+ logger_1.logger.error('Startup', 'Recovery scan failed', { error: err });
134
+ }
107
135
  server.listen(config_1.CONFIG.port, () => {
108
136
  logger_1.logger.info('Server', `ClaudeContext running at http://localhost:${config_1.CONFIG.port}`);
109
137
  logger_1.logger.info('Server', `API Key: ${config_1.CONFIG.apiKey ? 'configured' : 'NOT SET (summaries disabled)'}`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Consolidate graph nodes by merging similar entities
3
+ *
4
+ * Strategy:
5
+ * 1. Group nodes by type (only dedup within same type)
6
+ * 2. Within each type, find similar pairs using Levenshtein (0.80 threshold)
7
+ * 3. For matched pairs: keep node with more edges, remap edges from duplicate, delete duplicate
8
+ */
9
+ export declare function consolidateGraphNodes(projectId: string): Promise<void>;
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.consolidateGraphNodes = consolidateGraphNodes;
4
+ const graph_queries_1 = require("../db/graph-queries");
5
+ const logger_1 = require("./logger");
6
+ /**
7
+ * Levenshtein distance algorithm (reused from fuzzy-task-matcher)
8
+ */
9
+ function levenshteinDistance(a, b) {
10
+ const matrix = [];
11
+ for (let i = 0; i <= b.length; i++) {
12
+ matrix[i] = [i];
13
+ }
14
+ for (let j = 0; j <= a.length; j++) {
15
+ matrix[0][j] = j;
16
+ }
17
+ for (let i = 1; i <= b.length; i++) {
18
+ for (let j = 1; j <= a.length; j++) {
19
+ if (b.charAt(i - 1) === a.charAt(j - 1)) {
20
+ matrix[i][j] = matrix[i - 1][j - 1];
21
+ }
22
+ else {
23
+ matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution
24
+ matrix[i][j - 1] + 1, // insertion
25
+ matrix[i - 1][j] + 1 // deletion
26
+ );
27
+ }
28
+ }
29
+ }
30
+ return matrix[b.length][a.length];
31
+ }
32
+ /**
33
+ * Calculate similarity between two strings (0-1)
34
+ */
35
+ function similarity(a, b) {
36
+ const longer = a.length > b.length ? a : b;
37
+ const shorter = a.length > b.length ? b : a;
38
+ if (longer.length === 0)
39
+ return 1.0;
40
+ const distance = levenshteinDistance(longer.toLowerCase(), shorter.toLowerCase());
41
+ return (longer.length - distance) / longer.length;
42
+ }
43
+ /**
44
+ * Consolidate graph nodes by merging similar entities
45
+ *
46
+ * Strategy:
47
+ * 1. Group nodes by type (only dedup within same type)
48
+ * 2. Within each type, find similar pairs using Levenshtein (0.80 threshold)
49
+ * 3. For matched pairs: keep node with more edges, remap edges from duplicate, delete duplicate
50
+ */
51
+ async function consolidateGraphNodes(projectId) {
52
+ try {
53
+ logger_1.logger.info('GraphConsolidator', `Starting consolidation for project ${projectId}`);
54
+ const { nodes, edges } = (0, graph_queries_1.getGraphForProject)(projectId);
55
+ if (nodes.length === 0) {
56
+ logger_1.logger.info('GraphConsolidator', 'No nodes to consolidate');
57
+ return;
58
+ }
59
+ // Group nodes by type
60
+ const nodesByType = new Map();
61
+ for (const node of nodes) {
62
+ if (!nodesByType.has(node.type)) {
63
+ nodesByType.set(node.type, []);
64
+ }
65
+ nodesByType.get(node.type).push(node);
66
+ }
67
+ let totalMerged = 0;
68
+ // Process each type group
69
+ for (const [type, typeNodes] of nodesByType.entries()) {
70
+ if (typeNodes.length < 2)
71
+ continue; // Need at least 2 nodes to find duplicates
72
+ logger_1.logger.info('GraphConsolidator', `Checking ${typeNodes.length} nodes of type '${type}'`);
73
+ const processed = new Set();
74
+ for (let i = 0; i < typeNodes.length; i++) {
75
+ const nodeA = typeNodes[i];
76
+ if (processed.has(nodeA.id))
77
+ continue;
78
+ for (let j = i + 1; j < typeNodes.length; j++) {
79
+ const nodeB = typeNodes[j];
80
+ if (processed.has(nodeB.id))
81
+ continue;
82
+ // Calculate similarity between labels
83
+ const sim = similarity(nodeA.label, nodeB.label);
84
+ if (sim >= 0.80) {
85
+ // Found a duplicate pair - merge them
86
+ logger_1.logger.info('GraphConsolidator', `Found similar nodes (${sim.toFixed(2)}): "${nodeA.label}" vs "${nodeB.label}"`);
87
+ // Count edges for each node to decide which to keep
88
+ const nodeAEdgeCount = edges.filter(e => e.sourceId === nodeA.id || e.targetId === nodeA.id).length;
89
+ const nodeBEdgeCount = edges.filter(e => e.sourceId === nodeB.id || e.targetId === nodeB.id).length;
90
+ let keepNode, discardNode;
91
+ if (nodeAEdgeCount >= nodeBEdgeCount) {
92
+ keepNode = nodeA;
93
+ discardNode = nodeB;
94
+ }
95
+ else {
96
+ keepNode = nodeB;
97
+ discardNode = nodeA;
98
+ }
99
+ logger_1.logger.info('GraphConsolidator', `Merging "${discardNode.label}" into "${keepNode.label}" (${nodeAEdgeCount} vs ${nodeBEdgeCount} edges)`);
100
+ // Remap all edges pointing to discardNode to point to keepNode
101
+ (0, graph_queries_1.remapNodeEdges)(discardNode.id, keepNode.id);
102
+ // Delete the duplicate node
103
+ (0, graph_queries_1.deleteGraphNode)(discardNode.id);
104
+ processed.add(discardNode.id);
105
+ totalMerged++;
106
+ }
107
+ }
108
+ processed.add(nodeA.id);
109
+ }
110
+ }
111
+ logger_1.logger.info('GraphConsolidator', `Consolidation complete for project ${projectId}`, { mergedNodes: totalMerged });
112
+ }
113
+ catch (err) {
114
+ logger_1.logger.error('GraphConsolidator', `Consolidation failed for project ${projectId}`, { error: err });
115
+ // Don't throw - consolidation failure shouldn't break summarization
116
+ }
117
+ }
118
+ //# sourceMappingURL=graph-consolidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-consolidator.js","sourceRoot":"","sources":["../../../src/services/graph-consolidator.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,9 @@ const broadcast_1 = require("../ws/broadcast");
14
14
  const fuzzy_task_matcher_1 = require("./fuzzy-task-matcher");
15
15
  const logger_1 = require("./logger");
16
16
  const metrics_1 = require("./metrics");
17
- const graph_extractor_1 = require("./graph-extractor");
18
17
  const graph_queries_1 = require("../db/graph-queries");
18
+ const node_id_1 = require("../utils/node-id");
19
+ const graph_consolidator_1 = require("./graph-consolidator");
19
20
  function compactTranscriptSmart(turns) {
20
21
  // Take last 80 turns for better context
21
22
  const recentTurns = turns.slice(-80);
@@ -60,6 +61,29 @@ function getClient() {
60
61
  baseURL: config_1.CONFIG.apiBaseUrl
61
62
  });
62
63
  }
64
+ /**
65
+ * Build a synthetic transcript from observations when the real transcript is missing
66
+ */
67
+ function buildTranscriptFromObservations(observations) {
68
+ const lines = [];
69
+ for (const obs of observations) {
70
+ if (obs.event_type === 'user_message') {
71
+ lines.push(`USER: ${obs.content}`);
72
+ }
73
+ else if (obs.event_type === 'assistant_message') {
74
+ lines.push(`CLAUDE: ${obs.content}`);
75
+ }
76
+ else if (obs.event_type === 'tool_call') {
77
+ const toolName = obs.tool_name || 'unknown';
78
+ const filePath = obs.file_path ? ` file: ${obs.file_path}` : '';
79
+ lines.push(`TOOL(${toolName}):${filePath}`);
80
+ }
81
+ else if (obs.event_type === 'decision') {
82
+ lines.push(`DECISION: ${obs.content}`);
83
+ }
84
+ }
85
+ return lines.join('\n');
86
+ }
63
87
  async function summarizeSession(sessionId, transcriptPath, projectId) {
64
88
  if (!config_1.CONFIG.apiKey || config_1.CONFIG.disableSummaries) {
65
89
  console.log('No API key or summaries disabled — skipping AI summary for session', sessionId);
@@ -68,10 +92,22 @@ async function summarizeSession(sessionId, transcriptPath, projectId) {
68
92
  try {
69
93
  const startTime = Date.now();
70
94
  const turns = await (0, transcript_reader_1.readTranscript)(transcriptPath);
71
- if (turns.length === 0)
72
- return;
73
- // Smart transcript compaction
74
- const compactTranscript = compactTranscriptSmart(turns);
95
+ let compactTranscript;
96
+ if (turns.length === 0) {
97
+ // Transcript missing or empty - try to reconstruct from observations
98
+ logger_1.logger.warn('Summarizer', `Transcript empty for session ${sessionId}, attempting observation fallback`);
99
+ const observations = queries_1.queries.getSessionObservations(sessionId);
100
+ if (observations.length === 0) {
101
+ logger_1.logger.warn('Summarizer', `No observations found for session ${sessionId}, cannot summarize`);
102
+ return;
103
+ }
104
+ compactTranscript = buildTranscriptFromObservations(observations);
105
+ logger_1.logger.info('Summarizer', `Using ${observations.length} observations as fallback transcript for session ${sessionId}`);
106
+ }
107
+ else {
108
+ // Smart transcript compaction
109
+ compactTranscript = compactTranscriptSmart(turns);
110
+ }
75
111
  const client = getClient();
76
112
  logger_1.logger.info('Summarizer', `Starting summarization for session ${sessionId}`, {
77
113
  model: config_1.CONFIG.summaryModel,
@@ -81,13 +117,14 @@ async function summarizeSession(sessionId, transcriptPath, projectId) {
81
117
  model: config_1.CONFIG.summaryModel,
82
118
  max_tokens: config_1.CONFIG.summaryMaxTokens,
83
119
  stream: false,
84
- system: `You are a memory extraction system. Analyze the session and extract:
120
+ system: `You are a unified memory and knowledge graph extraction system. Analyze the session and extract:
85
121
  1. Session summary (what was done, mood, complexity, blockers, resolutions, key insight)
86
122
  2. User preferences discovered (coding style, workflow, communication)
87
123
  3. Domain knowledge learned (technologies, patterns, gotchas)
88
124
  4. Problem-solving patterns used
89
125
  5. Pending tasks identified
90
126
  6. People/teams mentioned
127
+ 7. Knowledge graph (files, functions, classes, concepts, problems, decisions and their relationships)
91
128
 
92
129
  Always respond with ONLY valid JSON matching the exact schema provided. No preamble, no markdown, no explanation.`,
93
130
  messages: [{
@@ -116,7 +153,18 @@ Return this exact JSON schema:
116
153
  "knowledge": [{"category": "technology", "topic": "9router", "content": "Returns OpenAI format", "confidence": 0.8}],
117
154
  "patterns": [{"type": "debugging", "title": "Check logs first", "description": "Always check logs before diving into code"}],
118
155
  "tasks": [{"title": "Fix bug", "description": "Details", "priority": "high", "status": "pending"}],
119
- "contacts": [{"name": "John", "type": "person", "role": "engineer", "context": "discussed API"}]
156
+ "contacts": [{"name": "John", "type": "person", "role": "engineer", "context": "discussed API"}],
157
+ "graph": {
158
+ "nodes": [
159
+ {"id": "file:src/index.ts", "label": "src/index.ts", "type": "file", "confidence": "EXTRACTED"},
160
+ {"id": "function:getUserById", "label": "getUserById", "type": "function", "confidence": "EXTRACTED"},
161
+ {"id": "concept:authentication", "label": "Authentication Flow", "type": "concept", "confidence": "INFERRED"}
162
+ ],
163
+ "edges": [
164
+ {"sourceId": "file:src/index.ts", "targetId": "function:getUserById", "relationship": "calls", "confidence": "EXTRACTED"},
165
+ {"sourceId": "function:getUserById", "targetId": "concept:authentication", "relationship": "implements", "confidence": "INFERRED"}
166
+ ]
167
+ }
120
168
  }
121
169
 
122
170
  Rules:
@@ -131,7 +179,18 @@ Rules:
131
179
  - blockers: things that prevented progress (empty array if none)
132
180
  - resolved: problems that were fixed (empty array if none)
133
181
  - key_insight: most valuable takeaway (empty string if none)
134
- - If nothing significant happened, use status "in_progress"`
182
+ - If nothing significant happened, use status "in_progress"
183
+
184
+ Graph extraction rules:
185
+ - Node types: file, function, class, concept, problem, decision
186
+ - Node IDs MUST follow format "type:identifier" (e.g., "file:src/auth.ts", "concept:jwt_tokens")
187
+ - For files: use relative paths from project root, normalize (no ./ prefix)
188
+ - For concepts/problems/decisions: use lowercase with underscores
189
+ - For functions/classes: preserve original case
190
+ - Relationship types: imports, calls, implements, solves, related_to
191
+ - Confidence: EXTRACTED (explicitly mentioned), INFERRED (implied), AMBIGUOUS (unclear)
192
+ - Only include nodes/edges that are actually relevant to the session
193
+ - Empty graph object if no code structure was discussed`
135
194
  }]
136
195
  });
137
196
  console.log(`[Summarizer] Response received:`, JSON.stringify(response, null, 2));
@@ -218,34 +277,47 @@ Rules:
218
277
  metadata: '{}'
219
278
  });
220
279
  }
221
- // --- AUTO-EXTRACT KNOWLEDGE GRAPH ---
222
- try {
223
- logger_1.logger.info('Summarizer', `Starting graph extraction for session ${sessionId}`);
224
- const extractor = new graph_extractor_1.GraphExtractor(config_1.CONFIG.apiKey, config_1.CONFIG.apiBaseUrl, config_1.CONFIG.summaryModel);
225
- const graphResult = await extractor.extractFromTranscript(sessionId, compactTranscript);
226
- if (graphResult.nodes.length > 0) {
227
- const nodesForDb = graphResult.nodes.map(node => ({
228
- ...node,
229
- metadata: node.metadata ? JSON.stringify(node.metadata) : null,
230
- }));
231
- (0, graph_queries_1.insertGraphNodes)(projectId, nodesForDb);
280
+ // --- UNIFIED GRAPH EXTRACTION (from same LLM response) ---
281
+ if (summary.graph && (summary.graph.nodes?.length > 0 || summary.graph.edges?.length > 0)) {
282
+ try {
283
+ logger_1.logger.info('Summarizer', `Processing unified graph extraction for session ${sessionId}`);
284
+ // Normalize node IDs for consistent deduplication
285
+ const normalizedNodes = summary.graph.nodes.map(node => {
286
+ const normalizedId = (0, node_id_1.normalizeNodeId)(node.type, node.label);
287
+ return {
288
+ id: normalizedId,
289
+ label: node.label,
290
+ type: node.type,
291
+ confidence: node.confidence,
292
+ metadata: node.metadata ? JSON.stringify(node.metadata) : null
293
+ };
294
+ });
295
+ if (normalizedNodes.length > 0) {
296
+ (0, graph_queries_1.insertGraphNodes)(projectId, normalizedNodes);
297
+ }
298
+ // Edges use content-hash IDs (generated in insertGraphEdges)
299
+ if (summary.graph.edges.length > 0) {
300
+ const edgesForDb = summary.graph.edges.map(edge => ({
301
+ sourceId: edge.sourceId,
302
+ targetId: edge.targetId,
303
+ relationship: edge.relationship,
304
+ confidence: edge.confidence,
305
+ weight: edge.weight || 1.0,
306
+ metadata: edge.metadata ? JSON.stringify(edge.metadata) : null
307
+ }));
308
+ (0, graph_queries_1.insertGraphEdges)(projectId, edgesForDb);
309
+ }
310
+ logger_1.logger.info('Summarizer', `Unified graph updated for session ${sessionId}`, {
311
+ nodesAdded: normalizedNodes.length,
312
+ edgesAdded: summary.graph.edges.length
313
+ });
314
+ // Consolidate similar nodes after extraction
315
+ await (0, graph_consolidator_1.consolidateGraphNodes)(projectId);
232
316
  }
233
- if (graphResult.edges.length > 0) {
234
- const edgesForDb = graphResult.edges.map(edge => ({
235
- ...edge,
236
- weight: edge.weight || 1.0,
237
- metadata: edge.metadata ? JSON.stringify(edge.metadata) : null,
238
- }));
239
- (0, graph_queries_1.insertGraphEdges)(projectId, edgesForDb);
317
+ catch (graphErr) {
318
+ logger_1.logger.error('Summarizer', `Unified graph processing failed for session ${sessionId}`, { error: graphErr });
319
+ // Don't fail the whole summarization just because graph failed
240
320
  }
241
- logger_1.logger.info('Summarizer', `Graph updated for session ${sessionId}`, {
242
- nodesAdded: graphResult.nodes.length,
243
- edgesAdded: graphResult.edges.length
244
- });
245
- }
246
- catch (graphErr) {
247
- logger_1.logger.error('Summarizer', `Graph extraction failed for session ${sessionId}`, { error: graphErr });
248
- // Don't fail the whole summarization just because graph failed
249
321
  }
250
322
  await (0, claude_md_updater_1.updateClaudeMd)(projectId, sessionId, summary);
251
323
  (0, broadcast_1.broadcast)({ type: 'summary_ready', session_id: sessionId, title: summary.title });
@@ -1 +1 @@
1
- {"version":3,"file":"summarizer.js","sourceRoot":"","sources":["../../../src/services/summarizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"summarizer.js","sourceRoot":"","sources":["../../../src/services/summarizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Normalizes a node ID to a canonical format for consistent deduplication.
3
+ *
4
+ * Rules:
5
+ * - Files: normalize path (strip ./, leading /, resolve .., lowercase)
6
+ * - Concepts/problems/decisions: lowercase, spaces→underscores, strip punctuation
7
+ * - Functions/classes: preserve case, strip whitespace
8
+ */
9
+ export declare function normalizeNodeId(type: string, label: string): string;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.normalizeNodeId = normalizeNodeId;
7
+ const path_1 = __importDefault(require("path"));
8
+ /**
9
+ * Normalizes a node ID to a canonical format for consistent deduplication.
10
+ *
11
+ * Rules:
12
+ * - Files: normalize path (strip ./, leading /, resolve .., lowercase)
13
+ * - Concepts/problems/decisions: lowercase, spaces→underscores, strip punctuation
14
+ * - Functions/classes: preserve case, strip whitespace
15
+ */
16
+ function normalizeNodeId(type, label) {
17
+ const normalizedType = type.toLowerCase();
18
+ switch (normalizedType) {
19
+ case 'file':
20
+ return `file:${normalizeFilePath(label)}`;
21
+ case 'concept':
22
+ case 'problem':
23
+ case 'decision':
24
+ return `${normalizedType}:${normalizeConceptLabel(label)}`;
25
+ case 'function':
26
+ case 'class':
27
+ return `${normalizedType}:${normalizeFunctionLabel(label)}`;
28
+ default:
29
+ // Unknown type - use concept normalization as fallback
30
+ return `${normalizedType}:${normalizeConceptLabel(label)}`;
31
+ }
32
+ }
33
+ /**
34
+ * Normalize file paths to canonical form
35
+ */
36
+ function normalizeFilePath(filePath) {
37
+ let normalized = filePath.trim();
38
+ // Strip leading ./
39
+ if (normalized.startsWith('./')) {
40
+ normalized = normalized.slice(2);
41
+ }
42
+ // Strip leading /
43
+ if (normalized.startsWith('/')) {
44
+ normalized = normalized.slice(1);
45
+ }
46
+ // Normalize path separators and resolve .. segments
47
+ normalized = path_1.default.normalize(normalized);
48
+ // Convert to lowercase for case-insensitive matching
49
+ normalized = normalized.toLowerCase();
50
+ // Replace backslashes with forward slashes (Windows compatibility)
51
+ normalized = normalized.replace(/\\/g, '/');
52
+ return normalized;
53
+ }
54
+ /**
55
+ * Normalize concept/problem/decision labels
56
+ */
57
+ function normalizeConceptLabel(label) {
58
+ return label
59
+ .toLowerCase()
60
+ .trim()
61
+ // Replace spaces and hyphens with underscores
62
+ .replace(/[\s-]+/g, '_')
63
+ // Strip punctuation except underscores
64
+ .replace(/[^\w_]/g, '')
65
+ // Collapse multiple underscores
66
+ .replace(/_+/g, '_')
67
+ // Strip leading/trailing underscores
68
+ .replace(/^_+|_+$/g, '');
69
+ }
70
+ /**
71
+ * Normalize function/class labels (preserve case, strip whitespace)
72
+ */
73
+ function normalizeFunctionLabel(label) {
74
+ return label
75
+ .trim()
76
+ // Collapse multiple spaces
77
+ .replace(/\s+/g, ' ')
78
+ // Remove special characters except alphanumeric, underscore, and space
79
+ .replace(/[^\w\s]/g, '');
80
+ }
81
+ //# sourceMappingURL=node-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-id.js","sourceRoot":"","sources":["../../../src/utils/node-id.ts"],"names":[],"mappings":";;;;;AAUA,0CAoBC;AA9BD,gDAAuB;AAEvB;;;;;;;GAOG;AACH,SAAgB,eAAe,CAAC,IAAY,EAAE,KAAa;IACzD,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;IAEzC,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,QAAQ,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAA;QAE3C,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,UAAU;YACb,OAAO,GAAG,cAAc,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAA;QAE5D,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,GAAG,cAAc,IAAI,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAA;QAE7D;YACE,uDAAuD;YACvD,OAAO,GAAG,cAAc,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAA;IAC9D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,QAAgB;IACzC,IAAI,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAA;IAEhC,mBAAmB;IACnB,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC;IAED,kBAAkB;IAClB,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC;IAED,oDAAoD;IACpD,UAAU,GAAG,cAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;IAEvC,qDAAqD;IACrD,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,CAAA;IAErC,mEAAmE;IACnE,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAE3C,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,KAAa;IAC1C,OAAO,KAAK;SACT,WAAW,EAAE;SACb,IAAI,EAAE;QACP,8CAA8C;SAC7C,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;QACxB,uCAAuC;SACtC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;QACvB,gCAAgC;SAC/B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACpB,qCAAqC;SACpC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;AAC5B,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,KAAa;IAC3C,OAAO,KAAK;SACT,IAAI,EAAE;QACP,2BAA2B;SAC1B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;QACrB,uEAAuE;SACtE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;AAC5B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memctx",
3
- "version": "1.0.20",
3
+ "version": "1.1.1",
4
4
  "description": "Autonomous session memory for Claude Code - automatically captures, analyzes, and summarizes your development sessions",
5
5
  "author": "Fahad Aziz Qureshi <info@memctx.dev> (https://memctx.dev)",
6
6
  "license": "MIT",