@get-bb/plugin-sdk 0.4.3 → 0.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -136,6 +136,10 @@ The complete root declaration flattens the unpublished BB workspace contracts.
136
136
  The testing declarations reuse that public `@get-bb/plugin-sdk` root instead of
137
137
  embedding a second copy, and no declaration depends on unpublished `@bb/*`
138
138
  packages. Genuine npm types (`hono`, `better-sqlite3`, `zod`, React, and Testing
139
- Library) remain peer imports. Scaffolded plugins still vendor the root/app
140
- declarations in `types/`; installing this package is needed only when their
141
- tests import the testing subpaths.
139
+ Library) remain peer imports. Scaffolded plugins depend on this package —
140
+ `bb plugin new` pins it exactly in `devDependencies` and read the root/app
141
+ declarations straight from `node_modules/@get-bb/plugin-sdk/bundled-types/`,
142
+ the same files the testing subpaths reuse. Plugins scaffolded before that
143
+ switch still vendor a copy of the root/app declarations in `types/` and map
144
+ `@get-bb/plugin-sdk` onto them through their `tsconfig.json`; `bb plugin
145
+ types` keeps those refreshed until they migrate.
@@ -255,6 +255,7 @@ declare const experimentsSchema: z$1.ZodRecord<z$1.ZodEnum<{
255
255
  claudeCodeMockCliTraffic: "claudeCodeMockCliTraffic";
256
256
  editMessages: "editMessages";
257
257
  newOnboarding: "newOnboarding";
258
+ providerSessionReaping: "providerSessionReaping";
258
259
  }>, z$1.ZodBoolean>;
259
260
  type Experiments = z$1.infer<typeof experimentsSchema>;
260
261
 
