@blade-hq/agent-react 2610.0.0-beta.7 → 2610.0.0-beta.70

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 (59) hide show
  1. package/README.md +148 -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 +15 -1
  10. package/dist/components/ChatSurface.d.ts +29 -2
  11. package/dist/components/ConnectorPanel.d.ts +41 -0
  12. package/dist/components/ContextCard.d.ts +20 -0
  13. package/dist/components/MarkdownContent.d.ts +2 -0
  14. package/dist/components/McpAppCard.d.ts +14 -0
  15. package/dist/components/MessageList.d.ts +26 -1
  16. package/dist/components/PlanUpdateBlock.d.ts +31 -0
  17. package/dist/components/PluginConnectorList.d.ts +47 -0
  18. package/dist/components/PluginTriggerStack.d.ts +22 -0
  19. package/dist/components/SessionMemoryToggle.d.ts +19 -0
  20. package/dist/components/SessionPluginConfigDialog.d.ts +10 -0
  21. package/dist/components/SessionPluginConfigForm.d.ts +14 -0
  22. package/dist/components/SessionPluginIcon.d.ts +30 -0
  23. package/dist/components/SessionPluginSelector.d.ts +10 -0
  24. package/dist/components/SessionQueuePanel.d.ts +74 -0
  25. package/dist/components/ToolCallBlock.d.ts +4 -2
  26. package/dist/components/ToolUiCardView.d.ts +9 -0
  27. package/dist/components/UserMessageBubble.d.ts +1 -1
  28. package/dist/components/WhatIfUserBubble.d.ts +7 -0
  29. package/dist/components/connector-panel-types.d.ts +37 -0
  30. package/dist/components/display-utils.d.ts +10 -0
  31. package/dist/components/plugin-config-draft.d.ts +13 -0
  32. package/dist/components/plugin-config-schema.d.ts +6 -0
  33. package/dist/components/plugin-connector.d.ts +40 -0
  34. package/dist/components/queue-panel-adjacency.d.ts +1 -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 +46 -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/hooks/use-typewriter-reveal.d.ts +32 -0
  43. package/dist/index.d.ts +43 -0
  44. package/dist/index.js +44786 -1663
  45. package/dist/index.js.map +1 -1
  46. package/dist/lib/agent-computer-command.d.ts +34 -0
  47. package/dist/lib/random-id.d.ts +10 -0
  48. package/dist/lib/utils.d.ts +3 -1
  49. package/dist/lib/whatif-prompt.d.ts +18 -0
  50. package/dist/mermaid-3ZIDBTTL-BPVVWTVV.js +9 -0
  51. package/dist/mermaid-3ZIDBTTL-BPVVWTVV.js.map +1 -0
  52. package/dist/style.css +97 -5
  53. package/dist/style.full.css +98 -6
  54. package/dist/webapi-W3IB5DO4.js +2481 -0
  55. package/dist/webapi-W3IB5DO4.js.map +1 -0
  56. package/package.json +2 -2
  57. package/public-api.md +1287 -31
  58. package/dist/mermaid-3ZIDBTTL-N7YKJ3SM.js +0 -8
  59. /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
- 171 个公开声明。
6
+ 324 个公开声明。
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
@@ -349,6 +473,7 @@ onSessionReady: ((session: AgentSession) => void) | undefined
349
473
  placeholder: string | undefined
350
474
  renderers: ChatViewRenderers | undefined
351
475
  sessionId: string | undefined
476
+ sessionPluginControls: ((sessionId: string) => ReactNode) | undefined
352
477
  slots: ChatViewSlots | undefined
353
478
  theme: "light" | "dark" | undefined
354
479
  ```
@@ -367,6 +492,12 @@ footer: ReactNode
367
492
  header: ReactNode
368
493
  ```
369
494
 
495
+ ## `classifyAgentComputerLaunchOutcome` (function)
496
+
497
+ ```ts
498
+ classifyAgentComputerLaunchOutcome: (toolCall: { status?: string; result?: unknown; }) => AgentComputerLaunchOutcome
499
+ ```
500
+
370
501
  ## `ClientProjectionBuilder` (class)
371
502
 
372
503
  ```ts
@@ -376,6 +507,24 @@ reset: () => void
376
507
  seedSequence: (maxSeq: number) => void
377
508
  ```
378
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
+
379
528
  ## `CommandEnvelope` (interface)
380
529
 
381
530
  ```ts
@@ -408,6 +557,57 @@ tokens_before: number | null | undefined
408
557
  trigger: "auto" | "manual" | "forced_retry" | null | undefined
409
558
  ```
410
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
+
411
611
  ## `connectEmbedded` (function)
412
612
 
413
613
  ```ts
@@ -420,10 +620,33 @@ connectEmbedded: (options: EmbeddedChatOptions) => EmbeddedChat
420
620
  export type ConnectionStatus = "connecting" | "connected" | "reconnecting" | "disconnected"
421
621
  ```
422
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
+
423
645
  ## `ContentBlock` (interface)
424
646
 
425
647
  ```ts
426
648
  content: unknown
649
+ delivery_id: string | null | undefined
427
650
  display_name: string | null | undefined
428
651
  tool_call_id: string | null | undefined
429
652
  tool_name: string | null | undefined
@@ -436,6 +659,95 @@ type: "text" | "thinking" | "tool_use" | "tool_result" | "tool_ui" | "tool_bridg
436
659
  contentPreview: (content: MessageContent, maxLen?: number) => string
437
660
  ```
438
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
+
439
751
  ## `createInitialSessionState` (function)
440
752
 
441
753
  ```ts
@@ -445,7 +757,9 @@ createInitialSessionState: (sessionId: string) => SessionState
445
757
  ## `CreateSessionRequest` (interface)
446
758
 
447
759
  ```ts
760
+ agent_runtime_id: string | null | undefined
448
761
  biz_role_id: string | null | undefined
762
+ chat_group_id: string | null | undefined
449
763
  compaction_ratio: number | null | undefined
450
764
  daemon_id: string | null | undefined
451
765
  disable_tools: string[] | null | undefined
@@ -455,7 +769,7 @@ intent: string | undefined
455
769
  memory_enabled: boolean | null | undefined
456
770
  model: string | null | undefined
457
771
  primary_skill_id: string | null | undefined
458
- runtime_type: "sandbox" | "daemon" | null | undefined
772
+ runtime_type: "sandbox" | "daemon" | "native" | null | undefined
459
773
  session_solution_asset_id: string | null | undefined
460
774
  solution_id: string | undefined
461
775
  solution_ref: PublishedSolutionRef | undefined
@@ -477,6 +791,12 @@ path: string | undefined
477
791
  token: string | (() => string | null | undefined) | undefined
478
792
  ```
479
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
+
480
800
  ## `DEFAULT_REPLAY_SPEED` (const)
481
801
 
482
802
  ```ts
@@ -500,6 +820,18 @@ allowedOrigins: string[]
500
820
  iframe: HTMLIFrameElement | undefined
501
821
  ```
502
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
+
503
835
  ## `ExchangeCodeParams` (interface)
504
836
 
505
837
  ```ts
@@ -548,6 +880,12 @@ path: string
548
880
  tags: string[] | undefined
549
881
  ```
550
882
 
883
+ ## `filterConnectorItems` (function)
884
+
885
+ ```ts
886
+ filterConnectorItems: (items: PluginConnectorItem[], query: string) => PluginConnectorItem[]
887
+ ```
888
+
551
889
  ## `FinalArtifact` (interface)
552
890
 
553
891
  ```ts
@@ -601,6 +939,18 @@ export type FollowupInteractionEvent =
601
939
  artifactKind: "file"
602
940
  ```
603
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
+
604
954
  ## `getFileParts` (function)
605
955
 
606
956
  ```ts
@@ -613,6 +963,12 @@ getFileParts: (content: MessageContent) => FileContentPart[]
613
963
  getImageParts: (content: MessageContent) => ImageUrlContentPart[]
