@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.
@@ -46,6 +46,7 @@ interface ProviderNativeRootsInputLike {
46
46
 
47
47
  declare const appSettingsSchema: z$1.ZodObject<{
48
48
  allowFastServiceTier: z$1.ZodBoolean;
49
+ confirmThreadArchive: z$1.ZodBoolean;
49
50
  defaultMachineAccess: z$1.ZodNullable<z$1.ZodString>;
50
51
  defaultProviderId: z$1.ZodNullable<z$1.ZodString>;
51
52
  machineGitCredentialsEnabled: z$1.ZodBoolean;
@@ -65,6 +66,7 @@ declare const appSettingsSchema: z$1.ZodObject<{
65
66
  type AppSettings = z$1.infer<typeof appSettingsSchema>;
66
67
  declare const appSettingsUpdateSchema: z$1.ZodUnion<readonly [z$1.ZodObject<{
67
68
  allowFastServiceTier: z$1.ZodOptional<z$1.ZodBoolean>;
69
+ confirmThreadArchive: z$1.ZodOptional<z$1.ZodBoolean>;
68
70
  defaultMachineAccess: z$1.ZodNullable<z$1.ZodString>;
69
71
  defaultProviderId: z$1.ZodNullable<z$1.ZodString>;
70
72
  machineGitCredentialsEnabled: z$1.ZodBoolean;
@@ -83,6 +85,7 @@ declare const appSettingsUpdateSchema: z$1.ZodUnion<readonly [z$1.ZodObject<{
83
85
  telemetryEnabled: z$1.ZodOptional<z$1.ZodBoolean>;
84
86
  }, z$1.core.$strict>, z$1.ZodObject<{
85
87
  allowFastServiceTier: z$1.ZodOptional<z$1.ZodBoolean>;
88
+ confirmThreadArchive: z$1.ZodOptional<z$1.ZodBoolean>;
86
89
  defaultMachineAccess: z$1.ZodNullable<z$1.ZodString>;
87
90
  defaultProviderId: z$1.ZodNullable<z$1.ZodString>;
88
91
  machineGitCredentialsEnabled: z$1.ZodBoolean;
@@ -234,6 +237,11 @@ declare const appKeybindingOverridesSchema: z$1.ZodArray<z$1.ZodObject<{
234
237
  "window.new": "window.new";
235
238
  "workspace.openPreferred": "workspace.openPreferred";
236
239
  }>, z$1.ZodTemplateLiteral<`plugin:${string}/${string}`>]>;
240
+ platform: z$1.ZodOptional<z$1.ZodEnum<{
241
+ linux: "linux";
242
+ mac: "mac";
243
+ windows: "windows";
244
+ }>>;
237
245
  shortcut: z$1.ZodNullable<z$1.ZodObject<{
238
246
  alt: z$1.ZodBoolean;
239
247
  control: z$1.ZodBoolean;
@@ -294,7 +302,6 @@ declare const changedMessageSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
294
302
  "events-appended": "events-appended";
295
303
  "history-rewritten": "history-rewritten";
296
304
  "interactions-changed": "interactions-changed";
297
- "order-changed": "order-changed";
298
305
  "parent-changed": "parent-changed";
299
306
  "pin-state-changed": "pin-state-changed";
300
307
  "queue-changed": "queue-changed";
@@ -485,9 +492,7 @@ type Environment = z$1.infer<typeof environmentSchema>;
485
492
  declare const experimentsSchema: z$1.ZodRecord<z$1.ZodEnum<{
486
493
  changelogPreview: "changelogPreview";
487
494
  legacyJitiPluginLoader: "legacyJitiPluginLoader";
488
- mobileApp: "mobileApp";
489
495
  serverMove: "serverMove";
490
- sidebarProgressiveDisclosure: "sidebarProgressiveDisclosure";
491
496
  }>, z$1.ZodBoolean>;
492
497
  type Experiments = z$1.infer<typeof experimentsSchema>;
493
498
 
@@ -651,7 +656,7 @@ declare const providerRateLimitStateSchema: z$1.ZodObject<{
651
656
  }, z$1.core.$strip>>;
652
657
  }, z$1.core.$strip>;
653
658
  type ProviderRateLimitState = z$1.infer<typeof providerRateLimitStateSchema>;
654
- declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readonly [z$1.ZodIntersection<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
659
+ declare const threadEventSchema: z$1.ZodUnion<readonly [z$1.ZodIntersection<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
655
660
  threadId: z$1.ZodString;
656
661
  type: z$1.ZodLiteral<"thread/started">;
657
662
  }, z$1.core.$strip>, z$1.ZodObject<{
@@ -2867,7 +2872,7 @@ declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readon
2867
2872
  input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
2868
2873
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
2869
2874
  end: z$1.ZodNumber;
2870
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
2875
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
2871
2876
  kind: z$1.ZodLiteral<"thread">;
2872
2877
  label: z$1.ZodString;
2873
2878
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -2916,7 +2921,7 @@ declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readon
2916
2921
  kind: z$1.ZodLiteral<"plugin">;
2917
2922
  label: z$1.ZodString;
2918
2923
  pluginId: z$1.ZodString;
2919
- }, z$1.core.$strip>], "kind">>;
2924
+ }, z$1.core.$strip>], "kind">, unknown>;
2920
2925
  start: z$1.ZodNumber;
2921
2926
  }, z$1.core.$strip>>>;
2922
2927
  text: z$1.ZodString;
@@ -2949,7 +2954,7 @@ declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readon
2949
2954
  inputGroups: z$1.ZodOptional<z$1.ZodArray<z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
2950
2955
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
2951
2956
  end: z$1.ZodNumber;
2952
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
2957
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
2953
2958
  kind: z$1.ZodLiteral<"thread">;
2954
2959
  label: z$1.ZodString;
2955
2960
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -2998,7 +3003,7 @@ declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readon
2998
3003
  kind: z$1.ZodLiteral<"plugin">;
2999
3004
  label: z$1.ZodString;
3000
3005
  pluginId: z$1.ZodString;
3001
- }, z$1.core.$strip>], "kind">>;
3006
+ }, z$1.core.$strip>], "kind">, unknown>;
3002
3007
  start: z$1.ZodNumber;
3003
3008
  }, z$1.core.$strip>>>;
3004
3009
  text: z$1.ZodString;
@@ -3143,8 +3148,6 @@ declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readon
3143
3148
  code: z$1.ZodOptional<z$1.ZodString>;
3144
3149
  detail: z$1.ZodOptional<z$1.ZodString>;
3145
3150
  message: z$1.ZodString;
3146
- reconnectAttempt: z$1.ZodOptional<z$1.ZodNumber>;
3147
- reconnectTotal: z$1.ZodOptional<z$1.ZodNumber>;
3148
3151
  threadId: z$1.ZodString;
3149
3152
  type: z$1.ZodLiteral<"system/error">;
3150
3153
  }, z$1.core.$strip>, z$1.ZodObject<{
@@ -3553,7 +3556,7 @@ declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readon
3553
3556
  kind: z$1.ZodLiteral<"turn">;
3554
3557
  turnId: z$1.ZodString;
3555
3558
  }, z$1.core.$strip>], "kind">;
3556
- }, z$1.core.$strip>>]>>;
3559
+ }, z$1.core.$strip>>]>;
3557
3560
  type ThreadEvent = z$1.infer<typeof threadEventSchema>;
3558
3561
  type ThreadEventType = ThreadEvent["type"];
3559
3562
 
@@ -3940,7 +3943,7 @@ type PermissionMode = z$1.infer<typeof permissionModeSchema>;
3940
3943
  declare const promptInputSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
3941
3944
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
3942
3945
  end: z$1.ZodNumber;
3943
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
3946
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
3944
3947
  kind: z$1.ZodLiteral<"thread">;
3945
3948
  label: z$1.ZodString;
3946
3949
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -3989,7 +3992,7 @@ declare const promptInputSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
3989
3992
  kind: z$1.ZodLiteral<"plugin">;
3990
3993
  label: z$1.ZodString;
3991
3994
  pluginId: z$1.ZodString;
3992
- }, z$1.core.$strip>], "kind">>;
3995
+ }, z$1.core.$strip>], "kind">, unknown>;
3993
3996
  start: z$1.ZodNumber;
3994
3997
  }, z$1.core.$strip>>>;
3995
3998
  text: z$1.ZodString;
@@ -4271,7 +4274,7 @@ declare const threadQueuedMessageSchema: z$1.ZodObject<{
4271
4274
  content: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4272
4275
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
4273
4276
  end: z$1.ZodNumber;
4274
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4277
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4275
4278
  kind: z$1.ZodLiteral<"thread">;
4276
4279
  label: z$1.ZodString;
4277
4280
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -4320,7 +4323,7 @@ declare const threadQueuedMessageSchema: z$1.ZodObject<{
4320
4323
  kind: z$1.ZodLiteral<"plugin">;
4321
4324
  label: z$1.ZodString;
4322
4325
  pluginId: z$1.ZodString;
4323
- }, z$1.core.$strip>], "kind">>;
4326
+ }, z$1.core.$strip>], "kind">, unknown>;
4324
4327
  start: z$1.ZodNumber;
4325
4328
  }, z$1.core.$strip>>>;
4326
4329
  text: z$1.ZodString;
@@ -4428,6 +4431,11 @@ declare const threadQueuedWorkSchema: z$1.ZodEnum<{
4428
4431
  }>;
4429
4432
  type ThreadQueuedWork = z$1.infer<typeof threadQueuedWorkSchema>;
4430
4433
 
4434
+ declare const mobileAppDownloads: {
4435
+ ios: string;
4436
+ android: string;
4437
+ };
4438
+
4431
4439
  declare const threadContextResponseSchema: z$1.ZodObject<{
4432
4440
  usage: z$1.ZodNullable<z$1.ZodObject<{
4433
4441
  estimated: z$1.ZodBoolean;
@@ -4589,14 +4597,14 @@ declare const projectListQuerySchema: z$1.ZodObject<{
4589
4597
  }, z$1.core.$strip>;
4590
4598
  type ProjectListQuery = z$1.infer<typeof projectListQuerySchema>;
4591
4599
  declare const projectFilesQuerySchema: z$1.ZodObject<{
4592
- environmentId: z$1.ZodOptional<z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodOptional<z$1.ZodString>>>;
4600
+ environmentId: z$1.ZodOptional<z$1.ZodPreprocess<z$1.ZodOptional<z$1.ZodString>, unknown>>;
4593
4601
  hostId: z$1.ZodOptional<z$1.ZodString>;
4594
4602
  limit: z$1.ZodOptional<z$1.ZodOptional<z$1.ZodString>>;
4595
4603
  query: z$1.ZodOptional<z$1.ZodOptional<z$1.ZodString>>;
4596
4604
  }, z$1.core.$strip>;
4597
4605
  type ProjectFilesQuery = z$1.infer<typeof projectFilesQuerySchema>;
4598
4606
  declare const projectPathsQuerySchema: z$1.ZodObject<{
4599
- environmentId: z$1.ZodOptional<z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodOptional<z$1.ZodString>>>;
4607
+ environmentId: z$1.ZodOptional<z$1.ZodPreprocess<z$1.ZodOptional<z$1.ZodString>, unknown>>;
4600
4608
  hostId: z$1.ZodOptional<z$1.ZodString>;
4601
4609
  includeDirectories: z$1.ZodEnum<{
4602
4610
  false: "false";
@@ -4610,12 +4618,6 @@ declare const projectPathsQuerySchema: z$1.ZodObject<{
4610
4618
  query: z$1.ZodOptional<z$1.ZodOptional<z$1.ZodString>>;
4611
4619
  }, z$1.core.$strip>;
4612
4620
  type ProjectPathsQuery = z$1.infer<typeof projectPathsQuerySchema>;
4613
- declare const projectFileContentQuerySchema: z$1.ZodObject<{
4614
- environmentId: z$1.ZodOptional<z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodOptional<z$1.ZodString>>>;
4615
- hostId: z$1.ZodOptional<z$1.ZodString>;
4616
- path: z$1.ZodString;
4617
- }, z$1.core.$strip>;
4618
- type ProjectFileContentQuery = z$1.infer<typeof projectFileContentQuerySchema>;
4619
4621
  declare const projectBranchesQuerySchema: z$1.ZodObject<{
4620
4622
  hostId: z$1.ZodString;
4621
4623
  limit: z$1.ZodOptional<z$1.ZodString>;
@@ -4693,7 +4695,7 @@ declare const promptHistoryResponseSchema: z$1.ZodArray<z$1.ZodObject<{
4693
4695
  input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4694
4696
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
4695
4697
  end: z$1.ZodNumber;
4696
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4698
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4697
4699
  kind: z$1.ZodLiteral<"thread">;
4698
4700
  label: z$1.ZodString;
4699
4701
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -4742,7 +4744,7 @@ declare const promptHistoryResponseSchema: z$1.ZodArray<z$1.ZodObject<{
4742
4744
  kind: z$1.ZodLiteral<"plugin">;
4743
4745
  label: z$1.ZodString;
4744
4746
  pluginId: z$1.ZodString;
4745
- }, z$1.core.$strip>], "kind">>;
4747
+ }, z$1.core.$strip>], "kind">, unknown>;
4746
4748
  start: z$1.ZodNumber;
4747
4749
  }, z$1.core.$strip>>>;
4748
4750
  text: z$1.ZodString;
@@ -4803,7 +4805,7 @@ declare const commandListResponseSchema: z$1.ZodObject<{
4803
4805
  }, z$1.core.$strip>;
4804
4806
  type CommandListResponse = z$1.infer<typeof commandListResponseSchema>;
4805
4807
  declare const projectCommandsQuerySchema: z$1.ZodObject<{
4806
- environmentId: z$1.ZodOptional<z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodOptional<z$1.ZodString>>>;
4808
+ environmentId: z$1.ZodOptional<z$1.ZodPreprocess<z$1.ZodOptional<z$1.ZodString>, unknown>>;
4807
4809
  hostId: z$1.ZodOptional<z$1.ZodString>;
4808
4810
  provider: z$1.ZodString;
4809
4811
  }, z$1.core.$strict>;
@@ -5570,9 +5572,11 @@ declare const environmentPullRequestResponseSchema: z$1.ZodDiscriminatedUnion<[z
5570
5572
  draft: "draft";
5571
5573
  merged: "merged";
5572
5574
  none: "none";
5575
+ queued: "queued";
5573
5576
  ready_to_merge: "ready_to_merge";
5574
5577
  review_requested: "review_requested";
5575
5578
  }>;
5579
+ autoMerge: z$1.ZodBoolean;
5576
5580
  baseRefName: z$1.ZodString;
5577
5581
  checks: z$1.ZodObject<{
5578
5582
  failedCount: z$1.ZodNumber;
@@ -5588,6 +5592,7 @@ declare const environmentPullRequestResponseSchema: z$1.ZodDiscriminatedUnion<[z
5588
5592
  totalCount: z$1.ZodNumber;
5589
5593
  }, z$1.core.$strict>;
5590
5594
  headRefName: z$1.ZodString;
5595
+ inMergeQueue: z$1.ZodNullable<z$1.ZodBoolean>;
5591
5596
  mergeability: z$1.ZodObject<{
5592
5597
  mergeStateStatus: z$1.ZodNullable<z$1.ZodEnum<{
5593
5598
  BEHIND: "BEHIND";
@@ -5838,12 +5843,6 @@ declare const hostDaemonCommandRegistry: {
5838
5843
  hidden: "hidden";
5839
5844
  reveal: "reveal";
5840
5845
  }>;
5841
- profile: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
5842
- id: z$1.ZodString;
5843
- kind: z$1.ZodLiteral<"automation">;
5844
- }, z$1.core.$strip>, z$1.ZodObject<{
5845
- kind: z$1.ZodLiteral<"personal">;
5846
- }, z$1.core.$strip>], "kind">;
5847
5846
  tabId: z$1.ZodString;
5848
5847
  threadId: z$1.ZodString;
5849
5848
  title: z$1.ZodString;
@@ -5857,12 +5856,6 @@ declare const hostDaemonCommandRegistry: {
5857
5856
  hidden: "hidden";
5858
5857
  reveal: "reveal";
5859
5858
  }>;
5860
- profile: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
5861
- id: z$1.ZodString;
5862
- kind: z$1.ZodLiteral<"automation">;
5863
- }, z$1.core.$strip>, z$1.ZodObject<{
5864
- kind: z$1.ZodLiteral<"personal">;
5865
- }, z$1.core.$strip>], "kind">;
5866
5859
  tabId: z$1.ZodString;
5867
5860
  threadId: z$1.ZodString;
5868
5861
  type: z$1.ZodLiteral<"desktop.browser.create_tab">;
@@ -5878,12 +5871,6 @@ declare const hostDaemonCommandRegistry: {
5878
5871
  hidden: "hidden";
5879
5872
  reveal: "reveal";
5880
5873
  }>;
5881
- profile: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
5882
- id: z$1.ZodString;
5883
- kind: z$1.ZodLiteral<"automation">;
5884
- }, z$1.core.$strip>, z$1.ZodObject<{
5885
- kind: z$1.ZodLiteral<"personal">;
5886
- }, z$1.core.$strip>], "kind">;
5887
5874
  tabId: z$1.ZodString;
