@xmoon76/dsh-pi-tui 0.3.3 → 0.3.4
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 +55 -16
- package/README.zh-CN.md +46 -13
- package/dist/builtins.mjs +1 -1
- package/dist/extensions.mjs +1 -1
- package/dist/index.d.mts +15 -2
- package/dist/index.mjs +1 -1
- package/dist/{src-Txng8gIG.mjs → src-B1uP5j0d.mjs} +4456 -915
- package/package.json +4 -3
- package/scripts/client-boundary-baseline.json +82 -0
- package/scripts/client-boundary-gate.mjs +165 -0
- package/scripts/pre-push-stages.mjs +116 -0
package/README.md
CHANGED
|
@@ -338,9 +338,11 @@ the Advanced/Unstable roadmap).
|
|
|
338
338
|
searchable list (type to filter rows by kind/label/status — `subagent`,
|
|
339
339
|
`bash`, `failed`…). Subagent rows show their mode as part of the label
|
|
340
340
|
(`subagent · <label> · continuable` / `… · one-shot`) — you know before
|
|
341
|
-
Enter whether the viewer will be interactive
|
|
342
|
-
|
|
343
|
-
|
|
341
|
+
Enter whether the viewer will be interactive — and the durable descendant
|
|
342
|
+
tree renders as indented rows (`├─` per depth), so a subagent's subagent
|
|
343
|
+
is visible here without entering its parent. `Enter` opens the detail
|
|
344
|
+
(child viewer for a subagent — nested rows read-only — status viewer for
|
|
345
|
+
a job), `i` interrupts the selected subagent. `/subagents` is an alias.
|
|
344
346
|
- `/yolo` — switch to `danger-full-access` (alias of `/permission danger-full-access`).
|
|
345
347
|
- `/status` — show the current session's stats and identity (turn counts,
|
|
346
348
|
token usage, workspace, installed dsh version).
|
|
@@ -370,6 +372,23 @@ the Advanced/Unstable roadmap).
|
|
|
370
372
|
draft, if any) into the running turn at once; otherwise sends the draft
|
|
371
373
|
alone. An idle agent starts a fresh turn with everything.
|
|
372
374
|
- `Alt+↑` — dequeue: pull every queued message back into the editor draft.
|
|
375
|
+
- `Ctrl+O` — expand/collapse the most recent turns' collapsible entries
|
|
376
|
+
(tool and system cards). The same master switch expands the local
|
|
377
|
+
`!`/`!!` shell cards (see Local shell below). In Focus Mode (regular
|
|
378
|
+
surface) it derives a full reveal of the recent Thoughts; the
|
|
379
|
+
fullscreen Focus secondary cards are mouse-owned and Ctrl+O does not
|
|
380
|
+
expand them. Thinking detail has its own owner — see `Alt+T`.
|
|
381
|
+
- `Alt+T` — collapse/expand every Thinking block (compact: the latest
|
|
382
|
+
reasoning line as a preview; full: the whole reasoning body). Thinking
|
|
383
|
+
blocks are disclosure, never visibility: a block stays present
|
|
384
|
+
whenever the model produced reasoning and the current projection
|
|
385
|
+
contains it, in Focus ON/OFF and both surfaces alike. In fullscreen a
|
|
386
|
+
click toggles a single Thinking card on top of this bulk level, and
|
|
387
|
+
`Ctrl+O` never touches Thinking detail (it owns only tool/system
|
|
388
|
+
cards). `/settings` → `Thinking detail` is the same state.
|
|
389
|
+
- `Alt+K` — dismiss the SETTLED local `!`/`!!` shell cards from the live
|
|
390
|
+
view; a RUNNING card is never dismissed and the process is not
|
|
391
|
+
cancelled (Esc owns that). See Local shell below.
|
|
373
392
|
- `Ctrl+T` — toggle the full todo list (in fullscreen, clicking the panel
|
|
374
393
|
expands it to the full list and back); the dock above the editor always
|
|
375
394
|
shows the todo summary and background tasks, and queued input renders
|
|
@@ -379,20 +398,26 @@ the Advanced/Unstable roadmap).
|
|
|
379
398
|
fallback otherwise). The literal `@path` is submitted and the model reads
|
|
380
399
|
the file itself. With background work running, an empty editor's `↓` opens
|
|
381
400
|
the same merged task browser as `/tasks`:
|
|
382
|
-
- **subagent rows** (
|
|
383
|
-
`continuable` or `one-shot
|
|
384
|
-
a
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
401
|
+
- **subagent rows** (the durable descendant tree, labeled with their
|
|
402
|
+
catalog mode: `continuable` or `one-shot`, indented by depth with a
|
|
403
|
+
`├─` connector — a subagent's subagent is visible right here, in
|
|
404
|
+
stable pre-order) — `Enter` opens the child's viewer:
|
|
405
|
+
a **direct (depth-1) continuable** child's viewer is **interactive**
|
|
406
|
+
— type a follow-up and press Enter, and it is delivered as the
|
|
407
|
+
child's NEXT turn through `ctx.subagents.followup` (FIFO — a running
|
|
408
|
+
child is never interrupted or steered; an inactive child cold-resumes
|
|
388
409
|
automatically), while `Esc` returns to your session. A **one-shot**
|
|
389
|
-
child's viewer stays **read-only
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
410
|
+
child's viewer stays **read-only**, and so does any **nested
|
|
411
|
+
(depth > 1)** descendant — even a continuable one (`<mode> · nested ·
|
|
412
|
+
read-only from this parent`, the real mode always shown): the root
|
|
413
|
+
may only continue its own direct children. A FINISHED one-shot child stays in the
|
|
414
|
+
browser — `inactive` is live-store presence, not an outcome — and
|
|
415
|
+
Enter opens its persisted transcript. While a viewer is open the
|
|
416
|
+
footer switches to the CHILD's own identity (`[subagent ·
|
|
417
|
+
continuable]` badge, label, activity, cwd, the child's own
|
|
418
|
+
turns/steps/stats) and returns to your session's on exit. `i`
|
|
419
|
+
interrupts the selected child. They never register job records, so
|
|
420
|
+
this browser is their only glanceable home.
|
|
396
421
|
- **job rows** (bash and one-shot subagent jobs) — `Enter` shows the status
|
|
397
422
|
viewer only: a bash job's output read cursor belongs to the model's
|
|
398
423
|
`job_output`, and a one-shot subagent job record carries no child session
|
|
@@ -420,6 +445,20 @@ user message (text, slash command, `Ctrl+S` steer, or `!` shell) starts it
|
|
|
420
445
|
lazily. `--session <id>` still resumes immediately, and a local `!!` command
|
|
421
446
|
runs without needing a session.
|
|
422
447
|
|
|
448
|
+
## Local shell (`!` / `!!`)
|
|
449
|
+
|
|
450
|
+
`! command` runs the command locally and submits the completed command +
|
|
451
|
+
output to the session as an ordinary user message; `!! command` runs purely
|
|
452
|
+
locally — the card is the only record (never sent to the model). The card
|
|
453
|
+
is COLLAPSED by default so a long log cannot fill the TUI: a running card
|
|
454
|
+
shows the newest 5 lines, a settled card at most 20 visual rows (long
|
|
455
|
+
lines wrap and count as several), each with an honest hidden-line marker.
|
|
456
|
+
`Ctrl+O` (the same master switch as the recent-turn fold) expands the card
|
|
457
|
+
to the retained buffer — live while the command still streams; `Alt+K`
|
|
458
|
+
quick-dismisses the SETTLED cards (a running card is never dismissed, the
|
|
459
|
+
process is not cancelled, and an already-submitted `!` context payload is
|
|
460
|
+
untouched).
|
|
461
|
+
|
|
423
462
|
## Verified in the P0 spike
|
|
424
463
|
|
|
425
464
|
- Vendored pi-tui: the fork's own suite passes under `node --test` (run it as
|
package/README.zh-CN.md
CHANGED
|
@@ -301,9 +301,10 @@ SDK。原始终端访问、pre-host 输入拦截与完整输入所有权**不属
|
|
|
301
301
|
- `/tasks` — 合并任务浏览器:后台 job 与子代理在同一个可搜索列表中
|
|
302
302
|
(直接输入过滤行——`subagent`、`bash`、`failed`…)。子代理行把 mode
|
|
303
303
|
写进主标签(`subagent · <label> · continuable` / `… · one-shot`),
|
|
304
|
-
按下 `Enter`
|
|
305
|
-
(
|
|
306
|
-
|
|
304
|
+
按下 `Enter` 之前就能知道查看器是否可交互;durable 后代树以缩进行
|
|
305
|
+
渲染(`├─` 按深度缩进),子代理的子代理无需进入父节点就能在这里
|
|
306
|
+
看到。`Enter` 打开详情(子代理为子查看器——嵌套行只读——job 为
|
|
307
|
+
状态查看器),`i` 中断选中的子代理。`/subagents` 是别名。
|
|
307
308
|
- `/yolo` — 切换到 `danger-full-access`(`/permission danger-full-access`
|
|
308
309
|
的别名)。
|
|
309
310
|
- `/status` — 显示当前会话的统计与身份信息(回合数、token 用量、
|
|
@@ -330,6 +331,21 @@ SDK。原始终端访问、pre-host 输入拦截与完整输入所有权**不属
|
|
|
330
331
|
送入正在运行的回合;否则只发送草稿。空闲的 agent 会用全部内容开启
|
|
331
332
|
新回合。
|
|
332
333
|
- `Alt+↑` — 出队:把所有排队消息拉回编辑器草稿。
|
|
334
|
+
- `Ctrl+O` — 展开/折叠最近回合的可折叠条目(工具、system 卡片);
|
|
335
|
+
同一个主开关也展开本地 `!`/`!!` shell 卡片(默认折叠——见下文
|
|
336
|
+
"本地 shell")。在 Focus 模式(常规表面)下它派生展开最近几个
|
|
337
|
+
Thought 的完整过程;全屏 Focus 的二级卡片由鼠标控制,Ctrl+O 不会
|
|
338
|
+
展开它们。Thinking 的 detail 有自己的拥有者——见 `Alt+T`。
|
|
339
|
+
- `Alt+T` — 折叠/展开所有 Thinking 块(折叠:最新一行推理作为
|
|
340
|
+
preview;展开:完整推理正文)。Thinking 块是 disclosure,不是
|
|
341
|
+
visibility:只要模型产生过 reasoning 且当前 projection 包含该块,
|
|
342
|
+
它就始终存在——Focus 开/关、两种表面完全一致。全屏下点击可在该
|
|
343
|
+
bulk 级别之上单独切换单个 Thinking 卡片;`Ctrl+O` 绝不触碰
|
|
344
|
+
Thinking detail(它只拥有 tool/system 卡片)。`/settings` 的
|
|
345
|
+
`Thinking detail` 与它共享同一状态。
|
|
346
|
+
- `Alt+K` — 从实时视图快速清除**已结束**的本地 `!`/`!!` shell 卡片;
|
|
347
|
+
**运行中**的卡片绝不会被清除,进程也不会被取消(那是 Esc 的职责)。
|
|
348
|
+
见下文"本地 shell"。
|
|
333
349
|
- `Ctrl+T` — 切换完整待办列表(全屏时点击面板可在完整列表与折叠之间
|
|
334
350
|
切换);编辑器上方的 dock 始终显示待办摘要与后台任务,排队的输入渲染
|
|
335
351
|
在两者之间。
|
|
@@ -337,16 +353,22 @@ SDK。原始终端访问、pre-host 输入拦截与完整输入所有权**不属
|
|
|
337
353
|
(`fd` 在 PATH 上时以其为后端,否则使用内置的递归回退)。字面
|
|
338
354
|
`@path` 会被提交,由模型自行读取文件。有后台工作时,空编辑器的 `↓`
|
|
339
355
|
会打开与 `/tasks` 相同的合并任务浏览器:
|
|
340
|
-
- **子代理行**(
|
|
341
|
-
`one-shot
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
(
|
|
348
|
-
|
|
349
|
-
|
|
356
|
+
- **子代理行**(durable 后代树,标签携带目录 mode:`continuable` 或
|
|
357
|
+
`one-shot`,按深度缩进并带 `├─` 连接符——子代理的子代理在这里
|
|
358
|
+
直接可见,顺序为稳定的 pre-order)——`Enter` 打开子代理查看器:
|
|
359
|
+
**直接(深度 1)continuable** 子代理的查看器是**可交互的**——输入
|
|
360
|
+
后续消息并回车,它会作为子代理的**下一回合**通过
|
|
361
|
+
`ctx.subagents.followup` 投递(FIFO——运行中的子代理不会被中断或
|
|
362
|
+
steer;非活跃的子代理会自动冷恢复),`Esc` 返回主会话。**one-shot**
|
|
363
|
+
子代理的查看器保持**只读**,任何**嵌套(深度 > 1)**后代也一样
|
|
364
|
+
——即使它是 continuable(`<mode> · nested · read-only from this
|
|
365
|
+
parent`,始终显示真实 mode):根会话只能继续自己的直接子代理。已结束的 one-shot
|
|
366
|
+
子代理仍留在浏览器里——`inactive` 只是 live-store 的存在状态,
|
|
367
|
+
不是结果——Enter 依然能打开其持久化 transcript。查看器打开期间,
|
|
368
|
+
页脚切换为**子代理自己的身份**(`[subagent · continuable]` 徽章、
|
|
369
|
+
标签、activity、cwd 与子代理自己的 turns/steps/stats),退出后恢复
|
|
370
|
+
主会话页脚。`i` 中断选中的子代理。它们从不注册 job 记录,所以此
|
|
371
|
+
浏览器是它们唯一可一览的归宿。
|
|
350
372
|
- **job 行**(bash 与一次性子代理 job)——`Enter` 只显示状态查看器:
|
|
351
373
|
bash job 的输出读取游标属于模型的 `job_output`,而一次性子代理 job
|
|
352
374
|
记录不带子会话 id,因此子代理 job 的转录需通过 `/tasks` 按标签
|
|
@@ -370,6 +392,17 @@ TUI 的启动行新增了 `--preset <id>`——新会话启动时使用的 agent
|
|
|
370
392
|
斜杠命令、`Ctrl+S` steer 或 `!` shell)才会惰性启动会话。`--session <id>`
|
|
371
393
|
仍然立即恢复会话,本地 `!!` 命令无需会话即可运行。
|
|
372
394
|
|
|
395
|
+
## 本地 shell(`!` / `!!`)
|
|
396
|
+
|
|
397
|
+
`! command` 在本地运行命令,并把完成后的命令 + 输出作为普通用户消息
|
|
398
|
+
提交给会话;`!! command` 完全本地运行——卡片是唯一记录(绝不发给模型)。
|
|
399
|
+
卡片**默认折叠**,长日志不会塞满 TUI:运行中的卡片显示最新 5 行,
|
|
400
|
+
已结束的卡片最多显示 20 个视觉行(超长行会换行并按多行计),各自带
|
|
401
|
+
诚实的隐藏行数标记。`Ctrl+O`(与折叠最近工具回合的同一个主开关)把
|
|
402
|
+
卡片展开到 retained buffer——命令仍在跑时实时跟随;`Alt+K` 快速清除
|
|
403
|
+
**已结束**的卡片(运行中的卡片绝不会被清除,进程不会被取消,已经
|
|
404
|
+
提交的 `!` context payload 不受影响)。
|
|
405
|
+
|
|
373
406
|
## 在 P0 spike 中验证过的事项
|
|
374
407
|
|
|
375
408
|
- 内置 pi-tui:fork 自带的套件在 `node --test` 下通过(每次重新
|
package/dist/builtins.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TUI_STARTUP_SERVICE } from "./startup.mjs";
|
|
2
|
-
import { H as PI_TUI_EXTENSIONS_SERVICE, L as dshVersion } from "./src-
|
|
2
|
+
import { H as PI_TUI_EXTENSIONS_SERVICE, L as dshVersion } from "./src-B1uP5j0d.mjs";
|
|
3
3
|
import { readFileSync } from "node:fs";
|
|
4
4
|
import { join } from "node:path";
|
|
5
5
|
//#region src/builtins.ts
|
package/dist/extensions.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import "./startup.mjs";
|
|
2
|
-
import { B as inject, H as PI_TUI_EXTENSIONS_SERVICE, U as API_VERSION, V as name, W as describeKey, z as apply } from "./src-
|
|
2
|
+
import { B as inject, H as PI_TUI_EXTENSIONS_SERVICE, U as API_VERSION, V as name, W as describeKey, z as apply } from "./src-B1uP5j0d.mjs";
|
|
3
3
|
export { API_VERSION, PI_TUI_EXTENSIONS_SERVICE, apply, describeKey, inject, name };
|
package/dist/index.d.mts
CHANGED
|
@@ -321,6 +321,9 @@ declare function shouldConsumeAdvertisedMiss(execution: {
|
|
|
321
321
|
/** The live-agent surface {@link interruptAgent} needs (structural — the
|
|
322
322
|
* TUI never imports the agent runtime for this call). */
|
|
323
323
|
interface InterruptAgentLike {
|
|
324
|
+
readonly session: {
|
|
325
|
+
readonly id: string;
|
|
326
|
+
};
|
|
324
327
|
readonly status: string;
|
|
325
328
|
cancel(cause: {
|
|
326
329
|
kind: 'user';
|
|
@@ -328,6 +331,16 @@ interface InterruptAgentLike {
|
|
|
328
331
|
keepInbox?: boolean;
|
|
329
332
|
}): void;
|
|
330
333
|
}
|
|
334
|
+
/** The writer surface {@link interruptAgent} needs (structural — a LOCAL
|
|
335
|
+
* type so the public declaration never inlines internal runtime modules;
|
|
336
|
+
* the runner's SessionWriter satisfies it). */
|
|
337
|
+
interface InterruptWriterLike {
|
|
338
|
+
cancel(sessionId: string, reason: {
|
|
339
|
+
kind: 'user';
|
|
340
|
+
}, options: {
|
|
341
|
+
keepInbox: boolean;
|
|
342
|
+
}): void;
|
|
343
|
+
}
|
|
331
344
|
/**
|
|
332
345
|
* Interrupt the live agent (web Stop parity): abort the current
|
|
333
346
|
* turn/tool run while PRESERVING the pending queue. dsh's DEFAULT
|
|
@@ -347,7 +360,7 @@ interface InterruptAgentLike {
|
|
|
347
360
|
* log, which the design explicitly rejects — the parked queue is the
|
|
348
361
|
* agreed web-parity behavior until upstream lands the capability.
|
|
349
362
|
*/
|
|
350
|
-
declare function interruptAgent(agent: InterruptAgentLike | undefined): void;
|
|
363
|
+
declare function interruptAgent(agent: InterruptAgentLike | undefined, writer: InterruptWriterLike): void;
|
|
351
364
|
/** One unsettled subagent delegation, in tool/call order. */
|
|
352
365
|
interface PendingSubagentCall {
|
|
353
366
|
readonly callId: string;
|
|
@@ -732,4 +745,4 @@ declare function recomposeBlank(ctx: Context, agent: {
|
|
|
732
745
|
*/
|
|
733
746
|
declare function apply(ctx: Context, config: Config): void;
|
|
734
747
|
//#endregion
|
|
735
|
-
export { AgentComposition, CompactionFold, CompactionSettleSurface, Config, HOST_COMMAND_CATALOG, InitialCatalogResolution, InterruptAgentLike, LOCAL_COMMANDS, PendingSubagentCall, QueueFoldResult, QueueInboxMessage, QueueNoticeSource, RecomposableSession, RecomposeOutcome, ResolveInitialCatalogOptions, SESSIONLESS_COMMANDS, SessionLockRefusedError, ViewerOpenToken, apply, busyAfterTurnBoundary, commandRejectsImages, compactingFromLog, composeAgent, createViewerOpenToken, dangerCommand, foldCompactionEvent, foldQueueRows, forkSeed, inject, interruptAgent, isPlainExitPrompt, isSubagentSettlementNotice, isUserQueueInput, matchPendingSubagentCall, name, normalizeSkillInvocation, recomposeBlank, recordedPreset, registerCredentialSurfaceRefresh, resolveInitialCatalog, resumeCommand, runningProfile, settleCompactionSurface, shouldConsumeAdvertisedMiss, shouldSteerOnEnter, subagentJobTranscriptId, subagentJobViewHint, subagentNoticeIsFailure, teardownViewerForSessionSwap, viewerActionCapability };
|
|
748
|
+
export { AgentComposition, CompactionFold, CompactionSettleSurface, Config, HOST_COMMAND_CATALOG, InitialCatalogResolution, InterruptAgentLike, InterruptWriterLike, LOCAL_COMMANDS, PendingSubagentCall, QueueFoldResult, QueueInboxMessage, QueueNoticeSource, RecomposableSession, RecomposeOutcome, ResolveInitialCatalogOptions, SESSIONLESS_COMMANDS, SessionLockRefusedError, ViewerOpenToken, apply, busyAfterTurnBoundary, commandRejectsImages, compactingFromLog, composeAgent, createViewerOpenToken, dangerCommand, foldCompactionEvent, foldQueueRows, forkSeed, inject, interruptAgent, isPlainExitPrompt, isSubagentSettlementNotice, isUserQueueInput, matchPendingSubagentCall, name, normalizeSkillInvocation, recomposeBlank, recordedPreset, registerCredentialSurfaceRefresh, resolveInitialCatalog, resumeCommand, runningProfile, settleCompactionSurface, shouldConsumeAdvertisedMiss, shouldSteerOnEnter, subagentJobTranscriptId, subagentJobViewHint, subagentNoticeIsFailure, teardownViewerForSessionSwap, viewerActionCapability };
|
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import "./startup.mjs";
|
|
2
|
-
import { A as shouldConsumeAdvertisedMiss, C as recomposeBlank, D as resumeCommand, E as resolveInitialCatalog, F as teardownViewerForSessionSwap, I as viewerActionCapability, M as subagentJobTranscriptId, N as subagentJobViewHint, O as runningProfile, P as subagentNoticeIsFailure, R as forkSeed, S as normalizeSkillInvocation, T as registerCredentialSurfaceRefresh, _ as isPlainExitPrompt, a as SessionLockRefusedError, b as matchPendingSubagentCall, c as commandRejectsImages, d as createViewerOpenToken, f as dangerCommand, g as interruptAgent, h as inject, i as SESSIONLESS_COMMANDS, j as shouldSteerOnEnter, k as settleCompactionSurface, l as compactingFromLog, m as foldQueueRows, n as HOST_COMMAND_CATALOG, o as apply, p as foldCompactionEvent, r as LOCAL_COMMANDS, s as busyAfterTurnBoundary, t as Config, u as composeAgent, v as isSubagentSettlementNotice, w as recordedPreset, x as name, y as isUserQueueInput } from "./src-
|
|
2
|
+
import { A as shouldConsumeAdvertisedMiss, C as recomposeBlank, D as resumeCommand, E as resolveInitialCatalog, F as teardownViewerForSessionSwap, I as viewerActionCapability, M as subagentJobTranscriptId, N as subagentJobViewHint, O as runningProfile, P as subagentNoticeIsFailure, R as forkSeed, S as normalizeSkillInvocation, T as registerCredentialSurfaceRefresh, _ as isPlainExitPrompt, a as SessionLockRefusedError, b as matchPendingSubagentCall, c as commandRejectsImages, d as createViewerOpenToken, f as dangerCommand, g as interruptAgent, h as inject, i as SESSIONLESS_COMMANDS, j as shouldSteerOnEnter, k as settleCompactionSurface, l as compactingFromLog, m as foldQueueRows, n as HOST_COMMAND_CATALOG, o as apply, p as foldCompactionEvent, r as LOCAL_COMMANDS, s as busyAfterTurnBoundary, t as Config, u as composeAgent, v as isSubagentSettlementNotice, w as recordedPreset, x as name, y as isUserQueueInput } from "./src-B1uP5j0d.mjs";
|
|
3
3
|
export { Config, HOST_COMMAND_CATALOG, LOCAL_COMMANDS, SESSIONLESS_COMMANDS, SessionLockRefusedError, apply, busyAfterTurnBoundary, commandRejectsImages, compactingFromLog, composeAgent, createViewerOpenToken, dangerCommand, foldCompactionEvent, foldQueueRows, forkSeed, inject, interruptAgent, isPlainExitPrompt, isSubagentSettlementNotice, isUserQueueInput, matchPendingSubagentCall, name, normalizeSkillInvocation, recomposeBlank, recordedPreset, registerCredentialSurfaceRefresh, resolveInitialCatalog, resumeCommand, runningProfile, settleCompactionSurface, shouldConsumeAdvertisedMiss, shouldSteerOnEnter, subagentJobTranscriptId, subagentJobViewHint, subagentNoticeIsFailure, teardownViewerForSessionSwap, viewerActionCapability };
|