@vetala/vetala 0.5.5 → 0.6.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 (39) hide show
  1. package/README.md +7 -6
  2. package/dist/src/agent.d.ts +20 -0
  3. package/dist/src/agent.js +266 -4
  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/deliberation.d.ts +36 -0
  8. package/dist/src/deliberation.js +375 -0
  9. package/dist/src/deliberation.js.map +1 -0
  10. package/dist/src/ipc-ui.d.ts +5 -1
  11. package/dist/src/ipc-ui.js +13 -0
  12. package/dist/src/ipc-ui.js.map +1 -1
  13. package/dist/src/skills/runtime.js +148 -4
  14. package/dist/src/skills/runtime.js.map +1 -1
  15. package/dist/src/terminal-ui.d.ts +5 -0
  16. package/dist/src/terminal-ui.js +36 -0
  17. package/dist/src/terminal-ui.js.map +1 -1
  18. package/dist/src/tools/filesystem.js +90 -14
  19. package/dist/src/tools/filesystem.js.map +1 -1
  20. package/dist/src/tools/lsp.js +198 -49
  21. package/dist/src/tools/lsp.js.map +1 -1
  22. package/dist/src/tools/shell.js +114 -3
  23. package/dist/src/tools/shell.js.map +1 -1
  24. package/dist/src/tools/skill.js +1 -1
  25. package/dist/src/tools/skill.js.map +1 -1
  26. package/dist/src/tools/tree-sitter-check.d.ts +1 -0
  27. package/dist/src/tools/tree-sitter-check.js +32 -0
  28. package/dist/src/tools/tree-sitter-check.js.map +1 -1
  29. package/dist/src/turn-targets.d.ts +12 -0
  30. package/dist/src/turn-targets.js +106 -0
  31. package/dist/src/turn-targets.js.map +1 -0
  32. package/dist/src/types.d.ts +24 -0
  33. package/package.json +1 -1
  34. package/tui/vetala-darwin-arm64 +0 -0
  35. package/tui/vetala-darwin-x64 +0 -0
  36. package/tui/vetala-linux-arm64 +0 -0
  37. package/tui/vetala-linux-x64 +0 -0
  38. package/tui/vetala-win32-arm64.exe +0 -0
  39. package/tui/vetala-win32-x64.exe +0 -0
@@ -38,7 +38,11 @@ const listDirTool = {
38
38
  readOnly: true,
39
39
  async execute(rawArgs, context) {
40
40
  const args = expectObject(rawArgs);
41
- const target = await context.paths.ensureReadable(stringOrDefault(args.path, "."));
41
+ const target = await context.paths.ensureReadable(stringOrDefault(args.path, context.turn?.preferredRoot ?? "."));
42
+ const deferred = deferBroadWorkspaceExploration("list_dir", target, context);
43
+ if (deferred) {
44
+ return deferred;
45
+ }
42
46
  const entries = await readdir(target, { withFileTypes: true });
43
47
  const rows = await Promise.all(entries
44
48
  .sort((left, right) => left.name.localeCompare(right.name))
@@ -53,7 +57,10 @@ const listDirTool = {
53
57
  summary: `Listed ${rows.length} entries in ${target}`,
54
58
  content: rows.join("\n") || "(empty directory)",
55
59
  isError: false,
56
- referencedFiles: [target]
60
+ referencedFiles: [target],
61
+ meta: {
62
+ inspectedPaths: [target]
63
+ }
57
64
  };
58
65
  }
59
66
  };
@@ -145,7 +152,10 @@ const readFileTool = {
145
152
  summary: `Cannot read ${target}`,
146
153
  content: `${target} is a directory, not a file. Please use the list_dir tool to explore its contents.`,
147
154
  isError: true,
148
- referencedFiles: [target]
155
+ referencedFiles: [target],
156
+ meta: {
157
+ inspectedPaths: [target]
158
+ }
149
159
  };
150
160
  }
151
161
  const fileContent = await readFile(target, "utf8");