5888
5875
  threadId: z$1.ZodString;
5889
5876
  title: z$1.ZodString;
@@ -5996,12 +5983,6 @@ declare const hostDaemonCommandRegistry: {
5996
5983
  "desktop.browser.import_cookies": HostDaemonCommandDescriptor<"desktop.browser.import_cookies", z$1.ZodObject<{
5997
5984
  generation: z$1.ZodString;
5998
5985
  instanceId: z$1.ZodString;
5999
- profile: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6000
- id: z$1.ZodString;
6001
- kind: z$1.ZodLiteral<"automation">;
6002
- }, z$1.core.$strip>, z$1.ZodObject<{
6003
- kind: z$1.ZodLiteral<"personal">;
6004
- }, z$1.core.$strip>], "kind">;
6005
5986
  sourceId: z$1.ZodUnion<readonly [z$1.ZodEnum<{
6006
5987
  arc: "arc";
6007
5988
  brave: "brave";
@@ -6087,7 +6068,6 @@ declare const hostDaemonCommandRegistry: {
6087
6068
  serverPath: z$1.ZodString;
6088
6069
  }, z$1.core.$strict>]>;
6089
6070
  }, z$1.core.$strict>>>;
6090
- disallowedTools: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
6091
6071
  dynamicTools: z$1.ZodArray<z$1.ZodObject<{
6092
6072
  description: z$1.ZodString;
6093
6073
  inputSchema: z$1.ZodUnknown;
@@ -6248,7 +6228,6 @@ declare const hostDaemonCommandRegistry: {
6248
6228
  serverPath: z$1.ZodString;
6249
6229
  }, z$1.core.$strict>]>;
6250
6230
  }, z$1.core.$strict>>>;
6251
- disallowedTools: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
6252
6231
  dynamicTools: z$1.ZodArray<z$1.ZodObject<{
6253
6232
  description: z$1.ZodString;
6254
6233
  inputSchema: z$1.ZodUnknown;
@@ -6315,7 +6294,7 @@ declare const hostDaemonCommandRegistry: {
6315
6294
  input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6316
6295
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
6317
6296
  end: z$1.ZodNumber;
6318
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6297
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6319
6298
  kind: z$1.ZodLiteral<"thread">;
6320
6299
  label: z$1.ZodString;
6321
6300
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -6364,7 +6343,7 @@ declare const hostDaemonCommandRegistry: {
6364
6343
  kind: z$1.ZodLiteral<"plugin">;
6365
6344
  label: z$1.ZodString;
6366
6345
  pluginId: z$1.ZodString;
6367
- }, z$1.core.$strip>], "kind">>;
6346
+ }, z$1.core.$strip>], "kind">, unknown>;
6368
6347
  start: z$1.ZodNumber;
6369
6348
  }, z$1.core.$strip>>>;
6370
6349
  text: z$1.ZodString;
@@ -6397,7 +6376,7 @@ declare const hostDaemonCommandRegistry: {
6397
6376
  inputGroups: z$1.ZodOptional<z$1.ZodArray<z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6398
6377
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
6399
6378
  end: z$1.ZodNumber;
6400
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6379
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6401
6380
  kind: z$1.ZodLiteral<"thread">;
6402
6381
  label: z$1.ZodString;
6403
6382
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -6446,7 +6425,7 @@ declare const hostDaemonCommandRegistry: {
6446
6425
  kind: z$1.ZodLiteral<"plugin">;
6447
6426
  label: z$1.ZodString;
6448
6427
  pluginId: z$1.ZodString;
6449
- }, z$1.core.$strip>], "kind">>;
6428
+ }, z$1.core.$strip>], "kind">, unknown>;
6450
6429
  start: z$1.ZodNumber;
6451
6430
  }, z$1.core.$strip>>>;
6452
6431
  text: z$1.ZodString;
@@ -6564,7 +6543,7 @@ declare const hostDaemonCommandRegistry: {
6564
6543
  input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6565
6544
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
6566
6545
  end: z$1.ZodNumber;
6567
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6546
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6568
6547
  kind: z$1.ZodLiteral<"thread">;
6569
6548
  label: z$1.ZodString;
6570
6549
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -6613,7 +6592,7 @@ declare const hostDaemonCommandRegistry: {
6613
6592
  kind: z$1.ZodLiteral<"plugin">;
6614
6593
  label: z$1.ZodString;
6615
6594
  pluginId: z$1.ZodString;
6616
- }, z$1.core.$strip>], "kind">>;
6595
+ }, z$1.core.$strip>], "kind">, unknown>;
6617
6596
  start: z$1.ZodNumber;
6618
6597
  }, z$1.core.$strip>>>;
6619
6598
  text: z$1.ZodString;
@@ -6646,7 +6625,7 @@ declare const hostDaemonCommandRegistry: {
6646
6625
  inputGroups: z$1.ZodOptional<z$1.ZodArray<z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6647
6626
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
6648
6627
  end: z$1.ZodNumber;
6649
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6628
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6650
6629
  kind: z$1.ZodLiteral<"thread">;
6651
6630
  label: z$1.ZodString;
6652
6631
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -6695,7 +6674,7 @@ declare const hostDaemonCommandRegistry: {
6695
6674
  kind: z$1.ZodLiteral<"plugin">;
6696
6675
  label: z$1.ZodString;
6697
6676
  pluginId: z$1.ZodString;
6698
- }, z$1.core.$strip>], "kind">>;
6677
+ }, z$1.core.$strip>], "kind">, unknown>;
6699
6678
  start: z$1.ZodNumber;
6700
6679
  }, z$1.core.$strip>>>;
6701
6680
  text: z$1.ZodString;
@@ -6809,7 +6788,6 @@ declare const hostDaemonCommandRegistry: {
6809
6788
  serverPath: z$1.ZodString;
6810
6789
  }, z$1.core.$strict>]>;
6811
6790
  }, z$1.core.$strict>>>;
6812
- disallowedTools: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
6813
6791
  dynamicTools: z$1.ZodArray<z$1.ZodObject<{
6814
6792
  description: z$1.ZodString;
6815
6793
  inputSchema: z$1.ZodUnknown;
@@ -6891,12 +6869,7 @@ declare const hostDaemonCommandRegistry: {
6891
6869
  }, z$1.core.$strip>], "mode">;
6892
6870
  threadId: z$1.ZodString;
6893
6871
  type: z$1.ZodLiteral<"turn.submit">;
6894
- }, z$1.core.$strict>, z$1.ZodObject<{
6895
- appliedAs: z$1.ZodEnum<{
6896
- "new-turn": "new-turn";
6897
- steer: "steer";
6898
- }>;
6899
- }, z$1.core.$strip>, "settled", false>;
6872
+ }, z$1.core.$strict>, z$1.ZodObject<{}, z$1.core.$strip>, "settled", false>;
6900
6873
  "thread.stop": HostDaemonCommandDescriptor<"thread.stop", z$1.ZodObject<{
6901
6874
  environmentId: z$1.ZodString;
6902
6875
  intent: z$1.ZodEnum<{
@@ -7028,7 +7001,6 @@ declare const hostDaemonCommandRegistry: {
7028
7001
  serverPath: z$1.ZodString;
7029
7002
  }, z$1.core.$strict>]>;
7030
7003
  }, z$1.core.$strict>>>;
7031
- disallowedTools: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
7032
7004
  dynamicTools: z$1.ZodArray<z$1.ZodObject<{
7033
7005
  description: z$1.ZodString;
7034
7006
  inputSchema: z$1.ZodUnknown;
@@ -7850,15 +7822,6 @@ declare const hostDaemonCommandRegistry: {
7850
7822
  name: z$1.ZodString;
7851
7823
  }, z$1.core.$strip>>;
7852
7824
  }, z$1.core.$strip>, "onlineRpc", true>;
7853
- "host.file_metadata": HostDaemonCommandDescriptor<"host.file_metadata", z$1.ZodObject<{
7854
- path: z$1.ZodString;
7855
- rootPath: z$1.ZodOptional<z$1.ZodString>;
7856
- type: z$1.ZodLiteral<"host.file_metadata">;
7857
- }, z$1.core.$strict>, z$1.ZodObject<{
7858
- modifiedAtMs: z$1.ZodNumber;
7859
- path: z$1.ZodString;
7860
- sizeBytes: z$1.ZodNumber;
7861
- }, z$1.core.$strip>, "onlineRpc", true>;
7862
7825
  "host.read_file": HostDaemonCommandDescriptor<"host.read_file", z$1.ZodObject<{
7863
7826
  ifNoneMatch: z$1.ZodOptional<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
7864
7827
  kind: z$1.ZodLiteral<"any">;
@@ -8123,9 +8086,7 @@ declare const hostDaemonCommandRegistry: {
8123
8086
  kind: z$1.ZodLiteral<"artifact">;
8124
8087
  }, z$1.core.$strict>;
8125
8088
  }, z$1.core.$strict>;
8126
- cwd: z$1.ZodOptional<z$1.ZodString>;
8127
8089
  providerId: z$1.ZodString;
8128
- requirement: z$1.ZodOptional<z$1.ZodLiteral<"thread_rewind">>;
8129
8090
  type: z$1.ZodLiteral<"provider.installation.status">;
8130
8091
  }, z$1.core.$strict>, z$1.ZodObject<{
8131
8092
  currentVersion: z$1.ZodNullable<z$1.ZodString>;
@@ -8186,7 +8147,6 @@ declare const hostDaemonCommandRegistry: {
8186
8147
  kind: z$1.ZodLiteral<"artifact">;
8187
8148
  }, z$1.core.$strict>;
8188
8149
  }, z$1.core.$strict>;
8189
- cwd: z$1.ZodOptional<z$1.ZodString>;
8190
8150
  providerId: z$1.ZodString;
8191
8151
  type: z$1.ZodLiteral<"provider.installation.run">;
8192
8152
  }, z$1.core.$strict>, z$1.ZodObject<{
@@ -8241,7 +8201,6 @@ declare const hostDaemonCommandRegistry: {
8241
8201
  kind: z$1.ZodLiteral<"artifact">;
8242
8202
  }, z$1.core.$strict>;
8243
8203
  }, z$1.core.$strict>;
8244
- cwd: z$1.ZodOptional<z$1.ZodString>;
8245
8204
  providerId: z$1.ZodString;
8246
8205
  type: z$1.ZodLiteral<"provider.usage">;
8247
8206
  }, z$1.core.$strict>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
@@ -8534,6 +8493,7 @@ declare const hostDaemonCommandRegistry: {
8534
8493
  }, z$1.core.$strict>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
8535
8494
  outcome: z$1.ZodLiteral<"available">;
