@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.
- package/README.md +1 -1
- package/dist/core/GthDeepAgent.d.ts +3 -3
- package/dist/core/GthDeepAgent.js +33 -33
- package/dist/core/GthDeepAgent.js.map +1 -1
- package/dist/modules/a2a/A2AClientWrapper.d.ts +14 -5
- package/dist/modules/a2a/A2AClientWrapper.js +85 -70
- package/dist/modules/a2a/A2AClientWrapper.js.map +1 -1
- package/dist/modules/interactiveSessionModule.js +104 -24
- package/dist/modules/interactiveSessionModule.js.map +1 -1
- package/dist/modules/slashCommands.d.ts +158 -19
- package/dist/modules/slashCommands.js +343 -53
- package/dist/modules/slashCommands.js.map +1 -1
- package/dist/tools/GthDevToolkit.d.ts +1 -1
- package/dist/tools/GthDevToolkit.js +3 -4
- package/dist/tools/GthDevToolkit.js.map +1 -1
- package/dist/tools/shell/env.js +1 -1
- package/dist/tools/shell/hardline.d.ts +33 -2
- package/dist/tools/shell/hardline.js +525 -40
- package/dist/tools/shell/hardline.js.map +1 -1
- package/package.json +8 -8
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { initConfig } from '@gaunt-sloth/core/config.js';
|
|
2
|
-
import { defaultStatusCallback, display, displayInfo, displayWarning, flushSessionLog, formatInputPrompt, initSessionLogging, stopSessionLogging, } from '@gaunt-sloth/core/utils/consoleUtils.js';
|
|
2
|
+
import { defaultStatusCallback, display, displayInfo, displayLaunchBanner, displayWarning, flushSessionLog, formatInputPrompt, initSessionLogging, stopSessionLogging, } from '@gaunt-sloth/core/utils/consoleUtils.js';
|
|
3
3
|
import { GthAgentRunner } from '@gaunt-sloth/core/core/GthAgentRunner.js';
|
|
4
4
|
import { GthAbstractAgent } from '@gaunt-sloth/core/core/GthAbstractAgent.js';
|
|
5
|
+
import { launchBannerFields, launchBannerText } from '@gaunt-sloth/core/core/launchBanner.js';
|
|
6
|
+
import { buildRejectionMessage } from '@gaunt-sloth/core/core/shell/rejection.js';
|
|
5
7
|
import { writeDebugDump } from '@gaunt-sloth/core/utils/debugDump.js';
|
|
6
8
|
import { appendToFile, getCommandOutputFilePath } from '@gaunt-sloth/core/utils/fileUtils.js';
|
|
7
9
|
import { openConversationSafe, recordSessionSafe, } from '@gaunt-sloth/core/history/recordSession.js';
|
|
8
|
-
import { createInterface, error, exit, getProjectDir, refStdin, setRawMode, stdin as input, stdout as output, } from '@gaunt-sloth/core/utils/systemUtils.js';
|
|
10
|
+
import { createInterface, error, exit, getProjectDir, getUseColour, refStdin, setRawMode, stdin as input, stdout as output, } from '@gaunt-sloth/core/utils/systemUtils.js';
|
|
9
11
|
import { HumanMessage } from '@langchain/core/messages';
|
|
10
12
|
import { MemorySaver } from '@langchain/langgraph';
|
|
11
13
|
import { createResolvers } from '#src/resolvers.js';
|
|
12
14
|
import { resolveAgentFactory } from '#src/core/resolveAgentFactory.js';
|
|
13
|
-
import { createCommandRegistry, dispatchSlashCommand, formatConfigSummary, parseSlashCommand, } from '#src/modules/slashCommands.js';
|
|
15
|
+
import { approvalsRungNotice, approvalsStatusNotice, approvalsTrustNotice, createCommandRegistry, dispatchSlashCommand, formatConfigSummary, parseSlashCommand, } from '#src/modules/slashCommands.js';
|
|
14
16
|
export async function createInteractiveSession(sessionConfig, commandLineConfigOverrides, message) {
|
|
15
17
|
const config = { ...(await initConfig(commandLineConfigOverrides)) };
|
|
16
18
|
const checkpointSaver = new MemorySaver();
|
|
@@ -84,10 +86,28 @@ export async function createInteractiveSession(sessionConfig, commandLineConfigO
|
|
|
84
86
|
: JSON.stringify(pending.args);
|
|
85
87
|
displayWarning(`\nThe agent wants to run a shell command via ${pending.name}:`);
|
|
86
88
|
display(`\n ${commandText}\n`);
|
|
87
|
-
//
|
|
88
|
-
//
|
|
89
|
+
// CFG-27: when the auto-rater escalated this command (rather than approving it), show its
|
|
90
|
+
// outcome + reason before the human decides. §6 makes that explanation mandatory whenever a
|
|
91
|
+
// rating exists; at the unrated rungs there is none and the prompt shows the command alone.
|
|
89
92
|
if (pending.safetyVerdict) {
|
|
90
|
-
displayWarning(`⚠
|
|
93
|
+
displayWarning(`⚠ Auto-rater (${pending.safetyVerdict.outcome}): ${pending.safetyVerdict.reason}`);
|
|
94
|
+
}
|
|
95
|
+
// EXT-71 §3.2 — when a declared `approvals.escalate` entry is what brought this call here,
|
|
96
|
+
// the prompt shows THE ENTRY THAT FIRED. Without it the user is asked about a command their
|
|
97
|
+
// rung would have approved, with nothing on screen tying the question to the line they wrote
|
|
98
|
+
// — which reads as the gate malfunctioning rather than as their own rule working.
|
|
99
|
+
if (pending.escalatedBy) {
|
|
100
|
+
displayWarning(`⚠ Your approvals.escalate list matched this call: ${pending.escalatedBy}`);
|
|
101
|
+
}
|
|
102
|
+
// EXT-71/EXT-70 §6 — the menu MUST show what a sticky choice will store, at the moment of
|
|
103
|
+
// the choice, and it names it in the words the control is written in: the command itself for
|
|
104
|
+
// a shell call, the tool (with its server and host bound) for a tool call, since for a tool
|
|
105
|
+
// "the stored thing is the tool, not the arguments" (§4.7.4). The exact entry follows it, so
|
|
106
|
+
// the user sees the thing they are agreeing to rather than a generalization of it.
|
|
107
|
+
const sticky = pending.grantPreview !== undefined;
|
|
108
|
+
if (sticky) {
|
|
109
|
+
displayInfo(`[s]/[a] will remember ${pending.grantSummary ?? pending.grantPreview}`);
|
|
110
|
+
displayInfo(` stored as ${pending.grantPreview}`);
|
|
91
111
|
}
|
|
92
112
|
setRawMode(false); // ensure typed input is echoed for this confirm
|
|
93
113
|
// EXT-18: wrap the prompt in try/finally so the raw-mode/ref state is not left wedged if
|
|
@@ -96,7 +116,15 @@ export async function createInteractiveSession(sessionConfig, commandLineConfigO
|
|
|
96
116
|
// suspended on the tool interrupt, whose stream-end unref'd stdin).
|
|
97
117
|
let answer;
|
|
98
118
|
try {
|
|
99
|
-
|
|
119
|
+
// §6 — a sticky control is SHOWN only where a sticky grant is actually on offer. Where
|
|
120
|
+
// nothing would be remembered — a `catastrophic` outcome (§4.2), a command that does not
|
|
121
|
+
// statically resolve, a tool call nothing can attribute — the menu simply does not offer
|
|
122
|
+
// the choice, because "a control that is offered and then refused reads as a bug rather
|
|
123
|
+
// than as a policy". Hiding it, never disabling it: a disabled control invites the user to
|
|
124
|
+
// hunt for why.
|
|
125
|
+
answer = (await askLine(formatInputPrompt(sticky
|
|
126
|
+
? 'Approve? [o]nce / [s]ession / [a]lways / [N]o: '
|
|
127
|
+
: 'Approve? [o]nce / [N]o: ')))
|
|
100
128
|
.trim()
|
|
101
129
|
.toLowerCase();
|
|
102
130
|
}
|
|
@@ -106,16 +134,47 @@ export async function createInteractiveSession(sessionConfig, commandLineConfigO
|
|
|
106
134
|
if (answer === 'o' || answer === 'once') {
|
|
107
135
|
return { type: 'approve', scope: 'once' };
|
|
108
136
|
}
|
|
137
|
+
// CFG-28 (§4.2) — a `catastrophic` approval is NEVER sticky. The runner clamps the
|
|
138
|
+
// allow-list write, so `[s]` and `[a]` grant exactly this one invocation and the next
|
|
139
|
+
// variant prompts again. The decision is still returned unchanged: that clamp is the single
|
|
140
|
+
// chokepoint, in core, so the policy does not depend on which surface asked. What must change
|
|
141
|
+
// HERE is only the confirmation — §6 rejects "a control that is offered and then refused",
|
|
142
|
+
// and a confirmation that promises a persistence the gate has already discarded is that same
|
|
143
|
+
// failure with the evidence hidden. Withdrawing the key itself is [[TUI-C26]]'s.
|
|
144
|
+
// The confirmation must name what actually happened, and the condition for that is the SAME
|
|
145
|
+
// one that decides whether the control was shown: no grant on offer means no grant written,
|
|
146
|
+
// whatever key was typed. `catastrophic` keeps its own wording because the reason matters to
|
|
147
|
+
// the reader, but it is one case of the general one rather than the only one — the other
|
|
148
|
+
// cases (a command that does not statically resolve, an unattributable tool call) used to be
|
|
149
|
+
// confirmed as remembered while the runner stored nothing.
|
|
150
|
+
const notRemembered = pending.safetyVerdict?.outcome === 'catastrophic'
|
|
151
|
+
? 'Approved this once — a command rated catastrophic is never remembered, so the next ' +
|
|
152
|
+
'one like it will ask again.'
|
|
153
|
+
: 'Approved this once — there is nothing about this call that can be remembered, so the ' +
|
|
154
|
+
'next one like it will ask again.';
|
|
109
155
|
if (answer === 's' || answer === 'session') {
|
|
110
|
-
displayInfo('Approved
|
|
156
|
+
displayInfo(sticky ? 'Approved — this exact command will not ask again this session.' : notRemembered);
|
|
111
157
|
return { type: 'approve', scope: 'session' };
|
|
112
158
|
}
|
|
113
159
|
if (answer === 'a' || answer === 'always') {
|
|
114
|
-
displayInfo(
|
|
160
|
+
displayInfo(sticky
|
|
161
|
+
? 'Approved and remembered — this exact command is saved to the project allow-list.'
|
|
162
|
+
: notRemembered);
|
|
115
163
|
return { type: 'approve', scope: 'always' };
|
|
116
164
|
}
|
|
117
165
|
displayInfo('Command rejected.');
|
|
118
|
-
|
|
166
|
+
// EXT-58 (§7): the model is told the moves it has — re-call with a justification, call a
|
|
167
|
+
// different command, or ask the user — and, when the rater named an already-granted
|
|
168
|
+
// alternative (§4.4), that tool plus the clause saying it needs no approval. A bare "user
|
|
169
|
+
// rejected" leaves the model to guess, which it does by repeating itself or giving up.
|
|
170
|
+
return {
|
|
171
|
+
type: 'reject',
|
|
172
|
+
message: buildRejectionMessage({
|
|
173
|
+
source: 'user',
|
|
174
|
+
toolName: pending.name,
|
|
175
|
+
verdict: pending.safetyVerdict,
|
|
176
|
+
}),
|
|
177
|
+
};
|
|
119
178
|
});
|
|
120
179
|
if (logFileName) {
|
|
121
180
|
displayInfo(`${sessionConfig.mode} session will be logged to ${logFileName}\n`);
|
|
@@ -205,7 +264,9 @@ export async function createInteractiveSession(sessionConfig, commandLineConfigO
|
|
|
205
264
|
// below rather than vanishing from the catalog.
|
|
206
265
|
toolsExpanded: false,
|
|
207
266
|
debugVisible: false,
|
|
208
|
-
|
|
267
|
+
// CFG-25 — pass the session command so the panel prints the EFFECTIVE per-command
|
|
268
|
+
// filesystem value (e.g. `all` for `code`), not the top-level default.
|
|
269
|
+
configSummary: formatConfigSummary(config, sessionConfig.mode),
|
|
209
270
|
// GS2-56 — `/debug-dump` is now available here. This surface keeps no on-screen
|
|
210
271
|
// transcript array, so `transcript` is empty; the real as-sent history lands in the
|
|
211
272
|
// archive's model-messages.json from the always-on snapshot (that is the point).
|
|
@@ -217,21 +278,25 @@ export async function createInteractiveSession(sessionConfig, commandLineConfigO
|
|
|
217
278
|
await endSession();
|
|
218
279
|
break;
|
|
219
280
|
}
|
|
220
|
-
if (result.
|
|
221
|
-
//
|
|
222
|
-
//
|
|
223
|
-
//
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
281
|
+
if (result.approvals) {
|
|
282
|
+
// CFG-27 — `/approvals <rung>` sets the session rung at the approval-decision layer
|
|
283
|
+
// (the runner posture). Session-scoped, reversible, never persisted. With no argument
|
|
284
|
+
// the command DISPLAYS the posture instead of changing it.
|
|
285
|
+
if ('show' in result.approvals) {
|
|
286
|
+
printNotice(approvalsStatusNotice(runner.getSessionApprovals(), runner.getAllowlistCounts(), runner.getDenylist(), runner.getGrants(), runner.getMcpAnnotationTrust()));
|
|
287
|
+
}
|
|
288
|
+
else if ('trust' in result.approvals) {
|
|
289
|
+
// EXT-70 §4.7.1 — believe (or stop believing) specific hints from one server, for
|
|
290
|
+
// this session. The notice is built from what the runner RETURNS, so it can only
|
|
291
|
+
// describe the trust actually in force — including §4.7.4's consequence when the
|
|
292
|
+
// withdrawal is a weakening.
|
|
293
|
+
const { server, hints, believe } = result.approvals.trust;
|
|
294
|
+
printNotice(approvalsTrustNotice(runner.setMcpAnnotationTrust(server, hints, believe)));
|
|
232
295
|
}
|
|
233
296
|
else {
|
|
234
|
-
|
|
297
|
+
runner.setSessionApprovalRung(result.approvals.rung);
|
|
298
|
+
// Report the posture the runner actually LANDED on, not the one requested.
|
|
299
|
+
printNotice(approvalsRungNotice(runner.getSessionApprovals()));
|
|
235
300
|
}
|
|
236
301
|
}
|
|
237
302
|
else if (result.clearTranscript ||
|
|
@@ -287,6 +352,21 @@ export async function createInteractiveSession(sessionConfig, commandLineConfigO
|
|
|
287
352
|
await processMessage(message);
|
|
288
353
|
}
|
|
289
354
|
else {
|
|
355
|
+
// TUI-C33 — the ASCII-art launch banner, ABOVE the untouched ready message. Only on this
|
|
356
|
+
// branch: an `-m` run goes straight to work, which is the readline twin of the TUI hiding
|
|
357
|
+
// its intro when it mounts with an initialMessage.
|
|
358
|
+
//
|
|
359
|
+
// Gated on `stdout.isTTY` (as the TUI's viewport bump is) so piped, redirected and non-TTY
|
|
360
|
+
// runs stay clean, and on `getUseColour()` for the escapes, so a monochrome session degrades
|
|
361
|
+
// the banner to plain text instead of dropping it. `stdout.columns` is what every field is
|
|
362
|
+
// truncated against — see launchBanner.ts on why a wrapped line would shatter the art.
|
|
363
|
+
if (output.isTTY) {
|
|
364
|
+
displayLaunchBanner(launchBannerText({
|
|
365
|
+
...launchBannerFields(config.modelDisplayName, config.modelProviderType),
|
|
366
|
+
columns: output.columns,
|
|
367
|
+
colour: getUseColour(),
|
|
368
|
+
}));
|
|
369
|
+
}
|
|
290
370
|
display(sessionConfig.readyMessage);
|
|
291
371
|
displayInfo(sessionConfig.exitMessage);
|
|
292
372
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactiveSessionModule.js","sourceRoot":"","sources":["../../src/modules/interactiveSessionModule.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interactiveSessionModule.js","sourceRoot":"","sources":["../../src/modules/interactiveSessionModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,8 @@
|
|
|
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 type { ApprovalRung, McpAnnotationTrustChange, McpAnnotationTrustView, ResolvedApprovals, ToolAnnotationHint } from '@gaunt-sloth/core/config.js';
|
|
17
|
+
import type { ApprovalGrant } from '@gaunt-sloth/core/core/approvals/grants.js';
|
|
16
18
|
/** Read-only session context a command may surface (e.g. `/status`, `/model`). */
|
|
17
19
|
export interface SlashCommandContext {
|
|
18
20
|
mode: string;
|
|
@@ -23,6 +25,12 @@ export interface SlashCommandContext {
|
|
|
23
25
|
toolsExpanded: boolean;
|
|
24
26
|
/** Whether the docked debug panel is currently shown (drives `/debug` copy). */
|
|
25
27
|
debugVisible: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* TUI-C37 — whether terminal mouse reporting is currently on (drives `/mouse` copy). Undefined on
|
|
30
|
+
* surfaces that have no mouse layer at all, where `/mouse` reports itself unavailable rather than
|
|
31
|
+
* claiming a state it cannot change.
|
|
32
|
+
*/
|
|
33
|
+
mouseEnabled?: boolean;
|
|
26
34
|
/**
|
|
27
35
|
* Pre-rendered, secret-free summary lines of the resolved config, surfaced read-only by
|
|
28
36
|
* `/config` (GS2-1). The App builds these once from the resolved config (see
|
|
@@ -121,8 +129,18 @@ export interface ConfigSummaryInput {
|
|
|
121
129
|
* resolved-config fields, one per line, with a pointer to `gth config print` for the full view.
|
|
122
130
|
* Pure and secret-free — it only reads non-sensitive scalar fields (never API keys / the live
|
|
123
131
|
* llm instance). Used by the App to fill {@link SlashCommandContext.configSummary}.
|
|
132
|
+
*
|
|
133
|
+
* CFG-25 — `filesystem` is a precedence-picked per-command field (GS2-60), so the panel prints the
|
|
134
|
+
* EFFECTIVE value for the running `command`, read from `config.commands[command].filesystem` —
|
|
135
|
+
* where the GS2-60 resolution already baked the correct 4-layer precedence — falling back to the
|
|
136
|
+
* top-level value, exactly the read `getEffectiveConfig` performs (no precedence re-derived here).
|
|
137
|
+
* When the effective and top-level values differ, both are shown
|
|
138
|
+
* (`Filesystem: all (code; top-level: none)`) so the top-level default can never understate what
|
|
139
|
+
* the session can actually do. Of the other precedence-picked fields
|
|
140
|
+
* (`builtInTools`/`allowedTools`/`binaryFormats`), none are printed by this panel, so none can
|
|
141
|
+
* misreport the same way.
|
|
124
142
|
*/
|
|
125
|
-
export declare function formatConfigSummary(config: ConfigSummaryInput): string[];
|
|
143
|
+
export declare function formatConfigSummary(config: ConfigSummaryInput, command?: string): string[];
|
|
126
144
|
/**
|
|
127
145
|
* The `/config` notice, from the pre-rendered summary lines (or an unavailable fallback).
|
|
128
146
|
*
|
|
@@ -174,13 +192,34 @@ export interface SlashCommandResult {
|
|
|
174
192
|
/** When true, the component toggles tool-call panels between collapsed and expanded. */
|
|
175
193
|
toggleTools?: boolean;
|
|
176
194
|
/**
|
|
177
|
-
*
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
* flag — so the App owns the actual apply + the resulting-state notice (mirroring how `/verbose`
|
|
181
|
-
* / `/debug` defer their state-aware copy to the App).
|
|
195
|
+
* TUI-C37 — the state `/mouse` asks the surface to move terminal mouse reporting to. The command
|
|
196
|
+
* stays pure (it cannot write escape sequences), so the App applies it and owns the actual
|
|
197
|
+
* enable/disable, the same division `/approvals` uses for the runner's posture.
|
|
182
198
|
*/
|
|
183
|
-
|
|
199
|
+
setMouse?: boolean;
|
|
200
|
+
/**
|
|
201
|
+
* CFG-27 — a requested action from `/approvals`. `{ show: true }` asks the surface to DISPLAY
|
|
202
|
+
* the current posture; `{ rung }` asks it to switch the session to that rung. The command itself
|
|
203
|
+
* stays pure — it cannot read the runner's posture — so the surface owns the apply + the
|
|
204
|
+
* resulting-state notice (mirroring how `/verbose` / `/debug` defer their state-aware copy to
|
|
205
|
+
* the App).
|
|
206
|
+
*
|
|
207
|
+
* There is deliberately NO `toggle` action: with five ordered rungs a flip has no honest
|
|
208
|
+
* meaning, which is also why `/auto-approve` and `/bypass-approve` were retired with the
|
|
209
|
+
* three-mode vocabulary that gave them their names.
|
|
210
|
+
*
|
|
211
|
+
* EXT-70 adds `{ trust }` — start or stop believing specific annotation hints from one MCP
|
|
212
|
+
* server (§4.7.1). It takes the same route for the same reason: the command cannot read or write
|
|
213
|
+
* the runner's posture, so it states the request and the surface applies it and reports what
|
|
214
|
+
* landed.
|
|
215
|
+
*/
|
|
216
|
+
approvals?: {
|
|
217
|
+
show: true;
|
|
218
|
+
} | {
|
|
219
|
+
rung: ApprovalRung;
|
|
220
|
+
} | {
|
|
221
|
+
trust: McpTrustRequest;
|
|
222
|
+
};
|
|
184
223
|
/**
|
|
185
224
|
* TUI-C18 — a committed turn's thinking to REPRINT into the transcript (the `/reasoning` command).
|
|
186
225
|
* Committed reasoning is frozen in Ink's `<Static>` and can never re-expand in place, so instead of
|
|
@@ -205,8 +244,8 @@ export interface SlashCommand {
|
|
|
205
244
|
/**
|
|
206
245
|
* EXT-12 — whether this command may be dispatched WHILE a turn is streaming ("during
|
|
207
246
|
* inference"). Defaults to false: most commands are idle-only. The read-only / session-toggle
|
|
208
|
-
* commands (e.g. `/
|
|
209
|
-
* can
|
|
247
|
+
* commands (e.g. `/approvals`, `/verbose`, `/debug`, `/help`, `/model`) set this so the user
|
|
248
|
+
* can change the approval mode or inspect state mid-turn without interrupting the run. Commands that
|
|
210
249
|
* mutate the transcript or thread (`/clear`) or end the session (`/exit`) stay idle-only.
|
|
211
250
|
*/
|
|
212
251
|
availableDuringRun?: boolean;
|
|
@@ -263,17 +302,117 @@ export declare function toolsToggleNotice(expanded: boolean): SlashCommandNotice
|
|
|
263
302
|
*/
|
|
264
303
|
export declare function debugToggleNotice(visible: boolean): SlashCommandNotice;
|
|
265
304
|
/**
|
|
266
|
-
*
|
|
267
|
-
* Shared so
|
|
268
|
-
*
|
|
305
|
+
* CFG-27 — the notice for a landed approvals RUNG, given the RESULTING (post-apply) posture.
|
|
306
|
+
* Shared so every surface reports exactly the state that was applied, and so the copy can never
|
|
307
|
+
* drift from what the gate actually does.
|
|
308
|
+
*
|
|
309
|
+
* The body of each notice is §10's description, **verbatim** — the one place the ladder is
|
|
310
|
+
* explained to the user, so it must not be paraphrased per surface. §10 rule 4 also fixes the
|
|
311
|
+
* label: the display spelling with spaces, never the kebab-case identifier.
|
|
312
|
+
*
|
|
313
|
+
* `bypass` is the only warn-toned one: it is the single rung with no gate at all. Note what is
|
|
314
|
+
* NOT here — the hardline floor. §8.1 forbids advertising it: descriptions name only protections
|
|
315
|
+
* the user can inspect and extend, which is the deny list.
|
|
316
|
+
*/
|
|
317
|
+
/**
|
|
318
|
+
* TUI-C37 — feedback for `/mouse`, describing the state the session has LANDED on.
|
|
319
|
+
*
|
|
320
|
+
* The selection hint is repeated on every "on" notice rather than shown once at launch, because the
|
|
321
|
+
* moment a user reaches for `/mouse` is exactly the moment they are trying to copy something and
|
|
322
|
+
* finding that dragging no longer selects. Telling them there and then is the difference between a
|
|
323
|
+
* fixed problem and a filed bug.
|
|
324
|
+
*/
|
|
325
|
+
export declare function mouseToggleNotice(enabled: boolean): SlashCommandNotice;
|
|
326
|
+
/** TUI-C37 — `/mouse` on a surface with no mouse layer (the plain readline session, the fixture). */
|
|
327
|
+
export declare function mouseUnavailableNotice(): SlashCommandNotice;
|
|
328
|
+
/**
|
|
329
|
+
* TUI-C37 — parse `/mouse [on|off]`. No argument means "toggle", which is what a bare command name
|
|
330
|
+
* usually means; `null` marks an argument that is neither, so the caller can say so rather than
|
|
331
|
+
* guess. `resolve` needs the current state only for the toggle case.
|
|
332
|
+
*/
|
|
333
|
+
export declare function parseMouseArg(args: string[], current: boolean): boolean | null;
|
|
334
|
+
export declare function approvalsRungNotice(approvals: ResolvedApprovals): SlashCommandNotice;
|
|
335
|
+
/**
|
|
336
|
+
* CFG-27 — the `/approvals` DISPLAY: the rung and its description, the rater profile at the two
|
|
337
|
+
* rated rungs, and the allow/deny list sizes. Pure: the surface reads the live posture from the
|
|
338
|
+
* runner and hands it in.
|
|
339
|
+
*
|
|
340
|
+
* `always: undefined` means the persisted store has not been loaded, and is rendered `—` rather
|
|
341
|
+
* than a misleading `0` — a display must not create the store in order to count it.
|
|
342
|
+
*/
|
|
343
|
+
export declare function approvalsStatusNotice(approvals: ResolvedApprovals, allowlist: {
|
|
344
|
+
session: number;
|
|
345
|
+
always: number | undefined;
|
|
346
|
+
}, deny?: readonly string[], grants?: readonly ApprovalGrant[], trust?: McpAnnotationTrustView): SlashCommandNotice;
|
|
347
|
+
/** EXT-70 §4.7.1 — a request to start or stop believing specific hints from one server. */
|
|
348
|
+
export interface McpTrustRequest {
|
|
349
|
+
/** §4.7.5 — the user's own `mcpServers` config key, case-sensitive. */
|
|
350
|
+
server: string;
|
|
351
|
+
/** The hints this request moves, in canonical spelling. Never empty. */
|
|
352
|
+
hints: ToolAnnotationHint[];
|
|
353
|
+
/** `true` to believe them, `false` to stop. */
|
|
354
|
+
believe: boolean;
|
|
355
|
+
}
|
|
356
|
+
/** Something wrong with a `/approvals trust` invocation that the command explains rather than guesses at. */
|
|
357
|
+
export type ApprovalsUsageProblem = {
|
|
358
|
+
kind: 'trust-missing-server';
|
|
359
|
+
believe: boolean;
|
|
360
|
+
} | {
|
|
361
|
+
kind: 'trust-missing-hints';
|
|
362
|
+
believe: boolean;
|
|
363
|
+
server: string;
|
|
364
|
+
} | {
|
|
365
|
+
kind: 'unknown-hint';
|
|
366
|
+
believe: boolean;
|
|
367
|
+
token: string;
|
|
368
|
+
};
|
|
369
|
+
/** What `/approvals` resolved to, or `null` when the first argument names nothing it knows. */
|
|
370
|
+
export type ApprovalsAction = {
|
|
371
|
+
show: true;
|
|
372
|
+
} | {
|
|
373
|
+
rung: ApprovalRung;
|
|
374
|
+
} | {
|
|
375
|
+
trust: McpTrustRequest;
|
|
376
|
+
} | {
|
|
377
|
+
usage: ApprovalsUsageProblem;
|
|
378
|
+
};
|
|
379
|
+
/**
|
|
380
|
+
* CFG-27/EXT-70 — parse the `/approvals` argument: no arg SHOWS the current posture; any of the
|
|
381
|
+
* five kebab-case rung names switches to it; `trust` / `untrust` move which of a server's
|
|
382
|
+
* annotation hints are believed (§4.7.1). Returns `null` for an unrecognized first argument so the
|
|
383
|
+
* command renders a usage hint instead of guessing.
|
|
384
|
+
*
|
|
385
|
+
* The retired `auto` / `ask` spellings are NOT accepted as aliases — this is still alpha, and a
|
|
386
|
+
* silent alias would leave the user believing in a vocabulary the gate no longer has.
|
|
387
|
+
*
|
|
388
|
+
* **Only the subcommand token is lower-cased.** A server key is the user's own `mcpServers` key
|
|
389
|
+
* (§4.7.5) and is case-sensitive, so folding it would name a different server — one that believes
|
|
390
|
+
* nothing, silently, while the notice reported success. A hint is matched case-insensitively
|
|
391
|
+
* against the fixed vocabulary and echoed back in its **canonical** spelling, so `readonlyhint`
|
|
392
|
+
* resolves rather than vanishing, and what lands in the policy is the name the derivation reads.
|
|
393
|
+
*/
|
|
394
|
+
export declare function parseApprovalsArg(args: string[]): ApprovalsAction | null;
|
|
395
|
+
/**
|
|
396
|
+
* EXT-70 §4.7.1 — usage copy for a `/approvals trust` invocation that named no server, no hint, or
|
|
397
|
+
* a hint that is not one of the four. Each says what is missing and shows the vocabulary, because
|
|
398
|
+
* the hint names are camelCase MCP identifiers nobody guesses.
|
|
269
399
|
*/
|
|
270
|
-
export declare function
|
|
400
|
+
export declare function approvalsTrustUsageNotice(problem: ApprovalsUsageProblem): SlashCommandNotice;
|
|
271
401
|
/**
|
|
272
|
-
* EXT-
|
|
273
|
-
*
|
|
274
|
-
*
|
|
402
|
+
* EXT-70 §4.7.1/§4.7.4 — the notice for a landed `/approvals trust` or `/approvals untrust`, built
|
|
403
|
+
* from what the runner RETURNS rather than from what was asked for, so the copy can only describe
|
|
404
|
+
* the trust actually in force.
|
|
405
|
+
*
|
|
406
|
+
* **The withdrawal half states the consequence where the withdrawal happens.** Ceasing to believe a
|
|
407
|
+
* hint pushes it back to the MCP fail-closed default, and for `readOnlyHint`, `openWorldHint` and
|
|
408
|
+
* `destructiveHint` that is a *weakening* — so §4.7.4 will withdraw that server's saved approvals at
|
|
409
|
+
* the next call, with its own notice. That is the correct direction and is not suppressed; what
|
|
410
|
+
* would be wrong is for the user to meet it as a surprise three turns later. `idempotentHint` is the
|
|
411
|
+
* one hint no weakening move names, so withdrawing it invalidates nothing and the line is absent —
|
|
412
|
+
* which is why the line is driven by the runner's `weakening` list rather than by "was anything
|
|
413
|
+
* withdrawn".
|
|
275
414
|
*/
|
|
276
|
-
export declare function
|
|
415
|
+
export declare function approvalsTrustNotice(change: McpAnnotationTrustChange): SlashCommandNotice;
|
|
277
416
|
/**
|
|
278
417
|
* TUI-C18 — resolve a `/reasoning` invocation against the committed turns' reasoning (in transcript
|
|
279
418
|
* order, index 0 = turn 1). Pure, so the whole selection + friendly-notice logic is unit-testable
|
|
@@ -302,7 +441,7 @@ export declare function resolveDebugDumpRedact(resolvedConfig: unknown, args: st
|
|
|
302
441
|
* opted OUT (raw archive) it is the loud, impossible-to-miss UNSANITIZED warning. Colour follows
|
|
303
442
|
* DL-8 / the tone rule in maintenance/ux-guidelines.md: the safe, redacted default is normal
|
|
304
443
|
* feedback (no `tone` ⇒ info), while the raw opt-out is caution and so `tone: 'warn'` (yellow) —
|
|
305
|
-
* mirroring how `
|
|
444
|
+
* mirroring how `approvalsModeNotice` reserves yellow for the dangerous (gate-off) state. Redaction is
|
|
306
445
|
* best-effort pattern-based, so even the softened note still says review-before-sharing.
|
|
307
446
|
*/
|
|
308
447
|
export declare function debugDumpNotice(archiveDir: string, redacted: boolean): SlashCommandNotice;
|
|
@@ -320,7 +459,7 @@ export declare function formatHelp(registry: SlashCommand[]): SlashCommandNotice
|
|
|
320
459
|
*
|
|
321
460
|
* EXT-12 — when `options.duringRun` is set (a turn is streaming), commands that are not marked
|
|
322
461
|
* {@link SlashCommand.availableDuringRun} are refused with a friendly notice rather than run,
|
|
323
|
-
* so mid-turn input can only reach the safe, non-mutating commands (`/
|
|
462
|
+
* so mid-turn input can only reach the safe, non-mutating commands (`/approvals`, `/verbose`,
|
|
324
463
|
* `/debug`, …). `/help` is always allowed.
|
|
325
464
|
*/
|
|
326
465
|
export declare function dispatchSlashCommand(parsed: ParsedSlashCommand, registry: SlashCommand[], ctx: SlashCommandContext, options?: {
|