@blade-hq/agent-react 2610.0.0-beta.6 → 2610.0.0-beta.60

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 (57) hide show
  1. package/README.md +138 -3
  2. package/dist/chunk-G3PMV62Z.js +36 -0
  3. package/dist/{chunk-ZXXLY4RM.js → chunk-MAAMCOAU.js} +8 -32
  4. package/dist/{chunk-ZXXLY4RM.js.map → chunk-MAAMCOAU.js.map} +1 -1
  5. package/dist/components/AgentChat.d.ts +3 -0
  6. package/dist/components/AgentLoopBlock.d.ts +1 -4
  7. package/dist/components/AskUserQuestionBlock.d.ts +9 -0
  8. package/dist/components/AssistantTurnBlock.d.ts +20 -6
  9. package/dist/components/ChatInput.d.ts +8 -1
  10. package/dist/components/ChatSurface.d.ts +14 -2
  11. package/dist/components/ConnectionBanner.d.ts +1 -1
  12. package/dist/components/ConnectorPanel.d.ts +41 -0
  13. package/dist/components/ContextCard.d.ts +20 -0
  14. package/dist/components/MarkdownContent.d.ts +2 -0
  15. package/dist/components/McpAppCard.d.ts +14 -0
  16. package/dist/components/MessageList.d.ts +8 -1
  17. package/dist/components/PlanUpdateBlock.d.ts +31 -0
  18. package/dist/components/PluginConnectorList.d.ts +47 -0
  19. package/dist/components/PluginTriggerStack.d.ts +22 -0
  20. package/dist/components/SessionMemoryToggle.d.ts +19 -0
  21. package/dist/components/SessionPluginConfigDialog.d.ts +10 -0
  22. package/dist/components/SessionPluginConfigForm.d.ts +14 -0
  23. package/dist/components/SessionPluginIcon.d.ts +30 -0
  24. package/dist/components/SessionPluginSelector.d.ts +10 -0
  25. package/dist/components/SessionQueuePanel.d.ts +29 -0
  26. package/dist/components/ToolCallBlock.d.ts +4 -2
  27. package/dist/components/ToolUiCardView.d.ts +9 -0
  28. package/dist/components/UserMessageBubble.d.ts +1 -1
  29. package/dist/components/WhatIfUserBubble.d.ts +7 -0
  30. package/dist/components/connector-panel-types.d.ts +37 -0
  31. package/dist/components/display-utils.d.ts +10 -0
  32. package/dist/components/plugin-config-draft.d.ts +13 -0
  33. package/dist/components/plugin-config-schema.d.ts +6 -0
  34. package/dist/components/plugin-connector.d.ts +40 -0
  35. package/dist/components/use-session-plugin-activation.d.ts +40 -0
  36. package/dist/context.d.ts +1 -0
  37. package/dist/embed/entry.d.ts +47 -0
  38. package/dist/{highlighted-body-B3W2YXNL-YD7FAP6V.js → highlighted-body-B3W2YXNL-IASCZDV2.js} +3 -2
  39. package/dist/{highlighted-body-B3W2YXNL-YD7FAP6V.js.map → highlighted-body-B3W2YXNL-IASCZDV2.js.map} +1 -1
  40. package/dist/hooks/use-agent-session.d.ts +5 -0
  41. package/dist/hooks/use-message-pin.d.ts +28 -0
  42. package/dist/index.d.ts +41 -0
  43. package/dist/index.js +44547 -1616
  44. package/dist/index.js.map +1 -1
  45. package/dist/lib/agent-computer-command.d.ts +34 -0
  46. package/dist/lib/utils.d.ts +3 -1
  47. package/dist/lib/whatif-prompt.d.ts +18 -0
  48. package/dist/mermaid-3ZIDBTTL-BPVVWTVV.js +9 -0
  49. package/dist/mermaid-3ZIDBTTL-BPVVWTVV.js.map +1 -0
  50. package/dist/style.css +91 -1
  51. package/dist/style.full.css +92 -2
  52. package/dist/webapi-W3IB5DO4.js +2481 -0
  53. package/dist/webapi-W3IB5DO4.js.map +1 -0
  54. package/package.json +2 -2
  55. package/public-api.md +1285 -45
  56. package/dist/mermaid-3ZIDBTTL-N7YKJ3SM.js +0 -8
  57. /package/dist/{mermaid-3ZIDBTTL-N7YKJ3SM.js.map → chunk-G3PMV62Z.js.map} +0 -0
package/public-api.md CHANGED
@@ -3,7 +3,7 @@
3
3
  > 本文件由 `scripts/public-api-report.mjs` 生成,请勿手改。
4
4
  > 公共面变更时重新生成本报告,并同步更新 README 对应章节——CI 会校验两者。
5
5
 
6
- 170 个公开声明。
6
+ 321 个公开声明。
7
7
 
8
8
  ## `acceptedPostChatFollowupCompletesLatestRun` (function)
9
9
 
@@ -11,6 +11,34 @@
11
11
  acceptedPostChatFollowupCompletesLatestRun: (events: RawEvent[], updates: ProjectionUpdate[]) => boolean
12
12
  ```
13
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
+
14
42
  ## `ActiveCompactionState` (interface)
15
43
 
16
44
  ```ts
@@ -48,10 +76,17 @@ onSessionReady: ((session: AgentSession) => void) | undefined
48
76
  placeholder: string | undefined
49
77
  renderers: ChatViewRenderers | undefined
50
78
  sessionId: string | undefined
79
+ sessionPluginControls: ((sessionId: string) => ReactNode) | undefined
51
80
  slots: ChatViewSlots | undefined
52
81
  theme: "light" | "dark" | undefined
53
82
  ```
54
83
 
84
+ ## `AgentComputerLaunchOutcome` (type)
85
+
86
+ ```ts
87
+ export type AgentComputerLaunchOutcome = "pending" | "succeeded" | "failed" | "unknown"
88
+ ```
89
+
55
90
  ## `AgentLoopInfo` (interface)
56
91
 
57
92
  ```ts
@@ -63,26 +98,34 @@ toolCallId: string
63
98
  ## `AgentSession` (class)
64
99
 
65
100
  ```ts
66
- append: (text: string) => void
67
101
  attach: (label: string, data: unknown) => void
68
102
  attachApp: (options: AttachAppOptions) => Promise<AppCliAttachment | null>
103
+ cancelQueuedMessage: (itemId: string, expectedVersion?: number) => Promise<QueueOperationResult>
69
104
  compact: () => Promise<Record<string, unknown>>
70
105
  countFiles: (dirPath?: string) => Promise<number>
106
+ deliverQueuedMessage: (itemId: string, expectedVersion: number) => Promise<QueueOperationResult>
71
107
  dispose: () => void
72
108
  downloadFile: (filePath: string, downloadName?: string) => Promise<void>
73
109
  exitReplay: () => Promise<void>
74
110
  getState: () => SessionState
111
+ hasOlderHistory: boolean
75
112
  insertText: (text: string) => void
76
113
  isDisposed: boolean
77
114
  listDir: (dirPath?: string) => Promise<FileEntry[]>
115
+ loadOlderHistory: (options?: { beforeCommit?: () => void; }) => Promise<void>
78
116
  off: <K extends keyof AgentSessionEvents>(name: K, handler: (event: AgentSessionEvents[K]) => void) => void
79
117
  on: <K extends keyof AgentSessionEvents>(name: K, handler: (event: AgentSessionEvents[K]) => void) => () => void
80
118
  onCommand: (action: string, handler: CommandHandler) => () => void
119
+ queueMessage: (content: string) => Promise<QueueOperationResult>
120
+ refreshQueue: () => Promise<QueueOperationResult>
121
+ reorderQueuedMessages: (expectedRevision: number, orderedIds: string[]) => Promise<QueueOperationResult>
122
+ resumeQueue: () => Promise<QueueOperationResult>
81
123
  send: (content: MessageContent, options?: SendOptions) => Promise<boolean>
82
124
  sessionId: string
83
125
  setReplaySpeed: (speed: ReplaySpeed) => Promise<void>
84
126
  stop: () => Promise<Record<string, unknown>>
85
127
  subscribe: (listener: () => void) => () => void
128
+ updateQueuedMessage: (itemId: string, expectedVersion: number, content: string) => Promise<QueueOperationResult>
86
129
  ```
87
130
 
88
131
  ## `AgentSessionEventName` (type)
@@ -110,8 +153,8 @@ sandboxOom: { toolCallId: string; }
110
153
  sessionUpdated: { intent?: string; status?: SessionStatus; model?: string | null; boundSkillId?: string | null; replayState?: Record<string, unknown> | null; }
111
154
  taskListUpdated: { tasks: unknown[]; }
112
155
  toolCall: { toolCall: ToolCallInfo; turn: TurnProjection; }
113
- toolPreview: { toolCallId: string; type: "resource-html" | "resource-uri"; content: string; title: string; }
114
- toolResult: { toolCall: ToolCallInfo; turn: TurnProjection; }
156
+ toolPreview: { toolCallId: string; type: "resource-html" | "resource-uri"; content: string; title: string; mcpApp?: McpAppData; }
157
+ toolResult: { toolCall: ToolCallInfo; turn: TurnProjection; source: "live" | "bootstrap_replay" | "reconnect_replay"; }
115
158
  workspaceChanged: { filePath?: string; }
116
159
  ```
117
160
 
@@ -155,6 +198,7 @@ tool_name: string | null | undefined
155
198
 
156
199
  ```ts
157
200
  custom: Record<number, string>
201
+ note: string | undefined
158
202
  selections: Record<number, number[]>
159
203
  ```
160
204
 
@@ -174,6 +218,20 @@ cli: AppCliDefinition | undefined
174
218
  getContext: () => Record<string, unknown> | Promise<Record<string, unknown>>
175
219
  ```
176
220
 
221
+ ## `AuthBusyReconnect` (class)
222
+
223
+ ```ts
224
+ cancel: () => void
225
+ pending: boolean
226
+ schedule: (error: unknown, reconnect: () => void) => boolean
227
+ ```
228
+
229
+ ## `authBusyRetryDelayMs` (function)
230
+
231
+ ```ts
232
+ authBusyRetryDelayMs: (error: unknown) => number | null
233
+ ```
234
+
177
235
  ## `AuthResource` (class)
178
236
 
