@blade-hq/agent-react 2610.0.1 → 2612.0.0-beta.1

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 (180) hide show
  1. package/README.md +88 -258
  2. package/dist/chat/AgentLoopBlock.d.ts +14 -0
  3. package/dist/{components → chat}/AskUserQuestionBlock.d.ts +3 -7
  4. package/dist/chat/AssistantTurnBlock.d.ts +50 -0
  5. package/dist/chat/AttachmentPreviewDialog.d.ts +26 -0
  6. package/dist/chat/ChatPanel.d.ts +64 -0
  7. package/dist/chat/CompactionCard.d.ts +6 -0
  8. package/dist/chat/ConnectionBanner.d.ts +10 -0
  9. package/dist/chat/CurrentPlanPanel.d.ts +20 -0
  10. package/dist/chat/FileDeliveryCards.d.ts +26 -0
  11. package/dist/chat/FinalArtifactCards.d.ts +8 -0
  12. package/dist/chat/ImageLightbox.d.ts +11 -0
  13. package/dist/chat/LightComposer.d.ts +7 -0
  14. package/dist/chat/LiteMessageList.d.ts +82 -0
  15. package/dist/chat/MessageActions.d.ts +6 -0
  16. package/dist/chat/MessageContextPills.d.ts +6 -0
  17. package/dist/chat/MessageFileAttachmentList.d.ts +13 -0
  18. package/dist/chat/MessageList.d.ts +54 -0
  19. package/dist/chat/PostChatFollowupBlock.d.ts +11 -0
  20. package/dist/{components → chat}/RenderErrorBoundary.d.ts +0 -1
  21. package/dist/chat/ResultFeedback.d.ts +11 -0
  22. package/dist/chat/SessionReplayBar.d.ts +12 -0
  23. package/dist/chat/TextAttachmentPills.d.ts +10 -0
  24. package/dist/chat/ToolCallBlock.d.ts +48 -0
  25. package/dist/chat/ToolUiCard.d.ts +6 -0
  26. package/dist/chat/TurnNavRail.d.ts +17 -0
  27. package/dist/chat/UserMessageBubble.d.ts +20 -0
  28. package/dist/chat/WorkflowRunBlock.d.ts +13 -0
  29. package/dist/chat/ai-elements/reasoning.d.ts +32 -0
  30. package/dist/chat/ai-elements/shimmer.d.ts +15 -0
  31. package/dist/chat/assistant-turn-questions.d.ts +14 -0
  32. package/dist/chat/card/CardContext.d.ts +7 -0
  33. package/dist/chat/chat-theme.d.ts +19 -0
  34. package/dist/chat/customization.d.ts +214 -0
  35. package/dist/chat/display-utils.d.ts +48 -0
  36. package/dist/{components/PostChatFollowupBlock.d.ts → chat/followup-interaction.d.ts} +5 -17
  37. package/dist/chat/index.d.ts +100 -0
  38. package/dist/chat/lib/citations.d.ts +30 -0
  39. package/dist/chat/lib/code-language.d.ts +5 -0
  40. package/dist/chat/lib/loopback.d.ts +8 -0
  41. package/dist/chat/lib/markdown-asset-url.d.ts +5 -0
  42. package/dist/chat/lib/preview-dispatch.d.ts +24 -0
  43. package/dist/chat/lib/skill-name.d.ts +9 -0
  44. package/dist/chat/lib/skill-visibility.d.ts +8 -0
  45. package/dist/chat/lib/ui-meta.d.ts +5 -0
  46. package/dist/chat/lib/use-async-value.d.ts +8 -0
  47. package/dist/chat/markdown/ExternalAnchor.d.ts +9 -0
  48. package/dist/chat/markdown/MarkdownContent.d.ts +40 -0
  49. package/dist/chat/markdown/text.d.ts +11 -0
  50. package/dist/chat/message-list-blocks.d.ts +92 -0
  51. package/dist/chat/plan/PlanSummaryCard.d.ts +10 -0
  52. package/dist/chat/plan/extract-plan-messages.d.ts +4 -0
  53. package/dist/chat/plan/parse-plan-messages.d.ts +10 -0
  54. package/dist/chat/plan/parse-plan-tree.d.ts +16 -0
  55. package/dist/chat/plan/types.d.ts +56 -0
  56. package/dist/chat/reasoning-visibility.d.ts +2 -0
  57. package/dist/chat/runtime/actions.d.ts +22 -0
  58. package/dist/chat/runtime/background-task-dismissals.d.ts +10 -0
  59. package/dist/chat/runtime/composer-channels.d.ts +46 -0
  60. package/dist/chat/runtime/environment.d.ts +152 -0
  61. package/dist/chat/runtime/input-cache-reset.d.ts +8 -0
  62. package/dist/chat/runtime/input-services.d.ts +111 -0
  63. package/dist/chat/runtime/session-source.d.ts +49 -0
  64. package/dist/chat/runtime/use-chat-actions.d.ts +19 -0
  65. package/dist/chat/runtime/use-session-replay.d.ts +16 -0
  66. package/dist/chat/scroll-anchor.d.ts +46 -0
  67. package/dist/chat/tool-renderers/BashRenderer.d.ts +2 -0
  68. package/dist/chat/tool-renderers/FileEditRenderer.d.ts +2 -0
  69. package/dist/chat/tool-renderers/FileReadRenderer.d.ts +2 -0
  70. package/dist/chat/tool-renderers/KbSearchRenderer.d.ts +2 -0
  71. package/dist/chat/tool-renderers/SearchRenderer.d.ts +2 -0
  72. package/dist/chat/tool-renderers/SubmitResultRenderer.d.ts +2 -0
  73. package/dist/chat/tool-renderers/kb-search-result.d.ts +19 -0
  74. package/dist/chat/tool-renderers/registry.d.ts +5 -0
  75. package/dist/chat/tool-renderers/shared.d.ts +30 -0
  76. package/dist/chat/tool-renderers/write-preview-scroll.d.ts +5 -0
  77. package/dist/chat-OCLOVB3H.css +175 -0
  78. package/dist/chat.css +175 -0
  79. package/dist/chunk-6ZDOQEWK.js +49365 -0
  80. package/dist/chunk-6ZDOQEWK.js.map +1 -0
  81. package/dist/chunk-FQQJP2GJ.js +26986 -0
  82. package/dist/chunk-FQQJP2GJ.js.map +1 -0
  83. package/dist/{chunk-G3PMV62Z.js → chunk-PR4QN5HX.js} +9 -2
  84. package/dist/chunk-WCMGQJLE.js +258 -0
  85. package/dist/chunk-WCMGQJLE.js.map +1 -0
  86. package/dist/components/AgentChat.d.ts +3 -3
  87. package/dist/components/ChatView.d.ts +2 -2
  88. package/dist/components/ConnectorPanel.d.ts +1 -1
  89. package/dist/components/ContextCard.d.ts +1 -1
  90. package/dist/components/LlmChat.d.ts +1 -1
  91. package/dist/components/McpAppCard.d.ts +1 -1
  92. package/dist/components/PlanUpdateBlock.d.ts +0 -8
  93. package/dist/components/PluginConnectorList.d.ts +1 -1
  94. package/dist/components/ReplayBar.d.ts +1 -1
  95. package/dist/components/SessionPluginConfigDialog.d.ts +1 -1
  96. package/dist/components/SessionPluginConfigForm.d.ts +1 -1
  97. package/dist/components/SessionPluginIcon.d.ts +1 -1
  98. package/dist/components/SessionPluginSelector.d.ts +1 -1
  99. package/dist/components/SessionQueuePanel.d.ts +1 -1
  100. package/dist/components/ToolUiCardView.d.ts +1 -1
  101. package/dist/components/plugin-config-draft.d.ts +1 -1
  102. package/dist/components/plugin-config-schema.d.ts +1 -1
  103. package/dist/components/plugin-connector.d.ts +1 -1
  104. package/dist/components/use-session-plugin-activation.d.ts +1 -1
  105. package/dist/context.d.ts +11 -2
  106. package/dist/embed/blade-chat-element.d.ts +14 -1
  107. package/dist/embed/entry.d.ts +8 -78
  108. package/dist/hooks/use-replay.d.ts +1 -1
  109. package/dist/hooks/use-turn-navigation.d.ts +1 -1
  110. package/dist/host.d.ts +54 -0
  111. package/dist/index.d.ts +11 -69
  112. package/dist/index.js +12 -63525
  113. package/dist/index.js.map +1 -1
  114. package/dist/internal.d.ts +60 -0
  115. package/dist/internal.js +656 -0
  116. package/dist/internal.js.map +1 -0
  117. package/dist/lib/mount-renderers.d.ts +25 -0
  118. package/dist/lib/use-effect-event.d.ts +3 -0
  119. package/dist/rich-input/BackgroundTasksPill.d.ts +3 -0
  120. package/dist/rich-input/ChatInput.d.ts +59 -0
  121. package/dist/rich-input/ComposerAttachmentViewport.d.ts +3 -0
  122. package/dist/rich-input/ConnectButton.d.ts +24 -0
  123. package/dist/rich-input/FileCompletionMenu.d.ts +44 -0
  124. package/dist/rich-input/FileSizeLimitDialog.d.ts +9 -0
  125. package/dist/rich-input/ModelSelector.d.ts +10 -0
  126. package/dist/rich-input/PlanningToggle.d.ts +7 -0
  127. package/dist/rich-input/ProgressCircle.d.ts +12 -0
  128. package/dist/rich-input/ReasoningModeSelect.d.ts +9 -0
  129. package/dist/rich-input/SkillCompletionMenu.d.ts +9 -0
  130. package/dist/rich-input/SkillStatusBar.d.ts +15 -0
  131. package/dist/rich-input/extensions/file-mention.d.ts +12 -0
  132. package/dist/rich-input/extensions/kb-mention.d.ts +18 -0
  133. package/dist/rich-input/extensions/skill-mention.d.ts +48 -0
  134. package/dist/rich-input/extensions/workflow-mention.d.ts +10 -0
  135. package/dist/rich-input/index.d.ts +48 -0
  136. package/dist/rich-input/input-keyboard.d.ts +13 -0
  137. package/dist/rich-input/lib/attachment-upload.d.ts +10 -0
  138. package/dist/rich-input/lib/background-tasks-view.d.ts +31 -0
  139. package/dist/rich-input/lib/client-query.d.ts +32 -0
  140. package/dist/rich-input/lib/composer-content.d.ts +42 -0
  141. package/dist/rich-input/lib/image-input-availability.d.ts +3 -0
  142. package/dist/rich-input/lib/kb-suggestions.d.ts +37 -0
  143. package/dist/rich-input/lib/reasoning-levels.d.ts +1 -0
  144. package/dist/rich-input/lib/session-data.d.ts +20 -0
  145. package/dist/rich-input/lib/skill-suggestions.d.ts +19 -0
  146. package/dist/rich-input/lib/token-estimate.d.ts +2 -0
  147. package/dist/rich-input/lib/token-pressure.d.ts +8 -0
  148. package/dist/rich-input/lib/upload-results.d.ts +8 -0
  149. package/dist/rich-input/lib/user-home.d.ts +33 -0
  150. package/dist/rich-input/model/model-data.d.ts +6 -0
  151. package/dist/rich-input/model/resolve-model.d.ts +59 -0
  152. package/dist/rich-input/model/use-composer-model.d.ts +24 -0
  153. package/dist/rich-input/services.d.ts +22 -0
  154. package/dist/rich-input/use-dismiss-skill-suggestions-on-mode-change.d.ts +3 -0
  155. package/dist/rich-input/use-input-history.d.ts +14 -0
  156. package/dist/rich-input/voice/VoiceWaveform.d.ts +10 -0
  157. package/dist/rich-input/voice/use-tiptap-voice-input.d.ts +47 -0
  158. package/dist/rich-input/voice/use-voice-input.d.ts +2 -0
  159. package/dist/rich-input/voice/voice-input-support.d.ts +5 -0
  160. package/dist/rich-input.js +29853 -0
  161. package/dist/rich-input.js.map +1 -0
  162. package/dist/style.css +30 -64
  163. package/dist/style.full.css +210 -65
  164. package/dist/{webapi-W3IB5DO4.js → webapi-E7K2CNM7.js} +2 -2
  165. package/package.json +12 -3
  166. package/public-api.md +206 -3603
  167. package/dist/components/AgentLoopBlock.d.ts +0 -8
  168. package/dist/components/AgentTaskCard.d.ts +0 -12
  169. package/dist/components/AssistantTurnBlock.d.ts +0 -36
  170. package/dist/components/ChatSurface.d.ts +0 -199
  171. package/dist/components/ConnectionBanner.d.ts +0 -8
  172. package/dist/components/MarkdownContent.d.ts +0 -30
  173. package/dist/components/MessageList.d.ts +0 -62
  174. package/dist/components/Shimmer.d.ts +0 -7
  175. package/dist/components/ToolCallBlock.d.ts +0 -41
  176. package/dist/components/TurnNavRail.d.ts +0 -23
  177. package/dist/components/UserMessageBubble.d.ts +0 -25
  178. package/dist/components/display-utils.d.ts +0 -4
  179. /package/dist/{chunk-G3PMV62Z.js.map → chunk-PR4QN5HX.js.map} +0 -0
  180. /package/dist/{webapi-W3IB5DO4.js.map → webapi-E7K2CNM7.js.map} +0 -0
package/public-api.md CHANGED
@@ -3,3611 +3,332 @@
3
3
  > 本文件由 `scripts/public-api-report.mjs` 生成,请勿手改。
4
4
  > 公共面变更时重新生成本报告,并同步更新 README 对应章节——CI 会校验两者。
5
5
 
6
- 共 380 个公开声明。
6
+ 共 37 个公开声明。
7
7
 
