@gaunt-sloth/core 2.0.0-alpha.2 → 2.0.0-alpha.3
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/.gsloth.code.md +10 -0
- package/README.md +3 -4
- package/dist/config.d.ts +175 -1
- package/dist/config.js +141 -0
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +5 -0
- package/dist/constants.js +5 -0
- package/dist/constants.js.map +1 -1
- package/dist/core/GthAbstractAgent.d.ts +24 -1
- package/dist/core/GthAbstractAgent.js +77 -3
- package/dist/core/GthAbstractAgent.js.map +1 -1
- package/dist/core/GthAgentRunner.d.ts +127 -1
- package/dist/core/GthAgentRunner.js +298 -4
- package/dist/core/GthAgentRunner.js.map +1 -1
- package/dist/core/shell/allowlist.d.ts +75 -0
- package/dist/core/shell/allowlist.js +187 -0
- package/dist/core/shell/allowlist.js.map +1 -0
- package/dist/core/shell/arity.d.ts +75 -0
- package/dist/core/shell/arity.js +313 -0
- package/dist/core/shell/arity.js.map +1 -0
- package/dist/core/shell/judge.d.ts +161 -0
- package/dist/core/shell/judge.js +261 -0
- package/dist/core/shell/judge.js.map +1 -0
- package/dist/core/shell/normalize.d.ts +27 -0
- package/dist/core/shell/normalize.js +53 -0
- package/dist/core/shell/normalize.js.map +1 -0
- package/dist/core/types.d.ts +68 -0
- package/dist/core/types.js.map +1 -1
- package/dist/providers/openrouter.js +2 -2
- package/dist/providers/openrouter.js.map +1 -1
- package/package.json +6 -5
package/.gsloth.code.md
CHANGED
|
@@ -16,6 +16,16 @@ You have access to the entire project directory and can:
|
|
|
16
16
|
- Create new files and directories as needed
|
|
17
17
|
- Execute commands to run tests, build the project or run static analysis (lint)
|
|
18
18
|
|
|
19
|
+
## File paths
|
|
20
|
+
|
|
21
|
+
- Paths are real absolute filesystem paths — there is no virtual root. The current
|
|
22
|
+
working directory is provided to you separately; do NOT assume it is `/`.
|
|
23
|
+
- The filesystem tools (`ls`/`glob`/`read_file`/`write_file`/`edit_file`/`grep`) and
|
|
24
|
+
`run_shell_command` share the same real paths. A path that works in the shell works
|
|
25
|
+
in the filesystem tools and vice versa.
|
|
26
|
+
- Relative paths resolve against the working directory. Check the current directory
|
|
27
|
+
before filesystem operations and prefer absolute paths when unsure.
|
|
28
|
+
|
|
19
29
|
Focus on writing clean, maintainable code that follows the project's established patterns and conventions. Always test your changes when possible and explain what you're doing and why.
|
|
20
30
|
|
|
21
31
|
## Running tests
|
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ Core utilities and types for Gaunt Sloth.
|
|
|
11
11
|
- State and artifact storage: `artifactStore`
|
|
12
12
|
- Shared constants and types
|
|
13
13
|
|
|
14
|
-
AI vendor packages are not direct dependencies. Each vendor package is an optional peer dependency, resolved at runtime by whichever consumer (e.g. `gaunt-sloth
|
|
14
|
+
AI vendor packages are not direct dependencies. Each vendor package is an optional peer dependency, resolved at runtime by whichever consumer (e.g. `gaunt-sloth`) pulls them in.
|
|
15
15
|
|
|
16
16
|
## Dependencies
|
|
17
17
|
|
|
@@ -29,7 +29,6 @@ import { display } from '@gaunt-sloth/core/utils/consoleUtils.js';
|
|
|
29
29
|
## Related packages
|
|
30
30
|
|
|
31
31
|
- [`@gaunt-sloth/core`](../core) — Core utilities, config, and agent infrastructure (this package)
|
|
32
|
-
- [`@gaunt-sloth/
|
|
33
|
-
- [`@gaunt-sloth/api`](../api) — API server, AG-UI, MCP, and A2A integration
|
|
32
|
+
- [`@gaunt-sloth/agent`](../agent) — Agent runtime: built-in tools, filesystem toolkit, middleware registry, API server, AG-UI, MCP, and A2A integration
|
|
34
33
|
- [`@gaunt-sloth/review`](../review) — Review and Q&A modules with standalone CLI
|
|
35
|
-
- [`gaunt-sloth
|
|
34
|
+
- [`gaunt-sloth`](../app) — Main CLI application
|
package/dist/config.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { StatusLevel } from '#src/core/types.js';
|
|
2
|
+
import type { GthCommand } from '#src/core/types.js';
|
|
2
3
|
import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
3
4
|
import type { BaseToolkit, StructuredToolInterface } from '@langchain/core/tools';
|
|
4
5
|
/**
|
|
@@ -441,7 +442,7 @@ export interface CustomCommandConfig {
|
|
|
441
442
|
/**
|
|
442
443
|
* Config for {@link GthDevToolkit}.
|
|
443
444
|
* Tools are not applied when config is not provided.
|
|
444
|
-
* Only available in `code` mode.
|
|
445
|
+
* Only available in `code`/`exec` mode (and `ask --write`).
|
|
445
446
|
*/
|
|
446
447
|
export interface GthDevToolsConfig {
|
|
447
448
|
/**
|
|
@@ -467,7 +468,180 @@ export interface GthDevToolsConfig {
|
|
|
467
468
|
* Not applied when config is not provided.
|
|
468
469
|
*/
|
|
469
470
|
run_single_test?: string;
|
|
471
|
+
/**
|
|
472
|
+
* Opt-in general-purpose shell tool (`run_shell_command`). Unlike the fixed
|
|
473
|
+
* `run_*` commands above, this lets the agent run ARBITRARY shell commands it
|
|
474
|
+
* composes itself — the agentic-coding escape hatch the deep agent otherwise
|
|
475
|
+
* lacks (it can read/write files but not run commands).
|
|
476
|
+
*
|
|
477
|
+
* EXT-12 — default: ON in `code` mode, OFF elsewhere. When this is ABSENT/undefined,
|
|
478
|
+
* `code` mode emits the tool (still GATED behind the per-command approval prompt — the
|
|
479
|
+
* absent-config default NEVER implies yolo); `exec` / `ask --write` keep it OFF. An
|
|
480
|
+
* EXPLICIT value always wins: `shell: false` (or `{ enabled: false }`) is a hard escape
|
|
481
|
+
* hatch that fully disables it even in `code`. Accepts a bare boolean or an
|
|
482
|
+
* `{ enabled }` object for symmetry with future per-tool options.
|
|
483
|
+
*
|
|
484
|
+
* Because the model chooses the command, every invocation is gated behind a
|
|
485
|
+
* per-command human confirmation dialog (LangChain `humanInTheLoopMiddleware`,
|
|
486
|
+
* wired via deepagents' `interruptOn`) UNLESS {@link shellYolo} bypasses it.
|
|
487
|
+
* The confirmation — not string-filtering — is the guardrail, so the command
|
|
488
|
+
* is passed through verbatim (pipes / `$` / `;` are all legitimate).
|
|
489
|
+
*
|
|
490
|
+
* The object form also tunes the EXT-9 Tier-1 hardening applied to every run
|
|
491
|
+
* (these have safe defaults so bare `shell: true` is already hardened):
|
|
492
|
+
* - `timeout`: per-command wall-clock limit in MILLISECONDS before the child
|
|
493
|
+
* (and its process group) is killed. Default {@link SHELL_DEFAULT_TIMEOUT_MS}.
|
|
494
|
+
* - `maxOutputBytes`: byte budget for the captured output returned to the model
|
|
495
|
+
* (head + tail window; the middle is dropped and the full output spilled to a
|
|
496
|
+
* temp file). Default {@link SHELL_DEFAULT_MAX_OUTPUT_BYTES}. Live terminal
|
|
497
|
+
* streaming is never capped.
|
|
498
|
+
*
|
|
499
|
+
* A hardcoded hardline blocklist of catastrophic commands (rm -rf /, mkfs, dd
|
|
500
|
+
* to a block device, fork bomb, shutdown/reboot, …) is refused even under
|
|
501
|
+
* {@link shellYolo}; that floor is not configurable.
|
|
502
|
+
*
|
|
503
|
+
* Example: `{ "shell": true }`,
|
|
504
|
+
* `{ "shell": { "enabled": true, "timeout": 300000, "maxOutputBytes": 200000 } }`.
|
|
505
|
+
*
|
|
506
|
+
* The object form additionally accepts EXT-9 Tier-2 allow-list knobs:
|
|
507
|
+
* - `allowlist`: master switch for the scoped approval allow-list (session +
|
|
508
|
+
* persisted `always`). Default `true` — once a command is approved at `session`/
|
|
509
|
+
* `always` scope, flag-variants of the same classified operation auto-approve
|
|
510
|
+
* without re-prompting. Set `false` to require fresh approval for every command.
|
|
511
|
+
* - `persistAllowlist`: whether `always`-scoped approvals are written to the project
|
|
512
|
+
* allow-list file (`.gsloth/.gsloth-settings/shell-allowlist.json`). Default `true`.
|
|
513
|
+
* When `false`, an `always` decision behaves like `session` (in-memory only).
|
|
514
|
+
*
|
|
515
|
+
* The object form also accepts the EXT-10 LLM-as-judge safety gate (default OFF):
|
|
516
|
+
* - `judge`: an opt-in, tiered auto-approve pre-filter that vets each `run_shell_command`
|
|
517
|
+
* with a lightweight judge model BEFORE the human prompt. It auto-approves clearly-safe
|
|
518
|
+
* commands (fatigue reducer), escalates the rest to the existing human prompt, and may
|
|
519
|
+
* reject clearly-catastrophic ones. Default OFF because it costs one LLM call per command.
|
|
520
|
+
* Accepts a bare boolean (`judge: true` → defaults: auto-approve low, escalate medium/high,
|
|
521
|
+
* judge model = `config.llm`) or an object:
|
|
522
|
+
* - `enabled`: turn the gate on.
|
|
523
|
+
* - `autoApproveLow`: auto-approve `low`-risk, statically-resolvable commands. Default true.
|
|
524
|
+
* - `blockHigh`: reject clearly-catastrophic (`high` + destructive) verdicts WITHOUT
|
|
525
|
+
* prompting. Default false (conservative; EXT-9's hardline floor already refuses truly
|
|
526
|
+
* catastrophic commands at exec time).
|
|
527
|
+
* - `model`: an optional separate (e.g. cheaper) judge model config. Defaults to `config.llm`.
|
|
528
|
+
* Hardening (always on when the judge runs): the command is normalized + XML-tagged as
|
|
529
|
+
* UNTRUSTED input in the judge prompt; a judge throw/timeout/parse-failure fails CLOSED
|
|
530
|
+
* (escalate, never auto-approve); commands whose target can't be statically resolved
|
|
531
|
+
* (shell composition / substitution / redirection) and interpreter+script invocations that
|
|
532
|
+
* leak ALL_CAPS env vars are NEVER auto-approved.
|
|
533
|
+
*/
|
|
534
|
+
shell?: boolean | {
|
|
535
|
+
enabled?: boolean;
|
|
536
|
+
timeout?: number;
|
|
537
|
+
maxOutputBytes?: number;
|
|
538
|
+
allowlist?: boolean;
|
|
539
|
+
persistAllowlist?: boolean;
|
|
540
|
+
judge?: boolean | {
|
|
541
|
+
enabled?: boolean;
|
|
542
|
+
autoApproveLow?: boolean;
|
|
543
|
+
blockHigh?: boolean;
|
|
544
|
+
model?: LLMConfig;
|
|
545
|
+
};
|
|
546
|
+
};
|
|
547
|
+
/**
|
|
548
|
+
* Opt-out of the per-command confirmation dialog for {@link shell}
|
|
549
|
+
* (`run_shell_command`) — the explicit "yolo" bypass. When `true` AND `shell`
|
|
550
|
+
* is enabled, the shell tool runs without any approval interrupt: the model's
|
|
551
|
+
* commands execute immediately. Dangerous by design; off by default.
|
|
552
|
+
*
|
|
553
|
+
* Example: `{ "shell": true, "shellYolo": true }`.
|
|
554
|
+
*/
|
|
555
|
+
shellYolo?: boolean;
|
|
470
556
|
}
|
|
557
|
+
/**
|
|
558
|
+
* Default per-command shell timeout (ms) when {@link GthDevToolsConfig.shell}
|
|
559
|
+
* does not specify one. ~120s suits typical build/test/git steps without
|
|
560
|
+
* hanging the agent forever on a stuck command.
|
|
561
|
+
*/
|
|
562
|
+
export declare const SHELL_DEFAULT_TIMEOUT_MS = 120000;
|
|
563
|
+
/**
|
|
564
|
+
* Default byte budget for shell output captured into the ToolMessage returned to
|
|
565
|
+
* the model (head + tail window). ~100KB keeps a noisy log from blowing the
|
|
566
|
+
* context window; the full output is spilled to a temp file when this is exceeded.
|
|
567
|
+
*/
|
|
568
|
+
export declare const SHELL_DEFAULT_MAX_OUTPUT_BYTES = 100000;
|
|
569
|
+
/**
|
|
570
|
+
* Normalize the {@link GthDevToolsConfig.shell} opt-in (bare boolean or
|
|
571
|
+
* `{ enabled }`) to a plain boolean. Centralized so the toolkit (tool emission)
|
|
572
|
+
* and the deep agent (interrupt wiring) agree on what "shell enabled" means.
|
|
573
|
+
*
|
|
574
|
+
* EXT-12 — default-resolution: an EXPLICIT value always wins (a bare boolean, or the
|
|
575
|
+
* object form's `enabled`), so `shell: false` / `{ enabled: false }` remains a hard
|
|
576
|
+
* escape hatch that fully disables the tool. Only when `shell` is ABSENT/undefined does
|
|
577
|
+
* the per-mode default apply: in `code` mode the shell tool is ON by default (still
|
|
578
|
+
* gated — the per-command approval interrupt is wired separately and is NOT bypassed by
|
|
579
|
+
* this), and OFF everywhere else (`exec`, `ask --write`, …) to preserve prior behaviour.
|
|
580
|
+
* The default is `code`-mode only because `code` is the interactive agentic-coding surface
|
|
581
|
+
* where a TTY can answer the approval prompt; the absent-config default never implies yolo.
|
|
582
|
+
*
|
|
583
|
+
* @param command The active command, so the absent-config default can be scoped to `code`.
|
|
584
|
+
* Omit (or pass a non-`code` command) to keep the historical OFF-by-default behaviour.
|
|
585
|
+
*/
|
|
586
|
+
export declare function isShellToolEnabled(devTools: GthDevToolsConfig | undefined, command?: GthCommand | undefined): boolean;
|
|
587
|
+
/**
|
|
588
|
+
* Resolve the per-command shell timeout (ms) from config, falling back to
|
|
589
|
+
* {@link SHELL_DEFAULT_TIMEOUT_MS}. Only the object form can override it; a bare
|
|
590
|
+
* `shell: true` uses the default. Non-positive / non-finite values are ignored.
|
|
591
|
+
*/
|
|
592
|
+
export declare function getShellTimeoutMs(devTools: GthDevToolsConfig | undefined): number;
|
|
593
|
+
/**
|
|
594
|
+
* Resolve the captured-output byte budget from config, falling back to
|
|
595
|
+
* {@link SHELL_DEFAULT_MAX_OUTPUT_BYTES}. Only the object form can override it.
|
|
596
|
+
* Non-positive / non-finite values are ignored.
|
|
597
|
+
*/
|
|
598
|
+
export declare function getShellMaxOutputBytes(devTools: GthDevToolsConfig | undefined): number;
|
|
599
|
+
/**
|
|
600
|
+
* Whether the EXT-9 Tier-2 scoped allow-list is active. Default `true`; only the object
|
|
601
|
+
* form's `allowlist: false` disables it (a bare `shell: true` keeps it on). When off, the
|
|
602
|
+
* runner prompts for every `run_shell_command` regardless of prior approvals.
|
|
603
|
+
*/
|
|
604
|
+
export declare function isShellAllowlistEnabled(devTools: GthDevToolsConfig | undefined): boolean;
|
|
605
|
+
/**
|
|
606
|
+
* Whether `always`-scoped approvals are persisted to the project allow-list file. Default
|
|
607
|
+
* `true`; only the object form's `persistAllowlist: false` disables persistence (an
|
|
608
|
+
* `always` decision then behaves as `session`).
|
|
609
|
+
*/
|
|
610
|
+
export declare function isShellAllowlistPersisted(devTools: GthDevToolsConfig | undefined): boolean;
|
|
611
|
+
/**
|
|
612
|
+
* Resolved settings for the EXT-10 LLM-as-judge safety gate.
|
|
613
|
+
*/
|
|
614
|
+
export interface ShellJudgeSettings {
|
|
615
|
+
/** Whether the judge gate runs at all. */
|
|
616
|
+
enabled: boolean;
|
|
617
|
+
/** Auto-approve `low`-risk, statically-resolvable commands (the fatigue reducer). */
|
|
618
|
+
autoApproveLow: boolean;
|
|
619
|
+
/** Reject clearly-catastrophic (`high` + destructive) verdicts without prompting. */
|
|
620
|
+
blockHigh: boolean;
|
|
621
|
+
/** Optional separate judge model config; when absent the runner uses `config.llm`. */
|
|
622
|
+
model?: LLMConfig;
|
|
623
|
+
}
|
|
624
|
+
/**
|
|
625
|
+
* Whether the EXT-10 LLM-as-judge safety gate is enabled for the given dev-tools config.
|
|
626
|
+
* Default OFF (only the object form's `judge` truthy enables it), mirroring
|
|
627
|
+
* {@link isShellToolEnabled}. A bare `shell: true` keeps the judge OFF — it costs an LLM call
|
|
628
|
+
* per command and must be opted into explicitly.
|
|
629
|
+
*/
|
|
630
|
+
export declare function isShellJudgeEnabled(devTools: GthDevToolsConfig | undefined): boolean;
|
|
631
|
+
/**
|
|
632
|
+
* Resolve the EXT-10 judge gate settings from a dev-tools config, applying safe defaults
|
|
633
|
+
* (auto-approve low, do NOT block high). `enabled` reflects {@link isShellJudgeEnabled}.
|
|
634
|
+
*/
|
|
635
|
+
export declare function getShellJudgeSettings(devTools: GthDevToolsConfig | undefined): ShellJudgeSettings;
|
|
636
|
+
/**
|
|
637
|
+
* Resolve the {@link GthDevToolsConfig} that applies to the active command, mirroring the
|
|
638
|
+
* per-command selection in `builtInToolsConfig.getDefaultTools` (which is what actually emits
|
|
639
|
+
* the dev tools) and `GthDeepAgent.getEffectiveDevToolsConfig`: `exec` → `commands.exec`,
|
|
640
|
+
* `ask --write` → `commands.ask`, `code` → `commands.code`; `undefined` elsewhere (the
|
|
641
|
+
* toolkit is inert there). Shared in core so the runner's allow-list gate stays in lockstep
|
|
642
|
+
* with where the shell tool is actually emitted.
|
|
643
|
+
*/
|
|
644
|
+
export declare function getEffectiveDevToolsConfig(config: Pick<GthConfig, 'commands' | 'askWriteMode'> | undefined, command: GthCommand | undefined): GthDevToolsConfig | undefined;
|
|
471
645
|
export interface LLMConfig extends Record<string, unknown> {
|
|
472
646
|
type: string;
|
|
473
647
|
model: string;
|
package/dist/config.js
CHANGED
|
@@ -15,6 +15,147 @@ import { getGslothConfigReadPath, importExternalFile } from '#src/utils/fileUtil
|
|
|
15
15
|
import { getGlobalGslothConfigReadPath } from '#src/utils/globalConfigUtils.js';
|
|
16
16
|
import { error, exit, isTTY, setUseColour } from '#src/utils/systemUtils.js';
|
|
17
17
|
import { existsSync, readFileSync } from 'node:fs';
|
|
18
|
+
/**
|
|
19
|
+
* Default per-command shell timeout (ms) when {@link GthDevToolsConfig.shell}
|
|
20
|
+
* does not specify one. ~120s suits typical build/test/git steps without
|
|
21
|
+
* hanging the agent forever on a stuck command.
|
|
22
|
+
*/
|
|
23
|
+
export const SHELL_DEFAULT_TIMEOUT_MS = 120_000;
|
|
24
|
+
/**
|
|
25
|
+
* Default byte budget for shell output captured into the ToolMessage returned to
|
|
26
|
+
* the model (head + tail window). ~100KB keeps a noisy log from blowing the
|
|
27
|
+
* context window; the full output is spilled to a temp file when this is exceeded.
|
|
28
|
+
*/
|
|
29
|
+
export const SHELL_DEFAULT_MAX_OUTPUT_BYTES = 100_000;
|
|
30
|
+
/**
|
|
31
|
+
* Normalize the {@link GthDevToolsConfig.shell} opt-in (bare boolean or
|
|
32
|
+
* `{ enabled }`) to a plain boolean. Centralized so the toolkit (tool emission)
|
|
33
|
+
* and the deep agent (interrupt wiring) agree on what "shell enabled" means.
|
|
34
|
+
*
|
|
35
|
+
* EXT-12 — default-resolution: an EXPLICIT value always wins (a bare boolean, or the
|
|
36
|
+
* object form's `enabled`), so `shell: false` / `{ enabled: false }` remains a hard
|
|
37
|
+
* escape hatch that fully disables the tool. Only when `shell` is ABSENT/undefined does
|
|
38
|
+
* the per-mode default apply: in `code` mode the shell tool is ON by default (still
|
|
39
|
+
* gated — the per-command approval interrupt is wired separately and is NOT bypassed by
|
|
40
|
+
* this), and OFF everywhere else (`exec`, `ask --write`, …) to preserve prior behaviour.
|
|
41
|
+
* The default is `code`-mode only because `code` is the interactive agentic-coding surface
|
|
42
|
+
* where a TTY can answer the approval prompt; the absent-config default never implies yolo.
|
|
43
|
+
*
|
|
44
|
+
* @param command The active command, so the absent-config default can be scoped to `code`.
|
|
45
|
+
* Omit (or pass a non-`code` command) to keep the historical OFF-by-default behaviour.
|
|
46
|
+
*/
|
|
47
|
+
export function isShellToolEnabled(devTools, command) {
|
|
48
|
+
const shell = devTools?.shell;
|
|
49
|
+
if (typeof shell === 'boolean')
|
|
50
|
+
return shell;
|
|
51
|
+
if (shell && typeof shell === 'object')
|
|
52
|
+
return shell.enabled === true;
|
|
53
|
+
// Absent/undefined shell: ON by default for `code` mode (gated), OFF elsewhere.
|
|
54
|
+
return command === 'code';
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Resolve the per-command shell timeout (ms) from config, falling back to
|
|
58
|
+
* {@link SHELL_DEFAULT_TIMEOUT_MS}. Only the object form can override it; a bare
|
|
59
|
+
* `shell: true` uses the default. Non-positive / non-finite values are ignored.
|
|
60
|
+
*/
|
|
61
|
+
export function getShellTimeoutMs(devTools) {
|
|
62
|
+
const shell = devTools?.shell;
|
|
63
|
+
if (shell && typeof shell === 'object' && typeof shell.timeout === 'number') {
|
|
64
|
+
if (Number.isFinite(shell.timeout) && shell.timeout > 0)
|
|
65
|
+
return shell.timeout;
|
|
66
|
+
}
|
|
67
|
+
return SHELL_DEFAULT_TIMEOUT_MS;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Resolve the captured-output byte budget from config, falling back to
|
|
71
|
+
* {@link SHELL_DEFAULT_MAX_OUTPUT_BYTES}. Only the object form can override it.
|
|
72
|
+
* Non-positive / non-finite values are ignored.
|
|
73
|
+
*/
|
|
74
|
+
export function getShellMaxOutputBytes(devTools) {
|
|
75
|
+
const shell = devTools?.shell;
|
|
76
|
+
if (shell && typeof shell === 'object' && typeof shell.maxOutputBytes === 'number') {
|
|
77
|
+
if (Number.isFinite(shell.maxOutputBytes) && shell.maxOutputBytes > 0) {
|
|
78
|
+
return shell.maxOutputBytes;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return SHELL_DEFAULT_MAX_OUTPUT_BYTES;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Whether the EXT-9 Tier-2 scoped allow-list is active. Default `true`; only the object
|
|
85
|
+
* form's `allowlist: false` disables it (a bare `shell: true` keeps it on). When off, the
|
|
86
|
+
* runner prompts for every `run_shell_command` regardless of prior approvals.
|
|
87
|
+
*/
|
|
88
|
+
export function isShellAllowlistEnabled(devTools) {
|
|
89
|
+
const shell = devTools?.shell;
|
|
90
|
+
if (shell && typeof shell === 'object' && shell.allowlist === false)
|
|
91
|
+
return false;
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Whether `always`-scoped approvals are persisted to the project allow-list file. Default
|
|
96
|
+
* `true`; only the object form's `persistAllowlist: false` disables persistence (an
|
|
97
|
+
* `always` decision then behaves as `session`).
|
|
98
|
+
*/
|
|
99
|
+
export function isShellAllowlistPersisted(devTools) {
|
|
100
|
+
const shell = devTools?.shell;
|
|
101
|
+
if (shell && typeof shell === 'object' && shell.persistAllowlist === false)
|
|
102
|
+
return false;
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Whether the EXT-10 LLM-as-judge safety gate is enabled for the given dev-tools config.
|
|
107
|
+
* Default OFF (only the object form's `judge` truthy enables it), mirroring
|
|
108
|
+
* {@link isShellToolEnabled}. A bare `shell: true` keeps the judge OFF — it costs an LLM call
|
|
109
|
+
* per command and must be opted into explicitly.
|
|
110
|
+
*/
|
|
111
|
+
export function isShellJudgeEnabled(devTools) {
|
|
112
|
+
const shell = devTools?.shell;
|
|
113
|
+
if (!shell || typeof shell !== 'object')
|
|
114
|
+
return false;
|
|
115
|
+
const judge = shell.judge;
|
|
116
|
+
if (typeof judge === 'boolean')
|
|
117
|
+
return judge;
|
|
118
|
+
if (judge && typeof judge === 'object')
|
|
119
|
+
return judge.enabled === true;
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Resolve the EXT-10 judge gate settings from a dev-tools config, applying safe defaults
|
|
124
|
+
* (auto-approve low, do NOT block high). `enabled` reflects {@link isShellJudgeEnabled}.
|
|
125
|
+
*/
|
|
126
|
+
export function getShellJudgeSettings(devTools) {
|
|
127
|
+
const enabled = isShellJudgeEnabled(devTools);
|
|
128
|
+
const shell = devTools?.shell;
|
|
129
|
+
const judge = shell && typeof shell === 'object' && shell.judge && typeof shell.judge === 'object'
|
|
130
|
+
? shell.judge
|
|
131
|
+
: undefined;
|
|
132
|
+
return {
|
|
133
|
+
enabled,
|
|
134
|
+
autoApproveLow: judge?.autoApproveLow ?? true,
|
|
135
|
+
blockHigh: judge?.blockHigh ?? false,
|
|
136
|
+
model: judge?.model,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Resolve the {@link GthDevToolsConfig} that applies to the active command, mirroring the
|
|
141
|
+
* per-command selection in `builtInToolsConfig.getDefaultTools` (which is what actually emits
|
|
142
|
+
* the dev tools) and `GthDeepAgent.getEffectiveDevToolsConfig`: `exec` → `commands.exec`,
|
|
143
|
+
* `ask --write` → `commands.ask`, `code` → `commands.code`; `undefined` elsewhere (the
|
|
144
|
+
* toolkit is inert there). Shared in core so the runner's allow-list gate stays in lockstep
|
|
145
|
+
* with where the shell tool is actually emitted.
|
|
146
|
+
*/
|
|
147
|
+
export function getEffectiveDevToolsConfig(config, command) {
|
|
148
|
+
if (!config)
|
|
149
|
+
return undefined;
|
|
150
|
+
const askWrite = command === 'ask' && config.askWriteMode === true;
|
|
151
|
+
if (command === 'exec')
|
|
152
|
+
return config.commands?.exec?.devTools;
|
|
153
|
+
if (askWrite)
|
|
154
|
+
return config.commands?.ask?.devTools;
|
|
155
|
+
if (command === 'code')
|
|
156
|
+
return config.commands?.code?.devTools;
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
18
159
|
export const availableDefaultConfigs = [
|
|
19
160
|
'vertexai',
|
|
20
161
|
'anthropic',
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -12,3 +12,8 @@ export declare const GSLOTH_CHAT_PROMPT = ".gsloth.chat.md";
|
|
|
12
12
|
export declare const GSLOTH_CODE_PROMPT = ".gsloth.code.md";
|
|
13
13
|
export declare const GSLOTH_EXEC_PROMPT = ".gsloth.exec.md";
|
|
14
14
|
export declare const AIIGNORE_FILE = ".aiignore";
|
|
15
|
+
/**
|
|
16
|
+
* EXT-9 Tier-2: project-scoped persisted shell allow-list (`always` approvals).
|
|
17
|
+
* Lives under `.gsloth/.gsloth-settings/` like other project settings.
|
|
18
|
+
*/
|
|
19
|
+
export declare const SHELL_ALLOWLIST_FILE = "shell-allowlist.json";
|
package/dist/constants.js
CHANGED
|
@@ -12,4 +12,9 @@ export const GSLOTH_CHAT_PROMPT = '.gsloth.chat.md';
|
|
|
12
12
|
export const GSLOTH_CODE_PROMPT = '.gsloth.code.md';
|
|
13
13
|
export const GSLOTH_EXEC_PROMPT = '.gsloth.exec.md';
|
|
14
14
|
export const AIIGNORE_FILE = '.aiignore';
|
|
15
|
+
/**
|
|
16
|
+
* EXT-9 Tier-2: project-scoped persisted shell allow-list (`always` approvals).
|
|
17
|
+
* Lives under `.gsloth/.gsloth-settings/` like other project settings.
|
|
18
|
+
*/
|
|
19
|
+
export const SHELL_ALLOWLIST_FILE = 'shell-allowlist.json';
|
|
15
20
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AACpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAC1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAC9D,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAC1D,MAAM,CAAC,MAAM,2BAA2B,GAAG,mBAAmB,CAAC;AAC/D,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACpD,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AACpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAC1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAC9D,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAC1D,MAAM,CAAC,MAAM,2BAA2B,GAAG,mBAAmB,CAAC;AAC/D,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACpD,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;AACzC;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { GthConfig, ServerTool } from '#src/config.js';
|
|
2
|
-
import { AgentResolvers, AgentStreamEvent, GthAgentInterface, GthCommand, GthCompiledGraph, Message, StatusUpdateCallback } from '#src/core/types.js';
|
|
2
|
+
import { AgentResolvers, AgentStreamEvent, GthAgentInterface, GthCommand, GthCompiledGraph, Message, PendingToolInterrupt, StatusUpdateCallback } from '#src/core/types.js';
|
|
3
3
|
import { BaseMessage } from '@langchain/core/messages';
|
|
4
4
|
import { RunnableConfig } from '@langchain/core/runnables';
|
|
5
5
|
import { BaseToolkit, StructuredToolInterface } from '@langchain/core/tools';
|
|
@@ -42,6 +42,19 @@ export declare abstract class GthAbstractAgent implements GthAgentInterface {
|
|
|
42
42
|
* When stream is not appropriate use {@link invoke}.
|
|
43
43
|
*/
|
|
44
44
|
stream(messages: Message[], runConfig: RunnableConfig): Promise<IterableReadableStream<string>>;
|
|
45
|
+
/**
|
|
46
|
+
* Resume a graph suspended on a human-in-the-loop `interrupt()` and stream the continuation
|
|
47
|
+
* as text. Identical plumbing to {@link stream} (Esc-to-interrupt, binary handling), except
|
|
48
|
+
* the graph input is a `Command({ resume })` instead of fresh `messages` — so the suspended
|
|
49
|
+
* tool-approval interrupt is answered and the run continues on the same thread.
|
|
50
|
+
*/
|
|
51
|
+
streamResume(resumeValue: unknown, runConfig: RunnableConfig): Promise<IterableReadableStream<string>>;
|
|
52
|
+
/**
|
|
53
|
+
* Shared body for {@link stream} / {@link streamResume}: drive the compiled graph from
|
|
54
|
+
* `input` (fresh `{ messages }` or a resume `Command`) and surface AI text deltas as a
|
|
55
|
+
* string stream, with Esc-to-interrupt and binary-output materialization.
|
|
56
|
+
*/
|
|
57
|
+
private streamFromInput;
|
|
45
58
|
/**
|
|
46
59
|
* Stream agent events as typed AgentStreamEvent objects.
|
|
47
60
|
* Yields text deltas, tool call lifecycle events, and tool results.
|
|
@@ -61,6 +74,16 @@ export declare abstract class GthAbstractAgent implements GthAgentInterface {
|
|
|
61
74
|
* the client sends in `forwardedProps.command.resume`.
|
|
62
75
|
*/
|
|
63
76
|
streamWithEventsResume(resumeValue: unknown, runConfig: RunnableConfig, queuedMessages?: BaseMessage[], signal?: AbortSignal): AsyncGenerator<AgentStreamEvent>;
|
|
77
|
+
/**
|
|
78
|
+
* Inspect the checkpointed state for the thread and return the tool calls currently pending
|
|
79
|
+
* human approval (empty array when the run finished normally). A LangGraph
|
|
80
|
+
* `humanInTheLoopMiddleware` interrupt parks one `HITLRequest` per suspended super-step in
|
|
81
|
+
* `state.tasks[].interrupts[].value.actionRequests` (each `{ name, args }`); this flattens
|
|
82
|
+
* those into {@link PendingToolInterrupt}s. Defensive throughout — a graph without
|
|
83
|
+
* `getState`, or any unexpected shape, yields `[]` rather than throwing, so a missing HITL
|
|
84
|
+
* setup degrades to "no approval needed" instead of breaking the run.
|
|
85
|
+
*/
|
|
86
|
+
getPendingToolInterrupts(runConfig: RunnableConfig): Promise<PendingToolInterrupt[]>;
|
|
64
87
|
protected processEventStream(stream: IterableReadableStream<[BaseMessage, Record<string, unknown>]>): AsyncGenerator<AgentStreamEvent>;
|
|
65
88
|
cleanup(): Promise<void>;
|
|
66
89
|
getEffectiveConfig(config: GthConfig, command: GthCommand | undefined): GthConfig;
|
|
@@ -96,11 +96,32 @@ export class GthAbstractAgent {
|
|
|
96
96
|
* When stream is not appropriate use {@link invoke}.
|
|
97
97
|
*/
|
|
98
98
|
async stream(messages, runConfig) {
|
|
99
|
+
debugLog('=== Starting streaming invoke ===');
|
|
100
|
+
debugLogObject('LLM Input Messages', messages);
|
|
101
|
+
return this.streamFromInput({ messages }, runConfig);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Resume a graph suspended on a human-in-the-loop `interrupt()` and stream the continuation
|
|
105
|
+
* as text. Identical plumbing to {@link stream} (Esc-to-interrupt, binary handling), except
|
|
106
|
+
* the graph input is a `Command({ resume })` instead of fresh `messages` — so the suspended
|
|
107
|
+
* tool-approval interrupt is answered and the run continues on the same thread.
|
|
108
|
+
*/
|
|
109
|
+
async streamResume(resumeValue, runConfig) {
|
|
110
|
+
debugLog('=== Starting streaming resume ===');
|
|
111
|
+
debugLogObject('Resume value', resumeValue);
|
|
112
|
+
return this.streamFromInput(new Command({ resume: resumeValue }), runConfig);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Shared body for {@link stream} / {@link streamResume}: drive the compiled graph from
|
|
116
|
+
* `input` (fresh `{ messages }` or a resume `Command`) and surface AI text deltas as a
|
|
117
|
+
* string stream, with Esc-to-interrupt and binary-output materialization.
|
|
118
|
+
*/
|
|
119
|
+
async streamFromInput(
|
|
120
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
121
|
+
input, runConfig) {
|
|
99
122
|
if (!this.agent || !this.config) {
|
|
100
123
|
throw new Error('Agent not initialized. Call init() first.');
|
|
101
124
|
}
|
|
102
|
-
debugLog('=== Starting streaming invoke ===');
|
|
103
|
-
debugLogObject('LLM Input Messages', messages);
|
|
104
125
|
debugLogObject('Stream RunConfig', runConfig);
|
|
105
126
|
this.statusUpdate(StatusLevel.INFO, '\nThinking...\n');
|
|
106
127
|
const statusUpdate = this.statusUpdate;
|
|
@@ -123,7 +144,11 @@ export class GthAbstractAgent {
|
|
|
123
144
|
}, this.config.canInterruptInferenceWithEsc);
|
|
124
145
|
let stream;
|
|
125
146
|
try {
|
|
126
|
-
stream = await this.agent.stream(
|
|
147
|
+
stream = await this.agent.stream(input, {
|
|
148
|
+
...runConfig,
|
|
149
|
+
streamMode: 'messages',
|
|
150
|
+
signal: abortController.signal,
|
|
151
|
+
});
|
|
127
152
|
}
|
|
128
153
|
catch (error) {
|
|
129
154
|
// If stream creation fails (e.g. an auth error), the IterableReadableStream below -
|
|
@@ -282,6 +307,55 @@ export class GthAbstractAgent {
|
|
|
282
307
|
throw e;
|
|
283
308
|
}
|
|
284
309
|
}
|
|
310
|
+
/**
|
|
311
|
+
* Inspect the checkpointed state for the thread and return the tool calls currently pending
|
|
312
|
+
* human approval (empty array when the run finished normally). A LangGraph
|
|
313
|
+
* `humanInTheLoopMiddleware` interrupt parks one `HITLRequest` per suspended super-step in
|
|
314
|
+
* `state.tasks[].interrupts[].value.actionRequests` (each `{ name, args }`); this flattens
|
|
315
|
+
* those into {@link PendingToolInterrupt}s. Defensive throughout — a graph without
|
|
316
|
+
* `getState`, or any unexpected shape, yields `[]` rather than throwing, so a missing HITL
|
|
317
|
+
* setup degrades to "no approval needed" instead of breaking the run.
|
|
318
|
+
*/
|
|
319
|
+
async getPendingToolInterrupts(runConfig) {
|
|
320
|
+
if (!this.agent || typeof this.agent.getState !== 'function') {
|
|
321
|
+
return [];
|
|
322
|
+
}
|
|
323
|
+
let state;
|
|
324
|
+
try {
|
|
325
|
+
state = await this.agent.getState(runConfig);
|
|
326
|
+
}
|
|
327
|
+
catch (e) {
|
|
328
|
+
debugLogError('getPendingToolInterrupts getState', e);
|
|
329
|
+
return [];
|
|
330
|
+
}
|
|
331
|
+
const tasks = state?.tasks;
|
|
332
|
+
if (!Array.isArray(tasks)) {
|
|
333
|
+
return [];
|
|
334
|
+
}
|
|
335
|
+
const pending = [];
|
|
336
|
+
for (const task of tasks) {
|
|
337
|
+
const interrupts = task?.interrupts;
|
|
338
|
+
if (!Array.isArray(interrupts))
|
|
339
|
+
continue;
|
|
340
|
+
for (const interrupt of interrupts) {
|
|
341
|
+
const value = interrupt?.value;
|
|
342
|
+
const actionRequests = value?.actionRequests;
|
|
343
|
+
if (!Array.isArray(actionRequests))
|
|
344
|
+
continue;
|
|
345
|
+
for (const action of actionRequests) {
|
|
346
|
+
const name = action?.name;
|
|
347
|
+
if (typeof name !== 'string')
|
|
348
|
+
continue;
|
|
349
|
+
const args = action?.args;
|
|
350
|
+
pending.push({
|
|
351
|
+
name,
|
|
352
|
+
args: args && typeof args === 'object' ? args : {},
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
return pending;
|
|
358
|
+
}
|
|
285
359
|
async *processEventStream(stream) {
|
|
286
360
|
// Aggregate AIMessageChunks via concat so tool_call_chunks collapse into
|
|
287
361
|
// tool_calls with complete args (per-chunk tool_calls only ever sees that
|