@getripple/core 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-intent.js","sourceRoot":"","sources":["../src/change-intent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,346 @@
1
+ /**
2
+ * graph.ts — Ripple
3
+ * Core dependency graph engine for Ripple.
4
+ *
5
+ * This file owns the local architectural model that powers:
6
+ * - Impact Lens file relationships
7
+ * - CodeLens caller counts
8
+ * - Safety Check blast-radius warnings
9
+ * - AI-agent context files under .ripple/
10
+ *
11
+ * Design constraints:
12
+ * - Keep generated machine-readable files in .ripple/.cache/.
13
+ * - Keep human-readable workflow/history files in .ripple/.
14
+ * - Treat the first scan as a baseline, not as user-created file events.
15
+ * - Preserve reverse edges when repairing stale cache entries.
16
+ * - Update agent instruction files only inside Ripple-managed markers.
17
+ * - Queue file events that arrive while a scan is already running.
18
+ *
19
+ * Path invariant:
20
+ * - graph.files keys use OS-native separators.
21
+ * - graph.symbols keys contain an OS-native file path followed by "::symbol".
22
+ * - ts-morph APIs use forward slash paths.
23
+ * - Use toTsMorphPath() before ts-morph calls.
24
+ * - Use toGraphPath() before storing normalized import paths.
25
+ */
26
+ import { SymbolNode, ChangeEvent, SystemGraph, HistoryLog, RippleAdapterCapability } from "./types";
27
+ import { RippleAdapterAgentUse, RippleAdapterDetectionSummary } from "./adapters";
28
+ type FocusRisk = "dangerous" | "caution" | "safe";
29
+ export type FileFocusSymbolSummary = {
30
+ name: string;
31
+ kind: SymbolNode["kind"];
32
+ layer: SymbolNode["layer"];
33
+ callerCount: number;
34
+ };
35
+ export type FileFocusSummary = {
36
+ filePath: string;
37
+ projectPath: string;
38
+ focusKey: string;
39
+ focusPath: string;
40
+ modificationRisk: FocusRisk;
41
+ imports: string[];
42
+ importedBy: Array<{
43
+ file: string;
44
+ focus: string;
45
+ modificationRisk: FocusRisk;
46
+ }>;
47
+ symbols: FileFocusSymbolSummary[];
48
+ };
49
+ export type BlastRadiusFileSummary = {
50
+ file: string;
51
+ focus: string;
52
+ modificationRisk: FocusRisk;
53
+ importerCount: number;
54
+ };
55
+ export type FileBlastRadiusSummary = {
56
+ filePath: string;
57
+ projectPath: string;
58
+ modificationRisk: FocusRisk;
59
+ directImporters: BlastRadiusFileSummary[];
60
+ affectedCount: number;
61
+ };
62
+ export type FileDependencyLink = {
63
+ file: string;
64
+ focus: string;
65
+ modificationRisk: FocusRisk;
66
+ importCount: number;
67
+ importerCount: number;
68
+ };
69
+ export type FileDependencySummary = {
70
+ filePath: string;
71
+ projectPath: string;
72
+ modificationRisk: FocusRisk;
73
+ imports: FileDependencyLink[];
74
+ importers: FileDependencyLink[];
75
+ };
76
+ export type SymbolLinkSummary = {
77
+ symbolId: string;
78
+ projectSymbolId: string;
79
+ file: string;
80
+ name: string;
81
+ kind: SymbolNode["kind"];
82
+ layer: SymbolNode["layer"];
83
+ focus: string;
84
+ callerCount: number;
85
+ callCount: number;
86
+ };
87
+ export type SymbolGraphSummary = SymbolLinkSummary & {
88
+ containsLayers: SymbolNode["containsLayers"];
89
+ calls: SymbolLinkSummary[];
90
+ calledBy: SymbolLinkSummary[];
91
+ };
92
+ export type FileSymbolsSummary = {
93
+ filePath: string;
94
+ projectPath: string;
95
+ modificationRisk: FocusRisk;
96
+ symbols: SymbolGraphSummary[];
97
+ };
98
+ export type SymbolCallersSummary = {
99
+ symbol: SymbolGraphSummary;
100
+ callers: SymbolLinkSummary[];
101
+ callerCount: number;
102
+ };
103
+ export type HistoryEventSummary = {
104
+ timestamp: number;
105
+ changedAt: string;
106
+ type: ChangeEvent["type"];
107
+ source: string;
108
+ target?: string;
109
+ changeGroup?: string;
110
+ kind?: string;
111
+ layer?: ChangeEvent["layer"];
112
+ metadata?: string;
113
+ };
114
+ export type HistoryGroupSummary = {
115
+ id: string;
116
+ changedAt: string;
117
+ eventCount: number;
118
+ filesChanged: string[];
119
+ symbolsChanged: string[];
120
+ relatedFiles: string[];
121
+ events: HistoryEventSummary[];
122
+ };
123
+ export type RecentHistorySummary = {
124
+ totalEvents: number;
125
+ returnedGroups: number;
126
+ groups: HistoryGroupSummary[];
127
+ };
128
+ export type ContextPlanFileRole = "target" | "test" | "importer" | "entrypoint" | "caller" | "dependency" | "related";
129
+ export type ContextPlanSignal = "target" | "direct-test" | "test-for-importer" | "direct-importer" | "transitive-entrypoint" | "symbol-caller" | "direct-dependency" | "recent-change" | "task-match" | "risk" | "parse-warning";
130
+ export type ContextPlanSymbolSignal = "target-file" | "task-match" | "calls-task-matched-file" | "called-by-planned-file" | "has-callers";
131
+ export type ContextPlanAdapterSignal = {
132
+ capability: RippleAdapterCapability;
133
+ confidence: number;
134
+ agentUse: RippleAdapterAgentUse;
135
+ reason: string;
136
+ };
137
+ export type ContextPlanFile = {
138
+ file: string;
139
+ focus: string;
140
+ modificationRisk: FocusRisk;
141
+ reason: string;
142
+ estimatedTokens: number;
143
+ role?: ContextPlanFileRole;
144
+ score?: number;
145
+ signals?: ContextPlanSignal[];
146
+ adapterSignals?: ContextPlanAdapterSignal[];
147
+ };
148
+ export type ContextPlanSymbol = {
149
+ symbol: string;
150
+ file: string;
151
+ name: string;
152
+ kind: SymbolNode["kind"];
153
+ layer: SymbolNode["layer"];
154
+ reason: string;
155
+ score: number;
156
+ signals: ContextPlanSymbolSignal[];
157
+ callers: number;
158
+ calls: number;
159
+ };
160
+ export type ContextPlanSummary = {
161
+ task: string;
162
+ targetFile: string;
163
+ risk: FocusRisk;
164
+ adapterSupport: RippleAdapterDetectionSummary;
165
+ tokenBudget: number;
166
+ estimatedTokens: number;
167
+ readFirst: ContextPlanFile[];
168
+ readIfNeeded: ContextPlanFile[];
169
+ symbolFocus: ContextPlanSymbol[];
170
+ avoidInitially: string[];
171
+ doNotReadFirst?: string[];
172
+ verificationTargets: string[];
173
+ planningSignals?: string[];
174
+ why: string;
175
+ };
176
+ export declare const DANGEROUS_BLAST_RADIUS = 5;
177
+ export declare const CAUTION_BLAST_RADIUS = 2;
178
+ export declare const DANGEROUS_CHURN = 15;
179
+ export declare const CAUTION_CHURN = 8;
180
+ export declare const HIGH_RISK_CALLER_COUNT = 3;
181
+ export declare class GraphEngine {
182
+ readonly graph: SystemGraph;
183
+ readonly history: HistoryLog;
184
+ private persistence;
185
+ private project;
186
+ private workspaceRoot;
187
+ isScanning: boolean;
188
+ private pendingUpdates;
189
+ private pendingAdds;
190
+ private pendingDeletes;
191
+ private pendingFullRescan;
192
+ private sessionNewFiles;
193
+ private cacheWriteTimer;
194
+ private adapterSupportCache;
195
+ /**
196
+ * Disables writing .ripple/ context files while keeping the in-memory graph
197
+ * available for editor features.
198
+ */
199
+ setContextGeneration(enabled: boolean): void;
200
+ constructor(workspaceRoot: string);
201
+ getAdapterSupport(): RippleAdapterDetectionSummary;
202
+ private invalidateAdapterSupport;
203
+ private createProject;
204
+ dispose(): void;
205
+ private toTsMorphPath;
206
+ private toGraphPath;
207
+ private getProjectSourceFile;
208
+ private sourceFileImportsTarget;
209
+ private debouncedCacheWrite;
210
+ rebuildFromDisk(onProgress?: (scanned: number, total: number) => void, priorityFile?: string): Promise<void>;
211
+ /**
212
+ * Starts from cache when possible and repairs only stale or newly discovered
213
+ * files. With no cache, performs a full two-pass scan.
214
+ */
215
+ initialScan(onProgress?: (scanned: number, total: number) => void, priorityFile?: string): Promise<void>;
216
+ /**
217
+ * Replays file-system events that arrived while a scan was active. Deletes
218
+ * run first, then adds, then updates so graph edges are removed before new
219
+ * nodes and symbols are introduced.
220
+ */
221
+ private processPendingChanges;
222
+ /**
223
+ * Incrementally reparses one changed file and logs the semantic diff.
224
+ * Existing importers are snapshotted before detach, then rechecked after the
225
+ * target file is rebuilt. New importers are discovered by their own updates.
226
+ */
227
+ updateFile(filePath: string): void;
228
+ /**
229
+ * Adds a newly discovered source file and records its initial imports,
230
+ * symbols, and call edges as a single change group.
231
+ */
232
+ addFile(filePath: string): void;
233
+ /**
234
+ * Removes a source file from the graph and deletes all forward/reverse edges
235
+ * that reference it.
236
+ */
237
+ removeFile(filePath: string, existingChangeGroup?: string): void;
238
+ /**
239
+ * First scan pass: imports, exports, and local symbols. Call edges are parsed
240
+ * later after every file has had a chance to register its symbols.
241
+ */
242
+ private parseImportsAndExports;
243
+ private parseCallsOnly;
244
+ private parseFile;
245
+ private parsePythonImportsAndSymbols;
246
+ private parsePythonImportTargets;
247
+ private resolvePythonImportTargets;
248
+ private appendPythonImportedName;
249
+ private resolvePythonModulePaths;
250
+ private pythonModuleCandidates;
251
+ private pythonSourceImportsTarget;
252
+ private parsePythonSymbolRanges;
253
+ private pythonBlockEndLine;
254
+ private pythonIndent;
255
+ private detectPythonSymbolLayer;
256
+ private parsePythonCalls;
257
+ private findPythonEnclosingSymbol;
258
+ /**
259
+ * Adds file-level dependency edges. Style imports are treated as local
260
+ * dependencies, while external npm packages are ignored by normalizeImportPath.
261
+ */
262
+ private parseImports;
263
+ /**
264
+ * Registers exported functions, classes, methods, and variables as graph
265
+ * symbols. Exported functions and methods also get coarse layer classification.
266
+ */
267
+ private parseExports;
268
+ /**
269
+ * Registers non-exported functions and function-valued variables. These
270
+ * symbols make same-file call relationships and CodeLens hints more useful.
271
+ */
272
+ private parseInternalSymbols;
273
+ /**
274
+ * Best-effort layer classifier used in agent guidance. It intentionally uses
275
+ * simple syntax/call-name signals instead of requiring type-checking.
276
+ */
277
+ private detectSymbolLayer;
278
+ /**
279
+ * Converts ts-morph node kinds into Ripple's smaller symbol-kind vocabulary.
280
+ */
281
+ private resolveSymbolKind;
282
+ /**
283
+ * Builds symbol-level call edges for direct function calls and JSX component
284
+ * usage. Resolution is name-based within known imported/local symbols.
285
+ */
286
+ private parseCalls;
287
+ private addCallEdge;
288
+ private findComponentSymbol;
289
+ private extractCalledName;
290
+ private findEnclosingSymbol;
291
+ /**
292
+ * Returns source text for a named function or function-valued variable. Symbol
293
+ * hashes are based on this text so history can distinguish real body changes
294
+ * from unchanged symbol IDs.
295
+ */
296
+ private getSymbolText;
297
+ /**
298
+ * Detaches all imports, symbols, calls, and reverse edges for a file. The
299
+ * silent mode is used during reparsing, where updateFile logs a cleaner diff.
300
+ */
301
+ private removeFileEdges;
302
+ /**
303
+ * Returns an existing FileNode or creates a placeholder node so imports can
304
+ * point at files before those files are parsed.
305
+ */
306
+ private ensureFileNode;
307
+ private isBarrelFile;
308
+ private resolveBarrelSources;
309
+ private toProjectPath;
310
+ private modificationRiskFor;
311
+ private focusPathFor;
312
+ private dependencyLinkFor;
313
+ private contextPlanFileFor;
314
+ private estimateFileContextTokens;
315
+ private projectSymbolId;
316
+ private entityToProjectRef;
317
+ private fileRefFromEntity;
318
+ private symbolLinkFor;
319
+ private symbolGraphSummaryFor;
320
+ resolveFilePath(filePath: string): string;
321
+ resolveSymbolId(symbolId: string): string | null;
322
+ downstreamFiles(filePath: string): string[];
323
+ upstreamFiles(filePath: string): string[];
324
+ focusKeyForFile(filePath: string): string;
325
+ symbolImpact(symbolId: string): string[];
326
+ getRecentHistorySummary(limit?: number): RecentHistorySummary;
327
+ private isTestFileForPlan;
328
+ private isIndexBoundaryFileForPlan;
329
+ private isRouteEntryPointFileForPlan;
330
+ private wordsForPlan;
331
+ private taskTermsForPlan;
332
+ private taskTermsMatchForPlan;
333
+ private taskRelevanceForPlan;
334
+ private symbolTaskRelevanceForPlan;
335
+ private symbolFocusForPlan;
336
+ planContext(task: string, targetFile: string, tokenBudget?: number): ContextPlanSummary | null;
337
+ getFileFocusSummary(filePath: string): FileFocusSummary | null;
338
+ getFileSymbolsSummary(filePath: string): FileSymbolsSummary | null;
339
+ getSymbolCallersSummary(symbolId: string): SymbolCallersSummary | null;
340
+ getFileDependencySummary(filePath: string): FileDependencySummary | null;
341
+ getBlastRadiusSummary(filePath: string): FileBlastRadiusSummary | null;
342
+ blastRadius(filePaths: string[]): string[];
343
+ symbolAtPosition(filePath: string, line: number, character: number): string | null;
344
+ getSymbolDeclarationLine(symbolId: string): number | null;
345
+ }
346
+ export {};