8536
8495
  pullRequest: z$1.ZodObject<{
8496
+ autoMerge: z$1.ZodBoolean;
8537
8497
  baseRefName: z$1.ZodString;
8538
8498
  checks: z$1.ZodArray<z$1.ZodObject<{
8539
8499
  conclusion: z$1.ZodNullable<z$1.ZodEnum<{
@@ -8559,6 +8519,7 @@ declare const hostDaemonCommandRegistry: {
8559
8519
  url: z$1.ZodNullable<z$1.ZodString>;
8560
8520
  }, z$1.core.$strict>>;
8561
8521
  headRefName: z$1.ZodString;
8522
+ inMergeQueue: z$1.ZodNullable<z$1.ZodBoolean>;
8562
8523
  isDraft: z$1.ZodBoolean;
8563
8524
  mergeStateStatus: z$1.ZodNullable<z$1.ZodEnum<{
8564
8525
  BEHIND: "BEHIND";
@@ -8621,12 +8582,6 @@ declare const hostDaemonCommandRegistry: {
8621
8582
  }>;
8622
8583
  portAvailable: z$1.ZodBoolean;
8623
8584
  serverEntryAvailable: z$1.ZodBoolean;
8624
- serviceManager: z$1.ZodEnum<{
8625
- "systemd-system": "systemd-system";
8626
- "systemd-user": "systemd-user";
8627
- launchd: "launchd";
8628
- none: "none";
8629
- }>;
8630
8585
  timeZone: z$1.ZodNullable<z$1.ZodString>;
8631
8586
  }, z$1.core.$strict>, "onlineRpc", true>;
8632
8587
  "server_move.probe": HostDaemonCommandDescriptor<"server_move.probe", z$1.ZodObject<{
@@ -8805,12 +8760,6 @@ declare const desktopBrowserCommandSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObj
8805
8760
  hidden: "hidden";
8806
8761
  reveal: "reveal";
8807
8762
  }>;
8808
- profile: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
8809
- id: z$1.ZodString;
8810
- kind: z$1.ZodLiteral<"automation">;
8811
- }, z$1.core.$strip>, z$1.ZodObject<{
8812
- kind: z$1.ZodLiteral<"personal">;
8813
- }, z$1.core.$strip>], "kind">;
8814
8763
  tabId: z$1.ZodString;
8815
8764
  threadId: z$1.ZodString;
8816
8765
  type: z$1.ZodLiteral<"desktop.browser.create_tab">;
@@ -8862,12 +8811,6 @@ declare const desktopBrowserCommandSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObj
8862
8811
  }, z$1.core.$strict>, z$1.ZodObject<{
8863
8812
  generation: z$1.ZodString;
8864
8813
  instanceId: z$1.ZodString;
8865
- profile: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
8866
- id: z$1.ZodString;
8867
- kind: z$1.ZodLiteral<"automation">;
8868
- }, z$1.core.$strip>, z$1.ZodObject<{
8869
- kind: z$1.ZodLiteral<"personal">;
8870
- }, z$1.core.$strip>], "kind">;
8871
8814
  sourceId: z$1.ZodUnion<readonly [z$1.ZodEnum<{
8872
8815
  arc: "arc";
8873
8816
  brave: "brave";
@@ -8904,12 +8847,6 @@ declare const desktopBrowserResultSchemas: {
8904
8847
  hidden: "hidden";
8905
8848
  reveal: "reveal";
8906
8849
  }>;
8907
- profile: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
8908
- id: z$1.ZodString;
8909
- kind: z$1.ZodLiteral<"automation">;
8910
- }, z$1.core.$strip>, z$1.ZodObject<{
8911
- kind: z$1.ZodLiteral<"personal">;
8912
- }, z$1.core.$strip>], "kind">;
8913
8850
  tabId: z$1.ZodString;
8914
8851
  threadId: z$1.ZodString;
8915
8852
  title: z$1.ZodString;
@@ -8927,12 +8864,6 @@ declare const desktopBrowserResultSchemas: {
8927
8864
  hidden: "hidden";
8928
8865
  reveal: "reveal";
8929
8866
  }>;
8930
- profile: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
8931
- id: z$1.ZodString;
8932
- kind: z$1.ZodLiteral<"automation">;
8933
- }, z$1.core.$strip>, z$1.ZodObject<{
8934
- kind: z$1.ZodLiteral<"personal">;
8935
- }, z$1.core.$strip>], "kind">;
8936
8867
  tabId: z$1.ZodString;
8937
8868
  threadId: z$1.ZodString;
8938
8869
  title: z$1.ZodString;
@@ -10183,6 +10114,7 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
10183
10114
  all: z$1.ZodArray<z$1.ZodEnum<{
10184
10115
  browserFocus: "browserFocus";
10185
10116
  editableFocus: "editableFocus";
10117
+ linuxPlatform: "linuxPlatform";
10186
10118
  macPlatform: "macPlatform";
10187
10119
  mainSurface: "mainSurface";
10188
10120
  modalOpen: "modalOpen";
@@ -10192,10 +10124,12 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
10192
10124
  splitActive: "splitActive";
10193
10125
  terminalFocus: "terminalFocus";
10194
10126
  webSurface: "webSurface";
10127
+ windowsPlatform: "windowsPlatform";
10195
10128
  }>>;
10196
10129
  none: z$1.ZodArray<z$1.ZodEnum<{
10197
10130
  browserFocus: "browserFocus";
10198
10131
  editableFocus: "editableFocus";
10132
+ linuxPlatform: "linuxPlatform";
10199
10133
  macPlatform: "macPlatform";
10200
10134
  mainSurface: "mainSurface";
10201
10135
  modalOpen: "modalOpen";
@@ -10205,15 +10139,14 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
10205
10139
  splitActive: "splitActive";
10206
10140
  terminalFocus: "terminalFocus";
10207
10141
  webSurface: "webSurface";
10142
+ windowsPlatform: "windowsPlatform";
10208
10143
  }>>;
10209
10144
  }, z$1.core.$strict>;
10210
10145
  }, z$1.core.$strict>>;
10211
10146
  experiments: z$1.ZodRecord<z$1.ZodEnum<{
10212
10147
  changelogPreview: "changelogPreview";
10213
10148
  legacyJitiPluginLoader: "legacyJitiPluginLoader";
10214
- mobileApp: "mobileApp";
10215
10149
  serverMove: "serverMove";
10216
- sidebarProgressiveDisclosure: "sidebarProgressiveDisclosure";
10217
10150
  }>, z$1.ZodBoolean>;
10218
10151
  featureFlags: z$1.ZodObject<{
10219
10152
  placeholder: z$1.ZodBoolean;
@@ -10221,6 +10154,7 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
10221
10154
  }, z$1.core.$strip>;
10222
10155
  generalSettings: z$1.ZodObject<{
10223
10156
  allowFastServiceTier: z$1.ZodBoolean;
10157
+ confirmThreadArchive: z$1.ZodBoolean;
10224
10158
  defaultMachineAccess: z$1.ZodNullable<z$1.ZodString>;
10225
10159
  defaultProviderId: z$1.ZodNullable<z$1.ZodString>;
10226
10160
  machineGitCredentialsEnabled: z$1.ZodBoolean;
@@ -10317,6 +10251,11 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
10317
10251
  "window.new": "window.new";
10318
10252
  "workspace.openPreferred": "workspace.openPreferred";
10319
10253
  }>, z$1.ZodTemplateLiteral<`plugin:${string}/${string}`>]>;
10254
+ platform: z$1.ZodOptional<z$1.ZodEnum<{
10255
+ linux: "linux";
10256
+ mac: "mac";
10257
+ windows: "windows";
10258
+ }>>;
10320
10259
  shortcut: z$1.ZodNullable<z$1.ZodObject<{
10321
10260
  alt: z$1.ZodBoolean;
10322
10261
  control: z$1.ZodBoolean;
@@ -10417,6 +10356,7 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
10417
10356
  all: z$1.ZodArray<z$1.ZodEnum<{
10418
10357
  browserFocus: "browserFocus";
10419
10358
  editableFocus: "editableFocus";
10359
+ linuxPlatform: "linuxPlatform";
10420
10360
  macPlatform: "macPlatform";
10421
10361
  mainSurface: "mainSurface";
10422
10362
  modalOpen: "modalOpen";
@@ -10426,10 +10366,12 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
10426
10366
  splitActive: "splitActive";
10427
10367
  terminalFocus: "terminalFocus";
10428
10368
  webSurface: "webSurface";
10369
+ windowsPlatform: "windowsPlatform";
10429
10370
  }>>;
10430
10371
  none: z$1.ZodArray<z$1.ZodEnum<{
10431
10372
  browserFocus: "browserFocus";
10432
10373
  editableFocus: "editableFocus";
10374
+ linuxPlatform: "linuxPlatform";
10433
10375
  macPlatform: "macPlatform";
10434
10376
  mainSurface: "mainSurface";
10435
10377
  modalOpen: "modalOpen";
@@ -10439,6 +10381,7 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
10439
10381
  splitActive: "splitActive";
10440
10382
  terminalFocus: "terminalFocus";
10441
10383
  webSurface: "webSurface";
10384
+ windowsPlatform: "windowsPlatform";
10442
10385
  }>>;
10443
10386
  }, z$1.core.$strict>;
10444
10387
  }, z$1.core.$strict>>;
@@ -10706,6 +10649,118 @@ declare const systemMachineProviderSchema: z$1.ZodObject<{
10706
10649
  supportsSuspend: z$1.ZodBoolean;
10707
10650
  }, z$1.core.$strip>;
10708
10651
  type SystemMachineProvider = z$1.infer<typeof systemMachineProviderSchema>;
10652
+ declare const androidAppArtifactSchema: z$1.ZodObject<{
10653
+ sha256: z$1.ZodString;
10654
+ size: z$1.ZodNumber;
10655
+ version: z$1.ZodString;
10656
+ versionCode: z$1.ZodNumber;
10657
+ }, z$1.core.$strip>;
10658
+ type AndroidAppArtifact = z$1.infer<typeof androidAppArtifactSchema>;
10659
+ interface SystemMobileAppReleasesResponse {
10660
+ android: (AndroidAppArtifact & {
10661
+ updatedAt: string;
10662
+ }) | null;
10663
+ }
10664
+ declare const systemProviderCatalogEntrySchema: z$1.ZodObject<{
10665
+ available: z$1.ZodBoolean;
10666
+ displayName: z$1.ZodString;
10667
+ enabled: z$1.ZodBoolean;
10668
+ id: z$1.ZodString;
10669
+ info: z$1.ZodNullable<z$1.ZodObject<{
10670
+ available: z$1.ZodBoolean;
10671
+ capabilities: z$1.ZodObject<{
10672
+ modelCatalogScope: z$1.ZodEnum<{
10673
+ host: "host";
10674
+ workspace: "workspace";
10675
+ }>;
10676
+ permissionModes: z$1.ZodArray<z$1.ZodEnum<{
10677
+ "accept-edits": "accept-edits";
10678
+ auto: "auto";
10679
+ full: "full";
10680
+ }>>;
10681
+ supportsFork: z$1.ZodBoolean;
10682
+ supportsNativeUserQuestion: z$1.ZodBoolean;
10683
+ supportsServiceTier: z$1.ZodBoolean;
10684
+ supportsSessionRewind: z$1.ZodBoolean;
10685
+ supportsThreadArchive: z$1.ZodBoolean;
10686
+ supportsThreadRename: z$1.ZodBoolean;
10687
+ }, z$1.core.$strip>;
10688
+ completedTurnDisplay: z$1.ZodEnum<{
10689
+ collapse: "collapse";
10690
+ flat: "flat";
10691
+ }>;
10692
+ composerActions: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
10693
+ kind: z$1.ZodLiteral<"skills">;
10694
+ trigger: z$1.ZodEnum<{
10695
+ "/": "/";
10696
+ $: "$";
10697
+ }>;
10698
+ }, z$1.core.$strip>, z$1.ZodObject<{
10699
+ command: z$1.ZodObject<{
10700
+ name: z$1.ZodString;
10701
+ trailingText: z$1.ZodString;
10702
+ trigger: z$1.ZodEnum<{
10703
+ "/": "/";
10704
+ $: "$";
10705
+ }>;
10706
+ }, z$1.core.$strip>;
10707
+ kind: z$1.ZodLiteral<"plan">;
10708
+ }, z$1.core.$strip>, z$1.ZodObject<{
10709
+ command: z$1.ZodObject<{
10710
+ name: z$1.ZodString;
10711
+ trailingText: z$1.ZodString;
10712
+ trigger: z$1.ZodEnum<{
10713
+ "/": "/";
10714
+ $: "$";
10715
+ }>;
10716
+ }, z$1.core.$strip>;
10717
+ kind: z$1.ZodLiteral<"goal">;
10718
+ }, z$1.core.$strip>], "kind">>;
10719
+ displayName: z$1.ZodString;
10720
+ 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<{
10721
+ item: z$1.ZodBoolean;
10722
+ state: z$1.ZodBoolean;
10723
+ }, z$1.core.$strip>>>;
10724
+ family: z$1.ZodOptional<z$1.ZodString>;
10725
+ icon: z$1.ZodOptional<z$1.ZodObject<{
10726
+ glyph: z$1.ZodString;
10727
+ }, z$1.core.$strip>>;
10728
+ id: z$1.ZodString;
10729
+ logoUrl: z$1.ZodNullable<z$1.ZodString>;
10730
+ maintenance: z$1.ZodObject<{
10731
+ health: z$1.ZodBoolean;
10732
+ installation: z$1.ZodBoolean;
10733
+ usage: z$1.ZodBoolean;
10734
+ }, z$1.core.$strip>;
10735
+ pluginId: z$1.ZodString;
10736
+ reasoningLevels: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
10737
+ description: z$1.ZodOptional<z$1.ZodString>;
10738
+ id: z$1.ZodString;
10739
+ label: z$1.ZodString;
10740
+ }, z$1.core.$strip>>>;
10741
+ serviceTiers: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
10742
+ description: z$1.ZodOptional<z$1.ZodString>;
10743
+ id: z$1.ZodString;
10744
+ label: z$1.ZodString;
10745
+ }, z$1.core.$strip>>>;
10746
+ strings: z$1.ZodOptional<z$1.ZodObject<{
10747
+ brandPrefix: z$1.ZodOptional<z$1.ZodString>;
10748
+ expiredHint: z$1.ZodString;
10749
+ iconTint: z$1.ZodOptional<z$1.ZodObject<{
10750
+ dark: z$1.ZodString;
10751
+ light: z$1.ZodString;
10752
+ }, z$1.core.$strip>>;
10753
+ installUrl: z$1.ZodString;
10754
+ planModeCopy: z$1.ZodOptional<z$1.ZodString>;
10755
+ signInHint: z$1.ZodString;
10756
+ }, z$1.core.$strip>>;
10757
+ }, z$1.core.$strip>>;
10758
+ logoUrl: z$1.ZodNullable<z$1.ZodString>;
10759
+ pluginEnabled: z$1.ZodBoolean;
10760
+ pluginId: z$1.ZodString;
10761
+ pluginName: z$1.ZodString;
10762
+ }, z$1.core.$strip>;
10763
+ type SystemProviderCatalogEntry = z$1.infer<typeof systemProviderCatalogEntrySchema>;
10709
10764
 
10710
10765
  interface UiPreferencesResponse {
10711
10766
  preferences: UiPreferenceEntries;
@@ -10882,7 +10937,7 @@ declare const timelineConversationRowSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodO
10882
10937
  kind: z$1.ZodLiteral<"conversation">;
10883
10938
  mentions: z$1.ZodArray<z$1.ZodObject<{
10884
10939
  end: z$1.ZodNumber;
10885
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
10940
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
10886
10941
  kind: z$1.ZodLiteral<"thread">;
10887
10942
  label: z$1.ZodString;
10888
10943
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -10931,7 +10986,7 @@ declare const timelineConversationRowSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodO
10931
10986
  kind: z$1.ZodLiteral<"plugin">;
10932
10987
  label: z$1.ZodString;
10933
10988
  pluginId: z$1.ZodString;
10934
- }, z$1.core.$strip>], "kind">>;
10989
+ }, z$1.core.$strip>], "kind">, unknown>;
10935
10990
  start: z$1.ZodNumber;