@@ -159,7 +169,10 @@ const readFileTool = {
159
169
  summary: `Failed to read ${target}`,
160
170
  content: error instanceof Error ? error.message : String(error),
161
171
  isError: true,
162
- referencedFiles: [target]
172
+ referencedFiles: [target],
173
+ meta: {
174
+ inspectedPaths: [target]
175
+ }
163
176
  };
164
177
  }
165
178
  }
@@ -199,7 +212,10 @@ const readFileChunkTool = {
199
212
  summary: `Cannot read ${target}`,
200
213
  content: `${target} is a directory, not a file. Please use the list_dir tool to explore its contents.`,
201
214
  isError: true,
202
- referencedFiles: [target]
215
+ referencedFiles: [target],
216
+ meta: {
217
+ inspectedPaths: [target]
218
+ }
203
219
  };
204
220
  }
205
221
  const fileContent = await readFile(target, "utf8");
@@ -211,7 +227,10 @@ const readFileChunkTool = {
211
227
  summary: `Failed to read ${target}`,
212
228
  content: error instanceof Error ? error.message : String(error),
213
229
  isError: true,
214
- referencedFiles: [target]
230
+ referencedFiles: [target],
231
+ meta: {
232
+ inspectedPaths: [target]
233
+ }
215
234
  };
216
235
  }
217
236
  }
@@ -291,7 +310,10 @@ const readSymbolTool = {
291
310
  content: rendered.join("\n\n"),
292
311
  isError: false,
293
312
  referencedFiles: files,
294
- readFiles: files
313
+ readFiles: files,
314
+ meta: {
315
+ inspectedPaths: files
316
+ }
295
317
  };
296
318
  }
297
319
  };
@@ -573,7 +595,10 @@ const moveFileTool = {
573
595
  summary: `Moved ${source} to ${destination}`,
574
596
  content: `Successfully moved ${source} to ${destination}`,
575
597
  isError: false,
576
- referencedFiles: [source, destination]
598
+ referencedFiles: [source, destination],
599
+ meta: {
600
+ changedFiles: [source, destination]
601
+ }
577
602
  };
578
603
  }
579
604
  catch (error) {
@@ -617,7 +642,10 @@ const deleteFileTool = {
617
642
  summary: `Deleted ${target}`,
618
643
  content: `Successfully deleted ${target}`,
619
644
  isError: false,
620
- referencedFiles: [target]
645
+ referencedFiles: [target],
646
+ meta: {
647
+ changedFiles: [target]
648
+ }
621
649
  };
622
650
  }
623
651
  catch (error) {
@@ -644,7 +672,11 @@ async function executeSearchTool(args, context) {
644
672
  referencedFiles: [directTarget]
645
673
  };
646
674
  }
647
- const target = await context.paths.ensureReadable(stringOrDefault(args.path, "."));
675
+ const target = await context.paths.ensureReadable(stringOrDefault(args.path, context.turn?.preferredRoot ?? "."));
676
+ const deferred = deferBroadWorkspaceExploration("search_repo", target, context);
677
+ if (deferred) {
678
+ return deferred;
679
+ }
648
680
  const limit = clampInteger(integerOrDefault(args.limit, DEFAULT_SEARCH_LIMIT), 1, 200);
