@vetala/vetala 0.4.0-dev → 0.5.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 (48) hide show
  1. package/README.md +5 -14
  2. package/dist/src/agent.d.ts +6 -0
  3. package/dist/src/agent.js +48 -20
  4. package/dist/src/agent.js.map +1 -1
  5. package/dist/src/app-meta.d.ts +1 -1
  6. package/dist/src/app-meta.js +1 -1
  7. package/dist/src/cli.js +41 -4
  8. package/dist/src/cli.js.map +1 -1
  9. package/dist/src/edit-history.d.ts +2 -2
  10. package/dist/src/edit-history.js +3 -3
  11. package/dist/src/edit-history.js.map +1 -1
  12. package/dist/src/edits/diff.d.ts +2 -1
  13. package/dist/src/edits/diff.js +12 -1
  14. package/dist/src/edits/diff.js.map +1 -1
  15. package/dist/src/ipc-backend.js +134 -16
  16. package/dist/src/ipc-backend.js.map +1 -1
  17. package/dist/src/ipc-ui.d.ts +2 -1
  18. package/dist/src/ipc-ui.js +15 -2
  19. package/dist/src/ipc-ui.js.map +1 -1
  20. package/dist/src/providers/openai-compatible-client.js +7 -1
  21. package/dist/src/providers/openai-compatible-client.js.map +1 -1
  22. package/dist/src/tools/advanced.js +16 -3
  23. package/dist/src/tools/advanced.js.map +1 -1
  24. package/dist/src/tools/filesystem.js +73 -22
  25. package/dist/src/tools/filesystem.js.map +1 -1
  26. package/dist/src/tools/interaction.js +53 -15
  27. package/dist/src/tools/interaction.js.map +1 -1
  28. package/dist/src/tools/languages.d.ts +14 -0
  29. package/dist/src/tools/languages.js +249 -0
  30. package/dist/src/tools/languages.js.map +1 -0
  31. package/dist/src/tools/lsp.js +156 -44
  32. package/dist/src/tools/lsp.js.map +1 -1
  33. package/dist/src/tools/repo-search.d.ts +3 -0
  34. package/dist/src/tools/repo-search.js +14 -2
  35. package/dist/src/tools/repo-search.js.map +1 -1
  36. package/dist/src/tools/shell.js +5 -1
  37. package/dist/src/tools/shell.js.map +1 -1
  38. package/dist/src/tools/tree-sitter-check.d.ts +12 -0
  39. package/dist/src/tools/tree-sitter-check.js +153 -0
  40. package/dist/src/tools/tree-sitter-check.js.map +1 -0
  41. package/dist/src/types.d.ts +9 -1
  42. package/package.json +4 -3
  43. package/tui/vetala-darwin-arm64 +0 -0
  44. package/tui/vetala-darwin-x64 +0 -0
  45. package/tui/vetala-linux-arm64 +0 -0
  46. package/tui/vetala-linux-x64 +0 -0
  47. package/tui/vetala-win32-arm64.exe +0 -0
  48. package/tui/vetala-win32-x64.exe +0 -0
package/README.md CHANGED
@@ -27,20 +27,11 @@ Current provider support includes Sarvam AI and OpenRouter.
27
27
 
28
28
  ## Patch Notes
29
29
 