8
- ## `acceptedPostChatFollowupCompletesLatestRun` (function)
9
-
10
- ```ts
11
- acceptedPostChatFollowupCompletesLatestRun: (events: RawEvent[], updates: ProjectionUpdate[]) => boolean
12
- ```
13
-
14
- ## `AccountComputer` (interface)
15
-
16
- ```ts
17
- arch: string | null | undefined
18
- blade_home: string | null | undefined
19
- created_at: string
20
- daemon_version: string | null | undefined
21
- hostname: string | null | undefined
22
- id: string
23
- label: string
24
- last_seen_at: string | null | undefined
25
- online: boolean
26
- os: string | null | undefined
27
- workspace: string | null | undefined
28
- ```
29
-
30
- ## `AccountComputerList` (interface)
31
-
32
- ```ts
33
- computers: AccountComputer[]
34
- ```
35
-
36
- ## `acknowledgeTurnEvents` (function)
37
-
38
- ```ts
39
- acknowledgeTurnEvents: (acknowledge?: () => void) => void
40
- ```
41
-
42
- ## `ActiveCompactionState` (interface)
43
-
44
- ```ts
45
- archived_count: number | null | undefined
46
- archived_files: ArchivedFileInfo[] | null | undefined
47
- archived_tool_calls: ArchivedToolCallInfo[] | null | undefined
48
- compaction_id: string
49
- failure_reason: string | null | undefined
50
- fallback_applied: boolean | null | undefined
51
- saved_ratio: number | null | undefined
52
- status: "streaming" | "completed" | "paused" | "failed" | "interrupted"
53
- summary_full: string | null | undefined
54
- summary_preview: string | null | undefined
55
- tokens_after: number | null | undefined
56
- tokens_before: number | null | undefined
57
- trigger: "auto" | "manual" | "forced_retry" | null | undefined
58
- turn_id: string
59
- ```
60
-
61
- ## `AgentChat` (function)
62
-
63
- ```ts
64
- AgentChat: (props: AgentChatProps) => JSX.Element
65
- ```
66
-
67
- ## `AgentChatProps` (interface)
68
-
69
- ```ts
70
- classNames: ChatViewClassNames | undefined
71
- commands: Record<string, (data: unknown) => void> | undefined
72
- createOptions: CreateSessionRequest | undefined
73
- onFollowupInteraction: ((event: FollowupInteractionEvent) => void) | undefined
74
- onSessionCreated: ((sessionId: string) => void) | undefined
75
- onSessionReady: ((session: AgentSession) => void) | undefined
76
- placeholder: string | undefined
77
- renderers: ChatViewRenderers | undefined
78
- sessionId: string | undefined
79
- sessionPluginControls: ((sessionId: string) => ReactNode) | undefined
80
- slots: ChatViewSlots | undefined
81
- theme: "light" | "dark" | undefined
82
- ```
83
-
84
- ## `AgentComputerLaunchOutcome` (type)
85
-
86
- ```ts
87
- export type AgentComputerLaunchOutcome = "pending" | "succeeded" | "failed" | "unknown"
88
- ```
89
-
90
- ## `AgentLoopInfo` (interface)
91
-
92
- ```ts
93
- description: string
94
- status: "running" | "done" | "error" | "cancelled" | "awaiting_answer"
95
- toolCallId: string
96
- ```
97
-
98
- ## `AgentSession` (class)
99
-
100
- ```ts
101
- attach: (label: string, data: unknown) => void
102
- attachApp: (options: AttachAppOptions) => Promise<AppCliAttachment | null>
103
- cancelPendingLocate: () => void
104
- cancelQueuedMessage: (itemId: string, expectedVersion?: number) => Promise<QueueOperationResult>
105
- compact: () => Promise<Record<string, unknown>>
106
- countFiles: (dirPath?: string) => Promise<number>
107
- deliverQueuedMessage: (itemId: string, expectedVersion: number) => Promise<QueueOperationResult>
108
- dispose: () => void
109
- downloadFile: (filePath: string, downloadName?: string) => Promise<void>
110
- exitReplay: () => Promise<void>
111
- getState: () => SessionState
112
- hasOlderHistory: boolean
113
- insertText: (text: string) => void
114
- isDisposed: boolean
115
- isStatic: boolean
116
- listDir: (dirPath?: string) => Promise<FileEntry[]>
117
- loadOlderHistory: (options?: { beforeCommit?: () => void; }) => Promise<void>
118
- loadTurnIndex: () => Promise<SessionTurnIndexItem[]>
119
- locateEntry: (entryId: string) => Promise<boolean>
120
- off: <K extends keyof AgentSessionEvents>(name: K, handler: (event: AgentSessionEvents[K]) => void) => void
121
- on: <K extends keyof AgentSessionEvents>(name: K, handler: (event: AgentSessionEvents[K]) => void) => () => void
122
- onCommand: (action: string, handler: CommandHandler) => () => void
123
- queueMessage: (content: string) => Promise<QueueOperationResult>
124
- refreshQueue: () => Promise<QueueOperationResult>
125
- reorderQueuedMessages: (expectedRevision: number, orderedIds: string[]) => Promise<QueueOperationResult>
126
- resumeQueue: () => Promise<QueueOperationResult>
127
- send: (content: MessageContent, options?: SendOptions) => Promise<boolean>
128
- sessionId: string
129
- setReplaySpeed: (speed: ReplaySpeed) => Promise<void>
130
- stop: () => Promise<Record<string, unknown>>
131
- subscribe: (listener: () => void) => () => void
132
- updateQueuedMessage: (itemId: string, expectedVersion: number, content: string) => Promise<QueueOperationResult>
133
- ```
134
-
135
- ## `AgentSessionError` (class)
136
-
137
- ```ts
138
- cause: unknown
139
- code: string | undefined
140
- message: string
141
- name: "AgentSessionError"
142
- stack: string | undefined
143
- ```
144
-
145
- ## `AgentSessionEventName` (type)
146
-
147
- ```ts
148
- export type AgentSessionEventName = keyof AgentSessionEvents
149
- ```
150
-
151
- ## `AgentSessionEvents` (interface)
152
-
153
- ```ts
154
- artifact: { filePath: string; contentType: string; title: string; content: string; oldString?: string; newString?: string; kind: "created" | "updated"; }
155
- attachRequested: { label: string; content: string; }
156
- backgroundTask: { id: string; command: string; description?: string; status: "starting" | "running" | "cancelling" | "succeeded" | "failed" | "cancelled" | "lost"; failureReason?: string | null; exitCode?: number | null; elapsedSeconds: number; output?: string; }
157
- chatEnd: { status: string; }
158
- command: { action: string; payload: unknown; toolCallId?: string; }
159
- error: { message: string; code?: string; }
160
- insertTextRequested: { text: string; }
161
- message: { message: ChatMessage; turn: TurnProjection; }
162
- modeChange: { mode: "planning" | "executing"; }
163
- notification: { type: string; title: string; detail?: string; status: "info" | "running" | "done" | "error"; loopId?: string; metadata?: Record<string, unknown>; }
164
- replayMismatch: { actualMessage?: string; expectedMessage?: string; respond: (decision: "keep_replay" | "continue_replay") => void; }
165
- rewind: { checkpointId: string; }
166
- sandboxOom: { toolCallId: string; }
167
- sessionUpdated: { workspacePath?: string; chatGroupId?: string | null; intent?: string; status?: SessionStatus; model?: string | null; boundSkillId?: string | null; replayState?: Record<string, unknown> | null; }
168
- taskListUpdated: { tasks: unknown[]; }
169
- toolCall: { toolCall: ToolCallInfo; turn: TurnProjection; }
170
- toolPreview: { sourcePath?: string; toolCallId: string; type: "resource-html" | "resource-uri" | "resource-file"; content: string; title: string; mcpApp?: McpAppData; }
171
- toolResult: { toolCall: ToolCallInfo; turn: TurnProjection; source: "live" | "bootstrap_replay" | "reconnect_replay"; }
172
- workspaceChanged: { filePath?: string; }
173
- ```
174
-
175
- ## `AgentTaskCard` (function)
176
-
177
- ```ts
178
- AgentTaskCard: ({ title, status, activity, children, className, recordId }: AgentTaskCardProps) => JSX.Element
179
- ```
180
-
181
- ## `AgentTaskCardProps` (interface)
182
-
183
- ```ts
184
- activity: string | undefined
185
- children: ReactNode
186
- className: string | undefined
187
- recordId: string | undefined
188
- status: AgentTaskStatus
189
- title: string
190
- ```
191
-
192
- ## `AgentTaskStatus` (type)
193
-
194
- ```ts
195
- export type AgentTaskStatus = "running" | "waiting_input" | "completed" | "failed" | "cancelled"
196
- ```
197
-
198
- ## `AllowedTags` (type)
199
-
200
- ```ts
201
- export type AllowedTags = Record<string, string[]>
202
- ```
203
-
204
- ## `AppCliAttachment` (interface)
205
-
206
- ```ts
207
- command: string
208
- digest: string
209
- runtime: "python" | "executable"
210
- ```
211
-
212
- ## `AppCliDefinition` (interface)
213
-
214
- ```ts
215
- command: string
216
- filename: string | undefined
217
- runtime: "python" | "executable"
218
- source: string | Blob | URL
219
- ```
220
-
221
- ## `ArchivedFileInfo` (interface)
222
-
223
- ```ts
224
- filename: string | null | undefined
225
- relative_path: string | null | undefined
226
- size_bytes: number | null | undefined
227
- tool_name: string | null | undefined
228
- ```
229
-
230
- ## `ArchivedToolCallInfo` (interface)
231
-
232
- ```ts
233
- archive_path: string | null | undefined
234
- entry_id: string | null | undefined
235
- replacement_content: string | null | undefined
236
- tool_call_id: string | null | undefined
237
- tool_name: string | null | undefined
238
- ```
239
-
240
- ## `AskUserAnswerData` (interface)
241
-
242
- ```ts
243
- custom: Record<number, string>
244
- note: string | undefined
245
- selections: Record<number, number[]>
246
- ```
247
-
248
- ## `AskUserQuestionData` (interface)
249
-
250
- ```ts
251
- questions: QuestionItem[]
252
- source_loop: SourceLoopInfo | null | undefined
253
- ```
254
-
255
- ## `AskUserQuestionRendererProps` (interface)
256
-
257
- ```ts
258
- answerData: AskUserAnswerData | undefined
259
- answered: boolean
260
- data: AskUserQuestionData
261
- onAnswer: ((answer: string, toolCallId: string, answerData: AskUserAnswerData) => void) | undefined
262
- sessionStatus: string
263
- toolCallId: string
264
- ```
265
-
266
- ## `AsrAudioPayload` (type)
267
-
268
- ```ts
269
- export type AsrAudioPayload =
270
- | ArrayBuffer
271
- | Uint8Array
272
- | { pcm: ArrayBuffer | Uint8Array; request_id?: string }
273
- ```
274
-
275
- ## `AssistantTextRendererProps` (interface)
276
-
277
- ```ts
278
- compact: boolean
279
- message: ChatMessage
280
- sessionId: string | undefined
281
- streaming: boolean
282
- ```
283
-
284
- ## `AttachAppOptions` (interface)
285
-
286
- ```ts
287
- cli: AppCliDefinition | undefined
288
- getContext: () => Record<string, unknown> | Promise<Record<string, unknown>>
289
- ```
290
-
291
- ## `AuthBusyReconnect` (class)
292
-
293
- ```ts
294
- cancel: () => void
295
- pending: boolean
296
- schedule: (error: unknown, reconnect: () => void) => boolean
297
- ```
298
-
299
- ## `authBusyRetryDelayMs` (function)
300
-
301
- ```ts
302
- authBusyRetryDelayMs: (error: unknown) => number | null
303
- ```
304
-
305
- ## `AuthResource` (class)
306
-
307
- ```ts
308
- exchangeCode: (params: ExchangeCodeParams) => Promise<ExchangeCodeResult>
309
- getMe: () => Promise<UserInfo>
310
- getProviders: () => Promise<ProvidersResponse>
311
- login: (options?: LoginOptions) => Promise<LoginResult>
312
- logout: () => Promise<{ logout_url: string; }>
313
- logoutToken: () => void
314
- ```
315
-
316
- ## `BackgroundTask` (interface)
317
-
318
- ```ts
319
- command: string
320
- description: string | undefined
321
- elapsed_seconds: number
322
- exit_code: number | null | undefined
323
- failure_reason: string | null | undefined
324
- finished_at: number | null | undefined
325
- id: string
326
- log_path: string | null | undefined
327
- output: string | undefined
328
- output_lines_count: number | undefined
329
- output_preview: string[] | undefined
330
- started_at: number | null | undefined
331
- status: "failed" | "running" | "cancelled" | "starting" | "cancelling" | "succeeded" | "lost"
332
- ```
333
-
334
- ## `BackgroundTaskStopResult` (interface)
335
-
336
- ```ts
337
- message: string
338
- ok: boolean
339
- reason: string | null | undefined
340
- task: BackgroundTask | null | undefined
341
- ```
342
-
343
- ## `BackgroundWakeNotice` (function)
344
-
345
- ```ts
346
- BackgroundWakeNotice: () => JSX.Element
347
- ```
348
-
349
- ## `BizRole` (interface)
350
-
351
- ```ts
352
- description: string | null | undefined
353
- id: string
354
- name: string
355
- preview: { url: string; title?: string | null; } | null | undefined
356
- ```
357
-
358
- ## `BladeApiError` (class)
359
-
360
- ```ts
361
- cause: unknown
362
- message: string
363
- name: string
364
- response: Response
365
- stack: string | undefined
366
- status: number
367
- statusText: string
368
- ```
369
-
370
- ## `BladeClient` (class)
371
-
372
- ```ts
373
- auth: AuthResource
374
- blob: (method: HttpMethod, path: string) => Promise<Blob>
375
- buildAuthedUrl: (path: string) => string
376
- chatGroups: ChatGroupsResource
377
- computers: ComputersResource
378
- fetch: (method: HttpMethod, path: string, init?: BladeFetchInit, isRetry?: boolean) => Promise<Response>
379
- formData: (method: HttpMethod, path: string, form: FormData, options?: { expectOk?: boolean; onUploadProgress?: (progress: UploadProgress) => void; }) => Promise<Response>
380
- hasToken: () => boolean
381
- headless: HeadlessResource
382
- hub: SessionHub
383
- json: <T>(method: HttpMethod, path: string, body?: unknown) => Promise<T>
384
- jsonFromInit: <T>(path: string, init?: RequestInit) => Promise<T>
385
- login: (options?: LoginOptions) => Promise<LoginResult>
386
- logoutToken: () => void
387
- models: ModelsResource
388
- onSocketReplaced: (listener: () => void) => () => void
389
- options: BladeClientOptions
390
- plugins: PluginsResource
391
- requestCommand: (event: string, payload: Record<string, unknown>, timeoutMs: number) => Promise<Record<string, unknown>>
392
- responseFromInit: (path: string, init?: RequestInit) => Promise<Response>
393
- sessions: SessionsResource
394
- setBaseUrl: (baseUrl: string) => void
395
- setToken: (token: string | null) => void
396
- siteVisits: SiteVisitsResource
397
- socket: () => TypedSocket
398
- text: (method: HttpMethod, path: string) => Promise<string>
399
- textFromInit: (path: string, init?: RequestInit) => Promise<string>
400
- token: string | null
401
- ```
402
-
403
- ## `BladeClientOptions` (interface)
404
-
405
- ```ts
406
- baseUrl: string
407
- commandTransport: ((event: string, payload: Record<string, unknown>, send: () => Promise<Record<string, unknown>>) => Promise<Record<string, unknown>>) | undefined
408
- fetchImpl: { (input: RequestInfo | URL, init?: RequestInit): Promise<Response>; (input: string | URL | Request, init?: RequestInit): Promise<Response>; } | undefined
409
- onRefreshSuccess: (() => void | Promise<void>) | undefined
410
- socketToken: string | (() => string | null | undefined) | undefined
411
- token: string | (() => string | null | undefined) | undefined
412
- tokenStorage: TokenStorageMode | undefined
413
- ```
414
-
415
- ## `BladeProvider` (function)
416
-
417
- ```ts
418
- BladeProvider: ({ client, children }: BladeProviderProps) => JSX.Element
419
- ```
420
-
421
- ## `BladeProviderProps` (interface)
422
-
423
- ```ts
424
- children: ReactNode
425
- client: BladeClient
426
- ```
427
-
428
- ## `buildMessageContent` (function)
429
-
430
- ```ts
431
- buildMessageContent: (text: string, attachments: Array<{ kind: "file"; name: string; uploadedPath?: string; textContent?: string | null; mimeType?: string; }>) => MessageContent
432
- ```
433
-
434
- ## `buildToolUiCardKey` (function)
435
-
436
- ```ts
437
- buildToolUiCardKey: (toolCallId: string, type: ToolUiCardContentType, content: string, sourcePath?: string) => string
438
- ```
439
-
440
- ## `canCancelQueuedMessage` (function)
441
-
442
- ```ts
443
- canCancelQueuedMessage: (item: QueuedMessage) => boolean
444
- ```
445
-
446
- ## `canDeliverQueuedMessage` (function)
447
-
448
- ```ts
449
- canDeliverQueuedMessage: (item: QueuedMessage) => boolean
450
- ```
451
-
452
- ## `canEditQueuedMessage` (function)
453
-
454
- ```ts
455
- canEditQueuedMessage: (item: QueuedMessage) => boolean
456
- ```
457
-
458
- ## `canToggleComputer` (function)
459
-
460
- ```ts
461
- canToggleComputer: (computer: SessionComputer) => boolean
462
- ```
463
-
464
- ## `catalogToConnectorItems` (function)
465
-
466
- ```ts
467
- catalogToConnectorItems: (catalog: PluginCatalogEntry[]) => PluginConnectorItem[]
468
- ```
469
-
470
- ## `ChatCompletionTool` (interface)
471
-
472
- ```ts
473
- function: { name: string; description?: string; parameters?: Record<string, unknown>; }
474
- type: "function"
475
- ```
476
-
477
- ## `ChatEnd` (interface)
478
-
479
- ```ts
480
- duration_ms: number
481
- status: string
482
- ```
483
-
484
- ## `chatErrorForDisplay` (function)
485
-
486
- ```ts
487
- chatErrorForDisplay: (message: string, developer?: boolean) => string
488
- ```
489
-
490
- ## `ChatGroup` (interface)
491
-
492
- ```ts
493
- created_at: string
494
- id: string
495
- initiator: "ui" | "sdk" | null
496
- instructions: string
497
- name: string
498
- session_count: number
499
- updated_at: string
500
- workspace_path: string
501
- ```
502
-
503
- ## `ChatGroupsResource` (class)
504
-
505
- ```ts
506
- create: (payload: { name: string; instructions?: string; initiator?: "ui" | "sdk"; }) => Promise<ChatGroup>
507
- delete: (groupId: string, options?: { deleteWorkspace?: boolean; }) => Promise<{ deleted: boolean; deleted_sessions: number; }>
508
- list: () => Promise<ChatGroup[]>
509
- update: (groupId: string, payload: { name?: string; instructions?: string; }) => Promise<ChatGroup>
510
- ```
511
-
512
- ## `ChatMessage` (interface)
513
-
514
- ```ts
515
- blocks: ContentBlock[] | undefined
516
- compaction: CompactionInfo | undefined
517
- content: MessageContent
518
- context: ContextProjectionData | undefined
519
- duration_ms: number | undefined
520
- entry_id: string | undefined
521
- kind: string | undefined
522
- loop_name: string | undefined
523
- memory_refs: MemoryRefInfo[] | undefined
524
- parent_id: string | null | undefined
525
- reasoning: string | undefined
526
- render_id: string | undefined
527
- role: "error" | "user" | "assistant" | "tool"
528
- status: "streaming" | "completed" | "paused" | "failed" | "interrupted" | undefined
529
- timestamp: string | undefined
530
- tool_calls: ToolCallInfo[] | undefined
531
- ```
532
-
533
- ## `ChatView` (function)
534
-
535
- ```ts
536
- ChatView: (props: ChatViewProps) => JSX.Element
537
- ```
538
-
539
- ## `ChatViewClassNames` (interface)
540
-
541
- ```ts
542
- agentLoop: string | undefined
543
- askCard: string | undefined
544
- askOption: string | undefined
545
- assistantText: string | undefined
546
- assistantTurn: string | undefined
547
- banner: string | undefined
548
- chatInput: string | undefined
549
- empty: string | undefined
550
- errorBar: string | undefined
551
- errorMessage: string | undefined
552
- fileCard: string | undefined
553
- followup: string | undefined
554
- followupAction: string | undefined
555
- inputInner: string | undefined
556
- inputToolbar: string | undefined
557
- memoryRefs: string | undefined
558
- messageList: string | undefined
559
- messagesContent: string | undefined
560
- messagesScroll: string | undefined
561
- planPanel: string | undefined
562
- queuePanel: string | undefined
563
- root: string | undefined
564
- scrollToBottom: string | undefined
565
- textarea: string | undefined
566
- thinking: string | undefined
567
- toolRow: string | undefined
568
- userBubble: string | undefined
569
- userMessage: string | undefined
570
- ```
571
-
572
- ## `ChatViewProps` (interface)
573
-
574
- ```ts
575
- classNames: ChatViewClassNames | undefined
576
- commands: Record<string, (data: unknown) => void> | undefined
577
- createOptions: CreateSessionRequest | undefined
578
- llm: (LlmChatOptions & { advanced?: boolean | LlmAdvancedSettings; onOverrideChange?: (override: LlmOverride) => void; }) | undefined
579
- mode: "agent" | "llm" | undefined
580
- onFollowupInteraction: ((event: FollowupInteractionEvent) => void) | undefined
581
- onLlmReady: ((handle: LlmChatHandle) => void) | undefined
582
- onSessionCreated: ((sessionId: string) => void) | undefined
583
- onSessionReady: ((session: AgentSession) => void) | undefined
584
- placeholder: string | undefined
585
- renderers: ChatViewRenderers | undefined
586
- sessionId: string | undefined
587
- sessionPluginControls: ((sessionId: string) => ReactNode) | undefined
588
- slots: ChatViewSlots | undefined
589
- theme: "light" | "dark" | undefined
590
- ```
591
-
592
- ## `ChatViewRenderers` (interface)
593
-
594
- ```ts
595
- askUserQuestion: ((props: AskUserQuestionRendererProps) => ReactNode | null) | undefined
596
- assistantText: ((props: AssistantTextRendererProps) => ReactNode | null) | undefined
597
- planUpdate: ((props: PlanUpdateRendererProps) => ReactNode | null) | undefined
598
- toolCall: ToolCallRenderer | undefined
599
- userMessage: ((props: UserMessageRendererProps) => ReactNode | null) | undefined
600
- ```
601
-
602
- ## `ChatViewSlots` (interface)
603
-
604
- ```ts
605
- emptyState: ReactNode
606
- footer: ReactNode
607
- header: ReactNode
608
- ```
609
-
610
- ## `classifyAgentComputerLaunchOutcome` (function)
611
-
612
- ```ts
613
- classifyAgentComputerLaunchOutcome: (toolCall: { status?: string; result?: unknown; }) => AgentComputerLaunchOutcome
614
- ```
615
-
616
- ## `ClientProjectionBuilder` (class)
617
-
618
- ```ts
619
- processBatch: (events: RawEvent[]) => ProjectionUpdate[]
620
- processEvent: (event: RawEvent) => ProjectionUpdate[] | null
621
- reset: () => void
622
- seedSequence: (maxSeq: number) => void
623
- ```
624
-
625
- ## `CodeBlockOverrides` (type)
626
-
627
- ```ts
628
- export type CodeBlockOverrides = Record<string, ComponentType<{ code: string }>>
629
- ```
630
-
631
- ## `collectInlineToolUiCards` (function)
632
-
633
- ```ts
634
- collectInlineToolUiCards: (messages: ChatMessage[]) => InlineToolUiCardEntry[]
635
- ```
636
-
637
- ## `collectMemoryRefs` (function)
638
-
639
- ```ts
640
- collectMemoryRefs: (messages: ChatMessage[]) => MemoryRefInfo[]
641
- ```
642
-
643
- ## `collectPreviewToolUiCards` (function)
644
-
645
- ```ts
646
- collectPreviewToolUiCards: (messages: ChatMessage[]) => PreviewToolUiCardEntry[]
647
- ```
648
-
649
- ## `CommandEnvelope` (interface)
650
-
651
- ```ts
652
- action: string
653
- direction: "agent-to-host"
654
- meta: { sessionId: string; toolCallId?: string; timestamp: number; }
655
- payload: unknown
656
- ```
657
-
658
- ## `CommandHandler` (type)
659
-
660
- ```ts
661
- export type CommandHandler = (payload: unknown, meta: { toolCallId?: string }) => void
662
- ```
663
-
664
- ## `CompactionInfo` (interface)
665
-
666
- ```ts
667
- archived_count: number | null | undefined
668
- archived_files: ArchivedFileInfo[] | null | undefined
669
- archived_tool_calls: ArchivedToolCallInfo[] | null | undefined
670
- compaction_id: string
671
- failure_reason: string | null | undefined
672
- fallback_applied: boolean | null | undefined
673
- saved_ratio: number | null | undefined
674
- summary_full: string | null | undefined
675
- summary_preview: string | null | undefined
676
- tokens_after: number | null | undefined
677
- tokens_before: number | null | undefined
678
- trigger: "auto" | "manual" | "forced_retry" | null | undefined
679
- ```
680
-
681
- ## `computerDaemonVersion` (function)
682
-
683
- ```ts
684
- computerDaemonVersion: (computer: SessionComputer) => string
685
- ```
686
-
687
- ## `computerOS` (function)
688
-
689
- ```ts
690
- computerOS: (computer: SessionComputer) => ComputerOS
691
- ```
692
-
693
- ## `ComputerOS` (type)
694
-
695
- ```ts
696
- export type ComputerOS = "macos" | "windows" | "linux" | "unknown"
697
- ```
698
-
699
- ## `computerPlatformLabel` (function)
700
-
701
- ```ts
702
- computerPlatformLabel: (computer: SessionComputer) => string
703
- ```
704
-
705
- ## `ComputersResource` (class)
706
-
707
- ```ts
708
- list: (sessionId: string) => Promise<SessionComputerList>
709
- listAccount: () => Promise<AccountComputerList>
710
- setEnabled: (sessionId: string, computer: string, enabled: boolean) => Promise<SessionComputer>
711
- ```
712
-
713
- ## `computerState` (function)
714
-
715
- ```ts
716
- computerState: (computer: SessionComputer) => ComputerState
717
- ```
718
-
719
- ## `ComputerState` (type)
720
-
721
- ```ts
722
- export type ComputerState = "primary" | "enabled" | "offline" | "idle"
723
- ```
724
-
725
- ## `ConfiguringPlugin` (interface)
726
-
727
- ```ts
728
- name: string
729
- pendingActivation: boolean
730
- ```
731
-
732
- ## `connectEmbedded` (function)
733
-
734
- ```ts
735
- connectEmbedded: (options: EmbeddedChatOptions) => EmbeddedChat
736
- ```
737
-
738
- ## `ConnectionStatus` (type)
739
-
740
- ```ts
741
- export type ConnectionStatus = "connecting" | "connected" | "reconnecting" | "disconnected"
742
- ```
743
-
744
- ## `ConnectorPanel` (function)
745
-
746
- ```ts
747
- ConnectorPanel: ({ client, sessionId, pendingPlugins, onPendingPluginsChange, pendingDisabledReason, onPluginsChanged, onSelectedChange, renderComputerSection, renderExternalAccounts, renderFooterActions, className, }: ConnectorPanelProps) => JSX.Element
748
- ```
749
-
750
- ## `ConnectorPanelProps` (interface)
751
-
752
- ```ts
753
- className: string | undefined
754
- client: BladeClient
755
- onPendingPluginsChange: ((next: PluginConnectorSelection[]) => void) | undefined
756
- onPluginsChanged: ((plugin: SessionPluginActivation) => void) | undefined
757
- onSelectedChange: ((items: PluginConnectorItem[]) => void) | undefined
758
- pendingDisabledReason: string | null | undefined
759
- pendingPlugins: PluginConnectorSelection[] | undefined
760
- renderComputerSection: ((query: string) => ReactNode) | undefined
761
- renderExternalAccounts: ((query: string) => ReactNode) | undefined
762
- renderFooterActions: (() => ReactNode) | undefined
763
- sessionId: string | null
764
- ```
765
-
766
- ## `ContentBlock` (interface)
767
-
768
- ```ts
769
- content: unknown
770
- delivery_id: string | null | undefined
771
- display_name: string | null | undefined
772
- tool_call_id: string | null | undefined
773
- tool_name: string | null | undefined
774
- type: "text" | "thinking" | "tool_use" | "tool_result" | "tool_ui" | "tool_bridge" | "system_notification" | "mode_change" | "plan_status" | "ask_user_answer"
775
- ```
776
-
777
- ## `ContentDelta` (interface)
778
-
779
- ```ts
780
- content: string
781
- loop_name: string | undefined
782
- ```
783
-
784
- ## `contentPreview` (function)
785
-
786
- ```ts
787
- contentPreview: (content: MessageContent, maxLen?: number) => string
788
- ```
789
-
790
- ## `ContextAction` (type)
791
-
792
- ```ts
793
- export type ContextAction = "published" | "retained" | "removed"
794
- ```
795
-
796
- ## `ContextCard` (function)
797
-
798
- ```ts
799
- ContextCard: ({ context, className }: ContextCardProps) => JSX.Element
800
- ```
801
-
802
- ## `ContextCardProps` (interface)
803
-
804
- ```ts
805
- className: string | undefined
806
- context: ContextProjectionData
807
- ```
808
-
809
- ## `ContextDisplayState` (interface)
810
-
811
- ```ts
812
- detail: string
813
- isRemoved: boolean
814
- summary: string
815
- title: string
816
- ```
817
-
818
- ## `ContextGroupCard` (function)
819
-
820
- ```ts
821
- ContextGroupCard: ({ contexts, className }: ContextGroupCardProps) => JSX.Element | null
822
- ```
823
-
824
- ## `ContextGroupCardProps` (interface)
825
-
826
- ```ts
827
- className: string | undefined
828
- contexts: readonly ContextProjectionData[]
829
- ```
830
-
831
- ## `ContextGroupDisplayState` (interface)
832
-
833
- ```ts
834
- count: number
835
- summary: string
836
- title: string
837
- ```
838
-
839
- ## `contextProjectionData` (function)
840
-
841
- ```ts
842
- contextProjectionData: (fields: ContextProjectionFields) => ContextProjectionData | null
843
- ```
844
-
845
- ## `ContextProjectionData` (interface)
846
-
847
- ```ts
848
- context_action: ContextAction
849
- context_key: string
850
- context_kind: string
851
- context_name: string
852
- context_order: number
853
- context_revision: string
854
- display_summary: string | null | undefined
855
- display_title: string | null | undefined
856
- sources: ContextSourceInfo[]
857
- ```
858
-
859
- ## `ContextProjectionFields` (interface)
860
-
861
- ```ts
862
- context_action: ContextAction | null | undefined
863
- context_key: string | null | undefined
864
- context_kind: string | null | undefined
865
- context_name: string | null | undefined
866
- context_order: number | null | undefined
867
- context_revision: string | null | undefined
868
- display_summary: string | null | undefined
869
- display_title: string | null | undefined
870
- sources: ContextSourceInfo[] | null | undefined
871
- ```
872
-
873
- ## `ContextSourceInfo` (type)
874
-
875
- ```ts
876
- export type ContextSourceInfo = Record<string, unknown>
877
- ```
878
-
879
- ## `createInitialSessionState` (function)
880
-
881
- ```ts
882
- createInitialSessionState: (sessionId: string) => SessionState
883
- ```
884
-
885
- ## `CreateSessionRequest` (interface)
886
-
887
- ```ts
888
- agent_runtime_id: string | null | undefined
889
- biz_role_id: string | null | undefined
890
- chat_group_id: string | null | undefined
891
- compaction_ratio: number | null | undefined
892
- daemon_id: string | null | undefined
893
- disable_tools: string[] | null | undefined
894
- enable_thinking: boolean | null | undefined
895
- env: Record<string, string> | undefined
896
- intent: string | undefined
897
- memory_enabled: boolean | null | undefined
898
- model: string | null | undefined
899
- primary_skill_id: string | null | undefined
900
- runtime_type: "sandbox" | "daemon" | "native" | null | undefined
901
- session_solution_asset_id: string | null | undefined
902
- solution_id: string | undefined
903
- solution_ref: PublishedSolutionRef | undefined
904
- solution_snapshot_session_id: string | undefined
905
- template_id: TemplateId | undefined
906
- ```
907
-
908
- ## `createSocket` (function)
909
-
910
- ```ts
911
- createSocket: (options: CreateSocketOptions) => TypedSocket
912
- ```
913
-
914
- ## `CreateSocketOptions` (interface)
915
-
916
- ```ts
917
- baseUrl: string
918
- path: string | undefined
919
- token: string | (() => string | null | undefined) | undefined
920
- transports: ("polling" | "websocket")[] | undefined
921
- ```
922
-
923
- ## `CurrentPlanPanel` (function)
924
-
925
- ```ts
926
- CurrentPlanPanel: ({ messages, running, revealRevision, sessionId, className, }: { messages: ChatMessage[]; running?: boolean; revealRevision?: number; sessionId?: string; className?: string; }) => JSX.Element | null
927
- ```
928
-
929
- ## `DEFAULT_ALLOWED_TAGS` (const)
930
-
931
- ```ts
932
- DEFAULT_ALLOWED_TAGS: AllowedTags
933
- ```
934
-
935
- ## `DEFAULT_REPLAY_SPEED` (const)
936
-
937
- ```ts
938
- DEFAULT_REPLAY_SPEED: ReplaySpeed
939
- ```
940
-
941
- ## `EmbeddedChat` (interface)
942
-
943
- ```ts
944
- attach: (label: string, data: unknown) => void
945
- dispose: () => void
946
- insertText: (text: string) => void
947
- onCommand: (action: string, handler: CommandHandler) => () => void
948
- send: (text: string) => void
949
- ```
950
-
951
- ## `EmbeddedChatOptions` (interface)
952
-
953
- ```ts
954
- allowedOrigins: string[]
955
- iframe: HTMLIFrameElement | undefined
956
- ```
957
-
958
- ## `EMPTY_PLATFORM_ENDPOINTS` (const)
959
-
960
- ```ts
961
- EMPTY_PLATFORM_ENDPOINTS: PlatformEndpoints
962
- ```
963
-
964
- ## `EMPTY_SESSION_QUEUE` (const)
965
-
966
- ```ts
967
- EMPTY_SESSION_QUEUE: SessionQueueSnapshot
968
- ```
969
-
970
- ## `ExchangeCodeParams` (interface)
971
-
972
- ```ts
973
- clientOrigin: string
974
- code: string
975
- state: string
976
- ```
977
-
978
- ## `ExchangeCodeResult` (interface)
979
-
980
- ```ts
981
- access_token: string
982
- token_type: string
983
- user: { id: string; username: string; display_name: string; avatar_url: string | null; }
984
- ```
985
-
986
- ## `ExistingSolutionRef` (interface)
987
-
988
- ```ts
989
- bizRoleId: string | undefined
990
- kind: "existing"
991
- solutionId: string
992
- ```
993
-
994
- ## `ExternalAnchor` (function)
995
-
996
- ```ts
997
- ExternalAnchor: ({ children, href, ...props }: AnchorProps) => JSX.Element
998
- ```
999
-
1000
- ## `extractTextAttachments` (function)
1001
-
1002
- ```ts
1003
- extractTextAttachments: (content: MessageContent) => { cleanText: string; attachments: ParsedTextAttachment[]; contexts: ParsedTextContext[]; }
1004
- ```
1005
-
1006
- ## `FileContentPart` (interface)
1007
-
1008
- ```ts
1009
- data: string
1010
- name: string
1011
- type: "file"
1012
- ```
1013
-
1014
- ## `FileEntry` (interface)
1015
-
1016
- ```ts
1017
- created_at: number
1018
- is_dir: boolean
1019
- name: string
1020
- path: string
1021
- tags: string[] | undefined
1022
- ```
1023
-
1024
- ## `filterConnectorItems` (function)
1025
-
1026
- ```ts
1027
- filterConnectorItems: (items: PluginConnectorItem[], query: string) => PluginConnectorItem[]
1028
- ```
1029
-
1030
- ## `FinalArtifact` (interface)
1031
-
1032
- ```ts
1033
- kind: "link" | "file"
1034
- label: string
1035
- target: string
1036
- ```
1037
-
1038
- ## `FollowupInteractionEvent` (type)
1039
-
1040
- ```ts
1041
- export type FollowupInteractionEvent =
1042
- | {
1043
- type: "suggestions_shown"
1044
- sessionId?: string
1045
- assistantEntryId: string
1046
- count: number
1047
- }
1048
- | {
1049
- type: "suggestion_adopted"
1050
- sessionId?: string
1051
- assistantEntryId: string
1052
- suggestionIndex: number
1053
- }
1054
- | {
1055
- type: "artifact_shown"
1056
- sessionId?: string
1057
- assistantEntryId: string
1058
- artifactIndex: number
1059
- artifactKind: FinalArtifact["kind"]
1060
- }
1061
- | {
1062
- type: "artifact_opened"
1063
- sessionId?: string
1064
- assistantEntryId: string
1065
- artifactIndex: number
1066
- artifactKind: FinalArtifact["kind"]
1067
- }
1068
- | {
1069
- type: "artifact_download_started"
1070
- sessionId?: string
1071
- assistantEntryId: string
1072
- artifactIndex: number
1073
- artifactKind: "file"
1074
- }
1075
- | {
1076
- type: "artifact_download_succeeded"
1077
- sessionId?: string
1078
- assistantEntryId: string
1079
- artifactIndex: number
1080
- artifactKind: "file"
1081
- ```
1082
-
1083
- ## `getContextDisplayState` (function)
1084
-
1085
- ```ts
1086
- getContextDisplayState: (context: ContextProjectionData) => ContextDisplayState
1087
- ```
1088
-
1089
- ## `getContextGroupDisplayState` (function)
1090
-
1091
- ```ts
1092
- getContextGroupDisplayState: (contexts: readonly ContextProjectionData[]) => ContextGroupDisplayState
1093
- ```
1094
-
1095
- ## `getFileParts` (function)
1096
-
1097
- ```ts
1098
- getFileParts: (content: MessageContent) => FileContentPart[]
1099
- ```
1100
-
1101
- ## `getImageParts` (function)
1102
-
1103
- ```ts
1104
- getImageParts: (content: MessageContent) => ImageUrlContentPart[]
1105
- ```
1106
-
1107
- ## `getPlanUpdateDisplayState` (function)
1108
-
1109
- ```ts
1110
- getPlanUpdateDisplayState: (messages: ChatMessage[]) => PlanUpdateDisplayState
1111
- ```
1112
-
1113
- ## `getTextContent` (function)
1114
-
1115
- ```ts
1116
- getTextContent: (content: MessageContent) => string
1117
- ```
1118
-
1119
- ## `GlobalSearchConversationResult` (interface)
1120
-
1121
- ```ts
1122
- matched: "title" | "content"
1123
- session: SessionInfo
1124
- snippet: string
1125
- type: "conversation"
1126
- ```
1127
-
1128
- ## `GlobalSearchFileResult` (interface)
1129
-
1130
- ```ts
1131
- matched: "name" | "path"
1132
- name: string
1133
- path: string
1134
- session: SessionInfo
1135
- snippet: string
1136
- type: "file"
1137
- ```
1138
-
1139
- ## `GlobalSearchResult` (interface)
1140
-
1141
- ```ts
1142
- indexing: boolean
1143
- items: GlobalSearchResultItem[]
1144
- truncated: boolean
1145
- ```
1146
-
1147
- ## `GlobalSearchResultItem` (type)
1148
-
1149
- ```ts
1150
- export type GlobalSearchResultItem =
1151
- | GlobalSearchConversationResult
1152
- | GlobalSearchFileResult
1153
- ```
1154
-
1155
- ## `groupAdjacentContextRuns` (function)
1156
-
1157
- ```ts
1158
- groupAdjacentContextRuns: (kinds: readonly (string | null)[]) => readonly (readonly number[])[]
1159
- ```
1160
-
1161
- ## `groupMessagesByLoop` (function)
1162
-
1163
- ```ts
1164
- groupMessagesByLoop: (messages: ChatMessage[]) => MessageGroup[]
1165
- ```
1166
-
1167
- ## `hasChatRunEvent` (function)
1168
-
1169
- ```ts
1170
- hasChatRunEvent: (events: RawEvent[]) => boolean
1171
- ```
1172
-
1173
- ## `HeadlessResource` (class)
1174
-
1175
- ```ts
1176
- run: { <T = unknown>(prompt: string, options: HeadlessRunOptions & { schema: JsonSchemaObject; }): Promise<T>; (prompt: string, options?: HeadlessRunOptions): Promise<string>; }
1177
- runInSession: { <T = unknown>(sessionId: string, prompt: string, options: HeadlessRunOptions & { schema: JsonSchemaObject; }): Promise<T>; (sessionId: string, prompt: string, options?: HeadlessRunOptions): Promise<string>; }
1178
- runWithSession: { <T = unknown>(prompt: string, options: HeadlessRunOptions & { schema: JsonSchemaObject; }): Promise<HeadlessRunInSessionResult<T>>; (prompt: string, options?: HeadlessRunOptions): Promise<HeadlessRunInSessionResult<string>>; }
1179
- ```
1180
-
1181
- ## `HistoricalCommand` (interface)
1182
-
1183
- ```ts
1184
- action: string
1185
- deliveryId: string
1186
- payload: unknown
1187
- toolCallId: string | undefined
1188
- ```
1189
-
1190
- ## `ImageUrlContentPart` (interface)
1191
-
1192
- ```ts
1193
- image_url: { url: string; source_path?: string; width?: number; height?: number; }
1194
- type: "image_url"
1195
- ```
1196
-
1197
- ## `ImportSessionOptions` (interface)
1198
-
1199
- ```ts
1200
- solution_ref: PublishedSolutionRef | undefined
1201
- solution_snapshot_session_id: string | undefined
1202
- ```
1203
-
1204
- ## `InboundAction` (type)
1205
-
1206
- ```ts
1207
- export type InboundAction = "addContext" | "appendInput" | "sendMessage"
1208
- ```
1209
-
1210
- ## `InboundEnvelope` (interface)
1211
-
1212
- ```ts
1213
- action: InboundAction
1214
- direction: "host-to-agent"
1215
- payload: unknown
1216
- ```
1217
-
1218
- ## `inferToolStatus` (function)
1219
-
1220
- ```ts
1221
- inferToolStatus: (resultStr: string) => "done" | "error" | "cancelled"
1222
- ```
1223
-
1224
- ## `InlineToolUiCardEntry` (interface)
1225
-
1226
- ```ts
1227
- card: ToolUiCard
1228
- key: string
1229
- toolCallId: string
1230
- ```
1231
-
1232
- ## `isAgentComputerCommand` (function)
1233
-
1234
- ```ts
1235
- isAgentComputerCommand: (command: string) => boolean
1236
- ```
1237
-
1238
- ## `isAgentComputerToolCall` (function)
1239
-
1240
- ```ts
1241
- isAgentComputerToolCall: (argumentsJson: string | null | undefined) => boolean
1242
- ```
1243
-
1244
- ## `isAppDevToolUiCard` (function)
1245
-
1246
- ```ts
1247
- isAppDevToolUiCard: (card: ToolUiCard, isAppDev: boolean) => boolean
1248
- ```
1249
-
1250
- ## `isBackgroundWakeMessage` (function)
1251
-
1252
- ```ts
1253
- isBackgroundWakeMessage: (message: Pick<ChatMessage, "blocks">) => boolean
1254
- ```
1255
-
1256
- ## `isCommandEnvelope` (function)
1257
-
1258
- ```ts
1259
- isCommandEnvelope: (value: unknown) => value is CommandEnvelope
1260
- ```
1261
-
1262
- ## `isEntryGoneError` (function)
1263
-
1264
- ```ts
1265
- isEntryGoneError: (error: unknown) => boolean
1266
- ```
1267
-
1268
- ## `isHiddenInternalMessage` (function)
1269
-
1270
- ```ts
1271
- isHiddenInternalMessage: (message: Pick<ChatMessage, "role" | "content">, options?: { includeLegacyForkContext?: boolean; }) => boolean
1272
- ```
1273
-
1274
- ## `isInboundEnvelope` (function)
1275
-
1276
- ```ts
1277
- isInboundEnvelope: (value: unknown) => value is InboundEnvelope
1278
- ```
1279
-
1280
- ## `isInternalStatusToolUiCard` (function)
1281
-
1282
- ```ts
1283
- isInternalStatusToolUiCard: (card: { title?: string | null; } | null) => boolean
1284
- ```
1285
-
1286
- ## `isMcpAppData` (function)
1287
-
1288
- ```ts
1289
- isMcpAppData: (value: unknown) => value is McpAppData
1290
- ```
1291
-
1292
- ## `isPlanUpdateTool` (function)
1293
-
1294
- ```ts
1295
- isPlanUpdateTool: (toolCall: Pick<ToolCallInfo, "name">) => boolean
1296
- ```
1297
-
1298
- ## `isQueuePanelVisible` (function)
1299
-
1300
- ```ts
1301
- isQueuePanelVisible: (snapshot: Pick<SessionQueueSnapshot, "items" | "paused">, notice: string | null | undefined, editing?: boolean) => boolean
1302
- ```
1303
-
1304
- ## `isSessionQueueSnapshot` (function)
1305
-
1306
- ```ts
1307
- isSessionQueueSnapshot: (value: unknown) => value is SessionQueueSnapshot
1308
- ```
1309
-
1310
- ## `isToolUiCard` (function)
1311
-
1312
- ```ts
1313
- isToolUiCard: (value: unknown) => value is ToolUiCard
1314
- ```
1315
-
1316
- ## `latestPostChatFollowup` (function)
1317
-
1318
- ```ts
1319
- latestPostChatFollowup: (turns: TurnProjection[]) => PostChatFollowup | null
1320
- ```
1321
-
1322
- ## `latestUserSpeechEntryId` (function)
1323
-
1324
- ```ts
1325
- latestUserSpeechEntryId: (turns: TurnProjection[]) => string | null
1326
- ```
1327
-
1328
- ## `LayoutType` (enum)
1329
-
1330
- ```ts
1331
- export enum LayoutType {
1332
- Default = "default",
1333
- SkillEditor = "skill-editor",
1334
- BladeCoa = "blade-coa",
1335
- SolutionEditor = "solution-editor",
1336
- SolutionEditor2 = "solution-editor2",
1337
- ChatPreview = "chat-preview",
1338
- ChatOnly = "chat-only",
1339
- SolutionApp = "solution-app",
1340
- Custom = "custom",
1341
- }
1342
- ```
1343
-
1344
- ## `LinkSafetyConfig` (interface)
1345
-
1346
- ```ts
1347
- enabled: boolean
1348
- onLinkCheck: ((url: string) => Promise<boolean> | boolean) | undefined
1349
- renderModal: ((props: { isOpen: boolean; onClose: () => void; onConfirm: () => void; url: string; }) => ReactNode) | undefined
1350
- ```
1351
-
1352
- ## `LiveRevisionState` (interface)
1353
-
1354
- ```ts
1355
- byTurnId: ReadonlyMap<string, number>
1356
- current: number
1357
- ```
1358
-
1359
- ## `LlmAdvancedSettings` (interface)
1360
-
1361
- ```ts
1362
- apiKey: boolean | undefined
1363
- baseURL: boolean | undefined
1364
- model: boolean | undefined
1365
- storage: "local" | "memory" | undefined
1366
- storageKey: string | undefined
1367
- ```
1368
-
1369
- ## `LlmChat` (function)
1370
-
1371
- ```ts
1372
- LlmChat: ({ classNames, renderers, slots, placeholder, theme, onReady, advanced, onOverrideChange, ...options }: LlmChatProps) => JSX.Element
1373
- ```
1374
-
1375
- ## `LlmChatHandle` (interface)
1376
-
1377
- ```ts
1378
- insertText: (text: string) => void
1379
- reset: () => void
1380
- send: (text: string) => Promise<boolean>
1381
- ```
1382
-
1383
- ## `LlmChatOptions` (interface)
1384
-
1385
- ```ts
1386
- apiKey: string | undefined
1387
- baseURL: string
1388
- extraBody: Record<string, unknown> | undefined
1389
- fetchImpl: { (input: RequestInfo | URL, init?: RequestInit): Promise<Response>; (input: string | URL | Request, init?: RequestInit): Promise<Response>; } | undefined
1390
- headers: Record<string, string> | undefined
1391
- historyTurns: number | undefined
1392
- maxToolRounds: number | undefined
1393
- model: string
1394
- onToolCall: ((call: LlmToolCall) => Promise<unknown>) | undefined
1395
- system: string | undefined
1396
- temperature: number | undefined
1397
- tools: ChatCompletionTool[] | undefined
1398
- ```
1399
-
1400
- ## `LlmChatProps` (interface)
1401
-
1402
- ```ts
1403
- advanced: boolean | LlmAdvancedSettings | undefined
1404
- apiKey: string | undefined
1405
- baseURL: string
1406
- classNames: ChatViewClassNames | undefined
1407
- extraBody: Record<string, unknown> | undefined
1408
- fetchImpl: { (input: RequestInfo | URL, init?: RequestInit): Promise<Response>; (input: string | URL | Request, init?: RequestInit): Promise<Response>; } | undefined
1409
- headers: Record<string, string> | undefined
1410
- historyTurns: number | undefined
1411
- maxToolRounds: number | undefined
1412
- model: string
1413
- onOverrideChange: ((override: LlmOverride) => void) | undefined
1414
- onReady: ((handle: LlmChatHandle) => void) | undefined
1415
- onToolCall: ((call: LlmToolCall) => Promise<unknown>) | undefined
1416
- placeholder: string | undefined
1417
- renderers: ChatViewRenderers | undefined
1418
- slots: ChatViewSlots | undefined
1419
- system: string | undefined
1420
- temperature: number | undefined
1421
- theme: "light" | "dark" | undefined
1422
- tools: ChatCompletionTool[] | undefined
1423
- ```
1424
-
1425
- ## `LlmOverride` (interface)
1426
-
1427
- ```ts
1428
- apiKey: string | undefined
1429
- baseURL: string | undefined
1430
- model: string | undefined
1431
- ```
1432
-
1433
- ## `LlmResponseDone` (interface)
1434
-
1435
- ```ts
1436
- content: string | null | undefined
1437
- loop_name: string | undefined
1438
- reasoning: string | null | undefined
1439
- role: string
1440
- tool_calls: { id: string; function: { name: string; arguments: string; }; }[] | undefined
1441
- ```
1442
-
1443
- ## `LlmToolCall` (interface)
1444
-
1445
- ```ts
1446
- arguments: string
1447
- id: string
1448
- name: string
1449
- ```
1450
-
1451
- ## `loadPlatformEndpoints` (function)
1452
-
1453
- ```ts
1454
- loadPlatformEndpoints: (options?: LoadPlatformEndpointsOptions) => Promise<PlatformEndpoints>
1455
- ```
1456
-
1457
- ## `LoadPlatformEndpointsOptions` (interface)
1458
-
1459
- ```ts
1460
- baseUrl: string | undefined
1461
- fetchImpl: { (input: RequestInfo | URL, init?: RequestInit): Promise<Response>; (input: string | URL | Request, init?: RequestInit): Promise<Response>; } | undefined
1462
- timeoutMs: number | undefined
1463
- ```
1464
-
1465
- ## `LoginOptions` (interface)
1466
-
1467
- ```ts
1468
- height: number | undefined
1469
- timeoutMs: number | undefined
1470
- width: number | undefined
1471
- ```
1472
-
1473
- ## `LoginResult` (interface)
1474
-
1475
- ```ts
1476
- token: string
1477
- user: { id?: string; username?: string; display_name?: string; } | undefined
1478
- ```
1479
-
1480
- ## `MarkdownComponents` (type)
1481
-
1482
- ```ts
1483
- export type MarkdownComponents = {
1484
- [Key in keyof JSX.IntrinsicElements]?: ComponentType<JSX.IntrinsicElements[Key]>
1485
- } & {
1486
- [tagName: string]: ComponentType<Record<string, unknown>> | undefined
1487
- }
1488
- ```
1489
-
1490
- ## `MarkdownContent` (function)
1491
-
1492
- ```ts
1493
- MarkdownContent: ({ children, className, mode, sessionId }: MarkdownContentProps) => JSX.Element
1494
- ```
1495
-
1496
- ## `MarkdownContentProps` (interface)
1497
-
1498
- ```ts
1499
- children: string
1500
- className: string | undefined
1501
- mode: "streaming" | "static" | undefined
1502
- sessionId: string | undefined
1503
- ```
1504
-
1505
- ## `MarkdownRenderer` (function)
1506
-
1507
- ```ts
1508
- MarkdownRenderer: ({ children, className, mode, allowedTags, components, rawHtmlPlugins, codeBlockOverrides, }: MarkdownRendererProps) => DetailedReactHTMLElement<{ className: string; }, HTMLElement>
1509
- ```
1510
-
1511
- ## `MarkdownRendererProps` (interface)
1512
-
1513
- ```ts
1514
- allowedTags: AllowedTags | undefined
1515
- children: string
1516
- className: string | undefined
1517
- codeBlockOverrides: CodeBlockOverrides | undefined
1518
- components: MarkdownComponents | undefined
1519
- linkSafety: LinkSafetyConfig | undefined
1520
- mode: "streaming" | "static" | undefined
1521
- rawHtmlPlugins: RawHtmlPlugin[] | undefined
1522
- sessionId: string | undefined
1523
- ```
1524
-
1525
- ## `McpAppArchive` (interface)
1526
-
1527
- ```ts
1528
- html: string
1529
- mimeType: string
1530
- plugin: string
1531
- previousToolInput: Record<string, unknown> | undefined
1532
- previousToolResult: Record<string, unknown> | undefined
1533
- resourceMeta: Record<string, unknown>
1534
- resourceUri: string
1535
- sourceId: string
1536
- toolInput: Record<string, unknown>
1537
- toolResult: Record<string, unknown>
1538
- ```
1539
-
1540
- ## `McpAppCard` (function)
1541
-
1542
- ```ts
1543
- McpAppCard: ({ sessionId, sourceId, client: suppliedClient, onMessage: suppliedOnMessage }: { sessionId: string; sourceId: string; client?: BladeClient; onMessage?: (message: McpAppMessage) => void; }) => JSX.Element
1544
- ```
1545
-
1546
- ## `McpAppContextState` (interface)
1547
-
1548
- ```ts
1549
- content: string
1550
- plugin: string | null
1551
- revision: string
1552
- server_alias: string | null
1553
- ```
1554
-
1555
- ## `McpAppContextUpdate` (interface)
1556
-
1557
- ```ts
1558
- content: string
1559
- expected_revision: string | null
1560
- request_id: string
1561
- ```
1562
-
1563
- ## `McpAppData` (interface)
1564
-
1565
- ```ts
1566
- mimeType: string
1567
- resourceMeta: Record<string, unknown>
1568
- resourceUri: string
1569
- sourceId: string
1570
- toolInput: Record<string, unknown>
1571
- toolResult: Record<string, unknown>
1572
- ```
1573
-
1574
- ## `McpAppMessage` (interface)
1575
-
1576
- ```ts
1577
- content: string
1578
- label: string
1579
- sessionId: string
1580
- sourceId: string
1581
- ```
1582
-
1583
- ## `MemoryRef` (interface)
1584
-
1585
- ```ts
1586
- content_preview: string
1587
- id: number
1588
- skill_name: string | null | undefined
1589
- ```
1590
-
1591
- ## `MemoryRefInfo` (interface)
1592
-
1593
- ```ts
1594
- content_preview: string
1595
- id: number
1596
- skill_name: string | null | undefined
1597
- ```
1598
-
1599
- ## `MemoryRefsHint` (function)
1600
-
1601
- ```ts
1602
- MemoryRefsHint: ({ refs, className }: { refs: MemoryRefInfo[]; className?: string; }) => JSX.Element
1603
- ```
1604
-
1605
- ## `mergeConnectorItems` (function)
1606
-
1607
- ```ts
1608
- mergeConnectorItems: (sessionPlugins: SessionPlugin[], catalog: PluginCatalogEntry[] | null) => PluginConnectorItem[]
1609
- ```
1610
-
1611
- ## `MessageContent` (type)
1612
-
1613
- ```ts
1614
- export type MessageContent = string | MessageContentPart[]
1615
- ```
1616
-
1617
- ## `MessageContentPart` (type)
1618
-
1619
- ```ts
1620
- export type MessageContentPart = TextContentPart | ImageUrlContentPart | FileContentPart
1621
- ```
1622
-
1623
- ## `MessageImage` (const)
1624
-
1625
- ```ts
1626
- MessageImage: ForwardRefExoticComponent<MessageImageProps & RefAttributes<HTMLImageElement>>
1627
- ```
1628
-
1629
- ## `MessageImageProps` (interface)
1630
-
1631
- ```ts
1632
- about: string | undefined
1633
- accessKey: string | undefined
1634
- alt: string | undefined
1635
- aria-activedescendant: string | undefined
1636
- aria-atomic: (boolean | "false" | "true") | undefined
1637
- aria-autocomplete: "none" | "inline" | "list" | "both" | undefined
1638
- aria-braillelabel: string | undefined
1639
- aria-brailleroledescription: string | undefined
1640
- aria-busy: (boolean | "false" | "true") | undefined
1641
- aria-checked: boolean | "false" | "true" | "mixed" | undefined
1642
- aria-colcount: number | undefined
1643
- aria-colindex: number | undefined
1644
- aria-colindextext: string | undefined
1645
- aria-colspan: number | undefined
1646
- aria-controls: string | undefined
1647
- aria-current: boolean | "false" | "true" | "location" | "time" | "date" | "page" | "step" | undefined
1648
- aria-describedby: string | undefined
1649
- aria-description: string | undefined
1650
- aria-details: string | undefined
1651
- aria-disabled: (boolean | "false" | "true") | undefined
1652
- aria-dropeffect: "link" | "none" | "copy" | "execute" | "move" | "popup" | undefined
1653
- aria-errormessage: string | undefined
1654
- aria-expanded: (boolean | "false" | "true") | undefined
1655
- aria-flowto: string | undefined
1656
- aria-grabbed: (boolean | "false" | "true") | undefined
1657
- aria-haspopup: boolean | "false" | "true" | "dialog" | "menu" | "listbox" | "tree" | "grid" | undefined
1658
- aria-hidden: (boolean | "false" | "true") | undefined
1659
- aria-invalid: boolean | "false" | "true" | "grammar" | "spelling" | undefined
1660
- aria-keyshortcuts: string | undefined
1661
- aria-label: string | undefined
1662
- aria-labelledby: string | undefined
1663
- aria-level: number | undefined
1664
- aria-live: "off" | "assertive" | "polite" | undefined
1665
- aria-modal: (boolean | "false" | "true") | undefined
1666
- aria-multiline: (boolean | "false" | "true") | undefined
1667
- aria-multiselectable: (boolean | "false" | "true") | undefined
1668
- aria-orientation: "horizontal" | "vertical" | undefined
1669
- aria-owns: string | undefined
1670
- aria-placeholder: string | undefined
1671
- aria-posinset: number | undefined
1672
- aria-pressed: boolean | "false" | "true" | "mixed" | undefined
1673
- aria-readonly: (boolean | "false" | "true") | undefined
1674
- aria-relevant: "text" | "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined
1675
- aria-required: (boolean | "false" | "true") | undefined
1676
- aria-roledescription: string | undefined
1677
- aria-rowcount: number | undefined
1678
- aria-rowindex: number | undefined
1679
- aria-rowindextext: string | undefined
1680
- aria-rowspan: number | undefined
1681
- aria-selected: (boolean | "false" | "true") | undefined
1682
- aria-setsize: number | undefined
1683
- aria-sort: "none" | "ascending" | "descending" | "other" | undefined
1684
- aria-valuemax: number | undefined
1685
- aria-valuemin: number | undefined
1686
- aria-valuenow: number | undefined
1687
- aria-valuetext: string | undefined
1688
- autoCapitalize: (string & {}) | "none" | "off" | "on" | "sentences" | "words" | "characters" | undefined
1689
- autoCorrect: string | undefined
1690
- autoFocus: boolean | undefined
1691
- autoSave: string | undefined
1692
- children: ReactNode
1693
- className: string | undefined
1694
- client: BladeClient | null | undefined
1695
- color: string | undefined
1696
- content: string | undefined
1697
- contentEditable: (boolean | "false" | "true") | "inherit" | "plaintext-only" | undefined
1698
- contextMenu: string | undefined
1699
- crossOrigin: "" | "anonymous" | "use-credentials" | undefined
1700
- dangerouslySetInnerHTML: { __html: string | TrustedHTML; } | undefined
1701
- datatype: string | undefined
1702
- decoding: "auto" | "async" | "sync" | undefined
1703
- defaultChecked: boolean | undefined
1704
- defaultValue: string | number | readonly string[] | undefined
1705
- dir: string | undefined
1706
- draggable: (boolean | "false" | "true") | undefined
1707
- enterKeyHint: "done" | "search" | "enter" | "go" | "next" | "previous" | "send" | undefined
1708
- exportparts: string | undefined
1709
- fetchPriority: "auto" | "high" | "low" | undefined
1710
- height: string | number | undefined
1711
- hidden: boolean | undefined
1712
- id: string | undefined
1713
- inert: boolean | undefined
1714
- inlist: any
1715
- inputMode: "search" | "text" | "email" | "numeric" | "url" | "none" | "tel" | "decimal" | undefined
1716
- is: string | undefined
1717
- itemID: string | undefined
1718
- itemProp: string | undefined
1719
- itemRef: string | undefined
1720
- itemScope: boolean | undefined
1721
- itemType: string | undefined
1722
- lang: string | undefined
1723
- loading: "eager" | "lazy" | undefined
1724
- nonce: string | undefined
1725
- onAbort: ReactEventHandler<HTMLImageElement> | undefined
1726
- onAbortCapture: ReactEventHandler<HTMLImageElement> | undefined
1727
- onAnimationEnd: AnimationEventHandler<HTMLImageElement> | undefined
1728
- onAnimationEndCapture: AnimationEventHandler<HTMLImageElement> | undefined
1729
- onAnimationIteration: AnimationEventHandler<HTMLImageElement> | undefined
1730
- onAnimationIterationCapture: AnimationEventHandler<HTMLImageElement> | undefined
1731
- onAnimationStart: AnimationEventHandler<HTMLImageElement> | undefined
1732
- onAnimationStartCapture: AnimationEventHandler<HTMLImageElement> | undefined
1733
- onAuxClick: MouseEventHandler<HTMLImageElement> | undefined
1734
- onAuxClickCapture: MouseEventHandler<HTMLImageElement> | undefined
1735
- onBeforeInput: InputEventHandler<HTMLImageElement> | undefined
1736
- onBeforeInputCapture: InputEventHandler<HTMLImageElement> | undefined
1737
- onBeforeToggle: ToggleEventHandler<HTMLImageElement> | undefined
1738
- onBlur: FocusEventHandler<HTMLImageElement> | undefined
1739
- onBlurCapture: FocusEventHandler<HTMLImageElement> | undefined
1740
- onCanPlay: ReactEventHandler<HTMLImageElement> | undefined
1741
- onCanPlayCapture: ReactEventHandler<HTMLImageElement> | undefined
1742
- onCanPlayThrough: ReactEventHandler<HTMLImageElement> | undefined
1743
- onCanPlayThroughCapture: ReactEventHandler<HTMLImageElement> | undefined
1744
- onChange: ChangeEventHandler<HTMLImageElement, Element> | undefined
1745
- onChangeCapture: ChangeEventHandler<HTMLImageElement, Element> | undefined
1746
- onClick: MouseEventHandler<HTMLImageElement> | undefined
1747
- onClickCapture: MouseEventHandler<HTMLImageElement> | undefined
1748
- onCompositionEnd: CompositionEventHandler<HTMLImageElement> | undefined
1749
- onCompositionEndCapture: CompositionEventHandler<HTMLImageElement> | undefined
1750
- onCompositionStart: CompositionEventHandler<HTMLImageElement> | undefined
1751
- onCompositionStartCapture: CompositionEventHandler<HTMLImageElement> | undefined
1752
- onCompositionUpdate: CompositionEventHandler<HTMLImageElement> | undefined
1753
- onCompositionUpdateCapture: CompositionEventHandler<HTMLImageElement> | undefined
1754
- onContextMenu: MouseEventHandler<HTMLImageElement> | undefined
1755
- onContextMenuCapture: MouseEventHandler<HTMLImageElement> | undefined
1756
- onCopy: ClipboardEventHandler<HTMLImageElement> | undefined
1757
- onCopyCapture: ClipboardEventHandler<HTMLImageElement> | undefined
1758
- onCut: ClipboardEventHandler<HTMLImageElement> | undefined
1759
- onCutCapture: ClipboardEventHandler<HTMLImageElement> | undefined
1760
- onDoubleClick: MouseEventHandler<HTMLImageElement> | undefined
1761
- onDoubleClickCapture: MouseEventHandler<HTMLImageElement> | undefined
1762
- onDrag: DragEventHandler<HTMLImageElement> | undefined
1763
- onDragCapture: DragEventHandler<HTMLImageElement> | undefined
1764
- onDragEnd: DragEventHandler<HTMLImageElement> | undefined
1765
- onDragEndCapture: DragEventHandler<HTMLImageElement> | undefined
1766
- onDragEnter: DragEventHandler<HTMLImageElement> | undefined
1767
- onDragEnterCapture: DragEventHandler<HTMLImageElement> | undefined
1768
- onDragExit: DragEventHandler<HTMLImageElement> | undefined
1769
- onDragExitCapture: DragEventHandler<HTMLImageElement> | undefined
1770
- onDragLeave: DragEventHandler<HTMLImageElement> | undefined
1771
- onDragLeaveCapture: DragEventHandler<HTMLImageElement> | undefined
1772
- onDragOver: DragEventHandler<HTMLImageElement> | undefined
1773
- onDragOverCapture: DragEventHandler<HTMLImageElement> | undefined
1774
- onDragStart: DragEventHandler<HTMLImageElement> | undefined
1775
- onDragStartCapture: DragEventHandler<HTMLImageElement> | undefined
1776
- onDrop: DragEventHandler<HTMLImageElement> | undefined
1777
- onDropCapture: DragEventHandler<HTMLImageElement> | undefined
1778
- onDurationChange: ReactEventHandler<HTMLImageElement> | undefined
1779
- onDurationChangeCapture: ReactEventHandler<HTMLImageElement> | undefined
1780
- onEmptied: ReactEventHandler<HTMLImageElement> | undefined
1781
- onEmptiedCapture: ReactEventHandler<HTMLImageElement> | undefined
1782
- onEncrypted: ReactEventHandler<HTMLImageElement> | undefined
1783
- onEncryptedCapture: ReactEventHandler<HTMLImageElement> | undefined
1784
- onEnded: ReactEventHandler<HTMLImageElement> | undefined
1785
- onEndedCapture: ReactEventHandler<HTMLImageElement> | undefined
1786
- onError: ReactEventHandler<HTMLImageElement> | undefined
1787
- onErrorCapture: ReactEventHandler<HTMLImageElement> | undefined
1788
- onFocus: FocusEventHandler<HTMLImageElement> | undefined
1789
- onFocusCapture: FocusEventHandler<HTMLImageElement> | undefined
1790
- onGotPointerCapture: PointerEventHandler<HTMLImageElement> | undefined
1791
- onGotPointerCaptureCapture: PointerEventHandler<HTMLImageElement> | undefined
1792
- onInput: InputEventHandler<HTMLImageElement> | undefined
1793
- onInputCapture: InputEventHandler<HTMLImageElement> | undefined
1794
- onInvalid: ReactEventHandler<HTMLImageElement> | undefined
1795
- onInvalidCapture: ReactEventHandler<HTMLImageElement> | undefined
1796
- onKeyDown: KeyboardEventHandler<HTMLImageElement> | undefined
1797
- onKeyDownCapture: KeyboardEventHandler<HTMLImageElement> | undefined
1798
- onKeyPress: KeyboardEventHandler<HTMLImageElement> | undefined
1799
- onKeyPressCapture: KeyboardEventHandler<HTMLImageElement> | undefined
1800
- onKeyUp: KeyboardEventHandler<HTMLImageElement> | undefined
1801
- onKeyUpCapture: KeyboardEventHandler<HTMLImageElement> | undefined
1802
- onLoad: ReactEventHandler<HTMLImageElement> | undefined
1803
- onLoadCapture: ReactEventHandler<HTMLImageElement> | undefined
1804
- onLoadedData: ReactEventHandler<HTMLImageElement> | undefined
1805
- onLoadedDataCapture: ReactEventHandler<HTMLImageElement> | undefined
1806
- onLoadedMetadata: ReactEventHandler<HTMLImageElement> | undefined
1807
- onLoadedMetadataCapture: ReactEventHandler<HTMLImageElement> | undefined
1808
- onLoadStart: ReactEventHandler<HTMLImageElement> | undefined
1809
- onLoadStartCapture: ReactEventHandler<HTMLImageElement> | undefined
1810
- onLostPointerCapture: PointerEventHandler<HTMLImageElement> | undefined
1811
- onLostPointerCaptureCapture: PointerEventHandler<HTMLImageElement> | undefined
1812
- onMouseDown: MouseEventHandler<HTMLImageElement> | undefined
1813
- onMouseDownCapture: MouseEventHandler<HTMLImageElement> | undefined
1814
- onMouseEnter: MouseEventHandler<HTMLImageElement> | undefined
1815
- onMouseLeave: MouseEventHandler<HTMLImageElement> | undefined
1816
- onMouseMove: MouseEventHandler<HTMLImageElement> | undefined
1817
- onMouseMoveCapture: MouseEventHandler<HTMLImageElement> | undefined
1818
- onMouseOut: MouseEventHandler<HTMLImageElement> | undefined
1819
- onMouseOutCapture: MouseEventHandler<HTMLImageElement> | undefined
1820
- onMouseOver: MouseEventHandler<HTMLImageElement> | undefined
1821
- onMouseOverCapture: MouseEventHandler<HTMLImageElement> | undefined
1822
- onMouseUp: MouseEventHandler<HTMLImageElement> | undefined
1823
- onMouseUpCapture: MouseEventHandler<HTMLImageElement> | undefined
1824
- onPaste: ClipboardEventHandler<HTMLImageElement> | undefined
1825
- onPasteCapture: ClipboardEventHandler<HTMLImageElement> | undefined
1826
- onPause: ReactEventHandler<HTMLImageElement> | undefined
1827
- onPauseCapture: ReactEventHandler<HTMLImageElement> | undefined
1828
- onPlay: ReactEventHandler<HTMLImageElement> | undefined
1829
- onPlayCapture: ReactEventHandler<HTMLImageElement> | undefined
1830
- onPlaying: ReactEventHandler<HTMLImageElement> | undefined
1831
- onPlayingCapture: ReactEventHandler<HTMLImageElement> | undefined
1832
- onPointerCancel: PointerEventHandler<HTMLImageElement> | undefined
1833
- onPointerCancelCapture: PointerEventHandler<HTMLImageElement> | undefined
1834
- onPointerDown: PointerEventHandler<HTMLImageElement> | undefined
1835
- onPointerDownCapture: PointerEventHandler<HTMLImageElement> | undefined
1836
- onPointerEnter: PointerEventHandler<HTMLImageElement> | undefined
1837
- onPointerLeave: PointerEventHandler<HTMLImageElement> | undefined
1838
- onPointerMove: PointerEventHandler<HTMLImageElement> | undefined
1839
- onPointerMoveCapture: PointerEventHandler<HTMLImageElement> | undefined
1840
- onPointerOut: PointerEventHandler<HTMLImageElement> | undefined
1841
- onPointerOutCapture: PointerEventHandler<HTMLImageElement> | undefined
1842
- onPointerOver: PointerEventHandler<HTMLImageElement> | undefined
1843
- onPointerOverCapture: PointerEventHandler<HTMLImageElement> | undefined
1844
- onPointerUp: PointerEventHandler<HTMLImageElement> | undefined
1845
- onPointerUpCapture: PointerEventHandler<HTMLImageElement> | undefined
1846
- onProgress: ReactEventHandler<HTMLImageElement> | undefined
1847
- onProgressCapture: ReactEventHandler<HTMLImageElement> | undefined
1848
- onRateChange: ReactEventHandler<HTMLImageElement> | undefined
1849
- onRateChangeCapture: ReactEventHandler<HTMLImageElement> | undefined
1850
- onReset: ReactEventHandler<HTMLImageElement> | undefined
1851
- onResetCapture: ReactEventHandler<HTMLImageElement> | undefined
1852
- onScroll: UIEventHandler<HTMLImageElement> | undefined
1853
- onScrollCapture: UIEventHandler<HTMLImageElement> | undefined
1854
- onScrollEnd: UIEventHandler<HTMLImageElement> | undefined
1855
- onScrollEndCapture: UIEventHandler<HTMLImageElement> | undefined
1856
- onSeeked: ReactEventHandler<HTMLImageElement> | undefined
1857
- onSeekedCapture: ReactEventHandler<HTMLImageElement> | undefined
1858
- onSeeking: ReactEventHandler<HTMLImageElement> | undefined
1859
- onSeekingCapture: ReactEventHandler<HTMLImageElement> | undefined
1860
- onSelect: ReactEventHandler<HTMLImageElement> | undefined
1861
- onSelectCapture: ReactEventHandler<HTMLImageElement> | undefined
1862
- onStalled: ReactEventHandler<HTMLImageElement> | undefined
1863
- onStalledCapture: ReactEventHandler<HTMLImageElement> | undefined
1864
- onSubmit: SubmitEventHandler<HTMLImageElement> | undefined
1865
- onSubmitCapture: SubmitEventHandler<HTMLImageElement> | undefined
1866
- onSuspend: ReactEventHandler<HTMLImageElement> | undefined
1867
- onSuspendCapture: ReactEventHandler<HTMLImageElement> | undefined
1868
- onTimeUpdate: ReactEventHandler<HTMLImageElement> | undefined
1869
- onTimeUpdateCapture: ReactEventHandler<HTMLImageElement> | undefined
1870
- onToggle: ToggleEventHandler<HTMLImageElement> | undefined
1871
- onTouchCancel: TouchEventHandler<HTMLImageElement> | undefined
1872
- onTouchCancelCapture: TouchEventHandler<HTMLImageElement> | undefined
1873
- onTouchEnd: TouchEventHandler<HTMLImageElement> | undefined
1874
- onTouchEndCapture: TouchEventHandler<HTMLImageElement> | undefined
1875
- onTouchMove: TouchEventHandler<HTMLImageElement> | undefined
1876
- onTouchMoveCapture: TouchEventHandler<HTMLImageElement> | undefined
1877
- onTouchStart: TouchEventHandler<HTMLImageElement> | undefined
1878
- onTouchStartCapture: TouchEventHandler<HTMLImageElement> | undefined
1879
- onTransitionCancel: TransitionEventHandler<HTMLImageElement> | undefined
1880
- onTransitionCancelCapture: TransitionEventHandler<HTMLImageElement> | undefined
1881
- onTransitionEnd: TransitionEventHandler<HTMLImageElement> | undefined
1882
- onTransitionEndCapture: TransitionEventHandler<HTMLImageElement> | undefined
1883
- onTransitionRun: TransitionEventHandler<HTMLImageElement> | undefined
1884
- onTransitionRunCapture: TransitionEventHandler<HTMLImageElement> | undefined
1885
- onTransitionStart: TransitionEventHandler<HTMLImageElement> | undefined
1886
- onTransitionStartCapture: TransitionEventHandler<HTMLImageElement> | undefined
1887
- onVolumeChange: ReactEventHandler<HTMLImageElement> | undefined
1888
- onVolumeChangeCapture: ReactEventHandler<HTMLImageElement> | undefined
1889
- onWaiting: ReactEventHandler<HTMLImageElement> | undefined
1890
- onWaitingCapture: ReactEventHandler<HTMLImageElement> | undefined
1891
- onWheel: WheelEventHandler<HTMLImageElement> | undefined
1892
- onWheelCapture: WheelEventHandler<HTMLImageElement> | undefined
1893
- original: boolean | undefined
1894
- part: string | undefined
1895
- popover: "" | "auto" | "manual" | "hint" | undefined
1896
- popoverTarget: string | undefined
1897
- popoverTargetAction: "toggle" | "show" | "hide" | undefined
1898
- prefix: string | undefined
1899
- property: string | undefined
1900
- radioGroup: string | undefined
1901
- referrerPolicy: HTMLAttributeReferrerPolicy | undefined
1902
- rel: string | undefined
1903
- resource: string | undefined
1904
- results: number | undefined
1905
- rev: string | undefined
1906
- role: AriaRole | undefined
1907
- security: string | undefined
1908
- sizes: string | undefined
1909
- slot: string | undefined
1910
- spellCheck: (boolean | "false" | "true") | undefined
1911
- src: string | undefined
1912
- srcSet: string | undefined
1913
- style: CSSProperties | undefined
1914
- suppressContentEditableWarning: boolean | undefined
1915
- suppressHydrationWarning: boolean | undefined
1916
- tabIndex: number | undefined
1917
- title: string | undefined
1918
- translate: "yes" | "no" | undefined
1919
- typeof: string | undefined
1920
- unselectable: "off" | "on" | undefined
1921
- useMap: string | undefined
1922
- vocab: string | undefined
1923
- width: string | number | undefined
1924
- ```
1925
-
1926
- ## `ModeId` (type)
1927
-
1928
- ```ts
1929
- export type ModeId = "planning" | "executing"
1930
- ```
1931
-
1932
- ## `ModelCatalog` (interface)
1933
-
1934
- ```ts
1935
- baseUrl: string | undefined
1936
- default: string
1937
- defaultServiceModel: string | undefined
1938
- models: ModelOption[]
1939
- unavailableModelIds: string[] | undefined
1940
- unavailableProviderIds: string[] | undefined
1941
- ```
1942
-
1943
- ## `ModelOption` (interface)
1944
-
1945
- ```ts
1946
- id: string
1947
- label: string
1948
- serviceModelId: string | undefined
1949
- ```
1950
-
1951
- ## `ModelsResource` (class)
1952
-
1953
- ```ts
1954
- list: () => Promise<ModelCatalog>
1955
- ```
1956
-
1957
- ## `normalizeAdjacentUrlFormatting` (function)
1958
-
1959
- ```ts
1960
- normalizeAdjacentUrlFormatting: (value: string) => string
1961
- ```
1962
-
1963
- ## `normalizeMessageContent` (function)
1964
-
1965
- ```ts
1966
- normalizeMessageContent: (content: unknown) => MessageContent
1967
- ```
1968
-
1969
- ## `PaginatedSessionsResult` (interface)
1970
-
1971
- ```ts
1972
- content_match_truncated: boolean | undefined
1973
- items: SessionInfo[]
1974
- limit: number
1975
- offset: number
1976
- total: number
1977
- ```
1978
-
1979
- ## `ParsedTextAttachment` (interface)
1980
-
1981
- ```ts
1982
- name: string
1983
- uploadedPath: string | undefined
1984
- ```
1985
-
1986
- ## `ParsedTextContext` (interface)
1987
-
1988
- ```ts
1989
- content: string
1990
- label: string
1991
- ```
1992
-
1993
- ## `ParsedWhatIfPrompt` (interface)
1994
-
1995
- ```ts
1996
- fromStep: number | null
1997
- quotes: WhatIfQuote[]
1998
- userText: string
1999
- ```
2000
-
2001
- ## `parsePlanUpdate` (function)
2002
-
2003
- ```ts
2004
- parsePlanUpdate: (argumentsJson: string) => PlanUpdateData | null
2005
- ```
2006
-
2007
- ## `parseQueueAck` (function)
2008
-
2009
- ```ts
2010
- parseQueueAck: (response: unknown, fallbackSessionId: string) => QueueOperationResult
2011
- ```
2012
-
2013
- ## `parseWhatIfPrompt` (function)
2014
-
2015
- ```ts
2016
- parseWhatIfPrompt: (text: string) => ParsedWhatIfPrompt | null
2017
- ```
2018
-
2019
- ## `PatchEnvelope` (interface)
2020
-
2021
- ```ts
2022
- data: { turn?: TurnProjection; workspace_changed?: { tool_call_id?: string; tool_name?: string; workspace_path?: string; }; }
2023
- loop_id: string
2024
- patch_type: string
2025
- sequence: number
2026
- turn_id: string
2027
- ```
2028
-
2029
- ## `PendingQuestionRef` (interface)
2030
-
2031
- ```ts
2032
- child_loop_name: string
2033
- child_tool_call_id: string
2034
- description: string | null | undefined
2035
- ```
2036
-
2037
- ## `pickCurrentPlanStep` (function)
2038
-
2039
- ```ts
2040
- pickCurrentPlanStep: (plan: PlanUpdateData["plan"]) => PlanUpdateData["plan"][number] | null
2041
- ```
2042
-
2043
- ## `PLAN_AUTO_COLLAPSE_MS` (const)
2044
-
2045
- ```ts
2046
- PLAN_AUTO_COLLAPSE_MS: 5000
2047
- ```
2048
-
2049
- ## `PlanStepStatus` (type)
2050
-
2051
- ```ts
2052
- export type PlanStepStatus = "pending" | "in_progress" | "completed"
2053
- ```
2054
-
2055
- ## `PlanUpdateBlock` (function)
2056
-
2057
- ```ts
2058
- PlanUpdateBlock: ({ toolCall, running, autoReveal, className, }: { toolCall: ToolCallInfo; running?: boolean; autoReveal?: boolean; className?: string; }) => JSX.Element | null
2059
- ```
2060
-
2061
- ## `PlanUpdateData` (interface)
2062
-
2063
- ```ts
2064
- plan: { step: string; status: PlanStepStatus; }[]
2065
- ```
2066
-
2067
- ## `PlanUpdateDisplayState` (interface)
2068
-
2069
- ```ts
2070
- current: ToolCallInfo | null
2071
- updating: boolean
2072
- ```
2073
-
2074
- ## `PlanUpdateRendererProps` (interface)
2075
-
2076
- ```ts
2077
- plan: PlanUpdateData
2078
- running: boolean
2079
- sessionId: string | undefined
2080
- ```
2081
-
2082
- ## `PlatformEndpoints` (interface)
2083
-
2084
- ```ts
2085
- services: Partial<Record<"agent" | "os" | "hub" | "oauth" | "llmGateway" | "gitea" | "tile", string>>
2086
- ```
2087
-
2088
- ## `PlatformServiceName` (type)
2089
-
2090
- ```ts
2091
- export type PlatformServiceName = (typeof PLATFORM_SERVICE_NAMES)[number]
2092
- ```
2093
-
2094
- ## `PluginCatalogEntry` (interface)
2095
-
2096
- ```ts
2097
- display_name: string | null
2098
- icon: string | null
2099
- installed: boolean
2100
- name: string
2101
- ```
2102
-
2103
- ## `PluginConnectorItem` (interface)
2104
-
2105
- ```ts
2106
- active: boolean
2107
- config: SessionPluginConfigSummary | undefined
2108
- display_name: string | null
2109
- icon: string | null
2110
- iconSource: "account" | "session"
2111
- installed: boolean | null
2112
- name: string
2113
- projected: boolean
2114
- reason: string | null | undefined
2115
- status: string
2116
- ```
2117
-
2118
- ## `PluginConnectorList` (function)
2119
-
2120
- ```ts
2121
- PluginConnectorList: ({ client, sessionId, items, inFlight, busy, mutationError, onToggle, onRetry, onEditConfig, configuring, onConfigSaved, onConfigClose, disabledReason, unavailableText, emptyText, draft, }: PluginConnectorListProps) => JSX.Element
2122
- ```
2123
-
2124
- ## `PluginConnectorListProps` (interface)
2125
-
2126
- ```ts
2127
- busy: boolean
2128
- client: BladeClient
2129
- configuring: ConfiguringPlugin | null
2130
- disabledReason: string | null | undefined
2131
- draft: boolean | undefined
2132
- emptyText: string
2133
- inFlight: Record<string, true>
2134
- items: PluginConnectorItem[]
2135
- mutationError: boolean
2136
- onConfigClose: () => void
2137
- onConfigSaved: (state: SessionPluginConfigState) => void
2138
- onEditConfig: (item: PluginConnectorItem) => void
2139
- onRetry: (item: PluginConnectorItem) => void
2140
- onToggle: (item: PluginConnectorItem, next: boolean) => void
2141
- sessionId: string | null
2142
- unavailableText: string | null | undefined
2143
- ```
2144
-
2145
- ## `PluginConnectorSelection` (interface)
2146
-
2147
- ```ts
2148
- displayName: string | null
2149
- icon: string | null
2150
- iconSource: "account" | "session"
2151
- name: string
2152
- ```
2153
-
2154
- ## `PluginsResource` (class)
2155
-
2156
- ```ts
2157
- catalog: (init?: RequestInit) => Promise<{ plugins: PluginCatalogEntry[]; }>
2158
- fetchIcon: (name: string) => Promise<Blob>
2159
- iconUrl: (name: string) => string
2160
- ```
2161
-
2162
- ## `PluginTriggerStack` (function)
2163
-
2164
- ```ts
2165
- PluginTriggerStack: ({ client, sessionId, summary, className }: PluginTriggerStackProps) => JSX.Element | null
2166
- ```
2167
-
2168
- ## `PluginTriggerStackProps` (interface)
2169
-
2170
- ```ts
2171
- className: string | undefined
2172
- client: BladeClient
2173
- sessionId: string | null
2174
- summary: TriggerSummary
2175
- ```
2176
-
2177
- ## `PollingBackoff` (class)
2178
-
2179
- ```ts
2180
- failed: (error: unknown) => void
2181
- reset: () => void
2182
- waitMs: () => number | false
2183
- ```
2184
-
2185
- ## `PostChatFollowup` (interface)
2186
-
2187
- ```ts
2188
- assistant_entry_id: string
2189
- feedback_eligible: boolean
2190
- feedback_scope: "latest_result"
2191
- final_artifacts: FinalArtifact[] | undefined
2192
- recaption: string | undefined
2193
- suggestions: string[]
2194
- ```
2195
-
2196
- ## `PreparedSolution` (interface)
2197
-
2198
- ```ts
2199
- assetId: string
2200
- bizRoleId: string | undefined
2201
- expiresAt: string
2202
- kind: "prepared"
2203
- roles: string[]
2204
- solutionId: string
2205
- ```
2206
-
2207
- ## `PreparedSolutionAsset` (interface)
2208
-
2209
- ```ts
2210
- assetId: string
2211
- bizRoleId: string | undefined
2212
- kind: "prepared"
2213
- ```
2214
-
2215
- ## `prependOlder` (function)
2216
-
2217
- ```ts
2218
- prependOlder: (current: TurnProjection[], page: TurnProjection[]) => TurnProjection[]
2219
- ```
2220
-
2221
- ## `PreviewToolUiCardEntry` (interface)
2222
-
2223
- ```ts
2224
- blocks: ContentBlock[]
2225
- card: ToolUiCard
2226
- key: string
2227
- toolCall: ToolCallInfo
2228
- ```
2229
-
2230
- ## `PrimarySkillParallelMode` (interface)
2231
-
2232
- ```ts
2233
- id: string
2234
- name: string
2235
- prompt_hint: string
2236
- ```
2237
-
2238
- ## `PrimarySkillSnapshot` (interface)
2239
-
2240
- ```ts
2241
- captured_at: string
2242
- description: string
2243
- parallel_modes: PrimarySkillParallelMode[]
2244
- skill_id: string
2245
- stages: PrimarySkillStageSpec[]
2246
- title: string
2247
- version: number
2248
- ```
2249
-
2250
- ## `PrimarySkillStageSpec` (interface)
2251
-
2252
- ```ts
2253
- id: string
2254
- name: string
2255
- steps: PrimarySkillStepSpec[]
2256
- ```
2257
-
2258
- ## `PrimarySkillStepSpec` (interface)
2259
-
2260
- ```ts
2261
- label: string
2262
- n: number
2263
- ```
2264
-
2265
- ## `ProvidersResponse` (interface)
2266
-
2267
- ```ts
2268
- password_enabled: boolean
2269
- providers: { name: string; authorize_url: string; }[]
2270
- ```
2271
-
2272
- ## `PublishedSolutionRef` (type)
2273
-
2274
- ```ts
2275
- export type PublishedSolutionRef =
2276
- | { source: "builtin"; name: string }
2277
- | { source: "hub"; org: string; name: string }
2278
- ```
2279
-
2280
- ## `QueueAck` (interface)
2281
-
2282
- ```ts
2283
- items: QueuedMessage[] | undefined
2284
- message: string | null | undefined
2285
- pause_reason: string | null | undefined
2286
- paused: boolean | undefined
2287
- revision: number | undefined
2288
- running: boolean | undefined
2289
- session_id: string | undefined
2290
- status: "error" | "ok" | "conflict" | "queued"
2291
- ```
2292
-
2293
- ## `QueuedMessage` (interface)
2294
-
2295
- ```ts
2296
- content: string
2297
- created_at: string
2298
- error: string | undefined
2299
- id: string
2300
- position: number
2301
- status: QueuedMessageStatus
2302
- target_run_id: string | undefined
2303
- updated_at: string
2304
- version: number
2305
- ```
2306
-
2307
- ## `QueuedMessageStatus` (type)
2308
-
2309
- ```ts
2310
- export type QueuedMessageStatus = "pending" | "delivering" | "claimed" | "consumed" | "cancelled"
2311
- ```
2312
-
2313
- ## `queuedMessageStatusLabel` (function)
2314
-
2315
- ```ts
2316
- queuedMessageStatusLabel: (status: QueuedMessageStatus) => string
2317
- ```
2318
-
2319
- ## `QueueOperationResult` (interface)
2320
-
2321
- ```ts
2322
- code: string | undefined
2323
- conflict: boolean
2324
- message: string | null
2325
- ok: boolean
2326
- snapshot: SessionQueueSnapshot | null
2327
- ```
2328
-
2329
- ## `queuePauseReasonLabel` (function)
2330
-
2331
- ```ts
2332
- queuePauseReasonLabel: (reason: string | null | undefined) => string | null
2333
- ```
2334
-
2335
- ## `RawEvent` (interface)
2336
-
2337
- ```ts
2338
- payload: Record<string, unknown>
2339
- type: string
2340
- ```
2341
-
2342
- ## `RawHtmlPlugin` (type)
2343
-
2344
- ```ts
2345
- export type RawHtmlPlugin = (
2346
- tagName: string,
2347
- attributes: Record<string, string>,
2348
- ) => Record<string, string>
2349
- ```
2350
-
2351
- ## `reconcileHistoricalUserTurns` (function)
2352
-
2353
- ```ts
2354
- reconcileHistoricalUserTurns: (currentTurns: TurnProjection[], incomingTurns: TurnProjection[]) => TurnProjection[]
2355
- ```
2356
-
2357
- ## `reconcileOptimisticUserTurns` (function)
2358
-
2359
- ```ts
2360
- reconcileOptimisticUserTurns: (currentTurns: TurnProjection[], incomingTurns: TurnProjection[]) => TurnProjection[]
2361
- ```
2362
-
2363
- ## `replaceWindow` (function)
2364
-
2365
- ```ts
2366
- replaceWindow: (current: TurnProjection[], page: TurnProjection[], liveRevisionAtStart: number, liveRevisions: LiveRevisionState) => TurnProjection[]
2367
- ```
2368
-
2369
- ## `ReplayBar` (function)
2370
-
2371
- ```ts
2372
- ReplayBar: ({ isReplay, speed, onSpeedChange, onExit, canControl, className, }: ReplayBarProps) => JSX.Element | null
2373
- ```
2374
-
2375
- ## `ReplayBarProps` (interface)
2376
-
2377
- ```ts
2378
- canControl: boolean | undefined
2379
- className: string | undefined
2380
- isReplay: boolean
2381
- onExit: () => void
2382
- onSpeedChange: (speed: ReplaySpeed) => void
2383
- speed: ReplaySpeed
2384
- ```
2385
-
2386
- ## `ReplayMismatch` (interface)
2387
-
2388
- ```ts
2389
- actualMessage: string
2390
- expectedMessage: string
2391
- resolve: (decision: "keep_replay" | "continue_replay") => void
2392
- ```
2393
-
2394
- ## `ReplayMismatchPrompt` (function)
2395
-
2396
- ```ts
2397
- ReplayMismatchPrompt: ({ mismatch, className }: ReplayMismatchPromptProps) => JSX.Element | null
2398
- ```
2399
-
2400
- ## `ReplayMismatchPromptProps` (interface)
2401
-
2402
- ```ts
2403
- className: string | undefined
2404
- mismatch: ReplayMismatch | null
2405
- ```
2406
-
2407
- ## `ReplayPreview` (interface)
2408
-
2409
- ```ts
2410
- intent: string | null | undefined
2411
- reason: string | null | undefined
2412
- session_id: string
2413
- supported: boolean
2414
- ```
2415
-
2416
- ## `ReplaySnapshot` (interface)
2417
-
2418
- ```ts
2419
- isReplay: boolean
2420
- sourceSessionId: string | null
2421
- speed: ReplaySpeed
2422
- ```
2423
-
2424
- ## `ReplaySpeed` (type)
2425
-
2426
- ```ts
2427
- export type ReplaySpeed = 1 | 2 | 5
2428
- ```
2429
-
2430
- ## `ReplayState` (interface)
2431
-
2432
- ```ts
2433
- autonomous_reason: string | null | undefined
2434
- ended_at: string | null | undefined
2435
- next_source_entry_id: string | null | undefined
2436
- source_session_id: string | undefined
2437
- speed: ReplaySpeed | undefined
2438
- status: "replay" | "autonomous" | undefined
2439
- ```
2440
-
2441
- ## `resolveServiceUrl` (function)
2442
-
2443
- ```ts
2444
- resolveServiceUrl: (endpoints: PlatformEndpoints, name: PlatformServiceName, path?: string) => string | null
2445
- ```
2446
-
2447
- ## `resolveToolUiCardContent` (function)
2448
-
2449
- ```ts
2450
- resolveToolUiCardContent: (card: ToolUiCard) => { type: ToolUiCardContentType; content: string; } | null
2451
- ```
2452
-
2453
- ## `ResultFeedback` (interface)
2454
-
2455
- ```ts
2456
- assistant_entry_id: string
2457
- created_at: string
2458
- helpful: boolean
2459
- project_id: string | null
2460
- reason: ResultFeedbackReason | null
2461
- session_id: string
2462
- surface: "unknown" | "chat" | "software_factory"
2463
- updated_at: string
2464
- ```
2465
-
2466
- ## `ResultFeedbackReason` (type)
2467
-
2468
- ```ts
2469
- export type ResultFeedbackReason =
2470
- | "not_solved"
2471
- | "inaccurate"
2472
- | "incomplete"
2473
- | "needs_major_changes"
2474
- | "too_slow"
2475
- | "other"
2476
- ```
2477
-
2478
- ## `RunOptions` (interface)
2479
-
2480
- ```ts
2481
- compactionRatio: number | undefined
2482
- headless: boolean | undefined
2483
- model: string | undefined
2484
- outputSchema: Record<string, unknown> | undefined
2485
- runtimeEnv: Record<string, string> | undefined
2486
- timeoutMs: number | undefined
2487
- trace: boolean | undefined
2488
- ```
2489
-
2490
- ## `RunResult` (interface)
2491
-
2492
- ```ts
2493
- chatRunId: string | undefined
2494
- events: unknown[]
2495
- result: unknown
2496
- sessionId: string
2497
- ```
2498
-
2499
- ## `RunTiming` (interface)
2500
-
2501
- ```ts
2502
- duration_ms: number | null | undefined
2503
- loop_id: string
2504
- run_id: string
2505
- scope: "chat" | "subagent"
2506
- started_at: string | null | undefined
2507
- status: "completed" | "paused" | "failed" | "cancelled" | "incomplete"
2508
- ```
2509
-
2510
- ## `RunTrace` (interface)
2511
-
2512
- ```ts
2513
- configSnapshot: Record<string, unknown>
2514
- events: unknown[]
2515
- history: unknown[]
2516
- result: unknown
2517
- ```
2518
-
2519
- ## `SDK_NAME` (const)
2520
-
2521
- ```ts
2522
- SDK_NAME: "agent-client"
2523
- ```
2524
-
2525
- ## `SDK_VERSION` (const)
2526
-
2527
- ```ts
2528
- SDK_VERSION: string
2529
- ```
2530
-
2531
- ## `selectionFromItem` (function)
2532
-
2533
- ```ts
2534
- selectionFromItem: (item: PluginConnectorItem) => PluginConnectorSelection
2535
- ```
2536
-
2537
- ## `SendOptions` (interface)
2538
-
2539
- ```ts
2540
- askUserAnswer: Record<string, unknown> | undefined
2541
- kbIds: number[] | undefined
2542
- mode: string | undefined
2543
- model: string | undefined
2544
- queueWhenRunning: boolean | undefined
2545
- replayDecision: "keep_replay" | "continue_replay" | undefined
2546
- thinkingOverride: boolean | undefined
2547
- whatif: { from_step: number; quotes: Array<Record<string, unknown>>; deprecate_entry_ids: string[]; } | undefined
2548
- ```
2549
-
2550
- ## `SessionBranchPicker` (function)
2551
-
2552
- ```ts
2553
- SessionBranchPicker: ({ tree, disabled, onCheckout, }: SessionBranchPickerProps) => JSX.Element | null
2554
- ```
2555
-
2556
- ## `SessionBranchPickerProps` (interface)
2557
-
2558
- ```ts
2559
- disabled: boolean | undefined
2560
- onCheckout: (checkpointId: string, position: "before" | "turn_end") => Promise<void>
2561
- tree: { nodes: CheckpointNode[]; leaf_id: string | null; }
2562
- ```
2563
-
2564
- ## `SessionComputer` (interface)
2565
-
2566
- ```ts
2567
- agent_runtimes: unknown[] | undefined
2568
- allowed_paths: string[] | undefined
2569
- arch: string | null | undefined
2570
- blade_home: string | null | undefined
2571
- created_at: string
2572
- daemon_version: string | null | undefined
2573
- enabled: boolean
2574
- home: string | null | undefined
2575
- hostname: string | null | undefined
2576
- id: string
2577
- is_primary: boolean
2578
- label: string
2579
- last_seen_at: string | null | undefined
2580
- online: boolean
2581
- os: string | null | undefined
2582
- workspace: string | null | undefined
2583
- ```
2584
-
2585
- ## `SessionComputerList` (interface)
2586
-
2587
- ```ts
2588
- computers: SessionComputer[]
2589
- ```
2590
-
2591
- ## `SessionConfig` (interface)
2592
-
2593
- ```ts
2594
- compactionRatio: number | undefined
2595
- disableTools: string[] | undefined
2596
- enableThinking: boolean | undefined
2597
- env: Record<string, string> | undefined
2598
- memoryEnabled: boolean | undefined
2599
- model: string | undefined
2600
- ```
2601
-
2602
- ## `SessionConnectOptions` (interface)
2603
-
2604
- ```ts
2605
- setup: ((session: AgentSession) => void) | undefined
2606
- ```
2607
-
2608
- ## `SessionContextStats` (interface)
2609
-
2610
- ```ts
2611
- compaction_ratio: number
2612
- context_window: number
2613
- tokens_used: number
2614
- ```
2615
-
2616
- ## `SessionDefinition` (interface)
2617
-
2618
- ```ts
2619
- config: SessionConfig | undefined
2620
- intent: string | undefined
2621
- skills: SkillDefinition[] | undefined
2622
- solution: SolutionDefinition | undefined
2623
- ```
2624
-
2625
- ## `SessionDetail` (interface)
2626
-
2627
- ```ts
2628
- agent_runtime_id: string | null | undefined
2629
- ba_version: string | null | undefined
2630
- biz_role_id: string | null | undefined
2631
- bound_skill_id: string | null | undefined
2632
- chat_group_id: string | null | undefined
2633
- created_at: string
2634
- daemon_id: string | null | undefined
2635
- disable_tools: (string[] & string[]) | undefined
2636
- enable_thinking: boolean | null | undefined
2637
- env: Record<string, string> | undefined
2638
- id: string
2639
- initiator: "unknown" | "ui" | "sdk" | null | undefined
2640
- intent: string
2641
- is_example: boolean | undefined
2642
- is_headless: boolean | undefined
2643
- is_persistent: boolean | undefined
2644
- is_pinned: boolean | undefined
2645
- match: SessionSearchMatch | null | undefined
2646
- memory_enabled: boolean | undefined
2647
- model: string | null | undefined
2648
- pinned_at: string | null | undefined
2649
- plan_summary: string | null | undefined
2650
- ports: SessionPortMapping[] | undefined
2651
- preview_url: string | null | undefined
2652
- primary_skill_id: string | null | undefined
2653
- primary_skill_snapshot: PrimarySkillSnapshot | null | undefined
2654
- replay_state: ReplayState | null | undefined
2655
- runtime_type: string | null | undefined
2656
- sandbox_version: string | null | undefined
2657
- shared: boolean | undefined
2658
- solution: Solution | null | undefined
2659
- solution_id: string | null | undefined
2660
- solution_ref: PublishedSolutionRef | null | undefined
2661
- status: "completed" | "failed" | "interrupted" | "running" | "created" | "waiting_for_input"
2662
- template_id: TemplateId | null | undefined
2663
- updated_at: string
2664
- viewer_role: "owner" | "viewer" | undefined
2665
- workspace_path: string | null | undefined
2666
- ```
2667
-
2668
- ## `SessionHistory` (interface)
2669
-
2670
- ```ts
2671
- active_branch: string | null
2672
- branches: string[]
2673
- nodes: HistoryNode[]
2674
- system_prompt_tokens: number | null | undefined
2675
- tokenizer_model: string | null | undefined
2676
- tools_tokens: number | null | undefined
2677
- ```
2678
-
2679
- ## `SessionHub` (class)
2680
-
2681
- ```ts
2682
- connect: (sessionId: string, options?: SessionConnectOptions) => Promise<AgentSession>
2683
- disconnect: () => void
2684
- disposeAll: () => void
2685
- getConnection: () => ConnectionStatus
2686
- onConnectionChange: (listener: (status: ConnectionStatus) => void) => () => void
2687
- peek: (sessionId: string) => AgentSession | undefined
2688
- reconnect: () => void
2689
- ```
2690
-
2691
- ## `SessionInfo` (type)
2692
-
2693
- ```ts
2694
- SessionInfo = type({
2695
- id: "string",
2696
- intent: "string",
2697
- status: SessionStatus,
2698
- created_at: "string",
2699
- updated_at: "string",
2700
- "shared?": "boolean",
2701
- "memory_enabled?": "boolean",
2702
- "is_persistent?": "boolean",
2703
- "initiator?": "'ui' | 'sdk' | 'unknown' | null",
2704
- "is_headless?": "boolean",
2705
- "viewer_role?": "'owner' | 'viewer'",
2706
- "template_id?": "string | null",
2707
- "model?": "string | null",
2708
- "enable_thinking?": "boolean | null",
2709
- "solution_id?": "string | null",
2710
- "solution_ref?": "unknown",
2711
- "biz_role_id?": "string | null",
2712
- "solution?": "unknown",
2713
- "plan_summary?": "string | null",
2714
- "primary_skill_id?": "string | null",
2715
- // ship-attack v2:后端 engine.set_bound_skill 写入的"绑定 skill id"。
2716
- // 未绑定 / 非 ship-attack session 为 null。
2717
- "bound_skill_id?": "string | null",
2718
- "replay_state?": "unknown",
2719
- "is_pinned?": "boolean",
2720
- "pinned_at?": "string | null",
2721
- "is_example?": "boolean",
2722
- "ports?": "unknown",
2723
- "disable_tools?": "string[]",
2724
- "runtime_type?": "string | null",
2725
- "daemon_id?": "string | null",
2726
- "agent_runtime_id?": "string | null",
2727
- "workspace_path?": "string | null",
2728
- "ba_version?": "string | null",
2729
- "sandbox_version?": "string | null",
2730
- "chat_group_id?": "string | null",
2731
- "match?": "unknown",
2732
- })
2733
- ```
2734
-
2735
- ## `SessionMemoryToggle` (function)
2736
-
2737
- ```ts
2738
- SessionMemoryToggle: ({ sessionId, enabled, client: clientProp, disabled, label, className, labelClassName, inputClassName, onSaved, onError, }: SessionMemoryToggleProps) => JSX.Element
2739
- ```
2740
-
2741
- ## `SessionMemoryToggleProps` (interface)
2742
-
2743
- ```ts
2744
- className: string | undefined
2745
- client: BladeClient | undefined
2746
- disabled: boolean | undefined
2747
- enabled: boolean
2748
- inputClassName: string | undefined
2749
- label: string | undefined
2750
- labelClassName: string | undefined
2751
- onError: ((error: unknown) => void) | undefined
2752
- onSaved: ((sessionId: string, enabled: boolean) => void) | undefined
2753
- sessionId: string
2754
- ```
2755
-
2756
- ## `SessionPlugin` (interface)
2757
-
2758
- ```ts
2759
- active: boolean
2760
- config: SessionPluginConfigSummary | undefined
2761
- display_name: string | null | undefined
2762
- icon: string | null | undefined
2763
- installed: boolean | null
2764
- name: string
2765
- projected: boolean
2766
- projection_source: string | null | undefined
2767
- reason: string | null | undefined
2768
- status: string
2769
- ```
2770
-
2771
- ## `SessionPluginActivation` (type)
2772
-
2773
- ```ts
2774
- export type SessionPluginActivation = Pick<SessionPlugin, "name" | "active" | "status" | "reason">
2775
- ```
2776
-
2777
- ## `SessionPluginConfigDialog` (function)
2778
-
2779
- ```ts
2780
- SessionPluginConfigDialog: ({ client, sessionId, plugin, ...props }: SessionPluginConfigDialogProps) => JSX.Element
2781
- ```
2782
-
2783
- ## `SessionPluginConfigDialogProps` (interface)
2784
-
2785
- ```ts
2786
- client: BladeClient
2787
- onClose: () => void
2788
- onSaved: ((state: SessionPluginConfigState) => void) | undefined
2789
- plugin: Pick<SessionPlugin, "name" | "display_name" | "icon">
2790
- sessionId: string
2791
- ```
2792
-
2793
- ## `SessionPluginConfigDraft` (interface)
2794
-
2795
- ```ts
2796
- remove: string[]
2797
- set: SessionPluginConfigSet[]
2798
- ```
2799
-
2800
- ## `SessionPluginConfigError` (interface)
2801
-
2802
- ```ts
2803
- message: string
2804
- path: string
2805
- ```
2806
-
2807
- ## `SessionPluginConfigForm` (function)
2808
-
2809
- ```ts
2810
- SessionPluginConfigForm: ({ config, submitting, errors, failure, onSubmit, onCancel, }: SessionPluginConfigFormProps) => JSX.Element
2811
- ```
2812
-
2813
- ## `SessionPluginConfigFormProps` (interface)
2814
-
2815
- ```ts
2816
- config: SessionPluginConfigState
2817
- errors: SessionPluginConfigError[]
2818
- failure: string | null
2819
- onCancel: () => void
2820
- onSubmit: (draft: SessionPluginConfigDraft) => void
2821
- submitting: boolean
2822
- ```
2823
-
2824
- ## `SessionPluginConfigSet` (interface)
2825
-
2826
- ```ts
2827
- path: string
2828
- value: unknown
2829
- ```
2830
-
2831
- ## `SessionPluginConfigState` (interface)
2832
-
2833
- ```ts
2834
- errors: SessionPluginConfigError[]
2835
- reason: string | null
2836
- revision: string | null
2837
- schema: Record<string, unknown> | null
2838
- state: SessionPluginConfigStateName
2839
- values: Record<string, unknown>
2840
- write_only: string[]
2841
- ```
2842
-
2843
- ## `SessionPluginConfigStateName` (type)
2844
-
2845
- ```ts
2846
- export type SessionPluginConfigStateName = "not_required" | "required" | "configured" | "error"
2847
- ```
2848
-
2849
- ## `SessionPluginConfigSummary` (type)
2850
-
2851
- ```ts
2852
- export type SessionPluginConfigSummary =
2853
- | SessionPluginConfigStateName
2854
- | "unchecked"
2855
- ```
2856
-
2857
- ## `SessionPluginConfigUpdate` (interface)
2858
-
2859
- ```ts
2860
- expected_revision: string | null | undefined
2861
- remove: string[] | undefined
2862
- set: SessionPluginConfigSet[] | undefined
2863
- ```
2864
-
2865
- ## `SessionPluginIcon` (function)
2866
-
2867
- ```ts
2868
- SessionPluginIcon: ({ client, sessionId, plugin, size, shape, className }: SessionPluginIconProps) => JSX.Element
2869
- ```
2870
-
2871
- ## `SessionPluginIconProps` (interface)
2872
-
2873
- ```ts
2874
- className: string | undefined
2875
- client: BladeClient
2876
- plugin: Pick<SessionPlugin, "name" | "icon">
2877
- sessionId: string | null
2878
- shape: "circle" | "rounded" | undefined
2879
- size: number | undefined
2880
- ```
2881
-
2882
- ## `sessionPluginLabel` (function)
2883
-
2884
- ```ts
2885
- sessionPluginLabel: (plugin: Pick<SessionPlugin, "name" | "display_name">) => string
2886
- ```
2887
-
2888
- ## `SessionPluginLabelProps` (interface)
2889
-
2890
- ```ts
2891
- plugin: Pick<SessionPlugin, "name" | "display_name">
2892
- ```
2893
-
2894
- ## `SessionPluginSelector` (function)
2895
-
2896
- ```ts
2897
- SessionPluginSelector: (props: SessionPluginSelectorProps) => JSX.Element
2898
- ```
2899
-
2900
- ## `SessionPluginSelectorProps` (interface)
2901
-
2902
- ```ts
2903
- className: string | undefined
2904
- client: BladeClient
2905
- onChange: ((plugin: SessionPluginActivation) => void) | undefined
2906
- sessionId: string
2907
- side: "top" | "bottom" | undefined
2908
- ```
2909
-
2910
- ## `SessionPortMapping` (interface)
2911
-
2912
- ```ts
2913
- container_port: number
2914
- host_port: number
2915
- ```
2916
-
2917
- ## `SessionProfile` (interface)
2918
-
2919
- ```ts
2920
- compactionRatio: number | undefined
2921
- disableTools: string[] | undefined
2922
- enableThinking: boolean | undefined
2923
- env: Record<string, string> | undefined
2924
- memoryEnabled: boolean | undefined
2925
- model: string | undefined
2926
- solution: SolutionRef | undefined
2927
- ```
2928
-
2929
- ## `SessionQueuePanel` (function)
2930
-
2931
- ```ts
2932
- SessionQueuePanel: ({ snapshot, canDeliver, pendingItemId, notice, onResume, onCancel, onEdit, onRequeue, onMove, onReorder, onDeliver, contentWidthClassName, rootClassName, onVisibleChange, mergesWithInputBelow: mergesWithInputBelowProp, }: SessionQueuePanelProps) => JSX.Element | null
2933
- ```
2934
-
2935
- ## `SessionQueuePanelProps` (interface)
2936
-
2937
- ```ts
2938
- canDeliver: boolean
2939
- contentWidthClassName: string | undefined
2940
- mergesWithInputBelow: boolean | undefined
2941
- notice: string | null | undefined
2942
- onCancel: (item: QueuedMessage) => void
2943
- onDeliver: (item: QueuedMessage) => void
2944
- onEdit: (item: QueuedMessage, content: string) => boolean | undefined | Promise<boolean>
2945
- onMove: (item: QueuedMessage, delta: -1 | 1) => void
2946
- onReorder: (orderedIds: string[]) => void
2947
- onRequeue: ((content: string) => Promise<boolean>) | undefined
2948
- onResume: () => void
2949
- onVisibleChange: ((visible: boolean) => void) | undefined
2950
- pendingItemId: string | null | undefined
2951
- rootClassName: string | undefined
2952
- snapshot: SessionQueueSnapshot
2953
- ```
2954
-
2955
- ## `SessionQueueSnapshot` (interface)
2956
-
2957
- ```ts
2958
- items: QueuedMessage[]
2959
- pause_reason: string | null
2960
- paused: boolean
2961
- revision: number
2962
- session_id: string
2963
- ```
2964
-
2965
- ## `SessionSearchMatch` (interface)
2966
-
2967
- ```ts
2968
- field: "title" | "content"
2969
- snippet: { role: string; text: string; } | null
2970
- ```
2971
-
2972
- ## `SessionSetupError` (class)
2973
-
2974
- ```ts
2975
- cause: unknown
2976
- message: string
2977
- name: "SessionSetupError"
2978
- sessionId: string | undefined
2979
- stack: string | undefined
2980
- stage: SessionSetupStage
2981
- ```
2982
-
2983
- ## `SessionSetupStage` (type)
2984
-
2985
- ```ts
2986
- export type SessionSetupStage = "solution" | "session" | "skill" | "connection"
2987
- ```
2988
-
2989
- ## `SessionsResource` (class)
2990
-
2991
- ```ts
2992
- attachAppCli: (sessionId: string, definition: AppCliDefinition) => Promise<AppCliAttachment>
2993
- callMcpApp: (sessionId: string, sourceId: string, request: { request_id: string; name: string; arguments: Record<string, unknown>; }, init?: RequestInit) => Promise<{ response: Record<string, unknown>; replayed: boolean; }>
2994
- checkoutSession: (sessionId: string, checkpointId: string, position: "before" | "turn_end", mode?: "both" | "conversation" | "code", linear?: boolean) => Promise<{ id: string; content: string; position: string; mode?: string; files_restored?: boolean; linear?: boolean; }>
2995
- connect: (sessionId: string) => Promise<AgentSession>
2996
- copyFile: (sessionId: string, filePath: string) => Promise<{ path: string; }>
2997
- countFiles: (sessionId: string, dirPath?: string) => Promise<number>
2998
- create: (request?: CreateSessionRequest | SessionDefinition) => Promise<AgentSession>
2999
- createSession: (intent?: string, template_id?: TemplateId, primary_skill_id?: string | null) => Promise<{ session_id: string; }>
3000
- createSessionWithRequest: (request: CreateSessionRequest) => Promise<{ session_id: string; }>
3001
- createShare: (sessionId: string) => Promise<ShareLinkResult>
3002
- createWithProfile: (params: { intent: string; profile: SessionProfile; }) => Promise<{ session_id: string; }>
3003
- deleteFile: (sessionId: string, filePath: string) => Promise<void>
3004
- deleteSession: (sessionId: string, options?: { deleteWorkspace?: boolean; }) => Promise<{ deleted: boolean; workspace_deleted?: boolean; }>
3005
- downloadFile: (sessionId: string, filePath: string, downloadName?: string) => Promise<void>
3006
- exportSession: (sessionId: string) => Promise<void>
3007
- fetchImage: (sessionId: string, assetId: string, preview?: boolean) => Promise<Blob>
3008
- fetchSessionPluginIcon: (sessionId: string, name: string) => Promise<Blob>
3009
- fetchSharedImage: (token: string, assetId: string, preview?: boolean) => Promise<Blob>
3010
- getBackgroundTask: (sessionId: string, taskId: string, tail?: number, init?: RequestInit) => Promise<BackgroundTask>
3011
- getDownloadDirUrl: (sessionId: string, dirPath: string) => string
3012
- getMcpApp: (sessionId: string, sourceId: string, init?: RequestInit) => Promise<McpAppArchive>
3013
- getMcpAppContext: (sessionId: string, sourceId: string, init?: RequestInit) => Promise<McpAppContextState>
3014
- getReplayPreview: (sessionId: string) => Promise<ReplayPreview>
3015
- getSession: (sessionId: string, init?: RequestInit) => Promise<SessionDetail>
3016
- getSessionCheckpoints: (sessionId: string, init?: RequestInit) => Promise<{ nodes: CheckpointNode[]; leaf_id: string | null; }>
3017
- getSessionContextStats: (sessionId: string, init?: RequestInit) => Promise<SessionContextStats>
3018
- getSessionHistory: (sessionId: string, init?: RequestInit) => Promise<SessionHistory>
3019
- getSessionPluginConfig: (sessionId: string, name: string, init?: RequestInit) => Promise<{ plugin: string; config: SessionPluginConfigState; }>
3020
- getSessionTasks: (sessionId: string) => Promise<Task[]>
3021
- getSessionTurnCommands: (sessionId: string) => Promise<HistoricalCommand[]>
3022
- getSessionTurnIndex: (sessionId: string) => Promise<SessionTurnIndex>
3023
- getSessionTurns: (sessionId: string) => Promise<TurnProjection[]>
3024
- getSessionTurnsPage: (sessionId: string, options?: SessionTurnsQuery, init?: RequestInit) => Promise<SessionTurnsPage>
3025
- getSharedSession: (token: string) => Promise<TurnProjection[]>
3026
- importSession: (file: File, name?: string, solutionOverride?: string | null | ImportSessionOptions) => Promise<{ session_id: string; }>
3027
- listBackgroundTasks: (sessionId: string, init?: RequestInit) => Promise<BackgroundTask[]>
3028
- listDir: (sessionId: string, dirPath: string, showHidden?: boolean) => Promise<FileEntry[]>
3029
- listResultFeedback: (sessionId: string) => Promise<ResultFeedback[]>
3030
- listSessionPlugins: (sessionId: string, init?: RequestInit) => Promise<{ plugins: SessionPlugin[]; sync_version: number; sync_pending: boolean; }>
3031
- listSessions: (template_id_prefix?: string, solution_id?: string) => Promise<SessionInfo[]>
3032
- listSessionsPaginated: (params: { limit: number; offset: number; template_id_prefix?: string; solution_id?: string; solution_registry_id?: string; q?: string; chat_group_id?: string; }) => Promise<PaginatedSessionsResult>
3033
- listSessionsWithSkillData: () => Promise<SkillDevSession[]>
3034
- onMcpAppChanged: (sessionId: string, sourceId: string, listener: () => void) => () => void
3035
- pinSession: (sessionId: string, pinned: boolean) => Promise<SessionInfo>
3036
- prepareSessionPluginConfig: (sessionId: string, name: string, init?: RequestInit) => Promise<{ plugin: string; config: SessionPluginConfigState; }>
3037
- previewImport: (file: File) => Promise<ImportPreview>
3038
- probeSessionUrl: (sessionId: string, url: string) => Promise<{ reachable: boolean; requires_proxy: boolean; }>
3039
- putResultFeedback: (sessionId: string, assistantEntryId: string, feedback: { helpful: boolean; reason?: ResultFeedbackReason | null; }) => Promise<ResultFeedback>
3040
- renameFile: (sessionId: string, filePath: string, newName: string) => Promise<{ path: string; }>
3041
- revokeShare: (sessionId: string, token: string) => Promise<{ revoked: boolean; }>
3042
- rewindSession: (sessionId: string, checkpointId: string) => Promise<{ id: string; content: string; }>
3043
- searchOwnedContent: (params: { q: string; limit?: number; }) => Promise<GlobalSearchResult>
3044
- sessionPluginIconUrl: (sessionId: string, name: string) => string
3045
- setSessionEnv: (sessionId: string, env: Record<string, string>) => Promise<SessionDetail>
3046
- setSessionPluginActivation: (sessionId: string, name: string, active: boolean, init?: RequestInit) => Promise<{ plugin: SessionPluginActivation; sync_version: number; }>
3047
- shareFile: (sessionId: string, sourcePath: string, linkName?: string, shareFolder?: string) => Promise<{ path: string; target: string; }>
3048
- startReplaySession: (sourceSessionId: string, speed?: ReplaySpeed) => Promise<{ session_id: string; }>
3049
- stopBackgroundTask: (sessionId: string, taskId: string) => Promise<BackgroundTaskStopResult>
3050
- switchBranch: (sessionId: string, checkpointId: string) => Promise<{ id: string; leaf_id: string; }>
3051
- tokenizeMessages: (messages: Array<Record<string, unknown>>, options?: { model?: string; add_generation_prompt?: boolean; enable_thinking?: boolean | null; tools?: Array<Record<string, unknown>>; }) => Promise<TokenizeResult>
3052
- tokenizePrompt: (prompt: string, model?: string) => Promise<TokenizeResult>
3053
- updateMcpAppContext: (sessionId: string, sourceId: string, body: McpAppContextUpdate, init?: RequestInit) => Promise<{ status: "accepted"; revision: string; }>
3054
- updateReplaySession: (sessionId: string, payload: { speed?: ReplaySpeed; status?: "autonomous"; }) => Promise<{ replay_state: SessionInfo["replay_state"]; }>
3055
- updateSession: (sessionId: string, payload: { intent?: string; chat_group_id?: string | null; }) => Promise<SessionDetail>
3056
- updateSessionMemory: (sessionId: string, memoryEnabled: boolean) => Promise<{ memory_enabled: boolean; }>
3057
- updateSessionPluginConfig: (sessionId: string, name: string, update: SessionPluginConfigUpdate, init?: RequestInit) => Promise<{ plugin: string; config: SessionPluginConfigState; }>
3058
- updateSharing: (sessionId: string, shared: boolean) => Promise<{ shared: boolean; }>
3059
- uploadFiles: (sessionId: string, dirPath: string, files: FileList | File[] | UploadFileEntry[], options?: UploadFilesOptions) => Promise<{ uploaded: string[]; failed: string[]; results: Array<{ index: number; path?: string; error?: string; }>; }>
3060
- writeFile: (sessionId: string, filePath: string, content: string) => Promise<{ success: boolean; }>
3061
- ```
3062
-
3063
- ## `SessionState` (interface)
3064
-
3065
- ```ts
3066
- activeCompaction: ActiveCompactionState | null
3067
- agentLoops: Record<string, AgentLoopInfo>
3068
- askAnswers: Record<string, AskUserAnswerData>
3069
- connection: ConnectionStatus
3070
- errorMessage: string | null
3071
- isStreaming: boolean
3072
- loadingOlder: boolean
3073
- messages: ChatMessage[]
3074
- mode: "planning" | "executing" | null
3075
- nextBefore: string | null
3076
- queue: SessionQueueSnapshot
3077
- replay: ReplaySnapshot | null
3078
- sessionId: string
3079
- status: "completed" | "failed" | "interrupted" | "running" | "created" | "waiting_for_input" | null
3080
- turns: TurnProjection[]
3081
- viewerRole: "owner" | "viewer" | null
3082
- ```
3083
-
3084
- ## `SessionStatus` (type)
3085
-
3086
- ```ts
3087
- SessionStatus = type(
3088
- "'created' | 'running' | 'completed' | 'failed' | 'interrupted' | 'waiting_for_input'",
3089
- )
3090
- ```
3091
-
3092
- ## `SessionStatusEvent` (interface)
3093
-
3094
- ```ts
3095
- session_id: string
3096
- status: string
3097
- ```
3098
-
3099
- ## `SessionTurnIndex` (interface)
3100
-
3101
- ```ts
3102
- items: SessionTurnIndexItem[]
3103
- sessionId: string
3104
- ```
3105
-
3106
- ## `SessionTurnIndexItem` (interface)
3107
-
3108
- ```ts
3109
- createdAt: string | null
3110
- entryId: string
3111
- preview: string
3112
- ```
3113
-
3114
- ## `SessionTurnsPage` (interface)
3115
-
3116
- ```ts
3117
- currentMode: "planning" | "executing"
3118
- nextBefore: string | null
3119
- turns: TurnProjection[]
3120
- ```
3121
-
3122
- ## `SessionTurnsQuery` (interface)
3123
-
3124
- ```ts
3125
- before: string | undefined
3126
- fromEntryId: string | undefined
3127
- limit: number | undefined
3128
- ```
3129
-
3130
- ## `ShareLinkResult` (interface)
3131
-
3132
- ```ts
3133
- expires_at: string | null
3134
- token: string
3135
- url: string
3136
- ```
3137
-
3138
- ## `shouldApplySnapshot` (function)
3139
-
3140
- ```ts
3141
- shouldApplySnapshot: (current: SessionQueueSnapshot | undefined, next: SessionQueueSnapshot) => boolean
3142
- ```
3143
-
3144
- ## `SiteVisitsResource` (class)
3145
-
3146
- ```ts
3147
- record: () => Promise<SiteVisitsSummary>
3148
- summary: () => Promise<SiteVisitsSummary>
3149
- ```
3150
-
3151
- ## `SiteVisitsSummary` (interface)
3152
-
3153
- ```ts
3154
- as_of: string
3155
- date: string
3156
- timezone: string
3157
- today_pv: number
3158
- today_uv: number
3159
- total_pv: number
3160
- ```
3161
-
3162
- ## `SkillDefinition` (interface)
3163
-
3164
- ```ts
3165
- files: SkillFile[]
3166
- name: string
3167
- ```
3168
-
3169
- ## `SkillEditorTemplateId` (type)
3170
-
3171
- ```ts
3172
- export type SkillEditorTemplateId = "skill_editor"
3173
- ```
3174
-
3175
- ## `SkillFile` (type)
3176
-
3177
- ```ts
3178
- export type SkillFile = TextFile & {
3179
- /** 二进制内容使用 base64;省略时为 UTF-8 文本。 */
3180
- encoding?: "utf-8" | "base64"
3181
- executable?: boolean
3182
- }
3183
- ```
3184
-
3185
- ## `SkillMentionAvailability` (interface)
3186
-
3187
- ```ts
3188
- installed: boolean | undefined
3189
- local: boolean | undefined
3190
- ```
3191
-
3192
- ## `Solution` (interface)
3193
-
3194
- ```ts
3195
- data: Record<string, unknown> | null | undefined
3196
- description: string | null | undefined
3197
- id: string
3198
- initial_message: string | null | undefined
3199
- initial_mode: string | null | undefined
3200
- layout: { available?: boolean; source_dir?: string; entry?: string; export?: string; } | null | undefined
3201
- layout_type: string
3202
- name: string
3203
- preview: { url: string; title?: string | null; } | null | undefined
3204
- roles: BizRole[] | null | undefined
3205
- source: string | null | undefined
3206
- ui_config: SolutionAppUiConfig | null | undefined
3207
- version: string
3208
- ```
3209
-
3210
- ## `SolutionAppField` (type)
3211
-
3212
- ```ts
3213
- export type SolutionAppField =
3214
- | {
3215
- id: string
3216
- kind: "textarea"
3217
- label: string
3218
- placeholder?: string
3219
- }
3220
- | {
3221
- id: string
3222
- kind: "file-upload"
3223
- accept?: string[]
3224
- categories?: Array<{
3225
- label: string
3226
- description: string
3227
- color: string
3228
- }>
3229
- }
3230
- ```
3231
-
3232
- ## `SolutionAppState` (interface)
8
+ ## `AskUserQuestionData` (interface)
3233
9
 