10936
10991
  }, z$1.core.$strip>>;
10937
10992
  role: z$1.ZodLiteral<"user">;
@@ -12091,7 +12146,7 @@ declare const createThreadRequestSchema: z$1.ZodObject<{
12091
12146
  input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12092
12147
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
12093
12148
  end: z$1.ZodNumber;
12094
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12149
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12095
12150
  kind: z$1.ZodLiteral<"thread">;
12096
12151
  label: z$1.ZodString;
12097
12152
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -12140,7 +12195,7 @@ declare const createThreadRequestSchema: z$1.ZodObject<{
12140
12195
  kind: z$1.ZodLiteral<"plugin">;
12141
12196
  label: z$1.ZodString;
12142
12197
  pluginId: z$1.ZodString;
12143
- }, z$1.core.$strip>], "kind">>;
12198
+ }, z$1.core.$strip>], "kind">, unknown>;
12144
12199
  start: z$1.ZodNumber;
12145
12200
  }, z$1.core.$strip>>>;
12146
12201
  text: z$1.ZodString;
@@ -12188,6 +12243,7 @@ declare const createThreadRequestSchema: z$1.ZodObject<{
12188
12243
  auto: "auto";
12189
12244
  full: "full";
12190
12245
  }>, z$1.ZodLiteral<"workspace-write">]>, z$1.ZodTransform<"accept-edits" | "auto" | "full", "accept-edits" | "auto" | "full" | "workspace-write">>>;
12246
+ pinned: z$1.ZodOptional<z$1.ZodBoolean>;
12191
12247
  pluginMetadata: z$1.ZodOptional<z$1.ZodType<JsonObject, unknown, z$1.core.$ZodTypeInternals<JsonObject, unknown>>>;
12192
12248
  pluginSubmission: z$1.ZodOptional<z$1.ZodObject<{
12193
12249
  data: z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>;
@@ -12231,7 +12287,7 @@ declare const forkThreadRequestSchema: z$1.ZodObject<{
12231
12287
  agentContextSeed: z$1.ZodOptional<z$1.ZodArray<z$1.ZodIntersection<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12232
12288
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
12233
12289
  end: z$1.ZodNumber;
12234
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12290
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12235
12291
  kind: z$1.ZodLiteral<"thread">;
12236
12292
  label: z$1.ZodString;
12237
12293
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -12280,7 +12336,7 @@ declare const forkThreadRequestSchema: z$1.ZodObject<{
12280
12336
  kind: z$1.ZodLiteral<"plugin">;
12281
12337
  label: z$1.ZodString;
12282
12338
  pluginId: z$1.ZodString;
12283
- }, z$1.core.$strip>], "kind">>;
12339
+ }, z$1.core.$strip>], "kind">, unknown>;
12284
12340
  start: z$1.ZodNumber;
12285
12341
  }, z$1.core.$strip>>>;
12286
12342
  text: z$1.ZodString;
@@ -12357,7 +12413,7 @@ declare const forkThreadRequestSchema: z$1.ZodObject<{
12357
12413
  input: z$1.ZodOptional<z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12358
12414
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
12359
12415
  end: z$1.ZodNumber;
12360
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12416
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12361
12417
  kind: z$1.ZodLiteral<"thread">;
12362
12418
  label: z$1.ZodString;
12363
12419
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -12406,7 +12462,7 @@ declare const forkThreadRequestSchema: z$1.ZodObject<{
12406
12462
  kind: z$1.ZodLiteral<"plugin">;
12407
12463
  label: z$1.ZodString;
12408
12464
  pluginId: z$1.ZodString;
12409
- }, z$1.core.$strip>], "kind">>;
12465
+ }, z$1.core.$strip>], "kind">, unknown>;
12410
12466
  start: z$1.ZodNumber;
12411
12467
  }, z$1.core.$strip>>>;
12412
12468
  text: z$1.ZodString;
@@ -12481,7 +12537,7 @@ declare const sendMessageRequestSchema: z$1.ZodObject<{
12481
12537
  input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12482
12538
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
12483
12539
  end: z$1.ZodNumber;
12484
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12540
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12485
12541
  kind: z$1.ZodLiteral<"thread">;
12486
12542
  label: z$1.ZodString;
12487
12543
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -12530,7 +12586,7 @@ declare const sendMessageRequestSchema: z$1.ZodObject<{
12530
12586
  kind: z$1.ZodLiteral<"plugin">;
12531
12587
  label: z$1.ZodString;
12532
12588
  pluginId: z$1.ZodString;
12533
- }, z$1.core.$strip>], "kind">>;
12589
+ }, z$1.core.$strip>], "kind">, unknown>;
12534
12590
  start: z$1.ZodNumber;
12535
12591
  }, z$1.core.$strip>>>;
12536
12592
  text: z$1.ZodString;
@@ -12610,7 +12666,7 @@ declare const sendMessageResponseSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObjec
12610
12666
  content: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12611
12667
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
12612
12668
  end: z$1.ZodNumber;
12613
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12669
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12614
12670
  kind: z$1.ZodLiteral<"thread">;
12615
12671
  label: z$1.ZodString;
12616
12672
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -12659,7 +12715,7 @@ declare const sendMessageResponseSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObjec
12659
12715
  kind: z$1.ZodLiteral<"plugin">;
12660
12716
  label: z$1.ZodString;
12661
12717
  pluginId: z$1.ZodString;
12662
- }, z$1.core.$strip>], "kind">>;
12718
+ }, z$1.core.$strip>], "kind">, unknown>;
12663
12719
  start: z$1.ZodNumber;
12664
12720
  }, z$1.core.$strip>>>;
12665
12721
  text: z$1.ZodString;
@@ -12784,7 +12840,7 @@ declare const editMessageRequestSchema: z$1.ZodObject<{
12784
12840
  input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12785
12841
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
12786
12842
  end: z$1.ZodNumber;
12787
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12843
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12788
12844
  kind: z$1.ZodLiteral<"thread">;
12789
12845
  label: z$1.ZodString;
12790
12846
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -12833,7 +12889,7 @@ declare const editMessageRequestSchema: z$1.ZodObject<{
12833
12889
  kind: z$1.ZodLiteral<"plugin">;
12834
12890
  label: z$1.ZodString;
12835
12891
  pluginId: z$1.ZodString;
12836
- }, z$1.core.$strip>], "kind">>;
12892
+ }, z$1.core.$strip>], "kind">, unknown>;
12837
12893
  start: z$1.ZodNumber;
12838
12894
  }, z$1.core.$strip>>>;
12839
12895
  text: z$1.ZodString;
@@ -12956,7 +13012,7 @@ declare const createQueuedMessageRequestSchema: z$1.ZodObject<{
12956
13012
  input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12957
13013
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
12958
13014
  end: z$1.ZodNumber;
12959
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
13015
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12960
13016
  kind: z$1.ZodLiteral<"thread">;
12961
13017
  label: z$1.ZodString;
12962
13018
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -13005,7 +13061,7 @@ declare const createQueuedMessageRequestSchema: z$1.ZodObject<{
13005
13061
  kind: z$1.ZodLiteral<"plugin">;
13006
13062
  label: z$1.ZodString;
13007
13063
  pluginId: z$1.ZodString;
13008
- }, z$1.core.$strip>], "kind">>;
13064
+ }, z$1.core.$strip>], "kind">, unknown>;
13009
13065
  start: z$1.ZodNumber;
13010
13066
  }, z$1.core.$strip>>>;
13011
13067
  text: z$1.ZodString;
@@ -13063,7 +13119,7 @@ declare const updateQueuedMessageRequestSchema: z$1.ZodObject<{
13063
13119
  input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
13064
13120
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
13065
13121
  end: z$1.ZodNumber;
13066
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
13122
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
13067
13123
  kind: z$1.ZodLiteral<"thread">;
13068
13124
  label: z$1.ZodString;
13069
13125
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -13112,7 +13168,7 @@ declare const updateQueuedMessageRequestSchema: z$1.ZodObject<{
13112
13168
  kind: z$1.ZodLiteral<"plugin">;
13113
13169
  label: z$1.ZodString;
13114
13170
  pluginId: z$1.ZodString;
13115
- }, z$1.core.$strip>], "kind">>;
13171
+ }, z$1.core.$strip>], "kind">, unknown>;
13116
13172
  start: z$1.ZodNumber;
13117
13173
  }, z$1.core.$strip>>>;
13118
13174
  text: z$1.ZodString;
@@ -13172,7 +13228,7 @@ declare const sendQueuedMessageResponseSchema: z$1.ZodDiscriminatedUnion<[z$1.Zo
13172
13228
  content: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
13173
13229
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
13174
13230
  end: z$1.ZodNumber;
13175
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
13231
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
13176
13232
  kind: z$1.ZodLiteral<"thread">;
13177
13233
  label: z$1.ZodString;
13178
13234
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -13221,7 +13277,7 @@ declare const sendQueuedMessageResponseSchema: z$1.ZodDiscriminatedUnion<[z$1.Zo
13221
13277
  kind: z$1.ZodLiteral<"plugin">;
13222
13278
  label: z$1.ZodString;
13223
13279
  pluginId: z$1.ZodString;
13224
- }, z$1.core.$strip>], "kind">>;
13280
+ }, z$1.core.$strip>], "kind">, unknown>;
13225
13281
  start: z$1.ZodNumber;
13226
13282
  }, z$1.core.$strip>>>;
13227
13283
  text: z$1.ZodString;
@@ -14102,7 +14158,7 @@ declare const threadQueuedMessageListResponseSchema: z$1.ZodArray<z$1.ZodObject<
14102
14158
  content: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
14103
14159
  mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
14104
14160
  end: z$1.ZodNumber;
14105
- resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
14161
+ resource: z$1.ZodPreprocess<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
14106
14162
  kind: z$1.ZodLiteral<"thread">;
14107
14163
  label: z$1.ZodString;
14108
14164
  projectId: z$1.ZodOptional<z$1.ZodString>;
@@ -14151,7 +14207,7 @@ declare const threadQueuedMessageListResponseSchema: z$1.ZodArray<z$1.ZodObject<
14151
14207
  kind: z$1.ZodLiteral<"plugin">;
14152
14208
  label: z$1.ZodString;
14153
14209
  pluginId: z$1.ZodString;
14154
- }, z$1.core.$strip>], "kind">>;
14210
+ }, z$1.core.$strip>], "kind">, unknown>;
14155
14211
  start: z$1.ZodNumber;
14156
14212
  }, z$1.core.$strip>>>;
14157
14213
  text: z$1.ZodString;
@@ -14750,6 +14806,7 @@ declare const threadTimelineResponseSchema: z$1.ZodObject<{
14750
14806
  anchorId: z$1.ZodString;
14751
14807
  anchorSeq: z$1.ZodNumber;
14752
14808
  }, z$1.core.$strict>>;
14809
+ olderRowUpdates: z$1.ZodOptional<z$1.ZodArray<z$1.ZodType<TimelineRow, unknown, z$1.core.$ZodTypeInternals<TimelineRow, unknown>>>>;
14753
14810
  olderRowsSourceSeqEnd: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodNumber>>;
14754
14811
  returnedSegmentCount: z$1.ZodNumber;
14755
14812
  segmentLimit: z$1.ZodNumber;
@@ -14825,7 +14882,6 @@ declare const desktopBrowserCreateRequestSchema: z$1.ZodObject<{
14825
14882
  url: z$1.ZodDefault<z$1.ZodPipe<z$1.ZodString, z$1.ZodString>>;
14826
14883
  }, z$1.core.$strict>;
