@get-bb/plugin-sdk 0.5.31 → 0.6.9

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.
@@ -97,6 +97,7 @@ type PluginRpcResult<Method extends PluginRpcMethodContract> = StandardSchemaV1I
97
97
 
98
98
  declare const appSettingsSchema: z$1.ZodObject<{
99
99
  allowFastServiceTier: z$1.ZodBoolean;
100
+ confirmThreadArchive: z$1.ZodBoolean;
100
101
  defaultMachineAccess: z$1.ZodNullable<z$1.ZodString>;
101
102
  defaultProviderId: z$1.ZodNullable<z$1.ZodString>;
102
103
  machineGitCredentialsEnabled: z$1.ZodBoolean;
@@ -116,6 +117,7 @@ declare const appSettingsSchema: z$1.ZodObject<{
116
117
  type AppSettings = z$1.infer<typeof appSettingsSchema>;
117
118
  declare const appSettingsUpdateSchema: z$1.ZodUnion<readonly [z$1.ZodObject<{
118
119
  allowFastServiceTier: z$1.ZodOptional<z$1.ZodBoolean>;
120
+ confirmThreadArchive: z$1.ZodOptional<z$1.ZodBoolean>;
119
121
  defaultMachineAccess: z$1.ZodNullable<z$1.ZodString>;
120
122
  defaultProviderId: z$1.ZodNullable<z$1.ZodString>;
121
123
  machineGitCredentialsEnabled: z$1.ZodBoolean;
@@ -134,6 +136,7 @@ declare const appSettingsUpdateSchema: z$1.ZodUnion<readonly [z$1.ZodObject<{
134
136
  telemetryEnabled: z$1.ZodOptional<z$1.ZodBoolean>;
135
137
  }, z$1.core.$strict>, z$1.ZodObject<{
136
138
  allowFastServiceTier: z$1.ZodOptional<z$1.ZodBoolean>;
139
+ confirmThreadArchive: z$1.ZodOptional<z$1.ZodBoolean>;
137
140
  defaultMachineAccess: z$1.ZodNullable<z$1.ZodString>;
138
141
  defaultProviderId: z$1.ZodNullable<z$1.ZodString>;
139
142
  machineGitCredentialsEnabled: z$1.ZodBoolean;
@@ -285,6 +288,11 @@ declare const appKeybindingOverridesSchema: z$1.ZodArray<z$1.ZodObject<{
285
288
  "window.new": "window.new";
286
289
  "workspace.openPreferred": "workspace.openPreferred";
287
290
  }>, z$1.ZodTemplateLiteral<`plugin:${string}/${string}`>]>;
291
+ platform: z$1.ZodOptional<z$1.ZodEnum<{
292
+ linux: "linux";
293
+ mac: "mac";
294
+ windows: "windows";
295
+ }>>;
288
296
  shortcut: z$1.ZodNullable<z$1.ZodObject<{
289
297
  alt: z$1.ZodBoolean;
290
298
  control: z$1.ZodBoolean;
@@ -345,7 +353,6 @@ declare const changedMessageSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
345
353
  "events-appended": "events-appended";
346
354
  "history-rewritten": "history-rewritten";
347
355
  "interactions-changed": "interactions-changed";
348
- "order-changed": "order-changed";
349
356
  "parent-changed": "parent-changed";
350
357
  "pin-state-changed": "pin-state-changed";
351
358
  "queue-changed": "queue-changed";
@@ -530,9 +537,7 @@ type Environment = z$1.infer<typeof environmentSchema>;
530
537
  declare const experimentsSchema: z$1.ZodRecord<z$1.ZodEnum<{
531
538
  changelogPreview: "changelogPreview";
532
539
  legacyJitiPluginLoader: "legacyJitiPluginLoader";
533
- mobileApp: "mobileApp";
534
540
  serverMove: "serverMove";
535
- sidebarProgressiveDisclosure: "sidebarProgressiveDisclosure";
536
541
  }>, z$1.ZodBoolean>;
537
542
  type Experiments = z$1.infer<typeof experimentsSchema>;
538
543
 
@@ -635,7 +640,7 @@ declare const threadEventItemPresentationSchema: z$1.ZodObject<{
635
640
  }, z$1.core.$strip>;
636
641
  type ThreadEventItemPresentation = z$1.infer<typeof threadEventItemPresentationSchema>;
637
642
 
638
- declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readonly [z$1.ZodIntersection<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
643
+ declare const threadEventSchema: z$1.ZodUnion<readonly [z$1.ZodIntersection<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
639
644
  threadId: z$1.ZodString;
640
645
  type: z$1.ZodLiteral<"thread/started">;
641
646
  }, z$1.core.$strip>, z$1.ZodObject<{
@@ -2851,7 +2856,7 @@ declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readon
2851
2856
  input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
2852
2857
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
2853
2858
  end: z$1.ZodNumber;
2854
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
2859
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
2855
2860
  kind: z$1.ZodLiteral<"thread">;
2856
2861
  label: z$1.ZodString;
2857
2862
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -2900,7 +2905,7 @@ declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readon
2900
2905
  kind: z$1.ZodLiteral<"plugin">;
2901
2906
  label: z$1.ZodString;
2902
2907
  pluginId: z$1.ZodString;
2903
- }, z$1.core.$strip>], "kind">>;
2908
+ }, z$1.core.$strip>], "kind">, unknown>;
2904
2909
  start: z$1.ZodNumber;
2905
2910
  }, z$1.core.$strip>>>;
2906
2911
  text: z$1.ZodString;
@@ -2933,7 +2938,7 @@ declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readon
2933
2938
  inputGroups: z$1.ZodOptional<z$1.ZodArray<z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
2934
2939
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
2935
2940
  end: z$1.ZodNumber;
2936
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
2941
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
2937
2942
  kind: z$1.ZodLiteral<"thread">;
2938
2943
  label: z$1.ZodString;
2939
2944
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -2982,7 +2987,7 @@ declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readon
2982
2987
  kind: z$1.ZodLiteral<"plugin">;
2983
2988
  label: z$1.ZodString;
2984
2989
  pluginId: z$1.ZodString;
2985
- }, z$1.core.$strip>], "kind">>;
2990
+ }, z$1.core.$strip>], "kind">, unknown>;
2986
2991
  start: z$1.ZodNumber;
2987
2992
  }, z$1.core.$strip>>>;
2988
2993
  text: z$1.ZodString;
@@ -3127,8 +3132,6 @@ declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readon
3127
3132
  code: z$1.ZodOptional<z$1.ZodString>;
3128
3133
  detail: z$1.ZodOptional<z$1.ZodString>;
3129
3134
  message: z$1.ZodString;
3130
- reconnectAttempt: z$1.ZodOptional<z$1.ZodNumber>;
3131
- reconnectTotal: z$1.ZodOptional<z$1.ZodNumber>;
3132
3135
  threadId: z$1.ZodString;
3133
3136
  type: z$1.ZodLiteral<"system/error">;
3134
3137
  }, z$1.core.$strip>, z$1.ZodObject<{
@@ -3537,7 +3540,7 @@ declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readon
3537
3540
  kind: z$1.ZodLiteral<"turn">;
3538
3541
  turnId: z$1.ZodString;
3539
3542
  }, z$1.core.$strip>], "kind">;
3540
- }, z$1.core.$strip>>]>>;
3543
+ }, z$1.core.$strip>>]>;
3541
3544
  type ThreadEvent = z$1.infer<typeof threadEventSchema>;
3542
3545
  type ThreadEventType = ThreadEvent["type"];
3543
3546
 
@@ -3912,7 +3915,7 @@ type PermissionMode = z$1.infer<typeof permissionModeSchema>;
3912
3915
  declare const promptInputSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
3913
3916
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
3914
3917
  end: z$1.ZodNumber;
3915
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
3918
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
3916
3919
  kind: z$1.ZodLiteral<"thread">;
3917
3920
  label: z$1.ZodString;
3918
3921
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -3961,7 +3964,7 @@ declare const promptInputSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
3961
3964
  kind: z$1.ZodLiteral<"plugin">;
3962
3965
  label: z$1.ZodString;
3963
3966
  pluginId: z$1.ZodString;
3964
- }, z$1.core.$strip>], "kind">>;
3967
+ }, z$1.core.$strip>], "kind">, unknown>;
3965
3968
  start: z$1.ZodNumber;
3966
3969
  }, z$1.core.$strip>>>;
3967
3970
  text: z$1.ZodString;
@@ -4220,7 +4223,7 @@ declare const threadQueuedMessageSchema: z$1.ZodObject<{
4220
4223
  content: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4221
4224
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
4222
4225
  end: z$1.ZodNumber;
4223
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4226
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4224
4227
  kind: z$1.ZodLiteral<"thread">;
4225
4228
  label: z$1.ZodString;
4226
4229
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -4269,7 +4272,7 @@ declare const threadQueuedMessageSchema: z$1.ZodObject<{
4269
4272
  kind: z$1.ZodLiteral<"plugin">;
4270
4273
  label: z$1.ZodString;
4271
4274
  pluginId: z$1.ZodString;
4272
- }, z$1.core.$strip>], "kind">>;
4275
+ }, z$1.core.$strip>], "kind">, unknown>;
4273
4276
  start: z$1.ZodNumber;
4274
4277
  }, z$1.core.$strip>>>;
4275
4278
  text: z$1.ZodString;
@@ -4377,6 +4380,11 @@ declare const threadQueuedWorkSchema: z$1.ZodEnum<{
4377
4380
  }>;
4378
4381
  type ThreadQueuedWork = z$1.infer<typeof threadQueuedWorkSchema>;
4379
4382
 
4383
+ declare const mobileAppDownloads: {
4384
+ ios: string;
4385
+ android: string;
4386
+ };
4387
+
4380
4388
  declare const threadContextResponseSchema: z$1.ZodObject<{
4381
4389
  usage: z$1.ZodNullable<z$1.ZodObject<{
4382
4390
  estimated: z$1.ZodBoolean;
@@ -4538,14 +4546,14 @@ declare const projectListQuerySchema: z$1.ZodObject<{
4538
4546
  }, z$1.core.$strip>;
4539
4547
  type ProjectListQuery = z$1.infer<typeof projectListQuerySchema>;
4540
4548
  declare const projectFilesQuerySchema: z$1.ZodObject<{
4541
- environmentId: z$1.ZodOptional<z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodOptional<z$1.ZodString>>>;
4549
+ environmentId: z$1.ZodOptional<z$1.ZodPreprocess<z$1.ZodOptional<z$1.ZodString>, unknown>>;
4542
4550
  hostId: z$1.ZodOptional<z$1.ZodString>;
4543
4551
  limit: z$1.ZodOptional<z$1.ZodOptional<z$1.ZodString>>;
4544
4552
  query: z$1.ZodOptional<z$1.ZodOptional<z$1.ZodString>>;
4545
4553
  }, z$1.core.$strip>;
4546
4554
  type ProjectFilesQuery = z$1.infer<typeof projectFilesQuerySchema>;
4547
4555
  declare const projectPathsQuerySchema: z$1.ZodObject<{
4548
- environmentId: z$1.ZodOptional<z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodOptional<z$1.ZodString>>>;
4556
+ environmentId: z$1.ZodOptional<z$1.ZodPreprocess<z$1.ZodOptional<z$1.ZodString>, unknown>>;
4549
4557
  hostId: z$1.ZodOptional<z$1.ZodString>;
4550
4558
  includeDirectories: z$1.ZodEnum<{
4551
4559
  false: "false";
@@ -4559,12 +4567,6 @@ declare const projectPathsQuerySchema: z$1.ZodObject<{
4559
4567
  query: z$1.ZodOptional<z$1.ZodOptional<z$1.ZodString>>;
4560
4568
  }, z$1.core.$strip>;
4561
4569
  type ProjectPathsQuery = z$1.infer<typeof projectPathsQuerySchema>;
4562
- declare const projectFileContentQuerySchema: z$1.ZodObject<{
4563
- environmentId: z$1.ZodOptional<z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodOptional<z$1.ZodString>>>;
4564
- hostId: z$1.ZodOptional<z$1.ZodString>;
4565
- path: z$1.ZodString;
4566
- }, z$1.core.$strip>;
4567
- type ProjectFileContentQuery = z$1.infer<typeof projectFileContentQuerySchema>;
4568
4570
  declare const projectBranchesQuerySchema: z$1.ZodObject<{
4569
4571
  hostId: z$1.ZodString;
4570
4572
  limit: z$1.ZodOptional<z$1.ZodString>;
@@ -4642,7 +4644,7 @@ declare const promptHistoryResponseSchema: z$1.ZodArray<z$1.ZodObject<{
4642
4644
  input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4643
4645
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
4644
4646
  end: z$1.ZodNumber;
4645
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4647
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4646
4648
  kind: z$1.ZodLiteral<"thread">;
4647
4649
  label: z$1.ZodString;
4648
4650
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -4691,7 +4693,7 @@ declare const promptHistoryResponseSchema: z$1.ZodArray<z$1.ZodObject<{
4691
4693
  kind: z$1.ZodLiteral<"plugin">;
4692
4694
  label: z$1.ZodString;
4693
4695
  pluginId: z$1.ZodString;
4694
- }, z$1.core.$strip>], "kind">>;
4696
+ }, z$1.core.$strip>], "kind">, unknown>;
4695
4697
  start: z$1.ZodNumber;
4696
4698
  }, z$1.core.$strip>>>;
4697
4699
  text: z$1.ZodString;
@@ -4752,7 +4754,7 @@ declare const commandListResponseSchema: z$1.ZodObject<{
4752
4754
  }, z$1.core.$strip>;
4753
4755
  type CommandListResponse = z$1.infer<typeof commandListResponseSchema>;
4754
4756
  declare const projectCommandsQuerySchema: z$1.ZodObject<{
4755
- environmentId: z$1.ZodOptional<z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodOptional<z$1.ZodString>>>;
4757
+ environmentId: z$1.ZodOptional<z$1.ZodPreprocess<z$1.ZodOptional<z$1.ZodString>, unknown>>;
4756
4758
  hostId: z$1.ZodOptional<z$1.ZodString>;
4757
4759
  provider: z$1.ZodString;
4758
4760
  }, z$1.core.$strict>;
@@ -5519,9 +5521,11 @@ declare const environmentPullRequestResponseSchema: z$1.ZodDiscriminatedUnion<[z
5519
5521
  draft: "draft";
5520
5522
  merged: "merged";
5521
5523
  none: "none";
5524
+ queued: "queued";
5522
5525
  ready_to_merge: "ready_to_merge";
5523
5526
  review_requested: "review_requested";
5524
5527
  }>;
5528
+ autoMerge: z$1.ZodBoolean;
5525
5529
  baseRefName: z$1.ZodString;
5526
5530
  checks: z$1.ZodObject<{
5527
5531
  failedCount: z$1.ZodNumber;
@@ -5537,6 +5541,7 @@ declare const environmentPullRequestResponseSchema: z$1.ZodDiscriminatedUnion<[z
5537
5541
  totalCount: z$1.ZodNumber;
5538
5542
  }, z$1.core.$strict>;
5539
5543
  headRefName: z$1.ZodString;
5544
+ inMergeQueue: z$1.ZodNullable<z$1.ZodBoolean>;
5540
5545
  mergeability: z$1.ZodObject<{
5541
5546
  mergeStateStatus: z$1.ZodNullable<z$1.ZodEnum<{
5542
5547
  BEHIND: "BEHIND";
@@ -5787,12 +5792,6 @@ declare const hostDaemonCommandRegistry: {
5787
5792
  hidden: "hidden";
5788
5793
  reveal: "reveal";
5789
5794
  }>;
5790
- profile: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
5791
- id: z$1.ZodString;
5792
- kind: z$1.ZodLiteral<"automation">;
5793
- }, z$1.core.$strip>, z$1.ZodObject<{
5794
- kind: z$1.ZodLiteral<"personal">;
5795
- }, z$1.core.$strip>], "kind">;
5796
5795
  tabId: z$1.ZodString;
5797
5796
  threadId: z$1.ZodString;
5798
5797
  title: z$1.ZodString;
@@ -5806,12 +5805,6 @@ declare const hostDaemonCommandRegistry: {
5806
5805
  hidden: "hidden";
5807
5806
  reveal: "reveal";
5808
5807
  }>;
5809
- profile: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
5810
- id: z$1.ZodString;
5811
- kind: z$1.ZodLiteral<"automation">;
5812
- }, z$1.core.$strip>, z$1.ZodObject<{
5813
- kind: z$1.ZodLiteral<"personal">;
5814
- }, z$1.core.$strip>], "kind">;
5815
5808
  tabId: z$1.ZodString;
5816
5809
  threadId: z$1.ZodString;
5817
5810
  type: z$1.ZodLiteral<"desktop.browser.create_tab">;
@@ -5827,12 +5820,6 @@ declare const hostDaemonCommandRegistry: {
5827
5820
  hidden: "hidden";
5828
5821
  reveal: "reveal";
5829
5822
  }>;
5830
- profile: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
5831
- id: z$1.ZodString;
5832
- kind: z$1.ZodLiteral<"automation">;
5833
- }, z$1.core.$strip>, z$1.ZodObject<{
5834
- kind: z$1.ZodLiteral<"personal">;
5835
- }, z$1.core.$strip>], "kind">;
5836
5823
  tabId: z$1.ZodString;
