@mesadev/agentblame 0.1.1 → 0.1.2

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.
@@ -0,0 +1,490 @@
1
+ "use strict";
2
+ /**
3
+ * SQLite Database Module
4
+ *
5
+ * Handles persistent storage of AI edits for attribution matching.
6
+ * Uses Bun's built-in SQLite for high-performance lookups.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.getDbPath = getDbPath;
43
+ exports.getDatabase = getDatabase;
44
+ exports.closeDatabase = closeDatabase;
45
+ exports.initDatabase = initDatabase;
46
+ exports.insertEdit = insertEdit;
47
+ exports.findByExactHash = findByExactHash;
48
+ exports.findByNormalizedHash = findByNormalizedHash;
49
+ exports.findEditsByFile = findEditsByFile;
50
+ exports.getEditLines = getEditLines;
51
+ exports.findBySubstring = findBySubstring;
52
+ exports.findLineMatch = findLineMatch;
53
+ exports.markEditAsMatched = markEditAsMatched;
54
+ exports.markEditsAsMatched = markEditsAsMatched;
55
+ exports.cleanupOldEntries = cleanupOldEntries;
56
+ exports.getPendingEditCount = getPendingEditCount;
57
+ exports.getRecentPendingEdits = getRecentPendingEdits;
58
+ const bun_sqlite_1 = require("bun:sqlite");
59
+ const fs = __importStar(require("node:fs"));
60
+ const path = __importStar(require("node:path"));
61
+ const util_1 = require("./util");
62
+ // =============================================================================
63
+ // Database Schema
64
+ // =============================================================================
65
+ const SCHEMA = `
66
+ -- Main edits table (one row per AI edit operation)
67
+ CREATE TABLE IF NOT EXISTS edits (
68
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
69
+ timestamp TEXT NOT NULL,
70
+ provider TEXT NOT NULL,
71
+ file_path TEXT NOT NULL,
72
+ model TEXT,
73
+ content TEXT NOT NULL,
74
+ content_hash TEXT NOT NULL,
75
+ content_hash_normalized TEXT NOT NULL,
76
+ edit_type TEXT NOT NULL,
77
+ old_content TEXT,
78
+ status TEXT DEFAULT 'pending',
79
+ matched_commit TEXT,
80
+ matched_at TEXT
81
+ );
82
+
83
+ -- Lines table (one row per line in an edit)
84
+ CREATE TABLE IF NOT EXISTS lines (
85
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
86
+ edit_id INTEGER NOT NULL,
87
+ content TEXT NOT NULL,
88
+ hash TEXT NOT NULL,
89
+ hash_normalized TEXT NOT NULL,
90
+ FOREIGN KEY (edit_id) REFERENCES edits(id) ON DELETE CASCADE
91
+ );
92
+
93
+ -- Indexes for fast lookup
94
+ CREATE INDEX IF NOT EXISTS idx_lines_hash ON lines(hash);
95
+ CREATE INDEX IF NOT EXISTS idx_lines_hash_normalized ON lines(hash_normalized);
96
+ CREATE INDEX IF NOT EXISTS idx_edits_status ON edits(status);
97
+ CREATE INDEX IF NOT EXISTS idx_edits_file_path ON edits(file_path);
98
+ CREATE INDEX IF NOT EXISTS idx_edits_content_hash ON edits(content_hash);
99
+ `;
100
+ // =============================================================================
101
+ // Database Connection
102
+ // =============================================================================
103
+ let dbInstance = null;
104
+ /**
105
+ * Get the database file path
106
+ */
107
+ function getDbPath() {
108
+ return path.join((0, util_1.getAgentBlameDir)(), "agentblame.db");
109
+ }
110
+ /**
111
+ * Initialize and return the database connection
112
+ */
113
+ function getDatabase() {
114
+ if (dbInstance) {
115
+ return dbInstance;
116
+ }
117
+ const dbPath = getDbPath();
118
+ const dbDir = path.dirname(dbPath);
119
+ // Ensure directory exists
120
+ if (!fs.existsSync(dbDir)) {
121
+ fs.mkdirSync(dbDir, { recursive: true });
122
+ }
123
+ // Create database connection
124
+ dbInstance = new bun_sqlite_1.Database(dbPath);
125
+ // Enable foreign keys and WAL mode for better performance
126
+ dbInstance.exec("PRAGMA foreign_keys = ON");
127
+ dbInstance.exec("PRAGMA journal_mode = WAL");
128
+ // Create tables and indexes
129
+ dbInstance.exec(SCHEMA);
130
+ return dbInstance;
131
+ }
132
+ /**
133
+ * Close the database connection
134
+ */
135
+ function closeDatabase() {
136
+ if (dbInstance) {
137
+ dbInstance.close();
138
+ dbInstance = null;
139
+ }
140
+ }
141
+ /**
142
+ * Initialize database (creates file and schema if needed)
143
+ * Call this during install to ensure DB is ready
144
+ */
145
+ function initDatabase() {
146
+ const db = getDatabase();
147
+ // Database is initialized by getDatabase()
148
+ // Just verify it's working
149
+ db.exec("SELECT 1");
150
+ }
151
+ /**
152
+ * Insert a new AI edit into the database
153
+ */
154
+ function insertEdit(params) {
155
+ const db = getDatabase();
156
+ const editStmt = db.prepare(`
157
+ INSERT INTO edits (
158
+ timestamp, provider, file_path, model, content,
159
+ content_hash, content_hash_normalized, edit_type, old_content
160
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
161
+ `);
162
+ const result = editStmt.run(params.timestamp, params.provider, params.file_path, params.model, params.content, params.content_hash, params.content_hash_normalized, params.edit_type, params.old_content || null);
163
+ const editId = Number(result.lastInsertRowid);
164
+ // Insert lines
165
+ const lineStmt = db.prepare(`
166
+ INSERT INTO lines (edit_id, content, hash, hash_normalized)
167
+ VALUES (?, ?, ?, ?)
168
+ `);
169
+ for (const line of params.lines) {
170
+ lineStmt.run(editId, line.content, line.hash, line.hash_normalized);
171
+ }
172
+ return editId;
173
+ }
174
+ // =============================================================================
175
+ // Query Operations (used by process.ts for matching)
176
+ // =============================================================================
177
+ /**
178
+ * Find a line match by exact hash
179
+ * Returns the edit and line if found, with same-file matches preferred
180
+ */
181
+ function findByExactHash(hash, filePath) {
182
+ const db = getDatabase();
183
+ // First try same-file match
184
+ const sameFileStmt = db.prepare(`
185
+ SELECT
186
+ l.id as line_id, l.edit_id, l.content as line_content,
187
+ l.hash, l.hash_normalized,
188
+ e.*
189
+ FROM lines l
190
+ JOIN edits e ON l.edit_id = e.id
191
+ WHERE l.hash = ? AND (
192
+ e.file_path = ? OR
193
+ e.file_path LIKE ? OR
194
+ ? LIKE '%' || substr(e.file_path, instr(e.file_path, '/') + 1)
195
+ )
196
+ ORDER BY e.timestamp DESC
197
+ LIMIT 1
198
+ `);
199
+ const fileName = filePath.split("/").pop() || "";
200
+ let row = sameFileStmt.get(hash, filePath, `%${fileName}`, filePath);
201
+ // If no same-file match, try any match
202
+ if (!row) {
203
+ const anyStmt = db.prepare(`
204
+ SELECT
205
+ l.id as line_id, l.edit_id, l.content as line_content,
206
+ l.hash, l.hash_normalized,
207
+ e.*
208
+ FROM lines l
209
+ JOIN edits e ON l.edit_id = e.id
210
+ WHERE l.hash = ?
211
+ ORDER BY e.timestamp DESC
212
+ LIMIT 1
213
+ `);
214
+ row = anyStmt.get(hash);
215
+ }
216
+ if (!row)
217
+ return null;
218
+ return {
219
+ edit: rowToEdit(row),
220
+ line: {
221
+ id: row.line_id,
222
+ edit_id: row.edit_id,
223
+ content: row.line_content,
224
+ hash: row.hash,
225
+ hash_normalized: row.hash_normalized,
226
+ },
227
+ matchType: "exact_hash",
228
+ confidence: 1.0,
229
+ };
230
+ }
231
+ /**
232
+ * Find a line match by normalized hash
233
+ */
234
+ function findByNormalizedHash(hashNormalized, filePath) {
235
+ const db = getDatabase();
236
+ const fileName = filePath.split("/").pop() || "";
237
+ // First try same-file match
238
+ const sameFileStmt = db.prepare(`
239
+ SELECT
240
+ l.id as line_id, l.edit_id, l.content as line_content,
241
+ l.hash, l.hash_normalized,
242
+ e.*
243
+ FROM lines l
244
+ JOIN edits e ON l.edit_id = e.id
245
+ WHERE l.hash_normalized = ? AND (
246
+ e.file_path = ? OR
247
+ e.file_path LIKE ? OR
248
+ ? LIKE '%' || substr(e.file_path, instr(e.file_path, '/') + 1)
249
+ )
250
+ ORDER BY e.timestamp DESC
251
+ LIMIT 1
252
+ `);
253
+ let row = sameFileStmt.get(hashNormalized, filePath, `%${fileName}`, filePath);
254
+ if (!row) {
255
+ const anyStmt = db.prepare(`
256
+ SELECT
257
+ l.id as line_id, l.edit_id, l.content as line_content,
258
+ l.hash, l.hash_normalized,
259
+ e.*
260
+ FROM lines l
261
+ JOIN edits e ON l.edit_id = e.id
262
+ WHERE l.hash_normalized = ?
263
+ ORDER BY e.timestamp DESC
264
+ LIMIT 1
265
+ `);
266
+ row = anyStmt.get(hashNormalized);
267
+ }
268
+ if (!row)
269
+ return null;
270
+ return {
271
+ edit: rowToEdit(row),
272
+ line: {
273
+ id: row.line_id,
274
+ edit_id: row.edit_id,
275
+ content: row.line_content,
276
+ hash: row.hash,
277
+ hash_normalized: row.hash_normalized,
278
+ },
279
+ matchType: "normalized_hash",
280
+ confidence: 0.95,
281
+ };
282
+ }
283
+ /**
284
+ * Find edits for a specific file (used for substring matching fallback)
285
+ */
286
+ function findEditsByFile(filePath) {
287
+ const db = getDatabase();
288
+ const fileName = filePath.split("/").pop() || "";
289
+ const stmt = db.prepare(`
290
+ SELECT * FROM edits
291
+ WHERE file_path = ? OR
292
+ file_path LIKE ? OR
293
+ ? LIKE '%' || substr(file_path, instr(file_path, '/') + 1)
294
+ ORDER BY timestamp DESC
295
+ `);
296
+ const rows = stmt.all(filePath, `%${fileName}`, filePath);
297
+ return rows.map(rowToEdit);
298
+ }
299
+ /**
300
+ * Get lines for a specific edit
301
+ */
302
+ function getEditLines(editId) {
303
+ const db = getDatabase();
304
+ const stmt = db.prepare(`SELECT * FROM lines WHERE edit_id = ?`);
305
+ return stmt.all(editId);
306
+ }
307
+ /**
308
+ * Find match using substring containment (Strategy 3 & 4)
309
+ * Only called when hash matches fail
310
+ */
311
+ function findBySubstring(lineContent, filePath) {
312
+ const normalizedLine = lineContent.trim();
313
+ // Skip trivial lines
314
+ if (normalizedLine.length <= 10)
315
+ return null;
316
+ const edits = findEditsByFile(filePath);
317
+ // Strategy 3: Line contained in AI edit content
318
+ for (const edit of edits) {
319
+ if (edit.content.includes(normalizedLine)) {
320
+ return {
321
+ edit,
322
+ line: {
323
+ id: 0,
324
+ edit_id: edit.id,
325
+ content: normalizedLine,
326
+ hash: "",
327
+ hash_normalized: "",
328
+ },
329
+ matchType: "line_in_ai_content",
330
+ confidence: 0.9,
331
+ };
332
+ }
333
+ }
334
+ // Strategy 4: AI content contained in line
335
+ for (const edit of edits) {
336
+ const lines = getEditLines(edit.id);
337
+ for (const aiLine of lines) {
338
+ const trimmedAiLine = aiLine.content.trim();
339
+ if (trimmedAiLine.length > 10 && normalizedLine.includes(trimmedAiLine)) {
340
+ const ratio = trimmedAiLine.length / normalizedLine.length;
341
+ if (ratio > 0.5) {
342
+ return {
343
+ edit,
344
+ line: aiLine,
345
+ matchType: "ai_content_in_line",
346
+ confidence: 0.85,
347
+ };
348
+ }
349
+ }
350
+ }
351
+ }
352
+ return null;
353
+ }
354
+ /**
355
+ * Find a line match using the priority strategy:
356
+ * 1. Exact hash match (1.0)
357
+ * 2. Normalized hash match (0.95)
358
+ * 3. Line contained in AI content (0.9)
359
+ * 4. AI content contained in line (0.85)
360
+ */
361
+ function findLineMatch(lineContent, lineHash, lineHashNormalized, filePath) {
362
+ // Strategy 1: Exact hash
363
+ let match = findByExactHash(lineHash, filePath);
364
+ if (match)
365
+ return match;
366
+ // Strategy 2: Normalized hash
367
+ match = findByNormalizedHash(lineHashNormalized, filePath);
368
+ if (match)
369
+ return match;
370
+ // Strategy 3 & 4: Substring matching (expensive, only if hashes fail)
371
+ match = findBySubstring(lineContent, filePath);
372
+ if (match)
373
+ return match;
374
+ return null;
375
+ }
376
+ // =============================================================================
377
+ // Update Operations
378
+ // =============================================================================
379
+ /**
380
+ * Mark an edit as matched to a commit
381
+ */
382
+ function markEditAsMatched(editId, commitSha) {
383
+ const db = getDatabase();
384
+ const stmt = db.prepare(`
385
+ UPDATE edits
386
+ SET status = 'matched', matched_commit = ?, matched_at = ?
387
+ WHERE id = ?
388
+ `);
389
+ stmt.run(commitSha, new Date().toISOString(), editId);
390
+ }
391
+ /**
392
+ * Mark multiple edits as matched
393
+ */
394
+ function markEditsAsMatched(editIds, commitSha) {
395
+ const db = getDatabase();
396
+ const timestamp = new Date().toISOString();
397
+ const stmt = db.prepare(`
398
+ UPDATE edits
399
+ SET status = 'matched', matched_commit = ?, matched_at = ?
400
+ WHERE id = ?
401
+ `);
402
+ db.exec("BEGIN TRANSACTION");
403
+ try {
404
+ for (const editId of editIds) {
405
+ stmt.run(commitSha, timestamp, editId);
406
+ }
407
+ db.exec("COMMIT");
408
+ }
409
+ catch (err) {
410
+ db.exec("ROLLBACK");
411
+ throw err;
412
+ }
413
+ }
414
+ // =============================================================================
415
+ // Cleanup Operations
416
+ // =============================================================================
417
+ /**
418
+ * Clean up old entries
419
+ * - Removes matched entries older than maxAgeDays
420
+ * - Removes unmatched entries older than expireDays
421
+ */
422
+ function cleanupOldEntries(maxAgeDays = 7, expireDays = 30) {
423
+ const db = getDatabase();
424
+ // Count before
425
+ const beforeCount = db.prepare("SELECT COUNT(*) as count FROM edits").get().count;
426
+ // Delete old matched entries
427
+ db.prepare(`
428
+ DELETE FROM edits
429
+ WHERE status = 'matched'
430
+ AND datetime(matched_at) < datetime('now', '-' || ? || ' days')
431
+ `).run(maxAgeDays);
432
+ // Delete old unmatched entries
433
+ db.prepare(`
434
+ DELETE FROM edits
435
+ WHERE (status IS NULL OR status = 'pending')
436
+ AND datetime(timestamp) < datetime('now', '-' || ? || ' days')
437
+ `).run(expireDays);
438
+ // Count after
439
+ const afterCount = db.prepare("SELECT COUNT(*) as count FROM edits").get().count;
440
+ return {
441
+ removed: beforeCount - afterCount,
442
+ kept: afterCount,
443
+ };
444
+ }
445
+ /**
446
+ * Get count of pending edits
447
+ */
448
+ function getPendingEditCount() {
449
+ const db = getDatabase();
450
+ const result = db.prepare(`
451
+ SELECT COUNT(*) as count FROM edits
452
+ WHERE status IS NULL OR status = 'pending'
453
+ `).get();
454
+ return result.count;
455
+ }
456
+ /**
457
+ * Get recent pending edits for status display
458
+ */
459
+ function getRecentPendingEdits(limit = 5) {
460
+ const db = getDatabase();
461
+ const stmt = db.prepare(`
462
+ SELECT * FROM edits
463
+ WHERE status IS NULL OR status = 'pending'
464
+ ORDER BY timestamp DESC
465
+ LIMIT ?
466
+ `);
467
+ const rows = stmt.all(limit);
468
+ return rows.map(rowToEdit);
469
+ }
470
+ // =============================================================================
471
+ // Helpers
472
+ // =============================================================================
473
+ function rowToEdit(row) {
474
+ return {
475
+ id: row.id,
476
+ timestamp: row.timestamp,
477
+ provider: row.provider,
478
+ file_path: row.file_path,
479
+ model: row.model,
480
+ content: row.content,
481
+ content_hash: row.content_hash,
482
+ content_hash_normalized: row.content_hash_normalized,
483
+ edit_type: row.edit_type,
484
+ old_content: row.old_content,
485
+ status: row.status,
486
+ matched_commit: row.matched_commit,
487
+ matched_at: row.matched_at,
488
+ };
489
+ }
490
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/lib/database.ts"],"names":[],"mappings":"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"}
package/dist/lib/db.d.ts CHANGED
@@ -8,8 +8,9 @@ import type { CapturedLine, PendingEdit, MatchType } from "./types";
8
8
  import { computeContentHash, computeNormalizedHash } from "./util";
