@vetala/vetala 0.5.4 → 0.5.5
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/README.md +6 -46
- package/dist/src/agent.d.ts +20 -1
- package/dist/src/agent.js +277 -116
- package/dist/src/agent.js.map +1 -1
- package/dist/src/app-meta.d.ts +1 -1
- package/dist/src/app-meta.js +1 -1
- package/dist/src/context-files.js +1 -0
- package/dist/src/context-files.js.map +1 -1
- package/dist/src/ipc-backend.js +97 -9
- package/dist/src/ipc-backend.js.map +1 -1
- package/dist/src/ipc-ui.d.ts +3 -1
- package/dist/src/ipc-ui.js +9 -2
- package/dist/src/ipc-ui.js.map +1 -1
- package/dist/src/process-utils.d.ts +1 -0
- package/dist/src/process-utils.js +72 -7
- package/dist/src/process-utils.js.map +1 -1
- package/dist/src/skills/runtime.d.ts +2 -1
- package/dist/src/skills/runtime.js +298 -11
- package/dist/src/skills/runtime.js.map +1 -1
- package/dist/src/skills/types.d.ts +19 -0
- package/dist/src/terminal-ui.d.ts +3 -1
- package/dist/src/terminal-ui.js +7 -1
- package/dist/src/terminal-ui.js.map +1 -1
- package/dist/src/tools/filesystem.js +56 -2
- package/dist/src/tools/filesystem.js.map +1 -1
- package/dist/src/tools/git.d.ts +23 -0
- package/dist/src/tools/git.js +309 -13
- package/dist/src/tools/git.js.map +1 -1
- package/dist/src/tools/repo-search.d.ts +2 -0
- package/dist/src/tools/repo-search.js +45 -13
- package/dist/src/tools/repo-search.js.map +1 -1
- package/dist/src/tools/shell.js +1 -1
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/skill.js +5 -1
- package/dist/src/tools/skill.js.map +1 -1
- package/dist/src/types.d.ts +7 -0
- package/package.json +1 -1
- package/skill/agents-md-generator/SKILL.md +13 -0
- package/skill/biz-opportunity-scout/SKILL.md +17 -0
- package/skill/code-review/SKILL.md +15 -0
- package/skill/code-security-audit/SKILL.md +21 -0
- package/skill/composition-patterns/SKILL.md +15 -0
- package/skill/deploy-to-vercel/SKILL.md +14 -0
- package/skill/git-workflow/SKILL.md +16 -0
- package/skill/jetbrains-vmoptions/SKILL.md +14 -0
- package/skill/kysely-converter/SKILL.md +13 -0
- package/skill/react-best-practices/SKILL.md +19 -0
- package/skill/react-native-skills/SKILL.md +19 -0
- package/skill/react-vite-guide/SKILL.md +18 -0
- package/skill/skill-maker/SKILL.md +14 -0
- package/skill/system-prompt-creator/SKILL.md +13 -0
- package/skill/typst-creator/SKILL.md +14 -0
- package/skill/web-design-guidelines/SKILL.md +17 -0
- package/tui/vetala-darwin-arm64 +0 -0
- package/tui/vetala-darwin-x64 +0 -0
- package/tui/vetala-linux-arm64 +0 -0
- package/tui/vetala-linux-x64 +0 -0
- package/tui/vetala-win32-arm64.exe +0 -0
- package/tui/vetala-win32-x64.exe +0 -0
package/dist/src/tools/git.js
CHANGED
|
@@ -1,7 +1,70 @@
|
|
|
1
1
|
import { runExecFile } from "../process-utils.js";
|
|
2
|
+
const DEFAULT_GIT_CONTEXT_LINES = 3;
|
|
3
|
+
const MAX_UNTRACKED_FILES = 100;
|
|
2
4
|
export function createGitTools() {
|
|
3
|
-
return [gitStatusTool, gitDiffTool, gitLogTool, gitBlameTool, gitShowTool, gitBranchTool, gitStashTool];
|
|
5
|
+
return [gitReviewTool, gitStatusTool, gitDiffTool, gitLogTool, gitBlameTool, gitShowTool, gitBranchTool, gitStashTool];
|
|
4
6
|
}
|
|
7
|
+
const gitReviewTool = {
|
|
8
|
+
name: "git_review",
|
|
9
|
+
description: "Prepare a review-ready git change report. Supports full worktree review, merge-base diffs against a base branch, and commit inspection.",
|
|
10
|
+
jsonSchema: {
|
|
11
|
+
type: "object",
|
|
12
|
+
properties: {
|
|
13
|
+
target: {
|
|
14
|
+
type: "string",
|
|
15
|
+
enum: ["worktree", "base_branch", "commit"],
|
|
16
|
+
description: "What to inspect. Defaults to 'worktree'."
|
|
17
|
+
},
|
|
18
|
+
baseBranch: {
|
|
19
|
+
type: "string",
|
|
20
|
+
description: "Base branch for merge-base review, for example 'main'. Required when target is 'base_branch'."
|
|
21
|
+
},
|
|
22
|
+
ref: {
|
|
23
|
+
type: "string",
|
|
24
|
+
description: "Commit or ref to inspect when target is 'commit'."
|
|
25
|
+
},
|
|
26
|
+
stat: {
|
|
27
|
+
type: "boolean",
|
|
28
|
+
description: "If true, show diffstat summaries instead of full patches. Defaults to false."
|
|
29
|
+
},
|
|
30
|
+
includeUntracked: {
|
|
31
|
+
type: "boolean",
|
|
32
|
+
description: "Include untracked files in the report. Defaults to true."
|
|
33
|
+
},
|
|
34
|
+
paths: {
|
|
35
|
+
type: "array",
|
|
36
|
+
items: { type: "string" },
|
|
37
|
+
description: "Optional list of file paths to restrict the report to."
|
|
38
|
+
},
|
|
39
|
+
contextLines: {
|
|
40
|
+
type: "integer",
|
|
41
|
+
description: "Context lines around each change when rendering patches. Defaults to 3."
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
additionalProperties: false
|
|
45
|
+
},
|
|
46
|
+
readOnly: true,
|
|
47
|
+
async execute(rawArgs, context) {
|
|
48
|
+
const args = expectObject(rawArgs);
|
|
49
|
+
const baseBranch = optionalNonEmptyString(args.baseBranch);
|
|
50
|
+
const ref = optionalNonEmptyString(args.ref);
|
|
51
|
+
const report = await buildGitReviewReport({
|
|
52
|
+
cwd: context.workspaceRoot,
|
|
53
|
+
target: parseReviewTarget(args.target),
|
|
54
|
+
stat: args.stat === true,
|
|
55
|
+
includeUntracked: args.includeUntracked !== false,
|
|
56
|
+
paths: stringArray(args.paths),
|
|
57
|
+
contextLines: parseContextLines(args.contextLines),
|
|
58
|
+
...(baseBranch ? { baseBranch } : {}),
|
|
59
|
+
...(ref ? { ref } : {})
|
|
60
|
+
});
|
|
61
|
+
return {
|
|
62
|
+
summary: report.summary,
|
|
63
|
+
content: report.content,
|
|
64
|
+
isError: report.isError
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
};
|
|
5
68
|
const gitStatusTool = {
|
|
6
69
|
name: "git_status",
|
|
7
70
|
description: "Return the current git status for the workspace repository, including branch tracking info, staged/unstaged changes, and untracked files.",
|
|
@@ -24,7 +87,7 @@ const gitStatusTool = {
|
|
|
24
87
|
const args = expectObject(rawArgs);
|
|
25
88
|
const showUntracked = args.showUntracked === false ? "no" : "all";
|
|
26
89
|
const format = args.porcelain === true ? ["--porcelain=v2", "--branch"] : ["--short", "--branch"];
|
|
27
|
-
const result = await
|
|
90
|
+
const result = await runGit(context.workspaceRoot, ["status", ...format, `--untracked-files=${showUntracked}`]);
|
|
28
91
|
return formatGitResult("git status", result.stdout, result.stderr, result.exitCode);
|
|
29
92
|
}
|
|
30
93
|
};
|
|
@@ -38,6 +101,10 @@ const gitDiffTool = {
|
|
|
38
101
|
type: "string",
|
|
39
102
|
description: "Optional git ref (branch, tag, commit SHA) to diff against."
|
|
40
103
|
},
|
|
104
|
+
baseBranch: {
|
|
105
|
+
type: "string",
|
|
106
|
+
description: "Optional base branch to diff against via merge-base, for example 'main'."
|
|
107
|
+
},
|
|
41
108
|
staged: {
|
|
42
109
|
type: "boolean",
|
|
43
110
|
description: "If true, show staged (cached) changes instead of unstaged. Defaults to false."
|
|
@@ -62,22 +129,33 @@ const gitDiffTool = {
|
|
|
62
129
|
async execute(rawArgs, context) {
|
|
63
130
|
const args = expectObject(rawArgs);
|
|
64
131
|
const ref = typeof args.ref === "string" && args.ref.length > 0 ? args.ref : undefined;
|
|
132
|
+
const baseBranch = optionalNonEmptyString(args.baseBranch);
|
|
65
133
|
const staged = args.staged === true;
|
|
66
134
|
const stat = args.stat === true;
|
|
67
135
|
const paths = Array.isArray(args.paths) ? args.paths.filter((p) => typeof p === "string") : [];
|
|
68
|
-
const contextLines =
|
|
69
|
-
? args.contextLines
|
|
70
|
-
: 3;
|
|
136
|
+
const contextLines = parseContextLines(args.contextLines);
|
|
71
137
|
const command = ["diff", "--no-ext-diff", `-U${contextLines}`];
|
|
72
138
|
if (staged)
|
|
73
139
|
command.push("--cached");
|
|
74
140
|
if (stat)
|
|
75
141
|
command.push("--stat");
|
|
76
|
-
if (
|
|
142
|
+
if (baseBranch) {
|
|
143
|
+
const base = await resolveGitBaseBranch(context.workspaceRoot, baseBranch);
|
|
144
|
+
if (!base.mergeBaseSha) {
|
|
145
|
+
return {
|
|
146
|
+
summary: "git diff failed",
|
|
147
|
+
content: `Unable to resolve a merge base against ${baseBranch}.`,
|
|
148
|
+
isError: true
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
command.push(base.mergeBaseSha);
|
|
152
|
+
}
|
|
153
|
+
else if (ref) {
|
|
77
154
|
command.push(ref);
|
|
155
|
+
}
|
|
78
156
|
if (paths.length > 0)
|
|
79
157
|
command.push("--", ...paths);
|
|
80
|
-
const result = await
|
|
158
|
+
const result = await runGit(context.workspaceRoot, command);
|
|
81
159
|
return formatGitResult("git diff", result.stdout, result.stderr, result.exitCode);
|
|
82
160
|
}
|
|
83
161
|
};
|
|
@@ -139,7 +217,7 @@ const gitLogTool = {
|
|
|
139
217
|
command.push(ref);
|
|
140
218
|
if (paths.length > 0)
|
|
141
219
|
command.push("--", ...paths);
|
|
142
|
-
const result = await
|
|
220
|
+
const result = await runGit(context.workspaceRoot, command);
|
|
143
221
|
return formatGitResult("git log", result.stdout, result.stderr, result.exitCode);
|
|
144
222
|
}
|
|
145
223
|
};
|
|
@@ -185,7 +263,7 @@ const gitBlameTool = {
|
|
|
185
263
|
if (hasRange)
|
|
186
264
|
command.push(`-L${args.startLine},${args.endLine}`);
|
|
187
265
|
command.push("--", args.path);
|
|
188
|
-
const result = await
|
|
266
|
+
const result = await runGit(context.workspaceRoot, command);
|
|
189
267
|
return formatGitResult("git blame", result.stdout, result.stderr, result.exitCode);
|
|
190
268
|
}
|
|
191
269
|
};
|
|
@@ -225,7 +303,7 @@ const gitShowTool = {
|
|
|
225
303
|
const paths = Array.isArray(args.paths) ? args.paths.filter((p) => typeof p === "string") : [];
|
|
226
304
|
if (paths.length > 0)
|
|
227
305
|
command.push("--", ...paths);
|
|
228
|
-
const result = await
|
|
306
|
+
const result = await runGit(context.workspaceRoot, command);
|
|
229
307
|
return formatGitResult("git show", result.stdout, result.stderr, result.exitCode);
|
|
230
308
|
}
|
|
231
309
|
};
|
|
@@ -266,7 +344,7 @@ const gitBranchTool = {
|
|
|
266
344
|
command.push("--verbose", "--verbose"); // double -v shows upstream
|
|
267
345
|
if (typeof args.contains === "string" && args.contains.length > 0)
|
|
268
346
|
command.push("--contains", args.contains);
|
|
269
|
-
const result = await
|
|
347
|
+
const result = await runGit(context.workspaceRoot, command);
|
|
270
348
|
return formatGitResult("git branch", result.stdout, result.stderr, result.exitCode);
|
|
271
349
|
}
|
|
272
350
|
};
|
|
@@ -297,7 +375,7 @@ const gitStashTool = {
|
|
|
297
375
|
const args = expectObject(rawArgs);
|
|
298
376
|
const action = args.action === "show" ? "show" : "list";
|
|
299
377
|
if (action === "list") {
|
|
300
|
-
const result = await
|
|
378
|
+
const result = await runGit(context.workspaceRoot, ["stash", "list"]);
|
|
301
379
|
return formatGitResult("git stash list", result.stdout, result.stderr, result.exitCode);
|
|
302
380
|
}
|
|
303
381
|
const stashRef = typeof args.stashRef === "string" && args.stashRef.length > 0 ? args.stashRef : "stash@{0}";
|
|
@@ -305,10 +383,177 @@ const gitStashTool = {
|
|
|
305
383
|
if (args.stat !== true)
|
|
306
384
|
command.push("-p"); // full patch by default
|
|
307
385
|
command.push(stashRef);
|
|
308
|
-
const result = await
|
|
386
|
+
const result = await runGit(context.workspaceRoot, command);
|
|
309
387
|
return formatGitResult(`git stash show ${stashRef}`, result.stdout, result.stderr, result.exitCode);
|
|
310
388
|
}
|
|
311
389
|
};
|
|
390
|
+
export async function buildGitReviewReport(options) {
|
|
391
|
+
const target = options.target ?? "worktree";
|
|
392
|
+
const stat = options.stat === true;
|
|
393
|
+
const includeUntracked = options.includeUntracked !== false;
|
|
394
|
+
const contextLines = options.contextLines ?? DEFAULT_GIT_CONTEXT_LINES;
|
|
395
|
+
const paths = options.paths?.filter((path) => path.length > 0) ?? [];
|
|
396
|
+
switch (target) {
|
|
397
|
+
case "base_branch":
|
|
398
|
+
return buildBaseBranchReview(options.cwd, {
|
|
399
|
+
stat,
|
|
400
|
+
includeUntracked,
|
|
401
|
+
paths,
|
|
402
|
+
contextLines,
|
|
403
|
+
...(options.baseBranch ? { baseBranch: options.baseBranch } : {})
|
|
404
|
+
});
|
|
405
|
+
case "commit":
|
|
406
|
+
return buildCommitReview(options.cwd, {
|
|
407
|
+
stat,
|
|
408
|
+
paths,
|
|
409
|
+
...(options.ref ? { ref: options.ref } : {})
|
|
410
|
+
});
|
|
411
|
+
case "worktree":
|
|
412
|
+
default:
|
|
413
|
+
return buildWorktreeReview(options.cwd, {
|
|
414
|
+
stat,
|
|
415
|
+
includeUntracked,
|
|
416
|
+
paths,
|
|
417
|
+
contextLines
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
export async function resolveGitBaseBranch(cwd, baseBranch) {
|
|
422
|
+
const requestedBranch = baseBranch.trim();
|
|
423
|
+
const upstreamProbe = await runGit(cwd, ["rev-parse", "--verify", "--symbolic-full-name", `${requestedBranch}@{upstream}`]);
|
|
424
|
+
const baseRef = upstreamProbe.exitCode === 0 && upstreamProbe.stdout.trim() ? upstreamProbe.stdout.trim() : requestedBranch;
|
|
425
|
+
const mergeBase = await runGit(cwd, ["merge-base", "HEAD", baseRef]);
|
|
426
|
+
return {
|
|
427
|
+
requestedBranch,
|
|
428
|
+
baseRef,
|
|
429
|
+
mergeBaseSha: mergeBase.exitCode === 0 && mergeBase.stdout.trim() ? mergeBase.stdout.trim() : null
|
|
430
|
+
};
|
|
431
|
+
}
|
|
432
|
+
async function buildWorktreeReview(cwd, options) {
|
|
433
|
+
const status = await runGit(cwd, ["status", "--short", "--branch", "--untracked-files=all"]);
|
|
434
|
+
if (status.exitCode !== 0) {
|
|
435
|
+
return formatGitResult("git review", status.stdout, status.stderr, status.exitCode);
|
|
436
|
+
}
|
|
437
|
+
const stagedCommand = ["diff", "--cached", "--no-ext-diff", `-U${options.contextLines}`];
|
|
438
|
+
const unstagedCommand = ["diff", "--no-ext-diff", `-U${options.contextLines}`];
|
|
439
|
+
if (options.stat) {
|
|
440
|
+
stagedCommand.push("--stat");
|
|
441
|
+
unstagedCommand.push("--stat");
|
|
442
|
+
}
|
|
443
|
+
if (options.paths.length > 0) {
|
|
444
|
+
stagedCommand.push("--", ...options.paths);
|
|
445
|
+
unstagedCommand.push("--", ...options.paths);
|
|
446
|
+
}
|
|
447
|
+
const [staged, unstaged, untracked] = await Promise.all([
|
|
448
|
+
runGit(cwd, stagedCommand),
|
|
449
|
+
runGit(cwd, unstagedCommand),
|
|
450
|
+
options.includeUntracked ? listUntrackedFiles(cwd, options.paths) : Promise.resolve([])
|
|
451
|
+
]);
|
|
452
|
+
const content = joinSections([
|
|
453
|
+
{
|
|
454
|
+
title: "status",
|
|
455
|
+
body: status.stdout.trim() || "(clean)"
|
|
456
|
+
},
|
|
457
|
+
staged.stdout.trim()
|
|
458
|
+
? {
|
|
459
|
+
title: options.stat ? "staged diffstat" : "staged changes",
|
|
460
|
+
body: staged.stdout.trim()
|
|
461
|
+
}
|
|
462
|
+
: null,
|
|
463
|
+
unstaged.stdout.trim()
|
|
464
|
+
? {
|
|
465
|
+
title: options.stat ? "unstaged diffstat" : "unstaged changes",
|
|
466
|
+
body: unstaged.stdout.trim()
|
|
467
|
+
}
|
|
468
|
+
: null,
|
|
469
|
+
untracked.length > 0
|
|
470
|
+
? {
|
|
471
|
+
title: "untracked files",
|
|
472
|
+
body: renderUntrackedFiles(untracked)
|
|
473
|
+
}
|
|
474
|
+
: null
|
|
475
|
+
]);
|
|
476
|
+
return {
|
|
477
|
+
summary: "git review (worktree)",
|
|
478
|
+
content: content || "(no changes)",
|
|
479
|
+
isError: staged.exitCode !== 0 || unstaged.exitCode !== 0
|
|
480
|
+
};
|
|
481
|
+
}
|
|
482
|
+
async function buildBaseBranchReview(cwd, options) {
|
|
483
|
+
if (!options.baseBranch) {
|
|
484
|
+
return {
|
|
485
|
+
summary: "git review failed",
|
|
486
|
+
content: "Missing required argument: baseBranch",
|
|
487
|
+
isError: true
|
|
488
|
+
};
|
|
489
|
+
}
|
|
490
|
+
const base = await resolveGitBaseBranch(cwd, options.baseBranch);
|
|
491
|
+
if (!base.mergeBaseSha) {
|
|
492
|
+
return {
|
|
493
|
+
summary: "git review failed",
|
|
494
|
+
content: `Unable to resolve a merge base against ${options.baseBranch}.`,
|
|
495
|
+
isError: true
|
|
496
|
+
};
|
|
497
|
+
}
|
|
498
|
+
const command = ["diff", "--no-ext-diff", `-U${options.contextLines}`];
|
|
499
|
+
if (options.stat) {
|
|
500
|
+
command.push("--stat");
|
|
501
|
+
}
|
|
502
|
+
command.push(base.mergeBaseSha);
|
|
503
|
+
if (options.paths.length > 0) {
|
|
504
|
+
command.push("--", ...options.paths);
|
|
505
|
+
}
|
|
506
|
+
const [diff, untracked] = await Promise.all([
|
|
507
|
+
runGit(cwd, command),
|
|
508
|
+
options.includeUntracked ? listUntrackedFiles(cwd, options.paths) : Promise.resolve([])
|
|
509
|
+
]);
|
|
510
|
+
const content = joinSections([
|
|
511
|
+
{
|
|
512
|
+
title: "base branch",
|
|
513
|
+
body: `${base.requestedBranch}\nresolved ref: ${base.baseRef}\nmerge base: ${base.mergeBaseSha}`
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
title: options.stat ? "diffstat against merge base" : "diff against merge base",
|
|
517
|
+
body: diff.stdout.trim() || "(no changes)"
|
|
518
|
+
},
|
|
519
|
+
untracked.length > 0
|
|
520
|
+
? {
|
|
521
|
+
title: "untracked files",
|
|
522
|
+
body: renderUntrackedFiles(untracked)
|
|
523
|
+
}
|
|
524
|
+
: null
|
|
525
|
+
]);
|
|
526
|
+
return {
|
|
527
|
+
summary: `git review against ${base.requestedBranch}`,
|
|
528
|
+
content,
|
|
529
|
+
isError: diff.exitCode !== 0,
|
|
530
|
+
mergeBaseSha: base.mergeBaseSha,
|
|
531
|
+
baseRef: base.baseRef
|
|
532
|
+
};
|
|
533
|
+
}
|
|
534
|
+
async function buildCommitReview(cwd, options) {
|
|
535
|
+
if (!options.ref) {
|
|
536
|
+
return {
|
|
537
|
+
summary: "git review failed",
|
|
538
|
+
content: "Missing required argument: ref",
|
|
539
|
+
isError: true
|
|
540
|
+
};
|
|
541
|
+
}
|
|
542
|
+
const command = ["show", "--no-ext-diff"];
|
|
543
|
+
if (options.stat) {
|
|
544
|
+
command.push("--stat");
|
|
545
|
+
}
|
|
546
|
+
command.push(options.ref);
|
|
547
|
+
if (options.paths.length > 0) {
|
|
548
|
+
command.push("--", ...options.paths);
|
|
549
|
+
}
|
|
550
|
+
const result = await runGit(cwd, command);
|
|
551
|
+
return {
|
|
552
|
+
summary: `git review commit ${options.ref}`,
|
|
553
|
+
content: [result.stdout.trim(), result.stderr.trim()].filter(Boolean).join("\n") || "(no output)",
|
|
554
|
+
isError: result.exitCode !== 0
|
|
555
|
+
};
|
|
556
|
+
}
|
|
312
557
|
function formatGitResult(summaryLabel, stdout, stderr, exitCode) {
|
|
313
558
|
const content = [stdout.trim(), stderr.trim()].filter(Boolean).join("\n");
|
|
314
559
|
return {
|
|
@@ -317,6 +562,57 @@ function formatGitResult(summaryLabel, stdout, stderr, exitCode) {
|
|
|
317
562
|
isError: exitCode !== 0
|
|
318
563
|
};
|
|
319
564
|
}
|
|
565
|
+
async function runGit(cwd, args) {
|
|
566
|
+
return runExecFile("git", ["-c", "color.ui=never", ...args], {
|
|
567
|
+
cwd,
|
|
568
|
+
noPty: true
|
|
569
|
+
});
|
|
570
|
+
}
|
|
571
|
+
async function listUntrackedFiles(cwd, paths) {
|
|
572
|
+
const command = ["ls-files", "--others", "--exclude-standard"];
|
|
573
|
+
if (paths.length > 0) {
|
|
574
|
+
command.push("--", ...paths);
|
|
575
|
+
}
|
|
576
|
+
const result = await runGit(cwd, command);
|
|
577
|
+
if (result.exitCode !== 0) {
|
|
578
|
+
return [];
|
|
579
|
+
}
|
|
580
|
+
return result.stdout
|
|
581
|
+
.split(/\r?\n/)
|
|
582
|
+
.map((line) => line.trim())
|
|
583
|
+
.filter(Boolean)
|
|
584
|
+
.slice(0, MAX_UNTRACKED_FILES);
|
|
585
|
+
}
|
|
586
|
+
function renderUntrackedFiles(paths) {
|
|
587
|
+
if (paths.length === 0) {
|
|
588
|
+
return "(none)";
|
|
589
|
+
}
|
|
590
|
+
const lines = paths.map((path) => `?? ${path}`);
|
|
591
|
+
if (paths.length >= MAX_UNTRACKED_FILES) {
|
|
592
|
+
lines.push(`... (${MAX_UNTRACKED_FILES}+ files shown)`);
|
|
593
|
+
}
|
|
594
|
+
return lines.join("\n");
|
|
595
|
+
}
|
|
596
|
+
function joinSections(sections) {
|
|
597
|
+
return sections
|
|
598
|
+
.filter((section) => section !== null)
|
|
599
|
+
.map((section) => `${section.title}\n${section.body}`)
|
|
600
|
+
.join("\n\n");
|
|
601
|
+
}
|
|
602
|
+
function parseReviewTarget(value) {
|
|
603
|
+
return value === "base_branch" || value === "commit" ? value : "worktree";
|
|
604
|
+
}
|
|
605
|
+
function parseContextLines(value) {
|
|
606
|
+
return typeof value === "number" && Number.isInteger(value) && value >= 0
|
|
607
|
+
? value
|
|
608
|
+
: DEFAULT_GIT_CONTEXT_LINES;
|
|
609
|
+
}
|
|
610
|
+
function optionalNonEmptyString(value) {
|
|
611
|
+
return typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
|
|
612
|
+
}
|
|
613
|
+
function stringArray(value) {
|
|
614
|
+
return Array.isArray(value) ? value.filter((entry) => typeof entry === "string" && entry.length > 0) : [];
|
|
615
|
+
}
|
|
320
616
|
function expectObject(value) {
|
|
321
617
|
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
322
618
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/tools/git.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/tools/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ export interface RepoSearchOptions {
|
|
|
12
12
|
mode?: "fixed" | "regex";
|
|
13
13
|
caseSensitive?: boolean;
|
|
14
14
|
globs?: string[];
|
|
15
|
+
includeHidden?: boolean;
|
|
15
16
|
context?: ToolContext;
|
|
16
17
|
}
|
|
17
18
|
export interface RepoSymbolSearchOptions {
|
|
@@ -20,6 +21,7 @@ export interface RepoSymbolSearchOptions {
|
|
|
20
21
|
cwd: string;
|
|
21
22
|
limit: number;
|
|
22
23
|
globs?: string[];
|
|
24
|
+
includeHidden?: boolean;
|
|
23
25
|
context?: ToolContext;
|
|
24
26
|
}
|
|
25
27
|
export declare function searchRepo(options: RepoSearchOptions): Promise<RepoSearchMatch[]>;
|
|
@@ -1,30 +1,31 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { readFile, readdir, stat } from "node:fs/promises";
|
|
3
3
|
import { runExecFile } from "../process-utils.js";
|
|
4
|
-
const
|
|
4
|
+
const ALWAYS_SKIP_DIRECTORIES = new Set([
|
|
5
5
|
".git",
|
|
6
6
|
".hg",
|
|
7
7
|
".svn",
|
|
8
|
-
"
|
|
9
|
-
".vscode",
|
|
10
|
-
"node_modules",
|
|
11
|
-
"dist",
|
|
12
|
-
"build",
|
|
13
|
-
"coverage"
|
|
8
|
+
"node_modules"
|
|
14
9
|
]);
|
|
15
10
|
export async function searchRepo(options) {
|
|
16
11
|
const globs = options.globs?.filter((value) => value.length > 0) ?? [];
|
|
12
|
+
const signal = options.context?.lifecycle.signal;
|
|
13
|
+
options.context?.lifecycle.throwIfAborted();
|
|
17
14
|
try {
|
|
18
15
|
const result = await runExecFile("rg", buildRgArgs({
|
|
19
16
|
...options,
|
|
20
17
|
globs
|
|
21
18
|
}), {
|
|
22
19
|
cwd: options.cwd,
|
|
23
|
-
noPty: true
|
|
20
|
+
noPty: true,
|
|
21
|
+
...(signal ? { signal } : {})
|
|
24
22
|
});
|
|
25
23
|
return parseSearchMatches(`${result.stdout}${result.stderr}`, options.limit);
|
|
26
24
|
}
|
|
27
25
|
catch (error) {
|
|
26
|
+
if (isAbortError(error)) {
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
28
29
|
if (!isMissingBinary(error)) {
|
|
29
30
|
throw error;
|
|
30
31
|
}
|
|
@@ -45,6 +46,7 @@ export async function searchRepoSymbol(options) {
|
|
|
45
46
|
mode: "regex",
|
|
46
47
|
caseSensitive: true,
|
|
47
48
|
globs: options.globs ?? [],
|
|
49
|
+
...(options.includeHidden === true ? { includeHidden: true } : {}),
|
|
48
50
|
context: options.context
|
|
49
51
|
});
|
|
50
52
|
return candidates
|
|
@@ -71,6 +73,9 @@ function buildRgArgs(options) {
|
|
|
71
73
|
"--glob",
|
|
72
74
|
"!node_modules/"
|
|
73
75
|
];
|
|
76
|
+
if (shouldIncludeHiddenSearch(options)) {
|
|
77
|
+
args.push("--hidden");
|
|
78
|
+
}
|
|
74
79
|
if (options.mode !== "regex") {
|
|
75
80
|
args.push("--fixed-strings");
|
|
76
81
|
}
|
|
@@ -103,11 +108,16 @@ function parseSearchMatches(output, limit) {
|
|
|
103
108
|
return matches;
|
|
104
109
|
}
|
|
105
110
|
async function fallbackSearch(options) {
|
|
111
|
+
const includeHidden = shouldIncludeHiddenSearch(options);
|
|
112
|
+
options.context?.lifecycle.throwIfAborted();
|
|
106
113
|
// If we have a performance-capable context, offload to Go backend for speed
|
|
107
114
|
if (options.context?.performance.fastSearch) {
|
|
108
115
|
const goMatches = await options.context.performance.fastSearch(options.query, options.target, {
|
|
109
116
|
limit: options.limit,
|
|
110
|
-
regex: options.mode === "regex"
|
|
117
|
+
regex: options.mode === "regex",
|
|
118
|
+
globs: options.globs,
|
|
119
|
+
includeHidden,
|
|
120
|
+
signal: options.context?.lifecycle.signal
|
|
111
121
|
});
|
|
112
122
|
if (goMatches) {
|
|
113
123
|
return goMatches;
|
|
@@ -121,6 +131,7 @@ async function fallbackSearch(options) {
|
|
|
121
131
|
}
|
|
122
132
|
const queue = [options.target];
|
|
123
133
|
while (queue.length > 0 && matches.length < options.limit) {
|
|
134
|
+
options.context?.lifecycle.throwIfAborted();
|
|
124
135
|
const current = queue.shift();
|
|
125
136
|
if (!current) {
|
|
126
137
|
continue;
|
|
@@ -130,7 +141,7 @@ async function fallbackSearch(options) {
|
|
|
130
141
|
if (matches.length >= options.limit) {
|
|
131
142
|
break;
|
|
132
143
|
}
|
|
133
|
-
if (entry.isDirectory() && shouldSkipDirectory(entry.name)) {
|
|
144
|
+
if (entry.isDirectory() && shouldSkipDirectory(entry.name, includeHidden)) {
|
|
134
145
|
continue;
|
|
135
146
|
}
|
|
136
147
|
const entryPath = path.join(current, entry.name);
|
|
@@ -139,6 +150,9 @@ async function fallbackSearch(options) {
|
|
|
139
150
|
continue;
|
|
140
151
|
}
|
|
141
152
|
if (entry.isFile()) {
|
|
153
|
+
if (!includeHidden && entry.name.startsWith(".")) {
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
142
156
|
const relativePath = path.relative(options.target, entryPath);
|
|
143
157
|
const isMatch = matchesGlob(relativePath, options.globs);
|
|
144
158
|
if (isMatch) {
|
|
@@ -151,6 +165,7 @@ async function fallbackSearch(options) {
|
|
|
151
165
|
}
|
|
152
166
|
async function searchFile(options, filePath, matches) {
|
|
153
167
|
try {
|
|
168
|
+
options.context?.lifecycle.throwIfAborted();
|
|
154
169
|
const content = await readFile(filePath);
|
|
155
170
|
if (content.includes(0)) {
|
|
156
171
|
return;
|
|
@@ -159,6 +174,9 @@ async function searchFile(options, filePath, matches) {
|
|
|
159
174
|
const lines = text.split("\n");
|
|
160
175
|
const matcher = buildMatcher(options);
|
|
161
176
|
for (const [index, line] of lines.entries()) {
|
|
177
|
+
if (index % 200 === 0) {
|
|
178
|
+
options.context?.lifecycle.throwIfAborted();
|
|
179
|
+
}
|
|
162
180
|
if (!matcher(line)) {
|
|
163
181
|
continue;
|
|
164
182
|
}
|
|
@@ -172,7 +190,10 @@ async function searchFile(options, filePath, matches) {
|
|
|
172
190
|
}
|
|
173
191
|
}
|
|
174
192
|
}
|
|
175
|
-
catch {
|
|
193
|
+
catch (error) {
|
|
194
|
+
if (isAbortError(error)) {
|
|
195
|
+
throw error;
|
|
196
|
+
}
|
|
176
197
|
// Skip unreadable files in the fallback path.
|
|
177
198
|
}
|
|
178
199
|
}
|
|
@@ -188,8 +209,16 @@ function buildMatcher(options) {
|
|
|
188
209
|
return haystack.includes(needle);
|
|
189
210
|
};
|
|
190
211
|
}
|
|
191
|
-
function shouldSkipDirectory(name) {
|
|
192
|
-
return
|
|
212
|
+
function shouldSkipDirectory(name, includeHidden) {
|
|
213
|
+
return ALWAYS_SKIP_DIRECTORIES.has(name) || (!includeHidden && name.startsWith("."));
|
|
214
|
+
}
|
|
215
|
+
function shouldIncludeHiddenSearch(options) {
|
|
216
|
+
return options.includeHidden === true || pathContainsHiddenSegment(options.target);
|
|
217
|
+
}
|
|
218
|
+
function pathContainsHiddenSegment(targetPath) {
|
|
219
|
+
return targetPath
|
|
220
|
+
.split(path.sep)
|
|
221
|
+
.some((segment) => segment !== "" && segment !== "." && segment !== ".." && segment.startsWith("."));
|
|
193
222
|
}
|
|
194
223
|
function scoreSymbolLine(lineText, symbol) {
|
|
195
224
|
const trimmed = lineText.trim();
|
|
@@ -242,4 +271,7 @@ function escapeRegex(value) {
|
|
|
242
271
|
function isMissingBinary(error) {
|
|
243
272
|
return error !== null && typeof error === "object" && "code" in error && error.code === "ENOENT";
|
|
244
273
|
}
|
|
274
|
+
function isAbortError(error) {
|
|
275
|
+
return error instanceof Error && error.name === "AbortError";
|
|
276
|
+
}
|
|
245
277
|
//# sourceMappingURL=repo-search.js.map
|