@gaunt-sloth/core 2.0.0-alpha.11 → 2.0.0-alpha.13

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.
@@ -2,15 +2,111 @@
2
2
  * @packageDocumentation
3
3
  * Shell / dev-tools policy: the {@link GthDevToolsConfig} type plus all the resolvers
4
4
  * that interpret it (shell enablement, timeouts, output budget, allow-list, the EXT-10
5
- * LLM-as-judge gate, and per-command dev-tools selection). Extracted verbatim from the
6
- * former `config.ts` god-file; behaviour is unchanged.
5
+ * LLM-as-judge gate, and per-command dev-tools selection).
6
+ *
7
+ * CFG-18 — the dev/shell tools are now configured through the unified {@link GthConfig.builtInTools}
8
+ * registry (`string[] | Record<string, boolean | BuiltInToolConfig>`), NOT the removed per-command
9
+ * `commands.<mode>.devTools` key. {@link GthDevToolsConfig} is therefore no longer an on-disk shape:
10
+ * it is the internal, resolved view that {@link getEffectiveDevToolsConfig} builds from the effective
11
+ * `builtInTools` registry, and that {@link GthDevToolkit} + the shell accessors below consume. This
12
+ * keeps the toolkit/accessor surface stable while the single config surface is `builtInTools`.
7
13
  */
8
14
  import type { GthCommand } from '#src/core/types.js';
9
15
  import type { GthConfig, LLMConfig } from '#src/config/types.js';