9
9
  /**
10
10
  * Read all pending edits from log files
11
+ * @param includeMatched - If true, also include already-matched edits (for re-matching across branches)
11
12
  */
12
- export declare function readPendingEdits(): PendingEdit[];
13
+ export declare function readPendingEdits(includeMatched?: boolean): PendingEdit[];
13
14
  /**
14
15
  * Build a hash index from pending edits for fast line lookup
15
16
  */
package/dist/lib/db.js CHANGED
@@ -55,8 +55,9 @@ Object.defineProperty(exports, "computeNormalizedHash", { enumerable: true, get:
55
55
  // =============================================================================
56
56
  /**
57
57
  * Read all pending edits from log files
58
+ * @param includeMatched - If true, also include already-matched edits (for re-matching across branches)
58
59
  */
59
- function readPendingEdits() {
60
+ function readPendingEdits(includeMatched = false) {
60
61
  const logsDir = (0, util_1.getLogsDir)();
61
62
  const edits = [];
62
63
  if (!fs.existsSync(logsDir)) {
@@ -73,8 +74,8 @@ function readPendingEdits() {
73
74
  for (let i = 0; i < lines.length; i++) {
74
75
  try {
75
76
  const entry = JSON.parse(lines[i]);
76
- // Skip already matched entries
77
- if (entry.status === "matched") {
77
+ // Skip already matched entries unless includeMatched is true
78
+ if (entry.status === "matched" && !includeMatched) {
78
79
  continue;
79
80
  }
80
81
  // Validate required fields
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/lib/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/lib/db.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,21 @@
1
1
  /**
2
2
  * Git configuration for Agent Blame notes
3
3
  *
4
- * Configures auto-push of refs/notes/agentblame.
5
- * Note: We don't auto-fetch because it fails if notes don't exist on remote.
6
- * Use fetchNotes() to manually fetch when needed.
4
+ * Notes are pushed explicitly by the post-commit hook after processing,
5
+ * rather than via push refspec (which fails if notes don't exist).
7
6
  */
8
7
  /**
9
- * Configure a repository to automatically push agentblame notes.
10
- * Only configures push (not fetch) to avoid errors when notes don't exist on remote.
8
+ * Configure notes sync for a repository.
9
+ * This is now a no-op - notes are pushed by the post-commit hook instead.
10
+ * Keeping the function for API compatibility.
11
11
  */
12
- export declare function configureNotesSync(repoRoot: string): Promise<boolean>;
12
+ export declare function configureNotesSync(_repoRoot: string): Promise<boolean>;
13
13
  /**
14
- * Check if notes sync is already configured
14
+ * Check if notes sync is already configured (legacy - always returns false)
15
15
  */
16
- export declare function isNotesSyncConfigured(repoRoot: string): Promise<boolean>;
16
+ export declare function isNotesSyncConfigured(_repoRoot: string): Promise<boolean>;
17
17
  /**
18
- * Remove notes sync configuration
18
+ * Remove notes sync configuration.
19
+ * Cleans up any push/fetch refspecs from older versions.
19
20
  */
20
21
  export declare function removeNotesSync(repoRoot: string): Promise<boolean>;