3234
10
  ```ts
3235
- meta: Record<string, { label: string; value: string; color?: string; }>
3236
- pipeline: { id: string; label: string; status: "done" | "active" | "pending" | "error"; }[]
11
+ questions: QuestionItem[]
12
+ source_loop: SourceLoopInfo | null | undefined
3237
13
  ```
3238
14
 
3239
- ## `SolutionAppUiConfig` (interface)
15
+ ## `AskUserQuestionRendererProps` (interface)
3240
16
 
3241
17
  ```ts
3242
- branding: { name: string; subtitle?: string; icon_text: string; icon_gradient?: string; }
3243
- create: { title: string; description?: string; submit_button: string; sections: Array<{ id: string; title: string; description?: string; fields: Array<SolutionAppField>; }>; }
3244
- list: { title: string; create_button: string; card?: { subtitle?: string; stats?: Array<{ label: string; value: string; color?: string; }>; }; }
18
+ answerData: AskUserAnswerData | undefined
19
+ answered: boolean
20
+ data: AskUserQuestionData
21
+ onAnswer: ((answer: string, toolCallId: string, answerData: AskUserAnswerData) => void) | undefined
22
+ sessionStatus: string
23
+ toolCallId: string
3245
24
  ```
3246
25
 
3247
- ## `SolutionDefinition` (type)
26
+ ## `AssistantTextRendererProps` (interface)
3248
27
 
