@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.
- package/LICENSE +663 -0
- package/README.md +15 -0
- package/dist/__tests__/context-manager.test.d.ts +6 -0
- package/dist/__tests__/context-manager.test.d.ts.map +1 -0
- package/dist/__tests__/context-manager.test.js +220 -0
- package/dist/__tests__/context-manager.test.js.map +1 -0
- package/dist/__tests__/governor.test.d.ts +6 -0
- package/dist/__tests__/governor.test.d.ts.map +1 -0
- package/dist/__tests__/governor.test.js +210 -0
- package/dist/__tests__/governor.test.js.map +1 -0
- package/dist/__tests__/model-router.test.d.ts +6 -0
- package/dist/__tests__/model-router.test.d.ts.map +1 -0
- package/dist/__tests__/model-router.test.js +329 -0
- package/dist/__tests__/model-router.test.js.map +1 -0
- package/dist/agent-logger.d.ts +384 -0
- package/dist/agent-logger.d.ts.map +1 -0
- package/dist/agent-logger.js +820 -0
- package/dist/agent-logger.js.map +1 -0
- package/dist/agent-loop.d.ts +163 -0
- package/dist/agent-loop.d.ts.map +1 -0
- package/dist/agent-loop.js +609 -0
- package/dist/agent-loop.js.map +1 -0
- package/dist/agent-modes.d.ts +85 -0
- package/dist/agent-modes.d.ts.map +1 -0
- package/dist/agent-modes.js +418 -0
- package/dist/agent-modes.js.map +1 -0
- package/dist/approval.d.ts +137 -0
- package/dist/approval.d.ts.map +1 -0
- package/dist/approval.js +299 -0
- package/dist/approval.js.map +1 -0
- package/dist/async-completion-queue.d.ts +56 -0
- package/dist/async-completion-queue.d.ts.map +1 -0
- package/dist/async-completion-queue.js +77 -0
- package/dist/async-completion-queue.js.map +1 -0
- package/dist/auto-fix.d.ts +174 -0
- package/dist/auto-fix.d.ts.map +1 -0
- package/dist/auto-fix.js +319 -0
- package/dist/auto-fix.js.map +1 -0
- package/dist/codebase-context.d.ts +396 -0
- package/dist/codebase-context.d.ts.map +1 -0
- package/dist/codebase-context.js +1260 -0
- package/dist/codebase-context.js.map +1 -0
- package/dist/conflict-resolver.d.ts +191 -0
- package/dist/conflict-resolver.d.ts.map +1 -0
- package/dist/conflict-resolver.js +524 -0
- package/dist/conflict-resolver.js.map +1 -0
- package/dist/constants.d.ts +52 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +141 -0
- package/dist/constants.js.map +1 -0
- package/dist/context-budget.d.ts +435 -0
- package/dist/context-budget.d.ts.map +1 -0
- package/dist/context-budget.js +903 -0
- package/dist/context-budget.js.map +1 -0
- package/dist/context-compressor.d.ts +143 -0
- package/dist/context-compressor.d.ts.map +1 -0
- package/dist/context-compressor.js +511 -0
- package/dist/context-compressor.js.map +1 -0
- package/dist/context-manager.d.ts +112 -0
- package/dist/context-manager.d.ts.map +1 -0
- package/dist/context-manager.js +247 -0
- package/dist/context-manager.js.map +1 -0
- package/dist/continuous-reflection.d.ts +267 -0
- package/dist/continuous-reflection.d.ts.map +1 -0
- package/dist/continuous-reflection.js +338 -0
- package/dist/continuous-reflection.js.map +1 -0
- package/dist/cross-file-refactor.d.ts +352 -0
- package/dist/cross-file-refactor.d.ts.map +1 -0
- package/dist/cross-file-refactor.js +1544 -0
- package/dist/cross-file-refactor.js.map +1 -0
- package/dist/dag-orchestrator.d.ts +138 -0
- package/dist/dag-orchestrator.d.ts.map +1 -0
- package/dist/dag-orchestrator.js +379 -0
- package/dist/dag-orchestrator.js.map +1 -0
- package/dist/debate-orchestrator.d.ts +301 -0
- package/dist/debate-orchestrator.d.ts.map +1 -0
- package/dist/debate-orchestrator.js +719 -0
- package/dist/debate-orchestrator.js.map +1 -0
- package/dist/dependency-analyzer.d.ts +113 -0
- package/dist/dependency-analyzer.d.ts.map +1 -0
- package/dist/dependency-analyzer.js +444 -0
- package/dist/dependency-analyzer.js.map +1 -0
- package/dist/design-loop.d.ts +59 -0
- package/dist/design-loop.d.ts.map +1 -0
- package/dist/design-loop.js +344 -0
- package/dist/design-loop.js.map +1 -0
- package/dist/doc-intelligence.d.ts +383 -0
- package/dist/doc-intelligence.d.ts.map +1 -0
- package/dist/doc-intelligence.js +1307 -0
- package/dist/doc-intelligence.js.map +1 -0
- package/dist/dynamic-role-generator.d.ts +76 -0
- package/dist/dynamic-role-generator.d.ts.map +1 -0
- package/dist/dynamic-role-generator.js +194 -0
- package/dist/dynamic-role-generator.js.map +1 -0
- package/dist/errors.d.ts +69 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +102 -0
- package/dist/errors.js.map +1 -0
- package/dist/event-bus.d.ts +159 -0
- package/dist/event-bus.d.ts.map +1 -0
- package/dist/event-bus.js +305 -0
- package/dist/event-bus.js.map +1 -0
- package/dist/execution-engine.d.ts +425 -0
- package/dist/execution-engine.d.ts.map +1 -0
- package/dist/execution-engine.js +1555 -0
- package/dist/execution-engine.js.map +1 -0
- package/dist/git-intelligence.d.ts +306 -0
- package/dist/git-intelligence.d.ts.map +1 -0
- package/dist/git-intelligence.js +1099 -0
- package/dist/git-intelligence.js.map +1 -0
- package/dist/governor.d.ts +77 -0
- package/dist/governor.d.ts.map +1 -0
- package/dist/governor.js +161 -0
- package/dist/governor.js.map +1 -0
- package/dist/hierarchical-planner.d.ts +313 -0
- package/dist/hierarchical-planner.d.ts.map +1 -0
- package/dist/hierarchical-planner.js +981 -0
- package/dist/hierarchical-planner.js.map +1 -0
- package/dist/index.d.ts +121 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +123 -0
- package/dist/index.js.map +1 -0
- package/dist/intent-inference.d.ts +103 -0
- package/dist/intent-inference.d.ts.map +1 -0
- package/dist/intent-inference.js +605 -0
- package/dist/intent-inference.js.map +1 -0
- package/dist/interrupt-manager.d.ts +143 -0
- package/dist/interrupt-manager.d.ts.map +1 -0
- package/dist/interrupt-manager.js +196 -0
- package/dist/interrupt-manager.js.map +1 -0
- package/dist/kernel.d.ts +564 -0
- package/dist/kernel.d.ts.map +1 -0
- package/dist/kernel.js +1419 -0
- package/dist/kernel.js.map +1 -0
- package/dist/language-support.d.ts +232 -0
- package/dist/language-support.d.ts.map +1 -0
- package/dist/language-support.js +1134 -0
- package/dist/language-support.js.map +1 -0
- package/dist/llm-client.d.ts +82 -0
- package/dist/llm-client.d.ts.map +1 -0
- package/dist/llm-client.js +475 -0
- package/dist/llm-client.js.map +1 -0
- package/dist/mcp-client.d.ts +232 -0
- package/dist/mcp-client.d.ts.map +1 -0
- package/dist/mcp-client.js +718 -0
- package/dist/mcp-client.js.map +1 -0
- package/dist/memory-manager.d.ts +200 -0
- package/dist/memory-manager.d.ts.map +1 -0
- package/dist/memory-manager.js +568 -0
- package/dist/memory-manager.js.map +1 -0
- package/dist/memory.d.ts +87 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +341 -0
- package/dist/memory.js.map +1 -0
- package/dist/model-router.d.ts +245 -0
- package/dist/model-router.d.ts.map +1 -0
- package/dist/model-router.js +632 -0
- package/dist/model-router.js.map +1 -0
- package/dist/parallel-executor.d.ts +125 -0
- package/dist/parallel-executor.d.ts.map +1 -0
- package/dist/parallel-executor.js +201 -0
- package/dist/parallel-executor.js.map +1 -0
- package/dist/perf-optimizer.d.ts +212 -0
- package/dist/perf-optimizer.d.ts.map +1 -0
- package/dist/perf-optimizer.js +721 -0
- package/dist/perf-optimizer.js.map +1 -0
- package/dist/persona.d.ts +305 -0
- package/dist/persona.d.ts.map +1 -0
- package/dist/persona.js +887 -0
- package/dist/persona.js.map +1 -0
- package/dist/planner.d.ts +70 -0
- package/dist/planner.d.ts.map +1 -0
- package/dist/planner.js +264 -0
- package/dist/planner.js.map +1 -0
- package/dist/qa-pipeline.d.ts +365 -0
- package/dist/qa-pipeline.d.ts.map +1 -0
- package/dist/qa-pipeline.js +1352 -0
- package/dist/qa-pipeline.js.map +1 -0
- package/dist/reasoning-adapter.d.ts +116 -0
- package/dist/reasoning-adapter.d.ts.map +1 -0
- package/dist/reasoning-adapter.js +187 -0
- package/dist/reasoning-adapter.js.map +1 -0
- package/dist/role-registry.d.ts +55 -0
- package/dist/role-registry.d.ts.map +1 -0
- package/dist/role-registry.js +192 -0
- package/dist/role-registry.js.map +1 -0
- package/dist/sandbox-tiers.d.ts +327 -0
- package/dist/sandbox-tiers.d.ts.map +1 -0
- package/dist/sandbox-tiers.js +928 -0
- package/dist/sandbox-tiers.js.map +1 -0
- package/dist/security-scanner.d.ts +222 -0
- package/dist/security-scanner.d.ts.map +1 -0
- package/dist/security-scanner.js +1129 -0
- package/dist/security-scanner.js.map +1 -0
- package/dist/security.d.ts +93 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +393 -0
- package/dist/security.js.map +1 -0
- package/dist/self-reflection.d.ts +397 -0
- package/dist/self-reflection.d.ts.map +1 -0
- package/dist/self-reflection.js +908 -0
- package/dist/self-reflection.js.map +1 -0
- package/dist/session-persistence.d.ts +191 -0
- package/dist/session-persistence.d.ts.map +1 -0
- package/dist/session-persistence.js +395 -0
- package/dist/session-persistence.js.map +1 -0
- package/dist/speculative-executor.d.ts +210 -0
- package/dist/speculative-executor.d.ts.map +1 -0
- package/dist/speculative-executor.js +618 -0
- package/dist/speculative-executor.js.map +1 -0
- package/dist/state-machine.d.ts +289 -0
- package/dist/state-machine.d.ts.map +1 -0
- package/dist/state-machine.js +695 -0
- package/dist/state-machine.js.map +1 -0
- package/dist/sub-agent.d.ts +177 -0
- package/dist/sub-agent.d.ts.map +1 -0
- package/dist/sub-agent.js +303 -0
- package/dist/sub-agent.js.map +1 -0
- package/dist/system-prompt.d.ts +26 -0
- package/dist/system-prompt.d.ts.map +1 -0
- package/dist/system-prompt.js +84 -0
- package/dist/system-prompt.js.map +1 -0
- package/dist/test-intelligence.d.ts +439 -0
- package/dist/test-intelligence.d.ts.map +1 -0
- package/dist/test-intelligence.js +1165 -0
- package/dist/test-intelligence.js.map +1 -0
- package/dist/types.d.ts +632 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/vector-index.d.ts +314 -0
- package/dist/vector-index.d.ts.map +1 -0
- package/dist/vector-index.js +618 -0
- package/dist/vector-index.js.map +1 -0
- 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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"}
|