10
16
  /**
11
- * Config for {@link GthDevToolkit}.
12
- * Tools are not applied when config is not provided.
13
- * Only available in `code`/`exec` mode (and `ask --write`).
17
+ * CFG-18 the per-tool config object carried as a value in the {@link GthConfig.builtInTools}
18
+ * registry (the object form's values, alongside a bare boolean that enables/force-disables a tool).
19
+ * Heterogeneous by tool, modelled as one permissive object (all fields optional) rather than a
20
+ * discriminated union so the registry can carry every tool's shape:
21
+ * - the fixed dev-command tools (`run_tests`/`run_lint`/`run_build`/`run_single_test`) read
22
+ * {@link command} — the shell command to run; its presence enables the tool;
23
+ * - `run_shell_command` reads the EXT-9/10/12 knobs ({@link enabled}/{@link timeout}/
24
+ * {@link maxOutputBytes}/{@link allowlist}/{@link persistAllowlist}/{@link judge}/{@link yolo} —
25
+ * `yolo` is the folded former `shellYolo`);
26
+ * - a plain built-in tool (`gth_checklist`, `gth_web_fetch`, …) reads {@link enabled} (or is
27
+ * toggled with a bare boolean in the registry).
28
+ */
29
+ export interface BuiltInToolConfig {
30
+ /**
31
+ * Enable / force-disable this tool. For `run_shell_command` the resolution is `enabled ?? default`
32
+ * (EXT-12: default ON in `code` mode, OFF elsewhere), so an object entry WITHOUT `enabled` still
33
+ * defaults ON in `code`; `enabled: false` is the hard escape hatch that disables it even in `code`.
34
+ * For a plain built-in tool, `enabled: false` removes it from the loaded set.
35
+ */
36
+ enabled?: boolean;
37
+ /** The shell command for a fixed dev-command tool (`run_tests`/`run_lint`/`run_build`/`run_single_test`). */
38
+ command?: string;
39
+ /** `run_shell_command`: per-command wall-clock timeout (ms). See {@link SHELL_DEFAULT_TIMEOUT_MS}. */
40
+ timeout?: number;
41
+ /** `run_shell_command`: captured-output byte budget. See {@link SHELL_DEFAULT_MAX_OUTPUT_BYTES}. */
42
+ maxOutputBytes?: number;
43
+ /** `run_shell_command`: EXT-9 Tier-2 scoped allow-list master switch (default `true`). */
44
+ allowlist?: boolean;
45
+ /** `run_shell_command`: persist `always`-scoped approvals to the project file (default `true`). */
46
+ persistAllowlist?: boolean;
47
+ /** `run_shell_command`: EXT-10 LLM-as-judge safety gate (default OFF). */
48
+ judge?: boolean | {
49
+ enabled?: boolean;
50
+ autoApproveLow?: boolean;
51
+ blockHigh?: boolean;
52
+ model?: LLMConfig;
53
+ };
54
+ /**
55
+ * `run_shell_command`: opt out of the per-command approval prompt — the explicit "yolo" bypass
56
+ * (folded former top-level `shellYolo`). Dangerous by design; off by default. Example:
57
+ * `{ "run_shell_command": { "yolo": true } }`.
58
+ */
59
+ yolo?: boolean;
60
+ }
61
+ /**
62
+ * CFG-18 — the widened `builtInTools` setting. Either the legacy `string[]` (each named tool
63
+ * enabled) or a registry keyed by tool name whose values **enable** (`true`), **force-disable**
64
+ * (`false`), or **configure** ({@link BuiltInToolConfig}) each tool. This single key replaces the
65
+ * former split of `builtInTools: string[]` (which tools are on) + per-command `devTools` (how each
66
+ * dev/shell tool is configured).
67
+ *
68
+ * Example — keep the checklist, add web fetch, and configure the shell:
69
+ * ```json
70
+ * { "builtInTools": {
71
+ * "gth_checklist": true,
72
+ * "gth_web_fetch": true,
73
+ * "run_shell_command": { "timeout": 300000, "judge": { "enabled": true } }
74
+ * } }
75
+ * ```
76
+ * Turn the (code-mode default-on) shell OFF: `{ "builtInTools": { "run_shell_command": false } }`.
77
+ */
78
+ export type BuiltInToolsSetting = string[] | Record<string, boolean | BuiltInToolConfig>;
79
+ /**
80
+ * The fixed dev-command tools: each maps a `command` string (from its {@link BuiltInToolConfig})
81
+ * to a run_* tool emitted by {@link GthDevToolkit}.
82
+ */
83
+ export declare const DEV_COMMAND_TOOL_NAMES: readonly ["run_tests", "run_lint", "run_build", "run_single_test"];
84
+ /** The opt-in general-purpose shell tool name. */
85
+ export declare const SHELL_TOOL_NAME = "run_shell_command";
86
+ /**
87
+ * All dev/shell tool names carried in the {@link GthConfig.builtInTools} registry. These are emitted
88
+ * by {@link GthDevToolkit} via the dev-tools bucket, NOT loaded as plain built-in tools — so
89
+ * `getBuiltInTools` skips them (a `run_shell_command` entry in `builtInTools` is legitimate, not an
90
+ * "unknown built-in tool").
91
+ */
92
+ export declare const DEV_TOOL_NAMES: readonly string[];
93
+ /**
94
+ * Normalize the widened {@link BuiltInToolsSetting} to a plain lookup keyed by tool name. The array
95
+ * form maps each name to `true`; the object form passes through unchanged; absent → `{}`.
96
+ */
97
+ export declare function normalizeBuiltInTools(builtInTools: BuiltInToolsSetting | undefined): Record<string, boolean | BuiltInToolConfig>;
98
+ /**
99
+ * Whether a plain built-in tool's registry entry is enabled: a bare `true`, or an object entry that
100
+ * is not `{ enabled: false }` (configuring a tool enables it). A bare `false` force-disables it.
101
+ * Dev/shell tools ({@link DEV_TOOL_NAMES}) are NOT resolved through this — they go through
102
+ * {@link getEffectiveDevToolsConfig} / {@link isShellToolEnabled}.
103
+ */
104
+ export declare function isBuiltInToolEntryEnabled(value: boolean | BuiltInToolConfig | undefined): boolean;
105
+ /**
106
+ * Config for {@link GthDevToolkit} — the INTERNAL, resolved dev/shell view (CFG-18: no longer an
107
+ * on-disk shape; built from the {@link GthConfig.builtInTools} registry by
108
+ * {@link getEffectiveDevToolsConfig}). Tools are not applied when the config is empty. Only active
109
+ * in `code`/`exec` mode (and `ask --write`).
14
110
  */
