@get-bb/plugin-sdk 0.5.16 → 0.5.23

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.
@@ -378,6 +378,7 @@ declare const changedMessageSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
378
378
  type: z$1.ZodLiteral<"changed">;
379
379
  }, z$1.core.$strict>, z$1.ZodObject<{
380
380
  changes: z$1.ZodReadonly<z$1.ZodArray<z$1.ZodEnum<{
381
+ "app-update-changed": "app-update-changed";
381
382
  "config-changed": "config-changed";
382
383
  "environment-availability-changed": "environment-availability-changed";
383
384
  "plugins-changed": "plugins-changed";
@@ -474,10 +475,8 @@ type Environment = z$1.infer<typeof environmentSchema>;
474
475
  declare const experimentsSchema: z$1.ZodRecord<z$1.ZodEnum<{
475
476
  changelogPreview: "changelogPreview";
476
477
  mobileApp: "mobileApp";
477
- multiMachinePicker: "multiMachinePicker";
478
478
  serverMove: "serverMove";
479
479
  sidebarProgressiveDisclosure: "sidebarProgressiveDisclosure";
480
- timelineWindowing: "timelineWindowing";
481
480
  }>, z$1.ZodBoolean>;
482
481
  type Experiments = z$1.infer<typeof experimentsSchema>;
483
482
 
@@ -9015,6 +9014,12 @@ declare const hostEnrollmentCommandResponseSchema: z$1.ZodNullable<z$1.ZodObject
9015
9014
  expiresAt: z$1.ZodNumber;
9016
9015
  }, z$1.core.$strip>>;
9017
9016
  type HostEnrollmentCommandResponse = z$1.infer<typeof hostEnrollmentCommandResponseSchema>;
9017
+ declare const hostReconnectResponseSchema: z$1.ZodObject<{
9018
+ command: z$1.ZodString;
9019
+ expiresAt: z$1.ZodNumber;
9020
+ hostId: z$1.ZodString;
9021
+ }, z$1.core.$strict>;
9022
+ type HostReconnectResponse = z$1.infer<typeof hostReconnectResponseSchema>;
9018
9023
  declare const createHostJoinCodeResponseSchema: z$1.ZodObject<{
9019
9024
  expiresAt: z$1.ZodNumber;
9020
9025
  hostId: z$1.ZodString;
@@ -9702,6 +9707,7 @@ declare const systemExecutionOptionsResponseSchema: z$1.ZodObject<{
9702
9707
  provider_unavailable: "provider_unavailable";
9703
9708
  timeout: "timeout";
9704
9709
  }>;
9710
+ detail: z$1.ZodNullable<z$1.ZodString>;
9705
9711
  providerId: z$1.ZodString;
9706
9712
  }, z$1.core.$strip>>;
9707
9713
  models: z$1.ZodArray<z$1.ZodObject<{
@@ -9908,21 +9914,93 @@ declare const systemProviderStatesResponseSchema: z$1.ZodObject<{
9908
9914
  }, z$1.core.$loose>>;
9909
9915
  }, z$1.core.$strip>;
9910
9916
  type SystemProviderStatesResponse = z$1.infer<typeof systemProviderStatesResponseSchema>;
9911
- declare const systemConfigResponseSchema: z$1.ZodObject<{
9912
- aiServices: z$1.ZodObject<{
9913
- inference: z$1.ZodString;
9914
- inferenceFallback: z$1.ZodString;
9915
- services: z$1.ZodArray<z$1.ZodObject<{
9916
- displayName: z$1.ZodString;
9917
- id: z$1.ZodString;
9918
- kinds: z$1.ZodArray<z$1.ZodEnum<{
9919
- inference: "inference";
9920
- voice: "voice";
9921
- }>>;
9917
+ declare const systemAiServicesResponseSchema: z$1.ZodObject<{
9918
+ selections: z$1.ZodObject<{
9919
+ "commit-message": z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
9920
+ mode: z$1.ZodLiteral<"automatic">;
9921
+ }, z$1.core.$strict>, z$1.ZodObject<{
9922
+ mode: z$1.ZodLiteral<"off">;
9923
+ }, z$1.core.$strict>, z$1.ZodObject<{
9924
+ mode: z$1.ZodLiteral<"service">;
9922
9925
  pluginId: z$1.ZodString;
9923
- }, z$1.core.$strip>>;
9924
- transcription: z$1.ZodString;
9925
- }, z$1.core.$strip>;
9926
+ serviceId: z$1.ZodString;
9927
+ }, z$1.core.$strict>], "mode">;
9928
+ "thread-title": z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
9929
+ mode: z$1.ZodLiteral<"automatic">;
9930
+ }, z$1.core.$strict>, z$1.ZodObject<{
9931
+ mode: z$1.ZodLiteral<"off">;
9932
+ }, z$1.core.$strict>, z$1.ZodObject<{
9933
+ mode: z$1.ZodLiteral<"service">;
9934
+ pluginId: z$1.ZodString;
9935
+ serviceId: z$1.ZodString;
9936
+ }, z$1.core.$strict>], "mode">;
9937
+ voice: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
9938
+ mode: z$1.ZodLiteral<"automatic">;
9939
+ }, z$1.core.$strict>, z$1.ZodObject<{
9940
+ mode: z$1.ZodLiteral<"off">;
9941
+ }, z$1.core.$strict>, z$1.ZodObject<{
9942
+ mode: z$1.ZodLiteral<"service">;
9943
+ pluginId: z$1.ZodString;
9944
+ serviceId: z$1.ZodString;
9945
+ }, z$1.core.$strict>], "mode">;
9946
+ }, z$1.core.$strict>;
9947
+ services: z$1.ZodArray<z$1.ZodObject<{
9948
+ automaticRank: z$1.ZodNullable<z$1.ZodNumber>;
9949
+ displayName: z$1.ZodString;
9950
+ id: z$1.ZodString;
9951
+ pluginId: z$1.ZodString;
9952
+ status: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
9953
+ ready: z$1.ZodLiteral<true>;
9954
+ }, z$1.core.$strict>, z$1.ZodObject<{
9955
+ message: z$1.ZodString;
9956
+ ready: z$1.ZodLiteral<false>;
9957
+ }, z$1.core.$strict>], "ready">;
9958
+ tasks: z$1.ZodArray<z$1.ZodEnum<{
9959
+ "commit-message": "commit-message";
9960
+ "thread-title": "thread-title";
9961
+ voice: "voice";
9962
+ }>>;
9963
+ }, z$1.core.$strip>>;
9964
+ }, z$1.core.$strip>;
9965
+ type SystemAiServicesResponse = z$1.infer<typeof systemAiServicesResponseSchema>;
9966
+ declare const setAiServiceSelectionRequestSchema: z$1.ZodObject<{
9967
+ selection: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
9968
+ mode: z$1.ZodLiteral<"automatic">;
9969
+ }, z$1.core.$strict>, z$1.ZodObject<{
9970
+ mode: z$1.ZodLiteral<"off">;
9971
+ }, z$1.core.$strict>, z$1.ZodObject<{
9972
+ mode: z$1.ZodLiteral<"service">;
9973
+ pluginId: z$1.ZodString;
9974
+ serviceId: z$1.ZodString;
9975
+ }, z$1.core.$strict>], "mode">;
9976
+ task: z$1.ZodEnum<{
9977
+ "commit-message": "commit-message";
9978
+ "thread-title": "thread-title";
9979
+ voice: "voice";
9980
+ }>;
9981
+ }, z$1.core.$strict>;
9982
+ type SetAiServiceSelectionRequest = z$1.infer<typeof setAiServiceSelectionRequestSchema>;
9983
+ declare const testAiServiceRequestSchema: z$1.ZodObject<{
9984
+ task: z$1.ZodEnum<{
9985
+ "commit-message": "commit-message";
9986
+ "thread-title": "thread-title";
9987
+ }>;
9988
+ }, z$1.core.$strict>;
9989
+ type TestAiServiceRequest = z$1.infer<typeof testAiServiceRequestSchema>;
9990
+ declare const testAiServiceResponseSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
9991
+ displayName: z$1.ZodString;
9992
+ durationMs: z$1.ZodNumber;
9993
+ ok: z$1.ZodLiteral<true>;
9994
+ pluginId: z$1.ZodString;
9995
+ serviceId: z$1.ZodString;
9996
+ text: z$1.ZodString;
9997
+ }, z$1.core.$strip>, z$1.ZodObject<{
9998
+ durationMs: z$1.ZodNumber;
9999
+ message: z$1.ZodString;
10000
+ ok: z$1.ZodLiteral<false>;
10001
+ }, z$1.core.$strip>], "ok">;
10002
+ type TestAiServiceResponse = z$1.infer<typeof testAiServiceResponseSchema>;
10003
+ declare const systemConfigResponseSchema: z$1.ZodObject<{
9926
10004
  appearance: z$1.ZodObject<{
9927
10005
  customCss: z$1.ZodNullable<z$1.ZodString>;
9928
10006
  faviconColor: z$1.ZodEnum<{
@@ -10061,10 +10139,8 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
10061
10139
  experiments: z$1.ZodRecord<z$1.ZodEnum<{
10062
10140
  changelogPreview: "changelogPreview";
10063
10141
  mobileApp: "mobileApp";
10064
- multiMachinePicker: "multiMachinePicker";
10065
10142
  serverMove: "serverMove";
10066
10143
  sidebarProgressiveDisclosure: "sidebarProgressiveDisclosure";
10067
- timelineWindowing: "timelineWindowing";
10068
10144
  }>, z$1.ZodBoolean>;
10069
10145
  featureFlags: z$1.ZodObject<{
10070
10146
  placeholder: z$1.ZodBoolean;
@@ -10372,6 +10448,94 @@ declare const systemVersionResponseSchema: z$1.ZodObject<{
10372
10448
  upgradeCommand: z$1.ZodString;
10373
10449
  }, z$1.core.$strip>;
10374
10450
  type SystemVersionResponse = z$1.infer<typeof systemVersionResponseSchema>;
10451
+ declare const systemAppUpdateStatusSchema: z$1.ZodObject<{
10452
+ activity: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
10453
+ phase: z$1.ZodLiteral<"idle">;
10454
+ }, z$1.core.$strip>, z$1.ZodObject<{
10455
+ output: z$1.ZodArray<z$1.ZodString>;
10456
+ phase: z$1.ZodLiteral<"preparing">;
10457
+ startedAt: z$1.ZodString;
10458
+ step: z$1.ZodString;
10459
+ targetVersion: z$1.ZodString;
10460
+ }, z$1.core.$strip>, z$1.ZodObject<{
10461
+ phase: z$1.ZodLiteral<"restarting">;
10462
+ startedAt: z$1.ZodString;
10463
+ targetVersion: z$1.ZodString;
10464
+ }, z$1.core.$strip>], "phase">;
10465
+ available: z$1.ZodNullable<z$1.ZodObject<{
10466
+ channel: z$1.ZodEnum<{
10467
+ latest: "latest";
10468
+ main: "main";
10469
+ nightly: "nightly";
10470
+ }>;
10471
+ commit: z$1.ZodNullable<z$1.ZodString>;
10472
+ commitCount: z$1.ZodNullable<z$1.ZodNumber>;
10473
+ subjects: z$1.ZodArray<z$1.ZodString>;
10474
+ version: z$1.ZodString;
10475
+ }, z$1.core.$strip>>;
10476
+ blocked: z$1.ZodNullable<z$1.ZodObject<{
10477
+ message: z$1.ZodString;
10478
+ reason: z$1.ZodEnum<{
10479
+ "detached-head": "detached-head";
10480
+ "fetch-failed": "fetch-failed";
10481
+ "not-on-main": "not-on-main";
10482
+ "uncommitted-changes": "uncommitted-changes";
10483
+ diverged: "diverged";
10484
+ }>;
10485
+ }, z$1.core.$strip>>;
10486
+ current: z$1.ZodObject<{
10487
+ commit: z$1.ZodNullable<z$1.ZodString>;
10488
+ version: z$1.ZodString;
10489
+ }, z$1.core.$strip>;
10490
+ lastResult: z$1.ZodNullable<z$1.ZodObject<{
10491
+ acknowledged: z$1.ZodBoolean;
10492
+ finishedAt: z$1.ZodString;
10493
+ from: z$1.ZodObject<{
10494
+ commit: z$1.ZodNullable<z$1.ZodString>;
10495
+ version: z$1.ZodString;
10496
+ }, z$1.core.$strip>;
10497
+ id: z$1.ZodString;
10498
+ logTail: z$1.ZodArray<z$1.ZodString>;
10499
+ message: z$1.ZodNullable<z$1.ZodString>;
10500
+ outcome: z$1.ZodEnum<{
10501
+ failed: "failed";
10502
+ updated: "updated";
10503
+ }>;
10504
+ phase: z$1.ZodNullable<z$1.ZodEnum<{
10505
+ install: "install";
10506
+ prepare: "prepare";
10507
+ startup: "startup";
10508
+ }>>;
10509
+ to: z$1.ZodObject<{
10510
+ commit: z$1.ZodNullable<z$1.ZodString>;
10511
+ version: z$1.ZodString;
10512
+ }, z$1.core.$strip>;
10513
+ }, z$1.core.$strip>>;
10514
+ runningThreadCount: z$1.ZodNumber;
10515
+ support: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
10516
+ kind: z$1.ZodLiteral<"supported">;
10517
+ mode: z$1.ZodEnum<{
10518
+ npm: "npm";
10519
+ source: "source";
10520
+ }>;
10521
+ }, z$1.core.$strip>, z$1.ZodObject<{
10522
+ kind: z$1.ZodLiteral<"unsupported">;
10523
+ reason: z$1.ZodEnum<{
10524
+ desktop: "desktop";
10525
+ development: "development";
10526
+ unmanaged: "unmanaged";
10527
+ }>;
10528
+ }, z$1.core.$strip>], "kind">;
10529
+ }, z$1.core.$strip>;
10530
+ type SystemAppUpdateStatus = z$1.infer<typeof systemAppUpdateStatusSchema>;
10531
+ declare const systemAppUpdateApplyRequestSchema: z$1.ZodObject<{
10532
+ confirmInterruptingThreads: z$1.ZodBoolean;
10533
+ }, z$1.core.$strip>;
10534
+ type SystemAppUpdateApplyRequest = z$1.infer<typeof systemAppUpdateApplyRequestSchema>;
10535
+ declare const systemAppUpdateAcknowledgeRequestSchema: z$1.ZodObject<{
10536
+ id: z$1.ZodString;
10537
+ }, z$1.core.$strip>;
10538
+ type SystemAppUpdateAcknowledgeRequest = z$1.infer<typeof systemAppUpdateAcknowledgeRequestSchema>;
10375
10539
  declare const systemConfigReloadResponseSchema: z$1.ZodObject<{
10376
10540
  ok: z$1.ZodLiteral<true>;
10377
10541
  }, z$1.core.$strip>;