3249
28
  ```ts
3250
- export type SolutionDefinition =
3251
- | { id: string; role?: string }
3252
- /** 自定义 Solution:文本文件路径均相对于 Solution 根目录。 */
3253
- | { files: TextFile[]; role?: string }
29
+ compact: boolean
30
+ message: ChatMessage
31
+ sessionId: string | undefined
32
+ streaming: boolean
3254
33
  ```
3255
34
 
3256
- ## `SolutionRef` (type)
35
+ ## `BladeHost` (interface)
3257
36
 
3258
37
  ```ts
3259
- export type SolutionRef = ExistingSolutionRef | PreparedSolutionAsset
38
+ listKnowledgeBases: ((context: { sessionId?: string; }) => Promise<HostCatalogItem[]>) | undefined
39
+ listSkills: ((context: { sessionId?: string; }) => Promise<HostCatalogItem[]>) | undefined
40
+ openPreview: ((target: { sessionId: string; url?: string; port?: number; }) => void | Promise<void>) | undefined
41
+ openProject: ((projectId: string) => void) | undefined
42
+ openSession: ((sessionId: string) => void) | undefined
43
+ openWorkspaceFile: ((target: { sessionId: string; path: string; line?: number; name?: string; }) => void | Promise<void>) | undefined
44
+ uploadAttachments: ((files: File[], context: { sessionId?: string; }) => Promise<HostAttachment[]>) | undefined
3260
45
  ```
