@yuaone/core 0.1.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.
Files changed (235) hide show
  1. package/LICENSE +663 -0
  2. package/README.md +15 -0
  3. package/dist/__tests__/context-manager.test.d.ts +6 -0
  4. package/dist/__tests__/context-manager.test.d.ts.map +1 -0
  5. package/dist/__tests__/context-manager.test.js +220 -0
  6. package/dist/__tests__/context-manager.test.js.map +1 -0
  7. package/dist/__tests__/governor.test.d.ts +6 -0
  8. package/dist/__tests__/governor.test.d.ts.map +1 -0
  9. package/dist/__tests__/governor.test.js +210 -0
  10. package/dist/__tests__/governor.test.js.map +1 -0
  11. package/dist/__tests__/model-router.test.d.ts +6 -0
  12. package/dist/__tests__/model-router.test.d.ts.map +1 -0
  13. package/dist/__tests__/model-router.test.js +329 -0
  14. package/dist/__tests__/model-router.test.js.map +1 -0
  15. package/dist/agent-logger.d.ts +384 -0
  16. package/dist/agent-logger.d.ts.map +1 -0
  17. package/dist/agent-logger.js +820 -0
  18. package/dist/agent-logger.js.map +1 -0
  19. package/dist/agent-loop.d.ts +163 -0
  20. package/dist/agent-loop.d.ts.map +1 -0
  21. package/dist/agent-loop.js +609 -0
  22. package/dist/agent-loop.js.map +1 -0
  23. package/dist/agent-modes.d.ts +85 -0
  24. package/dist/agent-modes.d.ts.map +1 -0
  25. package/dist/agent-modes.js +418 -0
  26. package/dist/agent-modes.js.map +1 -0
  27. package/dist/approval.d.ts +137 -0
  28. package/dist/approval.d.ts.map +1 -0
  29. package/dist/approval.js +299 -0
  30. package/dist/approval.js.map +1 -0
  31. package/dist/async-completion-queue.d.ts +56 -0
  32. package/dist/async-completion-queue.d.ts.map +1 -0
  33. package/dist/async-completion-queue.js +77 -0
  34. package/dist/async-completion-queue.js.map +1 -0
  35. package/dist/auto-fix.d.ts +174 -0
  36. package/dist/auto-fix.d.ts.map +1 -0
  37. package/dist/auto-fix.js +319 -0
  38. package/dist/auto-fix.js.map +1 -0
  39. package/dist/codebase-context.d.ts +396 -0
  40. package/dist/codebase-context.d.ts.map +1 -0
  41. package/dist/codebase-context.js +1260 -0
  42. package/dist/codebase-context.js.map +1 -0
  43. package/dist/conflict-resolver.d.ts +191 -0
  44. package/dist/conflict-resolver.d.ts.map +1 -0
  45. package/dist/conflict-resolver.js +524 -0
  46. package/dist/conflict-resolver.js.map +1 -0
  47. package/dist/constants.d.ts +52 -0
  48. package/dist/constants.d.ts.map +1 -0
  49. package/dist/constants.js +141 -0
  50. package/dist/constants.js.map +1 -0
  51. package/dist/context-budget.d.ts +435 -0
  52. package/dist/context-budget.d.ts.map +1 -0
  53. package/dist/context-budget.js +903 -0
  54. package/dist/context-budget.js.map +1 -0
  55. package/dist/context-compressor.d.ts +143 -0
  56. package/dist/context-compressor.d.ts.map +1 -0
  57. package/dist/context-compressor.js +511 -0
  58. package/dist/context-compressor.js.map +1 -0
  59. package/dist/context-manager.d.ts +112 -0
  60. package/dist/context-manager.d.ts.map +1 -0
  61. package/dist/context-manager.js +247 -0
  62. package/dist/context-manager.js.map +1 -0
  63. package/dist/continuous-reflection.d.ts +267 -0
  64. package/dist/continuous-reflection.d.ts.map +1 -0
  65. package/dist/continuous-reflection.js +338 -0
  66. package/dist/continuous-reflection.js.map +1 -0
  67. package/dist/cross-file-refactor.d.ts +352 -0
  68. package/dist/cross-file-refactor.d.ts.map +1 -0
  69. package/dist/cross-file-refactor.js +1544 -0
  70. package/dist/cross-file-refactor.js.map +1 -0
  71. package/dist/dag-orchestrator.d.ts +138 -0
  72. package/dist/dag-orchestrator.d.ts.map +1 -0
  73. package/dist/dag-orchestrator.js +379 -0
  74. package/dist/dag-orchestrator.js.map +1 -0
  75. package/dist/debate-orchestrator.d.ts +301 -0
  76. package/dist/debate-orchestrator.d.ts.map +1 -0
  77. package/dist/debate-orchestrator.js +719 -0
  78. package/dist/debate-orchestrator.js.map +1 -0
  79. package/dist/dependency-analyzer.d.ts +113 -0
  80. package/dist/dependency-analyzer.d.ts.map +1 -0
  81. package/dist/dependency-analyzer.js +444 -0
  82. package/dist/dependency-analyzer.js.map +1 -0
  83. package/dist/design-loop.d.ts +59 -0
  84. package/dist/design-loop.d.ts.map +1 -0
  85. package/dist/design-loop.js +344 -0
  86. package/dist/design-loop.js.map +1 -0
  87. package/dist/doc-intelligence.d.ts +383 -0
  88. package/dist/doc-intelligence.d.ts.map +1 -0
  89. package/dist/doc-intelligence.js +1307 -0
  90. package/dist/doc-intelligence.js.map +1 -0
  91. package/dist/dynamic-role-generator.d.ts +76 -0
  92. package/dist/dynamic-role-generator.d.ts.map +1 -0
  93. package/dist/dynamic-role-generator.js +194 -0
  94. package/dist/dynamic-role-generator.js.map +1 -0
  95. package/dist/errors.d.ts +69 -0
  96. package/dist/errors.d.ts.map +1 -0
  97. package/dist/errors.js +102 -0
  98. package/dist/errors.js.map +1 -0
  99. package/dist/event-bus.d.ts +159 -0
  100. package/dist/event-bus.d.ts.map +1 -0
  101. package/dist/event-bus.js +305 -0
  102. package/dist/event-bus.js.map +1 -0
  103. package/dist/execution-engine.d.ts +425 -0
  104. package/dist/execution-engine.d.ts.map +1 -0
  105. package/dist/execution-engine.js +1555 -0
  106. package/dist/execution-engine.js.map +1 -0
  107. package/dist/git-intelligence.d.ts +306 -0
  108. package/dist/git-intelligence.d.ts.map +1 -0
  109. package/dist/git-intelligence.js +1099 -0
  110. package/dist/git-intelligence.js.map +1 -0
  111. package/dist/governor.d.ts +77 -0
  112. package/dist/governor.d.ts.map +1 -0
  113. package/dist/governor.js +161 -0
  114. package/dist/governor.js.map +1 -0
  115. package/dist/hierarchical-planner.d.ts +313 -0
  116. package/dist/hierarchical-planner.d.ts.map +1 -0
  117. package/dist/hierarchical-planner.js +981 -0
  118. package/dist/hierarchical-planner.js.map +1 -0
  119. package/dist/index.d.ts +121 -0
  120. package/dist/index.d.ts.map +1 -0
  121. package/dist/index.js +123 -0
  122. package/dist/index.js.map +1 -0
  123. package/dist/intent-inference.d.ts +103 -0
  124. package/dist/intent-inference.d.ts.map +1 -0
  125. package/dist/intent-inference.js +605 -0
  126. package/dist/intent-inference.js.map +1 -0
  127. package/dist/interrupt-manager.d.ts +143 -0
  128. package/dist/interrupt-manager.d.ts.map +1 -0
  129. package/dist/interrupt-manager.js +196 -0
  130. package/dist/interrupt-manager.js.map +1 -0
  131. package/dist/kernel.d.ts +564 -0
  132. package/dist/kernel.d.ts.map +1 -0
  133. package/dist/kernel.js +1419 -0
  134. package/dist/kernel.js.map +1 -0
  135. package/dist/language-support.d.ts +232 -0
  136. package/dist/language-support.d.ts.map +1 -0
  137. package/dist/language-support.js +1134 -0
  138. package/dist/language-support.js.map +1 -0
  139. package/dist/llm-client.d.ts +82 -0
  140. package/dist/llm-client.d.ts.map +1 -0
  141. package/dist/llm-client.js +475 -0
  142. package/dist/llm-client.js.map +1 -0
  143. package/dist/mcp-client.d.ts +232 -0
  144. package/dist/mcp-client.d.ts.map +1 -0
  145. package/dist/mcp-client.js +718 -0
  146. package/dist/mcp-client.js.map +1 -0
  147. package/dist/memory-manager.d.ts +200 -0
  148. package/dist/memory-manager.d.ts.map +1 -0
  149. package/dist/memory-manager.js +568 -0
  150. package/dist/memory-manager.js.map +1 -0
  151. package/dist/memory.d.ts +87 -0
  152. package/dist/memory.d.ts.map +1 -0
  153. package/dist/memory.js +341 -0
  154. package/dist/memory.js.map +1 -0
  155. package/dist/model-router.d.ts +245 -0
  156. package/dist/model-router.d.ts.map +1 -0
  157. package/dist/model-router.js +632 -0
  158. package/dist/model-router.js.map +1 -0
  159. package/dist/parallel-executor.d.ts +125 -0
  160. package/dist/parallel-executor.d.ts.map +1 -0
  161. package/dist/parallel-executor.js +201 -0
  162. package/dist/parallel-executor.js.map +1 -0
  163. package/dist/perf-optimizer.d.ts +212 -0
  164. package/dist/perf-optimizer.d.ts.map +1 -0
  165. package/dist/perf-optimizer.js +721 -0
  166. package/dist/perf-optimizer.js.map +1 -0
  167. package/dist/persona.d.ts +305 -0
  168. package/dist/persona.d.ts.map +1 -0
  169. package/dist/persona.js +887 -0
  170. package/dist/persona.js.map +1 -0
  171. package/dist/planner.d.ts +70 -0
  172. package/dist/planner.d.ts.map +1 -0
  173. package/dist/planner.js +264 -0
  174. package/dist/planner.js.map +1 -0
  175. package/dist/qa-pipeline.d.ts +365 -0
  176. package/dist/qa-pipeline.d.ts.map +1 -0
  177. package/dist/qa-pipeline.js +1352 -0
  178. package/dist/qa-pipeline.js.map +1 -0
  179. package/dist/reasoning-adapter.d.ts +116 -0
  180. package/dist/reasoning-adapter.d.ts.map +1 -0
  181. package/dist/reasoning-adapter.js +187 -0
  182. package/dist/reasoning-adapter.js.map +1 -0
  183. package/dist/role-registry.d.ts +55 -0
  184. package/dist/role-registry.d.ts.map +1 -0
  185. package/dist/role-registry.js +192 -0
  186. package/dist/role-registry.js.map +1 -0
  187. package/dist/sandbox-tiers.d.ts +327 -0
  188. package/dist/sandbox-tiers.d.ts.map +1 -0
  189. package/dist/sandbox-tiers.js +928 -0
  190. package/dist/sandbox-tiers.js.map +1 -0
  191. package/dist/security-scanner.d.ts +222 -0
  192. package/dist/security-scanner.d.ts.map +1 -0
  193. package/dist/security-scanner.js +1129 -0
  194. package/dist/security-scanner.js.map +1 -0
  195. package/dist/security.d.ts +93 -0
  196. package/dist/security.d.ts.map +1 -0
  197. package/dist/security.js +393 -0
  198. package/dist/security.js.map +1 -0
  199. package/dist/self-reflection.d.ts +397 -0
  200. package/dist/self-reflection.d.ts.map +1 -0
  201. package/dist/self-reflection.js +908 -0
  202. package/dist/self-reflection.js.map +1 -0
  203. package/dist/session-persistence.d.ts +191 -0
  204. package/dist/session-persistence.d.ts.map +1 -0
  205. package/dist/session-persistence.js +395 -0
  206. package/dist/session-persistence.js.map +1 -0
  207. package/dist/speculative-executor.d.ts +210 -0
  208. package/dist/speculative-executor.d.ts.map +1 -0
  209. package/dist/speculative-executor.js +618 -0
  210. package/dist/speculative-executor.js.map +1 -0
  211. package/dist/state-machine.d.ts +289 -0
  212. package/dist/state-machine.d.ts.map +1 -0
  213. package/dist/state-machine.js +695 -0
  214. package/dist/state-machine.js.map +1 -0
  215. package/dist/sub-agent.d.ts +177 -0
  216. package/dist/sub-agent.d.ts.map +1 -0
  217. package/dist/sub-agent.js +303 -0
  218. package/dist/sub-agent.js.map +1 -0
  219. package/dist/system-prompt.d.ts +26 -0
  220. package/dist/system-prompt.d.ts.map +1 -0
  221. package/dist/system-prompt.js +84 -0
  222. package/dist/system-prompt.js.map +1 -0
  223. package/dist/test-intelligence.d.ts +439 -0
  224. package/dist/test-intelligence.d.ts.map +1 -0
  225. package/dist/test-intelligence.js +1165 -0
  226. package/dist/test-intelligence.js.map +1 -0
  227. package/dist/types.d.ts +632 -0
  228. package/dist/types.d.ts.map +1 -0
  229. package/dist/types.js +6 -0
  230. package/dist/types.js.map +1 -0
  231. package/dist/vector-index.d.ts +314 -0
  232. package/dist/vector-index.d.ts.map +1 -0
  233. package/dist/vector-index.js +618 -0
  234. package/dist/vector-index.js.map +1 -0
  235. package/package.json +41 -0