15
111
  export interface GthDevToolsConfig {
16
112
  /**
@@ -68,8 +164,9 @@ export interface GthDevToolsConfig {
68
164
  * to a block device, fork bomb, shutdown/reboot, …) is refused even under
69
165
  * {@link shellYolo}; that floor is not configurable.
70
166
  *
71
- * Example: `{ "shell": true }`,
72
- * `{ "shell": { "enabled": true, "timeout": 300000, "maxOutputBytes": 200000 } }`.
167
+ * On-disk (CFG-18) these live on the `run_shell_command` entry of `builtInTools`, e.g.
168
+ * `{ "builtInTools": { "run_shell_command": true } }` or
169
+ * `{ "builtInTools": { "run_shell_command": { "timeout": 300000, "maxOutputBytes": 200000 } } }`.
73
170
  *
74
171
  * The object form additionally accepts EXT-9 Tier-2 allow-list knobs:
75
172
  * - `allowlist`: master switch for the scoped approval allow-list (session +
@@ -118,7 +215,8 @@ export interface GthDevToolsConfig {
118
215
  * is enabled, the shell tool runs without any approval interrupt: the model's
119
216
  * commands execute immediately. Dangerous by design; off by default.
120
217
  *
121
- * Example: `{ "shell": true, "shellYolo": true }`.
218
+ * On-disk (CFG-18) this is the `yolo` knob of the `run_shell_command` entry, e.g.
219
+ * `{ "builtInTools": { "run_shell_command": { "yolo": true } } }`.
122
220
  */
123
221
  shellYolo?: boolean;
124
222
  }
@@ -139,14 +237,16 @@ export declare const SHELL_DEFAULT_MAX_OUTPUT_BYTES = 100000;
139
237
  * `{ enabled }`) to a plain boolean. Centralized so the toolkit (tool emission)
140
238
  * and the deep agent (interrupt wiring) agree on what "shell enabled" means.
141
239
  *
