@m2015agg/git-skill 0.3.1 → 0.4.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.
@@ -2,7 +2,7 @@ import { Command } from "commander";
2
2
  import { join } from "path";
3
3
  import { openDb, hasDb } from "../util/db.js";
4
4
  import { readConfig } from "../util/config.js";
5
- import { generateEmbedding } from "../util/embedding.js";
5
+ import { generateEmbedding, vectorToBuffer } from "../util/embedding.js";
6
6
  export function embedCommand() {
7
7
  return new Command("embed")
8
8
  .description("Generate/refresh embeddings for commit messages")
@@ -48,9 +48,7 @@ export function embedCommand() {
48
48
  for (const commit of commits) {
49
49
  const result = await generateEmbedding(commit.message);
50
50
  if (result) {
51
- const buf = Buffer.alloc(result.vector.length * 4);
52
- const arr = new Float32Array(result.vector);
53
- Buffer.from(arr.buffer).copy(buf);
51
+ const buf = vectorToBuffer(result.vector);
54
52
  insertEmbed.run({
55
53
  commitHash: commit.hash,
56
54
  contentType: "message",
@@ -65,6 +63,44 @@ export function embedCommand() {
65
63
  }
66
64
  }
67
65
  process.stdout.write(`Done. Embedded: ${successCount}, Failed: ${failCount}\n`);
66
+ // Second pass: embed enrichments
67
+ let enrichQuery = `SELECT e.commit_hash, e.intent, e.reasoning
68
+ FROM enrichments e
69
+ LEFT JOIN embeddings emb ON e.commit_hash = emb.commit_hash AND emb.content_type = 'enrichment'
70
+ WHERE emb.commit_hash IS NULL`;
71
+ if (opts.force) {
72
+ enrichQuery = "SELECT commit_hash, intent, reasoning FROM enrichments";
73
+ }
74
+ const enrichments = (limit > 0
75
+ ? db.prepare(enrichQuery + " LIMIT ?").all(limit)
76
+ : db.prepare(enrichQuery).all());
77
+ if (enrichments.length > 0) {
78
+ process.stdout.write(`Embedding ${enrichments.length} enrichments...\n`);
79
+ let enrichSuccess = 0;
80
+ let enrichFail = 0;
81
+ for (const enrichment of enrichments) {
82
+ const text = [enrichment.intent, enrichment.reasoning].filter(Boolean).join(" ");
83
+ const result = await generateEmbedding(text);
84
+ if (result) {
85
+ const buf = vectorToBuffer(result.vector);
86
+ insertEmbed.run({
87
+ commitHash: enrichment.commit_hash,
88
+ contentType: "enrichment",
89
+ vector: buf,
90
+ model: result.model,
91
+ createdAt: new Date().toISOString(),
92
+ });
93
+ enrichSuccess++;
94
+ }
95
+ else {
96
+ enrichFail++;
97
+ }
98
+ }
99
+ process.stdout.write(`Done. Enrichment embeddings: ${enrichSuccess}, Failed: ${enrichFail}\n`);
100
+ }
101
+ else {
102
+ process.stdout.write("No enrichments to embed.\n");
103
+ }
68
104
  }
69
105
  finally {
70
106
  db.close();
@@ -1 +1 @@
1
- {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../src/commands/embed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../src/commands/embed.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { execFileSync } from "child_process";
4
4
  import { openDb, hasDb } from "../util/db.js";
5
5
  import { readConfig } from "../util/config.js";
6
6
  import { loadDotEnv, resolveEnvVar } from "../util/env.js";
7
+ import { generateEmbedding, vectorToBuffer } from "../util/embedding.js";
7
8
  function getDiff(cwd, hash, maxChars = 3000) {
8
9
  try {
9
10
  const raw = execFileSync("git", ["show", "--patch", "--no-color", hash], {
@@ -213,6 +214,18 @@ export function enrichCommand() {
213
214
  sessionContext: result.session_context ?? null,
214
215
  });
215
216
  successCount++;
217
+ // Best-effort: embed the enrichment if embedding is configured
218
+ try {
219
+ const enrichText = [intentParts.join(" | "), result.reasoning].filter(Boolean).join(" ");
220
+ const embResult = await generateEmbedding(enrichText);
221
+ if (embResult) {
222
+ db.prepare(`
223
+ INSERT OR REPLACE INTO embeddings (commit_hash, content_type, vector, model, created_at)
224
+ VALUES (?, 'enrichment', ?, ?, ?)
225
+ `).run(commit.hash, vectorToBuffer(embResult.vector), embResult.model, new Date().toISOString());
226
+ }
227
+ }
228
+ catch { /* embedding is best-effort */ }
216
229
  }
217
230
  else {
218
231
  failCount++;
@@ -1 +1 @@
1
- {"version":3,"file":"enrich.js","sourceRoot":"","sources":["../../src/commands/enrich.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enrich.js","sourceRoot":"","sources":["../../src/commands/enrich.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,20 @@
1
1
  import { Command } from "commander";
2
2
  import { join } from "path";
3
3
  import { openDb, hasDb } from "../util/db.js";
4
- import { searchBM25 } from "../util/search-hybrid.js";
4
+ import { searchBM25, hybridSearch, hasEmbeddings } from "../util/search-hybrid.js";
5
5
  function write(msg) {
6
6
  process.stdout.write(msg);
7
7
  }
8
8
  export function searchCommand() {
9
9
  return new Command("search")
10
- .description("Search git history using BM25 full-text search")
10
+ .description("Search git history (hybrid BM25 + semantic when embeddings exist)")
11
11
  .argument("<query>", "Search query")
12
12
  .option("--limit <n>", "Maximum results", "20")
13
13
  .option("--json", "Output as JSON")
14
14
  .option("--since <date>", "Only show results from commits after this date")
15
15
  .option("--until <date>", "Only show results from commits before this date")
16
- .action((query, opts) => {
16
+ .option("--bm25", "Force BM25-only search (skip semantic)")
17
+ .action(async (query, opts) => {
17
18
  const cwd = process.cwd();
18
19
  const historyDir = join(cwd, ".git-history");
19
20
  if (!hasDb(historyDir)) {
@@ -23,7 +24,13 @@ export function searchCommand() {
23
24
  const db = openDb(historyDir);
24
25
  try {
25
26
  const limit = parseInt(opts.limit, 10) || 20;
26
- let results = searchBM25(db, query, limit);
27
+ let results;
28
+ if (opts.bm25 || !hasEmbeddings(db)) {
29
+ results = searchBM25(db, query, limit);
30
+ }
31
+ else {
32
+ results = await hybridSearch(db, query, limit);
33
+ }
27
34
  // Filter by date if --since or --until provided
28
35
  if ((opts.since || opts.until) && results.length > 0) {
29
36
  const hashes = [...new Set(results.map(r => r.hash))];
@@ -83,6 +90,16 @@ export function searchCommand() {
83
90
  write(` ${shortHash} ${r.path} [${r.detail}] (${date})\n`);
84
91
  }
85
92
  }
93
+ const enrichResults = results.filter(r => r.type === "enrichment");
94
+ if (enrichResults.length > 0) {
95
+ write("\nEnrichments:\n");
96
+ for (const r of enrichResults) {
97
+ const shortHash = r.hash.slice(0, 7);
98
+ const meta = commitMeta.get(r.hash);
99
+ const date = meta ? meta.timestamp.slice(0, 10) : "";
100
+ write(` ${shortHash} ${r.message.slice(0, 80)} (${date})\n`);
101
+ }
102
+ }
86
103
  write("\n");
87
104
  }
88
105
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAgB,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEjG,SAAS,KAAK,CAAC,GAAW;IACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;SACzB,WAAW,CAAC,mEAAmE,CAAC;SAChF,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;SACnC,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAE,IAAI,CAAC;SAC9C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,gBAAgB,EAAE,gDAAgD,CAAC;SAC1E,MAAM,CAAC,gBAAgB,EAAE,iDAAiD,CAAC;SAC3E,MAAM,CAAC,QAAQ,EAAE,wCAAwC,CAAC;SAC1D,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,IAAuF,EAAE,EAAE;QACvH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAE7C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,oEAAoE,CAAC,CAAC;YAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;YAC7C,IAAI,OAAuB,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpC,OAAO,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,MAAM,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACjD,CAAC;YAED,gDAAgD;YAChD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACtD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrD,IAAI,UAAU,GAAG,2CAA2C,YAAY,GAAG,CAAC;gBAC5E,MAAM,MAAM,GAAwB,CAAC,GAAG,MAAM,CAAC,CAAC;gBAEhD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,UAAU,IAAI,qBAAqB,CAAC;oBACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,UAAU,IAAI,qBAAqB,CAAC;oBACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;gBAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAC3B,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAC/E,CAAC;gBACF,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC/C,OAAO;YACT,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,KAAK,CAAC,yBAAyB,KAAK,MAAM,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;YAED,uCAAuC;YACvC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YAC/D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAE3D,uDAAuD;YACvD,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkE,CAAC;YAC7F,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,uEAAuE,YAAY,GAAG,CACvF,CAAC,GAAG,CAAC,GAAG,SAAS,CAA2E,CAAC;gBAC9F,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;YAED,KAAK,CAAC,yBAAyB,KAAK,MAAM,OAAO,CAAC,MAAM,SAAS,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACxG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YAE7B,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,KAAK,CAAC,cAAc,CAAC,CAAC;gBACtB,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;oBAC9B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACpC,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvC,KAAK,CAAC,KAAK,SAAS,KAAK,CAAC,CAAC,OAAO,IAAI,IAAI,EAAE,OAAO,IAAI,EAAE,MAAM,MAAM,KAAK,IAAI,KAAK,CAAC,CAAC;gBACvF,CAAC;YACH,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,YAAY,CAAC,CAAC;gBACpB,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;oBAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACpC,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrD,KAAK,CAAC,KAAK,SAAS,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,OAAO,IAAI,KAAK,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;YAED,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;YACnE,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBAC1B,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;oBAC9B,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACpC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrD,KAAK,CAAC,KAAK,SAAS,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
package/dist/util/db.js CHANGED
@@ -169,6 +169,18 @@ function initSchema(db) {
169
169
  value TEXT
170
170
  );
171
171
  `);
172
+ // Unique index for embeddings dedup — try-catch for existing DBs with duplicates
173
+ try {
174
+ db.exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_embeddings_hash_type ON embeddings(commit_hash, content_type)");
175
+ }
176
+ catch {
177
+ // Existing DB may have duplicates — dedup first, then retry
178
+ try {
179
+ db.exec("DELETE FROM embeddings WHERE id NOT IN (SELECT MIN(id) FROM embeddings GROUP BY commit_hash, content_type)");
180
+ db.exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_embeddings_hash_type ON embeddings(commit_hash, content_type)");
181
+ }
182
+ catch { /* ignore — index creation is best-effort */ }
183
+ }
172
184
  db.prepare("INSERT OR REPLACE INTO schema_meta (key, value) VALUES ('schema_version', ?)").run(String(SCHEMA_VERSION));
173
185
  }
174
186
  function getSchemaVersion(db) {
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/util/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,MAAM,UAAU,MAAM,CAAC,UAAkB;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC9C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACjC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,UAAkB;IACtC,OAAO,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,UAAU,CAAC,EAAqB;IACvC,MAAM,cAAc,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,cAAc,IAAI,cAAc;QAAE,OAAO;IAE7C,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsJP,CAAC,CAAC;IAEH,EAAE,CAAC,OAAO,CAAC,8EAA8E,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;AACzH,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAqB;IAC7C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAC,GAAG,EAAmC,CAAC;QAC5H,OAAO,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/util/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,MAAM,UAAU,MAAM,CAAC,UAAkB;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC9C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACjC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,UAAkB;IACtC,OAAO,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,UAAU,CAAC,EAAqB;IACvC,MAAM,cAAc,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,cAAc,IAAI,cAAc;QAAE,OAAO;IAE7C,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsJP,CAAC,CAAC;IAEH,iFAAiF;IACjF,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,qGAAqG,CAAC,CAAC;IACjH,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;QAC5D,IAAI,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,4GAA4G,CAAC,CAAC;YACtH,EAAE,CAAC,IAAI,CAAC,qGAAqG,CAAC,CAAC;QACjH,CAAC;QAAC,MAAM,CAAC,CAAC,4CAA4C,CAAC,CAAC;IAC1D,CAAC;IAED,EAAE,CAAC,OAAO,CAAC,8EAA8E,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;AACzH,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAqB;IAC7C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAC,GAAG,EAAmC,CAAC;QAC5H,OAAO,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
@@ -4,3 +4,5 @@ export interface EmbeddingResult {
4
4
  }
5
5
  export declare function generateEmbedding(text: string): Promise<EmbeddingResult | null>;
6
6
  export declare function cosineSimilarity(a: number[], b: number[]): number;
7
+ export declare function vectorToBuffer(vector: number[]): Buffer;
8
+ export declare function bufferToVector(buf: Buffer): number[];
@@ -41,4 +41,12 @@ export function cosineSimilarity(a, b) {
41
41
  }
42
42
  return dot / (Math.sqrt(normA) * Math.sqrt(normB) || 1);
43
43
  }
44
+ export function vectorToBuffer(vector) {
45
+ const arr = new Float32Array(vector);
46
+ return Buffer.from(arr.buffer);
47
+ }
48
+ export function bufferToVector(buf) {
49
+ const arr = new Float32Array(new Uint8Array(buf).buffer);
50
+ return Array.from(arr);
51
+ }
44
52
  //# sourceMappingURL=embedding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"embedding.js","sourceRoot":"","sources":["../../src/util/embedding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAOrD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY;IAClD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtE,UAAU,EAAE,CAAC;IACb,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;YACjD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;YACzG,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SACrE,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAS,CAAC;QAC1C,gBAAgB;QAChB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACxG,8CAA8C;QAC9C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC/F,uBAAuB;QACvB,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACrF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAW,EAAE,CAAW;IACvD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,GAAG,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAChG,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"embedding.js","sourceRoot":"","sources":["../../src/util/embedding.ts"],"names":[],"mappings":"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"}
@@ -8,3 +8,6 @@ export interface SearchResult {
8
8
  score: number;
9
9
  }
10
10
  export declare function searchBM25(db: Database.Database, query: string, limit?: number): SearchResult[];
11
+ export declare function hasEmbeddings(db: Database.Database): boolean;
12
+ export declare function searchVector(db: Database.Database, query: string, limit?: number): Promise<SearchResult[]>;
13
+ export declare function hybridSearch(db: Database.Database, query: string, limit?: number): Promise<SearchResult[]>;
@@ -1,3 +1,4 @@
1
+ import { generateEmbedding, cosineSimilarity, bufferToVector } from "./embedding.js";
1
2
  export function searchBM25(db, query, limit = 20) {
2
3
  const safeQuery = query.replace(/['"]/g, "").trim();
3
4
  if (!safeQuery)
@@ -30,4 +31,82 @@ export function searchBM25(db, query, limit = 20) {
30
31
  return [...commitMatches, ...fileMatches].slice(0, limit);
31
32
  }
32
33
  }
34
+ export function hasEmbeddings(db) {
35
+ const row = db.prepare("SELECT COUNT(*) as cnt FROM embeddings").get();
36
+ return row.cnt > 0;
37
+ }
38
+ export async function searchVector(db, query, limit = 20) {
39
+ const embeddingResult = await generateEmbedding(query);
40
+ if (!embeddingResult)
41
+ return [];
42
+ const queryVector = embeddingResult.vector;
43
+ const rows = db.prepare("SELECT commit_hash, content_type, vector FROM embeddings ORDER BY created_at DESC LIMIT 5000").all();
44
+ const scored = rows.map((row) => ({
45
+ hash: row.commit_hash,
46
+ type: row.content_type,
47
+ similarity: cosineSimilarity(queryVector, bufferToVector(row.vector)),
48
+ }));
49
+ scored.sort((a, b) => b.similarity - a.similarity);
50
+ const top = scored.slice(0, limit);
51
+ const results = [];
52
+ for (const item of top) {
53
+ let message = "";
54
+ if (item.type === "message") {
55
+ const commit = db.prepare("SELECT message, author FROM commits WHERE hash = ?").get(item.hash);
56
+ message = commit?.message ?? "";
57
+ }
58
+ else if (item.type === "enrichment") {
59
+ const enrichment = db.prepare("SELECT intent FROM enrichments WHERE commit_hash = ?").get(item.hash);
60
+ message = enrichment?.intent ?? "";
61
+ }
62
+ results.push({
63
+ hash: item.hash,
64
+ type: item.type,
65
+ path: "",
66
+ message,
67
+ detail: "",
68
+ score: item.similarity,
69
+ });
70
+ }
71
+ return results;
72
+ }
73
+ export async function hybridSearch(db, query, limit = 20) {
74
+ const [bm25, vector] = await Promise.all([
75
+ Promise.resolve(searchBM25(db, query, limit * 2)),
76
+ searchVector(db, query, limit * 2),
77
+ ]);
78
+ if (vector.length === 0) {
79
+ return bm25.slice(0, limit);
80
+ }
81
+ const map = new Map();
82
+ for (let i = 0; i < bm25.length; i++) {
83
+ const r = bm25[i];
84
+ const rrf = 1 / (60 + i + 1);
85
+ const existing = map.get(r.hash);
86
+ if (existing) {
87
+ existing.score += rrf;
88
+ if (!existing.result.message && r.message)
89
+ existing.result = r;
90
+ }
91
+ else {
92
+ map.set(r.hash, { score: rrf, result: r });
93
+ }
94
+ }
95
+ for (let i = 0; i < vector.length; i++) {
96
+ const r = vector[i];
97
+ const rrf = 1 / (60 + i + 1);
98
+ const existing = map.get(r.hash);
99
+ if (existing) {
100
+ existing.score += rrf;
101
+ if (!existing.result.message && r.message)
102
+ existing.result = r;
103
+ }
104
+ else {
105
+ map.set(r.hash, { score: rrf, result: r });
106
+ }
107
+ }
108
+ const merged = Array.from(map.values());
109
+ merged.sort((a, b) => b.score - a.score);
110
+ return merged.slice(0, limit).map(({ score, result }) => ({ ...result, score }));
111
+ }
33
112
  //# sourceMappingURL=search-hybrid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-hybrid.js","sourceRoot":"","sources":["../../src/util/search-hybrid.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,UAAU,CAAC,EAAqB,EAAE,KAAa,EAAE,KAAK,GAAG,EAAE;IACzE,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAE1B,IAAI,CAAC;QACH,iCAAiC;QACjC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;;;KAG1B,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,IAAI,EAAE,KAAK,CAAmB,CAAC;QACnD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC;QAEvC,6BAA6B;QAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtE,OAAO,EAAE,CAAC,OAAO,CAAC;;;KAGjB,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAmB,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,kEAAkE;QAClE,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAAC;;;KAGhC,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,GAAG,EAAE,KAAK,CAAmB,CAAC;QAClD,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC;;;KAG9B,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,GAAG,EAAE,KAAK,CAAmB,CAAC;QAClD,OAAO,CAAC,GAAG,aAAa,EAAE,GAAG,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"search-hybrid.js","sourceRoot":"","sources":["../../src/util/search-hybrid.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m2015agg/git-skill",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "Git history intelligence for LLMs — institutional memory over codebase evolution",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",