chiasmus 0.1.15 → 0.1.16
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 +21 -4
- package/dist/graph/analyses.d.ts +25 -2
- package/dist/graph/analyses.d.ts.map +1 -1
- package/dist/graph/analyses.js +71 -5
- package/dist/graph/analyses.js.map +1 -1
- package/dist/graph/cache.d.ts +72 -0
- package/dist/graph/cache.d.ts.map +1 -0
- package/dist/graph/cache.js +332 -0
- package/dist/graph/cache.js.map +1 -0
- package/dist/graph/community.d.ts +18 -0
- package/dist/graph/community.d.ts.map +1 -0
- package/dist/graph/community.js +116 -0
- package/dist/graph/community.js.map +1 -0
- package/dist/graph/diff.d.ts +25 -0
- package/dist/graph/diff.d.ts.map +1 -0
- package/dist/graph/diff.js +124 -0
- package/dist/graph/diff.js.map +1 -0
- package/dist/graph/entry-points.d.ts +22 -0
- package/dist/graph/entry-points.d.ts.map +1 -0
- package/dist/graph/entry-points.js +52 -0
- package/dist/graph/entry-points.js.map +1 -0
- package/dist/graph/extractor.d.ts +9 -1
- package/dist/graph/extractor.d.ts.map +1 -1
- package/dist/graph/extractor.js +24 -7
- package/dist/graph/extractor.js.map +1 -1
- package/dist/graph/facts.d.ts +11 -1
- package/dist/graph/facts.d.ts.map +1 -1
- package/dist/graph/facts.js +52 -1
- package/dist/graph/facts.js.map +1 -1
- package/dist/graph/graph-util.d.ts +19 -0
- package/dist/graph/graph-util.d.ts.map +1 -0
- package/dist/graph/graph-util.js +59 -0
- package/dist/graph/graph-util.js.map +1 -0
- package/dist/graph/index.d.ts +10 -1
- package/dist/graph/index.d.ts.map +1 -1
- package/dist/graph/index.js +5 -0
- package/dist/graph/index.js.map +1 -1
- package/dist/graph/insights.d.ts +35 -0
- package/dist/graph/insights.d.ts.map +1 -0
- package/dist/graph/insights.js +77 -0
- package/dist/graph/insights.js.map +1 -0
- package/dist/graph/types.d.ts +23 -0
- package/dist/graph/types.d.ts.map +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +65 -33
- package/dist/mcp-server.js.map +1 -1
- package/dist/review.d.ts +8 -0
- package/dist/review.d.ts.map +1 -1
- package/dist/review.js +43 -3
- package/dist/review.js.map +1 -1
- package/package.json +7 -1
package/README.md
CHANGED
|
@@ -122,9 +122,24 @@ chiasmus_graph files=["main.go", "handler.go"] analysis="impact" target="Query"
|
|
|
122
122
|
→ { analysis: "impact", result: ["Handle", "main"] }
|
|
123
123
|
```
|
|
124
124
|
|
|
125
|
-
Analyses: `summary`, `callers`, `callees`, `reachability`, `dead-code`, `cycles`, `path`, `impact`, `facts`.
|
|
125
|
+
Analyses: `summary`, `callers`, `callees`, `reachability`, `dead-code`, `cycles`, `path`, `impact`, `layer-violation`, `communities`, `hubs`, `bridges`, `surprises`, `diff`, `entry-points`, `facts`.
|
|
126
126
|
|
|
127
|
-
Reachability-heavy analyses (`cycles`, `reachability`, `path`, `impact`, `dead-code`, `callers`, `callees`) run on native O(V+E) graph algorithms and scale to codebases with thousands of functions. The `facts` analysis
|
|
127
|
+
Reachability-heavy analyses (`cycles`, `reachability`, `path`, `impact`, `dead-code`, `callers`, `callees`) run on native O(V+E) graph algorithms and scale to codebases with thousands of functions. `communities` uses Louvain; `bridges` uses exact betweenness centrality. The `facts` analysis emits raw Prolog for use with `chiasmus_verify`, capped at 10 MB — above that limit the result is `{ error, size, limit }` rather than a program string, so narrow the file set or call a specific analysis directly. Opt in to `include_insights=true` on `facts` to also emit `community/2`, `cohesion/2`, `hub/2`, `bridge/2` predicates.
|
|
128
|
+
|
|
129
|
+
### Persistent cache and PR diff
|
|
130
|
+
|
|
131
|
+
Pass `cache=true` on `chiasmus_graph` to enable a per-file content-hash cache — unchanged files skip re-parsing across calls. On a 42-file TypeScript repo, warm hits run at ~2.5ms vs ~170ms cold (60× speedup). Cache lives under `$CHIASMUS_CACHE_DIR` (default `~/.cache/chiasmus`) with an LRU budget per repo.
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
chiasmus_graph files=[...] analysis="summary" cache=true save_snapshot="main"
|
|
135
|
+
→ extracts + saves the current graph as the "main" baseline
|
|
136
|
+
|
|
137
|
+
# After branch changes:
|
|
138
|
+
chiasmus_graph files=[...] analysis="diff" against="main" cache=true
|
|
139
|
+
→ { addedNodes, removedNodes, addedEdges, removedEdges, summary }
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
`chiasmus_review` accepts `delta_against="<snapshot>"` — when set, a phase 0 diffs against the snapshot, impact-checks removed symbols, and scopes later phases to what the PR actually changed.
|
|
128
143
|
|
|
129
144
|
**`chiasmus_skills`** — Search the template library. Ships with 8 starter templates covering authorization, configuration, dependency resolution, validation, rule inference, and graph reachability. By-name lookups include related template suggestions.
|
|
130
145
|
|
|
@@ -174,7 +189,7 @@ Each action carries an `interpret` field describing how to score the result. Aft
|
|
|
174
189
|
|
|
175
190
|
## Recommended Workflow
|
|
176
191
|
|
|
177
|
-
The calling LLM (
|
|
192
|
+
The calling LLM (GLM, GPT, etc.) drives the process — no API key needed:
|
|
178
193
|
|
|
179
194
|
1. `chiasmus_formalize problem="Can our RBAC rules ever conflict?"` → get template + slot instructions
|
|
180
195
|
2. Fill the template slots using your knowledge of the user's codebase
|
|
@@ -383,7 +398,7 @@ library.close();
|
|
|
383
398
|
|---------|---------|
|
|
384
399
|
| `chiasmus` | All public APIs (barrel export) |
|
|
385
400
|
| `chiasmus/solvers` | `SolverSession`, `createZ3Solver`, `createPrologSolver`, `correctionLoop`, solver types |
|
|
386
|
-
| `chiasmus/graph` | `extractGraph`, `runAnalysis`, `runAnalysisFromGraph`, `buildFactsResult`, `
|
|
401
|
+
| `chiasmus/graph` | `extractGraph`, `runAnalysis`, `runAnalysisFromGraph`, `buildFactsResult`, `graphToProlog`, `parseMermaid`, `detectCommunities`, `detectHubs`, `detectBridges`, `detectSurprisingConnections`, `detectEntryPoints`, `graphDiff`, `saveSnapshot`/`loadSnapshot`/`listSnapshots`, cache APIs, adapter registry, graph types |
|
|
387
402
|
| `chiasmus/formalize` | `lintSpec`, `classifyFeedback`, `extractPrologQuery`, `FormalizationEngine`, result types |
|
|
388
403
|
| `chiasmus/skills` | `SkillLibrary`, `SkillLearner`, `craftTemplate`, `validateTemplate`, skill types |
|
|
389
404
|
| `chiasmus/llm` | `createLLMFromEnv`, `AnthropicAdapter`, `OpenAICompatibleAdapter`, LLM types |
|
|
@@ -394,6 +409,8 @@ library.close();
|
|
|
394
409
|
| Variable | Default | Purpose |
|
|
395
410
|
|----------|---------|---------|
|
|
396
411
|
| `CHIASMUS_HOME` | `~/.chiasmus/` | Database, skill storage, and config |
|
|
412
|
+
| `CHIASMUS_CACHE_DIR` | `~/.cache/chiasmus` | Per-file extraction cache + graph snapshots (when `cache=true`) |
|
|
413
|
+
| `CHIASMUS_CACHE_MAX_PER_REPO` | `67108864` (64 MB) | Per-repo cache byte budget — LRU eviction above this |
|
|
397
414
|
| `ANTHROPIC_API_KEY` | — | Optional: Anthropic provider for autonomous mode |
|
|
398
415
|
| `DEEPSEEK_API_KEY` | — | Optional: DeepSeek provider for autonomous mode |
|
|
399
416
|
| `OPENAI_API_KEY` | — | Optional: OpenAI provider for autonomous mode |
|
package/dist/graph/analyses.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type CacheOptions } from "./cache.js";
|
|
1
2
|
import type { CodeGraph } from "./types.js";
|
|
2
3
|
/**
|
|
3
4
|
* Maximum byte size of a `facts` analysis response. Above this the Prolog
|
|
@@ -19,14 +20,36 @@ export interface FactsOversizeError {
|
|
|
19
20
|
* callers (and the MCP transport) can surface a clear failure instead of
|
|
20
21
|
* timing out mid-serialize.
|
|
21
22
|
*/
|
|
22
|
-
export declare function buildFactsResult(graph: CodeGraph, entryPoints: string[] | undefined, maxBytes?: number
|
|
23
|
-
|
|
23
|
+
export declare function buildFactsResult(graph: CodeGraph, entryPoints: string[] | undefined, maxBytes?: number, prologOpts?: {
|
|
24
|
+
includeInsights?: boolean;
|
|
25
|
+
}): string | FactsOversizeError;
|
|
26
|
+
export type AnalysisType = "summary" | "callers" | "callees" | "reachability" | "dead-code" | "cycles" | "path" | "impact" | "facts" | "layer-violation" | "communities" | "hubs" | "bridges" | "surprises" | "diff" | "entry-points";
|
|
24
27
|
export interface AnalysisRequest {
|
|
25
28
|
analysis: AnalysisType;
|
|
26
29
|
target?: string;
|
|
27
30
|
from?: string;
|
|
28
31
|
to?: string;
|
|
29
32
|
entryPoints?: string[];
|
|
33
|
+
/** Snapshot name to diff against (required when analysis="diff"). */
|
|
34
|
+
against?: string;
|
|
35
|
+
/**
|
|
36
|
+
* When set, the extracted graph is saved under this snapshot name after
|
|
37
|
+
* analysis completes. Useful for capturing a baseline ("main") that a
|
|
38
|
+
* later `diff` call can compare against.
|
|
39
|
+
*/
|
|
40
|
+
saveSnapshot?: string;
|
|
41
|
+
/**
|
|
42
|
+
* For analysis="facts" only: also emit community/2, cohesion/2, hub/2,
|
|
43
|
+
* bridge/2 facts alongside the base fact set. Off by default since these
|
|
44
|
+
* add O(V+E) work and bloat the fact dump.
|
|
45
|
+
*/
|
|
46
|
+
includeInsights?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Enable persistent per-file extraction cache. Supply an object (with
|
|
49
|
+
* optional cacheDir/repoKey/budget overrides) to opt in. Omit or pass
|
|
50
|
+
* undefined to extract fresh every call.
|
|
51
|
+
*/
|
|
52
|
+
cache?: CacheOptions;
|
|
30
53
|
}
|
|
31
54
|
export interface AnalysisResult {
|
|
32
55
|
analysis: AnalysisType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyses.d.ts","sourceRoot":"","sources":["../../src/graph/analyses.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analyses.d.ts","sourceRoot":"","sources":["../../src/graph/analyses.ts"],"names":[],"mappings":"AAGA,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAc3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,QAAmB,CAAC;AAExD,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,EACjC,QAAQ,GAAE,MAAgC,EAC1C,UAAU,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GACzC,MAAM,GAAG,kBAAkB,CAa7B;AAED,MAAM,MAAM,YAAY,GACpB,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,GAClD,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GACpD,iBAAiB,GACjB,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAChD,MAAM,GAAG,cAAc,CAAC;AAE5B,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,gGAAgG;IAChG,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,qDAAqD;AACrD,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CAqEzB;AAED,yEAAyE;AACzE,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CAEzB"}
|
package/dist/graph/analyses.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { readFileSync, statSync } from "node:fs";
|
|
2
2
|
import { extractGraph } from "./extractor.js";
|
|
3
3
|
import { graphToProlog } from "./facts.js";
|
|
4
|
+
import { loadSnapshot, saveSnapshot } from "./cache.js";
|
|
5
|
+
import { detectCommunities } from "./community.js";
|
|
6
|
+
import { detectHubs, detectBridges, detectSurprisingConnections } from "./insights.js";
|
|
7
|
+
import { graphDiff } from "./diff.js";
|
|
8
|
+
import { detectEntryPoints } from "./entry-points.js";
|
|
4
9
|
import { cycles as nativeCycles, reachability as nativeReachability, path as nativePath, impact as nativeImpact, deadCode as nativeDeadCode, callers as nativeCallers, callees as nativeCallees, } from "./native-analyses.js";
|
|
5
10
|
const MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB
|
|
6
11
|
/**
|
|
@@ -17,8 +22,8 @@ export const DEFAULT_FACTS_MAX_BYTES = 10 * 1024 * 1024;
|
|
|
17
22
|
* callers (and the MCP transport) can surface a clear failure instead of
|
|
18
23
|
* timing out mid-serialize.
|
|
19
24
|
*/
|
|
20
|
-
export function buildFactsResult(graph, entryPoints, maxBytes = DEFAULT_FACTS_MAX_BYTES) {
|
|
21
|
-
const program = graphToProlog(graph, entryPoints);
|
|
25
|
+
export function buildFactsResult(graph, entryPoints, maxBytes = DEFAULT_FACTS_MAX_BYTES, prologOpts) {
|
|
26
|
+
const program = graphToProlog(graph, entryPoints, prologOpts);
|
|
22
27
|
if (program.length > maxBytes) {
|
|
23
28
|
return {
|
|
24
29
|
error: `Prolog fact dump is ${program.length} bytes, exceeds the ${maxBytes} byte cap. ` +
|
|
@@ -59,7 +64,36 @@ export async function runAnalysis(filePaths, request) {
|
|
|
59
64
|
warnings,
|
|
60
65
|
};
|
|
61
66
|
}
|
|
62
|
-
|
|
67
|
+
// Guard: if the caller both saves AND diffs against the same snapshot
|
|
68
|
+
// name, the save would clobber the baseline before the diff runs,
|
|
69
|
+
// producing a silent "no changes" result. Reject explicitly.
|
|
70
|
+
if (request.saveSnapshot &&
|
|
71
|
+
request.analysis === "diff" &&
|
|
72
|
+
request.against === request.saveSnapshot) {
|
|
73
|
+
return {
|
|
74
|
+
analysis: request.analysis,
|
|
75
|
+
result: {
|
|
76
|
+
error: `saveSnapshot and against cannot name the same snapshot ('${request.saveSnapshot}') — ` +
|
|
77
|
+
"the save would overwrite the baseline before the diff runs. " +
|
|
78
|
+
"Use distinct names (e.g. save_snapshot='feature-branch', against='main').",
|
|
79
|
+
},
|
|
80
|
+
warnings: warnings.length > 0 ? warnings : undefined,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
const graph = await extractGraph(files, request.cache ? { cache: request.cache } : {});
|
|
84
|
+
if (request.saveSnapshot) {
|
|
85
|
+
if (!request.cache) {
|
|
86
|
+
warnings.push("saveSnapshot ignored: cache option is required to persist snapshots");
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
try {
|
|
90
|
+
await saveSnapshot(request.saveSnapshot, graph, request.cache);
|
|
91
|
+
}
|
|
92
|
+
catch (e) {
|
|
93
|
+
warnings.push(`Failed to save snapshot ${request.saveSnapshot}: ${e instanceof Error ? e.message : String(e)}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
63
97
|
const base = await runOnGraph(graph, request);
|
|
64
98
|
return warnings.length > 0 ? { ...base, warnings } : base;
|
|
65
99
|
}
|
|
@@ -78,7 +112,12 @@ export async function runAnalysisFromGraph(graph, request) {
|
|
|
78
112
|
async function runOnGraph(graph, request) {
|
|
79
113
|
switch (request.analysis) {
|
|
80
114
|
case "facts":
|
|
81
|
-
return {
|
|
115
|
+
return {
|
|
116
|
+
analysis: "facts",
|
|
117
|
+
result: buildFactsResult(graph, request.entryPoints, DEFAULT_FACTS_MAX_BYTES, {
|
|
118
|
+
includeInsights: request.includeInsights ?? false,
|
|
119
|
+
}),
|
|
120
|
+
};
|
|
82
121
|
case "summary":
|
|
83
122
|
return { analysis: "summary", result: buildSummary(graph) };
|
|
84
123
|
case "layer-violation":
|
|
@@ -110,6 +149,29 @@ async function runOnGraph(graph, request) {
|
|
|
110
149
|
if (!request.target)
|
|
111
150
|
return missingParams("impact");
|
|
112
151
|
return { analysis: "impact", result: nativeImpact(graph, request.target) };
|
|
152
|
+
case "communities":
|
|
153
|
+
return { analysis: "communities", result: detectCommunities(graph) };
|
|
154
|
+
case "hubs":
|
|
155
|
+
return { analysis: "hubs", result: detectHubs(graph) };
|
|
156
|
+
case "bridges":
|
|
157
|
+
return { analysis: "bridges", result: detectBridges(graph) };
|
|
158
|
+
case "surprises":
|
|
159
|
+
return { analysis: "surprises", result: detectSurprisingConnections(graph) };
|
|
160
|
+
case "entry-points":
|
|
161
|
+
return { analysis: "entry-points", result: detectEntryPoints(graph) };
|
|
162
|
+
case "diff": {
|
|
163
|
+
if (!request.against) {
|
|
164
|
+
return { analysis: "diff", result: { error: "Missing required parameter 'against' — specify a snapshot name to diff against" } };
|
|
165
|
+
}
|
|
166
|
+
if (!request.cache) {
|
|
167
|
+
return { analysis: "diff", result: { error: "diff requires a cache option so snapshots can be located on disk" } };
|
|
168
|
+
}
|
|
169
|
+
const baseline = await loadSnapshot(request.against, request.cache);
|
|
170
|
+
if (!baseline) {
|
|
171
|
+
return { analysis: "diff", result: { error: `Snapshot '${request.against}' not found. Save one first via saveSnapshot.` } };
|
|
172
|
+
}
|
|
173
|
+
return { analysis: "diff", result: graphDiff(baseline, graph) };
|
|
174
|
+
}
|
|
113
175
|
default:
|
|
114
176
|
return { analysis: request.analysis, result: { error: `Unknown analysis: ${request.analysis}` } };
|
|
115
177
|
}
|
|
@@ -167,7 +229,7 @@ function buildSummary(graph) {
|
|
|
167
229
|
const files = new Set(graph.defines.map((d) => d.file));
|
|
168
230
|
const functions = graph.defines.filter((d) => d.kind === "function" || d.kind === "method").length;
|
|
169
231
|
const classes = graph.defines.filter((d) => d.kind === "class").length;
|
|
170
|
-
|
|
232
|
+
const summary = {
|
|
171
233
|
files: files.size,
|
|
172
234
|
functions,
|
|
173
235
|
classes,
|
|
@@ -175,5 +237,9 @@ function buildSummary(graph) {
|
|
|
175
237
|
imports: graph.imports.length,
|
|
176
238
|
exports: graph.exports.length,
|
|
177
239
|
};
|
|
240
|
+
if (graph.hyperedges && graph.hyperedges.length > 0) {
|
|
241
|
+
summary.hyperedges = graph.hyperedges.length;
|
|
242
|
+
}
|
|
243
|
+
return summary;
|
|
178
244
|
}
|
|
179
245
|
//# sourceMappingURL=analyses.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyses.js","sourceRoot":"","sources":["../../src/graph/analyses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,MAAM,IAAI,YAAY,EACtB,YAAY,IAAI,kBAAkB,EAClC,IAAI,IAAI,UAAU,EAClB,MAAM,IAAI,YAAY,EACtB,QAAQ,IAAI,cAAc,EAC1B,OAAO,IAAI,aAAa,EACxB,OAAO,IAAI,aAAa,GACzB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO;AAE/C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AASxD;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAgB,EAChB,WAAiC,EACjC,WAAmB,uBAAuB;IAE1C,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"analyses.js","sourceRoot":"","sources":["../../src/graph/analyses.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* On-disk cache for per-file CodeGraph extraction results.
|
|
3
|
+
*
|
|
4
|
+
* Layout:
|
|
5
|
+
* <cacheDir>/<repoKey>/
|
|
6
|
+
* .lock proper-lockfile target
|
|
7
|
+
* manifest.json { schemaVersion, entries: {absPath: {hash, size, savedAt}} }
|
|
8
|
+
* files/<hash>.json one serialized CodeGraph fragment per cached file
|
|
9
|
+
* snapshots/<name>.json full serialized graph at a point in time
|
|
10
|
+
*
|
|
11
|
+
* All manifest read-modify-write sequences serialize through `withRepoLock`.
|
|
12
|
+
* Readers tolerate a racing eviction by treating a missing file as a miss.
|
|
13
|
+
* LRU is tracked via file mtime: `utimes` bumps the entry on every hit, and
|
|
14
|
+
* eviction sorts oldest-first.
|
|
15
|
+
*/
|
|
16
|
+
import type { CodeGraph } from "./types.js";
|
|
17
|
+
export declare const CACHE_SCHEMA_VERSION = "1";
|
|
18
|
+
export interface CacheOptions {
|
|
19
|
+
/** Root cache directory. Defaults to $CHIASMUS_CACHE_DIR or ~/.cache/chiasmus. */
|
|
20
|
+
cacheDir?: string;
|
|
21
|
+
/** Identifier for a specific repository/project. Defaults to "default". */
|
|
22
|
+
repoKey?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Per-repo byte budget. Defaults to $CHIASMUS_CACHE_MAX_PER_REPO or 64 MB.
|
|
25
|
+
*/
|
|
26
|
+
maxBytesPerRepo?: number;
|
|
27
|
+
}
|
|
28
|
+
export interface CachePaths {
|
|
29
|
+
cacheDir: string;
|
|
30
|
+
repoDir: string;
|
|
31
|
+
filesDir: string;
|
|
32
|
+
manifestPath: string;
|
|
33
|
+
lockPath: string;
|
|
34
|
+
}
|
|
35
|
+
/** Deterministic repoKey derived from a working directory — safe across sessions. */
|
|
36
|
+
export declare function defaultRepoKey(cwd?: string): string;
|
|
37
|
+
export declare function resolveCachePaths(opts?: CacheOptions): CachePaths;
|
|
38
|
+
/**
|
|
39
|
+
* Per-file content hash. The path suffix prevents two distinct files with
|
|
40
|
+
* identical content from colliding.
|
|
41
|
+
*/
|
|
42
|
+
export declare function fileHash(content: string, absPath: string): string;
|
|
43
|
+
export declare function checkFileCache(files: Array<{
|
|
44
|
+
path: string;
|
|
45
|
+
content: string;
|
|
46
|
+
}>, opts?: CacheOptions): Promise<{
|
|
47
|
+
hits: Array<{
|
|
48
|
+
path: string;
|
|
49
|
+
graph: CodeGraph;
|
|
50
|
+
}>;
|
|
51
|
+
misses: Array<{
|
|
52
|
+
path: string;
|
|
53
|
+
content: string;
|
|
54
|
+
}>;
|
|
55
|
+
}>;
|
|
56
|
+
export declare function saveFileCache(items: Array<{
|
|
57
|
+
path: string;
|
|
58
|
+
content: string;
|
|
59
|
+
graph: CodeGraph;
|
|
60
|
+
}>, opts?: CacheOptions): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Public eviction entry point. Prefer the in-save fast path; use this only
|
|
63
|
+
* when invoking eviction independently of a save (e.g. to reclaim space
|
|
64
|
+
* after a budget change).
|
|
65
|
+
*/
|
|
66
|
+
export declare function evictLRU(opts?: CacheOptions): Promise<void>;
|
|
67
|
+
export declare function clearRepoCache(opts?: CacheOptions): Promise<void>;
|
|
68
|
+
export declare function saveSnapshot(name: string, graph: CodeGraph, opts?: CacheOptions): Promise<void>;
|
|
69
|
+
export declare function loadSnapshot(name: string, opts?: CacheOptions): Promise<CodeGraph | null>;
|
|
70
|
+
export declare function listSnapshots(opts?: CacheOptions): Promise<string[]>;
|
|
71
|
+
export declare function deleteSnapshot(name: string, opts?: CacheOptions): Promise<void>;
|
|
72
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/graph/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAIxC,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA2BD,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAElE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,YAAiB,GAAG,UAAU,CAWrE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAMjE;AAsED,wBAAsB,cAAc,CAClC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EAC/C,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC;IACT,IAAI,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAChD,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD,CAAC,CA2CD;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC,EACjE,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,IAAI,CAAC,CAsCf;AA0DD;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOrE;AAED,wBAAsB,cAAc,CAAC,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAM3E;AAgBD,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,EAChB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAQ3B;AAED,wBAAsB,aAAa,CAAC,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQ9E;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,IAAI,CAAC,CAKf"}
|