649
681
  const matches = await searchRepo({
650
682
  query,
@@ -663,7 +695,10 @@ async function executeSearchTool(args, context) {
663
695
  ? matches.map((match) => `${match.filePath}:${match.lineNumber}:${match.lineText}`).join("\n")
664
696
  : "(no matches)",
665
697
  isError: false,
666
- referencedFiles: [target]
698
+ referencedFiles: [target],
699
+ meta: {
700
+ inspectedPaths: [target]
701
+ }
667
702
  };
668
703
  }
669
704
  function renderReadSlice(target, lines, startLine, endLine) {
@@ -692,7 +727,10 @@ function renderReadSlice(target, lines, startLine, endLine) {
692
727
  content,
693
728
  isError: false,
694
729
  referencedFiles: [target],
695
- readFiles: [target]
730
+ readFiles: [target],
731
+ meta: {
732
+ inspectedPaths: [target]
733
+ }
696
734
  };
697
735
  }
698
736
  function renderNumberedLines(lines, startLine, endLine) {
@@ -804,6 +842,9 @@ function applyChangesToContent(target, original, changes) {
804
842
  ? updated.split(change.search).join(change.replace)
805
843
  : updated.replace(change.search, change.replace);
806
844
  }
845
+ if (updated === original) {
846
+ throw new Error(`No-op edit for ${target}. The requested replacement does not change the file.`);
847
+ }
807
848
  return { updated, replacements };
808
849
  }
809
850
  async function writePatchedFile(target, original, updated, summary, context, changeCount, replacements) {
@@ -825,7 +866,10 @@ async function writePatchedFile(target, original, updated, summary, context, cha
825
866
  `changes: +${stats.added} -${stats.removed}`
826
867
  ].join("\n"),
827
868
  isError: false,
828
- referencedFiles: [target]
869
+ referencedFiles: [target],
870
+ meta: {
871
+ changedFiles: [target]
872
+ }
829
873
  };
830
874
  }
831
875
  function successWithDiff(target, beforeContent, afterContent, summary) {
@@ -841,7 +885,39 @@ function successWithDiff(target, beforeContent, afterContent, summary) {
841
885
  `changes: +${stats.added} -${stats.removed}`
842
886
  ].join("\n"),
843
887
  isError: false,
844
- referencedFiles: [target]
888
+ referencedFiles: [target],
889
+ meta: {
890
+ changedFiles: [target]
891
+ }
892
+ };
893
+ }
894
+ function deferBroadWorkspaceExploration(toolName, target, context) {
895
+ const turn = context.turn;
896
+ if (!turn) {
897
+ return null;
898
+ }
899
+ if (target !== context.workspaceRoot) {
900
+ return null;
901
+ }
902
+ if (turn.explicitFiles.length === 0) {
903
+ return null;
904
+ }
905
+ if (turn.taskKind !== "edit" && turn.taskKind !== "review" && turn.taskKind !== "explain") {
906
+ return null;
907
+ }
908
+ if (turn.explicitFiles.some((file) => context.reads.hasRead(file))) {
909
+ return null;
910
+ }
911
+ const namedTargets = turn.explicitFiles.join(", ");
912
+ return {
913
+ summary: `Read the named target before broad ${toolName === "list_dir" ? "listing" : "search"}`,
914
+ content: [
915
+ `The user already named concrete target files: ${namedTargets}.`,
916
+ `Read those files first instead of exploring the entire workspace root.`,
917
+ `If broader context is still needed after that, rerun ${toolName} with a narrower path rooted near the named targets.`
918
+ ].join("\n"),
919
+ isError: true,
920
+ referencedFiles: turn.explicitFiles
845
921
  };
846
922
  }