14827
14884
  declare const desktopBrowserAcquireRequestSchema: z$1.ZodObject<{
14828
- allowPersonal: z$1.ZodDefault<z$1.ZodBoolean>;
14829
14885
  controllerLabel: z$1.ZodString;
14830
14886
  generation: z$1.ZodString;
14831
14887
  hostId: z$1.ZodString;
@@ -14850,12 +14906,6 @@ declare const desktopBrowserImportCookiesRequestSchema: z$1.ZodObject<{
14850
14906
  generation: z$1.ZodString;
14851
14907
  hostId: z$1.ZodString;
14852
14908
  instanceId: z$1.ZodString;
14853
- profile: z$1.ZodDefault<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
14854
- id: z$1.ZodString;
14855
- kind: z$1.ZodLiteral<"automation">;
14856
- }, z$1.core.$strip>, z$1.ZodObject<{
14857
- kind: z$1.ZodLiteral<"personal">;
14858
- }, z$1.core.$strip>], "kind">>;
14859
14909
  sourceId: z$1.ZodUnion<readonly [z$1.ZodEnum<{
14860
14910
  arc: "arc";
14861
14911
  brave: "brave";
@@ -15512,6 +15562,9 @@ interface EnvironmentListProvidersArgs {
15512
15562
  }
15513
15563
  type EnvironmentListProvidersResult = SystemEnvironmentProvider[];
15514
15564
  interface EnvironmentsArea {
15565
+ experimental_cleanup(args: EnvironmentActionArgs): Promise<{
15566
+ ok: true;
15567
+ }>;
15515
15568
  archiveThreads(args: EnvironmentActionArgs): Promise<EnvironmentArchiveThreadsResult>;
15516
15569
  commit(args: EnvironmentCommitArgs): Promise<EnvironmentCommitResult>;
15517
15570
  diff(args: EnvironmentDiffArgs): Promise<EnvironmentDiffResult>;
@@ -15672,6 +15725,7 @@ type HostDeleteResult = {
15672
15725
  type HostDirectoryResult = HostDirectoryListing;
15673
15726
  type HostGetResult = Host & {
15674
15727
  connectMachineId: string | null;
15728
+ threadStorageRootPath: string | null;
15675
15729
  };
15676
15730
  type HostEnrollmentCommandResult = HostEnrollmentCommandResponse;
15677
15731
  type HostReconnectResult = HostReconnectResponse;
@@ -15778,7 +15832,8 @@ type ProjectCommandsArgs = ProjectWorkspaceRoutingArgs & Omit<ProjectCommandsQue
15778
15832
  projectId: string;
15779
15833
  signal?: AbortSignal;
15780
15834
  };
15781
- type ProjectFileContentArgs = ProjectWorkspaceRoutingArgs & Omit<ProjectFileContentQuery, "environmentId" | "hostId"> & {
15835
+ type ProjectFileContentArgs = ProjectWorkspaceRoutingArgs & {
15836
+ path: string;
15782
15837
  projectId: string;
15783
15838
  signal?: AbortSignal;
15784
15839
  };
@@ -15923,6 +15978,11 @@ type ProviderModelsArgs = ProviderHostRoutingArgs & {
15923
15978
  type ProviderListResult = ProviderInfo[];
15924
15979
  type ProviderModelsResult = SystemExecutionOptionsResponse;
15925
15980
  interface ProvidersArea {
15981
+ catalog(): Promise<SystemProviderCatalogEntry[]>;
15982
+ setEnabled(args: {
15983
+ providerId: string;
15984
+ enabled: boolean;
15985
+ }): Promise<SystemProviderCatalogEntry[]>;
15926
15986
  list(args?: ProviderListArgs): Promise<ProviderListResult>;
15927
15987
  models(args?: ProviderModelsArgs): Promise<ProviderModelsResult>;
15928
15988
  }
@@ -16342,6 +16402,8 @@ interface SystemArea {
16342
16402
  testAiService(args: SystemTestAiServiceArgs): Promise<SystemTestAiServiceResult>;
16343
16403
  transcribeVoice(args: SystemVoiceTranscriptionArgs): Promise<SystemVoiceTranscriptionResult>;
16344
16404
  uiPreferences: SystemUiPreferencesArea;
16405
+ mobileAppDownloads(): typeof mobileAppDownloads;
16406
+ mobileAppReleases(): Promise<SystemMobileAppReleasesResponse>;
16345
16407
  updateExperiments(args: Experiments): Promise<SystemUpdateExperimentsResult>;
16346
16408
  updateGeneralSettings(args: AppSettingsUpdate): Promise<SystemUpdateGeneralSettingsResult>;
16347
16409
  updateKeyboardSettings(args: AppKeybindingOverrides): Promise<SystemUpdateKeyboardSettingsResult>;
@@ -16997,9 +17059,33 @@ interface PluginRpcMethodContract<InputSchema extends StandardSchemaV1 = Standar
16997
17059
  type PluginRpcContract = Readonly<Record<string, PluginRpcMethodContract>>;
16998
17060
  /** Define a shared RPC contract while preserving exact method/schema types. */
16999
17061
  declare function defineRpcContract<const Contract extends PluginRpcContract>(contract: Contract): Contract;
17062
+ /**
17063
+ * Who invoked an rpc method. `plugin` means another loaded plugin (or this
17064
+ * one) called through its own `bb.sdk.plugins.callRpc`; the host verifies
17065
+ * that with a per-load token only the server knows. Every other caller — the
17066
+ * app, the `bb` CLI, agents, and bb itself — is `client`.
17067
+ */
17068
+ type ExperimentalPluginRpcCaller = {
17069
+ readonly kind: "plugin";
17070
+ readonly pluginId: string;
17071
+ } | {
17072
+ readonly kind: "client";
17073
+ };
17074
+ /** Second argument of every rpc handler. */
17075
+ interface ExperimentalPluginRpcHandlerContext {
17076
+ readonly experimental_caller: ExperimentalPluginRpcCaller;
17077
+ }
17000
17078
  type PluginRpcHandlers<Contract extends PluginRpcContract> = {
17001
17079
  [Method in keyof Contract]: (input: StandardSchemaV1InferOutput<Contract[Method]["input"]>) => StandardSchemaV1InferInput<Contract[Method]["output"]> | Promise<StandardSchemaV1InferInput<Contract[Method]["output"]>>;
17002
17080
  };
17081
+ /**
17082
+ * Handlers as `bb.rpc.register` calls them: the validated input, then the
17083
+ * call's context. A `PluginRpcHandlers` map is assignable to this type, so
17084
+ * handlers that ignore the context keep their one-argument signature.
17085
+ */
17086
+ type ExperimentalPluginRpcHandlersWithContext<Contract extends PluginRpcContract> = {
17087
+ [Method in keyof Contract]: (input: StandardSchemaV1InferOutput<Contract[Method]["input"]>, context: ExperimentalPluginRpcHandlerContext) => StandardSchemaV1InferInput<Contract[Method]["output"]> | Promise<StandardSchemaV1InferInput<Contract[Method]["output"]>>;
17088
+ };
17003
17089
  type PluginRpcCallInput<Method extends PluginRpcMethodContract> = StandardSchemaV1InferInput<Method["input"]>;
17004
17090
  type PluginRpcCallArgs<Method extends PluginRpcMethodContract> = null extends PluginRpcCallInput<Method> ? [input?: PluginRpcCallInput<Method>] : [input: PluginRpcCallInput<Method>];
17005
17091
  type PluginRpcResult<Method extends PluginRpcMethodContract> = StandardSchemaV1InferOutput<Method["output"]>;
@@ -17140,7 +17226,7 @@ type ExperimentalSidebarNavigationAction = {
17140
17226
  /**
17141
17227
  * Semantic icon identity for one sidebar navigation item. Render it with
17142
17228
  * {@link PluginSdkApp.experimental_SidebarNavigationIcon} to match bb's
17143
- * artwork, including plugin branding.
17229
+ * artwork, including panel icons with plugin branding as their fallback.
17144
17230
  */
17145
17231
  type ExperimentalSidebarNavigationIcon = {
17146
17232
  kind: "host";
@@ -17435,8 +17521,6 @@ interface PluginFileOpenerProps {
17435
17521
  * @experimental Audit before relying on this as a stable contract.
17436
17522
  */
17437
17523
  Original: ComponentType;
17438
- /** @deprecated Renamed to `Original` in SDK 0.4.16; removed in bb 0.42. */
17439
- experimental_Original?: ComponentType;
17440
17524
  }
17441
17525
  /** How a code line longer than the viewport is presented. */
17442
17526
  type CodeOverflowMode = "scroll" | "wrap";
@@ -17528,8 +17612,6 @@ interface PluginSourceCodeRendererProps {
17528
17612
  * @experimental Audit before relying on this as a stable contract.
17529
17613
  */
17530
17614
  Original: ComponentType;
17531
- /** @deprecated Renamed to `Original` in SDK 0.4.16; removed in bb 0.42. */
17532
- experimental_Original?: ComponentType;
17533
17615
  }
17534
17616
  /**
17535
17617
  * Props passed to an `experimental_diffRenderer` component. `patch` is always
@@ -17557,8 +17639,6 @@ interface PluginDiffRendererProps {
17557
17639
  * @experimental Audit before relying on this as a stable contract.
17558
17640
  */
17559
17641
  Original: ComponentType;
17560
- /** @deprecated Renamed to `Original` in SDK 0.4.16; removed in bb 0.42. */
17561
- experimental_Original?: ComponentType;
17562
17642
  }
17563
17643
  /**
17564
17644
  * Message context passed to a `messageDirective` component — the assistant
@@ -17599,6 +17679,8 @@ interface PluginHomepageSectionRegistration {
17599
17679
  component: ComponentType<PluginHomepageSectionProps>;
17600
17680
  }
17601
17681
  interface PluginSettingsSectionRegistration {
17682
+ /** Render on Mobile settings instead of the plugin configuration page. */
17683
+ experimental_page?: "mobile";
17602
17684
  /** Unique within the plugin; letters, digits, `-`, `_`. */
17603
17685
  id: string;
17604
17686
  /** Optional host-rendered section heading. */
@@ -17666,6 +17748,7 @@ type ExperimentalPluginFixedTabReference<Target extends JsonValue = never> = {
17666
17748
  /** A fixed tab declared by a plugin nav panel. */
17667
17749
  type PluginFixedTabRegistration<Target extends JsonValue = never> = ExperimentalPluginFixedTabReference<Target> & {
17668
17750
  title: string;
17751
+ /** Resolved names take precedence over plugin branding; unknown names fall back to branding. */
17669
17752
  icon: BbIconName;
17670
17753
  component: ComponentType<PluginNavPanelProps>;
17671
17754
  /** `flush` lets the component own padding and scrolling. */
@@ -17677,6 +17760,7 @@ interface PluginNavPanelRegistration {
17677
17760
  /** Unique within the plugin; letters, digits, `-`, `_`. */
17678
17761
  id: string;
17679
17762
  title: string;
17763
+ /** Resolved names take precedence over plugin branding in navigation and the header; unknown names fall back to branding. */
17680
17764
  icon: BbIconName;
17681
17765
  /** URL segment under `/plugins/<pluginId>/`; letters, digits, `-`, `_`. */
17682
17766
  path: string;
@@ -17760,8 +17844,8 @@ interface PluginThreadPanelActionRegistration {
17760
17844
  /** Label of the action row in the panel's new-tab launcher. */
17761
17845
  title: string;
17762
17846
  /**
17763
- * Drawn only when the manifest declares no `bb.branding.icon`; the launcher
17764
- * row and opened tabs prefer that over this hint.
17847
+ * Resolved names take precedence over plugin branding in the launcher and
17848
+ * opened tabs. Omitted or unknown names fall back to plugin branding.
17765
17849
  */
17766
17850
  icon?: BbIconName;
17767
17851
  /** Rendered inside every panel tab this action opens. */
@@ -17800,7 +17884,7 @@ interface PluginNewThreadPanelActionRegistration {
17800
17884
  id: string;
17801
17885
  /** Label of the action row in the panel's new-tab launcher. */
17802
17886
  title: string;
17803
- /** Drawn only when the manifest declares no `bb.branding.icon`. */
17887
+ /** Resolved names take precedence over plugin branding; omitted or unknown names fall back to branding. */
17804
17888
  icon?: BbIconName;
17805
17889
  /** Rendered inside every panel tab this action opens. */
17806
17890
  component: ComponentType<PluginNewThreadPanelProps>;
@@ -17845,7 +17929,7 @@ interface PluginSidebarFooterActionRegistration {
17845
17929
  id: string;
17846
17930
  /** Tooltip and accessible label for the icon button. */
17847
17931
  title: string;
17848
- /** Drawn only when the manifest declares no `bb.branding.icon`. */
17932
+ /** Resolved names take precedence over plugin branding; omitted or unknown names fall back to branding. */
17849
17933
  icon: BbIconName;
17850
17934
  /**
17851
17935
  * Runs when the user activates the action (e.g. call `openSettings()`,
@@ -18049,11 +18133,24 @@ interface PluginSidebarThread {
18049
18133
  * can colour a badge without reading checks, review, and mergeability itself.
18050
18134
  */
18051
18135
  interface PluginSidebarPullRequest {
18136
+ /** Whether GitHub auto-merge is enabled. */
18137
+ experimental_autoMerge: boolean;
18138
+ /** Null when the GitHub merge queue lookup is unavailable. */
18139
+ experimental_inMergeQueue: boolean | null;
18140
+ experimental_checks: {
18141
+ state: "failing" | "no_checks" | "passing" | "pending" | "unknown";
18142
+ };
18143
+ experimental_review: {
18144
+ state: "approved" | "changes_requested" | "none" | "review_requested" | "review_required";
18145
+ };
18146
+ experimental_mergeability: {
18147
+ state: "blocked" | "conflicts" | "draft" | "mergeable" | "unknown";
18148
+ };
18052
18149
  number: number;
18053
18150
  title: string;
18054
18151
  url: string;
18055
18152
  state: "closed" | "draft" | "merged" | "open";
18056
- attention: "blocked" | "changes_requested" | "checks_failed" | "checks_pending" | "closed" | "conflicts" | "draft" | "merged" | "none" | "ready_to_merge" | "review_requested";
18153
+ attention: "blocked" | "changes_requested" | "checks_failed" | "checks_pending" | "closed" | "conflicts" | "draft" | "merged" | "none" | "queued" | "ready_to_merge" | "review_requested";
18057
18154
  }
18058
18155
  interface PluginSidebarThreadPullRequestState {
18059
18156
  /** True while the first lookup for this thread's environment is in flight. */
@@ -18230,7 +18327,7 @@ interface PluginSidebarThreadDraftState {
18230
18327
  }
18231
18328
  /**
18232
18329
  * The status another plugin's app-wide script set on a thread's row through
18233
- * `useComposer().experimental_setThreadRowStatus` (see
18330
+ * the content-script context's `experimental_setThreadRowStatus` (see
18234
18331
  * {@link PluginSdkApp.useSidebarThreadRowStatus}). bb's row draws it in
18235
18332
  * place of the draft glyph while it is set; a replaced list should do the
18236
18333
  * same so a status set by, say, the drafts or workflows plugin does not
@@ -18270,6 +18367,9 @@ interface PluginSidebarThreadActions {
18270
18367
  * `sectionId` files the new thread under that section, and
18271
18368
  * `environmentId` reuses that environment (the "New thread in
18272
18369
  * environment" affordance), both exactly as bb's own list does.
18370
+ * `experimental_placement` explicitly selects the section and pin state,
18371
+ * overriding `sectionId`. Omitting placement starts unpinned, outside sections
18372
+ * unless `sectionId` is supplied; previous composer placement is cleared.
18273
18373
  * `hostId` selects a machine for a new environment when it
18274
18374
  * is known and supports an environment provider. `environmentId` wins when
18275
18375
  * both are supplied.
@@ -18277,6 +18377,10 @@ interface PluginSidebarThreadActions {
18277
18377
  openNewThread(options?: {
18278
18378
  projectId?: string;
18279
18379
  sectionId?: string;
18380
+ experimental_placement?: {
18381
+ sectionId: string | null;
18382
+ pinned: boolean;
18383
+ };
18280
18384
  environmentId?: string;
18281
18385
  hostId?: string;
18282
18386
  focusPrompt?: boolean;
@@ -18285,7 +18389,7 @@ interface PluginSidebarThreadActions {
18285
18389
  setRead(threadId: string, read: boolean): Promise<void>;
18286
18390
  /** Silent rename — no dialog. For inline editing in your own row. */
18287
18391
  rename(threadId: string, title: string): Promise<void>;
18288
- /** Archives immediately, or confirms first if child threads will also be archived. */
18392
+ /** Confirms before including child threads unless archive confirmation is disabled in Settings → General. */
18289
18393
  archive(threadId: string): void;
18290
18394
  /**
18291
18395
  * Opens bb's delete confirmation, which counts child threads first. Deletion
@@ -18565,12 +18669,19 @@ interface PluginMessageActionContext {
18565
18669
  * is never thrown: the host logs it and reports it here.
18566
18670
  */
18567
18671
  openPanel(options: PluginTargetedPanelActionOpenOptions): boolean;
18672
+ /**
18673
+ * The composer of the thread the message is in, or null when that thread's
18674
+ * composer is not available on this surface. The same handle
18675
+ * `useComposer()` returns there.
18676
+ */
18677
+ composer: PluginComposerApi | null;
18568
18678
  }
18569
18679
  /**
18570
18680
  * An action on chat messages: an icon button in the per-message action bar
18571
18681
  * (user and assistant messages) and an entry in the assistant-message
18572
18682
  * text-selection menu. Host-rendered chrome — the plugin supplies title,
18573
- * icon hint, and `run` behavior only.
18683
+ * icon, and `run` behavior only. Resolved icon names take precedence over
18684
+ * plugin branding; omitted or unknown names fall back to branding.
18574
18685
  */
18575
18686
  interface PluginMessageActionRegistration {
18576
18687
  /** Unique within the plugin; letters, digits, `-`, `_`. */
@@ -19080,12 +19191,6 @@ type PluginComposerScope = {
19080
19191
  kind: "queued-message";
19081
19192
  threadId: string;
19082
19193
  queuedMessageId: string;
19083
- } | {
19084
- kind: "side-chat";
19085
- projectId: string;
19086
- parentThreadId: string;
19087
- tabId: string;
19088
- childThreadId: string | null;
19089
19194
  } | {
19090
19195
  kind: "new-thread";
19091
19196
  /** Root compose's effective selected project; null only while unresolved. */
@@ -19108,35 +19213,39 @@ interface ComposerCustomization {
19108
19213
  component: ComponentType;
19109
19214
  }[];
19110
19215
  plusMenu?: readonly ComposerPlusMenuItem[];
19216
+ /** Host-rendered rows in the menu next to the composer's send button. */
19217
+ sendMenu?: readonly ComposerSendMenuItem[];
19111
19218
  richText?: ComposerRichTextSpec;
19112
19219
  }
19113
19220
  /** Host-rendered menu row in the composer's `+` menu. */
19114
19221
  interface ComposerPlusMenuItem {
19115
19222
  id: string;
19116
19223
  label: string;
19117
- /** Drawn only when the manifest declares no `bb.branding.icon`. */
19224
+ /** Takes precedence over the plugin's `bb.branding.icon`, which is drawn when this is omitted. */
19118
19225
  icon?: BbIconName;
19119
19226
  /** Accessible description for the host-rendered row. */
19120
19227
  description?: string;
19121
- disabled?: boolean | ((view: ComposerView) => boolean);
19228
+ disabled?: boolean | ((composer: PluginComposerApi) => boolean);
19122
19229
  run(context: {
19123
19230
  composer: PluginComposerApi;
19124
- view: ComposerView;
19125
19231
  }): void | Promise<void>;
19126
19232
  }
19127
- /** Reactive read-side of the composer a plugin surface is mounted in. */
19128
- interface ComposerView {
19129
- scope: PluginComposerScope;
19130
- layout: "compact" | "expanded" | "zen";
19131
- draft: {
19132
- text: string;
19133
- isEmpty: boolean;
19134
- attachmentCount: number;
19135
- };
19136
- run: {
19137
- isRunning: boolean;
19138
- isSubmitting: boolean;
19139
- };
19233
+ /**
19234
+ * Host-rendered row in the menu next to the composer's send button, for
19235
+ * alternatives to sending right away (save as a draft, send later). The menu
19236
+ * shows only while the composer can submit.
19237
+ */
19238
+ interface ComposerSendMenuItem {
19239
+ id: string;
19240
+ label: string;
19241
+ /** Takes precedence over the plugin's `bb.branding.icon`, which is drawn when this is omitted. */
19242
+ icon?: BbIconName;
19243
+ /** Accessible description for the host-rendered row. */
19244
+ description?: string;
19245
+ disabled?: boolean | ((composer: PluginComposerApi) => boolean);
19246
+ run(context: {
19247
+ composer: PluginComposerApi;
19248
+ }): void | Promise<void>;
19140
19249
  }
19141
19250
  interface ComposerRichTextSpec {
19142
19251
  /** Content-derived paint: match ranges receive `className`; text is never mutated. */
@@ -19149,18 +19258,80 @@ interface ComposerRichTextSpec {
19149
19258
  }[];
19150
19259
  className: string;
19151
19260
  }[];
19152
- /** Debounced, read-only observation of the structured draft. */
19153
- onDraftChange?(draft: ComposerStructuredDraft, view: ComposerView): void;
19154
19261
  }
19155
- interface ComposerStructuredDraft {
19262
+ /** The composer's text and the @-mention pills in it. */
19263
+ interface ComposerDraft {
19156
19264
  text: string;
19157
- mentions: readonly {
19158
- from: number;
19159
- to: number;
19160
- provider: string;
19161
- id: string;
19162
- label: string;
19163
- }[];
19265
+ mentions: readonly ComposerMention[];
19266
+ }
19267
+ /** An already uploaded attachment; paths retain their original project or thread ownership. */
19268
+ type ComposerAttachment = UploadedPromptAttachment;
19269
+ /** The complete current draft. Snapshots and their entries are immutable. */
19270
+ interface ComposerDraftSnapshot extends ComposerDraft {
19271
+ readonly attachments: readonly ComposerAttachment[];
19272
+ }
19273
+ /** Atomic text and mention replacement, optionally replacing uploaded attachments too. */
19274
+ interface ComposerDraftReplacement extends ComposerDraft {
19275
+ /** Omit to preserve attachments; supply an empty array to remove them all. Does not upload or copy files. */
19276
+ attachments?: readonly ComposerAttachment[];
19277
+ }
19278
+ /**
19279
+ * One @-mention pill: its range in `ComposerDraft.text` plus everything the
19280
+ * host needs to recreate it, so a mention read from `draft` can be passed
19281
+ * back to `insert` unchanged.
19282
+ */
19283
+ type ComposerMention = {
19284
+ from: number;
19285
+ to: number;
19286
+ label: string;
19287
+ } & ({
19288
+ kind: "thread";
19289
+ threadId: string;
19290
+ projectId?: string;
19291
+ } | {
19292
+ kind: "project";
19293
+ projectId: string;
19294
+ } | {
19295
+ kind: "section";
19296
+ sectionId: string;
19297
+ } | {
19298
+ kind: "path";
19299
+ path: string;
19300
+ source: "thread-storage" | "workspace";
19301
+ entryKind: "directory" | "file";
19302
+ } | {
19303
+ kind: "command";
19304
+ trigger: "$" | "/";
19305
+ name: string;
19306
+ source: "command" | "skill";
19307
+ origin: "builtin" | "project" | "user";
19308
+ argumentHint: string | null;
19309
+ } | {
19310
+ kind: "plugin";
19311
+ /** The plugin that owns the pill. */
19312
+ pluginId: string;
19313
+ /** The mention provider id that plugin registered. */
19314
+ provider: string;
19315
+ /** The item id the provider's `resolve` receives at send time. */
19316
+ id: string;
19317
+ icon?: string | null;
19318
+ });
19319
+ /**
19320
+ * What `insert` accepts: text, a mention read from `draft` (any kind), or one
19321
+ * of the calling plugin's own mentions (`{ provider, id, label }`, no `kind`).
19322
+ */
19323
+ type ComposerInsertPart = string | ComposerMention | PluginComposerMention;
19324
+ /** Where `insert` puts its content. */
19325
+ interface ComposerInsertOptions {
19326
+ /**
19327
+ * `"cursor"` (default) inserts at the editor's selection, replacing any
19328
+ * selected text; the selection is kept while focus is elsewhere, and the
19329
+ * composer must be on screen. `"end"` inserts after the last character and
19330
+ * also works for a composer that is not on screen.
19331
+ */
19332
+ at?: "cursor" | "end";
19333
+ /** Put the content on its own paragraph, adding a paragraph break before and after only where text is adjacent. */
19334
+ block?: boolean;
19164
19335
  }
19165
19336
  /** Host-rendered paint applied to the editable composer text. */
19166
19337
  interface PluginComposerTextEffect {
@@ -19192,31 +19363,77 @@ interface PluginComposerMention {
19192
19363
  label: string;
19193
19364
  }
19194
19365
  /**
19195
- * Programmatic access to the chat composer draft — the same shared draft the
19196
- * built-in "Add to chat" affordances (file preview, diff, terminal selections)
19197
- * write to. While a queued message is being edited, writes land in that
19198
- * message's inline editor. In a side chat, writes land in the visible side-chat
19199
- * draft. Otherwise, inside a thread context writes land in that thread's draft;
19200
- * anywhere else (nav panel, homepage section) they seed the new-thread composer
19201
- * draft, which persists until the user sends or clears it.
19366
+ * One composer: its state and the writes a plugin can make. `useComposer()`
19367
+ * returns the composer the calling surface belongs to — inside a composer
19368
+ * slot, that composer; in a thread's panels, that thread's composer;
19369
+ * elsewhere, the current route's draft (the thread in view, or the new-thread
19370
+ * draft).
19371
+ *
19372
+ * The handle is stable: the same composer returns the same object across
19373
+ * renders, and its methods always act on the current draft, so it is safe to
19374
+ * keep in effects, callbacks and async work. Its reactive fields (`text`,
19375
+ * `draft`, `selection`, `isEmpty`, …) re-render the calling component when they change;
19376
+ * depend on those fields, not on the handle, in memo dependency lists.
19377
+ *
19378
+ * A handle always writes to its own composer's draft. Thread and new-thread
19379
+ * drafts persist, so a write after the composer left the screen still lands
19380
+ * in that draft. When the draft no longer exists (a queued-message or
19381
+ * sent-message editor that closed), `insert`, `replace`, `removeMention`, `submit` and
19382
+ * `setSelection` throw "This composer is no longer available"; the older
19383
+ * text methods log a warning and do nothing.
19202
19384
  */
19203
19385
  interface PluginComposerApi {
19204
19386
  scope: PluginComposerScope;
19387
+ /**
19388
+ * Stable identity for this composer's draft: the same across remounts and
19389
+ * reloads for thread and new-thread composers (including a `ThreadChat`),
19390
+ * and per editing session for queued-message and sent-message editors.
19391
+ */
19392
+ readonly key: string;
19393
+ /** `"compact"` in the collapsed single-line layout, otherwise `"expanded"`. */
19394
+ readonly layout: "compact" | "expanded";
19395
+ /** The thread's agent is running or stopping. Always false in a new-thread composer. */
19396
+ readonly isRunning: boolean;
19397
+ /** The composer is submitting right now. */
19398
+ readonly isSubmitting: boolean;
19399
+ /**
19400
+ * Pressing Enter would not submit right now: the same decision as the
19401
+ * host's send button (empty draft, uploads in progress, loading, a
19402
+ * selection or setup missing, a pending interaction, voice input, …).
19403
+ */
19404
+ readonly isSubmittingBlocked: boolean;
19405
+ /** The host's message for why submitting is blocked, or null when it is not. */
19406
+ readonly submittingBlockedReason: string | null;
19407
+ /** No text (ignoring whitespace), no mentions and no attachments. */
19408
+ readonly isEmpty: boolean;
19409
+ /** Attachments that have finished uploading. */
19410
+ readonly attachmentCount: number;
19205
19411
  /** Current plain text for this composer scope. */
19206
19412
  readonly text: string;
19207
- /**
19208
- * Replace the draft's plain text. Attachments are preserved. Inline mentions
19209
- * outside the changed range are preserved and rebased; mentions overlapped
19210
- * by the replacement are removed because their text representation changed.
19211
- */
19212
- setText(next: string): void;
19213
- /**
19214
- * Replace the draft's plain text from the latest committed value. Uses the
19215
- * same structured-state reconciliation as `setText`.
19216
- */
19217
- updateText(updater: (current: string) => string): void;
19218
- /** Clear plain text without clearing independently attached files. */
19219
- clear(): void;
19413
+ /** The complete current draft, including uploaded attachments. Stable until the draft changes. */
19414
+ readonly draft: ComposerDraftSnapshot;
19415
+ /** Current picker values, or null when this composer has no pickers. Stable until a picker value changes. */
19416
+ readonly selection: ComposerSelection | null;
19417
+ /**
19418
+ * Replace text and mentions together in one committed change. An updater
19419
+ * receives the latest immutable snapshot, including attachments, and must
19420
+ * return its result synchronously. Returning that same snapshot is a no-op.
19421
+ * Omitted attachments are preserved; an explicit list replaces them, and
19422
+ * an empty list clears them. Does not infer or rebase mention ranges.
19423
+ * Ranges are non-overlapping UTF-16 offsets into the supplied text.
19424
+ * Invalid results, throwing updaters, and unavailable editors leave the
19425
+ * draft unchanged. Does not focus, submit, upload, or copy files between
19426
+ * projects. Use `insert` for insertion at the editor's cursor.
19427
+ */
19428
+ replace(next: ComposerDraftReplacement | ((current: ComposerDraftSnapshot) => ComposerDraftReplacement)): void;
19429
+ /**
19430
+ * Insert text and mentions. See {@link ComposerInsertOptions} for placement.
19431
+ * Mentions read from `draft` are recreated exactly; the calling plugin's
19432
+ * own `{ provider, id, label }` resolves through its mention provider.
19433
+ * Throws for another plugin's mention without `kind`, and for
19434
+ * `at: "cursor"` when the composer is not on screen.
19435
+ */
19436
+ insert(parts: ComposerInsertPart | readonly ComposerInsertPart[], options?: ComposerInsertOptions): void;
19220
19437
  /**
19221
19438
  * Apply a host-rendered effect to this composer's editable text, or clear it.
19222
19439
  * Effects are scoped to the calling plugin and automatically clear when the
@@ -19229,38 +19446,22 @@ interface PluginComposerApi {
19229
19446
  * scope changes.
19230
19447
  */
19231
19448
  setInputLock(locked: boolean): void;
19232
- /**
19233
- * Append text to the draft as a `> ` blockquote block and focus the
19234
- * composer. Blank text is a no-op. This is the "reference this selection
19235
- * in chat" primitive.
19236
- */
19237
- addQuote(text: string): void;
19238
- /**
19239
- * Insert an @-mention pill that resolves through this plugin's mention
19240
- * provider at send time — the durable way to reference an entity whose
19241
- * content should be fetched fresh when the message is sent.
19242
- */
19243
- insertMention(mention: PluginComposerMention): void;
19244
- /** Remove this plugin's matching mention pills and their text from the current draft. */
19245
- experimental_removeMention(mention: {
19246
- provider: string;
19247
- id: string;
19248
- }): void;
19249
19449
  /** Subscribe to successful local submissions in this composer scope, including accepted queued messages. Failed sends and draft clearing do not notify. Dispose on unmount. */
19250
- experimental_onSubmitted(listener: () => void): () => void;
19450
+ onSubmitted(listener: () => void): () => void;
19251
19451
  /** Focus the composer caret at the end of the draft. */
19252
19452
  focus(): void;
19253
19453
  /**
19254
- * Submit this composer's draft through the composer's OWN submit pipeline,
19255
- * optionally scheduling it or attaching plugin-owned dispatch data.
19256
- *
19257
- * This is a real submission, not a plugin-issued send: the host builds the
19258
- * request exactly as pressing Enter would, so the draft's attachments and
19454
+ * Submit this composer's draft exactly as pressing Enter would: the same
19455
+ * checks and the same action (send, or queue while the thread is busy; a
19456
+ * provider handoff creates a new thread). The draft's attachments and
19259
19457
  * @-mentions, and — in the new-thread composer — the provider, model,
19260
19458
  * reasoning level, service tier, permission mode and environment the user
19261
- * has selected on screen, all travel with it. A plugin cannot assemble that
19262
- * tuple itself, which is why sending from the backend instead would silently
19263
- * run the message with different settings than the ones in front of the user.
19459
+ * has selected on screen, all travel with it.
19460
+ *
19461
+ * While attachments are uploading it waits for them, then checks again; it
19462
+ * rejects if an upload fails. Otherwise, when submitting is blocked it
19463
+ * rejects with `submittingBlockedReason`, a message safe to show to the
19464
+ * user. The queued-message and sent-message editors save edits and reject.
19264
19465
  *
19265
19466
  * `sendAt` queues the submission until that time. `experimental_data` is
19266
19467
  * opaque JSON delivered to dispatch hooks together with the calling plugin's
@@ -19269,16 +19470,10 @@ interface PluginComposerApi {
19269
19470
  * later attempts; core does not persist or interpret the opaque data.
19270
19471
  *
19271
19472
  * Resolves once the host has accepted the submission and cleared the draft.
19272
- * Rejects when the composer refused to submit — a scope with no submit
19273
- * pipeline (a queued-message editor, a side chat), an empty draft, or a
19274
- * composer that is not ready (still loading its execution defaults, missing
19275
- * an environment). The rejection's message is safe to show to the user.
19276
19473
  * Failures of the underlying request are reported by bb's own submit error
19277
19474
  * handling and restore the draft, exactly as an interactive failure does.
19278
- *
19279
- * Experimental: see docs/api_to_audit.md.
19280
19475
  */
19281
- experimental_submit(options: ExperimentalComposerSubmitOptions): Promise<void>;
19476
+ submit(options: ComposerSubmitOptions): Promise<void>;
19282
19477
  /**
19283
19478
  * Set this composer's pickers as if each value had been picked by hand.
19284
19479
  *
@@ -19325,18 +19520,15 @@ interface PluginComposerApi {
19325
19520
  * mounted outside any composer), when the calling surface is no longer
19326
19521
  * active, and when a value is not a known reasoning level, service tier or
19327
19522
  * permission mode.
19328
- *
19329
- * Experimental: see docs/api_to_audit.md.
19330
19523
  */
19331
- experimental_setSelection(selection: ExperimentalComposerSelection): Promise<ExperimentalComposerSelection>;
19524
+ setSelection(selection: ComposerSelection): Promise<ComposerSelection>;
19332
19525
  }
19333
19526
  /**
19334
- * Picker values for `experimental_setSelection`, and the shape it resolves
19335
- * with. Field names match `NewThreadRequest` and the `default*` props of
19527
+ * Current picker values in `selection`, input for `setSelection`, and the shape it resolves with. Field names match `NewThreadRequest` and the `default*` props of
19336
19528
  * `experimental_NewThreadComposer`, so one routed decision can feed the
19337
19529
  * composer, the embedded composer and `bb.sdk.threads.spawn` alike.
19338
19530
  */
19339
- interface ExperimentalComposerSelection {
19531
+ interface ComposerSelection {
19340
19532
  /** New-thread composers only. BB's personal-project id means "Don't work in a project". */
19341
19533
  projectId?: string;
19342
19534
  /**
@@ -19357,13 +19549,13 @@ interface ExperimentalComposerSelection {
19357
19549
  permissionMode?: PermissionMode;
19358
19550
  }
19359
19551
  /**
19360
- * What `experimental_submit` does differently from pressing Enter.
19552
+ * What `submit` does differently from pressing Enter.
19361
19553
  *
19362
19554
  * `experimental_data` is opaque JSON delivered to dispatch hooks. The runtime
19363
19555
  * associates it with the calling plugin automatically for the initial
19364
19556
  * dispatch attempt.
19365
19557
  */
19366
- type ExperimentalComposerSubmitOptions = {
19558
+ type ComposerSubmitOptions = {
19367
19559
  sendAt: number;
19368
19560
  experimental_data?: JsonValue;
19369
19561
  } | {
@@ -19588,7 +19780,7 @@ interface NewThreadRequest {
19588
19780
  input: PromptInput[];
19589
19781
  /**
19590
19782
  * Epoch ms the first turn should dispatch at. Present only when the
19591
- * submission came from `useComposer().experimental_submit` — a scheduled
19783
+ * submission came from `useComposer().submit` — a scheduled
19592
19784
  * create — and absent otherwise, which is what makes an ordinary submission
19593
19785
  * start work at once. Forward it to `threads.spawn` unchanged: the thread is
19594
19786
  * created `pending` and its first message is queued as a row until then.
@@ -19892,6 +20084,20 @@ interface PluginSdkApp {
19892
20084
  /** Read or clear the owning tab's validated, session-scoped target. */
19893
20085
  experimental_useFixedTabTarget<Target extends JsonValue>(tab: ExperimentalPluginFixedTabReference<Target>): ExperimentalFixedTabTargetState<Target> | null;
19894
20086
  useComposer(): PluginComposerApi;
20087
+ /**
20088
+ * Every composer on screen that plugin composer customizations mount in,
20089
+ * oldest first: the thread page's composer, a `ThreadChat`'s composer, the
20090
+ * new-thread composer and open queued-message editors. Use it from a panel
20091
+ * or page that writes into a composer the user picks — label each by its
20092
+ * `scope`, then call `insert`, `focus` or `submit` on the chosen handle.
20093
+ *
20094
+ * Each handle is stable while its composer stays on screen and follows the
20095
+ * same lifetime rule as `useComposer()`. `setTextEffect` and `setInputLock`
20096
+ * have no effect here; call them from a composer slot's `useComposer()`.
20097
+ * The calling component re-renders when the list or any listed draft
20098
+ * changes.
20099
+ */
20100
+ useComposers(): readonly PluginComposerApi[];
19895
20101
  /**
19896
20102
  * The sidebar's live thread view (see {@link PluginSidebarThreadsState}).
19897
20103
  * Reads the host's own cache and realtime subscriptions, so it costs no
@@ -19952,7 +20158,7 @@ interface PluginSdkApp {
19952
20158
  experimental_useSidebarNavigationSplit(itemId: string, options?: ExperimentalSidebarNavigationSplitOptions): ExperimentalSidebarNavigationSplit;
19953
20159
  /**
19954
20160
  * bb's artwork for a navigation item's icon: bb's glyphs for its own items,
19955
- * and the contributing plugin's branding for plugin panels. Experimental:
20161
+ * and the panel's explicit icon, falling back to plugin branding, for plugin panels. Experimental:
19956
20162
  * see docs/api_to_audit.md.
19957
20163
  */
19958
20164
  experimental_SidebarNavigationIcon: ComponentType<ExperimentalSidebarNavigationIconProps>;
@@ -20112,7 +20318,6 @@ interface PluginSdkApp {
20112
20318
  * docs/api_to_audit.md.
20113
20319
  */
20114
20320
  experimental_Diff: ComponentType<DiffProps>;
20115
- useComposerView(): ComposerView;
20116
20321
  }
20117
20322
 
20118
20323
  type PluginMachineProviderResource = Exclude<JsonValue$2, null>;
@@ -21012,7 +21217,7 @@ interface MessageDispatchHookContext {
21012
21217
  queuedMessages: ThreadQueuedMessage[];
21013
21218
  /**
21014
21219
  * Opaque JSON supplied by a plugin through the composer's
21015
- * `experimental_submit`, paired with that plugin's id. Null for ordinary
21220
+ * `submit`, paired with that plugin's id. Null for ordinary
21016
21221
  * submissions and queued re-attempts. Core does not persist or interpret
21017
21222
  * the data.
21018
21223
  */
@@ -21167,9 +21372,11 @@ interface PluginRpc {
21167
21372
  * `/api/v1/plugins/<id>/rpc/<method>` with "local" auth semantics. The
21168
21373
  * host validates input before invocation and output before strict JSON
21169
21374
  * serialization. The response is `{ ok: true, result }` or
21170
- * `{ ok: false, error: { code, message, issues? } }`.
21375
+ * `{ ok: false, error: { code, message, issues? } }`. Each handler gets
21376
+ * the call's context as its second argument; `experimental_caller` names
21377
+ * the plugin that called through `bb.sdk.plugins.callRpc`, or `client`.
21171
21378
  */
21172
- register<Contract extends PluginRpcContract>(contract: Contract, handlers: PluginRpcHandlers<Contract>, options?: {
21379
+ register<Contract extends PluginRpcContract>(contract: Contract, handlers: ExperimentalPluginRpcHandlersWithContext<Contract>, options?: {
21173
21380
  experimental_discoverable?: boolean;
21174
21381
  experimental_description?: string;
21175
21382
  }): void;
@@ -21558,7 +21765,7 @@ interface PluginProviderCapabilities {
21558
21765
  * Provider copy core surfaces render from per-provider tables today (usage
21559
21766
  * banners, sign-in hints, the mobile picker, the agent guide). Declared once
21560
21767
  * here so no core surface keys copy on a provider id. Mirrors
21561
- * `ProviderStrings` in `@bb/domain`, which is the client projection.
21768
+ * `providerStringsSchema` in `@bb/domain`, which is the client projection.
21562
21769
  */
21563
21770
  interface PluginProviderStrings {
21564
21771
  /** How to sign in on the host ("Run `claude` on the machine to sign in."). */
@@ -21963,8 +22170,9 @@ interface PluginMentionItem {
21963
22170
  subtitle?: string;
21964
22171
  /**
21965
22172
  * BB icon name: a built-in name, or a name the plugin's app bundle
21966
- * registered with `app.experimental_icons.register()`. The row prefers the
21967
- * plugin's own branding icon when it ships one; unknown names fall back to
22173
+ * registered with `app.experimental_icons.register()`. Resolved names take
22174
+ * precedence over plugin branding in menu rows, composer pills, and sent
22175
+ * messages. Omitted or unknown names fall back to plugin branding, then
21968
22176
  * the generic plugin icon.
21969
22177
  */
21970
22178
  icon?: string;
@@ -22524,4 +22732,4 @@ declare function cliCommand<const TOptions extends CliOptions = Record<string, n
22524
22732
  declare function defineCli(spec: PluginCliSpec): PluginCliRegistration;
22525
22733
 
22526
22734
  export { PLUGIN_CLI_OUTPUT_MAX_BYTES, PluginCliError, cliCommand, defineCli, defineRpcContract, experimental_defineHostEntry };
22527
- export type { BbContext, BbNavigate, BbPluginApi, BranchPickerProps, BranchesState, CheckoutState, CodeOverflowMode, ComposerCustomization, ComposerPlusMenuItem, ComposerRichTextSpec, ComposerStructuredDraft, ComposerView, DiffProps, DiffViewMode, ExperimentalAppIcons, ExperimentalAppOverlayProps, ExperimentalAppOverlayRegistration, ExperimentalAppPanel, ExperimentalAppPanelSurface, ExperimentalComposerSelection, ExperimentalComposerSubmitOptions, ExperimentalDesktopBrowserAcquireInput, ExperimentalDesktopBrowserCreateInput, ExperimentalDesktopBrowserLease, ExperimentalDesktopBrowserScope, ExperimentalDesktopBrowsersArea, ExperimentalDiffFileContent, ExperimentalDiffFullFileContents, ExperimentalFileLinkProps, ExperimentalFileLocation, ExperimentalFileOpenOptions, ExperimentalFixedTabTargetContract, ExperimentalFixedTabTargetState, ExperimentalHostCallOptions, ExperimentalHostClient, ExperimentalHostEntry, ExperimentalHostPaths, ExperimentalHostRpcContext, ExperimentalHostRpcHandlers, ExperimentalHostSignalContract, ExperimentalHostSignalEvent, ExperimentalHostSignals, ExperimentalHostWatchChange, ExperimentalHostWatchChangeType, ExperimentalHostWatchEvent, ExperimentalHostWatchListener, ExperimentalHostWatchOptions, ExperimentalHostWatchSubscription, ExperimentalHostWorkerLease, ExperimentalIconProps, ExperimentalIconRegistration, ExperimentalLiveFileTarget, ExperimentalOpenFixedTabOptions, ExperimentalPermissionModePickerProps, ExperimentalPluginBrowserPage, ExperimentalPluginBrowserPageEvaluateOptions, ExperimentalPluginBrowserPageWorld, ExperimentalPluginBrowserToolbarActionProps, ExperimentalPluginBrowserToolbarActionRegistration, ExperimentalPluginFixedTabReference, ExperimentalPluginMentionImage, ExperimentalPluginProviderEnvContext, ExperimentalPluginProviderEnvEntry, ExperimentalPluginProviderEnvHealth, ExperimentalPluginProviderEnvHealthContext, ExperimentalPluginWebSocket, ExperimentalPluginWebSocketContext, ExperimentalPluginWebSocketHandler, ExperimentalPluginWebSocketHandlers, 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, MachineBootstrapApi, MachineBootstrapRequest, MachineExecutor, MachineExecutorRequest, MarkdownProps, MessageDispatchHookContext, MessageDispatchHookDecision, NewThreadComposerProps, NewThreadRequest, PluginAgentConfiguration, PluginAgentConfigurationContext, PluginAgentToolContentPart, PluginAgentToolContext, PluginAgentToolRegistrationBase, PluginAgentToolResult, PluginAgentToolSelection, PluginAgents, PluginAiCompleteOptions, PluginAiServiceDeclaration, PluginAiServiceStatus, PluginAiServices, PluginAiTranscribeOptions, PluginAppBuilder, PluginAppCommands, PluginAppComposer, PluginAppContentScripts, PluginAppDefinition, PluginAppSetup, PluginAppSlots, PluginBackground, PluginBbSdk, PluginBoundThreadsArea, PluginBrowserBbSdk, PluginCli, PluginCliBooleanOption, PluginCliCommand, PluginCliCommandInfo, PluginCliConstraint, PluginCliContext, PluginCliDurationOption, PluginCliDurationUnit, PluginCliEnumOption, PluginCliErrorCode, PluginCliExecutionResult, PluginCliIntegerOption, PluginCliOption, PluginCliOptionValues, PluginCliOutputLimitError, PluginCliPositional, PluginCliPositionalValues, PluginCliRegistration, PluginCliResult, PluginCliRunInput, PluginCliSpec, PluginCliStringOption, PluginCodeThemeData, PluginCodeThemeState, PluginCodeThemeTokenRule, PluginCommandContext, PluginCommandRegistration, PluginCommandShortcut, PluginComposerApi, PluginComposerMention, PluginComposerScope, PluginComposerTextEffect, PluginComposerThreadRowStatus, PluginContentScriptContext, PluginContentScriptDisposer, PluginContentScriptRegistration, PluginDiffRendererProps, PluginDiffRendererRegistration, PluginDispatchAttemptKind, PluginDispatchEnvironmentIntent, PluginDispatchExecution, PluginDispatchExecutionSources, PluginDispatchInput, PluginEnvironmentProvider, PluginEnvironmentProviderDeclaration, PluginEnvironmentProviderInputsChange, PluginEnvironmentProviderInputsProps, PluginEnvironmentProviderInputsRegistration, PluginEnvironmentProviderRequirements, PluginEnvironmentProvidersState, PluginEnvironmentValidateDecision, PluginEnvironments, PluginEvents, PluginFileOpenerProps, PluginFileOpenerRegistration, PluginFileOpenerSource, PluginFixedTabDeclaration, PluginFixedTabRegistration, PluginHomepageSectionProps, PluginHomepageSectionRegistration, PluginHookHandler, PluginHookName, PluginHookSignatures, PluginHooks, PluginHosts, PluginHttp, PluginHttpAuthMode, PluginHttpHandler, PluginInteractionCancelReason, PluginInteractionDescription, PluginInteractionRequest, PluginInteractionResult, PluginKvStorage, PluginLogger, PluginMachineProviderDeclaration, PluginMachineProviderInputsChange, PluginMachineProviderInputsProps, PluginMachineProviderInputsRegistration, PluginMachineValidateDecision, PluginMachines, PluginMentionItem, PluginMentionProviderRegistration, PluginMentionSearchContext, PluginMentionTrigger, PluginMessageActionContext, PluginMessageActionRegistration, PluginMessageDirectiveMessage, PluginMessageDirectiveOpenWorkspaceFile, PluginMessageDirectiveProps, PluginMessageDirectiveRegistration, PluginNavPanelProps, PluginNavPanelRegistration, PluginNewThreadPanelActionContext, PluginNewThreadPanelActionRegistration, PluginNewThreadPanelProps, PluginPanelActionOpenOptions, PluginPendingInteractionProps, PluginPendingInteractionRegistration, PluginPendingInteractionView, PluginProviderCapabilities, PluginProviderCompletedTurnDisplay, PluginProviderComposerAction, PluginProviderDeclaration, PluginProviderExtensionKindDeclaration, PluginProviderFallbackModel, PluginProviderIconRegistration, PluginProviderMaintenance, PluginProviderModelCatalogScope, PluginProviderNativeRootEntry, PluginProviderNativeRoots, PluginProviderOptionDescriptor, PluginProviderOptionsContext, PluginProviderPermissionMode, PluginProviderReasoningLevel, PluginProviderStrings, PluginProviders, PluginProvidersState, PluginRealtime, PluginRealtimeConnectionState, PluginRowLabels, PluginRowPresentation, PluginRpc, PluginRpcCallArgs, PluginRpcClient, PluginRpcContract, PluginRpcError, PluginRpcErrorCode, PluginRpcHandlers, PluginRpcIssuePathSegment, PluginRpcMethodContract, PluginRpcResult, PluginRpcValidationIssue, PluginSdkApp, PluginServerAccess, PluginServerApi, PluginSettingDescriptor, PluginSettingDescriptors, PluginSettingValue, PluginSettings, PluginSettingsHandle, PluginSettingsSectionProps, PluginSettingsSectionRegistration, PluginSettingsState, PluginSettingsValues, PluginSharedPortTunnelIdentity, PluginSidebarFooterActionContext, PluginSidebarFooterActionProps, PluginSidebarFooterActionRegistration, PluginSidebarProject, PluginSidebarPullRequest, PluginSidebarSection, PluginSidebarSplitLayout, PluginSidebarSplitPane, PluginSidebarThread, PluginSidebarThreadActions, PluginSidebarThreadActivity, PluginSidebarThreadDraftState, PluginSidebarThreadIndicator, PluginSidebarThreadPullRequestState, PluginSidebarThreadRowStatus, PluginSidebarThreadShortcut, PluginSidebarThreadSplit, PluginSidebarThreadsState, PluginSourceCodeRendererProps, PluginSourceCodeRendererRegistration, PluginStatusApi, PluginStorage, PluginTargetedPanelActionOpenOptions, PluginThreadEventHandler, PluginThreadEventName, PluginThreadEventPayloads, PluginThreadHeaderActionProps, PluginThreadHeaderActionRegistration, PluginThreadListProps, PluginThreadListRegistration, PluginThreadPanelActionContext, PluginThreadPanelActionRegistration, PluginThreadPanelProps, PluginThreadTitleProps, PluginTimelineRendererProps, PluginTimelineRendererRegistration, PluginTimelineRendererRow, PluginTimelineRowPresentation, PluginTimelineRowStatus, PluginTurnFailedEvent, PluginUi, ReadonlyJsonValue, ServerAccessGrant, ServerAccessProviderDeclaration, SourceCodeLineRange, SourceCodeProps, StandardSchemaV1, StandardSchemaV1InferInput, StandardSchemaV1InferOutput, StandardSchemaV1Issue, StandardSchemaV1Result, ThreadChatMessageAction, ThreadChatMessageReference, ThreadChatProps, UrlLinkProps, UseBranchesArgs, UseCheckoutStateArgs };
22735
+ export type { BbContext, BbNavigate, BbPluginApi, BranchPickerProps, BranchesState, CheckoutState, CodeOverflowMode, ComposerAttachment, ComposerCustomization, ComposerDraft, ComposerDraftReplacement, ComposerDraftSnapshot, ComposerInsertOptions, ComposerInsertPart, ComposerMention, ComposerPlusMenuItem, ComposerRichTextSpec, ComposerSelection, ComposerSendMenuItem, ComposerSubmitOptions, DiffProps, DiffViewMode, ExperimentalAppIcons, ExperimentalAppOverlayProps, ExperimentalAppOverlayRegistration, ExperimentalAppPanel, ExperimentalAppPanelSurface, ExperimentalDesktopBrowserAcquireInput, ExperimentalDesktopBrowserCreateInput, ExperimentalDesktopBrowserLease, ExperimentalDesktopBrowserScope, ExperimentalDesktopBrowsersArea, ExperimentalDiffFileContent, ExperimentalDiffFullFileContents, ExperimentalFileLinkProps, ExperimentalFileLocation, ExperimentalFileOpenOptions, ExperimentalFixedTabTargetContract, ExperimentalFixedTabTargetState, ExperimentalHostCallOptions, ExperimentalHostClient, ExperimentalHostEntry, ExperimentalHostPaths, ExperimentalHostRpcContext, ExperimentalHostRpcHandlers, ExperimentalHostSignalContract, ExperimentalHostSignalEvent, ExperimentalHostSignals, ExperimentalHostWatchChange, ExperimentalHostWatchChangeType, ExperimentalHostWatchEvent, ExperimentalHostWatchListener, ExperimentalHostWatchOptions, ExperimentalHostWatchSubscription, ExperimentalHostWorkerLease, ExperimentalIconProps, ExperimentalIconRegistration, ExperimentalLiveFileTarget, ExperimentalOpenFixedTabOptions, ExperimentalPermissionModePickerProps, ExperimentalPluginBrowserPage, ExperimentalPluginBrowserPageEvaluateOptions, ExperimentalPluginBrowserPageWorld, ExperimentalPluginBrowserToolbarActionProps, ExperimentalPluginBrowserToolbarActionRegistration, ExperimentalPluginFixedTabReference, ExperimentalPluginMentionImage, ExperimentalPluginProviderEnvContext, ExperimentalPluginProviderEnvEntry, ExperimentalPluginProviderEnvHealth, ExperimentalPluginProviderEnvHealthContext, ExperimentalPluginRpcCaller, ExperimentalPluginRpcHandlerContext, ExperimentalPluginRpcHandlersWithContext, ExperimentalPluginWebSocket, ExperimentalPluginWebSocketContext, ExperimentalPluginWebSocketHandler, ExperimentalPluginWebSocketHandlers, 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, MachineBootstrapApi, MachineBootstrapRequest, MachineExecutor, MachineExecutorRequest, MarkdownProps, MessageDispatchHookContext, MessageDispatchHookDecision, NewThreadComposerProps, NewThreadRequest, PluginAgentConfiguration, PluginAgentConfigurationContext, PluginAgentToolContentPart, PluginAgentToolContext, PluginAgentToolRegistrationBase, PluginAgentToolResult, PluginAgentToolSelection, PluginAgents, PluginAiCompleteOptions, PluginAiServiceDeclaration, PluginAiServiceStatus, PluginAiServices, PluginAiTranscribeOptions, PluginAppBuilder, PluginAppCommands, PluginAppComposer, PluginAppContentScripts, PluginAppDefinition, PluginAppSetup, PluginAppSlots, PluginBackground, PluginBbSdk, PluginBoundThreadsArea, PluginBrowserBbSdk, PluginCli, PluginCliBooleanOption, PluginCliCommand, PluginCliCommandInfo, PluginCliConstraint, PluginCliContext, PluginCliDurationOption, PluginCliDurationUnit, PluginCliEnumOption, PluginCliErrorCode, PluginCliExecutionResult, PluginCliIntegerOption, PluginCliOption, PluginCliOptionValues, PluginCliOutputLimitError, PluginCliPositional, PluginCliPositionalValues, PluginCliRegistration, PluginCliResult, PluginCliRunInput, PluginCliSpec, PluginCliStringOption, PluginCodeThemeData, PluginCodeThemeState, PluginCodeThemeTokenRule, PluginCommandContext, PluginCommandRegistration, PluginCommandShortcut, PluginComposerApi, PluginComposerMention, PluginComposerScope, PluginComposerTextEffect, PluginComposerThreadRowStatus, PluginContentScriptContext, PluginContentScriptDisposer, PluginContentScriptRegistration, PluginDiffRendererProps, PluginDiffRendererRegistration, PluginDispatchAttemptKind, PluginDispatchEnvironmentIntent, PluginDispatchExecution, PluginDispatchExecutionSources, PluginDispatchInput, PluginEnvironmentProvider, PluginEnvironmentProviderDeclaration, PluginEnvironmentProviderInputsChange, PluginEnvironmentProviderInputsProps, PluginEnvironmentProviderInputsRegistration, PluginEnvironmentProviderRequirements, PluginEnvironmentProvidersState, PluginEnvironmentValidateDecision, PluginEnvironments, PluginEvents, PluginFileOpenerProps, PluginFileOpenerRegistration, PluginFileOpenerSource, PluginFixedTabDeclaration, PluginFixedTabRegistration, PluginHomepageSectionProps, PluginHomepageSectionRegistration, PluginHookHandler, PluginHookName, PluginHookSignatures, PluginHooks, PluginHosts, PluginHttp, PluginHttpAuthMode, PluginHttpHandler, PluginInteractionCancelReason, PluginInteractionDescription, PluginInteractionRequest, PluginInteractionResult, PluginKvStorage, PluginLogger, PluginMachineProviderDeclaration, PluginMachineProviderInputsChange, PluginMachineProviderInputsProps, PluginMachineProviderInputsRegistration, PluginMachineValidateDecision, PluginMachines, PluginMentionItem, PluginMentionProviderRegistration, PluginMentionSearchContext, PluginMentionTrigger, PluginMessageActionContext, PluginMessageActionRegistration, PluginMessageDirectiveMessage, PluginMessageDirectiveOpenWorkspaceFile, PluginMessageDirectiveProps, PluginMessageDirectiveRegistration, PluginNavPanelProps, PluginNavPanelRegistration, PluginNewThreadPanelActionContext, PluginNewThreadPanelActionRegistration, PluginNewThreadPanelProps, PluginPanelActionOpenOptions, PluginPendingInteractionProps, PluginPendingInteractionRegistration, PluginPendingInteractionView, PluginProviderCapabilities, PluginProviderCompletedTurnDisplay, PluginProviderComposerAction, PluginProviderDeclaration, PluginProviderExtensionKindDeclaration, PluginProviderFallbackModel, PluginProviderIconRegistration, PluginProviderMaintenance, PluginProviderModelCatalogScope, PluginProviderNativeRootEntry, PluginProviderNativeRoots, PluginProviderOptionDescriptor, PluginProviderOptionsContext, PluginProviderPermissionMode, PluginProviderReasoningLevel, PluginProviderStrings, PluginProviders, PluginProvidersState, PluginRealtime, PluginRealtimeConnectionState, PluginRowLabels, PluginRowPresentation, PluginRpc, PluginRpcCallArgs, PluginRpcClient, PluginRpcContract, PluginRpcError, PluginRpcErrorCode, PluginRpcHandlers, PluginRpcIssuePathSegment, PluginRpcMethodContract, PluginRpcResult, PluginRpcValidationIssue, PluginSdkApp, PluginServerAccess, PluginServerApi, PluginSettingDescriptor, PluginSettingDescriptors, PluginSettingValue, PluginSettings, PluginSettingsHandle, PluginSettingsSectionProps, PluginSettingsSectionRegistration, PluginSettingsState, PluginSettingsValues, PluginSharedPortTunnelIdentity, PluginSidebarFooterActionContext, PluginSidebarFooterActionProps, PluginSidebarFooterActionRegistration, PluginSidebarProject, PluginSidebarPullRequest, PluginSidebarSection, PluginSidebarSplitLayout, PluginSidebarSplitPane, PluginSidebarThread, PluginSidebarThreadActions, PluginSidebarThreadActivity, PluginSidebarThreadDraftState, PluginSidebarThreadIndicator, PluginSidebarThreadPullRequestState, PluginSidebarThreadRowStatus, PluginSidebarThreadShortcut, PluginSidebarThreadSplit, PluginSidebarThreadsState, PluginSourceCodeRendererProps, PluginSourceCodeRendererRegistration, PluginStatusApi, PluginStorage, PluginTargetedPanelActionOpenOptions, PluginThreadEventHandler, PluginThreadEventName, PluginThreadEventPayloads, PluginThreadHeaderActionProps, PluginThreadHeaderActionRegistration, PluginThreadListProps, PluginThreadListRegistration, PluginThreadPanelActionContext, PluginThreadPanelActionRegistration, PluginThreadPanelProps, PluginThreadTitleProps, PluginTimelineRendererProps, PluginTimelineRendererRegistration, PluginTimelineRendererRow, PluginTimelineRowPresentation, PluginTimelineRowStatus, PluginTurnFailedEvent, PluginUi, ReadonlyJsonValue, ServerAccessGrant, ServerAccessProviderDeclaration, SourceCodeLineRange, SourceCodeProps, StandardSchemaV1, StandardSchemaV1InferInput, StandardSchemaV1InferOutput, StandardSchemaV1Issue, StandardSchemaV1Result, ThreadChatMessageAction, ThreadChatMessageReference, ThreadChatProps, UrlLinkProps, UseBranchesArgs, UseCheckoutStateArgs };