3261
46
 
3262
- ## `sortComputers` (function)
47
+ ## `BladeProvider` (function)
3263
48
 
3264
49
  ```ts
3265
- sortComputers: (computers: SessionComputer[]) => SessionComputer[]
50
+ BladeProvider: ({ client, host, children }: BladeProviderProps) => JSX.Element
3266
51
  ```
3267
52
 
3268
- ## `stripSystemReminders` (function)
53
+ ## `BladeProviderProps` (interface)
3269
54
 
3270
55
  ```ts
3271
- stripSystemReminders: (text: string) => string
56
+ children: ReactNode
57
+ client: BladeClient
58
+ host: BladeHost | undefined
3272
59
  ```
3273
60
 
3274
- ## `SystemError` (interface)
61
+ ## `ChatCompletionTool` (interface)
3275
62
 
3276
63
  ```ts
3277
- message: string
64
+ function: { name: string; description?: string; parameters?: Record<string, unknown>; }
65
+ type: "function"
3278
66
  ```
3279
67
 
3280
- ## `Task` (type)
68
+ ## `ChatView` (function)
3281
69
 
3282
70
  ```ts
3283
- Task = type({
3284
- id: "string",
3285
- goal: "string",
3286
- skills: "string[]",
3287
- depends_on: "string[]",
3288
- status: TaskStatus,
3289
- result_summary: "string",
3290
- number: "string",
3291
- })
71
+ ChatView: (props: ChatViewProps) => JSX.Element
3292
72
  ```
