better-dsh 0.2.2-a → 0.2.2-c

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.
Files changed (86) hide show
  1. package/docs/50_test-reports/2026-09-06-write/345/267/245/345/205/267sandbox/345/215/207/347/272/247/351/200/217/344/274/240bug/345/244/215/345/217/221/345/217/212/346/214/202/350/265/267-/344/272/213/344/273/266/346/212/245/345/221/212.md +43 -0
  2. package/docs/50_test-reports/v0.2.4-ios-focus-zoom-suppression/345/256/236/346/265/213/346/212/245/345/221/212.md +158 -0
  3. package/docs/60_exploration-and-research/01-cordis-runtime/bun-compile-cordis-runtime-bootstrap-research.md +536 -0
  4. package/docs/60_exploration-and-research/01-cordis-runtime/cordis-customization-and-override-mechanics.md +418 -0
  5. package/docs/60_exploration-and-research/01-cordis-runtime/cordis-research.md +350 -0
  6. package/docs/60_exploration-and-research/01-cordis-runtime/dsh-cordis-hotplug-mcp-patch-research.md +265 -0
  7. package/docs/60_exploration-and-research/02-dsh-webui/dsh-web-profile-package-map.md +186 -0
  8. package/docs/60_exploration-and-research/02-dsh-webui/dsh-web-ui-slot-system-research.md +310 -0
  9. package/docs/60_exploration-and-research/02-dsh-webui/dsh-webui-backend-data-inventory.md +633 -0
  10. package/docs/60_exploration-and-research/02-dsh-webui/dsh-webui-strip-boundary-research.md +300 -0
  11. package/docs/60_exploration-and-research/02-dsh-webui/dsh-webui-wire-appendix.md +3729 -0
  12. package/docs/60_exploration-and-research/02-dsh-webui/web-frontend-composability-research.md +191 -0
  13. package/docs/60_exploration-and-research/02-dsh-webui/webui-wire-data/capture-live-turn.json +1 -0
  14. package/docs/60_exploration-and-research/02-dsh-webui/webui-wire-data/observed-endpoints.json +224 -0
  15. package/docs/60_exploration-and-research/02-dsh-webui/webui-wire-data/remote-inventory.json +110954 -0
  16. package/docs/60_exploration-and-research/02-dsh-webui/webui-wire-data/served-index-sample.html +47 -0
  17. package/docs/60_exploration-and-research/02-dsh-webui/webui-wire-data/session-events.json +9411 -0
  18. package/docs/60_exploration-and-research/02-dsh-webui/webui-wire-data/ws-frame-examples.json +20 -0
  19. package/docs/60_exploration-and-research/03-mobile-ios/dsh-mobile-spa-ios-input-experience-research.md +160 -0
  20. package/docs/60_exploration-and-research/03-mobile-ios/ios-chat-app-bridge-research.md +324 -0
  21. package/docs/60_exploration-and-research/04-session-storage/alpha5-compaction-jsonl-mapping.md +1532 -0
  22. package/docs/60_exploration-and-research/04-session-storage/alpha5-compaction-sample/episode-failed.json +46 -0
  23. package/docs/60_exploration-and-research/04-session-storage/alpha5-compaction-sample/episode1.json +1124 -0
  24. package/docs/60_exploration-and-research/04-session-storage/alpha5-compaction-sample/episode2.json +1240 -0
  25. package/docs/60_exploration-and-research/05-dashr-dev/plugin-development.md +148 -0
  26. package/docs/60_exploration-and-research/05-dashr-dev/upstream-alignment.md +102 -0
  27. package/docs/60_exploration-and-research/README.md +87 -0
  28. package/docs/60_exploration-and-research/bun-compile-cordis-runtime-bootstrap-research.md +348 -0
  29. package/docs/60_exploration-and-research/dsh-mobile-spa-ios-input-experience-research.md +160 -0
  30. package/lib/index.d.ts +9 -1
  31. package/lib/index.js +258 -6
  32. package/package.json +1 -1
  33. package/docs/REPL-/345/267/245/345/205/267/350/260/203/347/224/250-/346/210/252/346/226/255/350/257/212/346/226/255.md +0 -110
  34. package/docs/adr/0001-bridge-tool-layer-not-service-layer.md +0 -14
  35. package/docs/adr/0002-masking-is-presentation-only.md +0 -15
  36. package/docs/plans/A2A-messaging-channel-test-archive.md +0 -256
  37. package/docs/plans/code-mode-vs-rlm-ipython-comparison.md +0 -137
  38. package/docs/plans/dashr-blueprint-review.md +0 -201
  39. package/docs/plans/dashr-blueprint.md +0 -561
  40. package/docs/plans/dashr-compaction-window-and-archive.md +0 -307
  41. package/docs/plans/dashr-profile-layer-feasibility.md +0 -367
  42. package/docs/plans/dashr-sandbox-escalation-semantics-gap.md +0 -171
  43. package/docs/plans/dashr-security-sandbox-analysis.md +0 -187
  44. package/docs/plans/dashr-surface-invariant-and-omp-imports.md +0 -97
  45. package/docs/plans/ipython-kernel-interactive-interface-test-report.md +0 -152
  46. package/docs/plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft.md +0 -146
  47. package/docs/plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft_v3.md +0 -50
  48. package/docs/plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft_v4.md +0 -79
  49. package/docs/plans/kernel-refactoring/Dash-vs-PrimeAgent-systemprompt-toolcatalog-comparison.md +0 -138
  50. package/docs/plans/kernel-refactoring/RLM-system-prompt-injection-gap-report.md +0 -161
  51. package/docs/plans/kernel-refactoring/V0.1.5-development-plan.md +0 -109
  52. package/docs/plans/kernel-refactoring/actinoable-surface-to-llm-in-agent-runtime_dsh.md +0 -50
  53. package/docs/plans/kernel-refactoring/actinoable-surface-to-llm-in-agent-runtime_prime.md +0 -113
  54. package/docs/plans/recallable-compaction.md +0 -147
  55. package/docs/plans/spike-tag-repro.mjs +0 -102
  56. package/docs/plans/upstream-analysis.md +0 -128
  57. package/docs/v0.1.8-improved-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -142
  58. package/docs/v0.1.8-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -193
  59. package/docs/v0.1.8b-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -96
  60. package/docs/v0.1.8c-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -127
  61. package/docs/v0.1.8d-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -150
  62. package/docs/v0.1.8d_artifacts/README.md +0 -138
  63. package/docs/v0.1.8d_artifacts/code-mode-repl-only.observation.md +0 -74
  64. package/docs/v0.1.8d_artifacts/dsh-session-session-4a293388-9ae1-474b-87a0-9e17bb556d94.jsonl +0 -3890
  65. package/docs/v0.1.8d_artifacts/dsh-session-session-4a293388-9ae1-474b-87a0-9e17bb556d94.w-sample-0435.jsonl +0 -544
  66. package/docs/v0.1.8d_artifacts/functions.json +0 -592
  67. package/docs/v0.1.8d_artifacts/skills-catalog.snapshot.md +0 -30
  68. package/docs/v0.1.8d_artifacts/tools-sdk.output-schemas.json +0 -1236
  69. package/docs/v0.1.8d_artifacts/tools-sdk.python.txt +0 -592
  70. package/docs/v0.1.8d_artifacts/tools-sdk.typescript.txt +0 -516
  71. package/docs/v0.1.8d_artifacts/wire-vs-transcription.diff.md +0 -54
  72. package/docs/v0.1.8e-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -224
  73. package/docs/v0.1.9a-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -168
  74. package/docs/v0.2.0b-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -123
  75. package/docs/v0.2.0b_artifacts/f2probe/Cargo.lock +0 -7
  76. package/docs/v0.2.0b_artifacts/f2probe/Cargo.toml +0 -6
  77. package/docs/v0.2.0b_artifacts/f2probe/src/bin/messy.rs +0 -8
  78. package/docs/v0.2.0b_artifacts/f2probe/src/main.rs +0 -4
  79. package/docs/v0.2.0b_artifacts/hashline-probe.md +0 -5
  80. package/docs/v0.2.0b_artifacts/slowprobe/Cargo.lock +0 -7
  81. package/docs/v0.2.0b_artifacts/slowprobe/Cargo.toml +0 -7
  82. package/docs/v0.2.0b_artifacts/slowprobe/build.rs +0 -4
  83. package/docs/v0.2.0b_artifacts/slowprobe/src/main.rs +0 -13
  84. package/docs/v0.2.1-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -110
  85. package/docs/v0.2.1b-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -86
  86. package/docs/v0.2.1c-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -66
