@get-bb/plugin-sdk 0.4.24 → 0.4.28

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">;
@@ -2617,6 +2606,7 @@ declare const threadEventSchema: z$1.ZodPipe<z$1.ZodUnknown, z$1.ZodUnion<readon
2617
2606
  turnId: z$1.ZodOptional<z$1.ZodString>;
2618
2607
  type: z$1.ZodLiteral<"system/manager/user_message">;
2619
2608
  }, z$1.core.$strip>, z$1.ZodObject<{
2609
+ cause: z$1.ZodOptional<z$1.ZodLiteral<"host-connection-lost">>;
2620
2610
  reason: z$1.ZodEnum<{
2621
2611
  "host-daemon-restarted": "host-daemon-restarted";
2622
2612
  "manual-stop": "manual-stop";
@@ -3149,22 +3139,6 @@ declare const projectExecutionDefaultsSchema: z$1.ZodObject<{
3149
3139
  }, z$1.core.$strip>;
3150
3140
  type ProjectExecutionDefaults = z$1.infer<typeof projectExecutionDefaultsSchema>;
3151
3141
 
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
3142
  declare const PROVIDER_FORK_VALUES: readonly ["none", "tip", "checkpoint"];
3169
3143
  type ProviderFork = (typeof PROVIDER_FORK_VALUES)[number];
3170
3144
 
@@ -3561,6 +3535,10 @@ declare const projectBranchesQuerySchema: z$1.ZodObject<{
3561
3535
  hostId: z$1.ZodString;
3562
3536
  limit: z$1.ZodOptional<z$1.ZodString>;
3563
3537
  query: z$1.ZodOptional<z$1.ZodString>;
3538
+ refresh: z$1.ZodOptional<z$1.ZodEnum<{
3539
+ background: "background";
3540
+ blocking: "blocking";
3541
+ }>>;
3564
3542
  selectedBranch: z$1.ZodOptional<z$1.ZodString>;
3565
3543
  }, z$1.core.$strip>;
3566
3544
  type ProjectBranchesQuery = z$1.infer<typeof projectBranchesQuerySchema>;
@@ -3741,7 +3719,6 @@ declare const commandListResponseSchema: z$1.ZodObject<{
3741
3719
  }, z$1.core.$strip>>;
3742
3720
  }, z$1.core.$strip>;
3743
3721
  type CommandListResponse = z$1.infer<typeof commandListResponseSchema>;
3744
- /** Query for the complete command catalog available to a project and provider. */
3745
3722
  declare const projectCommandsQuerySchema: z$1.ZodObject<{
3746
3723
  environmentId: z$1.ZodOptional<z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodOptional<z$1.ZodString>>>;
3747
3724
  hostId: z$1.ZodOptional<z$1.ZodString>;
@@ -4204,11 +4181,6 @@ declare const registrySkillDetailSchema: z$1.ZodObject<{
4204
4181
  source: z$1.ZodString;
4205
4182
  }, z$1.core.$strip>;
4206
4183
  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
4184
  declare const registrySkillEntriesResponseSchema: z$1.ZodObject<{
4213
4185
  entries: z$1.ZodArray<z$1.ZodObject<{
4214
4186
  id: z$1.ZodString;
@@ -4235,12 +4207,6 @@ declare const updateEnvironmentRequestSchema: z$1.ZodObject<{
4235
4207
  name: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
4236
4208
  }, z$1.core.$strip>;
4237
4209
  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
4210
  declare const environmentPathsQuerySchema: z$1.ZodObject<{
4245
4211
  includeDirectories: z$1.ZodEnum<{
4246
4212
  false: "false";
@@ -4292,18 +4258,6 @@ declare const environmentDiffQuerySchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObje
4292
4258
  target: z$1.ZodLiteral<"commit">;
4293
4259
  }, z$1.core.$strip>], "target">;
4294
4260
  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
4261
  declare const environmentDiffFileQuerySchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4308
4262
  path: z$1.ZodString;
4309
4263
  side: z$1.ZodEnum<{
@@ -4503,13 +4457,6 @@ declare const environmentStatusResponseSchema: z$1.ZodDiscriminatedUnion<[z$1.Zo
4503
4457
  }, z$1.core.$strict>;
4504
4458
  outcome: z$1.ZodLiteral<"unavailable">;
4505
4459
  }, 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
4460
  declare const environmentPullRequestResponseSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4514
4461
  outcome: z$1.ZodLiteral<"available">;
4515
4462
  pullRequest: z$1.ZodObject<{
@@ -4712,13 +4659,6 @@ declare const environmentDiffPatchResponseSchema: z$1.ZodDiscriminatedUnion<[z$1
4712
4659
  outcome: z$1.ZodLiteral<"unavailable">;
4713
4660
  }, z$1.core.$strict>], "outcome">;
4714
4661
  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
4662
  declare const environmentDiffPatchRequestSchema: z$1.ZodObject<{
4723
4663
  paths: z$1.ZodArray<z$1.ZodString>;
4724
4664
  target: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
@@ -4737,7 +4677,6 @@ declare const environmentDiffPatchRequestSchema: z$1.ZodObject<{
4737
4677
  type EnvironmentDiffPatchRequest = z$1.infer<typeof environmentDiffPatchRequestSchema>;
4738
4678
  type EnvironmentStatusResponse = z$1.infer<typeof environmentStatusResponseSchema>;
4739
4679
 
4740
- /** Provider-id keyed usage returned by the public server aggregation route. */
4741
4680
  declare const providerUsageResponseSchema: z$1.ZodRecord<z$1.ZodString, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4742
4681
  accountEmail: z$1.ZodNullable<z$1.ZodString>;
4743
4682
  planLabel: z$1.ZodNullable<z$1.ZodString>;
@@ -5961,6 +5900,7 @@ declare const hostDaemonCommandRegistry: {
5961
5900
  }, z$1.core.$strip>, "settled", false>;
5962
5901
  "environment.destroy": HostDaemonCommandDescriptor<"environment.destroy", z$1.ZodObject<{
5963
5902
  environmentId: z$1.ZodString;
5903
+ teardownTimeoutMs: z$1.ZodNumber;
5964
5904
  type: z$1.ZodLiteral<"environment.destroy">;
5965
5905
  workspaceContext: z$1.ZodObject<{
5966
5906
  workspacePath: z$1.ZodString;
@@ -5970,7 +5910,23 @@ declare const hostDaemonCommandRegistry: {
5970
5910
  unmanaged: "unmanaged";
5971
5911
  }>;
5972
5912
  }, z$1.core.$strip>;
5973
- }, z$1.core.$strict>, z$1.ZodObject<{}, z$1.core.$strip>, "settled", false>;
5913
+ }, z$1.core.$strict>, z$1.ZodObject<{
5914
+ transcript: z$1.ZodArray<z$1.ZodObject<{
5915
+ key: z$1.ZodString;
5916
+ metadata: z$1.ZodOptional<z$1.ZodRecord<z$1.ZodString, z$1.ZodUnknown>>;
5917
+ startedAt: z$1.ZodOptional<z$1.ZodNumber>;
5918
+ status: z$1.ZodOptional<z$1.ZodEnum<{
5919
+ completed: "completed";
5920
+ failed: "failed";
5921
+ started: "started";
5922
+ }>>;
5923
+ text: z$1.ZodString;
5924
+ type: z$1.ZodEnum<{
5925
+ output: "output";
5926
+ step: "step";
5927
+ }>;
5928
+ }, z$1.core.$strip>>;
5929
+ }, z$1.core.$strict>, "settled", false>;
5974
5930
  "workspace.commit": HostDaemonCommandDescriptor<"workspace.commit", z$1.ZodObject<{
5975
5931
  environmentId: z$1.ZodString;
5976
5932
  message: z$1.ZodString;
@@ -6423,15 +6379,14 @@ declare const hostDaemonCommandRegistry: {
6423
6379
  treeHash: z$1.ZodNullable<z$1.ZodString>;
6424
6380
  }, z$1.core.$strict>>;
6425
6381
  }, z$1.core.$strict>, "onlineRpc", true>;
6426
- "host.list_branches": HostDaemonCommandDescriptor<"host.list_branches", z$1.ZodObject<{
6427
- limit: z$1.ZodNumber;
6382
+ "host.inspect_git_source": HostDaemonCommandDescriptor<"host.inspect_git_source", z$1.ZodObject<{
6428
6383
  path: z$1.ZodString;
6429
- query: z$1.ZodOptional<z$1.ZodString>;
6430
- selectedBranch: z$1.ZodOptional<z$1.ZodString>;
6431
- type: z$1.ZodLiteral<"host.list_branches">;
6432
- }, z$1.core.$strip>, z$1.ZodObject<{
6433
- branches: z$1.ZodArray<z$1.ZodString>;
6434
- branchesTruncated: z$1.ZodBoolean;
6384
+ remoteRefresh: z$1.ZodEnum<{
6385
+ background: "background";
6386
+ blocking: "blocking";
6387
+ }>;
6388
+ type: z$1.ZodLiteral<"host.inspect_git_source">;
6389
+ }, z$1.core.$strict>, z$1.ZodObject<{
6435
6390
  checkout: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6436
6391
  branchName: z$1.ZodString;
6437
6392
  headSha: z$1.ZodNullable<z$1.ZodString>;
@@ -6475,16 +6430,6 @@ declare const hostDaemonCommandRegistry: {
6475
6430
  reason: z$1.ZodString;
6476
6431
  }, z$1.core.$strip>], "kind">;
6477
6432
  originDefaultBranch: z$1.ZodNullable<z$1.ZodString>;
6478
- remoteBranches: z$1.ZodArray<z$1.ZodString>;
6479
- remoteBranchesTruncated: z$1.ZodBoolean;
6480
- selectedBranch: z$1.ZodNullable<z$1.ZodObject<{
6481
- kind: z$1.ZodEnum<{
6482
- local: "local";
6483
- missing: "missing";
6484
- remote: "remote";
6485
- }>;
6486
- name: z$1.ZodString;
6487
- }, z$1.core.$strip>>;
6488
6433
  }, z$1.core.$strip>, "onlineRpc", true>;
6489
6434
  "host.list_branch_options": HostDaemonCommandDescriptor<"host.list_branch_options", z$1.ZodObject<{
6490
6435
  limit: z$1.ZodNumber;
@@ -7354,12 +7299,6 @@ type HostMkdirResponse = HostDaemonOnlineRpcResultByType["host.mkdir"];
7354
7299
  type HostMovePathResponse = HostDaemonOnlineRpcResultByType["host.move_path"];
7355
7300
  type HostRemovePathResponse = HostDaemonOnlineRpcResultByType["host.remove_path"];
7356
7301
 
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
7302
  declare const hostDirectoryQuerySchema: z$1.ZodObject<{
7364
7303
  path: z$1.ZodOptional<z$1.ZodString>;
7365
7304
  }, z$1.core.$strip>;
@@ -7377,7 +7316,6 @@ declare const hostDirectoryListingSchema: z$1.ZodObject<{
7377
7316
  parent: z$1.ZodNullable<z$1.ZodString>;
7378
7317
  }, z$1.core.$strip>;
7379
7318
  type HostDirectoryListing = z$1.infer<typeof hostDirectoryListingSchema>;
7380
- /** Project name is sent so the daemon can derive its host-local checkout path. */
7381
7319
  declare const hostCloneDefaultPathQuerySchema: z$1.ZodObject<{
7382
7320
  projectId: z$1.ZodString;
7383
7321
  }, z$1.core.$strip>;
@@ -7876,12 +7814,6 @@ declare const pluginCatalogSearchResultSchema: z$1.ZodObject<{
7876
7814
  source: z$1.ZodString;
7877
7815
  }, z$1.core.$strip>;
7878
7816
  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
7817
  declare const pluginCatalogResolvedSourceSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
7886
7818
  kind: z$1.ZodLiteral<"npm">;
7887
7819
  package: z$1.ZodString;
@@ -7903,11 +7835,6 @@ declare const pluginCatalogResolvedSourceSchema: z$1.ZodDiscriminatedUnion<[z$1.
7903
7835
  url: z$1.ZodString;
7904
7836
  }, z$1.core.$strict>], "kind">;
7905
7837
  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
7838
  declare const pluginCatalogInstallPlanSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
7912
7839
  compatible: z$1.ZodBoolean;
7913
7840
  displayName: z$1.ZodString;
@@ -8157,11 +8084,6 @@ declare const systemExecutionOptionsResponseSchema: z$1.ZodObject<{
8157
8084
  }, z$1.core.$strip>>;
8158
8085
  }, z$1.core.$strip>;
8159
8086
  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
8087
  declare const systemProvidersQuerySchema: z$1.ZodObject<{
8166
8088
  capability: z$1.ZodOptional<z$1.ZodEnum<{
8167
8089
  usage: "usage";
@@ -8176,10 +8098,6 @@ declare const systemExecutionOptionsQuerySchema: z$1.ZodObject<{
8176
8098
  providerId: z$1.ZodOptional<z$1.ZodString>;
8177
8099
  }, z$1.core.$strip>;
8178
8100
  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
8101
  declare const systemUsageLimitsQuerySchema: z$1.ZodObject<{
8184
8102
  hostId: z$1.ZodOptional<z$1.ZodString>;
8185
8103
  providerId: z$1.ZodOptional<z$1.ZodString>;
@@ -8565,10 +8483,6 @@ declare const systemAttentionResponseSchema: z$1.ZodObject<{
8565
8483
  hasAttention: z$1.ZodBoolean;
8566
8484
  }, z$1.core.$strip>;
8567
8485
  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
8486
  declare const themeCatalogResponseSchema: z$1.ZodObject<{
8573
8487
  active: z$1.ZodObject<{
8574
8488
  customCss: z$1.ZodNullable<z$1.ZodString>;
@@ -8625,16 +8539,10 @@ declare const systemCliSkillsStatusResponseSchema: z$1.ZodObject<{
8625
8539
  }, z$1.core.$strip>>;
8626
8540
  }, z$1.core.$strip>;
8627
8541
  type SystemCliSkillsStatusResponse = z$1.infer<typeof systemCliSkillsStatusResponseSchema>;
8628
- /** The machines to copy the built-in bb CLI skills onto. */
8629
8542
  declare const systemInstallCliSkillsRequestSchema: z$1.ZodObject<{
8630
8543
  hostIds: z$1.ZodArray<z$1.ZodString>;
8631
8544
  }, z$1.core.$strip>;
8632
8545
  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
8546
  declare const systemInstallCliSkillsResponseSchema: z$1.ZodObject<{
8639
8547
  results: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
8640
8548
  hostId: z$1.ZodString;
@@ -9280,11 +9188,6 @@ declare const timelineImageViewWorkRowSchema: z$1.ZodObject<{
9280
9188
  workKind: z$1.ZodLiteral<"image-view">;
9281
9189
  }, z$1.core.$strip>;
9282
9190
  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
9191
  declare const timelineFileReadWorkRowSchema: z$1.ZodObject<{
9289
9192
  callId: z$1.ZodString;
9290
9193
  cmd: z$1.ZodNullable<z$1.ZodString>;
@@ -9323,12 +9226,6 @@ declare const timelineFileReadWorkRowSchema: z$1.ZodObject<{
9323
9226
  workKind: z$1.ZodLiteral<"file-read">;
9324
9227
  }, z$1.core.$strip>;
9325
9228
  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
9229
  declare const timelineSearchWorkRowSchema: z$1.ZodObject<{
9333
9230
  callId: z$1.ZodString;
9334
9231
  cmd: z$1.ZodNullable<z$1.ZodString>;
@@ -9373,11 +9270,6 @@ declare const timelineSearchWorkRowSchema: z$1.ZodObject<{
9373
9270
  workKind: z$1.ZodLiteral<"search">;
9374
9271
  }, z$1.core.$strip>;
9375
9272
  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
9273
  declare const timelinePlanStepsWorkRowSchema: z$1.ZodObject<{
9382
9274
  callId: z$1.ZodString;
9383
9275
  completedAt: z$1.ZodNullable<z$1.ZodNumber>;
@@ -9424,13 +9316,6 @@ declare const timelinePlanStepsWorkRowSchema: z$1.ZodObject<{
9424
9316
  workKind: z$1.ZodLiteral<"plan-steps">;
9425
9317
  }, z$1.core.$strip>;
9426
9318
  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
9319
  declare const timelineExtensionWorkRowSchema: z$1.ZodObject<{
9435
9320
  callId: z$1.ZodString;
9436
9321
  completedAt: z$1.ZodNullable<z$1.ZodNumber>;
@@ -9573,12 +9458,6 @@ declare const timelineQuestionWorkRowSchema: z$1.ZodObject<{
9573
9458
  workKind: z$1.ZodLiteral<"question">;
9574
9459
  }, z$1.core.$strip>;
9575
9460
  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
9461
  interface TimelineDelegationWorkRow extends TimelineWorkRowBase {
9583
9462
  workKind: "delegation";
9584
9463
  callId: string;
@@ -9592,17 +9471,6 @@ interface TimelineDelegationWorkRow extends TimelineWorkRowBase {
9592
9471
  childRows: TimelineRow[];
9593
9472
  presentation?: TimelineRowPresentation;
9594
9473
  }
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
9474
  declare const timelineWorkflowWorkRowSchema: z$1.ZodObject<{
9607
9475
  completedAt: z$1.ZodNullable<z$1.ZodNumber>;
9608
9476
  createdAt: z$1.ZodNumber;
@@ -11494,11 +11362,6 @@ declare const reorderPinnedThreadRequestSchema: z$1.ZodObject<{
11494
11362
  previousThreadId: z$1.ZodNullable<z$1.ZodString>;
11495
11363
  }, z$1.core.$strip>;
11496
11364
  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
11365
  declare const threadOpenSplitSchema: z$1.ZodEnum<{
11503
11366
  down: "down";
11504
11367
  left: "left";
@@ -11507,7 +11370,6 @@ declare const threadOpenSplitSchema: z$1.ZodEnum<{
11507
11370
  top: "top";
11508
11371
  }>;
11509
11372
  type ThreadOpenSplit = z$1.infer<typeof threadOpenSplitSchema>;
11510
- /** Optional secondary-panel file to open with a thread. */
11511
11373
  declare const threadOpenFileSchema: z$1.ZodObject<{
11512
11374
  lineNumber: z$1.ZodNullable<z$1.ZodNumber>;
11513
11375
  path: z$1.ZodString;
@@ -11517,12 +11379,10 @@ declare const threadOpenFileSchema: z$1.ZodObject<{
11517
11379
  }>;
11518
11380
  }, z$1.core.$strict>;
11519
11381
  type ThreadOpenFile = z$1.infer<typeof threadOpenFileSchema>;
11520
- /** Response for POST /threads/:id/open: how many connected clients received it. */
11521
11382
  declare const threadOpenResponseSchema: z$1.ZodObject<{
11522
11383
  delivered: z$1.ZodNumber;
11523
11384
  }, z$1.core.$strip>;
11524
11385
  type ThreadOpenResponse = z$1.infer<typeof threadOpenResponseSchema>;
11525
- /** Presentation action for one thread pane in each connected app window. */
11526
11386
  declare const threadPaneActionSchema: z$1.ZodEnum<{
11527
11387
  "clear-spotlight": "clear-spotlight";
11528
11388
  maximize: "maximize";
@@ -11531,7 +11391,6 @@ declare const threadPaneActionSchema: z$1.ZodEnum<{
11531
11391
  toggle: "toggle";
11532
11392
  }>;
11533
11393
  type ThreadPaneAction = z$1.infer<typeof threadPaneActionSchema>;
11534
- /** Number of connected app clients that received the pane action. */
11535
11394
  declare const threadPaneActionResponseSchema: z$1.ZodObject<{
11536
11395
  delivered: z$1.ZodNumber;
11537
11396
  }, z$1.core.$strip>;
@@ -14323,11 +14182,6 @@ interface EnvironmentsArea {
14323
14182
  update(args: EnvironmentUpdateArgs): Promise<EnvironmentUpdateResult>;
14324
14183
  }
14325
14184
 
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
14185
  interface FileReadArgs {
14332
14186
  hostId?: string;
14333
14187
  path: string;
@@ -14339,17 +14193,9 @@ interface FileWriteArgs {
14339
14193
  path: string;
14340
14194
  rootPath?: string;
14341
14195
  content: string;
14342
- /** Defaults to "utf8". */
14343
14196
  contentEncoding?: "base64" | "utf8";
14344
- /** Defaults to false. */
14345
14197
  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
14198
  expectedSha256?: string | null;
14352
- /** POSIX permission bits used when creating a file (for example 0o600). */
14353
14199
  mode?: number;
14354
14200
  }
14355
14201
  interface FileListArgs {
@@ -14483,7 +14329,6 @@ interface HostsArea {
14483
14329
 
14484
14330
  interface ProjectListArgs {
14485
14331
  include?: ProjectListQuery["include"];
14486
- /** Include the singleton personal project. Defaults to false for compatibility. */
14487
14332
  includePersonal?: boolean;
14488
14333
  signal?: AbortSignal;
14489
14334
  }
@@ -14506,7 +14351,6 @@ interface ProjectPromptHistoryArgs extends PromptHistoryQuery {
14506
14351
  projectId: string;
14507
14352
  signal?: AbortSignal;
14508
14353
  }
14509
- /** Select one project workspace source, or omit both for the primary host. */
14510
14354
  type ProjectWorkspaceRoutingArgs = {
14511
14355
  environmentId: string;
14512
14356
  hostId?: never;
@@ -14550,14 +14394,9 @@ interface ProjectAttachmentFileLike {
14550
14394
  readonly type?: string;
14551
14395
  }
14552
14396
  interface ProjectAttachmentUploadArgsBase {
14553
- /** MIME override. Omit to use the File/Blob type, when available. */
14554
14397
  mimeType?: string;
14555
14398
  projectId: string;
14556
14399
  }
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
14400
  type ProjectAttachmentUploadArgs = ProjectAttachmentUploadArgsBase & ({
14562
14401
  clientFile: ProjectAttachmentFileLike;
14563
14402
  filename?: string;
@@ -14598,7 +14437,6 @@ type ProjectDeleteResult = {
14598
14437
  ok: true;
14599
14438
  };
14600
14439
  interface ProjectFileContentResult {
14601
- /** UTF-8 text or base64, as selected by `contentEncoding`. */
14602
14440
  content: string;
14603
14441
  contentEncoding: "base64" | "utf8";
14604
14442
  mimeType: string;
@@ -14641,17 +14479,11 @@ interface ProjectsArea {
14641
14479
  paths(args: ProjectPathsArgs): Promise<ProjectPathsResult>;
14642
14480
  promptHistory(args: ProjectPromptHistoryArgs): Promise<ProjectPromptHistoryResult>;
14643
14481
  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
14482
  sidebarBootstrap(args?: ProjectSidebarBootstrapArgs): Promise<ProjectSidebarBootstrapResult>;
14650
14483
  sources: ProjectSourcesArea;
14651
14484
  update(args: ProjectUpdateArgs): Promise<ProjectUpdateResult>;
14652
14485
  }
14653
14486
 
14654
- /** Select exactly one provider-discovery host source, or omit both for primary. */
14655
14487
  type ProviderHostRoutingArgs = {
14656
14488
  environmentId: string;
14657
14489
  hostId?: never;
@@ -14673,60 +14505,28 @@ type ProviderModelsArgs = ProviderHostRoutingArgs & {
14673
14505
  type ProviderListResult = ProviderInfo[];
14674
14506
  type ProviderModelsResult = SystemExecutionOptionsResponse;
14675
14507
  interface ProvidersArea {
14676
- /** List providers on the environment host, explicit host, or primary host. */
14677
14508
  list(args?: ProviderListArgs): Promise<ProviderListResult>;
14678
- /** List models on the environment host, explicit host, or primary host. */
14679
14509
  models(args?: ProviderModelsArgs): Promise<ProviderModelsResult>;
14680
14510
  }
14681
14511
 
14682
14512
  interface PluginIdArgs {
14683
14513
  pluginId: string;
14684
14514
  }
14685
- /** Install directly from a path:, git:, npm:, or builtin: source spec. */
14686
14515
  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
14516
  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
14517
  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
14518
  plugin?: string;
14707
14519
  }
14708
- /** Install a catalog entry, from BB's official catalog or another marketplace. */
14709
14520
  interface PluginCatalogInstallArgs {
14710
14521
  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
14522
  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
14523
  confirmedSource?: PluginCatalogResolvedSource;
14722
14524
  }
14723
- /** Ask what an install would do before confirming it. */
14724
14525
  interface PluginCatalogInstallPlanArgs {
14725
14526
  entryId: string;
14726
14527
  marketplace?: string;
14727
14528
  signal?: AbortSignal;
14728
14529
  }
14729
- /** Add a marketplace by `https:` manifest URL, `git:<url>[@ref]`, or `path:<dir>`. */
14730
14530
  interface PluginMarketplaceAddArgs {
14731
14531
  source: string;
14732
14532
  }
@@ -14734,7 +14534,6 @@ interface PluginMarketplaceListArgs {
14734
14534
  signal?: AbortSignal;
14735
14535
  }
14736
14536
  interface PluginMarketplaceRefreshArgs {
14737
- /** One marketplace to refresh; omitted refreshes every one of them. */
14738
14537
  name?: string;
14739
14538
  signal?: AbortSignal;
14740
14539
  }
@@ -14797,17 +14596,14 @@ type PluginMarketplaceListResult = PluginMarketplace[];
14797
14596
  type PluginMarketplaceAddResult = PluginMarketplace;
14798
14597
  type PluginMarketplaceRefreshResult = PluginMarketplaceRefreshResult$1[];
14799
14598
  interface PluginMarketplaceRemoveResult {
14800
- /** Installs whose provenance became `direct`; they keep running as before. */
14801
14599
  convertedPluginIds: string[];
14802
14600
  }
14803
14601
  interface PluginCatalogArea {
14804
14602
  install(args: PluginCatalogInstallArgs): Promise<PluginInstallResult>;
14805
- /** The true resolved source an install would use, before anything runs. */
14806
14603
  installPlan(args: PluginCatalogInstallPlanArgs): Promise<PluginCatalogInstallPlanResult>;
14807
14604
  search(args: PluginCatalogSearchArgs): Promise<PluginCatalogSearchResult>;
14808
14605
  status(args?: PluginCatalogStatusArgs): Promise<PluginCatalogStatusResult>;
14809
14606
  }
14810
- /** Registered marketplaces. Adding one installs nothing; removing one uninstalls nothing. */
14811
14607
  interface PluginMarketplacesArea {
14812
14608
  add(args: PluginMarketplaceAddArgs): Promise<PluginMarketplaceAddResult>;
14813
14609
  list(args?: PluginMarketplaceListArgs): Promise<PluginMarketplaceListResult>;
@@ -14856,11 +14652,6 @@ interface BbRealtimeConnectionEvent {
14856
14652
  reconnected: boolean;
14857
14653
  state: BbRealtimeConnectionState;
14858
14654
  }
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
14655
  interface BbRealtimeEventMap {
14865
14656
  "thread:changed": ThreadRealtimeEvent;
14866
14657
  "project:changed": ProjectRealtimeEvent;
@@ -14899,12 +14690,6 @@ interface SystemConfigRealtimeSubscribeArgs {
14899
14690
  callback: BbRealtimeCallback<"system:config-changed">;
14900
14691
  event: "system:config-changed";
14901
14692
  }
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
14693
  interface RealtimeConnectionSubscribeArgs {
14909
14694
  callback: BbRealtimeCallback<"realtime:connection">;
14910
14695
  event: "realtime:connection";
@@ -14964,11 +14749,6 @@ interface SkillUpdateArgs extends SkillWorkspaceArgs {
14964
14749
  interface SkillDeleteArgs extends SkillWorkspaceArgs {
14965
14750
  skillId: string;
14966
14751
  }
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
14752
  interface AbortableArgs {
14973
14753
  signal?: AbortSignal;
14974
14754
  }
@@ -14990,10 +14770,6 @@ interface RegistrySkillSourceArgs extends AbortableArgs {
14990
14770
  interface RegistryRepositoryArgs extends AbortableArgs {
14991
14771
  source: string;
14992
14772
  }
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
14773
  interface RegistrySkillInstallArgs {
14998
14774
  registrySkillId: string;
14999
14775
  }
@@ -15030,17 +14806,9 @@ interface ThemeGetArgs {
15030
14806
  signal?: AbortSignal;
15031
14807
  }
15032
14808
  interface ThemeArea {
15033
- /** The active app palette, resolved server-side (built-in id or custom CSS). */
15034
14809
  get(args?: ThemeGetArgs): Promise<ThemeGetResult>;
15035
- /** The custom-theme directory plus discovered themes and the active palette. */
15036
14810
  catalog(args?: ThemeCatalogArgs): Promise<ThemeCatalogResult>;
15037
- /** Set the complete app appearance selection in one request. */
15038
14811
  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
14812
  set(themeId: string): Promise<ThemeSetResult>;
15045
14813
  }
15046
14814
 
@@ -15071,7 +14839,6 @@ type SystemExecutionOptionsResult = SystemExecutionOptionsResponse;
15071
14839
  type SystemReloadConfigResult = SystemConfigReloadResponse;
15072
14840
  type SystemInstallCliSkillsArgs = SystemInstallCliSkillsRequest;
15073
14841
  interface SystemCliSkillsStatusArgs {
15074
- /** Omit for every enrolled machine. */
15075
14842
  hostIds?: readonly string[];
15076
14843
  signal?: AbortSignal;
15077
14844
  }
@@ -15091,12 +14858,6 @@ interface SystemArea {
15091
14858
  attention(args?: SystemAttentionArgs): Promise<SystemAttentionResult>;
15092
14859
  config(args?: SystemConfigArgs): Promise<SystemConfigResult>;
15093
14860
  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
14861
  cliSkillsStatus(args?: SystemCliSkillsStatusArgs): Promise<SystemCliSkillsStatusResult>;
15101
14862
  installCliSkills(args: SystemInstallCliSkillsArgs): Promise<SystemInstallCliSkillsResult>;
15102
14863
  reloadConfig(): Promise<SystemReloadConfigResult>;
@@ -15104,7 +14865,6 @@ interface SystemArea {
15104
14865
  updateExperiments(args: Experiments): Promise<SystemUpdateExperimentsResult>;
15105
14866
  updateGeneralSettings(args: AppSettings): Promise<SystemUpdateGeneralSettingsResult>;
15106
14867
  updateKeyboardSettings(args: AppKeybindingOverrides): Promise<SystemUpdateKeyboardSettingsResult>;
15107
- /** Live host-local install and authentication state for every provider. */
15108
14868
  providerStates(args?: SystemProviderStatesArgs): Promise<SystemProviderStatesResult>;
15109
14869
  usageLimits(args?: SystemUsageLimitsArgs): Promise<SystemUsageLimitsResult>;
15110
14870
  version(args?: SystemVersionArgs): Promise<SystemVersionResult>;
@@ -15125,7 +14885,6 @@ interface TerminalEnvironmentScope {
15125
14885
  threadId?: never;
15126
14886
  }
15127
14887
  interface TerminalHostPathListScope {
15128
- /** Optional exact initial working-directory filter on the selected host. */
15129
14888
  cwd?: string;
15130
14889
  environmentId?: never;
15131
14890
  hostId: string;
@@ -15133,7 +14892,6 @@ interface TerminalHostPathListScope {
15133
14892
  threadId?: never;
15134
14893
  }
15135
14894
  interface TerminalHostPathCreateScope {
15136
- /** Null starts in the selected host's home directory. */
15137
14895
  cwd: string | null;
15138
14896
  environmentId?: never;
15139
14897
  hostId: string;
@@ -15196,13 +14954,6 @@ interface TerminalsArea {
15196
14954
  list(args: TerminalListArgs): Promise<TerminalListResult>;
15197
14955
  output(args: TerminalOutputArgs): Promise<TerminalOutputResult>;
15198
14956
  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
14957
  restart(args: TerminalRestartArgs): Promise<TerminalRestartResult>;
15207
14958
  resize(args: TerminalResizeArgs): Promise<TerminalResizeResult>;
15208
14959
  }
@@ -15380,16 +15131,12 @@ interface ThreadPaneActionArgs {
15380
15131
  threadId: string;
15381
15132
  }
15382
15133
  interface ThreadEventsListArgs {
15383
- /** Return only events with a sequence greater than this value. */
15384
15134
  afterSeq?: string;
15385
- /** Return only events with a sequence less than this value. */
15386
15135
  beforeSeq?: string;
15387
15136
  limit?: string;
15388
- /** Defaults to ascending sequence order. */
15389
15137
  order?: "asc" | "desc";
15390
15138
  signal?: AbortSignal;
15391
15139
  threadId: string;
15392
- /** Return only these event types. */
15393
15140
  types?: readonly [ThreadEventType, ...ThreadEventType[]];
15394
15141
  }
15395
15142
  interface ThreadEventWaitArgs {
@@ -15507,10 +15254,6 @@ interface ThreadsArea {
15507
15254
  search(args: ThreadSearchArgs): Promise<ThreadSearchResult>;
15508
15255
  send(args: ThreadSendArgs): Promise<ThreadSendResult>;
15509
15256
  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
15257
  stop(args: ThreadActionArgs): Promise<ThreadStopResult>;
15515
15258
  tabs: ThreadTabsArea;
15516
15259
  timeline(args: ThreadTimelineArgs): Promise<ThreadTimelineResult>;
@@ -15538,11 +15281,6 @@ interface ThreadSectionsArea {
15538
15281
  update(args: UpdateThreadSectionRequest): Promise<ThreadSectionUpdateResult>;
15539
15282
  }
15540
15283
 
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
15284
  interface BbSdkAreas extends BbRealtime {
15547
15285
  environments: EnvironmentsArea;
15548
15286
  files: FilesArea;
@@ -15756,7 +15494,8 @@ interface PluginStorage {
15756
15494
  database(): Database.Database;
15757
15495
  /**
15758
15496
  * Ordered-statement migration helper: statement index = migration id in a
15759
- * `_bb_migrations` table; unapplied statements run in one transaction.
15497
+ * `_bb_migrations` table; unapplied statements run in one transaction. The
15498
+ * host records each statement hash and rejects changed or reused indexes.
15760
15499
  * Append-only — never reorder or edit shipped statements.
15761
15500
  */
15762
15501
  migrate(db: Database.Database, statements: string[]): void;
@@ -16653,8 +16392,11 @@ interface PluginHosts {
16653
16392
  /**
16654
16393
  * Replace this plugin's desired shared-loopback ports for one host. The
16655
16394
  * 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.
16395
+ * resulting set to that host's daemon. When an enrolled host is offline,
16396
+ * the server retains the declaration and delivers it on the next
16397
+ * credentialed daemon session. A connected daemon that reports no machine
16398
+ * credential is rejected. Tunnel identity is deliberately not accepted
16399
+ * here: it is owned by the daemon's trusted enrollment.
16658
16400
  */
16659
16401
  declareSharedPorts(hostId: string, ports: readonly number[]): void;
16660
16402
  }