30
- ### v0.4.0-dev
31
-
32
- - **Advanced Cross-Platform Tools**: Added 6 new semantic and interactive tools (`ask_user`, `analyze_image`, `read_docs`, `get_diagnostics`, `list_exports`, `find_references`, `ast_replace`, `semantic_search`).
33
- - **Interactive Model Refinement**: `Ctrl+C` while the agent is running no longer crashes the CLI. It gracefully pauses the agent, sends an interrupt to the backend, and opens a prompt asking how you would like to refine the agent's course.
34
- - **Enhanced File System Tooling**: Added `append_to_file`, `move_file`, and `delete_file` tools to give models finer-grained local workspace control and bypass JSON limits for large file rewrites.
35
- - **Markdown TUI Rendering**: Agent messages are now beautifully rendered in the TUI using `glamour`.
36
- - **Note on Vision Tools**: The `analyze_image` tool gracefully warns text-only models to avoid hallucination, but true vision testing is ongoing.
37
-
38
- ### v0.3.0-dev
39
-
40
- - **Total UI Re-architecture**: Switched from React Ink to a high-performance Go + Bubble Tea TUI.
41
- - **Improved Tool Formatting**: Redesigned tool executions to extract and highlight key parameters (e.g., `file_path`, `command`), avoiding large raw JSON blobs.
42
- - **IPC Backend**: Node.js agent now runs in headless mode, commanded purely via IPC from the Go frontend.
43
- - **Improved Terminal Emulation**: Switched to `node-pty` for more robust shell tool execution.
30
+ ### v0.5.0
31
+ - **bugfix**: major bug fixes and performance improvements
32
+ - **Universal Syntax Diagnostics**: Replaced the Python-only `compileall` fallback in `get_diagnostics` with `web-tree-sitter`. Vetala can now perform syntax checking across multiple languages (TypeScript, Python, Go, Rust, C, C++, Java, Ruby) directly in memory, even if you don't have the native compiler installed on your machine!
33
+ - **Data-Driven Language Registry**: Centralized language management and file extension mapping. Adding new language support is now a single object definition.
34
+ - **Smart Two-Tier Checks**: Diagnostics now try native tools first (`npx tsc`, `go build`) for the highest quality errors, and transparently fall back to WASM tree-sitter parsing if the toolchain is missing.
44
35
 
45
36
 
46
37
  ## Compatibility
@@ -16,6 +16,12 @@ export interface AgentOptions {
16
16
  tools: ToolRegistry;
17
17
  ui: TerminalUI;
18
18
  requestTextInput: (title: string, placeholder: string) => Promise<string>;
19
+ requestSelect: (title: string, options: string[]) => Promise<number>;
20
+ computeDiff?: (before: string, after: string) => Promise<string | null>;
21
+ fastSearch?: (query: string, root: string, options?: {
22
+ limit?: number;
23
+ regex?: boolean;
24
+ }) => Promise<any[] | null>;
19
25
  }