@@ -15352,6 +15516,9 @@ interface HostRetryUpdateArgs {
15352
15516
  interface HostActionArgs {
15353
15517
  hostId: string;
15354
15518
  }
15519
+ interface HostReconnectArgs extends HostActionArgs {
15520
+ signal?: AbortSignal;
15521
+ }
15355
15522
  interface HostDirectoryArgs extends HostDirectoryQuery {
15356
15523
  hostId: string;
15357
15524
  signal?: AbortSignal;
@@ -15391,6 +15558,7 @@ type HostGetResult = Host & {
15391
15558
  connectMachineId: string | null;
15392
15559
  };
15393
15560
  type HostEnrollmentCommandResult = HostEnrollmentCommandResponse;
15561
+ type HostReconnectResult = HostReconnectResponse;
15394
15562
  type HostCloneDefaultPathResult = HostCloneDefaultPathResponse;
15395
15563
  type HostProviderCliInstallResult = HostProviderCliInstallEvent[];
15396
15564
  type HostListResult = Host[];
@@ -15404,6 +15572,7 @@ type MachineProviderListResult = SystemMachineProvider[];
15404
15572
  interface HostsArea {
15405
15573
  experimental_create(args: MachineCreateArgs): Promise<Host>;
15406
15574
  experimental_getEnrollmentCommand(args: HostGetArgs): Promise<HostEnrollmentCommandResult>;
15575
+ experimental_reconnect(args: HostReconnectArgs): Promise<HostReconnectResult>;
15407
15576
  /** @deprecated Use experimental_create() and experimental_getEnrollmentCommand() for bootstrap enrollment. */
15408
15577
  createJoinCode(): Promise<HostCreateJoinCodeResult>;
15409
15578
  delete(args: HostDeleteArgs): Promise<HostDeleteResult>;
@@ -15969,6 +16138,13 @@ interface SystemVersionArgs {
15969
16138
  force?: boolean;
15970
16139
  signal?: AbortSignal;
15971
16140
  }
16141
+ interface SystemAppUpdateArgs {
16142
+ force?: boolean;
16143
+ signal?: AbortSignal;
16144
+ }
16145
+ type SystemApplyAppUpdateArgs = SystemAppUpdateApplyRequest;
16146
+ type SystemAcknowledgeAppUpdateArgs = SystemAppUpdateAcknowledgeRequest;
16147
+ type SystemAppUpdateStatusResult = SystemAppUpdateStatus;
15972
16148
  interface SystemVoiceTranscriptionArgs {
15973
16149
  file: Blob;
15974
16150
  prompt?: string;
@@ -15976,6 +16152,13 @@ interface SystemVoiceTranscriptionArgs {
15976
16152
  }
15977
16153
  type SystemAttentionResult = SystemAttentionResponse;
15978
16154
  type SystemConfigResult = SystemConfigResponse;
16155
+ type SystemAiServicesResult = SystemAiServicesResponse;
16156
+ type SystemSetAiServiceSelectionArgs = SetAiServiceSelectionRequest;
16157
+ type SystemTestAiServiceArgs = TestAiServiceRequest;
16158
+ type SystemTestAiServiceResult = TestAiServiceResponse;
16159
+ interface SystemAiServicesArgs {
16160
+ signal?: AbortSignal;
16161
+ }
15979
16162
  type SystemExecutionOptionsResult = SystemExecutionOptionsResponse;
15980
16163
  type SystemReloadConfigResult = SystemConfigReloadResponse;
15981
16164
  type SystemInstallCliSkillsArgs = SystemInstallCliSkillsRequest;
@@ -16022,12 +16205,15 @@ interface SystemArea {
16022
16205
  }): Promise<MachineEnvironmentList>;
16023
16206
  machineEnvironment(): Promise<MachineEnvironmentList>;
16024
16207
  replaceMachineEnvironment(input: MachineEnvironmentReplace): Promise<MachineEnvironmentList>;
16208
+ aiServices(args?: SystemAiServicesArgs): Promise<SystemAiServicesResult>;
16025
16209
  attention(args?: SystemAttentionArgs): Promise<SystemAttentionResult>;
16026
16210
  config(args?: SystemConfigArgs): Promise<SystemConfigResult>;
16027
16211
  executionOptions(args?: SystemExecutionOptionsArgs): Promise<SystemExecutionOptionsResult>;
16028
16212
  cliSkillsStatus(args?: SystemCliSkillsStatusArgs): Promise<SystemCliSkillsStatusResult>;
16029
16213
  installCliSkills(args: SystemInstallCliSkillsArgs): Promise<SystemInstallCliSkillsResult>;
16030
16214
  reloadConfig(): Promise<SystemReloadConfigResult>;
16215
+ setAiServiceSelection(args: SystemSetAiServiceSelectionArgs): Promise<SystemAiServicesResult>;
16216
+ testAiService(args: SystemTestAiServiceArgs): Promise<SystemTestAiServiceResult>;
16031
16217
  transcribeVoice(args: SystemVoiceTranscriptionArgs): Promise<SystemVoiceTranscriptionResult>;
16032
16218
  uiPreferences: SystemUiPreferencesArea;
16033
16219
  updateExperiments(args: Experiments): Promise<SystemUpdateExperimentsResult>;
@@ -16036,6 +16222,9 @@ interface SystemArea {
16036
16222
  providerStates(args?: SystemProviderStatesArgs): Promise<SystemProviderStatesResult>;
16037
16223
  usageLimits(args?: SystemUsageLimitsArgs): Promise<SystemUsageLimitsResult>;
16038
16224
  version(args?: SystemVersionArgs): Promise<SystemVersionResult>;
16225
+ appUpdate(args?: SystemAppUpdateArgs): Promise<SystemAppUpdateStatusResult>;
16226
+ applyAppUpdate(args: SystemApplyAppUpdateArgs): Promise<SystemAppUpdateStatusResult>;
16227
+ acknowledgeAppUpdate(args: SystemAcknowledgeAppUpdateArgs): Promise<SystemAppUpdateStatusResult>;
16039
16228
  }
16040
16229
 
16041
16230
  interface TerminalThreadScope {
@@ -16758,6 +16947,30 @@ interface PluginPendingInteractionProps {
16758
16947
  submit(value: JsonValue): Promise<void>;
16759
16948
  cancel(): Promise<void>;
16760
16949
  }
16950
+ /** Display and accessibility metadata for a host-owned answer shortcut. */
16951
+ interface ExperimentalQuestionShortcut {
16952
+ label: string;
16953
+ ariaKeyshortcuts: string;
16954
+ }
16955
+ /**
16956
+ * The keyboard shortcuts bb binds while a pending interaction is open. The
16957
+ * host owns the bindings (users can remap them); a form shows them and decides
16958
+ * what choosing an option means.
16959
+ */
16960
+ interface ExperimentalQuestionFormHost {
16961
+ /**
16962
+ * Shortcut per zero-based option index, as a string (`"0"` is the first
16963
+ * option). Missing entries have no binding.
16964
+ */
16965
+ shortcuts: ReadonlyMap<string, ExperimentalQuestionShortcut>;
16966
+ /**
16967
+ * Receive the index of the option the person chose with a shortcut while
16968
+ * the thread's pane is focused. Return true when the index names an option
16969
+ * the form handled. The last registered handler wins; call the returned
16970
+ * function to unregister.
16971
+ */
16972
+ registerChoiceHandler(handler: (index: number) => boolean): () => void;
16973
+ }
16761
16974
  /**
16762
16975
  * Props for a `sidebarFooterAction` — host-rendered (no plugin component).
16763
16976
  * Deliberately empty; the registration's `run` carries the behavior.
@@ -17928,7 +18141,7 @@ interface PluginSidebarThreadActions {
17928
18141
  setRead(threadId: string, read: boolean): Promise<void>;
17929
18142
  /** Silent rename — no dialog. For inline editing in your own row. */
17930
18143
  rename(threadId: string, title: string): Promise<void>;
17931
- /** Opens bb's confirmation before archiving the thread and its children. */
18144
+ /** Archives immediately, or confirms first if child threads will also be archived. */
17932
18145
  archive(threadId: string): void;
17933
18146
  /**
17934
18147
  * Opens bb's delete confirmation, which counts child threads first. Deletion
@@ -19520,6 +19733,13 @@ interface PluginSdkApp {
19520
19733
  * docs/api_to_audit.md.
19521
19734
  */
19522
19735
  experimental_usePluginId(): string;
19736
+ /**
19737
+ * The answer shortcuts bb binds while a pending interaction is open. Inside
19738
+ * a `pendingInteraction` component the form shows each option's shortcut and
19739
+ * registers a handler that chooses the option; outside one, the map is empty
19740
+ * and handlers never run. Experimental: see docs/api_to_audit.md.
19741
+ */
19742
+ experimental_useQuestionFormHost(): ExperimentalQuestionFormHost;
19523
19743
  useBbNavigate(): BbNavigate;
19524
19744
  /** Select one of this plugin's eligible fixed tabs on the current surface. */
19525
19745
  experimental_useAppPanel(): ExperimentalAppPanel;
@@ -19651,9 +19871,10 @@ interface PluginSdkApp {
19651
19871
  * surfaces without further work. Reserve `useRpc` for work that needs your
19652
19872
  * server: secrets, host files, or your plugin's own storage.
19653
19873
  *
19654
- * Writes made here are not optimistic in bb's surfaces; they land when the
19655
- * realtime update does. `experimental_useSidebarThreadActions()` stays the
19656
- * optimistic path for pin, read state, rename, and archive.
19874
+ * Thread title, section, and parent updates are optimistic in bb's surfaces
19875
+ * and synchronous calls are applied as one cache transaction. Other writes
19876
+ * land when their realtime update does. `experimental_useSidebarThreadActions()`
19877
+ * stays the optimistic path for pin, read state, rename, and archive.
19657
19878
  *
19658
19879
  * The client is stable for the plugin's lifetime, so it is safe in effect
19659
19880
  * and callback dependency lists.
@@ -21680,35 +21901,77 @@ interface PluginServerApi {
21680
21901
  */
21681
21902
  readonly experimental_dataDir: string;
21682
21903
  }
21904
+ /** Options for one `complete` call. */
21905
+ interface PluginAiCompleteOptions {
21906
+ /**
21907
+ * Aborted when bb stops waiting: the task timed out (5 seconds for titles
21908
+ * and commit messages) or the request was cancelled. Pass it to `fetch`.
21909
+ */
21910
+ readonly signal: AbortSignal;
21911
+ }
21912
+ /** Options for one `transcribe` call. */
21913
+ interface PluginAiTranscribeOptions {
21914
+ /** Aborted when bb stops waiting (10 seconds) or the request was cancelled. */
21915
+ readonly signal: AbortSignal;
21916
+ /**
21917
+ * Vocabulary the speaker is likely to use (names, identifiers), for
21918
+ * services that accept a transcription prompt; `null` when there is none.
21919
+ */
21920
+ readonly hint: string | null;
21921
+ }
21683
21922
  /**
21684
- * What a plugin's AI service does. `inference` answers bb's server-side helper
21685
- * completions (thread titles, commit messages: a prompt and a JSON Schema in,
21686
- * a structured value out); `voice` transcribes recorded speech.
21923
+ * Whether a service can answer right now. `message` is shown to the user
21924
+ * beside the service ("Sign in to your bb account") and should say how to
21925
+ * make it ready.
21687
21926
  */
21688
- type PluginAiServiceKind = "inference" | "voice";
21927
+ type PluginAiServiceStatus = {
21928
+ readonly ready: true;
21929
+ } | {
21930
+ readonly ready: false;
21931
+ readonly message: string;
21932
+ };
21689
21933
  /**
21690
- * An AI service a plugin offers from its `bb.host` entry, which implements
21691
- * `experimental_aiServicesHostContract` (`@get-bb/plugin-sdk/ai-services`).
21692
- * The user selects it with `BB_INFERENCE` / `BB_TRANSCRIPTION` set to
21693
- * `<id>/<model>`; core calls the plugin's host entry on the primary host with
21694
- * the `id` on every request, so one entry can serve several services.
21934
+ * An AI service bb can use for its helper tasks: thread titles and commit
21935
+ * messages (`complete`) and voice input (`transcribe`). The user picks a
21936
+ * service per task in Settings → AI services or with
21937
+ * `bb settings ai-services set`. The functions run in the plugin's server
21938
+ * process; a plugin that needs host-local state (a login file, a local model)
21939
+ * reaches its own `bb.host` entry through `bb.hosts.experimental_client`.
21940
+ *
21941
+ * bb owns the prompts and cleans up replies (think blocks, quotes, labels,
21942
+ * extra lines), so a service returns the model's text as-is. The plugin owns
21943
+ * everything behind the function: which model, which API, any retries.
21944
+ * Failure is a rejected promise.
21695
21945
  */
21696
21946
  interface PluginAiServiceDeclaration {
21697
- /** The `<serviceId>` segment of the user's setting; stable, lowercase. */
21947
+ /**
21948
+ * Stable, lowercase id, unique within this plugin. bb identifies a service
21949
+ * by plugin id and service id, so another plugin may use the same id.
21950
+ * `automatic` and `off` are reserved.
21951
+ */
21698
21952
  readonly id: string;
21699
- /** Shown beside the id wherever the setting's options are listed. */
21953
+ /** Shown in the picker; 1-64 characters. */
21700
21954
  readonly displayName: string;
21701
- /** Which kinds this service answers; a kind it lacks is not offered. */
21702
- readonly kinds: readonly PluginAiServiceKind[];
21955
+ /**
21956
+ * Answer one prompt with plain text. Offered for thread titles and commit
21957
+ * messages. Declare `complete`, `transcribe`, or both.
21958
+ */
21959
+ readonly complete?: (prompt: string, options: PluginAiCompleteOptions) => Promise<string>;
21960
+ /** Transcribe recorded speech to text. Offered for voice input. */
21961
+ readonly transcribe?: (audio: File, options: PluginAiTranscribeOptions) => Promise<string>;
21962
+ /**
21963
+ * Report whether the service can answer. bb calls it for the picker's
21964
+ * status line and to decide whether Automatic skips the service and
21965
+ * whether the microphone shows; results are cached for a few seconds.
21966
+ * Omit it when the service is always ready.
21967
+ */
21968
+ readonly status?: () => Promise<PluginAiServiceStatus>;
21703
21969
  }
21704
21970
  interface PluginAiServices {
21705
21971
  /**
21706
21972
  * Register an AI service. Call during the factory; the registration lands
21707
- * when the plugin load commits and is removed on reload or disable. The
21708
- * plugin must declare a `bb.host` entry; registering without one fails the
21709
- * load. A declared entry that fails to build fails the load on the build
21710
- * error after the factory, with any provider the factory declared listed
21711
- * as unavailable. Throws on an id another live plugin already serves.
21973
+ * when the plugin load commits and is removed on reload or disable. Throws
21974
+ * when this plugin already registered the id.
21712
21975
  */
21713
21976
  register(declaration: PluginAiServiceDeclaration): {
21714
21977
  dispose(): void;
@@ -21830,8 +22093,8 @@ interface BbPluginApi {
21830
22093
  /** Server-to-daemon host control-plane declarations. */
21831
22094
  readonly hosts: PluginHosts;
21832
22095
  /**
21833
- * AI services this plugin serves from its `bb.host` entry (helper
21834
- * inference, voice transcription). See `@get-bb/plugin-sdk/ai-services`.
22096
+ * AI services this plugin offers for bb's helper tasks: thread titles,
22097
+ * commit messages, and voice input.
21835
22098
  */
21836
22099
  readonly experimental_aiServices: PluginAiServices;
21837
22100
  /**
@@ -22096,4 +22359,4 @@ declare function cliCommand<const TOptions extends CliOptions = Record<string, n
22096
22359
  declare function defineCli(spec: PluginCliSpec): PluginCliRegistration;
22097
22360
 
22098
22361
  export { PLUGIN_CLI_OUTPUT_MAX_BYTES, PluginCliError, cliCommand, defineCli, defineRpcContract, experimental_defineHostEntry };
22099
- export type { BbContext, BbNavigate, BbPluginApi, BranchPickerProps, BranchesState, CheckoutState, CodeOverflowMode, ComposerCustomization, ComposerPlusMenuItem, ComposerRichTextSpec, ComposerStructuredDraft, ComposerView, DiffProps, DiffViewMode, ExperimentalAppIcons, ExperimentalAppOverlayProps, ExperimentalAppOverlayRegistration, ExperimentalAppPanel, ExperimentalAppPanelSurface, ExperimentalComposerSelection, ExperimentalComposerSubmitOptions, ExperimentalDesktopBrowserAcquireInput, ExperimentalDesktopBrowserCreateInput, ExperimentalDesktopBrowserLease, ExperimentalDesktopBrowserScope, ExperimentalDesktopBrowsersArea, ExperimentalDiffFileContent, ExperimentalDiffFullFileContents, ExperimentalFileLinkProps, ExperimentalFileLocation, ExperimentalFileOpenOptions, ExperimentalFixedTabTargetContract, ExperimentalFixedTabTargetState, ExperimentalHostCallOptions, ExperimentalHostClient, ExperimentalHostEntry, ExperimentalHostPaths, ExperimentalHostRpcContext, ExperimentalHostRpcHandlers, ExperimentalHostSignalContract, ExperimentalHostSignalEvent, ExperimentalHostSignals, ExperimentalHostWatchChange, ExperimentalHostWatchChangeType, ExperimentalHostWatchEvent, ExperimentalHostWatchListener, ExperimentalHostWatchOptions, ExperimentalHostWatchSubscription, ExperimentalHostWorkerLease, ExperimentalIconProps, ExperimentalIconRegistration, ExperimentalLiveFileTarget, ExperimentalOpenFixedTabOptions, ExperimentalPermissionModePickerProps, ExperimentalPluginBrowserPage, ExperimentalPluginBrowserPageEvaluateOptions, ExperimentalPluginBrowserPageWorld, ExperimentalPluginBrowserToolbarActionProps, ExperimentalPluginBrowserToolbarActionRegistration, ExperimentalPluginFixedTabReference, ExperimentalPluginMentionImage, ExperimentalPluginProviderEnvContext, ExperimentalPluginProviderEnvEntry, ExperimentalPluginProviderEnvHealth, ExperimentalPluginProviderEnvHealthContext, ExperimentalPluginWebSocket, ExperimentalPluginWebSocketContext, ExperimentalPluginWebSocketHandler, ExperimentalPluginWebSocketHandlers, ExperimentalProviderIconProps, ExperimentalProviderModelPickerProps, ExperimentalProviderModelPickerRouting, ExperimentalProviderModelPickerValue, ExperimentalSidebarFooter, ExperimentalSidebarFooterActionContext, ExperimentalSidebarFooterActionRegistration, ExperimentalSidebarFooterDisclosureController, ExperimentalSidebarFooterDisclosureProps, ExperimentalSidebarFooterDisclosureRegistration, ExperimentalSidebarFooterItemBase, ExperimentalSidebarFooterItemRegistration, ExperimentalSidebarHeaderProps, ExperimentalSidebarHeaderRegistration, ExperimentalSidebarNavigationAction, ExperimentalSidebarNavigationActions, ExperimentalSidebarNavigationActivationOptions, ExperimentalSidebarNavigationIcon, ExperimentalSidebarNavigationIconProps, ExperimentalSidebarNavigationItem, ExperimentalSidebarNavigationProps, ExperimentalSidebarNavigationRegistration, ExperimentalSidebarNavigationShortcut, ExperimentalSidebarNavigationSplit, ExperimentalSidebarNavigationSplitOptions, ExperimentalSidebarNavigationState, JsonValue, MachineBootstrapApi, MachineBootstrapRequest, MachineExecutor, MachineExecutorRequest, MarkdownProps, MessageDispatchHookContext, MessageDispatchHookDecision, NewThreadComposerProps, NewThreadRequest, PluginAgentConfiguration, PluginAgentConfigurationContext, PluginAgentToolContentPart, PluginAgentToolContext, PluginAgentToolRegistrationBase, PluginAgentToolResult, PluginAgentToolSelection, PluginAgents, PluginAiServiceDeclaration, PluginAiServiceKind, PluginAiServices, PluginAppBuilder, PluginAppCommands, PluginAppComposer, PluginAppContentScripts, PluginAppDefinition, PluginAppSetup, PluginAppSlots, PluginBackground, PluginBbSdk, PluginBoundThreadsArea, PluginBrowserBbSdk, PluginCli, PluginCliBooleanOption, PluginCliCommand, PluginCliCommandInfo, PluginCliConstraint, PluginCliContext, PluginCliDurationOption, PluginCliDurationUnit, PluginCliEnumOption, PluginCliErrorCode, PluginCliExecutionResult, PluginCliIntegerOption, PluginCliOption, PluginCliOptionValues, PluginCliOutputLimitError, PluginCliPositional, PluginCliPositionalValues, PluginCliRegistration, PluginCliResult, PluginCliRunInput, PluginCliSpec, PluginCliStringOption, PluginCodeThemeData, PluginCodeThemeState, PluginCodeThemeTokenRule, PluginCommandContext, PluginCommandRegistration, PluginCommandShortcut, PluginComposerApi, PluginComposerMention, PluginComposerScope, PluginComposerTextEffect, PluginComposerThreadRowStatus, PluginContentScriptContext, PluginContentScriptDisposer, PluginContentScriptRegistration, PluginDiffRendererProps, PluginDiffRendererRegistration, PluginDispatchAttemptKind, PluginDispatchEnvironmentIntent, PluginDispatchExecution, PluginDispatchExecutionSources, PluginDispatchInput, PluginEnvironmentProvider, PluginEnvironmentProviderDeclaration, PluginEnvironmentProviderInputsChange, PluginEnvironmentProviderInputsProps, PluginEnvironmentProviderInputsRegistration, PluginEnvironmentProviderRequirements, PluginEnvironmentProvidersState, PluginEnvironmentValidateDecision, PluginEnvironments, PluginEvents, PluginFileOpenerProps, PluginFileOpenerRegistration, PluginFileOpenerSource, PluginFixedTabDeclaration, PluginFixedTabRegistration, PluginHomepageSectionProps, PluginHomepageSectionRegistration, PluginHookHandler, PluginHookName, PluginHookSignatures, PluginHooks, PluginHosts, PluginHttp, PluginHttpAuthMode, PluginHttpHandler, PluginInteractionCancelReason, PluginInteractionDescription, PluginInteractionRequest, PluginInteractionResult, PluginKvStorage, PluginLogger, PluginMachineProviderDeclaration, PluginMachineProviderInputsChange, PluginMachineProviderInputsProps, PluginMachineProviderInputsRegistration, PluginMachineValidateDecision, PluginMachines, PluginMentionItem, PluginMentionProviderRegistration, PluginMentionSearchContext, PluginMentionTrigger, PluginMessageActionContext, PluginMessageActionRegistration, PluginMessageDirectiveMessage, PluginMessageDirectiveOpenWorkspaceFile, PluginMessageDirectiveProps, PluginMessageDirectiveRegistration, PluginNavPanelProps, PluginNavPanelRegistration, PluginNewThreadPanelActionContext, PluginNewThreadPanelActionRegistration, PluginNewThreadPanelProps, PluginPanelActionOpenOptions, PluginPendingInteractionProps, PluginPendingInteractionRegistration, PluginPendingInteractionView, PluginProviderCapabilities, PluginProviderCompletedTurnDisplay, PluginProviderComposerAction, PluginProviderDeclaration, PluginProviderExtensionKindDeclaration, PluginProviderFallbackModel, PluginProviderIconRegistration, PluginProviderMaintenance, PluginProviderModelCatalogScope, PluginProviderNativeRootEntry, PluginProviderNativeRoots, PluginProviderOptionDescriptor, PluginProviderOptionsContext, PluginProviderPermissionMode, PluginProviderReasoningLevel, PluginProviderStrings, PluginProviders, PluginProvidersState, PluginRealtime, PluginRealtimeConnectionState, PluginRowLabels, PluginRowPresentation, PluginRpc, PluginRpcCallArgs, PluginRpcClient, PluginRpcContract, PluginRpcError, PluginRpcErrorCode, PluginRpcHandlers, PluginRpcIssuePathSegment, PluginRpcMethodContract, PluginRpcResult, PluginRpcValidationIssue, PluginSdkApp, PluginServerAccess, PluginServerApi, PluginSettingDescriptor, PluginSettingDescriptors, PluginSettingValue, PluginSettings, PluginSettingsHandle, PluginSettingsSectionProps, PluginSettingsSectionRegistration, PluginSettingsState, PluginSettingsValues, PluginSharedPortTunnelIdentity, PluginSidebarFooterActionContext, PluginSidebarFooterActionProps, PluginSidebarFooterActionRegistration, PluginSidebarProject, PluginSidebarPullRequest, PluginSidebarSection, PluginSidebarSplitLayout, PluginSidebarSplitPane, PluginSidebarThread, PluginSidebarThreadActions, PluginSidebarThreadActivity, PluginSidebarThreadDraftState, PluginSidebarThreadIndicator, PluginSidebarThreadPullRequestState, PluginSidebarThreadRowStatus, PluginSidebarThreadShortcut, PluginSidebarThreadSplit, PluginSidebarThreadsState, PluginSourceCodeRendererProps, PluginSourceCodeRendererRegistration, PluginStatusApi, PluginStorage, PluginTargetedPanelActionOpenOptions, PluginThreadEventHandler, PluginThreadEventName, PluginThreadEventPayloads, PluginThreadHeaderActionProps, PluginThreadHeaderActionRegistration, PluginThreadListProps, PluginThreadListRegistration, PluginThreadPanelActionContext, PluginThreadPanelActionRegistration, PluginThreadPanelProps, PluginThreadTitleProps, PluginTimelineRendererProps, PluginTimelineRendererRegistration, PluginTimelineRendererRow, PluginTimelineRowPresentation, PluginTimelineRowStatus, PluginTurnFailedEvent, PluginUi, ReadonlyJsonValue, ServerAccessGrant, ServerAccessProviderDeclaration, SourceCodeLineRange, SourceCodeProps, StandardSchemaV1, StandardSchemaV1InferInput, StandardSchemaV1InferOutput, StandardSchemaV1Issue, StandardSchemaV1Result, ThreadChatMessageAction, ThreadChatMessageReference, ThreadChatProps, UrlLinkProps, UseBranchesArgs, UseCheckoutStateArgs };
22362
+ export type { BbContext, BbNavigate, BbPluginApi, BranchPickerProps, BranchesState, CheckoutState, CodeOverflowMode, ComposerCustomization, ComposerPlusMenuItem, ComposerRichTextSpec, ComposerStructuredDraft, ComposerView, DiffProps, DiffViewMode, ExperimentalAppIcons, ExperimentalAppOverlayProps, ExperimentalAppOverlayRegistration, ExperimentalAppPanel, ExperimentalAppPanelSurface, ExperimentalComposerSelection, ExperimentalComposerSubmitOptions, ExperimentalDesktopBrowserAcquireInput, ExperimentalDesktopBrowserCreateInput, ExperimentalDesktopBrowserLease, ExperimentalDesktopBrowserScope, ExperimentalDesktopBrowsersArea, ExperimentalDiffFileContent, ExperimentalDiffFullFileContents, ExperimentalFileLinkProps, ExperimentalFileLocation, ExperimentalFileOpenOptions, ExperimentalFixedTabTargetContract, ExperimentalFixedTabTargetState, ExperimentalHostCallOptions, ExperimentalHostClient, ExperimentalHostEntry, ExperimentalHostPaths, ExperimentalHostRpcContext, ExperimentalHostRpcHandlers, ExperimentalHostSignalContract, ExperimentalHostSignalEvent, ExperimentalHostSignals, ExperimentalHostWatchChange, ExperimentalHostWatchChangeType, ExperimentalHostWatchEvent, ExperimentalHostWatchListener, ExperimentalHostWatchOptions, ExperimentalHostWatchSubscription, ExperimentalHostWorkerLease, ExperimentalIconProps, ExperimentalIconRegistration, ExperimentalLiveFileTarget, ExperimentalOpenFixedTabOptions, ExperimentalPermissionModePickerProps, ExperimentalPluginBrowserPage, ExperimentalPluginBrowserPageEvaluateOptions, ExperimentalPluginBrowserPageWorld, ExperimentalPluginBrowserToolbarActionProps, ExperimentalPluginBrowserToolbarActionRegistration, ExperimentalPluginFixedTabReference, ExperimentalPluginMentionImage, ExperimentalPluginProviderEnvContext, ExperimentalPluginProviderEnvEntry, ExperimentalPluginProviderEnvHealth, ExperimentalPluginProviderEnvHealthContext, ExperimentalPluginWebSocket, ExperimentalPluginWebSocketContext, ExperimentalPluginWebSocketHandler, ExperimentalPluginWebSocketHandlers, ExperimentalProviderIconProps, ExperimentalProviderModelPickerProps, ExperimentalProviderModelPickerRouting, ExperimentalProviderModelPickerValue, ExperimentalQuestionFormHost, ExperimentalQuestionShortcut, ExperimentalSidebarFooter, ExperimentalSidebarFooterActionContext, ExperimentalSidebarFooterActionRegistration, ExperimentalSidebarFooterDisclosureController, ExperimentalSidebarFooterDisclosureProps, ExperimentalSidebarFooterDisclosureRegistration, ExperimentalSidebarFooterItemBase, ExperimentalSidebarFooterItemRegistration, ExperimentalSidebarHeaderProps, ExperimentalSidebarHeaderRegistration, ExperimentalSidebarNavigationAction, ExperimentalSidebarNavigationActions, ExperimentalSidebarNavigationActivationOptions, ExperimentalSidebarNavigationIcon, ExperimentalSidebarNavigationIconProps, ExperimentalSidebarNavigationItem, ExperimentalSidebarNavigationProps, ExperimentalSidebarNavigationRegistration, ExperimentalSidebarNavigationShortcut, ExperimentalSidebarNavigationSplit, ExperimentalSidebarNavigationSplitOptions, ExperimentalSidebarNavigationState, JsonValue, MachineBootstrapApi, MachineBootstrapRequest, MachineExecutor, MachineExecutorRequest, MarkdownProps, MessageDispatchHookContext, MessageDispatchHookDecision, NewThreadComposerProps, NewThreadRequest, PluginAgentConfiguration, PluginAgentConfigurationContext, PluginAgentToolContentPart, PluginAgentToolContext, PluginAgentToolRegistrationBase, PluginAgentToolResult, PluginAgentToolSelection, PluginAgents, PluginAiCompleteOptions, PluginAiServiceDeclaration, PluginAiServiceStatus, PluginAiServices, PluginAiTranscribeOptions, PluginAppBuilder, PluginAppCommands, PluginAppComposer, PluginAppContentScripts, PluginAppDefinition, PluginAppSetup, PluginAppSlots, PluginBackground, PluginBbSdk, PluginBoundThreadsArea, PluginBrowserBbSdk, PluginCli, PluginCliBooleanOption, PluginCliCommand, PluginCliCommandInfo, PluginCliConstraint, PluginCliContext, PluginCliDurationOption, PluginCliDurationUnit, PluginCliEnumOption, PluginCliErrorCode, PluginCliExecutionResult, PluginCliIntegerOption, PluginCliOption, PluginCliOptionValues, PluginCliOutputLimitError, PluginCliPositional, PluginCliPositionalValues, PluginCliRegistration, PluginCliResult, PluginCliRunInput, PluginCliSpec, PluginCliStringOption, PluginCodeThemeData, PluginCodeThemeState, PluginCodeThemeTokenRule, PluginCommandContext, PluginCommandRegistration, PluginCommandShortcut, PluginComposerApi, PluginComposerMention, PluginComposerScope, PluginComposerTextEffect, PluginComposerThreadRowStatus, PluginContentScriptContext, PluginContentScriptDisposer, PluginContentScriptRegistration, PluginDiffRendererProps, PluginDiffRendererRegistration, PluginDispatchAttemptKind, PluginDispatchEnvironmentIntent, PluginDispatchExecution, PluginDispatchExecutionSources, PluginDispatchInput, PluginEnvironmentProvider, PluginEnvironmentProviderDeclaration, PluginEnvironmentProviderInputsChange, PluginEnvironmentProviderInputsProps, PluginEnvironmentProviderInputsRegistration, PluginEnvironmentProviderRequirements, PluginEnvironmentProvidersState, PluginEnvironmentValidateDecision, PluginEnvironments, PluginEvents, PluginFileOpenerProps, PluginFileOpenerRegistration, PluginFileOpenerSource, PluginFixedTabDeclaration, PluginFixedTabRegistration, PluginHomepageSectionProps, PluginHomepageSectionRegistration, PluginHookHandler, PluginHookName, PluginHookSignatures, PluginHooks, PluginHosts, PluginHttp, PluginHttpAuthMode, PluginHttpHandler, PluginInteractionCancelReason, PluginInteractionDescription, PluginInteractionRequest, PluginInteractionResult, PluginKvStorage, PluginLogger, PluginMachineProviderDeclaration, PluginMachineProviderInputsChange, PluginMachineProviderInputsProps, PluginMachineProviderInputsRegistration, PluginMachineValidateDecision, PluginMachines, PluginMentionItem, PluginMentionProviderRegistration, PluginMentionSearchContext, PluginMentionTrigger, PluginMessageActionContext, PluginMessageActionRegistration, PluginMessageDirectiveMessage, PluginMessageDirectiveOpenWorkspaceFile, PluginMessageDirectiveProps, PluginMessageDirectiveRegistration, PluginNavPanelProps, PluginNavPanelRegistration, PluginNewThreadPanelActionContext, PluginNewThreadPanelActionRegistration, PluginNewThreadPanelProps, PluginPanelActionOpenOptions, PluginPendingInteractionProps, PluginPendingInteractionRegistration, PluginPendingInteractionView, PluginProviderCapabilities, PluginProviderCompletedTurnDisplay, PluginProviderComposerAction, PluginProviderDeclaration, PluginProviderExtensionKindDeclaration, PluginProviderFallbackModel, PluginProviderIconRegistration, PluginProviderMaintenance, PluginProviderModelCatalogScope, PluginProviderNativeRootEntry, PluginProviderNativeRoots, PluginProviderOptionDescriptor, PluginProviderOptionsContext, PluginProviderPermissionMode, PluginProviderReasoningLevel, PluginProviderStrings, PluginProviders, PluginProvidersState, PluginRealtime, PluginRealtimeConnectionState, PluginRowLabels, PluginRowPresentation, PluginRpc, PluginRpcCallArgs, PluginRpcClient, PluginRpcContract, PluginRpcError, PluginRpcErrorCode, PluginRpcHandlers, PluginRpcIssuePathSegment, PluginRpcMethodContract, PluginRpcResult, PluginRpcValidationIssue, PluginSdkApp, PluginServerAccess, PluginServerApi, PluginSettingDescriptor, PluginSettingDescriptors, PluginSettingValue, PluginSettings, PluginSettingsHandle, PluginSettingsSectionProps, PluginSettingsSectionRegistration, PluginSettingsState, PluginSettingsValues, PluginSharedPortTunnelIdentity, PluginSidebarFooterActionContext, PluginSidebarFooterActionProps, PluginSidebarFooterActionRegistration, PluginSidebarProject, PluginSidebarPullRequest, PluginSidebarSection, PluginSidebarSplitLayout, PluginSidebarSplitPane, PluginSidebarThread, PluginSidebarThreadActions, PluginSidebarThreadActivity, PluginSidebarThreadDraftState, PluginSidebarThreadIndicator, PluginSidebarThreadPullRequestState, PluginSidebarThreadRowStatus, PluginSidebarThreadShortcut, PluginSidebarThreadSplit, PluginSidebarThreadsState, PluginSourceCodeRendererProps, PluginSourceCodeRendererRegistration, PluginStatusApi, PluginStorage, PluginTargetedPanelActionOpenOptions, PluginThreadEventHandler, PluginThreadEventName, PluginThreadEventPayloads, PluginThreadHeaderActionProps, PluginThreadHeaderActionRegistration, PluginThreadListProps, PluginThreadListRegistration, PluginThreadPanelActionContext, PluginThreadPanelActionRegistration, PluginThreadPanelProps, PluginThreadTitleProps, PluginTimelineRendererProps, PluginTimelineRendererRegistration, PluginTimelineRendererRow, PluginTimelineRowPresentation, PluginTimelineRowStatus, PluginTurnFailedEvent, PluginUi, ReadonlyJsonValue, ServerAccessGrant, ServerAccessProviderDeclaration, SourceCodeLineRange, SourceCodeProps, StandardSchemaV1, StandardSchemaV1InferInput, StandardSchemaV1InferOutput, StandardSchemaV1Issue, StandardSchemaV1Result, ThreadChatMessageAction, ThreadChatMessageReference, ThreadChatProps, UrlLinkProps, UseBranchesArgs, UseCheckoutStateArgs };
package/dist/app.js CHANGED
@@ -79,6 +79,9 @@ var useBbContext = runtimeFunction("useBbContext");
79
79
  var experimental_usePluginId = runtimeFunction(
80
80
  "experimental_usePluginId"
81
81
  );
82
+ var experimental_useQuestionFormHost = runtimeFunction(
83
+ "experimental_useQuestionFormHost"
84
+ );
82
85
  var useBbNavigate = runtimeFunction("useBbNavigate");
83
86
  var experimental_useAppPanel = runtimeFunction(
84
87
  "experimental_useAppPanel"
@@ -157,6 +160,7 @@ export {
157
160
  experimental_useFixedTabTarget,
158
161
  experimental_usePluginId,
159
162
  experimental_useProviders,
163
+ experimental_useQuestionFormHost,
160
164
  experimental_useSidebarNavigation,
161
165
  experimental_useSidebarNavigationSplit,
162
166
  experimental_useSidebarThreadActions,