@get-bb/plugin-sdk 0.4.22 → 0.4.27

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.
@@ -42,10 +42,6 @@ interface ProviderNativeRootsInputLike {
42
42
  readonly project?: readonly ProviderNativeRootInput[];
43
43
  }
44
44
 
45
- /**
46
- * App-wide server-backed preferences.
47
- * Client-local settings stay in the frontend localStorage helpers instead.
48
- */
49
45
  declare const appSettingsSchema: z$1.ZodObject<{
50
46
  defaultProviderId: z$1.ZodNullable<z$1.ZodString>;
51
47
  providerOrder: z$1.ZodArray<z$1.ZodString>;
@@ -156,12 +152,6 @@ declare const appThemeSchema: z$1.ZodObject<{
156
152
  themeId: z$1.ZodString;
157
153
  }, z$1.core.$strip>;
158
154
  type AppTheme = z$1.infer<typeof appThemeSchema>;
159
- /**
160
- * The complete appearance selection a client sends when changing the palette
161
- * and/or favicon tint. The server validates `themeId` (built-in id or an
162
- * existing custom theme) and resolves the CSS from disk for custom themes.
163
- * Callers changing only one facet must carry the other facet forward explicitly.
164
- */
165
155
  declare const appThemeSelectionSchema: z$1.ZodObject<{
166
156
  faviconColor: z$1.ZodEnum<{
167
157
  blue: "blue";
@@ -649,7 +639,6 @@ declare const pluginPendingInteractionSchema: z$1.ZodObject<{
649
639
  type PluginPendingInteraction = z$1.infer<typeof pluginPendingInteractionSchema>;
650
640
  type PendingInteraction = ProviderPendingInteraction | PluginPendingInteraction;
651
641
 
652
- /** All thread events — provider-originated or system-originated. */
653
642
  declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readonly [z$1.ZodIntersection<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
654
643
  threadId: z$1.ZodString;
655
644
  type: z$1.ZodLiteral<"thread/started">;
@@ -3149,22 +3138,6 @@ declare const projectExecutionDefaultsSchema: z$1.ZodObject<{
3149
3138
  }, z$1.core.$strip>;
3150
3139
  type ProjectExecutionDefaults = z$1.infer<typeof projectExecutionDefaultsSchema>;
3151
3140
 
3152
- /**
3153
- * How completely a provider can clone one of its sessions — the single
3154
- * vocabulary shared by the provider declaration
3155
- * (`bb.providers.register`), the server→daemon
3156
- * `bridgeLaunch`, and the bridge's `initialize` handshake.
3157
- *
3158
- * - `"none"`: sessions cannot be cloned at all.
3159
- * - `"tip"`: only the current end of a session can be cloned (ACP
3160
- * `session/fork`), so thread fork works but edit-past-message rewind
3161
- * cannot.
3162
- * - `"checkpoint"`: a session can be recreated at an earlier point, which is
3163
- * what edit-past-message rewind needs.
3164
- *
3165
- * The values are ordered least to most capable: a declaration is a ceiling
3166
- * the handshake may narrow but never widen.
3167
- */
3168
3141
  declare const PROVIDER_FORK_VALUES: readonly ["none", "tip", "checkpoint"];
3169
3142
  type ProviderFork = (typeof PROVIDER_FORK_VALUES)[number];
3170
3143
 
@@ -3741,7 +3714,6 @@ declare const commandListResponseSchema: z$1.ZodObject<{
3741
3714
  }, z$1.core.$strip>>;
3742
3715
  }, z$1.core.$strip>;
3743
3716
  type CommandListResponse = z$1.infer<typeof commandListResponseSchema>;
3744
- /** Query for the complete command catalog available to a project and provider. */
3745
3717
  declare const projectCommandsQuerySchema: z$1.ZodObject<{
3746
3718
  environmentId: z$1.ZodOptional<z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodOptional<z$1.ZodString>>>;
3747
3719
  hostId: z$1.ZodOptional<z$1.ZodString>;
@@ -4204,11 +4176,6 @@ declare const registrySkillDetailSchema: z$1.ZodObject<{
4204
4176
  source: z$1.ZodString;
4205
4177
  }, z$1.core.$strip>;
4206
4178
  type RegistrySkillDetail = z$1.infer<typeof registrySkillDetailSchema>;
4207
- /**
4208
- * Entries that could not be resolved (dead detail page, malformed id) are
4209
- * omitted rather than failing the batch: each entry is independent upstream,
4210
- * and callers already treat a missing entry as "unknown" per card.
4211
- */
4212
4179
  declare const registrySkillEntriesResponseSchema: z$1.ZodObject<{
4213
4180
  entries: z$1.ZodArray<z$1.ZodObject<{
4214
4181
  id: z$1.ZodString;
@@ -4235,12 +4202,6 @@ declare const updateEnvironmentRequestSchema: z$1.ZodObject<{
4235
4202
  name: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
4236
4203
  }, z$1.core.$strip>;
4237
4204
  type UpdateEnvironmentRequest = z$1.infer<typeof updateEnvironmentRequestSchema>;
4238
- /**
4239
- * Query for searching paths in an environment's workspace. Unlike the
4240
- * project-scoped variant this needs no `environmentId` — the environment is
4241
- * the route param — and is project-agnostic, so it works for projectless
4242
- * (personal) environments too.
4243
- */
4244
4205
  declare const environmentPathsQuerySchema: z$1.ZodObject<{
4245
4206
  includeDirectories: z$1.ZodEnum<{
4246
4207
  false: "false";
@@ -4292,18 +4253,6 @@ declare const environmentDiffQuerySchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObje
4292
4253
  target: z$1.ZodLiteral<"commit">;
4293
4254
  }, z$1.core.$strip>], "target">;
4294
4255
  type EnvironmentDiffQuery = z$1.infer<typeof environmentDiffQuerySchema>;
4295
- /**
4296
- * Query for fetching a single file's contents at one side of a diff target.
4297
- * Used by the diff card to reparse the card's patch with full old/new contents
4298
- * so `@pierre/diffs` can render expand-context buttons between hunks.
4299
- *
4300
- * For `branch_committed` / `all`, callers pass the resolved merge-base SHA
4301
- * (`mergeBaseRef`, surfaced by `workspace.diff`) rather than the branch name
4302
- * — the diff itself was computed against that SHA, so reading the old side
4303
- * from the same SHA keeps the file content aligned with the hunk line
4304
- * numbers. Reading from the branch tip is wrong whenever the branch has
4305
- * moved past the merge-base since the file existed there.
4306
- */
4307
4256
  declare const environmentDiffFileQuerySchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4308
4257
  path: z$1.ZodString;
4309
4258
  side: z$1.ZodEnum<{
@@ -4503,13 +4452,6 @@ declare const environmentStatusResponseSchema: z$1.ZodDiscriminatedUnion<[z$1.Zo
4503
4452
  }, z$1.core.$strict>;
4504
4453
  outcome: z$1.ZodLiteral<"unavailable">;
4505
4454
  }, z$1.core.$strict>], "outcome">;
4506
- /**
4507
- * Structured pull-request lookup outcome. "absent" is a real answer — the
4508
- * host checked and the branch has no PR (non-git environments resolve to
4509
- * "absent" without a daemon call). "unavailable" means the lookup itself
4510
- * failed (gh missing, not authenticated, timeout, unreachable workspace), so
4511
- * callers must not render it as "no PR exists".
4512
- */
4513
4455
  declare const environmentPullRequestResponseSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4514
4456
  outcome: z$1.ZodLiteral<"available">;
4515
4457
  pullRequest: z$1.ZodObject<{
@@ -4712,13 +4654,6 @@ declare const environmentDiffPatchResponseSchema: z$1.ZodDiscriminatedUnion<[z$1
4712
4654
  outcome: z$1.ZodLiteral<"unavailable">;
4713
4655
  }, z$1.core.$strict>], "outcome">;
4714
4656
  type EnvironmentDiffPatchResponse = z$1.infer<typeof environmentDiffPatchResponseSchema>;
4715
- /**
4716
- * Body for `POST /diff/patch`: the diff target plus the list of new paths whose
4717
- * patches the client wants. A POST (not GET) because the repeated `paths` array
4718
- * cannot survive flat query parsing. The client supplies only new paths; the
4719
- * server re-derives each file's rename/copy pairing (`previousPath`) from its
4720
- * own TOC.
4721
- */
4722
4657
  declare const environmentDiffPatchRequestSchema: z$1.ZodObject<{
4723
4658
  paths: z$1.ZodArray<z$1.ZodString>;
4724
4659
  target: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
@@ -4737,7 +4672,6 @@ declare const environmentDiffPatchRequestSchema: z$1.ZodObject<{
4737
4672
  type EnvironmentDiffPatchRequest = z$1.infer<typeof environmentDiffPatchRequestSchema>;
4738
4673
  type EnvironmentStatusResponse = z$1.infer<typeof environmentStatusResponseSchema>;
4739
4674
 
4740
- /** Provider-id keyed usage returned by the public server aggregation route. */
4741
4675
  declare const providerUsageResponseSchema: z$1.ZodRecord<z$1.ZodString, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4742
4676
  accountEmail: z$1.ZodNullable<z$1.ZodString>;
4743
4677
  planLabel: z$1.ZodNullable<z$1.ZodString>;
@@ -5961,6 +5895,7 @@ declare const hostDaemonCommandRegistry: {
5961
5895
  }, z$1.core.$strip>, "settled", false>;
5962
5896
  "environment.destroy": HostDaemonCommandDescriptor<"environment.destroy", z$1.ZodObject<{
5963
5897
  environmentId: z$1.ZodString;
5898
+ teardownTimeoutMs: z$1.ZodNumber;
5964
5899
  type: z$1.ZodLiteral<"environment.destroy">;
5965
5900
  workspaceContext: z$1.ZodObject<{
5966
5901
  workspacePath: z$1.ZodString;
@@ -5970,7 +5905,23 @@ declare const hostDaemonCommandRegistry: {
5970
5905
  unmanaged: "unmanaged";
5971
5906
  }>;
5972
5907
  }, z$1.core.$strip>;
5973
- }, z$1.core.$strict>, z$1.ZodObject<{}, z$1.core.$strip>, "settled", false>;
5908
+ }, z$1.core.$strict>, z$1.ZodObject<{
5909
+ transcript: z$1.ZodArray<z$1.ZodObject<{
5910
+ key: z$1.ZodString;
5911
+ metadata: z$1.ZodOptional<z$1.ZodRecord<z$1.ZodString, z$1.ZodUnknown>>;
5912
+ startedAt: z$1.ZodOptional<z$1.ZodNumber>;
5913
+ status: z$1.ZodOptional<z$1.ZodEnum<{
5914
+ completed: "completed";
5915
+ failed: "failed";
5916
+ started: "started";
5917
+ }>>;
5918
+ text: z$1.ZodString;
5919
+ type: z$1.ZodEnum<{
5920
+ output: "output";
5921
+ step: "step";
5922
+ }>;
5923
+ }, z$1.core.$strip>>;
5924
+ }, z$1.core.$strict>, "settled", false>;
5974
5925
  "workspace.commit": HostDaemonCommandDescriptor<"workspace.commit", z$1.ZodObject<{
5975
5926
  environmentId: z$1.ZodString;
5976
5927
  message: z$1.ZodString;
@@ -7354,12 +7305,6 @@ type HostMkdirResponse = HostDaemonOnlineRpcResultByType["host.mkdir"];
7354
7305
  type HostMovePathResponse = HostDaemonOnlineRpcResultByType["host.move_path"];
7355
7306
  type HostRemovePathResponse = HostDaemonOnlineRpcResultByType["host.remove_path"];
7356
7307
 
7357
- /**
7358
- * Query for `GET /hosts/:id/directory`, the interactive path browser's
7359
- * single-level directory read. `path` is an absolute directory on the host;
7360
- * omitting it lists the host's home directory (the daemon resolves it, since a
7361
- * remote caller cannot know the host's home).
7362
- */
7363
7308
  declare const hostDirectoryQuerySchema: z$1.ZodObject<{
7364
7309
  path: z$1.ZodOptional<z$1.ZodString>;
7365
7310
  }, z$1.core.$strip>;
@@ -7377,7 +7322,6 @@ declare const hostDirectoryListingSchema: z$1.ZodObject<{
7377
7322
  parent: z$1.ZodNullable<z$1.ZodString>;
7378
7323
  }, z$1.core.$strip>;
7379
7324
  type HostDirectoryListing = z$1.infer<typeof hostDirectoryListingSchema>;
7380
- /** Project name is sent so the daemon can derive its host-local checkout path. */
7381
7325
  declare const hostCloneDefaultPathQuerySchema: z$1.ZodObject<{
7382
7326
  projectId: z$1.ZodString;
7383
7327
  }, z$1.core.$strip>;
@@ -7876,12 +7820,6 @@ declare const pluginCatalogSearchResultSchema: z$1.ZodObject<{
7876
7820
  source: z$1.ZodString;
7877
7821
  }, z$1.core.$strip>;
7878
7822
  type PluginCatalogSearchResult$1 = z$1.infer<typeof pluginCatalogSearchResultSchema>;
7879
- /**
7880
- * The true source an install will run against, resolved before anything runs.
7881
- * Both kinds report the exact artifact they resolve to right now — a commit
7882
- * for git, a version and its integrity for npm — so a range or tag install is
7883
- * confirmed against the exact code it will fetch.
7884
- */
7885
7823
  declare const pluginCatalogResolvedSourceSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
7886
7824
  kind: z$1.ZodLiteral<"npm">;
7887
7825
  package: z$1.ZodString;
@@ -7903,11 +7841,6 @@ declare const pluginCatalogResolvedSourceSchema: z$1.ZodDiscriminatedUnion<[z$1.
7903
7841
  url: z$1.ZodString;
7904
7842
  }, z$1.core.$strict>], "kind">;
7905
7843
  type PluginCatalogResolvedSource = z$1.infer<typeof pluginCatalogResolvedSourceSchema>;
7906
- /**
7907
- * What `POST /plugin-catalog/install` would do with the same arguments, shown
7908
- * to the user before anything runs. `bundled` entries install from the copy
7909
- * inside the app; `marketplace` entries install from their listed source.
7910
- */
7911
7844
  declare const pluginCatalogInstallPlanSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
7912
7845
  compatible: z$1.ZodBoolean;
7913
7846
  displayName: z$1.ZodString;
@@ -8157,11 +8090,6 @@ declare const systemExecutionOptionsResponseSchema: z$1.ZodObject<{
8157
8090
  }, z$1.core.$strip>>;
8158
8091
  }, z$1.core.$strip>;
8159
8092
  type SystemExecutionOptionsResponse = z$1.infer<typeof systemExecutionOptionsResponseSchema>;
8160
- /**
8161
- * Routes provider discovery through an environment's host or an explicit
8162
- * host. Omitting both preserves the primary-host fallback. `capability`
8163
- * narrows discovery before host probes begin.
8164
- */
8165
8093
  declare const systemProvidersQuerySchema: z$1.ZodObject<{
8166
8094
  capability: z$1.ZodOptional<z$1.ZodEnum<{
8167
8095
  usage: "usage";
@@ -8176,10 +8104,6 @@ declare const systemExecutionOptionsQuerySchema: z$1.ZodObject<{
8176
8104
  providerId: z$1.ZodOptional<z$1.ZodString>;
8177
8105
  }, z$1.core.$strip>;
8178
8106
  type SystemExecutionOptionsQuery = z$1.infer<typeof systemExecutionOptionsQuerySchema>;
8179
- /**
8180
- * Omitting `hostId` reads the primary machine; omitting `providerId` returns
8181
- * the aggregate used by CLI clients.
8182
- */
8183
8107
  declare const systemUsageLimitsQuerySchema: z$1.ZodObject<{
8184
8108
  hostId: z$1.ZodOptional<z$1.ZodString>;
8185
8109
  providerId: z$1.ZodOptional<z$1.ZodString>;
@@ -8565,10 +8489,6 @@ declare const systemAttentionResponseSchema: z$1.ZodObject<{
8565
8489
  hasAttention: z$1.ZodBoolean;
8566
8490
  }, z$1.core.$strip>;
8567
8491
  type SystemAttentionResponse = z$1.infer<typeof systemAttentionResponseSchema>;
8568
- /**
8569
- * Theme catalog: the on-disk custom-theme directory plus the discovered custom
8570
- * themes and the active palette. Drives `bb theme list` / `bb theme dir`.
8571
- */
8572
8492
  declare const themeCatalogResponseSchema: z$1.ZodObject<{
8573
8493
  active: z$1.ZodObject<{
8574
8494
  customCss: z$1.ZodNullable<z$1.ZodString>;
@@ -8625,16 +8545,10 @@ declare const systemCliSkillsStatusResponseSchema: z$1.ZodObject<{
8625
8545
  }, z$1.core.$strip>>;
8626
8546
  }, z$1.core.$strip>;
8627
8547
  type SystemCliSkillsStatusResponse = z$1.infer<typeof systemCliSkillsStatusResponseSchema>;
8628
- /** The machines to copy the built-in bb CLI skills onto. */
8629
8548
  declare const systemInstallCliSkillsRequestSchema: z$1.ZodObject<{
8630
8549
  hostIds: z$1.ZodArray<z$1.ZodString>;
8631
8550
  }, z$1.core.$strip>;
8632
8551
  type SystemInstallCliSkillsRequest = z$1.infer<typeof systemInstallCliSkillsRequestSchema>;
8633
- /**
8634
- * One entry per requested machine. A machine that is offline or otherwise
8635
- * refuses the install fails on its own without taking the others down, so the
8636
- * caller can report exactly which machines got the skills.
8637
- */
8638
8552
  declare const systemInstallCliSkillsResponseSchema: z$1.ZodObject<{
8639
8553
  results: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
8640
8554
  hostId: z$1.ZodString;
@@ -9280,11 +9194,6 @@ declare const timelineImageViewWorkRowSchema: z$1.ZodObject<{
9280
9194
  workKind: z$1.ZodLiteral<"image-view">;
9281
9195
  }, z$1.core.$strip>;
9282
9196
  type TimelineImageViewWorkRow = z$1.infer<typeof timelineImageViewWorkRowSchema>;
9283
- /**
9284
- * A file the agent read (grammar v3 `fileRead`). `cmd` is the native shell
9285
- * form when the provider read through a command rather than a structured
9286
- * tool; null for a structured read.
9287
- */
9288
9197
  declare const timelineFileReadWorkRowSchema: z$1.ZodObject<{
9289
9198
  callId: z$1.ZodString;
9290
9199
  cmd: z$1.ZodNullable<z$1.ZodString>;
@@ -9323,12 +9232,6 @@ declare const timelineFileReadWorkRowSchema: z$1.ZodObject<{
9323
9232
  workKind: z$1.ZodLiteral<"file-read">;
9324
9233
  }, z$1.core.$strip>;
9325
9234
  type TimelineFileReadWorkRow = z$1.infer<typeof timelineFileReadWorkRowSchema>;
9326
- /**
9327
- * An exploration search (grammar v3 `search`): `content` searches inside
9328
- * files, `path` matches file names, `list` enumerates a directory. `query`
9329
- * is the pattern (empty for a whole-directory listing); `path` is the root
9330
- * the search ran under when the provider named one.
9331
- */
9332
9235
  declare const timelineSearchWorkRowSchema: z$1.ZodObject<{
9333
9236
  callId: z$1.ZodString;
9334
9237
  cmd: z$1.ZodNullable<z$1.ZodString>;
@@ -9373,11 +9276,6 @@ declare const timelineSearchWorkRowSchema: z$1.ZodObject<{
9373
9276
  workKind: z$1.ZodLiteral<"search">;
9374
9277
  }, z$1.core.$strip>;
9375
9278
  type TimelineSearchWorkRow = z$1.infer<typeof timelineSearchWorkRowSchema>;
9376
- /**
9377
- * A structured plan snapshot the agent maintains (grammar v3 `planSteps`:
9378
- * codex `update_plan`, the Claude TodoWrite/Task family). Each row carries
9379
- * the full step list of one snapshot; the todo banner reads the latest.
9380
- */
9381
9279
  declare const timelinePlanStepsWorkRowSchema: z$1.ZodObject<{
9382
9280
  callId: z$1.ZodString;
9383
9281
  completedAt: z$1.ZodNullable<z$1.ZodNumber>;
@@ -9424,13 +9322,6 @@ declare const timelinePlanStepsWorkRowSchema: z$1.ZodObject<{
9424
9322
  workKind: z$1.ZodLiteral<"plan-steps">;
9425
9323
  }, z$1.core.$strip>;
9426
9324
  type TimelinePlanStepsWorkRow = z$1.infer<typeof timelinePlanStepsWorkRowSchema>;
9427
- /**
9428
- * A plugin-defined item kind outside the core vocabulary
9429
- * (`extensionKind` is `"<pluginId>/<name>"`). The payload is the plugin's
9430
- * declared shape, validated at ingest and opaque here. `presentation` is
9431
- * required: the declarative base is the only thing every client can render,
9432
- * and a plugin web renderer registered for the kind is an upgrade on top.
9433
- */
9434
9325
  declare const timelineExtensionWorkRowSchema: z$1.ZodObject<{
9435
9326
  callId: z$1.ZodString;
9436
9327
  completedAt: z$1.ZodNullable<z$1.ZodNumber>;
@@ -9573,12 +9464,6 @@ declare const timelineQuestionWorkRowSchema: z$1.ZodObject<{
9573
9464
  workKind: z$1.ZodLiteral<"question">;
9574
9465
  }, z$1.core.$strip>;
9575
9466
  type TimelineQuestionWorkRow = z$1.infer<typeof timelineQuestionWorkRowSchema>;
9576
- /**
9577
- * Work the agent delegated to a child agent. `childRef` is the provider-
9578
- * native id of the child (grammar v3 `delegation`); null for rows projected
9579
- * from a legacy delegation tool call, whose child is linked by turn parentage
9580
- * alone. `background` marks a delegation that outlives its spawning turn.
9581
- */
9582
9467
  interface TimelineDelegationWorkRow extends TimelineWorkRowBase {
9583
9468
  workKind: "delegation";
9584
9469
  callId: string;
@@ -9592,17 +9477,6 @@ interface TimelineDelegationWorkRow extends TimelineWorkRowBase {
9592
9477
  childRows: TimelineRow[];
9593
9478
  presentation?: TimelineRowPresentation;
9594
9479
  }
9595
- /**
9596
- * A provider background task — a dynamic workflow (Claude Code Workflow tool)
9597
- * or a backgrounded shell command (Bash run_in_background), discriminated by
9598
- * `taskType`. The row outlives its spawning turn: progress and terminal state
9599
- * arrive via thread-scoped events folded into this single row. `workflow` is
9600
- * the merged phase/agent tree, present only for workflows; null for shell
9601
- * commands and for workflows the provider reported no progress records for
9602
- * (degraded rendering falls back to description + summary). `model` is the
9603
- * spawning delegation's requested model for background agents; null for
9604
- * commands, workflows, legacy events, and providers that do not expose it.
9605
- */
9606
9480
  declare const timelineWorkflowWorkRowSchema: z$1.ZodObject<{
9607
9481
  completedAt: z$1.ZodNullable<z$1.ZodNumber>;
9608
9482
  createdAt: z$1.ZodNumber;
@@ -11494,11 +11368,6 @@ declare const reorderPinnedThreadRequestSchema: z$1.ZodObject<{
11494
11368
  previousThreadId: z$1.ZodNullable<z$1.ZodString>;
11495
11369
  }, z$1.core.$strip>;
11496
11370
  type ReorderPinnedThreadRequest = z$1.infer<typeof reorderPinnedThreadRequestSchema>;
11497
- /**
11498
- * Requested placement for a thread opened in the app's split layout. Edge
11499
- * placements add panes through the eighth pane; at the cap they replace the
11500
- * focused pane. `replace` always replaces the focused pane.
11501
- */
11502
11371
  declare const threadOpenSplitSchema: z$1.ZodEnum<{
11503
11372
  down: "down";
11504
11373
  left: "left";
@@ -11507,7 +11376,6 @@ declare const threadOpenSplitSchema: z$1.ZodEnum<{
11507
11376
  top: "top";
11508
11377
  }>;
11509
11378
  type ThreadOpenSplit = z$1.infer<typeof threadOpenSplitSchema>;
11510
- /** Optional secondary-panel file to open with a thread. */
11511
11379
  declare const threadOpenFileSchema: z$1.ZodObject<{
11512
11380
  lineNumber: z$1.ZodNullable<z$1.ZodNumber>;
11513
11381
  path: z$1.ZodString;
@@ -11517,12 +11385,10 @@ declare const threadOpenFileSchema: z$1.ZodObject<{
11517
11385
  }>;
11518
11386
  }, z$1.core.$strict>;
11519
11387
  type ThreadOpenFile = z$1.infer<typeof threadOpenFileSchema>;
11520
- /** Response for POST /threads/:id/open: how many connected clients received it. */
11521
11388
  declare const threadOpenResponseSchema: z$1.ZodObject<{
11522
11389
  delivered: z$1.ZodNumber;
11523
11390
  }, z$1.core.$strip>;
11524
11391
  type ThreadOpenResponse = z$1.infer<typeof threadOpenResponseSchema>;
11525
- /** Presentation action for one thread pane in each connected app window. */
11526
11392
  declare const threadPaneActionSchema: z$1.ZodEnum<{
11527
11393
  "clear-spotlight": "clear-spotlight";
11528
11394
  maximize: "maximize";
@@ -11531,7 +11397,6 @@ declare const threadPaneActionSchema: z$1.ZodEnum<{
11531
11397
  toggle: "toggle";
11532
11398
  }>;
11533
11399
  type ThreadPaneAction = z$1.infer<typeof threadPaneActionSchema>;
11534
- /** Number of connected app clients that received the pane action. */
11535
11400
  declare const threadPaneActionResponseSchema: z$1.ZodObject<{
11536
11401
  delivered: z$1.ZodNumber;
11537
11402
  }, z$1.core.$strip>;
@@ -12351,15 +12216,14 @@ interface PluginThreadListProps {
12351
12216
  /** True on phone-width viewports and coarse pointers. */
12352
12217
  isCompactViewport: boolean;
12353
12218
  /**
12354
- * Call after the user opens a thread. It closes the mobile sidebar drawer,
12355
- * and it clears the host search field on every viewport. Always call it, or
12356
- * the sidebar stays in search mode after the thread opens.
12219
+ * Call after the user opens a thread. It closes the mobile sidebar drawer.
12357
12220
  */
12358
12221
  onNavigate: () => void;
12359
12222
  /**
12360
- * The host search field's current text, or "" when the field is closed.
12361
- * The host owns that field, so a plugin list filters by this rather than
12362
- * shipping a second search box.
12223
+ * Compatibility value for the former sidebar search field. BB now searches
12224
+ * threads in the quick palette, so the host always supplies "".
12225
+ *
12226
+ * @deprecated The quick palette owns thread search. Ignore this value.
12363
12227
  */
12364
12228
  searchQuery: string;
12365
12229
  /**
@@ -13104,7 +12968,7 @@ interface PluginSidebarThreadSplit {
13104
12968
  * leaving the user with no sidebar.
13105
12969
  *
13106
12970
  * The plugin gets the scrolling list and nothing else. The New-thread button,
13107
- * the search field, the plugin nav rows, and the footer stay host-rendered in
12971
+ * the search action, the plugin nav rows, and the footer stay host-rendered in
13108
12972
  * every sidebar — they are shared surfaces (other plugins live in two of
13109
12973
  * them), and a replaced list must not be able to remove them.
13110
12974
  */
@@ -14324,11 +14188,6 @@ interface EnvironmentsArea {
14324
14188
  update(args: EnvironmentUpdateArgs): Promise<EnvironmentUpdateResult>;
14325
14189
  }
14326
14190
 
14327
- /**
14328
- * Host file primitives. `hostId` may be omitted to target the server's
14329
- * primary (local) host. `rootPath`, when set, confines the target beneath
14330
- * that absolute root on the host (symlink-safe).
14331
- */
14332
14191
  interface FileReadArgs {
14333
14192
  hostId?: string;
14334
14193
  path: string;
@@ -14340,17 +14199,9 @@ interface FileWriteArgs {
14340
14199
  path: string;
14341
14200
  rootPath?: string;
14342
14201
  content: string;
14343
- /** Defaults to "utf8". */
14344
14202
  contentEncoding?: "base64" | "utf8";
14345
- /** Defaults to false. */
14346
14203
  createParents?: boolean;
14347
- /**
14348
- * Optimistic-concurrency guard: omitted → unconditional write; a hash →
14349
- * write only when the current content hashes to it (use `read().sha256`);
14350
- * null → create-only. A failed guard resolves to the `conflict` outcome.
14351
- */
14352
14204
  expectedSha256?: string | null;
14353
- /** POSIX permission bits used when creating a file (for example 0o600). */
14354
14205
  mode?: number;
14355
14206
  }
14356
14207
  interface FileListArgs {
@@ -14484,7 +14335,6 @@ interface HostsArea {
14484
14335
 
14485
14336
  interface ProjectListArgs {
14486
14337
  include?: ProjectListQuery["include"];
14487
- /** Include the singleton personal project. Defaults to false for compatibility. */
14488
14338
  includePersonal?: boolean;
14489
14339
  signal?: AbortSignal;
14490
14340
  }
@@ -14507,7 +14357,6 @@ interface ProjectPromptHistoryArgs extends PromptHistoryQuery {
14507
14357
  projectId: string;
14508
14358
  signal?: AbortSignal;
14509
14359
  }
14510
- /** Select one project workspace source, or omit both for the primary host. */
14511
14360
  type ProjectWorkspaceRoutingArgs = {
14512
14361
  environmentId: string;
14513
14362
  hostId?: never;
@@ -14551,14 +14400,9 @@ interface ProjectAttachmentFileLike {
14551
14400
  readonly type?: string;
14552
14401
  }
14553
14402
  interface ProjectAttachmentUploadArgsBase {
14554
- /** MIME override. Omit to use the File/Blob type, when available. */
14555
14403
  mimeType?: string;
14556
14404
  projectId: string;
14557
14405
  }
14558
- /**
14559
- * Upload bytes owned by this SDK client. A bare Blob/byte buffer needs an
14560
- * explicit filename; File-like values can supply their own name.
14561
- */
14562
14406
  type ProjectAttachmentUploadArgs = ProjectAttachmentUploadArgsBase & ({
14563
14407
  clientFile: ProjectAttachmentFileLike;
14564
14408
  filename?: string;
@@ -14599,7 +14443,6 @@ type ProjectDeleteResult = {
14599
14443
  ok: true;
14600
14444
  };
14601
14445
  interface ProjectFileContentResult {
14602
- /** UTF-8 text or base64, as selected by `contentEncoding`. */
14603
14446
  content: string;
14604
14447
  contentEncoding: "base64" | "utf8";
14605
14448
  mimeType: string;
@@ -14642,17 +14485,11 @@ interface ProjectsArea {
14642
14485
  paths(args: ProjectPathsArgs): Promise<ProjectPathsResult>;
14643
14486
  promptHistory(args: ProjectPromptHistoryArgs): Promise<ProjectPromptHistoryResult>;
14644
14487
  reorder(args: ProjectReorderArgs): Promise<ProjectReorderResult>;
14645
- /**
14646
- * One round-trip navigation snapshot: thread sections, every project with
14647
- * its live threads and resolved thread-creation defaults, and the personal
14648
- * project. Backs the sidebar of the web and native apps.
14649
- */
14650
14488
  sidebarBootstrap(args?: ProjectSidebarBootstrapArgs): Promise<ProjectSidebarBootstrapResult>;
14651
14489
  sources: ProjectSourcesArea;
14652
14490
  update(args: ProjectUpdateArgs): Promise<ProjectUpdateResult>;
14653
14491
  }
14654
14492
 
14655
- /** Select exactly one provider-discovery host source, or omit both for primary. */
14656
14493
  type ProviderHostRoutingArgs = {
14657
14494
  environmentId: string;
14658
14495
  hostId?: never;
@@ -14674,60 +14511,28 @@ type ProviderModelsArgs = ProviderHostRoutingArgs & {
14674
14511
  type ProviderListResult = ProviderInfo[];
14675
14512
  type ProviderModelsResult = SystemExecutionOptionsResponse;
14676
14513
  interface ProvidersArea {
14677
- /** List providers on the environment host, explicit host, or primary host. */
14678
14514
  list(args?: ProviderListArgs): Promise<ProviderListResult>;
14679
- /** List models on the environment host, explicit host, or primary host. */
14680
14515
  models(args?: ProviderModelsArgs): Promise<ProviderModelsResult>;
14681
14516
  }
14682
14517
 
14683
14518
  interface PluginIdArgs {
14684
14519
  pluginId: string;
14685
14520
  }
14686
- /** Install directly from a path:, git:, npm:, or builtin: source spec. */
14687
14521
  interface PluginInstallArgs {
14688
- /**
14689
- * `path:<dir>`, `builtin:<name>`, `npm:<package>[@<version|tag|range>]`, or
14690
- * `git:<url>[@<spec>]`. A git spec is one ref, or a semver range resolved
14691
- * over the repository's `[<tagPrefix>]vX.Y.Z` release tags:
14692
- * `git:<url>@semver:<range>` and `git:<url>@semver:<tagPrefix>:<range>` say
14693
- * range explicitly, `git:<url>@ref:<name>` says ref explicitly, and a bare
14694
- * `^1.2.0` resolves over tags unless the repository also has a ref of that
14695
- * literal name (which is refused as ambiguous).
14696
- */
14697
14522
  source: string;
14698
- /**
14699
- * Directory of a multi-plugin repository to install, relative to the
14700
- * repository root (`git:` and `path:` sources only).
14701
- */
14702
14523
  subdirectory?: string;
14703
- /**
14704
- * Name of a `.bb/plugins.json` collection entry to install, resolved to its
14705
- * directory in the repository. Mutually exclusive with `subdirectory`.
14706
- */
14707
14524
  plugin?: string;
14708
14525
  }
14709
- /** Install a catalog entry, from BB's official catalog or another marketplace. */
14710
14526
  interface PluginCatalogInstallArgs {
14711
14527
  entryId: string;
14712
- /**
14713
- * Marketplace that lists the entry. Omitted resolves across every
14714
- * marketplace: exactly one match installs, none falls back to the bundled
14715
- * official plugin of that name, and several are refused as ambiguous.
14716
- */
14717
14528
  marketplace?: string;
14718
- /**
14719
- * Source facts returned by installPlan for a third-party entry. The server
14720
- * refuses the install when the listing or its git commit changed afterward.
14721
- */
14722
14529
  confirmedSource?: PluginCatalogResolvedSource;
14723
14530
  }
14724
- /** Ask what an install would do before confirming it. */
14725
14531
  interface PluginCatalogInstallPlanArgs {
14726
14532
  entryId: string;
14727
14533
  marketplace?: string;
14728
14534
  signal?: AbortSignal;
14729
14535
  }
14730
- /** Add a marketplace by `https:` manifest URL, `git:<url>[@ref]`, or `path:<dir>`. */
14731
14536
  interface PluginMarketplaceAddArgs {
14732
14537
  source: string;
14733
14538
  }
@@ -14735,7 +14540,6 @@ interface PluginMarketplaceListArgs {
14735
14540
  signal?: AbortSignal;
14736
14541
  }
14737
14542
  interface PluginMarketplaceRefreshArgs {
14738
- /** One marketplace to refresh; omitted refreshes every one of them. */
14739
14543
  name?: string;
14740
14544
  signal?: AbortSignal;
14741
14545
  }
@@ -14798,17 +14602,14 @@ type PluginMarketplaceListResult = PluginMarketplace[];
14798
14602
  type PluginMarketplaceAddResult = PluginMarketplace;
14799
14603
  type PluginMarketplaceRefreshResult = PluginMarketplaceRefreshResult$1[];
14800
14604
  interface PluginMarketplaceRemoveResult {
14801
- /** Installs whose provenance became `direct`; they keep running as before. */
14802
14605
  convertedPluginIds: string[];
14803
14606
  }
14804
14607
  interface PluginCatalogArea {
14805
14608
  install(args: PluginCatalogInstallArgs): Promise<PluginInstallResult>;
14806
- /** The true resolved source an install would use, before anything runs. */
14807
14609
  installPlan(args: PluginCatalogInstallPlanArgs): Promise<PluginCatalogInstallPlanResult>;
14808
14610
  search(args: PluginCatalogSearchArgs): Promise<PluginCatalogSearchResult>;
14809
14611
  status(args?: PluginCatalogStatusArgs): Promise<PluginCatalogStatusResult>;
14810
14612
  }
14811
- /** Registered marketplaces. Adding one installs nothing; removing one uninstalls nothing. */
14812
14613
  interface PluginMarketplacesArea {
14813
14614
  add(args: PluginMarketplaceAddArgs): Promise<PluginMarketplaceAddResult>;
14814
14615
  list(args?: PluginMarketplaceListArgs): Promise<PluginMarketplaceListResult>;
@@ -14857,11 +14658,6 @@ interface BbRealtimeConnectionEvent {
14857
14658
  reconnected: boolean;
14858
14659
  state: BbRealtimeConnectionState;
14859
14660
  }
14860
- /**
14861
- * Entity-changed events are delivered as one shared object to every matching
14862
- * listener; their payload types are readonly so a listener cannot mutate what
14863
- * the next listener receives.
14864
- */
14865
14661
  interface BbRealtimeEventMap {
14866
14662
  "thread:changed": ThreadRealtimeEvent;
14867
14663
  "project:changed": ProjectRealtimeEvent;
@@ -14900,12 +14696,6 @@ interface SystemConfigRealtimeSubscribeArgs {
14900
14696
  callback: BbRealtimeCallback<"system:config-changed">;
14901
14697
  event: "system:config-changed";
14902
14698
  }
14903
- /**
14904
- * Connection listeners are pure observers — they never open or hold the
14905
- * socket. A listener registered while a socket already exists receives the
14906
- * latest connection event as a snapshot on the next microtask, so a status
14907
- * UI mounted after connect still learns the current state.
14908
- */
14909
14699
  interface RealtimeConnectionSubscribeArgs {
14910
14700
  callback: BbRealtimeCallback<"realtime:connection">;
14911
14701
  event: "realtime:connection";
@@ -14965,11 +14755,6 @@ interface SkillUpdateArgs extends SkillWorkspaceArgs {
14965
14755
  interface SkillDeleteArgs extends SkillWorkspaceArgs {
14966
14756
  skillId: string;
14967
14757
  }
14968
- /**
14969
- * Registry calls proxy out to skills.sh and GitHub, and the browse grid fans
14970
- * out one per card. Callers pass their query's AbortSignal so abandoning a
14971
- * page cancels its requests instead of leaving them in flight.
14972
- */
14973
14758
  interface AbortableArgs {
14974
14759
  signal?: AbortSignal;
14975
14760
  }
@@ -14991,10 +14776,6 @@ interface RegistrySkillSourceArgs extends AbortableArgs {
14991
14776
  interface RegistryRepositoryArgs extends AbortableArgs {
14992
14777
  source: string;
14993
14778
  }
14994
- /**
14995
- * Install is a mutation and deliberately takes no signal: its body is parsed
14996
- * with a strict schema, so an extra key would throw at runtime.
14997
- */
14998
14779
  interface RegistrySkillInstallArgs {
14999
14780
  registrySkillId: string;
15000
14781
  }
@@ -15031,17 +14812,9 @@ interface ThemeGetArgs {
15031
14812
  signal?: AbortSignal;
15032
14813
  }
15033
14814
  interface ThemeArea {
15034
- /** The active app palette, resolved server-side (built-in id or custom CSS). */
15035
14815
  get(args?: ThemeGetArgs): Promise<ThemeGetResult>;
15036
- /** The custom-theme directory plus discovered themes and the active palette. */
15037
14816
  catalog(args?: ThemeCatalogArgs): Promise<ThemeCatalogResult>;
15038
- /** Set the complete app appearance selection in one request. */
15039
14817
  set(selection: ThemeSetInput): Promise<ThemeSetResult>;
15040
- /**
15041
- * Activate a palette by id while preserving the active favicon color. This
15042
- * compatibility shorthand reads the active appearance before writing the
15043
- * complete selection; prefer the object form when both values are known.
15044
- */
15045
14818
  set(themeId: string): Promise<ThemeSetResult>;
15046
14819
  }
15047
14820
 
@@ -15072,7 +14845,6 @@ type SystemExecutionOptionsResult = SystemExecutionOptionsResponse;
15072
14845
  type SystemReloadConfigResult = SystemConfigReloadResponse;
15073
14846
  type SystemInstallCliSkillsArgs = SystemInstallCliSkillsRequest;
15074
14847
  interface SystemCliSkillsStatusArgs {
15075
- /** Omit for every enrolled machine. */
15076
14848
  hostIds?: readonly string[];
15077
14849
  signal?: AbortSignal;
15078
14850
  }
@@ -15092,12 +14864,6 @@ interface SystemArea {
15092
14864
  attention(args?: SystemAttentionArgs): Promise<SystemAttentionResult>;
15093
14865
  config(args?: SystemConfigArgs): Promise<SystemConfigResult>;
15094
14866
  executionOptions(args?: SystemExecutionOptionsArgs): Promise<SystemExecutionOptionsResult>;
15095
- /**
15096
- * Copy bb's built-in CLI skills into each named machine's global agent skill
15097
- * roots (`~/.agents/skills` and `~/.claude/skills`). Machines install
15098
- * independently; the result reports each machine's outcome.
15099
- */
15100
- /** Per-machine install state of bb's built-in CLI skills. */
15101
14867
  cliSkillsStatus(args?: SystemCliSkillsStatusArgs): Promise<SystemCliSkillsStatusResult>;
15102
14868
  installCliSkills(args: SystemInstallCliSkillsArgs): Promise<SystemInstallCliSkillsResult>;
15103
14869
  reloadConfig(): Promise<SystemReloadConfigResult>;
@@ -15105,7 +14871,6 @@ interface SystemArea {
15105
14871
  updateExperiments(args: Experiments): Promise<SystemUpdateExperimentsResult>;
15106
14872
  updateGeneralSettings(args: AppSettings): Promise<SystemUpdateGeneralSettingsResult>;
15107
14873
  updateKeyboardSettings(args: AppKeybindingOverrides): Promise<SystemUpdateKeyboardSettingsResult>;
15108
- /** Live host-local install and authentication state for every provider. */
15109
14874
  providerStates(args?: SystemProviderStatesArgs): Promise<SystemProviderStatesResult>;
15110
14875
  usageLimits(args?: SystemUsageLimitsArgs): Promise<SystemUsageLimitsResult>;
15111
14876
  version(args?: SystemVersionArgs): Promise<SystemVersionResult>;
@@ -15126,7 +14891,6 @@ interface TerminalEnvironmentScope {
15126
14891
  threadId?: never;
15127
14892
  }
15128
14893
  interface TerminalHostPathListScope {
15129
- /** Optional exact initial working-directory filter on the selected host. */
15130
14894
  cwd?: string;
15131
14895
  environmentId?: never;
15132
14896
  hostId: string;
@@ -15134,7 +14898,6 @@ interface TerminalHostPathListScope {
15134
14898
  threadId?: never;
15135
14899
  }
15136
14900
  interface TerminalHostPathCreateScope {
15137
- /** Null starts in the selected host's home directory. */
15138
14901
  cwd: string | null;
15139
14902
  environmentId?: never;
15140
14903
  hostId: string;
@@ -15197,13 +14960,6 @@ interface TerminalsArea {
15197
14960
  list(args: TerminalListArgs): Promise<TerminalListResult>;
15198
14961
  output(args: TerminalOutputArgs): Promise<TerminalOutputResult>;
15199
14962
  rename(args: TerminalRenameArgs): Promise<TerminalRenameResult>;
15200
- /**
15201
- * Replace a terminal with a shell at the same scope, size, and title.
15202
- * The server serializes concurrent restarts and opens the replacement before
15203
- * closing the old session, so a failed open leaves the old terminal running.
15204
- * The original command is not replayed because terminal sessions do not
15205
- * persist launch commands. The replacement has a new terminal ID.
15206
- */
15207
14963
  restart(args: TerminalRestartArgs): Promise<TerminalRestartResult>;
15208
14964
  resize(args: TerminalResizeArgs): Promise<TerminalResizeResult>;
15209
14965
  }
@@ -15381,16 +15137,12 @@ interface ThreadPaneActionArgs {
15381
15137
  threadId: string;
15382
15138
  }
15383
15139
  interface ThreadEventsListArgs {
15384
- /** Return only events with a sequence greater than this value. */
15385
15140
  afterSeq?: string;
15386
- /** Return only events with a sequence less than this value. */
15387
15141
  beforeSeq?: string;
15388
15142
  limit?: string;
15389
- /** Defaults to ascending sequence order. */
15390
15143
  order?: "asc" | "desc";
15391
15144
  signal?: AbortSignal;
15392
15145
  threadId: string;
15393
- /** Return only these event types. */
15394
15146
  types?: readonly [ThreadEventType, ...ThreadEventType[]];
15395
15147
  }
15396
15148
  interface ThreadEventWaitArgs {
@@ -15508,10 +15260,6 @@ interface ThreadsArea {
15508
15260
  search(args: ThreadSearchArgs): Promise<ThreadSearchResult>;
15509
15261
  send(args: ThreadSendArgs): Promise<ThreadSendResult>;
15510
15262
  spawn(args: ThreadSpawnArgs): Promise<ThreadSpawnResult>;
15511
- /**
15512
- * Stop active work and release the loaded agent runtime. This operation is
15513
- * idempotent and preserves thread history for a later resume.
15514
- */
15515
15263
  stop(args: ThreadActionArgs): Promise<ThreadStopResult>;
15516
15264
  tabs: ThreadTabsArea;
15517
15265
  timeline(args: ThreadTimelineArgs): Promise<ThreadTimelineResult>;
@@ -15539,11 +15287,6 @@ interface ThreadSectionsArea {
15539
15287
  update(args: UpdateThreadSectionRequest): Promise<ThreadSectionUpdateResult>;
15540
15288
  }
15541
15289
 
15542
- /**
15543
- * Every server-backed SDK area. The Node SDK adds the local `guide` area on
15544
- * top of this; the browser SDK omits it so the generated guide templates
15545
- * (~112 KB of markdown) stay out of the web app's boot chunk.
15546
- */
15547
15290
  interface BbSdkAreas extends BbRealtime {
15548
15291
  environments: EnvironmentsArea;
15549
15292
  files: FilesArea;
@@ -15757,7 +15500,8 @@ interface PluginStorage {
15757
15500
  database(): Database.Database;
15758
15501
  /**
15759
15502
  * Ordered-statement migration helper: statement index = migration id in a
15760
- * `_bb_migrations` table; unapplied statements run in one transaction.
15503
+ * `_bb_migrations` table; unapplied statements run in one transaction. The
15504
+ * host records each statement hash and rejects changed or reused indexes.
15761
15505
  * Append-only — never reorder or edit shipped statements.
15762
15506
  */
15763
15507
  migrate(db: Database.Database, statements: string[]): void;
@@ -16654,8 +16398,11 @@ interface PluginHosts {
16654
16398
  /**
16655
16399
  * Replace this plugin's desired shared-loopback ports for one host. The
16656
16400
  * server aggregates declarations, owns generations, and delivers the
16657
- * resulting set to that host's daemon. Tunnel identity is deliberately not
16658
- * accepted here: it is owned by the daemon's trusted enrollment.
16401
+ * resulting set to that host's daemon. When an enrolled host is offline,
16402
+ * the server retains the declaration and delivers it on the next
16403
+ * credentialed daemon session. A connected daemon that reports no machine
16404
+ * credential is rejected. Tunnel identity is deliberately not accepted
16405
+ * here: it is owned by the daemon's trusted enrollment.
16659
16406
  */
16660
16407
  declareSharedPorts(hostId: string, ports: readonly number[]): void;
16661
16408
  }