5837
5824
  threadId: z$1.ZodString;
5838
5825
  title: z$1.ZodString;
@@ -5945,12 +5932,6 @@ declare const hostDaemonCommandRegistry: {
5945
5932
  "desktop.browser.import_cookies": HostDaemonCommandDescriptor<"desktop.browser.import_cookies", z$1.ZodObject<{
5946
5933
  generation: z$1.ZodString;
5947
5934
  instanceId: z$1.ZodString;
5948
- profile: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
5949
- id: z$1.ZodString;
5950
- kind: z$1.ZodLiteral<"automation">;
5951
- }, z$1.core.$strip>, z$1.ZodObject<{
5952
- kind: z$1.ZodLiteral<"personal">;
5953
- }, z$1.core.$strip>], "kind">;
5954
5935
  sourceId: z$1.ZodUnion<readonly [z$1.ZodEnum<{
5955
5936
  arc: "arc";
5956
5937
  brave: "brave";
@@ -6036,7 +6017,6 @@ declare const hostDaemonCommandRegistry: {
6036
6017
  serverPath: z$1.ZodString;
6037
6018
  }, z$1.core.$strict>]>;
6038
6019
  }, z$1.core.$strict>>>;
6039
- disallowedTools: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
6040
6020
  dynamicTools: z$1.ZodArray<z$1.ZodObject<{
6041
6021
  description: z$1.ZodString;
6042
6022
  inputSchema: z$1.ZodUnknown;
@@ -6197,7 +6177,6 @@ declare const hostDaemonCommandRegistry: {
6197
6177
  serverPath: z$1.ZodString;
6198
6178
  }, z$1.core.$strict>]>;
6199
6179
  }, z$1.core.$strict>>>;
6200
- disallowedTools: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
6201
6180
  dynamicTools: z$1.ZodArray<z$1.ZodObject<{
6202
6181
  description: z$1.ZodString;
6203
6182
  inputSchema: z$1.ZodUnknown;
@@ -6264,7 +6243,7 @@ declare const hostDaemonCommandRegistry: {
6264
6243
  input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6265
6244
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
6266
6245
  end: z$1.ZodNumber;
6267
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6246
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6268
6247
  kind: z$1.ZodLiteral<"thread">;
6269
6248
  label: z$1.ZodString;
6270
6249
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -6313,7 +6292,7 @@ declare const hostDaemonCommandRegistry: {
6313
6292
  kind: z$1.ZodLiteral<"plugin">;
6314
6293
  label: z$1.ZodString;
6315
6294
  pluginId: z$1.ZodString;
6316
- }, z$1.core.$strip>], "kind">>;
6295
+ }, z$1.core.$strip>], "kind">, unknown>;
6317
6296
  start: z$1.ZodNumber;
6318
6297
  }, z$1.core.$strip>>>;
6319
6298
  text: z$1.ZodString;
@@ -6346,7 +6325,7 @@ declare const hostDaemonCommandRegistry: {
6346
6325
  inputGroups: z$1.ZodOptional<z$1.ZodArray<z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6347
6326
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
6348
6327
  end: z$1.ZodNumber;
6349
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6328
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6350
6329
  kind: z$1.ZodLiteral<"thread">;
6351
6330
  label: z$1.ZodString;
6352
6331
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -6395,7 +6374,7 @@ declare const hostDaemonCommandRegistry: {
6395
6374
  kind: z$1.ZodLiteral<"plugin">;
6396
6375
  label: z$1.ZodString;
6397
6376
  pluginId: z$1.ZodString;
6398
- }, z$1.core.$strip>], "kind">>;
6377
+ }, z$1.core.$strip>], "kind">, unknown>;
6399
6378
  start: z$1.ZodNumber;
6400
6379
  }, z$1.core.$strip>>>;
6401
6380
  text: z$1.ZodString;
@@ -6513,7 +6492,7 @@ declare const hostDaemonCommandRegistry: {
6513
6492
  input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6514
6493
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
6515
6494
  end: z$1.ZodNumber;
6516
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6495
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6517
6496
  kind: z$1.ZodLiteral<"thread">;
6518
6497
  label: z$1.ZodString;
6519
6498
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -6562,7 +6541,7 @@ declare const hostDaemonCommandRegistry: {
6562
6541
  kind: z$1.ZodLiteral<"plugin">;
6563
6542
  label: z$1.ZodString;
6564
6543
  pluginId: z$1.ZodString;
6565
- }, z$1.core.$strip>], "kind">>;
6544
+ }, z$1.core.$strip>], "kind">, unknown>;
6566
6545
  start: z$1.ZodNumber;
6567
6546
  }, z$1.core.$strip>>>;
6568
6547
  text: z$1.ZodString;
@@ -6595,7 +6574,7 @@ declare const hostDaemonCommandRegistry: {
6595
6574
  inputGroups: z$1.ZodOptional<z$1.ZodArray<z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6596
6575
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
6597
6576
  end: z$1.ZodNumber;
6598
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6577
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6599
6578
  kind: z$1.ZodLiteral<"thread">;
6600
6579
  label: z$1.ZodString;
6601
6580
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -6644,7 +6623,7 @@ declare const hostDaemonCommandRegistry: {
6644
6623
  kind: z$1.ZodLiteral<"plugin">;
6645
6624
  label: z$1.ZodString;
6646
6625
  pluginId: z$1.ZodString;
6647
- }, z$1.core.$strip>], "kind">>;
6626
+ }, z$1.core.$strip>], "kind">, unknown>;
6648
6627
  start: z$1.ZodNumber;
6649
6628
  }, z$1.core.$strip>>>;
6650
6629
  text: z$1.ZodString;
@@ -6758,7 +6737,6 @@ declare const hostDaemonCommandRegistry: {
6758
6737
  serverPath: z$1.ZodString;
6759
6738
  }, z$1.core.$strict>]>;
6760
6739
  }, z$1.core.$strict>>>;
6761
- disallowedTools: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
6762
6740
  dynamicTools: z$1.ZodArray<z$1.ZodObject<{
6763
6741
  description: z$1.ZodString;
6764
6742
  inputSchema: z$1.ZodUnknown;
@@ -6840,12 +6818,7 @@ declare const hostDaemonCommandRegistry: {
6840
6818
  }, z$1.core.$strip>], "mode">;
6841
6819
  threadId: z$1.ZodString;
6842
6820
  type: z$1.ZodLiteral<"turn.submit">;
6843
- }, z$1.core.$strict>, z$1.ZodObject<{
6844
- appliedAs: z$1.ZodEnum<{
6845
- "new-turn": "new-turn";
6846
- steer: "steer";
6847
- }>;
6848
- }, z$1.core.$strip>, "settled", false>;
6821
+ }, z$1.core.$strict>, z$1.ZodObject<{}, z$1.core.$strip>, "settled", false>;
6849
6822
  "thread.stop": HostDaemonCommandDescriptor<"thread.stop", z$1.ZodObject<{
6850
6823
  environmentId: z$1.ZodString;
6851
6824
  intent: z$1.ZodEnum<{
@@ -6977,7 +6950,6 @@ declare const hostDaemonCommandRegistry: {
6977
6950
  serverPath: z$1.ZodString;
6978
6951
  }, z$1.core.$strict>]>;
6979
6952
  }, z$1.core.$strict>>>;
6980
- disallowedTools: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
6981
6953
  dynamicTools: z$1.ZodArray<z$1.ZodObject<{
6982
6954
  description: z$1.ZodString;
6983
6955
  inputSchema: z$1.ZodUnknown;
@@ -7799,15 +7771,6 @@ declare const hostDaemonCommandRegistry: {
7799
7771
  name: z$1.ZodString;
7800
7772
  }, z$1.core.$strip>>;
7801
7773
  }, z$1.core.$strip>, "onlineRpc", true>;
7802
- "host.file_metadata": HostDaemonCommandDescriptor<"host.file_metadata", z$1.ZodObject<{
7803
- path: z$1.ZodString;
7804
- rootPath: z$1.ZodOptional<z$1.ZodString>;
7805
- type: z$1.ZodLiteral<"host.file_metadata">;
7806
- }, z$1.core.$strict>, z$1.ZodObject<{
7807
- modifiedAtMs: z$1.ZodNumber;
7808
- path: z$1.ZodString;
7809
- sizeBytes: z$1.ZodNumber;
7810
- }, z$1.core.$strip>, "onlineRpc", true>;
7811
7774
  "host.read_file": HostDaemonCommandDescriptor<"host.read_file", z$1.ZodObject<{
7812
7775
  ifNoneMatch: z$1.ZodOptional<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
7813
7776
  kind: z$1.ZodLiteral<"any">;
@@ -8072,9 +8035,7 @@ declare const hostDaemonCommandRegistry: {
8072
8035
  kind: z$1.ZodLiteral<"artifact">;
8073
8036
  }, z$1.core.$strict>;
8074
8037
  }, z$1.core.$strict>;
8075
- cwd: z$1.ZodOptional<z$1.ZodString>;
8076
8038
  providerId: z$1.ZodString;
8077
- requirement: z$1.ZodOptional<z$1.ZodLiteral<"thread_rewind">>;
8078
8039
  type: z$1.ZodLiteral<"provider.installation.status">;
8079
8040
  }, z$1.core.$strict>, z$1.ZodObject<{
8080
8041
  currentVersion: z$1.ZodNullable<z$1.ZodString>;
@@ -8135,7 +8096,6 @@ declare const hostDaemonCommandRegistry: {
8135
8096
  kind: z$1.ZodLiteral<"artifact">;
8136
8097
  }, z$1.core.$strict>;
8137
8098
  }, z$1.core.$strict>;
8138
- cwd: z$1.ZodOptional<z$1.ZodString>;
8139
8099
  providerId: z$1.ZodString;
8140
8100
  type: z$1.ZodLiteral<"provider.installation.run">;
8141
8101
  }, z$1.core.$strict>, z$1.ZodObject<{
@@ -8190,7 +8150,6 @@ declare const hostDaemonCommandRegistry: {
8190
8150
  kind: z$1.ZodLiteral<"artifact">;
8191
8151
  }, z$1.core.$strict>;
8192
8152
  }, z$1.core.$strict>;