614
964
  ```
615
965
 
966
+ ## `getPlanUpdateDisplayState` (function)
967
+
968
+ ```ts
969
+ getPlanUpdateDisplayState: (messages: ChatMessage[]) => PlanUpdateDisplayState
970
+ ```
971
+
616
972
  ## `getTextContent` (function)
617
973
 
618
974
  ```ts
@@ -655,12 +1011,24 @@ export type GlobalSearchResultItem =
655
1011
  | GlobalSearchFileResult
656
1012
  ```
657
1013
 
1014
+ ## `groupAdjacentContextRuns` (function)
1015
+
1016
+ ```ts
1017
+ groupAdjacentContextRuns: (kinds: readonly (string | null)[]) => readonly (readonly number[])[]
1018
+ ```
1019
+
658
1020
  ## `groupMessagesByLoop` (function)
659
1021
 
660
1022
  ```ts
661
1023
  groupMessagesByLoop: (messages: ChatMessage[]) => MessageGroup[]
662
1024
  ```
663
1025
 
1026
+ ## `hasChatRunEvent` (function)
1027
+
1028
+ ```ts
1029
+ hasChatRunEvent: (events: RawEvent[]) => boolean
1030
+ ```
1031
+
664
1032
  ## `HeadlessResource` (class)
665
1033
 
666
1034
  ```ts
