@get-bb/plugin-sdk 0.4.55 → 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
  *
@@ -14356,6 +14587,18 @@ interface PluginFileOpenerSource {
14356
14587
  interface PluginFileOpenerProps {
14357
14588
  path: string;
14358
14589
  source: PluginFileOpenerSource;
14590
+ /**
14591
+ * One-based, inclusive lines requested by the latest file open, or null when
14592
+ * untargeted. BB supplies a new object for each targeted open, including an
14593
+ * identical target in the active tab. Observe object identity to navigate
14594
+ * again; keep the editor model intact. Older hosts may omit this prop.
14595
+ *
14596
+ * @experimental Audit navigation, remount, and persistence semantics before stabilizing.
14597
+ */
14598
+ experimental_lineRange?: {
14599
+ startLineNumber: number;
14600
+ endLineNumber: number;
14601
+ } | null;
14359
14602
  /**
14360
14603
  * BB's file preview, bound to this file. Render it to delegate conditionally
14361
14604
  * without re-entering plugin replacement resolution.
@@ -15296,20 +15539,21 @@ interface PluginCommandPaletteActionRegistration {
15296
15539
  run(context: PluginCommandPaletteActionContext): void | Promise<void>;
15297
15540
  }
15298
15541
  /**
15299
- * 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.
15300
15546
  *
15301
- * A manifest `branding.icon` (or a provider's `logoUrl`) is fetched and drawn
15302
- * through `<img>`, a separate document where `currentColor` resolves to black
15303
- * — invisible on dark themes and unreachable from app CSS. A component is
15304
- * rendered inline, so it inherits the app's theme colors and the host's sizing
15305
- * 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.
15306
15549
  *
15307
- * The host passes only `className` (sizing plus the provider's color class);
15550
+ * The host passes `className` for sizing; color inherits from its wrapper.
15308
15551
  * the component must render an inline SVG (or other inline markup) and must
15309
- * not fetch. One registration per provider id per plugin; when two plugins
15310
- * 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.
15311
15554
  */
15312
15555
  interface PluginProviderIconRegistration {
15556
+ providerKind: "agent" | "environment" | "machine";
15313
15557
  /**
15314
15558
  * The provider this mark is for — the id bb knows the provider by (the
15315
15559
  * provider declaration's id, e.g. `codex` or `acp-cursor`), not the plugin
@@ -15417,10 +15661,13 @@ interface PluginTimelineRendererRegistration {
15417
15661
  interface PluginEnvironmentProviderInputsProps {
15418
15662
  /** Project selected in the composer; null in projectless compose. */
15419
15663
  projectId: string | null;
15420
- /**
15421
- * The enrolled machine the selection names; null before one is picked.
15422
- */
15423
- 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
+ };
15424
15671
  /**
15425
15672
  * The `inputs` value the selection will carry: null until `onChange`
15426
15673
  * supplies one.
@@ -15455,6 +15702,34 @@ interface PluginEnvironmentProviderInputsRegistration {
15455
15702
  environmentProviderId: string;
15456
15703
  component: ComponentType<PluginEnvironmentProviderInputsProps>;
15457
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
+ }
15458
15733
  interface PluginAppSlots {
15459
15734
  homepageSection(registration: PluginHomepageSectionRegistration): void;
15460
15735
  settingsSection(registration: PluginSettingsSectionRegistration): void;
@@ -15513,8 +15788,8 @@ interface PluginAppSlots {
15513
15788
  */
15514
15789
  commandPaletteAction(registration: PluginCommandPaletteActionRegistration): void;
15515
15790
  /**
15516
- * Draw one agent or environment provider's icon with an inline
15517
- * 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
15518
15793
  * {@link PluginProviderIconRegistration}). Experimental: see
15519
15794
  * docs/api_to_audit.md.
15520
15795
  */
@@ -15533,6 +15808,12 @@ interface PluginAppSlots {
15533
15808
  * see docs/api_to_audit.md.
15534
15809
  */
15535
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;
15536
15817
  }
15537
15818
  interface PluginAppComposer {
15538
15819
  customize(registration: ComposerCustomization): void;
@@ -15580,7 +15861,63 @@ interface PluginContentScriptRegistration {
15580
15861
  interface PluginAppContentScripts {
15581
15862
  register(registration: PluginContentScriptRegistration): void;
15582
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
+ }
15583
15919
  interface PluginAppBuilder {
15920
+ experimental_icons: ExperimentalAppIcons;
15584
15921
  slots: PluginAppSlots;
15585
15922
  composer: PluginAppComposer;
15586
15923
  contentScripts: PluginAppContentScripts;
@@ -16305,6 +16642,15 @@ interface BbNavigate {
16305
16642
  * shims the specifier to that object on `globalThis.__bbPluginRuntime`.
16306
16643
  */
16307
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>;
16308
16654
  definePluginApp(setup: PluginAppSetup): PluginAppDefinition;
16309
16655
  useRpc<Contract extends PluginRpcContract = PluginRpcContract>(): PluginRpcClient<Contract>;
16310
16656
  useRealtime(channel: string, handler: (payload: unknown) => void): void;
@@ -16448,6 +16794,80 @@ interface PluginSdkApp {
16448
16794
  useComposerView(): ComposerView;
16449
16795
  }
16450
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
+
16451
16871
  type PluginEnvironmentProviderInputsSchema = StandardSchemaV1$1 | undefined;
16452
16872
  type Fact<R, K extends PropertyKey, T> = R extends Record<K, true> ? T : T | null;
16453
16873
  type Checkout<R> = R extends {
@@ -16456,8 +16876,10 @@ type Checkout<R> = R extends {
16456
16876
  gitCheckout: true;
16457
16877
  } ? {
16458
16878
  path: string;
16879
+ experimental_ownsPath: boolean;
16459
16880
  } : {
16460
16881
  path: string;
16882
+ experimental_ownsPath: boolean;
16461
16883
  } | null;
16462
16884
  type InputsValue<S> = S extends StandardSchemaV1$1 ? StandardSchemaV1InferOutput$1<S> : null;
16463
16885
  /** Attempt-scoped updates; core persists each update before this call returns. */
@@ -16541,8 +16963,10 @@ interface PluginEnvironmentProviderPolicy {
16541
16963
  interface PluginEnvironmentProviderDefinition<R extends PluginEnvironmentProviderRequirements$1 = PluginEnvironmentProviderRequirements$1, S extends PluginEnvironmentProviderInputsSchema = PluginEnvironmentProviderInputsSchema> {
16542
16964
  id: string;
16543
16965
  displayName: string;
16966
+ /** Short explanation shown in environment choices. */
16967
+ description: string;
16544
16968
  /** Host glyph, plugin-relative icon path, or this plugin’s declared namespaced icon. */
16545
- icon?: string;
16969
+ icon: string;
16546
16970
  requires?: R;
16547
16971
  inputs?: S;
16548
16972
  policy?: Partial<PluginEnvironmentProviderPolicy>;
@@ -16553,6 +16977,30 @@ interface PluginEnvironmentProviderDefinition<R extends PluginEnvironmentProvide
16553
16977
  remove(context: PluginEnvironmentProviderRemoveContext): Promise<PluginEnvironmentProviderRemoveResult>;
16554
16978
  }
16555
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
+
16556
17004
  interface ExperimentalDesktopBrowsersArea {
16557
17005
  listInstances(input: ExperimentalDesktopBrowserHostRequest): Promise<ExperimentalDesktopBrowserInstances>;
16558
17006
  listTabs(input: ExperimentalDesktopBrowserScope): Promise<ExperimentalDesktopBrowserTabs>;
@@ -16786,6 +17234,9 @@ interface HostUpdateArgs extends UpdateHostRequest {
16786
17234
  interface HostRetryUpdateArgs {
16787
17235
  hostId: string;
16788
17236
  }
17237
+ interface HostActionArgs {
17238
+ hostId: string;
17239
+ }
16789
17240
  interface HostDirectoryArgs extends HostDirectoryQuery {
16790
17241
  hostId: string;
16791
17242
  signal?: AbortSignal;
@@ -16806,6 +17257,14 @@ interface HostProviderCliInstallArgs extends HostProviderCliInstallRequest {
16806
17257
  hostId: string;
16807
17258
  }
16808
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 {
16809
17268
  signal?: AbortSignal;
16810
17269
  }
16811
17270
  type HostCreateJoinCodeResult = CreateHostJoinCodeResponse;
@@ -16813,7 +17272,10 @@ type HostDeleteResult = {
16813
17272
  ok: true;
16814
17273
  };
16815
17274
  type HostDirectoryResult = HostDirectoryListing;
16816
- type HostGetResult = Host;
17275
+ type HostGetResult = Host & {
17276
+ connectMachineId: string | null;
17277
+ };
17278
+ type HostEnrollmentCommandResult = HostEnrollmentCommandResponse;
16817
17279
  type HostCloneDefaultPathResult = HostCloneDefaultPathResponse;
16818
17280
  type HostProviderCliInstallResult = HostProviderCliInstallEvent[];
16819
17281
  type HostListResult = Host[];
@@ -16821,8 +17283,12 @@ type HostPathsExistResult = HostPathsExistResponse;
16821
17283
  type HostPickFolderResult = HostPickFolderResponse;
16822
17284
  type HostProviderCliStatusResult = HostProviderCliStatusResponse;
16823
17285
  type HostRetryUpdateResult = HostRetryUpdateResponse;
17286
+ type HostActionResult = HostActionResponse;
16824
17287
  type HostUpdateResult = Host;
17288
+ type MachineProviderListResult = SystemMachineProvider[];
16825
17289
  interface HostsArea {
17290
+ experimental_create(args: MachineCreateArgs): Promise<Host>;
17291
+ experimental_getEnrollmentCommand(args: HostGetArgs): Promise<HostEnrollmentCommandResult>;
16826
17292
  createJoinCode(): Promise<HostCreateJoinCodeResult>;
16827
17293
  delete(args: HostDeleteArgs): Promise<HostDeleteResult>;
16828
17294
  directory(args: HostDirectoryArgs): Promise<HostDirectoryResult>;
@@ -16830,10 +17296,14 @@ interface HostsArea {
16830
17296
  cloneDefaultPath(args: HostCloneDefaultPathArgs): Promise<HostCloneDefaultPathResult>;
16831
17297
  installProviderCli(args: HostProviderCliInstallArgs): Promise<HostProviderCliInstallResult>;
16832
17298
  list(args?: HostListArgs): Promise<HostListResult>;
17299
+ experimental_listProviders(args?: MachineProviderListArgs): Promise<MachineProviderListResult>;
16833
17300
  pathsExist(args: HostPathsExistArgs): Promise<HostPathsExistResult>;
16834
17301
  pickFolder(args: HostPickFolderArgs): Promise<HostPickFolderResult>;
16835
17302
  providerCliStatus(args: HostGetArgs): Promise<HostProviderCliStatusResult>;
17303
+ experimental_resume(args: HostActionArgs): Promise<Host>;
17304
+ experimental_retryCleanup(args: HostActionArgs): Promise<HostActionResult>;
16836
17305
  retryUpdate(args: HostRetryUpdateArgs): Promise<HostRetryUpdateResult>;
17306
+ experimental_suspend(args: HostActionArgs): Promise<Host>;
16837
17307
  update(args: HostUpdateArgs): Promise<HostUpdateResult>;
16838
17308
  }
16839
17309
 
@@ -17391,6 +17861,8 @@ interface SystemUiPreferencesArea {
17391
17861
  reset<Key extends UiPreferenceKey>(args: SystemResetUiPreferenceArgs<Key>): Promise<SystemUiPreferenceResult<Key>>;
17392
17862
  }
17393
17863
  interface SystemArea {
17864
+ machineEnvironment(): Promise<MachineEnvironmentList>;
17865
+ replaceMachineEnvironment(input: MachineEnvironmentReplace): Promise<MachineEnvironmentList>;
17394
17866
  attention(args?: SystemAttentionArgs): Promise<SystemAttentionResult>;
17395
17867
  config(args?: SystemConfigArgs): Promise<SystemConfigResult>;
17396
17868
  executionOptions(args?: SystemExecutionOptionsArgs): Promise<SystemExecutionOptionsResult>;
@@ -18220,6 +18692,15 @@ interface PluginTurnFailedEvent {
18220
18692
  * queued row GET /threads/:id/queued-messages serves.
18221
18693
  */
18222
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
+ };
18223
18704
  /** Fired after a thread row is created. */
18224
18705
  "thread.created": {
18225
18706
  thread: ThreadResponse;
@@ -18358,7 +18839,16 @@ interface PluginEnvironments {
18358
18839
  * Offer a place threads can run. Registering an id this plugin already
18359
18840
  * registered replaces it. Experimental: see docs/api_to_audit.md.
18360
18841
  */
18361
- 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;
18362
18852
  /**
18363
18853
  * Ask core to re-ask this plugin's waiting providers now instead of at their
18364
18854
  * `sendAt`. Resolves on scheduling, exactly like
@@ -18366,6 +18856,56 @@ interface PluginEnvironments {
18366
18856
  */
18367
18857
  recheck(): Promise<void>;
18368
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
+ }
18369
18909
  /**
18370
18910
  * Where a thread is going to run, as far as core knows at the checkpoint.
18371
18911
  * Before provisioning attaches an environment this is the start intent the
@@ -18382,6 +18922,10 @@ type PluginDispatchEnvironmentIntent = {
18382
18922
  machine: {
18383
18923
  type: "existing";
18384
18924
  hostId: string;
18925
+ } | {
18926
+ type: "new";
18927
+ machineProviderId: string;
18928
+ inputs: JsonValue | null;
18385
18929
  };
18386
18930
  inputs: JsonValue | null;
18387
18931
  };
@@ -19353,7 +19897,6 @@ interface ExperimentalPluginProviderEnvEntry {
19353
19897
  serverPath: string;
19354
19898
  };
19355
19899
  reason: string;
19356
- secret: boolean;
19357
19900
  }
19358
19901
  interface ExperimentalPluginProviderEnvHealthContext {
19359
19902
  hostId: string;
@@ -19578,6 +20121,9 @@ interface BbPluginApi {
19578
20121
  * docs/api_to_audit.md.
19579
20122
  */
19580
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;
19581
20127
  /** Plugin-reported status (needs-configuration). */
19582
20128
  readonly status: PluginStatusApi;
19583
20129
  /** Read-only facts about the running server (loopback base URL). */
@@ -19607,4 +20153,4 @@ interface BbPluginApi {
19607
20153
  }
19608
20154
 
19609
20155
  export { PLUGIN_CLI_OUTPUT_MAX_BYTES, defineRpcContract, experimental_defineHostEntry };
19610
- 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 };