@get-bb/plugin-sdk 0.4.56 → 0.4.87

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,11 @@
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 * as zod_v4_core from 'zod/v4/core';
13
+ 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
14
  import Database from 'better-sqlite3';
14
15
  import { Context } from 'hono';
15
16
 
@@ -44,7 +45,10 @@ interface ProviderNativeRootsInputLike {
44
45
  }
45
46
 
46
47
  declare const appSettingsSchema: z$1.ZodObject<{
48
+ defaultMachineAccess: z$1.ZodNullable<z$1.ZodString>;
47
49
  defaultProviderId: z$1.ZodNullable<z$1.ZodString>;
50
+ machineGitCredentialsEnabled: z$1.ZodBoolean;
51
+ machineServerUrl: z$1.ZodNullable<z$1.ZodString>;
48
52
  managedBranchPrefix: z$1.ZodString;
49
53
  providerOrder: z$1.ZodArray<z$1.ZodString>;
50
54
  showDiagnosticEvents: z$1.ZodBoolean;
@@ -54,7 +58,10 @@ declare const appSettingsSchema: z$1.ZodObject<{
54
58
  }, z$1.core.$strict>;
55
59
  type AppSettings = z$1.infer<typeof appSettingsSchema>;
56
60
  declare const appSettingsUpdateSchema: z$1.ZodUnion<readonly [z$1.ZodObject<{
61
+ defaultMachineAccess: z$1.ZodNullable<z$1.ZodString>;
57
62
  defaultProviderId: z$1.ZodNullable<z$1.ZodString>;
63
+ machineGitCredentialsEnabled: z$1.ZodBoolean;
64
+ machineServerUrl: z$1.ZodNullable<z$1.ZodString>;
58
65
  managedBranchPrefix: z$1.ZodString;
59
66
  providerOrder: z$1.ZodArray<z$1.ZodString>;
60
67
  showDiagnosticEvents: z$1.ZodBoolean;
@@ -63,7 +70,10 @@ declare const appSettingsUpdateSchema: z$1.ZodUnion<readonly [z$1.ZodObject<{
63
70
  steerActiveThreadOnEnter: z$1.ZodBoolean;
64
71
  streamerMode: z$1.ZodBoolean;
65
72
  }, z$1.core.$strict>, z$1.ZodObject<{
73
+ defaultMachineAccess: z$1.ZodNullable<z$1.ZodString>;
66
74
  defaultProviderId: z$1.ZodNullable<z$1.ZodString>;
75
+ machineGitCredentialsEnabled: z$1.ZodBoolean;
76
+ machineServerUrl: z$1.ZodNullable<z$1.ZodString>;
67
77
  managedBranchPrefix: z$1.ZodString;
68
78
  providerOrder: z$1.ZodArray<z$1.ZodString>;
69
79
  showKeyboardHints: z$1.ZodBoolean;
@@ -73,7 +83,7 @@ declare const appSettingsUpdateSchema: z$1.ZodUnion<readonly [z$1.ZodObject<{
73
83
  }, z$1.core.$strict>]>;
74
84
  type AppSettingsUpdate = z$1.infer<typeof appSettingsUpdateSchema>;
75
85
 
76
- declare const UI_PREFERENCE_KEYS: readonly ["sidebar.organizationMode", "sidebar.chronologicalSort", "sidebar.sortDirection", "sidebar.sectionOrder", "sidebar.manualSectionOrder", "sidebar.machineSectionOrder", "sidebar.collapsedSections", "sidebar.collapsedProjects", "sidebar.collapsedThreads", "sidebar.collapsedEnvironments", "sidebar.collapsedThreadSections", "sidebar.collapsedMachines", "sidebar.pluginPanelOrder", "sidebar.visiblePluginPanels", "sidebar.navigationProvider", "sidebar.threadListProvider"];
86
+ declare const UI_PREFERENCE_KEYS: readonly ["sidebar.organizationMode", "sidebar.chronologicalSort", "sidebar.sortDirection", "sidebar.sectionOrder", "sidebar.manualSectionOrder", "sidebar.machineSectionOrder", "sidebar.collapsedSections", "sidebar.collapsedProjects", "sidebar.collapsedThreads", "sidebar.collapsedEnvironments", "sidebar.collapsedThreadSections", "sidebar.collapsedMachines", "sidebar.footerOrder", "sidebar.hiddenFooterItems", "sidebar.pluginPanelOrder", "sidebar.visiblePluginPanels", "sidebar.navigationProvider", "sidebar.threadListProvider"];
77
87
  type UiPreferenceKey = (typeof UI_PREFERENCE_KEYS)[number];
78
88
  interface UiPreferenceDefinition<Schema extends z$1.ZodTypeAny = z$1.ZodTypeAny> {
79
89
  schema: Schema;
@@ -109,6 +119,8 @@ declare const uiPreferenceDefinitions: {
109
119
  readonly "sidebar.collapsedEnvironments": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
110
120
  readonly "sidebar.collapsedThreadSections": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
111
121
  readonly "sidebar.collapsedMachines": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
122
+ readonly "sidebar.footerOrder": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
123
+ readonly "sidebar.hiddenFooterItems": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
112
124
  readonly "sidebar.pluginPanelOrder": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
113
125
  readonly "sidebar.visiblePluginPanels": UiPreferenceDefinition<z$1.ZodNullable<z$1.ZodArray<z$1.ZodString>>>;
114
126
  readonly "sidebar.navigationProvider": UiPreferenceDefinition<z$1.ZodString>;
@@ -378,10 +390,14 @@ declare const environmentSchema: z$1.ZodObject<{
378
390
  environmentProviderInstanceKey: z$1.ZodNullable<z$1.ZodString>;
379
391
  environmentProviderSelection: z$1.ZodNullable<z$1.ZodObject<{
380
392
  inputs: z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>;
381
- machine: z$1.ZodObject<{
393
+ machine: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
382
394
  hostId: z$1.ZodString;
383
395
  type: z$1.ZodLiteral<"existing">;
384
- }, z$1.core.$strip>;
396
+ }, z$1.core.$strip>, z$1.ZodObject<{
397
+ inputs: z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>;
398
+ machineProviderId: z$1.ZodString;
399
+ type: z$1.ZodLiteral<"new">;
400
+ }, z$1.core.$strip>], "type">;
385
401
  }, z$1.core.$strip>>;
386
402
  hostId: z$1.ZodString;
387
403
  id: z$1.ZodString;
@@ -460,6 +476,29 @@ declare const hostSchema: z$1.ZodObject<{
460
476
  id: z$1.ZodString;
461
477
  lastRejectedProtocolVersion: z$1.ZodNullable<z$1.ZodNumber>;
462
478
  lastSeenAt: z$1.ZodNullable<z$1.ZodNumber>;
479
+ lifecycle: z$1.ZodObject<{
480
+ message: z$1.ZodNullable<z$1.ZodString>;
481
+ pendingLog: z$1.ZodString;
482
+ phase: z$1.ZodEnum<{
483
+ active: "active";
484
+ creating: "creating";
485
+ destroyed: "destroyed";
486
+ removing: "removing";
487
+ resuming: "resuming";
488
+ suspended: "suspended";
489
+ suspending: "suspending";
490
+ }>;
491
+ suspendedAt: z$1.ZodNullable<z$1.ZodNumber>;
492
+ teardown: z$1.ZodNullable<z$1.ZodObject<{
493
+ attempt: z$1.ZodNumber;
494
+ status: z$1.ZodEnum<{
495
+ failed: "failed";
496
+ removed: "removed";
497
+ running: "running";
498
+ }>;
499
+ }, z$1.core.$strip>>;
500
+ }, z$1.core.$strip>;
501
+ machineProviderId: z$1.ZodNullable<z$1.ZodString>;
463
502
  maxPermissionMode: z$1.ZodEnum<{
464
503
  "accept-edits": "accept-edits";
465
504
  auto: "auto";
@@ -471,6 +510,7 @@ declare const hostSchema: z$1.ZodObject<{
471
510
  disconnected: "disconnected";
472
511
  }>;
473
512
  type: z$1.ZodEnum<{
513
+ ephemeral: "ephemeral";
474
514
  persistent: "persistent";
475
515
  }>;
476
516
  updatedAt: z$1.ZodNumber;
@@ -2528,6 +2568,32 @@ declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readon
2528
2568
  contextWindowUsage: z$1.ZodObject<{
2529
2569
  estimated: z$1.ZodBoolean;
2530
2570
  modelContextWindow: z$1.ZodNullable<z$1.ZodNumber>;
2571
+ snapshot: z$1.ZodOptional<z$1.ZodObject<{
2572
+ autoCompactAtTokens: z$1.ZodNullable<z$1.ZodNumber>;
2573
+ capturedAt: z$1.ZodISODateTime;
2574
+ categories: z$1.ZodArray<z$1.ZodObject<{
2575
+ entries: z$1.ZodArray<z$1.ZodObject<{
2576
+ id: z$1.ZodString;
2577
+ label: z$1.ZodString;
2578
+ tokens: z$1.ZodNumber;
2579
+ }, z$1.core.$strip>>;
2580
+ id: z$1.ZodString;
2581
+ kind: z$1.ZodEnum<{
2582
+ deferred: "deferred";
2583
+ free: "free";
2584
+ reserved: "reserved";
2585
+ used: "used";
2586
+ }>;
2587
+ label: z$1.ZodString;
2588
+ tokens: z$1.ZodNumber;
2589
+ }, z$1.core.$strip>>;
2590
+ contextWindowTokens: z$1.ZodNumber;
2591
+ estimated: z$1.ZodBoolean;
2592
+ model: z$1.ZodString;
2593
+ providerSessionId: z$1.ZodString;
2594
+ providerTurnId: z$1.ZodNullable<z$1.ZodString>;
2595
+ usedTokens: z$1.ZodNumber;
2596
+ }, z$1.core.$strip>>;
2531
2597
  usedTokens: z$1.ZodNullable<z$1.ZodNumber>;
2532
2598
  }, z$1.core.$strip>;
2533
2599
  providerThreadId: z$1.ZodString;
@@ -2628,6 +2694,11 @@ declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readon
2628
2694
  reason: z$1.ZodOptional<z$1.ZodString>;
2629
2695
  source: z$1.ZodUnion<readonly [z$1.ZodLiteral<"shell">, z$1.ZodObject<{
2630
2696
  plugin: z$1.ZodString;
2697
+ }, z$1.core.$strict>, z$1.ZodObject<{
2698
+ core: z$1.ZodEnum<{
2699
+ "machine-environment": "machine-environment";
2700
+ "machine-git": "machine-git";
2701
+ }>;
2631
2702
  }, z$1.core.$strict>]>;
2632
2703
  value: z$1.ZodUnion<readonly [z$1.ZodString, z$1.ZodObject<{
2633
2704
  masked: z$1.ZodLiteral<true>;
@@ -3660,6 +3731,8 @@ declare const pluginPendingInteractionSchema: z$1.ZodObject<{
3660
3731
  type PluginPendingInteraction = z$1.infer<typeof pluginPendingInteractionSchema>;
3661
3732
  type PendingInteraction = ProviderPendingInteraction | PluginPendingInteraction;
3662
3733
 
3734
+ declare const pluginMetadataSchema: z.ZodType<JsonObject, unknown, zod_v4_core.$ZodTypeInternals<JsonObject, unknown>>;
3735
+
3663
3736
  declare const projectSchema: z$1.ZodObject<{
3664
3737
  createdAt: z$1.ZodNumber;
3665
3738
  gitRemoteUrl: z$1.ZodNullable<z$1.ZodString>;
@@ -4147,6 +4220,41 @@ declare const threadQueuedMessageSchema: z$1.ZodObject<{
4147
4220
  }, z$1.core.$strip>;
4148
4221
  type ThreadQueuedMessage = z$1.infer<typeof threadQueuedMessageSchema>;
4149
4222
 
4223
+ declare const threadContextResponseSchema: z$1.ZodObject<{
4224
+ usage: z$1.ZodNullable<z$1.ZodObject<{
4225
+ estimated: z$1.ZodBoolean;
4226
+ modelContextWindow: z$1.ZodNumber;
4227
+ snapshot: z$1.ZodOptional<z$1.ZodObject<{
4228
+ autoCompactAtTokens: z$1.ZodNullable<z$1.ZodNumber>;
4229
+ capturedAt: z$1.ZodISODateTime;
4230
+ categories: z$1.ZodArray<z$1.ZodObject<{
4231
+ entries: z$1.ZodArray<z$1.ZodObject<{
4232
+ id: z$1.ZodString;
4233
+ label: z$1.ZodString;
4234
+ tokens: z$1.ZodNumber;
4235
+ }, z$1.core.$strip>>;
4236
+ id: z$1.ZodString;
4237
+ kind: z$1.ZodEnum<{
4238
+ deferred: "deferred";
4239
+ free: "free";
4240
+ reserved: "reserved";
4241
+ used: "used";
4242
+ }>;
4243
+ label: z$1.ZodString;
4244
+ tokens: z$1.ZodNumber;
4245
+ }, z$1.core.$strip>>;
4246
+ contextWindowTokens: z$1.ZodNumber;
4247
+ estimated: z$1.ZodBoolean;
4248
+ model: z$1.ZodString;
4249
+ providerSessionId: z$1.ZodString;
4250
+ providerTurnId: z$1.ZodNullable<z$1.ZodString>;
4251
+ usedTokens: z$1.ZodNumber;
4252
+ }, z$1.core.$strip>>;
4253
+ usedTokens: z$1.ZodNumber;
4254
+ }, z$1.core.$strip>>;
4255
+ }, z$1.core.$strip>;
4256
+ type ThreadContextResponse = z$1.infer<typeof threadContextResponseSchema>;
4257
+
4150
4258
  declare const createThreadEnvironmentArgsSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4151
4259
  environmentId: z$1.ZodString;
4152
4260
  type: z$1.ZodLiteral<"reuse">;
@@ -4179,10 +4287,14 @@ declare const createThreadEnvironmentArgsSchema: z$1.ZodDiscriminatedUnion<[z$1.
4179
4287
  }, z$1.core.$strip>, z$1.ZodObject<{
4180
4288
  environmentProviderId: z$1.ZodString;
4181
4289
  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<{
4290
+ machine: z$1.ZodOptional<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4183
4291
  hostId: z$1.ZodString;
4184
4292
  type: z$1.ZodLiteral<"existing">;
4185
- }, z$1.core.$strip>;
4293
+ }, z$1.core.$strip>, z$1.ZodObject<{
4294
+ inputs: z$1.ZodDefault<z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>>;
4295
+ machineProviderId: z$1.ZodString;
4296
+ type: z$1.ZodLiteral<"new">;
4297
+ }, z$1.core.$strip>], "type">>;
4186
4298
  type: z$1.ZodLiteral<"provider">;
4187
4299
  }, z$1.core.$strip>], "type">;
4188
4300
  type CreateThreadEnvironmentArgs = z$1.infer<typeof createThreadEnvironmentArgsSchema>;
@@ -5750,10 +5862,14 @@ declare const hostDaemonCommandRegistry: {
5750
5862
  contributedEnv: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
5751
5863
  name: z$1.ZodString;
5752
5864
  reason: z$1.ZodString;
5753
- secret: z$1.ZodBoolean;
5754
- source: z$1.ZodObject<{
5865
+ source: z$1.ZodUnion<readonly [z$1.ZodObject<{
5755
5866
  plugin: z$1.ZodString;
5756
- }, z$1.core.$strict>;
5867
+ }, z$1.core.$strict>, z$1.ZodObject<{
5868
+ core: z$1.ZodEnum<{
5869
+ "machine-environment": "machine-environment";
5870
+ "machine-git": "machine-git";
5871
+ }>;
5872
+ }, z$1.core.$strict>]>;
5757
5873
  value: z$1.ZodUnion<readonly [z$1.ZodString, z$1.ZodObject<{
5758
5874
  serverPath: z$1.ZodString;
5759
5875
  }, z$1.core.$strict>]>;
@@ -5906,10 +6022,14 @@ declare const hostDaemonCommandRegistry: {
5906
6022
  contributedEnv: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
5907
6023
  name: z$1.ZodString;
5908
6024
  reason: z$1.ZodString;
5909
- secret: z$1.ZodBoolean;
5910
- source: z$1.ZodObject<{
6025
+ source: z$1.ZodUnion<readonly [z$1.ZodObject<{
5911
6026
  plugin: z$1.ZodString;
5912
- }, z$1.core.$strict>;
6027
+ }, z$1.core.$strict>, z$1.ZodObject<{
6028
+ core: z$1.ZodEnum<{
6029
+ "machine-environment": "machine-environment";
6030
+ "machine-git": "machine-git";
6031
+ }>;
6032
+ }, z$1.core.$strict>]>;
5913
6033
  value: z$1.ZodUnion<readonly [z$1.ZodString, z$1.ZodObject<{
5914
6034
  serverPath: z$1.ZodString;
5915
6035
  }, z$1.core.$strict>]>;
@@ -6458,10 +6578,14 @@ declare const hostDaemonCommandRegistry: {
6458
6578
  contributedEnv: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
6459
6579
  name: z$1.ZodString;
6460
6580
  reason: z$1.ZodString;
6461
- secret: z$1.ZodBoolean;
6462
- source: z$1.ZodObject<{
6581
+ source: z$1.ZodUnion<readonly [z$1.ZodObject<{
6463
6582
  plugin: z$1.ZodString;
6464
- }, z$1.core.$strict>;
6583
+ }, z$1.core.$strict>, z$1.ZodObject<{
6584
+ core: z$1.ZodEnum<{
6585
+ "machine-environment": "machine-environment";
6586
+ "machine-git": "machine-git";
6587
+ }>;
6588
+ }, z$1.core.$strict>]>;
6465
6589
  value: z$1.ZodUnion<readonly [z$1.ZodString, z$1.ZodObject<{
6466
6590
  serverPath: z$1.ZodString;
6467
6591
  }, z$1.core.$strict>]>;
@@ -6663,10 +6787,14 @@ declare const hostDaemonCommandRegistry: {
6663
6787
  contributedEnv: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
6664
6788
  name: z$1.ZodString;
6665
6789
  reason: z$1.ZodString;
6666
- secret: z$1.ZodBoolean;
6667
- source: z$1.ZodObject<{
6790
+ source: z$1.ZodUnion<readonly [z$1.ZodObject<{
6668
6791
  plugin: z$1.ZodString;
6669
- }, z$1.core.$strict>;
6792
+ }, z$1.core.$strict>, z$1.ZodObject<{
6793
+ core: z$1.ZodEnum<{
6794
+ "machine-environment": "machine-environment";
6795
+ "machine-git": "machine-git";
6796
+ }>;
6797
+ }, z$1.core.$strict>]>;
6670
6798
  value: z$1.ZodUnion<readonly [z$1.ZodString, z$1.ZodObject<{
6671
6799
  serverPath: z$1.ZodString;
6672
6800
  }, z$1.core.$strict>]>;
@@ -6876,6 +7004,21 @@ declare const hostDaemonCommandRegistry: {
6876
7004
  type: z$1.ZodLiteral<"interactive.resolve">;
6877
7005
  }, z$1.core.$strict>, z$1.ZodObject<{}, z$1.core.$strip>, "settled", false>;
6878
7006
  "environment.attach": HostDaemonCommandDescriptor<"environment.attach", z$1.ZodObject<{
7007
+ contributedEnv: z$1.ZodArray<z$1.ZodObject<{
7008
+ name: z$1.ZodString;
7009
+ reason: z$1.ZodString;
7010
+ source: z$1.ZodUnion<readonly [z$1.ZodObject<{
7011
+ plugin: z$1.ZodString;
7012
+ }, z$1.core.$strict>, z$1.ZodObject<{
7013
+ core: z$1.ZodEnum<{
7014
+ "machine-environment": "machine-environment";
7015
+ "machine-git": "machine-git";
7016
+ }>;
7017
+ }, z$1.core.$strict>]>;
7018
+ value: z$1.ZodUnion<readonly [z$1.ZodString, z$1.ZodObject<{
7019
+ serverPath: z$1.ZodString;
7020
+ }, z$1.core.$strict>]>;
7021
+ }, z$1.core.$strict>>;
6879
7022
  environmentId: z$1.ZodString;
6880
7023
  initiator: z$1.ZodNullable<z$1.ZodObject<{
6881
7024
  provisioningId: z$1.ZodString;
@@ -6892,6 +7035,22 @@ declare const hostDaemonCommandRegistry: {
6892
7035
  path: z$1.ZodString;
6893
7036
  }, z$1.core.$strip>, "settled", false>;
6894
7037
  "project.clone": HostDaemonCommandDescriptor<"project.clone", z$1.ZodObject<{
7038
+ contributedEnv: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
7039
+ name: z$1.ZodString;
7040
+ reason: z$1.ZodString;
7041
+ source: z$1.ZodUnion<readonly [z$1.ZodObject<{
7042
+ plugin: z$1.ZodString;
7043
+ }, z$1.core.$strict>, z$1.ZodObject<{
7044
+ core: z$1.ZodEnum<{
7045
+ "machine-environment": "machine-environment";
7046
+ "machine-git": "machine-git";
7047
+ }>;
7048
+ }, z$1.core.$strict>]>;
7049
+ value: z$1.ZodUnion<readonly [z$1.ZodString, z$1.ZodObject<{
7050
+ serverPath: z$1.ZodString;
7051
+ }, z$1.core.$strict>]>;
7052
+ }, z$1.core.$strict>>>;
7053
+ operationId: z$1.ZodString;
6895
7054
  projectSlug: z$1.ZodString;
6896
7055
  remoteUrl: z$1.ZodString;
6897
7056
  targetPath: z$1.ZodOptional<z$1.ZodString>;
@@ -7046,13 +7205,28 @@ declare const hostDaemonCommandRegistry: {
7046
7205
  path: z$1.ZodNullable<z$1.ZodString>;
7047
7206
  }, z$1.core.$strip>, "onlineRpc", false>;
7048
7207
  "environment.hook.run": HostDaemonCommandDescriptor<"environment.hook.run", z$1.ZodObject<{
7208
+ contributedEnv: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
7209
+ name: z$1.ZodString;
7210
+ reason: z$1.ZodString;
7211
+ source: z$1.ZodUnion<readonly [z$1.ZodObject<{
7212
+ plugin: z$1.ZodString;
7213
+ }, z$1.core.$strict>, z$1.ZodObject<{
7214
+ core: z$1.ZodEnum<{
7215
+ "machine-environment": "machine-environment";
7216
+ "machine-git": "machine-git";
7217
+ }>;
7218
+ }, z$1.core.$strict>]>;
7219
+ value: z$1.ZodUnion<readonly [z$1.ZodString, z$1.ZodObject<{
7220
+ serverPath: z$1.ZodString;
7221
+ }, z$1.core.$strict>]>;
7222
+ }, z$1.core.$strict>>>;
7049
7223
  kind: z$1.ZodEnum<{
7050
7224
  setup: "setup";
7051
7225
  teardown: "teardown";
7052
7226
  }>;
7053
7227
  operationId: z$1.ZodString;
7054
7228
  path: z$1.ZodString;
7055
- resumeOnly: z$1.ZodBoolean;
7229
+ resumeOnly: z$1.ZodDefault<z$1.ZodBoolean>;
7056
7230
  timeoutMs: z$1.ZodNumber;
7057
7231
  type: z$1.ZodLiteral<"environment.hook.run">;
7058
7232
  }, z$1.core.$strict>, z$1.ZodObject<{}, z$1.core.$strip>, "onlineRpc", false>;
@@ -7071,6 +7245,21 @@ declare const hostDaemonCommandRegistry: {
7071
7245
  digest: z$1.ZodString;
7072
7246
  }, z$1.core.$strict>;
7073
7247
  callId: z$1.ZodString;
7248
+ contributedEnv: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
7249
+ name: z$1.ZodString;
7250
+ reason: z$1.ZodString;
7251
+ source: z$1.ZodUnion<readonly [z$1.ZodObject<{
7252
+ plugin: z$1.ZodString;
7253
+ }, z$1.core.$strict>, z$1.ZodObject<{
7254
+ core: z$1.ZodEnum<{
7255
+ "machine-environment": "machine-environment";
7256
+ "machine-git": "machine-git";
7257
+ }>;
7258
+ }, z$1.core.$strict>]>;
7259
+ value: z$1.ZodUnion<readonly [z$1.ZodString, z$1.ZodObject<{
7260
+ serverPath: z$1.ZodString;
7261
+ }, z$1.core.$strict>]>;
7262
+ }, z$1.core.$strict>>>;
7074
7263
  generation: z$1.ZodString;
7075
7264
  input: z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>;
7076
7265
  method: z$1.ZodString;
@@ -8514,6 +8703,17 @@ declare const hostCloneDefaultPathResponseSchema: z$1.ZodObject<{
8514
8703
  path: z$1.ZodString;
8515
8704
  }, z$1.core.$strict>;
8516
8705
  type HostCloneDefaultPathResponse = z$1.infer<typeof hostCloneDefaultPathResponseSchema>;
8706
+ declare const createMachineRequestSchema: z$1.ZodObject<{
8707
+ inputs: z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>;
8708
+ key: z$1.ZodOptional<z$1.ZodString>;
8709
+ machineProviderId: z$1.ZodString;
8710
+ }, z$1.core.$strict>;
8711
+ type CreateMachineRequest = z$1.infer<typeof createMachineRequestSchema>;
8712
+ declare const hostEnrollmentCommandResponseSchema: z$1.ZodNullable<z$1.ZodObject<{
8713
+ command: z$1.ZodString;
8714
+ expiresAt: z$1.ZodNumber;
8715
+ }, z$1.core.$strip>>;
8716
+ type HostEnrollmentCommandResponse = z$1.infer<typeof hostEnrollmentCommandResponseSchema>;
8517
8717
  declare const createHostJoinCodeResponseSchema: z$1.ZodObject<{
8518
8718
  expiresAt: z$1.ZodNumber;
8519
8719
  hostId: z$1.ZodString;
@@ -8524,6 +8724,10 @@ declare const updateHostRequestSchema: z$1.ZodObject<{
8524
8724
  name: z$1.ZodString;
8525
8725
  }, z$1.core.$strict>;
8526
8726
  type UpdateHostRequest = z$1.infer<typeof updateHostRequestSchema>;
8727
+ declare const hostActionResponseSchema: z$1.ZodObject<{
8728
+ ok: z$1.ZodLiteral<true>;
8729
+ }, z$1.core.$strict>;
8730
+ type HostActionResponse = z$1.infer<typeof hostActionResponseSchema>;
8527
8731
  declare const hostRetryUpdateResponseSchema: z$1.ZodObject<{
8528
8732
  ok: z$1.ZodLiteral<true>;
8529
8733
  }, z$1.core.$strict>;
@@ -9165,6 +9369,14 @@ declare const pluginMarketplaceRefreshResultSchema: z$1.ZodObject<{
9165
9369
  }, z$1.core.$strip>;
9166
9370
  type PluginMarketplaceRefreshResult$1 = z$1.infer<typeof pluginMarketplaceRefreshResultSchema>;
9167
9371
 
9372
+ declare const machineEnvironmentReplaceSchema: z$1.ZodObject<{
9373
+ variables: z$1.ZodArray<z$1.ZodObject<{
9374
+ name: z$1.ZodString;
9375
+ note: z$1.ZodDefault<z$1.ZodNullable<z$1.ZodString>>;
9376
+ value: z$1.ZodNullable<z$1.ZodString>;
9377
+ }, z$1.core.$strict>>;
9378
+ }, z$1.core.$strict>;
9379
+ type MachineEnvironmentReplace = z$1.infer<typeof machineEnvironmentReplaceSchema>;
9168
9380
  declare const systemExecutionOptionsResponseSchema: z$1.ZodObject<{
9169
9381
  modelLoadError: z$1.ZodNullable<z$1.ZodObject<{
9170
9382
  code: z$1.ZodEnum<{
@@ -9525,7 +9737,10 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
9525
9737
  timelineWindowEventBudget: z$1.ZodNumber;
9526
9738
  }, z$1.core.$strip>;
9527
9739
  generalSettings: z$1.ZodObject<{
9740
+ defaultMachineAccess: z$1.ZodNullable<z$1.ZodString>;
9528
9741
  defaultProviderId: z$1.ZodNullable<z$1.ZodString>;
9742
+ machineGitCredentialsEnabled: z$1.ZodBoolean;
9743
+ machineServerUrl: z$1.ZodNullable<z$1.ZodString>;
9529
9744
  managedBranchPrefix: z$1.ZodString;
9530
9745
  providerOrder: z$1.ZodArray<z$1.ZodString>;
9531
9746
  showDiagnosticEvents: z$1.ZodBoolean;
@@ -9728,6 +9943,30 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
9728
9943
  unknown: "unknown";
9729
9944
  wsl: "wsl";
9730
9945
  }>>;
9946
+ serverAccess: z$1.ZodObject<{
9947
+ defaultProviderId: z$1.ZodString;
9948
+ effectiveUrl: z$1.ZodNullable<z$1.ZodString>;
9949
+ providers: z$1.ZodArray<z$1.ZodObject<{
9950
+ availability: z$1.ZodNullable<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
9951
+ serverUrl: z$1.ZodOptional<z$1.ZodString>;
9952
+ status: z$1.ZodLiteral<"available">;
9953
+ }, z$1.core.$strip>, z$1.ZodObject<{
9954
+ message: z$1.ZodString;
9955
+ status: z$1.ZodLiteral<"setup-required">;
9956
+ }, z$1.core.$strip>, z$1.ZodObject<{
9957
+ message: z$1.ZodString;
9958
+ status: z$1.ZodLiteral<"unavailable">;
9959
+ }, z$1.core.$strip>], "status">>;
9960
+ description: z$1.ZodString;
9961
+ displayName: z$1.ZodString;
9962
+ id: z$1.ZodString;
9963
+ pluginId: z$1.ZodNullable<z$1.ZodString>;
9964
+ }, z$1.core.$strip>>;
9965
+ urlSource: z$1.ZodNullable<z$1.ZodEnum<{
9966
+ BB_EXTERNAL_URL: "BB_EXTERNAL_URL";
9967
+ setting: "setting";
9968
+ }>>;
9969
+ }, z$1.core.$strip>;
9731
9970
  serverUrl: z$1.ZodString;
9732
9971
  voiceTranscriptionEnabled: z$1.ZodBoolean;
9733
9972
  }, z$1.core.$strip>;
@@ -9825,11 +10064,14 @@ declare const systemEnvironmentProviderSchema: z$1.ZodObject<{
9825
10064
  message: z$1.ZodString;
9826
10065
  status: z$1.ZodLiteral<"unavailable">;
9827
10066
  }, z$1.core.$strip>], "status">>;
10067
+ description: z$1.ZodNullable<z$1.ZodString>;
9828
10068
  displayName: z$1.ZodString;
10069
+ environmentProviderId: z$1.ZodOptional<z$1.ZodString>;
9829
10070
  icon: z$1.ZodNullable<z$1.ZodString>;
9830
10071
  id: z$1.ZodString;
9831
10072
  inputs: z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>;
9832
10073
  logoUrl: z$1.ZodNullable<z$1.ZodString>;
10074
+ machineAcceptsEmptyInputs: z$1.ZodOptional<z$1.ZodBoolean>;
9833
10075
  machineAvailability: z$1.ZodRecord<z$1.ZodString, z$1.ZodNullable<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
9834
10076
  status: z$1.ZodLiteral<"available">;
9835
10077
  }, z$1.core.$strip>, z$1.ZodObject<{
@@ -9839,6 +10081,9 @@ declare const systemEnvironmentProviderSchema: z$1.ZodObject<{
9839
10081
  message: z$1.ZodString;
9840
10082
  status: z$1.ZodLiteral<"unavailable">;
9841
10083
  }, z$1.core.$strip>], "status">>>;
10084
+ machineInputs: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>>;
10085
+ machineProviderId: z$1.ZodNullable<z$1.ZodString>;
10086
+ machineProviderPluginId: z$1.ZodOptional<z$1.ZodString>;
9842
10087
  pluginId: z$1.ZodString;
9843
10088
  requires: z$1.ZodObject<{
9844
10089
  gitCheckout: z$1.ZodBoolean;
@@ -9848,6 +10093,18 @@ declare const systemEnvironmentProviderSchema: z$1.ZodObject<{
9848
10093
  }, z$1.core.$strip>;
9849
10094
  }, z$1.core.$strip>;
9850
10095
  type SystemEnvironmentProvider = z$1.infer<typeof systemEnvironmentProviderSchema>;
10096
+ declare const systemMachineProviderSchema: z$1.ZodObject<{
10097
+ acceptsEmptyInputs: z$1.ZodBoolean;
10098
+ description: z$1.ZodString;
10099
+ displayName: z$1.ZodString;
10100
+ icon: z$1.ZodString;
10101
+ id: z$1.ZodString;
10102
+ inputs: z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>;
10103
+ logoUrl: z$1.ZodNullable<z$1.ZodString>;
10104
+ pluginId: z$1.ZodString;
10105
+ supportsSuspend: z$1.ZodBoolean;
10106
+ }, z$1.core.$strip>;
10107
+ type SystemMachineProvider = z$1.infer<typeof systemMachineProviderSchema>;
9851
10108
 
9852
10109
  interface UiPreferencesResponse {
9853
10110
  preferences: UiPreferenceEntries;
@@ -11103,10 +11360,14 @@ declare const createThreadRequestSchema: z$1.ZodObject<{
11103
11360
  }, z$1.core.$strip>, z$1.ZodObject<{
11104
11361
  environmentProviderId: z$1.ZodString;
11105
11362
  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<{
11363
+ machine: z$1.ZodOptional<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
11107
11364
  hostId: z$1.ZodString;
11108
11365
  type: z$1.ZodLiteral<"existing">;
11109
- }, z$1.core.$strip>;
11366
+ }, z$1.core.$strip>, z$1.ZodObject<{
11367
+ inputs: z$1.ZodDefault<z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>>;
11368
+ machineProviderId: z$1.ZodString;
11369
+ type: z$1.ZodLiteral<"new">;
11370
+ }, z$1.core.$strip>], "type">>;
11110
11371
  type: z$1.ZodLiteral<"provider">;
11111
11372
  }, z$1.core.$strip>], "type">;
11112
11373
  executionInputSources: z$1.ZodOptional<z$1.ZodObject<{
@@ -11229,6 +11490,7 @@ declare const createThreadRequestSchema: z$1.ZodObject<{
11229
11490
  auto: "auto";
11230
11491
  full: "full";
11231
11492
  }>, z$1.ZodLiteral<"workspace-write">]>, z$1.ZodTransform<"accept-edits" | "auto" | "full", "accept-edits" | "auto" | "full" | "workspace-write">>>;
11493
+ pluginMetadata: z$1.ZodOptional<z$1.ZodType<JsonObject, unknown, z$1.core.$ZodTypeInternals<JsonObject, unknown>>>;
11232
11494
  projectId: z$1.ZodString;
11233
11495
  providerId: z$1.ZodOptional<z$1.ZodString>;
11234
11496
  reasoningLevel: z$1.ZodOptional<z$1.ZodEnum<{
@@ -11379,10 +11641,14 @@ declare const forkThreadRequestSchema: z$1.ZodObject<{
11379
11641
  }, z$1.core.$strip>, z$1.ZodObject<{
11380
11642
  environmentProviderId: z$1.ZodString;
11381
11643
  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<{
11644
+ machine: z$1.ZodOptional<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
11383
11645
  hostId: z$1.ZodString;
11384
11646
  type: z$1.ZodLiteral<"existing">;
11385
- }, z$1.core.$strip>;
11647
+ }, z$1.core.$strip>, z$1.ZodObject<{
11648
+ inputs: z$1.ZodDefault<z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>>;
11649
+ machineProviderId: z$1.ZodString;
11650
+ type: z$1.ZodLiteral<"new">;
11651
+ }, z$1.core.$strip>], "type">>;
11386
11652
  type: z$1.ZodLiteral<"provider">;
11387
11653
  }, z$1.core.$strip>], "type">>;
11388
11654
  input: z$1.ZodOptional<z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
@@ -11478,6 +11744,7 @@ declare const forkThreadRequestSchema: z$1.ZodObject<{
11478
11744
  auto: "auto";
11479
11745
  full: "full";
11480
11746
  }>, z$1.ZodLiteral<"workspace-write">]>, z$1.ZodTransform<"accept-edits" | "auto" | "full", "accept-edits" | "auto" | "full" | "workspace-write">>>;
11747
+ pluginMetadata: z$1.ZodOptional<z$1.ZodType<JsonObject, unknown, z$1.core.$ZodTypeInternals<JsonObject, unknown>>>;
11481
11748
  sourceSeqEnd: z$1.ZodOptional<z$1.ZodNumber>;
11482
11749
  sourceThreadId: z$1.ZodString;
11483
11750
  title: z$1.ZodOptional<z$1.ZodString>;
@@ -12650,6 +12917,7 @@ declare const threadGetQuerySchema: z$1.ZodObject<{
12650
12917
  include: z$1.ZodOptional<z$1.ZodString>;
12651
12918
  }, z$1.core.$strip>;
12652
12919
  type ThreadGetQuery = z$1.infer<typeof threadGetQuerySchema>;
12920
+ type ThreadPluginMetadataResponse = z$1.infer<typeof pluginMetadataSchema>;
12653
12921
  declare const threadWithIncludesResponseSchema: z$1.ZodObject<{
12654
12922
  activeBackgroundAgentCount: z$1.ZodNumber;
12655
12923
  archivedAt: z$1.ZodNullable<z$1.ZodNumber>;
@@ -12665,10 +12933,14 @@ declare const threadWithIncludesResponseSchema: z$1.ZodObject<{
12665
12933
  environmentProviderInstanceKey: z$1.ZodNullable<z$1.ZodString>;
12666
12934
  environmentProviderSelection: z$1.ZodNullable<z$1.ZodObject<{
12667
12935
  inputs: z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>;
12668
- machine: z$1.ZodObject<{
12936
+ machine: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
12669
12937
  hostId: z$1.ZodString;
12670
12938
  type: z$1.ZodLiteral<"existing">;
12671
- }, z$1.core.$strip>;
12939
+ }, z$1.core.$strip>, z$1.ZodObject<{
12940
+ inputs: z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>;
12941
+ machineProviderId: z$1.ZodString;
12942
+ type: z$1.ZodLiteral<"new">;
12943
+ }, z$1.core.$strip>], "type">;
12672
12944
  }, z$1.core.$strip>>;
12673
12945
  hostId: z$1.ZodString;
12674
12946
  id: z$1.ZodString;
@@ -12717,6 +12989,29 @@ declare const threadWithIncludesResponseSchema: z$1.ZodObject<{
12717
12989
  id: z$1.ZodString;
12718
12990
  lastRejectedProtocolVersion: z$1.ZodNullable<z$1.ZodNumber>;
12719
12991
  lastSeenAt: z$1.ZodNullable<z$1.ZodNumber>;
12992
+ lifecycle: z$1.ZodObject<{
12993
+ message: z$1.ZodNullable<z$1.ZodString>;
12994
+ pendingLog: z$1.ZodString;
12995
+ phase: z$1.ZodEnum<{
12996
+ active: "active";
12997
+ creating: "creating";
12998
+ destroyed: "destroyed";
12999
+ removing: "removing";
13000
+ resuming: "resuming";
13001
+ suspended: "suspended";
13002
+ suspending: "suspending";
13003
+ }>;
13004
+ suspendedAt: z$1.ZodNullable<z$1.ZodNumber>;
13005
+ teardown: z$1.ZodNullable<z$1.ZodObject<{
13006
+ attempt: z$1.ZodNumber;
13007
+ status: z$1.ZodEnum<{
13008
+ failed: "failed";
13009
+ removed: "removed";
13010
+ running: "running";
13011
+ }>;
13012
+ }, z$1.core.$strip>>;
13013
+ }, z$1.core.$strip>;
13014
+ machineProviderId: z$1.ZodNullable<z$1.ZodString>;
12720
13015
  maxPermissionMode: z$1.ZodEnum<{
12721
13016
  "accept-edits": "accept-edits";
12722
13017
  auto: "auto";
@@ -12728,6 +13023,7 @@ declare const threadWithIncludesResponseSchema: z$1.ZodObject<{
12728
13023
  disconnected: "disconnected";
12729
13024
  }>;
12730
13025
  type: z$1.ZodEnum<{
13026
+ ephemeral: "ephemeral";
12731
13027
  persistent: "persistent";
12732
13028
  }>;
12733
13029
  updatedAt: z$1.ZodNumber;
@@ -13580,6 +13876,32 @@ declare const threadTimelineResponseSchema: z$1.ZodObject<{
13580
13876
  contextWindowUsage: z$1.ZodOptional<z$1.ZodObject<{
13581
13877
  estimated: z$1.ZodBoolean;
13582
13878
  modelContextWindow: z$1.ZodNumber;
13879
+ snapshot: z$1.ZodOptional<z$1.ZodObject<{
13880
+ autoCompactAtTokens: z$1.ZodNullable<z$1.ZodNumber>;
13881
+ capturedAt: z$1.ZodISODateTime;
13882
+ categories: z$1.ZodArray<z$1.ZodObject<{
13883
+ entries: z$1.ZodArray<z$1.ZodObject<{
13884
+ id: z$1.ZodString;
13885
+ label: z$1.ZodString;
13886
+ tokens: z$1.ZodNumber;
13887
+ }, z$1.core.$strip>>;
13888
+ id: z$1.ZodString;
13889
+ kind: z$1.ZodEnum<{
13890
+ deferred: "deferred";
13891
+ free: "free";
13892
+ reserved: "reserved";
13893
+ used: "used";
13894
+ }>;
13895
+ label: z$1.ZodString;
13896
+ tokens: z$1.ZodNumber;
13897
+ }, z$1.core.$strip>>;
13898
+ contextWindowTokens: z$1.ZodNumber;
13899
+ estimated: z$1.ZodBoolean;
13900
+ model: z$1.ZodString;
13901
+ providerSessionId: z$1.ZodString;
13902
+ providerTurnId: z$1.ZodNullable<z$1.ZodString>;
13903
+ usedTokens: z$1.ZodNumber;
13904
+ }, z$1.core.$strip>>;
13583
13905
  usedTokens: z$1.ZodNumber;
13584
13906
  }, z$1.core.$strip>>;
13585
13907
  delta: z$1.ZodOptional<z$1.ZodObject<{
@@ -14072,6 +14394,25 @@ declare const updateThreadTabsRequestSchema: z$1.ZodObject<{
14072
14394
  }, z$1.core.$strict>;
14073
14395
  type UpdateThreadTabsRequest = z$1.infer<typeof updateThreadTabsRequestSchema>;
14074
14396
 
14397
+ declare const machineEnvironmentListSchema: z$1.ZodObject<{
14398
+ builtInGit: z$1.ZodObject<{
14399
+ status: z$1.ZodEnum<{
14400
+ "logged in": "logged in";
14401
+ "not logged in": "not logged in";
14402
+ disabled: "disabled";
14403
+ overridden: "overridden";
14404
+ }>;
14405
+ statusMessage: z$1.ZodString;
14406
+ }, z$1.core.$strip>;
14407
+ variables: z$1.ZodArray<z$1.ZodObject<{
14408
+ name: z$1.ZodString;
14409
+ note: z$1.ZodNullable<z$1.ZodString>;
14410
+ secret: z$1.ZodLiteral<true>;
14411
+ value: z$1.ZodNull;
14412
+ }, z$1.core.$strict>>;
14413
+ }, z$1.core.$strip>;
14414
+ type MachineEnvironmentList = z$1.infer<typeof machineEnvironmentListSchema>;
14415
+
14075
14416
  /**
14076
14417
  * A value that survives a JSON round trip without coercion or data loss.
14077
14418
  *
@@ -14081,6 +14422,14 @@ type UpdateThreadTabsRequest = z$1.infer<typeof updateThreadTabsRequestSchema>;
14081
14422
  type JsonValue = string | number | boolean | null | JsonValue[] | {
14082
14423
  [key: string]: JsonValue;
14083
14424
  };
14425
+ /**
14426
+ * A `JsonValue` that is read-only at every depth. BB uses it for JSON
14427
+ * snapshots it deep-freezes before handing them to a plugin, where any write
14428
+ * throws at runtime.
14429
+ */
14430
+ type ReadonlyJsonValue = string | number | boolean | null | readonly ReadonlyJsonValue[] | {
14431
+ readonly [key: string]: ReadonlyJsonValue;
14432
+ };
14084
14433
 
14085
14434
  /** A JSON-safe path segment reported by a Standard Schema validation issue. */
14086
14435
  type PluginRpcIssuePathSegment = string | number;
@@ -15308,20 +15657,21 @@ interface PluginCommandPaletteActionRegistration {
15308
15657
  run(context: PluginCommandPaletteActionContext): void | Promise<void>;
15309
15658
  }
15310
15659
  /**
15311
- * Supply the inline React mark bb draws for one agent provider.
15660
+ * Supply an inline React mark for a provider. Agent, machine, and environment
15661
+ * icon renderers select the mark by provider kind and id.
15662
+ * Only surfaces using the provider icon renderer consult this slot. Persistent
15663
+ * machine labels use a laptop glyph directly.
15312
15664
  *
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.
15665
+ * Provider logo assets use a currentColor mask. Inline components can also
15666
+ * render multiple colors and inherit the app's theme and sizing classes.
15318
15667
  *
15319
- * The host passes only `className` (sizing plus the provider's color class);
15668
+ * The host passes `className` for sizing; color inherits from its wrapper.
15320
15669
  * 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.
15670
+ * not fetch. One registration per provider kind and id per plugin; when two
15671
+ * plugins claim the same pair the host keeps the first by plugin id and warns.
15323
15672
  */
15324
15673
  interface PluginProviderIconRegistration {
15674
+ providerKind: "agent" | "environment" | "machine";
15325
15675
  /**
15326
15676
  * The provider this mark is for — the id bb knows the provider by (the
15327
15677
  * provider declaration's id, e.g. `codex` or `acp-cursor`), not the plugin
@@ -15429,10 +15779,13 @@ interface PluginTimelineRendererRegistration {
15429
15779
  interface PluginEnvironmentProviderInputsProps {
15430
15780
  /** Project selected in the composer; null in projectless compose. */
15431
15781
  projectId: string | null;
15432
- /**
15433
- * The enrolled machine the selection names; null before one is picked.
15434
- */
15435
- hostId: string | null;
15782
+ /** Whether setup uses an existing host or provisions a new host before create. */
15783
+ target: {
15784
+ kind: "existing-host";
15785
+ hostId: string;
15786
+ } | {
15787
+ kind: "new-host";
15788
+ };
15436
15789
  /**
15437
15790
  * The `inputs` value the selection will carry: null until `onChange`
15438
15791
  * supplies one.
@@ -15467,6 +15820,34 @@ interface PluginEnvironmentProviderInputsRegistration {
15467
15820
  environmentProviderId: string;
15468
15821
  component: ComponentType<PluginEnvironmentProviderInputsProps>;
15469
15822
  }
15823
+ /**
15824
+ * Props passed to an `experimental_machineProviderInputs` component. Machine
15825
+ * inputs are persisted and readable by every plugin, so they must contain only
15826
+ * non-secret configuration and references to credentials held in plugin
15827
+ * settings.
15828
+ */
15829
+ interface PluginMachineProviderInputsProps {
15830
+ /** The value persisted with the machine selection. */
15831
+ value: JsonValue | null;
15832
+ /** Replace the submitted value or block submission with a visible reason. */
15833
+ onChange(next: PluginMachineProviderInputsChange): void;
15834
+ }
15835
+ type PluginMachineProviderInputsChange = {
15836
+ status: "ready";
15837
+ value: JsonValue;
15838
+ } | {
15839
+ status: "blocked";
15840
+ reason: string;
15841
+ };
15842
+ /**
15843
+ * Supply the inputs control for one machine provider registered server-side
15844
+ * through `bb.experimental_machines.register`.
15845
+ */
15846
+ interface PluginMachineProviderInputsRegistration {
15847
+ /** The machine provider id this control supplies inputs for. */
15848
+ machineProviderId: string;
15849
+ component: ComponentType<PluginMachineProviderInputsProps>;
15850
+ }
15470
15851
  interface PluginAppSlots {
15471
15852
  homepageSection(registration: PluginHomepageSectionRegistration): void;
15472
15853
  settingsSection(registration: PluginSettingsSectionRegistration): void;
@@ -15525,8 +15906,8 @@ interface PluginAppSlots {
15525
15906
  */
15526
15907
  commandPaletteAction(registration: PluginCommandPaletteActionRegistration): void;
15527
15908
  /**
15528
- * Draw one agent or environment provider's icon with an inline
15529
- * React component instead of its `<img>`-rendered logo file (see
15909
+ * Draw one agent, environment, or machine provider's icon with an inline
15910
+ * React component instead of its masked logo asset (see
15530
15911
  * {@link PluginProviderIconRegistration}). Experimental: see
15531
15912
  * docs/api_to_audit.md.
15532
15913
  */
@@ -15545,6 +15926,12 @@ interface PluginAppSlots {
15545
15926
  * see docs/api_to_audit.md.
15546
15927
  */
15547
15928
  experimental_environmentProviderInputs(registration: PluginEnvironmentProviderInputsRegistration): void;
15929
+ /**
15930
+ * Supply the non-secret machine inputs control rendered by machine creation
15931
+ * surfaces (see {@link PluginMachineProviderInputsRegistration}).
15932
+ * Experimental: see docs/api_to_audit.md.
15933
+ */
15934
+ experimental_machineProviderInputs(registration: PluginMachineProviderInputsRegistration): void;
15548
15935
  }
15549
15936
  interface PluginAppComposer {
15550
15937
  customize(registration: ComposerCustomization): void;
@@ -15592,7 +15979,63 @@ interface PluginContentScriptRegistration {
15592
15979
  interface PluginAppContentScripts {
15593
15980
  register(registration: PluginContentScriptRegistration): void;
15594
15981
  }
15982
+ interface ExperimentalIconProps {
15983
+ name: string;
15984
+ /** Used when the requested name is missing; defaults to the host Zap icon. */
15985
+ fallback?: string;
15986
+ className?: string;
15987
+ style?: CSSProperties;
15988
+ "aria-hidden"?: boolean | "false" | "true";
15989
+ "aria-label"?: string;
15990
+ }
15991
+ /** Shared agent, machine, or environment artwork without fetching metadata. */
15992
+ interface ExperimentalProviderIconProps {
15993
+ /** Keeps same-id agent, machine, and environment providers distinct. */
15994
+ providerKind: PluginProviderIconRegistration["providerKind"];
15995
+ /**
15996
+ * Existing agent, machine, or environment provider record. Reads id, logoUrl, icon and
15997
+ * strings.iconTint; other fields are ignored. An id-only record is sufficient
15998
+ * when only frontend registrations and fallback are needed. Does not fetch.
15999
+ */
16000
+ provider: {
16001
+ id: string;
16002
+ logoUrl?: string | null;
16003
+ /** Agent providers use { glyph }; machine and environment providers use a string. */
16004
+ icon?: {
16005
+ glyph: string;
16006
+ } | string | null;
16007
+ strings?: {
16008
+ iconTint?: {
16009
+ light: string;
16010
+ dark: string;
16011
+ } | null;
16012
+ } | null;
16013
+ };
16014
+ /** Used when no artwork is available; defaults to Code. */
16015
+ fallback?: string;
16016
+ className?: string;
16017
+ "aria-hidden"?: boolean | "false" | "true";
16018
+ "aria-label"?: string;
16019
+ }
16020
+ interface ExperimentalIconRegistration {
16021
+ /** Shared app name. Namespacing is recommended, but not required. */
16022
+ name: string;
16023
+ /** Inline artwork. Honor className for sizing; use currentColor for tint. */
16024
+ component: ComponentType<{
16025
+ className?: string;
16026
+ }>;
16027
+ }
16028
+ interface ExperimentalAppIcons {
16029
+ /**
16030
+ * Add or override an app icon during setup. Returns nothing; the host
16031
+ * replaces registrations on reload and removes them on unload. Duplicate
16032
+ * names within a plugin reject setup. Between plugins, the first plugin id
16033
+ * in lexical order wins, independent of bundle load order.
16034
+ */
16035
+ register(registration: ExperimentalIconRegistration): void;
16036
+ }
15595
16037
  interface PluginAppBuilder {
16038
+ experimental_icons: ExperimentalAppIcons;
15596
16039
  slots: PluginAppSlots;
15597
16040
  composer: PluginAppComposer;
15598
16041
  contentScripts: PluginAppContentScripts;
@@ -16317,6 +16760,15 @@ interface BbNavigate {
16317
16760
  * shims the specifier to that object on `globalThis.__bbPluginRuntime`.
16318
16761
  */
16319
16762
  interface PluginSdkApp {
16763
+ experimental_Icon: ComponentType<ExperimentalIconProps>;
16764
+ /**
16765
+ * Render provider slot override, then its logo, then its glyph, then fallback.
16766
+ * Pass a record from agent, machine, or environment provider queries;
16767
+ * an id-only record resolves frontend registrations, without fetching metadata.
16768
+ * Updates on plugin load, reload and unload. Throwing or recursive overrides
16769
+ * fall back to declared artwork. Logo assets render as currentColor masks.
16770
+ */
16771
+ experimental_ProviderIcon: ComponentType<ExperimentalProviderIconProps>;
16320
16772
  definePluginApp(setup: PluginAppSetup): PluginAppDefinition;
16321
16773
  useRpc<Contract extends PluginRpcContract = PluginRpcContract>(): PluginRpcClient<Contract>;
16322
16774
  useRealtime(channel: string, handler: (payload: unknown) => void): void;
@@ -16460,6 +16912,80 @@ interface PluginSdkApp {
16460
16912
  useComposerView(): ComposerView;
16461
16913
  }
16462
16914
 
16915
+ type PluginMachineProviderResource = Exclude<JsonValue$2, null>;
16916
+ type PluginMachineProviderInputsSchema = StandardSchemaV1$1 | undefined;
16917
+ type InputsValue$1<S> = S extends StandardSchemaV1$1 ? StandardSchemaV1InferOutput$1<S> : null;
16918
+ interface PluginMachineProviderProgress {
16919
+ step(text: string): void;
16920
+ log(text: string): void;
16921
+ }
16922
+ type PluginMachineProviderAvailability = {
16923
+ status: "available";
16924
+ } | {
16925
+ status: "setup-required";
16926
+ message: string;
16927
+ } | {
16928
+ status: "unavailable";
16929
+ message: string;
16930
+ };
16931
+ type PluginMachineProviderValidateContext<S extends PluginMachineProviderInputsSchema = PluginMachineProviderInputsSchema> = {
16932
+ inputs: InputsValue$1<S>;
16933
+ };
16934
+ interface PluginMachineProviderLifecycleContext {
16935
+ checkpoint(resource: PluginMachineProviderResource): Promise<void>;
16936
+ report: PluginMachineProviderProgress;
16937
+ signal: AbortSignal;
16938
+ }
16939
+ type PluginMachineProviderCreateContext<S extends PluginMachineProviderInputsSchema = PluginMachineProviderInputsSchema> = PluginMachineProviderValidateContext<S> & PluginMachineProviderLifecycleContext & {
16940
+ key: string;
16941
+ attempt: number;
16942
+ };
16943
+ type PluginMachineProviderCreateResult = {
16944
+ status: "created";
16945
+ name: string;
16946
+ resource: PluginMachineProviderResource;
16947
+ } | {
16948
+ status: "failed";
16949
+ message: string;
16950
+ };
16951
+ type PluginMachineProviderResourceLifecycleContext = PluginMachineProviderLifecycleContext & {
16952
+ hostId: string;
16953
+ resource: PluginMachineProviderResource;
16954
+ };
16955
+ type PluginMachineProviderRemoveContext = Omit<PluginMachineProviderResourceLifecycleContext, "checkpoint">;
16956
+ interface PluginMachineProviderResourceResult {
16957
+ resource: PluginMachineProviderResource;
16958
+ }
16959
+ type PluginMachineProviderRemoveResult = {
16960
+ status: "removed";
16961
+ } | {
16962
+ status: "failed";
16963
+ message: string;
16964
+ };
16965
+ interface PluginMachineProviderDefinition<S extends PluginMachineProviderInputsSchema = PluginMachineProviderInputsSchema> {
16966
+ id: string;
16967
+ displayName: string;
16968
+ /** One line telling a user what choosing this provider gets them, shown wherever a machine is added. */
16969
+ description: string;
16970
+ /** Provider glyph, declared icon, or plugin-relative icon path. */
16971
+ icon: string;
16972
+ ephemeral?: boolean;
16973
+ /** Persisted and readable by every plugin. Store secret references, never secrets. */
16974
+ inputs?: S;
16975
+ availability?(): PluginMachineProviderAvailability | Promise<PluginMachineProviderAvailability>;
16976
+ validate?(context: PluginMachineProviderValidateContext<S>): PluginMachineValidateDecision$1 | Promise<PluginMachineValidateDecision$1>;
16977
+ create(context: PluginMachineProviderCreateContext<S>): Promise<PluginMachineProviderCreateResult>;
16978
+ /** Reconcile and remove an uncertain allocation by durable key without creating or bootstrapping. Return failed while allocation intent remains unresolved. */
16979
+ reconcileCleanup(context: {
16980
+ key: string;
16981
+ report: PluginMachineProviderProgress;
16982
+ signal: AbortSignal;
16983
+ }): Promise<PluginMachineProviderRemoveResult>;
16984
+ suspend?(context: PluginMachineProviderResourceLifecycleContext): Promise<PluginMachineProviderResourceResult>;
16985
+ resume?(context: PluginMachineProviderResourceLifecycleContext): Promise<PluginMachineProviderResourceResult>;
16986
+ remove(context: PluginMachineProviderRemoveContext): Promise<PluginMachineProviderRemoveResult>;
16987
+ }
16988
+
16463
16989
  type PluginEnvironmentProviderInputsSchema = StandardSchemaV1$1 | undefined;
16464
16990
  type Fact<R, K extends PropertyKey, T> = R extends Record<K, true> ? T : T | null;
16465
16991
  type Checkout<R> = R extends {
@@ -16468,8 +16994,10 @@ type Checkout<R> = R extends {
16468
16994
  gitCheckout: true;
16469
16995
  } ? {
16470
16996
  path: string;
16997
+ experimental_ownsPath: boolean;
16471
16998
  } : {
16472
16999
  path: string;
17000
+ experimental_ownsPath: boolean;
16473
17001
  } | null;
16474
17002
  type InputsValue<S> = S extends StandardSchemaV1$1 ? StandardSchemaV1InferOutput$1<S> : null;
16475
17003
  /** Attempt-scoped updates; core persists each update before this call returns. */
@@ -16553,8 +17081,10 @@ interface PluginEnvironmentProviderPolicy {
16553
17081
  interface PluginEnvironmentProviderDefinition<R extends PluginEnvironmentProviderRequirements$1 = PluginEnvironmentProviderRequirements$1, S extends PluginEnvironmentProviderInputsSchema = PluginEnvironmentProviderInputsSchema> {
16554
17082
  id: string;
16555
17083
  displayName: string;
17084
+ /** Short explanation shown in environment choices. */
17085
+ description: string;
16556
17086
  /** Host glyph, plugin-relative icon path, or this plugin’s declared namespaced icon. */
16557
- icon?: string;
17087
+ icon: string;
16558
17088
  requires?: R;
16559
17089
  inputs?: S;
16560
17090
  policy?: Partial<PluginEnvironmentProviderPolicy>;
@@ -16565,6 +17095,30 @@ interface PluginEnvironmentProviderDefinition<R extends PluginEnvironmentProvide
16565
17095
  remove(context: PluginEnvironmentProviderRemoveContext): Promise<PluginEnvironmentProviderRemoveResult>;
16566
17096
  }
16567
17097
 
17098
+ interface MachineExecutorRequest {
17099
+ command: string[];
17100
+ timeoutMs: number;
17101
+ signal: AbortSignal;
17102
+ stdin: string;
17103
+ onOutput: (chunk: string) => void;
17104
+ }
17105
+ interface MachineExecutor {
17106
+ exec(request: MachineExecutorRequest): Promise<{
17107
+ exitCode: number;
17108
+ }>;
17109
+ }
17110
+ interface MachineBootstrapRequest {
17111
+ key: string;
17112
+ executor: MachineExecutor;
17113
+ report: PluginMachineProviderProgress;
17114
+ signal: AbortSignal;
17115
+ }
17116
+ interface MachineBootstrapApi {
17117
+ bootstrap(request: MachineBootstrapRequest): Promise<{
17118
+ hostId: string;
17119
+ }>;
17120
+ }
17121
+
16568
17122
  interface ExperimentalDesktopBrowsersArea {
16569
17123
  listInstances(input: ExperimentalDesktopBrowserHostRequest): Promise<ExperimentalDesktopBrowserInstances>;
16570
17124
  listTabs(input: ExperimentalDesktopBrowserScope): Promise<ExperimentalDesktopBrowserTabs>;
@@ -16798,6 +17352,9 @@ interface HostUpdateArgs extends UpdateHostRequest {
16798
17352
  interface HostRetryUpdateArgs {
16799
17353
  hostId: string;
16800
17354
  }
17355
+ interface HostActionArgs {
17356
+ hostId: string;
17357
+ }
16801
17358
  interface HostDirectoryArgs extends HostDirectoryQuery {
16802
17359
  hostId: string;
16803
17360
  signal?: AbortSignal;
@@ -16818,6 +17375,14 @@ interface HostProviderCliInstallArgs extends HostProviderCliInstallRequest {
16818
17375
  hostId: string;
16819
17376
  }
16820
17377
  interface HostListArgs {
17378
+ includeCreating?: boolean;
17379
+ signal?: AbortSignal;
17380
+ }
17381
+ interface MachineCreateArgs extends CreateMachineRequest {
17382
+ wait?: boolean;
17383
+ signal?: AbortSignal;
17384
+ }
17385
+ interface MachineProviderListArgs {
16821
17386
  signal?: AbortSignal;
16822
17387
  }
16823
17388
  type HostCreateJoinCodeResult = CreateHostJoinCodeResponse;
@@ -16825,7 +17390,10 @@ type HostDeleteResult = {
16825
17390
  ok: true;
16826
17391
  };
16827
17392
  type HostDirectoryResult = HostDirectoryListing;
16828
- type HostGetResult = Host;
17393
+ type HostGetResult = Host & {
17394
+ connectMachineId: string | null;
17395
+ };
17396
+ type HostEnrollmentCommandResult = HostEnrollmentCommandResponse;
16829
17397
  type HostCloneDefaultPathResult = HostCloneDefaultPathResponse;
16830
17398
  type HostProviderCliInstallResult = HostProviderCliInstallEvent[];
16831
17399
  type HostListResult = Host[];
@@ -16833,8 +17401,12 @@ type HostPathsExistResult = HostPathsExistResponse;
16833
17401
  type HostPickFolderResult = HostPickFolderResponse;
16834
17402
  type HostProviderCliStatusResult = HostProviderCliStatusResponse;
16835
17403
  type HostRetryUpdateResult = HostRetryUpdateResponse;
17404
+ type HostActionResult = HostActionResponse;
16836
17405
  type HostUpdateResult = Host;
17406
+ type MachineProviderListResult = SystemMachineProvider[];
16837
17407
  interface HostsArea {
17408
+ experimental_create(args: MachineCreateArgs): Promise<Host>;
17409
+ experimental_getEnrollmentCommand(args: HostGetArgs): Promise<HostEnrollmentCommandResult>;
16838
17410
  createJoinCode(): Promise<HostCreateJoinCodeResult>;
16839
17411
  delete(args: HostDeleteArgs): Promise<HostDeleteResult>;
16840
17412
  directory(args: HostDirectoryArgs): Promise<HostDirectoryResult>;
@@ -16842,10 +17414,14 @@ interface HostsArea {
16842
17414
  cloneDefaultPath(args: HostCloneDefaultPathArgs): Promise<HostCloneDefaultPathResult>;
16843
17415
  installProviderCli(args: HostProviderCliInstallArgs): Promise<HostProviderCliInstallResult>;
16844
17416
  list(args?: HostListArgs): Promise<HostListResult>;
17417
+ experimental_listProviders(args?: MachineProviderListArgs): Promise<MachineProviderListResult>;
16845
17418
  pathsExist(args: HostPathsExistArgs): Promise<HostPathsExistResult>;
16846
17419
  pickFolder(args: HostPickFolderArgs): Promise<HostPickFolderResult>;
16847
17420
  providerCliStatus(args: HostGetArgs): Promise<HostProviderCliStatusResult>;
17421
+ experimental_resume(args: HostActionArgs): Promise<Host>;
17422
+ experimental_retryCleanup(args: HostActionArgs): Promise<HostActionResult>;
16848
17423
  retryUpdate(args: HostRetryUpdateArgs): Promise<HostRetryUpdateResult>;
17424
+ experimental_suspend(args: HostActionArgs): Promise<Host>;
16849
17425
  update(args: HostUpdateArgs): Promise<HostUpdateResult>;
16850
17426
  }
16851
17427
 
@@ -17403,6 +17979,8 @@ interface SystemUiPreferencesArea {
17403
17979
  reset<Key extends UiPreferenceKey>(args: SystemResetUiPreferenceArgs<Key>): Promise<SystemUiPreferenceResult<Key>>;
17404
17980
  }
17405
17981
  interface SystemArea {
17982
+ machineEnvironment(): Promise<MachineEnvironmentList>;
17983
+ replaceMachineEnvironment(input: MachineEnvironmentReplace): Promise<MachineEnvironmentList>;
17406
17984
  attention(args?: SystemAttentionArgs): Promise<SystemAttentionResult>;
17407
17985
  config(args?: SystemConfigArgs): Promise<SystemConfigResult>;
17408
17986
  executionOptions(args?: SystemExecutionOptionsArgs): Promise<SystemExecutionOptionsResult>;
@@ -17586,6 +18164,7 @@ interface ThreadOutputResponse {
17586
18164
  output: string | null;
17587
18165
  }
17588
18166
  type ThreadMutationResult = ThreadResponse;
18167
+ type ThreadPluginMetadataResult = ThreadPluginMetadataResponse;
17589
18168
  type ThreadSpawnResult = ThreadResponse;
17590
18169
  type ThreadForkResult = ThreadResponse;
17591
18170
  type ThreadInteractionGetResult = PendingInteraction;
@@ -17595,6 +18174,7 @@ type ThreadInteractionRespondResult = PendingInteraction;
17595
18174
  type ThreadInteractionCancelResult = PendingInteraction;
17596
18175
  type ThreadEventsListResult = ThreadEventRow[];
17597
18176
  type ThreadEventWaitResult = ThreadEventRow | null;
18177
+ type ThreadContextResult = ThreadContextResponse;
17598
18178
  type ThreadTimelineResult = ThreadTimelineResponse;
17599
18179
  type ThreadArchiveResult = ThreadArchiveAllResponse;
17600
18180
  type ThreadOpenResult = ThreadOpenResponse;
@@ -17659,6 +18239,18 @@ interface ThreadForkArgs extends Omit<ForkThreadRequest, "origin" | "visibility"
17659
18239
  interface ThreadUpdateArgs extends UpdateThreadRequest {
17660
18240
  threadId: string;
17661
18241
  }
18242
+ interface ThreadPluginMetadataArgs {
18243
+ pluginId: string;
18244
+ signal?: AbortSignal;
18245
+ threadId: string;
18246
+ }
18247
+ interface ThreadPluginMetadataUpdateArgs {
18248
+ threadId: string;
18249
+ pluginId: string;
18250
+ set?: JsonObject;
18251
+ remove?: string[];
18252
+ signal?: AbortSignal;
18253
+ }
17662
18254
  interface ThreadDeleteArgs extends DeleteThreadRequest {
17663
18255
  threadId: string;
17664
18256
  }
@@ -17685,6 +18277,7 @@ interface ThreadRetryArgs {
17685
18277
  reason?: string;
17686
18278
  }
17687
18279
  interface ThreadActionArgs {
18280
+ signal?: AbortSignal;
17688
18281
  threadId: string;
17689
18282
  }
17690
18283
  interface ThreadStatusArgs extends ThreadActionArgs {
@@ -17875,6 +18468,8 @@ interface ThreadsArea {
17875
18468
  events: ThreadEventsArea;
17876
18469
  fork(args: ThreadForkArgs): Promise<ThreadForkResult>;
17877
18470
  get(args: ThreadGetArgs): Promise<ThreadGetResult>;
18471
+ getPluginMetadata(args: ThreadPluginMetadataArgs): Promise<ThreadPluginMetadataResult>;
18472
+ updatePluginMetadata(args: ThreadPluginMetadataUpdateArgs): Promise<ThreadPluginMetadataResult>;
17878
18473
  queue: ThreadQueueArea;
17879
18474
  interactions: ThreadInteractionsArea;
17880
18475
  list(args?: ThreadListArgs): Promise<ThreadListResult>;
@@ -17902,6 +18497,7 @@ interface ThreadsArea {
17902
18497
  spawn(args: ThreadSpawnArgs): Promise<ThreadSpawnResult>;
17903
18498
  stop(args: ThreadActionArgs): Promise<ThreadStopResult>;
17904
18499
  tabs: ThreadTabsArea;
18500
+ context(args: ThreadStatusArgs): Promise<ThreadContextResult>;
17905
18501
  timeline(args: ThreadTimelineArgs): Promise<ThreadTimelineResult>;
17906
18502
  timelineTurnSummaryDetails(args: ThreadTimelineTurnSummaryDetailsArgs): Promise<ThreadTimelineTurnSummaryDetailsResult>;
17907
18503
  storageFiles(args: ThreadStorageFilesArgs): Promise<ThreadStorageFilesResult>;
@@ -18232,6 +18828,15 @@ interface PluginTurnFailedEvent {
18232
18828
  * queued row GET /threads/:id/queued-messages serves.
18233
18829
  */
18234
18830
  interface PluginThreadEventPayloads {
18831
+ /** Debounced per thread (at most once per second), with the latest sequence and current thread DTO. Reading history does not emit this event. */
18832
+ "experimental_thread.events": {
18833
+ thread: ThreadResponse;
18834
+ sequence: number;
18835
+ };
18836
+ /** Real accepted terminal input; excludes output, keepalives and input contents. */
18837
+ "experimental_terminal.input": {
18838
+ terminal: TerminalSession;
18839
+ };
18235
18840
  /** Fired after a thread row is created. */
18236
18841
  "thread.created": {
18237
18842
  thread: ThreadResponse;
@@ -18370,7 +18975,16 @@ interface PluginEnvironments {
18370
18975
  * Offer a place threads can run. Registering an id this plugin already
18371
18976
  * registered replaces it. Experimental: see docs/api_to_audit.md.
18372
18977
  */
18373
- register<const Requires extends PluginEnvironmentProviderRequirements, const Inputs extends PluginEnvironmentProviderInputsSchema = undefined>(declaration: PluginEnvironmentProviderDeclaration<Requires, Inputs>): void;
18978
+ register<const Requires extends PluginEnvironmentProviderRequirements, const Inputs extends PluginEnvironmentProviderInputsSchema = undefined>(declaration: PluginEnvironmentProviderDeclaration<Requires, Inputs> | {
18979
+ id: string;
18980
+ displayName: string;
18981
+ description: string;
18982
+ icon: string;
18983
+ machineProviderId: string;
18984
+ environmentProviderId: string;
18985
+ create?: never;
18986
+ remove?: never;
18987
+ }): void;
18374
18988
  /**
18375
18989
  * Ask core to re-ask this plugin's waiting providers now instead of at their
18376
18990
  * `sendAt`. Resolves on scheduling, exactly like
@@ -18378,6 +18992,56 @@ interface PluginEnvironments {
18378
18992
  */
18379
18993
  recheck(): Promise<void>;
18380
18994
  }
18995
+ type PluginMachineValidateDecision = {
18996
+ action: "accept";
18997
+ } | {
18998
+ action: "refuse";
18999
+ message: string;
19000
+ };
19001
+ type PluginMachineProviderDeclaration<Inputs extends PluginMachineProviderInputsSchema = PluginMachineProviderInputsSchema> = PluginMachineProviderDefinition<Inputs>;
19002
+ interface ServerAccessGrant {
19003
+ id: string;
19004
+ serverUrl: string;
19005
+ headers?: Record<string, string>;
19006
+ }
19007
+ interface ServerAccessProviderDeclaration {
19008
+ id: string;
19009
+ displayName: string;
19010
+ description: string;
19011
+ availability(): (PluginMachineProviderAvailability & {
19012
+ serverUrl?: string;
19013
+ }) | Promise<PluginMachineProviderAvailability & {
19014
+ serverUrl?: string;
19015
+ }>;
19016
+ acquire(context: {
19017
+ key: string;
19018
+ hostId: string;
19019
+ signal: AbortSignal;
19020
+ }): Promise<ServerAccessGrant | {
19021
+ status: "failed";
19022
+ message: string;
19023
+ }>;
19024
+ release(context: {
19025
+ key: string;
19026
+ hostId: string;
19027
+ /** Null when acquisition was interrupted before a grant was returned. Reconcile using key and hostId. */
19028
+ grantId: string | null;
19029
+ }): Promise<void>;
19030
+ }
19031
+ interface PluginServerAccess {
19032
+ register(declaration: ServerAccessProviderDeclaration): void;
19033
+ /**
19034
+ * Notify connected clients that server access configuration changed.
19035
+ * Call when access is gained or lost. Clients reload system configuration,
19036
+ * which re-checks availability for Machines settings and creation banners.
19037
+ */
19038
+ recheck(): void;
19039
+ }
19040
+ interface PluginMachines extends MachineBootstrapApi {
19041
+ /** Read core’s current persisted provider resource, or null when the host or resource is absent. Available across plugins; resources must not contain credentials. */
19042
+ getResource(hostId: string): Promise<JsonValue | null>;
19043
+ register<const Inputs extends PluginMachineProviderInputsSchema = undefined>(declaration: PluginMachineProviderDeclaration<Inputs>): void;
19044
+ }
18381
19045
  /**
18382
19046
  * Where a thread is going to run, as far as core knows at the checkpoint.
18383
19047
  * Before provisioning attaches an environment this is the start intent the
@@ -18394,6 +19058,10 @@ type PluginDispatchEnvironmentIntent = {
18394
19058
  machine: {
18395
19059
  type: "existing";
18396
19060
  hostId: string;
19061
+ } | {
19062
+ type: "new";
19063
+ machineProviderId: string;
19064
+ inputs: JsonValue | null;
18397
19065
  };
18398
19066
  inputs: JsonValue | null;
18399
19067
  };
@@ -18856,6 +19524,15 @@ interface PluginAgentToolRegistrationBase {
18856
19524
  }
18857
19525
  /** Stable, plain-data context resolved by the server for one agent session. */
18858
19526
  interface PluginAgentConfigurationContext {
19527
+ /**
19528
+ * The thread's metadata stored under this plugin's id, or `{}` when absent,
19529
+ * as a deep-frozen snapshot for this configure call. Any API client, another
19530
+ * plugin, or the thread's own agent can write it; treat values as untrusted,
19531
+ * and quote or escape any value you put into returned instructions.
19532
+ */
19533
+ readonly pluginMetadata: {
19534
+ readonly [key: string]: ReadonlyJsonValue;
19535
+ };
18859
19536
  thread: {
18860
19537
  id: string;
18861
19538
  title: string | null;
@@ -19365,7 +20042,6 @@ interface ExperimentalPluginProviderEnvEntry {
19365
20042
  serverPath: string;
19366
20043
  };
19367
20044
  reason: string;
19368
- secret: boolean;
19369
20045
  }
19370
20046
  interface ExperimentalPluginProviderEnvHealthContext {
19371
20047
  hostId: string;
@@ -19542,6 +20218,25 @@ interface PluginStatusApi {
19542
20218
  */
19543
20219
  needsConfiguration(message: string): void;
19544
20220
  }
20221
+ /**
20222
+ * The BB SDK bound to one plugin (`bb.sdk`). `threads.getPluginMetadata` and
20223
+ * `threads.updatePluginMetadata` default `pluginId` to that plugin's id. An
20224
+ * explicit `pluginId` must be a plugin id (lowercase letters, digits, and
20225
+ * dashes) or the request fails with HTTP 400. A `pluginMetadata` seed or a
20226
+ * `set` that is over 256 KiB on its own rejects before any request is sent. A
20227
+ * patch whose merged namespace would exceed 256 KiB fails with HTTP 413 and
20228
+ * leaves the namespace unchanged.
20229
+ */
20230
+ type PluginBbSdk = Omit<BbSdk, "threads"> & {
20231
+ threads: Omit<BbSdk["threads"], "getPluginMetadata" | "updatePluginMetadata"> & {
20232
+ getPluginMetadata(args: Omit<ThreadPluginMetadataArgs, "pluginId"> & {
20233
+ pluginId?: string;
20234
+ }): Promise<ThreadPluginMetadataResult>;
20235
+ updatePluginMetadata(args: Omit<ThreadPluginMetadataUpdateArgs, "pluginId"> & {
20236
+ pluginId?: string;
20237
+ }): Promise<ThreadPluginMetadataResult>;
20238
+ };
20239
+ };
19545
20240
  /**
19546
20241
  * The API object handed to a plugin's factory (design §4). Implemented by
19547
20242
  * the BB server; this contract is what plugin `server.ts` files compile
@@ -19590,6 +20285,9 @@ interface BbPluginApi {
19590
20285
  * docs/api_to_audit.md.
19591
20286
  */
19592
20287
  readonly experimental_environments: PluginEnvironments;
20288
+ /** Machine providers provision execution machines. Experimental: see docs/api_to_audit.md. */
20289
+ readonly experimental_machines: PluginMachines;
20290
+ readonly experimental_serverAccess: PluginServerAccess;
19593
20291
  /** Plugin-reported status (needs-configuration). */
19594
20292
  readonly status: PluginStatusApi;
19595
20293
  /** Read-only facts about the running server (loopback base URL). */
@@ -19607,10 +20305,12 @@ interface BbPluginApi {
19607
20305
  * server binds it before loading plugins, so it is available from the
19608
20306
  * moment factories run there — but isolated harnesses may not, so prefer
19609
20307
  * using it from handlers, services, and timers for portability.
19610
- * `threads.spawn` defaults `origin` to "plugin" and `originPluginId` to
19611
- * this plugin's id so spawned threads are attributed automatically.
20308
+ * `threads.spawn` and `threads.fork` default `origin` to "plugin" and, for
20309
+ * that origin, `originPluginId` to this plugin's id unless you set them.
20310
+ * Seeding `pluginMetadata` always attributes the new thread to this plugin,
20311
+ * overriding an explicit `origin` or `originPluginId`.
19612
20312
  */
19613
- readonly sdk: BbSdk;
20313
+ readonly sdk: PluginBbSdk;
19614
20314
  /**
19615
20315
  * Register cleanup to run on reload/disable/shutdown. Hooks run LIFO.
19616
20316
  * The sanctioned place to clear timers and close connections.
@@ -19619,4 +20319,4 @@ interface BbPluginApi {
19619
20319
  }
19620
20320
 
19621
20321
  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 };
20322
+ 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, PluginBbSdk, 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, ReadonlyJsonValue, ServerAccessGrant, ServerAccessProviderDeclaration, SourceCodeLineRange, SourceCodeProps, StandardSchemaV1, StandardSchemaV1InferInput, StandardSchemaV1InferOutput, StandardSchemaV1Issue, StandardSchemaV1Result, ThreadChatMessageAction, ThreadChatMessageReference, ThreadChatProps, UrlLinkProps, UseBranchesArgs, UseCheckoutStateArgs };