@get-bb/plugin-sdk 0.4.56 → 0.4.84

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.
@@ -6,10 +6,10 @@
6
6
  // and read the real source: https://github.com/get-bb/bb
7
7
 
8
8
  import * as react from 'react';
9
- import { ComponentType, ComponentPropsWithoutRef, ReactNode } from 'react';
9
+ import { ComponentType, ComponentPropsWithoutRef, CSSProperties, ReactNode } from 'react';
10
10
  import * as z from 'zod';
11
11
  import { z as z$1 } from 'zod';
12
- import { StandardSchemaV1 as StandardSchemaV1$1, PluginEnvironmentProviderRequirements as PluginEnvironmentProviderRequirements$1, StandardSchemaV1InferOutput as StandardSchemaV1InferOutput$1, PluginEnvironmentValidateDecision as PluginEnvironmentValidateDecision$1, JsonValue as JsonValue$2 } from '@get-bb/plugin-sdk';
12
+ import { StandardSchemaV1 as StandardSchemaV1$1, StandardSchemaV1InferOutput as StandardSchemaV1InferOutput$1, PluginMachineValidateDecision as PluginMachineValidateDecision$1, JsonValue as JsonValue$2, PluginEnvironmentProviderRequirements as PluginEnvironmentProviderRequirements$1, PluginEnvironmentValidateDecision as PluginEnvironmentValidateDecision$1 } from '@get-bb/plugin-sdk';
13
13
  import Database from 'better-sqlite3';
14
14
  import { Context } from 'hono';
15
15
 
@@ -44,7 +44,10 @@ interface ProviderNativeRootsInputLike {
44
44
  }
45
45
 