3293
73
 
3294
- ## `TaskStatus` (type)
3295
-
3296
- ```ts
3297
- TaskStatus = type("'pending' | 'in_progress' | 'done' | 'failed' | 'skipped'")
74
+ ## `ChatViewClassNames` (type)
75
+
76
+ ```ts
77
+ export type ChatViewClassNames = Partial<{
78
+ root: string
79
+ viewerBanner: string
80
+ messageListRoot: string
81
+ messageListViewport: string
82
+ messageListContent: string
83
+ messageListInner: string
84
+ emptyState: string
85
+ userMessage: string
86
+ errorMessage: string
87
+ assistantTurn: string
88
+ assistantText: string
89
+ toolCall: string
90
+ chatInputRoot: string
91
+ chatInputInner: string
92
+ /**
93
+ * 队列面板根节点。软件工厂把输入框根节点的左右内边距改成了 px-10! / px-2!,
94
+ * 面板必须跟着同一个值,否则两者相接的那条缝上会一边宽一边窄。在这里重设
95
+ * `--blade-chat-queue-gutter` 即可(面板默认值对应 px-5)。
96
+ */
97
+ queuePanelRoot: string
98
+ skillStatusBarRoot: string
99
+ skillStatusBarInner: string
100
+ }>
3298
101
  ```
3299
102
 
3300
- ## `TemplateId` (type)
103
+ ## `ChatViewProps` (interface)
3301
104
 
3302
105
  ```ts
