@get-bb/plugin-sdk 0.4.24 → 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>;
@@ -14323,11 +14188,6 @@ interface EnvironmentsArea {
14323
14188
  update(args: EnvironmentUpdateArgs): Promise<EnvironmentUpdateResult>;
14324
14189
  }
14325
14190
 
14326
- /**
14327
- * Host file primitives. `hostId` may be omitted to target the server's
14328
- * primary (local) host. `rootPath`, when set, confines the target beneath
14329
- * that absolute root on the host (symlink-safe).
14330
- */
14331
14191
  interface FileReadArgs {
14332
14192
  hostId?: string;
14333
14193
  path: string;
@@ -14339,17 +14199,9 @@ interface FileWriteArgs {
14339
14199
  path: string;
14340
14200
  rootPath?: string;
14341
14201
  content: string;
14342
- /** Defaults to "utf8". */
14343
14202
  contentEncoding?: "base64" | "utf8";
14344
- /** Defaults to false. */
14345
14203
  createParents?: boolean;
14346
- /**
14347
- * Optimistic-concurrency guard: omitted → unconditional write; a hash →
14348
- * write only when the current content hashes to it (use `read().sha256`);
14349
- * null → create-only. A failed guard resolves to the `conflict` outcome.
14350
- */
14351
14204
  expectedSha256?: string | null;
14352
- /** POSIX permission bits used when creating a file (for example 0o600). */
14353
14205
  mode?: number;
14354
14206
  }
14355
14207
  interface FileListArgs {
@@ -14483,7 +14335,6 @@ interface HostsArea {
14483
14335
 
14484
14336
  interface ProjectListArgs {
14485
14337
  include?: ProjectListQuery["include"];
14486
- /** Include the singleton personal project. Defaults to false for compatibility. */
14487
14338
  includePersonal?: boolean;
14488
14339
  signal?: AbortSignal;
14489
14340
  }
@@ -14506,7 +14357,6 @@ interface ProjectPromptHistoryArgs extends PromptHistoryQuery {
14506
14357
  projectId: string;
14507
14358
  signal?: AbortSignal;
14508
14359
  }
14509
- /** Select one project workspace source, or omit both for the primary host. */
14510
14360
  type ProjectWorkspaceRoutingArgs = {
14511
14361
  environmentId: string;
14512
14362
  hostId?: never;
@@ -14550,14 +14400,9 @@ interface ProjectAttachmentFileLike {
14550
14400
  readonly type?: string;
14551
14401
  }
14552
14402
  interface ProjectAttachmentUploadArgsBase {
14553
- /** MIME override. Omit to use the File/Blob type, when available. */
14554
14403
  mimeType?: string;
14555
14404
  projectId: string;
14556
14405
  }
14557
- /**
14558
- * Upload bytes owned by this SDK client. A bare Blob/byte buffer needs an
14559
- * explicit filename; File-like values can supply their own name.
14560
- */
14561
14406
  type ProjectAttachmentUploadArgs = ProjectAttachmentUploadArgsBase & ({
14562
14407
  clientFile: ProjectAttachmentFileLike;
14563
14408
  filename?: string;
@@ -14598,7 +14443,6 @@ type ProjectDeleteResult = {
14598
14443
  ok: true;
14599
14444
  };
14600
14445
  interface ProjectFileContentResult {
14601
- /** UTF-8 text or base64, as selected by `contentEncoding`. */
14602
14446
  content: string;
14603
14447
  contentEncoding: "base64" | "utf8";
14604
14448
  mimeType: string;
@@ -14641,17 +14485,11 @@ interface ProjectsArea {
14641
14485
  paths(args: ProjectPathsArgs): Promise<ProjectPathsResult>;
14642
14486
  promptHistory(args: ProjectPromptHistoryArgs): Promise<ProjectPromptHistoryResult>;
14643
14487
  reorder(args: ProjectReorderArgs): Promise<ProjectReorderResult>;
14644
- /**
14645
- * One round-trip navigation snapshot: thread sections, every project with
14646
- * its live threads and resolved thread-creation defaults, and the personal
14647
- * project. Backs the sidebar of the web and native apps.
14648
- */
14649
14488
  sidebarBootstrap(args?: ProjectSidebarBootstrapArgs): Promise<ProjectSidebarBootstrapResult>;
14650
14489
  sources: ProjectSourcesArea;
14651
14490
  update(args: ProjectUpdateArgs): Promise<ProjectUpdateResult>;
14652
14491
  }
14653
14492
 
14654
- /** Select exactly one provider-discovery host source, or omit both for primary. */
14655
14493
  type ProviderHostRoutingArgs = {
14656
14494
  environmentId: string;
14657
14495
  hostId?: never;
@@ -14673,60 +14511,28 @@ type ProviderModelsArgs = ProviderHostRoutingArgs & {
14673
14511
  type ProviderListResult = ProviderInfo[];
14674
14512
  type ProviderModelsResult = SystemExecutionOptionsResponse;
14675
14513
  interface ProvidersArea {
14676
- /** List providers on the environment host, explicit host, or primary host. */
14677
14514
  list(args?: ProviderListArgs): Promise<ProviderListResult>;
14678
- /** List models on the environment host, explicit host, or primary host. */
14679
14515
  models(args?: ProviderModelsArgs): Promise<ProviderModelsResult>;
14680
14516
  }
14681
14517
 
14682
14518
  interface PluginIdArgs {
14683
14519
  pluginId: string;
14684
14520
  }
14685
- /** Install directly from a path:, git:, npm:, or builtin: source spec. */
14686
14521
  interface PluginInstallArgs {
14687
- /**
14688
- * `path:<dir>`, `builtin:<name>`, `npm:<package>[@<version|tag|range>]`, or
14689
- * `git:<url>[@<spec>]`. A git spec is one ref, or a semver range resolved
14690
- * over the repository's `[<tagPrefix>]vX.Y.Z` release tags:
14691
- * `git:<url>@semver:<range>` and `git:<url>@semver:<tagPrefix>:<range>` say
14692
- * range explicitly, `git:<url>@ref:<name>` says ref explicitly, and a bare
14693
- * `^1.2.0` resolves over tags unless the repository also has a ref of that
14694
- * literal name (which is refused as ambiguous).
14695
- */
14696
14522
  source: string;
14697
- /**
14698
- * Directory of a multi-plugin repository to install, relative to the
14699
- * repository root (`git:` and `path:` sources only).
14700
- */
14701
14523
  subdirectory?: string;
14702
- /**
14703
- * Name of a `.bb/plugins.json` collection entry to install, resolved to its
14704
- * directory in the repository. Mutually exclusive with `subdirectory`.
14705
- */
14706
14524
  plugin?: string;
14707
14525
  }
14708
- /** Install a catalog entry, from BB's official catalog or another marketplace. */
14709
14526
  interface PluginCatalogInstallArgs {
14710
14527
  entryId: string;
14711
- /**
14712
- * Marketplace that lists the entry. Omitted resolves across every
14713
- * marketplace: exactly one match installs, none falls back to the bundled
14714
- * official plugin of that name, and several are refused as ambiguous.
14715
- */
14716
14528
  marketplace?: string;
14717
- /**
14718
- * Source facts returned by installPlan for a third-party entry. The server
14719
- * refuses the install when the listing or its git commit changed afterward.
14720
- */
14721
14529
  confirmedSource?: PluginCatalogResolvedSource;
14722
14530
  }
14723
- /** Ask what an install would do before confirming it. */
14724
14531
  interface PluginCatalogInstallPlanArgs {
14725
14532
  entryId: string;
14726
14533
  marketplace?: string;
14727
14534
  signal?: AbortSignal;
14728
14535
  }
14729
- /** Add a marketplace by `https:` manifest URL, `git:<url>[@ref]`, or `path:<dir>`. */
14730
14536
  interface PluginMarketplaceAddArgs {
14731
14537
  source: string;
14732
14538
  }
@@ -14734,7 +14540,6 @@ interface PluginMarketplaceListArgs {
14734
14540
  signal?: AbortSignal;
14735
14541
  }
14736
14542
  interface PluginMarketplaceRefreshArgs {
14737
- /** One marketplace to refresh; omitted refreshes every one of them. */
14738
14543
  name?: string;
14739
14544
  signal?: AbortSignal;
14740
14545
  }
@@ -14797,17 +14602,14 @@ type PluginMarketplaceListResult = PluginMarketplace[];
14797
14602
  type PluginMarketplaceAddResult = PluginMarketplace;
14798
14603
  type PluginMarketplaceRefreshResult = PluginMarketplaceRefreshResult$1[];
14799
14604
  interface PluginMarketplaceRemoveResult {
14800
- /** Installs whose provenance became `direct`; they keep running as before. */
14801
14605
  convertedPluginIds: string[];
14802
14606
  }
14803
14607
  interface PluginCatalogArea {
14804
14608
  install(args: PluginCatalogInstallArgs): Promise<PluginInstallResult>;
14805
- /** The true resolved source an install would use, before anything runs. */
14806
14609
  installPlan(args: PluginCatalogInstallPlanArgs): Promise<PluginCatalogInstallPlanResult>;
14807
14610
  search(args: PluginCatalogSearchArgs): Promise<PluginCatalogSearchResult>;
14808
14611
  status(args?: PluginCatalogStatusArgs): Promise<PluginCatalogStatusResult>;
14809
14612
  }
14810
- /** Registered marketplaces. Adding one installs nothing; removing one uninstalls nothing. */
14811
14613
  interface PluginMarketplacesArea {
14812
14614
  add(args: PluginMarketplaceAddArgs): Promise<PluginMarketplaceAddResult>;
14813
14615
  list(args?: PluginMarketplaceListArgs): Promise<PluginMarketplaceListResult>;
@@ -14856,11 +14658,6 @@ interface BbRealtimeConnectionEvent {
14856
14658
  reconnected: boolean;
14857
14659
  state: BbRealtimeConnectionState;
14858
14660
  }
14859
- /**
14860
- * Entity-changed events are delivered as one shared object to every matching
14861
- * listener; their payload types are readonly so a listener cannot mutate what
14862
- * the next listener receives.
14863
- */
14864
14661
  interface BbRealtimeEventMap {
14865
14662
  "thread:changed": ThreadRealtimeEvent;
14866
14663
  "project:changed": ProjectRealtimeEvent;
@@ -14899,12 +14696,6 @@ interface SystemConfigRealtimeSubscribeArgs {
14899
14696
  callback: BbRealtimeCallback<"system:config-changed">;
14900
14697
  event: "system:config-changed";
14901
14698
  }
14902
- /**
14903
- * Connection listeners are pure observers — they never open or hold the
14904
- * socket. A listener registered while a socket already exists receives the
14905
- * latest connection event as a snapshot on the next microtask, so a status
14906
- * UI mounted after connect still learns the current state.
14907
- */
14908
14699
  interface RealtimeConnectionSubscribeArgs {
14909
14700
  callback: BbRealtimeCallback<"realtime:connection">;
14910
14701
  event: "realtime:connection";
@@ -14964,11 +14755,6 @@ interface SkillUpdateArgs extends SkillWorkspaceArgs {
14964
14755
  interface SkillDeleteArgs extends SkillWorkspaceArgs {
14965
14756
  skillId: string;
14966
14757
  }
14967
- /**
14968
- * Registry calls proxy out to skills.sh and GitHub, and the browse grid fans
14969
- * out one per card. Callers pass their query's AbortSignal so abandoning a
14970
- * page cancels its requests instead of leaving them in flight.
14971
- */
14972
14758
  interface AbortableArgs {
14973
14759
  signal?: AbortSignal;
14974
14760
  }
@@ -14990,10 +14776,6 @@ interface RegistrySkillSourceArgs extends AbortableArgs {
14990
14776
  interface RegistryRepositoryArgs extends AbortableArgs {
14991
14777
  source: string;
14992
14778
  }
14993
- /**
14994
- * Install is a mutation and deliberately takes no signal: its body is parsed
14995
- * with a strict schema, so an extra key would throw at runtime.
14996
- */
14997
14779
  interface RegistrySkillInstallArgs {
14998
14780
  registrySkillId: string;
14999
14781
  }
@@ -15030,17 +14812,9 @@ interface ThemeGetArgs {
15030
14812
  signal?: AbortSignal;
15031
14813
  }
15032
14814
  interface ThemeArea {
15033
- /** The active app palette, resolved server-side (built-in id or custom CSS). */
15034
14815
  get(args?: ThemeGetArgs): Promise<ThemeGetResult>;
15035
- /** The custom-theme directory plus discovered themes and the active palette. */
15036
14816
  catalog(args?: ThemeCatalogArgs): Promise<ThemeCatalogResult>;
15037
- /** Set the complete app appearance selection in one request. */
15038
14817
  set(selection: ThemeSetInput): Promise<ThemeSetResult>;
15039
- /**
15040
- * Activate a palette by id while preserving the active favicon color. This
15041
- * compatibility shorthand reads the active appearance before writing the
15042
- * complete selection; prefer the object form when both values are known.
15043
- */
15044
14818
  set(themeId: string): Promise<ThemeSetResult>;
15045
14819
  }
15046
14820
 
@@ -15071,7 +14845,6 @@ type SystemExecutionOptionsResult = SystemExecutionOptionsResponse;
15071
14845
  type SystemReloadConfigResult = SystemConfigReloadResponse;
15072
14846
  type SystemInstallCliSkillsArgs = SystemInstallCliSkillsRequest;
15073
14847
  interface SystemCliSkillsStatusArgs {
15074
- /** Omit for every enrolled machine. */
15075
14848
  hostIds?: readonly string[];
15076
14849
  signal?: AbortSignal;
15077
14850
  }
@@ -15091,12 +14864,6 @@ interface SystemArea {
15091
14864
  attention(args?: SystemAttentionArgs): Promise<SystemAttentionResult>;
15092
14865
  config(args?: SystemConfigArgs): Promise<SystemConfigResult>;
15093
14866
  executionOptions(args?: SystemExecutionOptionsArgs): Promise<SystemExecutionOptionsResult>;
15094
- /**
15095
- * Copy bb's built-in CLI skills into each named machine's global agent skill
15096
- * roots (`~/.agents/skills` and `~/.claude/skills`). Machines install
15097
- * independently; the result reports each machine's outcome.
15098
- */
15099
- /** Per-machine install state of bb's built-in CLI skills. */
15100
14867
  cliSkillsStatus(args?: SystemCliSkillsStatusArgs): Promise<SystemCliSkillsStatusResult>;
15101
14868
  installCliSkills(args: SystemInstallCliSkillsArgs): Promise<SystemInstallCliSkillsResult>;
15102
14869
  reloadConfig(): Promise<SystemReloadConfigResult>;
@@ -15104,7 +14871,6 @@ interface SystemArea {
15104
14871
  updateExperiments(args: Experiments): Promise<SystemUpdateExperimentsResult>;
15105
14872
  updateGeneralSettings(args: AppSettings): Promise<SystemUpdateGeneralSettingsResult>;
15106
14873
  updateKeyboardSettings(args: AppKeybindingOverrides): Promise<SystemUpdateKeyboardSettingsResult>;
15107
- /** Live host-local install and authentication state for every provider. */
15108
14874
  providerStates(args?: SystemProviderStatesArgs): Promise<SystemProviderStatesResult>;
15109
14875
  usageLimits(args?: SystemUsageLimitsArgs): Promise<SystemUsageLimitsResult>;
15110
14876
  version(args?: SystemVersionArgs): Promise<SystemVersionResult>;
@@ -15125,7 +14891,6 @@ interface TerminalEnvironmentScope {
15125
14891
  threadId?: never;
15126
14892
  }
15127
14893
  interface TerminalHostPathListScope {
15128
- /** Optional exact initial working-directory filter on the selected host. */
15129
14894
  cwd?: string;
15130
14895
  environmentId?: never;
15131
14896
  hostId: string;
@@ -15133,7 +14898,6 @@ interface TerminalHostPathListScope {
15133
14898
  threadId?: never;
15134
14899
  }
15135
14900
  interface TerminalHostPathCreateScope {
15136
- /** Null starts in the selected host's home directory. */
15137
14901
  cwd: string | null;
15138
14902
  environmentId?: never;
15139
14903
  hostId: string;
@@ -15196,13 +14960,6 @@ interface TerminalsArea {
15196
14960
  list(args: TerminalListArgs): Promise<TerminalListResult>;
15197
14961
  output(args: TerminalOutputArgs): Promise<TerminalOutputResult>;
15198
14962
  rename(args: TerminalRenameArgs): Promise<TerminalRenameResult>;
15199
- /**
15200
- * Replace a terminal with a shell at the same scope, size, and title.
15201
- * The server serializes concurrent restarts and opens the replacement before
15202
- * closing the old session, so a failed open leaves the old terminal running.
15203
- * The original command is not replayed because terminal sessions do not
15204
- * persist launch commands. The replacement has a new terminal ID.
15205
- */
15206
14963
  restart(args: TerminalRestartArgs): Promise<TerminalRestartResult>;
15207
14964
  resize(args: TerminalResizeArgs): Promise<TerminalResizeResult>;
15208
14965
  }
@@ -15380,16 +15137,12 @@ interface ThreadPaneActionArgs {
15380
15137
  threadId: string;
15381
15138
  }
15382
15139
  interface ThreadEventsListArgs {
15383
- /** Return only events with a sequence greater than this value. */
15384
15140
  afterSeq?: string;
15385
- /** Return only events with a sequence less than this value. */
15386
15141
  beforeSeq?: string;
15387
15142
  limit?: string;
15388
- /** Defaults to ascending sequence order. */
15389
15143
  order?: "asc" | "desc";
15390
15144
  signal?: AbortSignal;
15391
15145
  threadId: string;
15392
- /** Return only these event types. */
15393
15146
  types?: readonly [ThreadEventType, ...ThreadEventType[]];
15394
15147
  }
15395
15148
  interface ThreadEventWaitArgs {
@@ -15507,10 +15260,6 @@ interface ThreadsArea {
15507
15260
  search(args: ThreadSearchArgs): Promise<ThreadSearchResult>;
15508
15261
  send(args: ThreadSendArgs): Promise<ThreadSendResult>;
15509
15262
  spawn(args: ThreadSpawnArgs): Promise<ThreadSpawnResult>;
15510
- /**
15511
- * Stop active work and release the loaded agent runtime. This operation is
15512
- * idempotent and preserves thread history for a later resume.
15513
- */
15514
15263
  stop(args: ThreadActionArgs): Promise<ThreadStopResult>;
15515
15264
  tabs: ThreadTabsArea;
15516
15265
  timeline(args: ThreadTimelineArgs): Promise<ThreadTimelineResult>;
@@ -15538,11 +15287,6 @@ interface ThreadSectionsArea {
15538
15287
  update(args: UpdateThreadSectionRequest): Promise<ThreadSectionUpdateResult>;
15539
15288
  }
15540
15289
 
15541
- /**
15542
- * Every server-backed SDK area. The Node SDK adds the local `guide` area on
15543
- * top of this; the browser SDK omits it so the generated guide templates
15544
- * (~112 KB of markdown) stay out of the web app's boot chunk.
15545
- */
15546
15290
  interface BbSdkAreas extends BbRealtime {
15547
15291
  environments: EnvironmentsArea;
15548
15292
  files: FilesArea;
@@ -15756,7 +15500,8 @@ interface PluginStorage {
15756
15500
  database(): Database.Database;
15757
15501
  /**
15758
15502
  * Ordered-statement migration helper: statement index = migration id in a
15759
- * `_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.
15760
15505
  * Append-only — never reorder or edit shipped statements.
15761
15506
  */
15762
15507
  migrate(db: Database.Database, statements: string[]): void;
@@ -16653,8 +16398,11 @@ interface PluginHosts {
16653
16398
  /**
16654
16399
  * Replace this plugin's desired shared-loopback ports for one host. The
16655
16400
  * server aggregates declarations, owns generations, and delivers the
16656
- * resulting set to that host's daemon. Tunnel identity is deliberately not
16657
- * 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.
16658
16406
  */
16659
16407
  declareSharedPorts(hostId: string, ports: readonly number[]): void;
16660
16408
  }