179
237
  ```ts
@@ -239,6 +297,8 @@ statusText: string
239
297
  auth: AuthResource
240
298
  blob: (method: HttpMethod, path: string) => Promise<Blob>
241
299
  buildAuthedUrl: (path: string) => string
300
+ chatGroups: ChatGroupsResource
301
+ computers: ComputersResource
242
302
  fetch: (method: HttpMethod, path: string, init?: BladeFetchInit, isRetry?: boolean) => Promise<Response>
243
303
  formData: (method: HttpMethod, path: string, form: FormData, options?: { expectOk?: boolean; onUploadProgress?: (progress: UploadProgress) => void; }) => Promise<Response>
244
304
  hasToken: () => boolean
@@ -251,10 +311,12 @@ logoutToken: () => void
251
311
  models: ModelsResource
252
312
  onSocketReplaced: (listener: () => void) => () => void
253
313
  options: BladeClientOptions
314
+ plugins: PluginsResource
254
315
  responseFromInit: (path: string, init?: RequestInit) => Promise<Response>
255
316
  sessions: SessionsResource
256
317
  setBaseUrl: (baseUrl: string) => void
257
318
  setToken: (token: string | null) => void
319
+ siteVisits: SiteVisitsResource
258
320
  socket: () => TypedSocket
259
321
  text: (method: HttpMethod, path: string) => Promise<string>
260
322
  textFromInit: (path: string, init?: RequestInit) => Promise<string>
@@ -268,7 +330,6 @@ baseUrl: string
268
330
  fetchImpl: { (input: RequestInfo | URL, init?: RequestInit): Promise<Response>; (input: string | URL | Request, init?: RequestInit): Promise<Response>; } | undefined
269
331
  onRefreshSuccess: (() => void | Promise<void>) | undefined
270
332
  socketToken: string | (() => string | null | undefined) | undefined
271
- streamTokens: boolean | undefined
272
333
  token: string | (() => string | null | undefined) | undefined
273
334
  tokenStorage: TokenStorageMode | undefined
274
335
  ```
@@ -292,6 +353,42 @@ client: BladeClient
292
353
  buildMessageContent: (text: string, attachments: Array<{ kind: "file"; name: string; uploadedPath?: string; textContent?: string | null; mimeType?: string; }>) => MessageContent
293
354
  ```
294
355
 
356
+ ## `buildToolUiCardKey` (function)
357
+
358
+ ```ts
359
+ buildToolUiCardKey: (toolCallId: string, type: ToolUiCardContentType, content: string) => string
360
+ ```
361
+
362
+ ## `canCancelQueuedMessage` (function)
363
+
364
+ ```ts
365
+ canCancelQueuedMessage: (item: QueuedMessage) => boolean
366
+ ```
367
+
368
+ ## `canDeliverQueuedMessage` (function)
369
+
370
+ ```ts
371
+ canDeliverQueuedMessage: (item: QueuedMessage) => boolean
372
+ ```
373
+
374
+ ## `canEditQueuedMessage` (function)
375
+
376
+ ```ts
377
+ canEditQueuedMessage: (item: QueuedMessage) => boolean
378
+ ```
379
+
380
+ ## `canToggleComputer` (function)
381
+
382
+ ```ts
383
+ canToggleComputer: (computer: SessionComputer) => boolean
384
+ ```
385
+
386
+ ## `catalogToConnectorItems` (function)
387
+
388
+ ```ts
389
+ catalogToConnectorItems: (catalog: PluginCatalogEntry[]) => PluginConnectorItem[]
390
+ ```
391
+
295
392
  ## `ChatCompletionTool` (interface)
296
393
 
297
394
  ```ts