3303
- export type TemplateId =
3304
- | "default"
3305
- | "skill_editor"
3306
- // ship-attack v2:用户从 ship-attack 页面点"新建 session"创建的会话。
3307
- // 后端 _maybe_bind_first_skill 只对此模板触发首次绑定。
3308
- | "ship_attack"
106
+ classNames: Partial<{ root: string; viewerBanner: string; messageListRoot: string; messageListViewport: string; messageListContent: string; messageListInner: string; emptyState: string; userMessage: string; errorMessage: string; assistantTurn: string; assistantText: string; toolCall: string; chatInputRoot: string; chatInputInner: string; queuePanelRoot: string; skillStatusBarRoot: string; skillStatusBarInner: string; }> | undefined
107
+ commands: Record<string, (data: unknown) => void> | undefined
108
+ createOptions: CreateSessionRequest | undefined
109
+ llm: (LlmChatOptions & { advanced?: boolean | LlmAdvancedSettings; onOverrideChange?: (override: LlmOverride) => void; }) | undefined
110
+ mode: "agent" | "llm" | undefined
111
+ onFollowupInteraction: ((event: FollowupInteractionEvent) => void) | undefined
112
+ onLlmReady: ((handle: LlmChatHandle) => void) | undefined
113
+ onSessionCreated: ((sessionId: string) => void) | undefined
114
+ onSessionReady: ((session: AgentSession) => void) | undefined
115
+ placeholder: string | undefined
116
+ renderers: ChatViewRenderers | undefined
117
+ sessionId: string | undefined
118
+ sessionPluginControls: ((sessionId: string) => ReactNode) | undefined
119
+ slots: ChatViewSlots | undefined
120
+ theme: "light" | "dark" | undefined
3309
121
  ```
3310
122
 
3311
- ## `TextContentPart` (interface)
123
+ ## `ChatViewRenderers` (interface)
3312
124
 
3313
125
  ```ts
3314
- text: string
3315
- type: "text"
126
+ askUserQuestion: ((props: AskUserQuestionRendererProps) => ReactNode | null) | undefined
127
+ assistantText: ((props: AssistantTextRendererProps) => ReactNode | null) | undefined
128
+ planUpdate: ((props: PlanUpdateRendererProps) => ReactNode | null) | undefined
129
+ tool: Record<string, ComponentType<ToolRendererProps>> | undefined
130
+ toolCall: ToolCallRenderer | undefined
131
+ userMessage: ((props: UserMessageRendererProps) => ReactNode | null) | undefined
3316
132
  ```
3317
133
 
3318
- ## `TextFile` (type)
134
+ ## `ChatViewSlots` (interface)
3319
135
 
3320
136
  ```ts
3321
- export type TextFile = {
3322
- path: string
3323
- content: string
3324
- }
137
+ emptyState: ReactNode
138
+ footer: ReactNode
139
+ header: ReactNode
3325
140
  ```
3326
141
 
3327
- ## `TokenStorageMode` (type)
142
+ ## `FollowupInteractionEvent` (type)
3328
143
 
3329
144
  ```ts
