@gaunt-sloth/agent 2.0.0-alpha.3 → 2.0.0-alpha.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/dist/core/GthDeepAgent.d.ts +74 -1
- package/dist/core/GthDeepAgent.js +224 -27
- package/dist/core/GthDeepAgent.js.map +1 -1
- package/dist/core/deepAgentPermissions.d.ts +43 -1
- package/dist/core/deepAgentPermissions.js +124 -3
- package/dist/core/deepAgentPermissions.js.map +1 -1
- package/dist/modules/interactiveSessionModule.js +30 -7
- package/dist/modules/interactiveSessionModule.js.map +1 -1
- package/dist/tools/GthDevToolkit.d.ts +34 -2
- package/dist/tools/GthDevToolkit.js +67 -7
- package/dist/tools/GthDevToolkit.js.map +1 -1
- package/package.json +5 -5
|
@@ -56,7 +56,10 @@ export interface GthDeepAgentParams {
|
|
|
56
56
|
* {@link FilesystemBackend}. gsloth's `.aiignore` + `filesystem` config are mapped
|
|
57
57
|
* onto deepagents `permissions` (see {@link buildPermissions}). Any resolved tool
|
|
58
58
|
* that reuses a deepagents filesystem-tool name is therefore superseded and dropped
|
|
59
|
-
* (`createDeepAgent` would otherwise throw on the collision).
|
|
59
|
+
* (`createDeepAgent` would otherwise throw on the collision). EXT-14: the
|
|
60
|
+
* `FilesystemBackend` itself is wrapped with {@link guardFilesystemBackend} before it
|
|
61
|
+
* reaches `createDeepAgent`, adding a realpath (symlink-resolved) containment check the
|
|
62
|
+
* permission globs alone can't provide.
|
|
60
63
|
* - todos / subagents / summarization come from deepagents' standard middleware.
|
|
61
64
|
*
|
|
62
65
|
* The transport-agnostic param assembly lives in {@link buildDeepAgentParams} so the ACP
|
|
@@ -90,6 +93,49 @@ export declare class GthDeepAgent extends GthAbstractAgent {
|
|
|
90
93
|
*/
|
|
91
94
|
private getEffectiveDevToolsConfig;
|
|
92
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* EXT-22: shared virtualMode path-namespace guidance — ONE source of truth used by BOTH the S2
|
|
98
|
+
* early-framing note ({@link appendVirtualCwdNote}, injected into gsloth's composed systemPrompt =
|
|
99
|
+
* block 0) and the S1 last-word correction middleware
|
|
100
|
+
* ({@link createPathNamespaceCorrectionMiddleware}, appended after deepagents' `/`-rooted line).
|
|
101
|
+
*
|
|
102
|
+
* In a virtualMode `code` session (EXT-16, e.g. Windows) the deepagents filesystem tools use a
|
|
103
|
+
* VIRTUAL `/` root (= the working dir) while `run_shell_command` uses REAL native OS paths; the
|
|
104
|
+
* model conflates the two forms. This text draws the distinction and steers toward cwd-relative
|
|
105
|
+
* paths (the one form both tool families read alike).
|
|
106
|
+
*
|
|
107
|
+
* It deliberately does NOT equate the virtual root with a specific real path (no "`/` = D:\\work"):
|
|
108
|
+
* virtualMode withholds the real cwd on purpose (see the systemPrompt gate in {@link
|
|
109
|
+
* GthDeepAgent.init}), so the guidance is about the DISTINCTION between the two namespaces and the
|
|
110
|
+
* safety of relative paths, not a mapping between them.
|
|
111
|
+
*/
|
|
112
|
+
export declare const PATH_NAMESPACE_GUIDANCE: string;
|
|
113
|
+
/**
|
|
114
|
+
* EXT-22 (S2): virtualMode variant of {@link appendCwdNote}. On the `code` path when the fs
|
|
115
|
+
* backend runs in virtualMode (EXT-16), inject the shared path-namespace guidance EARLY in
|
|
116
|
+
* gsloth's composed systemPrompt (block 0) so the model is framed before deepagents' own prompt.
|
|
117
|
+
*
|
|
118
|
+
* This is early framing only: deepagents' hardcoded `/`-rooted line lands in a LATER block and can
|
|
119
|
+
* partially override block 0, so the authoritative last word is delivered by the S1 middleware
|
|
120
|
+
* ({@link createPathNamespaceCorrectionMiddleware}); see handoff/spike-systemmessage-ordering.md.
|
|
121
|
+
* Returns the note alone when there is no base prompt.
|
|
122
|
+
*/
|
|
123
|
+
export declare function appendVirtualCwdNote(systemPrompt: string | undefined): string;
|
|
124
|
+
/**
|
|
125
|
+
* EXT-22 (S1): the load-bearing path-namespace correction. A gsloth `wrapModelCall` middleware
|
|
126
|
+
* runs INNERMOST (inside deepagents' filesystem middleware), so appending a trailing block to
|
|
127
|
+
* `request.systemMessage` lands AFTER deepagents' hardcoded "All file paths must start with a /."
|
|
128
|
+
* line — giving gsloth the last word on path semantics (empirically verified; see
|
|
129
|
+
* handoff/spike-systemmessage-ordering.md). It APPENDS via `request.systemMessage.concat(...)`
|
|
130
|
+
* (mirroring how deepagents appends its own fs prompt), never string-splices, and returns a NEW
|
|
131
|
+
* request so it never mutates persisted state (no compounding across turns).
|
|
132
|
+
*
|
|
133
|
+
* `appendCorrection` gates it to `code` + virtualMode: only there do the fs virtual `/` root and
|
|
134
|
+
* the shell's real-OS paths diverge. On POSIX real-path mode deepagents' "start with /" is
|
|
135
|
+
* literally true, so the middleware is a transparent pass-through (like the debug-capture
|
|
136
|
+
* middleware when no sink is attached).
|
|
137
|
+
*/
|
|
138
|
+
export declare function createPathNamespaceCorrectionMiddleware(appendCorrection: boolean): import("langchain").AgentMiddleware<undefined, undefined, unknown, readonly (import("@langchain/core/tools").ClientTool | import("@langchain/core/tools").ServerTool)[], readonly []>;
|
|
93
139
|
/**
|
|
94
140
|
* EXT-13 (part b): append a real-cwd / path-model note to the composed code-mode system prompt.
|
|
95
141
|
*
|
|
@@ -100,6 +146,33 @@ export declare class GthDeepAgent extends GthAbstractAgent {
|
|
|
100
146
|
* dynamically (never baked into the .md). Returns the note alone when there is no base prompt.
|
|
101
147
|
*/
|
|
102
148
|
export declare function appendCwdNote(systemPrompt: string | undefined, cwd: string): string;
|
|
149
|
+
/**
|
|
150
|
+
* EXT-26: the platform-agnostic tail shared by both {@link appendOsShellNote} branches.
|
|
151
|
+
*
|
|
152
|
+
* The recurring failure mode on non-POSIX hosts is not just wrong command NAMES but shell
|
|
153
|
+
* REDIRECTION quoting: a grouped/multi-line `echo` redirect on cmd.exe reported success yet wrote
|
|
154
|
+
* a 0-byte file. So on every platform we steer file creation/mutation to the deepagents built-in
|
|
155
|
+
* `write_file`/`edit_file` tools (which never touch the shell's quoting) and keep each shell
|
|
156
|
+
* command a single line. Kept short — this is prompt text an LLM reads, not documentation.
|
|
157
|
+
*/
|
|
158
|
+
export declare const OS_SHELL_GUIDANCE: string;
|
|
159
|
+
/**
|
|
160
|
+
* EXT-26: append an OS + shell-dialect note to the composed code-mode system prompt.
|
|
161
|
+
*
|
|
162
|
+
* The deep-agent model was never told its host OS or which shell `run_shell_command` uses, so on
|
|
163
|
+
* non-POSIX hosts it defaulted to POSIX idioms that fail (ran `ls` where cmd.exe has `dir`, a
|
|
164
|
+
* multi-line echo-redirect that wrote 0 bytes, a PowerShell here-string, `python -c` multi-line).
|
|
165
|
+
* This is ORTHOGONAL to the EXT-13/16/22 path-namespace notes: those say WHERE the model is (path
|
|
166
|
+
* form); this says WHAT shell it speaks (dialect).
|
|
167
|
+
*
|
|
168
|
+
* The shell is derived from the SAME rule Node's `spawn(command, { shell: true })` uses — exactly
|
|
169
|
+
* how `run_shell_command` spawns (GthDevToolkit spawn) — so on `win32` it is cmd.exe (via
|
|
170
|
+
* `%ComSpec%`) and on POSIX it is `/bin/sh` (POSIX sh, NOT guaranteed bash). Computed from
|
|
171
|
+
* `process.platform` at call time so the text is correct per host. Returns the note alone when
|
|
172
|
+
* there is no base prompt. A single injection is authoritative (nothing in deepagents' base prompt
|
|
173
|
+
* contradicts shell dialect), so unlike EXT-22 no correction middleware is needed.
|
|
174
|
+
*/
|
|
175
|
+
export declare function appendOsShellNote(systemPrompt: string | undefined): string;
|
|
103
176
|
/**
|
|
104
177
|
* Assemble the non-message request parts ({@link DebugRequestExtras}) for the `/debug`
|
|
105
178
|
* panel from a `wrapModelCall` request, defensively and key-free. Never throws (the caller
|
|
@@ -7,7 +7,8 @@ import { getCurrentWorkDir } from '@gaunt-sloth/core/utils/systemUtils.js';
|
|
|
7
7
|
import { AIMessage, ToolMessage } from '@langchain/core/messages';
|
|
8
8
|
import { createMiddleware } from 'langchain';
|
|
9
9
|
import { createDeepAgent, FilesystemBackend } from 'deepagents';
|
|
10
|
-
import { buildPermissions, FILESYSTEM_TOOL_NAMES, } from '#src/core/deepAgentPermissions.js';
|
|
10
|
+
import { buildPermissions, FILESYSTEM_TOOL_NAMES, guardFilesystemBackend, } from '#src/core/deepAgentPermissions.js';
|
|
11
|
+
import { ShellCommandFailedError } from '#src/tools/GthDevToolkit.js';
|
|
11
12
|
/**
|
|
12
13
|
* EXT-16: decide whether the deepagents filesystem backend must run in virtualMode.
|
|
13
14
|
*
|
|
@@ -33,7 +34,10 @@ function shouldUseVirtualFs() {
|
|
|
33
34
|
* {@link FilesystemBackend}. gsloth's `.aiignore` + `filesystem` config are mapped
|
|
34
35
|
* onto deepagents `permissions` (see {@link buildPermissions}). Any resolved tool
|
|
35
36
|
* that reuses a deepagents filesystem-tool name is therefore superseded and dropped
|
|
36
|
-
* (`createDeepAgent` would otherwise throw on the collision).
|
|
37
|
+
* (`createDeepAgent` would otherwise throw on the collision). EXT-14: the
|
|
38
|
+
* `FilesystemBackend` itself is wrapped with {@link guardFilesystemBackend} before it
|
|
39
|
+
* reaches `createDeepAgent`, adding a realpath (symlink-resolved) containment check the
|
|
40
|
+
* permission globs alone can't provide.
|
|
37
41
|
* - todos / subagents / summarization come from deepagents' standard middleware.
|
|
38
42
|
*
|
|
39
43
|
* The transport-agnostic param assembly lives in {@link buildDeepAgentParams} so the ACP
|
|
@@ -98,31 +102,54 @@ export class GthDeepAgent extends GthAbstractAgent {
|
|
|
98
102
|
return response;
|
|
99
103
|
},
|
|
100
104
|
});
|
|
101
|
-
|
|
105
|
+
// EXT-16: whether the deepagents fs backend runs in virtualMode. deepagents' permission layer
|
|
106
|
+
// requires POSIX `/`-rooted paths, so a Windows real cwd (`D:\...`) can't be expressed as a
|
|
107
|
+
// permission glob and the EXT-13 real-path mode hangs there (`Error: path must be absolute`).
|
|
108
|
+
// When the real cwd isn't POSIX-rooted, fall back to virtualMode (cwd→`/`) with virtual
|
|
109
|
+
// permissions — the pre-EXT-13 known-good Windows behavior. Computed here because the EXT-22 S1
|
|
110
|
+
// middleware (below), the backend, and the systemPrompt gate (further down) all key off it.
|
|
111
|
+
const useVirtualFs = shouldUseVirtualFs();
|
|
112
|
+
// EXT-22 (S1): last-word path-namespace correction. Appends the shared guidance as a trailing
|
|
113
|
+
// system-message block ONLY in code + virtualMode (where the fs virtual `/` root and the
|
|
114
|
+
// shell's real-OS paths diverge); a transparent pass-through otherwise. Added LAST in the
|
|
115
|
+
// middleware array so, being the innermost wrapModelCall, its block lands AFTER deepagents'
|
|
116
|
+
// "All file paths must start with a /." line (see handoff/spike-systemmessage-ordering.md).
|
|
117
|
+
const pathNamespaceCorrectionMiddleware = createPathNamespaceCorrectionMiddleware(this.command === 'code' && useVirtualFs);
|
|
118
|
+
const middleware = [
|
|
119
|
+
...params.middleware,
|
|
120
|
+
toolCallStatusMiddleware,
|
|
121
|
+
debugCaptureMiddleware,
|
|
122
|
+
pathNamespaceCorrectionMiddleware,
|
|
123
|
+
];
|
|
102
124
|
this.statusUpdate(StatusLevel.INFO, `Loaded middleware: ${middleware.map((m) => m.name).join(', ')}`);
|
|
103
125
|
// EXT-13: the backend always runs in REAL-path mode (virtualMode off) so the deepagents fs
|
|
104
126
|
// tools and the EXT-9 run_shell_command tool share ONE path namespace — real absolute paths
|
|
105
|
-
// rooted at cwd. Containment is enforced
|
|
127
|
+
// rooted at cwd. Containment is enforced by the permission allow/deny globs built in
|
|
106
128
|
// buildDeepAgentParams (default: allow cwd/**, deny /**), which match what virtualMode used to
|
|
107
|
-
// give for free (see deepAgentPermissions + the EXT-13 symlink/`..` parity tests)
|
|
129
|
+
// give for free (see deepAgentPermissions + the EXT-13 symlink/`..` parity tests), PLUS the
|
|
130
|
+
// EXT-14 realpath guard wrapped around the backend below (closes the intermediate-symlinked-
|
|
131
|
+
// directory gap those lexical globs alone can't catch).
|
|
108
132
|
// `--allow-dir` (config.allowDirs) further widens those allow-rules to reach extra real dirs;
|
|
109
133
|
// it removes a guardrail, so it is announced loudly by the exec command and surfaced here.
|
|
110
134
|
const allowDirs = this.config?.allowDirs;
|
|
111
135
|
const widenFs = Array.isArray(allowDirs) && allowDirs.length > 0;
|
|
112
|
-
// EXT-16: deepagents' permission layer requires POSIX `/`-rooted paths, so a Windows real
|
|
113
|
-
// cwd (`D:\...`) can't be expressed as a permission glob and the EXT-13 real-path mode hangs
|
|
114
|
-
// there (`Error: path must be absolute`). When the real cwd isn't POSIX-rooted, fall back to
|
|
115
|
-
// virtualMode (cwd→`/`) with virtual permissions — the pre-EXT-13 known-good Windows behavior.
|
|
116
|
-
const useVirtualFs = shouldUseVirtualFs();
|
|
117
136
|
if (widenFs) {
|
|
118
137
|
this.statusUpdate(StatusLevel.WARNING, `Filesystem sandbox widened beyond cwd (--allow-dir): ${allowDirs.join(', ')}` +
|
|
119
138
|
(useVirtualFs
|
|
120
139
|
? ' — note: on this platform the sandbox runs in virtual mode, so widening beyond cwd is not applied.'
|
|
121
140
|
: ''));
|
|
122
141
|
}
|
|
123
|
-
|
|
142
|
+
// EXT-14: layer the realpath containment guard around the backend deepagents' fs middleware
|
|
143
|
+
// (main agent AND every subagent — they all share this one `backend` reference, see
|
|
144
|
+
// guardFilesystemBackend's doc comment) reads/writes through. Closes the intermediate-
|
|
145
|
+
// symlinked-directory escape that the lexical allow/deny globs alone cannot catch.
|
|
146
|
+
const backend = guardFilesystemBackend(new FilesystemBackend({
|
|
124
147
|
rootDir: getCurrentWorkDir(),
|
|
125
148
|
virtualMode: useVirtualFs,
|
|
149
|
+
}), {
|
|
150
|
+
cwd: getCurrentWorkDir(),
|
|
151
|
+
virtual: useVirtualFs,
|
|
152
|
+
allowDirs: widenFs ? allowDirs : undefined,
|
|
126
153
|
});
|
|
127
154
|
// EXT-13 (part b): on the local-runner code path the model used to be told nothing about
|
|
128
155
|
// where it is, so it assumed `/` was cwd and fed `/`-rooted paths to the real-fs shell. Now
|
|
@@ -131,11 +158,20 @@ export class GthDeepAgent extends GthAbstractAgent {
|
|
|
131
158
|
// shell access; the ACP transport keeps virtualMode and re-roots per session, so this
|
|
132
159
|
// real-path note must NOT leak there (which is why it lives in init(), not the
|
|
133
160
|
// transport-agnostic buildDeepAgentParams).
|
|
134
|
-
// In virtualMode (EXT-16, Windows) the
|
|
135
|
-
// (the
|
|
136
|
-
// the namespace
|
|
137
|
-
|
|
138
|
-
|
|
161
|
+
// In virtualMode (EXT-16, Windows) the real-cwd note must NOT be injected — it would mislabel
|
|
162
|
+
// the namespace (the fs tools' `/` is the virtual root, not the real cwd). Instead, EXT-22 (S2)
|
|
163
|
+
// injects the virtualMode path-namespace note so the model is told EARLY that the fs virtual
|
|
164
|
+
// `/` root and run_shell_command's real-OS paths differ (the S1 middleware repeats it as the
|
|
165
|
+
// authoritative last word after deepagents' `/`-rooted line). Non-code paths get neither.
|
|
166
|
+
// EXT-26: after the cwd/virtual-cwd note, append the OS + shell-dialect note so the model is
|
|
167
|
+
// told its host OS and which shell run_shell_command spawns (cmd.exe on Windows, /bin/sh on
|
|
168
|
+
// POSIX). This is ORTHOGONAL to the path-namespace notes above (those say WHERE it is; this
|
|
169
|
+
// says WHAT shell it speaks) and applies in BOTH code-mode branches, independent of
|
|
170
|
+
// virtualMode — the shell dialect matters on every platform. Non-code paths get nothing new.
|
|
171
|
+
const systemPrompt = this.command === 'code'
|
|
172
|
+
? appendOsShellNote(useVirtualFs
|
|
173
|
+
? appendVirtualCwdNote(params.systemPrompt)
|
|
174
|
+
: appendCwdNote(params.systemPrompt, getCurrentWorkDir()))
|
|
139
175
|
: params.systemPrompt;
|
|
140
176
|
this.agent = createDeepAgent({
|
|
141
177
|
model: params.model,
|
|
@@ -244,11 +280,20 @@ export class GthDeepAgent extends GthAbstractAgent {
|
|
|
244
280
|
}
|
|
245
281
|
return true;
|
|
246
282
|
});
|
|
247
|
-
// Soften deepagents' fail-hard filesystem
|
|
248
|
-
// read/write
|
|
249
|
-
// a
|
|
250
|
-
//
|
|
251
|
-
//
|
|
283
|
+
// Soften deepagents' fail-hard filesystem tool throws. By default the permission layer
|
|
284
|
+
// THROWS on both a denied read/write AND on a malformed path the model supplied — a relative
|
|
285
|
+
// path, a `..`/`~` segment, or an empty string (deepagents' validatePath, run BEFORE the
|
|
286
|
+
// permission check in enforcePermission). Any of these aborts the WHOLE run. On the AG-UI
|
|
287
|
+
// transport that throw propagates out of streamWithEvents into the run handler's catch, which
|
|
288
|
+
// emits RUN_ERROR and ends the response WITHOUT a terminal RUN_FINISHED — and since AG-UI's
|
|
289
|
+
// protocol makes RUN_ERROR terminal ("no further events can be sent"), a consumer waiting for
|
|
290
|
+
// RUN_FINISHED hangs (EXT-24). Wrap tool calls so each of these becomes a recoverable error
|
|
291
|
+
// ToolMessage instead, letting the model observe the mistake, retry with a good path, and
|
|
292
|
+
// finish the run normally (reaching RUN_FINISHED). This preserves gsloth's recoverable-denial
|
|
293
|
+
// UX (the old GthFileSystemToolkit returned a message rather than throwing). Only these known
|
|
294
|
+
// fs path/permission messages are caught; every other throw (GraphInterrupt from a client-tool
|
|
295
|
+
// interrupt stub, AbortError on client disconnect, unexpected errors) is rethrown untouched so
|
|
296
|
+
// control-flow and genuine failures still surface.
|
|
252
297
|
const fsDenialSoftening = createMiddleware({
|
|
253
298
|
name: 'GthDeepFsDenialSoftening',
|
|
254
299
|
wrapToolCall: async (request, handler) => {
|
|
@@ -257,8 +302,11 @@ export class GthDeepAgent extends GthAbstractAgent {
|
|
|
257
302
|
}
|
|
258
303
|
catch (e) {
|
|
259
304
|
const message = e instanceof Error ? e.message : String(e);
|
|
260
|
-
|
|
261
|
-
|
|
305
|
+
// deepagents fs enforcement throws (middleware/fs.ts enforcePermission +
|
|
306
|
+
// permissions/enforce.ts validatePath): a permission denial, or a path that is
|
|
307
|
+
// relative / contains ".." or "~" / is empty. All are recoverable model-input errors.
|
|
308
|
+
if (/permission denied for (read|write)|path must (be absolute|not contain|be a non-empty string)/i.test(message)) {
|
|
309
|
+
debugLog(`Softened fs tool throw into a ToolMessage: ${message}`);
|
|
262
310
|
return new ToolMessage({
|
|
263
311
|
content: message,
|
|
264
312
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -270,10 +318,44 @@ export class GthDeepAgent extends GthAbstractAgent {
|
|
|
270
318
|
}
|
|
271
319
|
},
|
|
272
320
|
});
|
|
273
|
-
//
|
|
274
|
-
//
|
|
275
|
-
//
|
|
276
|
-
|
|
321
|
+
// EXT-20: sibling of fsDenialSoftening for the run_* (dev/shell) tools. GthDevToolkit's
|
|
322
|
+
// executeCommand now THROWS a ShellCommandFailedError on a non-zero exit or a timeout-kill
|
|
323
|
+
// (instead of resolving with the failure text), so the tool result no longer misreports
|
|
324
|
+
// status:'success' (✓). Catch it here and return an error ToolMessage that PRESERVES the full
|
|
325
|
+
// stdout/stderr body — the model's observation is unchanged except that status flips to
|
|
326
|
+
// 'error', which drives the ✗ (isError) glyph (GthAbstractAgent maps status==='error' →
|
|
327
|
+
// isError). Returning a ToolMessage (rather than rethrowing) also means the approved-then-failed
|
|
328
|
+
// command does NOT trigger a retry loop — it is a normal, observed tool result.
|
|
329
|
+
const shellExitSoftening = createMiddleware({
|
|
330
|
+
name: 'GthDeepShellExitSoftening',
|
|
331
|
+
wrapToolCall: async (request, handler) => {
|
|
332
|
+
try {
|
|
333
|
+
return await handler(request);
|
|
334
|
+
}
|
|
335
|
+
catch (e) {
|
|
336
|
+
if (e instanceof ShellCommandFailedError) {
|
|
337
|
+
debugLog(`Softened shell/dev command failure (exit ${e.exitCode ?? 'timeout'}) into an ` +
|
|
338
|
+
`error ToolMessage for '${e.command}'`);
|
|
339
|
+
return new ToolMessage({
|
|
340
|
+
content: e.output,
|
|
341
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
342
|
+
tool_call_id: request.toolCall?.id ?? '',
|
|
343
|
+
status: 'error',
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
throw e;
|
|
347
|
+
}
|
|
348
|
+
},
|
|
349
|
+
});
|
|
350
|
+
// fsDenialSoftening first so it is the outermost wrapToolCall — it must see the throw from
|
|
351
|
+
// deepagents' permission-enforcing fs tools. shellExitSoftening sits right after it (still
|
|
352
|
+
// outboard of any user-configured middleware, so it always sees the raw ShellCommandFailedError
|
|
353
|
+
// throw before a user wrapToolCall could transform it). Order between the two softeners is not
|
|
354
|
+
// load-bearing: they catch DISJOINT conditions (a permission-denied regex vs an
|
|
355
|
+
// `instanceof ShellCommandFailedError`) and each rethrows what it doesn't recognize, so neither
|
|
356
|
+
// can swallow the other. The console-bound tool-call-status middleware is NOT added here (see
|
|
357
|
+
// GthDeepAgentParams.middleware); the runner appends it.
|
|
358
|
+
const middleware = [fsDenialSoftening, shellExitSoftening, ...configuredMiddleware];
|
|
277
359
|
// Map gsloth's .aiignore + filesystem mode onto deepagents permission rules. When
|
|
278
360
|
// `--allow-dir` widens the sandbox, the backend runs without virtualMode, so paths are REAL
|
|
279
361
|
// absolute paths: constrain read+write to cwd + the allowed dirs (everything else denied),
|
|
@@ -353,6 +435,74 @@ export class GthDeepAgent extends GthAbstractAgent {
|
|
|
353
435
|
return undefined;
|
|
354
436
|
}
|
|
355
437
|
}
|
|
438
|
+
/**
|
|
439
|
+
* EXT-22: shared virtualMode path-namespace guidance — ONE source of truth used by BOTH the S2
|
|
440
|
+
* early-framing note ({@link appendVirtualCwdNote}, injected into gsloth's composed systemPrompt =
|
|
441
|
+
* block 0) and the S1 last-word correction middleware
|
|
442
|
+
* ({@link createPathNamespaceCorrectionMiddleware}, appended after deepagents' `/`-rooted line).
|
|
443
|
+
*
|
|
444
|
+
* In a virtualMode `code` session (EXT-16, e.g. Windows) the deepagents filesystem tools use a
|
|
445
|
+
* VIRTUAL `/` root (= the working dir) while `run_shell_command` uses REAL native OS paths; the
|
|
446
|
+
* model conflates the two forms. This text draws the distinction and steers toward cwd-relative
|
|
447
|
+
* paths (the one form both tool families read alike).
|
|
448
|
+
*
|
|
449
|
+
* It deliberately does NOT equate the virtual root with a specific real path (no "`/` = D:\\work"):
|
|
450
|
+
* virtualMode withholds the real cwd on purpose (see the systemPrompt gate in {@link
|
|
451
|
+
* GthDeepAgent.init}), so the guidance is about the DISTINCTION between the two namespaces and the
|
|
452
|
+
* safety of relative paths, not a mapping between them.
|
|
453
|
+
*/
|
|
454
|
+
export const PATH_NAMESPACE_GUIDANCE = 'The filesystem tools (ls, read_file, write_file, edit_file, glob, grep) use a VIRTUAL root in ' +
|
|
455
|
+
'this session: a leading `/` means your working directory, and their paths are written ' +
|
|
456
|
+
'`/`-rooted relative to it (this is what "all file paths must start with a /" refers to). That ' +
|
|
457
|
+
'`/` is NOT the real operating-system filesystem root. run_shell_command is different: it runs ' +
|
|
458
|
+
'in the real operating system and uses real native paths (on Windows, e.g. ' +
|
|
459
|
+
'`C:\\Users\\...\\project`, with backslashes), never the virtual `/` root. A `/`-rooted path ' +
|
|
460
|
+
'from the filesystem tools is NOT a valid shell path and must never be passed to ' +
|
|
461
|
+
'run_shell_command. The one form that means the same thing to both tool families is a path ' +
|
|
462
|
+
'RELATIVE to the working directory (e.g. `src/index.ts`); prefer relative paths for both. When ' +
|
|
463
|
+
'you must be absolute, use `/`-rooted form ONLY for the filesystem tools and real native form ' +
|
|
464
|
+
'ONLY for run_shell_command.';
|
|
465
|
+
/**
|
|
466
|
+
* EXT-22 (S2): virtualMode variant of {@link appendCwdNote}. On the `code` path when the fs
|
|
467
|
+
* backend runs in virtualMode (EXT-16), inject the shared path-namespace guidance EARLY in
|
|
468
|
+
* gsloth's composed systemPrompt (block 0) so the model is framed before deepagents' own prompt.
|
|
469
|
+
*
|
|
470
|
+
* This is early framing only: deepagents' hardcoded `/`-rooted line lands in a LATER block and can
|
|
471
|
+
* partially override block 0, so the authoritative last word is delivered by the S1 middleware
|
|
472
|
+
* ({@link createPathNamespaceCorrectionMiddleware}); see handoff/spike-systemmessage-ordering.md.
|
|
473
|
+
* Returns the note alone when there is no base prompt.
|
|
474
|
+
*/
|
|
475
|
+
export function appendVirtualCwdNote(systemPrompt) {
|
|
476
|
+
const note = `Filesystem vs shell path namespaces: ${PATH_NAMESPACE_GUIDANCE}`;
|
|
477
|
+
return systemPrompt ? `${systemPrompt}\n\n${note}` : note;
|
|
478
|
+
}
|
|
479
|
+
/**
|
|
480
|
+
* EXT-22 (S1): the load-bearing path-namespace correction. A gsloth `wrapModelCall` middleware
|
|
481
|
+
* runs INNERMOST (inside deepagents' filesystem middleware), so appending a trailing block to
|
|
482
|
+
* `request.systemMessage` lands AFTER deepagents' hardcoded "All file paths must start with a /."
|
|
483
|
+
* line — giving gsloth the last word on path semantics (empirically verified; see
|
|
484
|
+
* handoff/spike-systemmessage-ordering.md). It APPENDS via `request.systemMessage.concat(...)`
|
|
485
|
+
* (mirroring how deepagents appends its own fs prompt), never string-splices, and returns a NEW
|
|
486
|
+
* request so it never mutates persisted state (no compounding across turns).
|
|
487
|
+
*
|
|
488
|
+
* `appendCorrection` gates it to `code` + virtualMode: only there do the fs virtual `/` root and
|
|
489
|
+
* the shell's real-OS paths diverge. On POSIX real-path mode deepagents' "start with /" is
|
|
490
|
+
* literally true, so the middleware is a transparent pass-through (like the debug-capture
|
|
491
|
+
* middleware when no sink is attached).
|
|
492
|
+
*/
|
|
493
|
+
export function createPathNamespaceCorrectionMiddleware(appendCorrection) {
|
|
494
|
+
return createMiddleware({
|
|
495
|
+
name: 'GthDeepPathNamespaceCorrection',
|
|
496
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
497
|
+
wrapModelCall: async (request, handler) => {
|
|
498
|
+
if (!appendCorrection || !request?.systemMessage)
|
|
499
|
+
return handler(request);
|
|
500
|
+
const correction = 'IMPORTANT — path namespaces (authoritative; this overrides any earlier instruction that ' +
|
|
501
|
+
`implies every path is a simple \`/\`-rooted filesystem path): ${PATH_NAMESPACE_GUIDANCE}`;
|
|
502
|
+
return handler({ ...request, systemMessage: request.systemMessage.concat(correction) });
|
|
503
|
+
},
|
|
504
|
+
});
|
|
505
|
+
}
|
|
356
506
|
/**
|
|
357
507
|
* EXT-13 (part b): append a real-cwd / path-model note to the composed code-mode system prompt.
|
|
358
508
|
*
|
|
@@ -371,6 +521,53 @@ export function appendCwdNote(systemPrompt, cwd) {
|
|
|
371
521
|
'paths (or paths relative to the working directory); do not assume the current directory is "/".';
|
|
372
522
|
return systemPrompt ? `${systemPrompt}\n\n${cwdNote}` : cwdNote;
|
|
373
523
|
}
|
|
524
|
+
/**
|
|
525
|
+
* EXT-26: the platform-agnostic tail shared by both {@link appendOsShellNote} branches.
|
|
526
|
+
*
|
|
527
|
+
* The recurring failure mode on non-POSIX hosts is not just wrong command NAMES but shell
|
|
528
|
+
* REDIRECTION quoting: a grouped/multi-line `echo` redirect on cmd.exe reported success yet wrote
|
|
529
|
+
* a 0-byte file. So on every platform we steer file creation/mutation to the deepagents built-in
|
|
530
|
+
* `write_file`/`edit_file` tools (which never touch the shell's quoting) and keep each shell
|
|
531
|
+
* command a single line. Kept short — this is prompt text an LLM reads, not documentation.
|
|
532
|
+
*/
|
|
533
|
+
export const OS_SHELL_GUIDANCE = 'Prefer the built-in write_file / edit_file tools over shell echo/redirection to create or ' +
|
|
534
|
+
'modify files: shell redirection quoting is unreliable and can silently write an empty ' +
|
|
535
|
+
'(0-byte) file. Keep each run_shell_command a single line.';
|
|
536
|
+
/**
|
|
537
|
+
* EXT-26: append an OS + shell-dialect note to the composed code-mode system prompt.
|
|
538
|
+
*
|
|
539
|
+
* The deep-agent model was never told its host OS or which shell `run_shell_command` uses, so on
|
|
540
|
+
* non-POSIX hosts it defaulted to POSIX idioms that fail (ran `ls` where cmd.exe has `dir`, a
|
|
541
|
+
* multi-line echo-redirect that wrote 0 bytes, a PowerShell here-string, `python -c` multi-line).
|
|
542
|
+
* This is ORTHOGONAL to the EXT-13/16/22 path-namespace notes: those say WHERE the model is (path
|
|
543
|
+
* form); this says WHAT shell it speaks (dialect).
|
|
544
|
+
*
|
|
545
|
+
* The shell is derived from the SAME rule Node's `spawn(command, { shell: true })` uses — exactly
|
|
546
|
+
* how `run_shell_command` spawns (GthDevToolkit spawn) — so on `win32` it is cmd.exe (via
|
|
547
|
+
* `%ComSpec%`) and on POSIX it is `/bin/sh` (POSIX sh, NOT guaranteed bash). Computed from
|
|
548
|
+
* `process.platform` at call time so the text is correct per host. Returns the note alone when
|
|
549
|
+
* there is no base prompt. A single injection is authoritative (nothing in deepagents' base prompt
|
|
550
|
+
* contradicts shell dialect), so unlike EXT-22 no correction middleware is needed.
|
|
551
|
+
*/
|
|
552
|
+
export function appendOsShellNote(systemPrompt) {
|
|
553
|
+
let note;
|
|
554
|
+
if (process.platform === 'win32') {
|
|
555
|
+
note =
|
|
556
|
+
'Host operating system: Windows. `run_shell_command` runs in cmd.exe. Use native cmd ' +
|
|
557
|
+
'syntax: `dir` (not `ls`), `type` (not `cat`), `copy` / `move` / `del`, `%VAR%` for ' +
|
|
558
|
+
'environment variables, and backslash paths. Do NOT use POSIX-only idioms: no sh/bash ' +
|
|
559
|
+
'heredocs (`<< EOF`), no here-strings (`<<<`), no multi-line quoted command blocks, and do ' +
|
|
560
|
+
`not assume POSIX quoting. ${OS_SHELL_GUIDANCE}`;
|
|
561
|
+
}
|
|
562
|
+
else {
|
|
563
|
+
const osName = process.platform === 'darwin' ? 'macOS' : 'Linux';
|
|
564
|
+
note =
|
|
565
|
+
`Host operating system: ${osName}. \`run_shell_command\` runs in /bin/sh (POSIX sh, not ` +
|
|
566
|
+
'necessarily bash). Stick to POSIX sh syntax and avoid bash-only constructs such as ' +
|
|
567
|
+
`here-strings (\`<<<\`) and \`[[ ]]\` tests. ${OS_SHELL_GUIDANCE}`;
|
|
568
|
+
}
|
|
569
|
+
return systemPrompt ? `${systemPrompt}\n\n${note}` : note;
|
|
570
|
+
}
|
|
374
571
|
/**
|
|
375
572
|
* Scalar model-param fields worth surfacing in the `/debug` panel. Deliberately an
|
|
376
573
|
* allowlist (NOT a whole-object dump) so no credential field (`apiKey`, `accessToken`, …)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GthDeepAgent.js","sourceRoot":"","sources":["../../src/core/GthDeepAgent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GthDeepAgent.js","sourceRoot":"","sources":["../../src/core/GthDeepAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FilesystemPermission } from 'deepagents';
|
|
1
|
+
import type { BackendProtocolV2, FilesystemPermission } from 'deepagents';
|
|
2
2
|
export type { FilesystemPermission };
|
|
3
3
|
/**
|
|
4
4
|
* Tool names deepagents' filesystem middleware registers. This mirrors deepagents'
|
|
@@ -71,3 +71,45 @@ export declare function filesystemModeToPermissions(fs: string[] | 'all' | 'read
|
|
|
71
71
|
* skipped when explicitly disabled (`aiignore.enabled === false`) or has no patterns.
|
|
72
72
|
*/
|
|
73
73
|
export declare function buildPermissions(config: PermissionConfigSlice, virtual?: boolean): FilesystemPermission[];
|
|
74
|
+
/** Options for {@link guardFilesystemBackend}. */
|
|
75
|
+
export interface RealpathGuardOptions {
|
|
76
|
+
/** Real absolute cwd the sandbox is rooted at. Defaults to {@link getCurrentWorkDir}. */
|
|
77
|
+
cwd?: string;
|
|
78
|
+
/**
|
|
79
|
+
* True when the wrapped backend runs in virtualMode (EXT-16 Windows fallback): the
|
|
80
|
+
* model-supplied path is a `/`-rooted VIRTUAL path relative to cwd, not a real OS path.
|
|
81
|
+
* `--allow-dir` widening never applies in virtualMode (mirrors {@link buildPermissions}), so
|
|
82
|
+
* `allowDirs` is ignored when this is true.
|
|
83
|
+
*/
|
|
84
|
+
virtual?: boolean;
|
|
85
|
+
/** Extra real absolute directories allowed beyond cwd (the `--allow-dir` widened roots). */
|
|
86
|
+
allowDirs?: string[];
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Wrap a deepagents filesystem backend so every read/write/edit/ls/glob/grep call is additionally
|
|
90
|
+
* checked for a REALPATH (symlink-resolved) escape from the sandbox root(s) — closes EXT-14.
|
|
91
|
+
*
|
|
92
|
+
* deepagents' own permission layer (`enforcePermission` → `validatePath` → `decidePathAccess`,
|
|
93
|
+
* `permissions/enforce.ts`) matches the RAW model-supplied path against the allow/deny globs and
|
|
94
|
+
* never resolves symlinks. A raw `..`/`~` is rejected by `validatePath`, and a FINAL-component
|
|
95
|
+
* symlink is blocked by the backend's own `O_NOFOLLOW` read — but an INTERMEDIATE symlinked
|
|
96
|
+
* directory inside cwd whose target is OUTSIDE cwd (`cwd/linkdir -> /outside`, then reading
|
|
97
|
+
* `cwd/linkdir/secret.txt`) matches the lexical `allow cwd/**` rule and reaches outside the
|
|
98
|
+
* sandbox. See `deepAgentRealPathSandbox.spec.ts` for the end-to-end proof.
|
|
99
|
+
*
|
|
100
|
+
* This wraps the BACKEND — rather than adding a `wrapToolCall` middleware — because it is the ONE
|
|
101
|
+
* seam gsloth fully controls that also covers subagents: `createDeepAgent` builds a fresh
|
|
102
|
+
* `createFilesystemMiddleware({ backend, permissions })` per subagent (and for the main agent)
|
|
103
|
+
* from the SAME `backend` reference, but each subagent gets its OWN middleware array that does
|
|
104
|
+
* NOT include gsloth's `middleware` param — so a `wrapToolCall` guard would only cover the
|
|
105
|
+
* top-level agent's tool calls, not a subagent's. Wrapping the shared backend closes the gap for
|
|
106
|
+
* both.
|
|
107
|
+
*
|
|
108
|
+
* Deliberately does NOT re-implement deepagents' glob/permission matching (aiignore, read-only
|
|
109
|
+
* mode, etc. all stay correctly enforced, unchanged, by the existing lexical checks inside the
|
|
110
|
+
* wrapped backend's tools) — this is a second, independent containment gate layered in front of
|
|
111
|
+
* them. TOCTOU: the realpath resolution here and the real fs op that follows inside the wrapped
|
|
112
|
+
* backend are not atomic; racing a symlink swap in that small window is an accepted risk (out of
|
|
113
|
+
* scope — this closes the deterministic, non-racing escape described above).
|
|
114
|
+
*/
|
|
115
|
+
export declare function guardFilesystemBackend(backend: BackendProtocolV2, options?: RealpathGuardOptions): BackendProtocolV2;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { realpathSync } from 'node:fs';
|
|
2
|
+
import { realpath as realpathAsync } from 'node:fs/promises';
|
|
1
3
|
import path from 'node:path';
|
|
2
4
|
import { getCurrentWorkDir } from '@gaunt-sloth/core/utils/systemUtils.js';
|
|
3
5
|
/**
|
|
@@ -16,6 +18,17 @@ export const FILESYSTEM_TOOL_NAMES = [
|
|
|
16
18
|
'grep',
|
|
17
19
|
'execute',
|
|
18
20
|
];
|
|
21
|
+
/**
|
|
22
|
+
* Compute the real absolute containment root(s) for a real-path (non-virtual) sandbox: cwd plus
|
|
23
|
+
* each of `dirs` resolved against cwd, de-duped (e.g. a dir that resolves back to cwd). Shared by
|
|
24
|
+
* {@link allowDirsToPermissions} (turns these into glob allow-rules) and
|
|
25
|
+
* {@link guardFilesystemBackend} (EXT-14: uses them as the realpath containment boundary — the
|
|
26
|
+
* SAME roots the lexical globs are anchored at, so the two checks agree on what "contained"
|
|
27
|
+
* means).
|
|
28
|
+
*/
|
|
29
|
+
function computeSandboxRoots(cwd, dirs = []) {
|
|
30
|
+
return Array.from(new Set([cwd, ...dirs.map((d) => path.resolve(cwd, d))]));
|
|
31
|
+
}
|
|
19
32
|
/**
|
|
20
33
|
* Build allow+deny rules for the widened (`--allow-dir`) sandbox. Because the backend runs
|
|
21
34
|
* without virtualMode, paths are REAL absolute paths, so we anchor allow rules at the resolved
|
|
@@ -24,9 +37,7 @@ export const FILESYSTEM_TOOL_NAMES = [
|
|
|
24
37
|
*/
|
|
25
38
|
export function allowDirsToPermissions(allowDirs) {
|
|
26
39
|
const cwd = getCurrentWorkDir();
|
|
27
|
-
const
|
|
28
|
-
// De-dupe resolved roots (e.g. an --allow-dir pointing back at cwd).
|
|
29
|
-
const uniqueRoots = Array.from(new Set(roots));
|
|
40
|
+
const uniqueRoots = computeSandboxRoots(cwd, allowDirs);
|
|
30
41
|
const allow = uniqueRoots.map((root) => ({
|
|
31
42
|
operations: ['read', 'write'],
|
|
32
43
|
paths: [`${root}/**`, root],
|
|
@@ -158,4 +169,114 @@ export function buildPermissions(config, virtual = false) {
|
|
|
158
169
|
: filesystemModeToPermissions(config.filesystem, cwd, virtual);
|
|
159
170
|
return [...aiignore, ...modeRules];
|
|
160
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* Resolve `absPath` to its real, symlink-free location, walking up to the nearest EXISTING
|
|
174
|
+
* ancestor when the target itself doesn't exist yet (e.g. a `write_file` target about to be
|
|
175
|
+
* created). Only an EXISTING path component can itself be — or sit behind — a symlink, so
|
|
176
|
+
* resolving the nearest real ancestor is enough to catch an intermediate symlinked directory
|
|
177
|
+
* that would steer a not-yet-existing write outside the sandbox. Terminates because
|
|
178
|
+
* `path.dirname` strictly shortens the path until it reaches the filesystem root.
|
|
179
|
+
*/
|
|
180
|
+
async function realpathNearestExisting(absPath) {
|
|
181
|
+
let current = absPath;
|
|
182
|
+
for (;;) {
|
|
183
|
+
try {
|
|
184
|
+
return await realpathAsync(current);
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
const parent = path.dirname(current);
|
|
188
|
+
if (parent === current)
|
|
189
|
+
return current; // filesystem root; nothing left to resolve
|
|
190
|
+
current = parent;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/** True when `resolved` equals one of `roots` or is a descendant of one. */
|
|
195
|
+
function isWithinRoots(resolved, roots) {
|
|
196
|
+
return roots.some((root) => resolved === root || resolved.startsWith(`${root}${path.sep}`));
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Wrap a deepagents filesystem backend so every read/write/edit/ls/glob/grep call is additionally
|
|
200
|
+
* checked for a REALPATH (symlink-resolved) escape from the sandbox root(s) — closes EXT-14.
|
|
201
|
+
*
|
|
202
|
+
* deepagents' own permission layer (`enforcePermission` → `validatePath` → `decidePathAccess`,
|
|
203
|
+
* `permissions/enforce.ts`) matches the RAW model-supplied path against the allow/deny globs and
|
|
204
|
+
* never resolves symlinks. A raw `..`/`~` is rejected by `validatePath`, and a FINAL-component
|
|
205
|
+
* symlink is blocked by the backend's own `O_NOFOLLOW` read — but an INTERMEDIATE symlinked
|
|
206
|
+
* directory inside cwd whose target is OUTSIDE cwd (`cwd/linkdir -> /outside`, then reading
|
|
207
|
+
* `cwd/linkdir/secret.txt`) matches the lexical `allow cwd/**` rule and reaches outside the
|
|
208
|
+
* sandbox. See `deepAgentRealPathSandbox.spec.ts` for the end-to-end proof.
|
|
209
|
+
*
|
|
210
|
+
* This wraps the BACKEND — rather than adding a `wrapToolCall` middleware — because it is the ONE
|
|
211
|
+
* seam gsloth fully controls that also covers subagents: `createDeepAgent` builds a fresh
|
|
212
|
+
* `createFilesystemMiddleware({ backend, permissions })` per subagent (and for the main agent)
|
|
213
|
+
* from the SAME `backend` reference, but each subagent gets its OWN middleware array that does
|
|
214
|
+
* NOT include gsloth's `middleware` param — so a `wrapToolCall` guard would only cover the
|
|
215
|
+
* top-level agent's tool calls, not a subagent's. Wrapping the shared backend closes the gap for
|
|
216
|
+
* both.
|
|
217
|
+
*
|
|
218
|
+
* Deliberately does NOT re-implement deepagents' glob/permission matching (aiignore, read-only
|
|
219
|
+
* mode, etc. all stay correctly enforced, unchanged, by the existing lexical checks inside the
|
|
220
|
+
* wrapped backend's tools) — this is a second, independent containment gate layered in front of
|
|
221
|
+
* them. TOCTOU: the realpath resolution here and the real fs op that follows inside the wrapped
|
|
222
|
+
* backend are not atomic; racing a symlink swap in that small window is an accepted risk (out of
|
|
223
|
+
* scope — this closes the deterministic, non-racing escape described above).
|
|
224
|
+
*/
|
|
225
|
+
export function guardFilesystemBackend(backend, options = {}) {
|
|
226
|
+
const cwd = options.cwd ?? getCurrentWorkDir();
|
|
227
|
+
const virtual = options.virtual ?? false;
|
|
228
|
+
// allowDirs never widens virtualMode (mirrors buildPermissions); real mode's roots are cwd plus
|
|
229
|
+
// each configured extra real dir. Resolved via realpath ONCE at wrap time (not per call) so a
|
|
230
|
+
// symlinked tmp root (e.g. macOS `/tmp` -> `/private/tmp`) doesn't itself look like an escape.
|
|
231
|
+
const rawRoots = virtual ? [cwd] : computeSandboxRoots(cwd, options.allowDirs);
|
|
232
|
+
const roots = rawRoots.map((root) => {
|
|
233
|
+
try {
|
|
234
|
+
return realpathSync(root);
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
return root; // root doesn't exist (yet) — fall back to its lexical form
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
async function assertContained(rawPath, operation) {
|
|
241
|
+
const lexical = virtual
|
|
242
|
+
? path.resolve(cwd, rawPath.startsWith('/') ? rawPath.slice(1) : rawPath)
|
|
243
|
+
: path.resolve(cwd, rawPath);
|
|
244
|
+
const resolved = await realpathNearestExisting(lexical);
|
|
245
|
+
if (!isWithinRoots(resolved, roots)) {
|
|
246
|
+
throw new Error(`Error: permission denied for ${operation} on ${rawPath}`);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
return {
|
|
250
|
+
async ls(dirPath) {
|
|
251
|
+
await assertContained(dirPath, 'read');
|
|
252
|
+
return backend.ls(dirPath);
|
|
253
|
+
},
|
|
254
|
+
async read(filePath, offset, limit) {
|
|
255
|
+
await assertContained(filePath, 'read');
|
|
256
|
+
return backend.read(filePath, offset, limit);
|
|
257
|
+
},
|
|
258
|
+
async readRaw(filePath) {
|
|
259
|
+
await assertContained(filePath, 'read');
|
|
260
|
+
return backend.readRaw(filePath);
|
|
261
|
+
},
|
|
262
|
+
async write(filePath, content) {
|
|
263
|
+
await assertContained(filePath, 'write');
|
|
264
|
+
return backend.write(filePath, content);
|
|
265
|
+
},
|
|
266
|
+
async edit(filePath, oldString, newString, replaceAll) {
|
|
267
|
+
await assertContained(filePath, 'write');
|
|
268
|
+
return backend.edit(filePath, oldString, newString, replaceAll);
|
|
269
|
+
},
|
|
270
|
+
async glob(pattern, dirPath) {
|
|
271
|
+
await assertContained(dirPath ?? '/', 'read');
|
|
272
|
+
return backend.glob(pattern, dirPath);
|
|
273
|
+
},
|
|
274
|
+
async grep(pattern, dirPath, glob) {
|
|
275
|
+
await assertContained(dirPath ?? '/', 'read');
|
|
276
|
+
return backend.grep(pattern, dirPath, glob);
|
|
277
|
+
},
|
|
278
|
+
uploadFiles: backend.uploadFiles?.bind(backend),
|
|
279
|
+
downloadFiles: backend.downloadFiles?.bind(backend),
|
|
280
|
+
};
|
|
281
|
+
}
|
|
161
282
|
//# sourceMappingURL=deepAgentPermissions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepAgentPermissions.js","sourceRoot":"","sources":["../../src/core/deepAgentPermissions.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAI3E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI;IACJ,WAAW;IACX,YAAY;IACZ,WAAW;IACX,MAAM;IACN,MAAM;IACN,SAAS;CACD,CAAC;AAcX
|
|
1
|
+
{"version":3,"file":"deepAgentPermissions.js","sourceRoot":"","sources":["../../src/core/deepAgentPermissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { initConfig } from '@gaunt-sloth/core/config.js';
|
|
|
2
2
|
import { defaultStatusCallback, display, displayInfo, displayWarning, flushSessionLog, formatInputPrompt, initSessionLogging, stopSessionLogging, } from '@gaunt-sloth/core/utils/consoleUtils.js';
|
|
3
3
|
import { GthAgentRunner } from '@gaunt-sloth/core/core/GthAgentRunner.js';
|
|
4
4
|
import { appendToFile, getCommandOutputFilePath } from '@gaunt-sloth/core/utils/fileUtils.js';
|
|
5
|
-
import { createInterface, error, exit, setRawMode, stdin as input, stdout as output, } from '@gaunt-sloth/core/utils/systemUtils.js';
|
|
5
|
+
import { createInterface, error, exit, refStdin, setRawMode, stdin as input, stdout as output, } from '@gaunt-sloth/core/utils/systemUtils.js';
|
|
6
6
|
import { HumanMessage } from '@langchain/core/messages';
|
|
7
7
|
import { MemorySaver } from '@langchain/langgraph';
|
|
8
8
|
import { createResolvers } from '#src/resolvers.js';
|
|
@@ -20,6 +20,16 @@ export async function createInteractiveSession(sessionConfig, commandLineConfigO
|
|
|
20
20
|
await runner.init(sessionConfig.mode, config, checkpointSaver);
|
|
21
21
|
const rl = createInterface({ input, output });
|
|
22
22
|
let shouldExit = false;
|
|
23
|
+
// EXT-18: ref stdin before every rl.question() that can run AFTER an agent turn/stream end.
|
|
24
|
+
// When a run suspends (tool-approval interrupt) or throws, the stream's finally calls
|
|
25
|
+
// stopWaitingForEscape(), which unref's stdin so one-shot commands can exit. A prompt that
|
|
26
|
+
// follows must re-ref stdin first, otherwise nothing keeps the event loop alive and the
|
|
27
|
+
// process exits to the shell before the user can answer. The main `> ` loop is safe because
|
|
28
|
+
// its setRawMode(true) already re-refs; these cooked-mode prompts do not, so they ref here.
|
|
29
|
+
const askLine = (prompt) => {
|
|
30
|
+
refStdin();
|
|
31
|
+
return rl.question(prompt);
|
|
32
|
+
};
|
|
23
33
|
// Tool-approval (human-in-the-loop) prompt for gated tools — currently the opt-in
|
|
24
34
|
// `run_shell_command`. When a run suspends on such a tool call, the runner calls this with
|
|
25
35
|
// the pending command. EXT-9 Tier-2: instead of a bare y/N, offer a scoped choice so the
|
|
@@ -43,18 +53,28 @@ export async function createInteractiveSession(sessionConfig, commandLineConfigO
|
|
|
43
53
|
displayWarning(`⚠ safety judge (${pending.safetyVerdict.risk}): ${pending.safetyVerdict.reason}`);
|
|
44
54
|
}
|
|
45
55
|
setRawMode(false); // ensure typed input is echoed for this confirm
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
56
|
+
// EXT-18: wrap the prompt in try/finally so the raw-mode/ref state is not left wedged if
|
|
57
|
+
// rl.question throws. The subsequent streamResume run re-establishes raw mode + ref, but be
|
|
58
|
+
// defensive. askLine() refs stdin first so the prompt actually waits for input (the run just
|
|
59
|
+
// suspended on the tool interrupt, whose stream-end unref'd stdin).
|
|
60
|
+
let answer;
|
|
61
|
+
try {
|
|
62
|
+
answer = (await askLine(formatInputPrompt('Approve? [o]nce / [s]ession / [a]lways / [N]o: ')))
|
|
63
|
+
.trim()
|
|
64
|
+
.toLowerCase();
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
refStdin();
|
|
68
|
+
}
|
|
49
69
|
if (answer === 'o' || answer === 'once') {
|
|
50
70
|
return { type: 'approve', scope: 'once' };
|
|
51
71
|
}
|
|
52
72
|
if (answer === 's' || answer === 'session') {
|
|
53
|
-
displayInfo('Approved for this session
|
|
73
|
+
displayInfo('Approved for this session, future variants will not re-prompt.');
|
|
54
74
|
return { type: 'approve', scope: 'session' };
|
|
55
75
|
}
|
|
56
76
|
if (answer === 'a' || answer === 'always') {
|
|
57
|
-
displayInfo('Approved and remembered
|
|
77
|
+
displayInfo('Approved and remembered, saved to the project allow-list.');
|
|
58
78
|
return { type: 'approve', scope: 'always' };
|
|
59
79
|
}
|
|
60
80
|
displayInfo('Command rejected.');
|
|
@@ -114,7 +134,10 @@ export async function createInteractiveSession(sessionConfig, commandLineConfigO
|
|
|
114
134
|
}
|
|
115
135
|
catch (err) {
|
|
116
136
|
display(`\n❌ Error processing message: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
117
|
-
|
|
137
|
+
// EXT-18: askLine() refs stdin first. This prompt runs in the catch after
|
|
138
|
+
// processMessage threw, by which point the stream's finally has already unref'd
|
|
139
|
+
// stdin (same exit as the approval prompt) - re-ref so it waits for input.
|
|
140
|
+
const retryResponse = await askLine('Do you want to try again with the same prompt? (y/n): ');
|
|
118
141
|
shouldRetry = retryResponse.toLowerCase().trim().startsWith('y');
|
|
119
142
|
if (!shouldRetry) {
|
|
120
143
|
display('\nSkipping to next prompt...');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactiveSessionModule.js","sourceRoot":"","sources":["../../src/modules/interactiveSessionModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAChG,OAAO,EACL,qBAAqB,EACrB,OAAO,EACP,WAAW,EACX,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAC9F,OAAO,EACL,eAAe,EACf,KAAK,EACL,IAAI,EACJ,UAAU,EACV,KAAK,IAAI,KAAK,EACd,MAAM,IAAI,MAAM,GACjB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAoB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAUvE,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,aAA4B,EAC5B,0BAAsD,EACtD,OAAgB;IAEhB,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,MAAM,UAAU,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC;IACrE,MAAM,eAAe,GAAG,IAAI,WAAW,EAAE,CAAC;IAC1C,oBAAoB;IAEpB,MAAM,WAAW,GAAG,wBAAwB,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACzE,IAAI,WAAW,EAAE,CAAC;QAChB,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,qBAAqB,EAAE,eAAe,EAAE,EAAE,mBAAmB,CAAC,CAAC;IAEjG,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;QAC/D,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9C,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,kFAAkF;QAClF,2FAA2F;QAC3F,yFAAyF;QACzF,2DAA2D;QAC3D,wEAAwE;QACxE,2FAA2F;QAC3F,mEAAmE;QACnE,0CAA0C;QAC1C,0FAA0F;QAC1F,4FAA4F;QAC5F,iFAAiF;QACjF,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC/C,MAAM,WAAW,GACf,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ;gBACtC,CAAC,CAAE,OAAO,CAAC,IAAI,CAAC,OAAkB;gBAClC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,cAAc,CAAC,gDAAgD,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;YAChF,OAAO,CAAC,SAAS,WAAW,IAAI,CAAC,CAAC;YAClC,6FAA6F;YAC7F,8CAA8C;YAC9C,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1B,cAAc,CACZ,mBAAmB,OAAO,CAAC,aAAa,CAAC,IAAI,MAAM,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,CAClF,CAAC;YACJ,CAAC;YACD,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,gDAAgD;YACnE,
|
|
1
|
+
{"version":3,"file":"interactiveSessionModule.js","sourceRoot":"","sources":["../../src/modules/interactiveSessionModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,34 @@
|
|
|
4
4
|
import { BaseToolkit, StructuredToolInterface } from '@langchain/core/tools';
|
|
5
5
|
import { GthDevToolsConfig } from '@gaunt-sloth/core/config.js';
|
|
6
6
|
import type { GthCommand } from '@gaunt-sloth/core/core/types.js';
|
|
7
|
+
/**
|
|
8
|
+
* EXT-20: a run_* command that did NOT exit cleanly (non-zero exit code, or was killed for
|
|
9
|
+
* exceeding the timeout). Carries the FULL model-facing body text ({@link output}) so the
|
|
10
|
+
* softening middleware ({@link GthDeepShellExitSoftening}) can hand the model the exact same
|
|
11
|
+
* observation it saw before — the only change is the tool result's status flips to `'error'`,
|
|
12
|
+
* which drives the ✗ (`isError`) glyph.
|
|
13
|
+
*
|
|
14
|
+
* `executeCommand` previously `resolve()`d on a non-zero exit, so the LangChain `ToolMessage`
|
|
15
|
+
* stayed `status: 'success'` and every failure rendered a ✓. Throwing this typed error instead
|
|
16
|
+
* lets the deep-agent middleware convert it into an error `ToolMessage`. A clean exit (`code === 0`)
|
|
17
|
+
* still `resolve()`s; a spawn-level `child.on('error')` still rejects with a plain `Error`.
|
|
18
|
+
*/
|
|
19
|
+
export declare class ShellCommandFailedError extends Error {
|
|
20
|
+
/** The full model-facing body (command echo + `<COMMAND_OUTPUT>` + the failure/timeout tail). */
|
|
21
|
+
readonly output: string;
|
|
22
|
+
/** The process exit code; `null` when the command was killed (timeout) and never exited cleanly. */
|
|
23
|
+
readonly exitCode: number | null;
|
|
24
|
+
/** The exact command string that was executed. */
|
|
25
|
+
readonly command: string;
|
|
26
|
+
/** The run_* tool name that invoked the command (e.g. `run_tests`, `run_shell_command`). */
|
|
27
|
+
readonly toolName: string;
|
|
28
|
+
constructor(params: {
|
|
29
|
+
output: string;
|
|
30
|
+
exitCode: number | null;
|
|
31
|
+
command: string;
|
|
32
|
+
toolName: string;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
7
35
|
/**
|
|
8
36
|
* Kill the child AND its descendants on timeout.
|
|
9
37
|
*
|
|
@@ -55,8 +83,12 @@ export default class GthDevToolkit extends BaseToolkit {
|
|
|
55
83
|
* 4. an unbypassable hardline blocklist (refuses catastrophic commands BEFORE
|
|
56
84
|
* spawn — fires even when confirmation is bypassed by yolo).
|
|
57
85
|
*
|
|
58
|
-
* Resolves with a model-facing string
|
|
59
|
-
*
|
|
86
|
+
* Resolves with a model-facing string on a CLEAN exit (`code === 0`). EXT-20: a non-zero exit
|
|
87
|
+
* and a timeout-kill instead REJECT with a {@link ShellCommandFailedError} that carries the FULL
|
|
88
|
+
* model-facing body — the deep-agent {@link GthDeepShellExitSoftening} middleware converts that
|
|
89
|
+
* throw into an error `ToolMessage` (status:'error' → ✗) while preserving the output, so the
|
|
90
|
+
* model still sees the killed-after-N / exit-code message and can continue. Spawn-level failures
|
|
91
|
+
* (`child.on('error')`) still reject with a plain `Error`.
|
|
60
92
|
*/
|
|
61
93
|
private executeCommand;
|
|
62
94
|
private createTools;
|
|
@@ -7,13 +7,45 @@ import { spawn, spawnSync } from 'child_process';
|
|
|
7
7
|
import path from 'node:path';
|
|
8
8
|
import { displayInfo, displayError, displayWarning } from '@gaunt-sloth/core/utils/consoleUtils.js';
|
|
9
9
|
import { getShellMaxOutputBytes, getShellTimeoutMs, isShellToolEnabled, } from '@gaunt-sloth/core/config.js';
|
|
10
|
-
import { stdout } from '@gaunt-sloth/core/utils/systemUtils.js';
|
|
10
|
+
import { stdout, getCurrentWorkDir } from '@gaunt-sloth/core/utils/systemUtils.js';
|
|
11
11
|
import { checkHardline } from '#src/tools/shell/hardline.js';
|
|
12
12
|
import { buildScrubbedEnv } from '#src/tools/shell/env.js';
|
|
13
13
|
import { OutputBuffer } from '#src/tools/shell/outputBuffer.js';
|
|
14
14
|
// Grace period (ms) between SIGTERM and the escalation to SIGKILL when a command
|
|
15
15
|
// exceeds its timeout. Mirrors opencode's `forceKillAfter` (3s).
|
|
16
16
|
const KILL_GRACE_MS = 3_000;
|
|
17
|
+
/**
|
|
18
|
+
* EXT-20: a run_* command that did NOT exit cleanly (non-zero exit code, or was killed for
|
|
19
|
+
* exceeding the timeout). Carries the FULL model-facing body text ({@link output}) so the
|
|
20
|
+
* softening middleware ({@link GthDeepShellExitSoftening}) can hand the model the exact same
|
|
21
|
+
* observation it saw before — the only change is the tool result's status flips to `'error'`,
|
|
22
|
+
* which drives the ✗ (`isError`) glyph.
|
|
23
|
+
*
|
|
24
|
+
* `executeCommand` previously `resolve()`d on a non-zero exit, so the LangChain `ToolMessage`
|
|
25
|
+
* stayed `status: 'success'` and every failure rendered a ✓. Throwing this typed error instead
|
|
26
|
+
* lets the deep-agent middleware convert it into an error `ToolMessage`. A clean exit (`code === 0`)
|
|
27
|
+
* still `resolve()`s; a spawn-level `child.on('error')` still rejects with a plain `Error`.
|
|
28
|
+
*/
|
|
29
|
+
export class ShellCommandFailedError extends Error {
|
|
30
|
+
/** The full model-facing body (command echo + `<COMMAND_OUTPUT>` + the failure/timeout tail). */
|
|
31
|
+
output;
|
|
32
|
+
/** The process exit code; `null` when the command was killed (timeout) and never exited cleanly. */
|
|
33
|
+
exitCode;
|
|
34
|
+
/** The exact command string that was executed. */
|
|
35
|
+
command;
|
|
36
|
+
/** The run_* tool name that invoked the command (e.g. `run_tests`, `run_shell_command`). */
|
|
37
|
+
toolName;
|
|
38
|
+
constructor(params) {
|
|
39
|
+
// Use the full body as the Error message so any generic logger/handler still surfaces the
|
|
40
|
+
// real command output rather than an opaque wrapper string.
|
|
41
|
+
super(params.output);
|
|
42
|
+
this.name = 'ShellCommandFailedError';
|
|
43
|
+
this.output = params.output;
|
|
44
|
+
this.exitCode = params.exitCode;
|
|
45
|
+
this.command = params.command;
|
|
46
|
+
this.toolName = params.toolName;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
17
49
|
/**
|
|
18
50
|
* Kill the child AND its descendants on timeout.
|
|
19
51
|
*
|
|
@@ -179,8 +211,12 @@ export default class GthDevToolkit extends BaseToolkit {
|
|
|
179
211
|
* 4. an unbypassable hardline blocklist (refuses catastrophic commands BEFORE
|
|
180
212
|
* spawn — fires even when confirmation is bypassed by yolo).
|
|
181
213
|
*
|
|
182
|
-
* Resolves with a model-facing string
|
|
183
|
-
*
|
|
214
|
+
* Resolves with a model-facing string on a CLEAN exit (`code === 0`). EXT-20: a non-zero exit
|
|
215
|
+
* and a timeout-kill instead REJECT with a {@link ShellCommandFailedError} that carries the FULL
|
|
216
|
+
* model-facing body — the deep-agent {@link GthDeepShellExitSoftening} middleware converts that
|
|
217
|
+
* throw into an error `ToolMessage` (status:'error' → ✗) while preserving the output, so the
|
|
218
|
+
* model still sees the killed-after-N / exit-code message and can continue. Spawn-level failures
|
|
219
|
+
* (`child.on('error')`) still reject with a plain `Error`.
|
|
184
220
|
*/
|
|
185
221
|
async executeCommand(command, toolName) {
|
|
186
222
|
displayInfo(`\n🔧 Executing ${toolName}: ${command}`);
|
|
@@ -199,6 +235,15 @@ export default class GthDevToolkit extends BaseToolkit {
|
|
|
199
235
|
return new Promise((resolve, reject) => {
|
|
200
236
|
const child = spawn(command, {
|
|
201
237
|
shell: true,
|
|
238
|
+
// EXT-22 (S4): spawn in the SAME directory the deepagents FilesystemBackend is rooted at,
|
|
239
|
+
// so the shell tool and the fs tools (ls/read_file/write_file/edit_file/glob/grep) operate
|
|
240
|
+
// on one path namespace instead of diverging. That backend is constructed with
|
|
241
|
+
// `rootDir: getCurrentWorkDir()` (GthDeepAgent.ts init), so getCurrentWorkDir() IS the
|
|
242
|
+
// fs-backend root on the local code/chat runner. getCurrentWorkDir() =
|
|
243
|
+
// `process.env.INIT_CWD ?? process.cwd()` (core systemUtils); it only diverges from bare
|
|
244
|
+
// process.cwd() when INIT_CWD is set (npm-bin / IDE-spawned launches) — exactly the
|
|
245
|
+
// POSIX-latent divergence S4 closes. Evaluated at call time.
|
|
246
|
+
cwd: getCurrentWorkDir(),
|
|
202
247
|
// (1) Never let the child block on stdin (e.g. git commit opening $EDITOR).
|
|
203
248
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
204
249
|
// (1) POSIX: own process group so we can kill the whole tree on timeout
|
|
@@ -251,16 +296,31 @@ export default class GthDevToolkit extends BaseToolkit {
|
|
|
251
296
|
captured.text +
|
|
252
297
|
`</COMMAND_OUTPUT>\n`;
|
|
253
298
|
if (timedOut) {
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
299
|
+
// EXT-20: a timeout-kill is a failure — reject so the deep-agent middleware flips the
|
|
300
|
+
// tool result to status:'error' (✗). The FULL body is preserved on the error so the
|
|
301
|
+
// model's observation is unchanged except for the status.
|
|
302
|
+
reject(new ShellCommandFailedError({
|
|
303
|
+
output: body +
|
|
304
|
+
`\n\nCommand '${command}' was killed after exceeding the ${Math.round(timeoutMs / 1000)}s timeout. ` +
|
|
305
|
+
`If it legitimately needs longer, increase the shell timeout in config.`,
|
|
306
|
+
exitCode: null,
|
|
307
|
+
command,
|
|
308
|
+
toolName,
|
|
309
|
+
}));
|
|
257
310
|
return;
|
|
258
311
|
}
|
|
259
312
|
if (code === 0) {
|
|
260
313
|
resolve(body + `\n\nCommand '${command}' completed successfully`);
|
|
261
314
|
}
|
|
262
315
|
else {
|
|
263
|
-
|
|
316
|
+
// EXT-20: a non-zero exit is a failure — reject (was resolve) so the softening
|
|
317
|
+
// middleware surfaces the ✗ (isError) signal while preserving the full output body.
|
|
318
|
+
reject(new ShellCommandFailedError({
|
|
319
|
+
output: body + `\n\nCommand '${command}' exited with code ${code}`,
|
|
320
|
+
exitCode: code,
|
|
321
|
+
command,
|
|
322
|
+
toolName,
|
|
323
|
+
}));
|
|
264
324
|
}
|
|
265
325
|
});
|
|
266
326
|
child.on('error', (error) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GthDevToolkit.js","sourceRoot":"","sources":["../../src/tools/GthDevToolkit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GthDevToolkit.js","sourceRoot":"","sources":["../../src/tools/GthDevToolkit.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gaunt-sloth/agent",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.5",
|
|
4
4
|
"description": "Deep agent runtime for Gaunt Sloth: tools, middleware, MCP/A2A clients and the AG-UI server",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Andrew Kondratev",
|
|
@@ -41,18 +41,18 @@
|
|
|
41
41
|
"@a2a-js/sdk": "^0.3.13",
|
|
42
42
|
"@ag-ui/core": "^0.0.57",
|
|
43
43
|
"@ag-ui/encoder": "^0.0.57",
|
|
44
|
-
"@langchain/core": "^1.2.
|
|
45
|
-
"@langchain/langgraph": "^1.4.
|
|
44
|
+
"@langchain/core": "^1.2.1",
|
|
45
|
+
"@langchain/langgraph": "^1.4.7",
|
|
46
46
|
"@langchain/mcp-adapters": "^1.1.3",
|
|
47
47
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
48
48
|
"deepagents": "^1.10.5",
|
|
49
49
|
"deepagents-acp": "^0.1.15",
|
|
50
50
|
"diff": "^9.0.0",
|
|
51
51
|
"express": "^5.2.1",
|
|
52
|
-
"langchain": "^1.5.
|
|
52
|
+
"langchain": "^1.5.2",
|
|
53
53
|
"uuid": ">=11.1.1",
|
|
54
54
|
"zod": "^3.25.0 || ^4.0.0",
|
|
55
|
-
"@gaunt-sloth/core": "2.0.0-alpha.
|
|
55
|
+
"@gaunt-sloth/core": "2.0.0-alpha.5"
|
|
56
56
|
},
|
|
57
57
|
"files": [
|
|
58
58
|
"./dist/*",
|