8193
- cwd: z$1.ZodOptional<z$1.ZodString>;
8194
8153
  providerId: z$1.ZodString;
8195
8154
  type: z$1.ZodLiteral<"provider.usage">;
8196
8155
  }, z$1.core.$strict>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
@@ -8483,6 +8442,7 @@ declare const hostDaemonCommandRegistry: {
8483
8442
  }, z$1.core.$strict>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
8484
8443
  outcome: z$1.ZodLiteral<"available">;
8485
8444
  pullRequest: z$1.ZodObject<{
8445
+ autoMerge: z$1.ZodBoolean;
8486
8446
  baseRefName: z$1.ZodString;
8487
8447
  checks: z$1.ZodArray<z$1.ZodObject<{
8488
8448
  conclusion: z$1.ZodNullable<z$1.ZodEnum<{
@@ -8508,6 +8468,7 @@ declare const hostDaemonCommandRegistry: {
8508
8468
  url: z$1.ZodNullable<z$1.ZodString>;
8509
8469
  }, z$1.core.$strict>>;
8510
8470
  headRefName: z$1.ZodString;
8471
+ inMergeQueue: z$1.ZodNullable<z$1.ZodBoolean>;
8511
8472
  isDraft: z$1.ZodBoolean;
8512
8473
  mergeStateStatus: z$1.ZodNullable<z$1.ZodEnum<{
8513
8474
  BEHIND: "BEHIND";
@@ -8570,12 +8531,6 @@ declare const hostDaemonCommandRegistry: {
8570
8531
  }>;
8571
8532
  portAvailable: z$1.ZodBoolean;
8572
8533
  serverEntryAvailable: z$1.ZodBoolean;
8573
- serviceManager: z$1.ZodEnum<{
8574
- "systemd-system": "systemd-system";
8575
- "systemd-user": "systemd-user";
8576
- launchd: "launchd";
8577
- none: "none";
8578
- }>;
8579
8534
  timeZone: z$1.ZodNullable<z$1.ZodString>;
8580
8535
  }, z$1.core.$strict>, "onlineRpc", true>;
8581
8536
  "server_move.probe": HostDaemonCommandDescriptor<"server_move.probe", z$1.ZodObject<{
@@ -8754,12 +8709,6 @@ declare const desktopBrowserCommandSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObj
8754
8709
  hidden: "hidden";
8755
8710
  reveal: "reveal";
8756
8711
  }>;
8757
- profile: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
8758
- id: z$1.ZodString;
8759
- kind: z$1.ZodLiteral<"automation">;
8760
- }, z$1.core.$strip>, z$1.ZodObject<{
8761
- kind: z$1.ZodLiteral<"personal">;
8762
- }, z$1.core.$strip>], "kind">;
8763
8712
  tabId: z$1.ZodString;
8764
8713
  threadId: z$1.ZodString;
8765
8714
  type: z$1.ZodLiteral<"desktop.browser.create_tab">;
@@ -8811,12 +8760,6 @@ declare const desktopBrowserCommandSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObj
8811
8760
  }, z$1.core.$strict>, z$1.ZodObject<{
8812
8761
  generation: z$1.ZodString;
8813
8762
  instanceId: z$1.ZodString;
8814
- profile: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
8815
- id: z$1.ZodString;
8816
- kind: z$1.ZodLiteral<"automation">;
8817
- }, z$1.core.$strip>, z$1.ZodObject<{
8818
- kind: z$1.ZodLiteral<"personal">;
8819
- }, z$1.core.$strip>], "kind">;
8820
8763
  sourceId: z$1.ZodUnion<readonly [z$1.ZodEnum<{
8821
8764
  arc: "arc";
8822
8765
  brave: "brave";
@@ -8853,12 +8796,6 @@ declare const desktopBrowserResultSchemas: {
8853
8796
  hidden: "hidden";
8854
8797
  reveal: "reveal";
8855
8798
  }>;
8856
- profile: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
8857
- id: z$1.ZodString;
8858
- kind: z$1.ZodLiteral<"automation">;
8859
- }, z$1.core.$strip>, z$1.ZodObject<{
8860
- kind: z$1.ZodLiteral<"personal">;
8861
- }, z$1.core.$strip>], "kind">;
8862
8799
  tabId: z$1.ZodString;
8863
8800
  threadId: z$1.ZodString;
8864
8801
  title: z$1.ZodString;
@@ -8876,12 +8813,6 @@ declare const desktopBrowserResultSchemas: {
8876
8813
  hidden: "hidden";
8877
8814
  reveal: "reveal";
8878
8815
  }>;
8879
- profile: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
8880
- id: z$1.ZodString;
8881
- kind: z$1.ZodLiteral<"automation">;
8882
- }, z$1.core.$strip>, z$1.ZodObject<{
8883
- kind: z$1.ZodLiteral<"personal">;
8884
- }, z$1.core.$strip>], "kind">;
8885
8816
  tabId: z$1.ZodString;
8886
8817
  threadId: z$1.ZodString;
8887
8818
  title: z$1.ZodString;
@@ -10132,6 +10063,7 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
10132
10063
  all: z$1.ZodArray<z$1.ZodEnum<{
10133
10064
  browserFocus: "browserFocus";
10134
10065
  editableFocus: "editableFocus";
10066
+ linuxPlatform: "linuxPlatform";
10135
10067
  macPlatform: "macPlatform";
10136
10068
  mainSurface: "mainSurface";
10137
10069
  modalOpen: "modalOpen";
@@ -10141,10 +10073,12 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
10141
10073
  splitActive: "splitActive";
10142
10074
  terminalFocus: "terminalFocus";
10143
10075
  webSurface: "webSurface";
10076
+ windowsPlatform: "windowsPlatform";
10144
10077
  }>>;
10145
10078
  none: z$1.ZodArray<z$1.ZodEnum<{
10146
10079
  browserFocus: "browserFocus";
10147
10080
  editableFocus: "editableFocus";
10081
+ linuxPlatform: "linuxPlatform";
10148
10082
  macPlatform: "macPlatform";
10149
10083
  mainSurface: "mainSurface";
10150
10084
  modalOpen: "modalOpen";
@@ -10154,15 +10088,14 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
10154
10088
  splitActive: "splitActive";
10155
10089
  terminalFocus: "terminalFocus";
10156
10090
  webSurface: "webSurface";
10091
+ windowsPlatform: "windowsPlatform";
10157
10092
  }>>;
10158
10093
  }, z$1.core.$strict>;
10159
10094
  }, z$1.core.$strict>>;
10160
10095
  experiments: z$1.ZodRecord<z$1.ZodEnum<{
10161
10096
  changelogPreview: "changelogPreview";
10162
10097
  legacyJitiPluginLoader: "legacyJitiPluginLoader";
10163
- mobileApp: "mobileApp";
10164
10098
  serverMove: "serverMove";
10165
- sidebarProgressiveDisclosure: "sidebarProgressiveDisclosure";
10166
10099
  }>, z$1.ZodBoolean>;
10167
10100
  featureFlags: z$1.ZodObject<{
10168
10101
  placeholder: z$1.ZodBoolean;
@@ -10170,6 +10103,7 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
10170
10103
  }, z$1.core.$strip>;
10171
10104
  generalSettings: z$1.ZodObject<{
10172
10105
  allowFastServiceTier: z$1.ZodBoolean;
10106
+ confirmThreadArchive: z$1.ZodBoolean;
10173
10107
  defaultMachineAccess: z$1.ZodNullable<z$1.ZodString>;
10174
10108
  defaultProviderId: z$1.ZodNullable<z$1.ZodString>;
10175
10109
  machineGitCredentialsEnabled: z$1.ZodBoolean;
@@ -10266,6 +10200,11 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
10266
10200
  "window.new": "window.new";
10267
10201
  "workspace.openPreferred": "workspace.openPreferred";
10268
10202
  }>, z$1.ZodTemplateLiteral<`plugin:${string}/${string}`>]>;
10203
+ platform: z$1.ZodOptional<z$1.ZodEnum<{
10204
+ linux: "linux";
10205
+ mac: "mac";
10206
+ windows: "windows";
10207
+ }>>;
10269
10208
  shortcut: z$1.ZodNullable<z$1.ZodObject<{
10270
10209
  alt: z$1.ZodBoolean;
10271
10210
  control: z$1.ZodBoolean;
@@ -10366,6 +10305,7 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
10366
10305
  all: z$1.ZodArray<z$1.ZodEnum<{
10367
10306
  browserFocus: "browserFocus";
10368
10307
  editableFocus: "editableFocus";
10308
+ linuxPlatform: "linuxPlatform";
10369
10309
  macPlatform: "macPlatform";
10370
10310
  mainSurface: "mainSurface";
10371
10311
  modalOpen: "modalOpen";
@@ -10375,10 +10315,12 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
10375
10315
  splitActive: "splitActive";
10376
10316
  terminalFocus: "terminalFocus";
10377
10317
  webSurface: "webSurface";
10318
+ windowsPlatform: "windowsPlatform";
10378
10319
  }>>;
10379
10320
  none: z$1.ZodArray<z$1.ZodEnum<{
10380
10321
  browserFocus: "browserFocus";
10381
10322
  editableFocus: "editableFocus";
10323
+ linuxPlatform: "linuxPlatform";
10382
10324
  macPlatform: "macPlatform";
10383
10325
  mainSurface: "mainSurface";
10384
10326
  modalOpen: "modalOpen";
@@ -10388,6 +10330,7 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
10388
10330
  splitActive: "splitActive";
10389
10331
  terminalFocus: "terminalFocus";
10390
10332
  webSurface: "webSurface";
10333
+ windowsPlatform: "windowsPlatform";
10391
10334
  }>>;
10392
10335
  }, z$1.core.$strict>;
10393
10336
  }, z$1.core.$strict>>;
@@ -10655,6 +10598,118 @@ declare const systemMachineProviderSchema: z$1.ZodObject<{
10655
10598
  supportsSuspend: z$1.ZodBoolean;
10656
10599
  }, z$1.core.$strip>;
10657
10600
  type SystemMachineProvider = z$1.infer<typeof systemMachineProviderSchema>;
10601
+ declare const androidAppArtifactSchema: z$1.ZodObject<{
10602
+ sha256: z$1.ZodString;
10603
+ size: z$1.ZodNumber;
10604
+ version: z$1.ZodString;
10605
+ versionCode: z$1.ZodNumber;
10606
+ }, z$1.core.$strip>;
10607
+ type AndroidAppArtifact = z$1.infer<typeof androidAppArtifactSchema>;
10608
+ interface SystemMobileAppReleasesResponse {
10609
+ android: (AndroidAppArtifact & {
10610
+ updatedAt: string;
10611
+ }) | null;
10612
+ }
10613
+ declare const systemProviderCatalogEntrySchema: z$1.ZodObject<{
10614
+ available: z$1.ZodBoolean;
10615
+ displayName: z$1.ZodString;
10616
+ enabled: z$1.ZodBoolean;
10617
+ id: z$1.ZodString;
10618
+ info: z$1.ZodNullable<z$1.ZodObject<{
10619
+ available: z$1.ZodBoolean;
10620
+ capabilities: z$1.ZodObject<{
10621
+ modelCatalogScope: z$1.ZodEnum<{
10622
+ host: "host";
10623
+ workspace: "workspace";
10624
+ }>;
10625
+ permissionModes: z$1.ZodArray<z$1.ZodEnum<{
10626
+ "accept-edits": "accept-edits";
10627
+ auto: "auto";
10628
+ full: "full";
10629
+ }>>;
10630
+ supportsFork: z$1.ZodBoolean;
10631
+ supportsNativeUserQuestion: z$1.ZodBoolean;
10632
+ supportsServiceTier: z$1.ZodBoolean;
10633
+ supportsSessionRewind: z$1.ZodBoolean;
10634
+ supportsThreadArchive: z$1.ZodBoolean;
10635
+ supportsThreadRename: z$1.ZodBoolean;
10636
+ }, z$1.core.$strip>;
10637
+ completedTurnDisplay: z$1.ZodEnum<{
10638
+ collapse: "collapse";
10639
+ flat: "flat";
10640
+ }>;
10641
+ composerActions: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
10642
+ kind: z$1.ZodLiteral<"skills">;
10643
+ trigger: z$1.ZodEnum<{
10644
+ "/": "/";
10645
+ $: "$";
10646
+ }>;
10647
+ }, z$1.core.$strip>, z$1.ZodObject<{
10648
+ command: z$1.ZodObject<{
10649
+ name: z$1.ZodString;
10650
+ trailingText: z$1.ZodString;
10651
+ trigger: z$1.ZodEnum<{
10652
+ "/": "/";
10653
+ $: "$";
10654
+ }>;
10655
+ }, z$1.core.$strip>;
10656
+ kind: z$1.ZodLiteral<"plan">;
10657
+ }, z$1.core.$strip>, z$1.ZodObject<{
10658
+ command: z$1.ZodObject<{
10659
+ name: z$1.ZodString;
10660
+ trailingText: z$1.ZodString;
10661
+ trigger: z$1.ZodEnum<{
10662
+ "/": "/";
10663
+ $: "$";
10664
+ }>;
10665
+ }, z$1.core.$strip>;
10666
+ kind: z$1.ZodLiteral<"goal">;
10667
+ }, z$1.core.$strip>], "kind">>;
10668
+ displayName: z$1.ZodString;
10669
+ extensionKinds: z$1.ZodOptional<z$1.ZodRecord<z$1.ZodString & z$1.ZodType<`${string}/${string}`, string, z$1.core.$ZodTypeInternals<`${string}/${string}`, string>>, z$1.ZodObject<{
10670
+ item: z$1.ZodBoolean;
10671
+ state: z$1.ZodBoolean;
10672
+ }, z$1.core.$strip>>>;
10673
+ family: z$1.ZodOptional<z$1.ZodString>;
10674
+ icon: z$1.ZodOptional<z$1.ZodObject<{
10675
+ glyph: z$1.ZodString;
10676
+ }, z$1.core.$strip>>;
10677
+ id: z$1.ZodString;
10678
+ logoUrl: z$1.ZodNullable<z$1.ZodString>;
10679
+ maintenance: z$1.ZodObject<{
10680
+ health: z$1.ZodBoolean;
10681
+ installation: z$1.ZodBoolean;
10682
+ usage: z$1.ZodBoolean;
10683
+ }, z$1.core.$strip>;
10684
+ pluginId: z$1.ZodString;
10685
+ reasoningLevels: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
10686
+ description: z$1.ZodOptional<z$1.ZodString>;
10687
+ id: z$1.ZodString;
10688
+ label: z$1.ZodString;
10689
+ }, z$1.core.$strip>>>;
10690
+ serviceTiers: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
10691
+ description: z$1.ZodOptional<z$1.ZodString>;
10692
+ id: z$1.ZodString;
10693
+ label: z$1.ZodString;
10694
+ }, z$1.core.$strip>>>;
10695
+ strings: z$1.ZodOptional<z$1.ZodObject<{
10696
+ brandPrefix: z$1.ZodOptional<z$1.ZodString>;
10697
+ expiredHint: z$1.ZodString;
10698
+ iconTint: z$1.ZodOptional<z$1.ZodObject<{
10699
+ dark: z$1.ZodString;
10700
+ light: z$1.ZodString;
10701
+ }, z$1.core.$strip>>;
10702
+ installUrl: z$1.ZodString;
10703
+ planModeCopy: z$1.ZodOptional<z$1.ZodString>;
10704
+ signInHint: z$1.ZodString;
10705
+ }, z$1.core.$strip>>;
10706
+ }, z$1.core.$strip>>;
10707
+ logoUrl: z$1.ZodNullable<z$1.ZodString>;
10708
+ pluginEnabled: z$1.ZodBoolean;
10709
+ pluginId: z$1.ZodString;
10710
+ pluginName: z$1.ZodString;
10711
+ }, z$1.core.$strip>;
10712
+ type SystemProviderCatalogEntry = z$1.infer<typeof systemProviderCatalogEntrySchema>;
10658
10713
 