@@ -2556,8 +2557,8 @@ declare const skillListResponseSchema: z$1.ZodObject<{
2556
2557
  name: z$1.ZodString;
2557
2558
  description: z$1.ZodNullable<z$1.ZodString>;
2558
2559
  provider: z$1.ZodNullable<z$1.ZodEnum<{
2559
- codex: "codex";
2560
2560
  "claude-code": "claude-code";
2561
+ codex: "codex";
2561
2562
  "acp-cursor": "acp-cursor";
2562
2563
  }>>;
2563
2564
  scope: z$1.ZodEnum<{
@@ -2942,8 +2943,8 @@ declare const environmentArchiveThreadsResponseSchema: z$1.ZodObject<{
2942
2943
  type EnvironmentArchiveThreadsResponse = z$1.infer<typeof environmentArchiveThreadsResponseSchema>;
2943
2944
  declare const pullRequestMergeMethodSchema: z$1.ZodEnum<{
2944
2945
  merge: "merge";
2945
- squash: "squash";
2946
2946
  rebase: "rebase";
2947
+ squash: "squash";
2947
2948
  }>;
2948
2949
  type PullRequestMergeMethod = z$1.infer<typeof pullRequestMergeMethodSchema>;
2949
2950
  declare const commitActionResponseSchema: z$1.ZodObject<{
@@ -2974,8 +2975,8 @@ declare const pullRequestMergeActionResponseSchema: z$1.ZodObject<{
2974
2975
  action: z$1.ZodLiteral<"pull_request_merge">;
2975
2976
  method: z$1.ZodEnum<{
2976
2977
  merge: "merge";
2977
- squash: "squash";
2978
2978
  rebase: "rebase";
2979
+ squash: "squash";
2979
2980
  }>;
2980
2981
  message: z$1.ZodString;
2981
2982
  }, z$1.core.$strip>;
@@ -3238,6 +3239,7 @@ declare const environmentDiffFilesResponseSchema: z$1.ZodDiscriminatedUnion<[z$1
3238
3239
  too_large: "too_large";
3239
3240
  }>;
3240
3241
  }, z$1.core.$strip>>;
3242
+ truncated: z$1.ZodBoolean;
3241
3243
  shortstat: z$1.ZodString;
3242
3244
  mergeBaseRef: z$1.ZodNullable<z$1.ZodString>;
3243
3245
  initialPatches: z$1.ZodArray<z$1.ZodObject<{
@@ -3249,7 +3251,6 @@ declare const environmentDiffFilesResponseSchema: z$1.ZodDiscriminatedUnion<[z$1
3249
3251
  outcome: z$1.ZodLiteral<"not_applicable">;
3250
3252
  reason: z$1.ZodEnum<{
3251
3253
  non_git_environment: "non_git_environment";
3252
- too_many_files: "too_many_files";
3253
3254
  }>;
3254
3255
  message: z$1.ZodString;
3255
3256
  }, z$1.core.$strict>, z$1.ZodObject<{
@@ -3571,16 +3572,16 @@ declare const hostDaemonCommandRegistry: {
3571
3572
  permissionScope: z$1.ZodLiteral<"workspace">;
3572
3573
  approvalReviewer: z$1.ZodLiteral<"user">;
3573
3574
  permissionEscalation: z$1.ZodEnum<{
3574
- ask: "ask";
3575
3575
  deny: "deny";
3576
+ ask: "ask";
3576
3577
  }>;
3577
3578
  }, z$1.core.$strip>, z$1.ZodObject<{
3578
3579
  permissionMode: z$1.ZodLiteral<"auto">;
3579
3580
  permissionScope: z$1.ZodLiteral<"workspace">;
3580
3581
  approvalReviewer: z$1.ZodLiteral<"automatic">;
3581
3582
  permissionEscalation: z$1.ZodEnum<{
3582
- ask: "ask";
3583
3583
  deny: "deny";
3584
+ ask: "ask";
3584
3585
  }>;
3585
3586
  }, z$1.core.$strip>, z$1.ZodObject<{
3586
3587
  permissionMode: z$1.ZodLiteral<"full">;
@@ -3772,16 +3773,16 @@ declare const hostDaemonCommandRegistry: {
3772
3773
  permissionScope: z$1.ZodLiteral<"workspace">;
3773
3774
  approvalReviewer: z$1.ZodLiteral<"user">;
3774
3775
  permissionEscalation: z$1.ZodEnum<{
3775
- ask: "ask";
3776
3776
  deny: "deny";
3777
+ ask: "ask";
3777
3778
  }>;
3778
3779
  }, z$1.core.$strip>, z$1.ZodObject<{
3779
3780
  permissionMode: z$1.ZodLiteral<"auto">;
3780
3781
  permissionScope: z$1.ZodLiteral<"workspace">;
3781
3782
  approvalReviewer: z$1.ZodLiteral<"automatic">;
3782
3783
  permissionEscalation: z$1.ZodEnum<{
3783
- ask: "ask";
3784
3784
  deny: "deny";
3785
+ ask: "ask";
3785
3786
  }>;
3786
3787
  }, z$1.core.$strip>, z$1.ZodObject<{
3787
3788
  permissionMode: z$1.ZodLiteral<"full">;
@@ -3875,9 +3876,9 @@ declare const hostDaemonCommandRegistry: {
3875
3876
  skill: "skill";
3876
3877
  }>;
3877
3878
  origin: z$1.ZodEnum<{
3878
- builtin: "builtin";
3879
- project: "project";
3880
3879
  user: "user";
3880
+ project: "project";
3881
+ builtin: "builtin";
3881
3882
  }>;
3882
3883
  label: z$1.ZodString;
3883
3884
  argumentHint: z$1.ZodNullable<z$1.ZodString>;
@@ -3956,9 +3957,9 @@ declare const hostDaemonCommandRegistry: {
3956
3957
  skill: "skill";
3957
3958
  }>;
3958
3959
  origin: z$1.ZodEnum<{
3959
- builtin: "builtin";
3960
- project: "project";
3961
3960
  user: "user";
3961
+ project: "project";
3962
+ builtin: "builtin";
3962
3963
  }>;
3963
3964
  label: z$1.ZodString;
3964
3965
  argumentHint: z$1.ZodNullable<z$1.ZodString>;
@@ -4049,9 +4050,9 @@ declare const hostDaemonCommandRegistry: {
4049
4050
  skill: "skill";
4050
4051
  }>;
4051
4052
  origin: z$1.ZodEnum<{
4052
- builtin: "builtin";
4053
- project: "project";
4054
4053
  user: "user";
4054
+ project: "project";
4055
+ builtin: "builtin";
4055
4056
  }>;
4056
4057
  label: z$1.ZodString;
4057
4058
  argumentHint: z$1.ZodNullable<z$1.ZodString>;
@@ -4130,9 +4131,9 @@ declare const hostDaemonCommandRegistry: {
4130
4131
  skill: "skill";
4131
4132
  }>;
4132
4133
  origin: z$1.ZodEnum<{
4133
- builtin: "builtin";
4134
- project: "project";
4135
4134
  user: "user";
4135
+ project: "project";
4136
+ builtin: "builtin";
4136
4137
  }>;
4137
4138
  label: z$1.ZodString;
4138
4139
  argumentHint: z$1.ZodNullable<z$1.ZodString>;
@@ -4195,16 +4196,16 @@ declare const hostDaemonCommandRegistry: {
4195
4196
  permissionScope: z$1.ZodLiteral<"workspace">;
4196
4197
  approvalReviewer: z$1.ZodLiteral<"user">;
4197
4198
  permissionEscalation: z$1.ZodEnum<{
4198
- ask: "ask";
4199
4199
  deny: "deny";
4200
+ ask: "ask";
4200
4201
  }>;
4201
4202
  }, z$1.core.$strip>, z$1.ZodObject<{
4202
4203
  permissionMode: z$1.ZodLiteral<"auto">;
4203
4204
  permissionScope: z$1.ZodLiteral<"workspace">;
4204
4205
  approvalReviewer: z$1.ZodLiteral<"automatic">;
4205
4206
  permissionEscalation: z$1.ZodEnum<{
4206
- ask: "ask";
4207
4207
  deny: "deny";
4208
+ ask: "ask";
4208
4209
  }>;
4209
4210
  }, z$1.core.$strip>, z$1.ZodObject<{
4210
4211
  permissionMode: z$1.ZodLiteral<"full">;
@@ -4317,12 +4318,13 @@ declare const hostDaemonCommandRegistry: {
4317
4318
  personal: "personal";
4318
4319
  }>;
4319
4320
  }, z$1.core.$strip>;
4321
+ projectId: z$1.ZodString;
4322
+ providerThreadId: z$1.ZodString;
4323
+ providerId: z$1.ZodString;
4320
4324
  instructionMode: z$1.ZodEnum<{
4321
4325
  append: "append";
4322
4326
  replace: "replace";
4323
4327
  }>;
4324
- projectId: z$1.ZodString;
4325
- providerId: z$1.ZodString;
4326
4328
  acpLaunchSpec: z$1.ZodOptional<z$1.ZodObject<{
4327
4329
  displayName: z$1.ZodString;
4328
4330
  command: z$1.ZodString;
@@ -4454,7 +4456,6 @@ declare const hostDaemonCommandRegistry: {
4454
4456
  skillFilePath: z$1.ZodString;
4455
4457
  }, z$1.core.$strict>], "kind">>;
4456
4458
  disallowedTools: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
4457
- providerThreadId: z$1.ZodString;
4458
4459
  }, z$1.core.$strict>;
4459
4460
  target: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
4460
4461
  mode: z$1.ZodLiteral<"start">;
@@ -4467,14 +4468,18 @@ declare const hostDaemonCommandRegistry: {
4467
4468
  }, z$1.core.$strip>], "mode">;
4468
4469
  }, z$1.core.$strict>, z$1.ZodObject<{
4469
4470
  appliedAs: z$1.ZodEnum<{
4470
- steer: "steer";
4471
4471
  "new-turn": "new-turn";
4472
+ steer: "steer";
4472
4473
  }>;
4473
4474
  }, z$1.core.$strip>, "settled", false>;
4474
4475
  "thread.stop": HostDaemonCommandDescriptor<"thread.stop", z$1.ZodObject<{
4475
4476
  environmentId: z$1.ZodString;
4476
4477
  threadId: z$1.ZodString;
4477
4478
  type: z$1.ZodLiteral<"thread.stop">;
4479
+ intent: z$1.ZodEnum<{
4480
+ interrupt: "interrupt";
4481
+ release: "release";
4482
+ }>;
4478
4483
  }, z$1.core.$strict>, z$1.ZodObject<{
4479
4484
  providerCheckpointId: z$1.ZodNullable<z$1.ZodString>;
4480
4485
  }, z$1.core.$strict>, "settled", false>;
@@ -4511,16 +4516,16 @@ declare const hostDaemonCommandRegistry: {
4511
4516
  permissionScope: z$1.ZodLiteral<"workspace">;
4512
4517
  approvalReviewer: z$1.ZodLiteral<"user">;
4513
4518
  permissionEscalation: z$1.ZodEnum<{
4514
- ask: "ask";
4515
4519
  deny: "deny";
4520
+ ask: "ask";
4516
4521
  }>;
4517
4522
  }, z$1.core.$strip>, z$1.ZodObject<{
4518
4523
  permissionMode: z$1.ZodLiteral<"auto">;
4519
4524
  permissionScope: z$1.ZodLiteral<"workspace">;
4520
4525
  approvalReviewer: z$1.ZodLiteral<"automatic">;
4521
4526
  permissionEscalation: z$1.ZodEnum<{
4522
- ask: "ask";
4523
4527
  deny: "deny";
4528
+ ask: "ask";
4524
4529
  }>;
4525
4530
  }, z$1.core.$strip>, z$1.ZodObject<{
4526
4531
  permissionMode: z$1.ZodLiteral<"full">;
@@ -4633,12 +4638,13 @@ declare const hostDaemonCommandRegistry: {
4633
4638
  personal: "personal";
4634
4639
  }>;
4635
4640
  }, z$1.core.$strip>;
4641
+ projectId: z$1.ZodString;
4642
+ providerThreadId: z$1.ZodString;
4643
+ providerId: z$1.ZodString;
4636
4644
  instructionMode: z$1.ZodEnum<{
4637
4645
  append: "append";
4638
4646
  replace: "replace";
4639
4647
  }>;
4640
- projectId: z$1.ZodString;
4641
- providerId: z$1.ZodString;
4642
4648
  acpLaunchSpec: z$1.ZodOptional<z$1.ZodObject<{
4643
4649
  displayName: z$1.ZodString;
4644
4650
  command: z$1.ZodString;
@@ -4770,7 +4776,6 @@ declare const hostDaemonCommandRegistry: {
4770
4776
  skillFilePath: z$1.ZodString;
4771
4777
  }, z$1.core.$strict>], "kind">>;
4772
4778
  disallowedTools: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
4773
- providerThreadId: z$1.ZodString;
4774
4779
  }, z$1.core.$strict>;
4775
4780
  }, z$1.core.$strict>, z$1.ZodObject<{
4776
4781
  cleared: z$1.ZodBoolean;
@@ -4930,9 +4935,9 @@ declare const hostDaemonCommandRegistry: {
4930
4935
  text: z$1.ZodString;
4931
4936
  startedAt: z$1.ZodOptional<z$1.ZodNumber>;
4932
4937
  status: z$1.ZodOptional<z$1.ZodEnum<{
4933
- started: "started";
4934
4938
  completed: "completed";
4935
4939
  failed: "failed";
4940
+ started: "started";
4936
4941
  }>>;
4937
4942
  metadata: z$1.ZodOptional<z$1.ZodRecord<z$1.ZodString, z$1.ZodUnknown>>;
4938
4943
  }, z$1.core.$strip>>;
@@ -5164,8 +5169,8 @@ declare const hostDaemonCommandRegistry: {
5164
5169
  skill: "skill";
5165
5170
  }>;
5166
5171
  origin: z$1.ZodEnum<{
5167
- project: "project";
5168
5172
  user: "user";
5173
+ project: "project";
5169
5174
  }>;
5170
5175
  description: z$1.ZodNullable<z$1.ZodString>;
5171
5176
  argumentHint: z$1.ZodNullable<z$1.ZodString>;
@@ -5186,9 +5191,9 @@ declare const hostDaemonCommandRegistry: {
5186
5191
  description: z$1.ZodNullable<z$1.ZodString>;
5187
5192
  filePath: z$1.ZodString;
5188
5193
  rootKind: z$1.ZodEnum<{
5194
+ plugin: "plugin";
5189
5195
  "shared-user": "shared-user";
5190
5196
  "shared-project": "shared-project";
5191
- plugin: "plugin";
5192
5197
  "bb-project": "bb-project";
5193
5198
  "bb-data-dir": "bb-data-dir";
5194
5199
  "bb-builtin": "bb-builtin";
@@ -5682,8 +5687,8 @@ declare const hostDaemonCommandRegistry: {
5682
5687
  npmGlobalPackageVersion: z$1.ZodNullable<z$1.ZodString>;
5683
5688
  installAction: z$1.ZodNullable<z$1.ZodObject<{
5684
5689
  kind: z$1.ZodEnum<{
5685
- install: "install";
5686
5690
  update: "update";
5691
+ install: "install";
5687
5692
  }>;
5688
5693
  label: z$1.ZodEnum<{
5689
5694
  Install: "Install";
@@ -5705,8 +5710,8 @@ declare const hostDaemonCommandRegistry: {
5705
5710
  cursor: "cursor";
5706
5711
  }>;
5707
5712
  actionKind: z$1.ZodEnum<{
5708
- install: "install";
5709
5713
  update: "update";
5714
+ install: "install";
5710
5715
  }>;
5711
5716
  type: z$1.ZodLiteral<"provider_cli.install">;
5712
5717
  }, z$1.core.$strict>, z$1.ZodObject<{
@@ -5762,6 +5767,8 @@ declare const hostDaemonCommandRegistry: {
5762
5767
  }, z$1.core.$strip>;
5763
5768
  type: z$1.ZodLiteral<"workspace.status">;
5764
5769
  mergeBaseBranch: z$1.ZodOptional<z$1.ZodString>;
5770
+ maxUntrackedLineStatFiles: z$1.ZodNumber;
5771
+ maxUntrackedLineStatBytes: z$1.ZodNumber;
5765
5772
  }, z$1.core.$strict>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
5766
5773
  outcome: z$1.ZodLiteral<"available">;
5767
5774
  workspaceStatus: z$1.ZodObject<{
@@ -5848,13 +5855,13 @@ declare const hostDaemonCommandRegistry: {
5848
5855
  outcome: z$1.ZodLiteral<"unavailable">;
5849
5856
  failure: z$1.ZodObject<{
5850
5857
  code: z$1.ZodEnum<{
5858
+ unknown: "unknown";
5851
5859
  path_not_found: "path_not_found";
5852
5860
  not_git_repo: "not_git_repo";
5853
5861
  not_worktree: "not_worktree";
5854
5862
  workspace_type_mismatch: "workspace_type_mismatch";
5855
5863
  permission_denied: "permission_denied";
5856
5864
  unknown_environment: "unknown_environment";
5857
- unknown: "unknown";
5858
5865
  }>;
5859
5866
  workspacePath: z$1.ZodString;
5860
5867
  message: z$1.ZodString;
@@ -5899,13 +5906,13 @@ declare const hostDaemonCommandRegistry: {
5899
5906
  outcome: z$1.ZodLiteral<"unavailable">;
5900
5907
  failure: z$1.ZodObject<{
5901
5908
  code: z$1.ZodEnum<{
5909
+ unknown: "unknown";
5902
5910
  path_not_found: "path_not_found";
5903
5911
  not_git_repo: "not_git_repo";
5904
5912
  not_worktree: "not_worktree";
5905
5913
  workspace_type_mismatch: "workspace_type_mismatch";
5906
5914
  permission_denied: "permission_denied";
5907
5915
  unknown_environment: "unknown_environment";
5908
- unknown: "unknown";
5909
5916
  }>;
5910
5917
  workspacePath: z$1.ZodString;
5911
5918
  message: z$1.ZodString;
@@ -5958,17 +5965,18 @@ declare const hostDaemonCommandRegistry: {
5958
5965
  }, z$1.core.$strip>>;
5959
5966
  shortstat: z$1.ZodString;
5960
5967
  mergeBaseRef: z$1.ZodNullable<z$1.ZodString>;
5968
+ truncated: z$1.ZodBoolean;
5961
5969
  }, z$1.core.$strict>, z$1.ZodObject<{
5962
5970
  outcome: z$1.ZodLiteral<"unavailable">;
5963
5971
  failure: z$1.ZodObject<{
5964
5972
  code: z$1.ZodEnum<{
5973
+ unknown: "unknown";
5965
5974
  path_not_found: "path_not_found";
5966
5975
  not_git_repo: "not_git_repo";
5967
5976
  not_worktree: "not_worktree";
5968
5977
  workspace_type_mismatch: "workspace_type_mismatch";
5969
5978
  permission_denied: "permission_denied";
5970
5979
  unknown_environment: "unknown_environment";
5971
- unknown: "unknown";
5972
5980
  }>;
5973
5981
  workspacePath: z$1.ZodString;
5974
5982
  message: z$1.ZodString;
@@ -6010,13 +6018,13 @@ declare const hostDaemonCommandRegistry: {
6010
6018
  outcome: z$1.ZodLiteral<"unavailable">;
6011
6019
  failure: z$1.ZodObject<{
6012
6020
  code: z$1.ZodEnum<{
6021
+ unknown: "unknown";
6013
6022
  path_not_found: "path_not_found";
6014
6023
  not_git_repo: "not_git_repo";
6015
6024
  not_worktree: "not_worktree";
6016
6025
  workspace_type_mismatch: "workspace_type_mismatch";
6017
6026
  permission_denied: "permission_denied";
6018
6027
  unknown_environment: "unknown_environment";
6019
- unknown: "unknown";
6020
6028
  }>;
6021
6029
  workspacePath: z$1.ZodString;
6022
6030
  message: z$1.ZodString;
@@ -6059,9 +6067,9 @@ declare const hostDaemonCommandRegistry: {
6059
6067
  conclusion: z$1.ZodNullable<z$1.ZodEnum<{
6060
6068
  unknown: "unknown";
6061
6069
  success: "success";
6070
+ skipped: "skipped";
6062
6071
  cancelled: "cancelled";
6063
6072
  failure: "failure";
6064
- skipped: "skipped";
6065
6073
  neutral: "neutral";
6066
6074
  timed_out: "timed_out";
6067
6075
  action_required: "action_required";
@@ -6146,8 +6154,8 @@ declare const providerCliStatusResponseSchema: z$1.ZodRecord<z$1.ZodEnum<{
6146
6154
  npmGlobalPackageVersion: z$1.ZodNullable<z$1.ZodString>;
6147
6155
  installAction: z$1.ZodNullable<z$1.ZodObject<{
6148
6156
  kind: z$1.ZodEnum<{
6149
- install: "install";
6150
6157
  update: "update";
6158
+ install: "install";
6151
6159
  }>;
6152
6160
  label: z$1.ZodEnum<{
6153
6161
  Install: "Install";
@@ -6170,8 +6178,8 @@ declare const providerCliInstallRequestSchema: z$1.ZodObject<{
6170
6178
  cursor: "cursor";
6171
6179
  }>;
6172
6180
  actionKind: z$1.ZodEnum<{
6173
- install: "install";
6174
6181
  update: "update";
6182
+ install: "install";
6175
6183
  }>;
6176
6184
  }, z$1.core.$strip>;
6177
6185
  type ProviderCliInstallRequest = z$1.infer<typeof providerCliInstallRequestSchema>;
@@ -6331,6 +6339,10 @@ type PluginApplyUpdateResult$1 = z$1.infer<typeof pluginApplyUpdateResultSchema>
6331
6339
  declare const pluginSourceDetailSchema: z$1.ZodObject<{
6332
6340
  requested: z$1.ZodString;
6333
6341
  resolved: z$1.ZodString;
6342
+ subdirectory: z$1.ZodOptional<z$1.ZodString>;
6343
+ range: z$1.ZodOptional<z$1.ZodString>;
6344
+ tagPrefix: z$1.ZodOptional<z$1.ZodString>;
6345
+ resolvedTag: z$1.ZodOptional<z$1.ZodString>;
6334
6346
  integrity: z$1.ZodOptional<z$1.ZodString>;
6335
6347
  registry: z$1.ZodOptional<z$1.ZodString>;
6336
6348
  engines: z$1.ZodObject<{
@@ -6356,6 +6368,8 @@ declare const installedPluginSchema: z$1.ZodObject<{
6356
6368
  }>;
6357
6369
  isOrphanedBuiltin: z$1.ZodBoolean;
6358
6370
  catalogEntryId: z$1.ZodOptional<z$1.ZodString>;
6371
+ catalogMarketplaceName: z$1.ZodOptional<z$1.ZodString>;
6372
+ publisherLabel: z$1.ZodNullable<z$1.ZodString>;
6359
6373
  sourceDisplay: z$1.ZodString;
6360
6374
  updateState: z$1.ZodObject<{
6361
6375
  outcome: z$1.ZodOptional<z$1.ZodEnum<{
@@ -6365,6 +6379,7 @@ declare const installedPluginSchema: z$1.ZodObject<{
6365
6379
  "update-available": "update-available";
6366
6380
  pinned: "pinned";
6367
6381
  }>>;
6382
+ detail: z$1.ZodOptional<z$1.ZodString>;
6368
6383
  availableVersion: z$1.ZodOptional<z$1.ZodString>;
6369
6384
  blockedVersion: z$1.ZodOptional<z$1.ZodString>;
6370
6385
  blockedReasons: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
@@ -6460,6 +6475,8 @@ declare const pluginListResponseSchema: z$1.ZodObject<{
6460
6475
  }>;
6461
6476
  isOrphanedBuiltin: z$1.ZodBoolean;
6462
6477
  catalogEntryId: z$1.ZodOptional<z$1.ZodString>;
6478
+ catalogMarketplaceName: z$1.ZodOptional<z$1.ZodString>;
6479
+ publisherLabel: z$1.ZodNullable<z$1.ZodString>;
6463
6480
  sourceDisplay: z$1.ZodString;
6464
6481
  updateState: z$1.ZodObject<{
6465
6482
  outcome: z$1.ZodOptional<z$1.ZodEnum<{
@@ -6469,6 +6486,7 @@ declare const pluginListResponseSchema: z$1.ZodObject<{
6469
6486
  "update-available": "update-available";
6470
6487
  pinned: "pinned";
6471
6488
  }>>;
6489
+ detail: z$1.ZodOptional<z$1.ZodString>;
6472
6490
  availableVersion: z$1.ZodOptional<z$1.ZodString>;
6473
6491
  blockedVersion: z$1.ZodOptional<z$1.ZodString>;
6474
6492
  blockedReasons: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
@@ -6566,6 +6584,8 @@ declare const pluginReloadResponseSchema: z$1.ZodObject<{
6566
6584
  }>;
6567
6585
  isOrphanedBuiltin: z$1.ZodBoolean;
6568
6586
  catalogEntryId: z$1.ZodOptional<z$1.ZodString>;
6587
+ catalogMarketplaceName: z$1.ZodOptional<z$1.ZodString>;
6588
+ publisherLabel: z$1.ZodNullable<z$1.ZodString>;
6569
6589
  sourceDisplay: z$1.ZodString;
6570
6590
  updateState: z$1.ZodObject<{
6571
6591
  outcome: z$1.ZodOptional<z$1.ZodEnum<{
@@ -6575,6 +6595,7 @@ declare const pluginReloadResponseSchema: z$1.ZodObject<{
6575
6595
  "update-available": "update-available";
6576
6596
  pinned: "pinned";
6577
6597
  }>>;
6598
+ detail: z$1.ZodOptional<z$1.ZodString>;
6578
6599
  availableVersion: z$1.ZodOptional<z$1.ZodString>;
6579
6600
  blockedVersion: z$1.ZodOptional<z$1.ZodString>;
6580
6601
  blockedReasons: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
@@ -6707,13 +6728,141 @@ declare const pluginCatalogSearchResultSchema: z$1.ZodObject<{
6707
6728
  displayName: z$1.ZodString;
6708
6729
  description: z$1.ZodString;
6709
6730
  icon: z$1.ZodNullable<z$1.ZodString>;
6731
+ iconUrl: z$1.ZodNullable<z$1.ZodString>;
6710
6732
  category: z$1.ZodString;
6711
6733
  source: z$1.ZodString;
6734
+ marketplace: z$1.ZodString;
6735
+ marketplaceDisplayName: z$1.ZodString;
6736
+ publisherKey: z$1.ZodString;
6737
+ publisherLabel: z$1.ZodString;
6738
+ official: z$1.ZodBoolean;
6739
+ author: z$1.ZodNullable<z$1.ZodObject<{
6740
+ name: z$1.ZodString;
6741
+ url: z$1.ZodNullable<z$1.ZodString>;
6742
+ }, z$1.core.$strip>>;
6712
6743
  installed: z$1.ZodBoolean;
6713
6744
  compatible: z$1.ZodBoolean;
6714
6745
  incompatibleReason: z$1.ZodNullable<z$1.ZodString>;
6715
6746
  }, z$1.core.$strip>;
6716
6747
  type PluginCatalogSearchResult$1 = z$1.infer<typeof pluginCatalogSearchResultSchema>;
6748
+ /**
6749
+ * The true source an install will run against, resolved before anything runs.
6750
+ * Both kinds report the exact artifact they resolve to right now — a commit
6751
+ * for git, a version and its integrity for npm — so a range or tag install is
6752
+ * confirmed against the exact code it will fetch.
6753
+ */
6754
+ declare const pluginCatalogResolvedSourceSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6755
+ kind: z$1.ZodLiteral<"npm">;
6756
+ package: z$1.ZodString;
6757
+ range: z$1.ZodOptional<z$1.ZodString>;
6758
+ tag: z$1.ZodOptional<z$1.ZodString>;
6759
+ registry: z$1.ZodOptional<z$1.ZodString>;
6760
+ resolvedVersion: z$1.ZodOptional<z$1.ZodString>;
6761
+ resolvedIntegrity: z$1.ZodOptional<z$1.ZodString>;
6762
+ unresolvedReason: z$1.ZodOptional<z$1.ZodString>;
6763
+ }, z$1.core.$strict>, z$1.ZodObject<{
6764
+ kind: z$1.ZodLiteral<"git">;
6765
+ url: z$1.ZodString;
6766
+ subdir: z$1.ZodOptional<z$1.ZodString>;
6767
+ ref: z$1.ZodOptional<z$1.ZodString>;
6768
+ range: z$1.ZodOptional<z$1.ZodString>;
6769
+ tagPrefix: z$1.ZodOptional<z$1.ZodString>;
6770
+ resolvedTag: z$1.ZodOptional<z$1.ZodString>;
6771
+ resolvedCommit: z$1.ZodOptional<z$1.ZodString>;
6772
+ unresolvedReason: z$1.ZodOptional<z$1.ZodString>;
6773
+ }, z$1.core.$strict>], "kind">;
6774
+ type PluginCatalogResolvedSource = z$1.infer<typeof pluginCatalogResolvedSourceSchema>;
6775
+ /**
6776
+ * What `POST /plugin-catalog/install` would do with the same arguments, shown
6777
+ * to the user before anything runs. `bundled` entries install from the copy
6778
+ * inside the app; `marketplace` entries install from their listed source.
6779
+ */
6780
+ declare const pluginCatalogInstallPlanSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6781
+ kind: z$1.ZodLiteral<"bundled">;
6782
+ entryId: z$1.ZodString;
6783
+ pluginId: z$1.ZodString;
6784
+ displayName: z$1.ZodString;
6785
+ source: z$1.ZodString;
6786
+ compatible: z$1.ZodBoolean;
6787
+ incompatibleReason: z$1.ZodNullable<z$1.ZodString>;
6788
+ }, z$1.core.$strip>, z$1.ZodObject<{
6789
+ kind: z$1.ZodLiteral<"marketplace">;
6790
+ entryId: z$1.ZodString;
6791
+ pluginId: z$1.ZodString;
6792
+ displayName: z$1.ZodString;
6793
+ marketplace: z$1.ZodString;
6794
+ marketplaceDisplayName: z$1.ZodString;
6795
+ official: z$1.ZodBoolean;
6796
+ author: z$1.ZodObject<{
6797
+ name: z$1.ZodString;
6798
+ url: z$1.ZodNullable<z$1.ZodString>;
6799
+ }, z$1.core.$strip>;
6800
+ source: z$1.ZodString;
6801
+ resolvedSource: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
6802
+ kind: z$1.ZodLiteral<"npm">;
6803
+ package: z$1.ZodString;
6804
+ range: z$1.ZodOptional<z$1.ZodString>;
6805
+ tag: z$1.ZodOptional<z$1.ZodString>;
6806
+ registry: z$1.ZodOptional<z$1.ZodString>;
6807
+ resolvedVersion: z$1.ZodOptional<z$1.ZodString>;
6808
+ resolvedIntegrity: z$1.ZodOptional<z$1.ZodString>;
6809
+ unresolvedReason: z$1.ZodOptional<z$1.ZodString>;
6810
+ }, z$1.core.$strict>, z$1.ZodObject<{
6811
+ kind: z$1.ZodLiteral<"git">;
6812
+ url: z$1.ZodString;
6813
+ subdir: z$1.ZodOptional<z$1.ZodString>;
6814
+ ref: z$1.ZodOptional<z$1.ZodString>;
6815
+ range: z$1.ZodOptional<z$1.ZodString>;
6816
+ tagPrefix: z$1.ZodOptional<z$1.ZodString>;
6817
+ resolvedTag: z$1.ZodOptional<z$1.ZodString>;
6818
+ resolvedCommit: z$1.ZodOptional<z$1.ZodString>;
6819
+ unresolvedReason: z$1.ZodOptional<z$1.ZodString>;
6820
+ }, z$1.core.$strict>], "kind">;
6821
+ compatible: z$1.ZodBoolean;
6822
+ incompatibleReason: z$1.ZodNullable<z$1.ZodString>;
6823
+ }, z$1.core.$strip>], "kind">;
6824
+ type PluginCatalogInstallPlan = z$1.infer<typeof pluginCatalogInstallPlanSchema>;
6825
+ declare const pluginMarketplaceSchema: z$1.ZodObject<{
6826
+ name: z$1.ZodString;
6827
+ displayName: z$1.ZodString;
6828
+ description: z$1.ZodNullable<z$1.ZodString>;
6829
+ official: z$1.ZodBoolean;
6830
+ sourceKind: z$1.ZodEnum<{
6831
+ path: "path";
6832
+ git: "git";
6833
+ https: "https";
6834
+ }>;
6835
+ source: z$1.ZodString;
6836
+ resolvedCommit: z$1.ZodNullable<z$1.ZodString>;
6837
+ entryCount: z$1.ZodNumber;
6838
+ lastRefreshAt: z$1.ZodNullable<z$1.ZodNumber>;
6839
+ lastAttemptAt: z$1.ZodNullable<z$1.ZodNumber>;
6840
+ lastError: z$1.ZodNullable<z$1.ZodString>;
6841
+ }, z$1.core.$strip>;
6842
+ type PluginMarketplace = z$1.infer<typeof pluginMarketplaceSchema>;
6843
+ declare const pluginMarketplaceRefreshResultSchema: z$1.ZodObject<{
6844
+ name: z$1.ZodString;
6845
+ ok: z$1.ZodBoolean;
6846
+ error: z$1.ZodNullable<z$1.ZodString>;
6847
+ marketplace: z$1.ZodObject<{
6848
+ name: z$1.ZodString;
6849
+ displayName: z$1.ZodString;
6850
+ description: z$1.ZodNullable<z$1.ZodString>;
6851
+ official: z$1.ZodBoolean;
6852
+ sourceKind: z$1.ZodEnum<{
6853
+ path: "path";
6854
+ git: "git";
6855
+ https: "https";
6856
+ }>;
6857
+ source: z$1.ZodString;
6858
+ resolvedCommit: z$1.ZodNullable<z$1.ZodString>;
6859
+ entryCount: z$1.ZodNumber;
6860
+ lastRefreshAt: z$1.ZodNullable<z$1.ZodNumber>;
6861
+ lastAttemptAt: z$1.ZodNullable<z$1.ZodNumber>;
6862
+ lastError: z$1.ZodNullable<z$1.ZodString>;
6863
+ }, z$1.core.$strip>;
6864
+ }, z$1.core.$strip>;
6865
+ type PluginMarketplaceRefreshResult$1 = z$1.infer<typeof pluginMarketplaceRefreshResultSchema>;
6717
6866
 
6718
6867
  declare const systemExecutionOptionsResponseSchema: z$1.ZodObject<{
6719
6868
  providers: z$1.ZodArray<z$1.ZodObject<{
@@ -7206,6 +7355,7 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
7206
7355
  claudeCodeMockCliTraffic: "claudeCodeMockCliTraffic";
7207
7356
  editMessages: "editMessages";
7208
7357
  newOnboarding: "newOnboarding";
7358
+ providerSessionReaping: "providerSessionReaping";
7209
7359
  }>, z$1.ZodBoolean>;
7210
7360
  appearance: z$1.ZodObject<{
7211
7361
  themeId: z$1.ZodString;
@@ -10034,8 +10184,8 @@ declare const threadTimelineResponseSchema: z$1.ZodObject<{
10034
10184
  activePromptMode: z$1.ZodNullable<z$1.ZodObject<{
10035
10185
  mode: z$1.ZodLiteral<"plan">;
10036
10186
  providerId: z$1.ZodEnum<{
10037
- codex: "codex";
10038
10187
  "claude-code": "claude-code";
10188
+ codex: "codex";
10039
10189
  }>;
10040
10190
  prompt: z$1.ZodString;
10041
10191
  }, z$1.core.$strict>>;
@@ -12224,11 +12374,62 @@ interface PluginIdArgs {
12224
12374
  }
12225
12375
  /** Install directly from a path:, git:, npm:, or builtin: source spec. */
12226
12376
  interface PluginInstallArgs {
12377
+ /**
12378
+ * `path:<dir>`, `builtin:<name>`, `npm:<package>[@<version|tag|range>]`, or
12379
+ * `git:<url>[@<spec>]`. A git spec is one ref, or a semver range resolved
12380
+ * over the repository's `[<tagPrefix>]vX.Y.Z` release tags:
12381
+ * `git:<url>@semver:<range>` and `git:<url>@semver:<tagPrefix>:<range>` say
12382
+ * range explicitly, `git:<url>@ref:<name>` says ref explicitly, and a bare
12383
+ * `^1.2.0` resolves over tags unless the repository also has a ref of that
12384
+ * literal name (which is refused as ambiguous).
12385
+ */
12227
12386
  source: string;
12387
+ /**
12388
+ * Directory of a multi-plugin repository to install, relative to the
12389
+ * repository root (`git:` and `path:` sources only).
12390
+ */
12391
+ subdirectory?: string;
12392
+ /**
12393
+ * Name of a `.bb/plugins.json` collection entry to install, resolved to its
12394
+ * directory in the repository. Mutually exclusive with `subdirectory`.
12395
+ */
12396
+ plugin?: string;
12228
12397
  }
12229
- /** Install an entry from BB's official catalog. */
12398
+ /** Install a catalog entry, from BB's official catalog or another marketplace. */
12230
12399
  interface PluginCatalogInstallArgs {
12231
12400
  entryId: string;
12401
+ /**
12402
+ * Marketplace that lists the entry. Omitted resolves across every
12403
+ * marketplace: exactly one match installs, none falls back to the bundled
12404
+ * official plugin of that name, and several are refused as ambiguous.
12405
+ */
12406
+ marketplace?: string;
12407
+ /**
12408
+ * Source facts returned by installPlan for a third-party entry. The server
12409
+ * refuses the install when the listing or its git commit changed afterward.
12410
+ */
12411
+ confirmedSource?: PluginCatalogResolvedSource;
12412
+ }
12413
+ /** Ask what an install would do before confirming it. */
12414
+ interface PluginCatalogInstallPlanArgs {
12415
+ entryId: string;
12416
+ marketplace?: string;
12417
+ signal?: AbortSignal;
12418
+ }
12419
+ /** Add a marketplace by `https:` manifest URL, `git:<url>[@ref]`, or `path:<dir>`. */
12420
+ interface PluginMarketplaceAddArgs {
12421
+ source: string;
12422
+ }
12423
+ interface PluginMarketplaceListArgs {
12424
+ signal?: AbortSignal;
12425
+ }
12426
+ interface PluginMarketplaceRefreshArgs {
12427
+ /** One marketplace to refresh; omitted refreshes every one of them. */
12428
+ name?: string;
12429
+ signal?: AbortSignal;
12430
+ }
12431
+ interface PluginMarketplaceRemoveArgs {
12432
+ name: string;
12232
12433
  }
12233
12434
  interface PluginReloadArgs {
12234
12435
  pluginId?: string;
@@ -12281,22 +12482,34 @@ type PluginCheckUpdatesResult = PluginUpdateCheckEntry[];
12281
12482
  type PluginApplyUpdateResult = PluginApplyUpdateResult$1;
12282
12483
  type PluginCatalogStatusResult = PluginCatalogStatus;
12283
12484
  type PluginCatalogSearchResult = PluginCatalogSearchResult$1[];
12284
- interface PluginCatalogSubmissionResult {
12285
- /** BB's canonical browser form for proposing a plugin to the marketplace. */
12286
- url: string;
12485
+ type PluginCatalogInstallPlanResult = PluginCatalogInstallPlan;
12486
+ type PluginMarketplaceListResult = PluginMarketplace[];
12487
+ type PluginMarketplaceAddResult = PluginMarketplace;
12488
+ type PluginMarketplaceRefreshResult = PluginMarketplaceRefreshResult$1[];
12489
+ interface PluginMarketplaceRemoveResult {
12490
+ /** Installs whose provenance became `direct`; they keep running as before. */
12491
+ convertedPluginIds: string[];
12287
12492
  }
12288
12493
  interface PluginCatalogArea {
12289
12494
  install(args: PluginCatalogInstallArgs): Promise<PluginInstallResult>;
12495
+ /** The true resolved source an install would use, before anything runs. */
12496
+ installPlan(args: PluginCatalogInstallPlanArgs): Promise<PluginCatalogInstallPlanResult>;
12290
12497
  search(args: PluginCatalogSearchArgs): Promise<PluginCatalogSearchResult>;
12291
12498
  status(args?: PluginCatalogStatusArgs): Promise<PluginCatalogStatusResult>;
12292
- /** Return the canonical marketplace submission form; submitting stays browser-owned. */
12293
- submission(): PluginCatalogSubmissionResult;
12499
+ }
12500
+ /** Registered marketplaces. Adding one installs nothing; removing one uninstalls nothing. */
12501
+ interface PluginMarketplacesArea {
12502
+ add(args: PluginMarketplaceAddArgs): Promise<PluginMarketplaceAddResult>;
12503
+ list(args?: PluginMarketplaceListArgs): Promise<PluginMarketplaceListResult>;
12504
+ refresh(args?: PluginMarketplaceRefreshArgs): Promise<PluginMarketplaceRefreshResult>;
12505
+ remove(args: PluginMarketplaceRemoveArgs): Promise<PluginMarketplaceRemoveResult>;
12294
12506
  }
12295
12507
  interface PluginsArea {
12296
12508
  applyUpdate(args: PluginIdArgs): Promise<PluginApplyUpdateResult>;
12297
12509
  callRpc<TOutput>(args: PluginRpcArgs<TOutput>): Promise<TOutput>;
12298
12510
  checkUpdates(args?: PluginCheckUpdatesArgs): Promise<PluginCheckUpdatesResult>;
12299
12511
  catalog: PluginCatalogArea;
12512
+ marketplaces: PluginMarketplacesArea;
12300
12513
  disable(args: PluginIdArgs): Promise<PluginDisableResult>;
12301
12514
  enable(args: PluginIdArgs): Promise<PluginEnableResult>;
12302
12515
  getSettings(args: PluginGetSettingsArgs): Promise<PluginGetSettingsResult>;
@@ -12996,6 +13209,10 @@ interface ThreadsArea {
12996
13209
  search(args: ThreadSearchArgs): Promise<ThreadSearchResult>;
12997
13210
  send(args: ThreadSendArgs): Promise<ThreadSendResult>;
12998
13211
  spawn(args: ThreadSpawnArgs): Promise<ThreadSpawnResult>;
13212
+ /**
13213
+ * Stop active work and release the loaded agent runtime. This operation is
13214
+ * idempotent and preserves thread history for a later resume.
13215
+ */
12999
13216
  stop(args: ThreadActionArgs): Promise<ThreadStopResult>;
13000
13217
  tabs: ThreadTabsArea;
13001
13218
  timeline(args: ThreadTimelineArgs): Promise<ThreadTimelineResult>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@get-bb/plugin-sdk",
3
- "version": "0.4.3",
3
+ "version": "0.4.6",
4
4
  "homepage": "https://github.com/get-bb/bb#readme",
5
5
  "bugs": {
6
6
  "url": "https://github.com/get-bb/bb/issues"