46
46
  declare const appSettingsSchema: z$1.ZodObject<{
47
+ defaultMachineAccess: z$1.ZodNullable<z$1.ZodString>;
47
48
  defaultProviderId: z$1.ZodNullable<z$1.ZodString>;
49
+ machineGitCredentialsEnabled: z$1.ZodBoolean;
50
+ machineServerUrl: z$1.ZodNullable<z$1.ZodString>;
48
51
  managedBranchPrefix: z$1.ZodString;
49
52
  providerOrder: z$1.ZodArray<z$1.ZodString>;
50
53
  showDiagnosticEvents: z$1.ZodBoolean;
@@ -54,7 +57,10 @@ declare const appSettingsSchema: z$1.ZodObject<{
54
57
  }, z$1.core.$strict>;
55
58
  type AppSettings = z$1.infer<typeof appSettingsSchema>;
56
59
  declare const appSettingsUpdateSchema: z$1.ZodUnion<readonly [z$1.ZodObject<{
60
+ defaultMachineAccess: z$1.ZodNullable<z$1.ZodString>;
57
61
  defaultProviderId: z$1.ZodNullable<z$1.ZodString>;
62
+ machineGitCredentialsEnabled: z$1.ZodBoolean;
63
+ machineServerUrl: z$1.ZodNullable<z$1.ZodString>;
58
64
  managedBranchPrefix: z$1.ZodString;
59
65
  providerOrder: z$1.ZodArray<z$1.ZodString>;
60
66
  showDiagnosticEvents: z$1.ZodBoolean;
@@ -63,7 +69,10 @@ declare const appSettingsUpdateSchema: z$1.ZodUnion<readonly [z$1.ZodObject<{
63
69
  steerActiveThreadOnEnter: z$1.ZodBoolean;
64
70
  streamerMode: z$1.ZodBoolean;
65
71
  }, z$1.core.$strict>, z$1.ZodObject<{
72
+ defaultMachineAccess: z$1.ZodNullable<z$1.ZodString>;
66
73
  defaultProviderId: z$1.ZodNullable<z$1.ZodString>;
74
+ machineGitCredentialsEnabled: z$1.ZodBoolean;
75
+ machineServerUrl: z$1.ZodNullable<z$1.ZodString>;
67
76
  managedBranchPrefix: z$1.ZodString;
68
77
  providerOrder: z$1.ZodArray<z$1.ZodString>;
69
78
  showKeyboardHints: z$1.ZodBoolean;
@@ -378,10 +387,14 @@ declare const environmentSchema: z$1.ZodObject<{
378
387
  environmentProviderInstanceKey: z$1.ZodNullable<z$1.ZodString>;
379
388
  environmentProviderSelection: z$1.ZodNullable<z$1.ZodObject<{
380
389
  inputs: z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>;
381
- machine: z$1.ZodObject<{
390
+ machine: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
382
391
  hostId: z$1.ZodString;
383
392
  type: z$1.ZodLiteral<"existing">;
384
- }, z$1.core.$strip>;
393
+ }, z$1.core.$strip>, z$1.ZodObject<{
394
+ inputs: z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>;
395
+ machineProviderId: z$1.ZodString;
396
+ type: z$1.ZodLiteral<"new">;
397
+ }, z$1.core.$strip>], "type">;
385
398
  }, z$1.core.$strip>>;
386
399
  hostId: z$1.ZodString;
387
400
  id: z$1.ZodString;
@@ -460,6 +473,29 @@ declare const hostSchema: z$1.ZodObject<{
460
473
  id: z$1.ZodString;
461
474
  lastRejectedProtocolVersion: z$1.ZodNullable<z$1.ZodNumber>;
462
475
  lastSeenAt: z$1.ZodNullable<z$1.ZodNumber>;
476
+ lifecycle: z$1.ZodObject<{
477
+ message: z$1.ZodNullable<z$1.ZodString>;
478
+ pendingLog: z$1.ZodString;
479
+ phase: z$1.ZodEnum<{
480
+ active: "active";
481
+ creating: "creating";
482
+ destroyed: "destroyed";
483
+ removing: "removing";
484
+ resuming: "resuming";
485
+ suspended: "suspended";
486
+ suspending: "suspending";
487
+ }>;
488
+ suspendedAt: z$1.ZodNullable<z$1.ZodNumber>;
489
+ teardown: z$1.ZodNullable<z$1.ZodObject<{
490
+ attempt: z$1.ZodNumber;
491
+ status: z$1.ZodEnum<{
492
+ failed: "failed";
493
+ removed: "removed";
494
+ running: "running";
495
+ }>;
496
+ }, z$1.core.$strip>>;
497
+ }, z$1.core.$strip>;
498
+ machineProviderId: z$1.ZodNullable<z$1.ZodString>;
463
499
  maxPermissionMode: z$1.ZodEnum<{
464
500
  "accept-edits": "accept-edits";
465
501
  auto: "auto";
@@ -471,6 +507,7 @@ declare const hostSchema: z$1.ZodObject<{
471
507
  disconnected: "disconnected";
472
508
  }>;
473
509
  type: z$1.ZodEnum<{
510
+ ephemeral: "ephemeral";
474
511
  persistent: "persistent";
475
512
  }>;
476
513
  updatedAt: z$1.ZodNumber;
@@ -2628,6 +2665,11 @@ declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readon
2628
2665
  reason: z$1.ZodOptional<z$1.ZodString>;
2629
2666
  source: z$1.ZodUnion<readonly [z$1.ZodLiteral<"shell">, z$1.ZodObject<{
2630
2667
  plugin: z$1.ZodString;
2668
+ }, z$1.core.$strict>, z$1.ZodObject<{
2669
+ core: z$1.ZodEnum<{
2670
+ "machine-environment": "machine-environment";
2671
+ "machine-git": "machine-git";
2672
+ }>;
2631
2673
  }, z$1.core.$strict>]>;
2632
2674
  value: z$1.ZodUnion<readonly [z$1.ZodString, z$1.ZodObject<{
2633
2675
  masked: z$1.ZodLiteral<true>;
@@ -4179,10 +4221,14 @@ declare const createThreadEnvironmentArgsSchema: z$1.ZodDiscriminatedUnion<[z$1.
4179
4221
  }, z$1.core.$strip>, z$1.ZodObject<{
4180
4222
  environmentProviderId: z$1.ZodString;
4181
4223
  inputs: z$1.ZodDefault<z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>>;
4182
- machine: z$1.ZodObject<{
4224
+ machine: z$1.ZodOptional<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4183
4225
  hostId: z$1.ZodString;
4184
4226
  type: z$1.ZodLiteral<"existing">;
4185
- }, z$1.core.$strip>;
4227
+ }, z$1.core.$strip>, z$1.ZodObject<{
4228
+ inputs: z$1.ZodDefault<z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>>;
4229
+ machineProviderId: z$1.ZodString;
4230
+ type: z$1.ZodLiteral<"new">;
4231
+ }, z$1.core.$strip>], "type">>;
4186
4232
  type: z$1.ZodLiteral<"provider">;
4187
4233
  }, z$1.core.$strip>], "type">;
4188
4234
  type CreateThreadEnvironmentArgs = z$1.infer<typeof createThreadEnvironmentArgsSchema>;
@@ -5750,10 +5796,14 @@ declare const hostDaemonCommandRegistry: {
5750
5796
  contributedEnv: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
5751
5797
  name: z$1.ZodString;
5752
5798
  reason: z$1.ZodString;
5753
- secret: z$1.ZodBoolean;
5754
- source: z$1.ZodObject<{
5799
+ source: z$1.ZodUnion<readonly [z$1.ZodObject<{
5755
5800
  plugin: z$1.ZodString;
5756
- }, z$1.core.$strict>;
5801
+ }, z$1.core.$strict>, z$1.ZodObject<{
5802
+ core: z$1.ZodEnum<{
5803
+ "machine-environment": "machine-environment";
5804
+ "machine-git": "machine-git";
5805
+ }>;
5806
+ }, z$1.core.$strict>]>;
5757
5807
  value: z$1.ZodUnion<readonly [z$1.ZodString, z$1.ZodObject<{
5758
5808
  serverPath: z$1.ZodString;
5759
5809
  }, z$1.core.$strict>]>;
@@ -5906,10 +5956,14 @@ declare const hostDaemonCommandRegistry: {
5906
5956
  contributedEnv: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
5907
5957
  name: z$1.ZodString;
5908
5958
  reason: z$1.ZodString;
5909
- secret: z$1.ZodBoolean;
5910
- source: z$1.ZodObject<{
5959
+ source: z$1.ZodUnion<readonly [z$1.ZodObject<{
5911
5960
  plugin: z$1.ZodString;
5912
- }, z$1.core.$strict>;
5961
+ }, z$1.core.$strict>, z$1.ZodObject<{
5962
+ core: z$1.ZodEnum<{
5963
+ "machine-environment": "machine-environment";
5964
+ "machine-git": "machine-git";
5965
+ }>;
5966
+ }, z$1.core.$strict>]>;
5913
5967
  value: z$1.ZodUnion<readonly [z$1.ZodString, z$1.ZodObject<{
5914
5968
  serverPath: z$1.ZodString;
5915
5969
  }, z$1.core.$strict>]>;
@@ -6458,10 +6512,14 @@ declare const hostDaemonCommandRegistry: {
6458
6512
  contributedEnv: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
6459
6513
  name: z$1.ZodString;
6460
6514
  reason: z$1.ZodString;
6461
- secret: z$1.ZodBoolean;
6462
- source: z$1.ZodObject<{
6515
+ source: z$1.ZodUnion<readonly [z$1.ZodObject<{
6463
6516
  plugin: z$1.ZodString;
6464
- }, z$1.core.$strict>;
6517
+ }, z$1.core.$strict>, z$1.ZodObject<{
6518
+ core: z$1.ZodEnum<{
6519
+ "machine-environment": "machine-environment";
6520
+ "machine-git": "machine-git";
6521
+ }>;
6522
+ }, z$1.core.$strict>]>;
6465
6523
  value: z$1.ZodUnion<readonly [z$1.ZodString, z$1.ZodObject<{
6466
6524
  serverPath: z$1.ZodString;
6467
6525
  }, z$1.core.$strict>]>;
@@ -6663,10 +6721,14 @@ declare const hostDaemonCommandRegistry: {
6663
6721
  contributedEnv: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
6664
6722
  name: z$1.ZodString;
6665
6723
  reason: z$1.ZodString;
6666
- secret: z$1.ZodBoolean;
6667
- source: z$1.ZodObject<{
6724
+ source: z$1.ZodUnion<readonly [z$1.ZodObject<{
6668
6725
  plugin: z$1.ZodString;
6669
- }, z$1.core.$strict>;
6726
+ }, z$1.core.$strict>, z$1.ZodObject<{
6727
+ core: z$1.ZodEnum<{
6728
+ "machine-environment": "machine-environment";
6729
+ "machine-git": "machine-git";
6730
+ }>;
6731
+ }, z$1.core.$strict>]>;
6670
6732
  value: z$1.ZodUnion<readonly [z$1.ZodString, z$1.ZodObject<{
6671
6733
  serverPath: z$1.ZodString;
6672
6734
  }, z$1.core.$strict>]>;
@@ -6892,6 +6954,22 @@ declare const hostDaemonCommandRegistry: {
6892
6954
  path: z$1.ZodString;
6893
6955
  }, z$1.core.$strip>, "settled", false>;
6894
6956
  "project.clone": HostDaemonCommandDescriptor<"project.clone", z$1.ZodObject<{
6957
+ contributedEnv: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
6958
+ name: z$1.ZodString;
6959
+ reason: z$1.ZodString;
6960
+ source: z$1.ZodUnion<readonly [z$1.ZodObject<{
6961
+ plugin: z$1.ZodString;
6962
+ }, z$1.core.$strict>, z$1.ZodObject<{
6963
+ core: z$1.ZodEnum<{
6964
+ "machine-environment": "machine-environment";
6965
+ "machine-git": "machine-git";
6966
+ }>;
6967
+ }, z$1.core.$strict>]>;
6968
+ value: z$1.ZodUnion<readonly [z$1.ZodString, z$1.ZodObject<{
6969
+ serverPath: z$1.ZodString;
6970
+ }, z$1.core.$strict>]>;
6971
+ }, z$1.core.$strict>>>;
6972
+ operationId: z$1.ZodString;
6895
6973
  projectSlug: z$1.ZodString;
6896
6974
  remoteUrl: z$1.ZodString;
6897
6975
  targetPath: z$1.ZodOptional<z$1.ZodString>;
@@ -7046,13 +7124,28 @@ declare const hostDaemonCommandRegistry: {
7046
7124
  path: z$1.ZodNullable<z$1.ZodString>;
7047
7125
  }, z$1.core.$strip>, "onlineRpc", false>;
7048
7126
  "environment.hook.run": HostDaemonCommandDescriptor<"environment.hook.run", z$1.ZodObject<{
7127
+ contributedEnv: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
7128
+ name: z$1.ZodString;
7129
+ reason: z$1.ZodString;
7130
+ source: z$1.ZodUnion<readonly [z$1.ZodObject<{
7131
+ plugin: z$1.ZodString;
7132
+ }, z$1.core.$strict>, z$1.ZodObject<{
7133
+ core: z$1.ZodEnum<{
7134
+ "machine-environment": "machine-environment";
7135
+ "machine-git": "machine-git";
7136
+ }>;
7137
+ }, z$1.core.$strict>]>;
7138
+ value: z$1.ZodUnion<readonly [z$1.ZodString, z$1.ZodObject<{
7139
+ serverPath: z$1.ZodString;
7140
+ }, z$1.core.$strict>]>;
7141
+ }, z$1.core.$strict>>>;
7049
7142
  kind: z$1.ZodEnum<{
7050
7143
  setup: "setup";
7051
7144
  teardown: "teardown";
7052
7145
  }>;
7053
7146
  operationId: z$1.ZodString;
7054
7147
  path: z$1.ZodString;
7055
- resumeOnly: z$1.ZodBoolean;
7148
+ resumeOnly: z$1.ZodDefault<z$1.ZodBoolean>;
7056
7149
  timeoutMs: z$1.ZodNumber;
7057
7150
  type: z$1.ZodLiteral<"environment.hook.run">;
7058
7151
  }, z$1.core.$strict>, z$1.ZodObject<{}, z$1.core.$strip>, "onlineRpc", false>;
@@ -7071,6 +7164,21 @@ declare const hostDaemonCommandRegistry: {
7071
7164
  digest: z$1.ZodString;
7072
7165
  }, z$1.core.$strict>;
7073
7166
  callId: z$1.ZodString;
7167
+ contributedEnv: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
7168
+ name: z$1.ZodString;
7169
+ reason: z$1.ZodString;
7170
+ source: z$1.ZodUnion<readonly [z$1.ZodObject<{
7171
+ plugin: z$1.ZodString;
7172
+ }, z$1.core.$strict>, z$1.ZodObject<{
7173
+ core: z$1.ZodEnum<{
7174
+ "machine-environment": "machine-environment";
7175
+ "machine-git": "machine-git";
7176
+ }>;
7177
+ }, z$1.core.$strict>]>;
7178
+ value: z$1.ZodUnion<readonly [z$1.ZodString, z$1.ZodObject<{
7179
+ serverPath: z$1.ZodString;
7180
+ }, z$1.core.$strict>]>;
7181
+ }, z$1.core.$strict>>>;
7074
7182
  generation: z$1.ZodString;
7075
7183
  input: z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>;
7076
7184
  method: z$1.ZodString;
@@ -8514,6 +8622,17 @@ declare const hostCloneDefaultPathResponseSchema: z$1.ZodObject<{
8514
8622
  path: z$1.ZodString;
8515
8623
  }, z$1.core.$strict>;
8516
8624
  type HostCloneDefaultPathResponse = z$1.infer<typeof hostCloneDefaultPathResponseSchema>;
8625
+ declare const createMachineRequestSchema: z$1.ZodObject<{
8626
+ inputs: z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>;
8627
+ key: z$1.ZodOptional<z$1.ZodString>;
8628
+ machineProviderId: z$1.ZodString;
8629
+ }, z$1.core.$strict>;
8630
+ type CreateMachineRequest = z$1.infer<typeof createMachineRequestSchema>;
8631
+ declare const hostEnrollmentCommandResponseSchema: z$1.ZodNullable<z$1.ZodObject<{
8632
+ command: z$1.ZodString;
8633
+ expiresAt: z$1.ZodNumber;
8634
+ }, z$1.core.$strip>>;
8635
+ type HostEnrollmentCommandResponse = z$1.infer<typeof hostEnrollmentCommandResponseSchema>;
8517
8636
  declare const createHostJoinCodeResponseSchema: z$1.ZodObject<{
8518
8637
  expiresAt: z$1.ZodNumber;
8519
8638
  hostId: z$1.ZodString;
@@ -8524,6 +8643,10 @@ declare const updateHostRequestSchema: z$1.ZodObject<{
8524
8643
  name: z$1.ZodString;
8525
8644
  }, z$1.core.$strict>;
8526
8645
  type UpdateHostRequest = z$1.infer<typeof updateHostRequestSchema>;
8646
+ declare const hostActionResponseSchema: z$1.ZodObject<{
8647
+ ok: z$1.ZodLiteral<true>;
8648
+ }, z$1.core.$strict>;
8649
+ type HostActionResponse = z$1.infer<typeof hostActionResponseSchema>;
8527
8650
  declare const hostRetryUpdateResponseSchema: z$1.ZodObject<{
8528
8651
  ok: z$1.ZodLiteral<true>;
8529
8652
  }, z$1.core.$strict>;
@@ -9165,6 +9288,14 @@ declare const pluginMarketplaceRefreshResultSchema: z$1.ZodObject<{
9165
9288
  }, z$1.core.$strip>;
9166
9289
  type PluginMarketplaceRefreshResult$1 = z$1.infer<typeof pluginMarketplaceRefreshResultSchema>;
9167
9290
 
9291
+ declare const machineEnvironmentReplaceSchema: z$1.ZodObject<{
9292
+ variables: z$1.ZodArray<z$1.ZodObject<{
9293
+ name: z$1.ZodString;
9294
+ note: z$1.ZodDefault<z$1.ZodNullable<z$1.ZodString>>;
9295
+ value: z$1.ZodNullable<z$1.ZodString>;
9296
+ }, z$1.core.$strict>>;
9297
+ }, z$1.core.$strict>;
9298
+ type MachineEnvironmentReplace = z$1.infer<typeof machineEnvironmentReplaceSchema>;
9168
9299
  declare const systemExecutionOptionsResponseSchema: z$1.ZodObject<{
9169
9300
  modelLoadError: z$1.ZodNullable<z$1.ZodObject<{
9170
9301
  code: z$1.ZodEnum<{
@@ -9525,7 +9656,10 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
9525
9656
  timelineWindowEventBudget: z$1.ZodNumber;
9526
9657
  }, z$1.core.$strip>;
9527
9658
  generalSettings: z$1.ZodObject<{
9659
+ defaultMachineAccess: z$1.ZodNullable<z$1.ZodString>;
9528
9660
  defaultProviderId: z$1.ZodNullable<z$1.ZodString>;
9661
+ machineGitCredentialsEnabled: z$1.ZodBoolean;
9662
+ machineServerUrl: z$1.ZodNullable<z$1.ZodString>;
9529
9663
  managedBranchPrefix: z$1.ZodString;
9530
9664
  providerOrder: z$1.ZodArray<z$1.ZodString>;
9531
9665
  showDiagnosticEvents: z$1.ZodBoolean;
@@ -9728,6 +9862,30 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
9728
9862
  unknown: "unknown";
9729
9863
  wsl: "wsl";
9730
9864
  }>>;
9865
+ serverAccess: z$1.ZodObject<{
9866
+ defaultProviderId: z$1.ZodString;
9867
+ effectiveUrl: z$1.ZodNullable<z$1.ZodString>;
9868
+ providers: z$1.ZodArray<z$1.ZodObject<{
9869
+ availability: z$1.ZodNullable<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
9870
+ serverUrl: z$1.ZodOptional<z$1.ZodString>;
9871
+ status: z$1.ZodLiteral<"available">;
9872
+ }, z$1.core.$strip>, z$1.ZodObject<{
9873
+ message: z$1.ZodString;
9874
+ status: z$1.ZodLiteral<"setup-required">;
9875
+ }, z$1.core.$strip>, z$1.ZodObject<{
9876
+ message: z$1.ZodString;
9877
+ status: z$1.ZodLiteral<"unavailable">;
9878
+ }, z$1.core.$strip>], "status">>;
9879
+ description: z$1.ZodString;
9880
+ displayName: z$1.ZodString;
9881
+ id: z$1.ZodString;
9882
+ pluginId: z$1.ZodNullable<z$1.ZodString>;
9883
+ }, z$1.core.$strip>>;
9884
+ urlSource: z$1.ZodNullable<z$1.ZodEnum<{
9885
+ BB_EXTERNAL_URL: "BB_EXTERNAL_URL";
9886
+ setting: "setting";
9887
+ }>>;
9888
+ }, z$1.core.$strip>;
9731
9889
  serverUrl: z$1.ZodString;
9732
9890
  voiceTranscriptionEnabled: z$1.ZodBoolean;
9733
9891
  }, z$1.core.$strip>;
@@ -9825,11 +9983,14 @@ declare const systemEnvironmentProviderSchema: z$1.ZodObject<{
9825
9983
  message: z$1.ZodString;
9826
9984
  status: z$1.ZodLiteral<"unavailable">;
9827
9985
  }, z$1.core.$strip>], "status">>;
9986
+ description: z$1.ZodNullable<z$1.ZodString>;
9828
9987
  displayName: z$1.ZodString;
9988
+ environmentProviderId: z$1.ZodOptional<z$1.ZodString>;
9829
9989
  icon: z$1.ZodNullable<z$1.ZodString>;
9830
9990
  id: z$1.ZodString;
9831
9991
  inputs: z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>;
9832
9992
  logoUrl: z$1.ZodNullable<z$1.ZodString>;
9993
+ machineAcceptsEmptyInputs: z$1.ZodOptional<z$1.ZodBoolean>;
9833
9994
  machineAvailability: z$1.ZodRecord<z$1.ZodString, z$1.ZodNullable<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
9834
9995
  status: z$1.ZodLiteral<"available">;
9835
9996
  }, z$1.core.$strip>, z$1.ZodObject<{
@@ -9839,6 +10000,9 @@ declare const systemEnvironmentProviderSchema: z$1.ZodObject<{
9839
10000
  message: z$1.ZodString;
9840
10001
  status: z$1.ZodLiteral<"unavailable">;
9841
10002
  }, z$1.core.$strip>], "status">>>;
10003
+ machineInputs: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>>;
10004
+ machineProviderId: z$1.ZodNullable<z$1.ZodString>;
10005
+ machineProviderPluginId: z$1.ZodOptional<z$1.ZodString>;
9842
10006
  pluginId: z$1.ZodString;
9843
10007
  requires: z$1.ZodObject<{
9844
10008
  gitCheckout: z$1.ZodBoolean;
@@ -9848,6 +10012,18 @@ declare const systemEnvironmentProviderSchema: z$1.ZodObject<{
9848
10012
  }, z$1.core.$strip>;
9849
10013
  }, z$1.core.$strip>;
9850
10014
  type SystemEnvironmentProvider = z$1.infer<typeof systemEnvironmentProviderSchema>;
10015
+ declare const systemMachineProviderSchema: z$1.ZodObject<{
10016
+ acceptsEmptyInputs: z$1.ZodBoolean;
10017
+ description: z$1.ZodString;
10018
+ displayName: z$1.ZodString;
10019
+ icon: z$1.ZodString;
10020
+ id: z$1.ZodString;
10021
+ inputs: z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>;
10022
+ logoUrl: z$1.ZodNullable<z$1.ZodString>;
10023
+ pluginId: z$1.ZodString;
10024
+ supportsSuspend: z$1.ZodBoolean;
10025
+ }, z$1.core.$strip>;
10026
+ type SystemMachineProvider = z$1.infer<typeof systemMachineProviderSchema>;
9851
10027
 
9852
10028
  interface UiPreferencesResponse {
9853
10029
  preferences: UiPreferenceEntries;
@@ -11103,10 +11279,14 @@ declare const createThreadRequestSchema: z$1.ZodObject<{
11103
11279
  }, z$1.core.$strip>, z$1.ZodObject<{
11104
11280
  environmentProviderId: z$1.ZodString;
11105
11281
  inputs: z$1.ZodDefault<z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>>;
11106
- machine: z$1.ZodObject<{
11282
+ machine: z$1.ZodOptional<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
11107
11283
  hostId: z$1.ZodString;
11108
11284
  type: z$1.ZodLiteral<"existing">;
11109
- }, z$1.core.$strip>;
11285
+ }, z$1.core.$strip>, z$1.ZodObject<{
11286
+ inputs: z$1.ZodDefault<z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>>;
11287
+ machineProviderId: z$1.ZodString;
11288
+ type: z$1.ZodLiteral<"new">;
11289
+ }, z$1.core.$strip>], "type">>;
11110
11290
  type: z$1.ZodLiteral<"provider">;
11111
11291
  }, z$1.core.$strip>], "type">;
11112
11292
  executionInputSources: z$1.ZodOptional<z$1.ZodObject<{
@@ -11379,10 +11559,14 @@ declare const forkThreadRequestSchema: z$1.ZodObject<{
11379
11559
  }, z$1.core.$strip>, z$1.ZodObject<{
11380
11560
  environmentProviderId: z$1.ZodString;
11381
11561
  inputs: z$1.ZodDefault<z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>>;
11382
- machine: z$1.ZodObject<{
11562
+ machine: z$1.ZodOptional<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
11383
11563
  hostId: z$1.ZodString;
11384
11564
  type: z$1.ZodLiteral<"existing">;
11385
- }, z$1.core.$strip>;
11565
+ }, z$1.core.$strip>, z$1.ZodObject<{
11566
+ inputs: z$1.ZodDefault<z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>>;
11567
+ machineProviderId: z$1.ZodString;
11568
+ type: z$1.ZodLiteral<"new">;
11569
+ }, z$1.core.$strip>], "type">>;
11386
11570
  type: z$1.ZodLiteral<"provider">;
11387
11571
  }, z$1.core.$strip>], "type">>;
11388
11572
  input: z$1.ZodOptional<z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
@@ -12665,10 +12849,14 @@ declare const threadWithIncludesResponseSchema: z$1.ZodObject<{
12665
12849
  environmentProviderInstanceKey: z$1.ZodNullable<z$1.ZodString>;
12666
12850
  environmentProviderSelection: z$1.ZodNullable<z$1.ZodObject<{
12667
12851
  inputs: z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>;
12668
- machine: z$1.ZodObject<{
12852
+ machine: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12669
12853
  hostId: z$1.ZodString;
12670
12854
  type: z$1.ZodLiteral<"existing">;
12671
- }, z$1.core.$strip>;
12855
+ }, z$1.core.$strip>, z$1.ZodObject<{
12856
+ inputs: z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>;
12857
+ machineProviderId: z$1.ZodString;
12858
+ type: z$1.ZodLiteral<"new">;
12859
+ }, z$1.core.$strip>], "type">;
12672
12860
  }, z$1.core.$strip>>;