10659
10714
  interface UiPreferencesResponse {
10660
10715
  preferences: UiPreferenceEntries;
@@ -10831,7 +10886,7 @@ declare const timelineConversationRowSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodO
10831
10886
  kind: z$1.ZodLiteral<"conversation">;
10832
10887
  mentions: z$1.ZodArray<z$1.ZodObject<{
10833
10888
  end: z$1.ZodNumber;
10834
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
10889
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
10835
10890
  kind: z$1.ZodLiteral<"thread">;
10836
10891
  label: z$1.ZodString;
10837
10892
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -10880,7 +10935,7 @@ declare const timelineConversationRowSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodO
10880
10935
  kind: z$1.ZodLiteral<"plugin">;
10881
10936
  label: z$1.ZodString;
10882
10937
  pluginId: z$1.ZodString;
10883
- }, z$1.core.$strip>], "kind">>;
10938
+ }, z$1.core.$strip>], "kind">, unknown>;
10884
10939
  start: z$1.ZodNumber;
10885
10940
  }, z$1.core.$strip>>;
10886
10941
  role: z$1.ZodLiteral<"user">;
@@ -12039,7 +12094,7 @@ declare const createThreadRequestSchema: z$1.ZodObject<{
12039
12094
  input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12040
12095
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
12041
12096
  end: z$1.ZodNumber;
12042
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12097
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12043
12098
  kind: z$1.ZodLiteral<"thread">;
12044
12099
  label: z$1.ZodString;
12045
12100
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -12088,7 +12143,7 @@ declare const createThreadRequestSchema: z$1.ZodObject<{
12088
12143
  kind: z$1.ZodLiteral<"plugin">;
12089
12144
  label: z$1.ZodString;
12090
12145
  pluginId: z$1.ZodString;
12091
- }, z$1.core.$strip>], "kind">>;
12146
+ }, z$1.core.$strip>], "kind">, unknown>;
12092
12147
  start: z$1.ZodNumber;
12093
12148
  }, z$1.core.$strip>>>;
12094
12149
  text: z$1.ZodString;
@@ -12136,6 +12191,7 @@ declare const createThreadRequestSchema: z$1.ZodObject<{
12136
12191
  auto: "auto";
12137
12192
  full: "full";
12138
12193
  }>, z$1.ZodLiteral<"workspace-write">]>, z$1.ZodTransform<"accept-edits" | "auto" | "full", "accept-edits" | "auto" | "full" | "workspace-write">>>;
12194
+ pinned: z$1.ZodOptional<z$1.ZodBoolean>;
12139
12195
  pluginMetadata: z$1.ZodOptional<z$1.ZodType<JsonObject, unknown, z$1.core.$ZodTypeInternals<JsonObject, unknown>>>;
12140
12196
  pluginSubmission: z$1.ZodOptional<z$1.ZodObject<{
12141
12197
  data: z$1.ZodType<JsonValue, unknown, z$1.core.$ZodTypeInternals<JsonValue, unknown>>;
@@ -12179,7 +12235,7 @@ declare const forkThreadRequestSchema: z$1.ZodObject<{
12179
12235
  agentContextSeed: z$1.ZodOptional<z$1.ZodArray<z$1.ZodIntersection<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12180
12236
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
12181
12237
  end: z$1.ZodNumber;
12182
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12238
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12183
12239
  kind: z$1.ZodLiteral<"thread">;
12184
12240
  label: z$1.ZodString;
12185
12241
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -12228,7 +12284,7 @@ declare const forkThreadRequestSchema: z$1.ZodObject<{
12228
12284
  kind: z$1.ZodLiteral<"plugin">;
12229
12285
  label: z$1.ZodString;
12230
12286
  pluginId: z$1.ZodString;
12231
- }, z$1.core.$strip>], "kind">>;
12287
+ }, z$1.core.$strip>], "kind">, unknown>;
12232
12288
  start: z$1.ZodNumber;
12233
12289
  }, z$1.core.$strip>>>;
12234
12290
  text: z$1.ZodString;
@@ -12305,7 +12361,7 @@ declare const forkThreadRequestSchema: z$1.ZodObject<{
12305
12361
  input: z$1.ZodOptional<z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12306
12362
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
12307
12363
  end: z$1.ZodNumber;
12308
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12364
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12309
12365
  kind: z$1.ZodLiteral<"thread">;
12310
12366
  label: z$1.ZodString;
12311
12367
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -12354,7 +12410,7 @@ declare const forkThreadRequestSchema: z$1.ZodObject<{
12354
12410
  kind: z$1.ZodLiteral<"plugin">;
12355
12411
  label: z$1.ZodString;
12356
12412
  pluginId: z$1.ZodString;
12357
- }, z$1.core.$strip>], "kind">>;
12413
+ }, z$1.core.$strip>], "kind">, unknown>;
12358
12414
  start: z$1.ZodNumber;
12359
12415
  }, z$1.core.$strip>>>;
12360
12416
  text: z$1.ZodString;
@@ -12429,7 +12485,7 @@ declare const sendMessageRequestSchema: z$1.ZodObject<{
12429
12485
  input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12430
12486
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
12431
12487
  end: z$1.ZodNumber;
12432
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12488
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12433
12489
  kind: z$1.ZodLiteral<"thread">;
12434
12490
  label: z$1.ZodString;
12435
12491
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -12478,7 +12534,7 @@ declare const sendMessageRequestSchema: z$1.ZodObject<{
12478
12534
  kind: z$1.ZodLiteral<"plugin">;
12479
12535
  label: z$1.ZodString;
12480
12536
  pluginId: z$1.ZodString;
12481
- }, z$1.core.$strip>], "kind">>;
12537
+ }, z$1.core.$strip>], "kind">, unknown>;
12482
12538
  start: z$1.ZodNumber;
12483
12539
  }, z$1.core.$strip>>>;
12484
12540
  text: z$1.ZodString;
@@ -12558,7 +12614,7 @@ declare const sendMessageResponseSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObjec
12558
12614
  content: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12559
12615
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
12560
12616
  end: z$1.ZodNumber;
12561
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12617
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12562
12618
  kind: z$1.ZodLiteral<"thread">;
12563
12619
  label: z$1.ZodString;
12564
12620
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -12607,7 +12663,7 @@ declare const sendMessageResponseSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObjec
12607
12663
  kind: z$1.ZodLiteral<"plugin">;
12608
12664
  label: z$1.ZodString;
12609
12665
  pluginId: z$1.ZodString;
12610
- }, z$1.core.$strip>], "kind">>;
12666
+ }, z$1.core.$strip>], "kind">, unknown>;
12611
12667
  start: z$1.ZodNumber;
12612
12668
  }, z$1.core.$strip>>>;
12613
12669
  text: z$1.ZodString;
@@ -12732,7 +12788,7 @@ declare const editMessageRequestSchema: z$1.ZodObject<{
12732
12788
  input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12733
12789
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
12734
12790
  end: z$1.ZodNumber;
12735
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12791
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12736
12792
  kind: z$1.ZodLiteral<"thread">;
12737
12793
  label: z$1.ZodString;
12738
12794
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -12781,7 +12837,7 @@ declare const editMessageRequestSchema: z$1.ZodObject<{
12781
12837
  kind: z$1.ZodLiteral<"plugin">;
12782
12838
  label: z$1.ZodString;
12783
12839
  pluginId: z$1.ZodString;
12784
- }, z$1.core.$strip>], "kind">>;
12840
+ }, z$1.core.$strip>], "kind">, unknown>;
12785
12841
  start: z$1.ZodNumber;
12786
12842
  }, z$1.core.$strip>>>;
12787
12843
  text: z$1.ZodString;
@@ -12904,7 +12960,7 @@ declare const createQueuedMessageRequestSchema: z$1.ZodObject<{
12904
12960
  input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12905
12961
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
12906
12962
  end: z$1.ZodNumber;
12907
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12963
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12908
12964
  kind: z$1.ZodLiteral<"thread">;
12909
12965
  label: z$1.ZodString;
12910
12966
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -12953,7 +13009,7 @@ declare const createQueuedMessageRequestSchema: z$1.ZodObject<{
12953
13009
  kind: z$1.ZodLiteral<"plugin">;
12954
13010
  label: z$1.ZodString;
12955
13011
  pluginId: z$1.ZodString;
12956
- }, z$1.core.$strip>], "kind">>;
13012
+ }, z$1.core.$strip>], "kind">, unknown>;
12957
13013
  start: z$1.ZodNumber;
12958
13014
  }, z$1.core.$strip>>>;
12959
13015
  text: z$1.ZodString;
@@ -13011,7 +13067,7 @@ declare const updateQueuedMessageRequestSchema: z$1.ZodObject<{
13011
13067
  input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
13012
13068
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
13013
13069
  end: z$1.ZodNumber;
13014
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
13070
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
13015
13071
  kind: z$1.ZodLiteral<"thread">;
13016
13072
  label: z$1.ZodString;
13017
13073
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -13060,7 +13116,7 @@ declare const updateQueuedMessageRequestSchema: z$1.ZodObject<{
13060
13116
  kind: z$1.ZodLiteral<"plugin">;
13061
13117
  label: z$1.ZodString;
13062
13118
  pluginId: z$1.ZodString;
13063
- }, z$1.core.$strip>], "kind">>;
13119
+ }, z$1.core.$strip>], "kind">, unknown>;
13064
13120
  start: z$1.ZodNumber;
13065
13121
  }, z$1.core.$strip>>>;
13066
13122
  text: z$1.ZodString;
@@ -13120,7 +13176,7 @@ declare const sendQueuedMessageResponseSchema: z$1.ZodDiscriminatedUnion<[z$1.Zo
13120
13176
  content: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
13121
13177
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
13122
13178
  end: z$1.ZodNumber;
13123
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
13179
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
13124
13180
  kind: z$1.ZodLiteral<"thread">;
13125
13181
  label: z$1.ZodString;
13126
13182
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -13169,7 +13225,7 @@ declare const sendQueuedMessageResponseSchema: z$1.ZodDiscriminatedUnion<[z$1.Zo
13169
13225
  kind: z$1.ZodLiteral<"plugin">;
13170
13226
  label: z$1.ZodString;
13171
13227
  pluginId: z$1.ZodString;
13172
- }, z$1.core.$strip>], "kind">>;
13228
+ }, z$1.core.$strip>], "kind">, unknown>;
13173
13229
  start: z$1.ZodNumber;
13174
13230
  }, z$1.core.$strip>>>;
13175
13231
  text: z$1.ZodString;
@@ -14050,7 +14106,7 @@ declare const threadQueuedMessageListResponseSchema: z$1.ZodArray<z$1.ZodObject<
14050
14106
  content: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
14051
14107
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
14052
14108
  end: z$1.ZodNumber;
14053
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
14109
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
14054
14110
  kind: z$1.ZodLiteral<"thread">;
14055
14111
  label: z$1.ZodString;
14056
14112
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -14099,7 +14155,7 @@ declare const threadQueuedMessageListResponseSchema: z$1.ZodArray<z$1.ZodObject<
14099
14155
  kind: z$1.ZodLiteral<"plugin">;
14100
14156
  label: z$1.ZodString;
14101
14157
  pluginId: z$1.ZodString;
