@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 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-assistant`) pulls them in.
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/tools`](../tools) — Built-in tools, filesystem toolkit, and middleware registry
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-assistant`](../assistant) — Main CLI application
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',
@@ -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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"}
@@ -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
@@ -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({ messages }, { ...runConfig, streamMode: 'messages', signal: abortController.signal });
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