@@ -669,6 +1037,15 @@ runInSession: { <T = unknown>(sessionId: string, prompt: string, options: Headle
669
1037
  runWithSession: { <T = unknown>(prompt: string, options: HeadlessRunOptions & { schema: JsonSchemaObject; }): Promise<HeadlessRunInSessionResult<T>>; (prompt: string, options?: HeadlessRunOptions): Promise<HeadlessRunInSessionResult<string>>; }
670
1038
  ```
671
1039
 
1040
+ ## `HistoricalCommand` (interface)
1041
+
1042
+ ```ts
1043
+ action: string
1044
+ deliveryId: string
1045
+ payload: unknown
1046
+ toolCallId: string | undefined
1047
+ ```
1048
+
672
1049
  ## `ImageUrlContentPart` (interface)
673
1050
 
674
1051
  ```ts
@@ -697,6 +1074,32 @@ direction: "host-to-agent"
697
1074
  payload: unknown
698
1075
  ```
699
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
+
700
1103
  ## `isCommandEnvelope` (function)
701
1104
 
702
1105
  ```ts
@@ -706,7 +1109,7 @@ isCommandEnvelope: (value: unknown) => value is CommandEnvelope
706
1109
  ## `isHiddenInternalMessage` (function)
707
1110
 
708
1111
  ```ts
709
- isHiddenInternalMessage: (message: Pick<ChatMessage, "role" | "content">) => boolean
1112
+ isHiddenInternalMessage: (message: Pick<ChatMessage, "role" | "content">, options?: { includeLegacyForkContext?: boolean; }) => boolean
710
1113
  ```
711
1114
 
712
1115
  ## `isInboundEnvelope` (function)
@@ -715,6 +1118,42 @@ isHiddenInternalMessage: (message: Pick<ChatMessage, "role" | "content">) => boo
715
1118
  isInboundEnvelope: (value: unknown) => value is InboundEnvelope
716
1119
  ```
717
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
+ ## `isQueuePanelVisible` (function)
1140
+
1141
+ ```ts
1142
+ isQueuePanelVisible: (snapshot: Pick<SessionQueueSnapshot, "items" | "paused">, notice: string | null | undefined, editing?: boolean) => boolean
1143
+ ```
1144
+
1145
+ ## `isSessionQueueSnapshot` (function)
1146
+
1147
+ ```ts
1148
+ isSessionQueueSnapshot: (value: unknown) => value is SessionQueueSnapshot
1149
+ ```
1150
+
1151
+ ## `isToolUiCard` (function)
1152
+
1153
+ ```ts
1154
+ isToolUiCard: (value: unknown) => value is ToolUiCard
1155
+ ```
1156
+
718
1157
  ## `latestPostChatFollowup` (function)
719
1158
 
720
1159
  ```ts
@@ -737,6 +1176,13 @@ export enum LayoutType {
737
1176
  }
738
1177
  ```
739
1178
 
1179
+ ## `LiveRevisionState` (interface)
1180
+
1181
+ ```ts
1182
+ byTurnId: ReadonlyMap<string, number>
1183
+ current: number
1184
+ ```
1185
+
740
1186
  ## `LlmAdvancedSettings` (interface)
741
1187
 
742
1188
  ```ts
@@ -819,6 +1265,20 @@ id: string
819
1265
  name: string
820
1266
  ```
821
1267
 
1268
+ ## `loadPlatformEndpoints` (function)
1269
+
1270
+ ```ts
1271
+ loadPlatformEndpoints: (options?: LoadPlatformEndpointsOptions) => Promise<PlatformEndpoints>
1272
+ ```
1273
+
1274
+ ## `LoadPlatformEndpointsOptions` (interface)
1275
+
1276
+ ```ts
1277
+ baseUrl: string | undefined
1278
+ fetchImpl: { (input: RequestInfo | URL, init?: RequestInit): Promise<Response>; (input: string | URL | Request, init?: RequestInit): Promise<Response>; } | undefined
1279
+ timeoutMs: number | undefined
1280
+ ```
1281
+
822
1282
  ## `LoginOptions` (interface)
823
1283
 
824
1284
  ```ts
@@ -849,6 +1309,64 @@ mode: "streaming" | "static" | undefined
849
1309
  sessionId: string | undefined
850
1310
  ```
851
1311
 
1312
+ ## `McpAppArchive` (interface)
1313
+
1314
+ ```ts
1315
+ html: string
1316
+ mimeType: string
1317
+ plugin: string
1318
+ previousToolInput: Record<string, unknown> | undefined
1319
+ previousToolResult: Record<string, unknown> | undefined
1320
+ resourceMeta: Record<string, unknown>
1321
+ resourceUri: string
1322
+ sourceId: string
1323
+ toolInput: Record<string, unknown>
1324
+ toolResult: Record<string, unknown>
1325
+ ```
1326
+
1327
+ ## `McpAppCard` (function)
1328
+
1329
+ ```ts
1330
+ McpAppCard: ({ sessionId, sourceId, client: suppliedClient, onMessage: suppliedOnMessage }: { sessionId: string; sourceId: string; client?: BladeClient; onMessage?: (message: McpAppMessage) => void; }) => JSX.Element
1331
+ ```
1332
+
1333
+ ## `McpAppContextState` (interface)
1334
+
1335
+ ```ts
1336
+ content: string
1337
+ plugin: string | null
1338
+ revision: string
1339
+ server_alias: string | null
1340
+ ```
1341
+
1342
+ ## `McpAppContextUpdate` (interface)
1343
+
1344
+ ```ts
1345
+ content: string
1346
+ expected_revision: string | null
1347
+ request_id: string
1348
+ ```
1349
+
1350
+ ## `McpAppData` (interface)
1351
+
1352
+ ```ts
1353
+ mimeType: string
1354
+ resourceMeta: Record<string, unknown>
1355
+ resourceUri: string
1356
+ sourceId: string
1357
+ toolInput: Record<string, unknown>
1358
+ toolResult: Record<string, unknown>
1359
+ ```
1360
+
1361
+ ## `McpAppMessage` (interface)
1362
+
1363
+ ```ts
1364
+ content: string
1365
+ label: string
1366
+ sessionId: string
1367
+ sourceId: string
1368
+ ```
1369
+
852
1370
  ## `MemoryRef` (interface)
853
1371
 
854
1372
  ```ts
@@ -865,6 +1383,18 @@ id: number
865
1383
  skill_name: string | null | undefined
866
1384
  ```
867
1385
 
1386
+ ## `MemoryRefsHint` (function)
1387
+
1388
+ ```ts
1389
+ MemoryRefsHint: ({ refs }: { refs: MemoryRefInfo[]; }) => JSX.Element
1390
+ ```
1391
+
1392
+ ## `mergeConnectorItems` (function)
1393
+
1394
+ ```ts
1395
+ mergeConnectorItems: (sessionPlugins: SessionPlugin[], catalog: PluginCatalogEntry[] | null) => PluginConnectorItem[]
1396
+ ```
1397
+
868
1398
  ## `MessageContent` (type)
869
1399
 
870
1400
  ```ts
@@ -890,6 +1420,8 @@ baseUrl: string | undefined
890
1420
  default: string
891
1421
  defaultServiceModel: string | undefined
892
1422
  models: ModelOption[]
1423
+ unavailableModelIds: string[] | undefined
1424
+ unavailableProviderIds: string[] | undefined
893
1425
  ```
894
1426
 
895
1427
  ## `ModelOption` (interface)
@@ -906,6 +1438,12 @@ serviceModelId: string | undefined
906
1438
  list: () => Promise<ModelCatalog>
907
1439
  ```
908
1440
 
1441
+ ## `normalizeAdjacentUrlFormatting` (function)
1442
+
1443
+ ```ts
1444
+ normalizeAdjacentUrlFormatting: (value: string) => string
1445
+ ```
1446
+
909
1447
  ## `normalizeMessageContent` (function)
910
1448
 
911
1449
  ```ts
@@ -936,6 +1474,32 @@ content: string
936
1474
  label: string
937
1475
  ```
938
1476
 
1477
+ ## `ParsedWhatIfPrompt` (interface)
1478
+
1479
+ ```ts
1480
+ fromStep: number | null
1481
+ quotes: WhatIfQuote[]
1482
+ userText: string
1483
+ ```
1484
+
1485
+ ## `parsePlanUpdate` (function)
1486
+
1487
+ ```ts
1488
+ parsePlanUpdate: (argumentsJson: string) => PlanUpdateData | null
1489
+ ```
1490
+
1491
+ ## `parseQueueAck` (function)
1492
+
1493
+ ```ts
1494
+ parseQueueAck: (response: unknown, fallbackSessionId: string) => QueueOperationResult
1495
+ ```
1496
+
1497
+ ## `parseWhatIfPrompt` (function)
1498
+
1499
+ ```ts
1500
+ parseWhatIfPrompt: (text: string) => ParsedWhatIfPrompt | null
1501
+ ```
1502
+
939
1503
  ## `PatchEnvelope` (interface)
940
1504
 
941
1505
  ```ts
@@ -946,6 +1510,146 @@ sequence: number
946
1510
  turn_id: string
947
1511
  ```
948
1512
 
1513
+ ## `pickCurrentPlanStep` (function)
1514
+
1515
+ ```ts
1516
+ pickCurrentPlanStep: (plan: PlanUpdateData["plan"]) => PlanUpdateData["plan"][number] | null
1517
+ ```
1518
+
1519
+ ## `PLAN_AUTO_COLLAPSE_MS` (const)
1520
+
1521
+ ```ts
1522
+ PLAN_AUTO_COLLAPSE_MS: 5000
1523
+ ```
1524
+
1525
+ ## `PlanStepStatus` (type)
1526
+
1527
+ ```ts
1528
+ export type PlanStepStatus = "pending" | "in_progress" | "completed"
1529
+ ```
1530
+
1531
+ ## `PlanUpdateBlock` (function)
1532
+
1533
+ ```ts
1534
+ PlanUpdateBlock: ({ toolCall, running, autoReveal, }: { toolCall: ToolCallInfo; running?: boolean; autoReveal?: boolean; }) => JSX.Element | null
1535
+ ```
1536
+
1537
+ ## `PlanUpdateData` (interface)
1538
+
1539
+ ```ts
1540
+ plan: { step: string; status: PlanStepStatus; }[]
1541
+ ```
1542
+
1543
+ ## `PlanUpdateDisplayState` (interface)
1544
+
1545
+ ```ts
1546
+ current: ToolCallInfo | null
1547
+ updating: boolean
1548
+ ```
1549
+
1550
+ ## `PlatformEndpoints` (interface)
1551
+
1552
+ ```ts
1553
+ services: Partial<Record<"agent" | "os" | "hub" | "oauth" | "llmGateway" | "gitea" | "tile", string>>
1554
+ ```
1555
+
1556
+ ## `PlatformServiceName` (type)
1557
+
1558
+ ```ts
1559
+ export type PlatformServiceName = (typeof PLATFORM_SERVICE_NAMES)[number]
1560
+ ```
1561
+
1562
+ ## `PluginCatalogEntry` (interface)
1563
+
1564
+ ```ts
1565
+ display_name: string | null
1566
+ icon: string | null
1567
+ installed: boolean
1568
+ name: string
1569
+ ```
1570
+
1571
+ ## `PluginConnectorItem` (interface)
1572
+
1573
+ ```ts
1574
+ active: boolean
1575
+ config: SessionPluginConfigSummary | undefined
1576
+ display_name: string | null
1577
+ icon: string | null
1578
+ iconSource: "account" | "session"
1579
+ installed: boolean | null
1580
+ name: string
1581
+ projected: boolean
1582
+ reason: string | null | undefined
1583
+ status: string
1584
+ ```
1585
+
1586
+ ## `PluginConnectorList` (function)
1587
+
1588
+ ```ts
1589
+ PluginConnectorList: ({ client, sessionId, items, inFlight, busy, mutationError, onToggle, onRetry, onEditConfig, configuring, onConfigSaved, onConfigClose, disabledReason, unavailableText, emptyText, draft, }: PluginConnectorListProps) => JSX.Element
1590
+ ```
1591
+
1592
+ ## `PluginConnectorListProps` (interface)
1593
+
1594
+ ```ts
1595
+ busy: boolean
1596
+ client: BladeClient
1597
+ configuring: ConfiguringPlugin | null
1598
+ disabledReason: string | null | undefined
1599
+ draft: boolean | undefined
1600
+ emptyText: string
1601
+ inFlight: Record<string, true>
1602
+ items: PluginConnectorItem[]
1603
+ mutationError: boolean
1604
+ onConfigClose: () => void
1605
+ onConfigSaved: (state: SessionPluginConfigState) => void
1606
+ onEditConfig: (item: PluginConnectorItem) => void
1607
+ onRetry: (item: PluginConnectorItem) => void
1608
+ onToggle: (item: PluginConnectorItem, next: boolean) => void
1609
+ sessionId: string | null
1610
+ unavailableText: string | null | undefined
1611
+ ```
1612
+
1613
+ ## `PluginConnectorSelection` (interface)
1614
+
1615
+ ```ts
1616
+ displayName: string | null
1617
+ icon: string | null
1618
+ iconSource: "account" | "session"
1619
+ name: string
1620
+ ```
1621
+
1622
+ ## `PluginsResource` (class)
1623
+
1624
+ ```ts
1625
+ catalog: (init?: RequestInit) => Promise<{ plugins: PluginCatalogEntry[]; }>
1626
+ fetchIcon: (name: string) => Promise<Blob>
1627
+ iconUrl: (name: string) => string
1628
+ ```
1629
+
1630
+ ## `PluginTriggerStack` (function)
1631
+
1632
+ ```ts
1633
+ PluginTriggerStack: ({ client, sessionId, summary, className }: PluginTriggerStackProps) => JSX.Element | null
1634
+ ```
1635
+
1636
+ ## `PluginTriggerStackProps` (interface)
1637
+
1638
+ ```ts
1639
+ className: string | undefined
1640
+ client: BladeClient
1641
+ sessionId: string | null
1642
+ summary: TriggerSummary
1643
+ ```
1644
+
1645
+ ## `PollingBackoff` (class)
1646
+
1647
+ ```ts
1648
+ failed: (error: unknown) => void
1649
+ reset: () => void
1650
+ waitMs: () => number | false
1651
+ ```
1652
+
949
1653
  ## `PostChatFollowup` (interface)
950
1654
 
951
1655
  ```ts
@@ -976,39 +1680,108 @@ bizRoleId: string | undefined
976
1680
  kind: "prepared"
977
1681
  ```
978
1682
 
979
- ## `PrimarySkillParallelMode` (interface)
1683
+ ## `prependOlder` (function)
1684
+
1685
+ ```ts
1686
+ prependOlder: (current: TurnProjection[], page: TurnProjection[]) => TurnProjection[]
1687
+ ```
1688
+
1689
+ ## `PreviewToolUiCardEntry` (interface)
1690
+
1691
+ ```ts
1692
+ blocks: ContentBlock[]
1693
+ card: ToolUiCard
1694
+ key: string
1695
+ toolCall: ToolCallInfo
1696
+ ```
1697
+
1698
+ ## `PrimarySkillParallelMode` (interface)
1699
+
1700
+ ```ts
1701
+ id: string
1702
+ name: string
1703
+ prompt_hint: string
1704
+ ```
1705
+
1706
+ ## `PrimarySkillSnapshot` (interface)
1707
+
1708
+ ```ts
1709
+ captured_at: string
1710
+ description: string
1711
+ parallel_modes: PrimarySkillParallelMode[]
1712
+ skill_id: string
1713
+ stages: PrimarySkillStageSpec[]
1714
+ title: string
1715
+ version: number
1716
+ ```
1717
+
1718
+ ## `ProvidersResponse` (interface)
1719
+
1720
+ ```ts
1721
+ password_enabled: boolean
1722
+ providers: { name: string; authorize_url: string; }[]
1723
+ ```
1724
+
1725
+ ## `PublishedSolutionRef` (type)
1726
+
1727
+ ```ts
1728
+ export type PublishedSolutionRef =
1729
+ | { source: "builtin"; name: string }
1730
+ | { source: "hub"; org: string; name: string }
1731
+ ```
1732
+
1733
+ ## `QueueAck` (interface)
1734
+
1735
+ ```ts
1736
+ items: QueuedMessage[] | undefined
1737
+ message: string | null | undefined
1738
+ pause_reason: string | null | undefined
1739
+ paused: boolean | undefined
1740
+ revision: number | undefined
1741
+ running: boolean | undefined
1742
+ session_id: string | undefined
1743
+ status: "error" | "ok" | "conflict" | "queued"
1744
+ ```
1745
+
1746
+ ## `QueuedMessage` (interface)
1747
+
1748
+ ```ts
1749
+ content: string
1750
+ created_at: string
1751
+ error: string | undefined
1752
+ id: string
1753
+ position: number
1754
+ status: QueuedMessageStatus
1755
+ target_run_id: string | undefined
1756
+ updated_at: string
1757
+ version: number
1758
+ ```
1759
+
1760
+ ## `QueuedMessageStatus` (type)
980
1761
 
981
1762
  ```ts
982
- id: string
983
- name: string
984
- prompt_hint: string
1763
+ export type QueuedMessageStatus = "pending" | "delivering" | "claimed" | "consumed" | "cancelled"
985
1764
  ```
986
1765
 
987
- ## `PrimarySkillSnapshot` (interface)
1766
+ ## `queuedMessageStatusLabel` (function)
988
1767
 
989
1768
  ```ts
990
- captured_at: string
991
- description: string
992
- parallel_modes: PrimarySkillParallelMode[]
993
- skill_id: string
994
- stages: PrimarySkillStageSpec[]
995
- title: string
996
- version: number
1769
+ queuedMessageStatusLabel: (status: QueuedMessageStatus) => string
997
1770
  ```
998
1771
 
999
- ## `ProvidersResponse` (interface)
1772
+ ## `QueueOperationResult` (interface)
1000
1773
 
1001
1774
  ```ts
1002
- password_enabled: boolean
1003
- providers: { name: string; authorize_url: string; }[]
1775
+ conflict: boolean
1776
+ message: string | null
1777
+ ok: boolean
1778
+ snapshot: SessionQueueSnapshot | null
1004
1779
  ```
1005
1780
 
1006
- ## `PublishedSolutionRef` (type)
1781
+ ## `queuePauseReasonLabel` (function)
1007
1782
 
1008
1783
  ```ts
1009
- export type PublishedSolutionRef =
1010
- | { source: "builtin"; name: string }
1011
- | { source: "hub"; org: string; name: string }
1784
+ queuePauseReasonLabel: (reason: string | null | undefined) => string | null
1012
1785
  ```
1013
1786
 
1014
1787
  ## `RawEvent` (interface)
@@ -1018,12 +1791,24 @@ payload: Record<string, unknown>
1018
1791
  type: string
1019
1792
  ```
1020
1793
 
1794
+ ## `reconcileHistoricalUserTurns` (function)
1795
+
1796
+ ```ts
1797
+ reconcileHistoricalUserTurns: (currentTurns: TurnProjection[], incomingTurns: TurnProjection[]) => TurnProjection[]
1798
+ ```
1799
+
1021
1800
  ## `reconcileOptimisticUserTurns` (function)
1022
1801
 
1023
1802
  ```ts
1024
1803
  reconcileOptimisticUserTurns: (currentTurns: TurnProjection[], incomingTurns: TurnProjection[]) => TurnProjection[]
1025
1804
  ```
1026
1805
 
1806
+ ## `replaceWindow` (function)
1807
+
1808
+ ```ts
1809
+ replaceWindow: (current: TurnProjection[], page: TurnProjection[], liveRevisionAtStart: number, liveRevisions: LiveRevisionState) => TurnProjection[]
1810
+ ```
1811
+
1027
1812
  ## `ReplayBar` (function)
1028
1813
 
1029
1814
  ```ts
@@ -1096,6 +1881,18 @@ speed: ReplaySpeed | undefined
1096
1881
  status: "replay" | "autonomous" | undefined
1097
1882
  ```
1098
1883
 
1884
+ ## `resolveServiceUrl` (function)
1885
+
1886
+ ```ts
1887
+ resolveServiceUrl: (endpoints: PlatformEndpoints, name: PlatformServiceName, path?: string) => string | null
1888
+ ```
1889
+
1890
+ ## `resolveToolUiCardContent` (function)
1891
+
1892
+ ```ts
1893
+ resolveToolUiCardContent: (card: ToolUiCard) => { type: ToolUiCardContentType; content: string; } | null
1894
+ ```
1895
+
1099
1896
  ## `ResultFeedback` (interface)
1100
1897
 
1101
1898
  ```ts
@@ -1163,17 +1960,52 @@ SDK_NAME: "agent-client"
1163
1960
  SDK_VERSION: string
1164
1961
  ```
1165
1962
 
1963
+ ## `selectionFromItem` (function)
1964
+
1965
+ ```ts
1966
+ selectionFromItem: (item: PluginConnectorItem) => PluginConnectorSelection
1967
+ ```
1968
+
1166
1969
  ## `SendOptions` (interface)
1167
1970
 
1168
1971
  ```ts
1169
1972
  askUserAnswer: Record<string, unknown> | undefined
1973
+ kbIds: number[] | undefined
1170
1974
  mode: string | undefined
1171
1975
  model: string | undefined
1976
+ queueWhenRunning: boolean | undefined
1172
1977
  replayDecision: "keep_replay" | "continue_replay" | undefined
1173
1978
  thinkingOverride: boolean | undefined
1174
1979
  whatif: { from_step: number; quotes: Array<Record<string, unknown>>; deprecate_entry_ids: string[]; } | undefined
1175
1980
  ```
1176
1981
 
1982
+ ## `SessionComputer` (interface)
1983
+
1984
+ ```ts
1985
+ agent_runtimes: unknown[] | undefined
1986
+ allowed_paths: string[] | undefined
1987
+ arch: string | null | undefined
1988
+ blade_home: string | null | undefined
1989
+ created_at: string
1990
+ daemon_version: string | null | undefined
1991
+ enabled: boolean
1992
+ home: string | null | undefined
1993
+ hostname: string | null | undefined
1994
+ id: string
1995
+ is_primary: boolean
1996
+ label: string
1997
+ last_seen_at: string | null | undefined
1998
+ online: boolean
1999
+ os: string | null | undefined
2000
+ workspace: string | null | undefined
2001
+ ```
2002
+
2003
+ ## `SessionComputerList` (interface)
2004
+
2005
+ ```ts
2006
+ computers: SessionComputer[]
2007
+ ```
2008
+
1177
2009
  ## `SessionConfig` (interface)
1178
2010
 
1179
2011
  ```ts
@@ -1185,6 +2017,12 @@ memoryEnabled: boolean | undefined
1185
2017
  model: string | undefined
1186
2018
  ```
1187
2019
 
2020
+ ## `SessionConnectOptions` (interface)
2021
+
2022
+ ```ts
2023
+ setup: ((session: AgentSession) => void) | undefined
2024
+ ```
2025
+
1188
2026
  ## `SessionContextStats` (interface)
1189
2027
 
1190
2028
  ```ts
@@ -1205,8 +2043,11 @@ solution: SolutionDefinition | undefined
1205
2043
  ## `SessionDetail` (interface)
1206
2044
 
1207
2045
  ```ts
2046
+ agent_runtime_id: string | null | undefined
2047
+ ba_version: string | null | undefined
1208
2048
  biz_role_id: string | null | undefined
1209
2049
  bound_skill_id: string | null | undefined
2050
+ chat_group_id: string | null | undefined
1210
2051
  created_at: string
1211
2052
  daemon_id: string | null | undefined
1212
2053
  disable_tools: (string[] & string[]) | undefined
@@ -1229,6 +2070,7 @@ primary_skill_id: string | null | undefined
1229
2070
  primary_skill_snapshot: PrimarySkillSnapshot | null | undefined
1230
2071
  replay_state: ReplayState | null | undefined
1231
2072
  runtime_type: string | null | undefined
2073
+ sandbox_version: string | null | undefined
1232
2074
  shared: boolean | undefined
1233
2075
  solution: Solution | null | undefined
1234
2076
  solution_id: string | null | undefined
@@ -1254,7 +2096,7 @@ tools_tokens: number | null | undefined
1254
2096
  ## `SessionHub` (class)
1255
2097
 
1256
2098
  ```ts
1257
- connect: (sessionId: string) => Promise<AgentSession>
2099
+ connect: (sessionId: string, options?: SessionConnectOptions) => Promise<AgentSession>
1258
2100
  disconnect: () => void
1259
2101
  disposeAll: () => void
1260
2102
  getConnection: () => ConnectionStatus
@@ -1297,11 +2139,190 @@ SessionInfo = type({
1297
2139
  "disable_tools?": "string[]",
1298
2140
  "runtime_type?": "string | null",
1299
2141
  "daemon_id?": "string | null",
2142
+ "agent_runtime_id?": "string | null",
1300
2143
  "workspace_path?": "string | null",
2144
+ "ba_version?": "string | null",
2145
+ "sandbox_version?": "string | null",
2146
+ "chat_group_id?": "string | null",
1301
2147
  "match?": "unknown",
1302
2148
  })
1303
2149
  ```
1304
2150
 
2151
+ ## `SessionMemoryToggle` (function)
2152
+
2153
+ ```ts
2154
+ SessionMemoryToggle: ({ sessionId, enabled, client: clientProp, disabled, label, className, labelClassName, inputClassName, onSaved, onError, }: SessionMemoryToggleProps) => JSX.Element
2155
+ ```
2156
+
2157
+ ## `SessionMemoryToggleProps` (interface)
2158
+
2159
+ ```ts
2160
+ className: string | undefined
2161
+ client: BladeClient | undefined
2162
+ disabled: boolean | undefined
2163
+ enabled: boolean
2164
+ inputClassName: string | undefined
2165
+ label: string | undefined
2166
+ labelClassName: string | undefined
2167
+ onError: ((error: unknown) => void) | undefined
2168
+ onSaved: ((sessionId: string, enabled: boolean) => void) | undefined
2169
+ sessionId: string
2170
+ ```
2171
+
2172
+ ## `SessionPlugin` (interface)
2173
+
2174
+ ```ts
2175
+ active: boolean
2176
+ config: SessionPluginConfigSummary | undefined
2177
+ display_name: string | null | undefined
2178
+ icon: string | null | undefined
2179
+ installed: boolean | null
2180
+ name: string
2181
+ projected: boolean
2182
+ projection_source: string | null | undefined
2183
+ reason: string | null | undefined
2184
+ status: string
2185
+ ```
2186
+
2187
+ ## `SessionPluginActivation` (type)
2188
+
2189
+ ```ts
2190
+ export type SessionPluginActivation = Pick<SessionPlugin, "name" | "active" | "status" | "reason">
2191
+ ```
2192
+
2193
+ ## `SessionPluginConfigDialog` (function)
2194
+
2195
+ ```ts
2196
+ SessionPluginConfigDialog: ({ client, sessionId, plugin, ...props }: SessionPluginConfigDialogProps) => JSX.Element
2197
+ ```
2198
+
2199
+ ## `SessionPluginConfigDialogProps` (interface)
2200
+
2201
+ ```ts
2202
+ client: BladeClient
2203
+ onClose: () => void
2204
+ onSaved: ((state: SessionPluginConfigState) => void) | undefined
2205
+ plugin: Pick<SessionPlugin, "name" | "display_name" | "icon">
2206
+ sessionId: string
2207
+ ```
2208
+
2209
+ ## `SessionPluginConfigDraft` (interface)
2210
+
2211
+ ```ts
2212
+ remove: string[]
2213
+ set: SessionPluginConfigSet[]
2214
+ ```
2215
+
2216
+ ## `SessionPluginConfigError` (interface)
2217
+
2218
+ ```ts
2219
+ message: string
2220
+ path: string
2221
+ ```
2222
+
2223
+ ## `SessionPluginConfigForm` (function)
2224
+
2225
+ ```ts
2226
+ SessionPluginConfigForm: ({ config, submitting, errors, failure, onSubmit, onCancel, }: SessionPluginConfigFormProps) => JSX.Element
2227
+ ```
2228
+
2229
+ ## `SessionPluginConfigFormProps` (interface)
2230
+
2231
+ ```ts
2232
+ config: SessionPluginConfigState
2233
+ errors: SessionPluginConfigError[]
2234
+ failure: string | null
2235
+ onCancel: () => void
2236
+ onSubmit: (draft: SessionPluginConfigDraft) => void
2237
+ submitting: boolean
2238
+ ```
2239
+
2240
+ ## `SessionPluginConfigSet` (interface)
2241
+
2242
+ ```ts
2243
+ path: string
2244
+ value: unknown
2245
+ ```
2246
+
2247
+ ## `SessionPluginConfigState` (interface)
2248
+
2249
+ ```ts
2250
+ errors: SessionPluginConfigError[]
2251
+ reason: string | null
2252
+ revision: string | null
2253
+ schema: Record<string, unknown> | null
2254
+ state: SessionPluginConfigStateName
2255
+ values: Record<string, unknown>
2256
+ write_only: string[]
2257
+ ```
2258
+
2259
+ ## `SessionPluginConfigStateName` (type)
2260
+
2261
+ ```ts
2262
+ export type SessionPluginConfigStateName = "not_required" | "required" | "configured" | "error"
2263
+ ```
2264
+
2265
+ ## `SessionPluginConfigSummary` (type)
2266
+
2267
+ ```ts
2268
+ export type SessionPluginConfigSummary =
2269
+ | SessionPluginConfigStateName
2270
+ | "unchecked"
2271
+ ```
2272
+
2273
+ ## `SessionPluginConfigUpdate` (interface)
2274
+
2275
+ ```ts
2276
+ expected_revision: string | null | undefined
2277
+ remove: string[] | undefined
2278
+ set: SessionPluginConfigSet[] | undefined
2279
+ ```
2280
+
2281
+ ## `SessionPluginIcon` (function)
2282
+
2283
+ ```ts
2284
+ SessionPluginIcon: ({ client, sessionId, plugin, size, shape, className }: SessionPluginIconProps) => JSX.Element
2285
+ ```
2286
+
2287
+ ## `SessionPluginIconProps` (interface)
2288
+
2289
+ ```ts
2290
+ className: string | undefined
2291
+ client: BladeClient
2292
+ plugin: Pick<SessionPlugin, "name" | "icon">
2293
+ sessionId: string | null
2294
+ shape: "rounded" | "circle" | undefined
2295
+ size: number | undefined
2296
+ ```
2297
+
2298
+ ## `sessionPluginLabel` (function)
2299
+
2300
+ ```ts
2301
+ sessionPluginLabel: (plugin: Pick<SessionPlugin, "name" | "display_name">) => string
2302
+ ```
2303
+
2304
+ ## `SessionPluginLabelProps` (interface)
2305
+
2306
+ ```ts
2307
+ plugin: Pick<SessionPlugin, "name" | "display_name">
2308
+ ```
2309
+
2310
+ ## `SessionPluginSelector` (function)
2311
+
2312
+ ```ts
2313
+ SessionPluginSelector: (props: SessionPluginSelectorProps) => JSX.Element
2314
+ ```
2315
+
2316
+ ## `SessionPluginSelectorProps` (interface)
2317
+
2318
+ ```ts
2319
+ className: string | undefined
2320
+ client: BladeClient
2321
+ onChange: ((plugin: SessionPluginActivation) => void) | undefined
2322
+ sessionId: string
2323
+ side: "top" | "bottom" | undefined
2324
+ ```
2325
+
1305
2326
  ## `SessionPortMapping` (interface)
1306
2327
 
1307
2328
  ```ts
@@ -1321,6 +2342,42 @@ model: string | undefined
1321
2342
  solution: SolutionRef | undefined
1322
2343
  ```
1323
2344
 
2345
+ ## `SessionQueuePanel` (function)
2346
+
2347
+ ```ts
2348
+ SessionQueuePanel: ({ snapshot, canDeliver, pendingItemId, notice, onResume, onCancel, onEdit, onRequeue, onMove, onReorder, onDeliver, contentWidthClassName, rootClassName, onVisibleChange, mergesWithInputBelow: mergesWithInputBelowProp, }: SessionQueuePanelProps) => JSX.Element | null
2349
+ ```
2350
+
2351
+ ## `SessionQueuePanelProps` (interface)
2352
+
2353
+ ```ts
2354
+ canDeliver: boolean
2355
+ contentWidthClassName: string | undefined
2356
+ mergesWithInputBelow: boolean | undefined
2357
+ notice: string | null | undefined
2358
+ onCancel: (item: QueuedMessage) => void
2359
+ onDeliver: (item: QueuedMessage) => void
2360
+ onEdit: (item: QueuedMessage, content: string) => boolean | undefined | Promise<boolean>
2361
+ onMove: (item: QueuedMessage, delta: -1 | 1) => void
2362
+ onReorder: (orderedIds: string[]) => void
2363
+ onRequeue: ((content: string) => Promise<boolean>) | undefined
2364
+ onResume: () => void
2365
+ onVisibleChange: ((visible: boolean) => void) | undefined
2366
+ pendingItemId: string | null | undefined
2367
+ rootClassName: string | undefined
2368
+ snapshot: SessionQueueSnapshot
2369
+ ```
2370
+
2371
+ ## `SessionQueueSnapshot` (interface)
2372
+
2373
+ ```ts
2374
+ items: QueuedMessage[]
2375
+ pause_reason: string | null
2376
+ paused: boolean
2377
+ revision: number
2378
+ session_id: string
2379
+ ```
2380
+
1324
2381
  ## `SessionSetupError` (class)
1325
2382
 
1326
2383
  ```ts
@@ -1342,6 +2399,7 @@ export type SessionSetupStage = "solution" | "session" | "skill" | "connection"
1342
2399
 
1343
2400
  ```ts
1344
2401
  attachAppCli: (sessionId: string, definition: AppCliDefinition) => Promise<AppCliAttachment>
2402
+ callMcpApp: (sessionId: string, sourceId: string, request: { request_id: string; name: string; arguments: Record<string, unknown>; }, init?: RequestInit) => Promise<{ response: Record<string, unknown>; replayed: boolean; }>
1345
2403
  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; }>
1346
2404
  connect: (sessionId: string) => Promise<AgentSession>
1347
2405
  copyFile: (sessionId: string, filePath: string) => Promise<{ path: string; }>
@@ -1355,24 +2413,33 @@ deleteFile: (sessionId: string, filePath: string) => Promise<void>
1355
2413
  deleteSession: (sessionId: string, options?: { deleteWorkspace?: boolean; }) => Promise<{ deleted: boolean; workspace_deleted?: boolean; }>
1356
2414
  downloadFile: (sessionId: string, filePath: string, downloadName?: string) => Promise<void>
1357
2415
  exportSession: (sessionId: string) => Promise<void>
2416
+ fetchSessionPluginIcon: (sessionId: string, name: string) => Promise<Blob>
1358
2417
  getBackgroundTask: (sessionId: string, taskId: string, tail?: number, init?: RequestInit) => Promise<BackgroundTask>
1359
2418
  getDownloadDirUrl: (sessionId: string, dirPath: string) => string
2419
+ getMcpApp: (sessionId: string, sourceId: string, init?: RequestInit) => Promise<McpAppArchive>
2420
+ getMcpAppContext: (sessionId: string, sourceId: string, init?: RequestInit) => Promise<McpAppContextState>
1360
2421
  getReplayPreview: (sessionId: string) => Promise<ReplayPreview>
1361
2422
  getSession: (sessionId: string, init?: RequestInit) => Promise<SessionDetail>
1362
2423
  getSessionCheckpoints: (sessionId: string, init?: RequestInit) => Promise<{ nodes: CheckpointNode[]; leaf_id: string | null; }>
1363
2424
  getSessionContextStats: (sessionId: string, init?: RequestInit) => Promise<SessionContextStats>
1364
2425
  getSessionHistory: (sessionId: string, init?: RequestInit) => Promise<SessionHistory>
2426
+ getSessionPluginConfig: (sessionId: string, name: string, init?: RequestInit) => Promise<{ plugin: string; config: SessionPluginConfigState; }>
1365
2427
  getSessionTasks: (sessionId: string) => Promise<Task[]>
2428
+ getSessionTurnCommands: (sessionId: string) => Promise<HistoricalCommand[]>
1366
2429
  getSessionTurns: (sessionId: string) => Promise<TurnProjection[]>
2430
+ getSessionTurnsPage: (sessionId: string, options?: { limit?: number; before?: string; }) => Promise<SessionTurnsPage>
1367
2431
  getSharedSession: (token: string) => Promise<TurnProjection[]>
1368
2432
  importSession: (file: File, name?: string, solutionOverride?: string | null | ImportSessionOptions) => Promise<{ session_id: string; }>
1369
2433
  listBackgroundTasks: (sessionId: string, init?: RequestInit) => Promise<BackgroundTask[]>
1370
2434
  listDir: (sessionId: string, dirPath: string) => Promise<FileEntry[]>
1371
2435
  listResultFeedback: (sessionId: string) => Promise<ResultFeedback[]>
2436
+ listSessionPlugins: (sessionId: string, init?: RequestInit) => Promise<{ plugins: SessionPlugin[]; sync_version: number; sync_pending: boolean; }>
1372
2437
  listSessions: (template_id_prefix?: string, solution_id?: string) => Promise<SessionInfo[]>
1373
- listSessionsPaginated: (params: { limit: number; offset: number; template_id_prefix?: string; solution_id?: string; solution_registry_id?: string; q?: string; }) => Promise<PaginatedSessionsResult>
2438
+ 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>
1374
2439
  listSessionsWithSkillData: () => Promise<SkillDevSession[]>
2440
+ onMcpAppChanged: (sessionId: string, sourceId: string, listener: () => void) => () => void
1375
2441
  pinSession: (sessionId: string, pinned: boolean) => Promise<SessionInfo>
2442
+ prepareSessionPluginConfig: (sessionId: string, name: string, init?: RequestInit) => Promise<{ plugin: string; config: SessionPluginConfigState; }>
1376
2443
  previewImport: (file: File) => Promise<ImportPreview>
1377
2444
  probeSessionUrl: (sessionId: string, url: string) => Promise<{ reachable: boolean; requires_proxy: boolean; }>
1378
2445
  putResultFeedback: (sessionId: string, assistantEntryId: string, feedback: { helpful: boolean; reason?: ResultFeedbackReason | null; }) => Promise<ResultFeedback>
@@ -1380,16 +2447,20 @@ renameFile: (sessionId: string, filePath: string, newName: string) => Promise<{
1380
2447
  revokeShare: (sessionId: string, token: string) => Promise<{ revoked: boolean; }>
1381
2448
  rewindSession: (sessionId: string, checkpointId: string) => Promise<{ id: string; content: string; }>
1382
2449
  searchOwnedContent: (params: { q: string; limit?: number; }) => Promise<GlobalSearchResult>
2450
+ sessionPluginIconUrl: (sessionId: string, name: string) => string
1383
2451
  setSessionEnv: (sessionId: string, env: Record<string, string>) => Promise<SessionDetail>
2452
+ setSessionPluginActivation: (sessionId: string, name: string, active: boolean, init?: RequestInit) => Promise<{ plugin: SessionPluginActivation; sync_version: number; }>
1384
2453
  shareFile: (sessionId: string, sourcePath: string, linkName?: string, shareFolder?: string) => Promise<{ path: string; target: string; }>
1385
2454
  startReplaySession: (sourceSessionId: string, speed?: ReplaySpeed) => Promise<{ session_id: string; }>
1386
2455
  stopBackgroundTask: (sessionId: string, taskId: string) => Promise<BackgroundTaskStopResult>
1387
2456
  switchBranch: (sessionId: string, checkpointId: string) => Promise<{ id: string; leaf_id: string; }>
1388
2457
  tokenizeMessages: (messages: Array<Record<string, unknown>>, options?: { model?: string; add_generation_prompt?: boolean; enable_thinking?: boolean | null; tools?: Array<Record<string, unknown>>; }) => Promise<TokenizeResult>
1389
2458
  tokenizePrompt: (prompt: string, model?: string) => Promise<TokenizeResult>
2459
+ updateMcpAppContext: (sessionId: string, sourceId: string, body: McpAppContextUpdate, init?: RequestInit) => Promise<{ status: "accepted"; revision: string; }>
1390
2460
  updateReplaySession: (sessionId: string, payload: { speed?: ReplaySpeed; status?: "autonomous"; }) => Promise<{ replay_state: SessionInfo["replay_state"]; }>
1391
- updateSession: (sessionId: string, payload: { intent?: string; }) => Promise<SessionDetail>
2461
+ updateSession: (sessionId: string, payload: { intent?: string; chat_group_id?: string | null; }) => Promise<SessionDetail>
1392
2462
  updateSessionMemory: (sessionId: string, memoryEnabled: boolean) => Promise<{ memory_enabled: boolean; }>
2463
+ updateSessionPluginConfig: (sessionId: string, name: string, update: SessionPluginConfigUpdate, init?: RequestInit) => Promise<{ plugin: string; config: SessionPluginConfigState; }>
1393
2464
  updateSharing: (sessionId: string, shared: boolean) => Promise<{ shared: boolean; }>
1394
2465
  uploadFiles: (sessionId: string, dirPath: string, files: FileList | File[] | UploadFileEntry[], options?: UploadFilesOptions) => Promise<{ uploaded: string[]; failed: string[]; }>
1395
2466
  writeFile: (sessionId: string, filePath: string, content: string) => Promise<{ success: boolean; }>
@@ -1404,8 +2475,11 @@ askAnswers: Record<string, AskUserAnswerData>
1404
2475
  connection: ConnectionStatus
1405
2476
  errorMessage: string | null
1406
2477
  isStreaming: boolean
2478
+ loadingOlder: boolean
1407
2479
  messages: ChatMessage[]
1408
2480
  mode: "planning" | "executing" | null
2481
+ nextBefore: string | null
2482
+ queue: SessionQueueSnapshot
1409
2483
  replay: ReplaySnapshot | null
1410
2484
  sessionId: string
1411
2485
  status: "completed" | "failed" | "interrupted" | "running" | "created" | "waiting_for_input" | null
@@ -1421,6 +2495,14 @@ SessionStatus = type(
1421
2495
  )
1422
2496
  ```
1423
2497
 
2498
+ ## `SessionTurnsPage` (interface)
2499
+
2500
+ ```ts
2501
+ currentMode: "planning" | "executing"
2502
+ nextBefore: string | null
2503
+ turns: TurnProjection[]
2504
+ ```
2505
+
1424
2506
  ## `ShareLinkResult` (interface)
1425
2507
 
1426
2508
  ```ts
@@ -1429,6 +2511,30 @@ token: string
1429
2511
  url: string
1430
2512
  ```
1431
2513
 
2514
+ ## `shouldApplySnapshot` (function)
2515
+
2516
+ ```ts
2517
+ shouldApplySnapshot: (current: SessionQueueSnapshot | undefined, next: SessionQueueSnapshot) => boolean
2518
+ ```
2519
+
2520
+ ## `SiteVisitsResource` (class)
2521
+
2522
+ ```ts
2523
+ record: () => Promise<SiteVisitsSummary>
2524
+ summary: () => Promise<SiteVisitsSummary>
2525
+ ```
2526
+
2527
+ ## `SiteVisitsSummary` (interface)
2528
+
2529
+ ```ts
2530
+ as_of: string
2531
+ date: string
2532
+ timezone: string
2533
+ today_pv: number
2534
+ today_uv: number
2535
+ total_pv: number
2536
+ ```
2537
+
1432
2538
  ## `SkillDefinition` (interface)
1433
2539
 
1434
2540
  ```ts
@@ -1513,6 +2619,12 @@ export type SolutionDefinition =
1513
2619
  export type SolutionRef = ExistingSolutionRef | PreparedSolutionAsset
1514
2620
  ```
1515
2621
 
2622
+ ## `sortComputers` (function)
2623
+
2624
+ ```ts
2625
+ sortComputers: (computers: SessionComputer[]) => SessionComputer[]
2626
+ ```
2627
+
1516
2628
  ## `Task` (type)
1517
2629
 
1518
2630
  ```ts
@@ -1592,6 +2704,31 @@ status: "done" | "error" | "cancelled" | "awaiting_answer" | "pending" | undefin
1592
2704
  export type ToolCallRenderer = (info: ToolCallInfo) => ReactNode | null
1593
2705
  ```
1594
2706
 
2707
+ ## `ToolUiCard` (interface)
2708
+
2709
+ ```ts
2710
+ archived: boolean | undefined
2711
+ height: number
2712
+ mcpApp: McpAppData | undefined
2713
+ resourceHTML: string | undefined
2714
+ resourceUri: string | undefined
2715
+ resourceURI: string | undefined
2716
+ target: "inline" | "preview"
2717
+ title: string | undefined
2718
+ ```
2719
+
2720
+ ## `ToolUiCardContentType` (type)
2721
+
2722
+ ```ts
2723
+ export type ToolUiCardContentType = "resource-html" | "resource-uri"
2724
+ ```
2725
+
2726
+ ## `ToolUiCardView` (function)
2727
+
2728
+ ```ts
2729
+ ToolUiCardView: ({ card, sessionId }: { card: ToolUiCard; sessionId?: string; }) => JSX.Element | null
2730
+ ```
2731
+
1595
2732
  ## `toReplaySnapshot` (function)
1596
2733
 
1597
2734
  ```ts
@@ -1604,6 +2741,26 @@ toReplaySnapshot: (raw: ReplayState | null | undefined) => ReplaySnapshot | null
1604
2741
  transformSlashCommand: (skillName: string, rawInput: string, { local, installed }?: SkillMentionAvailability) => string
1605
2742
  ```
1606
2743
 
2744
+ ## `TRIGGER_ICON_LIMIT` (const)
2745
+
2746
+ ```ts
2747
+ TRIGGER_ICON_LIMIT: 3
2748
+ ```
2749
+
2750
+ ## `triggerSummary` (function)
2751
+
2752
+ ```ts
2753
+ triggerSummary: (items: Array<Pick<PluginConnectorSelection, "name" | "displayName" | "icon" | "iconSource">>) => TriggerSummary
2754
+ ```
2755
+
2756
+ ## `TriggerSummary` (interface)
2757
+
2758
+ ```ts
2759
+ overflow: number
2760
+ total: number
2761
+ visible: Pick<PluginConnectorSelection, "name" | "iconSource" | "icon" | "displayName">[]
2762
+ ```
2763
+
1607
2764
  ## `TurnProjection` (interface)
1608
2765
 
1609
2766
  ```ts
@@ -1612,13 +2769,26 @@ archived_files: ArchivedFileInfo[] | null | undefined
1612
2769
  archived_tool_calls: ArchivedToolCallInfo[] | null | undefined
1613
2770
  blocks: ContentBlock[]
1614
2771
  client_render_id: string | null | undefined
2772
+ client_request_id: string | null | undefined
1615
2773
  compaction_id: string | null | undefined
2774
+ context_action: ContextAction | null | undefined
2775
+ context_content: unknown
2776
+ context_key: string | null | undefined
2777
+ context_kind: string | null | undefined
2778
+ context_name: string | null | undefined
2779
+ context_order: number | null | undefined
2780
+ context_revision: string | null | undefined
1616
2781
  context_window: number | undefined
1617
- duration_ms: number | undefined
2782
+ display_summary: string | null | undefined
2783
+ display_title: string | null | undefined
2784
+ duration_ms: number | null | undefined
1618
2785
  failure_reason: string | null | undefined
1619
2786
  fallback_applied: boolean | null | undefined
2787
+ first_token_delivery_ms: number | null | undefined
2788
+ first_token_ms: number | null | undefined
2789
+ has_reported_timing: boolean | undefined
1620
2790
  id: string
1621
- kind: "message" | "compaction" | undefined
2791
+ kind: "message" | "context" | "compaction" | undefined
1622
2792
  loop_id: string
1623
2793
  memory_refs: MemoryRef[] | null | undefined
1624
2794
  model: string | null | undefined
@@ -1627,8 +2797,10 @@ post_chat_followup: PostChatFollowup | null | undefined
1627
2797
  role: "user" | "assistant" | "system"
1628
2798
  saved_ratio: number | null | undefined
1629
2799
  sequence: number
2800
+ sources: ContextSourceInfo[] | null | undefined
1630
2801
  started_at: string | null | undefined
1631
2802
  status: "streaming" | "completed" | "paused" | "failed" | "interrupted"
2803
+ stream_duration_ms: number | null | undefined
1632
2804
  summary_full: string | null | undefined
1633
2805
  summary_preview: string | null | undefined
1634
2806
  tokens_after: number | null | undefined
@@ -1675,6 +2847,7 @@ useAgentSession: (sessionId?: string, options?: UseAgentSessionOptions) => UseAg
1675
2847
 
1676
2848
  ```ts
1677
2849
  createOptions: CreateSessionRequest | undefined
2850
+ onSessionConnected: ((session: AgentSession) => () => void) | undefined
1678
2851
  onSessionCreated: ((sessionId: string) => void) | undefined
1679
2852
  ```
1680
2853
 
@@ -1709,6 +2882,30 @@ send: (text: string) => Promise<boolean>
1709
2882
  stop: () => void
1710
2883
  ```
1711
2884
 
2885
+ ## `useMessagePin` (function)
2886
+
2887
+ ```ts
2888
+ useMessagePin: ({ targetKey, pinTarget, isStreaming, layoutKey, getScrollElement, getContentElement, getTargetElement, getTargetScrollTop, getSpacerHeight, setSpacerHeight, stopAutoScroll, scrollToBottom, margin, }: UseMessagePinOptions) => { release: () => void; isActive: () => boolean; }
2889
+ ```
2890
+
2891
+ ## `UseMessagePinOptions` (interface)
2892
+
2893
+ ```ts
2894
+ getContentElement: (() => HTMLElement | null) | undefined
2895
+ getScrollElement: () => HTMLElement | null
2896
+ getSpacerHeight: () => number
2897
+ getTargetElement: () => HTMLElement | null
2898
+ getTargetScrollTop: ((scroll: HTMLElement) => number | null) | undefined
2899
+ isStreaming: boolean | undefined
2900
+ layoutKey: string | undefined
2901
+ margin: number | undefined
2902
+ pinTarget: boolean
2903
+ scrollToBottom: () => void
2904
+ setSpacerHeight: (height: number) => void
2905
+ stopAutoScroll: () => void
2906
+ targetKey: string | null
2907
+ ```
2908
+
1712
2909
  ## `useReplay` (function)
1713
2910
 
1714
2911
  ```ts
@@ -1743,3 +2940,62 @@ token: string
1743
2940
  username: string
1744
2941
  ```
1745
2942
 
2943
+ ## `useSessionPluginActivation` (function)
2944
+
2945
+ ```ts
2946
+ useSessionPluginActivation: ({ client, sessionId, onChange, }: { client: BladeClient; sessionId: string; onChange?: (plugin: SessionPluginActivation) => void; }) => UseSessionPluginActivationResult
2947
+ ```
2948
+
2949
+ ## `UseSessionPluginActivationResult` (interface)
2950
+
2951
+ ```ts
2952
+ busy: boolean
2953
+ configuring: ConfiguringPlugin | null
2954
+ editConfig: (item: PluginConnectorItem) => void
2955
+ inFlight: Record<string, true>
2956
+ items: PluginConnectorItem[]
2957
+ listError: boolean
2958
+ loading: boolean
2959
+ mutationError: boolean
2960
+ onConfigClose: () => void
2961
+ onConfigSaved: (state: SessionPluginConfigState) => void
2962
+ reload: () => void
2963
+ retry: (item: PluginConnectorItem) => void
2964
+ toggle: (item: PluginConnectorItem, next: boolean) => void
2965
+ ```
2966
+
2967
+ ## `useTypewriterReveal` (function)
2968
+
2969
+ ```ts
2970
+ useTypewriterReveal: (targetText: string, isLive: boolean, resetKey: string | null) => UseTypewriterRevealResult
2971
+ ```
2972
+
2973
+ ## `UseTypewriterRevealResult` (interface)
2974
+
2975
+ ```ts
2976
+ displayedText: string
2977
+ flushNow: () => void
2978
+ isRevealing: boolean
2979
+ ```
2980
+
2981
+ ## `WhatIfQuote` (interface)
2982
+
2983
+ ```ts
2984
+ label: string
2985
+ snapshot: string
2986
+ stepNumber: number | null
2987
+ ```
2988
+
2989
+ ## `WhatIfUserBubble` (function)
2990
+
2991
+ ```ts
2992
+ WhatIfUserBubble: ({ parsed, onQuoteClick }: WhatIfUserBubbleProps) => JSX.Element
2993
+ ```
2994
+
2995
+ ## `WhatIfUserBubbleProps` (interface)
2996
+
2997
+ ```ts
2998
+ onQuoteClick: ((stepNumber: number) => void) | undefined
2999
+ parsed: ParsedWhatIfPrompt
3000
+ ```
3001
+