14102
- }, z$1.core.$strip>], "kind">>;
14158
+ }, z$1.core.$strip>], "kind">, unknown>;
14103
14159
  start: z$1.ZodNumber;
14104
14160
  }, z$1.core.$strip>>>;
14105
14161
  text: z$1.ZodString;
@@ -14698,6 +14754,7 @@ declare const threadTimelineResponseSchema: z$1.ZodObject<{
14698
14754
  anchorId: z$1.ZodString;
14699
14755
  anchorSeq: z$1.ZodNumber;
14700
14756
  }, z$1.core.$strict>>;
14757
+ olderRowUpdates: z$1.ZodOptional<z$1.ZodArray<z$1.ZodType<TimelineRow, unknown, z$1.core.$ZodTypeInternals<TimelineRow, unknown>>>>;
14701
14758
  olderRowsSourceSeqEnd: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodNumber>>;
14702
14759
  returnedSegmentCount: z$1.ZodNumber;
14703
14760
  segmentLimit: z$1.ZodNumber;
@@ -14773,7 +14830,6 @@ declare const desktopBrowserCreateRequestSchema: z$1.ZodObject<{
14773
14830
  url: z$1.ZodDefault<z$1.ZodPipe<z$1.ZodString, z$1.ZodString>>;
14774
14831
  }, z$1.core.$strict>;
