@get-bb/plugin-sdk 0.4.50 → 0.4.55

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.
package/README.md CHANGED
@@ -149,7 +149,8 @@ await host.harness.lifecycle.dispose();
149
149
  ```
150
150
 
151
151
  `makePluginAgentConfigurationContext`, `makeMessageDispatchHookContext`,
152
- `makeThreadResponse`, `makeQueueEntry`, and `makeTurnFailedEvent` return
152
+ `makeHostResponse`, `makeThreadResponse`, `makeQueueEntry`, and
153
+ `makeTurnFailedEvent` return
153
154
  complete deterministic SDK objects. Pass partial overrides so a behavioral
154
155
  test shows only the values relevant to its scenario. Nested context
155
156
  members merge partial overrides against complete defaults, so required contract
@@ -2394,6 +2394,14 @@ interface MarkdownProps {
2394
2394
  /** Markdown source, rendered exactly like a chat message body. */
2395
2395
  content: string;
2396
2396
  className?: string;
2397
+ /** Resolve local destinations from this document; omission keeps message routing. */
2398
+ experimental_document?: {
2399
+ threadId: string;
2400
+ rootPath: string;
2401
+ target: Exclude<ExperimentalLiveFileTarget, {
2402
+ kind: "host";
2403
+ }>;
2404
+ };
2397
2405
  }
2398
2406
  /**
2399
2407
  * Props for BB's semantic URL link. The host owns ordinary activation while
@@ -55,6 +55,7 @@ declare const environmentSchema: z.ZodObject<{
55
55
  path: z.ZodNullable<z.ZodString>;
56
56
  projectId: z.ZodString;
57
57
  status: z.ZodEnum<{
58
+ creating: "creating";
58
59
  destroyed: "destroyed";
59
60
  error: "error";
60
61
  provisioning: "provisioning";
@@ -183,7 +184,7 @@ interface PluginEnvironmentProviderValidateContext<R extends PluginEnvironmentPr
183
184
  }
184
185
  interface PluginEnvironmentProviderAvailabilityContext {
185
186
  project: Project;
186
- host: Host | null;
187
+ host: Host;
187
188
  projectCheckout: {
188
189
  path: string;
189
190
  } | null;
@@ -221,7 +222,6 @@ type PluginEnvironmentProviderCreateResult = {
221
222
  resource?: JsonValue$1;
222
223
  } | {
223
224
  status: "failed";
224
- failure: "terminal" | "transient";
225
225
  message: string;
226
226
  };
227
227
  interface PluginEnvironmentProviderRemoveContext {
@@ -256,7 +256,7 @@ interface PluginEnvironmentProviderDefinition<R extends PluginEnvironmentProvide
256
256
  requires?: R;
257
257
  inputs?: S;
258
258
  policy?: Partial<PluginEnvironmentProviderPolicy>;
259
- /** Experimental: see docs/api_to_audit.md. */
259
+ /** Experimental per-machine availability, probed in the background for pickers and again at thread creation: see docs/api_to_audit.md. */
260
260
  availability?(context: PluginEnvironmentProviderAvailabilityContext): PluginEnvironmentProviderAvailability | Promise<PluginEnvironmentProviderAvailability>;
261
261
  validate?(context: PluginEnvironmentProviderValidateContext<R, S>): PluginEnvironmentValidateDecision | Promise<PluginEnvironmentValidateDecision>;
262
262
  create(context: PluginEnvironmentProviderCreateContext<R, S>): Promise<PluginEnvironmentProviderCreateResult>;
@@ -107,6 +107,7 @@ declare const environmentSchema: z.ZodObject<{
107
107
  path: z.ZodNullable<z.ZodString>;
108
108
  projectId: z.ZodString;
109
109
  status: z.ZodEnum<{
110
+ creating: "creating";
110
111
  destroyed: "destroyed";
111
112
  error: "error";
112
113
  provisioning: "provisioning";
@@ -509,7 +510,7 @@ interface PluginEnvironmentProviderValidateContext<R extends PluginEnvironmentPr
509
510
  }
510
511
  interface PluginEnvironmentProviderAvailabilityContext {
511
512
  project: Project;
512
- host: Host | null;
513
+ host: Host;
513
514
  projectCheckout: {
514
515
  path: string;
515
516
  } | null;
@@ -547,7 +548,6 @@ type PluginEnvironmentProviderCreateResult = {
547
548
  resource?: JsonValue$2;
548
549
  } | {
549
550
  status: "failed";
550
- failure: "terminal" | "transient";
551
551
  message: string;
552
552
  };
553
553
  interface PluginEnvironmentProviderRemoveContext {
@@ -582,7 +582,7 @@ interface PluginEnvironmentProviderDefinition<R extends PluginEnvironmentProvide
582
582
  requires?: R;
583
583
  inputs?: S;
584
584
  policy?: Partial<PluginEnvironmentProviderPolicy>;
585
- /** Experimental: see docs/api_to_audit.md. */
585
+ /** Experimental per-machine availability, probed in the background for pickers and again at thread creation: see docs/api_to_audit.md. */
586
586
  availability?(context: PluginEnvironmentProviderAvailabilityContext): PluginEnvironmentProviderAvailability | Promise<PluginEnvironmentProviderAvailability>;
587
587
  validate?(context: PluginEnvironmentProviderValidateContext<R, S>): PluginEnvironmentValidateDecision | Promise<PluginEnvironmentValidateDecision>;
588
588
  create(context: PluginEnvironmentProviderCreateContext<R, S>): Promise<PluginEnvironmentProviderCreateResult>;
@@ -690,11 +690,10 @@ type PluginSettingValue = string | number | boolean;
690
690
  * that machine, git or not, so core refuses a machine with no checkout of
691
691
  * the project at create time and `context.projectCheckout` is non-null.
692
692
  * - `gitCheckout` — that directory must also be a git repository with at
693
- * least one commit. The picker greys the row out where it is not, and core
694
- * rejects an explicit selection using the same machine inspection before
695
- * creating the thread. Implies `projectCheckout`.
696
- * - `gitRemote` — the provider clones the project itself, so it is greyed out
697
- * in a project with no git remote and an explicit selection is rejected.
693
+ * least one commit. Core inspects the selected machine and rejects an
694
+ * invalid selection before creating the thread. Implies `projectCheckout`.
695
+ * - `gitRemote` — the provider clones the project itself, so an explicit
696
+ * selection is rejected when the project has no git remote.
698
697
  * - `projectless` — this provider serves only threads that have no project,
699
698
  * so it is offered for those and nowhere else. It cannot be combined with
700
699
  * `projectCheckout`, `gitCheckout` or `gitRemote`, which need a project.
@@ -107,6 +107,7 @@ declare const environmentSchema: z.ZodObject<{
107
107
  path: z.ZodNullable<z.ZodString>;
108
108
  projectId: z.ZodString;
109
109
  status: z.ZodEnum<{
110
+ creating: "creating";
110
111
  destroyed: "destroyed";
111
112
  error: "error";
112
113
  provisioning: "provisioning";
@@ -238,7 +239,7 @@ interface PluginEnvironmentProviderValidateContext<R extends PluginEnvironmentPr
238
239
  }
239
240
  interface PluginEnvironmentProviderAvailabilityContext {
240
241
  project: Project;
241
- host: Host | null;
242
+ host: Host;
242
243
  projectCheckout: {
243
244
  path: string;
244
245
  } | null;
@@ -276,7 +277,6 @@ type PluginEnvironmentProviderCreateResult = {
276
277
  resource?: JsonValue$2;
277
278
  } | {
278
279
  status: "failed";
279
- failure: "terminal" | "transient";
280
280
  message: string;
281
281
  };
282
282
  interface PluginEnvironmentProviderRemoveContext {
@@ -311,7 +311,7 @@ interface PluginEnvironmentProviderDefinition<R extends PluginEnvironmentProvide
311
311
  requires?: R;
312
312
  inputs?: S;
313
313
  policy?: Partial<PluginEnvironmentProviderPolicy>;
314
- /** Experimental: see docs/api_to_audit.md. */
314
+ /** Experimental per-machine availability, probed in the background for pickers and again at thread creation: see docs/api_to_audit.md. */
315
315
  availability?(context: PluginEnvironmentProviderAvailabilityContext): PluginEnvironmentProviderAvailability | Promise<PluginEnvironmentProviderAvailability>;
316
316
  validate?(context: PluginEnvironmentProviderValidateContext<R, S>): PluginEnvironmentValidateDecision | Promise<PluginEnvironmentValidateDecision>;
317
317
  create(context: PluginEnvironmentProviderCreateContext<R, S>): Promise<PluginEnvironmentProviderCreateResult>;
@@ -369,11 +369,10 @@ type PluginSettingValue = string | number | boolean;
369
369
  * that machine, git or not, so core refuses a machine with no checkout of
370
370
  * the project at create time and `context.projectCheckout` is non-null.
371
371
  * - `gitCheckout` — that directory must also be a git repository with at
372
- * least one commit. The picker greys the row out where it is not, and core
373
- * rejects an explicit selection using the same machine inspection before
374
- * creating the thread. Implies `projectCheckout`.
375
- * - `gitRemote` — the provider clones the project itself, so it is greyed out
376
- * in a project with no git remote and an explicit selection is rejected.
372
+ * least one commit. Core inspects the selected machine and rejects an
373
+ * invalid selection before creating the thread. Implies `projectCheckout`.
374
+ * - `gitRemote` — the provider clones the project itself, so an explicit
375
+ * selection is rejected when the project has no git remote.
377
376
  * - `projectless` — this provider serves only threads that have no project,
378
377
  * so it is offered for those and nowhere else. It cannot be combined with
379
378
  * `projectCheckout`, `gitCheckout` or `gitRemote`, which need a project.
@@ -1152,6 +1151,7 @@ interface FakePluginHost {
1152
1151
  }
1153
1152
  declare function createFakePluginHost(options?: CreateFakePluginHostOptions): FakePluginHost;
1154
1153
 
1154
+ type HostResponse = Awaited<ReturnType<BbPluginApi["sdk"]["hosts"]["list"]>>[number];
1155
1155
  type ThreadResponse = PluginThreadEventPayloads["thread.created"]["thread"];
1156
1156
  type QueueEntry = PluginThreadEventPayloads["message.queued"]["entry"];
1157
1157
  type TurnFailedEvent = PluginThreadEventPayloads["turn.failed"];
@@ -1175,6 +1175,13 @@ type MessageDispatchHookContextOverrides = Omit<Partial<MessageDispatchHookConte
1175
1175
  executionSources?: Partial<MessageDispatchHookContext["executionSources"]>;
1176
1176
  queuedMessage?: Partial<NonNullable<MessageDispatchHookContext["queuedMessage"]>> | null;
1177
1177
  };
1178
+ /**
1179
+ * A complete, deterministic host response for faking `bb.sdk.hosts.list()`
1180
+ * and environment-provider contexts. Override only the fields the test cares
1181
+ * about. If the contract grows a required field, this builder fails
1182
+ * typecheck — update the default here.
1183
+ */
1184
+ declare function makeHostResponse(overrides?: Partial<HostResponse>): HostResponse;
1178
1185
  /**
1179
1186
  * A complete, deterministic `ThreadResponse` for thread lifecycle event
1180
1187
  * payloads (`harness.emitThreadEvent`). Defaults are the minimal idle
@@ -1242,5 +1249,5 @@ interface PublicSdkOnlyScan {
1242
1249
  */
1243
1250
  declare function scanPublicSdkOnly(packageRoot: string, options?: PublicSdkOnlyScanOptions): PublicSdkOnlyScan;
1244
1251
 
1245
- export { PluginContextStaleError, createFakePluginHost, createFakeSdk, scanPublicSdkOnly as experimental_scanPublicSdkOnly, makeMessageDispatchHookContext, makePluginAgentConfigurationContext, makeQueueEntry, makeThreadResponse, makeTurnFailedEvent };
1252
+ export { PluginContextStaleError, createFakePluginHost, createFakeSdk, scanPublicSdkOnly as experimental_scanPublicSdkOnly, makeHostResponse, makeMessageDispatchHookContext, makePluginAgentConfigurationContext, makeQueueEntry, makeThreadResponse, makeTurnFailedEvent };
1246
1253
  export type { CreateFakePluginHostOptions, ExperimentalFakeHostRpcCall, FakeAgentToolRecord, FakeCliRecord, FakeHttpRouteRecord, FakeLogEntry, FakeLogLevel, FakeMentionProviderRecord, FakePluginBehaviorDrivers, FakePluginHarness, FakePluginHost, FakePluginInspectionState, FakePluginLifecycleControls, FakePluginRegistrations, FakeRealtimeSignal, FakeScheduleRecord, FakeSdkCall, FakeSdkHarness, FakeSdkOverrides, FakeServiceRecord, PublicSdkOnlyScan, PublicSdkOnlyScanOptions, PublicSdkOnlyViolation };
@@ -73,6 +73,56 @@ declare const appSettingsUpdateSchema: z$1.ZodUnion<readonly [z$1.ZodObject<{
73
73
  }, z$1.core.$strict>]>;
74
74
  type AppSettingsUpdate = z$1.infer<typeof appSettingsUpdateSchema>;
75
75
 
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"];
77
+ type UiPreferenceKey = (typeof UI_PREFERENCE_KEYS)[number];
78
+ interface UiPreferenceDefinition<Schema extends z$1.ZodTypeAny = z$1.ZodTypeAny> {
79
+ schema: Schema;
80
+ defaultValue: z$1.infer<Schema>;
81
+ description: string;
82
+ }
83
+ declare const uiPreferenceDefinitions: {
84
+ readonly "sidebar.organizationMode": UiPreferenceDefinition<z$1.ZodEnum<{
85
+ chronological: "chronological";
86
+ machine: "machine";
87
+ project: "project";
88
+ }>>;
89
+ readonly "sidebar.chronologicalSort": UiPreferenceDefinition<z$1.ZodEnum<{
90
+ alpha: "alpha";
91
+ created: "created";
92
+ none: "none";
93
+ updated: "updated";
94
+ }>>;
95
+ readonly "sidebar.sortDirection": UiPreferenceDefinition<z$1.ZodEnum<{
96
+ ascending: "ascending";
97
+ default: "default";
98
+ descending: "descending";
99
+ }>>;
100
+ readonly "sidebar.sectionOrder": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
101
+ readonly "sidebar.manualSectionOrder": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
102
+ readonly "sidebar.machineSectionOrder": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
103
+ readonly "sidebar.collapsedSections": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodEnum<{
104
+ pinned: "pinned";
105
+ threads: "threads";
106
+ }>>>;
107
+ readonly "sidebar.collapsedProjects": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
108
+ readonly "sidebar.collapsedThreads": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
109
+ readonly "sidebar.collapsedEnvironments": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
110
+ readonly "sidebar.collapsedThreadSections": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
111
+ readonly "sidebar.collapsedMachines": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
112
+ readonly "sidebar.pluginPanelOrder": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
113
+ readonly "sidebar.visiblePluginPanels": UiPreferenceDefinition<z$1.ZodNullable<z$1.ZodArray<z$1.ZodString>>>;
114
+ readonly "sidebar.navigationProvider": UiPreferenceDefinition<z$1.ZodString>;
115
+ readonly "sidebar.threadListProvider": UiPreferenceDefinition<z$1.ZodString>;
116
+ };
117
+ type UiPreferenceValue<Key extends UiPreferenceKey> = z$1.infer<(typeof uiPreferenceDefinitions)[Key]["schema"]>;
118
+ interface UiPreferenceEntry<Key extends UiPreferenceKey = UiPreferenceKey> {
119
+ revision: number;
120
+ value: UiPreferenceValue<Key>;
121
+ }
122
+ type UiPreferenceEntries = {
123
+ [Key in UiPreferenceKey]: UiPreferenceEntry<Key>;
124
+ };
125
+
76
126
  declare const appKeybindingOverridesSchema: z$1.ZodArray<z$1.ZodObject<{
77
127
  command: z$1.ZodEnum<{
78
128
  "app.back": "app.back";
@@ -289,8 +339,10 @@ declare const changedMessageSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
289
339
  }, z$1.core.$strict>, z$1.ZodObject<{
290
340
  changes: z$1.ZodReadonly<z$1.ZodArray<z$1.ZodEnum<{
291
341
  "config-changed": "config-changed";
342
+ "environment-availability-changed": "environment-availability-changed";
292
343
  "plugins-changed": "plugins-changed";
293
344
  "provider-registrations-changed": "provider-registrations-changed";
345
+ "ui-preferences-changed": "ui-preferences-changed";
294
346
  }>>>;
295
347
  entity: z$1.ZodLiteral<"system">;
296
348
  type: z$1.ZodLiteral<"changed">;
@@ -298,6 +350,7 @@ declare const changedMessageSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
298
350
  type ChangedMessage = z$1.infer<typeof changedMessageSchema>;
299
351
 
300
352
  declare const environmentStatusSchema: z$1.ZodEnum<{
353
+ creating: "creating";
301
354
  destroyed: "destroyed";
302
355
  error: "error";
303
356
  provisioning: "provisioning";
@@ -358,6 +411,7 @@ declare const environmentSchema: z$1.ZodObject<{
358
411
  path: z$1.ZodNullable<z$1.ZodString>;
359
412
  projectId: z$1.ZodString;
360
413
  status: z$1.ZodEnum<{
414
+ creating: "creating";
361
415
  destroyed: "destroyed";
362
416
  error: "error";
363
417
  provisioning: "provisioning";
@@ -374,7 +428,6 @@ type Environment = z$1.infer<typeof environmentSchema>;
374
428
 
375
429
  declare const experimentsSchema: z$1.ZodRecord<z$1.ZodEnum<{
376
430
  changelogPreview: "changelogPreview";
377
- editMessages: "editMessages";
378
431
  mobileApp: "mobileApp";
379
432
  sidebarProgressiveDisclosure: "sidebarProgressiveDisclosure";
380
433
  timelineWindowing: "timelineWindowing";
@@ -5585,6 +5638,82 @@ declare const hostDaemonCommandRegistry: {
5585
5638
  }, z$1.core.$strict>, z$1.ZodObject<{
5586
5639
  ok: z$1.ZodLiteral<true>;
5587
5640
  }, z$1.core.$strip>, "onlineRpc", false>;
5641
+ "desktop.browser.list_import_sources": HostDaemonCommandDescriptor<"desktop.browser.list_import_sources", z$1.ZodObject<{
5642
+ generation: z$1.ZodString;
5643
+ instanceId: z$1.ZodString;
5644
+ type: z$1.ZodLiteral<"desktop.browser.list_import_sources">;
5645
+ }, z$1.core.$strict>, z$1.ZodObject<{
5646
+ sources: z$1.ZodArray<z$1.ZodObject<{
5647
+ icon: z$1.ZodOptional<z$1.ZodString>;
5648
+ id: z$1.ZodEnum<{
5649
+ arc: "arc";
5650
+ brave: "brave";
5651
+ chrome: "chrome";
5652
+ chromium: "chromium";
5653
+ edge: "edge";
5654
+ firefox: "firefox";
5655
+ opera: "opera";
5656
+ safari: "safari";
5657
+ vivaldi: "vivaldi";
5658
+ }>;
5659
+ name: z$1.ZodString;
5660
+ profiles: z$1.ZodArray<z$1.ZodObject<{
5661
+ cookieCount: z$1.ZodOptional<z$1.ZodNumber>;
5662
+ directory: z$1.ZodString;
5663
+ name: z$1.ZodString;
5664
+ }, z$1.core.$strict>>;
5665
+ unavailable: z$1.ZodOptional<z$1.ZodEnum<{
5666
+ browserRunning: "browserRunning";
5667
+ keychainItemMissing: "keychainItemMissing";
5668
+ needsFullDiskAccess: "needsFullDiskAccess";
5669
+ needsKeychainApproval: "needsKeychainApproval";
5670
+ notInstalled: "notInstalled";
5671
+ unsupportedPlatform: "unsupportedPlatform";
5672
+ }>>;
5673
+ }, z$1.core.$strict>>;
5674
+ }, z$1.core.$strip>, "onlineRpc", false>;
5675
+ "desktop.browser.import_cookies": HostDaemonCommandDescriptor<"desktop.browser.import_cookies", z$1.ZodObject<{
5676
+ generation: z$1.ZodString;
5677
+ instanceId: z$1.ZodString;
5678
+ profile: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
5679
+ id: z$1.ZodString;
5680
+ kind: z$1.ZodLiteral<"automation">;
5681
+ }, z$1.core.$strip>, z$1.ZodObject<{
5682
+ kind: z$1.ZodLiteral<"personal">;
5683
+ }, z$1.core.$strip>], "kind">;
5684
+ sourceId: z$1.ZodEnum<{
5685
+ arc: "arc";
5686
+ brave: "brave";
5687
+ chrome: "chrome";
5688
+ chromium: "chromium";
5689
+ edge: "edge";
5690
+ firefox: "firefox";
5691
+ opera: "opera";
5692
+ safari: "safari";
5693
+ vivaldi: "vivaldi";
5694
+ }>;
5695
+ sourceProfileDirectory: z$1.ZodString;
5696
+ type: z$1.ZodLiteral<"desktop.browser.import_cookies">;
5697
+ }, z$1.core.$strict>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
5698
+ imported: z$1.ZodNumber;
5699
+ ok: z$1.ZodLiteral<true>;
5700
+ skipped: z$1.ZodNumber;
5701
+ skippedDomains: z$1.ZodArray<z$1.ZodString>;
5702
+ }, z$1.core.$strict>, z$1.ZodObject<{
5703
+ ok: z$1.ZodLiteral<false>;
5704
+ reason: z$1.ZodEnum<{
5705
+ browserRunning: "browserRunning";
5706
+ keychainItemMissing: "keychainItemMissing";
5707
+ keychainUnavailable: "keychainUnavailable";
5708
+ needsFullDiskAccess: "needsFullDiskAccess";
5709
+ needsKeychainApproval: "needsKeychainApproval";
5710
+ notInstalled: "notInstalled";
5711
+ readFailed: "readFailed";
5712
+ unknownSource: "unknownSource";
5713
+ unknownSourceProfile: "unknownSourceProfile";
5714
+ unsupportedPlatform: "unsupportedPlatform";
5715
+ }>;
5716
+ }, z$1.core.$strict>], "ok">, "onlineRpc", false>;
5588
5717
  "thread.rewind.discard": HostDaemonCommandDescriptor<"thread.rewind.discard", z$1.ZodObject<{
5589
5718
  environmentId: z$1.ZodString;
5590
5719
  leaseId: z$1.ZodString;
@@ -6753,6 +6882,7 @@ declare const hostDaemonCommandRegistry: {
6753
6882
  threadId: z$1.ZodString;
6754
6883
  }, z$1.core.$strict>>;
6755
6884
  path: z$1.ZodString;
6885
+ setupScriptTimeoutMs: z$1.ZodNullable<z$1.ZodNumber>;
6756
6886
  type: z$1.ZodLiteral<"environment.attach">;
6757
6887
  }, z$1.core.$strict>, z$1.ZodObject<{
6758
6888
  branchName: z$1.ZodNullable<z$1.ZodString>;
@@ -6815,9 +6945,12 @@ declare const hostDaemonCommandRegistry: {
6815
6945
  }, z$1.core.$strip>;
6816
6946
  }, z$1.core.$strict>], "operation">, z$1.ZodObject<{}, z$1.core.$strict>, "settled", false>;
6817
6947
  "host.list_files": HostDaemonCommandDescriptor<"host.list_files", z$1.ZodObject<{
6948
+ excludeNames: z$1.ZodArray<z$1.ZodString>;
6949
+ includeHidden: z$1.ZodBoolean;
6818
6950
  limit: z$1.ZodNumber;
6819
6951
  path: z$1.ZodString;
6820
6952
  query: z$1.ZodOptional<z$1.ZodString>;
6953
+ respectGitIgnore: z$1.ZodBoolean;
6821
6954
  type: z$1.ZodLiteral<"host.list_files">;
6822
6955
  }, z$1.core.$strip>, z$1.ZodObject<{
6823
6956
  files: z$1.ZodArray<z$1.ZodObject<{
@@ -6827,11 +6960,14 @@ declare const hostDaemonCommandRegistry: {
6827
6960
  truncated: z$1.ZodBoolean;
6828
6961
  }, z$1.core.$strip>, "onlineRpc", true>;
6829
6962
  "host.list_paths": HostDaemonCommandDescriptor<"host.list_paths", z$1.ZodObject<{
6963
+ excludeNames: z$1.ZodArray<z$1.ZodString>;
6830
6964
  includeDirectories: z$1.ZodBoolean;
6831
6965
  includeFiles: z$1.ZodBoolean;
6966
+ includeHidden: z$1.ZodBoolean;
6832
6967
  limit: z$1.ZodNumber;
6833
6968
  path: z$1.ZodString;
6834
6969
  query: z$1.ZodOptional<z$1.ZodString>;
6970
+ respectGitIgnore: z$1.ZodBoolean;
6835
6971
  type: z$1.ZodLiteral<"host.list_paths">;
6836
6972
  }, z$1.core.$strip>, z$1.ZodObject<{
6837
6973
  paths: z$1.ZodArray<z$1.ZodObject<{
@@ -8176,6 +8312,32 @@ declare const desktopBrowserCommandSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObj
8176
8312
  leaseId: z$1.ZodString;
8177
8313
  threadId: z$1.ZodString;
8178
8314
  type: z$1.ZodLiteral<"desktop.browser.release_control">;
8315
+ }, z$1.core.$strict>, z$1.ZodObject<{
8316
+ generation: z$1.ZodString;
8317
+ instanceId: z$1.ZodString;
8318
+ type: z$1.ZodLiteral<"desktop.browser.list_import_sources">;
8319
+ }, z$1.core.$strict>, z$1.ZodObject<{
8320
+ generation: z$1.ZodString;
8321
+ instanceId: z$1.ZodString;
8322
+ profile: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
8323
+ id: z$1.ZodString;
8324
+ kind: z$1.ZodLiteral<"automation">;
8325
+ }, z$1.core.$strip>, z$1.ZodObject<{
8326
+ kind: z$1.ZodLiteral<"personal">;
8327
+ }, z$1.core.$strip>], "kind">;
8328
+ sourceId: z$1.ZodEnum<{
8329
+ arc: "arc";
8330
+ brave: "brave";
8331
+ chrome: "chrome";
8332
+ chromium: "chromium";
8333
+ edge: "edge";
8334
+ firefox: "firefox";
8335
+ opera: "opera";
8336
+ safari: "safari";
8337
+ vivaldi: "vivaldi";
8338
+ }>;
8339
+ sourceProfileDirectory: z$1.ZodString;
8340
+ type: z$1.ZodLiteral<"desktop.browser.import_cookies">;
8179
8341
  }, z$1.core.$strict>], "type">;
8180
8342
  declare const desktopBrowserResultSchemas: {
8181
8343
  "desktop.browser.list_instances": z$1.ZodObject<{
@@ -8257,6 +8419,56 @@ declare const desktopBrowserResultSchemas: {
8257
8419
  "desktop.browser.release_control": z$1.ZodObject<{
8258
8420
  ok: z$1.ZodLiteral<true>;
8259
8421
  }, z$1.core.$strip>;
8422
+ "desktop.browser.list_import_sources": z$1.ZodObject<{
8423
+ sources: z$1.ZodArray<z$1.ZodObject<{
8424
+ icon: z$1.ZodOptional<z$1.ZodString>;
8425
+ id: z$1.ZodEnum<{
8426
+ arc: "arc";
8427
+ brave: "brave";
8428
+ chrome: "chrome";
8429
+ chromium: "chromium";
8430
+ edge: "edge";
8431
+ firefox: "firefox";
8432
+ opera: "opera";
8433
+ safari: "safari";
8434
+ vivaldi: "vivaldi";
8435
+ }>;
8436
+ name: z$1.ZodString;
8437
+ profiles: z$1.ZodArray<z$1.ZodObject<{
8438
+ cookieCount: z$1.ZodOptional<z$1.ZodNumber>;
8439
+ directory: z$1.ZodString;
8440
+ name: z$1.ZodString;
8441
+ }, z$1.core.$strict>>;
8442
+ unavailable: z$1.ZodOptional<z$1.ZodEnum<{
8443
+ browserRunning: "browserRunning";
8444
+ keychainItemMissing: "keychainItemMissing";
8445
+ needsFullDiskAccess: "needsFullDiskAccess";
8446
+ needsKeychainApproval: "needsKeychainApproval";
8447
+ notInstalled: "notInstalled";
8448
+ unsupportedPlatform: "unsupportedPlatform";
8449
+ }>>;
8450
+ }, z$1.core.$strict>>;
8451
+ }, z$1.core.$strip>;
8452
+ "desktop.browser.import_cookies": z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
8453
+ imported: z$1.ZodNumber;
8454
+ ok: z$1.ZodLiteral<true>;
8455
+ skipped: z$1.ZodNumber;
8456
+ skippedDomains: z$1.ZodArray<z$1.ZodString>;
8457
+ }, z$1.core.$strict>, z$1.ZodObject<{
8458
+ ok: z$1.ZodLiteral<false>;
8459
+ reason: z$1.ZodEnum<{
8460
+ browserRunning: "browserRunning";
8461
+ keychainItemMissing: "keychainItemMissing";
8462
+ keychainUnavailable: "keychainUnavailable";
8463
+ needsFullDiskAccess: "needsFullDiskAccess";
8464
+ needsKeychainApproval: "needsKeychainApproval";
8465
+ notInstalled: "notInstalled";
8466
+ readFailed: "readFailed";
8467
+ unknownSource: "unknownSource";
8468
+ unknownSourceProfile: "unknownSourceProfile";
8469
+ unsupportedPlatform: "unsupportedPlatform";
8470
+ }>;
8471
+ }, z$1.core.$strict>], "ok">;
8260
8472
  };
8261
8473
  type DesktopBrowserCommand = z$1.infer<typeof desktopBrowserCommandSchema>;
8262
8474
  type DesktopBrowserCommandType = DesktopBrowserCommand["type"];
@@ -8483,6 +8695,7 @@ declare const installedPluginSchema: z$1.ZodObject<{
8483
8695
  incompatible: "incompatible";
8484
8696
  missing: "missing";
8485
8697
  running: "running";
8698
+ starting: "starting";
8486
8699
  }>;
8487
8700
  statusDetail: z$1.ZodNullable<z$1.ZodString>;
8488
8701
  updateState: z$1.ZodObject<{
@@ -8602,6 +8815,7 @@ declare const pluginListResponseSchema: z$1.ZodObject<{
8602
8815
  incompatible: "incompatible";
8603
8816
  missing: "missing";
8604
8817
  running: "running";
8818
+ starting: "starting";
8605
8819
  }>;
8606
8820
  statusDetail: z$1.ZodNullable<z$1.ZodString>;
8607
8821
  updateState: z$1.ZodObject<{
@@ -8723,6 +8937,7 @@ declare const pluginReloadResponseSchema: z$1.ZodObject<{
8723
8937
  incompatible: "incompatible";
8724
8938
  missing: "missing";
8725
8939
  running: "running";
8940
+ starting: "starting";
8726
8941
  }>;
8727
8942
  statusDetail: z$1.ZodNullable<z$1.ZodString>;
8728
8943
  updateState: z$1.ZodObject<{
@@ -9301,7 +9516,6 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
9301
9516
  }, z$1.core.$strict>>;
9302
9517
  experiments: z$1.ZodRecord<z$1.ZodEnum<{
9303
9518
  changelogPreview: "changelogPreview";
9304
- editMessages: "editMessages";
9305
9519
  mobileApp: "mobileApp";
9306
9520
  sidebarProgressiveDisclosure: "sidebarProgressiveDisclosure";
9307
9521
  timelineWindowing: "timelineWindowing";
@@ -9616,6 +9830,15 @@ declare const systemEnvironmentProviderSchema: z$1.ZodObject<{
9616
9830
  id: z$1.ZodString;
9617
9831
  inputs: z$1.ZodNullable<z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>>;
9618
9832
  logoUrl: z$1.ZodNullable<z$1.ZodString>;
9833
+ machineAvailability: z$1.ZodRecord<z$1.ZodString, z$1.ZodNullable<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
9834
+ status: z$1.ZodLiteral<"available">;
9835
+ }, z$1.core.$strip>, z$1.ZodObject<{
9836
+ message: z$1.ZodString;
9837
+ status: z$1.ZodLiteral<"setup-required">;
9838
+ }, z$1.core.$strip>, z$1.ZodObject<{
9839
+ message: z$1.ZodString;
9840
+ status: z$1.ZodLiteral<"unavailable">;
9841
+ }, z$1.core.$strip>], "status">>>;
9619
9842
  pluginId: z$1.ZodString;
9620
9843
  requires: z$1.ZodObject<{
9621
9844
  gitCheckout: z$1.ZodBoolean;
@@ -9626,6 +9849,15 @@ declare const systemEnvironmentProviderSchema: z$1.ZodObject<{
9626
9849
  }, z$1.core.$strip>;
9627
9850
  type SystemEnvironmentProvider = z$1.infer<typeof systemEnvironmentProviderSchema>;
9628
9851
 
9852
+ interface UiPreferencesResponse {
9853
+ preferences: UiPreferenceEntries;
9854
+ }
9855
+ interface UiPreferenceResponse<Key extends UiPreferenceKey = UiPreferenceKey> {
9856
+ key: Key;
9857
+ revision: number;
9858
+ value: UiPreferenceValue<Key>;
9859
+ }
9860
+
9629
9861
  declare const terminalSessionSchema: z$1.ZodObject<{
9630
9862
  closeReason: z$1.ZodNullable<z$1.ZodEnum<{
9631
9863
  "daemon-disconnect": "daemon-disconnect";
@@ -12466,6 +12698,7 @@ declare const threadWithIncludesResponseSchema: z$1.ZodObject<{
12466
12698
  path: z$1.ZodNullable<z$1.ZodString>;
12467
12699
  projectId: z$1.ZodString;
12468
12700
  status: z$1.ZodEnum<{
12701
+ creating: "creating";
12469
12702
  destroyed: "destroyed";
12470
12703
  error: "error";
12471
12704
  provisioning: "provisioning";
@@ -13096,6 +13329,7 @@ declare const threadTimelineQuerySchema: z$1.ZodObject<{
13096
13329
  }, z$1.core.$strip>;
13097
13330
  type ThreadTimelineQuery = z$1.infer<typeof threadTimelineQuerySchema>;
13098
13331
  declare const timelineTurnSummaryDetailsQuerySchema: z$1.ZodObject<{
13332
+ beforeCursor: z$1.ZodOptional<z$1.ZodString>;
13099
13333
  sourceSeqEnd: z$1.ZodString;
13100
13334
  sourceSeqStart: z$1.ZodString;
13101
13335
  turnId: z$1.ZodString;
@@ -13125,6 +13359,8 @@ declare const threadStorageLocationResponseSchema: z$1.ZodObject<{
13125
13359
  }, z$1.core.$strict>;
13126
13360
  type ThreadStorageLocationResponse = z$1.infer<typeof threadStorageLocationResponseSchema>;
13127
13361
  declare const timelineTurnSummaryDetailsResponseSchema: z$1.ZodObject<{
13362
+ historySnapshot: z$1.ZodOptional<z$1.ZodString>;
13363
+ olderCursor: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
13128
13364
  rows: z$1.ZodArray<z$1.ZodType<TimelineRow, unknown, z$1.core.$ZodTypeInternals<TimelineRow, unknown>>>;
13129
13365
  }, z$1.core.$strip>;
13130
13366
  type TimelineTurnSummaryDetailsResponse = z$1.infer<typeof timelineTurnSummaryDetailsResponseSchema>;
@@ -13391,7 +13627,14 @@ declare const threadTimelineResponseSchema: z$1.ZodObject<{
13391
13627
  }, z$1.core.$strip>>;
13392
13628
  rows: z$1.ZodArray<z$1.ZodType<TimelineRow, unknown, z$1.core.$ZodTypeInternals<TimelineRow, unknown>>>;
13393
13629
  timelinePage: z$1.ZodObject<{
13630
+ contentPage: z$1.ZodOptional<z$1.ZodObject<{
13631
+ anchorSeq: z$1.ZodNumber;
13632
+ end: z$1.ZodNumber;
13633
+ start: z$1.ZodNumber;
13634
+ total: z$1.ZodNumber;
13635
+ }, z$1.core.$strip>>;
13394
13636
  hasOlderRows: z$1.ZodBoolean;
13637
+ historySnapshot: z$1.ZodOptional<z$1.ZodString>;
13395
13638
  kind: z$1.ZodEnum<{
13396
13639
  latest: "latest";
13397
13640
  older: "older";
@@ -13490,6 +13733,34 @@ declare const desktopBrowserLeaseRequestSchema: z$1.ZodObject<{
13490
13733
  leaseId: z$1.ZodString;
13491
13734
  threadId: z$1.ZodString;
13492
13735
  }, z$1.core.$strict>;
13736
+ declare const desktopBrowserInstanceRequestSchema: z$1.ZodObject<{
13737
+ generation: z$1.ZodString;
13738
+ hostId: z$1.ZodString;
13739
+ instanceId: z$1.ZodString;
13740
+ }, z$1.core.$strict>;
13741
+ declare const desktopBrowserImportCookiesRequestSchema: z$1.ZodObject<{
13742
+ generation: z$1.ZodString;
13743
+ hostId: z$1.ZodString;
13744
+ instanceId: z$1.ZodString;
13745
+ profile: z$1.ZodDefault<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
13746
+ id: z$1.ZodString;
13747
+ kind: z$1.ZodLiteral<"automation">;
13748
+ }, z$1.core.$strip>, z$1.ZodObject<{
13749
+ kind: z$1.ZodLiteral<"personal">;
13750
+ }, z$1.core.$strip>], "kind">>;
13751
+ sourceId: z$1.ZodEnum<{
13752
+ arc: "arc";
13753
+ brave: "brave";
13754
+ chrome: "chrome";
13755
+ chromium: "chromium";
13756
+ edge: "edge";
13757
+ firefox: "firefox";
13758
+ opera: "opera";
13759
+ safari: "safari";
13760
+ vivaldi: "vivaldi";
13761
+ }>;
13762
+ sourceProfileDirectory: z$1.ZodString;
13763
+ }, z$1.core.$strict>;
13493
13764
  type ExperimentalDesktopBrowserHostRequest = z$1.infer<typeof desktopBrowserHostRequestSchema>;
13494
13765
  type ExperimentalDesktopBrowserScope = z$1.infer<typeof desktopBrowserScopeSchema>;
13495
13766
  type ExperimentalDesktopBrowserTabRequest = z$1.infer<typeof desktopBrowserTabRequestSchema>;
@@ -13515,6 +13786,10 @@ type ExperimentalDesktopBrowserConnection = {
13515
13786
  wsEndpoint: string;
13516
13787
  expiresAt: number;
13517
13788
  };
13789
+ type ExperimentalDesktopBrowserInstanceRequest = z$1.infer<typeof desktopBrowserInstanceRequestSchema>;
13790
+ type ExperimentalDesktopBrowserImportCookiesInput = z$1.input<typeof desktopBrowserImportCookiesRequestSchema>;
13791
+ type ExperimentalDesktopBrowserImportSources = DesktopBrowserResult<"desktop.browser.list_import_sources">;
13792
+ type ExperimentalDesktopBrowserImportOutcome = DesktopBrowserResult<"desktop.browser.import_cookies">;
13518
13793
 
13519
13794
  declare const threadTabsResponseSchema: z$1.ZodObject<{
13520
13795
  revision: z$1.ZodNumber;
@@ -15898,6 +16173,14 @@ interface MarkdownProps {
15898
16173
  /** Markdown source, rendered exactly like a chat message body. */
15899
16174
  content: string;
15900
16175
  className?: string;
16176
+ /** Resolve local destinations from this document; omission keeps message routing. */
16177
+ experimental_document?: {
16178
+ threadId: string;
16179
+ rootPath: string;
16180
+ target: Exclude<ExperimentalLiveFileTarget, {
16181
+ kind: "host";
16182
+ }>;
16183
+ };
15901
16184
  }
15902
16185
  /**
15903
16186
  * Props for BB's semantic URL link. The host owns ordinary activation while
@@ -16191,7 +16474,7 @@ interface PluginEnvironmentProviderValidateContext<R extends PluginEnvironmentPr
16191
16474
  }
16192
16475
  interface PluginEnvironmentProviderAvailabilityContext {
16193
16476
  project: Project;
16194
- host: Host | null;
16477
+ host: Host;
16195
16478
  projectCheckout: {
16196
16479
  path: string;
16197
16480
  } | null;
@@ -16229,7 +16512,6 @@ type PluginEnvironmentProviderCreateResult = {
16229
16512
  resource?: JsonValue$2;
16230
16513
  } | {
16231
16514
  status: "failed";
16232
- failure: "terminal" | "transient";
16233
16515
  message: string;
16234
16516
  };
16235
16517
  interface PluginEnvironmentProviderRemoveContext {
@@ -16264,7 +16546,7 @@ interface PluginEnvironmentProviderDefinition<R extends PluginEnvironmentProvide
16264
16546
  requires?: R;
16265
16547
  inputs?: S;
16266
16548
  policy?: Partial<PluginEnvironmentProviderPolicy>;
16267
- /** Experimental: see docs/api_to_audit.md. */
16549
+ /** Experimental per-machine availability, probed in the background for pickers and again at thread creation: see docs/api_to_audit.md. */
16268
16550
  availability?(context: PluginEnvironmentProviderAvailabilityContext): PluginEnvironmentProviderAvailability | Promise<PluginEnvironmentProviderAvailability>;
16269
16551
  validate?(context: PluginEnvironmentProviderValidateContext<R, S>): PluginEnvironmentValidateDecision$1 | Promise<PluginEnvironmentValidateDecision$1>;
16270
16552
  create(context: PluginEnvironmentProviderCreateContext<R, S>): Promise<PluginEnvironmentProviderCreateResult>;
@@ -16287,6 +16569,8 @@ interface ExperimentalDesktopBrowsersArea {
16287
16569
  ok: true;
16288
16570
  }>;
16289
16571
  captureTab(input: ExperimentalDesktopBrowserTabRequest): Promise<ExperimentalDesktopBrowserCapture>;
16572
+ listImportSources(input: ExperimentalDesktopBrowserInstanceRequest): Promise<ExperimentalDesktopBrowserImportSources>;
16573
+ importCookies(input: ExperimentalDesktopBrowserImportCookiesInput): Promise<ExperimentalDesktopBrowserImportOutcome>;
16290
16574
  subscribe(input: ExperimentalDesktopBrowserScope & {
16291
16575
  onChange: (result: ExperimentalDesktopBrowserTabs) => void;
16292
16576
  onError: (error: Error) => void;
@@ -16427,6 +16711,8 @@ interface FileListArgs {
16427
16711
  path: string;
16428
16712
  query?: string;
16429
16713
  limit?: number;
16714
+ includeHidden?: boolean;
16715
+ excludeNames?: string[];
16430
16716
  signal?: AbortSignal;
16431
16717
  }
16432
16718
  interface PathListArgs extends FileListArgs {
@@ -17086,6 +17372,24 @@ interface SystemProviderStatesArgs extends SystemProvidersQuery {
17086
17372
  }
17087
17373
  type SystemProviderStatesResult = SystemProviderStatesResponse;
17088
17374
  type SystemVersionResult = SystemVersionResponse;
17375
+ interface SystemUiPreferencesArgs {
17376
+ signal?: AbortSignal;
17377
+ }
17378
+ type SystemUiPreferencesResult = UiPreferencesResponse;
17379
+ interface SystemUpdateUiPreferenceArgs<Key extends UiPreferenceKey> {
17380
+ expectedRevision: number;
17381
+ key: Key;
17382
+ value: UiPreferenceValue<Key>;
17383
+ }
17384
+ interface SystemResetUiPreferenceArgs<Key extends UiPreferenceKey> {
17385
+ key: Key;
17386
+ }
17387
+ type SystemUiPreferenceResult<Key extends UiPreferenceKey> = UiPreferenceResponse<Key>;
17388
+ interface SystemUiPreferencesArea {
17389
+ list(args?: SystemUiPreferencesArgs): Promise<SystemUiPreferencesResult>;
17390
+ set<Key extends UiPreferenceKey>(args: SystemUpdateUiPreferenceArgs<Key>): Promise<SystemUiPreferenceResult<Key>>;
17391
+ reset<Key extends UiPreferenceKey>(args: SystemResetUiPreferenceArgs<Key>): Promise<SystemUiPreferenceResult<Key>>;
17392
+ }
17089
17393
  interface SystemArea {
17090
17394
  attention(args?: SystemAttentionArgs): Promise<SystemAttentionResult>;
17091
17395
  config(args?: SystemConfigArgs): Promise<SystemConfigResult>;
@@ -17094,6 +17398,7 @@ interface SystemArea {
17094
17398
  installCliSkills(args: SystemInstallCliSkillsArgs): Promise<SystemInstallCliSkillsResult>;
17095
17399
  reloadConfig(): Promise<SystemReloadConfigResult>;
17096
17400
  transcribeVoice(args: SystemVoiceTranscriptionArgs): Promise<SystemVoiceTranscriptionResult>;
17401
+ uiPreferences: SystemUiPreferencesArea;
17097
17402
  updateExperiments(args: Experiments): Promise<SystemUpdateExperimentsResult>;
17098
17403
  updateGeneralSettings(args: AppSettingsUpdate): Promise<SystemUpdateGeneralSettingsResult>;
17099
17404
  updateKeyboardSettings(args: AppKeybindingOverrides): Promise<SystemUpdateKeyboardSettingsResult>;
@@ -18018,11 +18323,10 @@ type PluginThreadEventHandler<E extends PluginThreadEventName> = (payload: Plugi
18018
18323
  * that machine, git or not, so core refuses a machine with no checkout of
18019
18324
  * the project at create time and `context.projectCheckout` is non-null.
18020
18325
  * - `gitCheckout` — that directory must also be a git repository with at
18021
- * least one commit. The picker greys the row out where it is not, and core
18022
- * rejects an explicit selection using the same machine inspection before
18023
- * creating the thread. Implies `projectCheckout`.
18024
- * - `gitRemote` — the provider clones the project itself, so it is greyed out
18025
- * in a project with no git remote and an explicit selection is rejected.
18326
+ * least one commit. Core inspects the selected machine and rejects an
18327
+ * invalid selection before creating the thread. Implies `projectCheckout`.
18328
+ * - `gitRemote` — the provider clones the project itself, so an explicit
18329
+ * selection is rejected when the project has no git remote.
18026
18330
  * - `projectless` — this provider serves only threads that have no project,
18027
18331
  * so it is offered for those and nowhere else. It cannot be combined with
18028
18332
  * `projectCheckout`, `gitCheckout` or `gitRemote`, which need a project.
@@ -18057,9 +18361,8 @@ interface PluginEnvironments {
18057
18361
  register<const Requires extends PluginEnvironmentProviderRequirements, const Inputs extends PluginEnvironmentProviderInputsSchema = undefined>(declaration: PluginEnvironmentProviderDeclaration<Requires, Inputs>): void;
18058
18362
  /**
18059
18363
  * Ask core to re-ask this plugin's waiting providers now instead of at their
18060
- * `sendAt` — call it whenever a launch advances (progress text changed, the
18061
- * environment became ready, a failure was recorded). Resolves on
18062
- * scheduling, exactly like `experimental_hooks.recheck`.
18364
+ * `sendAt`. Resolves on scheduling, exactly like
18365
+ * `experimental_hooks.recheck`.
18063
18366
  */
18064
18367
  recheck(): Promise<void>;
18065
18368
  }
@@ -3761,6 +3761,20 @@ function createFakePluginHostInternal(options, sharedState) {
3761
3761
  }
3762
3762
 
3763
3763
  // src/testing/fixtures.ts
3764
+ function makeHostResponse(overrides = {}) {
3765
+ return {
3766
+ id: "host-1",
3767
+ name: "Test host",
3768
+ status: "connected",
3769
+ type: "persistent",
3770
+ maxPermissionMode: "full",
3771
+ lastSeenAt: null,
3772
+ lastRejectedProtocolVersion: null,
3773
+ createdAt: 0,
3774
+ updatedAt: 0,
3775
+ ...overrides
3776
+ };
3777
+ }
3764
3778
  function makeThreadResponse(overrides = {}) {
3765
3779
  return {
3766
3780
  id: "thread-1",
@@ -4079,6 +4093,7 @@ export {
4079
4093
  createFakePluginHost,
4080
4094
  createFakeSdk,
4081
4095
  scanPublicSdkOnly as experimental_scanPublicSdkOnly,
4096
+ makeHostResponse,
4082
4097
  makeMessageDispatchHookContext,
4083
4098
  makePluginAgentConfigurationContext,
4084
4099
  makeQueueEntry,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@get-bb/plugin-sdk",
3
- "version": "0.4.50",
3
+ "version": "0.4.55",
4
4
  "homepage": "https://github.com/get-bb/bb#readme",
5
5
  "bugs": {
6
6
  "url": "https://github.com/get-bb/bb/issues"