codestrate 0.6.1 → 0.6.3
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 +97 -101
- package/dist/constants.d.ts +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +54 -4
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +198 -119
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts +0 -0
- package/dist/install.d.ts.map +0 -0
- package/dist/install.js +2 -2
- package/dist/install.js.map +1 -1
- package/dist/profiles.d.ts +28 -0
- package/dist/profiles.d.ts.map +1 -0
- package/dist/profiles.js +89 -0
- package/dist/profiles.js.map +1 -0
- package/dist/schemas/index.d.ts +1441 -126
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +221 -10
- package/dist/schemas/index.js.map +1 -1
- package/dist/security/guard.d.ts +15 -2
- package/dist/security/guard.d.ts.map +1 -1
- package/dist/security/guard.js +42 -8
- package/dist/security/guard.js.map +1 -1
- package/dist/services/code-chunker.d.ts +50 -0
- package/dist/services/code-chunker.d.ts.map +1 -0
- package/dist/services/code-chunker.js +148 -0
- package/dist/services/code-chunker.js.map +1 -0
- package/dist/services/code-searcher.d.ts +6 -2
- package/dist/services/code-searcher.d.ts.map +1 -1
- package/dist/services/code-searcher.js +111 -17
- package/dist/services/code-searcher.js.map +1 -1
- package/dist/services/context-builder.d.ts +0 -11
- package/dist/services/context-builder.d.ts.map +1 -1
- package/dist/services/context-builder.js +74 -128
- package/dist/services/context-builder.js.map +1 -1
- package/dist/services/embedding-runtime.d.ts +41 -0
- package/dist/services/embedding-runtime.d.ts.map +1 -0
- package/dist/services/embedding-runtime.js +636 -0
- package/dist/services/embedding-runtime.js.map +1 -0
- package/dist/services/embedding.d.ts +79 -0
- package/dist/services/embedding.d.ts.map +1 -0
- package/dist/services/embedding.js +257 -0
- package/dist/services/embedding.js.map +1 -0
- package/dist/services/index-state.d.ts +74 -0
- package/dist/services/index-state.d.ts.map +1 -0
- package/dist/services/index-state.js +151 -0
- package/dist/services/index-state.js.map +1 -0
- package/dist/services/index-worker.d.ts +60 -0
- package/dist/services/index-worker.d.ts.map +1 -0
- package/dist/services/index-worker.js +182 -0
- package/dist/services/index-worker.js.map +1 -0
- package/dist/services/logger.d.ts +48 -0
- package/dist/services/logger.d.ts.map +1 -0
- package/dist/services/logger.js +106 -0
- package/dist/services/logger.js.map +1 -0
- package/dist/services/memory-store.d.ts +9 -7
- package/dist/services/memory-store.d.ts.map +1 -1
- package/dist/services/memory-store.js +93 -7
- package/dist/services/memory-store.js.map +1 -1
- package/dist/services/repository-parser.d.ts +0 -0
- package/dist/services/repository-parser.d.ts.map +0 -0
- package/dist/services/repository-parser.js +0 -0
- package/dist/services/repository-parser.js.map +0 -0
- package/dist/services/symbol-indexer.d.ts +0 -0
- package/dist/services/symbol-indexer.d.ts.map +1 -1
- package/dist/services/symbol-indexer.js +25 -13
- package/dist/services/symbol-indexer.js.map +1 -1
- package/dist/services/tree-sitter.d.ts +0 -0
- package/dist/services/tree-sitter.d.ts.map +0 -0
- package/dist/services/tree-sitter.js +0 -0
- package/dist/services/tree-sitter.js.map +0 -0
- package/dist/services/validation-runner.d.ts +0 -0
- package/dist/services/validation-runner.d.ts.map +1 -1
- package/dist/services/validation-runner.js +9 -9
- package/dist/services/validation-runner.js.map +1 -1
- package/dist/services/vector-indexer.d.ts +53 -0
- package/dist/services/vector-indexer.d.ts.map +1 -0
- package/dist/services/vector-indexer.js +230 -0
- package/dist/services/vector-indexer.js.map +1 -0
- package/dist/store/index.d.ts +0 -0
- package/dist/store/index.d.ts.map +0 -0
- package/dist/store/index.js +0 -0
- package/dist/store/index.js.map +0 -0
- package/dist/store/interface.d.ts +70 -1
- package/dist/store/interface.d.ts.map +1 -1
- package/dist/store/interface.js +0 -0
- package/dist/store/interface.js.map +0 -0
- package/dist/store/memory.d.ts +0 -0
- package/dist/store/memory.d.ts.map +0 -0
- package/dist/store/memory.js +0 -0
- package/dist/store/memory.js.map +0 -0
- package/dist/store/service.d.ts +49 -0
- package/dist/store/service.d.ts.map +1 -0
- package/dist/store/service.js +147 -0
- package/dist/store/service.js.map +1 -0
- package/dist/store/sqlite.d.ts +68 -3
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +708 -58
- package/dist/store/sqlite.js.map +1 -1
- package/dist/store/vector-store.d.ts +66 -0
- package/dist/store/vector-store.d.ts.map +1 -0
- package/dist/store/vector-store.js +330 -0
- package/dist/store/vector-store.js.map +1 -0
- package/dist/tools/analyze-impact.d.ts +0 -0
- package/dist/tools/analyze-impact.d.ts.map +1 -1
- package/dist/tools/analyze-impact.js +101 -39
- package/dist/tools/analyze-impact.js.map +1 -1
- package/dist/tools/deep-explore.d.ts +0 -0
- package/dist/tools/deep-explore.d.ts.map +1 -1
- package/dist/tools/deep-explore.js +18 -4
- package/dist/tools/deep-explore.js.map +1 -1
- package/dist/tools/detect-cycles.d.ts +3 -0
- package/dist/tools/detect-cycles.d.ts.map +1 -0
- package/dist/tools/detect-cycles.js +61 -0
- package/dist/tools/detect-cycles.js.map +1 -0
- package/dist/tools/detect-dead-code.d.ts +0 -0
- package/dist/tools/detect-dead-code.d.ts.map +1 -1
- package/dist/tools/detect-dead-code.js +1 -0
- package/dist/tools/detect-dead-code.js.map +1 -1
- package/dist/tools/explore.d.ts +13 -0
- package/dist/tools/explore.d.ts.map +1 -1
- package/dist/tools/explore.js +122 -88
- package/dist/tools/explore.js.map +1 -1
- package/dist/tools/get-context.d.ts +15 -0
- package/dist/tools/get-context.d.ts.map +1 -1
- package/dist/tools/get-context.js +66 -61
- package/dist/tools/get-context.js.map +1 -1
- package/dist/tools/graph-explain.d.ts +3 -0
- package/dist/tools/graph-explain.d.ts.map +1 -0
- package/dist/tools/graph-explain.js +140 -0
- package/dist/tools/graph-explain.js.map +1 -0
- package/dist/tools/graph-stats.d.ts +3 -0
- package/dist/tools/graph-stats.d.ts.map +1 -0
- package/dist/tools/graph-stats.js +73 -0
- package/dist/tools/graph-stats.js.map +1 -0
- package/dist/tools/inspect-symbol.d.ts +10 -0
- package/dist/tools/inspect-symbol.d.ts.map +1 -1
- package/dist/tools/inspect-symbol.js +112 -101
- package/dist/tools/inspect-symbol.js.map +1 -1
- package/dist/tools/ping.d.ts +0 -0
- package/dist/tools/ping.d.ts.map +1 -1
- package/dist/tools/ping.js +2 -3
- package/dist/tools/ping.js.map +1 -1
- package/dist/tools/profile.d.ts +9 -0
- package/dist/tools/profile.d.ts.map +1 -0
- package/dist/tools/profile.js +101 -0
- package/dist/tools/profile.js.map +1 -0
- package/dist/tools/query-graph.d.ts +3 -0
- package/dist/tools/query-graph.d.ts.map +1 -0
- package/dist/tools/query-graph.js +157 -0
- package/dist/tools/query-graph.js.map +1 -0
- package/dist/tools/recall-experience.d.ts +0 -0
- package/dist/tools/recall-experience.d.ts.map +1 -1
- package/dist/tools/recall-experience.js +5 -5
- package/dist/tools/recall-experience.js.map +1 -1
- package/dist/tools/record-experience.d.ts +0 -0
- package/dist/tools/record-experience.d.ts.map +1 -1
- package/dist/tools/record-experience.js +2 -5
- package/dist/tools/record-experience.js.map +1 -1
- package/dist/tools/reflect.d.ts +4 -0
- package/dist/tools/reflect.d.ts.map +1 -0
- package/dist/tools/reflect.js +99 -0
- package/dist/tools/reflect.js.map +1 -0
- package/dist/tools/register.d.ts +5 -2
- package/dist/tools/register.d.ts.map +1 -1
- package/dist/tools/register.js +31 -1
- package/dist/tools/register.js.map +1 -1
- package/dist/tools/reindex.d.ts +0 -0
- package/dist/tools/reindex.d.ts.map +1 -1
- package/dist/tools/reindex.js +102 -21
- package/dist/tools/reindex.js.map +1 -1
- package/dist/tools/repo-overview.d.ts +0 -0
- package/dist/tools/repo-overview.d.ts.map +1 -1
- package/dist/tools/repo-overview.js +8 -6
- package/dist/tools/repo-overview.js.map +1 -1
- package/dist/tools/run-validation.d.ts +0 -0
- package/dist/tools/run-validation.d.ts.map +1 -1
- package/dist/tools/run-validation.js +15 -1
- package/dist/tools/run-validation.js.map +1 -1
- package/dist/tools/search-code.d.ts +0 -0
- package/dist/tools/search-code.d.ts.map +1 -1
- package/dist/tools/search-code.js +11 -4
- package/dist/tools/search-code.js.map +1 -1
- package/dist/tools/search-history.d.ts +0 -0
- package/dist/tools/search-history.d.ts.map +0 -0
- package/dist/tools/search-history.js +0 -0
- package/dist/tools/search-history.js.map +0 -0
- package/dist/tools/session-heartbeat.d.ts +0 -0
- package/dist/tools/session-heartbeat.d.ts.map +1 -1
- package/dist/tools/session-heartbeat.js +1 -0
- package/dist/tools/session-heartbeat.js.map +1 -1
- package/dist/tools/session-status.d.ts +0 -0
- package/dist/tools/session-status.d.ts.map +1 -1
- package/dist/tools/session-status.js +1 -0
- package/dist/tools/session-status.js.map +1 -1
- package/dist/tools/status.d.ts +0 -0
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/status.js +87 -24
- package/dist/tools/status.js.map +1 -1
- package/dist/tools/trace-bfs.d.ts +13 -0
- package/dist/tools/trace-bfs.d.ts.map +1 -0
- package/dist/tools/trace-bfs.js +251 -0
- package/dist/tools/trace-bfs.js.map +1 -0
- package/dist/tools/trace-flow.d.ts +1 -1
- package/dist/tools/trace-flow.d.ts.map +1 -1
- package/dist/tools/trace-flow.js +113 -69
- package/dist/tools/trace-flow.js.map +1 -1
- package/dist/types.d.ts +75 -13
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +15 -0
- package/dist/types.js.map +1 -1
- package/grammars/tree-sitter-c.wasm +0 -0
- package/grammars/tree-sitter-cpp.wasm +0 -0
- package/grammars/tree-sitter-go.wasm +0 -0
- package/grammars/tree-sitter-java.wasm +0 -0
- package/grammars/tree-sitter-javascript.wasm +0 -0
- package/grammars/tree-sitter-python.wasm +0 -0
- package/grammars/tree-sitter-rust.wasm +0 -0
- package/grammars/tree-sitter-tsx.wasm +0 -0
- package/grammars/tree-sitter-typescript.wasm +0 -0
- package/package.json +8 -6
|
@@ -5,7 +5,35 @@
|
|
|
5
5
|
* a lightweight fallback. All store operations go through this
|
|
6
6
|
* interface so domain code never depends on a specific backend.
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
export interface GraphStats {
|
|
9
|
+
nodeCount: number;
|
|
10
|
+
edgeCount: number;
|
|
11
|
+
communityCount: number;
|
|
12
|
+
nodeKinds: Record<string, number>;
|
|
13
|
+
edgeKinds: Record<string, number>;
|
|
14
|
+
confidenceBreakdown: Record<string, number>;
|
|
15
|
+
maxDegree: number;
|
|
16
|
+
avgDegree: number;
|
|
17
|
+
unreferencedNodeCount: number;
|
|
18
|
+
}
|
|
19
|
+
export interface BfsOptions {
|
|
20
|
+
maxDepth?: number;
|
|
21
|
+
limit?: number;
|
|
22
|
+
edgeKinds?: string[];
|
|
23
|
+
nodeKinds?: string[];
|
|
24
|
+
direction?: "incoming" | "outgoing" | "both";
|
|
25
|
+
}
|
|
26
|
+
export interface SubgraphResult {
|
|
27
|
+
nodes: GraphNode[];
|
|
28
|
+
edges: GraphEdge[];
|
|
29
|
+
stats: {
|
|
30
|
+
depth: number;
|
|
31
|
+
nodeCount: number;
|
|
32
|
+
edgeCount: number;
|
|
33
|
+
truncated: boolean;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
import type { RepoSnapshot, SymbolInfo, SymbolRelation, Experience, Memory, ValidationResult, GraphNode, GraphEdge } from "../types.js";
|
|
9
37
|
export interface Migration {
|
|
10
38
|
version: number;
|
|
11
39
|
name: string;
|
|
@@ -60,6 +88,47 @@ export interface ValidationResultStore {
|
|
|
60
88
|
save(result: ValidationResult): void;
|
|
61
89
|
getLatest(limit?: number): ValidationResult[];
|
|
62
90
|
}
|
|
91
|
+
export interface Store extends IndexStore, MemoryStore, ValidationResultStore {
|
|
92
|
+
open(): void;
|
|
93
|
+
close(): void;
|
|
94
|
+
isOpen(): boolean;
|
|
95
|
+
purge(repo?: string): void;
|
|
96
|
+
getCurrentVersion(): number;
|
|
97
|
+
migrate(targetVersion?: number): void;
|
|
98
|
+
vacuum(): void;
|
|
99
|
+
backup(destPath: string): void;
|
|
100
|
+
traverseBFS(nodeName: string, opts?: BfsOptions): SubgraphResult;
|
|
101
|
+
traverseBFSCallPath(startNode: string, endNode: string, opts?: BfsOptions): GraphEdge[] | null;
|
|
102
|
+
getGraphNodeByName(name: string): GraphNode | null;
|
|
103
|
+
/** Assign community IDs to graph nodes via connected-components analysis. */
|
|
104
|
+
computeCommunities(): number;
|
|
105
|
+
/** Return the top-N most-connected nodes (god nodes). */
|
|
106
|
+
getGodNodes(topN?: number): GraphNode[];
|
|
107
|
+
/** Return summary graph statistics. */
|
|
108
|
+
getGraphStats(): GraphStats;
|
|
109
|
+
/** Detect circular dependencies in the graph. Returns cycle chains. */
|
|
110
|
+
detectCycles(): Array<{
|
|
111
|
+
cycle: string[];
|
|
112
|
+
kind: string;
|
|
113
|
+
length: number;
|
|
114
|
+
}>;
|
|
115
|
+
/** Record a structured reflection about current session work. */
|
|
116
|
+
recordReflection(sessionId: string, goal: string, task: string, symbols?: string[], files?: string[]): void;
|
|
117
|
+
/** Get recent session reflections. */
|
|
118
|
+
getSessionReflections(sessionId?: string, limit?: number): Array<{
|
|
119
|
+
id: number;
|
|
120
|
+
sessionId: string;
|
|
121
|
+
goal: string;
|
|
122
|
+
task: string;
|
|
123
|
+
symbols: string;
|
|
124
|
+
files: string;
|
|
125
|
+
timestamp: string;
|
|
126
|
+
}>;
|
|
127
|
+
/** Search graph nodes by trigram for CJK support. */
|
|
128
|
+
searchGraphNodesTrigram(query: string, limit?: number): GraphNode[];
|
|
129
|
+
/** Search graph nodes via name_segment_vocab for fast partial match. */
|
|
130
|
+
searchGraphNodesBySegment(segment: string, limit?: number): GraphNode[];
|
|
131
|
+
}
|
|
63
132
|
export interface Store extends IndexStore, MemoryStore, ValidationResultStore {
|
|
64
133
|
open(): void;
|
|
65
134
|
close(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/store/interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/store/interface.ts"],"names":[],"mappings":"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"}
|
package/dist/store/interface.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/store/memory.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/store/memory.js
CHANGED
|
File without changes
|
package/dist/store/memory.js.map
CHANGED
|
File without changes
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store Service — unified access layer over SQLiteStore.
|
|
3
|
+
*
|
|
4
|
+
* This is the production code path. JSON stores (`store/index.ts`,
|
|
5
|
+
* `store/memory.ts`) are kept for debug/export only.
|
|
6
|
+
*
|
|
7
|
+
* All read/write operations go through SQLite as the single
|
|
8
|
+
* source of truth, eliminating dual-write divergence.
|
|
9
|
+
*/
|
|
10
|
+
import type { SymbolInfo, SymbolRelation, RepoSnapshot, Experience, Memory, ValidationResult, GraphNode, GraphEdge } from "../types.js";
|
|
11
|
+
import type { GraphStats } from "./interface.js";
|
|
12
|
+
export declare function getSnapshot(): RepoSnapshot | null;
|
|
13
|
+
export declare function getSymbols(): SymbolInfo[];
|
|
14
|
+
export declare function getSymbol(name: string, file?: string): SymbolInfo | undefined;
|
|
15
|
+
export declare function findSymbols(query: string): SymbolInfo[];
|
|
16
|
+
export declare function findSymbol(name: string): SymbolInfo | undefined;
|
|
17
|
+
export declare function getRelations(): SymbolRelation[];
|
|
18
|
+
export declare function getRelationsForSymbol(symbol: string): SymbolRelation[];
|
|
19
|
+
/**
|
|
20
|
+
* Find all callers of a symbol (incoming "calls" edges).
|
|
21
|
+
*/
|
|
22
|
+
export declare function findCallers(symbolName: string): SymbolRelation[];
|
|
23
|
+
/**
|
|
24
|
+
* Find all callees of a symbol (outgoing "calls" edges).
|
|
25
|
+
*/
|
|
26
|
+
export declare function findCallees(symbolName: string): SymbolRelation[];
|
|
27
|
+
export declare function searchGraphNodesFTS(query: string, limit?: number): GraphNode[];
|
|
28
|
+
export declare function searchGraphNodesCamel(query: string, limit?: number): GraphNode[];
|
|
29
|
+
export declare function findGraphPath(sourceName: string, targetName: string, maxDepth?: number): GraphEdge[] | null;
|
|
30
|
+
export declare function traverseGraphBFS(nodeName: string, opts?: import("./interface.js").BfsOptions): import("./interface.js").SubgraphResult;
|
|
31
|
+
export declare function findShortestPath(startNode: string, endNode: string, opts?: import("./interface.js").BfsOptions): GraphEdge[] | null;
|
|
32
|
+
export declare function getGraphNodeByName(name: string): GraphNode | null;
|
|
33
|
+
export declare function getGraphEdges(nodeName: string, direction?: "incoming" | "outgoing" | "both", kind?: string): GraphEdge[];
|
|
34
|
+
export declare function getUnreferencedNodes(kinds?: string[], limit?: number): GraphNode[];
|
|
35
|
+
export declare function populateGraph(symbols: SymbolInfo[], relations: SymbolRelation[]): void;
|
|
36
|
+
export declare function computeGraphCommunities(): number;
|
|
37
|
+
export declare function getGraphGodNodes(topN?: number): GraphNode[];
|
|
38
|
+
export declare function getGraphStats(): GraphStats;
|
|
39
|
+
export declare function getExperience(id: string): Experience | undefined;
|
|
40
|
+
export declare function getAllExperiences(repo?: string): Experience[];
|
|
41
|
+
export declare function getAllMemories(repo?: string): Memory[];
|
|
42
|
+
export declare function updateQualityScore(id: string, delta: number): void;
|
|
43
|
+
export declare function saveValidationResult(result: ValidationResult): void;
|
|
44
|
+
export declare function getLatestValidationResults(limit?: number): ValidationResult[];
|
|
45
|
+
export declare function openStore(): void;
|
|
46
|
+
export declare function closeStore(): void;
|
|
47
|
+
export declare function isStoreOpen(): boolean;
|
|
48
|
+
export declare function vacuumStore(): void;
|
|
49
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/store/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store Service — unified access layer over SQLiteStore.
|
|
3
|
+
*
|
|
4
|
+
* This is the production code path. JSON stores (`store/index.ts`,
|
|
5
|
+
* `store/memory.ts`) are kept for debug/export only.
|
|
6
|
+
*
|
|
7
|
+
* All read/write operations go through SQLite as the single
|
|
8
|
+
* source of truth, eliminating dual-write divergence.
|
|
9
|
+
*/
|
|
10
|
+
import { getStore } from "./sqlite.js";
|
|
11
|
+
// ─── Repository snapshot ────────────────────────────────
|
|
12
|
+
export function getSnapshot() {
|
|
13
|
+
return getStore().getSnapshot();
|
|
14
|
+
}
|
|
15
|
+
// ─── Symbol queries ─────────────────────────────────────
|
|
16
|
+
export function getSymbols() {
|
|
17
|
+
return getStore().getSymbols();
|
|
18
|
+
}
|
|
19
|
+
export function getSymbol(name, file) {
|
|
20
|
+
return getStore().getSymbol(name, file) ?? undefined;
|
|
21
|
+
}
|
|
22
|
+
export function findSymbols(query) {
|
|
23
|
+
return getStore().searchSymbolsFTS(query);
|
|
24
|
+
}
|
|
25
|
+
export function findSymbol(name) {
|
|
26
|
+
const fromTable = getStore().getSymbol(name);
|
|
27
|
+
if (fromTable)
|
|
28
|
+
return fromTable;
|
|
29
|
+
// Graph fallback when symbols table and graph diverge mid-index or after partial load
|
|
30
|
+
const exact = getStore().getGraphNodeByName(name);
|
|
31
|
+
const node = exact ?? getStore().searchGraphNodes(name, 5).find((n) => n.name === name);
|
|
32
|
+
if (!node)
|
|
33
|
+
return undefined;
|
|
34
|
+
return {
|
|
35
|
+
name: node.name,
|
|
36
|
+
kind: node.kind || "unknown",
|
|
37
|
+
file: node.file,
|
|
38
|
+
line: node.line ?? 0,
|
|
39
|
+
column: node.column ?? 0,
|
|
40
|
+
signature: node.signature ?? "",
|
|
41
|
+
summary: node.signature ?? "",
|
|
42
|
+
imports: [],
|
|
43
|
+
calls: [],
|
|
44
|
+
calledBy: [],
|
|
45
|
+
relatedTests: [],
|
|
46
|
+
commitSha: "",
|
|
47
|
+
repoFingerprint: "",
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
// ─── Relation queries ──────────────────────────────────
|
|
51
|
+
export function getRelations() {
|
|
52
|
+
return getStore().getRelations();
|
|
53
|
+
}
|
|
54
|
+
export function getRelationsForSymbol(symbol) {
|
|
55
|
+
return getStore().getRelationsForSymbol(symbol);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Find all callers of a symbol (incoming "calls" edges).
|
|
59
|
+
*/
|
|
60
|
+
export function findCallers(symbolName) {
|
|
61
|
+
return getStore().getRelationsForSymbol(symbolName).filter((r) => r.kind === "calls" && r.target === symbolName);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Find all callees of a symbol (outgoing "calls" edges).
|
|
65
|
+
*/
|
|
66
|
+
export function findCallees(symbolName) {
|
|
67
|
+
return getStore().getRelationsForSymbol(symbolName).filter((r) => r.kind === "calls" && r.source === symbolName);
|
|
68
|
+
}
|
|
69
|
+
// ─── Graph operations ──────────────────────────────────
|
|
70
|
+
export function searchGraphNodesFTS(query, limit) {
|
|
71
|
+
return getStore().searchGraphNodesFTS(query, limit);
|
|
72
|
+
}
|
|
73
|
+
export function searchGraphNodesCamel(query, limit) {
|
|
74
|
+
return getStore().searchGraphNodesCamel(query, limit);
|
|
75
|
+
}
|
|
76
|
+
export function findGraphPath(sourceName, targetName, maxDepth) {
|
|
77
|
+
const sourceNode = getStore().searchGraphNodes(sourceName, 1);
|
|
78
|
+
const targetNode = getStore().searchGraphNodes(targetName, 1);
|
|
79
|
+
if (!sourceNode.length || !targetNode.length)
|
|
80
|
+
return null;
|
|
81
|
+
return getStore().findGraphPath(sourceNode[0].id, targetNode[0].id, maxDepth);
|
|
82
|
+
}
|
|
83
|
+
// ─── Graph traversal (BFS) ────────────────────────────
|
|
84
|
+
export function traverseGraphBFS(nodeName, opts) {
|
|
85
|
+
return getStore().traverseBFS(nodeName, opts);
|
|
86
|
+
}
|
|
87
|
+
export function findShortestPath(startNode, endNode, opts) {
|
|
88
|
+
return getStore().traverseBFSCallPath(startNode, endNode, opts);
|
|
89
|
+
}
|
|
90
|
+
export function getGraphNodeByName(name) {
|
|
91
|
+
return getStore().getGraphNodeByName(name);
|
|
92
|
+
}
|
|
93
|
+
export function getGraphEdges(nodeName, direction, kind) {
|
|
94
|
+
const nodes = getStore().searchGraphNodes(nodeName, 1);
|
|
95
|
+
if (!nodes.length)
|
|
96
|
+
return [];
|
|
97
|
+
return getStore().getGraphEdges(nodes[0].id, direction, kind);
|
|
98
|
+
}
|
|
99
|
+
export function getUnreferencedNodes(kinds, limit) {
|
|
100
|
+
return getStore().getUnreferencedNodes(kinds, limit);
|
|
101
|
+
}
|
|
102
|
+
export function populateGraph(symbols, relations) {
|
|
103
|
+
getStore().populateGraph(symbols, relations);
|
|
104
|
+
}
|
|
105
|
+
export function computeGraphCommunities() {
|
|
106
|
+
return getStore().computeCommunities();
|
|
107
|
+
}
|
|
108
|
+
export function getGraphGodNodes(topN) {
|
|
109
|
+
return getStore().getGodNodes(topN);
|
|
110
|
+
}
|
|
111
|
+
export function getGraphStats() {
|
|
112
|
+
return getStore().getGraphStats();
|
|
113
|
+
}
|
|
114
|
+
// ─── Memory / Experience ───────────────────────────────
|
|
115
|
+
export function getExperience(id) {
|
|
116
|
+
return getStore().getExperience(id) ?? undefined;
|
|
117
|
+
}
|
|
118
|
+
export function getAllExperiences(repo) {
|
|
119
|
+
return getStore().getAllExperiences(repo);
|
|
120
|
+
}
|
|
121
|
+
export function getAllMemories(repo) {
|
|
122
|
+
return getStore().getAllMemories(repo);
|
|
123
|
+
}
|
|
124
|
+
export function updateQualityScore(id, delta) {
|
|
125
|
+
getStore().updateQualityScore(id, delta);
|
|
126
|
+
}
|
|
127
|
+
// ─── Validation ────────────────────────────────────────
|
|
128
|
+
export function saveValidationResult(result) {
|
|
129
|
+
getStore().save(result);
|
|
130
|
+
}
|
|
131
|
+
export function getLatestValidationResults(limit) {
|
|
132
|
+
return getStore().getLatest(limit);
|
|
133
|
+
}
|
|
134
|
+
// ─── Store lifecycle ───────────────────────────────────
|
|
135
|
+
export function openStore() {
|
|
136
|
+
getStore().open();
|
|
137
|
+
}
|
|
138
|
+
export function closeStore() {
|
|
139
|
+
getStore().close();
|
|
140
|
+
}
|
|
141
|
+
export function isStoreOpen() {
|
|
142
|
+
return getStore().isOpen();
|
|
143
|
+
}
|
|
144
|
+
export function vacuumStore() {
|
|
145
|
+
getStore().vacuum();
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/store/service.ts"],"names":[],"mappings":"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"}
|
package/dist/store/sqlite.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module store/sqlite
|
|
8
8
|
*/
|
|
9
|
-
import { type Store } from "./interface.js";
|
|
9
|
+
import { type Store, type BfsOptions, type SubgraphResult, type GraphStats } from "./interface.js";
|
|
10
10
|
import type { RepoSnapshot, SymbolInfo, SymbolRelation, Experience, Memory, ValidationResult, GraphNode, GraphEdge } from "../types.js";
|
|
11
11
|
export declare class SQLiteStore implements Store {
|
|
12
12
|
private db;
|
|
@@ -41,7 +41,7 @@ export declare class SQLiteStore implements Store {
|
|
|
41
41
|
populateGraph(symbols: SymbolInfo[], relations: SymbolRelation[]): void;
|
|
42
42
|
/** Get a graph node by ID. */
|
|
43
43
|
getGraphNode(id: number): GraphNode | null;
|
|
44
|
-
/** Get edges for a graph node. */
|
|
44
|
+
/** Get edges for a graph node — single query with OR for direction="both". */
|
|
45
45
|
getGraphEdges(nodeId: number, direction?: "incoming" | "outgoing" | "both", kind?: string): GraphEdge[];
|
|
46
46
|
/** Search graph nodes by name (LIKE fallback). */
|
|
47
47
|
searchGraphNodes(query: string, limit?: number): GraphNode[];
|
|
@@ -51,10 +51,20 @@ export declare class SQLiteStore implements Store {
|
|
|
51
51
|
searchGraphNodesCamel(query: string, limit?: number): GraphNode[];
|
|
52
52
|
/** Find nodes with zero incoming edges — potential dead code. */
|
|
53
53
|
getUnreferencedNodes(kinds?: string[], limit?: number): GraphNode[];
|
|
54
|
-
/** Find a path between two graph nodes using BFS. */
|
|
54
|
+
/** Find a path between two graph nodes using BFS — pre-loads all edges for O(1) traversal. */
|
|
55
55
|
findGraphPath(fromNodeId: number, toNodeId: number, maxDepth?: number): GraphEdge[] | null;
|
|
56
56
|
/** Remove graph entries for a file (cascade via FK — foreign_keys must be ON). */
|
|
57
57
|
removeGraphForFile(file: string): void;
|
|
58
|
+
/**
|
|
59
|
+
* Find test files related to a source file by naming convention.
|
|
60
|
+
* Tests are found by matching `<name>.test.<ext>`, `<name>.spec.<ext>`,
|
|
61
|
+
* or `test/<name>.<ext>` patterns against the source file's basename.
|
|
62
|
+
*/
|
|
63
|
+
findRelatedTests(filePath: string): string[];
|
|
64
|
+
/**
|
|
65
|
+
* Find files in a scope (directory prefix match).
|
|
66
|
+
*/
|
|
67
|
+
findFilesInScope(scope: string): string[];
|
|
58
68
|
/** Clear all graph data. */
|
|
59
69
|
clearGraph(): void;
|
|
60
70
|
getRelations(): SymbolRelation[];
|
|
@@ -89,6 +99,61 @@ export declare class SQLiteStore implements Store {
|
|
|
89
99
|
private rowToSymbol;
|
|
90
100
|
private rowToExperience;
|
|
91
101
|
private rowToMemory;
|
|
102
|
+
/**
|
|
103
|
+
* Look up a graph node by name.
|
|
104
|
+
* Returns the first matching node if multiple exist.
|
|
105
|
+
*/
|
|
106
|
+
getGraphNodeByName(name: string): GraphNode | null;
|
|
107
|
+
/**
|
|
108
|
+
* BFS traversal from a named graph node using a recursive CTE.
|
|
109
|
+
* Returns a SubgraphResult with all reachable nodes, edges, and stats.
|
|
110
|
+
*
|
|
111
|
+
* The recursive CTE handles cycle detection via a visited-set path column,
|
|
112
|
+
* so a diamond pattern is traversed exactly once per node.
|
|
113
|
+
*/
|
|
114
|
+
traverseBFS(nodeName: string, opts?: BfsOptions): SubgraphResult;
|
|
115
|
+
/**
|
|
116
|
+
* Find the shortest directed path between two named graph nodes.
|
|
117
|
+
* Uses a bidirectional BFS strategy: a recursive CTE anchored at the start
|
|
118
|
+
* searches for the end node, tracking paths.
|
|
119
|
+
*
|
|
120
|
+
* Returns the sequence of edges forming the path, or null if unreachable.
|
|
121
|
+
*/
|
|
122
|
+
traverseBFSCallPath(startNode: string, endNode: string, opts?: BfsOptions): GraphEdge[] | null;
|
|
123
|
+
/**
|
|
124
|
+
* Assign community IDs to graph nodes via connected-components analysis.
|
|
125
|
+
* Uses Union-Find (DSU) with path compression, O(n α(n)) time.
|
|
126
|
+
* Each connected component gets the minimum node ID as its community value.
|
|
127
|
+
* Returns the number of communities found.
|
|
128
|
+
*/
|
|
129
|
+
computeCommunities(): number;
|
|
130
|
+
/**
|
|
131
|
+
* Return the top-N most-connected graph nodes (god nodes).
|
|
132
|
+
*/
|
|
133
|
+
getGodNodes(topN?: number): GraphNode[];
|
|
134
|
+
/**
|
|
135
|
+
* Return summary graph statistics.
|
|
136
|
+
*/
|
|
137
|
+
getGraphStats(): GraphStats;
|
|
138
|
+
detectCycles(): Array<{
|
|
139
|
+
cycle: string[];
|
|
140
|
+
kind: string;
|
|
141
|
+
length: number;
|
|
142
|
+
}>;
|
|
143
|
+
/** Batch-resolve node IDs to names — one query instead of N. */
|
|
144
|
+
private resolveNodeNames;
|
|
145
|
+
searchGraphNodesTrigram(query: string, limit?: number): GraphNode[];
|
|
146
|
+
searchGraphNodesBySegment(segment: string, limit?: number): GraphNode[];
|
|
147
|
+
recordReflection(sessionId: string, goal: string, task: string, symbols?: string[], files?: string[]): void;
|
|
148
|
+
getSessionReflections(sessionId?: string, limit?: number): Array<{
|
|
149
|
+
id: number;
|
|
150
|
+
sessionId: string;
|
|
151
|
+
goal: string;
|
|
152
|
+
task: string;
|
|
153
|
+
symbols: string;
|
|
154
|
+
files: string;
|
|
155
|
+
timestamp: string;
|
|
156
|
+
}>;
|
|
92
157
|
}
|
|
93
158
|
export declare function getStore(dbPath?: string): SQLiteStore;
|
|
94
159
|
export declare function closeStore(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/store/sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EACL,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/store/sqlite.ts"],"names":[],"mappings":"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"}
|