142
- * EXT-12 — default-resolution: an EXPLICIT value always wins (a bare boolean, or the
143
- * object form's `enabled`), so `shell: false` / `{ enabled: false }` remains a hard
144
- * escape hatch that fully disables the tool. Only when `shell` is ABSENT/undefined does
145
- * the per-mode default apply: in `code` mode the shell tool is ON by default (still
146
- * gated the per-command approval interrupt is wired separately and is NOT bypassed by
147
- * this), and OFF everywhere else (`exec`, `ask --write`, …) to preserve prior behaviour.
148
- * The default is `code`-mode only because `code` is the interactive agentic-coding surface
149
- * where a TTY can answer the approval prompt; the absent-config default never implies yolo.
240
+ * EXT-12 / CFG-18 — default-resolution is `enabled ?? default`. An EXPLICIT `enabled` always wins
241
+ * (a bare boolean, or the object form's `enabled`), so `shell: false` / `{ enabled: false }` remains
242
+ * a hard escape hatch that fully disables the tool. When `enabled` is ABSENT — whether `shell` is
243
+ * undefined OR an object that omits `enabled` (e.g. `{ timeout: 300000 }`, i.e. a
244
+ * `{ "run_shell_command": { "timeout": 300000 } }` registry entry) the per-mode default applies:
245
+ * ON in `code` mode (still gated the per-command approval interrupt is wired separately and is NOT
246
+ * bypassed by this), OFF everywhere else (`exec`, `ask --write`, …). This is the CFG-18 change from
247
+ * the old `enabled === true` object semantics: configuring the shell no longer silently turns it off.
248
+ * The default is `code`-mode only because `code` is the interactive agentic-coding surface where a
249
+ * TTY can answer the approval prompt; the absent-config default never implies yolo.
150
250
  *
151
251
  * @param command The active command, so the absent-config default can be scoped to `code`.
152
252
  * Omit (or pass a non-`code` command) to keep the historical OFF-by-default behaviour.
@@ -202,11 +302,13 @@ export declare function isShellJudgeEnabled(devTools: GthDevToolsConfig | undefi
202
302
  */
203
303
  export declare function getShellJudgeSettings(devTools: GthDevToolsConfig | undefined): ShellJudgeSettings;
204
304
  /**
205
- * Resolve the {@link GthDevToolsConfig} that applies to the active command, mirroring the
206
- * per-command selection in `builtInToolsConfig.getDefaultTools` (which is what actually emits
207
- * the dev tools) and `GthDeepAgent.getEffectiveDevToolsConfig`: `exec` → `commands.exec`,
208
- * `ask --write` → `commands.ask`, `code` → `commands.code`; `undefined` elsewhere (the
209
- * toolkit is inert there). Shared in core so the runner's allow-list gate stays in lockstep
210
- * with where the shell tool is actually emitted.
305
+ * Resolve the {@link GthDevToolsConfig} that applies to the active command from the unified
306
+ * {@link GthConfig.builtInTools} registry (CFG-18 replaces the removed per-command `devTools`).
307
+ * Mirrors the per-command selection used by `builtInToolsConfig.getDefaultTools`: `exec` →
308
+ * `commands.exec`, `ask --write` → `commands.ask`, `code` → `commands.code`; `undefined` elsewhere
309
+ * (the dev/shell tools are inert there). The effective registry for the scope is the per-command
310
+ * `builtInTools` if set, else the root `builtInTools` matching `getEffectiveConfig`'s replace
311
+ * merge. Shared in core so the runner's allow-list/judge gates stay in lockstep with where the
312
+ * shell tool is actually emitted.
211
313
  */
212
- export declare function getEffectiveDevToolsConfig(config: Pick<GthConfig, 'commands' | 'askWriteMode'> | undefined, command: GthCommand | undefined): GthDevToolsConfig | undefined;
314
+ export declare function getEffectiveDevToolsConfig(config: Pick<GthConfig, 'commands' | 'builtInTools' | 'askWriteMode'> | undefined, command: GthCommand | undefined): GthDevToolsConfig | undefined;
@@ -1,3 +1,50 @@
1
+ /**
2
+ * The fixed dev-command tools: each maps a `command` string (from its {@link BuiltInToolConfig})
3
+ * to a run_* tool emitted by {@link GthDevToolkit}.
4
+ */
5
+ export const DEV_COMMAND_TOOL_NAMES = [
6
+ 'run_tests',
7
+ 'run_lint',
8
+ 'run_build',
9
+ 'run_single_test',
10
+ ];
11
+ /** The opt-in general-purpose shell tool name. */
12
+ export const SHELL_TOOL_NAME = 'run_shell_command';
13
+ /**
14
+ * All dev/shell tool names carried in the {@link GthConfig.builtInTools} registry. These are emitted
15
+ * by {@link GthDevToolkit} via the dev-tools bucket, NOT loaded as plain built-in tools — so
16
+ * `getBuiltInTools` skips them (a `run_shell_command` entry in `builtInTools` is legitimate, not an
17
+ * "unknown built-in tool").
18
+ */
19
+ export const DEV_TOOL_NAMES = [...DEV_COMMAND_TOOL_NAMES, SHELL_TOOL_NAME];
20
+ /**
21
+ * Normalize the widened {@link BuiltInToolsSetting} to a plain lookup keyed by tool name. The array
22
+ * form maps each name to `true`; the object form passes through unchanged; absent → `{}`.
23
+ */
24
+ export function normalizeBuiltInTools(builtInTools) {
25
+ if (!builtInTools)
26
+ return {};
27
+ if (Array.isArray(builtInTools)) {
28
+ const out = {};
29
+ for (const name of builtInTools)
30
+ out[name] = true;
31
+ return out;
32
+ }
33
+ return builtInTools;
34
+ }
35
+ /**
36
+ * Whether a plain built-in tool's registry entry is enabled: a bare `true`, or an object entry that
37
+ * is not `{ enabled: false }` (configuring a tool enables it). A bare `false` force-disables it.
38
+ * Dev/shell tools ({@link DEV_TOOL_NAMES}) are NOT resolved through this — they go through
39
+ * {@link getEffectiveDevToolsConfig} / {@link isShellToolEnabled}.
40
+ */
41
+ export function isBuiltInToolEntryEnabled(value) {
42
+ if (value === undefined)
43
+ return false;
44
+ if (typeof value === 'boolean')
45
+ return value;
46
+ return value.enabled !== false;
47
+ }
1
48
  /**
2
49
  * Default per-command shell timeout (ms) when {@link GthDevToolsConfig.shell}
3
50
  * does not specify one. ~120s suits typical build/test/git steps without
@@ -15,14 +62,16 @@ export const SHELL_DEFAULT_MAX_OUTPUT_BYTES = 100_000;
15
62
  * `{ enabled }`) to a plain boolean. Centralized so the toolkit (tool emission)
16
63
  * and the deep agent (interrupt wiring) agree on what "shell enabled" means.
17
64
  *
18
- * EXT-12 — default-resolution: an EXPLICIT value always wins (a bare boolean, or the
19
- * object form's `enabled`), so `shell: false` / `{ enabled: false }` remains a hard
20
- * escape hatch that fully disables the tool. Only when `shell` is ABSENT/undefined does
21
- * the per-mode default apply: in `code` mode the shell tool is ON by default (still
22
- * gated the per-command approval interrupt is wired separately and is NOT bypassed by
23
- * this), and OFF everywhere else (`exec`, `ask --write`, …) to preserve prior behaviour.
24
- * The default is `code`-mode only because `code` is the interactive agentic-coding surface
25
- * where a TTY can answer the approval prompt; the absent-config default never implies yolo.
65
+ * EXT-12 / CFG-18 — default-resolution is `enabled ?? default`. An EXPLICIT `enabled` always wins
66
+ * (a bare boolean, or the object form's `enabled`), so `shell: false` / `{ enabled: false }` remains
67
+ * a hard escape hatch that fully disables the tool. When `enabled` is ABSENT — whether `shell` is
68
+ * undefined OR an object that omits `enabled` (e.g. `{ timeout: 300000 }`, i.e. a
69
+ * `{ "run_shell_command": { "timeout": 300000 } }` registry entry) the per-mode default applies:
70
+ * ON in `code` mode (still gated the per-command approval interrupt is wired separately and is NOT
71
+ * bypassed by this), OFF everywhere else (`exec`, `ask --write`, …). This is the CFG-18 change from
72
+ * the old `enabled === true` object semantics: configuring the shell no longer silently turns it off.
73
+ * The default is `code`-mode only because `code` is the interactive agentic-coding surface where a
74
+ * TTY can answer the approval prompt; the absent-config default never implies yolo.
26
75
  *
27
76
  * @param command The active command, so the absent-config default can be scoped to `code`.
28
77
  * Omit (or pass a non-`code` command) to keep the historical OFF-by-default behaviour.
@@ -31,8 +80,9 @@ export function isShellToolEnabled(devTools, command) {
31
80
  const shell = devTools?.shell;
32
81
  if (typeof shell === 'boolean')
33
82
  return shell;
83
+ // Object form: `enabled ?? default` — an object without `enabled` still defaults ON in `code`.
34
84
  if (shell && typeof shell === 'object')
35
- return shell.enabled === true;
85
+ return shell.enabled ?? command === 'code';
36
86
  // Absent/undefined shell: ON by default for `code` mode (gated), OFF elsewhere.
37
87
  return command === 'code';
38
88
  }
@@ -120,23 +170,69 @@ export function getShellJudgeSettings(devTools) {
120
170
  };
121
171
  }
122
172
  /**
123
- * Resolve the {@link GthDevToolsConfig} that applies to the active command, mirroring the
124
- * per-command selection in `builtInToolsConfig.getDefaultTools` (which is what actually emits
125
- * the dev tools) and `GthDeepAgent.getEffectiveDevToolsConfig`: `exec` `commands.exec`,
126
- * `ask --write` `commands.ask`, `code` `commands.code`; `undefined` elsewhere (the
127
- * toolkit is inert there). Shared in core so the runner's allow-list gate stays in lockstep
128
- * with where the shell tool is actually emitted.
173
+ * Build the internal, resolved {@link GthDevToolsConfig} from a normalized `builtInTools` registry:
174
+ * the fixed dev-command tools read their `command` string, and `run_shell_command` maps to the
175
+ * `shell` (+ `shellYolo`) view the accessors below consume. Returns `undefined` when the registry
176
+ * carries no dev/shell entry at all, so callers treat it exactly like an unset `devTools` (the
177
+ * `code`-mode shell default still applies downstream via {@link isShellToolEnabled}).
178
+ */
179
+ function devToolsConfigFromRegistry(registry) {
180
+ const resolved = {};
181
+ let hasAny = false;
182
+ for (const name of DEV_COMMAND_TOOL_NAMES) {
183
+ const entry = registry[name];
184
+ const cmd = entry && typeof entry === 'object' ? entry.command : undefined;
185
+ if (typeof cmd === 'string' && cmd.length > 0) {
186
+ resolved[name] = cmd;
187
+ hasAny = true;
188
+ }
189
+ }
190
+ if (Object.prototype.hasOwnProperty.call(registry, SHELL_TOOL_NAME)) {
191
+ const entry = registry[SHELL_TOOL_NAME];
192
+ if (typeof entry === 'boolean') {
193
+ resolved.shell = entry;
194
+ }
195
+ else if (entry && typeof entry === 'object') {
196
+ resolved.shell = {
197
+ enabled: entry.enabled,
198
+ timeout: entry.timeout,
199
+ maxOutputBytes: entry.maxOutputBytes,
200
+ allowlist: entry.allowlist,
201
+ persistAllowlist: entry.persistAllowlist,
202
+ judge: entry.judge,
203
+ };
204
+ if (entry.yolo !== undefined)
205
+ resolved.shellYolo = entry.yolo;
206
+ }
207
+ hasAny = true;
208
+ }
209
+ return hasAny ? resolved : undefined;
210
+ }
211
+ /**
212
+ * Resolve the {@link GthDevToolsConfig} that applies to the active command from the unified
213
+ * {@link GthConfig.builtInTools} registry (CFG-18 — replaces the removed per-command `devTools`).
214
+ * Mirrors the per-command selection used by `builtInToolsConfig.getDefaultTools`: `exec` →
215
+ * `commands.exec`, `ask --write` → `commands.ask`, `code` → `commands.code`; `undefined` elsewhere
216
+ * (the dev/shell tools are inert there). The effective registry for the scope is the per-command
217
+ * `builtInTools` if set, else the root `builtInTools` — matching `getEffectiveConfig`'s replace
218
+ * merge. Shared in core so the runner's allow-list/judge gates stay in lockstep with where the
219
+ * shell tool is actually emitted.
129
220
  */
130
221
  export function getEffectiveDevToolsConfig(config, command) {
131
222
  if (!config)
132
223
  return undefined;
133
224
  const askWrite = command === 'ask' && config.askWriteMode === true;
134
- if (command === 'exec')
135
- return config.commands?.exec?.devTools;
136
- if (askWrite)
137
- return config.commands?.ask?.devTools;
138
- if (command === 'code')
139
- return config.commands?.code?.devTools;
140
- return undefined;
225
+ const cmdConfig = command === 'exec'
226
+ ? config.commands?.exec
227
+ : askWrite
228
+ ? config.commands?.ask
229
+ : command === 'code'
230
+ ? config.commands?.code
231
+ : undefined;
232
+ // Only the do-the-job commands (code/exec/ask --write) carry dev/shell tools.
233
+ if (command !== 'exec' && command !== 'code' && !askWrite)
234
+ return undefined;
235
+ const effective = cmdConfig?.builtInTools ?? config.builtInTools;
236
+ return devToolsConfigFromRegistry(normalizeBuiltInTools(effective));
141
237
  }
142
238
  //# sourceMappingURL=shell-policy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shell-policy.js","sourceRoot":"","sources":["../../src/config/shell-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell-policy.js","sourceRoot":"","sources":["../../src/config/shell-policy.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
8
8
  import type { BaseToolkit, StructuredToolInterface } from '@langchain/core/tools';
9
9
  import type { StatusLevel } from '#src/core/types.js';
10
- import type { GthDevToolsConfig } from '#src/config/shell-policy.js';
10
+ import type { BuiltInToolsSetting } from '#src/config/shell-policy.js';
11
11
  /**
12
12
  * Shared per-command tooling configuration (the knobs every actionable command carries).
13
13
  * Reused across the per-command types in {@link GthConfig.commands} and by
@@ -18,7 +18,7 @@ import type { GthDevToolsConfig } from '#src/config/shell-policy.js';
18
18
  */
19
19
  export interface CommandToolingConfig {
20
20
  filesystem?: string[] | 'all' | 'read' | 'none';
21
- builtInTools?: string[];
21
+ builtInTools?: BuiltInToolsSetting;
22
22
  customTools?: CustomToolsConfig | false;
23
23
  /** See {@link GthConfig.allowedTools}. */
24
24
  allowedTools?: string[];
@@ -116,7 +116,16 @@ export interface GthConfig {
116
116
  */
117
117
  noDefaultPrompts?: boolean;
118
118
  filesystem: string[] | 'all' | 'read' | 'none';
119
- builtInTools?: string[];
119
+ /**
120
+ * Selects and configures the built-in tools the agent loads. Either a `string[]` of tool names
121
+ * (each enabled) or a registry keyed by tool name whose values enable (`true`), force-disable
122
+ * (`false`), or configure ({@link BuiltInToolConfig}) each tool. CFG-18 folded the former
123
+ * per-command `devTools` (the `run_*` commands + `run_shell_command`'s EXT-9/10/12 config) into
124
+ * this single registry: e.g. `{ "run_tests": { "command": "npm test" }, "run_shell_command": {
125
+ * "timeout": 300000 } }`. Settable at the root or per command (`commands.<command>.builtInTools`);
126
+ * a per-command value replaces the top-level one.
127
+ */
128
+ builtInTools?: BuiltInToolsSetting;
120
129
  tools?: StructuredToolInterface[] | BaseToolkit[] | ServerTool[];
121
130
  /**
122
131
  * Restrict the agent to this allow-list of tool names, applied after every tool source
@@ -228,6 +237,24 @@ export interface GthConfig {
228
237
  * @see {@link https://modelcontextprotocol.io/}
229
238
  */
230
239
  mcpServers?: Record<string, unknown>;
240
+ /**
241
+ * TLS trust for outbound HTTPS. Primarily so an `http`-transport MCP server behind a
242
+ * private/corporate CA can be reached without prepending `NODE_EXTRA_CA_CERTS` on every
243
+ * invocation. The mechanism is a process-global undici dispatcher, so it applies to ALL
244
+ * outbound `fetch` this process makes (LLM provider calls included), not only MCP.
245
+ */
246
+ tls?: {
247
+ /**
248
+ * Extra CA certificate file(s) to trust IN ADDITION to Node's built-in roots. Paths resolve
249
+ * relative to the project dir (or `~`/absolute). Additive — never removes a default root.
250
+ */
251
+ extraCaCerts?: string[];
252
+ /**
253
+ * DANGER — `false` disables TLS certificate verification for ALL outbound HTTPS this process
254
+ * makes, not just MCP. Escape hatch only; a loud security warning is emitted every session.
255
+ */
256
+ rejectUnauthorized?: boolean;
257
+ };
231
258
  /**
232
259
  * A2A (Agent-to-Agent) protocol agents configuration.
233
260
  * Enables delegation of tasks to external AI agents.
@@ -248,27 +275,21 @@ export interface GthConfig {
248
275
  requirementSource?: string;
249
276
  rating?: RatingConfig;
250
277
  };
251
- ask?: CommandToolingConfig & {
252
- /**
253
- * Dev tools (run commands etc.) for `ask --write` runs. Normally inherited from
254
- * `commands.exec` / `commands.code` by the `--write` flag rather than set directly.
255
- */
256
- devTools?: GthDevToolsConfig;
257
- };
278
+ ask?: CommandToolingConfig;
258
279
  chat?: CommandToolingConfig;
259
- code?: CommandToolingConfig & {
260
- devTools?: GthDevToolsConfig;
261
- };
280
+ /**
281
+ * `gth code` — interactive coding session. Carries the do-the-job tool/filesystem knobs; the
282
+ * dev/shell tools (CFG-18) are configured via {@link CommandToolingConfig.builtInTools}.
283
+ */
284
+ code?: CommandToolingConfig;
262
285
  /**
263
286
  * `gth exec` — prompt-as-script runtime. Like `code`, an exec run may need to actually
264
287
  * do the job (read/write files, run commands), so it carries the same tool/filesystem knobs.
265
288
  */
266
- exec?: CommandToolingConfig & {
267
- devTools?: GthDevToolsConfig;
268
- };
289
+ exec?: CommandToolingConfig;
269
290
  api?: {
270
291
  filesystem?: string[] | 'all' | 'read' | 'none';
271
- builtInTools?: string[];
292
+ builtInTools?: BuiltInToolsSetting;
272
293
  port?: number;
273
294
  cors?: {
274
295
  allowOrigin?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AA2cA,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,UAAU;IACV,WAAW;IACX,MAAM;IACN,UAAU;IACV,QAAQ;IACR,cAAc;IACd,KAAK;IACL,YAAY;IACZ,aAAa;IACb,QAAQ;CACA,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAgeA,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,UAAU;IACV,WAAW;IACX,MAAM;IACN,UAAU;IACV,QAAQ;IACR,cAAc;IACd,KAAK;IACL,YAAY;IACZ,aAAa;IACb,QAAQ;CACA,CAAC"}
@@ -34,7 +34,7 @@ export declare class GthAgentRunner {
34
34
  * interactive `code` mode, this flag is consulted at the TOP of {@link decideToolApproval}:
35
35
  * when ON, a gated `run_shell_command` is auto-approved WITHOUT prompting for the rest of this
36
36
  * runner's life. Never persisted, but INITIALIZED at {@link init} from the static
37
- * `devTools.shellYolo` config flag — so a config that pre-enables auto-approval still keeps the
37
+ * `run_shell_command.yolo` config knob — so a config that pre-enables auto-approval still keeps the
38
38
  * tool gated and therefore toggleable (`/auto-approve off` restores the per-command prompt).
39
39
  * It does NOT disable the hardline floor — catastrophic commands are still refused at exec time
40
40
  * in `GthDevToolkit.executeCommand`.
@@ -43,7 +43,7 @@ export class GthAgentRunner {
43
43
  * interactive `code` mode, this flag is consulted at the TOP of {@link decideToolApproval}:
44
44
  * when ON, a gated `run_shell_command` is auto-approved WITHOUT prompting for the rest of this
45
45
  * runner's life. Never persisted, but INITIALIZED at {@link init} from the static
46
- * `devTools.shellYolo` config flag — so a config that pre-enables auto-approval still keeps the
46
+ * `run_shell_command.yolo` config knob — so a config that pre-enables auto-approval still keeps the
47
47
  * tool gated and therefore toggleable (`/auto-approve off` restores the per-command prompt).
48
48
  * It does NOT disable the hardline floor — catastrophic commands are still refused at exec time
49
49
  * in `GthDevToolkit.executeCommand`.
@@ -114,7 +114,7 @@ export class GthAgentRunner {
114
114
  async init(command, configIn, checkpointSaver) {
115
115
  this.config = configIn;
116
116
  this.command = command;
117
- // EXT-12 — seed the runtime auto-approve flag from the static `devTools.shellYolo` config so a
117
+ // EXT-12 — seed the runtime auto-approve flag from the static `run_shell_command.yolo` config so a
118
118
  // config that pre-enables auto-approval starts ON, while the shell tool stays gated (see
119
119
  // GthDeepAgent) and therefore remains toggleable (`/auto-approve off`). Resolved per-command,
120
120
  // mirroring where the shell tool is actually emitted; no effect where the tool is ungated.
@@ -1 +1 @@
1
- {"version":3,"file":"GthAgentRunner.js","sourceRoot":"","sources":["../../src/core/GthAgentRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GthAgentRunner.js","sourceRoot":"","sources":["../../src/core/GthAgentRunner.ts"],"names":[],"mappings":"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"}
@@ -210,6 +210,20 @@ export interface McpServerInstruction {
210
210
  /** The server-provided instructions text (trimmed, non-empty). */
211
211
  instructions: string;
212
212
  }
213
+ /**
214
+ * A per-server MCP connection failure captured during the most recent {@link ToolsResolver} call.
215
+ * Recorded when a configured MCP server can't be reached (connection/handshake/auth error), so the
216
+ * failure — otherwise a transient `displayWarning` that scrolls away the moment the Ink TUI takes
217
+ * over the screen — can be re-surfaced persistently in the chrome AND named in the /debug MCP tab
218
+ * (which renders per configured server and would otherwise show only a bare "no tools" line, with
219
+ * no hint that the server never connected). Mirrors {@link McpServerInstruction}.
220
+ */
221
+ export interface McpConnectionFailure {
222
+ /** The configured MCP server name (the key under `config.mcpServers`). */
223
+ server: string;
224
+ /** A concise, human-readable reason (the underlying connection error's message). */
225
+ reason: string;
226
+ }
213
227
  export interface AgentResolvers {
214
228
  resolveTools?: ToolsResolver;
215
229
  cleanupTools?: ToolsCleanup;
@@ -222,4 +236,11 @@ export interface AgentResolvers {
222
236
  * composition treats an absent accessor as "no instructions" (no MCP section is emitted).
223
237
  */
224
238
  getMcpServerInstructions?(): McpServerInstruction[];
239
+ /**
240
+ * The per-server MCP connection failures captured during the most recent {@link ToolsResolver}
241
+ * call (empty when every configured server connected, or none is configured). Optional: resolvers
242
+ * without MCP support omit it, and callers treat an absent accessor as "no failures". Read by the
243
+ * TUI to surface a persistent notice and to annotate the /debug MCP tab.
244
+ */
245
+ getMcpConnectionFailures?(): McpConnectionFailure[];
225
246
  }