847
923
  function summarizeDiffOps(beforeLines, afterLines) {
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../../src/tools/filesystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../../src/tools/filesystem.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { readFile, readdir } from "node:fs/promises";
1
+ import { readFile, stat, readdir } from "node:fs/promises";
2
2
  import { runShellCommand } from "../process-utils.js";
3
3
  import { searchRepo } from "./repo-search.js";
4
4
  import { detectLanguageByProject, detectLanguageByExtension, LANGUAGES } from "./languages.js";
5
- import { checkSyntaxWithTreeSitter, formatDiagnostics } from "./tree-sitter-check.js";
5
+ import { checkFileSyntaxWithTreeSitter, checkSyntaxWithTreeSitter, formatDiagnostics } from "./tree-sitter-check.js";
6
6
  import path from "node:path";
7
7
  export function createLspTools() {
8
8
  return [getDiagnosticsTool, findReferencesTool, listExportsTool];
@@ -34,71 +34,102 @@ const getDiagnosticsTool = {
34
34
  "Uses the native toolchain when available; falls back to tree-sitter syntax checking otherwise.",
35
35
  jsonSchema: {
36
36
  type: "object",
37
- properties: {},
37
+ properties: {
38
+ path: {
39
+ type: "string",
40
+ description: "Optional file or directory to diagnose. Defaults to the workspace root."
41
+ }
42
+ },
38
43
  additionalProperties: false
39
44
  },
40
45
  readOnly: true,
41
- async execute(_rawArgs, context) {
42
- // 1. Scan workspace for project marker files
43
- const existingFiles = new Set();
44
- try {
45
- const entries = await readdir(context.workspaceRoot);
46
- for (const e of entries)
47
- existingFiles.add(e);
48
- }
49
- catch {
50
- return {
51
- summary: "Cannot read workspace",
52
- content: "Failed to list workspace root directory.",
53
- isError: true
54
- };
55
- }
56
- const lang = detectLanguageByProject(existingFiles);
57
- if (!lang) {
58
- const supported = LANGUAGES.map(l => l.projectFiles.join("/")).join(", ");
59
- return {
60
- summary: "No supported project type detected",
61
- content: `Could not detect a project type. Looked for: ${supported}.\n` +
62
- "Make sure you are in a project root with a recognizable config file.",
63
- isError: true
64
- };
65
- }
66
- // 2. Tier 1 — try native toolchain if the binary is installed
67
- if (lang.nativeCheck) {
68
- const binAvailable = await commandExists(lang.nativeCheck.binary);
69
- if (binAvailable) {
70
- return runNativeCheck(lang, context.workspaceRoot);
46
+ async execute(rawArgs, context) {
47
+ const args = expectObject(rawArgs);
48
+ const pathArg = typeof args.path === "string" && args.path.trim().length > 0
49
+ ? await context.paths.ensureReadable(args.path)
50
+ : null;
51
+ if (pathArg) {
52
+ const targetStats = await stat(pathArg);
53
+ if (targetStats.isFile()) {
54
+ return runFileDiagnostics(pathArg, context.workspaceRoot);
71
55
  }
56
+ return runProjectDiagnostics(pathArg);
72
57
  }
73
- // 3. Tier 2 — tree-sitter fallback (zero external deps)
74
- if (lang.treeSitterWasmUrl) {
75
- return runTreeSitterCheck(lang, context.workspaceRoot);
76
- }
77
- // 4. No checker available at all for this language
58
+ return runProjectDiagnostics(context.workspaceRoot);
59
+ }
60
+ };
61
+ async function runProjectDiagnostics(root) {
62
+ // 1. Scan workspace for project marker files
63
+ const existingFiles = new Set();
64
+ try {
65
+ const entries = await readdir(root);
66
+ for (const e of entries)
67
+ existingFiles.add(e);
68
+ }
69
+ catch {
78
70
  return {
79
- summary: `No diagnostics available for ${lang.label}`,
80
- content: `Detected a ${lang.label} project but the native toolchain (${lang.nativeCheck?.binary ?? "n/a"}) is not installed ` +
81
- "and no tree-sitter grammar is configured for fallback checking.",
71
+ summary: "Cannot read workspace",
72
+ content: "Failed to list workspace root directory.",
82
73
  isError: true
83
74
  };
84
75
  }
85
- };
76
+ const lang = detectLanguageByProject(existingFiles);
77
+ if (!lang) {
78
+ const supported = LANGUAGES.map(l => l.projectFiles.join("/")).join(", ");
79
+ return {
80
+ summary: "No supported project type detected",
81
+ content: `Could not detect a project type. Looked for: ${supported}.\n` +
82
+ "Make sure you are in a project root with a recognizable config file.",
83
+ isError: true
84
+ };
85
+ }
86
+ // 2. Tier 1 — try native toolchain if the binary is installed
87
+ if (lang.nativeCheck) {
88
+ const binAvailable = await commandExists(lang.nativeCheck.binary);
89
+ if (binAvailable) {
90
+ return runNativeCheck(lang, root);
91
+ }
92
+ }
93
+ // 3. Tier 2 — tree-sitter fallback (zero external deps)
94
+ if (lang.treeSitterWasmUrl) {
95
+ return runTreeSitterCheck(lang, root);
96
+ }
97
+ // 4. No checker available at all for this language
98
+ return {
99
+ summary: `No diagnostics available for ${lang.label}`,
100
+ content: `Detected a ${lang.label} project but the native toolchain (${lang.nativeCheck?.binary ?? "n/a"}) is not installed ` +
101
+ "and no tree-sitter grammar is configured for fallback checking.",
102
+ isError: true
103
+ };
104
+ }
86
105
  async function runNativeCheck(lang, cwd) {
87
106
  const cmd = lang.nativeCheck.command;
88
107
  const result = await runShellCommand(cmd, { cwd, timeoutMs: 60_000 });
89
108
  const output = [result.stdout.trim(), result.stderr.trim()].filter(Boolean).join("\n");
90
109
  if (result.exitCode === 0) {
91
- return {
110
+ return withVerification({
92
111
  summary: `${lang.label}: no errors found (${lang.nativeCheck.binary})`,
93
112
  content: "No errors or warnings found.",
94
113
  isError: false
95
- };
114
+ }, {
115
+ kind: "diagnostics",
116
+ trusted: true,
117
+ passed: true,
118
+ summary: `${lang.label} diagnostics`,
119
+ scopePaths: [cwd]
120
+ });
96
121
  }
97
- return {
122
+ return withVerification({
98
123
  summary: `${lang.label}: errors found via ${lang.nativeCheck.binary}`,
99
124
  content: output || "(no output but command failed)",
100
125
  isError: true
101
- };
126
+ }, {
127
+ kind: "diagnostics",
128
+ trusted: true,
129
+ passed: false,
130
+ summary: `${lang.label} diagnostics`,
131
+ scopePaths: [cwd]
132
+ });
102
133
  }
103
134
  async function runTreeSitterCheck(lang, cwd) {
104
135
  const diagnostics = await checkSyntaxWithTreeSitter(cwd, lang.extensions, lang.treeSitterWasmUrl);
@@ -111,18 +142,136 @@ async function runTreeSitterCheck(lang, cwd) {
111
142
  };
112
143
  }
113
144
  if (diagnostics.length === 0) {
114
- return {
145
+ return withVerification({
115
146
  summary: `${lang.label}: no syntax errors (tree-sitter)`,
116
147
  content: "No syntax errors found via tree-sitter analysis.",
117
148
  isError: false
118
- };
149
+ }, {
150
+ kind: "diagnostics",
151
+ trusted: true,
152
+ passed: true,
153
+ summary: `${lang.label} syntax check`,
154
+ scopePaths: [cwd]
155
+ });
119
156
  }
120
- return {
157
+ return withVerification({
121
158
  summary: `${lang.label}: ${diagnostics.length} syntax error(s) (tree-sitter)`,
122
159
  content: formatDiagnostics(diagnostics),
123
160
  isError: true
161
+ }, {
162
+ kind: "diagnostics",
163
+ trusted: true,
164
+ passed: false,
165
+ summary: `${lang.label} syntax check`,
166
+ scopePaths: [cwd]
167
+ });
168
+ }
169
+ async function runFileDiagnostics(target, workspaceRoot) {
170
+ const ext = path.extname(target);
171
+ const lang = detectLanguageByExtension(ext);
172
+ if (!lang) {
173
+ return {
174
+ summary: `No diagnostics available for ${target}`,
175
+ content: `Could not determine a supported language for ${target}.`,
176
+ isError: true
177
+ };
178
+ }
179
+ if (lang.nativeCheck) {
180
+ const binAvailable = await commandExists(lang.nativeCheck.binary);
181
+ const fileCommand = buildFileDiagnosticsCommand(lang, target);
182
+ if (binAvailable && fileCommand) {
183
+ const cwd = path.dirname(target);
184
+ const result = await runShellCommand(fileCommand, { cwd, timeoutMs: 60_000, noPty: true });
185
+ const output = [result.stdout.trim(), result.stderr.trim()].filter(Boolean).join("\n");
186
+ return withVerification({
187
+ summary: result.exitCode === 0
188
+ ? `${lang.label}: no errors found in ${target}`
189
+ : `${lang.label}: errors found in ${target}`,
190
+ content: output || (result.exitCode === 0 ? "No errors or warnings found." : "(no output but command failed)"),
191
+ isError: (result.exitCode ?? 1) !== 0
192
+ }, {
193
+ kind: "diagnostics",
194
+ trusted: true,
195
+ passed: (result.exitCode ?? 1) === 0,
196
+ summary: `${lang.label} diagnostics for ${path.basename(target)}`,
197
+ scopePaths: [target]
198
+ });
199
+ }
200
+ }
201
+ if (lang.treeSitterWasmUrl) {
202
+ const diagnostics = await checkFileSyntaxWithTreeSitter(target, workspaceRoot, lang.treeSitterWasmUrl);
203
+ if (diagnostics === null) {
204
+ return {
205
+ summary: `Tree-sitter unavailable for ${lang.label}`,
206
+ content: "Could not initialize tree-sitter syntax checking for this file. " +
207
+ `Install the native ${lang.nativeCheck?.binary ?? lang.id} toolchain for diagnostics.`,
208
+ isError: true
209
+ };
210
+ }
211
+ if (diagnostics.length === 0) {
212
+ return withVerification({
213
+ summary: `${lang.label}: no syntax errors in ${target}`,
214
+ content: "No syntax errors found via tree-sitter analysis.",
215
+ isError: false
216
+ }, {
217
+ kind: "diagnostics",
218
+ trusted: true,
219
+ passed: true,
220
+ summary: `${lang.label} syntax check for ${path.basename(target)}`,
221
+ scopePaths: [target]
222
+ });
223
+ }
224
+ return withVerification({
225
+ summary: `${lang.label}: ${diagnostics.length} syntax error(s) in ${target}`,
226
+ content: formatDiagnostics(diagnostics),
227
+ isError: true
228
+ }, {
229
+ kind: "diagnostics",
230
+ trusted: true,
231
+ passed: false,
232
+ summary: `${lang.label} syntax check for ${path.basename(target)}`,
233
+ scopePaths: [target]
234
+ });
235
+ }
236
+ return {
237
+ summary: `No diagnostics available for ${target}`,
238
+ content: `Detected ${lang.label} from the file extension, but no file-scoped checker is configured for ${target}.`,
239
+ isError: true
240
+ };
241
+ }
242
+ function buildFileDiagnosticsCommand(lang, target) {
243
+ const quoted = quoteShell(target);
244
+ const ext = path.extname(target).toLowerCase();
245
+ const jsxFlag = ext === ".tsx" || ext === ".jsx" ? "--jsx react-jsx " : "";
246
+ switch (lang.id) {
247
+ case "typescript":
248
+ return `npx tsc --noEmit --pretty false ${jsxFlag}${quoted}`;
249
+ case "javascript":
250
+ return `npx tsc --noEmit --allowJs --checkJs --pretty false ${jsxFlag}${quoted}`;
251
+ case "python":
252
+ return `python3 -m py_compile ${quoted}`;
253
+ case "ruby":
254
+ return `ruby -c ${quoted}`;
255
+ case "php":
256
+ return `php -l ${quoted}`;
257
+ case "bash":
258
+ return `bash --norc -n ${quoted}`;
259
+ default:
260
+ return null;
261
+ }
262
+ }
263
+ function withVerification(result, verification) {
264
+ return {
265
+ ...result,
266
+ meta: {
267
+ ...(result.meta ?? {}),
268
+ verification
269
+ }
124
270
  };
125
271
  }
272
+ function quoteShell(value) {
273
+ return `'${value.replace(/'/g, `'\"'\"'`)}'`;
274
+ }
126
275
  // ---------------------------------------------------------------------------
127
276
  // find_references
128
277
  // ---------------------------------------------------------------------------