@gaunt-sloth/agent 2.0.0-alpha.24 → 2.0.0-alpha.26

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.
@@ -13,19 +13,42 @@
13
13
  * The registry is a plain array so later layers (e.g. extension-registered commands, EXT-5)
14
14
  * can append more entries via {@link createCommandRegistry} without this module changing.
15
15
  */
16
+ import { APPROVAL_RUNG_DESCRIPTIONS, APPROVAL_RUNG_LABELS, APPROVAL_RUNGS, isRatedRung, TOOL_ANNOTATION_HINTS, } from '@gaunt-sloth/core/config.js';
17
+ import { describeApprovalEntry } from '@gaunt-sloth/core/core/approvals/matcher.js';
18
+ import { MOUSE_SELECTION_HINT } from '@gaunt-sloth/core/config/mouse.js';
16
19
  /**
17
20
  * Build the compact, read-only `/config` summary (GS2-1): a handful of the most orienting
18
21
  * resolved-config fields, one per line, with a pointer to `gth config print` for the full view.
19
22
  * Pure and secret-free — it only reads non-sensitive scalar fields (never API keys / the live
20
23
  * llm instance). Used by the App to fill {@link SlashCommandContext.configSummary}.
24
+ *
25
+ * CFG-25 — `filesystem` is a precedence-picked per-command field (GS2-60), so the panel prints the
26
+ * EFFECTIVE value for the running `command`, read from `config.commands[command].filesystem` —
27
+ * where the GS2-60 resolution already baked the correct 4-layer precedence — falling back to the
28
+ * top-level value, exactly the read `getEffectiveConfig` performs (no precedence re-derived here).
29
+ * When the effective and top-level values differ, both are shown
30
+ * (`Filesystem: all (code; top-level: none)`) so the top-level default can never understate what
31
+ * the session can actually do. Of the other precedence-picked fields
32
+ * (`builtInTools`/`allowedTools`/`binaryFormats`), none are printed by this panel, so none can
33
+ * misreport the same way.
21
34
  */
