@gaunt-sloth/agent 2.0.0-alpha.19 → 2.0.0-alpha.20
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 -5
- package/dist/builtInToolsConfig.d.ts +3 -2
- package/dist/builtInToolsConfig.js +3 -2
- package/dist/builtInToolsConfig.js.map +1 -1
- package/dist/core/GthDeepAgent.d.ts +1 -1
- package/dist/core/GthDeepAgent.js +30 -13
- package/dist/core/GthDeepAgent.js.map +1 -1
- package/dist/modules/a2a/A2AClientWrapper.d.ts +46 -0
- package/dist/modules/a2a/A2AClientWrapper.js +71 -0
- package/dist/modules/a2a/A2AClientWrapper.js.map +1 -1
- package/dist/tools/GthFileSystemToolkit.d.ts +35 -0
- package/dist/tools/GthFileSystemToolkit.js +188 -13
- package/dist/tools/GthFileSystemToolkit.js.map +1 -1
- package/dist/tools/gthGrepTool.d.ts +15 -1
- package/dist/tools/gthGrepTool.js +102 -25
- package/dist/tools/gthGrepTool.js.map +1 -1
- package/package.json +2 -2
|
@@ -14,6 +14,17 @@ import { getFormatForExtension, getMimeType, readBinaryFile } from '#src/tools/b
|
|
|
14
14
|
*/
|
|
15
15
|
// TODO make it configurable
|
|
16
16
|
const IGNORED_DIRS = ['node_modules', '.git', '.idea', 'dist'];
|
|
17
|
+
// read_file safety envelope (GS2-39). A single large file — or a minified bundle that is one
|
|
18
|
+
// multi-MB line — must not consume the whole context window in one uncapped read. Defaults are
|
|
19
|
+
// adopted from opencode's read tool (packages/core/src/tool/read-filesystem.ts): at most
|
|
20
|
+
// MAX_READ_LINES lines or MAX_READ_BYTES bytes are returned, and any single line longer than
|
|
21
|
+
// MAX_LINE_LENGTH characters is truncated with LINE_TRUNCATED_SUFFIX. offset/limit paging is the
|
|
22
|
+
// escape hatch to fetch whatever the cap dropped. This bounds context, not process memory: like
|
|
23
|
+
// the existing head/tail helpers the file is still read whole and then trimmed.
|
|
24
|
+
const MAX_READ_LINES = 2000;
|
|
25
|
+
const MAX_READ_BYTES = 50 * 1024;
|
|
26
|
+
const MAX_LINE_LENGTH = 2000;
|
|
27
|
+
const LINE_TRUNCATED_SUFFIX = `... (line truncated to ${MAX_LINE_LENGTH} chars)`;
|
|
17
28
|
// Helper function to create a tool with filesystem type
|
|
18
29
|
function createGthTool(fn, config, gthFileSystemType) {
|
|
19
30
|
const toolInstance = tool(fn, config);
|
|
@@ -24,18 +35,33 @@ function createGthTool(fn, config, gthFileSystemType) {
|
|
|
24
35
|
// Schema definitions
|
|
25
36
|
const ReadFileArgsSchema = z.object({
|
|
26
37
|
path: z.string(),
|
|
38
|
+
offset: z
|
|
39
|
+
.number()
|
|
40
|
+
.optional()
|
|
41
|
+
.describe('Start of a 1-based line window: the first line to return (inclusive). Combine with ' +
|
|
42
|
+
'`limit` to page through a large file (e.g. offset 2001 continues past the default ' +
|
|
43
|
+
`${MAX_READ_LINES}-line cap). Mutually exclusive with head/tail — pass a line window ` +
|
|
44
|
+
'(offset/limit) OR head/tail, not both.'),
|
|
45
|
+
limit: z
|
|
46
|
+
.number()
|
|
47
|
+
.optional()
|
|
48
|
+
.describe('Number of lines to return starting at `offset` (defaults to and is hard-capped at ' +
|
|
49
|
+
`${MAX_READ_LINES}). Use with \`offset\` to read an arbitrary window. Mutually ` +
|
|
50
|
+
'exclusive with head/tail.'),
|
|
27
51
|
tail: z
|
|
28
52
|
.number()
|
|
29
53
|
.optional()
|
|
30
54
|
.describe('If provided, returns only the last N lines of the file. May be combined with head ' +
|
|
31
55
|
'(no longer mutually exclusive): head+tail returns the first head lines, a ' +
|
|
32
|
-
'`... [N lines skipped] ...` marker, then the last tail lines.'
|
|
56
|
+
'`... [N lines skipped] ...` marker, then the last tail lines. Mutually exclusive ' +
|
|
57
|
+
'with the offset/limit line window.'),
|
|
33
58
|
head: z
|
|
34
59
|
.number()
|
|
35
60
|
.optional()
|
|
36
61
|
.describe('If provided, returns only the first N lines of the file. May be combined with tail ' +
|
|
37
62
|
'(no longer mutually exclusive): head+tail returns the first head lines, a ' +
|
|
38
|
-
'`... [N lines skipped] ...` marker, then the last tail lines.'
|
|
63
|
+
'`... [N lines skipped] ...` marker, then the last tail lines. Mutually exclusive ' +
|
|
64
|
+
'with the offset/limit line window.'),
|
|
39
65
|
});
|
|
40
66
|
const ReadBinaryArgsSchema = z.object({
|
|
41
67
|
path: z.string().describe('Path to the binary file to read'),
|
|
@@ -498,6 +524,98 @@ export default class GthFileSystemToolkit extends BaseToolkit {
|
|
|
498
524
|
const tailContent = lines.slice(total - tail).join('\n');
|
|
499
525
|
return headContent + '\n... [' + skipped + ' lines skipped] ...\n' + tailContent;
|
|
500
526
|
}
|
|
527
|
+
/**
|
|
528
|
+
* Return the file's lines from the 1-based `offset` to EOF (GS2-39 paging). Deliberately does
|
|
529
|
+
* NOT apply `limit` here — the caller hands the result to capReadContent with maxLines = limit so
|
|
530
|
+
* that a limit-bounded read is *observable* to the envelope (it can then tell "more file remains
|
|
531
|
+
* past this window" from "reached EOF" and emit the correct resume notice). Pre-slicing to
|
|
532
|
+
* exactly `limit` lines here would hide that signal and silently drop the continuation.
|
|
533
|
+
*
|
|
534
|
+
* Mirrors headAndTailFile's trailing-newline handling so line numbering matches head/tail/full
|
|
535
|
+
* reads: a terminating newline yields a phantom trailing empty element that must not be counted
|
|
536
|
+
* as a real line. Clamps rather than throwing: an offset past EOF returns a short recoverable note
|
|
537
|
+
* (not an empty string, which is indistinguishable from an empty file).
|
|
538
|
+
*/
|
|
539
|
+
async windowFile(filePath, offset) {
|
|
540
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
541
|
+
const normalized = this.normalizeLineEndings(content);
|
|
542
|
+
const lines = normalized.split('\n');
|
|
543
|
+
if (normalized.endsWith('\n')) {
|
|
544
|
+
lines.pop();
|
|
545
|
+
}
|
|
546
|
+
const total = lines.length;
|
|
547
|
+
if (total === 0) {
|
|
548
|
+
return '';
|
|
549
|
+
}
|
|
550
|
+
const start = offset - 1; // offset is >= 1 (clamped by the caller)
|
|
551
|
+
if (start >= total) {
|
|
552
|
+
return `[read_file: offset ${offset} is past end of file (${total} lines total)]`;
|
|
553
|
+
}
|
|
554
|
+
return lines.slice(start).join('\n');
|
|
555
|
+
}
|
|
556
|
+
/**
|
|
557
|
+
* Apply the read safety envelope (GS2-39) to already-selected file content:
|
|
558
|
+
* - any single line longer than MAX_LINE_LENGTH is truncated with LINE_TRUNCATED_SUFFIX;
|
|
559
|
+
* - emission stops once `maxLines` lines OR MAX_READ_BYTES bytes have been produced.
|
|
560
|
+
*
|
|
561
|
+
* When nothing exceeds the caps the content is returned verbatim (byte-identical), so normal
|
|
562
|
+
* files behave exactly as before — the change only bites on pathological / huge files.
|
|
563
|
+
*
|
|
564
|
+
* Three truncation signals are kept deliberately separate:
|
|
565
|
+
* - a per-line cut is marked only by the inline LINE_TRUNCATED_SUFFIX (no global notice);
|
|
566
|
+
* - the BYTE cap always appends the global "output truncated" notice, because it is the hard
|
|
567
|
+
* safety envelope regardless of who asked for the read;
|
|
568
|
+
* - the LINE cap appends the global notice only when `lineCapIsHard` is true — i.e. `maxLines`
|
|
569
|
+
* is the hard MAX_READ_LINES envelope (a defaulted or clamped-down window, or the whole-file
|
|
570
|
+
* read), NOT a deliberate small explicit `limit`. This distinguishes a *capped continuation*
|
|
571
|
+
* (notify so the model can page) from a *satisfied explicit window* (stay quiet).
|
|
572
|
+
*
|
|
573
|
+
* `startLine` is the 1-based file line of the first line in `content`; it is used only to put a
|
|
574
|
+
* concrete resume `offset` in the global notice. Pass `undefined` (head/tail paths, where the
|
|
575
|
+
* first emitted line is not line `startLine` of the file) to emit a generic notice instead.
|
|
576
|
+
*/
|
|
577
|
+
capReadContent(content, maxLines, startLine, lineCapIsHard) {
|
|
578
|
+
const lines = content.split('\n');
|
|
579
|
+
const withinBytes = Buffer.byteLength(content, 'utf-8') <= MAX_READ_BYTES;
|
|
580
|
+
const withinLines = lines.length <= maxLines;
|
|
581
|
+
const noLongLine = lines.every((line) => line.length <= MAX_LINE_LENGTH);
|
|
582
|
+
if (withinBytes && withinLines && noLongLine) {
|
|
583
|
+
return content;
|
|
584
|
+
}
|
|
585
|
+
const out = [];
|
|
586
|
+
let bytes = 0;
|
|
587
|
+
let stoppedByLine = false;
|
|
588
|
+
let stoppedByByte = false;
|
|
589
|
+
for (const rawLine of lines) {
|
|
590
|
+
if (out.length >= maxLines) {
|
|
591
|
+
stoppedByLine = true;
|
|
592
|
+
break;
|
|
593
|
+
}
|
|
594
|
+
const line = rawLine.length > MAX_LINE_LENGTH
|
|
595
|
+
? rawLine.slice(0, MAX_LINE_LENGTH) + LINE_TRUNCATED_SUFFIX
|
|
596
|
+
: rawLine;
|
|
597
|
+
// +1 accounts for the '\n' that re-joins this line to the previous one. Always emit at
|
|
598
|
+
// least one (already per-line-truncated) line so the result is never empty.
|
|
599
|
+
const size = Buffer.byteLength(line, 'utf-8') + (out.length > 0 ? 1 : 0);
|
|
600
|
+
if (out.length > 0 && bytes + size > MAX_READ_BYTES) {
|
|
601
|
+
stoppedByByte = true;
|
|
602
|
+
break;
|
|
603
|
+
}
|
|
604
|
+
out.push(line);
|
|
605
|
+
bytes += size;
|
|
606
|
+
}
|
|
607
|
+
let result = out.join('\n');
|
|
608
|
+
// The byte cap is a hard envelope and always warrants a notice; the line cap warrants one only
|
|
609
|
+
// when it represents the hard MAX_READ_LINES envelope, not a deliberate explicit `limit`.
|
|
610
|
+
if (stoppedByByte || (stoppedByLine && lineCapIsHard)) {
|
|
611
|
+
const nextOffset = startLine !== undefined ? startLine + out.length : undefined;
|
|
612
|
+
const resume = nextOffset !== undefined
|
|
613
|
+
? `resume with offset:${nextOffset} (and an optional limit)`
|
|
614
|
+
: 'use offset/limit to page through the rest';
|
|
615
|
+
result += `\n... [read_file: output truncated at the ${MAX_READ_LINES}-line / ${MAX_READ_BYTES / 1024} KB read cap — ${resume}] ...`;
|
|
616
|
+
}
|
|
617
|
+
return result;
|
|
618
|
+
}
|
|
501
619
|
createReadBinaryTool() {
|
|
502
620
|
return createGthTool(async (args) => {
|
|
503
621
|
if (!this.binaryFormats || !Array.isArray(this.binaryFormats)) {
|
|
@@ -561,27 +679,70 @@ export default class GthFileSystemToolkit extends BaseToolkit {
|
|
|
561
679
|
const tools = [
|
|
562
680
|
createGthTool(async (args) => {
|
|
563
681
|
displayInfo(`\n📁 Reading file: ${args.path}\n`);
|
|
682
|
+
const hasWindow = args.offset !== undefined || args.limit !== undefined;
|
|
683
|
+
const hasHeadTail = Boolean(args.head) || Boolean(args.tail);
|
|
684
|
+
// Argument guard first (pure, no filesystem access): the line window (offset/limit) and
|
|
685
|
+
// head/tail are two different slice mechanisms, so combining them is ambiguous. Return a
|
|
686
|
+
// recoverable string the model can act on rather than throwing — a thrown tool result
|
|
687
|
+
// aborts the whole agent run (the GS2-36 anti-pattern).
|
|
688
|
+
if (hasWindow && hasHeadTail) {
|
|
689
|
+
return ('read_file: pass a line window (offset/limit) OR head/tail, not both. ' +
|
|
690
|
+
'Use offset/limit to read an arbitrary range (offset = 1-based first line, ' +
|
|
691
|
+
'limit = number of lines); use head/tail for the first/last N lines.');
|
|
692
|
+
}
|
|
564
693
|
const validPath = await this.validatePath(args.path);
|
|
694
|
+
// Line window (offset/limit). offset defaults to 1; limit defaults to and is hard-capped
|
|
695
|
+
// at MAX_READ_LINES. windowFile returns from offset to EOF and capReadContent (maxLines =
|
|
696
|
+
// limit) does the slicing, so a limit-bounded read that leaves more file behind is
|
|
697
|
+
// *observable* and gets a resume notice. That notice fires only when the limit is the
|
|
698
|
+
// hard envelope — defaulted, or an explicit limit clamped down to MAX_READ_LINES — so a
|
|
699
|
+
// deliberately small explicit window (fully satisfied) stays quiet.
|
|
700
|
+
if (hasWindow) {
|
|
701
|
+
const offset = args.offset !== undefined ? Math.max(1, Math.trunc(args.offset)) : 1;
|
|
702
|
+
const limitWasDefaulted = args.limit === undefined;
|
|
703
|
+
const limitWasClamped = args.limit !== undefined && Math.trunc(args.limit) > MAX_READ_LINES;
|
|
704
|
+
const limit = limitWasDefaulted
|
|
705
|
+
? MAX_READ_LINES
|
|
706
|
+
: Math.min(Math.max(1, Math.trunc(args.limit)), MAX_READ_LINES);
|
|
707
|
+
const lineCapIsHard = limitWasDefaulted || limitWasClamped;
|
|
708
|
+
const windowed = await this.windowFile(validPath, offset);
|
|
709
|
+
return this.capReadContent(windowed, limit, offset, lineCapIsHard);
|
|
710
|
+
}
|
|
711
|
+
// head/tail paths respect the explicit line count the model asked for (maxLines =
|
|
712
|
+
// Infinity, so the line cap never fires — lineCapIsHard is moot), but still get the
|
|
713
|
+
// per-line and byte safety envelope — e.g. a `tail 1` that returns one multi-MB minified
|
|
714
|
+
// line is still truncated. No resume offset is emitted for these paths because the first
|
|
715
|
+
// emitted line is not line 1 of the file.
|
|
565
716
|
if (args.head && args.tail) {
|
|
566
|
-
return await this.headAndTailFile(validPath, args.head, args.tail);
|
|
717
|
+
return this.capReadContent(await this.headAndTailFile(validPath, args.head, args.tail), Number.POSITIVE_INFINITY, undefined, false);
|
|
567
718
|
}
|
|
568
719
|
if (args.tail) {
|
|
569
|
-
return await this.tailFile(validPath, args.tail);
|
|
720
|
+
return this.capReadContent(await this.tailFile(validPath, args.tail), Number.POSITIVE_INFINITY, undefined, false);
|
|
570
721
|
}
|
|
571
722
|
if (args.head) {
|
|
572
|
-
return await this.headFile(validPath, args.head);
|
|
723
|
+
return this.capReadContent(await this.headFile(validPath, args.head), Number.POSITIVE_INFINITY, undefined, false);
|
|
573
724
|
}
|
|
574
|
-
|
|
725
|
+
// Default whole-file read: capped at MAX_READ_LINES / MAX_READ_BYTES with per-line
|
|
726
|
+
// truncation (the line cap here IS the hard envelope). Files under the caps come back
|
|
727
|
+
// byte-identical to the old uncapped read.
|
|
728
|
+
return this.capReadContent(await fs.readFile(validPath, 'utf-8'), MAX_READ_LINES, 1, true);
|
|
575
729
|
}, {
|
|
576
730
|
name: 'read_file',
|
|
577
731
|
description: 'Read the complete contents of a file from the file system. ' +
|
|
578
732
|
'Handles various text encodings and provides detailed error messages ' +
|
|
579
733
|
'if the file cannot be read. Use this tool when you need to examine ' +
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
'
|
|
584
|
-
'
|
|
734
|
+
'the contents of a single file. ' +
|
|
735
|
+
`Large reads are capped for safety: at most ${MAX_READ_LINES} lines or ` +
|
|
736
|
+
`${MAX_READ_BYTES / 1024} KB are returned, and any line longer than ${MAX_LINE_LENGTH} ` +
|
|
737
|
+
'characters is truncated with a `... (line truncated to N chars)` marker; when a read ' +
|
|
738
|
+
'is capped a `... [read_file: output truncated ...] ...` notice is appended. ' +
|
|
739
|
+
'To read past the cap or fetch an arbitrary range, use `offset` (1-based first line) ' +
|
|
740
|
+
'and `limit` (number of lines). ' +
|
|
741
|
+
"Alternatively use the 'head' parameter to read only the first N lines of a file, or " +
|
|
742
|
+
"the 'tail' parameter to read only the last N lines; 'head' and 'tail' may be combined " +
|
|
743
|
+
'to get the first N lines, a `... [N lines skipped] ...` marker, and the last M lines. ' +
|
|
744
|
+
'The offset/limit line window and head/tail are mutually exclusive — pass one or the ' +
|
|
745
|
+
'other, not both. Only works within allowed directories.',
|
|
585
746
|
schema: ReadFileArgsSchema,
|
|
586
747
|
}, 'read'),
|
|
587
748
|
createGthTool(async (args) => {
|
|
@@ -590,7 +751,15 @@ export default class GthFileSystemToolkit extends BaseToolkit {
|
|
|
590
751
|
try {
|
|
591
752
|
const validPath = await this.validatePath(filePath);
|
|
592
753
|
const content = await fs.readFile(validPath, 'utf-8');
|
|
593
|
-
|
|
754
|
+
// Apply the same whole-file read safety envelope as read_file's default path
|
|
755
|
+
// (GS2-39/GS2-52): a single oversized file — or a one-line minified bundle — in a
|
|
756
|
+
// multi-file read must not blow the context window. maxLines = MAX_READ_LINES,
|
|
757
|
+
// startLine = 1, lineCapIsHard = true mirror read_file's whole-file read, so a
|
|
758
|
+
// capped file carries the "resume with offset:N" notice; the model pages the rest
|
|
759
|
+
// with read_file on that path. Sub-cap files come back byte-identical (verbatim
|
|
760
|
+
// fast-path). There is no offset/limit here on purpose — read_file is the pager.
|
|
761
|
+
const capped = this.capReadContent(content, MAX_READ_LINES, 1, true);
|
|
762
|
+
return `${filePath}:\n${capped}\n`;
|
|
594
763
|
}
|
|
595
764
|
catch (error) {
|
|
596
765
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
@@ -604,7 +773,13 @@ export default class GthFileSystemToolkit extends BaseToolkit {
|
|
|
604
773
|
'efficient than reading files one by one when you need to analyze ' +
|
|
605
774
|
"or compare multiple files. Each file's content is returned with its " +
|
|
606
775
|
"path as a reference. Failed reads for individual files won't stop " +
|
|
607
|
-
'the entire operation.
|
|
776
|
+
'the entire operation. ' +
|
|
777
|
+
`Each file is subject to the same per-file read cap as read_file: at most ${MAX_READ_LINES} ` +
|
|
778
|
+
`lines or ${MAX_READ_BYTES / 1024} KB are returned and any line longer than ` +
|
|
779
|
+
`${MAX_LINE_LENGTH} characters is truncated; when a file is capped a ` +
|
|
780
|
+
'`... [read_file: output truncated ...] ...` notice is appended — page past it by ' +
|
|
781
|
+
'reading that file individually with read_file (offset/limit). ' +
|
|
782
|
+
'Only works within allowed directories.',
|
|
608
783
|
schema: ReadMultipleFilesArgsSchema,
|
|
609
784
|
}, 'read'),
|
|
610
785
|
createGthTool(async (args) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GthFileSystemToolkit.js","sourceRoot":"","sources":["../../src/tools/GthFileSystemToolkit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GthFileSystemToolkit.js","sourceRoot":"","sources":["../../src/tools/GthFileSystemToolkit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { GthConfig } from '@gaunt-sloth/core/config.js';
|
|
3
3
|
export declare const GREP_TOOL_NAME = "gth_grep";
|
|
4
|
+
/**
|
|
5
|
+
* GS2-51 — which corpus `gth_grep` scans, applied consistently to BOTH engines:
|
|
6
|
+
* - `gitignore` (default): respect `.gitignore`/`.ignore` and skip hidden dot-files (rg's default);
|
|
7
|
+
* - `all`: scan everything but the {@link IGNORED_DIRS} noise set (rg gets `--no-ignore --hidden`).
|
|
8
|
+
*/
|
|
9
|
+
export type GrepFileSet = 'gitignore' | 'all';
|
|
10
|
+
/**
|
|
11
|
+
* Resolve the effective {@link GrepFileSet} from config. Reads the `gth_grep` entry of the SAME
|
|
12
|
+
* `builtInTools` registry that {@link file://../builtInToolsConfig.ts} uses to decide enablement, so
|
|
13
|
+
* the corpus selection and the tool's presence resolve from one source. Defaults to `gitignore`
|
|
14
|
+
* (the coordinator-set default, and already rg's native default — so rg-present machines see no
|
|
15
|
+
* behaviour change; only the selection becomes explicit).
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveGrepFileSet(config: GthConfig): GrepFileSet;
|
|
4
18
|
/** A single content match. `path` is relative to the search root; `line` is 1-based. */
|
|
5
19
|
export interface GrepMatch {
|
|
6
20
|
path: string;
|
|
@@ -22,7 +36,7 @@ export declare function formatGrepOutput(matches: GrepMatch[]): string;
|
|
|
22
36
|
* For the common `*.ext` case the two agree; more elaborate globs may differ between the two paths.
|
|
23
37
|
*/
|
|
24
38
|
export declare function globToRegExp(glob: string): RegExp;
|
|
25
|
-
export declare function get(
|
|
39
|
+
export declare function get(config: GthConfig): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
|
|
26
40
|
pattern: z.ZodString;
|
|
27
41
|
path: z.ZodOptional<z.ZodString>;
|
|
28
42
|
include: z.ZodOptional<z.ZodString>;
|