14775
14832
  declare const desktopBrowserAcquireRequestSchema: z$1.ZodObject<{
14776
- allowPersonal: z$1.ZodDefault<z$1.ZodBoolean>;
14777
14833
  controllerLabel: z$1.ZodString;
14778
14834
  generation: z$1.ZodString;
14779
14835
  hostId: z$1.ZodString;
@@ -14798,12 +14854,6 @@ declare const desktopBrowserImportCookiesRequestSchema: z$1.ZodObject<{
14798
14854
  generation: z$1.ZodString;
14799
14855
  hostId: z$1.ZodString;
14800
14856
  instanceId: z$1.ZodString;
14801
- profile: z$1.ZodDefault<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
14802
- id: z$1.ZodString;
14803
- kind: z$1.ZodLiteral<"automation">;
14804
- }, z$1.core.$strip>, z$1.ZodObject<{
14805
- kind: z$1.ZodLiteral<"personal">;
14806
- }, z$1.core.$strip>], "kind">>;
14807
14857
  sourceId: z$1.ZodUnion<readonly [z$1.ZodEnum<{
14808
14858
  arc: "arc";
14809
14859
  brave: "brave";
@@ -15460,6 +15510,9 @@ interface EnvironmentListProvidersArgs {
15460
15510
  }
15461
15511
  type EnvironmentListProvidersResult = SystemEnvironmentProvider[];
15462
15512
  interface EnvironmentsArea {
15513
+ experimental_cleanup(args: EnvironmentActionArgs): Promise<{
15514
+ ok: true;
15515
+ }>;
15463
15516
  archiveThreads(args: EnvironmentActionArgs): Promise<EnvironmentArchiveThreadsResult>;
15464
15517
  commit(args: EnvironmentCommitArgs): Promise<EnvironmentCommitResult>;
15465
15518
  diff(args: EnvironmentDiffArgs): Promise<EnvironmentDiffResult>;
@@ -15609,6 +15662,7 @@ type HostDeleteResult = {
15609
15662
  type HostDirectoryResult = HostDirectoryListing;
15610
15663
  type HostGetResult = Host & {
15611
15664
  connectMachineId: string | null;
15665
+ threadStorageRootPath: string | null;
15612
15666
  };
15613
15667
  type HostEnrollmentCommandResult = HostEnrollmentCommandResponse;
15614
15668
  type HostReconnectResult = HostReconnectResponse;
@@ -15715,7 +15769,8 @@ type ProjectCommandsArgs = ProjectWorkspaceRoutingArgs & Omit<ProjectCommandsQue
15715
15769
  projectId: string;
15716
15770
  signal?: AbortSignal;
15717
15771
  };
15718
- type ProjectFileContentArgs = ProjectWorkspaceRoutingArgs & Omit<ProjectFileContentQuery, "environmentId" | "hostId"> & {
15772
+ type ProjectFileContentArgs = ProjectWorkspaceRoutingArgs & {
15773
+ path: string;
15719
15774
  projectId: string;
15720
15775
  signal?: AbortSignal;
15721
15776
  };
@@ -15860,6 +15915,11 @@ type ProviderModelsArgs = ProviderHostRoutingArgs & {
15860
15915
  type ProviderListResult = ProviderInfo[];
15861
15916
  type ProviderModelsResult = SystemExecutionOptionsResponse;
15862
15917
  interface ProvidersArea {
15918
+ catalog(): Promise<SystemProviderCatalogEntry[]>;
15919
+ setEnabled(args: {
15920
+ providerId: string;
15921
+ enabled: boolean;
15922
+ }): Promise<SystemProviderCatalogEntry[]>;
15863
15923
  list(args?: ProviderListArgs): Promise<ProviderListResult>;
15864
15924
  models(args?: ProviderModelsArgs): Promise<ProviderModelsResult>;
15865
15925
  }
@@ -16279,6 +16339,8 @@ interface SystemArea {
16279
16339
  testAiService(args: SystemTestAiServiceArgs): Promise<SystemTestAiServiceResult>;
16280
16340
  transcribeVoice(args: SystemVoiceTranscriptionArgs): Promise<SystemVoiceTranscriptionResult>;
16281
16341
  uiPreferences: SystemUiPreferencesArea;
16342
+ mobileAppDownloads(): typeof mobileAppDownloads;
16343
+ mobileAppReleases(): Promise<SystemMobileAppReleasesResponse>;
16282
16344
  updateExperiments(args: Experiments): Promise<SystemUpdateExperimentsResult>;
16283
16345
  updateGeneralSettings(args: AppSettingsUpdate): Promise<SystemUpdateGeneralSettingsResult>;
16284
16346
  updateKeyboardSettings(args: AppKeybindingOverrides): Promise<SystemUpdateKeyboardSettingsResult>;
@@ -16988,7 +17050,7 @@ type ExperimentalSidebarNavigationAction = {
16988
17050
  /**
16989
17051
  * Semantic icon identity for one sidebar navigation item. Render it with
16990
17052
  * {@link PluginSdkApp.experimental_SidebarNavigationIcon} to match bb's
16991
- * artwork, including plugin branding.
17053
+ * artwork, including panel icons with plugin branding as their fallback.
16992
17054
  */
16993
17055
  type ExperimentalSidebarNavigationIcon = {
16994
17056
  kind: "host";
@@ -17283,8 +17345,6 @@ interface PluginFileOpenerProps {
17283
17345
  * @experimental Audit before relying on this as a stable contract.
17284
17346
  */
17285
17347
  Original: ComponentType;
17286
- /** @deprecated Renamed to `Original` in SDK 0.4.16; removed in bb 0.42. */
17287
- experimental_Original?: ComponentType;
17288
17348
  }
17289
17349
  /** How a code line longer than the viewport is presented. */
17290
17350
  type CodeOverflowMode = "scroll" | "wrap";
@@ -17376,8 +17436,6 @@ interface PluginSourceCodeRendererProps {
17376
17436
  * @experimental Audit before relying on this as a stable contract.
17377
17437
  */
17378
17438
  Original: ComponentType;
17379
- /** @deprecated Renamed to `Original` in SDK 0.4.16; removed in bb 0.42. */
17380
- experimental_Original?: ComponentType;
17381
17439
  }
17382
17440
  /**
17383
17441
  * Props passed to an `experimental_diffRenderer` component. `patch` is always
@@ -17405,8 +17463,6 @@ interface PluginDiffRendererProps {
17405
17463
  * @experimental Audit before relying on this as a stable contract.
17406
17464
  */
17407
17465
  Original: ComponentType;
17408
- /** @deprecated Renamed to `Original` in SDK 0.4.16; removed in bb 0.42. */
17409
- experimental_Original?: ComponentType;
17410
17466
  }
17411
17467
  /**
17412
17468
  * Message context passed to a `messageDirective` component — the assistant
@@ -17447,6 +17503,8 @@ interface PluginHomepageSectionRegistration {
17447
17503
  component: ComponentType<PluginHomepageSectionProps>;
17448
17504
  }
17449
17505
  interface PluginSettingsSectionRegistration {
17506
+ /** Render on Mobile settings instead of the plugin configuration page. */
17507
+ experimental_page?: "mobile";
17450
17508
  /** Unique within the plugin; letters, digits, `-`, `_`. */
17451
17509
  id: string;
17452
17510
  /** Optional host-rendered section heading. */
@@ -17514,6 +17572,7 @@ type ExperimentalPluginFixedTabReference<Target extends JsonValue$1 = never> = {
17514
17572
  /** A fixed tab declared by a plugin nav panel. */
17515
17573
  type PluginFixedTabRegistration<Target extends JsonValue$1 = never> = ExperimentalPluginFixedTabReference<Target> & {
17516
17574
  title: string;
17575
+ /** Resolved names take precedence over plugin branding; unknown names fall back to branding. */
17517
17576
  icon: BbIconName;
17518
17577
  component: ComponentType<PluginNavPanelProps>;
17519
17578
  /** `flush` lets the component own padding and scrolling. */
@@ -17525,6 +17584,7 @@ interface PluginNavPanelRegistration {
17525
17584
  /** Unique within the plugin; letters, digits, `-`, `_`. */
17526
17585
  id: string;
17527
17586
  title: string;
17587
+ /** Resolved names take precedence over plugin branding in navigation and the header; unknown names fall back to branding. */
17528
17588
  icon: BbIconName;
17529
17589
  /** URL segment under `/plugins/<pluginId>/`; letters, digits, `-`, `_`. */
17530
17590
  path: string;
@@ -17608,8 +17668,8 @@ interface PluginThreadPanelActionRegistration {
17608
17668
  /** Label of the action row in the panel's new-tab launcher. */
17609
17669
  title: string;
17610
17670
  /**
17611
- * Drawn only when the manifest declares no `bb.branding.icon`; the launcher
17612
- * row and opened tabs prefer that over this hint.
17671
+ * Resolved names take precedence over plugin branding in the launcher and
17672
+ * opened tabs. Omitted or unknown names fall back to plugin branding.
17613
17673
  */
17614
17674
  icon?: BbIconName;
17615
17675
  /** Rendered inside every panel tab this action opens. */
@@ -17648,7 +17708,7 @@ interface PluginNewThreadPanelActionRegistration {
17648
17708
  id: string;
17649
17709
  /** Label of the action row in the panel's new-tab launcher. */
17650
17710
  title: string;
17651
- /** Drawn only when the manifest declares no `bb.branding.icon`. */
17711
+ /** Resolved names take precedence over plugin branding; omitted or unknown names fall back to branding. */
17652
17712
  icon?: BbIconName;
17653
17713
  /** Rendered inside every panel tab this action opens. */
17654
17714
  component: ComponentType<PluginNewThreadPanelProps>;
@@ -17693,7 +17753,7 @@ interface PluginSidebarFooterActionRegistration {
17693
17753
  id: string;
17694
17754
  /** Tooltip and accessible label for the icon button. */
17695
17755
  title: string;
17696
- /** Drawn only when the manifest declares no `bb.branding.icon`. */
17756
+ /** Resolved names take precedence over plugin branding; omitted or unknown names fall back to branding. */
17697
17757
  icon: BbIconName;
17698
17758
  /**
17699
17759
  * Runs when the user activates the action (e.g. call `openSettings()`,
@@ -17897,11 +17957,24 @@ interface PluginSidebarThread {
17897
17957
  * can colour a badge without reading checks, review, and mergeability itself.
17898
17958
  */
17899
17959
  interface PluginSidebarPullRequest {
17960
+ /** Whether GitHub auto-merge is enabled. */
17961
+ experimental_autoMerge: boolean;
17962
+ /** Null when the GitHub merge queue lookup is unavailable. */
17963
+ experimental_inMergeQueue: boolean | null;
17964
+ experimental_checks: {
17965
+ state: "failing" | "no_checks" | "passing" | "pending" | "unknown";
17966
+ };
17967
+ experimental_review: {
17968
+ state: "approved" | "changes_requested" | "none" | "review_requested" | "review_required";
17969
+ };
17970
+ experimental_mergeability: {
17971
+ state: "blocked" | "conflicts" | "draft" | "mergeable" | "unknown";
17972
+ };
17900
17973
  number: number;
17901
17974
  title: string;
17902
17975
  url: string;
17903
17976
  state: "closed" | "draft" | "merged" | "open";
17904
- attention: "blocked" | "changes_requested" | "checks_failed" | "checks_pending" | "closed" | "conflicts" | "draft" | "merged" | "none" | "ready_to_merge" | "review_requested";
17977
+ attention: "blocked" | "changes_requested" | "checks_failed" | "checks_pending" | "closed" | "conflicts" | "draft" | "merged" | "none" | "queued" | "ready_to_merge" | "review_requested";
17905
17978
  }
17906
17979
  interface PluginSidebarThreadPullRequestState {
17907
17980
  /** True while the first lookup for this thread's environment is in flight. */
@@ -18078,7 +18151,7 @@ interface PluginSidebarThreadDraftState {
18078
18151
  }
18079
18152
  /**
18080
18153
  * The status another plugin's app-wide script set on a thread's row through
18081
- * `useComposer().experimental_setThreadRowStatus` (see
18154
+ * the content-script context's `experimental_setThreadRowStatus` (see
18082
18155
  * {@link PluginSdkApp.useSidebarThreadRowStatus}). bb's row draws it in
18083
18156
  * place of the draft glyph while it is set; a replaced list should do the
18084
18157
  * same so a status set by, say, the drafts or workflows plugin does not
@@ -18118,6 +18191,9 @@ interface PluginSidebarThreadActions {
18118
18191
  * `sectionId` files the new thread under that section, and
18119
18192
  * `environmentId` reuses that environment (the "New thread in
18120
18193
  * environment" affordance), both exactly as bb's own list does.
18194
+ * `experimental_placement` explicitly selects the section and pin state,
18195
+ * overriding `sectionId`. Omitting placement starts unpinned, outside sections
18196
+ * unless `sectionId` is supplied; previous composer placement is cleared.
18121
18197
  * `hostId` selects a machine for a new environment when it
18122
18198
  * is known and supports an environment provider. `environmentId` wins when
18123
18199
  * both are supplied.
@@ -18125,6 +18201,10 @@ interface PluginSidebarThreadActions {
18125
18201
  openNewThread(options?: {
18126
18202
  projectId?: string;
18127
18203
  sectionId?: string;
18204
+ experimental_placement?: {
18205
+ sectionId: string | null;
18206
+ pinned: boolean;
18207
+ };
18128
18208
  environmentId?: string;
18129
18209
  hostId?: string;
18130
18210
  focusPrompt?: boolean;
@@ -18133,7 +18213,7 @@ interface PluginSidebarThreadActions {
18133
18213
  setRead(threadId: string, read: boolean): Promise<void>;
18134
18214
  /** Silent rename — no dialog. For inline editing in your own row. */
18135
18215
  rename(threadId: string, title: string): Promise<void>;
18136
- /** Archives immediately, or confirms first if child threads will also be archived. */
18216
+ /** Confirms before including child threads unless archive confirmation is disabled in Settings → General. */
18137
18217
  archive(threadId: string): void;
18138
18218
  /**
18139
18219
  * Opens bb's delete confirmation, which counts child threads first. Deletion
@@ -18413,12 +18493,19 @@ interface PluginMessageActionContext {
18413
18493
  * is never thrown: the host logs it and reports it here.
18414
18494
  */
18415
18495
  openPanel(options: PluginTargetedPanelActionOpenOptions): boolean;
18496
+ /**
18497
+ * The composer of the thread the message is in, or null when that thread's
18498
+ * composer is not available on this surface. The same handle
18499
+ * `useComposer()` returns there.
18500
+ */
18501
+ composer: PluginComposerApi | null;
18416
18502
  }
18417
18503
  /**
18418
18504
  * An action on chat messages: an icon button in the per-message action bar
18419
18505
  * (user and assistant messages) and an entry in the assistant-message
18420
18506
  * text-selection menu. Host-rendered chrome — the plugin supplies title,
18421
- * icon hint, and `run` behavior only.
18507
+ * icon, and `run` behavior only. Resolved icon names take precedence over
18508
+ * plugin branding; omitted or unknown names fall back to branding.
18422
18509
  */
18423
18510
  interface PluginMessageActionRegistration {
18424
18511
  /** Unique within the plugin; letters, digits, `-`, `_`. */
@@ -18928,12 +19015,6 @@ type PluginComposerScope = {
18928
19015
  kind: "queued-message";
18929
19016
  threadId: string;
18930
19017
  queuedMessageId: string;
18931
- } | {
18932
- kind: "side-chat";
18933
- projectId: string;
18934
- parentThreadId: string;
18935
- tabId: string;
18936
- childThreadId: string | null;
18937
19018
  } | {
18938
19019
  kind: "new-thread";
18939
19020
  /** Root compose's effective selected project; null only while unresolved. */
@@ -18956,35 +19037,39 @@ interface ComposerCustomization {
18956
19037
  component: ComponentType;
18957
19038
  }[];
18958
19039
  plusMenu?: readonly ComposerPlusMenuItem[];
19040
+ /** Host-rendered rows in the menu next to the composer's send button. */
19041
+ sendMenu?: readonly ComposerSendMenuItem[];
18959
19042
  richText?: ComposerRichTextSpec;
18960
19043
  }
18961
19044
  /** Host-rendered menu row in the composer's `+` menu. */
18962
19045
  interface ComposerPlusMenuItem {
18963
19046
  id: string;
18964
19047
  label: string;
18965
- /** Drawn only when the manifest declares no `bb.branding.icon`. */
19048
+ /** Takes precedence over the plugin's `bb.branding.icon`, which is drawn when this is omitted. */
18966
19049
  icon?: BbIconName;
18967
19050
  /** Accessible description for the host-rendered row. */
18968
19051
  description?: string;
18969
- disabled?: boolean | ((view: ComposerView) => boolean);
19052
+ disabled?: boolean | ((composer: PluginComposerApi) => boolean);
18970
19053
  run(context: {
18971
19054
  composer: PluginComposerApi;
18972
- view: ComposerView;
18973
19055
  }): void | Promise<void>;
18974
19056
  }
18975
- /** Reactive read-side of the composer a plugin surface is mounted in. */
18976
- interface ComposerView {
18977
- scope: PluginComposerScope;
18978
- layout: "compact" | "expanded" | "zen";
18979
- draft: {
18980
- text: string;
18981
- isEmpty: boolean;
18982
- attachmentCount: number;
18983
- };
18984
- run: {
18985
- isRunning: boolean;
18986
- isSubmitting: boolean;
18987
- };
19057
+ /**
19058
+ * Host-rendered row in the menu next to the composer's send button, for
19059
+ * alternatives to sending right away (save as a draft, send later). The menu
19060
+ * shows only while the composer can submit.
19061
+ */
19062
+ interface ComposerSendMenuItem {
19063
+ id: string;
19064
+ label: string;
19065
+ /** Takes precedence over the plugin's `bb.branding.icon`, which is drawn when this is omitted. */
19066
+ icon?: BbIconName;
19067
+ /** Accessible description for the host-rendered row. */
19068
+ description?: string;
19069
+ disabled?: boolean | ((composer: PluginComposerApi) => boolean);
19070
+ run(context: {
19071
+ composer: PluginComposerApi;
19072
+ }): void | Promise<void>;
18988
19073
  }
18989
19074
  interface ComposerRichTextSpec {
18990
19075
  /** Content-derived paint: match ranges receive `className`; text is never mutated. */
@@ -18997,18 +19082,80 @@ interface ComposerRichTextSpec {
18997
19082
  }[];
18998
19083
  className: string;
18999
19084
  }[];
19000
- /** Debounced, read-only observation of the structured draft. */
19001
- onDraftChange?(draft: ComposerStructuredDraft, view: ComposerView): void;
19002
19085
  }
19003
- interface ComposerStructuredDraft {
19086
+ /** The composer's text and the @-mention pills in it. */
19087
+ interface ComposerDraft {
19004
19088
  text: string;
19005
- mentions: readonly {
19006
- from: number;
19007
- to: number;
19008
- provider: string;
19009
- id: string;
19010
- label: string;
19011
- }[];
19089
+ mentions: readonly ComposerMention[];
19090
+ }
19091
+ /** An already uploaded attachment; paths retain their original project or thread ownership. */
19092
+ type ComposerAttachment = UploadedPromptAttachment;
19093
+ /** The complete current draft. Snapshots and their entries are immutable. */
19094
+ interface ComposerDraftSnapshot extends ComposerDraft {
19095
+ readonly attachments: readonly ComposerAttachment[];
19096
+ }
19097
+ /** Atomic text and mention replacement, optionally replacing uploaded attachments too. */
19098
+ interface ComposerDraftReplacement extends ComposerDraft {
19099
+ /** Omit to preserve attachments; supply an empty array to remove them all. Does not upload or copy files. */
19100
+ attachments?: readonly ComposerAttachment[];
19101
+ }
19102
+ /**
19103
+ * One @-mention pill: its range in `ComposerDraft.text` plus everything the
19104
+ * host needs to recreate it, so a mention read from `draft` can be passed
19105
+ * back to `insert` unchanged.
19106
+ */
19107
+ type ComposerMention = {
19108
+ from: number;
19109
+ to: number;
19110
+ label: string;
19111
+ } & ({
19112
+ kind: "thread";
19113
+ threadId: string;
19114
+ projectId?: string;
19115
+ } | {
19116
+ kind: "project";
19117
+ projectId: string;
19118
+ } | {
19119
+ kind: "section";
19120
+ sectionId: string;
19121
+ } | {
19122
+ kind: "path";
19123
+ path: string;
19124
+ source: "thread-storage" | "workspace";
19125
+ entryKind: "directory" | "file";
19126
+ } | {
19127
+ kind: "command";
19128
+ trigger: "$" | "/";
19129
+ name: string;
19130
+ source: "command" | "skill";
19131
+ origin: "builtin" | "project" | "user";
19132
+ argumentHint: string | null;
19133
+ } | {
19134
+ kind: "plugin";
19135
+ /** The plugin that owns the pill. */
19136
+ pluginId: string;
19137
+ /** The mention provider id that plugin registered. */
19138
+ provider: string;
19139
+ /** The item id the provider's `resolve` receives at send time. */
19140
+ id: string;
19141
+ icon?: string | null;
19142
+ });
19143
+ /**
19144
+ * What `insert` accepts: text, a mention read from `draft` (any kind), or one
19145
+ * of the calling plugin's own mentions (`{ provider, id, label }`, no `kind`).
19146
+ */
19147
+ type ComposerInsertPart = string | ComposerMention | PluginComposerMention;
19148
+ /** Where `insert` puts its content. */
19149
+ interface ComposerInsertOptions {
19150
+ /**
19151
+ * `"cursor"` (default) inserts at the editor's selection, replacing any
19152
+ * selected text; the selection is kept while focus is elsewhere, and the
19153
+ * composer must be on screen. `"end"` inserts after the last character and
19154
+ * also works for a composer that is not on screen.
19155
+ */
19156
+ at?: "cursor" | "end";
19157
+ /** Put the content on its own paragraph, adding a paragraph break before and after only where text is adjacent. */
19158
+ block?: boolean;
19012
19159
  }
19013
19160
  /** Host-rendered paint applied to the editable composer text. */
19014
19161
  interface PluginComposerTextEffect {
@@ -19040,31 +19187,77 @@ interface PluginComposerMention {
19040
19187
  label: string;
19041
19188
  }
19042
19189
  /**
19043
- * Programmatic access to the chat composer draft — the same shared draft the
19044
- * built-in "Add to chat" affordances (file preview, diff, terminal selections)
19045
- * write to. While a queued message is being edited, writes land in that
19046
- * message's inline editor. In a side chat, writes land in the visible side-chat
19047
- * draft. Otherwise, inside a thread context writes land in that thread's draft;
19048
- * anywhere else (nav panel, homepage section) they seed the new-thread composer
19049
- * draft, which persists until the user sends or clears it.
19190
+ * One composer: its state and the writes a plugin can make. `useComposer()`
19191
+ * returns the composer the calling surface belongs to — inside a composer
19192
+ * slot, that composer; in a thread's panels, that thread's composer;
19193
+ * elsewhere, the current route's draft (the thread in view, or the new-thread
19194
+ * draft).
19195
+ *
19196
+ * The handle is stable: the same composer returns the same object across
19197
+ * renders, and its methods always act on the current draft, so it is safe to
19198
+ * keep in effects, callbacks and async work. Its reactive fields (`text`,
19199
+ * `draft`, `selection`, `isEmpty`, …) re-render the calling component when they change;
19200
+ * depend on those fields, not on the handle, in memo dependency lists.
19201
+ *
19202
+ * A handle always writes to its own composer's draft. Thread and new-thread
19203
+ * drafts persist, so a write after the composer left the screen still lands
19204
+ * in that draft. When the draft no longer exists (a queued-message or
19205
+ * sent-message editor that closed), `insert`, `replace`, `removeMention`, `submit` and
19206
+ * `setSelection` throw "This composer is no longer available"; the older
19207
+ * text methods log a warning and do nothing.
19050
19208
  */
19051
19209
  interface PluginComposerApi {
19052
19210
  scope: PluginComposerScope;
19211
+ /**
19212
+ * Stable identity for this composer's draft: the same across remounts and
19213
+ * reloads for thread and new-thread composers (including a `ThreadChat`),
19214
+ * and per editing session for queued-message and sent-message editors.
19215
+ */
19216
+ readonly key: string;
19217
+ /** `"compact"` in the collapsed single-line layout, otherwise `"expanded"`. */
19218
+ readonly layout: "compact" | "expanded";
19219
+ /** The thread's agent is running or stopping. Always false in a new-thread composer. */
19220
+ readonly isRunning: boolean;
19221
+ /** The composer is submitting right now. */
19222
+ readonly isSubmitting: boolean;
19223
+ /**
19224
+ * Pressing Enter would not submit right now: the same decision as the
19225
+ * host's send button (empty draft, uploads in progress, loading, a
19226
+ * selection or setup missing, a pending interaction, voice input, …).
19227
+ */
19228
+ readonly isSubmittingBlocked: boolean;
19229
+ /** The host's message for why submitting is blocked, or null when it is not. */
19230
+ readonly submittingBlockedReason: string | null;
19231
+ /** No text (ignoring whitespace), no mentions and no attachments. */
19232
+ readonly isEmpty: boolean;
19233
+ /** Attachments that have finished uploading. */
19234
+ readonly attachmentCount: number;
19053
19235
  /** Current plain text for this composer scope. */
19054
19236
  readonly text: string;
19237
+ /** The complete current draft, including uploaded attachments. Stable until the draft changes. */
19238
+ readonly draft: ComposerDraftSnapshot;
19239
+ /** Current picker values, or null when this composer has no pickers. Stable until a picker value changes. */
19240
+ readonly selection: ComposerSelection | null;
19055
19241
  /**
19056
- * Replace the draft's plain text. Attachments are preserved. Inline mentions
19057
- * outside the changed range are preserved and rebased; mentions overlapped
19058
- * by the replacement are removed because their text representation changed.
19242
+ * Replace text and mentions together in one committed change. An updater
19243
+ * receives the latest immutable snapshot, including attachments, and must
19244
+ * return its result synchronously. Returning that same snapshot is a no-op.
19245
+ * Omitted attachments are preserved; an explicit list replaces them, and
19246
+ * an empty list clears them. Does not infer or rebase mention ranges.
19247
+ * Ranges are non-overlapping UTF-16 offsets into the supplied text.
19248
+ * Invalid results, throwing updaters, and unavailable editors leave the
19249
+ * draft unchanged. Does not focus, submit, upload, or copy files between
19250
+ * projects. Use `insert` for insertion at the editor's cursor.
19059
19251
  */
19060
- setText(next: string): void;
19252
+ replace(next: ComposerDraftReplacement | ((current: ComposerDraftSnapshot) => ComposerDraftReplacement)): void;
19061
19253
  /**
19062
- * Replace the draft's plain text from the latest committed value. Uses the
19063
- * same structured-state reconciliation as `setText`.
19254
+ * Insert text and mentions. See {@link ComposerInsertOptions} for placement.
19255
+ * Mentions read from `draft` are recreated exactly; the calling plugin's
19256
+ * own `{ provider, id, label }` resolves through its mention provider.
19257
+ * Throws for another plugin's mention without `kind`, and for
19258
+ * `at: "cursor"` when the composer is not on screen.
19064
19259
  */
19065
- updateText(updater: (current: string) => string): void;
19066
- /** Clear plain text without clearing independently attached files. */
19067
- clear(): void;
19260
+ insert(parts: ComposerInsertPart | readonly ComposerInsertPart[], options?: ComposerInsertOptions): void;
19068
19261
  /**
19069
19262
  * Apply a host-rendered effect to this composer's editable text, or clear it.
19070
19263
  * Effects are scoped to the calling plugin and automatically clear when the
@@ -19077,38 +19270,22 @@ interface PluginComposerApi {
19077
19270
  * scope changes.
19078
19271
  */
19079
19272
  setInputLock(locked: boolean): void;
19080
- /**
19081
- * Append text to the draft as a `> ` blockquote block and focus the
19082
- * composer. Blank text is a no-op. This is the "reference this selection
19083
- * in chat" primitive.
19084
- */
19085
- addQuote(text: string): void;
19086
- /**
19087
- * Insert an @-mention pill that resolves through this plugin's mention
19088
- * provider at send time — the durable way to reference an entity whose
19089
- * content should be fetched fresh when the message is sent.
19090
- */
19091
- insertMention(mention: PluginComposerMention): void;
19092
- /** Remove this plugin's matching mention pills and their text from the current draft. */
19093
- experimental_removeMention(mention: {
19094
- provider: string;
19095
- id: string;
19096
- }): void;
19097
19273
  /** Subscribe to successful local submissions in this composer scope, including accepted queued messages. Failed sends and draft clearing do not notify. Dispose on unmount. */
19098
- experimental_onSubmitted(listener: () => void): () => void;
19274
+ onSubmitted(listener: () => void): () => void;
19099
19275
  /** Focus the composer caret at the end of the draft. */
19100
19276
  focus(): void;
19101
19277
  /**
19102
- * Submit this composer's draft through the composer's OWN submit pipeline,
19103
- * optionally scheduling it or attaching plugin-owned dispatch data.
19104
- *
19105
- * This is a real submission, not a plugin-issued send: the host builds the
19106
- * request exactly as pressing Enter would, so the draft's attachments and
19278
+ * Submit this composer's draft exactly as pressing Enter would: the same
19279
+ * checks and the same action (send, or queue while the thread is busy; a
19280
+ * provider handoff creates a new thread). The draft's attachments and
19107
19281
  * @-mentions, and — in the new-thread composer — the provider, model,
19108
19282
  * reasoning level, service tier, permission mode and environment the user
19109
- * has selected on screen, all travel with it. A plugin cannot assemble that
19110
- * tuple itself, which is why sending from the backend instead would silently
19111
- * run the message with different settings than the ones in front of the user.
19283
+ * has selected on screen, all travel with it.
19284
+ *
19285
+ * While attachments are uploading it waits for them, then checks again; it
19286
+ * rejects if an upload fails. Otherwise, when submitting is blocked it
19287
+ * rejects with `submittingBlockedReason`, a message safe to show to the
19288
+ * user. The queued-message and sent-message editors save edits and reject.
19112
19289
  *
19113
19290
  * `sendAt` queues the submission until that time. `experimental_data` is
19114
19291
  * opaque JSON delivered to dispatch hooks together with the calling plugin's
@@ -19117,16 +19294,10 @@ interface PluginComposerApi {
19117
19294
  * later attempts; core does not persist or interpret the opaque data.
19118
19295
  *
19119
19296
  * Resolves once the host has accepted the submission and cleared the draft.
19120
- * Rejects when the composer refused to submit — a scope with no submit
19121
- * pipeline (a queued-message editor, a side chat), an empty draft, or a
19122
- * composer that is not ready (still loading its execution defaults, missing
19123
- * an environment). The rejection's message is safe to show to the user.
19124
19297
  * Failures of the underlying request are reported by bb's own submit error
19125
19298
  * handling and restore the draft, exactly as an interactive failure does.
19126
- *
19127
- * Experimental: see docs/api_to_audit.md.
19128
19299
  */
19129
- experimental_submit(options: ExperimentalComposerSubmitOptions): Promise<void>;
19300
+ submit(options: ComposerSubmitOptions): Promise<void>;
19130
19301
  /**
19131
19302
  * Set this composer's pickers as if each value had been picked by hand.
19132
19303
  *
@@ -19173,18 +19344,15 @@ interface PluginComposerApi {
19173
19344
  * mounted outside any composer), when the calling surface is no longer
19174
19345
  * active, and when a value is not a known reasoning level, service tier or
19175
19346
  * permission mode.
19176
- *
19177
- * Experimental: see docs/api_to_audit.md.
19178
19347
  */
19179
- experimental_setSelection(selection: ExperimentalComposerSelection): Promise<ExperimentalComposerSelection>;
19348
+ setSelection(selection: ComposerSelection): Promise<ComposerSelection>;
19180
19349
  }
19181
19350
  /**
19182
- * Picker values for `experimental_setSelection`, and the shape it resolves
19183
- * with. Field names match `NewThreadRequest` and the `default*` props of
19351
+ * Current picker values in `selection`, input for `setSelection`, and the shape it resolves with. Field names match `NewThreadRequest` and the `default*` props of
19184
19352
  * `experimental_NewThreadComposer`, so one routed decision can feed the
19185
19353
  * composer, the embedded composer and `bb.sdk.threads.spawn` alike.
19186
19354
  */
19187
- interface ExperimentalComposerSelection {
19355
+ interface ComposerSelection {
19188
19356
  /** New-thread composers only. BB's personal-project id means "Don't work in a project". */
19189
19357
  projectId?: string;
19190
19358
  /**
@@ -19205,13 +19373,13 @@ interface ExperimentalComposerSelection {
19205
19373
  permissionMode?: PermissionMode;
19206
19374
  }
19207
19375
  /**
19208
- * What `experimental_submit` does differently from pressing Enter.
19376
+ * What `submit` does differently from pressing Enter.
19209
19377
  *
19210
19378
  * `experimental_data` is opaque JSON delivered to dispatch hooks. The runtime
19211
19379
  * associates it with the calling plugin automatically for the initial
19212
19380
  * dispatch attempt.
19213
19381
  */
19214
- type ExperimentalComposerSubmitOptions = {
19382
+ type ComposerSubmitOptions = {
19215
19383
  sendAt: number;
19216
19384
  experimental_data?: JsonValue$1;
19217
19385
  } | {
@@ -19436,7 +19604,7 @@ interface NewThreadRequest {
19436
19604
  input: PromptInput[];
19437
19605
  /**
19438
19606
  * Epoch ms the first turn should dispatch at. Present only when the
19439
- * submission came from `useComposer().experimental_submit` — a scheduled
19607
+ * submission came from `useComposer().submit` — a scheduled
19440
19608
  * create — and absent otherwise, which is what makes an ordinary submission
19441
19609
  * start work at once. Forward it to `threads.spawn` unchanged: the thread is
19442
19610
  * created `pending` and its first message is queued as a row until then.
@@ -19740,6 +19908,20 @@ interface PluginSdkApp {
19740
19908
  /** Read or clear the owning tab's validated, session-scoped target. */
19741
19909
  experimental_useFixedTabTarget<Target extends JsonValue$1>(tab: ExperimentalPluginFixedTabReference<Target>): ExperimentalFixedTabTargetState<Target> | null;
19742
19910
  useComposer(): PluginComposerApi;
19911
+ /**
19912
+ * Every composer on screen that plugin composer customizations mount in,
19913
+ * oldest first: the thread page's composer, a `ThreadChat`'s composer, the
19914
+ * new-thread composer and open queued-message editors. Use it from a panel
19915
+ * or page that writes into a composer the user picks — label each by its
19916
+ * `scope`, then call `insert`, `focus` or `submit` on the chosen handle.
19917
+ *
19918
+ * Each handle is stable while its composer stays on screen and follows the
19919
+ * same lifetime rule as `useComposer()`. `setTextEffect` and `setInputLock`
19920
+ * have no effect here; call them from a composer slot's `useComposer()`.
19921
+ * The calling component re-renders when the list or any listed draft
19922
+ * changes.
19923
+ */
19924
+ useComposers(): readonly PluginComposerApi[];
19743
19925
  /**
19744
19926
  * The sidebar's live thread view (see {@link PluginSidebarThreadsState}).
19745
19927
  * Reads the host's own cache and realtime subscriptions, so it costs no
@@ -19800,7 +19982,7 @@ interface PluginSdkApp {
19800
19982
  experimental_useSidebarNavigationSplit(itemId: string, options?: ExperimentalSidebarNavigationSplitOptions): ExperimentalSidebarNavigationSplit;
19801
19983
  /**
19802
19984
  * bb's artwork for a navigation item's icon: bb's glyphs for its own items,
19803
- * and the contributing plugin's branding for plugin panels. Experimental:
19985
+ * and the panel's explicit icon, falling back to plugin branding, for plugin panels. Experimental:
19804
19986
  * see docs/api_to_audit.md.
19805
19987
  */
19806
19988
  experimental_SidebarNavigationIcon: ComponentType<ExperimentalSidebarNavigationIconProps>;
@@ -19960,7 +20142,6 @@ interface PluginSdkApp {
19960
20142
  * docs/api_to_audit.md.
19961
20143
  */
19962
20144
  experimental_Diff: ComponentType<DiffProps>;
19963
- useComposerView(): ComposerView;
19964
20145
  }
19965
20146
 
19966
20147
  declare const experimental_Icon: react.ComponentType<ExperimentalIconProps>;
@@ -19989,7 +20170,7 @@ declare const useBbNavigate: () => BbNavigate;
19989
20170
  declare const experimental_useAppPanel: () => ExperimentalAppPanel;
19990
20171
  declare const experimental_useFixedTabTarget: <Target extends JsonValue$1>(tab: ExperimentalPluginFixedTabReference<Target>) => ExperimentalFixedTabTargetState<Target> | null;
19991
20172
  declare const useComposer: () => PluginComposerApi;
19992
- declare const useComposerView: () => ComposerView;
20173
+ declare const useComposers: () => readonly PluginComposerApi[];
19993
20174
  declare const experimental_useSidebarThreads: (options?: {
19994
20175
  experimental_lifecycles: readonly ("active" | "archived")[];
19995
20176
  }) => PluginSidebarThreadsState;
@@ -20011,5 +20192,5 @@ declare const useSdk: () => PluginBrowserBbSdk;
20011
20192
  declare const experimental_useProviders: () => PluginProvidersState;
20012
20193
  declare const experimental_useCodeTheme: () => PluginCodeThemeState;
20013
20194
 
20014
- export { Markdown, ThreadChat, ThreadTitle, UrlLink, definePluginApp, experimental_BranchPicker, experimental_Diff, experimental_FileLink, experimental_Icon, experimental_NewThreadComposer, experimental_PermissionModePicker, experimental_ProviderIcon, experimental_ProviderModelPicker, experimental_SidebarNavigationIcon, experimental_SourceCode, experimental_useAppPanel, experimental_useBranches, experimental_useCheckoutState, experimental_useCodeTheme, experimental_useFixedTabTarget, experimental_usePluginId, experimental_useProviders, experimental_useQuestionFormHost, experimental_useSidebarNavigation, experimental_useSidebarNavigationSplit, experimental_useSidebarThreadActions, experimental_useSidebarThreadPullRequest, experimental_useSidebarThreadSplit, experimental_useSidebarThreads, useBbContext, useBbNavigate, useComposer, useComposerView, useEnvironmentProviders, useRealtime, useRealtimeConnectionState, useRpc, useSdk, useSettings, useSidebarSplitLayout, useSidebarThreadDraft, useSidebarThreadDraftIds, useSidebarThreadRowStatus, useSidebarThreadRowStatuses, useSidebarThreadShortcut };
20015
- export type { BbContext, BbNavigate, BranchPickerProps, BranchesState, CheckoutState, CodeOverflowMode, ComposerCustomization, ComposerPlusMenuItem, ComposerRichTextSpec, ComposerStructuredDraft, ComposerView, DiffProps, DiffViewMode, ExperimentalAppIcons, ExperimentalAppOverlayProps, ExperimentalAppOverlayRegistration, ExperimentalAppPanel, ExperimentalAppPanelSurface, ExperimentalComposerSelection, ExperimentalComposerSubmitOptions, ExperimentalDiffFileContent, ExperimentalDiffFullFileContents, ExperimentalFileLinkProps, ExperimentalFileLocation, ExperimentalFileOpenOptions, ExperimentalFixedTabTargetContract, ExperimentalFixedTabTargetState, ExperimentalIconProps, ExperimentalIconRegistration, ExperimentalLiveFileTarget, ExperimentalOpenFixedTabOptions, ExperimentalPermissionModePickerProps, ExperimentalPluginBrowserPage, ExperimentalPluginBrowserPageEvaluateOptions, ExperimentalPluginBrowserPageWorld, ExperimentalPluginBrowserToolbarActionProps, ExperimentalPluginBrowserToolbarActionRegistration, ExperimentalPluginFixedTabReference, ExperimentalProviderIconProps, ExperimentalProviderModelPickerProps, ExperimentalProviderModelPickerRouting, ExperimentalProviderModelPickerValue, ExperimentalQuestionFormHost, ExperimentalQuestionShortcut, ExperimentalSidebarFooter, ExperimentalSidebarFooterActionContext, ExperimentalSidebarFooterActionRegistration, ExperimentalSidebarFooterDisclosureController, ExperimentalSidebarFooterDisclosureProps, ExperimentalSidebarFooterDisclosureRegistration, ExperimentalSidebarFooterItemBase, ExperimentalSidebarFooterItemRegistration, ExperimentalSidebarHeaderProps, ExperimentalSidebarHeaderRegistration, ExperimentalSidebarNavigationAction, ExperimentalSidebarNavigationActions, ExperimentalSidebarNavigationActivationOptions, ExperimentalSidebarNavigationIcon, ExperimentalSidebarNavigationIconProps, ExperimentalSidebarNavigationItem, ExperimentalSidebarNavigationProps, ExperimentalSidebarNavigationRegistration, ExperimentalSidebarNavigationShortcut, ExperimentalSidebarNavigationSplit, ExperimentalSidebarNavigationSplitOptions, ExperimentalSidebarNavigationState, JsonValue$1 as JsonValue, MarkdownProps, NewThreadComposerProps, NewThreadRequest, PluginAppBuilder, PluginAppCommands, PluginAppComposer, PluginAppContentScripts, PluginAppDefinition, PluginAppSetup, PluginAppSlots, PluginBoundThreadsArea, PluginBrowserBbSdk, PluginCodeThemeData, PluginCodeThemeState, PluginCodeThemeTokenRule, PluginCommandContext, PluginCommandRegistration, PluginCommandShortcut, PluginComposerApi, PluginComposerMention, PluginComposerScope, PluginComposerTextEffect, PluginComposerThreadRowStatus, PluginContentScriptContext, PluginContentScriptDisposer, PluginContentScriptRegistration, PluginDiffRendererProps, PluginDiffRendererRegistration, PluginEnvironmentProvider, PluginEnvironmentProviderInputsChange, PluginEnvironmentProviderInputsProps, PluginEnvironmentProviderInputsRegistration, PluginEnvironmentProvidersState, PluginFileOpenerProps, PluginFileOpenerRegistration, PluginFileOpenerSource, PluginFixedTabDeclaration, PluginFixedTabRegistration, PluginHomepageSectionProps, PluginHomepageSectionRegistration, PluginMachineProviderInputsChange, PluginMachineProviderInputsProps, PluginMachineProviderInputsRegistration, PluginMessageActionContext, PluginMessageActionRegistration, PluginMessageDirectiveMessage, PluginMessageDirectiveOpenWorkspaceFile, PluginMessageDirectiveProps, PluginMessageDirectiveRegistration, PluginNavPanelProps, PluginNavPanelRegistration, PluginNewThreadPanelActionContext, PluginNewThreadPanelActionRegistration, PluginNewThreadPanelProps, PluginPanelActionOpenOptions, PluginPendingInteractionProps, PluginPendingInteractionRegistration, PluginPendingInteractionView, PluginProviderIconRegistration, PluginProvidersState, PluginRealtimeConnectionState, PluginRpcCallArgs, PluginRpcClient, PluginRpcContract, PluginRpcError, PluginRpcErrorCode, PluginRpcHandlers, PluginRpcIssuePathSegment, PluginRpcMethodContract, PluginRpcResult, PluginRpcValidationIssue, PluginSdkApp, PluginSettingsSectionProps, PluginSettingsSectionRegistration, PluginSettingsState, PluginSidebarFooterActionContext, PluginSidebarFooterActionProps, PluginSidebarFooterActionRegistration, PluginSidebarProject, PluginSidebarPullRequest, PluginSidebarSection, PluginSidebarSplitLayout, PluginSidebarSplitPane, PluginSidebarThread, PluginSidebarThreadActions, PluginSidebarThreadActivity, PluginSidebarThreadDraftState, PluginSidebarThreadIndicator, PluginSidebarThreadPullRequestState, PluginSidebarThreadRowStatus, PluginSidebarThreadShortcut, PluginSidebarThreadSplit, PluginSidebarThreadsState, PluginSourceCodeRendererProps, PluginSourceCodeRendererRegistration, PluginTargetedPanelActionOpenOptions, PluginThreadHeaderActionProps, PluginThreadHeaderActionRegistration, PluginThreadListProps, PluginThreadListRegistration, PluginThreadPanelActionContext, PluginThreadPanelActionRegistration, PluginThreadPanelProps, PluginThreadTitleProps, PluginTimelineRendererProps, PluginTimelineRendererRegistration, PluginTimelineRendererRow, PluginTimelineRowPresentation, PluginTimelineRowStatus, ReadonlyJsonValue, SourceCodeLineRange, SourceCodeProps, StandardSchemaV1, StandardSchemaV1InferInput, StandardSchemaV1InferOutput, StandardSchemaV1Issue, StandardSchemaV1Result, ThreadChatMessageAction, ThreadChatMessageReference, ThreadChatProps, UrlLinkProps, UseBranchesArgs, UseCheckoutStateArgs };
20195
+ export { Markdown, ThreadChat, ThreadTitle, UrlLink, definePluginApp, experimental_BranchPicker, experimental_Diff, experimental_FileLink, experimental_Icon, experimental_NewThreadComposer, experimental_PermissionModePicker, experimental_ProviderIcon, experimental_ProviderModelPicker, experimental_SidebarNavigationIcon, experimental_SourceCode, experimental_useAppPanel, experimental_useBranches, experimental_useCheckoutState, experimental_useCodeTheme, experimental_useFixedTabTarget, experimental_usePluginId, experimental_useProviders, experimental_useQuestionFormHost, experimental_useSidebarNavigation, experimental_useSidebarNavigationSplit, experimental_useSidebarThreadActions, experimental_useSidebarThreadPullRequest, experimental_useSidebarThreadSplit, experimental_useSidebarThreads, useBbContext, useBbNavigate, useComposer, useComposers, useEnvironmentProviders, useRealtime, useRealtimeConnectionState, useRpc, useSdk, useSettings, useSidebarSplitLayout, useSidebarThreadDraft, useSidebarThreadDraftIds, useSidebarThreadRowStatus, useSidebarThreadRowStatuses, useSidebarThreadShortcut };
20196
+ export type { BbContext, BbNavigate, BranchPickerProps, BranchesState, CheckoutState, CodeOverflowMode, ComposerAttachment, ComposerCustomization, ComposerDraft, ComposerDraftReplacement, ComposerDraftSnapshot, ComposerInsertOptions, ComposerInsertPart, ComposerMention, ComposerPlusMenuItem, ComposerRichTextSpec, ComposerSelection, ComposerSendMenuItem, ComposerSubmitOptions, DiffProps, DiffViewMode, ExperimentalAppIcons, ExperimentalAppOverlayProps, ExperimentalAppOverlayRegistration, ExperimentalAppPanel, ExperimentalAppPanelSurface, ExperimentalDiffFileContent, ExperimentalDiffFullFileContents, ExperimentalFileLinkProps, ExperimentalFileLocation, ExperimentalFileOpenOptions, ExperimentalFixedTabTargetContract, ExperimentalFixedTabTargetState, ExperimentalIconProps, ExperimentalIconRegistration, ExperimentalLiveFileTarget, ExperimentalOpenFixedTabOptions, ExperimentalPermissionModePickerProps, ExperimentalPluginBrowserPage, ExperimentalPluginBrowserPageEvaluateOptions, ExperimentalPluginBrowserPageWorld, ExperimentalPluginBrowserToolbarActionProps, ExperimentalPluginBrowserToolbarActionRegistration, ExperimentalPluginFixedTabReference, ExperimentalProviderIconProps, ExperimentalProviderModelPickerProps, ExperimentalProviderModelPickerRouting, ExperimentalProviderModelPickerValue, ExperimentalQuestionFormHost, ExperimentalQuestionShortcut, ExperimentalSidebarFooter, ExperimentalSidebarFooterActionContext, ExperimentalSidebarFooterActionRegistration, ExperimentalSidebarFooterDisclosureController, ExperimentalSidebarFooterDisclosureProps, ExperimentalSidebarFooterDisclosureRegistration, ExperimentalSidebarFooterItemBase, ExperimentalSidebarFooterItemRegistration, ExperimentalSidebarHeaderProps, ExperimentalSidebarHeaderRegistration, ExperimentalSidebarNavigationAction, ExperimentalSidebarNavigationActions, ExperimentalSidebarNavigationActivationOptions, ExperimentalSidebarNavigationIcon, ExperimentalSidebarNavigationIconProps, ExperimentalSidebarNavigationItem, ExperimentalSidebarNavigationProps, ExperimentalSidebarNavigationRegistration, ExperimentalSidebarNavigationShortcut, ExperimentalSidebarNavigationSplit, ExperimentalSidebarNavigationSplitOptions, ExperimentalSidebarNavigationState, JsonValue$1 as JsonValue, MarkdownProps, NewThreadComposerProps, NewThreadRequest, PluginAppBuilder, PluginAppCommands, PluginAppComposer, PluginAppContentScripts, PluginAppDefinition, PluginAppSetup, PluginAppSlots, PluginBoundThreadsArea, PluginBrowserBbSdk, PluginCodeThemeData, PluginCodeThemeState, PluginCodeThemeTokenRule, PluginCommandContext, PluginCommandRegistration, PluginCommandShortcut, PluginComposerApi, PluginComposerMention, PluginComposerScope, PluginComposerTextEffect, PluginComposerThreadRowStatus, PluginContentScriptContext, PluginContentScriptDisposer, PluginContentScriptRegistration, PluginDiffRendererProps, PluginDiffRendererRegistration, PluginEnvironmentProvider, PluginEnvironmentProviderInputsChange, PluginEnvironmentProviderInputsProps, PluginEnvironmentProviderInputsRegistration, PluginEnvironmentProvidersState, PluginFileOpenerProps, PluginFileOpenerRegistration, PluginFileOpenerSource, PluginFixedTabDeclaration, PluginFixedTabRegistration, PluginHomepageSectionProps, PluginHomepageSectionRegistration, PluginMachineProviderInputsChange, PluginMachineProviderInputsProps, PluginMachineProviderInputsRegistration, PluginMessageActionContext, PluginMessageActionRegistration, PluginMessageDirectiveMessage, PluginMessageDirectiveOpenWorkspaceFile, PluginMessageDirectiveProps, PluginMessageDirectiveRegistration, PluginNavPanelProps, PluginNavPanelRegistration, PluginNewThreadPanelActionContext, PluginNewThreadPanelActionRegistration, PluginNewThreadPanelProps, PluginPanelActionOpenOptions, PluginPendingInteractionProps, PluginPendingInteractionRegistration, PluginPendingInteractionView, PluginProviderIconRegistration, PluginProvidersState, PluginRealtimeConnectionState, PluginRpcCallArgs, PluginRpcClient, PluginRpcContract, PluginRpcError, PluginRpcErrorCode, PluginRpcHandlers, PluginRpcIssuePathSegment, PluginRpcMethodContract, PluginRpcResult, PluginRpcValidationIssue, PluginSdkApp, PluginSettingsSectionProps, PluginSettingsSectionRegistration, PluginSettingsState, PluginSidebarFooterActionContext, PluginSidebarFooterActionProps, PluginSidebarFooterActionRegistration, PluginSidebarProject, PluginSidebarPullRequest, PluginSidebarSection, PluginSidebarSplitLayout, PluginSidebarSplitPane, PluginSidebarThread, PluginSidebarThreadActions, PluginSidebarThreadActivity, PluginSidebarThreadDraftState, PluginSidebarThreadIndicator, PluginSidebarThreadPullRequestState, PluginSidebarThreadRowStatus, PluginSidebarThreadShortcut, PluginSidebarThreadSplit, PluginSidebarThreadsState, PluginSourceCodeRendererProps, PluginSourceCodeRendererRegistration, PluginTargetedPanelActionOpenOptions, PluginThreadHeaderActionProps, PluginThreadHeaderActionRegistration, PluginThreadListProps, PluginThreadListRegistration, PluginThreadPanelActionContext, PluginThreadPanelActionRegistration, PluginThreadPanelProps, PluginThreadTitleProps, PluginTimelineRendererProps, PluginTimelineRendererRegistration, PluginTimelineRendererRow, PluginTimelineRowPresentation, PluginTimelineRowStatus, ReadonlyJsonValue, SourceCodeLineRange, SourceCodeProps, StandardSchemaV1, StandardSchemaV1InferInput, StandardSchemaV1InferOutput, StandardSchemaV1Issue, StandardSchemaV1Result, ThreadChatMessageAction, ThreadChatMessageReference, ThreadChatProps, UrlLinkProps, UseBranchesArgs, UseCheckoutStateArgs };