22
- export function formatConfigSummary(config) {
35
+ export function formatConfigSummary(config, command) {
23
36
  const fmt = (v) => typeof v === 'string' ? v : Array.isArray(v) ? JSON.stringify(v) : String(v);
24
37
  const lines = [];
25
38
  lines.push(`Model: ${config.modelDisplayName || 'unknown'}`);
26
39
  lines.push(`Agent backend: ${config.agent?.backend ?? 'lean'}`);
27
- if (config.filesystem !== undefined)
28
- lines.push(`Filesystem: ${fmt(config.filesystem)}`);
40
+ const commandFilesystem = command
41
+ ? config.commands?.[command]?.filesystem
42
+ : undefined;
43
+ const effectiveFilesystem = commandFilesystem !== undefined ? commandFilesystem : config.filesystem;
44
+ if (effectiveFilesystem !== undefined) {
45
+ const differs = commandFilesystem !== undefined &&
46
+ config.filesystem !== undefined &&
47
+ fmt(commandFilesystem) !== fmt(config.filesystem);
48
+ lines.push(differs
49
+ ? `Filesystem: ${fmt(commandFilesystem)} (${command}; top-level: ${fmt(config.filesystem)})`
50
+ : `Filesystem: ${fmt(effectiveFilesystem)}`);
51
+ }
29
52
  if (config.streamOutput !== undefined)
30
53
  lines.push(`Stream output: ${config.streamOutput}`);
31
54
  if (config.useColour !== undefined)
@@ -203,46 +226,284 @@ export function debugToggleNotice(visible) {
203
226
  };
204
227
  }
205
228
  /**
206
- * The notice for the `/auto-approve` toggle (EXT-12), given the RESULTING (post-apply) state.
207
- * Shared so the command reports exactly the state the App applies. ON is rendered 'warn' (yellow)
208
- * because it disables the approval gate for the session; OFF is 'info'.
229
+ * CFG-27 — the notice for a landed approvals RUNG, given the RESULTING (post-apply) posture.
230
+ * Shared so every surface reports exactly the state that was applied, and so the copy can never
231
+ * drift from what the gate actually does.
232
+ *
233
+ * The body of each notice is §10's description, **verbatim** — the one place the ladder is
234
+ * explained to the user, so it must not be paraphrased per surface. §10 rule 4 also fixes the
235
+ * label: the display spelling with spaces, never the kebab-case identifier.
236
+ *
237
+ * `bypass` is the only warn-toned one: it is the single rung with no gate at all. Note what is
238
+ * NOT here — the hardline floor. §8.1 forbids advertising it: descriptions name only protections
239
+ * the user can inspect and extend, which is the deny list.
209
240
  */
210
- export function autoApproveNotice(on) {
211
- return on
212
- ? {
213
- title: 'Auto-approve ON shell commands run without asking',
214
- lines: [
215
- 'run_shell_command will now execute WITHOUT the per-command approval prompt.',
216
- 'Session-scoped only (not saved); run /auto-approve off to require approvals.',
217
- 'The hardline safety floor still blocks catastrophic commands.',
218
- ],
219
- tone: 'warn',
220
- }
221
- : {
222
- title: 'Auto-approve OFF — approvals required',
223
- lines: [
224
- 'run_shell_command will prompt for approval again before each command.',
225
- 'Run /auto-approve (or /auto-approve on) to re-enable session-wide auto-approval.',
241
+ /**
242
+ * TUI-C37 — feedback for `/mouse`, describing the state the session has LANDED on.
243
+ *
244
+ * The selection hint is repeated on every "on" notice rather than shown once at launch, because the
245
+ * moment a user reaches for `/mouse` is exactly the moment they are trying to copy something and
246
+ * finding that dragging no longer selects. Telling them there and then is the difference between a
247
+ * fixed problem and a filed bug.
248
+ */
249
+ export function mouseToggleNotice(enabled) {
250
+ return {
251
+ title: enabled ? 'Mouse on' : 'Mouse off',
252
+ lines: enabled
253
+ ? [
254
+ 'Clickable parts of the interface respond to the mouse, and the wheel scrolls a focused panel.',
255
+ MOUSE_SELECTION_HINT,
256
+ 'Turn it off for this session with /mouse off, or always with useMouse false in your config.',
257
+ ]
258
+ : [
259
+ 'Mouse reporting is off; text selection and copying work exactly as your terminal normally does.',
260
+ 'Turn it back on with /mouse on.',
226
261
  ],
227
- };
262
+ };
263
+ }
264
+ /** TUI-C37 — `/mouse` on a surface with no mouse layer (the plain readline session, the fixture). */
265
+ export function mouseUnavailableNotice() {
266
+ return {
267
+ title: 'Mouse unavailable',
268
+ lines: [
269
+ 'This session has no mouse layer, so there is nothing to turn on or off.',
270
+ 'Mouse input needs an interactive terminal running the TUI.',
271
+ ],
272
+ tone: 'warn',
273
+ };
228
274
  }
229
275
  /**
230
- * EXT-12 — parse the `/auto-approve` argument: no arg (or `toggle`) flips; `on`/`off` (and the
231
- * friendly synonyms `enable`/`disable`, `true`/`false`) set explicitly. Returns `null` for an
232
- * unrecognized argument so the command can render a usage hint instead of guessing.
276
+ * TUI-C37 — parse `/mouse [on|off]`. No argument means "toggle", which is what a bare command name
277
+ * usually means; `null` marks an argument that is neither, so the caller can say so rather than
278
+ * guess. `resolve` needs the current state only for the toggle case.
233
279
  */
234
- export function parseAutoApproveArg(args) {
280
+ export function parseMouseArg(args, current) {
235
281
  if (args.length === 0)
236
- return 'toggle';
282
+ return !current;
237
283
  const arg = args[0].toLowerCase();
238
- if (arg === 'toggle')
239
- return 'toggle';
240
- if (arg === 'on' || arg === 'enable' || arg === 'true')
241
- return 'on';
242
- if (arg === 'off' || arg === 'disable' || arg === 'false')
243
- return 'off';
284
+ if (arg === 'on')
285
+ return true;
286
+ if (arg === 'off')
287
+ return false;
244
288
  return null;
245
289
  }
290
+ export function approvalsRungNotice(approvals) {
291
+ const lines = [APPROVAL_RUNG_DESCRIPTIONS[approvals.rung]];
292
+ if (isRatedRung(approvals.rung) && approvals.rater) {
293
+ lines.push(`The auto-rater runs under the "${approvals.rater}" identity profile.`);
294
+ }
295
+ lines.push('Session-scoped only (not saved); run /approvals to see or change it.');
296
+ return {
297
+ title: `Approvals: ${APPROVAL_RUNG_LABELS[approvals.rung]}`,
298
+ lines,
299
+ tone: approvals.rung === 'bypass' ? 'warn' : 'info',
300
+ };
301
+ }
302
+ /**
303
+ * CFG-27 — the `/approvals` DISPLAY: the rung and its description, the rater profile at the two
304
+ * rated rungs, and the allow/deny list sizes. Pure: the surface reads the live posture from the
305
+ * runner and hands it in.
306
+ *
307
+ * `always: undefined` means the persisted store has not been loaded, and is rendered `—` rather
308
+ * than a misleading `0` — a display must not create the store in order to count it.
309
+ */
310
+ export function approvalsStatusNotice(approvals, allowlist, deny = [], grants = [], trust) {
311
+ const rater = isRatedRung(approvals.rung)
312
+ ? (approvals.rater ?? 'main model')
313
+ : 'not used at this rung';
314
+ return {
315
+ title: `Approvals: ${APPROVAL_RUNG_LABELS[approvals.rung]}`,
316
+ lines: [
317
+ APPROVAL_RUNG_DESCRIPTIONS[approvals.rung],
318
+ `Auto-rater: ${rater}`,
319
+ `Allowed: ${allowlist.session} this session · ${allowlist.always ?? '—'} remembered · Denied: ${deny.length}`,
320
+ ...describeGrants(grants),
321
+ ...(trust ? [describeMcpTrust(trust)] : []),
322
+ `Switch with /approvals ${APPROVAL_RUNGS.join(' | /approvals ')}.`,
323
+ TRUST_USAGE_LINE,
324
+ ],
325
+ tone: approvals.rung === 'bypass' ? 'warn' : 'info',
326
+ };
327
+ }
328
+ /** How many grants `/approvals` lists before it summarizes the rest. */
329
+ const GRANT_DISPLAY_LIMIT = 10;
330
+ /**
331
+ * §3/§4.7.4 — the granted lines of the `/approvals` display: **what** was granted, **when**, and
332
+ * **under which effective annotations**.
333
+ *
334
+ * The annotations are the half that only a tool grant has, and the half §4.7.4 exists for: a grant
335
+ * is an approval of a tool *as annotated*, so a user asked to believe that has to be able to see
336
+ * what they believed. Each entry is rendered by `describeApprovalEntry` — the same one-liner the
337
+ * escalation menu names the grant with and the withdrawal notice names it with.
338
+ *
339
+ * **The heading claims no scope**, because the list spans both: `getGrants` reports the persisted
340
+ * store's `always` grants alongside this session's, and an `always` grant was made in whatever
341
+ * session the user made it in — often not this one. Each line carries its own scope and the instant
342
+ * it was granted, which is where that question is answered.
343
+ */
344
+ function describeGrants(grants) {
345
+ if (grants.length === 0)
346
+ return [];
347
+ const shown = grants.slice(0, GRANT_DISPLAY_LIMIT).map((grant) => {
348
+ const annotations = grant.annotations
349
+ ? `, approved as ${TOOL_ANNOTATION_HINTS.map((hint) => `${hint}=${grant.annotations?.[hint]}`).join(' ')}`
350
+ : '';
351
+ return ` ${describeApprovalEntry(grant.entry)} — ${grant.scope}, granted ${grant.grantedAt}${annotations}`;
352
+ });
353
+ const rest = grants.length - shown.length;
354
+ return [`Granted approvals:`, ...shown, ...(rest > 0 ? [` …and ${rest} more.`] : [])];
355
+ }
356
+ /**
357
+ * §4.7.1 — the one line saying which of each server's annotation hints this session believes.
358
+ *
359
+ * A server is listed even when it believes nothing, because "believes nothing" is the default and
360
+ * the user needs to be able to tell it apart from "this server is not here at all" — the two look
361
+ * identical when only trusted servers are listed, and the second is what a typo produces.
362
+ */
363
+ function describeMcpTrust(trust) {
364
+ const parts = [
365
+ `defaults — ${trust.defaults.length > 0 ? trust.defaults.join(' ') : 'nothing'}`,
366
+ ...trust.servers.map((entry) => `${entry.server} — ${entry.trusted.length > 0 ? entry.trusted.join(' ') : 'nothing'}`),
367
+ ];
368
+ return `MCP annotations believed: ${parts.join(' · ')}`;
369
+ }
370
+ /** The `/approvals trust` half of the usage copy, shown wherever the rung half is. */
371
+ const TRUST_USAGE_LINE = 'Believe an MCP server’s annotation hints with /approvals trust <server> <hint…>, ' +
372
+ 'and stop believing them with /approvals untrust <server> <hint…>.';
373
+ /**
374
+ * CFG-27/EXT-70 — parse the `/approvals` argument: no arg SHOWS the current posture; any of the
375
+ * five kebab-case rung names switches to it; `trust` / `untrust` move which of a server's
376
+ * annotation hints are believed (§4.7.1). Returns `null` for an unrecognized first argument so the
377
+ * command renders a usage hint instead of guessing.
378
+ *
379
+ * The retired `auto` / `ask` spellings are NOT accepted as aliases — this is still alpha, and a
380
+ * silent alias would leave the user believing in a vocabulary the gate no longer has.
381
+ *
382
+ * **Only the subcommand token is lower-cased.** A server key is the user's own `mcpServers` key
383
+ * (§4.7.5) and is case-sensitive, so folding it would name a different server — one that believes
384
+ * nothing, silently, while the notice reported success. A hint is matched case-insensitively
385
+ * against the fixed vocabulary and echoed back in its **canonical** spelling, so `readonlyhint`
386
+ * resolves rather than vanishing, and what lands in the policy is the name the derivation reads.
387
+ */
388
+ export function parseApprovalsArg(args) {
389
+ if (args.length === 0)
390
+ return { show: true };
391
+ const verb = args[0].toLowerCase();
392
+ const rung = APPROVAL_RUNGS.find((r) => r === verb);
393
+ if (rung)
394
+ return { rung };
395
+ if (verb !== 'trust' && verb !== 'untrust')
396
+ return null;
397
+ const believe = verb === 'trust';
398
+ const server = args[1];
399
+ if (!server)
400
+ return { usage: { kind: 'trust-missing-server', believe } };
401
+ const tokens = args.slice(2);
402
+ if (tokens.length === 0)
403
+ return { usage: { kind: 'trust-missing-hints', believe, server } };
404
+ const hints = [];
405
+ for (const token of tokens) {
406
+ const hint = TOOL_ANNOTATION_HINTS.find((h) => h.toLowerCase() === token.toLowerCase());
407
+ if (!hint)
408
+ return { usage: { kind: 'unknown-hint', believe, token } };
409
+ if (!hints.includes(hint))
410
+ hints.push(hint);
411
+ }
412
+ return { trust: { server, hints, believe } };
413
+ }
414
+ /** The verb a notice names an invocation by, so copy never has to branch twice on the same flag. */
415
+ const trustVerb = (believe) => (believe ? 'trust' : 'untrust');
416
+ /**
417
+ * EXT-70 §4.7.1 — usage copy for a `/approvals trust` invocation that named no server, no hint, or
418
+ * a hint that is not one of the four. Each says what is missing and shows the vocabulary, because
419
+ * the hint names are camelCase MCP identifiers nobody guesses.
420
+ */
421
+ export function approvalsTrustUsageNotice(problem) {
422
+ const usage = `Usage: /approvals ${trustVerb(problem.believe)} <server> <hint…> — hints are ${TOOL_ANNOTATION_HINTS.join(', ')}.`;
423
+ const perHint = 'Trust is per hint and per server: you may believe a server’s readOnlyHint while disbelieving ' +
424
+ 'its openWorldHint.';
425
+ if (problem.kind === 'trust-missing-server') {
426
+ return {
427
+ title: `Which server should this ${trustVerb(problem.believe)}?`,
428
+ lines: [
429
+ 'Name the server by the key you gave it under mcpServers in your config — that is the only ' +
430
+ 'identity a server has here.',
431
+ usage,
432
+ perHint,
433
+ ],
434
+ tone: 'warn',
435
+ };
436
+ }
437
+ if (problem.kind === 'trust-missing-hints') {
438
+ return {
439
+ title: `Which hints should this ${trustVerb(problem.believe)} for ${problem.server}?`,
440
+ lines: [`Name at least one hint. Nothing was changed for ${problem.server}.`, usage, perHint],
441
+ tone: 'warn',
442
+ };
443
+ }
444
+ return {
445
+ title: `Not an annotation hint: ${problem.token}`,
446
+ lines: [`Nothing was changed.`, usage, perHint],
447
+ tone: 'warn',
448
+ };
449
+ }
450
+ /**
451
+ * EXT-70 §4.7.1/§4.7.4 — the notice for a landed `/approvals trust` or `/approvals untrust`, built
452
+ * from what the runner RETURNS rather than from what was asked for, so the copy can only describe
453
+ * the trust actually in force.
454
+ *
455
+ * **The withdrawal half states the consequence where the withdrawal happens.** Ceasing to believe a
456
+ * hint pushes it back to the MCP fail-closed default, and for `readOnlyHint`, `openWorldHint` and
457
+ * `destructiveHint` that is a *weakening* — so §4.7.4 will withdraw that server's saved approvals at
458
+ * the next call, with its own notice. That is the correct direction and is not suppressed; what
459
+ * would be wrong is for the user to meet it as a surprise three turns later. `idempotentHint` is the
460
+ * one hint no weakening move names, so withdrawing it invalidates nothing and the line is absent —
461
+ * which is why the line is driven by the runner's `weakening` list rather than by "was anything
462
+ * withdrawn".
463
+ */
464
+ export function approvalsTrustNotice(change) {
465
+ const believed = change.trusted.length > 0
466
+ ? `Believed from ${change.server}: ${change.trusted.join(', ')}.`
467
+ : `Nothing is believed from ${change.server}; every hint takes its fail-closed default.`;
468
+ const lines = [];
469
+ if (change.added.length > 0) {
470
+ lines.push(`Now believing from ${change.server}: ${change.added.join(', ')}.`);
471
+ }
472
+ if (change.removed.length > 0) {
473
+ lines.push(`No longer believing from ${change.server}: ${change.removed.join(', ')}.`);
474
+ }
475
+ if (change.added.length === 0 && change.removed.length === 0) {
476
+ lines.push(`Nothing changed — ${change.server} was already believed on exactly those hints.`);
477
+ }
478
+ lines.push(believed);
479
+ if (change.weakening.length > 0) {
480
+ const withdrawn = change.weakening.join(', ');
481
+ // Precise where it can be, a rule where it cannot. Naming the grants is only honest for the
482
+ // ones this session can actually see weakened right now; for everything else the rule is
483
+ // stated, because promising a specific withdrawal that then does not happen teaches the user
484
+ // to disbelieve the notice.
485
+ lines.push(change.invalidates.length > 0
486
+ ? `Because ${withdrawn} is no longer believed, ${change.server}'s tools describe themselves ` +
487
+ 'as more dangerous than when you approved them. These saved approvals will be ' +
488
+ `withdrawn the next time that tool is called, and you will be asked again: ` +
489
+ `${change.invalidates.join('; ')}.`
490
+ : `Withdrawing ${withdrawn} can make ${change.server}'s tools describe themselves as more ` +
491
+ `dangerous than when you approved them, so any saved approval for ${change.server} ` +
492
+ 'made while it was believed is withdrawn the next time that tool is called, and you ' +
493
+ 'are asked again.');
494
+ }
495
+ if (!change.configured) {
496
+ lines.push(`Note: no server is configured under the key "${change.server}". A server is identified by ` +
497
+ 'your own mcpServers key, so check the spelling — policy written for a key nothing uses ' +
498
+ 'has no effect.');
499
+ }
500
+ lines.push('A believed hint never grants a server more than the same hint grants a built-in tool.', 'Session-scoped only (not saved); run /approvals to see it.');
501
+ return {
502
+ title: `MCP annotations believed: ${change.server}`,
503
+ lines,
504
+ tone: change.weakening.length > 0 ? 'warn' : 'info',
505
+ };
506
+ }
246
507
  /**
247
508
  * TUI-C18 — resolve a `/reasoning` invocation against the committed turns' reasoning (in transcript
248
509
  * order, index 0 = turn 1). Pure, so the whole selection + friendly-notice logic is unit-testable
@@ -341,7 +602,7 @@ export function resolveDebugDumpRedact(resolvedConfig, args) {
341
602
  * opted OUT (raw archive) it is the loud, impossible-to-miss UNSANITIZED warning. Colour follows
342
603
  * DL-8 / the tone rule in maintenance/ux-guidelines.md: the safe, redacted default is normal
343
604
  * feedback (no `tone` ⇒ info), while the raw opt-out is caution and so `tone: 'warn'` (yellow) —
344
- * mirroring how `autoApproveNotice` reserves yellow for the dangerous (gate-off) state. Redaction is
605
+ * mirroring how `approvalsModeNotice` reserves yellow for the dangerous (gate-off) state. Redaction is
345
606
  * best-effort pattern-based, so even the softened note still says review-before-sharing.
346
607
  */
347
608
  export function debugDumpNotice(archiveDir, redacted) {
@@ -406,36 +667,65 @@ export function createCommandRegistry() {
406
667
  run: (ctx) => ({ toggleTools: true, notice: toolsToggleNotice(!ctx.toolsExpanded) }),
407
668
  },
408
669
  {
409
- name: 'auto-approve',
410
- description: 'Auto-approve shell commands this session (/auto-approve on|off; no arg toggles)',
411
- // Available mid-turn so the user can stop being prompted for the run's remaining tool calls
412
- // (EXT-12). The App owns the runner flag, so it applies the change and commits the notice for
413
- // the landed state (the command can't read the flag here).
670
+ name: 'mouse',
671
+ // The `/help` line carries the selection hint too, not just the `/mouse` feedback: someone
672
+ // scanning `/help` because dragging stopped selecting needs the answer where they are looking.
673
+ description: 'Turn terminal mouse reporting on or off (/mouse on|off; no arg toggles). ' +
674
+ 'While on, hold Shift (Option in some macOS terminals) to select text',
675
+ availableDuringRun: true,
676
+ // Available mid-turn deliberately: the reason to reach for this is usually wanting to copy
677
+ // something off the screen, and that urge does not wait for the run to finish.
678
+ run: (ctx, args) => {
679
+ if (ctx.mouseEnabled === undefined)
680
+ return { notice: mouseUnavailableNotice() };
681
+ const target = parseMouseArg(args, ctx.mouseEnabled);
682
+ if (target === null) {
683
+ return {
684
+ notice: {
685
+ title: `Unknown option: ${args[0]}`,
686
+ lines: ['Usage: /mouse [on|off] — with no argument it toggles.'],
687
+ tone: 'warn',
688
+ },
689
+ };
690
+ }
691
+ return { setMouse: target, notice: mouseToggleNotice(target) };
692
+ },
693
+ },
694
+ {
695
+ name: 'approvals',
696
+ description: 'Show or switch the approvals rung ' +
697
+ '(/approvals read-only|write|auto-safe|full-auto|bypass; no arg shows it), ' +
698
+ 'or believe an MCP server’s annotation hints (/approvals trust|untrust <server> <hint…>)',
699
+ // Available mid-turn so the user can change how the run's REMAINING tool calls are handled
700
+ // (EXT-12's reason, generalized to the rung). The surface owns the runner posture, so it
701
+ // applies the change and commits the notice for the landed state.
702
+ //
703
+ // CFG-27 retired `/auto-approve` and `/bypass-approve` with the three-mode vocabulary they
704
+ // named. Neither maps onto the ladder honestly — "auto-approve off" had to mean one of two
705
+ // different rungs — and `/approvals <rung>` says exactly what it will do.
414
706
  availableDuringRun: true,
415
707
  run: (_ctx, args) => {
416
- const action = parseAutoApproveArg(args);
708
+ const action = parseApprovalsArg(args);
417
709
  if (action === null) {
418
710
  return {
419
711
  notice: {
420
712
  title: `Unknown option: ${args[0]}`,
421
713
  lines: [
422
- 'Usage: /auto-approve [on|off] — with no argument it toggles.',
423
- 'When ON, shell commands run this session without the per-command prompt.',
714
+ `Usage: /approvals [${APPROVAL_RUNGS.join('|')}] — with no argument it shows the current rung.`,
715
+ ...APPROVAL_RUNGS.map((rung) => `${rung} ${APPROVAL_RUNG_DESCRIPTIONS[rung].split('. ')[0]}.`),
716
+ TRUST_USAGE_LINE,
424
717
  ],
425
718
  tone: 'warn',
426
719
  },
427
720
  };
428
721
  }
429
- return { autoApprove: action };
722
+ // A malformed `trust`/`untrust` is explained rather than applied: nothing is changed, so
723
+ // the surface has nothing to do and the command answers on its own.
724
+ if ('usage' in action)
725
+ return { notice: approvalsTrustUsageNotice(action.usage) };
726
+ return { approvals: action };
430
727
  },
431
728
  },
432
- {
433
- name: 'yolo',
434
- description: 'Alias for /auto-approve (toggles session-wide shell auto-approval)',
435
- availableDuringRun: true,
436
- // Back-compat alias: a bare toggle, routed through the same auto-approve apply path. EXT-12.
437
- run: () => ({ autoApprove: 'toggle' }),
438
- },
439
729
  {
440
730
  name: 'exit',
441
731
  description: 'Quit the session',
@@ -564,7 +854,7 @@ export function formatHelp(registry) {
564
854
  *
565
855
  * EXT-12 — when `options.duringRun` is set (a turn is streaming), commands that are not marked
566
856
  * {@link SlashCommand.availableDuringRun} are refused with a friendly notice rather than run,
567
- * so mid-turn input can only reach the safe, non-mutating commands (`/auto-approve`, `/verbose`,
857
+ * so mid-turn input can only reach the safe, non-mutating commands (`/approvals`, `/verbose`,
568
858
  * `/debug`, …). `/help` is always allowed.
569
859
  */
570
860
  export function dispatchSlashCommand(parsed, registry, ctx, options = {}) {
@@ -587,7 +877,7 @@ export function dispatchSlashCommand(parsed, registry, ctx, options = {}) {
587
877
  title: `/${command.name} is not available while the agent is working`,
588
878
  lines: [
589
879
  'Wait for the current turn to finish, then run it again.',
590
- 'Commands like /auto-approve, /verbose and /debug do work mid-turn.',
880
+ 'Commands like /approvals, /verbose and /debug do work mid-turn.',
591
881
  ],
592
882
  tone: 'warn',
593
883
  },
@@ -1 +1 @@
1
- {"version":3,"file":"slashCommands.js","sourceRoot":"","sources":["../../src/modules/slashCommands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slashCommands.js","sourceRoot":"","sources":["../../src/modules/slashCommands.ts"],"names":[],"mappings":"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"}
@@ -54,7 +54,7 @@ export default class GthDevToolkit extends BaseToolkit {
54
54
  * 2. output capped with a head/tail window + temp-file spillover,
55
55
  * 3. provider/LLM credentials scrubbed from the child env,
56
56
  * 4. an unbypassable hardline blocklist (refuses catastrophic commands BEFORE
57
- * spawn — fires even when confirmation is bypassed by yolo).
57
+ * spawn — fires even when confirmation is bypassed by approvals.mode: bypass).
58
58
  *
59
59
  * Resolves with a model-facing string on a CLEAN exit (`code === 0`). EXT-20: a non-zero exit
60
60
  * and a timeout-kill instead REJECT with a {@link ShellCommandFailedError} that carries the FULL
@@ -189,7 +189,7 @@ export default class GthDevToolkit extends BaseToolkit {
189
189
  * 2. output capped with a head/tail window + temp-file spillover,
190
190
  * 3. provider/LLM credentials scrubbed from the child env,
191
191
  * 4. an unbypassable hardline blocklist (refuses catastrophic commands BEFORE
192
- * spawn — fires even when confirmation is bypassed by yolo).
192
+ * spawn — fires even when confirmation is bypassed by approvals.mode: bypass).
193
193
  *
194
194
  * Resolves with a model-facing string on a CLEAN exit (`code === 0`). EXT-20: a non-zero exit
195
195
  * and a timeout-kill instead REJECT with a {@link ShellCommandFailedError} that carries the FULL
@@ -212,13 +212,12 @@ export default class GthDevToolkit extends BaseToolkit {
212
212
  kind: 'notice',
213
213
  text: `🔧 Executing ${toolName}: ${command}`,
214
214
  });
215
- // (4) Hardline blocklist — checked here so it fires regardless of yolo,
215
+ // (4) Hardline blocklist — checked here so it fires regardless of the approval mode,
216
216
  // allow-lists, or any confirmation path. Refuse WITHOUT executing.
217
217
  const hardline = checkHardline(command);
218
218
  if (hardline) {
219
219
  const refusal = `Refusing to execute '${command}': blocked by hardline safety policy ` +
220
- `(${hardline.description}). This is a catastrophic, non-recoverable command ` +
221
- `and is blocked even when command confirmation is disabled.`;
220
+ `(${hardline.description}). This is blocked even when command confirmation is disabled.`;
222
221
  // TUI-C31 (a): route through the tool-output channel so the refusal lands in the managed
223
222
  // frame under the TUI (headless still gets displayWarning via the default sink, verbatim).
224
223
  emitToolOutput({ toolCallId, toolName, kind: 'warning', text: `\n⛔ ${refusal}` });