@@ -0,0 +1,352 @@
1
+ /**
2
+ * @module cross-file-refactor
3
+ * @description Cross-File Refactoring Engine — enables safe renaming, moving, extracting,
4
+ * and inlining symbols across multiple TypeScript/JavaScript files.
5
+ *
6
+ * Provides preview (dry-run) mode, rollback support, and safety checks (breaking change
7
+ * detection, risk assessment). Uses regex-based analysis consistent with the rest of yuan-core.
8
+ */
9
+ /** Supported refactoring operations. */
10
+ export type RefactorType = "rename" | "move" | "extract_function" | "extract_interface" | "inline" | "change_signature";
11
+ /** A request describing the desired refactoring operation. */
12
+ export interface RefactorRequest {
13
+ /** Refactoring type */
14
+ type: RefactorType;
15
+ /** Symbol to rename (for rename/move/inline/change_signature) */
16
+ symbolName?: string;
17
+ /** New name (for rename) */
18
+ newName?: string;
19
+ /** Scope to a specific file (optional, for rename) */
20
+ file?: string;
21
+ /** Destination file path (for move) */
22
+ targetFile?: string;
23
+ /** Source file path (for extract/move/inline/change_signature) */
24
+ sourceFile?: string;
25
+ /** Start line for extraction (1-based) */
26
+ startLine?: number;
27
+ /** End line for extraction (1-based) */
28
+ endLine?: number;
29
+ /** Name for the extracted symbol */
30
+ extractedName?: string;
31
+ /** New parameter list (for change_signature) */
32
+ newParams?: {
33
+ name: string;
34
+ type: string;
35
+ optional?: boolean;
36
+ }[];
37
+ /** New return type (for change_signature) */
38
+ newReturnType?: string;
39
+ /** Whether to add a re-export in the source file (for move) */
40
+ addReExport?: boolean;
41
+ }
42
+ /** Preview of a refactoring, before it is applied. */
43
+ export interface RefactorPreview {
44
+ /** Refactoring type */
45
+ type: RefactorType;
46
+ /** Files that will be changed */
47
+ affectedFiles: FileChange[];
48
+ /** Total number of individual text changes */
49
+ totalChanges: number;
50
+ /** Breaking changes detected */
51
+ breakingChanges: BreakingChange[];
52
+ /** Risk level */
53
+ riskLevel: "low" | "medium" | "high";
54
+ /** Warnings for the developer */
55
+ warnings: string[];
56
+ /** Whether this can be automatically applied */
57
+ canAutoApply: boolean;
58
+ }
59
+ /** Changes to a single file. */
60
+ export interface FileChange {
61
+ /** Absolute file path */
62
+ file: string;
63
+ /** Individual text changes within the file */
64
+ changes: TextChange[];
65
+ /** Whether this is a newly created file */
66
+ isNewFile: boolean;
67
+ /** Whether this file will be deleted */
68
+ isDeletedFile: boolean;
69
+ }
70
+ /** A single text replacement within a file. */
71
+ export interface TextChange {
72
+ /** Start line (1-based) */
73
+ startLine: number;
74
+ /** End line (1-based, inclusive) */
75
+ endLine: number;
76
+ /** Original text */
77
+ oldText: string;
78
+ /** Replacement text */
79
+ newText: string;
80
+ /** Human-readable reason for the change */
81
+ reason: string;
82
+ }
83
+ /** A breaking change detected during preview. */
84
+ export interface BreakingChange {
85
+ /** Type of breaking change */
86
+ type: "api_change" | "export_removed" | "signature_change" | "type_change";
87
+ /** Human-readable description */
88
+ description: string;
89
+ /** File where the break occurs */
90
+ file: string;
91
+ /** Line number */
92
+ line: number;
93
+ /** Severity */
94
+ severity: "warning" | "error";
95
+ }
96
+ /** Result of applying a refactoring. */
97
+ export interface RefactorResult {
98
+ /** Whether the refactoring was fully applied */
99
+ success: boolean;
100
+ /** Changes that were successfully applied */
101
+ appliedChanges: FileChange[];
102
+ /** Changes that failed */
103
+ failedChanges: {
104
+ file: string;
105
+ error: string;
106
+ }[];
107
+ /** Whether rollback is available */
108
+ rollbackAvailable: boolean;
109
+ /** ID to pass to rollback() */
110
+ rollbackId: string;
111
+ }
112
+ /** Safety analysis before and after a refactoring. */
113
+ export interface RefactorSafety {
114
+ /** Pre-application checks */
115
+ preCheck: {
116
+ affectedFiles: string[];
117
+ breakingChanges: BreakingChange[];
118
+ riskLevel: "low" | "medium" | "high";
119
+ };
120
+ /** Post-application checks */
121
+ postCheck: {
122
+ buildSuccess: boolean;
123
+ noNewErrors: boolean;
124
+ };
125
+ }
126
+ /**
127
+ * Cross-File Refactoring Engine.
128
+ *
129
+ * Enables safe renaming, moving, extracting, and inlining of symbols
130
+ * across TypeScript/JavaScript projects. Supports preview (dry-run),
131
+ * rollback, and breaking change detection.
132
+ *
133
+ * @example
134
+ * ```ts
135
+ * const refactor = new CrossFileRefactor("/path/to/project");
136
+ * const preview = await refactor.renameSymbol("OldName", "NewName");
137
+ * if (preview.riskLevel !== "high") {
138
+ * const result = await refactor.apply({ type: "rename", symbolName: "OldName", newName: "NewName" });
139
+ * }
140
+ * ```
141
+ */
142
+ export declare class CrossFileRefactor {
143
+ private projectPath;
144
+ private rollbacks;
145
+ private rollbackOrder;
146
+ constructor(projectPath: string);
147
+ /**
148
+ * Generate a preview of the refactoring without making changes.
149
+ *
150
+ * @param request - The refactoring request
151
+ * @returns Preview with affected files, breaking changes, and risk assessment
152
+ */
153
+ preview(request: RefactorRequest): Promise<RefactorPreview>;
154
+ /**
155
+ * Apply a refactoring to disk. Snapshots all affected files first
156
+ * so the operation can be rolled back.
157
+ *
158
+ * @param request - The refactoring request
159
+ * @returns Result including applied changes and rollback ID
160
+ */
161
+ apply(request: RefactorRequest): Promise<RefactorResult>;
162
+ /**
163
+ * Roll back a previously applied refactoring by restoring original file contents.
164
+ *
165
+ * @param rollbackId - The rollback ID returned by apply()
166
+ * @returns True if rollback was successful
167
+ */
168
+ rollback(rollbackId: string): Promise<boolean>;
169
+ /**
170
+ * Rename a symbol across all files that reference it.
171
+ * Updates the definition, all usages, and all import statements.
172
+ *
173
+ * @param symbolName - Current symbol name
174
+ * @param newName - Desired new name
175
+ * @param scopeFile - Optional file to restrict the rename to
176
+ * @returns Preview of all changes
177
+ */
178
+ renameSymbol(symbolName: string, newName: string, scopeFile?: string): Promise<RefactorPreview>;
179
+ /**
180
+ * Move a symbol from one file to another. Updates all import statements
181
+ * across the project and optionally adds a re-export for backward compatibility.
182
+ *
183
+ * @param symbolName - Symbol to move
184
+ * @param sourceFile - Current file (absolute path)
185
+ * @param targetFile - Destination file (absolute path)
186
+ * @param addReExport - Whether to add a re-export in the source file
187
+ * @returns Preview of all changes
188
+ */
189
+ moveSymbol(symbolName: string, sourceFile: string, targetFile: string, addReExport?: boolean): Promise<RefactorPreview>;
190
+ /**
191
+ * Extract a range of lines into a new function. Infers parameters from
192
+ * variables used but defined outside the selection, and return values from
193
+ * variables modified inside the selection.
194
+ *
195
+ * @param sourceFile - File containing the code to extract
196
+ * @param startLine - First line to extract (1-based)
197
+ * @param endLine - Last line to extract (1-based, inclusive)
198
+ * @param functionName - Name for the new function
199
+ * @param targetFile - File to place the function in (same file if omitted)
200
+ * @returns Preview of all changes
201
+ */
202
+ extractFunction(sourceFile: string, startLine: number, endLine: number, functionName: string, targetFile?: string): Promise<RefactorPreview>;
203
+ /**
204
+ * Extract an interface from a class's public members.
205
+ *
206
+ * @param className - Class to extract from
207
+ * @param interfaceName - Name for the new interface
208
+ * @param sourceFile - File containing the class
209
+ * @returns Preview of all changes
210
+ */
211
+ extractInterface(className: string, interfaceName: string, sourceFile: string): Promise<RefactorPreview>;
212
+ /**
213
+ * Inline a simple function at all call sites (replace calls with the function body).
214
+ * Only works for simple single-expression or single-statement functions.
215
+ *
216
+ * @param functionName - Function to inline
217
+ * @param sourceFile - File where the function is defined
218
+ * @returns Preview of all changes
219
+ */
220
+ inlineFunction(functionName: string, sourceFile: string): Promise<RefactorPreview>;
221
+ /**
222
+ * Change a function's parameter list and/or return type. Updates the definition
223
+ * and all call sites.
224
+ *
225
+ * @param functionName - Function to modify
226
+ * @param sourceFile - File where the function is defined
227
+ * @param newParams - New parameter list
228
+ * @param newReturnType - New return type (optional)
229
+ * @returns Preview of all changes
230
+ */
231
+ changeSignature(functionName: string, sourceFile: string, newParams: {
232
+ name: string;
233
+ type: string;
234
+ optional?: boolean;
235
+ }[], newReturnType?: string): Promise<RefactorPreview>;
236
+ /**
237
+ * Perform safety analysis on a refactoring preview.
238
+ * Returns pre-check info and placeholder post-check (build verification
239
+ * must be run separately after apply).
240
+ *
241
+ * @param preview - The refactoring preview to analyze
242
+ * @returns Safety analysis result
243
+ */
244
+ checkSafety(preview: RefactorPreview): Promise<RefactorSafety>;
245
+ /**
246
+ * Find all usages of a symbol across the project using regex word boundary matching.
247
+ * Excludes occurrences inside comments and string literals.
248
+ */
249
+ private findAllUsages;
250
+ /**
251
+ * Find all import statements that reference a symbol.
252
+ */
253
+ private findImports;
254
+ /**
255
+ * Generate import path updates when a symbol moves between files.
256
+ */
257
+ private generateImportUpdates;
258
+ /**
259
+ * Check if a symbol is exported from any file.
260
+ */
261
+ private isSymbolExported;
262
+ /**
263
+ * Extract a symbol's full definition (with JSDoc) from file content.
264
+ */
265
+ private extractDefinition;
266
+ /**
267
+ * Find the end line of a definition by tracking brace depth.
268
+ * For single-line type aliases or simple declarations, returns the same line.
269
+ */
270
+ private findDefinitionEnd;
271
+ /**
272
+ * Extract public members from a class definition.
273
+ */
274
+ private extractClassMembers;
275
+ /**
276
+ * Extract a function's body and metadata for inlining.
277
+ */
278
+ private extractFunctionBody;
279
+ /**
280
+ * Infer function parameters from a code block by finding variables
281
+ * that are used but not defined within the selection.
282
+ */
283
+ private inferParameters;
284
+ /**
285
+ * Infer return values: variables modified inside the selection that are
286
+ * used after the selection.
287
+ */
288
+ private inferReturnValues;
289
+ /**
290
+ * Read a file's content as UTF-8 text.
291
+ */
292
+ private readFile;
293
+ /**
294
+ * Apply text changes to file content. Changes are applied in reverse line order
295
+ * to preserve line numbers.
296
+ */
297
+ private applyChanges;
298
+ /**
299
+ * Snapshot files for potential rollback. Returns a unique rollback ID.
300
+ * Maintains a maximum of MAX_ROLLBACKS snapshots.
301
+ */
302
+ private snapshotFiles;
303
+ /**
304
+ * Recursively collect all TypeScript/JavaScript source files in a directory.
305
+ */
306
+ private collectSourceFiles;
307
+ /**
308
+ * Replace a symbol name in a line using word boundary matching.
309
+ * Preserves string literals and comments.
310
+ */
311
+ private replaceSymbolInLine;
312
+ /**
313
+ * Check if a line is a comment (single-line // or starts inside a block comment).
314
+ */
315
+ private isCommentLine;
316
+ /**
317
+ * Basic heuristic: check if a symbol occurrence is inside a string literal.
318
+ * Counts unescaped quotes before the symbol position.
319
+ */
320
+ private isInStringLiteral;
321
+ /**
322
+ * Compute the relative import path from one file to another,
323
+ * with .js extension (ESM convention).
324
+ */
325
+ private computeRelativeImportPath;
326
+ /**
327
+ * Find the best line to insert a new import statement.
328
+ * Returns the line number (1-based) after the last existing import.
329
+ */
330
+ private findImportInsertLine;
331
+ /**
332
+ * Detect the leading whitespace (indentation) of a line.
333
+ */
334
+ private detectIndent;
335
+ /**
336
+ * Escape special regex characters in a string.
337
+ */
338
+ private escapeRegex;
339
+ /**
340
+ * Deduplicate text changes for the same line, keeping only the last one.
341
+ */
342
+ private deduplicateChanges;
343
+ /**
344
+ * Assess the risk level of a refactoring based on scope and breaking changes.
345
+ */
346
+ private assessRisk;
347
+ /**
348
+ * Create an empty preview with warnings (for error cases).
349
+ */
350
+ private emptyPreview;
351
+ }
352
+ //# sourceMappingURL=cross-file-refactor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-file-refactor.d.ts","sourceRoot":"","sources":["../src/cross-file-refactor.ts"],"names":[],"mappings":"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"}