20
26
  export declare class Agent {
21
27
  private readonly options;
package/dist/src/agent.js CHANGED
@@ -39,8 +39,8 @@ export class Agent {
39
39
  return;
40
40
  }
41
41
  const seenToolCalls = new Set();
42
- const maxLoops = 100;
43
- for (let turnIndex = 0; turnIndex < maxLoops; turnIndex += 1) {
42
+ let consecutiveApiErrors = 0;
43
+ while (true) {
44
44
  this.throwIfStopped();
45
45
  const conversation = compactConversation(this.options.session.messages, this.options.session.referencedFiles);
46
46
  this.options.ui.activity(conversation.compactedCount > 0
@@ -51,14 +51,27 @@ export class Agent {
51
51
  let turn;
52
52
  try {
53
53
  turn = await this.completeTurn(requestMessages, streaming);
54
+ consecutiveApiErrors = 0; // Reset on success
54
55
  }
55
56
  catch (error) {
56
57
  if (isAbortError(error) || error instanceof AgentInterruptedError) {
57
58
  this.options.ui.endAssistantTurn();
58
59
  throw new AgentInterruptedError();
59
60
  }
60
- await this.appendAndRenderAssistantMessage(error instanceof Error ? error.message : String(error), true);
61
- return;
61
+ consecutiveApiErrors += 1;
62
+ const errorMessage = error instanceof Error ? error.message : String(error);
63
+ if (consecutiveApiErrors >= 3) {
64
+ await this.appendAndRenderAssistantMessage(`I've encountered multiple consecutive API errors and must stop. Last error: ${errorMessage}`, true);
65
+ return;
66
+ }
67
+ this.options.ui.warn(`API Error: ${errorMessage}`);
68
+ this.options.ui.activity("Retrying automatically...");
69
+ const syntheticUserMessage = this.persistedMessage({
70
+ role: "user",
71
+ content: `SYSTEM ALERT: The previous generation failed with an API error: ${errorMessage}\nIf you were generating a large file, you likely hit the maximum output token limit. Please try breaking your response down, or use the append_to_file tool to write large files in chunks.`
72
+ });
73
+ await this.options.sessionStore.appendMessage(this.options.session, syntheticUserMessage);
74
+ continue;
62
75
  }
63
76
  const assistantMessage = this.persistedMessage({
64
77
  role: "assistant",
@@ -105,7 +118,6 @@ export class Agent {
105
118
  }));
106
119
  }
107
120
  }
108
- throw new Error("Agent reached the maximum tool loop depth.");
109
121
  }
110
122
  async completeTurn(messages, streaming) {
111
123
  this.options.ui.activity(`Thinking with ${providerLabel(this.options.session.provider)} / ${this.options.session.model}.`);
@@ -176,7 +188,12 @@ export class Agent {
176
188
  ensureWebAccess: () => this.options.approvals.ensureWebAccess()
177
189
  },
178
190
  interaction: {
179
- askUser: (prompt) => this.options.requestTextInput("Vetala asks", prompt)
191
+ askText: (prompt, placeholder = "") => this.options.requestTextInput(prompt, placeholder),
192
+ askSelect: (prompt, options) => this.options.requestSelect(prompt, options)
193
+ },
194
+ performance: {
195
+ computeDiff: (before, after) => this.options.computeDiff ? this.options.computeDiff(before, after) : Promise.resolve(null),
196
+ fastSearch: (query, root, opts) => this.options.fastSearch ? this.options.fastSearch(query, root, opts) : Promise.resolve(null)
180
197
  },
181
198
  reads: {
182
199
  hasRead: (targetPath) => this.options.session.readFiles.includes(targetPath),
@@ -236,21 +253,32 @@ export class Agent {
236
253
  : "The full conversation is attached because the session is still short.",
237
254
  "",
238
255
  "# CORE REASONING & TOOL PROTOCOL (CRITICAL)",
239
- "1. PLAN BEFORE ACTING: Always explicitly formulate a plan. For complex tasks, break them down. Use tools systematically to explore the environment.",
240
- "2. EMPIRICAL VERIFICATION (NO HALLUCINATIONS): Never assume the contents of a file, the structure of a project, or the existence of a command. ALWAYS use tools to verify your assumptions before editing code.",
241
- "3. VALIDATE YOUR WORK: After making changes (via write_file, apply_patch, or run_shell), use search, read, or test commands to strictly confirm the changes were applied correctly and the code compiles/runs.",
242
- "4. PREFER SPECIFIC TOOLS: If a specialized tool exists (e.g., search_repo, read_file), use it instead of running generic shell commands (e.g., 'grep' or 'cat' via run_shell).",
243
- "5. INCREMENTAL PROGRESS: Take small, verified steps. If a tool call fails, analyze the error, adjust your approach, and try again. Do not silently ignore errors or pretend they succeeded.",
244
- "6. CONCISE COMMUNICATION: Keep your text responses incredibly concise. Do not mechanically narrate your tool usage. Focus on the technical outcome, strategy, or blocking issues.",
256
+ "1. PLAN BEFORE ACTING: Decompose complex tasks into ordered subtasks. Identify unknowns, risks, and dependencies before touching any file. State your plan explicitly for non-trivial work.",
257
+ "2. EMPIRICAL VERIFICATION NO HALLUCINATIONS: Never assume file contents, project structure, API signatures, or command availability. Read before you write. Grep before you guess. Stat before you create.",
258
+ "3. VALIDATE EVERY CHANGE: After write_file, apply_patch, or run_shell, confirm the change took effect. Run the relevant test, lint, or compile step. If it fails, diagnose and fix do not proceed on a broken foundation.",
259
+ "4. USE THE RIGHT TOOL: Prefer search_repo over shell grep, read_file over cat, apply_patch for surgical edits over full rewrites. Reserve run_shell for tasks no built-in tool covers.",
260
+ "5. INCREMENTAL, REVERSIBLE STEPS: Make the smallest change that moves the task forward. Verify. Then proceed. Never batch unverified changes one silent failure can corrupt the entire task.",
261
+ "6. HANDLE ERRORS EXPLICITLY: If a tool call fails or returns unexpected output, stop, analyse the error, and adapt. Never silently swallow errors or continue as if they succeeded.",
262
+ "7. CONCISE COMMUNICATION: Be terse. Narrate intent and blockers, not tool mechanics. One sentence per action is usually enough.",
263
+ "",
264
+ "# AGENTIC CODING PRINCIPLES",
265
+ "- CONTEXT FIRST: Before editing any file, read its full relevant section. Blind edits introduce regressions. Understand the call-site, the type signatures, and the surrounding invariants.",
266
+ "- DEPENDENCY AWARENESS: When adding or upgrading a package, check the existing lockfile and package manifest first. Confirm version compatibility. Prefer pinned versions in new dependencies.",
267
+ "- TEST-DRIVEN CONFIRMATION: After implementing a feature or fix, locate or write a minimal test or reproducer and run it. A passing test is the only acceptable proof of correctness.",
268
+ "- SCOPE DISCIPLINE: Fix what you were asked to fix. If you discover adjacent issues, report them but do not silently refactor unrelated code. Scope creep breaks reviewer trust.",
269
+ "- IDEMPOTENT OPERATIONS: Prefer changes that are safe to run multiple times. Guard file creation with existence checks. Guard shell commands with dry-run flags where available.",
270
+ "- RESPECT PROJECT CONVENTIONS: Match the existing code style, naming patterns, import ordering, and file layout. Read a neighbouring file for 30 seconds before writing a new one.",
271
+ "- SECURITY BY DEFAULT: Never embed secrets, tokens, or credentials. Prefer env-var lookups. Flag any code path that logs, stores, or transmits user data.",
245
272
  "",
246
- "# WORKFLOW GUIDELINES",
247
- "- Exploration: Start with `search_repo` or directory listing to map the codebase context.",
248
- "- Comprehension: Use `read_file` to understand exact context before proposing modifications.",
249
- "- Modification: Use `apply_patch` for surgical edits or `write_file` for new files. Follow up by running tests/linters via `run_shell` if applicable.",
250
- "- Wait/Delay: If a command needs time before the next check, use `sleep`.",
251
- "- Long Commands: Set `timeout_ms` explicitly for slow builds or test runs in `run_shell`.",
252
- "- Web Research: If unsure about APIs, dependency versions, or obscure errors, use `web_search` or `stack_overflow_search` instead of guessing.",
253
- "- Skills: Use the `skill` tool whenever a task aligns with a local skill. It supports list, load, read, pin, unpin.",
273
+ "# WORKFLOW PLAYBOOK",
274
+ "- Exploration : `search_repo` or directory listing build a mental map before touching anything.",
275
+ "- Comprehension : `read_file` on every file you intend to modify. Understand the full context.",
276
+ "- Implementation : `apply_patch` for targeted edits; `write_file` only for new files or full rewrites.",
277
+ "- Verification : run tests/linters via `run_shell`; read back changed files to confirm correctness.",
278
+ "- Long-running tasks : set `timeout_ms` explicitly for builds and test suites. Use `sleep` between polling steps.",
279
+ "- Uncertainty : use `web_search` or `stack_overflow_search` for unfamiliar APIs, error messages, or version quirks never guess.",
280
+ "- Skills : invoke the `skill` tool (list / load / read / pin / unpin) whenever a task aligns with an available skill.",
281
+ "- Shell fallback : use `run_shell` only when no built-in tool suffices. If a command requires interaction or elevated privileges, tell the user to run it manually.",
254
282
  "",
255
283
  "Do not repeat identical tool calls in the same turn. Treat follow-up requests as continuing the current task.",
256
284
  "",
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export declare const APP_NAME = "Vetala";
2
- export declare const APP_VERSION = "0.4.0-dev";
2
+ export declare const APP_VERSION = "0.4.1-dev";
3
3
  export declare const APP_TAGLINE = "multi-provider coding cli";
@@ -1,4 +1,4 @@
1
1
  export const APP_NAME = "Vetala";
2
- export const APP_VERSION = "0.4.0-dev";
2
+ export const APP_VERSION = "0.4.1-dev";
3
3
  export const APP_TAGLINE = "multi-provider coding cli";
4
4
  //# sourceMappingURL=app-meta.js.map
package/dist/src/cli.js CHANGED
@@ -31,12 +31,40 @@ program
31
31
  const { access, readFile } = await import("node:fs/promises");
32
32
  const { join } = await import("node:path");
33
33
  const { fileURLToPath } = await import("node:url");
34
- const { default: updateNotifier } = await import("update-notifier");
34
+ const { checkForAppUpdate, installAppUpdate, snoozeAppUpdate } = await import("./update-notifier.js");
35
35
  const __dirname = fileURLToPath(new URL(".", import.meta.url));
36
36
  const isDist = __dirname.includes("dist");
37
37
  const projectRoot = join(__dirname, isDist ? "../../" : "../");
38
- const pkg = JSON.parse(await readFile(join(projectRoot, "package.json"), "utf8"));
39
- updateNotifier({ pkg }).notify();
38
+ const update = await checkForAppUpdate();
39
+ if (update && stdin.isTTY && stdout.isTTY) {
40
+ const rl = readline.createInterface({ input: stdin, output: stdout });
41
+ try {
42
+ console.log(`\n\x1b[36m╭────────────────────────────────────────────────────────╮\x1b[0m`);
43
+ console.log(`\x1b[36m│\x1b[0m Update available! \x1b[31m${update.currentVersion}\x1b[0m → \x1b[32m${update.latestVersion}\x1b[0m \x1b[36m│\x1b[0m`);
44
+ console.log(`\x1b[36m╰────────────────────────────────────────────────────────╯\x1b[0m\n`);
45
+ const answer = await rl.question(`Run '${update.installCommand}' now? [Y/n/snooze]: `);
46
+ const choice = answer.trim().toLowerCase();
47
+ if (choice === "s" || choice === "snooze") {
48
+ await snoozeAppUpdate(update.latestVersion);
49
+ console.log("Update snoozed for 24 hours.\n");
50
+ }
51
+ else if (choice === "" || choice === "y" || choice === "yes") {
52
+ console.log("Installing update...");
53
+ try {
54
+ const result = await installAppUpdate(update.latestVersion);
55
+ console.log(result.stdout || result.stderr);
56
+ console.log("Update complete! Please run vetala again.");
57
+ process.exit(0);
58
+ }
59
+ catch (err) {
60
+ console.error("Failed to install update:", err);
61
+ }
62
+ }
63
+ }
64
+ finally {
65
+ rl.close();
66
+ }
67
+ }
40
68
  let config = await loadConfig();
41
69
  const runtimeProfile = detectRuntimeHostProfile();
42
70
  const ui = new TerminalUI(runtimeProfile);
@@ -138,7 +166,16 @@ async function runOneShot(prompt, session, config, store, ui, runtimeProfile) {
138
166
  return placeholder;
139
167
  const answer = await rl.question(`${title}${placeholder ? ` (${placeholder})` : ''}: `);
140
168
  return answer || placeholder;
141
- }
169
+ },
170
+ requestSelect: async (title, options) => {
171
+ if (!rl)
172
+ return 0;
173
+ const answer = await rl.question(`${title}\n${options.map((o, i) => `${i + 1}. ${o}`).join('\n')}\nChoice (1-${options.length}): `);
174
+ const parsed = parseInt(answer, 10);
175
+ return isNaN(parsed) || parsed < 1 || parsed > options.length ? 0 : parsed - 1;
176
+ },
177
+ computeDiff: async () => null,
178
+ fastSearch: async () => null
142
179
  });
143
180
  await agent.runTurn(prompt, stdout.isTTY);
144
181
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { SessionStore } from "./session-store.js";
2
- import type { ApprovalRequest, FileEdit, SessionState, ToolResult } from "./types.js";
2
+ import type { ApprovalRequest, FileEdit, SessionState, ToolContext, ToolResult } from "./types.js";
3
3
  export declare function latestUndoableEdit(session: SessionState): FileEdit | null;
4
- export declare function undoLastEdit(session: SessionState, store: SessionStore, requestApproval: (request: ApprovalRequest) => Promise<boolean>): Promise<ToolResult>;
4
+ export declare function undoLastEdit(session: SessionState, store: SessionStore, requestApproval: (request: ApprovalRequest) => Promise<boolean>, context?: ToolContext): Promise<ToolResult>;
@@ -10,7 +10,7 @@ export function latestUndoableEdit(session) {
10
10
  }
11
11
  return null;
12
12
  }
13
- export async function undoLastEdit(session, store, requestApproval) {
13
+ export async function undoLastEdit(session, store, requestApproval, context) {
14
14
  const edit = latestUndoableEdit(session);
15
15
  if (!edit) {
16
16
  return denied("No undoable edits are recorded in this session.");
@@ -27,7 +27,7 @@ export async function undoLastEdit(session, store, requestApproval) {
27
27
  `path: ${edit.path}`,
28
28
  `summary: ${edit.summary}`,
29
29
  "",
30
- buildDiffPreview(edit.path, currentContent, edit.beforeContent)
30
+ await buildDiffPreview(edit.path, currentContent, edit.beforeContent, 2, context)
31
31
  ].join("\n")
32
32
  });
33
33
  if (!approved) {
@@ -46,7 +46,7 @@ export async function undoLastEdit(session, store, requestApproval) {
46
46
  content: [
47
47
  `Reverted the last tracked edit in ${edit.path}.`,
48
48
  "",
49
- buildDiffPreview(edit.path, currentContent, edit.beforeContent)
49
+ await buildDiffPreview(edit.path, currentContent, edit.beforeContent, 2, context)
50
50
  ].join("\n"),
51
51
  isError: false,
52
52
  referencedFiles: [edit.path]
@@ -1 +1 @@
1
- {"version":3,"file":"edit-history.js","sourceRoot":"","sources":["../../src/edit-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edit-history.js","sourceRoot":"","sources":["../../src/edit-history.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
+ import type { ToolContext } from "../types.js";
1
2
  interface DiffOp {
2
3
  type: "equal" | "add" | "remove";
3
4
  line: string;
4
5
  }
5
- export declare function buildDiffPreview(filePath: string, beforeContent: string | null, afterContent: string | null, contextLines?: number): string;
6
+ export declare function buildDiffPreview(filePath: string, beforeContent: string | null, afterContent: string | null, contextLines?: number, context?: ToolContext): Promise<string>;
6
7
  export declare function lcsDiff(beforeLines: string[], afterLines: string[]): DiffOp[];
7
8
  export {};
@@ -1,12 +1,23 @@
1
1
  const DEFAULT_CONTEXT_LINES = 2;
2
2
  const MAX_PREVIEW_LINES = 64;
3
3
  const MAX_LINE_PRODUCT = 120_000;
4
- export function buildDiffPreview(filePath, beforeContent, afterContent, contextLines = DEFAULT_CONTEXT_LINES) {
4
+ export async function buildDiffPreview(filePath, beforeContent, afterContent, contextLines = DEFAULT_CONTEXT_LINES, context) {
5
5
  const beforeLines = splitLines(beforeContent);
6
6
  const afterLines = splitLines(afterContent);
7
7
  if (beforeContent === afterContent) {
8
8
  return `No visible changes for ${filePath}.`;
9
9
  }
10
+ // If we have a performance-capable context, offload to Go backend for speed
11
+ if (context?.performance.computeDiff && beforeContent !== null && afterContent !== null) {
12
+ const goDiff = await context.performance.computeDiff(beforeContent, afterContent);
13
+ if (goDiff) {
14
+ return [
15
+ `--- ${filePath}`,
16
+ `+++ ${filePath}`,
17
+ goDiff
18
+ ].join("\n");
19
+ }
20
+ }
10
21
  const ops = beforeLines.length * afterLines.length > MAX_LINE_PRODUCT
11
22
  ? fallbackOps(beforeLines, afterLines)
12
23
  : lcsDiff(beforeLines, afterLines);
@@ -1 +1 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/edits/diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/edits/diff.ts"],"names":[],"mappings":"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"}