12673
12861
  hostId: z$1.ZodString;
12674
12862
  id: z$1.ZodString;
@@ -12717,6 +12905,29 @@ declare const threadWithIncludesResponseSchema: z$1.ZodObject<{
12717
12905
  id: z$1.ZodString;
12718
12906
  lastRejectedProtocolVersion: z$1.ZodNullable<z$1.ZodNumber>;
12719
12907
  lastSeenAt: z$1.ZodNullable<z$1.ZodNumber>;
12908
+ lifecycle: z$1.ZodObject<{
12909
+ message: z$1.ZodNullable<z$1.ZodString>;
12910
+ pendingLog: z$1.ZodString;
12911
+ phase: z$1.ZodEnum<{
12912
+ active: "active";
12913
+ creating: "creating";
12914
+ destroyed: "destroyed";
12915
+ removing: "removing";
12916
+ resuming: "resuming";
12917
+ suspended: "suspended";
12918
+ suspending: "suspending";
12919
+ }>;
12920
+ suspendedAt: z$1.ZodNullable<z$1.ZodNumber>;
12921
+ teardown: z$1.ZodNullable<z$1.ZodObject<{
12922
+ attempt: z$1.ZodNumber;
12923
+ status: z$1.ZodEnum<{
12924
+ failed: "failed";
12925
+ removed: "removed";
12926
+ running: "running";
12927
+ }>;
12928
+ }, z$1.core.$strip>>;
12929
+ }, z$1.core.$strip>;
12930
+ machineProviderId: z$1.ZodNullable<z$1.ZodString>;
12720
12931
  maxPermissionMode: z$1.ZodEnum<{
12721
12932
  "accept-edits": "accept-edits";
12722
12933
  auto: "auto";
@@ -12728,6 +12939,7 @@ declare const threadWithIncludesResponseSchema: z$1.ZodObject<{
12728
12939
  disconnected: "disconnected";
12729
12940
  }>;
12730
12941
  type: z$1.ZodEnum<{
12942
+ ephemeral: "ephemeral";
12731
12943
  persistent: "persistent";
12732
12944
  }>;
12733
12945
  updatedAt: z$1.ZodNumber;
@@ -14072,6 +14284,25 @@ declare const updateThreadTabsRequestSchema: z$1.ZodObject<{
14072
14284
  }, z$1.core.$strict>;
14073
14285
  type UpdateThreadTabsRequest = z$1.infer<typeof updateThreadTabsRequestSchema>;
14074
14286
 
14287
+ declare const machineEnvironmentListSchema: z$1.ZodObject<{
14288
+ builtInGit: z$1.ZodObject<{
14289
+ status: z$1.ZodEnum<{
14290
+ "logged in": "logged in";
14291
+ "not logged in": "not logged in";
14292
+ disabled: "disabled";
14293
+ overridden: "overridden";
14294
+ }>;
14295
+ statusMessage: z$1.ZodString;
14296
+ }, z$1.core.$strip>;
14297
+ variables: z$1.ZodArray<z$1.ZodObject<{
14298
+ name: z$1.ZodString;
14299
+ note: z$1.ZodNullable<z$1.ZodString>;
14300
+ secret: z$1.ZodLiteral<true>;
14301
+ value: z$1.ZodNull;
14302
+ }, z$1.core.$strict>>;
14303
+ }, z$1.core.$strip>;
14304
+ type MachineEnvironmentList = z$1.infer<typeof machineEnvironmentListSchema>;
14305
+
14075
14306
  /**
14076
14307
  * A value that survives a JSON round trip without coercion or data loss.
14077
14308
  *
@@ -15308,20 +15539,21 @@ interface PluginCommandPaletteActionRegistration {
15308
15539
  run(context: PluginCommandPaletteActionContext): void | Promise<void>;
15309
15540
  }
15310
15541
  /**
15311
- * Supply the inline React mark bb draws for one agent provider.
15542
+ * Supply an inline React mark for a provider. Agent, machine, and environment
15543
+ * icon renderers select the mark by provider kind and id.
15544
+ * Only surfaces using the provider icon renderer consult this slot. Persistent
15545
+ * machine labels use a laptop glyph directly.
15312
15546
  *
15313
- * A manifest `branding.icon` (or a provider's `logoUrl`) is fetched and drawn
15314
- * through `<img>`, a separate document where `currentColor` resolves to black
15315
- * — invisible on dark themes and unreachable from app CSS. A component is
15316
- * rendered inline, so it inherits the app's theme colors and the host's sizing
15317
- * classes. Register a static color logo as a file and a theme-aware mark here.
15547
+ * Provider logo assets use a currentColor mask. Inline components can also
15548
+ * render multiple colors and inherit the app's theme and sizing classes.
15318
15549
  *
15319
- * The host passes only `className` (sizing plus the provider's color class);
15550
+ * The host passes `className` for sizing; color inherits from its wrapper.
15320
15551
  * the component must render an inline SVG (or other inline markup) and must
15321
- * not fetch. One registration per provider id per plugin; when two plugins
15322
- * claim the same provider id the host keeps the first by plugin id and warns.
15552
+ * not fetch. One registration per provider kind and id per plugin; when two
15553
+ * plugins claim the same pair the host keeps the first by plugin id and warns.
15323
15554
  */
15324
15555
  interface PluginProviderIconRegistration {
15556
+ providerKind: "agent" | "environment" | "machine";
15325
15557
  /**
15326
15558
  * The provider this mark is for — the id bb knows the provider by (the
15327
15559
  * provider declaration's id, e.g. `codex` or `acp-cursor`), not the plugin
@@ -15429,10 +15661,13 @@ interface PluginTimelineRendererRegistration {
15429
15661
  interface PluginEnvironmentProviderInputsProps {
15430
15662
  /** Project selected in the composer; null in projectless compose. */
15431
15663
  projectId: string | null;
15432
- /**
15433
- * The enrolled machine the selection names; null before one is picked.
15434
- */
15435
- hostId: string | null;
15664
+ /** Whether setup uses an existing host or provisions a new host before create. */
15665
+ target: {
15666
+ kind: "existing-host";
15667
+ hostId: string;
15668
+ } | {
15669
+ kind: "new-host";
15670
+ };
15436
15671
  /**
15437
15672
  * The `inputs` value the selection will carry: null until `onChange`
15438
15673
  * supplies one.
@@ -15467,6 +15702,34 @@ interface PluginEnvironmentProviderInputsRegistration {
15467
15702
  environmentProviderId: string;
15468
15703
  component: ComponentType<PluginEnvironmentProviderInputsProps>;
15469
15704
  }
15705
+ /**
15706
+ * Props passed to an `experimental_machineProviderInputs` component. Machine
15707
+ * inputs are persisted and readable by every plugin, so they must contain only
15708
+ * non-secret configuration and references to credentials held in plugin
15709
+ * settings.
15710
+ */
15711
+ interface PluginMachineProviderInputsProps {
15712
+ /** The value persisted with the machine selection. */
15713
+ value: JsonValue | null;
15714
+ /** Replace the submitted value or block submission with a visible reason. */
15715
+ onChange(next: PluginMachineProviderInputsChange): void;
15716
+ }
15717
+ type PluginMachineProviderInputsChange = {
15718
+ status: "ready";
15719
+ value: JsonValue;
15720
+ } | {
15721
+ status: "blocked";
15722
+ reason: string;
15723
+ };
15724
+ /**
15725
+ * Supply the inputs control for one machine provider registered server-side
15726
+ * through `bb.experimental_machines.register`.
15727
+ */
15728
+ interface PluginMachineProviderInputsRegistration {
15729
+ /** The machine provider id this control supplies inputs for. */
15730
+ machineProviderId: string;
15731
+ component: ComponentType<PluginMachineProviderInputsProps>;
15732
+ }
15470
15733
  interface PluginAppSlots {
15471
15734
  homepageSection(registration: PluginHomepageSectionRegistration): void;
15472
15735
  settingsSection(registration: PluginSettingsSectionRegistration): void;
@@ -15525,8 +15788,8 @@ interface PluginAppSlots {
15525
15788
  */
15526
15789
  commandPaletteAction(registration: PluginCommandPaletteActionRegistration): void;
15527
15790
  /**
15528
- * Draw one agent or environment provider's icon with an inline
15529
- * React component instead of its `<img>`-rendered logo file (see
15791
+ * Draw one agent, environment, or machine provider's icon with an inline
15792
+ * React component instead of its masked logo asset (see
15530
15793
  * {@link PluginProviderIconRegistration}). Experimental: see
15531
15794
  * docs/api_to_audit.md.
15532
15795
  */
@@ -15545,6 +15808,12 @@ interface PluginAppSlots {
15545
15808
  * see docs/api_to_audit.md.
15546
15809
  */
15547
15810
  experimental_environmentProviderInputs(registration: PluginEnvironmentProviderInputsRegistration): void;
15811
+ /**
15812
+ * Supply the non-secret machine inputs control rendered by machine creation
15813
+ * surfaces (see {@link PluginMachineProviderInputsRegistration}).
15814
+ * Experimental: see docs/api_to_audit.md.
15815
+ */
15816
+ experimental_machineProviderInputs(registration: PluginMachineProviderInputsRegistration): void;
15548
15817
  }
15549
15818
  interface PluginAppComposer {
15550
15819
  customize(registration: ComposerCustomization): void;
@@ -15592,7 +15861,63 @@ interface PluginContentScriptRegistration {
15592
15861
  interface PluginAppContentScripts {
15593
15862
  register(registration: PluginContentScriptRegistration): void;
15594
15863
  }
15864
+ interface ExperimentalIconProps {
15865
+ name: string;
15866
+ /** Used when the requested name is missing; defaults to the host Zap icon. */
15867
+ fallback?: string;
15868
+ className?: string;
15869
+ style?: CSSProperties;
15870
+ "aria-hidden"?: boolean | "false" | "true";
15871
+ "aria-label"?: string;
15872
+ }
15873
+ /** Shared agent, machine, or environment artwork without fetching metadata. */
15874
+ interface ExperimentalProviderIconProps {
15875
+ /** Keeps same-id agent, machine, and environment providers distinct. */
15876
+ providerKind: PluginProviderIconRegistration["providerKind"];
15877
+ /**
15878
+ * Existing agent, machine, or environment provider record. Reads id, logoUrl, icon and
15879
+ * strings.iconTint; other fields are ignored. An id-only record is sufficient
15880
+ * when only frontend registrations and fallback are needed. Does not fetch.
15881
+ */
15882
+ provider: {
15883
+ id: string;
15884
+ logoUrl?: string | null;
15885
+ /** Agent providers use { glyph }; machine and environment providers use a string. */
15886
+ icon?: {
15887
+ glyph: string;
15888
+ } | string | null;
15889
+ strings?: {
15890
+ iconTint?: {
15891
+ light: string;
15892
+ dark: string;
15893
+ } | null;
15894
+ } | null;
15895
+ };
15896
+ /** Used when no artwork is available; defaults to Code. */
15897
+ fallback?: string;
15898
+ className?: string;
15899
+ "aria-hidden"?: boolean | "false" | "true";
15900
+ "aria-label"?: string;
15901
+ }
15902
+ interface ExperimentalIconRegistration {
15903
+ /** Shared app name. Namespacing is recommended, but not required. */
15904
+ name: string;
15905
+ /** Inline artwork. Honor className for sizing; use currentColor for tint. */
15906
+ component: ComponentType<{
15907
+ className?: string;
15908
+ }>;
15909
+ }
15910
+ interface ExperimentalAppIcons {
15911
+ /**
15912
+ * Add or override an app icon during setup. Returns nothing; the host
15913
+ * replaces registrations on reload and removes them on unload. Duplicate
15914
+ * names within a plugin reject setup. Between plugins, the first plugin id
15915
+ * in lexical order wins, independent of bundle load order.
15916
+ */
15917
+ register(registration: ExperimentalIconRegistration): void;
15918
+ }
15595
15919
  interface PluginAppBuilder {
15920
+ experimental_icons: ExperimentalAppIcons;
15596
15921
  slots: PluginAppSlots;
15597
15922
  composer: PluginAppComposer;
15598
15923
  contentScripts: PluginAppContentScripts;
@@ -16317,6 +16642,15 @@ interface BbNavigate {
16317
16642
  * shims the specifier to that object on `globalThis.__bbPluginRuntime`.
16318
16643
  */
16319
16644
  interface PluginSdkApp {
16645
+ experimental_Icon: ComponentType<ExperimentalIconProps>;
16646
+ /**
16647
+ * Render provider slot override, then its logo, then its glyph, then fallback.
16648
+ * Pass a record from agent, machine, or environment provider queries;
16649
+ * an id-only record resolves frontend registrations, without fetching metadata.
16650
+ * Updates on plugin load, reload and unload. Throwing or recursive overrides
16651
+ * fall back to declared artwork. Logo assets render as currentColor masks.
16652
+ */
16653
+ experimental_ProviderIcon: ComponentType<ExperimentalProviderIconProps>;
16320
16654
  definePluginApp(setup: PluginAppSetup): PluginAppDefinition;
16321
16655
  useRpc<Contract extends PluginRpcContract = PluginRpcContract>(): PluginRpcClient<Contract>;
16322
16656
  useRealtime(channel: string, handler: (payload: unknown) => void): void;
@@ -16460,6 +16794,80 @@ interface PluginSdkApp {
16460
16794
  useComposerView(): ComposerView;
16461
16795
  }
16462
16796
 
16797
+ type PluginMachineProviderResource = Exclude<JsonValue$2, null>;
16798
+ type PluginMachineProviderInputsSchema = StandardSchemaV1$1 | undefined;
16799
+ type InputsValue$1<S> = S extends StandardSchemaV1$1 ? StandardSchemaV1InferOutput$1<S> : null;
16800
+ interface PluginMachineProviderProgress {
16801
+ step(text: string): void;
16802
+ log(text: string): void;
16803
+ }
16804
+ type PluginMachineProviderAvailability = {
16805
+ status: "available";
16806
+ } | {
16807
+ status: "setup-required";
16808
+ message: string;
16809
+ } | {
16810
+ status: "unavailable";
16811
+ message: string;
16812
+ };
16813
+ type PluginMachineProviderValidateContext<S extends PluginMachineProviderInputsSchema = PluginMachineProviderInputsSchema> = {
16814
+ inputs: InputsValue$1<S>;
16815
+ };
16816
+ interface PluginMachineProviderLifecycleContext {
16817
+ checkpoint(resource: PluginMachineProviderResource): Promise<void>;
16818
+ report: PluginMachineProviderProgress;
16819
+ signal: AbortSignal;
16820
+ }
16821
+ type PluginMachineProviderCreateContext<S extends PluginMachineProviderInputsSchema = PluginMachineProviderInputsSchema> = PluginMachineProviderValidateContext<S> & PluginMachineProviderLifecycleContext & {
16822
+ key: string;
16823
+ attempt: number;
16824
+ };
16825
+ type PluginMachineProviderCreateResult = {
16826
+ status: "created";
16827
+ name: string;
16828
+ resource: PluginMachineProviderResource;
16829
+ } | {
16830
+ status: "failed";
16831
+ message: string;
16832
+ };
16833
+ type PluginMachineProviderResourceLifecycleContext = PluginMachineProviderLifecycleContext & {
16834
+ hostId: string;
16835
+ resource: PluginMachineProviderResource;
16836
+ };
16837
+ type PluginMachineProviderRemoveContext = Omit<PluginMachineProviderResourceLifecycleContext, "checkpoint">;
16838
+ interface PluginMachineProviderResourceResult {
16839
+ resource: PluginMachineProviderResource;
16840
+ }
16841
+ type PluginMachineProviderRemoveResult = {
16842
+ status: "removed";
16843
+ } | {
16844
+ status: "failed";
16845
+ message: string;
16846
+ };
16847
+ interface PluginMachineProviderDefinition<S extends PluginMachineProviderInputsSchema = PluginMachineProviderInputsSchema> {
16848
+ id: string;
16849
+ displayName: string;
16850
+ /** One line telling a user what choosing this provider gets them, shown wherever a machine is added. */
16851
+ description: string;
16852
+ /** Provider glyph, declared icon, or plugin-relative icon path. */
16853
+ icon: string;
16854
+ ephemeral?: boolean;
16855
+ /** Persisted and readable by every plugin. Store secret references, never secrets. */
16856
+ inputs?: S;
16857
+ availability?(): PluginMachineProviderAvailability | Promise<PluginMachineProviderAvailability>;
16858
+ validate?(context: PluginMachineProviderValidateContext<S>): PluginMachineValidateDecision$1 | Promise<PluginMachineValidateDecision$1>;
16859
+ create(context: PluginMachineProviderCreateContext<S>): Promise<PluginMachineProviderCreateResult>;
16860
+ /** Reconcile and remove an uncertain allocation by durable key without creating or bootstrapping. Return failed while allocation intent remains unresolved. */
16861
+ reconcileCleanup(context: {
16862
+ key: string;
16863
+ report: PluginMachineProviderProgress;
16864
+ signal: AbortSignal;
16865
+ }): Promise<PluginMachineProviderRemoveResult>;
16866
+ suspend?(context: PluginMachineProviderResourceLifecycleContext): Promise<PluginMachineProviderResourceResult>;
16867
+ resume?(context: PluginMachineProviderResourceLifecycleContext): Promise<PluginMachineProviderResourceResult>;
16868
+ remove(context: PluginMachineProviderRemoveContext): Promise<PluginMachineProviderRemoveResult>;
16869
+ }
16870
+
16463
16871
  type PluginEnvironmentProviderInputsSchema = StandardSchemaV1$1 | undefined;
16464
16872
  type Fact<R, K extends PropertyKey, T> = R extends Record<K, true> ? T : T | null;
16465
16873
  type Checkout<R> = R extends {
@@ -16468,8 +16876,10 @@ type Checkout<R> = R extends {
16468
16876
  gitCheckout: true;
16469
16877
  } ? {
16470
16878
  path: string;
16879
+ experimental_ownsPath: boolean;
16471
16880
  } : {
16472
16881
  path: string;
16882
+ experimental_ownsPath: boolean;
16473
16883
  } | null;
16474
16884
  type InputsValue<S> = S extends StandardSchemaV1$1 ? StandardSchemaV1InferOutput$1<S> : null;
16475
16885
  /** Attempt-scoped updates; core persists each update before this call returns. */
@@ -16553,8 +16963,10 @@ interface PluginEnvironmentProviderPolicy {
16553
16963
  interface PluginEnvironmentProviderDefinition<R extends PluginEnvironmentProviderRequirements$1 = PluginEnvironmentProviderRequirements$1, S extends PluginEnvironmentProviderInputsSchema = PluginEnvironmentProviderInputsSchema> {
16554
16964
  id: string;
16555
16965
  displayName: string;
16966
+ /** Short explanation shown in environment choices. */
16967
+ description: string;
16556
16968
  /** Host glyph, plugin-relative icon path, or this plugin’s declared namespaced icon. */
16557
- icon?: string;
16969
+ icon: string;
16558
16970
  requires?: R;
16559
16971
  inputs?: S;
16560
16972
  policy?: Partial<PluginEnvironmentProviderPolicy>;
@@ -16565,6 +16977,30 @@ interface PluginEnvironmentProviderDefinition<R extends PluginEnvironmentProvide
16565
16977
  remove(context: PluginEnvironmentProviderRemoveContext): Promise<PluginEnvironmentProviderRemoveResult>;
16566
16978
  }
16567
16979
 
16980
+ interface MachineExecutorRequest {
16981
+ command: string[];
16982
+ timeoutMs: number;
16983
+ signal: AbortSignal;
16984
+ stdin: string;
16985
+ onOutput: (chunk: string) => void;
16986
+ }
16987
+ interface MachineExecutor {
16988
+ exec(request: MachineExecutorRequest): Promise<{
16989
+ exitCode: number;
16990
+ }>;
16991
+ }
16992
+ interface MachineBootstrapRequest {
16993
+ key: string;
16994
+ executor: MachineExecutor;
16995
+ report: PluginMachineProviderProgress;
16996
+ signal: AbortSignal;
16997
+ }
16998
+ interface MachineBootstrapApi {
16999
+ bootstrap(request: MachineBootstrapRequest): Promise<{
17000
+ hostId: string;
17001
+ }>;
17002
+ }
17003
+
16568
17004
  interface ExperimentalDesktopBrowsersArea {
16569
17005
  listInstances(input: ExperimentalDesktopBrowserHostRequest): Promise<ExperimentalDesktopBrowserInstances>;
16570
17006
  listTabs(input: ExperimentalDesktopBrowserScope): Promise<ExperimentalDesktopBrowserTabs>;
@@ -16798,6 +17234,9 @@ interface HostUpdateArgs extends UpdateHostRequest {
16798
17234
  interface HostRetryUpdateArgs {
16799
17235
  hostId: string;
16800
17236
  }
17237
+ interface HostActionArgs {
17238
+ hostId: string;
17239
+ }
16801
17240
  interface HostDirectoryArgs extends HostDirectoryQuery {
16802
17241
  hostId: string;
16803
17242
  signal?: AbortSignal;
@@ -16818,6 +17257,14 @@ interface HostProviderCliInstallArgs extends HostProviderCliInstallRequest {
16818
17257
  hostId: string;
16819
17258
  }
16820
17259
  interface HostListArgs {
17260
+ includeCreating?: boolean;
17261
+ signal?: AbortSignal;
17262
+ }
17263
+ interface MachineCreateArgs extends CreateMachineRequest {
17264
+ wait?: boolean;
17265
+ signal?: AbortSignal;
17266
+ }
17267
+ interface MachineProviderListArgs {
16821
17268
  signal?: AbortSignal;
16822
17269
  }
16823
17270
  type HostCreateJoinCodeResult = CreateHostJoinCodeResponse;
@@ -16825,7 +17272,10 @@ type HostDeleteResult = {
16825
17272
  ok: true;
16826
17273
  };
16827
17274
  type HostDirectoryResult = HostDirectoryListing;
16828
- type HostGetResult = Host;
17275
+ type HostGetResult = Host & {
17276
+ connectMachineId: string | null;
17277
+ };
17278
+ type HostEnrollmentCommandResult = HostEnrollmentCommandResponse;
16829
17279
  type HostCloneDefaultPathResult = HostCloneDefaultPathResponse;
16830
17280
  type HostProviderCliInstallResult = HostProviderCliInstallEvent[];
16831
17281
  type HostListResult = Host[];
@@ -16833,8 +17283,12 @@ type HostPathsExistResult = HostPathsExistResponse;
16833
17283
  type HostPickFolderResult = HostPickFolderResponse;
16834
17284
  type HostProviderCliStatusResult = HostProviderCliStatusResponse;
16835
17285
  type HostRetryUpdateResult = HostRetryUpdateResponse;
17286
+ type HostActionResult = HostActionResponse;
16836
17287
  type HostUpdateResult = Host;
17288
+ type MachineProviderListResult = SystemMachineProvider[];
16837
17289
  interface HostsArea {
17290
+ experimental_create(args: MachineCreateArgs): Promise<Host>;
17291
+ experimental_getEnrollmentCommand(args: HostGetArgs): Promise<HostEnrollmentCommandResult>;
16838
17292
  createJoinCode(): Promise<HostCreateJoinCodeResult>;
16839
17293
  delete(args: HostDeleteArgs): Promise<HostDeleteResult>;
16840
17294
  directory(args: HostDirectoryArgs): Promise<HostDirectoryResult>;
@@ -16842,10 +17296,14 @@ interface HostsArea {
16842
17296
  cloneDefaultPath(args: HostCloneDefaultPathArgs): Promise<HostCloneDefaultPathResult>;
16843
17297
  installProviderCli(args: HostProviderCliInstallArgs): Promise<HostProviderCliInstallResult>;
16844
17298
  list(args?: HostListArgs): Promise<HostListResult>;
17299
+ experimental_listProviders(args?: MachineProviderListArgs): Promise<MachineProviderListResult>;
16845
17300
  pathsExist(args: HostPathsExistArgs): Promise<HostPathsExistResult>;
16846
17301
  pickFolder(args: HostPickFolderArgs): Promise<HostPickFolderResult>;
16847
17302
  providerCliStatus(args: HostGetArgs): Promise<HostProviderCliStatusResult>;
17303
+ experimental_resume(args: HostActionArgs): Promise<Host>;
17304
+ experimental_retryCleanup(args: HostActionArgs): Promise<HostActionResult>;
16848
17305
  retryUpdate(args: HostRetryUpdateArgs): Promise<HostRetryUpdateResult>;
17306
+ experimental_suspend(args: HostActionArgs): Promise<Host>;
16849
17307
  update(args: HostUpdateArgs): Promise<HostUpdateResult>;
16850
17308
  }
16851
17309
 
@@ -17403,6 +17861,8 @@ interface SystemUiPreferencesArea {
17403
17861
  reset<Key extends UiPreferenceKey>(args: SystemResetUiPreferenceArgs<Key>): Promise<SystemUiPreferenceResult<Key>>;
17404
17862
  }
17405
17863
  interface SystemArea {
17864
+ machineEnvironment(): Promise<MachineEnvironmentList>;
17865
+ replaceMachineEnvironment(input: MachineEnvironmentReplace): Promise<MachineEnvironmentList>;
17406
17866
  attention(args?: SystemAttentionArgs): Promise<SystemAttentionResult>;
17407
17867
  config(args?: SystemConfigArgs): Promise<SystemConfigResult>;
17408
17868
  executionOptions(args?: SystemExecutionOptionsArgs): Promise<SystemExecutionOptionsResult>;
@@ -18232,6 +18692,15 @@ interface PluginTurnFailedEvent {
18232
18692
  * queued row GET /threads/:id/queued-messages serves.
18233
18693
  */
18234
18694
  interface PluginThreadEventPayloads {
18695
+ /** Debounced per thread (at most once per second), with the latest sequence and current thread DTO. Reading history does not emit this event. */
18696
+ "experimental_thread.events": {
18697
+ thread: ThreadResponse;
18698
+ sequence: number;
18699
+ };
18700
+ /** Real accepted terminal input; excludes output, keepalives and input contents. */
18701
+ "experimental_terminal.input": {
18702
+ terminal: TerminalSession;
18703
+ };
18235
18704
  /** Fired after a thread row is created. */
18236
18705
  "thread.created": {
18237
18706
  thread: ThreadResponse;
@@ -18370,7 +18839,16 @@ interface PluginEnvironments {
18370
18839
  * Offer a place threads can run. Registering an id this plugin already
18371
18840
  * registered replaces it. Experimental: see docs/api_to_audit.md.
18372
18841
  */
18373
- register<const Requires extends PluginEnvironmentProviderRequirements, const Inputs extends PluginEnvironmentProviderInputsSchema = undefined>(declaration: PluginEnvironmentProviderDeclaration<Requires, Inputs>): void;
18842
+ register<const Requires extends PluginEnvironmentProviderRequirements, const Inputs extends PluginEnvironmentProviderInputsSchema = undefined>(declaration: PluginEnvironmentProviderDeclaration<Requires, Inputs> | {
18843
+ id: string;
18844
+ displayName: string;
18845
+ description: string;
18846
+ icon: string;
18847
+ machineProviderId: string;
18848
+ environmentProviderId: string;
18849
+ create?: never;
18850
+ remove?: never;
18851
+ }): void;
18374
18852
  /**
18375
18853
  * Ask core to re-ask this plugin's waiting providers now instead of at their
18376
18854
  * `sendAt`. Resolves on scheduling, exactly like
@@ -18378,6 +18856,56 @@ interface PluginEnvironments {
18378
18856
  */
18379
18857
  recheck(): Promise<void>;
18380
18858
  }
18859
+ type PluginMachineValidateDecision = {
18860
+ action: "accept";
18861
+ } | {
18862
+ action: "refuse";
18863
+ message: string;
18864
+ };
18865
+ type PluginMachineProviderDeclaration<Inputs extends PluginMachineProviderInputsSchema = PluginMachineProviderInputsSchema> = PluginMachineProviderDefinition<Inputs>;
18866
+ interface ServerAccessGrant {
18867
+ id: string;
18868
+ serverUrl: string;
18869
+ headers?: Record<string, string>;
18870
+ }
18871
+ interface ServerAccessProviderDeclaration {
18872
+ id: string;
18873
+ displayName: string;
18874
+ description: string;
18875
+ availability(): (PluginMachineProviderAvailability & {
18876
+ serverUrl?: string;
18877
+ }) | Promise<PluginMachineProviderAvailability & {
18878
+ serverUrl?: string;
18879
+ }>;
18880
+ acquire(context: {
18881
+ key: string;
18882
+ hostId: string;
18883
+ signal: AbortSignal;
18884
+ }): Promise<ServerAccessGrant | {
18885
+ status: "failed";
18886
+ message: string;
18887
+ }>;
18888
+ release(context: {
18889
+ key: string;
18890
+ hostId: string;
18891
+ /** Null when acquisition was interrupted before a grant was returned. Reconcile using key and hostId. */
18892
+ grantId: string | null;
18893
+ }): Promise<void>;
18894
+ }
18895
+ interface PluginServerAccess {
18896
+ register(declaration: ServerAccessProviderDeclaration): void;
18897
+ /**
18898
+ * Notify connected clients that server access configuration changed.
18899
+ * Call when access is gained or lost. Clients reload system configuration,
18900
+ * which re-checks availability for Machines settings and creation banners.
18901
+ */
18902
+ recheck(): void;
18903
+ }
18904
+ interface PluginMachines extends MachineBootstrapApi {
18905
+ /** Read core’s current persisted provider resource, or null when the host or resource is absent. Available across plugins; resources must not contain credentials. */
18906
+ getResource(hostId: string): Promise<JsonValue | null>;
18907
+ register<const Inputs extends PluginMachineProviderInputsSchema = undefined>(declaration: PluginMachineProviderDeclaration<Inputs>): void;
18908
+ }
18381
18909
  /**
18382
18910
  * Where a thread is going to run, as far as core knows at the checkpoint.
18383
18911
  * Before provisioning attaches an environment this is the start intent the
@@ -18394,6 +18922,10 @@ type PluginDispatchEnvironmentIntent = {
18394
18922
  machine: {
18395
18923
  type: "existing";
18396
18924
  hostId: string;
18925
+ } | {
18926
+ type: "new";
18927
+ machineProviderId: string;
18928
+ inputs: JsonValue | null;
18397
18929
  };
18398
18930
  inputs: JsonValue | null;
18399
18931
  };
@@ -19365,7 +19897,6 @@ interface ExperimentalPluginProviderEnvEntry {
19365
19897
  serverPath: string;
19366
19898
  };
19367
19899
  reason: string;
19368
- secret: boolean;
19369
19900
  }
19370
19901
  interface ExperimentalPluginProviderEnvHealthContext {
19371
19902
  hostId: string;
@@ -19590,6 +20121,9 @@ interface BbPluginApi {
19590
20121
  * docs/api_to_audit.md.
19591
20122
  */
19592
20123
  readonly experimental_environments: PluginEnvironments;
20124
+ /** Machine providers provision execution machines. Experimental: see docs/api_to_audit.md. */
20125
+ readonly experimental_machines: PluginMachines;
20126
+ readonly experimental_serverAccess: PluginServerAccess;
19593
20127
  /** Plugin-reported status (needs-configuration). */
19594
20128
  readonly status: PluginStatusApi;
19595
20129
  /** Read-only facts about the running server (loopback base URL). */
@@ -19619,4 +20153,4 @@ interface BbPluginApi {
19619
20153
  }
19620
20154
 
19621
20155
  export { PLUGIN_CLI_OUTPUT_MAX_BYTES, defineRpcContract, experimental_defineHostEntry };
19622
- export type { BbContext, BbNavigate, BbPluginApi, BranchPickerProps, BranchesState, CheckoutState, CodeOverflowMode, ComposerCustomization, ComposerPlusMenuItem, ComposerRichTextSpec, ComposerStructuredDraft, ComposerView, DiffProps, DiffViewMode, ExperimentalAppOverlayProps, ExperimentalAppOverlayRegistration, ExperimentalAppPanel, ExperimentalAppPanelSurface, 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, ExperimentalLiveFileTarget, ExperimentalOpenFixedTabOptions, ExperimentalPermissionModePickerProps, ExperimentalPluginFixedTabReference, ExperimentalPluginProviderEnvContext, ExperimentalPluginProviderEnvEntry, ExperimentalPluginProviderEnvHealth, ExperimentalPluginProviderEnvHealthContext, ExperimentalPluginWebSocket, ExperimentalPluginWebSocketContext, ExperimentalPluginWebSocketHandler, ExperimentalPluginWebSocketHandlers, ExperimentalProviderModelPickerProps, ExperimentalProviderModelPickerRouting, ExperimentalProviderModelPickerValue, ExperimentalSidebarFooter, ExperimentalSidebarFooterActionContext, ExperimentalSidebarFooterActionRegistration, ExperimentalSidebarFooterDisclosureController, ExperimentalSidebarFooterDisclosureProps, ExperimentalSidebarFooterDisclosureRegistration, ExperimentalSidebarFooterItemBase, ExperimentalSidebarFooterItemRegistration, ExperimentalSidebarNavigationAction, ExperimentalSidebarNavigationActivationOptions, ExperimentalSidebarNavigationIcon, ExperimentalSidebarNavigationItem, ExperimentalSidebarNavigationProps, ExperimentalSidebarNavigationRegistration, ExperimentalSidebarNavigationShortcut, JsonValue, MarkdownProps, MessageDispatchHookContext, MessageDispatchHookDecision, NewThreadComposerProps, NewThreadRequest, PluginAgentConfiguration, PluginAgentConfigurationContext, PluginAgentToolContentPart, PluginAgentToolContext, PluginAgentToolLabels, PluginAgentToolPresentation, PluginAgentToolRegistrationBase, PluginAgentToolResult, PluginAgentToolSelection, PluginAgents, PluginAiServiceDeclaration, PluginAiServiceKind, PluginAiServices, PluginAppBuilder, PluginAppComposer, PluginAppContentScripts, PluginAppDefinition, PluginAppSetup, PluginAppSlots, PluginBackground, PluginCli, PluginCliCommandInfo, PluginCliContext, PluginCliExecutionResult, PluginCliOutputLimitError, PluginCliRegistration, PluginCliResult, PluginCodeThemeData, PluginCodeThemeState, PluginCodeThemeTokenRule, PluginCommandPaletteActionContext, PluginCommandPaletteActionRegistration, PluginComposerApi, PluginComposerMention, PluginComposerScope, PluginComposerTextEffect, PluginComposerThreadRowStatus, PluginContentScriptContext, PluginContentScriptDisposer, PluginContentScriptRegistration, PluginDiffRendererProps, PluginDiffRendererRegistration, PluginDispatchAttemptKind, PluginDispatchEnvironmentIntent, PluginDispatchExecution, PluginDispatchExecutionSources, PluginDispatchInput, PluginEnvironmentProviderDeclaration, PluginEnvironmentProviderInputsChange, PluginEnvironmentProviderInputsProps, PluginEnvironmentProviderInputsRegistration, PluginEnvironmentProviderRequirements, PluginEnvironmentValidateDecision, PluginEnvironments, PluginEvents, PluginFileOpenerProps, PluginFileOpenerRegistration, PluginFileOpenerSource, PluginFixedTabDeclaration, PluginFixedTabRegistration, PluginHomepageSectionProps, PluginHomepageSectionRegistration, PluginHookHandler, PluginHookName, PluginHookSignatures, PluginHooks, PluginHosts, PluginHttp, PluginHttpAuthMode, PluginHttpHandler, PluginInteractionCancelReason, PluginInteractionRequest, PluginInteractionResult, PluginKvStorage, PluginLogger, PluginMentionItem, PluginMentionProviderRegistration, PluginMentionSearchContext, PluginMentionTrigger, PluginMessageActionContext, PluginMessageActionRegistration, PluginMessageDirectiveMessage, PluginMessageDirectiveOpenWorkspaceFile, PluginMessageDirectiveProps, PluginMessageDirectiveRegistration, PluginNavPanelProps, PluginNavPanelRegistration, PluginNewThreadPanelActionContext, PluginNewThreadPanelActionRegistration, PluginNewThreadPanelProps, PluginPanelActionOpenOptions, PluginPendingInteractionProps, PluginPendingInteractionRegistration, PluginPendingInteractionView, PluginProviderCapabilities, PluginProviderComposerAction, PluginProviderDeclaration, PluginProviderExtensionKindDeclaration, PluginProviderFallbackModel, PluginProviderIconRegistration, PluginProviderMaintenance, PluginProviderModelCatalogScope, PluginProviderNativeRootEntry, PluginProviderNativeRoots, PluginProviderOptionDescriptor, PluginProviderOptionsContext, PluginProviderPermissionMode, PluginProviderReasoningLevel, PluginProviderStrings, PluginProviders, PluginProvidersState, PluginRealtime, PluginRealtimeConnectionState, PluginRpc, PluginRpcCallArgs, PluginRpcClient, PluginRpcContract, PluginRpcError, PluginRpcErrorCode, PluginRpcHandlers, PluginRpcIssuePathSegment, PluginRpcMethodContract, PluginRpcResult, PluginRpcValidationIssue, PluginSdkApp, PluginServerApi, PluginSettingDescriptor, PluginSettingDescriptors, PluginSettingValue, PluginSettings, PluginSettingsHandle, PluginSettingsSectionProps, PluginSettingsSectionRegistration, PluginSettingsState, PluginSettingsValues, PluginSharedPortTunnelIdentity, PluginSidebarFooterActionContext, PluginSidebarFooterActionProps, PluginSidebarFooterActionRegistration, PluginSidebarProject, PluginSidebarPullRequest, PluginSidebarSplitPane, PluginSidebarThread, PluginSidebarThreadActions, PluginSidebarThreadActivity, PluginSidebarThreadIndicator, PluginSidebarThreadPullRequestState, PluginSidebarThreadSplit, PluginSidebarThreadsState, PluginSourceCodeRendererProps, PluginSourceCodeRendererRegistration, PluginStatusApi, PluginStorage, PluginTargetedPanelActionOpenOptions, PluginThreadEventHandler, PluginThreadEventName, PluginThreadEventPayloads, PluginThreadHeaderActionProps, PluginThreadHeaderActionRegistration, PluginThreadListProps, PluginThreadListRegistration, PluginThreadPanelActionContext, PluginThreadPanelActionRegistration, PluginThreadPanelProps, PluginTimelineRendererProps, PluginTimelineRendererRegistration, PluginTimelineRendererRow, PluginTimelineRowPresentation, PluginTimelineRowStatus, PluginTurnFailedEvent, PluginUi, SourceCodeLineRange, SourceCodeProps, StandardSchemaV1, StandardSchemaV1InferInput, StandardSchemaV1InferOutput, StandardSchemaV1Issue, StandardSchemaV1Result, ThreadChatMessageAction, ThreadChatMessageReference, ThreadChatProps, UrlLinkProps, UseBranchesArgs, UseCheckoutStateArgs };
20156
+ export type { BbContext, BbNavigate, BbPluginApi, BranchPickerProps, BranchesState, CheckoutState, CodeOverflowMode, ComposerCustomization, ComposerPlusMenuItem, ComposerRichTextSpec, ComposerStructuredDraft, ComposerView, DiffProps, DiffViewMode, ExperimentalAppIcons, ExperimentalAppOverlayProps, ExperimentalAppOverlayRegistration, ExperimentalAppPanel, ExperimentalAppPanelSurface, 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, ExperimentalPluginFixedTabReference, ExperimentalPluginProviderEnvContext, ExperimentalPluginProviderEnvEntry, ExperimentalPluginProviderEnvHealth, ExperimentalPluginProviderEnvHealthContext, ExperimentalPluginWebSocket, ExperimentalPluginWebSocketContext, ExperimentalPluginWebSocketHandler, ExperimentalPluginWebSocketHandlers, ExperimentalProviderIconProps, ExperimentalProviderModelPickerProps, ExperimentalProviderModelPickerRouting, ExperimentalProviderModelPickerValue, ExperimentalSidebarFooter, ExperimentalSidebarFooterActionContext, ExperimentalSidebarFooterActionRegistration, ExperimentalSidebarFooterDisclosureController, ExperimentalSidebarFooterDisclosureProps, ExperimentalSidebarFooterDisclosureRegistration, ExperimentalSidebarFooterItemBase, ExperimentalSidebarFooterItemRegistration, ExperimentalSidebarNavigationAction, ExperimentalSidebarNavigationActivationOptions, ExperimentalSidebarNavigationIcon, ExperimentalSidebarNavigationItem, ExperimentalSidebarNavigationProps, ExperimentalSidebarNavigationRegistration, ExperimentalSidebarNavigationShortcut, JsonValue, MachineBootstrapApi, MachineBootstrapRequest, MachineExecutor, MachineExecutorRequest, MarkdownProps, MessageDispatchHookContext, MessageDispatchHookDecision, NewThreadComposerProps, NewThreadRequest, PluginAgentConfiguration, PluginAgentConfigurationContext, PluginAgentToolContentPart, PluginAgentToolContext, PluginAgentToolLabels, PluginAgentToolPresentation, PluginAgentToolRegistrationBase, PluginAgentToolResult, PluginAgentToolSelection, PluginAgents, PluginAiServiceDeclaration, PluginAiServiceKind, PluginAiServices, PluginAppBuilder, PluginAppComposer, PluginAppContentScripts, PluginAppDefinition, PluginAppSetup, PluginAppSlots, PluginBackground, PluginCli, PluginCliCommandInfo, PluginCliContext, PluginCliExecutionResult, PluginCliOutputLimitError, PluginCliRegistration, PluginCliResult, PluginCodeThemeData, PluginCodeThemeState, PluginCodeThemeTokenRule, PluginCommandPaletteActionContext, PluginCommandPaletteActionRegistration, PluginComposerApi, PluginComposerMention, PluginComposerScope, PluginComposerTextEffect, PluginComposerThreadRowStatus, PluginContentScriptContext, PluginContentScriptDisposer, PluginContentScriptRegistration, PluginDiffRendererProps, PluginDiffRendererRegistration, PluginDispatchAttemptKind, PluginDispatchEnvironmentIntent, PluginDispatchExecution, PluginDispatchExecutionSources, PluginDispatchInput, PluginEnvironmentProviderDeclaration, PluginEnvironmentProviderInputsChange, PluginEnvironmentProviderInputsProps, PluginEnvironmentProviderInputsRegistration, PluginEnvironmentProviderRequirements, PluginEnvironmentValidateDecision, PluginEnvironments, PluginEvents, PluginFileOpenerProps, PluginFileOpenerRegistration, PluginFileOpenerSource, PluginFixedTabDeclaration, PluginFixedTabRegistration, PluginHomepageSectionProps, PluginHomepageSectionRegistration, PluginHookHandler, PluginHookName, PluginHookSignatures, PluginHooks, PluginHosts, PluginHttp, PluginHttpAuthMode, PluginHttpHandler, PluginInteractionCancelReason, 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, PluginProviderComposerAction, PluginProviderDeclaration, PluginProviderExtensionKindDeclaration, PluginProviderFallbackModel, PluginProviderIconRegistration, PluginProviderMaintenance, PluginProviderModelCatalogScope, PluginProviderNativeRootEntry, PluginProviderNativeRoots, PluginProviderOptionDescriptor, PluginProviderOptionsContext, PluginProviderPermissionMode, PluginProviderReasoningLevel, PluginProviderStrings, PluginProviders, PluginProvidersState, PluginRealtime, PluginRealtimeConnectionState, 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, PluginSidebarSplitPane, PluginSidebarThread, PluginSidebarThreadActions, PluginSidebarThreadActivity, PluginSidebarThreadIndicator, PluginSidebarThreadPullRequestState, PluginSidebarThreadSplit, PluginSidebarThreadsState, PluginSourceCodeRendererProps, PluginSourceCodeRendererRegistration, PluginStatusApi, PluginStorage, PluginTargetedPanelActionOpenOptions, PluginThreadEventHandler, PluginThreadEventName, PluginThreadEventPayloads, PluginThreadHeaderActionProps, PluginThreadHeaderActionRegistration, PluginThreadListProps, PluginThreadListRegistration, PluginThreadPanelActionContext, PluginThreadPanelActionRegistration, PluginThreadPanelProps, PluginTimelineRendererProps, PluginTimelineRendererRegistration, PluginTimelineRendererRow, PluginTimelineRowPresentation, PluginTimelineRowStatus, PluginTurnFailedEvent, PluginUi, ServerAccessGrant, ServerAccessProviderDeclaration, SourceCodeLineRange, SourceCodeProps, StandardSchemaV1, StandardSchemaV1InferInput, StandardSchemaV1InferOutput, StandardSchemaV1Issue, StandardSchemaV1Result, ThreadChatMessageAction, ThreadChatMessageReference, ThreadChatProps, UrlLinkProps, UseBranchesArgs, UseCheckoutStateArgs };