@blamechris/repo-memory 0.11.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cache/generation.d.ts +50 -0
- package/dist/cache/generation.d.ts.map +1 -0
- package/dist/cache/generation.js +62 -0
- package/dist/cache/generation.js.map +1 -0
- package/dist/cache/invalidation.d.ts +3 -1
- package/dist/cache/invalidation.d.ts.map +1 -1
- package/dist/cache/invalidation.js +4 -5
- package/dist/cache/invalidation.js.map +1 -1
- package/dist/cache/ranking.d.ts +51 -6
- package/dist/cache/ranking.d.ts.map +1 -1
- package/dist/cache/ranking.js +92 -18
- package/dist/cache/ranking.js.map +1 -1
- package/dist/cache/store.d.ts +32 -0
- package/dist/cache/store.d.ts.map +1 -1
- package/dist/cache/store.js +110 -19
- package/dist/cache/store.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/graph/dependency-graph.d.ts +14 -0
- package/dist/graph/dependency-graph.d.ts.map +1 -1
- package/dist/graph/dependency-graph.js +70 -5
- package/dist/graph/dependency-graph.js.map +1 -1
- package/dist/graph/refresh.d.ts +21 -0
- package/dist/graph/refresh.d.ts.map +1 -0
- package/dist/graph/refresh.js +101 -0
- package/dist/graph/refresh.js.map +1 -0
- package/dist/indexer/imports.d.ts.map +1 -1
- package/dist/indexer/imports.js +152 -86
- package/dist/indexer/imports.js.map +1 -1
- package/dist/indexer/project-map.d.ts +0 -2
- package/dist/indexer/project-map.d.ts.map +1 -1
- package/dist/indexer/project-map.js +0 -3
- package/dist/indexer/project-map.js.map +1 -1
- package/dist/indexer/source-extensions.d.ts +10 -0
- package/dist/indexer/source-extensions.d.ts.map +1 -0
- package/dist/indexer/source-extensions.js +28 -0
- package/dist/indexer/source-extensions.js.map +1 -0
- package/dist/indexer/summarize.d.ts +16 -1
- package/dist/indexer/summarize.d.ts.map +1 -1
- package/dist/indexer/summarize.js +39 -24
- package/dist/indexer/summarize.js.map +1 -1
- package/dist/persistence/db.d.ts.map +1 -1
- package/dist/persistence/db.js +78 -13
- package/dist/persistence/db.js.map +1 -1
- package/dist/server.js +18 -11
- package/dist/server.js.map +1 -1
- package/dist/tools/batch-file-summaries.d.ts +0 -1
- package/dist/tools/batch-file-summaries.d.ts.map +1 -1
- package/dist/tools/batch-file-summaries.js +1 -1
- package/dist/tools/batch-file-summaries.js.map +1 -1
- package/dist/tools/force-reread.d.ts.map +1 -1
- package/dist/tools/force-reread.js +7 -0
- package/dist/tools/force-reread.js.map +1 -1
- package/dist/tools/get-changed-files.d.ts.map +1 -1
- package/dist/tools/get-changed-files.js +23 -5
- package/dist/tools/get-changed-files.js.map +1 -1
- package/dist/tools/get-dependency-graph.d.ts +9 -7
- package/dist/tools/get-dependency-graph.d.ts.map +1 -1
- package/dist/tools/get-dependency-graph.js +51 -74
- package/dist/tools/get-dependency-graph.js.map +1 -1
- package/dist/tools/get-file-summary.d.ts +2 -3
- package/dist/tools/get-file-summary.d.ts.map +1 -1
- package/dist/tools/get-file-summary.js +11 -19
- package/dist/tools/get-file-summary.js.map +1 -1
- package/dist/tools/get-project-map.d.ts.map +1 -1
- package/dist/tools/get-project-map.js +9 -1
- package/dist/tools/get-project-map.js.map +1 -1
- package/dist/tools/get-related-files.d.ts.map +1 -1
- package/dist/tools/get-related-files.js +19 -71
- package/dist/tools/get-related-files.js.map +1 -1
- package/dist/tools/search-by-purpose.d.ts +2 -3
- package/dist/tools/search-by-purpose.d.ts.map +1 -1
- package/dist/tools/search-by-purpose.js +103 -44
- package/dist/tools/search-by-purpose.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,65 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { hashContents } from '../cache/hash.js';
|
|
1
4
|
import { CacheStore } from '../cache/store.js';
|
|
5
|
+
import { ensureSummaryGeneration, summarizeForProject } from '../indexer/summarize.js';
|
|
2
6
|
import { TelemetryTracker } from '../telemetry/tracker.js';
|
|
3
7
|
import { toPosix } from '../utils/posix-path.js';
|
|
4
|
-
|
|
8
|
+
/** Max exports listed per result; the rest collapse into `exportsTruncated`. */
|
|
9
|
+
const MAX_EXPORTS_PER_RESULT = 5;
|
|
10
|
+
/** Score a summary against the query terms; null when nothing matched. */
|
|
11
|
+
function scoreSummary(summary, queryTerms) {
|
|
12
|
+
const matchedOn = [];
|
|
13
|
+
let score = 0;
|
|
14
|
+
const purpose = summary.purpose.toLowerCase();
|
|
15
|
+
const purposeMatches = queryTerms.filter((term) => purpose.includes(term));
|
|
16
|
+
if (purposeMatches.length > 0) {
|
|
17
|
+
matchedOn.push('purpose');
|
|
18
|
+
score += purposeMatches.length * 3; // purpose matches weighted highest
|
|
19
|
+
}
|
|
20
|
+
const exportsLower = summary.exports.map((e) => e.toLowerCase());
|
|
21
|
+
const exportMatches = queryTerms.filter((term) => exportsLower.some((exp) => exp.includes(term)));
|
|
22
|
+
if (exportMatches.length > 0) {
|
|
23
|
+
matchedOn.push('exports');
|
|
24
|
+
score += exportMatches.length * 2;
|
|
25
|
+
}
|
|
26
|
+
const declsLower = summary.topLevelDeclarations.map((d) => d.toLowerCase());
|
|
27
|
+
const declMatches = queryTerms.filter((term) => declsLower.some((decl) => decl.includes(term)));
|
|
28
|
+
if (declMatches.length > 0) {
|
|
29
|
+
matchedOn.push('declarations');
|
|
30
|
+
score += declMatches.length;
|
|
31
|
+
}
|
|
32
|
+
return matchedOn.length > 0 ? { matchedOn, score } : null;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Re-hash a matched candidate before serving it (never return stale data).
|
|
36
|
+
* - Missing/unreadable file: evict the dead cache entry and drop the result.
|
|
37
|
+
* - Hash mismatch: regenerate the summary through the standard path (same
|
|
38
|
+
* semantics as get_file_summary's cache-miss branch), re-score it against
|
|
39
|
+
* the query, and keep it only if it still matches.
|
|
40
|
+
*/
|
|
41
|
+
async function validateCandidate(projectRoot, store, candidate, queryTerms) {
|
|
42
|
+
let contents;
|
|
43
|
+
try {
|
|
44
|
+
contents = await readFile(join(projectRoot, candidate.entry.path), 'utf-8');
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
store.deleteEntry(candidate.entry.path);
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
const currentHash = hashContents(contents);
|
|
51
|
+
if (currentHash === candidate.entry.hash)
|
|
52
|
+
return candidate;
|
|
53
|
+
const summary = await summarizeForProject(projectRoot, candidate.entry.path, contents);
|
|
54
|
+
store.setEntry(candidate.entry.path, currentHash, summary);
|
|
55
|
+
const match = scoreSummary(summary, queryTerms);
|
|
56
|
+
if (!match)
|
|
57
|
+
return null;
|
|
58
|
+
return { entry: candidate.entry, summary, matchedOn: match.matchedOn, score: match.score };
|
|
59
|
+
}
|
|
60
|
+
export async function searchByPurpose(projectRoot, query, limit, pathPrefix) {
|
|
61
|
+
// Never serve summaries from an invalidated generation (audit invariant I5).
|
|
62
|
+
ensureSummaryGeneration(projectRoot);
|
|
5
63
|
const store = new CacheStore(projectRoot);
|
|
6
64
|
const effectiveLimit = limit ?? 20;
|
|
7
65
|
// Optional scope: restrict the search to files at or under a directory/prefix.
|
|
@@ -23,57 +81,58 @@ export function searchByPurpose(projectRoot, query, limit, pathPrefix) {
|
|
|
23
81
|
})
|
|
24
82
|
: allEntries;
|
|
25
83
|
const queryTerms = query.toLowerCase().split(/\s+/).filter(Boolean);
|
|
26
|
-
const
|
|
84
|
+
const candidates = [];
|
|
27
85
|
for (const entry of entries) {
|
|
28
86
|
if (!entry.summary)
|
|
29
87
|
continue;
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const purposeMatches = queryTerms.filter(term => purpose.includes(term));
|
|
34
|
-
if (purposeMatches.length > 0) {
|
|
35
|
-
matchedOn.push('purpose');
|
|
36
|
-
score += purposeMatches.length * 3; // purpose matches weighted highest
|
|
37
|
-
}
|
|
38
|
-
const exportsLower = entry.summary.exports.map(e => e.toLowerCase());
|
|
39
|
-
const exportMatches = queryTerms.filter(term => exportsLower.some(exp => exp.includes(term)));
|
|
40
|
-
if (exportMatches.length > 0) {
|
|
41
|
-
matchedOn.push('exports');
|
|
42
|
-
score += exportMatches.length * 2;
|
|
43
|
-
}
|
|
44
|
-
const declsLower = entry.summary.topLevelDeclarations.map(d => d.toLowerCase());
|
|
45
|
-
const declMatches = queryTerms.filter(term => declsLower.some(decl => decl.includes(term)));
|
|
46
|
-
if (declMatches.length > 0) {
|
|
47
|
-
matchedOn.push('declarations');
|
|
48
|
-
score += declMatches.length;
|
|
49
|
-
}
|
|
50
|
-
if (matchedOn.length > 0) {
|
|
51
|
-
results.push({
|
|
52
|
-
path: entry.path,
|
|
53
|
-
purpose: entry.summary.purpose,
|
|
54
|
-
matchedOn,
|
|
55
|
-
exports: entry.summary.exports,
|
|
56
|
-
confidence: entry.summary.confidence,
|
|
57
|
-
score,
|
|
58
|
-
});
|
|
88
|
+
const match = scoreSummary(entry.summary, queryTerms);
|
|
89
|
+
if (match) {
|
|
90
|
+
candidates.push({ entry, summary: entry.summary, ...match });
|
|
59
91
|
}
|
|
60
92
|
}
|
|
61
93
|
// Sort by score descending
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
//
|
|
65
|
-
//
|
|
66
|
-
const
|
|
67
|
-
for (const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const
|
|
71
|
-
|
|
94
|
+
candidates.sort((a, b) => b.score - a.score);
|
|
95
|
+
// Validate before serving: walk the sorted candidates in score order until
|
|
96
|
+
// `limit` survive, so slots freed by dropped (deleted or no-longer-matching)
|
|
97
|
+
// files are backfilled from the remaining candidates in one pass.
|
|
98
|
+
const served = [];
|
|
99
|
+
for (const candidate of candidates) {
|
|
100
|
+
if (served.length >= effectiveLimit)
|
|
101
|
+
break;
|
|
102
|
+
const validated = await validateCandidate(projectRoot, store, candidate, queryTerms);
|
|
103
|
+
if (validated)
|
|
104
|
+
served.push(validated);
|
|
105
|
+
}
|
|
106
|
+
// Telemetry: ONE summary_served event per query, not per hit. Per-hit
|
|
107
|
+
// tracking booked every matched file as a full read avoided, inflating
|
|
108
|
+
// "tokens saved" by up to `limit`x. The realistic counterfactual for one
|
|
109
|
+
// search is the agent grepping and then reading roughly ONE candidate file
|
|
110
|
+
// in full, so we book the estimated raw-content tokens of one average
|
|
111
|
+
// served file (lineCount x ~40 chars/line / ~4 chars/token = lineCount x 10).
|
|
112
|
+
// Best-effort: a telemetry write failure (e.g. locked DB) must never fail
|
|
113
|
+
// the read path.
|
|
114
|
+
if (served.length > 0) {
|
|
115
|
+
try {
|
|
116
|
+
const avgLineCount = served.reduce((sum, c) => sum + c.summary.lineCount, 0) / served.length;
|
|
117
|
+
new TelemetryTracker(projectRoot).trackEvent('summary_served', served[0].entry.path, Math.round(avgLineCount * 10), { query, resultCount: served.length });
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
// Telemetry is best-effort on read paths (audit invariant I8).
|
|
121
|
+
}
|
|
72
122
|
}
|
|
73
123
|
return {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
124
|
+
results: served.map((c) => {
|
|
125
|
+
const exports = c.summary.exports;
|
|
126
|
+
const capped = exports.length > MAX_EXPORTS_PER_RESULT;
|
|
127
|
+
return {
|
|
128
|
+
path: c.entry.path,
|
|
129
|
+
purpose: c.summary.purpose,
|
|
130
|
+
exports: capped ? exports.slice(0, MAX_EXPORTS_PER_RESULT) : exports,
|
|
131
|
+
...(capped ? { exportsTruncated: exports.length } : {}),
|
|
132
|
+
confidence: c.summary.confidence,
|
|
133
|
+
};
|
|
134
|
+
}),
|
|
135
|
+
totalCached: entries.filter((e) => e.summary).length,
|
|
77
136
|
...(normalizedPrefix ? { scope: normalizedPrefix } : {}),
|
|
78
137
|
};
|
|
79
138
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-by-purpose.js","sourceRoot":"","sources":["../../src/tools/search-by-purpose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"search-by-purpose.js","sourceRoot":"","sources":["../../src/tools/search-by-purpose.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -17,5 +17,11 @@ export interface ImportRef {
|
|
|
17
17
|
target: string;
|
|
18
18
|
specifiers: string[];
|
|
19
19
|
type: 'static' | 'dynamic' | 're-export';
|
|
20
|
+
/**
|
|
21
|
+
* True when the target does not resolve to a file inside the project
|
|
22
|
+
* (bare module specifiers, builtins, unresolvable relative paths).
|
|
23
|
+
* External refs are excluded from the dependency graph.
|
|
24
|
+
*/
|
|
25
|
+
external?: boolean;
|
|
20
26
|
}
|
|
21
27
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACvC;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACvC;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
|