@get-bb/plugin-sdk 0.4.88 → 0.4.94

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.
@@ -55,6 +55,7 @@ declare const appSettingsSchema: z$1.ZodObject<{
55
55
  showKeyboardHints: z$1.ZodBoolean;
56
56
  steerActiveThreadOnEnter: z$1.ZodBoolean;
57
57
  streamerMode: z$1.ZodBoolean;
58
+ telemetryEnabled: z$1.ZodBoolean;
58
59
  }, z$1.core.$strict>;
59
60
  type AppSettings = z$1.infer<typeof appSettingsSchema>;
60
61
  declare const appSettingsUpdateSchema: z$1.ZodUnion<readonly [z$1.ZodObject<{
@@ -69,6 +70,7 @@ declare const appSettingsUpdateSchema: z$1.ZodUnion<readonly [z$1.ZodObject<{
69
70
  showUnhandledProviderEvents: z$1.ZodOptional<z$1.ZodBoolean>;
70
71
  steerActiveThreadOnEnter: z$1.ZodBoolean;
71
72
  streamerMode: z$1.ZodBoolean;
73
+ telemetryEnabled: z$1.ZodOptional<z$1.ZodBoolean>;
72
74
  }, z$1.core.$strict>, z$1.ZodObject<{
73
75
  defaultMachineAccess: z$1.ZodNullable<z$1.ZodString>;
74
76
  defaultProviderId: z$1.ZodNullable<z$1.ZodString>;
@@ -80,6 +82,7 @@ declare const appSettingsUpdateSchema: z$1.ZodUnion<readonly [z$1.ZodObject<{
80
82
  showUnhandledProviderEvents: z$1.ZodBoolean;
81
83
  steerActiveThreadOnEnter: z$1.ZodBoolean;
82
84
  streamerMode: z$1.ZodBoolean;
85
+ telemetryEnabled: z$1.ZodOptional<z$1.ZodBoolean>;
83
86
  }, z$1.core.$strict>]>;
84
87
  type AppSettingsUpdate = z$1.infer<typeof appSettingsUpdateSchema>;
85
88
 
@@ -136,7 +139,7 @@ type UiPreferenceEntries = {
136
139
  };
137
140
 
138
141
  declare const appKeybindingOverridesSchema: z$1.ZodArray<z$1.ZodObject<{
139
- command: z$1.ZodEnum<{
142
+ command: z$1.ZodUnion<readonly [z$1.ZodEnum<{
140
143
  "app.back": "app.back";
141
144
  "browser.find": "browser.find";
142
145
  "browser.focusLocation": "browser.focusLocation";
@@ -200,7 +203,7 @@ declare const appKeybindingOverridesSchema: z$1.ZodArray<z$1.ZodObject<{
200
203
  "thread.search": "thread.search";
201
204
  "window.new": "window.new";
202
205
  "workspace.openPreferred": "workspace.openPreferred";
203
- }>;
206
+ }>, z$1.ZodTemplateLiteral<`plugin:${string}/${string}`>]>;
204
207
  shortcut: z$1.ZodNullable<z$1.ZodObject<{
205
208
  alt: z$1.ZodBoolean;
206
209
  control: z$1.ZodBoolean;
@@ -446,6 +449,7 @@ type Environment = z$1.infer<typeof environmentSchema>;
446
449
  declare const experimentsSchema: z$1.ZodRecord<z$1.ZodEnum<{
447
450
  changelogPreview: "changelogPreview";
448
451
  mobileApp: "mobileApp";
452
+ multiMachinePicker: "multiMachinePicker";
449
453
  sidebarProgressiveDisclosure: "sidebarProgressiveDisclosure";
450
454
  timelineWindowing: "timelineWindowing";
451
455
  }>, z$1.ZodBoolean>;
@@ -2549,6 +2553,8 @@ declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readon
2549
2553
  threadId: z$1.ZodString;
2550
2554
  tokenUsage: z$1.ZodObject<{
2551
2555
  last: z$1.ZodObject<{
2556
+ cacheReadInputTokens: z$1.ZodOptional<z$1.ZodNumber>;
2557
+ cacheWriteInputTokens: z$1.ZodOptional<z$1.ZodNumber>;
2552
2558
  cachedInputTokens: z$1.ZodNumber;
2553
2559
  inputTokens: z$1.ZodNumber;
2554
2560
  outputTokens: z$1.ZodNumber;
@@ -2557,6 +2563,8 @@ declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readon
2557
2563
  }, z$1.core.$strip>;
2558
2564
  modelContextWindow: z$1.ZodNullable<z$1.ZodNumber>;
2559
2565
  total: z$1.ZodObject<{
2566
+ cacheReadInputTokens: z$1.ZodOptional<z$1.ZodNumber>;
2567
+ cacheWriteInputTokens: z$1.ZodOptional<z$1.ZodNumber>;
2560
2568
  cachedInputTokens: z$1.ZodNumber;
2561
2569
  inputTokens: z$1.ZodNumber;
2562
2570
  outputTokens: z$1.ZodNumber;
@@ -4204,6 +4212,8 @@ declare const threadQueuedMessageSchema: z$1.ZodObject<{
4204
4212
  kind: z$1.ZodLiteral<"time">;
4205
4213
  }, z$1.core.$strip>, z$1.ZodObject<{
4206
4214
  kind: z$1.ZodLiteral<"thread-busy">;
4215
+ }, z$1.core.$strip>, z$1.ZodObject<{
4216
+ kind: z$1.ZodLiteral<"stopping">;
4207
4217
  }, z$1.core.$strip>, z$1.ZodObject<{
4208
4218
  kind: z$1.ZodLiteral<"turn-starting">;
4209
4219
  }, z$1.core.$strip>, z$1.ZodObject<{
@@ -6690,6 +6700,13 @@ declare const hostDaemonCommandRegistry: {
6690
6700
  }, z$1.core.$strict>, z$1.ZodObject<{
6691
6701
  providerCheckpointId: z$1.ZodNullable<z$1.ZodString>;
6692
6702
  }, z$1.core.$strict>, "settled", false>;
6703
+ "thread.storage.delete": HostDaemonCommandDescriptor<"thread.storage.delete", z$1.ZodObject<{
6704
+ environmentId: z$1.ZodString;
6705
+ threadId: z$1.ZodString;
6706
+ type: z$1.ZodLiteral<"thread.storage.delete">;
6707
+ }, z$1.core.$strict>, z$1.ZodObject<{
6708
+ providerCheckpointId: z$1.ZodNullable<z$1.ZodString>;
6709
+ }, z$1.core.$strict>, "settled", false>;
6693
6710
  "thread.goal.clear": HostDaemonCommandDescriptor<"thread.goal.clear", z$1.ZodObject<{
6694
6711
  bridgeLaunch: z$1.ZodObject<{
6695
6712
  capabilities: z$1.ZodObject<{
@@ -9369,6 +9386,21 @@ declare const pluginMarketplaceRefreshResultSchema: z$1.ZodObject<{
9369
9386
  ok: z$1.ZodBoolean;
9370
9387
  }, z$1.core.$strip>;
9371
9388
  type PluginMarketplaceRefreshResult$1 = z$1.infer<typeof pluginMarketplaceRefreshResultSchema>;
9389
+ declare const pluginRpcDiscoveryQuerySchema: z$1.ZodObject<{
9390
+ method: z$1.ZodOptional<z$1.ZodString>;
9391
+ pluginId: z$1.ZodOptional<z$1.ZodString>;
9392
+ }, z$1.core.$strip>;
9393
+ type PluginRpcDiscoveryQuery = z$1.infer<typeof pluginRpcDiscoveryQuerySchema>;
9394
+ declare const publishedPluginRpcMethodSchema: z$1.ZodObject<{
9395
+ displayName: z$1.ZodString;
9396
+ inputSchema: z$1.ZodRecord<z$1.ZodString, z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>;
9397
+ method: z$1.ZodString;
9398
+ methodDescription: z$1.ZodNullable<z$1.ZodString>;
9399
+ outputSchema: z$1.ZodRecord<z$1.ZodString, z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>;
9400
+ pluginId: z$1.ZodString;
9401
+ registrationDescription: z$1.ZodNullable<z$1.ZodString>;
9402
+ }, z$1.core.$strip>;
9403
+ type PublishedPluginRpcMethod = z$1.infer<typeof publishedPluginRpcMethodSchema>;
9372
9404
 
9373
9405
  declare const machineEnvironmentReplaceSchema: z$1.ZodObject<{
9374
9406
  variables: z$1.ZodArray<z$1.ZodObject<{
@@ -9624,7 +9656,7 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
9624
9656
  customThemes: z$1.ZodArray<z$1.ZodString>;
9625
9657
  dataDir: z$1.ZodString;
9626
9658
  defaultKeybindings: z$1.ZodArray<z$1.ZodObject<{
9627
- command: z$1.ZodEnum<{
9659
+ command: z$1.ZodUnion<readonly [z$1.ZodEnum<{
9628
9660
  "app.back": "app.back";
9629
9661
  "browser.find": "browser.find";
9630
9662
  "browser.focusLocation": "browser.focusLocation";
@@ -9688,7 +9720,7 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
9688
9720
  "thread.search": "thread.search";
9689
9721
  "window.new": "window.new";
9690
9722
  "workspace.openPreferred": "workspace.openPreferred";
9691
- }>;
9723
+ }>, z$1.ZodTemplateLiteral<`plugin:${string}/${string}`>]>;
9692
9724
  desktopOnly: z$1.ZodBoolean;
9693
9725
  shortcut: z$1.ZodNullable<z$1.ZodObject<{
9694
9726
  alt: z$1.ZodBoolean;
@@ -9730,6 +9762,7 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
9730
9762
  experiments: z$1.ZodRecord<z$1.ZodEnum<{
9731
9763
  changelogPreview: "changelogPreview";
9732
9764
  mobileApp: "mobileApp";
9765
+ multiMachinePicker: "multiMachinePicker";
9733
9766
  sidebarProgressiveDisclosure: "sidebarProgressiveDisclosure";
9734
9767
  timelineWindowing: "timelineWindowing";
9735
9768
  }>, z$1.ZodBoolean>;
@@ -9749,10 +9782,11 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
9749
9782
  showUnhandledProviderEvents: z$1.ZodOptional<z$1.ZodBoolean>;
9750
9783
  steerActiveThreadOnEnter: z$1.ZodBoolean;
9751
9784
  streamerMode: z$1.ZodBoolean;
9785
+ telemetryEnabled: z$1.ZodBoolean;
9752
9786
  }, z$1.core.$strict>;
9753
9787
  hostDaemonPort: z$1.ZodNullable<z$1.ZodNumber>;
9754
9788
  keybindingOverrides: z$1.ZodArray<z$1.ZodObject<{
9755
- command: z$1.ZodEnum<{
9789
+ command: z$1.ZodUnion<readonly [z$1.ZodEnum<{
9756
9790
  "app.back": "app.back";
9757
9791
  "browser.find": "browser.find";
9758
9792
  "browser.focusLocation": "browser.focusLocation";
@@ -9816,7 +9850,7 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
9816
9850
  "thread.search": "thread.search";
9817
9851
  "window.new": "window.new";
9818
9852
  "workspace.openPreferred": "workspace.openPreferred";
9819
- }>;
9853
+ }>, z$1.ZodTemplateLiteral<`plugin:${string}/${string}`>]>;
9820
9854
  shortcut: z$1.ZodNullable<z$1.ZodObject<{
9821
9855
  alt: z$1.ZodBoolean;
9822
9856
  control: z$1.ZodBoolean;
@@ -9827,7 +9861,7 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
9827
9861
  }, z$1.core.$strict>>;
9828
9862
  }, z$1.core.$strict>>;
9829
9863
  keybindings: z$1.ZodArray<z$1.ZodObject<{
9830
- command: z$1.ZodEnum<{
9864
+ command: z$1.ZodUnion<readonly [z$1.ZodEnum<{
9831
9865
  "app.back": "app.back";
9832
9866
  "browser.find": "browser.find";
9833
9867
  "browser.focusLocation": "browser.focusLocation";
@@ -9891,7 +9925,7 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
9891
9925
  "thread.search": "thread.search";
9892
9926
  "window.new": "window.new";
9893
9927
  "workspace.openPreferred": "workspace.openPreferred";
9894
- }>;
9928
+ }>, z$1.ZodTemplateLiteral<`plugin:${string}/${string}`>]>;
9895
9929
  desktopOnly: z$1.ZodBoolean;
9896
9930
  shortcut: z$1.ZodObject<{
9897
9931
  alt: z$1.ZodBoolean;
@@ -11492,6 +11526,10 @@ declare const createThreadRequestSchema: z$1.ZodObject<{
11492
11526
  full: "full";
11493
11527
  }>, z$1.ZodLiteral<"workspace-write">]>, z$1.ZodTransform<"accept-edits" | "auto" | "full", "accept-edits" | "auto" | "full" | "workspace-write">>>;
11494
11528
  pluginMetadata: z$1.ZodOptional<z$1.ZodType<JsonObject, unknown, z$1.core.$ZodTypeInternals<JsonObject, unknown>>>;
11529
+ pluginSubmission: z$1.ZodOptional<z$1.ZodObject<{
11530
+ data: z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>;
11531
+ pluginId: z$1.ZodString;
11532
+ }, z$1.core.$strip>>;
11495
11533
  projectId: z$1.ZodString;
11496
11534
  providerId: z$1.ZodOptional<z$1.ZodString>;
11497
11535
  reasoningLevel: z$1.ZodOptional<z$1.ZodEnum<{
@@ -11868,6 +11906,10 @@ declare const sendMessageRequestSchema: z$1.ZodObject<{
11868
11906
  auto: "auto";
11869
11907
  full: "full";
11870
11908
  }>, z$1.ZodLiteral<"workspace-write">]>, z$1.ZodTransform<"accept-edits" | "auto" | "full", "accept-edits" | "auto" | "full" | "workspace-write">>>;
11909
+ pluginSubmission: z$1.ZodOptional<z$1.ZodObject<{
11910
+ data: z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>;
11911
+ pluginId: z$1.ZodString;
11912
+ }, z$1.core.$strip>>;
11871
11913
  reasoningLevel: z$1.ZodOptional<z$1.ZodEnum<{
11872
11914
  high: "high";
11873
11915
  low: "low";
@@ -12025,6 +12067,8 @@ declare const sendMessageResponseSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObjec
12025
12067
  kind: z$1.ZodLiteral<"time">;
12026
12068
  }, z$1.core.$strip>, z$1.ZodObject<{
12027
12069
  kind: z$1.ZodLiteral<"thread-busy">;
12070
+ }, z$1.core.$strip>, z$1.ZodObject<{
12071
+ kind: z$1.ZodLiteral<"stopping">;
12028
12072
  }, z$1.core.$strip>, z$1.ZodObject<{
12029
12073
  kind: z$1.ZodLiteral<"turn-starting">;
12030
12074
  }, z$1.core.$strip>, z$1.ZodObject<{
@@ -12196,6 +12240,8 @@ declare const retryTurnResponseSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<
12196
12240
  kind: z$1.ZodLiteral<"time">;
12197
12241
  }, z$1.core.$strip>, z$1.ZodObject<{
12198
12242
  kind: z$1.ZodLiteral<"thread-busy">;
12243
+ }, z$1.core.$strip>, z$1.ZodObject<{
12244
+ kind: z$1.ZodLiteral<"stopping">;
12199
12245
  }, z$1.core.$strip>, z$1.ZodObject<{
12200
12246
  kind: z$1.ZodLiteral<"turn-starting">;
12201
12247
  }, z$1.core.$strip>, z$1.ZodObject<{
@@ -12572,6 +12618,8 @@ declare const sendQueuedMessageResponseSchema: z$1.ZodDiscriminatedUnion<[z$1.Zo
12572
12618
  kind: z$1.ZodLiteral<"time">;
12573
12619
  }, z$1.core.$strip>, z$1.ZodObject<{
12574
12620
  kind: z$1.ZodLiteral<"thread-busy">;
12621
+ }, z$1.core.$strip>, z$1.ZodObject<{
12622
+ kind: z$1.ZodLiteral<"stopping">;
12575
12623
  }, z$1.core.$strip>, z$1.ZodObject<{
12576
12624
  kind: z$1.ZodLiteral<"turn-starting">;
12577
12625
  }, z$1.core.$strip>, z$1.ZodObject<{
@@ -13458,6 +13506,8 @@ declare const threadQueuedMessageListResponseSchema: z$1.ZodArray<z$1.ZodObject<
13458
13506
  kind: z$1.ZodLiteral<"time">;
13459
13507
  }, z$1.core.$strip>, z$1.ZodObject<{
13460
13508
  kind: z$1.ZodLiteral<"thread-busy">;
13509
+ }, z$1.core.$strip>, z$1.ZodObject<{
13510
+ kind: z$1.ZodLiteral<"stopping">;
13461
13511
  }, z$1.core.$strip>, z$1.ZodObject<{
13462
13512
  kind: z$1.ZodLiteral<"turn-starting">;
13463
13513
  }, z$1.core.$strip>, z$1.ZodObject<{
@@ -13966,6 +14016,7 @@ declare const threadTimelineResponseSchema: z$1.ZodObject<{
13966
14016
  anchorId: z$1.ZodString;
13967
14017
  anchorSeq: z$1.ZodNumber;
13968
14018
  }, z$1.core.$strict>>;
14019
+ olderRowsSourceSeqEnd: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodNumber>>;
13969
14020
  returnedSegmentCount: z$1.ZodNumber;
13970
14021
  segmentLimit: z$1.ZodNumber;
13971
14022
  }, z$1.core.$strict>;
@@ -14457,6 +14508,14 @@ interface StandardSchemaV1<Input = unknown, Output = Input> {
14457
14508
  readonly version: 1;
14458
14509
  readonly vendor: string;
14459
14510
  readonly validate: (value: unknown) => StandardSchemaV1Result<Output> | Promise<StandardSchemaV1Result<Output>>;
14511
+ readonly jsonSchema?: {
14512
+ readonly input: (options: {
14513
+ target: string;
14514
+ }) => Record<string, unknown>;
14515
+ readonly output: (options: {
14516
+ target: string;
14517
+ }) => Record<string, unknown>;
14518
+ };
14460
14519
  readonly types?: {
14461
14520
  readonly input: Input;
14462
14521
  readonly output: Output;
@@ -14478,6 +14537,7 @@ interface StandardSchemaV1Issue {
14478
14537
  type StandardSchemaV1InferInput<Schema extends StandardSchemaV1> = NonNullable<Schema["~standard"]["types"]>["input"];
14479
14538
  type StandardSchemaV1InferOutput<Schema extends StandardSchemaV1> = NonNullable<Schema["~standard"]["types"]>["output"];
14480
14539
  interface PluginRpcMethodContract<InputSchema extends StandardSchemaV1 = StandardSchemaV1, OutputSchema extends StandardSchemaV1 = StandardSchemaV1> {
14540
+ readonly experimental_description?: string;
14481
14541
  readonly input: InputSchema;
14482
14542
  readonly output: OutputSchema;
14483
14543
  }
@@ -14683,6 +14743,16 @@ interface PluginThreadHeaderActionProps {
14683
14743
  */
14684
14744
  isCompactViewport: boolean;
14685
14745
  }
14746
+ interface ExperimentalPluginBrowserToolbarActionProps {
14747
+ /** Thread that owns the Browser tab. */
14748
+ threadId: string;
14749
+ /** Browser tab currently rendering the action. */
14750
+ tabId: string;
14751
+ /** Current top-level URL shown in the address bar. */
14752
+ url: string;
14753
+ /** True when the Browser chrome needs compact controls. */
14754
+ isCompactViewport: boolean;
14755
+ }
14686
14756
  /**
14687
14757
  * Where a file being opened by a `fileOpener` lives. `path` semantics follow
14688
14758
  * the source: workspace paths are relative to the environment's worktree,
@@ -15406,6 +15476,14 @@ interface PluginThreadHeaderActionRegistration {
15406
15476
  title: string;
15407
15477
  component: ComponentType<PluginThreadHeaderActionProps>;
15408
15478
  }
15479
+ interface ExperimentalPluginBrowserToolbarActionRegistration {
15480
+ /** Unique within the plugin; letters, digits, `-`, `_`. */
15481
+ id: string;
15482
+ /** Accessible name for the host-wrapped control group. */
15483
+ title: string;
15484
+ /** Component rendered beside the Browser address bar. */
15485
+ component: ComponentType<ExperimentalPluginBrowserToolbarActionProps>;
15486
+ }
15409
15487
  /** One pane's place in the split layout, as fractions of the split area. */
15410
15488
  interface PluginSidebarSplitPane {
15411
15489
  paneId: string;
@@ -15618,8 +15696,8 @@ interface PluginMessageActionRegistration {
15618
15696
  */
15619
15697
  run(context: PluginMessageActionContext): void | Promise<void>;
15620
15698
  }
15621
- /** Context handed to a `commandPaletteAction`'s `isAvailable` and `run`. */
15622
- interface PluginCommandPaletteActionContext {
15699
+ /** Current context for palette and keyboard command invocations. */
15700
+ interface PluginCommandContext {
15623
15701
  /** The thread in view, or null on a surface without one. */
15624
15702
  threadId: string | null;
15625
15703
  projectId: string | null;
@@ -15635,27 +15713,49 @@ interface PluginCommandPaletteActionContext {
15635
15713
  */
15636
15714
  openPanel(options: PluginTargetedPanelActionOpenOptions): boolean;
15637
15715
  }
15716
+ /** A default keyboard shortcut. Omitted modifiers are false. */
15717
+ interface PluginCommandShortcut {
15718
+ key: string;
15719
+ /** Command on macOS, Control elsewhere. */
15720
+ mod?: boolean;
15721
+ meta?: boolean;
15722
+ control?: boolean;
15723
+ alt?: boolean;
15724
+ shift?: boolean;
15725
+ }
15638
15726
  /**
15639
- * A row in bb's quick palette (Mod+Shift+P), listed under the plugin's name
15727
+ * A command registered with `app.commands.register`, listed in bb's quick
15728
+ * palette (Mod+Shift+P) under the plugin's name
15640
15729
  * beside bb's own commands. Host-rendered: the plugin supplies a title and
15641
15730
  * `run`, and the host owns matching, ordering, and recency.
15642
15731
  */
15643
- interface PluginCommandPaletteActionRegistration {
15732
+ interface PluginCommandRegistration {
15733
+ /** Initial keyboard binding. Users can rebind every command, including ones without a default. Conflicting defaults remain unbound. */
15734
+ defaultShortcut?: PluginCommandShortcut;
15644
15735
  /** Unique within the plugin; letters, digits, `-`, `_`. */
15645
15736
  id: string;
15646
15737
  /** The row's label, e.g. "Linear: open issue for this thread". */
15647
15738
  title: string;
15648
15739
  /**
15649
15740
  * Hide the row when it cannot do anything — typically when it needs a thread
15650
- * and there is none. Called while the palette is open; keep it cheap and
15651
- * synchronous. Omitted means always listed.
15741
+ * and there is none. Called before palette listing and keyboard invocation;
15742
+ * keep it cheap and synchronous. Omitted means always listed.
15652
15743
  */
15653
- isAvailable?(context: PluginCommandPaletteActionContext): boolean;
15744
+ isAvailable?(context: PluginCommandContext): boolean;
15654
15745
  /**
15655
- * Runs after the palette closes and focus is restored. Errors (sync or
15656
- * async) are contained and logged; they never break the palette.
15746
+ * Runs on keyboard invocation, or after the palette closes and focus is
15747
+ * restored. Errors (sync or async) are contained and logged; they never break the palette.
15657
15748
  */
15658
- run(context: PluginCommandPaletteActionContext): void | Promise<void>;
15749
+ run(context: PluginCommandContext): void | Promise<void>;
15750
+ }
15751
+ /** @deprecated Use PluginCommandContext. */
15752
+ type PluginCommandPaletteActionContext = PluginCommandContext;
15753
+ /** @deprecated Use PluginCommandRegistration. */
15754
+ type PluginCommandPaletteActionRegistration = PluginCommandRegistration;
15755
+ /** Registers commands for bb's command palette. */
15756
+ interface PluginAppCommands {
15757
+ /** Register a command. IDs are unique within this plugin, including legacy slot registrations. */
15758
+ register(registration: PluginCommandRegistration): void;
15659
15759
  }
15660
15760
  /**
15661
15761
  * Supply an inline React mark for a provider. Agent, machine, and environment
@@ -15886,6 +15986,8 @@ interface PluginAppSlots {
15886
15986
  * docs/api_to_audit.md.
15887
15987
  */
15888
15988
  experimental_threadHeaderAction(registration: PluginThreadHeaderActionRegistration): void;
15989
+ /** Render a component beside each Browser tab's address bar. */
15990
+ experimental_browserToolbarAction(registration: ExperimentalPluginBrowserToolbarActionRegistration): void;
15889
15991
  fileOpener(registration: PluginFileOpenerRegistration): void;
15890
15992
  /**
15891
15993
  * Replace BB's source-code renderer (see
@@ -15902,10 +16004,10 @@ interface PluginAppSlots {
15902
16004
  messageDirective(registration: PluginMessageDirectiveRegistration): void;
15903
16005
  messageAction(registration: PluginMessageActionRegistration): void;
15904
16006
  /**
15905
- * Add a row to the quick palette (see
15906
- * {@link PluginCommandPaletteActionRegistration}).
16007
+ * @deprecated Use `app.commands.register` with the same registration.
16008
+ * Both entry points share the same command registry and ID namespace.
15907
16009
  */
15908
- commandPaletteAction(registration: PluginCommandPaletteActionRegistration): void;
16010
+ commandPaletteAction(registration: PluginCommandRegistration): void;
15909
16011
  /**
15910
16012
  * Draw one agent, environment, or machine provider's icon with an inline
15911
16013
  * React component instead of its masked logo asset (see
@@ -16037,6 +16139,7 @@ interface ExperimentalAppIcons {
16037
16139
  }
16038
16140
  interface PluginAppBuilder {
16039
16141
  experimental_icons: ExperimentalAppIcons;
16142
+ commands: PluginAppCommands;
16040
16143
  slots: PluginAppSlots;
16041
16144
  composer: PluginAppComposer;
16042
16145
  contentScripts: PluginAppContentScripts;
@@ -16243,7 +16346,7 @@ interface PluginComposerApi {
16243
16346
  focus(): void;
16244
16347
  /**
16245
16348
  * Submit this composer's draft through the composer's OWN submit pipeline,
16246
- * queued until `sendAt` instead of dispatched now.
16349
+ * optionally scheduling it or attaching plugin-owned dispatch data.
16247
16350
  *
16248
16351
  * This is a real submission, not a plugin-issued send: the host builds the
16249
16352
  * request exactly as pressing Enter would, so the draft's attachments and
@@ -16253,12 +16356,11 @@ interface PluginComposerApi {
16253
16356
  * tuple itself, which is why sending from the backend instead would silently
16254
16357
  * run the message with different settings than the ones in front of the user.
16255
16358
  *
16256
- * In a thread composer the message is queued as a row instead of being
16257
- * sent or queued for the next idle moment. In the new-thread composer the
16258
- * thread is created `pending` and its first message becomes the queued row.
16259
- * Either way the resulting row is core's: the queued card above the
16260
- * composer, the countdown, Send now and Delete all work with no further
16261
- * plugin involvement.
16359
+ * `sendAt` queues the submission until that time. `experimental_data` is
16360
+ * opaque JSON delivered to dispatch hooks together with the calling plugin's
16361
+ * id on this initial attempt. Hooks run before operational core waits. If a
16362
+ * hook queues the message, its existing plugin wait identifies the owner on
16363
+ * later attempts; core does not persist or interpret the opaque data.
16262
16364
  *
16263
16365
  * Resolves once the host has accepted the submission and cleared the draft.
16264
16366
  * Rejects when the composer refused to submit — a scope with no submit
@@ -16275,18 +16377,17 @@ interface PluginComposerApi {
16275
16377
  /**
16276
16378
  * What `experimental_submit` does differently from pressing Enter.
16277
16379
  *
16278
- * There is deliberately no zero-argument overload and no "submit now" arm: a
16279
- * plugin that wants a draft sent immediately is asking for the affordance the
16280
- * user already has, and handing plugins an unconditional "send this draft"
16281
- * button is a much larger surface than scheduling needs.
16380
+ * `experimental_data` is opaque JSON delivered to dispatch hooks. The runtime
16381
+ * associates it with the calling plugin automatically for the initial
16382
+ * dispatch attempt.
16282
16383
  */
16283
- interface ExperimentalComposerSubmitOptions {
16284
- /**
16285
- * Epoch ms the submission should dispatch at. Must be in the future; the
16286
- * host does not second-guess how far ahead it is.
16287
- */
16384
+ type ExperimentalComposerSubmitOptions = {
16288
16385
  sendAt: number;
16289
- }
16386
+ experimental_data?: JsonValue;
16387
+ } | {
16388
+ experimental_data: JsonValue;
16389
+ sendAt?: never;
16390
+ };
16290
16391
  /**
16291
16392
  * A consumer-supplied action on the messages of one `ThreadChat` instance,
16292
16393
  * rendered in the embedded timeline's per-message action bar alongside the
@@ -17653,6 +17754,7 @@ interface PluginCheckUpdatesArgs {
17653
17754
  signal?: AbortSignal;
17654
17755
  }
17655
17756
  interface PluginRpcArgs<TOutput> extends PluginIdArgs {
17757
+ signal?: AbortSignal;
17656
17758
  input?: JsonValue$1;
17657
17759
  method: string;
17658
17760
  outputSchema: z$1.ZodType<TOutput>;
@@ -17710,6 +17812,7 @@ interface PluginMarketplacesArea {
17710
17812
  remove(args: PluginMarketplaceRemoveArgs): Promise<PluginMarketplaceRemoveResult>;
17711
17813
  }
17712
17814
  interface PluginsArea {
17815
+ experimental_discoverRpc(args?: PluginRpcDiscoveryQuery): Promise<PublishedPluginRpcMethod[]>;
17713
17816
  applyUpdate(args: PluginIdArgs): Promise<PluginApplyUpdateResult>;
17714
17817
  callRpc<TOutput>(args: PluginRpcArgs<TOutput>): Promise<TOutput>;
17715
17818
  checkUpdates(args?: PluginCheckUpdatesArgs): Promise<PluginCheckUpdatesResult>;
@@ -18884,8 +18987,8 @@ interface PluginThreadEventPayloads {
18884
18987
  /**
18885
18988
  * Fired after a dispatch attempt is queued as a row — by a `message.dispatch`
18886
18989
  * hook's `wait` decision, by a `sendAt` in the future, or by a core wait (the
18887
- * thread is busy, its turn is still starting, provisioning, or awaiting an
18888
- * interaction).
18990
+ * thread is busy, its turn is still starting, provisioning, stopping, or
18991
+ * awaiting an interaction).
18889
18992
  *
18890
18993
  * Every listener sees every queued row, not just the ones it is holding: an
18891
18994
  * observer that only wants its own filters on
@@ -19191,6 +19294,16 @@ interface MessageDispatchHookContext {
19191
19294
  * double-count.
19192
19295
  */
19193
19296
  queuedMessage: ThreadQueuedMessage | null;
19297
+ /**
19298
+ * Opaque JSON supplied by a plugin through the composer's
19299
+ * `experimental_submit`, paired with that plugin's id. Null for ordinary
19300
+ * submissions and queued re-attempts. Core does not persist or interpret
19301
+ * the data.
19302
+ */
19303
+ experimental_submission: {
19304
+ pluginId: string;
19305
+ data: JsonValue;
19306
+ } | null;
19194
19307
  /** How the dispatch was requested; null for internal/core-driven sends. */
19195
19308
  origin: ThreadCreateOrigin | null;
19196
19309
  originPluginId: string | null;
@@ -19335,7 +19448,10 @@ interface PluginRpc {
19335
19448
  * serialization. The response is `{ ok: true, result }` or
19336
19449
  * `{ ok: false, error: { code, message, issues? } }`.
19337
19450
  */
19338
- register<Contract extends PluginRpcContract>(contract: Contract, handlers: PluginRpcHandlers<Contract>): void;
19451
+ register<Contract extends PluginRpcContract>(contract: Contract, handlers: PluginRpcHandlers<Contract>, options?: {
19452
+ experimental_discoverable?: boolean;
19453
+ experimental_description?: string;
19454
+ }): void;
19339
19455
  }
19340
19456
  interface PluginRealtime {
19341
19457
  /**
@@ -20068,6 +20184,16 @@ interface PluginMentionItem {
20068
20184
  subtitle?: string;
20069
20185
  icon?: string;
20070
20186
  }
20187
+ /** Agent-only image context resolved with a plugin mention. */
20188
+ type ExperimentalPluginMentionImage = {
20189
+ type: "image";
20190
+ url: string;
20191
+ context?: string;
20192
+ } | {
20193
+ type: "localImage";
20194
+ path: string;
20195
+ context?: string;
20196
+ };
20071
20197
  interface PluginMentionProviderRegistration {
20072
20198
  /** Unique within this plugin: [a-zA-Z0-9_-]+ (no ":" — the host composes
20073
20199
  * wire item ids as "<providerId>:<itemId>"). */
@@ -20094,8 +20220,10 @@ interface PluginMentionProviderRegistration {
20094
20220
  */
20095
20221
  resolve(itemId: string): {
20096
20222
  context: string;
20223
+ experimental_images?: readonly ExperimentalPluginMentionImage[];
20097
20224
  } | Promise<{
20098
20225
  context: string;
20226
+ experimental_images?: readonly ExperimentalPluginMentionImage[];
20099
20227
  }>;
20100
20228
  }
20101
20229
  interface PluginUi {
@@ -20320,4 +20448,4 @@ interface BbPluginApi {
20320
20448
  }
20321
20449
 
20322
20450
  export { PLUGIN_CLI_OUTPUT_MAX_BYTES, defineRpcContract, experimental_defineHostEntry };
20323
- 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 };
20451
+ 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, ExperimentalPluginBrowserToolbarActionProps, ExperimentalPluginBrowserToolbarActionRegistration, ExperimentalPluginFixedTabReference, ExperimentalPluginMentionImage, 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, PluginAppCommands, PluginAppComposer, PluginAppContentScripts, PluginAppDefinition, PluginAppSetup, PluginAppSlots, PluginBackground, PluginBbSdk, PluginCli, PluginCliCommandInfo, PluginCliContext, PluginCliExecutionResult, PluginCliOutputLimitError, PluginCliRegistration, PluginCliResult, PluginCodeThemeData, PluginCodeThemeState, PluginCodeThemeTokenRule, PluginCommandContext, PluginCommandPaletteActionContext, PluginCommandPaletteActionRegistration, PluginCommandRegistration, PluginCommandShortcut, 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 };