3330
- export type TokenStorageMode = "local" | "memory"
145
+ export type FollowupInteractionEvent =
146
+ | {
147
+ type: "suggestions_shown"
148
+ sessionId?: string
149
+ assistantEntryId: string
150
+ count: number
151
+ }
152
+ | {
153
+ type: "suggestion_adopted"
154
+ sessionId?: string
155
+ assistantEntryId: string
156
+ suggestionIndex: number
157
+ }
158
+ | {
159
+ type: "artifact_shown"
160
+ sessionId?: string
161
+ assistantEntryId: string
162
+ artifactIndex: number
163
+ artifactKind: FinalArtifact["kind"]
164
+ }
165
+ | {
166
+ type: "artifact_opened"
167
+ sessionId?: string
168
+ assistantEntryId: string
169
+ artifactIndex: number
170
+ artifactKind: FinalArtifact["kind"]
171
+ }
172
+ | {
173
+ type: "artifact_download_started"
174
+ sessionId?: string
175
+ assistantEntryId: string
176
+ artifactIndex: number
177
+ artifactKind: "file"
178
+ }
179
+ | {
180
+ type: "artifact_download_succeeded"
181
+ sessionId?: string
182
+ assistantEntryId: string
183
+ artifactIndex: number
184
+ artifactKind: "file"
3331
185
  ```
3332
186
 
3333
- ## `ToolBridgeContent` (interface)
187
+ ## `HostAttachment` (interface)
3334
188
 
3335
189
  ```ts
3336
- action: string
3337
- payload: unknown
190
+ mimeType: string | undefined
191
+ name: string
192
+ path: string | undefined
193
+ size: number | undefined
194
+ url: string | undefined
3338
195
  ```
3339
196
 
3340
- ## `ToolCallArgumentsDelta` (interface)
197
+ ## `HostCatalogItem` (interface)
3341
198
 
3342
199
  ```ts
3343
- arguments_delta: string
3344
- function: { name: string; }
200
+ description: string | undefined
3345
201
  id: string
3346
- index: number
3347
- loop_name: string | undefined
202
+ name: string
3348
203
  ```
3349
204
 
3350
- ## `ToolCallCreated` (interface)
205
+ ## `LlmChatHandle` (interface)
3351
206
 
3352
207
  ```ts
3353
- function: { name: string; arguments: string; }
3354
- id: string
3355
- index: number
3356
- loop_name: string | undefined
208
+ insertText: (text: string) => void
209
+ reset: () => void
210
+ send: (text: string) => Promise<boolean>
3357
211
  ```
3358
212
 
3359
- ## `ToolCallInfo` (interface)
213
+ ## `LlmChatOptions` (interface)
3360
214
 
3361
215
  ```ts
3362
- arguments: string
3363
- display_name: string | null | undefined
3364
- duration_ms: number | null | undefined
3365
- id: string
3366
- name: string
3367
- pending_question_ref: PendingQuestionRef | null | undefined
3368
- result: unknown
3369
- status: "done" | "error" | "cancelled" | "awaiting_answer" | "pending" | undefined
216
+ apiKey: string | undefined
217
+ baseURL: string
218
+ extraBody: Record<string, unknown> | undefined
219
+ fetchImpl: { (input: RequestInfo | URL, init?: RequestInit): Promise<Response>; (input: string | URL | Request, init?: RequestInit): Promise<Response>; } | undefined
220
+ headers: Record<string, string> | undefined
221
+ historyTurns: number | undefined
222
+ maxToolRounds: number | undefined
223
+ model: string
224
+ onToolCall: ((call: LlmToolCall) => Promise<unknown>) | undefined
225
+ system: string | undefined
226
+ temperature: number | undefined
227
+ tools: ChatCompletionTool[] | undefined
3370
228
  ```
3371
229
 
3372
- ## `ToolCallProjection` (interface)
230
+ ## `LlmToolCall` (interface)
3373
231
 
3374
232
  ```ts
3375
233
  arguments: string
3376
- display_name: string
3377
- duration_ms: number | null | undefined
3378
234
  id: string
3379
- pending_question_ref: PendingQuestionRef | null | undefined
3380
- ran_in_parallel: boolean | undefined
3381
- result: unknown
3382
- started_at: string | null | undefined
3383
- status: string
3384
- subagent_runs: RunTiming[] | undefined
3385
- tool_name: string
3386
- ```
3387
-
3388
- ## `ToolCallRenderer` (type)
3389
-
3390
- ```ts
3391
- export type ToolCallRenderer = (info: ToolCallInfo) => ReactNode | null
3392
- ```
3393
-
3394
- ## `ToolResultDelta` (interface)
3395
-
3396
- ```ts
3397
- content: string
3398
- loop_name: string | undefined
3399
- stream: "stdout" | "stderr" | undefined
3400
- tool_call_id: string
3401
- ```
3402
-
3403
- ## `ToolResultDone` (interface)
3404
-
3405
- ```ts
3406
- content: string
3407
- function: { name: string; }
3408
- loop_name: string | undefined
3409
- tool_call_id: string
3410
- ```
3411
-
3412
- ## `ToolUiCard` (interface)
3413
-
3414
- ```ts
3415
- archived: boolean | undefined
3416
- height: number
3417
- mcpApp: McpAppData | undefined
3418
- resourceHTML: string | undefined
3419
- resourceUri: string | undefined
3420
- resourceURI: string | undefined
3421
- sourcePath: string | undefined
3422
- target: "inline" | "preview"
3423
- title: string | undefined
3424
- ```
3425
-
3426
- ## `ToolUiCardContentType` (type)
3427
-
3428
- ```ts
3429
- export type ToolUiCardContentType = "resource-html" | "resource-uri" | "resource-file"
3430
- ```
3431
-
3432
- ## `ToolUiCardView` (function)
3433
-
3434
- ```ts
3435
- ToolUiCardView: ({ card, sessionId }: { card: ToolUiCard; sessionId?: string; }) => JSX.Element | null
3436
- ```
3437
-
3438
- ## `toReplaySnapshot` (function)
3439
-
3440
- ```ts
3441
- toReplaySnapshot: (raw: ReplayState | null | undefined) => ReplaySnapshot | null
3442
- ```
3443
-
3444
- ## `transformSlashCommand` (function)
3445
-
3446
- ```ts
3447
- transformSlashCommand: (skillName: string, rawInput: string, { local, installed }?: SkillMentionAvailability) => string
3448
- ```
3449
-
3450
- ## `TRIGGER_ICON_LIMIT` (const)
3451
-
3452
- ```ts
3453
- TRIGGER_ICON_LIMIT: 3
3454
- ```
3455
-
3456
- ## `triggerSummary` (function)
3457
-
3458
- ```ts
3459
- triggerSummary: (items: Array<Pick<PluginConnectorSelection, "name" | "displayName" | "icon" | "iconSource">>) => TriggerSummary
3460
- ```
3461
-
3462
- ## `TriggerSummary` (interface)
3463
-
3464
- ```ts
3465
- overflow: number
3466
- total: number
3467
- visible: Pick<PluginConnectorSelection, "name" | "iconSource" | "icon" | "displayName">[]
235
+ name: string
3468
236
  ```
3469
237
 
3470
- ## `TURN_NAV_HIGHLIGHT_CLASS` (const)
238
+ ## `MarkdownContent` (function)
3471
239
 
3472
240
  ```ts
3473
- TURN_NAV_HIGHLIGHT_CLASS: "blade-turn-nav-flash"
241
+ MarkdownContent: ({ allowedTags, baseFilePath, children, citations, components, controls: _controls, mode, sessionId, ...props }: MarkdownContentProps) => JSX.Element
3474
242
  ```
3475
243
 
3476
- ## `TurnNavigationOptions` (interface)
244
+ ## `MarkdownContentProps` (type)
3477
245
 
3478
246
  ```ts
3479
- beforeSeek: ((entryId: string) => void) | undefined
3480
- cancelPendingLocate: (() => void) | undefined
3481
- fallbackItems: TurnNavItem[] | undefined
3482
- getLoadedEntryElement: (entryId: string) => HTMLElement | null
3483
- isEntryLoaded: ((entryId: string) => boolean) | undefined
3484
- loadTurnIndex: (() => Promise<SessionTurnIndexItem[]>) | undefined
3485
- locateEntry: (entryId: string) => Promise<boolean>
3486
- reloadKey: string | number | null | undefined
3487
- revealEntry: ((entryId: string) => void) | undefined
3488
- rewriteKey: string | number | null | undefined
3489
- sessionId: string | null | undefined
247
+ export type MarkdownContentProps = MarkdownRendererProps & {
248
+ /** 当提供时,markdown 中相对路径的 <img> src 会解析为 session 工作区文件 URL */
249
+ sessionId?: string
250
+ /** 文件预览传入工作区相对路径;聊天消息不传时仍按工作区根目录解析。 */
251
+ baseFilePath?: string
252
+ /** 本轮里真实检索到的引用证据(见 `lib/citations.ts`)。提供时,文本里能对上号的
253
+ * `[n]` 会渲染成可 hover 预览/点击跳转原文的角标;查不到证据的 `[n]` 原样是纯文本。 */
254
+ citations?: Record<number, CitationEntry> | null
255
+ /** 历史遗留 prop:streamdown 自己的代码块内置控件开关。`components.pre`/
256
+ * `components.code` 一旦被覆盖(这里始终覆盖),streamdown 对应的默认控件
257
+ * 本来就不会渲染,这个开关从未真正生效过——迁移后继续接受但不使用,
258
+ * 避免所有既有调用点都要跟着改。 */
259
+ controls?: boolean | { table?: boolean; code?: boolean; mermaid?: boolean }
260
+ }
3490
261
  ```
3491
262
 
3492
- ## `TurnNavigationResult` (interface)
263
+ ## `PlanStepStatus` (type)
3493
264
 
3494
265
  ```ts
3495
- activeEntryId: string | null
3496
- error: string | null
3497
- failedEntryId: string | null
3498
- items: TurnNavItem[]
3499
- loadingEntryId: string | null
3500
- selectEntry: (entryId: string) => void
266
+ export type PlanStepStatus = "pending" | "in_progress" | "completed"
3501
267
  ```
3502
268
 
3503
- ## `TurnNavigationSource` (interface)
269
+ ## `PlanUpdateData` (interface)
3504
270
 
3505
271
  ```ts
3506
- cancelPendingLocate: (() => void) | undefined
3507
- fallbackItems: TurnNavItem[] | undefined
3508
- loadTurnIndex: (() => Promise<SessionTurnIndexItem[]>) | undefined
3509
- locateEntry: (entryId: string) => Promise<boolean>
3510
- reloadKey: string | number | null | undefined
3511
- rewriteKey: string | number | null | undefined
272
+ plan: { step: string; status: PlanStepStatus; }[]
3512
273
  ```
3513
274
 
3514
- ## `turnNavItemsFromMessages` (function)
275
+ ## `PlanUpdateRendererProps` (interface)
3515
276
 
3516
277
  ```ts
3517
- turnNavItemsFromMessages: (messages: ChatMessage[]) => TurnNavItem[]
278
+ plan: PlanUpdateData
279
+ running: boolean
280
+ sessionId: string | undefined
3518
281
  ```
3519
282
 
3520
- ## `TurnNavRail` (function)
283
+ ## `ReplayBar` (function)
3521
284
 
3522
285
  ```ts
3523
- TurnNavRail: ({ items, activeTurnId, loadingTurnId, error, failedTurnId, onSelectTurn, }: TurnNavRailProps) => JSX.Element | null
286
+ ReplayBar: ({ isReplay, speed, onSpeedChange, onExit, canControl, className, }: ReplayBarProps) => JSX.Element | null
3524
287
  ```
3525
288
 
3526
- ## `TurnNavRailProps` (interface)
289
+ ## `ReplayBarProps` (interface)
3527
290
 
3528
291
  ```ts
3529
- activeTurnId: string | null
3530
- error: string | null | undefined
3531
- failedTurnId: string | null | undefined
3532
- items: TurnNavItem[]
3533
- loadingTurnId: string | null | undefined
3534
- onSelectTurn: (entryId: string) => void
292
+ canControl: boolean | undefined
293
+ className: string | undefined
294
+ isReplay: boolean
295
+ onExit: () => void
296
+ onSpeedChange: (speed: ReplaySpeed) => void
297
+ speed: ReplaySpeed
3535
298
  ```
3536
299
 
3537
- ## `TurnProjection` (interface)
300
+ ## `ReplayMismatch` (interface)
3538
301
 
3539
302
  ```ts
3540
- archived_count: number | null | undefined
3541
- archived_files: ArchivedFileInfo[] | null | undefined
3542
- archived_tool_calls: ArchivedToolCallInfo[] | null | undefined
3543
- blocks: ContentBlock[]
3544
- client_render_id: string | null | undefined
3545
- client_request_id: string | null | undefined
3546
- compaction_id: string | null | undefined
3547
- context_action: ContextAction | null | undefined
3548
- context_content: unknown
3549
- context_key: string | null | undefined
3550
- context_kind: string | null | undefined
3551
- context_name: string | null | undefined
3552
- context_order: number | null | undefined
3553
- context_revision: string | null | undefined
3554
- context_window: number | undefined
3555
- display_summary: string | null | undefined
3556
- display_title: string | null | undefined
3557
- duration_ms: number | null | undefined
3558
- failure_reason: string | null | undefined
3559
- fallback_applied: boolean | null | undefined
3560
- first_token_delivery_ms: number | null | undefined
3561
- first_token_ms: number | null | undefined
3562
- has_reported_timing: boolean | undefined
3563
- id: string
3564
- kind: "message" | "context" | "compaction" | undefined
3565
- loop_id: string
3566
- memory_refs: MemoryRef[] | null | undefined
3567
- model: string | null | undefined
3568
- parent_fork_tool_call_id: string | null | undefined
3569
- post_chat_followup: PostChatFollowup | null | undefined
3570
- role: "user" | "assistant" | "system"
3571
- saved_ratio: number | null | undefined
3572
- sequence: number
3573
- sources: ContextSourceInfo[] | null | undefined
3574
- started_at: string | null | undefined
3575
- status: "streaming" | "completed" | "paused" | "failed" | "interrupted"
3576
- stream_duration_ms: number | null | undefined
3577
- summary_full: string | null | undefined
3578
- summary_preview: string | null | undefined
3579
- tokens_after: number | null | undefined
3580
- tokens_before: number | null | undefined
3581
- tool_calls: ToolCallProjection[]
3582
- trigger: "auto" | "manual" | "forced_retry" | null | undefined
3583
- turn_id: string
3584
- usage: Record<string, unknown> | null | undefined
303
+ actualMessage: string
304
+ expectedMessage: string
305
+ resolve: (decision: "keep_replay" | "continue_replay") => void
3585
306
  ```
3586
307
 
3587
- ## `TypedSocket` (type)
308
+ ## `ReplayMismatchPrompt` (function)
3588
309
 
3589
310
  ```ts
3590
- export type TypedSocket = Socket<ServerToClientEvents, ClientToServerEvents>
311
+ ReplayMismatchPrompt: ({ mismatch, className }: ReplayMismatchPromptProps) => JSX.Element | null
3591
312
  ```
3592
313
 
3593
- ## `UploadFileEntry` (type)
314
+ ## `ReplayMismatchPromptProps` (interface)
3594
315
 
3595
316
  ```ts
3596
- export type UploadFileEntry = File | { file: File; name: string }
317
+ className: string | undefined
318
+ mismatch: ReplayMismatch | null
3597
319
  ```
3598
320
 
3599
- ## `UploadFilesOptions` (interface)
321
+ ## `ToolCallRenderer` (type)
3600
322
 
3601
323
  ```ts
3602
- onProgress: ((progress: UploadProgress) => void) | undefined
324
+ export type ToolCallRenderer = (info: ToolCallInfo) => ReactNode | null
3603
325
  ```
3604
326
 
3605
- ## `UploadProgress` (interface)
327
+ ## `ToolRendererProps` (interface)
3606
328
 
3607
329
  ```ts
3608
- loaded: number
3609
- percent: number | undefined
3610
- total: number | undefined
330
+ sessionId: string | undefined
331
+ toolCall: ToolCallInfo
3611
332
  ```
3612
333
 
3613
334
  ## `useAgentSession` (function)
@@ -3638,47 +359,6 @@ state: SessionState | null
3638
359
  useBladeClient: () => BladeClient
3639
360
  ```
3640
361
 
3641
- ## `useLlmChat` (function)
3642
-
3643
- ```ts
3644
- useLlmChat: (options: LlmChatOptions) => UseLlmChatResult
3645
- ```
3646
-
3647
- ## `UseLlmChatResult` (interface)
3648
-
3649
- ```ts
3650
- error: string | null
3651
- isStreaming: boolean
3652
- messages: ChatMessage[]
3653
- reset: () => void
3654
- send: (text: string) => Promise<boolean>
3655
- stop: () => void
3656
- ```
3657
-
3658
- ## `useMessagePin` (function)
3659
-
3660
- ```ts
3661
- useMessagePin: ({ targetKey, pinTarget, isStreaming, layoutKey, getScrollElement, getContentElement, getTargetElement, getTargetScrollTop, getSpacerHeight, setSpacerHeight, stopAutoScroll, scrollToBottom, margin, }: UseMessagePinOptions) => { release: () => void; isActive: () => boolean; }
3662
- ```
3663
-
3664
- ## `UseMessagePinOptions` (interface)
3665
-
3666
- ```ts
3667
- getContentElement: (() => HTMLElement | null) | undefined
3668
- getScrollElement: () => HTMLElement | null
3669
- getSpacerHeight: () => number
3670
- getTargetElement: () => HTMLElement | null
3671
- getTargetScrollTop: ((scroll: HTMLElement) => number | null) | undefined
3672
- isStreaming: boolean | undefined
3673
- layoutKey: string | undefined
3674
- margin: number | undefined
3675
- pinTarget: boolean
3676
- scrollToBottom: () => void
3677
- setSpacerHeight: (height: number) => void
3678
- stopAutoScroll: () => void
3679
- targetKey: string | null
3680
- ```
3681
-
3682
362
  ## `useReplay` (function)
3683
363
 
3684
364
  ```ts
@@ -3701,86 +381,9 @@ startReplay: (speed?: ReplaySpeed) => Promise<string>
3701
381
  unsupportedReason: string | null
3702
382
  ```
3703
383
 
3704
- ## `UserInfo` (interface)
3705
-
3706
- ```ts
3707
- auth_type: "casdoor"
3708
- avatar_url: string | null
3709
- display_name: string | null | undefined
3710
- id: string
3711
- is_admin: boolean | undefined
3712
- token: string
3713
- username: string
3714
- ```
3715
-
3716
384
  ## `UserMessageRendererProps` (interface)
3717
385
 
3718
386
  ```ts
3719
387
  message: ChatMessage
3720
388
  ```
3721
389
 
3722
- ## `useSessionPluginActivation` (function)
3723
-
3724
- ```ts
3725
- useSessionPluginActivation: ({ client, sessionId, onChange, }: { client: BladeClient; sessionId: string; onChange?: (plugin: SessionPluginActivation) => void; }) => UseSessionPluginActivationResult
3726
- ```
3727
-
3728
- ## `UseSessionPluginActivationResult` (interface)
3729
-
3730
- ```ts
3731
- busy: boolean
3732
- configuring: ConfiguringPlugin | null
3733
- editConfig: (item: PluginConnectorItem) => void
3734
- inFlight: Record<string, true>
3735
- items: PluginConnectorItem[]
3736
- listError: boolean
3737
- loading: boolean
3738
- mutationError: boolean
3739
- onConfigClose: () => void
3740
- onConfigSaved: (state: SessionPluginConfigState) => void
3741
- reload: () => void
3742
- retry: (item: PluginConnectorItem) => void
3743
- toggle: (item: PluginConnectorItem, next: boolean) => void
3744
- ```
3745
-
3746
- ## `useTurnNavigation` (function)
3747
-
3748
- ```ts
3749
- useTurnNavigation: ({ sessionId, getLoadedEntryElement, isEntryLoaded, locateEntry, cancelPendingLocate, loadTurnIndex, fallbackItems, revealEntry, beforeSeek, reloadKey, rewriteKey, }: TurnNavigationOptions) => TurnNavigationResult
3750
- ```
3751
-
3752
- ## `useTypewriterReveal` (function)
3753
-
3754
- ```ts
3755
- useTypewriterReveal: (targetText: string, isLive: boolean, resetKey: string | null) => UseTypewriterRevealResult
3756
- ```
3757
-
3758
- ## `UseTypewriterRevealResult` (interface)
3759
-
3760
- ```ts
3761
- displayedText: string
3762
- flushNow: () => void
3763
- isRevealing: boolean
3764
- ```
3765
-
3766
- ## `WhatIfQuote` (interface)
3767
-
3768
- ```ts
3769
- label: string
3770
- snapshot: string
3771
- stepNumber: number | null
3772
- ```
3773
-
3774
- ## `WhatIfUserBubble` (function)
3775
-
3776
- ```ts
3777
- WhatIfUserBubble: ({ parsed, onQuoteClick }: WhatIfUserBubbleProps) => JSX.Element
3778
- ```
3779
-
3780
- ## `WhatIfUserBubbleProps` (interface)
3781
-
3782
- ```ts
3783
- onQuoteClick: ((stepNumber: number) => void) | undefined
3784
- parsed: ParsedWhatIfPrompt
3785
- ```
3786
-