@@ -299,12 +396,39 @@ function: { name: string; description?: string; parameters?: Record<string, unkn
299
396
  type: "function"
300
397
  ```
301
398
 
399
+ ## `chatErrorForDisplay` (function)
400
+
401
+ ```ts
402
+ chatErrorForDisplay: (message: string, developer?: boolean) => string
403
+ ```
404
+
405
+ ## `ChatGroup` (interface)
406
+
407
+ ```ts
408
+ created_at: string
409
+ id: string
410
+ instructions: string
411
+ name: string
412
+ session_count: number
413
+ updated_at: string
414
+ ```
415
+
416
+ ## `ChatGroupsResource` (class)
417
+
418
+ ```ts
419
+ create: (payload: { name: string; instructions?: string; }) => Promise<ChatGroup>
420
+ delete: (groupId: string) => Promise<{ deleted: boolean; deleted_sessions: number; }>
421
+ list: () => Promise<ChatGroup[]>
422
+ update: (groupId: string, payload: { name?: string; instructions?: string; }) => Promise<ChatGroup>
423
+ ```
424
+
302
425
  ## `ChatMessage` (interface)
303
426
 
304
427
  ```ts
305
428
  blocks: ContentBlock[] | undefined
306
429
  compaction: CompactionInfo | undefined
307
430
  content: MessageContent
431
+ context: ContextProjectionData | undefined
308
432
  duration_ms: number | undefined
309
433
  entry_id: string | undefined
310
434
  kind: string | undefined
@@ -312,6 +436,7 @@ loop_name: string | undefined
312
436
  memory_refs: MemoryRefInfo[] | undefined
313
437
  parent_id: string | null | undefined
314
438
  reasoning: string | undefined
439
+ render_id: string | undefined
315
440
  role: "error" | "user" | "assistant" | "tool"
316
441
  status: "streaming" | "completed" | "paused" | "failed" | "interrupted" | undefined
317
442
  timestamp: string | undefined
@@ -348,6 +473,7 @@ onSessionReady: ((session: AgentSession) => void) | undefined
348
473
  placeholder: string | undefined
349
474
  renderers: ChatViewRenderers | undefined
350
475
  sessionId: string | undefined
476
+ sessionPluginControls: ((sessionId: string) => ReactNode) | undefined
351
477
  slots: ChatViewSlots | undefined
352
478
  theme: "light" | "dark" | undefined
353
479
  ```
@@ -366,6 +492,12 @@ footer: ReactNode
366
492
  header: ReactNode
367
493
  ```
368
494
 
495
+ ## `classifyAgentComputerLaunchOutcome` (function)
496
+
497
+ ```ts
498
+ classifyAgentComputerLaunchOutcome: (toolCall: { status?: string; result?: unknown; }) => AgentComputerLaunchOutcome
499
+ ```
500
+
369
501
  ## `ClientProjectionBuilder` (class)
370
502
 
371
503
  ```ts
@@ -375,6 +507,24 @@ reset: () => void
375
507
  seedSequence: (maxSeq: number) => void
376
508
  ```
377
509
 
510
+ ## `collectInlineToolUiCards` (function)
511
+
512
+ ```ts
513
+ collectInlineToolUiCards: (messages: ChatMessage[]) => InlineToolUiCardEntry[]
514
+ ```
515
+
516
+ ## `collectMemoryRefs` (function)
517
+
518
+ ```ts
519
+ collectMemoryRefs: (messages: ChatMessage[]) => MemoryRefInfo[]
520
+ ```
521
+
522
+ ## `collectPreviewToolUiCards` (function)
523
+
524
+ ```ts
525
+ collectPreviewToolUiCards: (messages: ChatMessage[]) => PreviewToolUiCardEntry[]
526
+ ```
527
+
378
528
  ## `CommandEnvelope` (interface)
379
529
 
380
530
  ```ts
@@ -407,6 +557,57 @@ tokens_before: number | null | undefined
407
557
  trigger: "auto" | "manual" | "forced_retry" | null | undefined
408
558
  ```
409
559
 
560
+ ## `computerDaemonVersion` (function)
561
+
562
+ ```ts
563
+ computerDaemonVersion: (computer: SessionComputer) => string
564
+ ```
565
+
566
+ ## `computerOS` (function)
567
+
568
+ ```ts
569
+ computerOS: (computer: SessionComputer) => ComputerOS
570
+ ```
571
+
572
+ ## `ComputerOS` (type)
573
+
574
+ ```ts
575
+ export type ComputerOS = "macos" | "windows" | "linux" | "unknown"
576
+ ```
577
+
578
+ ## `computerPlatformLabel` (function)
579
+
580
+ ```ts
581
+ computerPlatformLabel: (computer: SessionComputer) => string
582
+ ```
583
+
584
+ ## `ComputersResource` (class)
585
+
586
+ ```ts
587
+ list: (sessionId: string) => Promise<SessionComputerList>
588
+ listAccount: () => Promise<AccountComputerList>
589
+ setEnabled: (sessionId: string, computer: string, enabled: boolean) => Promise<SessionComputer>
590
+ ```
591
+
592
+ ## `computerState` (function)
593
+
594
+ ```ts
595
+ computerState: (computer: SessionComputer) => ComputerState
596
+ ```
597
+
598
+ ## `ComputerState` (type)
599
+
600
+ ```ts
601
+ export type ComputerState = "primary" | "enabled" | "offline" | "idle"
602
+ ```
603
+
604
+ ## `ConfiguringPlugin` (interface)
605
+
606
+ ```ts
607
+ name: string
608
+ pendingActivation: boolean
609
+ ```
610
+
410
611
  ## `connectEmbedded` (function)
411
612
 
412
613
  ```ts
@@ -419,10 +620,33 @@ connectEmbedded: (options: EmbeddedChatOptions) => EmbeddedChat
419
620
  export type ConnectionStatus = "connecting" | "connected" | "reconnecting" | "disconnected"
420
621
  ```
421
622
 
623
+ ## `ConnectorPanel` (function)
624
+
625
+ ```ts
626
+ ConnectorPanel: ({ client, sessionId, pendingPlugins, onPendingPluginsChange, pendingDisabledReason, onPluginsChanged, onSelectedChange, renderComputerSection, renderExternalAccounts, renderFooterActions, className, }: ConnectorPanelProps) => JSX.Element
627
+ ```
628
+
629
+ ## `ConnectorPanelProps` (interface)
630
+
631
+ ```ts
632
+ className: string | undefined
633
+ client: BladeClient
634
+ onPendingPluginsChange: ((next: PluginConnectorSelection[]) => void) | undefined
635
+ onPluginsChanged: ((plugin: SessionPluginActivation) => void) | undefined
636
+ onSelectedChange: ((items: PluginConnectorItem[]) => void) | undefined
637
+ pendingDisabledReason: string | null | undefined
638
+ pendingPlugins: PluginConnectorSelection[] | undefined
639
+ renderComputerSection: ((query: string) => ReactNode) | undefined
640
+ renderExternalAccounts: ((query: string) => ReactNode) | undefined
641
+ renderFooterActions: (() => ReactNode) | undefined
642
+ sessionId: string | null
643
+ ```
644
+
422
645
  ## `ContentBlock` (interface)
423
646
 
424
647
  ```ts
425
648
  content: unknown
649
+ delivery_id: string | null | undefined
426
650
  display_name: string | null | undefined
427
651
  tool_call_id: string | null | undefined
428
652
  tool_name: string | null | undefined
@@ -435,6 +659,95 @@ type: "text" | "thinking" | "tool_use" | "tool_result" | "tool_ui" | "tool_bridg
435
659
  contentPreview: (content: MessageContent, maxLen?: number) => string
436
660
  ```
437
661
 
662
+ ## `ContextAction` (type)
663
+
664
+ ```ts
665
+ export type ContextAction = "published" | "retained" | "removed"
666
+ ```
667
+
668
+ ## `ContextCard` (function)
669
+
670
+ ```ts
671
+ ContextCard: ({ context, className }: ContextCardProps) => JSX.Element
672
+ ```
673
+
674
+ ## `ContextCardProps` (interface)
675
+
676
+ ```ts
677
+ className: string | undefined
678
+ context: ContextProjectionData
679
+ ```
680
+
681
+ ## `ContextDisplayState` (interface)
682
+
683
+ ```ts
684
+ detail: string
685
+ isRemoved: boolean
686
+ summary: string
687
+ title: string
688
+ ```
689
+
690
+ ## `ContextGroupCard` (function)
691
+
692
+ ```ts
693
+ ContextGroupCard: ({ contexts, className }: ContextGroupCardProps) => JSX.Element | null
694
+ ```
695
+
696
+ ## `ContextGroupCardProps` (interface)
697
+
698
+ ```ts
699
+ className: string | undefined
700
+ contexts: readonly ContextProjectionData[]
701
+ ```
702
+
703
+ ## `ContextGroupDisplayState` (interface)
704
+
705
+ ```ts
706
+ count: number
707
+ summary: string
708
+ title: string
709
+ ```
710
+
711
+ ## `contextProjectionData` (function)
712
+
713
+ ```ts
714
+ contextProjectionData: (fields: ContextProjectionFields) => ContextProjectionData | null
715
+ ```
716
+
717
+ ## `ContextProjectionData` (interface)
718
+
719
+ ```ts
720
+ context_action: ContextAction
721
+ context_key: string
722
+ context_kind: string
723
+ context_name: string
724
+ context_order: number
725
+ context_revision: string
726
+ display_summary: string | null | undefined
727
+ display_title: string | null | undefined
728
+ sources: ContextSourceInfo[]
729
+ ```
730
+
731
+ ## `ContextProjectionFields` (interface)
732
+
733
+ ```ts
734
+ context_action: ContextAction | null | undefined
735
+ context_key: string | null | undefined
736
+ context_kind: string | null | undefined
737
+ context_name: string | null | undefined
738
+ context_order: number | null | undefined
739
+ context_revision: string | null | undefined
740
+ display_summary: string | null | undefined
741
+ display_title: string | null | undefined
742
+ sources: ContextSourceInfo[] | null | undefined
743
+ ```
744
+
745
+ ## `ContextSourceInfo` (type)
746
+
747
+ ```ts
748
+ export type ContextSourceInfo = Record<string, unknown>
749
+ ```
750
+
438
751
  ## `createInitialSessionState` (function)
439
752
 
440
753
  ```ts
@@ -444,7 +757,9 @@ createInitialSessionState: (sessionId: string) => SessionState
444
757
  ## `CreateSessionRequest` (interface)
445
758
 
446
759
  ```ts
760
+ agent_runtime_id: string | null | undefined
447
761
  biz_role_id: string | null | undefined
762
+ chat_group_id: string | null | undefined
448
763
  compaction_ratio: number | null | undefined
449
764
  daemon_id: string | null | undefined
450
765
  disable_tools: string[] | null | undefined
@@ -454,7 +769,7 @@ intent: string | undefined
454
769
  memory_enabled: boolean | null | undefined
455
770
  model: string | null | undefined
456
771
  primary_skill_id: string | null | undefined
457
- runtime_type: "sandbox" | "daemon" | null | undefined
772
+ runtime_type: "sandbox" | "daemon" | "native" | null | undefined
458
773
  session_solution_asset_id: string | null | undefined
459
774
  solution_id: string | undefined
460
775
  solution_ref: PublishedSolutionRef | undefined
@@ -476,6 +791,12 @@ path: string | undefined
476
791
  token: string | (() => string | null | undefined) | undefined
477
792
  ```
478
793
 
794
+ ## `CurrentPlanPanel` (function)
795
+
796
+ ```ts
797
+ CurrentPlanPanel: ({ messages, running, revealRevision, sessionId, className, }: { messages: ChatMessage[]; running?: boolean; revealRevision?: number; sessionId?: string; className?: string; }) => JSX.Element | null
798
+ ```
799
+
479
800
  ## `DEFAULT_REPLAY_SPEED` (const)
480
801
 
481
802
  ```ts
@@ -499,6 +820,18 @@ allowedOrigins: string[]
499
820
  iframe: HTMLIFrameElement | undefined
500
821
  ```
501
822
 
823
+ ## `EMPTY_PLATFORM_ENDPOINTS` (const)
824
+
825
+ ```ts
826
+ EMPTY_PLATFORM_ENDPOINTS: PlatformEndpoints
827
+ ```
828
+
829
+ ## `EMPTY_SESSION_QUEUE` (const)
830
+
831
+ ```ts
832
+ EMPTY_SESSION_QUEUE: SessionQueueSnapshot
833
+ ```
834
+
502
835
  ## `ExchangeCodeParams` (interface)
503
836
 
504
837
  ```ts
@@ -547,6 +880,12 @@ path: string
547
880
  tags: string[] | undefined
548
881
  ```
549
882
 
883
+ ## `filterConnectorItems` (function)
884
+
885
+ ```ts
886
+ filterConnectorItems: (items: PluginConnectorItem[], query: string) => PluginConnectorItem[]
887
+ ```
888
+
550
889
  ## `FinalArtifact` (interface)
551
890
 
552
891
  ```ts
@@ -600,6 +939,18 @@ export type FollowupInteractionEvent =
600
939
  artifactKind: "file"
601
940
  ```
602
941
 
942
+ ## `getContextDisplayState` (function)
943
+
944
+ ```ts
945
+ getContextDisplayState: (context: ContextProjectionData) => ContextDisplayState
946
+ ```
947
+
948
+ ## `getContextGroupDisplayState` (function)
949
+
950
+ ```ts
951
+ getContextGroupDisplayState: (contexts: readonly ContextProjectionData[]) => ContextGroupDisplayState
952
+ ```
953
+
603
954
  ## `getFileParts` (function)
604
955
 
605
956
  ```ts
@@ -612,6 +963,12 @@ getFileParts: (content: MessageContent) => FileContentPart[]
612
963
  getImageParts: (content: MessageContent) => ImageUrlContentPart[]
613
964
  ```
614
965
 
966
+ ## `getPlanUpdateDisplayState` (function)
967
+
968
+ ```ts
969
+ getPlanUpdateDisplayState: (messages: ChatMessage[]) => PlanUpdateDisplayState
970
+ ```
971
+
615
972
  ## `getTextContent` (function)
616
973
 
617
974
  ```ts
@@ -654,12 +1011,24 @@ export type GlobalSearchResultItem =
654
1011
  | GlobalSearchFileResult
655
1012
  ```
656
1013
 
1014
+ ## `groupAdjacentContextRuns` (function)
1015
+
1016
+ ```ts
1017
+ groupAdjacentContextRuns: (kinds: readonly (string | null)[]) => readonly (readonly number[])[]
1018
+ ```
1019
+
657
1020
  ## `groupMessagesByLoop` (function)
658
1021
 
659
1022
  ```ts
660
1023
  groupMessagesByLoop: (messages: ChatMessage[]) => MessageGroup[]
661
1024
  ```
662
1025
 
1026
+ ## `hasChatRunEvent` (function)
1027
+
1028
+ ```ts
1029
+ hasChatRunEvent: (events: RawEvent[]) => boolean
1030
+ ```
1031
+
663
1032
  ## `HeadlessResource` (class)
664
1033
 
665
1034
  ```ts
@@ -668,6 +1037,15 @@ runInSession: { <T = unknown>(sessionId: string, prompt: string, options: Headle
668
1037
  runWithSession: { <T = unknown>(prompt: string, options: HeadlessRunOptions & { schema: JsonSchemaObject; }): Promise<HeadlessRunInSessionResult<T>>; (prompt: string, options?: HeadlessRunOptions): Promise<HeadlessRunInSessionResult<string>>; }
669
1038
  ```
670
1039
 
1040
+ ## `HistoricalCommand` (interface)
1041
+
1042
+ ```ts
1043
+ action: string
1044
+ deliveryId: string
1045
+ payload: unknown
1046
+ toolCallId: string | undefined
1047
+ ```
1048
+
671
1049
  ## `ImageUrlContentPart` (interface)
672
1050
 
673
1051
  ```ts
@@ -696,6 +1074,32 @@ direction: "host-to-agent"
696
1074
  payload: unknown
697
1075
  ```
698
1076
 
1077
+ ## `InlineToolUiCardEntry` (interface)
1078
+
1079
+ ```ts
1080
+ card: ToolUiCard
1081
+ key: string
1082
+ toolCallId: string
1083
+ ```
1084
+
1085
+ ## `isAgentComputerCommand` (function)
1086
+
1087
+ ```ts
1088
+ isAgentComputerCommand: (command: string) => boolean
1089
+ ```
1090
+
1091
+ ## `isAgentComputerToolCall` (function)
1092
+
1093
+ ```ts
1094
+ isAgentComputerToolCall: (argumentsJson: string | null | undefined) => boolean
1095
+ ```
1096
+
1097
+ ## `isAppDevToolUiCard` (function)
1098
+
1099
+ ```ts
1100
+ isAppDevToolUiCard: (card: ToolUiCard, isAppDev: boolean) => boolean
1101
+ ```
1102
+
699
1103
  ## `isCommandEnvelope` (function)
700
1104
 
701
1105
  ```ts
@@ -705,7 +1109,7 @@ isCommandEnvelope: (value: unknown) => value is CommandEnvelope
705
1109
  ## `isHiddenInternalMessage` (function)
706
1110
 
707
1111
  ```ts
708
- isHiddenInternalMessage: (message: Pick<ChatMessage, "role" | "content">) => boolean
1112
+ isHiddenInternalMessage: (message: Pick<ChatMessage, "role" | "content">, options?: { includeLegacyForkContext?: boolean; }) => boolean
709
1113
  ```
710
1114
 
711
1115
  ## `isInboundEnvelope` (function)
@@ -714,6 +1118,36 @@ isHiddenInternalMessage: (message: Pick<ChatMessage, "role" | "content">) => boo
714
1118
  isInboundEnvelope: (value: unknown) => value is InboundEnvelope
715
1119
  ```
716
1120
 
1121
+ ## `isInternalStatusToolUiCard` (function)
1122
+
1123
+ ```ts
1124
+ isInternalStatusToolUiCard: (card: { title?: string | null; } | null) => boolean
1125
+ ```
1126
+
1127
+ ## `isMcpAppData` (function)
1128
+
1129
+ ```ts
1130
+ isMcpAppData: (value: unknown) => value is McpAppData
1131
+ ```
1132
+
1133
+ ## `isPlanUpdateTool` (function)
1134
+
1135
+ ```ts
1136
+ isPlanUpdateTool: (toolCall: Pick<ToolCallInfo, "name">) => boolean
1137
+ ```
1138
+
1139
+ ## `isSessionQueueSnapshot` (function)
1140
+
1141
+ ```ts
1142
+ isSessionQueueSnapshot: (value: unknown) => value is SessionQueueSnapshot
1143
+ ```
1144
+
1145
+ ## `isToolUiCard` (function)
1146
+
1147
+ ```ts
1148
+ isToolUiCard: (value: unknown) => value is ToolUiCard
1149
+ ```
1150
+
717
1151
  ## `latestPostChatFollowup` (function)
718
1152
 
719
1153
  ```ts
@@ -736,6 +1170,13 @@ export enum LayoutType {
736
1170
  }
737
1171
  ```
738
1172
 
1173
+ ## `LiveRevisionState` (interface)
1174
+
1175
+ ```ts
1176
+ byTurnId: ReadonlyMap<string, number>
1177
+ current: number
1178
+ ```
1179
+
739
1180
  ## `LlmAdvancedSettings` (interface)
740
1181
 
741
1182
  ```ts
@@ -818,6 +1259,20 @@ id: string
818
1259
  name: string
819
1260
  ```
820
1261
 
1262
+ ## `loadPlatformEndpoints` (function)
1263
+
1264
+ ```ts
1265
+ loadPlatformEndpoints: (options?: LoadPlatformEndpointsOptions) => Promise<PlatformEndpoints>
1266
+ ```
1267
+
1268
+ ## `LoadPlatformEndpointsOptions` (interface)
1269
+
1270
+ ```ts
1271
+ baseUrl: string | undefined
1272
+ fetchImpl: { (input: RequestInfo | URL, init?: RequestInit): Promise<Response>; (input: string | URL | Request, init?: RequestInit): Promise<Response>; } | undefined
1273
+ timeoutMs: number | undefined
1274
+ ```
1275
+
821
1276
  ## `LoginOptions` (interface)
822
1277
 
823
1278
  ```ts
@@ -848,6 +1303,64 @@ mode: "streaming" | "static" | undefined
848
1303
  sessionId: string | undefined
849
1304
  ```
850
1305
 
1306
+ ## `McpAppArchive` (interface)
1307
+
1308
+ ```ts
1309
+ html: string
1310
+ mimeType: string
1311
+ plugin: string
1312
+ previousToolInput: Record<string, unknown> | undefined
1313
+ previousToolResult: Record<string, unknown> | undefined
1314
+ resourceMeta: Record<string, unknown>
1315
+ resourceUri: string
1316
+ sourceId: string
1317
+ toolInput: Record<string, unknown>
1318
+ toolResult: Record<string, unknown>
1319
+ ```
1320
+
1321
+ ## `McpAppCard` (function)
1322
+
1323
+ ```ts
1324
+ McpAppCard: ({ sessionId, sourceId, client: suppliedClient, onMessage: suppliedOnMessage }: { sessionId: string; sourceId: string; client?: BladeClient; onMessage?: (message: McpAppMessage) => void; }) => JSX.Element
1325
+ ```
1326
+
1327
+ ## `McpAppContextState` (interface)
1328
+
1329
+ ```ts
1330
+ content: string
1331
+ plugin: string | null
1332
+ revision: string
1333
+ server_alias: string | null
1334
+ ```
1335
+
1336
+ ## `McpAppContextUpdate` (interface)
1337
+
1338
+ ```ts
1339
+ content: string
1340
+ expected_revision: string | null
1341
+ request_id: string
1342
+ ```
1343
+
1344
+ ## `McpAppData` (interface)
1345
+
1346
+ ```ts
1347
+ mimeType: string
1348
+ resourceMeta: Record<string, unknown>
1349
+ resourceUri: string
1350
+ sourceId: string
1351
+ toolInput: Record<string, unknown>
1352
+ toolResult: Record<string, unknown>
1353
+ ```
1354
+
1355
+ ## `McpAppMessage` (interface)
1356
+
1357
+ ```ts
1358
+ content: string
1359
+ label: string
1360
+ sessionId: string
1361
+ sourceId: string
1362
+ ```
1363
+
851
1364
  ## `MemoryRef` (interface)
852
1365
 
853
1366
  ```ts
@@ -864,6 +1377,18 @@ id: number
864
1377
  skill_name: string | null | undefined
865
1378
  ```
866
1379
 
1380
+ ## `MemoryRefsHint` (function)
1381
+
1382
+ ```ts
1383
+ MemoryRefsHint: ({ refs }: { refs: MemoryRefInfo[]; }) => JSX.Element
1384
+ ```
1385
+
1386
+ ## `mergeConnectorItems` (function)
1387
+
1388
+ ```ts
1389
+ mergeConnectorItems: (sessionPlugins: SessionPlugin[], catalog: PluginCatalogEntry[] | null) => PluginConnectorItem[]
1390
+ ```
1391
+
867
1392
  ## `MessageContent` (type)
868
1393
 
869
1394
  ```ts
@@ -889,6 +1414,8 @@ baseUrl: string | undefined
889
1414
  default: string
890
1415
  defaultServiceModel: string | undefined
891
1416
  models: ModelOption[]
1417
+ unavailableModelIds: string[] | undefined
1418
+ unavailableProviderIds: string[] | undefined
892
1419
  ```
893
1420
 
894
1421
  ## `ModelOption` (interface)
@@ -905,6 +1432,12 @@ serviceModelId: string | undefined
905
1432
  list: () => Promise<ModelCatalog>
906
1433
  ```
907
1434
 
1435
+ ## `normalizeAdjacentUrlFormatting` (function)
1436
+
1437
+ ```ts
1438
+ normalizeAdjacentUrlFormatting: (value: string) => string
1439
+ ```
1440
+
908
1441
  ## `normalizeMessageContent` (function)
909
1442
 
910
1443
  ```ts
@@ -935,6 +1468,32 @@ content: string
935
1468
  label: string
936
1469
  ```
937
1470
 
1471
+ ## `ParsedWhatIfPrompt` (interface)
1472
+
1473
+ ```ts
1474
+ fromStep: number | null
1475
+ quotes: WhatIfQuote[]
1476
+ userText: string
1477
+ ```
1478
+
1479
+ ## `parsePlanUpdate` (function)
1480
+
1481
+ ```ts
1482
+ parsePlanUpdate: (argumentsJson: string) => PlanUpdateData | null
1483
+ ```
1484
+
1485
+ ## `parseQueueAck` (function)
1486
+
1487
+ ```ts
1488
+ parseQueueAck: (response: unknown, fallbackSessionId: string) => QueueOperationResult
1489
+ ```
1490
+
1491
+ ## `parseWhatIfPrompt` (function)
1492
+
1493
+ ```ts
1494
+ parseWhatIfPrompt: (text: string) => ParsedWhatIfPrompt | null
1495
+ ```
1496
+
938
1497
  ## `PatchEnvelope` (interface)
939
1498
 
940
1499
  ```ts
@@ -945,6 +1504,146 @@ sequence: number
945
1504
  turn_id: string
946
1505
  ```
947
1506
 
1507
+ ## `pickCurrentPlanStep` (function)
1508
+
1509
+ ```ts
1510
+ pickCurrentPlanStep: (plan: PlanUpdateData["plan"]) => PlanUpdateData["plan"][number] | null
1511
+ ```
1512
+
1513
+ ## `PLAN_AUTO_COLLAPSE_MS` (const)
1514
+
1515
+ ```ts
1516
+ PLAN_AUTO_COLLAPSE_MS: 5000
1517
+ ```
1518
+
1519
+ ## `PlanStepStatus` (type)
1520
+
1521
+ ```ts
1522
+ export type PlanStepStatus = "pending" | "in_progress" | "completed"
1523
+ ```
1524
+
1525
+ ## `PlanUpdateBlock` (function)
1526
+
1527
+ ```ts
1528
+ PlanUpdateBlock: ({ toolCall, running, autoReveal, }: { toolCall: ToolCallInfo; running?: boolean; autoReveal?: boolean; }) => JSX.Element | null
1529
+ ```
1530
+
1531
+ ## `PlanUpdateData` (interface)
1532
+
1533
+ ```ts
1534
+ plan: { step: string; status: PlanStepStatus; }[]
1535
+ ```
1536
+
1537
+ ## `PlanUpdateDisplayState` (interface)
1538
+
1539
+ ```ts
1540
+ current: ToolCallInfo | null
1541
+ updating: boolean
1542
+ ```
1543
+
1544
+ ## `PlatformEndpoints` (interface)
1545
+
1546
+ ```ts
1547
+ services: Partial<Record<"agent" | "os" | "hub" | "oauth" | "llmGateway" | "gitea" | "tile", string>>
1548
+ ```
1549
+
1550
+ ## `PlatformServiceName` (type)
1551
+
1552
+ ```ts
1553
+ export type PlatformServiceName = (typeof PLATFORM_SERVICE_NAMES)[number]
1554
+ ```
1555
+
1556
+ ## `PluginCatalogEntry` (interface)
1557
+
1558
+ ```ts
1559
+ display_name: string | null
1560
+ icon: string | null
1561
+ installed: boolean
1562
+ name: string
1563
+ ```
1564
+
1565
+ ## `PluginConnectorItem` (interface)
1566
+
1567
+ ```ts
1568
+ active: boolean
1569
+ config: SessionPluginConfigSummary | undefined
1570
+ display_name: string | null
1571
+ icon: string | null
1572
+ iconSource: "account" | "session"
1573
+ installed: boolean | null
1574
+ name: string
1575
+ projected: boolean
1576
+ reason: string | null | undefined
1577
+ status: string
1578
+ ```
1579
+
1580
+ ## `PluginConnectorList` (function)
1581
+
1582
+ ```ts
1583
+ PluginConnectorList: ({ client, sessionId, items, inFlight, busy, mutationError, onToggle, onRetry, onEditConfig, configuring, onConfigSaved, onConfigClose, disabledReason, unavailableText, emptyText, draft, }: PluginConnectorListProps) => JSX.Element
1584
+ ```
1585
+
1586
+ ## `PluginConnectorListProps` (interface)
1587
+
1588
+ ```ts
1589
+ busy: boolean
1590
+ client: BladeClient
1591
+ configuring: ConfiguringPlugin | null
1592
+ disabledReason: string | null | undefined
1593
+ draft: boolean | undefined
1594
+ emptyText: string
1595
+ inFlight: Record<string, true>
1596
+ items: PluginConnectorItem[]
1597
+ mutationError: boolean
1598
+ onConfigClose: () => void
1599
+ onConfigSaved: (state: SessionPluginConfigState) => void
1600
+ onEditConfig: (item: PluginConnectorItem) => void
1601
+ onRetry: (item: PluginConnectorItem) => void
1602
+ onToggle: (item: PluginConnectorItem, next: boolean) => void
1603
+ sessionId: string | null
1604
+ unavailableText: string | null | undefined
1605
+ ```
1606
+
1607
+ ## `PluginConnectorSelection` (interface)
1608
+
1609
+ ```ts
1610
+ displayName: string | null
1611
+ icon: string | null
1612
+ iconSource: "account" | "session"
1613
+ name: string
1614
+ ```
1615
+
1616
+ ## `PluginsResource` (class)
1617
+
1618
+ ```ts
1619
+ catalog: (init?: RequestInit) => Promise<{ plugins: PluginCatalogEntry[]; }>
1620
+ fetchIcon: (name: string) => Promise<Blob>
1621
+ iconUrl: (name: string) => string
1622
+ ```
1623
+
1624
+ ## `PluginTriggerStack` (function)
1625
+
1626
+ ```ts
1627
+ PluginTriggerStack: ({ client, sessionId, summary, className }: PluginTriggerStackProps) => JSX.Element | null
1628
+ ```
1629
+
1630
+ ## `PluginTriggerStackProps` (interface)
1631
+
1632
+ ```ts
1633
+ className: string | undefined
1634
+ client: BladeClient
1635
+ sessionId: string | null
1636
+ summary: TriggerSummary
1637
+ ```
1638
+
1639
+ ## `PollingBackoff` (class)
1640
+
1641
+ ```ts
1642
+ failed: (error: unknown) => void
1643
+ reset: () => void
1644
+ waitMs: () => number | false
1645
+ ```
1646
+
948
1647
  ## `PostChatFollowup` (interface)
949
1648
 
950
1649
  ```ts
@@ -956,65 +1655,152 @@ recaption: string | undefined
956
1655
  suggestions: string[]
957
1656
  ```
958
1657
 
959
- ## `PreparedSolution` (interface)
1658
+ ## `PreparedSolution` (interface)
1659
+
1660
+ ```ts
1661
+ assetId: string
1662
+ bizRoleId: string | undefined
1663
+ expiresAt: string
1664
+ kind: "prepared"
1665
+ roles: string[]
1666
+ solutionId: string
1667
+ ```
1668
+
1669
+ ## `PreparedSolutionAsset` (interface)
1670
+
1671
+ ```ts
1672
+ assetId: string
1673
+ bizRoleId: string | undefined
1674
+ kind: "prepared"
1675
+ ```
1676
+
1677
+ ## `prependOlder` (function)
1678
+
1679
+ ```ts
1680
+ prependOlder: (current: TurnProjection[], page: TurnProjection[]) => TurnProjection[]
1681
+ ```
1682
+
1683
+ ## `PreviewToolUiCardEntry` (interface)
1684
+
1685
+ ```ts
1686
+ blocks: ContentBlock[]
1687
+ card: ToolUiCard
1688
+ key: string
1689
+ toolCall: ToolCallInfo
1690
+ ```
1691
+
1692
+ ## `PrimarySkillParallelMode` (interface)
1693
+
1694
+ ```ts
1695
+ id: string
1696
+ name: string
1697
+ prompt_hint: string
1698
+ ```
1699
+
1700
+ ## `PrimarySkillSnapshot` (interface)
1701
+
1702
+ ```ts
1703
+ captured_at: string
1704
+ description: string
1705
+ parallel_modes: PrimarySkillParallelMode[]
1706
+ skill_id: string
1707
+ stages: PrimarySkillStageSpec[]
1708
+ title: string
1709
+ version: number
1710
+ ```
1711
+
1712
+ ## `ProvidersResponse` (interface)
1713
+
1714
+ ```ts
1715
+ password_enabled: boolean
1716
+ providers: { name: string; authorize_url: string; }[]
1717
+ ```
1718
+
1719
+ ## `PublishedSolutionRef` (type)
1720
+
1721
+ ```ts
1722
+ export type PublishedSolutionRef =
1723
+ | { source: "builtin"; name: string }
1724
+ | { source: "hub"; org: string; name: string }
1725
+ ```
1726
+
1727
+ ## `QueueAck` (interface)
1728
+
1729
+ ```ts
1730
+ items: QueuedMessage[] | undefined
1731
+ message: string | null | undefined
1732
+ pause_reason: string | null | undefined
1733
+ paused: boolean | undefined
1734
+ revision: number | undefined
1735
+ running: boolean | undefined
1736
+ session_id: string | undefined
1737
+ status: "error" | "ok" | "conflict" | "queued"
1738
+ ```
1739
+
1740
+ ## `QueuedMessage` (interface)
1741
+
1742
+ ```ts
1743
+ content: string
1744
+ created_at: string
1745
+ error: string | undefined
1746
+ id: string
1747
+ position: number
1748
+ status: QueuedMessageStatus
1749
+ target_run_id: string | undefined
1750
+ updated_at: string
1751
+ version: number
1752
+ ```
1753
+
1754
+ ## `QueuedMessageStatus` (type)
1755
+
1756
+ ```ts
1757
+ export type QueuedMessageStatus = "pending" | "delivering" | "claimed" | "consumed" | "cancelled"
1758
+ ```
1759
+
1760
+ ## `queuedMessageStatusLabel` (function)
960
1761
 
961
1762
  ```ts
962
- assetId: string
963
- bizRoleId: string | undefined
964
- expiresAt: string
965
- kind: "prepared"
966
- roles: string[]
967
- solutionId: string
1763
+ queuedMessageStatusLabel: (status: QueuedMessageStatus) => string
968
1764
  ```
969
1765
 
970
- ## `PreparedSolutionAsset` (interface)
1766
+ ## `QueueOperationResult` (interface)
971
1767
 
972
1768
  ```ts
973
- assetId: string
974
- bizRoleId: string | undefined
975
- kind: "prepared"
1769
+ conflict: boolean
1770
+ message: string | null
1771
+ ok: boolean
1772
+ snapshot: SessionQueueSnapshot | null
976
1773
  ```
977
1774
 
978
- ## `PrimarySkillParallelMode` (interface)
1775
+ ## `queuePauseReasonLabel` (function)
979
1776
 
980
1777
  ```ts
981
- id: string
982
- name: string
983
- prompt_hint: string
1778
+ queuePauseReasonLabel: (reason: string | null | undefined) => string | null
984
1779
  ```
985
1780
 
986
- ## `PrimarySkillSnapshot` (interface)
1781
+ ## `RawEvent` (interface)
987
1782
 
988
1783
  ```ts
989
- captured_at: string
990
- description: string
991
- parallel_modes: PrimarySkillParallelMode[]
992
- skill_id: string
993
- stages: PrimarySkillStageSpec[]
994
- title: string
995
- version: number
1784
+ payload: Record<string, unknown>
1785
+ type: string
996
1786
  ```
997
1787
 
998
- ## `ProvidersResponse` (interface)
1788
+ ## `reconcileHistoricalUserTurns` (function)
999
1789
 
1000
1790
  ```ts
1001
- password_enabled: boolean
1002
- providers: { name: string; authorize_url: string; }[]
1791
+ reconcileHistoricalUserTurns: (currentTurns: TurnProjection[], incomingTurns: TurnProjection[]) => TurnProjection[]
1003
1792
  ```
1004
1793
 
1005
- ## `PublishedSolutionRef` (type)
1794
+ ## `reconcileOptimisticUserTurns` (function)
1006
1795
 
1007
1796
  ```ts
1008
- export type PublishedSolutionRef =
1009
- | { source: "builtin"; name: string }
1010
- | { source: "hub"; org: string; name: string }
1797
+ reconcileOptimisticUserTurns: (currentTurns: TurnProjection[], incomingTurns: TurnProjection[]) => TurnProjection[]
1011
1798
  ```
1012
1799
 
1013
- ## `RawEvent` (interface)
1800
+ ## `replaceWindow` (function)
1014
1801
 
1015
1802
  ```ts
1016
- payload: Record<string, unknown>
1017
- type: string
1803
+ replaceWindow: (current: TurnProjection[], page: TurnProjection[], liveRevisionAtStart: number, liveRevisions: LiveRevisionState) => TurnProjection[]
1018
1804
  ```
1019
1805
 
1020
1806
  ## `ReplayBar` (function)
@@ -1089,6 +1875,18 @@ speed: ReplaySpeed | undefined
1089
1875
  status: "replay" | "autonomous" | undefined
1090
1876
  ```
1091
1877
 
1878
+ ## `resolveServiceUrl` (function)
1879
+
1880
+ ```ts
1881
+ resolveServiceUrl: (endpoints: PlatformEndpoints, name: PlatformServiceName, path?: string) => string | null
1882
+ ```
1883
+
1884
+ ## `resolveToolUiCardContent` (function)
1885
+
1886
+ ```ts
1887
+ resolveToolUiCardContent: (card: ToolUiCard) => { type: ToolUiCardContentType; content: string; } | null
1888
+ ```
1889
+
1092
1890
  ## `ResultFeedback` (interface)
1093
1891
 
1094
1892
  ```ts
@@ -1156,17 +1954,52 @@ SDK_NAME: "agent-client"
1156
1954
  SDK_VERSION: string
1157
1955
  ```
1158
1956
 
1957
+ ## `selectionFromItem` (function)
1958
+
1959
+ ```ts
1960
+ selectionFromItem: (item: PluginConnectorItem) => PluginConnectorSelection
1961
+ ```
1962
+
1159
1963
  ## `SendOptions` (interface)
1160
1964
 
1161
1965
  ```ts
1162
1966
  askUserAnswer: Record<string, unknown> | undefined
1967
+ kbIds: number[] | undefined
1163
1968
  mode: string | undefined
1164
1969
  model: string | undefined
1970
+ queueWhenRunning: boolean | undefined
1165
1971
  replayDecision: "keep_replay" | "continue_replay" | undefined
1166
1972
  thinkingOverride: boolean | undefined
1167
1973
  whatif: { from_step: number; quotes: Array<Record<string, unknown>>; deprecate_entry_ids: string[]; } | undefined
1168
1974
  ```
1169
1975
 
1976
+ ## `SessionComputer` (interface)
1977
+
1978
+ ```ts
1979
+ agent_runtimes: unknown[] | undefined
1980
+ allowed_paths: string[] | undefined
1981
+ arch: string | null | undefined
1982
+ blade_home: string | null | undefined
1983
+ created_at: string
1984
+ daemon_version: string | null | undefined
1985
+ enabled: boolean
1986
+ home: string | null | undefined
1987
+ hostname: string | null | undefined
1988
+ id: string
1989
+ is_primary: boolean
1990
+ label: string
1991
+ last_seen_at: string | null | undefined
1992
+ online: boolean
1993
+ os: string | null | undefined
1994
+ workspace: string | null | undefined
1995
+ ```
1996
+
1997
+ ## `SessionComputerList` (interface)
1998
+
1999
+ ```ts
2000
+ computers: SessionComputer[]
2001
+ ```
2002
+
1170
2003
  ## `SessionConfig` (interface)
1171
2004
 
1172
2005
  ```ts
@@ -1178,6 +2011,12 @@ memoryEnabled: boolean | undefined
1178
2011
  model: string | undefined
1179
2012
  ```
1180
2013
 
2014
+ ## `SessionConnectOptions` (interface)
2015
+
2016
+ ```ts
2017
+ setup: ((session: AgentSession) => void) | undefined
2018
+ ```
2019
+
1181
2020
  ## `SessionContextStats` (interface)
1182
2021
 
1183
2022
  ```ts
@@ -1198,8 +2037,11 @@ solution: SolutionDefinition | undefined
1198
2037
  ## `SessionDetail` (interface)
1199
2038
 
1200
2039
  ```ts
2040
+ agent_runtime_id: string | null | undefined
2041
+ ba_version: string | null | undefined
1201
2042
  biz_role_id: string | null | undefined
1202
2043
  bound_skill_id: string | null | undefined
2044
+ chat_group_id: string | null | undefined
1203
2045
  created_at: string
1204
2046
  daemon_id: string | null | undefined
1205
2047
  disable_tools: (string[] & string[]) | undefined
@@ -1222,6 +2064,7 @@ primary_skill_id: string | null | undefined
1222
2064
  primary_skill_snapshot: PrimarySkillSnapshot | null | undefined
1223
2065
  replay_state: ReplayState | null | undefined
1224
2066
  runtime_type: string | null | undefined
2067
+ sandbox_version: string | null | undefined
1225
2068
  shared: boolean | undefined
1226
2069
  solution: Solution | null | undefined
1227
2070
  solution_id: string | null | undefined
@@ -1247,7 +2090,7 @@ tools_tokens: number | null | undefined
1247
2090
  ## `SessionHub` (class)
1248
2091
 
1249
2092
  ```ts
1250
- connect: (sessionId: string) => Promise<AgentSession>
2093
+ connect: (sessionId: string, options?: SessionConnectOptions) => Promise<AgentSession>
1251
2094
  disconnect: () => void
1252
2095
  disposeAll: () => void
1253
2096
  getConnection: () => ConnectionStatus
@@ -1290,11 +2133,190 @@ SessionInfo = type({
1290
2133
  "disable_tools?": "string[]",
1291
2134
  "runtime_type?": "string | null",
1292
2135
  "daemon_id?": "string | null",
2136
+ "agent_runtime_id?": "string | null",
1293
2137
  "workspace_path?": "string | null",
2138
+ "ba_version?": "string | null",
2139
+ "sandbox_version?": "string | null",
2140
+ "chat_group_id?": "string | null",
1294
2141
  "match?": "unknown",
1295
2142
  })
1296
2143
  ```
1297
2144
 
2145
+ ## `SessionMemoryToggle` (function)
2146
+
2147
+ ```ts
2148
+ SessionMemoryToggle: ({ sessionId, enabled, client: clientProp, disabled, label, className, labelClassName, inputClassName, onSaved, onError, }: SessionMemoryToggleProps) => JSX.Element
2149
+ ```
2150
+
2151
+ ## `SessionMemoryToggleProps` (interface)
2152
+
2153
+ ```ts
2154
+ className: string | undefined
2155
+ client: BladeClient | undefined
2156
+ disabled: boolean | undefined
2157
+ enabled: boolean
2158
+ inputClassName: string | undefined
2159
+ label: string | undefined
2160
+ labelClassName: string | undefined
2161
+ onError: ((error: unknown) => void) | undefined
2162
+ onSaved: ((sessionId: string, enabled: boolean) => void) | undefined
2163
+ sessionId: string
2164
+ ```
2165
+
2166
+ ## `SessionPlugin` (interface)
2167
+
2168
+ ```ts
2169
+ active: boolean
2170
+ config: SessionPluginConfigSummary | undefined
2171
+ display_name: string | null | undefined
2172
+ icon: string | null | undefined
2173
+ installed: boolean | null
2174
+ name: string
2175
+ projected: boolean
2176
+ projection_source: string | null | undefined
2177
+ reason: string | null | undefined
2178
+ status: string
2179
+ ```
2180
+
2181
+ ## `SessionPluginActivation` (type)
2182
+
2183
+ ```ts
2184
+ export type SessionPluginActivation = Pick<SessionPlugin, "name" | "active" | "status" | "reason">
2185
+ ```
2186
+
2187
+ ## `SessionPluginConfigDialog` (function)
2188
+
2189
+ ```ts
2190
+ SessionPluginConfigDialog: ({ client, sessionId, plugin, ...props }: SessionPluginConfigDialogProps) => JSX.Element
2191
+ ```
2192
+
2193
+ ## `SessionPluginConfigDialogProps` (interface)
2194
+
2195
+ ```ts
2196
+ client: BladeClient
2197
+ onClose: () => void
2198
+ onSaved: ((state: SessionPluginConfigState) => void) | undefined
2199
+ plugin: Pick<SessionPlugin, "name" | "display_name" | "icon">
2200
+ sessionId: string
2201
+ ```
2202
+
2203
+ ## `SessionPluginConfigDraft` (interface)
2204
+
2205
+ ```ts
2206
+ remove: string[]
2207
+ set: SessionPluginConfigSet[]
2208
+ ```
2209
+
2210
+ ## `SessionPluginConfigError` (interface)
2211
+
2212
+ ```ts
2213
+ message: string
2214
+ path: string
2215
+ ```
2216
+
2217
+ ## `SessionPluginConfigForm` (function)
2218
+
2219
+ ```ts
2220
+ SessionPluginConfigForm: ({ config, submitting, errors, failure, onSubmit, onCancel, }: SessionPluginConfigFormProps) => JSX.Element
2221
+ ```
2222
+
2223
+ ## `SessionPluginConfigFormProps` (interface)
2224
+
2225
+ ```ts
2226
+ config: SessionPluginConfigState
2227
+ errors: SessionPluginConfigError[]
2228
+ failure: string | null
2229
+ onCancel: () => void
2230
+ onSubmit: (draft: SessionPluginConfigDraft) => void
2231
+ submitting: boolean
2232
+ ```
2233
+
2234
+ ## `SessionPluginConfigSet` (interface)
2235
+
2236
+ ```ts
2237
+ path: string
2238
+ value: unknown
2239
+ ```
2240
+
2241
+ ## `SessionPluginConfigState` (interface)
2242
+
2243
+ ```ts
2244
+ errors: SessionPluginConfigError[]
2245
+ reason: string | null
2246
+ revision: string | null
2247
+ schema: Record<string, unknown> | null
2248
+ state: SessionPluginConfigStateName
2249
+ values: Record<string, unknown>
2250
+ write_only: string[]
2251
+ ```
2252
+
2253
+ ## `SessionPluginConfigStateName` (type)
2254
+
2255
+ ```ts
2256
+ export type SessionPluginConfigStateName = "not_required" | "required" | "configured" | "error"
2257
+ ```
2258
+
2259
+ ## `SessionPluginConfigSummary` (type)
2260
+
2261
+ ```ts
2262
+ export type SessionPluginConfigSummary =
2263
+ | SessionPluginConfigStateName
2264
+ | "unchecked"
2265
+ ```
2266
+
2267
+ ## `SessionPluginConfigUpdate` (interface)
2268
+
2269
+ ```ts
2270
+ expected_revision: string | null | undefined
2271
+ remove: string[] | undefined
2272
+ set: SessionPluginConfigSet[] | undefined
2273
+ ```
2274
+
2275
+ ## `SessionPluginIcon` (function)
2276
+
2277
+ ```ts
2278
+ SessionPluginIcon: ({ client, sessionId, plugin, size, shape, className }: SessionPluginIconProps) => JSX.Element
2279
+ ```
2280
+
2281
+ ## `SessionPluginIconProps` (interface)
2282
+
2283
+ ```ts
2284
+ className: string | undefined
2285
+ client: BladeClient
2286
+ plugin: Pick<SessionPlugin, "name" | "icon">
2287
+ sessionId: string | null
2288
+ shape: "rounded" | "circle" | undefined
2289
+ size: number | undefined
2290
+ ```
2291
+
2292
+ ## `sessionPluginLabel` (function)
2293
+
2294
+ ```ts
2295
+ sessionPluginLabel: (plugin: Pick<SessionPlugin, "name" | "display_name">) => string
2296
+ ```
2297
+
2298
+ ## `SessionPluginLabelProps` (interface)
2299
+
2300
+ ```ts
2301
+ plugin: Pick<SessionPlugin, "name" | "display_name">
2302
+ ```
2303
+
2304
+ ## `SessionPluginSelector` (function)
2305
+
2306
+ ```ts
2307
+ SessionPluginSelector: (props: SessionPluginSelectorProps) => JSX.Element
2308
+ ```
2309
+
2310
+ ## `SessionPluginSelectorProps` (interface)
2311
+
2312
+ ```ts
2313
+ className: string | undefined
2314
+ client: BladeClient
2315
+ onChange: ((plugin: SessionPluginActivation) => void) | undefined
2316
+ sessionId: string
2317
+ side: "top" | "bottom" | undefined
2318
+ ```
2319
+
1298
2320
  ## `SessionPortMapping` (interface)
1299
2321
 
1300
2322
  ```ts
@@ -1314,6 +2336,38 @@ model: string | undefined
1314
2336
  solution: SolutionRef | undefined
1315
2337
  ```
1316
2338
 
2339
+ ## `SessionQueuePanel` (function)
2340
+
2341
+ ```ts
2342
+ SessionQueuePanel: ({ snapshot, canDeliver, pendingItemId, notice, onResume, onCancel, onEdit, onRequeue, onMove, onReorder, onDeliver, }: SessionQueuePanelProps) => JSX.Element | null
2343
+ ```
2344
+
2345
+ ## `SessionQueuePanelProps` (interface)
2346
+
2347
+ ```ts
2348
+ canDeliver: boolean
2349
+ notice: string | null | undefined
2350
+ onCancel: (item: QueuedMessage) => void
2351
+ onDeliver: (item: QueuedMessage) => void
2352
+ onEdit: (item: QueuedMessage, content: string) => boolean | undefined | Promise<boolean>
2353
+ onMove: (item: QueuedMessage, delta: -1 | 1) => void
2354
+ onReorder: (orderedIds: string[]) => void
2355
+ onRequeue: ((content: string) => Promise<boolean>) | undefined
2356
+ onResume: () => void
2357
+ pendingItemId: string | null | undefined
2358
+ snapshot: SessionQueueSnapshot
2359
+ ```
2360
+
2361
+ ## `SessionQueueSnapshot` (interface)
2362
+
2363
+ ```ts
2364
+ items: QueuedMessage[]
2365
+ pause_reason: string | null
2366
+ paused: boolean
2367
+ revision: number
2368
+ session_id: string
2369
+ ```
2370
+
1317
2371
  ## `SessionSetupError` (class)
1318
2372
 
1319
2373
  ```ts
@@ -1335,6 +2389,7 @@ export type SessionSetupStage = "solution" | "session" | "skill" | "connection"
1335
2389
 
1336
2390
  ```ts
1337
2391
  attachAppCli: (sessionId: string, definition: AppCliDefinition) => Promise<AppCliAttachment>
2392
+ callMcpApp: (sessionId: string, sourceId: string, request: { request_id: string; name: string; arguments: Record<string, unknown>; }, init?: RequestInit) => Promise<{ response: Record<string, unknown>; replayed: boolean; }>
1338
2393
  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; }>
1339
2394
  connect: (sessionId: string) => Promise<AgentSession>
1340
2395
  copyFile: (sessionId: string, filePath: string) => Promise<{ path: string; }>
@@ -1348,24 +2403,33 @@ deleteFile: (sessionId: string, filePath: string) => Promise<void>
1348
2403
  deleteSession: (sessionId: string, options?: { deleteWorkspace?: boolean; }) => Promise<{ deleted: boolean; workspace_deleted?: boolean; }>
1349
2404
  downloadFile: (sessionId: string, filePath: string, downloadName?: string) => Promise<void>
1350
2405
  exportSession: (sessionId: string) => Promise<void>
2406
+ fetchSessionPluginIcon: (sessionId: string, name: string) => Promise<Blob>
1351
2407
  getBackgroundTask: (sessionId: string, taskId: string, tail?: number, init?: RequestInit) => Promise<BackgroundTask>
1352
2408
  getDownloadDirUrl: (sessionId: string, dirPath: string) => string
2409
+ getMcpApp: (sessionId: string, sourceId: string, init?: RequestInit) => Promise<McpAppArchive>
2410
+ getMcpAppContext: (sessionId: string, sourceId: string, init?: RequestInit) => Promise<McpAppContextState>
1353
2411
  getReplayPreview: (sessionId: string) => Promise<ReplayPreview>
1354
2412
  getSession: (sessionId: string, init?: RequestInit) => Promise<SessionDetail>
1355
2413
  getSessionCheckpoints: (sessionId: string, init?: RequestInit) => Promise<{ nodes: CheckpointNode[]; leaf_id: string | null; }>
1356
2414
  getSessionContextStats: (sessionId: string, init?: RequestInit) => Promise<SessionContextStats>
1357
2415
  getSessionHistory: (sessionId: string, init?: RequestInit) => Promise<SessionHistory>
2416
+ getSessionPluginConfig: (sessionId: string, name: string, init?: RequestInit) => Promise<{ plugin: string; config: SessionPluginConfigState; }>
1358
2417
  getSessionTasks: (sessionId: string) => Promise<Task[]>
2418
+ getSessionTurnCommands: (sessionId: string) => Promise<HistoricalCommand[]>
1359
2419
  getSessionTurns: (sessionId: string) => Promise<TurnProjection[]>
2420
+ getSessionTurnsPage: (sessionId: string, options?: { limit?: number; before?: string; }) => Promise<SessionTurnsPage>
1360
2421
  getSharedSession: (token: string) => Promise<TurnProjection[]>
1361
2422
  importSession: (file: File, name?: string, solutionOverride?: string | null | ImportSessionOptions) => Promise<{ session_id: string; }>
1362
2423
  listBackgroundTasks: (sessionId: string, init?: RequestInit) => Promise<BackgroundTask[]>
1363
2424
  listDir: (sessionId: string, dirPath: string) => Promise<FileEntry[]>
1364
2425
  listResultFeedback: (sessionId: string) => Promise<ResultFeedback[]>
2426
+ listSessionPlugins: (sessionId: string, init?: RequestInit) => Promise<{ plugins: SessionPlugin[]; sync_version: number; sync_pending: boolean; }>
1365
2427
  listSessions: (template_id_prefix?: string, solution_id?: string) => Promise<SessionInfo[]>
1366
- listSessionsPaginated: (params: { limit: number; offset: number; template_id_prefix?: string; solution_id?: string; solution_registry_id?: string; q?: string; }) => Promise<PaginatedSessionsResult>
2428
+ 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>
1367
2429
  listSessionsWithSkillData: () => Promise<SkillDevSession[]>
2430
+ onMcpAppChanged: (sessionId: string, sourceId: string, listener: () => void) => () => void
1368
2431
  pinSession: (sessionId: string, pinned: boolean) => Promise<SessionInfo>
2432
+ prepareSessionPluginConfig: (sessionId: string, name: string, init?: RequestInit) => Promise<{ plugin: string; config: SessionPluginConfigState; }>
1369
2433
  previewImport: (file: File) => Promise<ImportPreview>
1370
2434
  probeSessionUrl: (sessionId: string, url: string) => Promise<{ reachable: boolean; requires_proxy: boolean; }>
1371
2435
  putResultFeedback: (sessionId: string, assistantEntryId: string, feedback: { helpful: boolean; reason?: ResultFeedbackReason | null; }) => Promise<ResultFeedback>
@@ -1373,16 +2437,20 @@ renameFile: (sessionId: string, filePath: string, newName: string) => Promise<{
1373
2437
  revokeShare: (sessionId: string, token: string) => Promise<{ revoked: boolean; }>
1374
2438
  rewindSession: (sessionId: string, checkpointId: string) => Promise<{ id: string; content: string; }>
1375
2439
  searchOwnedContent: (params: { q: string; limit?: number; }) => Promise<GlobalSearchResult>
2440
+ sessionPluginIconUrl: (sessionId: string, name: string) => string
1376
2441
  setSessionEnv: (sessionId: string, env: Record<string, string>) => Promise<SessionDetail>
2442
+ setSessionPluginActivation: (sessionId: string, name: string, active: boolean, init?: RequestInit) => Promise<{ plugin: SessionPluginActivation; sync_version: number; }>
1377
2443
  shareFile: (sessionId: string, sourcePath: string, linkName?: string, shareFolder?: string) => Promise<{ path: string; target: string; }>
1378
2444
  startReplaySession: (sourceSessionId: string, speed?: ReplaySpeed) => Promise<{ session_id: string; }>
1379
2445
  stopBackgroundTask: (sessionId: string, taskId: string) => Promise<BackgroundTaskStopResult>
1380
2446
  switchBranch: (sessionId: string, checkpointId: string) => Promise<{ id: string; leaf_id: string; }>
1381
2447
  tokenizeMessages: (messages: Array<Record<string, unknown>>, options?: { model?: string; add_generation_prompt?: boolean; enable_thinking?: boolean | null; tools?: Array<Record<string, unknown>>; }) => Promise<TokenizeResult>
1382
2448
  tokenizePrompt: (prompt: string, model?: string) => Promise<TokenizeResult>
2449
+ updateMcpAppContext: (sessionId: string, sourceId: string, body: McpAppContextUpdate, init?: RequestInit) => Promise<{ status: "accepted"; revision: string; }>
1383
2450
  updateReplaySession: (sessionId: string, payload: { speed?: ReplaySpeed; status?: "autonomous"; }) => Promise<{ replay_state: SessionInfo["replay_state"]; }>
1384
- updateSession: (sessionId: string, payload: { intent?: string; }) => Promise<SessionDetail>
2451
+ updateSession: (sessionId: string, payload: { intent?: string; chat_group_id?: string | null; }) => Promise<SessionDetail>
1385
2452
  updateSessionMemory: (sessionId: string, memoryEnabled: boolean) => Promise<{ memory_enabled: boolean; }>
2453
+ updateSessionPluginConfig: (sessionId: string, name: string, update: SessionPluginConfigUpdate, init?: RequestInit) => Promise<{ plugin: string; config: SessionPluginConfigState; }>
1386
2454
  updateSharing: (sessionId: string, shared: boolean) => Promise<{ shared: boolean; }>
1387
2455
  uploadFiles: (sessionId: string, dirPath: string, files: FileList | File[] | UploadFileEntry[], options?: UploadFilesOptions) => Promise<{ uploaded: string[]; failed: string[]; }>
1388
2456
  writeFile: (sessionId: string, filePath: string, content: string) => Promise<{ success: boolean; }>
@@ -1397,8 +2465,11 @@ askAnswers: Record<string, AskUserAnswerData>
1397
2465
  connection: ConnectionStatus
1398
2466
  errorMessage: string | null
1399
2467
  isStreaming: boolean
2468
+ loadingOlder: boolean
1400
2469
  messages: ChatMessage[]
1401
2470
  mode: "planning" | "executing" | null
2471
+ nextBefore: string | null
2472
+ queue: SessionQueueSnapshot
1402
2473
  replay: ReplaySnapshot | null
1403
2474
  sessionId: string
1404
2475
  status: "completed" | "failed" | "interrupted" | "running" | "created" | "waiting_for_input" | null
@@ -1414,6 +2485,14 @@ SessionStatus = type(
1414
2485
  )
1415
2486
  ```
1416
2487
 
2488
+ ## `SessionTurnsPage` (interface)
2489
+
2490
+ ```ts
2491
+ currentMode: "planning" | "executing"
2492
+ nextBefore: string | null
2493
+ turns: TurnProjection[]
2494
+ ```
2495
+
1417
2496
  ## `ShareLinkResult` (interface)
1418
2497
 
1419
2498
  ```ts
@@ -1422,6 +2501,30 @@ token: string
1422
2501
  url: string
1423
2502
  ```
1424
2503
 
2504
+ ## `shouldApplySnapshot` (function)
2505
+
2506
+ ```ts
2507
+ shouldApplySnapshot: (current: SessionQueueSnapshot | undefined, next: SessionQueueSnapshot) => boolean
2508
+ ```
2509
+
2510
+ ## `SiteVisitsResource` (class)
2511
+
2512
+ ```ts
2513
+ record: () => Promise<SiteVisitsSummary>
2514
+ summary: () => Promise<SiteVisitsSummary>
2515
+ ```
2516
+
2517
+ ## `SiteVisitsSummary` (interface)
2518
+
2519
+ ```ts
2520
+ as_of: string
2521
+ date: string
2522
+ timezone: string
2523
+ today_pv: number
2524
+ today_uv: number
2525
+ total_pv: number
2526
+ ```
2527
+
1425
2528
  ## `SkillDefinition` (interface)
1426
2529
 
1427
2530
  ```ts
@@ -1506,6 +2609,12 @@ export type SolutionDefinition =
1506
2609
  export type SolutionRef = ExistingSolutionRef | PreparedSolutionAsset
1507
2610
  ```
1508
2611
 
2612
+ ## `sortComputers` (function)
2613
+
2614
+ ```ts
2615
+ sortComputers: (computers: SessionComputer[]) => SessionComputer[]
2616
+ ```
2617
+
1509
2618
  ## `Task` (type)
1510
2619
 
1511
2620
  ```ts
@@ -1585,6 +2694,31 @@ status: "done" | "error" | "cancelled" | "awaiting_answer" | "pending" | undefin
1585
2694
  export type ToolCallRenderer = (info: ToolCallInfo) => ReactNode | null
1586
2695
  ```
1587
2696
 
2697
+ ## `ToolUiCard` (interface)
2698
+
2699
+ ```ts
2700
+ archived: boolean | undefined
2701
+ height: number
2702
+ mcpApp: McpAppData | undefined
2703
+ resourceHTML: string | undefined
2704
+ resourceUri: string | undefined
2705
+ resourceURI: string | undefined
2706
+ target: "inline" | "preview"
2707
+ title: string | undefined
2708
+ ```
2709
+
2710
+ ## `ToolUiCardContentType` (type)
2711
+
2712
+ ```ts
2713
+ export type ToolUiCardContentType = "resource-html" | "resource-uri"
2714
+ ```
2715
+
2716
+ ## `ToolUiCardView` (function)
2717
+
2718
+ ```ts
2719
+ ToolUiCardView: ({ card, sessionId }: { card: ToolUiCard; sessionId?: string; }) => JSX.Element | null
2720
+ ```
2721
+
1588
2722
  ## `toReplaySnapshot` (function)
1589
2723
 
1590
2724
  ```ts
@@ -1597,6 +2731,26 @@ toReplaySnapshot: (raw: ReplayState | null | undefined) => ReplaySnapshot | null
1597
2731
  transformSlashCommand: (skillName: string, rawInput: string, { local, installed }?: SkillMentionAvailability) => string
1598
2732
  ```
1599
2733
 
2734
+ ## `TRIGGER_ICON_LIMIT` (const)
2735
+
2736
+ ```ts
2737
+ TRIGGER_ICON_LIMIT: 3
2738
+ ```
2739
+
2740
+ ## `triggerSummary` (function)
2741
+
2742
+ ```ts
2743
+ triggerSummary: (items: Array<Pick<PluginConnectorSelection, "name" | "displayName" | "icon" | "iconSource">>) => TriggerSummary
2744
+ ```
2745
+
2746
+ ## `TriggerSummary` (interface)
2747
+
2748
+ ```ts
2749
+ overflow: number
2750
+ total: number
2751
+ visible: Pick<PluginConnectorSelection, "name" | "iconSource" | "icon" | "displayName">[]
2752
+ ```
2753
+
1600
2754
  ## `TurnProjection` (interface)
1601
2755
 
1602
2756
  ```ts
@@ -1604,13 +2758,27 @@ archived_count: number | null | undefined
1604
2758
  archived_files: ArchivedFileInfo[] | null | undefined
1605
2759
  archived_tool_calls: ArchivedToolCallInfo[] | null | undefined
1606
2760
  blocks: ContentBlock[]
2761
+ client_render_id: string | null | undefined
2762
+ client_request_id: string | null | undefined
1607
2763
  compaction_id: string | null | undefined
2764
+ context_action: ContextAction | null | undefined
2765
+ context_content: unknown
2766
+ context_key: string | null | undefined
2767
+ context_kind: string | null | undefined
2768
+ context_name: string | null | undefined
2769
+ context_order: number | null | undefined
2770
+ context_revision: string | null | undefined
1608
2771
  context_window: number | undefined
1609
- duration_ms: number | undefined
2772
+ display_summary: string | null | undefined
2773
+ display_title: string | null | undefined
2774
+ duration_ms: number | null | undefined
1610
2775
  failure_reason: string | null | undefined
1611
2776
  fallback_applied: boolean | null | undefined
2777
+ first_token_delivery_ms: number | null | undefined
2778
+ first_token_ms: number | null | undefined
2779
+ has_reported_timing: boolean | undefined
1612
2780
  id: string
1613
- kind: "message" | "compaction" | undefined
2781
+ kind: "message" | "context" | "compaction" | undefined
1614
2782
  loop_id: string
1615
2783
  memory_refs: MemoryRef[] | null | undefined
1616
2784
  model: string | null | undefined
@@ -1619,8 +2787,10 @@ post_chat_followup: PostChatFollowup | null | undefined
1619
2787
  role: "user" | "assistant" | "system"
1620
2788
  saved_ratio: number | null | undefined
1621
2789
  sequence: number
2790
+ sources: ContextSourceInfo[] | null | undefined
1622
2791
  started_at: string | null | undefined
1623
2792
  status: "streaming" | "completed" | "paused" | "failed" | "interrupted"
2793
+ stream_duration_ms: number | null | undefined
1624
2794
  summary_full: string | null | undefined
1625
2795
  summary_preview: string | null | undefined
1626
2796
  tokens_after: number | null | undefined
@@ -1667,6 +2837,7 @@ useAgentSession: (sessionId?: string, options?: UseAgentSessionOptions) => UseAg
1667
2837
 
1668
2838
  ```ts
1669
2839
  createOptions: CreateSessionRequest | undefined
2840
+ onSessionConnected: ((session: AgentSession) => () => void) | undefined
1670
2841
  onSessionCreated: ((sessionId: string) => void) | undefined
1671
2842
  ```
1672
2843
 
@@ -1701,6 +2872,30 @@ send: (text: string) => Promise<boolean>
1701
2872
  stop: () => void
1702
2873
  ```
1703
2874
 
2875
+ ## `useMessagePin` (function)
2876
+
2877
+ ```ts
2878
+ useMessagePin: ({ targetKey, pinTarget, isStreaming, layoutKey, getScrollElement, getContentElement, getTargetElement, getTargetScrollTop, getSpacerHeight, setSpacerHeight, stopAutoScroll, scrollToBottom, margin, }: UseMessagePinOptions) => { release: () => void; isActive: () => boolean; }
2879
+ ```
2880
+
2881
+ ## `UseMessagePinOptions` (interface)
2882
+
2883
+ ```ts
2884
+ getContentElement: (() => HTMLElement | null) | undefined
2885
+ getScrollElement: () => HTMLElement | null
2886
+ getSpacerHeight: () => number
2887
+ getTargetElement: () => HTMLElement | null
2888
+ getTargetScrollTop: ((scroll: HTMLElement) => number | null) | undefined
2889
+ isStreaming: boolean | undefined
2890
+ layoutKey: string | undefined
2891
+ margin: number | undefined
2892
+ pinTarget: boolean
2893
+ scrollToBottom: () => void
2894
+ setSpacerHeight: (height: number) => void
2895
+ stopAutoScroll: () => void
2896
+ targetKey: string | null
2897
+ ```
2898
+
1704
2899
  ## `useReplay` (function)
1705
2900
 
1706
2901
  ```ts
@@ -1735,3 +2930,48 @@ token: string
1735
2930
  username: string
1736
2931
  ```
1737
2932
 
2933
+ ## `useSessionPluginActivation` (function)
2934
+
2935
+ ```ts
2936
+ useSessionPluginActivation: ({ client, sessionId, onChange, }: { client: BladeClient; sessionId: string; onChange?: (plugin: SessionPluginActivation) => void; }) => UseSessionPluginActivationResult
2937
+ ```
2938
+
2939
+ ## `UseSessionPluginActivationResult` (interface)
2940
+
2941
+ ```ts
2942
+ busy: boolean
2943
+ configuring: ConfiguringPlugin | null
2944
+ editConfig: (item: PluginConnectorItem) => void
2945
+ inFlight: Record<string, true>
2946
+ items: PluginConnectorItem[]
2947
+ listError: boolean
2948
+ loading: boolean
2949
+ mutationError: boolean
2950
+ onConfigClose: () => void
2951
+ onConfigSaved: (state: SessionPluginConfigState) => void
2952
+ reload: () => void
2953
+ retry: (item: PluginConnectorItem) => void
2954
+ toggle: (item: PluginConnectorItem, next: boolean) => void
2955
+ ```
2956
+
2957
+ ## `WhatIfQuote` (interface)
2958
+
2959
+ ```ts
2960
+ label: string
2961
+ snapshot: string
2962
+ stepNumber: number | null
2963
+ ```
2964
+
2965
+ ## `WhatIfUserBubble` (function)
2966
+
2967
+ ```ts
2968
+ WhatIfUserBubble: ({ parsed, onQuoteClick }: WhatIfUserBubbleProps) => JSX.Element
2969
+ ```
2970
+
2971
+ ## `WhatIfUserBubbleProps` (interface)
2972
+
2973
+ ```ts
2974
+ onQuoteClick: ((stepNumber: number) => void) | undefined
2975
+ parsed: ParsedWhatIfPrompt
2976
+ ```
2977
+