@@ -0,0 +1,3729 @@
1
+ # 附录:DSH Web UI wire 数据段全字段树(静态全量)
2
+
3
+ > 由 `.scratch/extract-remotes.mjs`(tsc 类型检查器)自动生成;`◉ live 实测` 标记 = playwright 实抓触发过。
4
+ > 超长共享 manifest(动态 Cordis inspect、agentTeams、presets 全 config)在 6KB 处截断,完整树见
5
+ > `webui-wire-data/remote-inventory.json`。字段名旁 `⌾XxxId` = 品牌化字符串(线上就是普通 string)。
6
+
7
+ ## 一、RPC 命名空间(除 session 外的 16 个,61 方法;session 见主文档 §6)
8
+
9
+ ### `skills/*` — 会话技能目录(输入 @ 触发)
10
+
11
+ #### `skills/list` · unary · ◉ **live 实测**
12
+
13
+ List the user-invocable skills visible to one Session composition.
14
+
15
+ **Request 字段:**
16
+ - **SkillListRequest**
17
+ - `sessionId`: string ⌾SessionId
18
+
19
+ **Response 字段:**
20
+ - **SkillListValue**
21
+ - `skills`: object[]
22
+ - *(元素)*:
23
+ - `name`: string — Kebab-case identifier referenced as `/name`.
24
+ - `description`: string — Short routing description.
25
+ - `whenToUse?`: string — Optional extra routing guidance.
26
+ - `modelInvocable`: boolean — Whether the same skill is also advertised to the model.
27
+
28
+ ### `fileReferences/*` — 会话文件引用
29
+
30
+ #### `fileReferences/list` · unary · ○ 静态可用(本轮未触发)
31
+
32
+ List file and directory candidates for one Agent's working directory.
33
+
34
+ **Request 字段:**
35
+ - **Agent**
36
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
37
+ - `options`: object — The provider route and model this agent's requests use.
38
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
39
+ - `model?`: string — Model id interpreted by the selected provider adapter.
40
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
41
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
42
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
43
+ - `log`: any
44
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
45
+ - `surface`: object — The ordered surface over this session's event log.
46
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
47
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
48
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
49
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
50
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
51
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
52
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
53
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
54
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
55
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
56
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
57
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
58
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
59
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
60
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
61
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
62
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
63
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
64
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
65
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
66
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
67
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
68
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
69
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
70
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
71
+ - `contextFold`: any — Cached fold of `request/context` events.
72
+ - `contextFoldSeq`: any
73
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
74
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
75
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
76
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
77
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
78
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
79
+ - `inbox`: object — The agent-owned projection of durable pending work.
80
+ - `session`: any
81
+ - `notifications`: any
82
+ - `state`: any
83
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
84
+ - *(元素)*:
85
+ - `role`: string — Provider-neutral conversation role.
86
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
87
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
88
+ - `source`: object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
89
+ - 变体 `{ kind: "user"; }`:
90
+ - `kind`: string
91
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
92
+ - `kind`: string
93
+ - `plugin`: string
94
+ - `form?`: ne
95
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
96
+
97
+
98
+ ### `workspace/*` — 工作区:侧栏树、排序、归档 + 流
99
+
100
+ #### `workspace/create` · unary · ○ 静态可用(本轮未触发)
101
+
102
+ Create or idempotently resolve one Workspace over an existing directory.
103
+
104
+ **Request 字段:**
105
+ - **WorkspaceCreateRequest**
106
+ - `path`: string
107
+
108
+ **Response 字段:**
109
+ - **WorkspaceCreateValue**
110
+ - `workspace`: object
111
+ - `workspaceId`: string
112
+ - `path`: string — Canonical host directory path.
113
+ - `title`: string — User-visible title.
114
+ - `sessionIds`: string ⌾SessionId[] — Sessions accounted to this Workspace in manual order.
115
+ - `createdAt`: string — ISO-8601 creation instant.
116
+ - `updatedAt`: string — ISO-8601 last-mutation instant.
117
+ - `created`: boolean
118
+
119
+ #### `workspace/rename` · unary · ○ 静态可用(本轮未触发)
120
+
121
+ Rename one Workspace to a unique non-blank title.
122
+
123
+ **Request 字段:**
124
+ - **WorkspaceRenameRequest**
125
+ - `workspaceId`: string
126
+ - `title`: string
127
+
128
+ **Response 字段:**
129
+ - **WorkspaceValue**
130
+ - `workspace`: object
131
+ - `workspaceId`: string
132
+ - `path`: string — Canonical host directory path.
133
+ - `title`: string — User-visible title.
134
+ - `sessionIds`: string ⌾SessionId[] — Sessions accounted to this Workspace in manual order.
135
+ - `createdAt`: string — ISO-8601 creation instant.
136
+ - `updatedAt`: string — ISO-8601 last-mutation instant.
137
+
138
+ #### `workspace/delete` · unary · ○ 静态可用(本轮未触发)
139
+
140
+ Remove one Workspace registration while retaining files and Sessions.
141
+
142
+ **Request 字段:**
143
+ - **WorkspaceDeleteRequest**
144
+ - `workspaceId`: string
145
+
146
+ **Response 字段:**
147
+ - **WorkspaceDeleteValue**
148
+ - `deleted`: boolean
149
+
150
+ #### `workspace/insertBefore` · unary · ○ 静态可用(本轮未触发)
151
+
152
+ Move one Workspace within the registry display order.
153
+
154
+ **Request 字段:**
155
+ - **WorkspaceInsertBeforeRequest**
156
+ - `workspaceId`: string
157
+ - `beforeWorkspaceId?`: string
158
+
159
+ **Response 字段:**
160
+ - **WorkspaceOrderValue**
161
+ - `workspaceIds`: string[]
162
+
163
+ #### `workspace/insertSessionBefore` · unary · ○ 静态可用(本轮未触发)
164
+
165
+ Move one accounted Session within a Workspace.
166
+
167
+ **Request 字段:**
168
+ - **WorkspaceInsertSessionBeforeRequest**
169
+ - `workspaceId`: string
170
+ - `sessionId`: string ⌾SessionId
171
+ - `beforeSessionId?`: string ⌾SessionId
172
+
173
+ **Response 字段:**
174
+ - **WorkspaceValue**
175
+ - `workspace`: object
176
+ - `workspaceId`: string
177
+ - `path`: string — Canonical host directory path.
178
+ - `title`: string — User-visible title.
179
+ - `sessionIds`: string ⌾SessionId[] — Sessions accounted to this Workspace in manual order.
180
+ - `createdAt`: string — ISO-8601 creation instant.
181
+ - `updatedAt`: string — ISO-8601 last-mutation instant.
182
+
183
+ #### `workspace/archiveSession` · unary · ○ 静态可用(本轮未触发)
184
+
185
+ Hide one known Session from Workspace grouping surfaces.
186
+
187
+ **Request 字段:**
188
+ - **WorkspaceArchiveSessionRequest**
189
+ - `sessionId`: string ⌾SessionId
190
+
191
+ **Response 字段:**
192
+ - **WorkspaceArchiveValue**
193
+ - `archivedSessionIds`: string ⌾SessionId[]
194
+
195
+ #### `workspace/follow` · stream · ○ 静态可用(本轮未触发)
196
+
197
+ Stream a complete Workspace baseline followed by ordered increments.
198
+
199
+ **Request 字段:**
200
+ - **AbortSignal**
201
+ - `aborted`: boolean — The **`aborted`** read-only property returns a value that indicates whether the asynchronous operations the signal is communicating with are aborted (true) or …
202
+ - `onabort`: function — [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_event)
203
+ - `reason`: any — The **`reason`** read-only property returns a JavaScript value that indicates the abort reason. [MDN Reference](https://developer.mozilla.org/docs/Web/API/Abor…
204
+ - `throwIfAborted`: function — The **`throwIfAborted()`** method throws the signal's abort reason if the signal has been aborted; otherwise it does nothing. [MDN Reference](https://developer…
205
+ - `addEventListener`: function — The **`addEventListener()`** method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target…
206
+ - `removeEventListener`: function — The **`removeEventListener()`** method of the EventTarget interface removes an event listener previously registered with EventTarget.addEventListener() from th…
207
+ - `dispatchEvent`: function — The **`dispatchEvent()`** method of the EventTarget sends an Event to the object, (synchronously) invoking the affected event listeners in the appropriate orde…
208
+
209
+ **Response 字段:**
210
+ - object|object|object|object|object
211
+ - 变体 `{ readonly type: "baseline"; readonly value: WorkspaceBaseline; }`:
212
+ - `type`: string
213
+ - `value`: object
214
+ - `items`: object[]
215
+ - *(元素)*:
216
+ - `workspaceId`: string
217
+ - `path`: string — Canonical host directory path.
218
+ - `title`: string — User-visible title.
219
+ - `sessionIds`: string ⌾SessionId[] — Sessions accounted to this Workspace in manual order.
220
+ - `createdAt`: string — ISO-8601 creation instant.
221
+ - `updatedAt`: string — ISO-8601 last-mutation instant.
222
+ - `archivedSessionIds`: string ⌾SessionId[]
223
+ - 变体 `{ readonly type: "upsert"; readonly workspace: WorkspaceView; }`:
224
+ - `type`: string
225
+ - `workspace`: object
226
+ - `workspaceId`: string
227
+ - `path`: string — Canonical host directory path.
228
+ - `title`: string — User-visible title.
229
+ - `sessionIds`: string ⌾SessionId[] — Sessions accounted to this Workspace in manual order.
230
+ - `createdAt`: string — ISO-8601 creation instant.
231
+ - `updatedAt`: string — ISO-8601 last-mutation instant.
232
+ - 变体 `{ readonly type: "remove"; readonly workspaceId: WorkspaceId; }`:
233
+ - `type`: string
234
+ - `workspaceId`: string
235
+ - 变体 `{ readonly type: "order"; readonly workspaceIds: readonly WorkspaceId[]; }`:
236
+ - `type`: string
237
+ - `workspaceIds`: string[]
238
+ - 变体 `{ readonly type: "archived"; readonly archivedSessionIds: readonly SessionId[]; }`:
239
+ - `type`: string
240
+ - `archivedSessionIds`: string ⌾SessionId[]
241
+
242
+ ### `directoryPicker/*` — 目录选择器(创建会话选 cwd)
243
+
244
+ #### `directoryPicker/pick` · unary · ○ 静态可用(本轮未触发)
245
+
246
+ Open the host's OS chooser for a Remote caller.
247
+
248
+ **Request 字段:**
249
+ - **AbortSignal**
250
+ - `aborted`: boolean — The **`aborted`** read-only property returns a value that indicates whether the asynchronous operations the signal is communicating with are aborted (true) or …
251
+ - `onabort`: function — [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_event)
252
+ - `reason`: any — The **`reason`** read-only property returns a JavaScript value that indicates the abort reason. [MDN Reference](https://developer.mozilla.org/docs/Web/API/Abor…
253
+ - `throwIfAborted`: function — The **`throwIfAborted()`** method throws the signal's abort reason if the signal has been aborted; otherwise it does nothing. [MDN Reference](https://developer…
254
+ - `addEventListener`: function — The **`addEventListener()`** method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target…
255
+ - `removeEventListener`: function — The **`removeEventListener()`** method of the EventTarget interface removes an event listener previously registered with EventTarget.addEventListener() from th…
256
+ - `dispatchEvent`: function — The **`dispatchEvent()`** method of the EventTarget sends an Event to the object, (synchronously) invoking the affected event listeners in the appropriate orde…
257
+
258
+ **Response 字段:**
259
+ - string
260
+
261
+ #### `directoryPicker/list` · unary · ○ 静态可用(本轮未触发)
262
+
263
+ List one directory level for a Remote caller's in-app browser.
264
+
265
+ **Request 字段:**
266
+ - `req`: string
267
+
268
+ **Response 字段:**
269
+ - **DirectoryListing**
270
+ - `path`: string — Absolute path of the listed directory.
271
+ - `home`: string — The host account's home directory (breadcrumb "Home" rooting).
272
+ - `crumbs`: object[] — Ancestor chain from the filesystem root to the listed directory inclusive; every crumb is a jump target (crumb `hidden` is always false).
273
+ - *(元素)*:
274
+ - `name`: string — Base name shown in a browser row (a root crumb carries its full path).
275
+ - `path`: string — Absolute host path — clients never join path segments themselves.
276
+ - `hidden`: boolean — Hidden by the host platform's convention (dot-prefixed on POSIX); the client owns whether to show it.
277
+ - `entries`: object[] — Direct child directories, name-sorted; symlinks to directories included.
278
+ - *(元素)*:
279
+ - `name`: string — Base name shown in a browser row (a root crumb carries its full path).
280
+ - `path`: string — Absolute host path — clients never join path segments themselves.
281
+ - `hidden`: boolean — Hidden by the host platform's convention (dot-prefixed on POSIX); the client owns whether to show it.
282
+ - `truncated`: boolean — True when the backend cut `entries` at its complete-result bound: the level has more child directories than reported, and the missing rows are the name-sorted …
283
+
284
+ #### `directoryPicker/createDirectory` · unary · ○ 静态可用(本轮未触发)
285
+
286
+ Create one child directory for a Remote caller's in-app browser.
287
+
288
+ **Request 字段:**
289
+ - `req`: string
290
+
291
+ **Response 字段:**
292
+ - string
293
+
294
+ ### `settings/*` — 设置读写(describe/get/set;非 loopback 页有已知缺口)
295
+
296
+ #### `settings/describe` · unary · ◉ **live 实测**
297
+
298
+ Describe every registered namespace for a configuration page: redacted layered values plus the serialized schema the page renders its form from.
299
+
300
+ **Request 字段:**
301
+ - *(无参数)*
302
+
303
+ **Response 字段:**
304
+ - **SettingsDescribeValue**
305
+ - `writable`: boolean — Whether the provider accepts writes; `false` disables every write control.
306
+ - `hasDocument`: boolean — Whether a file-backed provider owns a local document, without exposing its Host path.
307
+ - `namespaces`: object[] — One view per registered namespace.
308
+ - *(元素)*:
309
+ - `ns`: string — Namespace key (`llm-deepseek`, `llm-pi-ai`, …).
310
+ - `schema`: json (any JSON value) — Serialized schemastery schema envelope (`schema.toJSON()`); rehydrate with `new Schema(json)`.
311
+ - `value`: json (any JSON value) — Redacted resolved value (schema defaults → composition base → user layer).
312
+ - `base?`: json (any JSON value) — Redacted composition base layer, when the registrant declared one.
313
+ - `user?`: json (any JSON value) — Redacted raw user section, when one exists; a field's presence here marks it user-overridden.
314
+ - `applies`: string|string — When the owner applies changes.
315
+ - `secrets`: object[] — Every schema-declared secret slot with its configured state.
316
+ - *(元素)*:
317
+ - `path`: string[] — Path from the section root to the removed field.
318
+ - `set`: boolean — Whether the slot currently holds a value; the value itself never rides.
319
+ - `revision`: number — Monotonic revision of the raw user section this view was read at. Send it back as `expectedRevision` on a write so a stale editor is refused rather than silent…
320
+
321
+ #### `settings/canOpenAgentPresetDirectory` · unary · ○ 静态可用(本轮未触发)
322
+
323
+ Report whether this deployment can open an authored Agent preset directory natively.
324
+
325
+ **Request 字段:**
326
+ - *(无参数)*
327
+
328
+ **Response 字段:**
329
+ - boolean
330
+
331
+ #### `settings/update` · unary · ○ 静态可用(本轮未触发)
332
+
333
+ Merge a patch into one namespace's stored user section.
334
+
335
+ **Request 字段:**
336
+ - `req`: string
337
+
338
+ **Response 字段:**
339
+ - **SettingsNamespaceView**
340
+ - `ns`: string — Namespace key (`llm-deepseek`, `llm-pi-ai`, …).
341
+ - `schema`: json (any JSON value) — Serialized schemastery schema envelope (`schema.toJSON()`); rehydrate with `new Schema(json)`.
342
+ - `value`: json (any JSON value) — Redacted resolved value (schema defaults → composition base → user layer).
343
+ - `base?`: json (any JSON value) — Redacted composition base layer, when the registrant declared one.
344
+ - `user?`: json (any JSON value) — Redacted raw user section, when one exists; a field's presence here marks it user-overridden.
345
+ - `applies`: string|string — When the owner applies changes.
346
+ - `secrets`: object[] — Every schema-declared secret slot with its configured state.
347
+ - *(元素)*:
348
+ - `path`: string[] — Path from the section root to the removed field.
349
+ - `set`: boolean — Whether the slot currently holds a value; the value itself never rides.
350
+ - `revision`: number — Monotonic revision of the raw user section this view was read at. Send it back as `expectedRevision` on a write so a stale editor is refused rather than silent…
351
+
352
+ #### `settings/replace` · unary · ○ 静态可用(本轮未触发)
353
+
354
+ Replace one namespace's stored user section wholesale.
355
+
356
+ **Request 字段:**
357
+ - `req`: string
358
+
359
+ **Response 字段:**
360
+ - **SettingsNamespaceView**
361
+ - `ns`: string — Namespace key (`llm-deepseek`, `llm-pi-ai`, …).
362
+ - `schema`: json (any JSON value) — Serialized schemastery schema envelope (`schema.toJSON()`); rehydrate with `new Schema(json)`.
363
+ - `value`: json (any JSON value) — Redacted resolved value (schema defaults → composition base → user layer).
364
+ - `base?`: json (any JSON value) — Redacted composition base layer, when the registrant declared one.
365
+ - `user?`: json (any JSON value) — Redacted raw user section, when one exists; a field's presence here marks it user-overridden.
366
+ - `applies`: string|string — When the owner applies changes.
367
+ - `secrets`: object[] — Every schema-declared secret slot with its configured state.
368
+ - *(元素)*:
369
+ - `path`: string[] — Path from the section root to the removed field.
370
+ - `set`: boolean — Whether the slot currently holds a value; the value itself never rides.
371
+ - `revision`: number — Monotonic revision of the raw user section this view was read at. Send it back as `expectedRevision` on a write so a stale editor is refused rather than silent…
372
+
373
+ #### `settings/mutate` · unary · ○ 静态可用(本轮未触发)
374
+
375
+ Apply path-addressed edits to one namespace's user section, resolved against the section as stored rather than against whatever the caller last read, then answ…
376
+
377
+ **Request 字段:**
378
+ - `req`: string
379
+
380
+ **Response 字段:**
381
+ - **SettingsNamespaceView**
382
+ - `ns`: string — Namespace key (`llm-deepseek`, `llm-pi-ai`, …).
383
+ - `schema`: json (any JSON value) — Serialized schemastery schema envelope (`schema.toJSON()`); rehydrate with `new Schema(json)`.
384
+ - `value`: json (any JSON value) — Redacted resolved value (schema defaults → composition base → user layer).
385
+ - `base?`: json (any JSON value) — Redacted composition base layer, when the registrant declared one.
386
+ - `user?`: json (any JSON value) — Redacted raw user section, when one exists; a field's presence here marks it user-overridden.
387
+ - `applies`: string|string — When the owner applies changes.
388
+ - `secrets`: object[] — Every schema-declared secret slot with its configured state.
389
+ - *(元素)*:
390
+ - `path`: string[] — Path from the section root to the removed field.
391
+ - `set`: boolean — Whether the slot currently holds a value; the value itself never rides.
392
+ - `revision`: number — Monotonic revision of the raw user section this view was read at. Send it back as `expectedRevision` on a write so a stale editor is refused rather than silent…
393
+
394
+ #### `settings/openSettingsDocument` · unary · ○ 静态可用(本轮未触发)
395
+
396
+ Materialize the provider-owned settings document and open it in a native text editor.
397
+
398
+ **Request 字段:**
399
+ - **AbortSignal**
400
+ - `aborted`: boolean — The **`aborted`** read-only property returns a value that indicates whether the asynchronous operations the signal is communicating with are aborted (true) or …
401
+ - `onabort`: function — [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_event)
402
+ - `reason`: any — The **`reason`** read-only property returns a JavaScript value that indicates the abort reason. [MDN Reference](https://developer.mozilla.org/docs/Web/API/Abor…
403
+ - `throwIfAborted`: function — The **`throwIfAborted()`** method throws the signal's abort reason if the signal has been aborted; otherwise it does nothing. [MDN Reference](https://developer…
404
+ - `addEventListener`: function — The **`addEventListener()`** method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target…
405
+ - `removeEventListener`: function — The **`removeEventListener()`** method of the EventTarget interface removes an event listener previously registered with EventTarget.addEventListener() from th…
406
+ - `dispatchEvent`: function — The **`dispatchEvent()`** method of the EventTarget sends an Event to the object, (synchronously) invoking the affected event listeners in the appropriate orde…
407
+
408
+ **Response 字段:**
409
+ - **SettingsDocumentOpenValue**
410
+ - `opened`: boolean
411
+
412
+ #### `settings/openAgentPresetDirectory` · unary · ○ 静态可用(本轮未触发)
413
+
414
+ Open one user-authored Agent preset directory or return its path when no native opener exists.
415
+
416
+ **Request 字段:**
417
+ - `req`: string
418
+
419
+ **Response 字段:**
420
+ - object|object
421
+ - 变体 `{ readonly opened: true; }`:
422
+ - `opened`: boolean
423
+ - 变体 `{ readonly opened: false; readonly path: string; }`:
424
+ - `opened`: boolean
425
+ - `path`: string
426
+
427
+ ### `credentials/*` — 凭据读写
428
+
429
+ #### `credentials/describe` · unary · ◉ **live 实测**
430
+
431
+ Describe several references for one configuration surface. Batched because a settings page describes every reference its rows name at once, and one round trip …
432
+
433
+ **Request 字段:**
434
+ - `req`: string[]
435
+
436
+ **Response 字段:**
437
+ - record<string, …>
438
+ - *(值)*:
439
+ - `configured`: boolean — Whether resolving the reference would currently return a value.
440
+ - `source?`: string — Source layer currently supplying the value; absent while unconfigured.
441
+ - `writable`: boolean — Whether the active provider can write this reference.
442
+
443
+ #### `credentials/set` · unary · ○ 静态可用(本轮未触发)
444
+
445
+ Store one value from a configuration surface. The value crosses the wire in this direction only: no read path returns it.
446
+
447
+ **Request 字段:**
448
+ - `req`: string
449
+
450
+ **Response 字段:**
451
+ - void
452
+
453
+ #### `credentials/unset` · unary · ○ 静态可用(本轮未触发)
454
+
455
+ Remove one reference from a configuration surface.
456
+
457
+ **Request 字段:**
458
+ - `req`: string
459
+
460
+ **Response 字段:**
461
+ - void
462
+
463
+ ### `llm/*` — LLM 提供方目录(模型选择器)
464
+
465
+ #### `llm/listProviders` · unary · ◉ **live 实测**
466
+
467
+ Describe provider routes with a registered adapter.
468
+
469
+ **Request 字段:**
470
+ - *(无参数)*
471
+
472
+ **Response 字段:**
473
+ - object[]
474
+ - *(元素)*:
475
+ - `id`: string — Provider route key used by {@link GenerateOptions.provider}.
476
+ - `name`: string — Human-readable provider name for selectors and diagnostics.
477
+
478
+ #### `llm/listConfigurableProviders` · unary · ◉ **live 实测**
479
+
480
+ List every declared configurable provider, registered or dormant.
481
+
482
+ **Request 字段:**
483
+ - *(无参数)*
484
+
485
+ **Response 字段:**
486
+ - object[]
487
+ - *(元素)*:
488
+ - `provider`: string — Provider route key this entry activates when configured.
489
+ - `displayName`: string — Human-readable provider name for configuration surfaces.
490
+ - `settingsNs`: string — User-settings namespace whose section configures this provider.
491
+ - `settingsPath`: string[] — Path from that namespace's section root to this provider's profile object; empty when the whole section is the profile.
492
+ - `declared?`: boolean — Whether the owning adapter knows this route only because configuration declared it — a gateway or self-hosted server it ships nothing about. Absent means the a…
493
+
494
+ #### `llm/discoverModels` · unary · ○ 静态可用(本轮未触发)
495
+
496
+ Remote adapter for one draft provider interrogation.
497
+
498
+ **Request 字段:**
499
+ - `req`: string
500
+
501
+ **Response 字段:**
502
+ - object[]
503
+ - *(元素)*:
504
+ - `id`: string — Model id the endpoint accepts.
505
+ - `name?`: string — Human-readable name when the endpoint supplies one.
506
+ - `contextWindow?`: number — Maximum combined request and response context, when disclosed.
507
+ - `maxTokens?`: number — Maximum output tokens, when disclosed.
508
+
509
+ ### `agentPresets/*` — Agent 预设 roster(composer 的 Standard mode 等)
510
+
511
+ #### `agentPresets/list` · unary · ◉ **live 实测**
512
+
513
+ The roster off the Host: {@link list} projected to path-free rows, with the default marked and this deployment's authoring capability beside it. Whether a clie…
514
+
515
+ **Request 字段:**
516
+ - *(无参数)*
517
+
518
+ **Response 字段:**
519
+ - **AgentPresetRoster**
520
+ - `presets`: object[] — Every preset the configured roots supply, first-root-wins per id.
521
+ - *(元素)*:
522
+ - `id`: string — Stable identifier; also the label's fallback.
523
+ - `trust`: string|string — Trust of the root this preset was discovered under.
524
+ - `isDefault`: boolean — Whether a session naming no preset composes this one.
525
+ - `name?`: string — Display name the preset published.
526
+ - `description?`: string — One sentence on what this preset is for.
527
+ - `broken?`: string — Why this preset cannot compose a session; absent when it can.
528
+ - `authorable`: boolean — Whether this deployment has a root locally authored presets go to.
529
+
530
+ #### `agentPresets/read` · unary · ○ 静态可用(本轮未触发)
531
+
532
+ One preset's composition text with the roster row it belongs to.
533
+
534
+ **Request 字段:**
535
+ - `req`: string
536
+
537
+ **Response 字段:**
538
+ - **AgentPresetDocument**
539
+ - `agentPreset`: string — The preset the composition belongs to.
540
+ - `trust`: string|string — Trust of the root this preset was discovered under.
541
+ - `content`: string — The composition exactly as stored.
542
+ - `name?`: string — Display name the preset published.
543
+ - `description?`: string — One sentence on what this preset is for.
544
+
545
+ #### `agentPresets/copy` · unary · ○ 静态可用(本轮未触发)
546
+
547
+ Copy one preset through the Remote API.
548
+
549
+ **Request 字段:**
550
+ - `req`: string
551
+
552
+ **Response 字段:**
553
+ - void
554
+
555
+ #### `agentPresets/deletePreset` · unary · ○ 静态可用(本轮未触发)
556
+
557
+ Delete one preset through the Remote API.
558
+
559
+ **Request 字段:**
560
+ - `req`: string
561
+
562
+ **Response 字段:**
563
+ - void
564
+
565
+ #### `agentPresets/select` · unary · ○ 静态可用(本轮未触发)
566
+
567
+ Compose a blank session's agent from a different preset and record it.
568
+
569
+ **Request 字段:**
570
+ - **Agent**
571
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
572
+ - `options`: object — The provider route and model this agent's requests use.
573
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
574
+ - `model?`: string — Model id interpreted by the selected provider adapter.
575
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
576
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
577
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
578
+ - `log`: any
579
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
580
+ - `surface`: object — The ordered surface over this session's event log.
581
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
582
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
583
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
584
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
585
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
586
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
587
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
588
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
589
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
590
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
591
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
592
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
593
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
594
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
595
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
596
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
597
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
598
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
599
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
600
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
601
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
602
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
603
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
604
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
605
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
606
+ - `contextFold`: any — Cached fold of `request/context` events.
607
+ - `contextFoldSeq`: any
608
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
609
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
610
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
611
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
612
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
613
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
614
+ - `inbox`: object — The agent-owned projection of durable pending work.
615
+ - `session`: any
616
+ - `notifications`: any
617
+ - `state`: any
618
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
619
+ - *(元素)*:
620
+ - `role`: string — Provider-neutral conversation role.
621
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
622
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
623
+ - `source`: object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
624
+ - 变体 `{ kind: "user"; }`:
625
+ - `kind`: string
626
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
627
+ - `kind`: string
628
+ - `plugin`: string
629
+ - `form?`: n
630
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
631
+
632
+
633
+ ### `commands/*` — 斜杠命令目录(输入 / 触发)
634
+
635
+ #### `commands/list` · unary · ◉ **live 实测**
636
+
637
+ List the effective immutable command descriptors for one agent.
638
+
639
+ **Request 字段:**
640
+ - **Agent**
641
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
642
+ - `options`: object — The provider route and model this agent's requests use.
643
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
644
+ - `model?`: string — Model id interpreted by the selected provider adapter.
645
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
646
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
647
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
648
+ - `log`: any
649
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
650
+ - `surface`: object — The ordered surface over this session's event log.
651
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
652
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
653
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
654
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
655
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
656
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
657
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
658
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
659
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
660
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
661
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
662
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
663
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
664
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
665
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
666
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
667
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
668
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
669
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
670
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
671
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
672
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
673
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
674
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
675
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
676
+ - `contextFold`: any — Cached fold of `request/context` events.
677
+ - `contextFoldSeq`: any
678
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
679
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
680
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
681
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
682
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
683
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
684
+ - `inbox`: object — The agent-owned projection of durable pending work.
685
+ - `session`: any
686
+ - `notifications`: any
687
+ - `state`: any
688
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
689
+ - *(元素)*:
690
+ - `role`: string — Provider-neutral conversation role.
691
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
692
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
693
+ - `source`: object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
694
+ - 变体 `{ kind: "user"; }`:
695
+ - `kind`: string
696
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
697
+ - `kind`: string
698
+ - `plugin`: string
699
+ - `form?`: never
700
+
701
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
702
+
703
+
704
+ #### `commands/execute` · unary · ○ 静态可用(本轮未触发)
705
+
706
+ Parse and execute a known command without sending it to the model. A resolved command's lifecycle is logged: `command/run` is appended before the handler is in…
707
+
708
+ **Request 字段:**
709
+ - **Agent**
710
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
711
+ - `options`: object — The provider route and model this agent's requests use.
712
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
713
+ - `model?`: string — Model id interpreted by the selected provider adapter.
714
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
715
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
716
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
717
+ - `log`: any
718
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
719
+ - `surface`: object — The ordered surface over this session's event log.
720
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
721
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
722
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
723
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
724
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
725
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
726
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
727
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
728
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
729
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
730
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
731
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
732
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
733
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
734
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
735
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
736
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
737
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
738
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
739
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
740
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
741
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
742
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
743
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
744
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
745
+ - `contextFold`: any — Cached fold of `request/context` events.
746
+ - `contextFoldSeq`: any
747
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
748
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
749
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
750
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
751
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
752
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
753
+ - `inbox`: object — The agent-owned projection of durable pending work.
754
+ - `session`: any
755
+ - `notifications`: any
756
+ - `state`: any
757
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
758
+ - *(元素)*:
759
+ - `role`: string — Provider-neutral conversation role.
760
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
761
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
762
+ - `source`: object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
763
+ - 变体 `{ kind: "user"; }`:
764
+ - `kind`: string
765
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }
766
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
767
+
768
+
769
+ ### `goals/*` — 目标(GoalBar)
770
+
771
+ #### `goals/edit` · unary · ○ 静态可用(本轮未触发)
772
+
773
+ Edit objective and/or round cap without changing phase.
774
+
775
+ **Request 字段:**
776
+ - **Agent**
777
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
778
+ - `options`: object — The provider route and model this agent's requests use.
779
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
780
+ - `model?`: string — Model id interpreted by the selected provider adapter.
781
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
782
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
783
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
784
+ - `log`: any
785
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
786
+ - `surface`: object — The ordered surface over this session's event log.
787
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
788
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
789
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
790
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
791
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
792
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
793
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
794
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
795
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
796
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
797
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
798
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
799
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
800
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
801
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
802
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
803
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
804
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
805
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
806
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
807
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
808
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
809
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
810
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
811
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
812
+ - `contextFold`: any — Cached fold of `request/context` events.
813
+ - `contextFoldSeq`: any
814
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
815
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
816
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
817
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
818
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
819
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
820
+ - `inbox`: object — The agent-owned projection of durable pending work.
821
+ - `session`: any
822
+ - `notifications`: any
823
+ - `state`: any
824
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
825
+ - *(元素)*:
826
+ - `role`: string — Provider-neutral conversation role.
827
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
828
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
829
+ - `source`: object|object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
830
+ - 变体 `{ kind: "user"; }`:
831
+ - `kind`: string
832
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
833
+ - `kind`: string
834
+ - `plugin`: string
835
+ - `form?`: never
836
+ -
837
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
838
+
839
+
840
+ #### `goals/pause` · unary · ○ 静态可用(本轮未触发)
841
+
842
+ Pause an active goal and disarm automatic continuation.
843
+
844
+ **Request 字段:**
845
+ - **Agent**
846
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
847
+ - `options`: object — The provider route and model this agent's requests use.
848
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
849
+ - `model?`: string — Model id interpreted by the selected provider adapter.
850
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
851
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
852
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
853
+ - `log`: any
854
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
855
+ - `surface`: object — The ordered surface over this session's event log.
856
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
857
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
858
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
859
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
860
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
861
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
862
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
863
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
864
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
865
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
866
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
867
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
868
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
869
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
870
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
871
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
872
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
873
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
874
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
875
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
876
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
877
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
878
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
879
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
880
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
881
+ - `contextFold`: any — Cached fold of `request/context` events.
882
+ - `contextFoldSeq`: any
883
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
884
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
885
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
886
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
887
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
888
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
889
+ - `inbox`: object — The agent-owned projection of durable pending work.
890
+ - `session`: any
891
+ - `notifications`: any
892
+ - `state`: any
893
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
894
+ - *(元素)*:
895
+ - `role`: string — Provider-neutral conversation role.
896
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
897
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
898
+ - `source`: object|object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
899
+ - 变体 `{ kind: "user"; }`:
900
+ - `kind`: string
901
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
902
+ - `kind`: string
903
+ - `plugin`: string
904
+ - `form?`: never
905
+ -
906
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
907
+
908
+
909
+ #### `goals/resume` · unary · ○ 静态可用(本轮未触发)
910
+
911
+ Resume and arm a stopped goal, or rearm an active goal after a session-start edge, while its round budget still has capacity.
912
+
913
+ **Request 字段:**
914
+ - **Agent**
915
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
916
+ - `options`: object — The provider route and model this agent's requests use.
917
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
918
+ - `model?`: string — Model id interpreted by the selected provider adapter.
919
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
920
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
921
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
922
+ - `log`: any
923
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
924
+ - `surface`: object — The ordered surface over this session's event log.
925
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
926
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
927
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
928
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
929
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
930
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
931
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
932
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
933
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
934
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
935
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
936
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
937
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
938
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
939
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
940
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
941
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
942
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
943
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
944
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
945
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
946
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
947
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
948
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
949
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
950
+ - `contextFold`: any — Cached fold of `request/context` events.
951
+ - `contextFoldSeq`: any
952
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
953
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
954
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
955
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
956
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
957
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
958
+ - `inbox`: object — The agent-owned projection of durable pending work.
959
+ - `session`: any
960
+ - `notifications`: any
961
+ - `state`: any
962
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
963
+ - *(元素)*:
964
+ - `role`: string — Provider-neutral conversation role.
965
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
966
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
967
+ - `source`: object|object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
968
+ - 变体 `{ kind: "user"; }`:
969
+ - `kind`: string
970
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
971
+ - `kind`: string
972
+
973
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
974
+
975
+
976
+ #### `goals/complete` · unary · ○ 静态可用(本轮未触发)
977
+
978
+ Mark a current non-complete goal complete and disarm it.
979
+
980
+ **Request 字段:**
981
+ - **Agent**
982
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
983
+ - `options`: object — The provider route and model this agent's requests use.
984
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
985
+ - `model?`: string — Model id interpreted by the selected provider adapter.
986
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
987
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
988
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
989
+ - `log`: any
990
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
991
+ - `surface`: object — The ordered surface over this session's event log.
992
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
993
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
994
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
995
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
996
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
997
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
998
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
999
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
1000
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
1001
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
1002
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
1003
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
1004
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
1005
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
1006
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
1007
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
1008
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
1009
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
1010
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
1011
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
1012
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
1013
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
1014
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
1015
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
1016
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
1017
+ - `contextFold`: any — Cached fold of `request/context` events.
1018
+ - `contextFoldSeq`: any
1019
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
1020
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
1021
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
1022
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
1023
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
1024
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
1025
+ - `inbox`: object — The agent-owned projection of durable pending work.
1026
+ - `session`: any
1027
+ - `notifications`: any
1028
+ - `state`: any
1029
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
1030
+ - *(元素)*:
1031
+ - `role`: string — Provider-neutral conversation role.
1032
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
1033
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
1034
+ - `source`: object|object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
1035
+ - 变体 `{ kind: "user"; }`:
1036
+ - `kind`: string
1037
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
1038
+ - `kind`: string
1039
+ - `plugin`: string
1040
+ - `form?`: never
1041
+
1042
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
1043
+
1044
+
1045
+ #### `goals/clear` · unary · ○ 静态可用(本轮未触发)
1046
+
1047
+ Clear the current goal while retaining a durable tombstone and history.
1048
+
1049
+ **Request 字段:**
1050
+ - **Agent**
1051
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
1052
+ - `options`: object — The provider route and model this agent's requests use.
1053
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
1054
+ - `model?`: string — Model id interpreted by the selected provider adapter.
1055
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
1056
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
1057
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
1058
+ - `log`: any
1059
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
1060
+ - `surface`: object — The ordered surface over this session's event log.
1061
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
1062
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
1063
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
1064
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
1065
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
1066
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
1067
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
1068
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
1069
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
1070
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
1071
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
1072
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
1073
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
1074
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
1075
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
1076
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
1077
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
1078
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
1079
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
1080
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
1081
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
1082
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
1083
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
1084
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
1085
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
1086
+ - `contextFold`: any — Cached fold of `request/context` events.
1087
+ - `contextFoldSeq`: any
1088
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
1089
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
1090
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
1091
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
1092
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
1093
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
1094
+ - `inbox`: object — The agent-owned projection of durable pending work.
1095
+ - `session`: any
1096
+ - `notifications`: any
1097
+ - `state`: any
1098
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
1099
+ - *(元素)*:
1100
+ - `role`: string — Provider-neutral conversation role.
1101
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
1102
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
1103
+ - `source`: object|object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
1104
+ - 变体 `{ kind: "user"; }`:
1105
+ - `kind`: string
1106
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
1107
+ - `kind`: string
1108
+ - `plugin`: string
1109
+ - `form?`: n
1110
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
1111
+
1112
+
1113
+ #### `goals/create` · unary · ○ 静态可用(本轮未触发)
1114
+
1115
+ Create one Goal through the remote boundary.
1116
+
1117
+ **Request 字段:**
1118
+ - **Agent**
1119
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
1120
+ - `options`: object — The provider route and model this agent's requests use.
1121
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
1122
+ - `model?`: string — Model id interpreted by the selected provider adapter.
1123
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
1124
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
1125
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
1126
+ - `log`: any
1127
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
1128
+ - `surface`: object — The ordered surface over this session's event log.
1129
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
1130
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
1131
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
1132
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
1133
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
1134
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
1135
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
1136
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
1137
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
1138
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
1139
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
1140
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
1141
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
1142
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
1143
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
1144
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
1145
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
1146
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
1147
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
1148
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
1149
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
1150
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
1151
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
1152
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
1153
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
1154
+ - `contextFold`: any — Cached fold of `request/context` events.
1155
+ - `contextFoldSeq`: any
1156
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
1157
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
1158
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
1159
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
1160
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
1161
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
1162
+ - `inbox`: object — The agent-owned projection of durable pending work.
1163
+ - `session`: any
1164
+ - `notifications`: any
1165
+ - `state`: any
1166
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
1167
+ - *(元素)*:
1168
+ - `role`: string — Provider-neutral conversation role.
1169
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
1170
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
1171
+ - `source`: object|object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
1172
+ - 变体 `{ kind: "user"; }`:
1173
+ - `kind`: string
1174
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
1175
+ - `kind`: string
1176
+ - `plugin`: string
1177
+ - `form?`: never
1178
+ - 变体 `{ kin
1179
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
1180
+
1181
+
1182
+ ### `messageFeedback/*` — 消息 👍/👎 + 备注
1183
+
1184
+ #### `messageFeedback/list` · unary · ◉ **live 实测**
1185
+
1186
+ Read feedback belonging to the current persisted Session lifecycle. A stale row from a reused Session id is invisible.
1187
+
1188
+ **Request 字段:**
1189
+ - **MessageFeedbackListRequest**
1190
+ - `sessionId`: string ⌾SessionId — Persisted Session whose sidecar should be read.
1191
+
1192
+ **Response 字段:**
1193
+ - object|object
1194
+ - 变体 `MessageFeedbackSuccess<MessageFeedbackListValue>`:
1195
+ - `ok`: boolean
1196
+ - `value`: object
1197
+ - `items`: object[] — Fresh immutable item snapshots.
1198
+ - *(元素)*:
1199
+ - `messageId`: string ⌾MessageId — Stable identity of the assistant message inside the owning Session.
1200
+ - `rating`: string|string — Overall positive or negative judgment.
1201
+ - `note?`: string — Optional explanation, preserved verbatim after validation.
1202
+ - `version`: string — Equality-only token replaced by every material create or update.
1203
+ - `createdAt`: number — Host-assigned creation time in Unix epoch milliseconds.
1204
+ - `updatedAt`: number — Host-assigned time of the most recent material update.
1205
+ - 变体 `MessageFeedbackRejected<MessageFeedbackSessionNotFound>`:
1206
+ - `ok`: boolean
1207
+ - `error`: object
1208
+ - `code`: string
1209
+ - `sessionId`: string ⌾SessionId
1210
+
1211
+ #### `messageFeedback/put` · unary · ◉ **live 实测**
1212
+
1213
+ Create or replace feedback for one derived append-origin assistant message. Every request must match the addressed item's current version; a matching no-op ret…
1214
+
1215
+ **Request 字段:**
1216
+ - **MessageFeedbackPutRequest**
1217
+ - `sessionId`: string ⌾SessionId — Persisted Session that owns the target message.
1218
+ - `messageId`: string ⌾MessageId — Target assistant-message identity.
1219
+ - `rating`: string|string — Desired overall judgment.
1220
+ - `note?`: string — Optional non-blank explanation.
1221
+ - `ifVersion`: string — Observed item version, or `null` to require that no item exists.
1222
+
1223
+ **Response 字段:**
1224
+ - object|object
1225
+ - 变体 `MessageFeedbackSuccess<MessageFeedbackItem>`:
1226
+ - `ok`: boolean
1227
+ - `value`: object
1228
+ - `messageId`: string ⌾MessageId — Stable identity of the assistant message inside the owning Session.
1229
+ - `rating`: string|string — Overall positive or negative judgment.
1230
+ - `note?`: string — Optional explanation, preserved verbatim after validation.
1231
+ - `version`: string — Equality-only token replaced by every material create or update.
1232
+ - `createdAt`: number — Host-assigned creation time in Unix epoch milliseconds.
1233
+ - `updatedAt`: number — Host-assigned time of the most recent material update.
1234
+ - 变体 `MessageFeedbackRejected<MessageFeedbackSessionNotFound | MessageFeedbackTargetNotFound | MessageFeedbackVersionConflict | MessageFeedbackNoteBlank | MessageFeedbackNoteTooLarge>`:
1235
+ - `ok`: boolean
1236
+ - `error`: object|object|object|object|object
1237
+ - 变体 `MessageFeedbackSessionNotFound`:
1238
+ - `code`: string
1239
+ - `sessionId`: string ⌾SessionId
1240
+ - 变体 `MessageFeedbackTargetNotFound`:
1241
+ - `code`: string
1242
+ - `sessionId`: string ⌾SessionId
1243
+ - `messageId`: string ⌾MessageId
1244
+ - 变体 `MessageFeedbackVersionConflict`:
1245
+ - `code`: string
1246
+ - `current`: object — Authoritative current item, or `null` when it does not exist.
1247
+ - `messageId`: string ⌾MessageId — Stable identity of the assistant message inside the owning Session.
1248
+ - `rating`: string|string — Overall positive or negative judgment.
1249
+ - `note?`: string — Optional explanation, preserved verbatim after validation.
1250
+ - `version`: string — Equality-only token replaced by every material create or update.
1251
+ - `createdAt`: number — Host-assigned creation time in Unix epoch milliseconds.
1252
+ - `updatedAt`: number — Host-assigned time of the most recent material update.
1253
+ - 变体 `MessageFeedbackNoteBlank`:
1254
+ - `code`: string
1255
+ - 变体 `MessageFeedbackNoteTooLarge`:
1256
+ - `code`: string
1257
+ - `maxBytes`: number
1258
+ - `actualBytes`: number
1259
+
1260
+ #### `messageFeedback/delete` · unary · ○ 静态可用(本轮未触发)
1261
+
1262
+ Delete one feedback item. Absence is successful regardless of the supplied version; an existing item requires an exact version match.
1263
+
1264
+ **Request 字段:**
1265
+ - **MessageFeedbackDeleteRequest**
1266
+ - `sessionId`: string ⌾SessionId — Persisted Session that owns the sidecar.
1267
+ - `messageId`: string ⌾MessageId — Message whose feedback should be absent after this operation.
1268
+ - `ifVersion`: string — Observed item version; ignored when the item is already absent.
1269
+
1270
+ **Response 字段:**
1271
+ - object|object
1272
+ - 变体 `MessageFeedbackSuccess<MessageFeedbackDeleteValue>`:
1273
+ - `ok`: boolean
1274
+ - `value`: object
1275
+ - `absent`: boolean — Stable postcondition shared by the first deletion and every retry.
1276
+ - 变体 `MessageFeedbackRejected<MessageFeedbackSessionNotFound | MessageFeedbackVersionConflict>`:
1277
+ - `ok`: boolean
1278
+ - `error`: object|object
1279
+ - 变体 `MessageFeedbackSessionNotFound`:
1280
+ - `code`: string
1281
+ - `sessionId`: string ⌾SessionId
1282
+ - 变体 `MessageFeedbackVersionConflict`:
1283
+ - `code`: string
1284
+ - `current`: object — Authoritative current item, or `null` when it does not exist.
1285
+ - `messageId`: string ⌾MessageId — Stable identity of the assistant message inside the owning Session.
1286
+ - `rating`: string|string — Overall positive or negative judgment.
1287
+ - `note?`: string — Optional explanation, preserved verbatim after validation.
1288
+ - `version`: string — Equality-only token replaced by every material create or update.
1289
+ - `createdAt`: number — Host-assigned creation time in Unix epoch milliseconds.
1290
+ - `updatedAt`: number — Host-assigned time of the most recent material update.
1291
+
1292
+ ### `subagents/*` — 子代理目录与追踪
1293
+
1294
+ #### `subagents/list` · unary · ◉ **live 实测**
1295
+
1296
+ Remote face of {@link listChildren} for one browser: the durable listing plus live Agent activity and the delivery-time parent availability hint. Parent availa…
1297
+
1298
+ **Request 字段:**
1299
+ - `req`: string ⌾SessionId
1300
+
1301
+ **Response 字段:**
1302
+ - **SubagentCatalog**
1303
+ - `entries`: object|object|object[]
1304
+ - `parentAvailable`: boolean
1305
+
1306
+ #### `subagents/prompt` · unary · ○ 静态可用(本轮未触发)
1307
+
1308
+ Deliver one browser-authored message to a continuable child through the exact live direct parent, retaining the caller-minted request identity and validated br…
1309
+
1310
+ **Request 字段:**
1311
+ - **SubagentPromptRequest**
1312
+ - `requestId`: string — Identity persisted on the accepted message, minted before the call.
1313
+ - `parentSessionId`: string ⌾SessionId
1314
+ - `childSessionId`: string ⌾SessionId
1315
+ - `mode`: string — Required discriminator retained from the browser control address.
1316
+ - `content`: object|object[] — Browser prompt parts delivered as the child's user message. The Host admits and persists image parts before delivery, so the wire never carries a durable attac…
1317
+ - `clientTimeZone?`: string — Optional browser zone sampled for this exact human prompt.
1318
+
1319
+ **Response 字段:**
1320
+ - **SubagentPromptReceipt**
1321
+ - `messageId`: string ⌾MessageId
1322
+
1323
+ #### `subagents/interruptByParent` · unary · ○ 静态可用(本轮未触发)
1324
+
1325
+ Remote face of {@link interrupt} under one durable parent address. No catalog, history, persistence, or parent Agent lookup runs: the core primitive alone auth…
1326
+
1327
+ **Request 字段:**
1328
+ - `req`: string ⌾SessionId
1329
+
1330
+ **Response 字段:**
1331
+ - **SubagentInterruptReceipt**
1332
+ - `accepted`: boolean
1333
+
1334
+ ### `pluginInventory/*` — 插件目录只读投影(Plugins 设置页)
1335
+
1336
+ #### `pluginInventory/list` · unary · ○ 静态可用(本轮未触发)
1337
+
1338
+ Read the Loader directly on every call. Cordis's internal plugin/status events already maintain Entry.fiber and Fiber.state, so a second cache would only add a…
1339
+
1340
+ **Request 字段:**
1341
+ - *(无参数)*
1342
+
1343
+ **Response 字段:**
1344
+ - **PluginInventorySnapshot**
1345
+ - `entries`: object[]
1346
+ - *(元素)*:
1347
+ - `entryId`: string
1348
+ - `moduleName`: string — Exact module specifier imported by the Loader entry.
1349
+ - `enabled`: boolean — Effective Loader enablement, including disabled ancestor groups.
1350
+ - `fiberPhase`: string|string|string|string|string
1351
+ - `agentPresets?`: object[] — Per-preset compositions, present only when an agent-preset roster is composed in this deployment.
1352
+ - *(元素)*:
1353
+ - `id`: string — Stable preset id.
1354
+ - `trust`: string|string — Whether the deployment ships the preset or the user owns it.
1355
+ - `name?`: string — Display name the preset published; a reader falls back to the id.
1356
+ - `isDefault`: boolean — Whether a session naming no preset composes this one.
1357
+ - `broken?`: string — Why this preset's composition cannot be read; absent when rows answer.
1358
+ - `rows`: object[] — Plugin rows in composition order; empty when the preset is broken.
1359
+ - *(元素)*:
1360
+ - `entryId`: string — Composition row id, or null when the row declares none.
1361
+ - `moduleName`: string — Module specifier the row names.
1362
+ - `enabled`: boolean|boolean|string — Effective enablement, including disabled ancestor groups. `'conditional'` marks a `!!js` disabled expression on a composition no session has mounted, which onl…
1363
+ - `condition?`: string — The row's own `!!js` disabled expression, when it carries one.
1364
+ - `fiberPhase`: string|string|string|string|string — Root-fiber phase when the composition is live; null otherwise.
1365
+
1366
+ ### `dynamicCordisRunner/*` — 动态 Cordis 包(运行卡片/inspect)
1367
+
1368
+ #### `dynamicCordisRunner/undefineFromPanel` · unary · ○ 静态可用(本轮未触发)
1369
+
1370
+ Remove a Plugin from the user panel and queue the resulting state change for the model's next step.
1371
+
1372
+ **Request 字段:**
1373
+ - **Agent**
1374
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
1375
+ - `options`: object — The provider route and model this agent's requests use.
1376
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
1377
+ - `model?`: string — Model id interpreted by the selected provider adapter.
1378
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
1379
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
1380
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
1381
+ - `log`: any
1382
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
1383
+ - `surface`: object — The ordered surface over this session's event log.
1384
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
1385
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
1386
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
1387
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
1388
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
1389
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
1390
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
1391
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
1392
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
1393
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
1394
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
1395
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
1396
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
1397
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
1398
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
1399
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
1400
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
1401
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
1402
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
1403
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
1404
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
1405
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
1406
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
1407
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
1408
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
1409
+ - `contextFold`: any — Cached fold of `request/context` events.
1410
+ - `contextFoldSeq`: any
1411
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
1412
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
1413
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
1414
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
1415
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
1416
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
1417
+ - `inbox`: object — The agent-owned projection of durable pending work.
1418
+ - `session`: any
1419
+ - `notifications`: any
1420
+ - `state`: any
1421
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
1422
+ - *(元素)*:
1423
+ - `role`: string — Provider-neutral conversation role.
1424
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
1425
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
1426
+ - `source`: object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
1427
+ - 变体 `{ kind: "user"; }`:
1428
+ - `kind`: string
1429
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
1430
+ - `kind`: string
1431
+
1432
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
1433
+
1434
+
1435
+ #### `dynamicCordisRunner/runHostHalf` · unary · ○ 静态可用(本轮未触发)
1436
+
1437
+ Start Host code for an approved request or a direct panel gesture.
1438
+
1439
+ **Request 字段:**
1440
+ - **Agent**
1441
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
1442
+ - `options`: object — The provider route and model this agent's requests use.
1443
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
1444
+ - `model?`: string — Model id interpreted by the selected provider adapter.
1445
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
1446
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
1447
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
1448
+ - `log`: any
1449
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
1450
+ - `surface`: object — The ordered surface over this session's event log.
1451
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
1452
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
1453
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
1454
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
1455
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
1456
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
1457
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
1458
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
1459
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
1460
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
1461
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
1462
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
1463
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
1464
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
1465
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
1466
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
1467
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
1468
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
1469
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
1470
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
1471
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
1472
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
1473
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
1474
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
1475
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
1476
+ - `contextFold`: any — Cached fold of `request/context` events.
1477
+ - `contextFoldSeq`: any
1478
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
1479
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
1480
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
1481
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
1482
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
1483
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
1484
+ - `inbox`: object — The agent-owned projection of durable pending work.
1485
+ - `session`: any
1486
+ - `notifications`: any
1487
+ - `state`: any
1488
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
1489
+ - *(元素)*:
1490
+ - `role`: string — Provider-neutral conversation role.
1491
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
1492
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
1493
+ - `source`: object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
1494
+ - 变体 `{ kind: "user"; }`:
1495
+ - `kind`: string
1496
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
1497
+ - `kind`: string
1498
+ - `plugin`: string
1499
+ - `f
1500
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
1501
+
1502
+
1503
+ #### `dynamicCordisRunner/getClientCode` · unary · ○ 静态可用(本轮未触发)
1504
+
1505
+ Fetch Client code for the exact active run.
1506
+
1507
+ **Request 字段:**
1508
+ - **Agent**
1509
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
1510
+ - `options`: object — The provider route and model this agent's requests use.
1511
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
1512
+ - `model?`: string — Model id interpreted by the selected provider adapter.
1513
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
1514
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
1515
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
1516
+ - `log`: any
1517
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
1518
+ - `surface`: object — The ordered surface over this session's event log.
1519
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
1520
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
1521
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
1522
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
1523
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
1524
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
1525
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
1526
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
1527
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
1528
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
1529
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
1530
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
1531
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
1532
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
1533
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
1534
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
1535
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
1536
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
1537
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
1538
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
1539
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
1540
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
1541
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
1542
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
1543
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
1544
+ - `contextFold`: any — Cached fold of `request/context` events.
1545
+ - `contextFoldSeq`: any
1546
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
1547
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
1548
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
1549
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
1550
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
1551
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
1552
+ - `inbox`: object — The agent-owned projection of durable pending work.
1553
+ - `session`: any
1554
+ - `notifications`: any
1555
+ - `state`: any
1556
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
1557
+ - *(元素)*:
1558
+ - `role`: string — Provider-neutral conversation role.
1559
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
1560
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
1561
+ - `source`: object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
1562
+ - 变体 `{ kind: "user"; }`:
1563
+ - `kind`: string
1564
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
1565
+ - `kind`: string
1566
+ - `plugin`: string
1567
+ - `form?`: never
1568
+
1569
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
1570
+
1571
+
1572
+ #### `dynamicCordisRunner/resolveRequestRun` · unary · ○ 静态可用(本轮未触发)
1573
+
1574
+ Resolve one model-driven Client activation request.
1575
+
1576
+ **Request 字段:**
1577
+ - `req`: string
1578
+
1579
+ **Response 字段:**
1580
+ - **DynamicCordisResolveAck**
1581
+ - `accepted`: boolean — False for late, unknown, or stale answers.
1582
+
1583
+ #### `dynamicCordisRunner/settleUserRun` · unary · ○ 静态可用(本轮未触发)
1584
+
1585
+ Settle a direct panel run after this page loaded or failed its Client half.
1586
+
1587
+ **Request 字段:**
1588
+ - **Agent**
1589
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
1590
+ - `options`: object — The provider route and model this agent's requests use.
1591
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
1592
+ - `model?`: string — Model id interpreted by the selected provider adapter.
1593
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
1594
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
1595
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
1596
+ - `log`: any
1597
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
1598
+ - `surface`: object — The ordered surface over this session's event log.
1599
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
1600
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
1601
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
1602
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
1603
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
1604
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
1605
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
1606
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
1607
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
1608
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
1609
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
1610
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
1611
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
1612
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
1613
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
1614
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
1615
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
1616
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
1617
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
1618
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
1619
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
1620
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
1621
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
1622
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
1623
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
1624
+ - `contextFold`: any — Cached fold of `request/context` events.
1625
+ - `contextFoldSeq`: any
1626
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
1627
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
1628
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
1629
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
1630
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
1631
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
1632
+ - `inbox`: object — The agent-owned projection of durable pending work.
1633
+ - `session`: any
1634
+ - `notifications`: any
1635
+ - `state`: any
1636
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
1637
+ - *(元素)*:
1638
+ - `role`: string — Provider-neutral conversation role.
1639
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
1640
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
1641
+ - `source`: object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
1642
+ - 变体 `{ kind: "user"; }`:
1643
+ - `kind`: string
1644
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
1645
+ - `kind`: string
1646
+ - `plugin`: string
1647
+
1648
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
1649
+
1650
+
1651
+ #### `dynamicCordisRunner/stopFromPanel` · unary · ○ 静态可用(本轮未触发)
1652
+
1653
+ Stop a Plugin from the user panel and queue the resulting state change for the model's next step.
1654
+
1655
+ **Request 字段:**
1656
+ - **Agent**
1657
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
1658
+ - `options`: object — The provider route and model this agent's requests use.
1659
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
1660
+ - `model?`: string — Model id interpreted by the selected provider adapter.
1661
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
1662
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
1663
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
1664
+ - `log`: any
1665
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
1666
+ - `surface`: object — The ordered surface over this session's event log.
1667
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
1668
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
1669
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
1670
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
1671
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
1672
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
1673
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
1674
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
1675
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
1676
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
1677
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
1678
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
1679
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
1680
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
1681
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
1682
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
1683
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
1684
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
1685
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
1686
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
1687
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
1688
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
1689
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
1690
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
1691
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
1692
+ - `contextFold`: any — Cached fold of `request/context` events.
1693
+ - `contextFoldSeq`: any
1694
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
1695
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
1696
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
1697
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
1698
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
1699
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
1700
+ - `inbox`: object — The agent-owned projection of durable pending work.
1701
+ - `session`: any
1702
+ - `notifications`: any
1703
+ - `state`: any
1704
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
1705
+ - *(元素)*:
1706
+ - `role`: string — Provider-neutral conversation role.
1707
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
1708
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
1709
+ - `source`: object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
1710
+ - 变体 `{ kind: "user"; }`:
1711
+ - `kind`: string
1712
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
1713
+ - `kind`: string
1714
+ -
1715
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
1716
+
1717
+
1718
+ #### `dynamicCordisRunner/syncInspectManifest` · unary · ◉ **live 实测**
1719
+
1720
+ Replace the Host mirror of the Client inspect provider directory.
1721
+
1722
+ **Request 字段:**
1723
+ - `req`: object[]
1724
+ - *(元素)*:
1725
+ - `id`: string — Provider identity, unique within one platform.
1726
+ - `description`: string — Capability described by this provider.
1727
+ - `methods`: object[] — Explicit read-only queries.
1728
+ - *(元素)*:
1729
+ - `name`: string — Method name, unique within its provider.
1730
+ - `description`: string — What the query returns and when to use it.
1731
+ - `inputSchema`: json (any JSON value) — JSON Schema accepted by the query.
1732
+ - `outputSchema`: json (any JSON value) — JSON Schema produced by the query.
1733
+
1734
+ **Response 字段:**
1735
+ - null
1736
+
1737
+ #### `dynamicCordisRunner/resolveInspectQuery` · unary · ○ 静态可用(本轮未触发)
1738
+
1739
+ Claim one pending Client inspect query with its live result.
1740
+
1741
+ **Request 字段:**
1742
+ - **Agent**
1743
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
1744
+ - `options`: object — The provider route and model this agent's requests use.
1745
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
1746
+ - `model?`: string — Model id interpreted by the selected provider adapter.
1747
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
1748
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
1749
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
1750
+ - `log`: any
1751
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
1752
+ - `surface`: object — The ordered surface over this session's event log.
1753
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
1754
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
1755
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
1756
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
1757
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
1758
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
1759
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
1760
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
1761
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
1762
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
1763
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
1764
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
1765
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
1766
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
1767
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
1768
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
1769
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
1770
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
1771
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
1772
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
1773
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
1774
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
1775
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
1776
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
1777
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
1778
+ - `contextFold`: any — Cached fold of `request/context` events.
1779
+ - `contextFoldSeq`: any
1780
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
1781
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
1782
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
1783
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
1784
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
1785
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
1786
+ - `inbox`: object — The agent-owned projection of durable pending work.
1787
+ - `session`: any
1788
+ - `notifications`: any
1789
+ - `state`: any
1790
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
1791
+ - *(元素)*:
1792
+ - `role`: string — Provider-neutral conversation role.
1793
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
1794
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
1795
+ - `source`: object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
1796
+ - 变体 `{ kind: "user"; }`:
1797
+ - `kind`: string
1798
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
1799
+ - `kind`: string
1800
+ - `plugin`: string
1801
+ -
1802
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
1803
+
1804
+
1805
+ #### `dynamicCordisRunner/inventory` · unary · ◉ **live 实测**
1806
+
1807
+ Frame-wide inventory, grouped as one row per stable Plugin.
1808
+
1809
+ **Request 字段:**
1810
+ - *(无参数)*
1811
+
1812
+ **Response 字段:**
1813
+ - object[]
1814
+ - *(元素)*:
1815
+ - `pluginId`: string — Stable plugin instance.
1816
+ - `agentId`: string ⌾SessionId — Session that owns this plugin.
1817
+ - `packages`: object[] — Immutable versions in define order.
1818
+ - *(元素)*:
1819
+ - `packageId`: string — Immutable package version.
1820
+ - `name`: string — Package label.
1821
+ - `purpose`: string — User-facing purpose.
1822
+ - `hasHostHalf`: boolean — Whether this version contains Host code.
1823
+ - `hasClientHalf`: boolean — Whether this version contains Client code.
1824
+ - `currentPackageId?`: string — Last package that completed activation successfully.
1825
+ - `nextPackageId?`: string — Package selected for a failed or in-progress transition.
1826
+ - `activeRun?`: object — Current activation, absent while stopped.
1827
+ - `pluginRunId`: string
1828
+ - `packageId`: string
1829
+ - `latestRun?`: object — Latest activation attempt, including pending approval and diagnostics.
1830
+ - `pluginRunId`: string — Exact attempt identity.
1831
+ - `packageId`: string — Target Package.
1832
+ - `mode`: string|string — Explicit run/update intent.
1833
+ - `status`: string|string|string|string|string|string|string|string|string — Current attempt state.
1834
+ - `approvalRequestId?`: string — Pending Client activation request; it represents approval only when `requiresApproval` is true.
1835
+ - `requiresApproval?`: boolean — Whether the pending Client activation requires a user decision.
1836
+ - `host`: object — Host-half state.
1837
+ - `status`: string|string|string|string|string|string — Lifecycle state of this half.
1838
+ - `waitingFor`: string[] — Services still needed by a successfully created Fiber.
1839
+ - `error?`: string — Failure text for this half.
1840
+ - `client`: object — Client-half state.
1841
+ - `status`: string|string|string|string|string|string — Lifecycle state of this half.
1842
+ - `waitingFor`: string[] — Services still needed by a successfully created Fiber.
1843
+ - `error?`: string — Failure text for this half.
1844
+ - `error?`: object — Most recent failure.
1845
+ - `phase`: string|string|string|string|string|string — Stage that failed.
1846
+ - `message`: string — Original failure text.
1847
+ - `stack?`: string — Original failure stack when available.
1848
+ - `pluginId`: string — Stable Plugin identity.
1849
+ - `packageId`: string — Immutable Package identity.
1850
+ - `pluginRunId`: string — Exact attempt identity.
1851
+
1852
+ #### `dynamicCordisRunner/reportRenderFailure` · unary · ○ 静态可用(本轮未触发)
1853
+
1854
+ Record a post-load render failure for the exact active run.
1855
+
1856
+ **Request 字段:**
1857
+ - **Agent**
1858
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
1859
+ - `options`: object — The provider route and model this agent's requests use.
1860
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
1861
+ - `model?`: string — Model id interpreted by the selected provider adapter.
1862
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
1863
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
1864
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
1865
+ - `log`: any
1866
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
1867
+ - `surface`: object — The ordered surface over this session's event log.
1868
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
1869
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
1870
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
1871
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
1872
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
1873
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
1874
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
1875
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
1876
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
1877
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
1878
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
1879
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
1880
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
1881
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
1882
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
1883
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
1884
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
1885
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
1886
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
1887
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
1888
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
1889
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
1890
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
1891
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
1892
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
1893
+ - `contextFold`: any — Cached fold of `request/context` events.
1894
+ - `contextFoldSeq`: any
1895
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
1896
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
1897
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
1898
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
1899
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
1900
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
1901
+ - `inbox`: object — The agent-owned projection of durable pending work.
1902
+ - `session`: any
1903
+ - `notifications`: any
1904
+ - `state`: any
1905
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
1906
+ - *(元素)*:
1907
+ - `role`: string — Provider-neutral conversation role.
1908
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
1909
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
1910
+ - `source`: object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
1911
+ - 变体 `{ kind: "user"; }`:
1912
+ - `kind`: string
1913
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
1914
+ - `kind`: string
1915
+ - `plugin`: string
1916
+ - `
1917
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
1918
+
1919
+
1920
+ #### `dynamicCordisRunner/reportClientGuardFailure` · unary · ○ 静态可用(本轮未触发)
1921
+
1922
+ Report a Client guard rejection that happened after the Package completed activation.
1923
+
1924
+ **Request 字段:**
1925
+ - **Agent**
1926
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
1927
+ - `options`: object — The provider route and model this agent's requests use.
1928
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
1929
+ - `model?`: string — Model id interpreted by the selected provider adapter.
1930
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
1931
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
1932
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
1933
+ - `log`: any
1934
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
1935
+ - `surface`: object — The ordered surface over this session's event log.
1936
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
1937
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
1938
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
1939
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
1940
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
1941
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
1942
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
1943
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
1944
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
1945
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
1946
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
1947
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
1948
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
1949
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
1950
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
1951
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
1952
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
1953
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
1954
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
1955
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
1956
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
1957
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
1958
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
1959
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
1960
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
1961
+ - `contextFold`: any — Cached fold of `request/context` events.
1962
+ - `contextFoldSeq`: any
1963
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
1964
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
1965
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
1966
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
1967
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
1968
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
1969
+ - `inbox`: object — The agent-owned projection of durable pending work.
1970
+ - `session`: any
1971
+ - `notifications`: any
1972
+ - `state`: any
1973
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
1974
+ - *(元素)*:
1975
+ - `role`: string — Provider-neutral conversation role.
1976
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
1977
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
1978
+ - `source`: object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
1979
+ - 变体 `{ kind: "user"; }`:
1980
+ - `kind`: string
1981
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
1982
+ - `kind`: string
1983
+ - `
1984
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
1985
+
1986
+
1987
+ #### `dynamicCordisRunner/invoke` · unary · ○ 静态可用(本轮未触发)
1988
+
1989
+ Invoke an active Host method while rejecting stale Client runs.
1990
+
1991
+ **Request 字段:**
1992
+ - `req`: string
1993
+
1994
+ **Response 字段:**
1995
+ - object|object
1996
+ - 变体 `{ ok: true; value: JsonValue; }`:
1997
+ - `ok`: boolean
1998
+ - `value`: json (any JSON value)
1999
+ - 变体 `{ ok: false; code: "plugin-not-running" | "stale-run" | "method-not-found" | "handler-error"; } & CordisErrorDetails`:
2000
+ - `ok`: boolean
2001
+ - `code`: string|string|string|string
2002
+ - `message`: string — Original error message.
2003
+ - `stack?`: string — Original stack when the thrown value supplied one.
2004
+
2005
+ ### `sessionReferenceResolver/*` — 会话引用解析(@session)
2006
+
2007
+ #### `sessionReferenceResolver/candidates` · unary · ○ 静态可用(本轮未触发)
2008
+
2009
+ Remote face of {@link listCandidates}: the configured candidate limit applies, and every candidate carries the canonical mention a host inserts into the prompt…
2010
+
2011
+ **Request 字段:**
2012
+ - **Agent**
2013
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
2014
+ - `options`: object — The provider route and model this agent's requests use.
2015
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
2016
+ - `model?`: string — Model id interpreted by the selected provider adapter.
2017
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
2018
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
2019
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
2020
+ - `log`: any
2021
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
2022
+ - `surface`: object — The ordered surface over this session's event log.
2023
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
2024
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
2025
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
2026
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
2027
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
2028
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
2029
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
2030
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
2031
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
2032
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
2033
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
2034
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
2035
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
2036
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
2037
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
2038
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
2039
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
2040
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
2041
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
2042
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
2043
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
2044
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
2045
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
2046
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
2047
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
2048
+ - `contextFold`: any — Cached fold of `request/context` events.
2049
+ - `contextFoldSeq`: any
2050
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
2051
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
2052
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
2053
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
2054
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
2055
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
2056
+ - `inbox`: object — The agent-owned projection of durable pending work.
2057
+ - `session`: any
2058
+ - `notifications`: any
2059
+ - `state`: any
2060
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
2061
+ - *(元素)*:
2062
+ - `role`: string — Provider-neutral conversation role.
2063
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
2064
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
2065
+ - `source`: object|object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
2066
+ - 变体 `{ kind: "user"; }`:
2067
+ - `kind`: string
2068
+ - 变体 `{ kind: "plugin"; plugin: string; } &
2069
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
2070
+
2071
+
2072
+ ### `agentTeams/*` — 实验:多 agent 团队
2073
+
2074
+ #### `agentTeams/view` · unary · ○ 静态可用(本轮未触发)
2075
+
2076
+ Read the current roster and non-deleted task board through the generated Remote API.
2077
+
2078
+ **Request 字段:**
2079
+ - **Agent**
2080
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
2081
+ - `options`: object — The provider route and model this agent's requests use.
2082
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
2083
+ - `model?`: string — Model id interpreted by the selected provider adapter.
2084
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
2085
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
2086
+ - `subagentDepth?`: number — Delegation depth: zero for a top-level agent and parent depth + 1 for a child.
2087
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
2088
+ - `log`: any
2089
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
2090
+ - `surface`: object — The ordered surface over this session's event log.
2091
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
2092
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
2093
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
2094
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
2095
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
2096
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
2097
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
2098
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
2099
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
2100
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
2101
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
2102
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
2103
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
2104
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
2105
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
2106
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
2107
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
2108
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
2109
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
2110
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
2111
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
2112
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
2113
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
2114
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
2115
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
2116
+ - `contextFold`: any — Cached fold of `request/context` events.
2117
+ - `contextFoldSeq`: any
2118
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
2119
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
2120
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
2121
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
2122
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
2123
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
2124
+ - `inbox`: object — The agent-owned projection of durable pending work.
2125
+ - `session`: any
2126
+ - `notifications`: any
2127
+ - `state`: any
2128
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
2129
+ - *(元素)*:
2130
+ - `role`: string — Provider-neutral conversation role.
2131
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
2132
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
2133
+ - `source`: object|object|object|object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
2134
+ - 变体 `{ kind: "user"; }`:
2135
+ - `kind`: string
2136
+ - 变体 `{ kind:
2137
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
2138
+
2139
+
2140
+ #### `agentTeams/createTask` · unary · ○ 静态可用(本轮未触发)
2141
+
2142
+ Create one shared task through the generated Remote API.
2143
+
2144
+ **Request 字段:**
2145
+ - **Agent**
2146
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
2147
+ - `options`: object — The provider route and model this agent's requests use.
2148
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
2149
+ - `model?`: string — Model id interpreted by the selected provider adapter.
2150
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
2151
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
2152
+ - `subagentDepth?`: number — Delegation depth: zero for a top-level agent and parent depth + 1 for a child.
2153
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
2154
+ - `log`: any
2155
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
2156
+ - `surface`: object — The ordered surface over this session's event log.
2157
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
2158
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
2159
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
2160
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
2161
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
2162
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
2163
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
2164
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
2165
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
2166
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
2167
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
2168
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
2169
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
2170
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
2171
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
2172
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
2173
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
2174
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
2175
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
2176
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
2177
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
2178
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
2179
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
2180
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
2181
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
2182
+ - `contextFold`: any — Cached fold of `request/context` events.
2183
+ - `contextFoldSeq`: any
2184
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
2185
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
2186
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
2187
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
2188
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
2189
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
2190
+ - `inbox`: object — The agent-owned projection of durable pending work.
2191
+ - `session`: any
2192
+ - `notifications`: any
2193
+ - `state`: any
2194
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
2195
+ - *(元素)*:
2196
+ - `role`: string — Provider-neutral conversation role.
2197
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
2198
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
2199
+ - `source`: object|object|object|object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
2200
+ - 变体 `{ kind: "user"; }`:
2201
+ - `kind`: string
2202
+ - 变体 `{ kind: "plugin"; plugin: stri
2203
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
2204
+
2205
+
2206
+ #### `agentTeams/updateTask` · unary · ○ 静态可用(本轮未触发)
2207
+
2208
+ Apply one task mutation and preserve Team rejections as business results.
2209
+
2210
+ **Request 字段:**
2211
+ - **Agent**
2212
+ - `id`: string ⌾SessionId — Session-backed Agent identity.
2213
+ - `options`: object — The provider route and model this agent's requests use.
2214
+ - `provider?`: string — Provider route (must have a registered adapter at call time).
2215
+ - `model?`: string — Model id interpreted by the selected provider adapter.
2216
+ - `reasoningEffort?`: string — Adapter-owned reasoning effort for the selected provider/model route.
2217
+ - `maxTokens?`: number — Maximum output tokens for each conversation-model request.
2218
+ - `subagentDepth?`: number — Delegation depth: zero for a top-level agent and parent depth + 1 for a child.
2219
+ - `session`: object — The live session this agent drives; its log is the durable source of truth.
2220
+ - `log`: any
2221
+ - `surfaceManager`: any — Single incremental owner of surface acceptance and projection state.
2222
+ - `surface`: object — The ordered surface over this session's event log.
2223
+ - `nodes`: number[] — Current surface event sequences in model-visible order.
2224
+ - `replaceGeneration`: number — Monotonic count of committed positional replacements.
2225
+ - `header`: object — Detached, deep-frozen creation metadata (format version, cwd, lineage, and whether fork history exists). Supplied by the store via `ctx.sessions.create()`. Whe…
2226
+ - `version`: number — On-disk format version, stamped from {@link SESSION_FORMAT_VERSION} when the session is created. A persistence backend rejects any other version on load (no mi…
2227
+ - `id`: string ⌾SessionId — The session's id (mirrors the {@link Session }'s id).
2228
+ - `createdAt`: number — Non-negative safe-integer Unix epoch milliseconds when the session was created.
2229
+ - `cwd?`: string — Absolute working directory the session was created in (if any).
2230
+ - `parentSession?`: string ⌾SessionId — The session this one was forked from (seed lineage), if any.
2231
+ - `isSeeded`: boolean — Whether this Session contains a fork-inherited event prefix. The exact prefix length is Session state rather than ordinary header metadata.
2232
+ - `origin?`: string — Coarse product classification for a session created as a subagent child. This is presentation metadata, not proof that the child is continuable.
2233
+ - `delegationDepth?`: number — Delegation depth: absent (zero) for a top-level session, parent depth + 1 for a subagent child. Persisted so a recursion budget survives restart and resume — a…
2234
+ - `agentPreset?`: string — Id of the agent preset this session's agent was composed from, when the deployment composes per session. Durable because the preset decides the session's tools…
2235
+ - `inheritedEventCount`: number — Number of leading events inherited from this Session's fork parent.
2236
+ - `id`: string ⌾SessionId — The session identity, derived from its durable header's single copy.
2237
+ - `firstLiveSeq`: number — The first seq appended IN THIS PROCESS: the length of the constructor seed (0 without one). Events with smaller seq values entered through construction — repla…
2238
+ - `eventsSnapshot`: any — Cached immutable full snapshot of the private append-only log.
2239
+ - `eventAt`: function — Return the immutable event stored at one exact sequence number.
2240
+ - `snapshotEvents`: function — Materialize an immutable snapshot of a half-open event sequence range. A full current snapshot is reused until the next append; every previously returned snaps…
2241
+ - `ownEvents`: function — Return this Session's events after its fork-inherited prefix.
2242
+ - `isOwnSeq`: function — Whether one existing event position is outside the fork-inherited prefix.
2243
+ - `seq`: number — The next event's sequence number — always the log length (the `seq = log.length` contiguity contract).
2244
+ - `append`: function — Append one typed event to the log and synchronously notify observers via the store-owned, module-private publication hooks. The hot path never blocks on I/O — …
2245
+ - `headerFold`: any — Cached fold of the request-header events — see {@link requestHeader}.
2246
+ - `headerFoldSeq`: any — Log position (events consumed) the header fold has reached.
2247
+ - `requestHeader`: function — The {@link EpochHeader} in force after the log's last header event — the header the NEXT request will be compared against — or undefined before the first `requ…
2248
+ - `contextFold`: any — Cached fold of `request/context` events.
2249
+ - `contextFoldSeq`: any
2250
+ - `requestContext`: function — Return the latest resolved route metadata, or `undefined` before the first `request/context` event. Each event is folded once.
2251
+ - `derived`: any — The derived-message cache: frozen projections, extended per unseen node.
2252
+ - `derivedNodes`: any — Surface position (nodes projected) the cache has reached.
2253
+ - `derivedGeneration`: any — {@link SurfaceManager.replaceGeneration } the cache was built under.
2254
+ - `deriveMessages`: function — Derive the LLM message history by walking the ordered sequences of message-producing events maintained by `surfaceOp` markers. The surface is the single source…
2255
+ - `deriveEventMessage`: function — Instance face of the pure per-node `deriveEventMessage` export from `surface.ts`.
2256
+ - `inbox`: object — The agent-owned projection of durable pending work.
2257
+ - `session`: any
2258
+ - `notifications`: any
2259
+ - `state`: any
2260
+ - `nextTurn`: object[] — Prompts awaiting individual turns.
2261
+ - *(元素)*:
2262
+ - `role`: string — Provider-neutral conversation role.
2263
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
2264
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
2265
+ - `source`: object|object|object|object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
2266
+ - 变体 `{ kind: "user"; }`:
2267
+ - `kind`: string
2268
+ - 变体 `{ kind: "plug
2269
+ - …*(深展开截断——该响应内嵌大型共享 manifest;完整字段树见 `webui-wire-data/remote-inventory.json`)*
2270
+
2271
+
2272
+
2273
+ ## 二、会话事件类型全表(SessionEventMap 核心+插件合并,51 种;live 观测 12 种)
2274
+
2275
+ > 这是 `session/follow` 的 `event` 帧 `value.event.data` 的载荷字典,也是**对接方要产出的日志词汇表**。
2276
+ > `ignorable: true` 语义:读者不认识可安全跳过;未标记的未知事件读者必须拒绝。
2277
+
2278
+ #### 事件 `agent-preset/selected`
2279
+
2280
+ The session's agent preset was chosen after creation, while the session was still blank. Log-only: it records the composition later turns ran under, so a resum…
2281
+
2282
+ **data 字段:**
2283
+
2284
+ - **{ agentPreset: string; }**
2285
+ - `agentPreset`: string
2286
+
2287
+ *来源: `packages/preset/agent-presets/src/session.ts`*
2288
+
2289
+ #### 事件 `agent/inbox/spliced`
2290
+
2291
+ One normalized mutation of an agent's durable pending-message lists. Live dispatch precedes projection mutation, so synchronous observers may read the pre-spli…
2292
+
2293
+ **data 字段:**
2294
+
2295
+ - **{ target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: "canceled"; }**
2296
+ - `target`: string|string
2297
+ - `start`: number
2298
+ - `removedCount?`: number
2299
+ - `inserted`: object[]
2300
+ - *(元素)*:
2301
+ - `role`: string — Provider-neutral conversation role.
2302
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
2303
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
2304
+ - `source`: object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
2305
+ - 变体 `{ kind: "user"; }`:
2306
+ - `kind`: string
2307
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
2308
+ - `kind`: string
2309
+ - `plugin`: string
2310
+ - `form?`: never
2311
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form: "instructions"; }`:
2312
+ - `kind`: string
2313
+ - `plugin`: string
2314
+ - `form`: string
2315
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form: "catalog"; }`:
2316
+ - `kind`: string
2317
+ - `plugin`: string
2318
+ - `form`: string
2319
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form: "snapshot"; readonly sections: readonly ContextSnapshotSection[]; }`:
2320
+ - `kind`: string
2321
+ - `plugin`: string
2322
+ - `form`: string
2323
+ - `sections`: object[] — The named contributions this snapshot assembled, in order.
2324
+ - *(元素)*:
2325
+ - `name`: string — The contributing subsystem's name.
2326
+ - `text`: string — That contribution's model-facing text, exactly as assembled.
2327
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form: "notice"; readonly summary: string; }`:
2328
+ - `kind`: string
2329
+ - `plugin`: string
2330
+ - `form`: string
2331
+ - `summary`: string — One-line account of what happened, shown without expanding the row.
2332
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form: "relay"; }`:
2333
+ - `kind`: string
2334
+ - `plugin`: string
2335
+ - `form`: string
2336
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form: "recall"; }`:
2337
+ - `kind`: string
2338
+ - `plugin`: string
2339
+ - `form`: string
2340
+ - 变体 `ModelMessageSource`:
2341
+ - `kind`: string
2342
+ - `provider`: string — Provider route that produced the message.
2343
+ - `model`: string — Provider model id that produced the message.
2344
+ - `replayState?`: unknown — Lossless-JSON adapter state needed to replay the provider response. `LlmRuntime` exposes it to a target adapter only when that adapter instance currently owns …
2345
+ - 变体 `ToolMessageSource`:
2346
+ - `kind`: string
2347
+ - `callId`: string ⌾ToolCallId
2348
+ - `outcome?`: string
2349
+
2350
+ *来源: `packages/core/agent/src/types.ts`*
2351
+
2352
+ #### 事件 `approval/asked`
2353
+
2354
+ An approval question was put to the answerer chain — log-only audit (like `hook/*`; NOT a surface event, carries no `surfaceOp`). `id` pairs it with the `appro…
2355
+
2356
+ **data 字段:**
2357
+
2358
+ - **{ id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; }**
2359
+ - `id`: string
2360
+ - `toolName`: string
2361
+ - `callId?`: string ⌾ToolCallId
2362
+ - `reason?`: string
2363
+
2364
+ *来源: `packages/interaction/user-approval/src/types.ts`*
2365
+
2366
+ #### 事件 `approval/decided`
2367
+
2368
+ The outcome of a prior `approval/asked` (same `id`) — log-only audit. Exactly one per ask, appended when the outcome is known: a decision, a cancellation, or t…
2369
+
2370
+ **data 字段:**
2371
+
2372
+ - **{ id: ApprovalRequestId; outcome: ApprovalOutcome; }**
2373
+ - `id`: string
2374
+ - `outcome`: string|string|string|string
2375
+
2376
+ *来源: `packages/interaction/user-approval/src/types.ts`*
2377
+
2378
+ #### 事件 `approval/policy`
2379
+
2380
+ The session's approval policy was switched — log-only, durable, replayable, never in the model transcript (the model learns the policy from the runtime-context…
2381
+
2382
+ **data 字段:**
2383
+
2384
+ - **{ policy: ApprovalPolicy; source?: "delegation"; }**
2385
+ - `policy`: string|string
2386
+ - `source?`: string — Marks an override seeded into a child at delegation.
2387
+
2388
+ *来源: `packages/interaction/user-approval/src/index.ts`*
2389
+
2390
+ #### 事件 `assistant/chunk`
2391
+
2392
+ Raw stream chunk — token-level replay fidelity.
2393
+
2394
+ **data 字段:**
2395
+
2396
+ - **{ turn: number; step: number; chunk: StreamChunk; }**
2397
+ - `turn`: number
2398
+ - `step`: number
2399
+ - `chunk`: object|object|object|object|object|object|object
2400
+ - 变体 `{ type: "block-start"; index: number; blockType: keyof ContentBlockMap; }`:
2401
+ - `type`: string
2402
+ - `index`: number
2403
+ - `blockType`: string|string|string|string|string
2404
+ - 变体 `{ type: "text-delta"; index: number; text: string; }`:
2405
+ - `type`: string
2406
+ - `index`: number
2407
+ - `text`: string
2408
+ - 变体 `{ type: "reasoning-delta"; index: number; text: string; }`:
2409
+ - `type`: string
2410
+ - `index`: number
2411
+ - `text`: string
2412
+ - 变体 `{ type: "tool-call-delta"; index: number; id: ToolCallId; name?: string; argumentsDelta: string; }`:
2413
+ - `type`: string
2414
+ - `index`: number
2415
+ - `id`: string ⌾ToolCallId
2416
+ - `name?`: string
2417
+ - `argumentsDelta`: string
2418
+ - 变体 `{ type: "block-end"; index: number; block: ContentBlock; }`:
2419
+ - `type`: string
2420
+ - `index`: number
2421
+ - `block`: object|object|object|object|object
2422
+ - 变体 `TextBlock`:
2423
+ - `type`: string
2424
+ - `text`: string
2425
+ - 变体 `ReasoningBlock`:
2426
+ - `type`: string
2427
+ - `text`: string
2428
+ - 变体 `ImageBlock`:
2429
+ - `type`: string
2430
+ - `attachment`: object — Immutable bytes and intrinsic display metadata owned by the attachment service.
2431
+ - `attachmentId`: string — Opaque storage identifier; never a filesystem path or bearer URL.
2432
+ - `mediaType`: string|string|string|string — Media type verified from the stored bytes.
2433
+ - `bytes`: number — Exact encoded byte length.
2434
+ - `width`: number — Intrinsic encoded width in pixels.
2435
+ - `height`: number — Intrinsic encoded height in pixels.
2436
+ - `name?`: string — Optional display name stripped of local path information.
2437
+ - `originalDimensions?`: object — Input dimensions after applying EXIF orientation and before normalization scaling. Present only when normalization reduced the image.
2438
+ - `width`: number
2439
+ - `height`: number
2440
+ - 变体 `ToolCallBlock`:
2441
+ - `type`: string
2442
+ - `id`: string ⌾ToolCallId — Provider-issued call id; correlates with the matching tool result.
2443
+ - `name`: string
2444
+ - `arguments`: string — Raw JSON string as produced by the model.
2445
+ - 变体 `ToolResultBlock`:
2446
+ - `type`: string
2447
+ - `toolCallId`: string ⌾ToolCallId
2448
+ - `content`: object|object|object|object|recursive[]
2449
+ - `isError?`: boolean
2450
+ - 变体 `{ type: "usage"; usage: TokenUsage; }`:
2451
+ - `type`: string
2452
+ - `usage`: object
2453
+ - `inputTokens`: number
2454
+ - `outputTokens`: number
2455
+ - `totalTokens?`: number — Exact full-call total including aggregate prompt and output tokens. Adapters preserve a provider total or derive it from authoritative aggregate prompt/output …
2456
+ - `cacheReadTokens?`: number
2457
+ - `cacheWriteTokens?`: number
2458
+ - `reasoningTokens?`: number
2459
+ - 变体 `{ type: "finish"; reason: FinishReason; replayState?: ReplayEnvelope; }`:
2460
+ - `type`: string
2461
+ - `reason`: object|object|object|object|object
2462
+ - 变体 `{ kind: "aborted"; failure: LlmFailure; }`:
2463
+ - `kind`: string
2464
+ - `failure`: object
2465
+ - `message`: string — Human-readable provider or transport failure.
2466
+ - `code`: string — Stable provider-neutral machine-routing code.
2467
+ - `status?`: number — HTTP status returned by the provider, when available.
2468
+ - `providerRetryAfterMs?`: number — Provider-requested delay in milliseconds, when valid and available.
2469
+ - `requestId?`: string — Opaque provider-issued request identifier for diagnostics.
2470
+ - 变体 `{ kind: "error"; failure: LlmFailure; }`:
2471
+ - `kind`: string
2472
+ - `failure`: object
2473
+ - `message`: string — Human-readable provider or transport failure.
2474
+ - `code`: string — Stable provider-neutral machine-routing code.
2475
+ - `status?`: number — HTTP status returned by the provider, when available.
2476
+ - `providerRetryAfterMs?`: number — Provider-requested delay in milliseconds, when valid and available.
2477
+ - `requestId?`: string — Opaque provider-issued request identifier for diagnostics.
2478
+ - 变体 `{ kind: "max-tokens"; }`:
2479
+ - `kind`: string
2480
+ - 变体 `{ kind: "stop"; }`:
2481
+ - `kind`: string
2482
+ - 变体 `{ kind: "tool-calls"; }`:
2483
+ - `kind`: string
2484
+ - `replayState?`: object — Replay metadata for a successful response; see {@link ReplayEnvelope}.
2485
+ - `response`: unknown — Response-level adapter-private metadata (ids, native stop reason).
2486
+ - `blocks?`: unknown[] — Per-block adapter-private metadata, one entry per emitted block in first-seen stream order. When assembly drops a block it drops the entry at the same position…
2487
+
2488
+ *来源: `packages/core/session/src/types.ts`*
2489
+
2490
+ #### 事件 `assistant/message`
2491
+
2492
+ Assembled assistant message for one step (derived history uses this). Carries the step's `usage` when the adapter reported token accounting, so the model outpu…
2493
+
2494
+ **data 字段:**
2495
+
2496
+ - **{ turn: number; step: number; message: AssistantMessage; usage?: TokenUsage; interrupted?: true; }**
2497
+ - `turn`: number
2498
+ - `step`: number
2499
+ - `message`: object
2500
+ - `role`: string — Provider-neutral conversation role.
2501
+ - `source`: object — Required source fields supplied by the producer.
2502
+ - `kind`: string
2503
+ - `provider`: string — Provider route that produced the message.
2504
+ - `model`: string — Provider model id that produced the message.
2505
+ - `replayState?`: unknown — Lossless-JSON adapter state needed to replay the provider response. `LlmRuntime` exposes it to a target adapter only when that adapter instance currently owns …
2506
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
2507
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
2508
+ - `usage?`: object
2509
+ - `inputTokens`: number
2510
+ - `outputTokens`: number
2511
+ - `totalTokens?`: number — Exact full-call total including aggregate prompt and output tokens. Adapters preserve a provider total or derive it from authoritative aggregate prompt/output …
2512
+ - `cacheReadTokens?`: number
2513
+ - `cacheWriteTokens?`: number
2514
+ - `reasoningTokens?`: number
2515
+ - `interrupted?`: boolean
2516
+
2517
+ *来源: `packages/core/session/src/types.ts`*
2518
+
2519
+ #### 事件 `command/done`
2520
+
2521
+ The paired command settled. `kind`/`text` carry the handler's verbatim outcome (a thrown/aborted handler settles as `kind: 'error'` with the rendered failure).…
2522
+
2523
+ **data 字段:**
2524
+
2525
+ - **{ commandId: CommandId; kind: "success" | "error"; text?: string; sourceEventSeq?: SessionSeq; }**
2526
+ - `commandId`: string
2527
+ - `kind`: string|string
2528
+ - `text?`: string
2529
+ - `sourceEventSeq?`: number
2530
+
2531
+ *来源: `packages/interaction/commands/src/types.ts`*
2532
+
2533
+ #### 事件 `command/run`
2534
+
2535
+ A resolved slash command entered its handler. Log-only (never model surface); paired with `command/done` by `commandId`, mirroring the `tool/call`↔`tool/result…
2536
+
2537
+ **data 字段:**
2538
+
2539
+ - **{ commandId: CommandId; name: string; args?: string; source: { kind: "user"; }; }**
2540
+ - `commandId`: string
2541
+ - `name`: string
2542
+ - `args?`: string
2543
+ - `source`: object
2544
+ - `kind`: string
2545
+
2546
+ *来源: `packages/interaction/commands/src/types.ts`*
2547
+
2548
+ #### 事件 `compaction/end`
2549
+
2550
+ Marks the end of a compaction — log-only, releases the lock. Its owner matches `compaction/start`; `error` records an unsuccessful attempt.
2551
+
2552
+ **data 字段:**
2553
+
2554
+ - **{ compactionId: CompactionId; sourceCommandId?: CommandId; turn: number; error?: string; }**
2555
+ - `compactionId`: string
2556
+ - `sourceCommandId?`: string
2557
+ - `turn`: number
2558
+ - `error?`: string
2559
+
2560
+ *来源: `packages/compaction/compaction/src/types.ts`*
2561
+
2562
+ #### 事件 `compaction/prune`
2563
+
2564
+ Shadow price of one model-free prune replacement — log-only, no surfaceOp. The shared shadow-price protocol: a surface `replace` event is priced by the meterin…
2565
+
2566
+ **data 字段:**
2567
+
2568
+ - **{ shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; }**
2569
+ - `shadowedRange`: object — The replaced range's first and last surface-node seqs (a surface-position span, like {@link CompactionResult.shadowedRange}).
2570
+ - `start`: number
2571
+ - `end`: number
2572
+ - `shadowedSeqs`: number[] — The seqs of all shadowed surface nodes, in surface order.
2573
+ - `shadowedTokenCount`: number — Heuristic price of the shadowed content under the token-meter's fixed estimator.
2574
+
2575
+ *来源: `packages/compaction/compaction/src/types.ts`*
2576
+
2577
+ #### 事件 `compaction/start`
2578
+
2579
+ Marks the start of a compaction — log-only, holds the lock until `compaction/end`. A numbered owner is strictly enclosed by that open turn; `null` identifies a…
2580
+
2581
+ **data 字段:**
2582
+
2583
+ - **{ compactionId: CompactionId; sourceCommandId?: CommandId; turn: number; }**
2584
+ - `compactionId`: string
2585
+ - `sourceCommandId?`: string
2586
+ - `turn`: number
2587
+
2588
+ *来源: `packages/compaction/compaction/src/types.ts`*
2589
+
2590
+ #### 事件 `compaction/summary`
2591
+
2592
+ Completed summary, its inputs, and its model call facts — log-only, no surfaceOp. The summary content is in `data.summary`; the actual surface replacement is p…
2593
+
2594
+ **data 字段:**
2595
+
2596
+ - object|object
2597
+ - 变体 `{ compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: SessionSeq; end: SessionSeq; }; ... 5 more ...; usage?: TokenUsage; } & { ...; }`:
2598
+ - `compactionId`: string
2599
+ - `sourceCommandId?`: string
2600
+ - `summary`: object|object|object|object|object[]
2601
+ - `shadowedRange`: object
2602
+ - `start`: number
2603
+ - `end`: number
2604
+ - `shadowedSeqs`: number[]
2605
+ - `shadowedTokenCount`: number
2606
+ - `provider`: string — The provider route that wrote the summary.
2607
+ - `model`: string — The model that wrote the summary — the summarize call's envelope, reported by the backend that made the call, logged so the one-shot request is reconstructable…
2608
+ - `maxTokens?`: number — The generation cap the summarize call sent, when one applied.
2609
+ - `usage?`: object — Provider-reported token usage for the summarization request, when emitted.
2610
+ - `inputTokens`: number
2611
+ - `outputTokens`: number
2612
+ - `totalTokens?`: number — Exact full-call total including aggregate prompt and output tokens. Adapters preserve a provider total or derive it from authoritative aggregate prompt/output …
2613
+ - `cacheReadTokens?`: number
2614
+ - `cacheWriteTokens?`: number
2615
+ - `reasoningTokens?`: number
2616
+ - `rawOutput`: object|object|object|object|object[] — Complete provider output before the backend's safe summary projection.
2617
+ - `llmStreamCall`: boolean — Identifies exactly one call through this context's `ctx.llm.stream()`.
2618
+ - 变体 `{ compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: SessionSeq; end: SessionSeq; }; ... 5 more ...; usage?: TokenUsage; } & { ...; }`:
2619
+ - `compactionId`: string
2620
+ - `sourceCommandId?`: string
2621
+ - `summary`: object|object|object|object|object[]
2622
+ - `shadowedRange`: object
2623
+ - `start`: number
2624
+ - `end`: number
2625
+ - `shadowedSeqs`: number[]
2626
+ - `shadowedTokenCount`: number
2627
+ - `provider`: string — The provider route that wrote the summary.
2628
+ - `model`: string — The model that wrote the summary — the summarize call's envelope, reported by the backend that made the call, logged so the one-shot request is reconstructable…
2629
+ - `maxTokens?`: number — The generation cap the summarize call sent, when one applied.
2630
+ - `usage?`: object — Provider-reported token usage for the summarization request, when emitted.
2631
+ - `inputTokens`: number
2632
+ - `outputTokens`: number
2633
+ - `totalTokens?`: number — Exact full-call total including aggregate prompt and output tokens. Adapters preserve a provider total or derive it from authoritative aggregate prompt/output …
2634
+ - `cacheReadTokens?`: number
2635
+ - `cacheWriteTokens?`: number
2636
+ - `reasoningTokens?`: number
2637
+ - `rawOutput?`: object|object|object|object|object[] — Optional complete output from an unmarked template, remote, or other summarizer.
2638
+ - `llmStreamCall?`: never — An unmarked summary does not identify a call through this context's LLM seam.
2639
+
2640
+ *来源: `packages/compaction/compaction/src/types.ts`*
2641
+
2642
+ #### 事件 `feedback/record`
2643
+
2644
+ One recorded human remark about this session. Log-only and independent of its trigger; it never enters model context or derived history.
2645
+
2646
+ **data 字段:**
2647
+
2648
+ - **{ text: string; }**
2649
+ - `text`: string
2650
+
2651
+ *来源: `packages/feedback/command-feedback/src/index.ts`*
2652
+
2653
+ #### 事件 `goal/change`
2654
+
2655
+ Complete post-mutation goal state or clear tombstone.
2656
+
2657
+ **data 字段:**
2658
+
2659
+ - object|object
2660
+ - 变体 `GoalSnapshotChangeMeta`:
2661
+ - `kind`: string
2662
+ - `version`: number
2663
+ - `operation`: string|string|string|string|string|string
2664
+ - `goal`: object
2665
+ - `objective`: string — Human-requested completion objective.
2666
+ - `phase`: string|string|string|string — Durable lifecycle phase.
2667
+ - `blockedReason?`: object — Present exactly while `phase` is `blocked`.
2668
+ - `code`: string — Stable lower-kebab-case classification chosen by the blocking policy.
2669
+ - `message`: string — Non-empty explanation shown to humans and models.
2670
+ - `maxGoalRounds`: number — Total admitted goal-round cap.
2671
+ - `id`: string — Stable goal identity.
2672
+ - `revision`: number — Positive revision; every durable mutation increments it.
2673
+ - `roundsStarted`: number
2674
+ - `createdAt`: number
2675
+ - `updatedAt`: number
2676
+ - 变体 `GoalClearChangeMeta`:
2677
+ - `kind`: string
2678
+ - `version`: number
2679
+ - `operation`: string
2680
+ - `cleared`: object
2681
+ - `id`: string — Stable goal identity.
2682
+ - `revision`: number — Positive revision; every durable mutation increments it.
2683
+ - `clearedAt`: number
2684
+
2685
+ *来源: `packages/goal/goal/src/domain.ts`*
2686
+
2687
+ #### 事件 `hook/invoked`
2688
+
2689
+ A hook command was invoked at a hook point — a log-only record (like `compaction/*`; NOT a {@link SurfaceEventType }, carries no `surfaceOp`). `dialect` is the…
2690
+
2691
+ **data 字段:**
2692
+
2693
+ - **{ turn: number; point: string; dialect: HookDialect; matcher?: string; handlerId: string; }**
2694
+ - `turn`: number
2695
+ - `point`: string
2696
+ - `dialect`: string|string
2697
+ - `matcher?`: string
2698
+ - `handlerId`: string
2699
+
2700
+ *来源: `packages/hooks/hook-protocol/src/types.ts`*
2701
+
2702
+ #### 事件 `hook/result`
2703
+
2704
+ Log-only outcome paired to `hook/invoked` by `handlerId`. Decision is the parsed permission result, `stop` for `continue:false`, or `pass`; exit code may be ab…
2705
+
2706
+ **data 字段:**
2707
+
2708
+ - **{ turn: number; point: string; handlerId: string; decision: string; exitCode?: number; stderrSummary?: string; durationMs: number; }**
2709
+ - `turn`: number
2710
+ - `point`: string
2711
+ - `handlerId`: string
2712
+ - `decision`: string
2713
+ - `exitCode?`: number
2714
+ - `stderrSummary?`: string
2715
+ - `durationMs`: number
2716
+
2717
+ *来源: `packages/hooks/hook-protocol/src/types.ts`*
2718
+
2719
+ #### 事件 `llm/retry`
2720
+
2721
+ Durable, non-surface record of one provider-routed retry scheduled after a failed request attempt.
2722
+
2723
+ **data 字段:**
2724
+
2725
+ - object|object
2726
+ - 变体 `{ retryId: RetryId; turn: number; step: number; provider: string; mode: "normal"; policyKey: string; retry: number; maxRetries: number; delayMs: number; failure: LlmFailure; }`:
2727
+ - `retryId`: string
2728
+ - `turn`: number
2729
+ - `step`: number
2730
+ - `provider`: string
2731
+ - `mode`: string
2732
+ - `policyKey`: string
2733
+ - `retry`: number
2734
+ - `maxRetries`: number
2735
+ - `delayMs`: number
2736
+ - `failure`: object
2737
+ - `message`: string — Human-readable provider or transport failure.
2738
+ - `code`: string — Stable provider-neutral machine-routing code.
2739
+ - `status?`: number — HTTP status returned by the provider, when available.
2740
+ - `providerRetryAfterMs?`: number — Provider-requested delay in milliseconds, when valid and available.
2741
+ - `requestId?`: string — Opaque provider-issued request identifier for diagnostics.
2742
+ - 变体 `{ retryId: RetryId; turn: number; step: number; provider: string; mode: "always"; policyKey: string; retry: number; delayMs: number; failure: LlmFailure; }`:
2743
+ - `retryId`: string
2744
+ - `turn`: number
2745
+ - `step`: number
2746
+ - `provider`: string
2747
+ - `mode`: string
2748
+ - `policyKey`: string
2749
+ - `retry`: number
2750
+ - `delayMs`: number
2751
+ - `failure`: object
2752
+ - `message`: string — Human-readable provider or transport failure.
2753
+ - `code`: string — Stable provider-neutral machine-routing code.
2754
+ - `status?`: number — HTTP status returned by the provider, when available.
2755
+ - `providerRetryAfterMs?`: number — Provider-requested delay in milliseconds, when valid and available.
2756
+ - `requestId?`: string — Opaque provider-issued request identifier for diagnostics.
2757
+
2758
+ *来源: `packages/llm/llm-retry/src/types.ts`*
2759
+
2760
+ #### 事件 `llm/retry-started`
2761
+
2762
+ Durable transition written after a retry wait succeeds and before the next request attempt starts.
2763
+
2764
+ **data 字段:**
2765
+
2766
+ - **LlmRetryStartedEventData**
2767
+ - `retryId`: string
2768
+ - `turn`: number
2769
+ - `step`: number
2770
+ - `retry`: number
2771
+
2772
+ *来源: `packages/llm/llm-retry/src/types.ts`*
2773
+
2774
+ #### 事件 `model/selection`
2775
+
2776
+ Complete validated model selection requested for subsequent prompt assembly. Log-only: it never enters derived model history.
2777
+
2778
+ **data 字段:**
2779
+
2780
+ - **ModelSelection**
2781
+ - `provider`: string
2782
+ - `model`: string
2783
+ - `reasoningEffort?`: string
2784
+
2785
+ *来源: `packages/api/session-controller/src/types.ts`*
2786
+
2787
+ #### 事件 `permission/preset`
2788
+
2789
+ Records the selected preset as durable, log-only user intent. The knob events follow in the same turn and control execution; this event stays out of the model …
2790
+
2791
+ **data 字段:**
2792
+
2793
+ - **{ preset: string; }**
2794
+ - `preset`: string
2795
+
2796
+ *来源: `packages/interaction/permission-presets/src/index.ts`*
2797
+
2798
+ #### 事件 `plan/mode`
2799
+
2800
+ Whether plan mode is in force from this point on: log-only, non-surface, whole-value replace. The last `plan/mode` wins; a log with none folds to inactive thro…
2801
+
2802
+ **data 字段:**
2803
+
2804
+ - **{ active: boolean; }**
2805
+ - `active`: boolean
2806
+
2807
+ *来源: `packages/plan/plan-mode/src/index.ts`*
2808
+
2809
+ #### 事件 `request/context`
2810
+
2811
+ Route metadata for the next request, logged only when the route or capacity changes. It does not participate in request reconstruction or header equality.
2812
+
2813
+ **data 字段:**
2814
+
2815
+ - **RequestContext**
2816
+ - `provider`: string — Registered provider route the metadata belongs to.
2817
+ - `model`: string — Provider-owned model id the metadata belongs to.
2818
+ - `contextWindow?`: number — Maximum combined request and response context in tokens, when advertised.
2819
+
2820
+ *来源: `packages/core/session/src/types.ts`*
2821
+
2822
+ #### 事件 `request/header`
2823
+
2824
+ Full header for the next request, appended inside its step before dispatch. It is log-only; the latest snapshot reconstructs the request header.
2825
+
2826
+ **data 字段:**
2827
+
2828
+ - **{ header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; }**
2829
+ - `header`: object
2830
+ - `config`: object — The conversation's call configuration (provider, model, reasoning effort, and sampling scalars).
2831
+ - `provider`: string
2832
+ - `model`: string
2833
+ - `reasoningEffort?`: string
2834
+ - `temperature?`: number
2835
+ - `maxTokens?`: number
2836
+ - `stop?`: string[]
2837
+ - `adapterDefaults?`: object — Effective config fields materialized from the exact adapter rather than proposed by a caller.
2838
+ - `reasoningEffort?`: boolean
2839
+ - `maxTokens?`: boolean
2840
+ - `system?`: string — Rendered system prompt text; absent for a system-less request.
2841
+ - `tools?`: object[] — Assembled tool schemas; absent for a tool-less request.
2842
+ - *(元素)*:
2843
+ - `name`: string
2844
+ - `description`: string
2845
+ - `parameters`: record<string, …> — JSON Schema object for the arguments.
2846
+ - `reason`: string|string|string|string
2847
+ - `startsSeries?`: boolean — A changed header also begins a distinct model-message series.
2848
+
2849
+ *来源: `packages/core/session/src/types.ts`*
2850
+
2851
+ #### 事件 `sandbox/mode`
2852
+
2853
+ The session's sandbox mode was switched — log-only (like `approval/*`; NOT a surface event, carries no `surfaceOp`): durable and replayable, never in the model…
2854
+
2855
+ **data 字段:**
2856
+
2857
+ - **{ mode: SandboxMode; source?: "delegation"; }**
2858
+ - `mode`: string|string|string
2859
+ - `source?`: string — Marks an override seeded into a child at delegation.
2860
+
2861
+ *来源: `packages/sandbox/sandbox-policy/src/session-mode.ts`*
2862
+
2863
+ #### 事件 `schedule/change`
2864
+
2865
+ Versioned Schedule mutation. The owning package validates the complete session-local transition stream before accepting a candidate event.
2866
+
2867
+ **data 字段:**
2868
+
2869
+ - object|object|object|object
2870
+ - 变体 `ScheduleCreateChange`:
2871
+ - `version`: number
2872
+ - `operation`: string
2873
+ - `schedule`: object|object|object
2874
+ - 变体 `AfterScheduleRecord`:
2875
+ - `id`: string — Session-local stable identity.
2876
+ - `kind`: string — Rule discriminator for a delayed one-shot reminder.
2877
+ - `prompt`: string — Trimmed reminder content supplied at creation.
2878
+ - `afterSeconds`: number — Positive safe-integer delay accepted at creation.
2879
+ - `scheduledAt`: string — Four-digit-year RFC 3339 UTC target.
2880
+ - 变体 `AtScheduleRecord`:
2881
+ - `id`: string — Session-local stable identity.
2882
+ - `kind`: string — Rule discriminator for an absolute one-shot reminder.
2883
+ - `prompt`: string — Trimmed reminder content supplied at creation.
2884
+ - `scheduledAt`: string — Four-digit-year RFC 3339 UTC target.
2885
+ - 变体 `EveryScheduleRecord`:
2886
+ - `id`: string — Session-local stable identity.
2887
+ - `kind`: string — Rule discriminator for a fixed-rate recurring reminder.
2888
+ - `prompt`: string — Trimmed reminder content supplied at creation.
2889
+ - `everySeconds`: number — Fixed safe-integer interval, never below five minutes.
2890
+ - `scheduledAt`: string — Earliest anchor-aligned occurrence not yet dispatched.
2891
+ - 变体 `ScheduleDeleteChange`:
2892
+ - `version`: number
2893
+ - `operation`: string
2894
+ - `id`: string
2895
+ - 变体 `OneShotScheduleDispatchChange`:
2896
+ - `version`: number
2897
+ - `operation`: string
2898
+ - `id`: string
2899
+ - 变体 `EveryScheduleDispatchChange`:
2900
+ - `version`: number
2901
+ - `operation`: string
2902
+ - `id`: string
2903
+ - `acceptedAt`: string — Wall-clock decision time used to select the latest due occurrence.
2904
+
2905
+ *来源: `packages/schedule/schedule/src/types.ts`*
2906
+
2907
+ #### 事件 `session-log-deepseek/delivery-accepted`
2908
+
2909
+ Records that the configured endpoint accepted one delivery through `throughSeq`.
2910
+
2911
+ **data 字段:**
2912
+
2913
+ - **{ sessionId: SessionId; throughSeq: SessionSeq; }**
2914
+ - `sessionId`: string ⌾SessionId — Session identity the accepted delivery carried; inherited fork markers retain the parent's id.
2915
+ - `throughSeq`: number — Last canonical event included in the accepted request.
2916
+
2917
+ *来源: `packages/session/session-log-deepseek/src/types.ts`*
2918
+
2919
+ #### 事件 `session/end-seed`
2920
+
2921
+ Marks the end of a constructor seed. Events before it have smaller seq values and came from the seed (resume, fork, or replay); this lifecycle produced none of…
2922
+
2923
+ **data 字段:**
2924
+
2925
+ - record<string, …>
2926
+
2927
+ *来源: `packages/core/session/src/types.ts`*
2928
+
2929
+ #### 事件 `session/title`
2930
+
2931
+ Latest-wins session title snapshot. Log-only: it never enters the model surface or derived history.
2932
+
2933
+ **data 字段:**
2934
+
2935
+ - **SessionTitleEventData**
2936
+ - `title`: string — Normalized non-empty title text.
2937
+ - `messageSeqs`: number[] — Exact human `user/message` seqs used to derive this title; empty for an explicit user rename.
2938
+ - `source`: object|object|object — Whether the built-in fallback, a registered provider, or the user supplied the title.
2939
+ - 变体 `{ readonly kind: "fallback"; }`:
2940
+ - `kind`: string
2941
+ - 变体 `{ readonly kind: "provider"; readonly provider: SessionTitleProviderId; readonly model?: SessionTitleModelProvenance; }`:
2942
+ - `kind`: string
2943
+ - `provider`: string
2944
+ - `model?`: object
2945
+ - `provider`: string — Registered LLM provider route.
2946
+ - `model`: string — Provider model id.
2947
+ - 变体 `{ readonly kind: "user"; }`:
2948
+ - `kind`: string — Explicit user rename: pins the title — automatic generation stops scheduling.
2949
+
2950
+ *来源: `packages/session/session-title/src/index.ts`*
2951
+
2952
+ #### 事件 `session/title-llm-request`
2953
+
2954
+ Log-only pre-dispatch record of one session-title model request.
2955
+
2956
+ **data 字段:**
2957
+
2958
+ - **SessionTitleLlmRequestEventData**
2959
+ - `titleProvider`: string — Registered title-provider identity responsible for the request.
2960
+ - `messageSeqs`: number[] — Exact human `user/message` seqs represented in `messages`.
2961
+ - `route`: object — Exact auxiliary LLM route.
2962
+ - `provider`: string — Registered LLM provider route.
2963
+ - `model`: string — Provider model id.
2964
+ - `system`: string — Exact auxiliary system prompt.
2965
+ - `messages`: object[] — Exact auxiliary message list.
2966
+ - *(元素)*:
2967
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
2968
+ - `role`: string|string|string — Provider-neutral conversation role.
2969
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
2970
+ - `source`: object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
2971
+ - 变体 `{ kind: "user"; }`:
2972
+ - `kind`: string
2973
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
2974
+ - `kind`: string
2975
+ - `plugin`: string
2976
+ - `form?`: never
2977
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form: "instructions"; }`:
2978
+ - `kind`: string
2979
+ - `plugin`: string
2980
+ - `form`: string
2981
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form: "catalog"; }`:
2982
+ - `kind`: string
2983
+ - `plugin`: string
2984
+ - `form`: string
2985
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form: "snapshot"; readonly sections: readonly ContextSnapshotSection[]; }`:
2986
+ - `kind`: string
2987
+ - `plugin`: string
2988
+ - `form`: string
2989
+ - `sections`: object[] — The named contributions this snapshot assembled, in order.
2990
+ - *(元素)*:
2991
+ - `name`: string — The contributing subsystem's name.
2992
+ - `text`: string — That contribution's model-facing text, exactly as assembled.
2993
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form: "notice"; readonly summary: string; }`:
2994
+ - `kind`: string
2995
+ - `plugin`: string
2996
+ - `form`: string
2997
+ - `summary`: string — One-line account of what happened, shown without expanding the row.
2998
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form: "relay"; }`:
2999
+ - `kind`: string
3000
+ - `plugin`: string
3001
+ - `form`: string
3002
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form: "recall"; }`:
3003
+ - `kind`: string
3004
+ - `plugin`: string
3005
+ - `form`: string
3006
+ - 变体 `ModelMessageSource`:
3007
+ - `kind`: string
3008
+ - `provider`: string — Provider route that produced the message.
3009
+ - `model`: string — Provider model id that produced the message.
3010
+ - `replayState?`: unknown — Lossless-JSON adapter state needed to replay the provider response. `LlmRuntime` exposes it to a target adapter only when that adapter instance currently owns …
3011
+ - 变体 `ToolMessageSource`:
3012
+ - `kind`: string
3013
+ - `callId`: string ⌾ToolCallId
3014
+ - `maxTokens`: number — Exact auxiliary output-token cap.
3015
+
3016
+ *来源: `packages/session/session-title-llm/src/index.ts`*
3017
+
3018
+ #### 事件 `step/end`
3019
+
3020
+ Closes step `step` of turn `turn`.
3021
+
3022
+ **data 字段:**
3023
+
3024
+ - **{ turn: number; step: number; }**
3025
+ - `turn`: number
3026
+ - `step`: number
3027
+
3028
+ *来源: `packages/core/session/src/types.ts`*
3029
+
3030
+ #### 事件 `step/start`
3031
+
3032
+ Opens step `step` of turn `turn` — one model call plus the tool executions it requested.
3033
+
3034
+ **data 字段:**
3035
+
3036
+ - **{ turn: number; step: number; }**
3037
+ - `turn`: number
3038
+ - `step`: number
3039
+
3040
+ *来源: `packages/core/session/src/types.ts`*
3041
+
3042
+ #### 事件 `subagent/descriptor`
3043
+
3044
+ Durable identity and lifecycle mode of a session-backed subagent child, appended once by the establishing provider inside the child's initial turn, before its …
3045
+
3046
+ **data 字段:**
3047
+
3048
+ - object|object
3049
+ - 变体 `OneShotSubagentDescriptorData`:
3050
+ - `mode`: string — Whether the child is a terminal one-shot run or a resumable conversation.
3051
+ - `label?`: string — The initial delegation's short `description`, kept as the child's durable creation label so enumeration can identify the conversation without replaying parent …
3052
+ - `version`: number — Descriptor format version ({@link SUBAGENT_DESCRIPTOR_VERSION}).
3053
+ - `provider`: string — The `ctx.subagents` provider name that established the child.
3054
+ - 变体 `ContinuableSubagentDescriptorData`:
3055
+ - `mode`: string — Whether the child is a terminal one-shot run or a resumable conversation.
3056
+ - `label`: string — The initial delegation's short `description`, used for durable enumeration.
3057
+ - `agentProvider?`: string — Resolved child `agentOptions.provider`, when one was declared.
3058
+ - `agentModel?`: string — Resolved child `agentOptions.model`, when one was declared.
3059
+ - `agentReasoningEffort?`: string — Resolved child `agentOptions.reasoningEffort`, when one was declared.
3060
+ - `persona?`: string — Per-child persona that shadows the deployment persona on resume.
3061
+ - `toolFilter?`: object — Child tool scoping reapplied on resume.
3062
+ - `allow?`: string[] — Global tool names that stay visible; everything else is removed.
3063
+ - `deny?`: string[] — Global tool names removed from visibility.
3064
+ - `version`: number — Descriptor format version ({@link SUBAGENT_DESCRIPTOR_VERSION}).
3065
+ - `provider`: string — The `ctx.subagents` provider name that established the child.
3066
+
3067
+ *来源: `packages/subagent/subagent/src/descriptor.ts`*
3068
+
3069
+ #### 事件 `subagent/model-selection-policy`
3070
+
3071
+ Records that this session's delegation tool exposes child provider, model, and reasoning-effort selection. Appended before the first model request; absence mea…
3072
+
3073
+ **data 字段:**
3074
+
3075
+ - **{ allowedModels: AllowedModelRoute[]; }**
3076
+ - `allowedModels`: object[] — Exact routes this Session may select explicitly for a child.
3077
+ - *(元素)*:
3078
+ - `provider`: string — Registered LLM provider id.
3079
+ - `model`: string — Provider-owned exact model id.
3080
+
3081
+ *来源: `packages/subagent/tool-subagent/src/model-selection-state.ts`*
3082
+
3083
+ #### 事件 `team/member`
3084
+
3085
+ Whole teammate lifecycle value, stored only in the Team Lead Session.
3086
+
3087
+ **data 字段:**
3088
+
3089
+ - **{ version: 1; teamId: TeamId; member: TeamMemberSnapshot; }**
3090
+ - `version`: number
3091
+ - `teamId`: string
3092
+ - `member`: object
3093
+ - `id`: string ⌾SessionId
3094
+ - `name`: string
3095
+ - `description`: string
3096
+ - `provider`: string
3097
+ - `context`: string|string
3098
+ - `phase`: string|string|string
3099
+ - `error?`: string
3100
+
3101
+ *来源: `packages/experimental/agent-team/src/types.ts`*
3102
+
3103
+ #### 事件 `team/message/delivered`
3104
+
3105
+ Durable acknowledgement that the target Session recorded the message.
3106
+
3107
+ **data 字段:**
3108
+
3109
+ - **{ version: 1; teamId: TeamId; messageId: TeamMessageId; targetId: SessionId; }**
3110
+ - `version`: number
3111
+ - `teamId`: string
3112
+ - `messageId`: string ⌾MessageId
3113
+ - `targetId`: string ⌾SessionId
3114
+
3115
+ *来源: `packages/experimental/agent-team/src/types.ts`*
3116
+
3117
+ #### 事件 `team/message/queued`
3118
+
3119
+ Durable mailbox enqueue, stored before delivery is attempted.
3120
+
3121
+ **data 字段:**
3122
+
3123
+ - **{ version: 1; teamId: TeamId; message: TeamMessageSnapshot; }**
3124
+ - `version`: number
3125
+ - `teamId`: string
3126
+ - `message`: object
3127
+ - `id`: string ⌾MessageId
3128
+ - `senderId`: string ⌾SessionId
3129
+ - `senderName`: string
3130
+ - `targetId`: string ⌾SessionId
3131
+ - `delivery`: string|string
3132
+ - `content`: object|object|object|object|object[]
3133
+
3134
+ *来源: `packages/experimental/agent-team/src/types.ts`*
3135
+
3136
+ #### 事件 `team/task`
3137
+
3138
+ Whole shared-task value, stored only in the Team Lead Session.
3139
+
3140
+ **data 字段:**
3141
+
3142
+ - **{ version: 1; teamId: TeamId; task: TeamTaskSnapshot; }**
3143
+ - `version`: number
3144
+ - `teamId`: string
3145
+ - `task`: object
3146
+ - `id`: string
3147
+ - `revision`: number
3148
+ - `subject`: string
3149
+ - `description`: string
3150
+ - `status`: string|string|string|string
3151
+ - `ownerId?`: string ⌾SessionId
3152
+ - `blockedBy`: string[]
3153
+ - `writeScopes`: string[]
3154
+
3155
+ *来源: `packages/experimental/agent-team/src/types.ts`*
3156
+
3157
+ #### 事件 `todo/write`
3158
+
3159
+ Whole-list snapshot; latest write wins on replay. Log-only UI state; never derived history.
3160
+
3161
+ **data 字段:**
3162
+
3163
+ - **{ todos: TodoItem[]; }**
3164
+ - `todos`: object[]
3165
+ - *(元素)*:
3166
+ - `content`: string — What this task is — a short imperative line shown in the UI.
3167
+ - `status`: string|string|string — Lifecycle state. `in_progress` marks a task being worked now; parallel work may mark several.
3168
+
3169
+ *来源: `packages/todo/tool-todo/src/types.ts`*
3170
+
3171
+ #### 事件 `tool-workflow/agent-end`
3172
+
3173
+ Records one member settlement.
3174
+
3175
+ **data 字段:**
3176
+
3177
+ - **ToolWorkflowAgentEndData**
3178
+ - `runId`: string
3179
+ - `seq`: number
3180
+ - `outcome`: string|string|string
3181
+
3182
+ *来源: `packages/workflow/tool-workflow/src/types.ts`*
3183
+
3184
+ #### 事件 `tool-workflow/agent-start`
3185
+
3186
+ Records one published workflow member.
3187
+
3188
+ **data 字段:**
3189
+
3190
+ - **ToolWorkflowAgentStartData**
3191
+ - `runId`: string
3192
+ - `seq`: number
3193
+ - `label`: string
3194
+ - `phase?`: string
3195
+ - `childId`: string ⌾SessionId
3196
+
3197
+ *来源: `packages/workflow/tool-workflow/src/types.ts`*
3198
+
3199
+ #### 事件 `tool-workflow/run-end`
3200
+
3201
+ Closes one workflow record after cleanup.
3202
+
3203
+ **data 字段:**
3204
+
3205
+ - **ToolWorkflowRunEndData**
3206
+ - `runId`: string
3207
+ - `stopReason`: string|string|string
3208
+
3209
+ *来源: `packages/workflow/tool-workflow/src/types.ts`*
3210
+
3211
+ #### 事件 `tool-workflow/run-start`
3212
+
3213
+ Opens one top-level workflow record.
3214
+
3215
+ **data 字段:**
3216
+
3217
+ - **ToolWorkflowRunStartData**
3218
+ - `runId`: string
3219
+ - `name`: string
3220
+
3221
+ *来源: `packages/workflow/tool-workflow/src/types.ts`*
3222
+
3223
+ #### 事件 `tool/call`
3224
+
3225
+ The model requested one tool invocation: `name` with the raw `arguments` JSON string exactly as the model produced it (unparsed). `callId` pairs the call with …
3226
+
3227
+ **data 字段:**
3228
+
3229
+ - **{ turn: number; step: number; callId: ToolCallId; name: string; arguments: string; }**
3230
+ - `turn`: number
3231
+ - `step`: number
3232
+ - `callId`: string ⌾ToolCallId
3233
+ - `name`: string
3234
+ - `arguments`: string
3235
+
3236
+ *来源: `packages/core/session/src/types.ts`*
3237
+
3238
+ #### 事件 `tool/code-dispatch`
3239
+
3240
+ One bridged sub-dispatch SETTLING: the pairing ids (matching the `tool/code-dispatch-start` with the same `subCallId`), the tool `name` with the same JSON-norm…
3241
+
3242
+ **data 字段:**
3243
+
3244
+ - **PtcDispatchEventData**
3245
+ - `isError`: boolean
3246
+ - `content`: object|object|object|object|object[]
3247
+ - `rootCallId`: string ⌾ToolCallId
3248
+ - `parentCallId`: string ⌾ToolCallId
3249
+ - `subCallId`: string ⌾ToolCallId
3250
+ - `name`: string
3251
+ - `arguments`: unknown
3252
+
3253
+ *来源: `packages/core/tools/src/types.ts`*
3254
+
3255
+ #### 事件 `tool/code-dispatch-start`
3256
+
3257
+ One sub-dispatch STARTING inside a `run_code` program: the parent `run_code` call id, the deterministic sub-call id (`<parent>:code:<n>`, numbered in submissio…
3258
+
3259
+ **data 字段:**
3260
+
3261
+ - **PtcDispatchStartEventData**
3262
+ - `rootCallId`: string ⌾ToolCallId
3263
+ - `parentCallId`: string ⌾ToolCallId
3264
+ - `subCallId`: string ⌾ToolCallId
3265
+ - `name`: string
3266
+ - `arguments`: unknown
3267
+
3268
+ *来源: `packages/core/tools/src/types.ts`*
3269
+
3270
+ #### 事件 `tool/result`
3271
+
3272
+ A completed tool call's model-facing result, optional internal failure identity, and optional tool-private `meta` presentation payload. `meta` is opaque to the…
3273
+
3274
+ **data 字段:**
3275
+
3276
+ - **{ turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; }; meta?: JsonValue; }**
3277
+ - `turn`: number
3278
+ - `step`: number
3279
+ - `message`: object
3280
+ - `role`: string — Provider-neutral conversation role.
3281
+ - `content`: object — Exact model-facing blocks.
3282
+ - `0`: object
3283
+ - `type`: string
3284
+ - `toolCallId`: string ⌾ToolCallId
3285
+ - `content`: object|object|object|object|recursive[]
3286
+ - `isError?`: boolean
3287
+ - `length`: number
3288
+ - `toString`: function — Returns a string representation of an array.
3289
+ - `toLocaleString`: function — Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.
3290
+ - `pop`: function — Removes the last element from an array and returns it. If the array is empty, undefined is returned and the array is not modified.
3291
+ - `push`: function — Appends new elements to the end of an array, and returns the new length of the array.
3292
+ - `concat`: function — Combines two or more arrays. This method returns a new array without modifying any existing arrays.
3293
+ - `join`: function — Adds all the elements of an array into a string, separated by the specified separator string.
3294
+ - `reverse`: function — Reverses the elements in an array in place. This method mutates the array and returns a reference to the same array.
3295
+ - `shift`: function — Removes the first element from an array and returns it. If the array is empty, undefined is returned and the array is not modified.
3296
+ - `slice`: function — Returns a copy of a section of an array. For both start and end, a negative index can be used to indicate an offset from the end of the array. For example, -2 …
3297
+ - `sort`: function — Sorts an array in place. This method mutates the array and returns a reference to the same array.
3298
+ - `splice`: function — Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.
3299
+ - `unshift`: function — Inserts new elements at the start of an array, and returns the new length of the array.
3300
+ - `indexOf`: function — Returns the index of the first occurrence of a value in an array, or -1 if it is not present.
3301
+ - `lastIndexOf`: function — Returns the index of the last occurrence of a specified value in an array, or -1 if it is not present.
3302
+ - `every`: function — Determines whether all the members of an array satisfy the specified test.
3303
+ - `some`: function — Determines whether the specified callback function returns true for any element of an array.
3304
+ - `forEach`: function — Performs the specified action for each element in an array.
3305
+ - `map`: function — Calls a defined callback function on each element of an array, and returns an array that contains the results.
3306
+ - `filter`: function — Returns the elements of an array that meet the condition specified in a callback function.
3307
+ - `reduce`: function — Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as…
3308
+ - `reduceRight`: function — Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated resul…
3309
+ - `find`: function — Returns the value of the first element in the array where predicate is true, and undefined otherwise.
3310
+ - `findIndex`: function — Returns the index of the first element in the array where predicate is true, and -1 otherwise.
3311
+ - `fill`: function — Changes all array elements from `start` to `end` index to a static `value` and returns the modified array
3312
+ - `copyWithin`: function — Returns the this object after copying a section of the array identified by start and end to the same array starting at position target
3313
+ - `entries`: function — Returns an iterable of key, value pairs for every entry in the array
3314
+ - `keys`: function — Returns an iterable of keys in the array
3315
+ - `values`: function — Returns an iterable of values in the array
3316
+ - `includes`: function — Determines whether an array includes a certain element, returning true or false as appropriate.
3317
+ - `flatMap`: function — Calls a defined callback function on each element of an array. Then, flattens the result into a new array. This is identical to a map followed by flat with dep…
3318
+ - `flat`: function — Returns a new array with all sub-array elements concatenated into it recursively up to the specified depth.
3319
+ - `at`: function — Returns the item located at the specified index.
3320
+ - `findLast`: function — Returns the value of the last element in the array where predicate is true, and undefined otherwise.
3321
+ - `findLastIndex`: function — Returns the index of the last element in the array where predicate is true, and -1 otherwise.
3322
+ - `toReversed`: function — Returns a copy of an array with its elements reversed.
3323
+ - `toSorted`: function — Returns a copy of an array with its elements sorted.
3324
+ - `toSpliced`: function — Copies an array and removes elements and, if necessary, inserts new elements in their place. Returns the copied array. Copies an array and removes elements whi…
3325
+ - `with`: function — Copies an array, then overwrites the value at the provided index with the given value. If the index is negative, then it replaces from the end of the array.
3326
+ - `__@iterator@19612`: function — Iterator
3327
+ - `__@unscopables@19828`: object — Is an object whose properties have the value 'true' when they will be absent when used in a 'with' statement.
3328
+ - `length?`: boolean — Gets or sets the length of the array. This is a number one higher than the highest index in the array.
3329
+ - `toString?`: boolean — Returns a string representation of an array.
3330
+ - `toLocaleString?`: boolean — Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.
3331
+ - `pop?`: boolean — Removes the last element from an array and returns it. If the array is empty, undefined is returned and the array is not modified.
3332
+ - `push?`: boolean — Appends new elements to the end of an array, and returns the new length of the array.
3333
+ - `concat?`: boolean — Combines two or more arrays. This method returns a new array without modifying any existing arrays.
3334
+ - `join?`: boolean — Adds all the elements of an array into a string, separated by the specified separator string.
3335
+ - `reverse?`: boolean — Reverses the elements in an array in place. This method mutates the array and returns a reference to the same array.
3336
+ - `shift?`: boolean — Removes the first element from an array and returns it. If the array is empty, undefined is returned and the array is not modified.
3337
+ - `slice?`: boolean — Returns a copy of a section of an array. For both start and end, a negative index can be used to indicate an offset from the end of the array. For example, -2 …
3338
+ - `sort?`: boolean — Sorts an array in place. This method mutates the array and returns a reference to the same array.
3339
+ - `splice?`: boolean — Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.
3340
+ - `unshift?`: boolean — Inserts new elements at the start of an array, and returns the new length of the array.
3341
+ - `indexOf?`: boolean — Returns the index of the first occurrence of a value in an array, or -1 if it is not present.
3342
+ - `lastIndexOf?`: boolean — Returns the index of the last occurrence of a specified value in an array, or -1 if it is not present.
3343
+ - `every?`: boolean — Determines whether all the members of an array satisfy the specified test.
3344
+ - `some?`: boolean — Determines whether the specified callback function returns true for any element of an array.
3345
+ - `forEach?`: boolean — Performs the specified action for each element in an array.
3346
+ - `map?`: boolean — Calls a defined callback function on each element of an array, and returns an array that contains the results.
3347
+ - `filter?`: boolean — Returns the elements of an array that meet the condition specified in a callback function.
3348
+ - `reduce?`: boolean — Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as…
3349
+ - `reduceRight?`: boolean — Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated resul…
3350
+ - `find?`: boolean — Returns the value of the first element in the array where predicate is true, and undefined otherwise.
3351
+ - `findIndex?`: boolean — Returns the index of the first element in the array where predicate is true, and -1 otherwise.
3352
+ - `fill?`: boolean — Changes all array elements from `start` to `end` index to a static `value` and returns the modified array
3353
+ - `copyWithin?`: boolean — Returns the this object after copying a section of the array identified by start and end to the same array starting at position target
3354
+ - `entries?`: boolean — Returns an iterable of key, value pairs for every entry in the array
3355
+ - `keys?`: boolean — Returns an iterable of keys in the array
3356
+ - `values?`: boolean — Returns an iterable of values in the array
3357
+ - `includes?`: boolean — Determines whether an array includes a certain element, returning true or false as appropriate.
3358
+ - `flatMap?`: boolean — Calls a defined callback function on each element of an array. Then, flattens the result into a new array. This is identical to a map followed by flat with dep…
3359
+ - `flat?`: boolean — Returns a new array with all sub-array elements concatenated into it recursively up to the specified depth.
3360
+ - `at?`: boolean — Returns the item located at the specified index.
3361
+ - `findLast?`: boolean — Returns the value of the last element in the array where predicate is true, and undefined otherwise.
3362
+ - `findLastIndex?`: boolean — Returns the index of the last element in the array where predicate is true, and -1 otherwise.
3363
+ - `toReversed?`: boolean — Returns a copy of an array with its elements reversed.
3364
+ - `toSorted?`: boolean — Returns a copy of an array with its elements sorted.
3365
+ - `toSpliced?`: boolean — Copies an array and removes elements and, if necessary, inserts new elements in their place. Returns the copied array. Copies an array and removes elements whi…
3366
+ - `with?`: boolean — Copies an array, then overwrites the value at the provided index with the given value. If the index is negative, then it replaces from the end of the array.
3367
+ - `__@iterator@19612?`: boolean — Iterator
3368
+ - `__@unscopables@19828?`: boolean — Is an object whose properties have the value 'true' when they will be absent when used in a 'with' statement.
3369
+ - `source`: object — Required source fields supplied by the producer.
3370
+ - `kind`: string
3371
+ - `callId`: string ⌾ToolCallId
3372
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
3373
+ - `error?`: object
3374
+ - `name`: string
3375
+ - `code`: string
3376
+ - `meta?`: json (any JSON value)
3377
+
3378
+ *来源: `packages/core/session/src/types.ts`*
3379
+
3380
+ #### 事件 `turn/end`
3381
+
3382
+ Closes turn `turn` with the {@link TurnEndReason} that ended it. A turn with no entered step has no `step/start` or `step/end`. The loop does not await a flush…
3383
+
3384
+ **data 字段:**
3385
+
3386
+ - **{ turn: number; reason: TurnEndReason; }**
3387
+ - `turn`: number
3388
+ - `reason`: object|object|object|object|object|object
3389
+ - 变体 `{ kind: "completed"; }`:
3390
+ - `kind`: string
3391
+ - 变体 `{ kind: "aborted"; reason: TurnEndCancelCause; }`:
3392
+ - `kind`: string
3393
+ - `reason`: object|object|object|object|object
3394
+ - 变体 `{ readonly kind: "user"; }`:
3395
+ - `kind`: string
3396
+ - 变体 `{ readonly kind: "parent"; }`:
3397
+ - `kind`: string
3398
+ - 变体 `{ readonly kind: "hook"; readonly reason: string; }`:
3399
+ - `kind`: string
3400
+ - `reason`: string
3401
+ - 变体 `{ readonly kind: "disposed"; }`:
3402
+ - `kind`: string
3403
+ - 变体 `{ readonly kind: "legacy"; }`:
3404
+ - `kind`: string
3405
+ - 变体 `{ kind: "blocked"; }`:
3406
+ - `kind`: string
3407
+ - 变体 `{ kind: "error"; error: LlmFailure; }`:
3408
+ - `kind`: string
3409
+ - `error`: object
3410
+ - `message`: string — Human-readable provider or transport failure.
3411
+ - `code`: string — Stable provider-neutral machine-routing code.
3412
+ - `status?`: number — HTTP status returned by the provider, when available.
3413
+ - `providerRetryAfterMs?`: number — Provider-requested delay in milliseconds, when valid and available.
3414
+ - `requestId?`: string — Opaque provider-issued request identifier for diagnostics.
3415
+ - 变体 `{ kind: "max-tokens"; }`:
3416
+ - `kind`: string
3417
+ - 变体 `{ kind: "interrupted"; }`:
3418
+ - `kind`: string
3419
+
3420
+ *来源: `packages/core/session/src/types.ts`*
3421
+
3422
+ #### 事件 `turn/start`
3423
+
3424
+ Opens turn `turn` before the loop claims queued input or runs pre-step. Rejection, empty input, cancellation, or failure may close it with no step; otherwise t…
3425
+
3426
+ **data 字段:**
3427
+
3428
+ - **{ turn: number; }**
3429
+ - `turn`: number
3430
+
3431
+ *来源: `packages/core/session/src/types.ts`*
3432
+
3433
+ #### 事件 `user/message`
3434
+
3435
+ A user-role message on the model-visible surface: a direct human prompt (the queued message claimed for this turn), a synthetic `agent.inject()` context (file-…
3436
+
3437
+ **data 字段:**
3438
+
3439
+ - **UserMessage**
3440
+ - `role`: string — Provider-neutral conversation role.
3441
+ - `id`: string ⌾MessageId — Stable identity preserved across every representation boundary.
3442
+ - `content`: object|object|object|object|object[] — Exact model-facing blocks.
3443
+ - `source`: object|object|object|object|object|object|object|object|object|object — Required source fields supplied by the producer.
3444
+ - 变体 `{ kind: "user"; }`:
3445
+ - `kind`: string
3446
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form?: never; }`:
3447
+ - `kind`: string
3448
+ - `plugin`: string
3449
+ - `form?`: never
3450
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form: "instructions"; }`:
3451
+ - `kind`: string
3452
+ - `plugin`: string
3453
+ - `form`: string
3454
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form: "catalog"; }`:
3455
+ - `kind`: string
3456
+ - `plugin`: string
3457
+ - `form`: string
3458
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form: "snapshot"; readonly sections: readonly ContextSnapshotSection[]; }`:
3459
+ - `kind`: string
3460
+ - `plugin`: string
3461
+ - `form`: string
3462
+ - `sections`: object[] — The named contributions this snapshot assembled, in order.
3463
+ - *(元素)*:
3464
+ - `name`: string — The contributing subsystem's name.
3465
+ - `text`: string — That contribution's model-facing text, exactly as assembled.
3466
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form: "notice"; readonly summary: string; }`:
3467
+ - `kind`: string
3468
+ - `plugin`: string
3469
+ - `form`: string
3470
+ - `summary`: string — One-line account of what happened, shown without expanding the row.
3471
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form: "relay"; }`:
3472
+ - `kind`: string
3473
+ - `plugin`: string
3474
+ - `form`: string
3475
+ - 变体 `{ kind: "plugin"; plugin: string; } & { readonly form: "recall"; }`:
3476
+ - `kind`: string
3477
+ - `plugin`: string
3478
+ - `form`: string
3479
+ - 变体 `ModelMessageSource`:
3480
+ - `kind`: string
3481
+ - `provider`: string — Provider route that produced the message.
3482
+ - `model`: string — Provider model id that produced the message.
3483
+ - `replayState?`: unknown — Lossless-JSON adapter state needed to replay the provider response. `LlmRuntime` exposes it to a target adapter only when that adapter instance currently owns …
3484
+ - 变体 `ToolMessageSource`:
3485
+ - `kind`: string
3486
+ - `callId`: string ⌾ToolCallId
3487
+
3488
+ *来源: `packages/core/session/src/types.ts`*
3489
+
3490
+ #### 事件 `web/deepseek-search-llm-request`
3491
+
3492
+ Secret-free auxiliary DeepSeek search request recorded before dispatch.
3493
+
3494
+ **data 字段:**
3495
+
3496
+ - **DeepSeekSearchLlmRequest**
3497
+ - `endpoint`: string — Fully resolved Messages endpoint.
3498
+ - `apiVersion`: string — `anthropic-version` header value.
3499
+ - `body`: object — Exact JSON body sent to the provider.
3500
+ - `model`: string
3501
+ - `max_tokens`: number
3502
+ - `messages`: object
3503
+ - `0`: object
3504
+ - `role`: string
3505
+ - `content`: object
3506
+ - `0`: object
3507
+ - `type`: string
3508
+ - `text`: string
3509
+ - `length`: number
3510
+ - `toString`: function — Returns a string representation of an array.
3511
+ - `toLocaleString`: function — Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.
3512
+ - `concat`: function — Combines two or more arrays.
3513
+ - `join`: function — Adds all the elements of an array separated by the specified separator string.
3514
+ - `slice`: function — Returns a section of an array.
3515
+ - `indexOf`: function — Returns the index of the first occurrence of a value in an array.
3516
+ - `lastIndexOf`: function — Returns the index of the last occurrence of a specified value in an array.
3517
+ - `every`: function — Determines whether all the members of an array satisfy the specified test.
3518
+ - `some`: function — Determines whether the specified callback function returns true for any element of an array.
3519
+ - `forEach`: function — Performs the specified action for each element in an array.
3520
+ - `map`: function — Calls a defined callback function on each element of an array, and returns an array that contains the results.
3521
+ - `filter`: function — Returns the elements of an array that meet the condition specified in a callback function.
3522
+ - `reduce`: function — Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as…
3523
+ - `reduceRight`: function — Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated resul…
3524
+ - `find`: function — Returns the value of the first element in the array where predicate is true, and undefined otherwise.
3525
+ - `findIndex`: function — Returns the index of the first element in the array where predicate is true, and -1 otherwise.
3526
+ - `entries`: function — Returns an iterable of key, value pairs for every entry in the array
3527
+ - `keys`: function — Returns an iterable of keys in the array
3528
+ - `values`: function — Returns an iterable of values in the array
3529
+ - `includes`: function — Determines whether an array includes a certain element, returning true or false as appropriate.
3530
+ - `flatMap`: function — Calls a defined callback function on each element of an array. Then, flattens the result into a new array. This is identical to a map followed by flat with dep…
3531
+ - `flat`: function — Returns a new array with all sub-array elements concatenated into it recursively up to the specified depth.
3532
+ - `at`: function — Returns the item located at the specified index.
3533
+ - `findLast`: function — Returns the value of the last element in the array where predicate is true, and undefined otherwise.
3534
+ - `findLastIndex`: function — Returns the index of the last element in the array where predicate is true, and -1 otherwise.
3535
+ - `toReversed`: function — Copies the array and returns the copied array with all of its elements reversed.
3536
+ - `toSorted`: function — Copies and sorts the array.
3537
+ - `toSpliced`: function — Copies an array and removes elements while, if necessary, inserting new elements in their place, returning the remaining elements. Copies an array and removes …
3538
+ - `with`: function — Copies an array, then overwrites the value at the provided index with the given value. If the index is negative, then it replaces from the end of the array
3539
+ - `__@iterator@21317`: function — Iterator of values in the array.
3540
+ - `__@unscopables@21319`: object — Is an object whose properties have the value 'true' when they will be absent when used in a 'with' statement.
3541
+ - `length?`: boolean — Gets the length of the array. This is a number one higher than the highest element defined in an array.
3542
+ - `toString?`: boolean — Returns a string representation of an array.
3543
+ - `toLocaleString?`: boolean — Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.
3544
+ - `concat?`: boolean — Combines two or more arrays.
3545
+ - `join?`: boolean — Adds all the elements of an array separated by the specified separator string.
3546
+ - `slice?`: boolean — Returns a section of an array.
3547
+ - `indexOf?`: boolean — Returns the index of the first occurrence of a value in an array.
3548
+ - `lastIndexOf?`: boolean — Returns the index of the last occurrence of a specified value in an array.
3549
+ - `every?`: boolean — Determines whether all the members of an array satisfy the specified test.
3550
+ - `some?`: boolean — Determines whether the specified callback function returns true for any element of an array.
3551
+ - `forEach?`: boolean — Performs the specified action for each element in an array.
3552
+ - `map?`: boolean — Calls a defined callback function on each element of an array, and returns an array that contains the results.
3553
+ - `filter?`: boolean — Returns the elements of an array that meet the condition specified in a callback function.
3554
+ - `reduce?`: boolean — Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as…
3555
+ - `reduceRight?`: boolean — Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated resul…
3556
+ - `find?`: boolean — Returns the value of the first element in the array where predicate is true, and undefined otherwise.
3557
+ - `findIndex?`: boolean — Returns the index of the first element in the array where predicate is true, and -1 otherwise.
3558
+ - `entries?`: boolean — Returns an iterable of key, value pairs for every entry in the array
3559
+ - `keys?`: boolean — Returns an iterable of keys in the array
3560
+ - `values?`: boolean — Returns an iterable of values in the array
3561
+ - `includes?`: boolean — Determines whether an array includes a certain element, returning true or false as appropriate.
3562
+ - `flatMap?`: boolean — Calls a defined callback function on each element of an array. Then, flattens the result into a new array. This is identical to a map followed by flat with dep…
3563
+ - `flat?`: boolean — Returns a new array with all sub-array elements concatenated into it recursively up to the specified depth.
3564
+ - `at?`: boolean — Returns the item located at the specified index.
3565
+ - `findLast?`: boolean — Returns the value of the last element in the array where predicate is true, and undefined otherwise.
3566
+ - `findLastIndex?`: boolean — Returns the index of the last element in the array where predicate is true, and -1 otherwise.
3567
+ - `toReversed?`: boolean — Copies the array and returns the copied array with all of its elements reversed.
3568
+ - `toSorted?`: boolean — Copies and sorts the array.
3569
+ - `toSpliced?`: boolean — Copies an array and removes elements while, if necessary, inserting new elements in their place, returning the remaining elements. Copies an array and removes …
3570
+ - `with?`: boolean — Copies an array, then overwrites the value at the provided index with the given value. If the index is negative, then it replaces from the end of the array
3571
+ - `__@iterator@21317?`: boolean — Iterator of values in the array.
3572
+ - `__@unscopables@21319?`: boolean — Is an object whose properties have the value 'true' when they will be absent when used in a 'with' statement.
3573
+ - `length`: number
3574
+ - `toString`: function — Returns a string representation of an array.
3575
+ - `toLocaleString`: function — Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.
3576
+ - `concat`: function — Combines two or more arrays.
3577
+ - `join`: function — Adds all the elements of an array separated by the specified separator string.
3578
+ - `slice`: function — Returns a section of an array.
3579
+ - `indexOf`: function — Returns the index of the first occurrence of a value in an array.
3580
+ - `lastIndexOf`: function — Returns the index of the last occurrence of a specified value in an array.
3581
+ - `every`: function — Determines whether all the members of an array satisfy the specified test.
3582
+ - `some`: function — Determines whether the specified callback function returns true for any element of an array.
3583
+ - `forEach`: function — Performs the specified action for each element in an array.
3584
+ - `map`: function — Calls a defined callback function on each element of an array, and returns an array that contains the results.
3585
+ - `filter`: function — Returns the elements of an array that meet the condition specified in a callback function.
3586
+ - `reduce`: function — Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as…
3587
+ - `reduceRight`: function — Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated resul…
3588
+ - `find`: function — Returns the value of the first element in the array where predicate is true, and undefined otherwise.
3589
+ - `findIndex`: function — Returns the index of the first element in the array where predicate is true, and -1 otherwise.
3590
+ - `entries`: function — Returns an iterable of key, value pairs for every entry in the array
3591
+ - `keys`: function — Returns an iterable of keys in the array
3592
+ - `values`: function — Returns an iterable of values in the array
3593
+ - `includes`: function — Determines whether an array includes a certain element, returning true or false as appropriate.
3594
+ - `flatMap`: function — Calls a defined callback function on each element of an array. Then, flattens the result into a new array. This is identical to a map followed by flat with dep…
3595
+ - `flat`: function — Returns a new array with all sub-array elements concatenated into it recursively up to the specified depth.
3596
+ - `at`: function — Returns the item located at the specified index.
3597
+ - `findLast`: function — Returns the value of the last element in the array where predicate is true, and undefined otherwise.
3598
+ - `findLastIndex`: function — Returns the index of the last element in the array where predicate is true, and -1 otherwise.
3599
+ - `toReversed`: function — Copies the array and returns the copied array with all of its elements reversed.
3600
+ - `toSorted`: function — Copies and sorts the array.
3601
+ - `toSpliced`: function — Copies an array and removes elements while, if necessary, inserting new elements in their place, returning the remaining elements. Copies an array and removes …
3602
+ - `with`: function — Copies an array, then overwrites the value at the provided index with the given value. If the index is negative, then it replaces from the end of the array
3603
+ - `__@iterator@21317`: function — Iterator of values in the array.
3604
+ - `__@unscopables@21319`: object — Is an object whose properties have the value 'true' when they will be absent when used in a 'with' statement.
3605
+ - `length?`: boolean — Gets the length of the array. This is a number one higher than the highest element defined in an array.
3606
+ - `toString?`: boolean — Returns a string representation of an array.
3607
+ - `toLocaleString?`: boolean — Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.
3608
+ - `concat?`: boolean — Combines two or more arrays.
3609
+ - `join?`: boolean — Adds all the elements of an array separated by the specified separator string.
3610
+ - `slice?`: boolean — Returns a section of an array.
3611
+ - `indexOf?`: boolean — Returns the index of the first occurrence of a value in an array.
3612
+ - `lastIndexOf?`: boolean — Returns the index of the last occurrence of a specified value in an array.
3613
+ - `every?`: boolean — Determines whether all the members of an array satisfy the specified test.
3614
+ - `some?`: boolean — Determines whether the specified callback function returns true for any element of an array.
3615
+ - `forEach?`: boolean — Performs the specified action for each element in an array.
3616
+ - `map?`: boolean — Calls a defined callback function on each element of an array, and returns an array that contains the results.
3617
+ - `filter?`: boolean — Returns the elements of an array that meet the condition specified in a callback function.
3618
+ - `reduce?`: boolean — Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as…
3619
+ - `reduceRight?`: boolean — Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated resul…
3620
+ - `find?`: boolean — Returns the value of the first element in the array where predicate is true, and undefined otherwise.
3621
+ - `findIndex?`: boolean — Returns the index of the first element in the array where predicate is true, and -1 otherwise.
3622
+ - `entries?`: boolean — Returns an iterable of key, value pairs for every entry in the array
3623
+ - `keys?`: boolean — Returns an iterable of keys in the array
3624
+ - `values?`: boolean — Returns an iterable of values in the array
3625
+ - `includes?`: boolean — Determines whether an array includes a certain element, returning true or false as appropriate.
3626
+ - `flatMap?`: boolean — Calls a defined callback function on each element of an array. Then, flattens the result into a new array. This is identical to a map followed by flat with dep…
3627
+ - `flat?`: boolean — Returns a new array with all sub-array elements concatenated into it recursively up to the specified depth.
3628
+ - `at?`: boolean — Returns the item located at the specified index.
3629
+ - `findLast?`: boolean — Returns the value of the last element in the array where predicate is true, and undefined otherwise.
3630
+ - `findLastIndex?`: boolean — Returns the index of the last element in the array where predicate is true, and -1 otherwise.
3631
+ - `toReversed?`: boolean — Copies the array and returns the copied array with all of its elements reversed.
3632
+ - `toSorted?`: boolean — Copies and sorts the array.
3633
+ - `toSpliced?`: boolean — Copies an array and removes elements while, if necessary, inserting new elements in their place, returning the remaining elements. Copies an array and removes …
3634
+ - `with?`: boolean — Copies an array, then overwrites the value at the provided index with the given value. If the index is negative, then it replaces from the end of the array
3635
+ - `__@iterator@21317?`: boolean — Iterator of values in the array.
3636
+ - `__@unscopables@21319?`: boolean — Is an object whose properties have the value 'true' when they will be absent when used in a 'with' statement.
3637
+ - `tools`: object
3638
+ - `0`: object
3639
+ - `type`: string
3640
+ - `name`: string
3641
+ - `max_uses`: number
3642
+ - `length`: number
3643
+ - `toString`: function — Returns a string representation of an array.
3644
+ - `toLocaleString`: function — Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.
3645
+ - `concat`: function — Combines two or more arrays.
3646
+ - `join`: function — Adds all the elements of an array separated by the specified separator string.
3647
+ - `slice`: function — Returns a section of an array.
3648
+ - `indexOf`: function — Returns the index of the first occurrence of a value in an array.
3649
+ - `lastIndexOf`: function — Returns the index of the last occurrence of a specified value in an array.
3650
+ - `every`: function — Determines whether all the members of an array satisfy the specified test.
3651
+ - `some`: function — Determines whether the specified callback function returns true for any element of an array.
3652
+ - `forEach`: function — Performs the specified action for each element in an array.
3653
+ - `map`: function — Calls a defined callback function on each element of an array, and returns an array that contains the results.
3654
+ - `filter`: function — Returns the elements of an array that meet the condition specified in a callback function.
3655
+ - `reduce`: function — Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as…
3656
+ - `reduceRight`: function — Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated resul…
3657
+ - `find`: function — Returns the value of the first element in the array where predicate is true, and undefined otherwise.
3658
+ - `findIndex`: function — Returns the index of the first element in the array where predicate is true, and -1 otherwise.
3659
+ - `entries`: function — Returns an iterable of key, value pairs for every entry in the array
3660
+ - `keys`: function — Returns an iterable of keys in the array
3661
+ - `values`: function — Returns an iterable of values in the array
3662
+ - `includes`: function — Determines whether an array includes a certain element, returning true or false as appropriate.
3663
+ - `flatMap`: function — Calls a defined callback function on each element of an array. Then, flattens the result into a new array. This is identical to a map followed by flat with dep…
3664
+ - `flat`: function — Returns a new array with all sub-array elements concatenated into it recursively up to the specified depth.
3665
+ - `at`: function — Returns the item located at the specified index.
3666
+ - `findLast`: function — Returns the value of the last element in the array where predicate is true, and undefined otherwise.
3667
+ - `findLastIndex`: function — Returns the index of the last element in the array where predicate is true, and -1 otherwise.
3668
+ - `toReversed`: function — Copies the array and returns the copied array with all of its elements reversed.
3669
+ - `toSorted`: function — Copies and sorts the array.
3670
+ - `toSpliced`: function — Copies an array and removes elements while, if necessary, inserting new elements in their place, returning the remaining elements. Copies an array and removes …
3671
+ - `with`: function — Copies an array, then overwrites the value at the provided index with the given value. If the index is negative, then it replaces from the end of the array
3672
+ - `__@iterator@21317`: function — Iterator of values in the array.
3673
+ - `__@unscopables@21319`: object — Is an object whose properties have the value 'true' when they will be absent when used in a 'with' statement.
3674
+ - `length?`: boolean — Gets the length of the array. This is a number one higher than the highest element defined in an array.
3675
+ - `toString?`: boolean — Returns a string representation of an array.
3676
+ - `toLocaleString?`: boolean — Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.
3677
+ - `concat?`: boolean — Combines two or more arrays.
3678
+ - `join?`: boolean — Adds all the elements of an array separated by the specified separator string.
3679
+ - `slice?`: boolean — Returns a section of an array.
3680
+ - `indexOf?`: boolean — Returns the index of the first occurrence of a value in an array.
3681
+ - `lastIndexOf?`: boolean — Returns the index of the last occurrence of a specified value in an array.
3682
+ - `every?`: boolean — Determines whether all the members of an array satisfy the specified test.
3683
+ - `some?`: boolean — Determines whether the specified callback function returns true for any element of an array.
3684
+ - `forEach?`: boolean — Performs the specified action for each element in an array.
3685
+ - `map?`: boolean — Calls a defined callback function on each element of an array, and returns an array that contains the results.
3686
+ - `filter?`: boolean — Returns the elements of an array that meet the condition specified in a callback function.
3687
+ - `reduce?`: boolean — Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as…
3688
+ - `reduceRight?`: boolean — Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated resul…
3689
+ - `find?`: boolean — Returns the value of the first element in the array where predicate is true, and undefined otherwise.
3690
+ - `findIndex?`: boolean — Returns the index of the first element in the array where predicate is true, and -1 otherwise.
3691
+ - `entries?`: boolean — Returns an iterable of key, value pairs for every entry in the array
3692
+ - `keys?`: boolean — Returns an iterable of keys in the array
3693
+ - `values?`: boolean — Returns an iterable of values in the array
3694
+ - `includes?`: boolean — Determines whether an array includes a certain element, returning true or false as appropriate.
3695
+ - `flatMap?`: boolean — Calls a defined callback function on each element of an array. Then, flattens the result into a new array. This is identical to a map followed by flat with dep…
3696
+ - `flat?`: boolean — Returns a new array with all sub-array elements concatenated into it recursively up to the specified depth.
3697
+ - `at?`: boolean — Returns the item located at the specified index.
3698
+ - `findLast?`: boolean — Returns the value of the last element in the array where predicate is true, and undefined otherwise.
3699
+ - `findLastIndex?`: boolean — Returns the index of the last element in the array where predicate is true, and -1 otherwise.
3700
+ - `toReversed?`: boolean — Copies the array and returns the copied array with all of its elements reversed.
3701
+ - `toSorted?`: boolean — Copies and sorts the array.
3702
+ - `toSpliced?`: boolean — Copies an array and removes elements while, if necessary, inserting new elements in their place, returning the remaining elements. Copies an array and removes …
3703
+ - `with?`: boolean — Copies an array, then overwrites the value at the provided index with the given value. If the index is negative, then it replaces from the end of the array
3704
+ - `__@iterator@21317?`: boolean — Iterator of values in the array.
3705
+ - `__@unscopables@21319?`: boolean — Is an object whose properties have the value 'true' when they will be absent when used in a 'with' statement.
3706
+
3707
+ *来源: `packages/web/web-search-deepseek/src/provider.ts`*
3708
+
3709
+
3710
+ ## 三、$events 转发事件 allowlist(18 项,`emit` 帧;waterfall = 可应答推送)
3711
+
3712
+ - `agent-preset/selected` (推送)
3713
+ - `approval/request` (瀑布(可应答))
3714
+ - `api-session/activity` (推送)
3715
+ - `api-session/added` (推送)
3716
+ - `api-session/error` (推送)
3717
+ - `api-session/removed` (推送)
3718
+ - `api-session/status` (推送)
3719
+ - `commands/change` (推送)
3720
+ - `credentials/reference-updated` (推送)
3721
+ - `cordis/request-run` (推送)
3722
+ - `cordis/request-run-resolved` (推送)
3723
+ - `cordis/dynamic-package` (推送)
3724
+ - `cordis/dynamic-retract` (推送)
3725
+ - `cordis/inspect-query` (推送)
3726
+ - `cordis/inspect-query-resolved` (推送)
3727
+ - `llm/adapters-updated` (推送)
3728
+ - `settings/document-updated` (推送)
3729
+ - `user-questions/request` (瀑布(可应答))