@get-bb/plugin-sdk 0.5.30 → 0.6.5
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 +8 -4
- package/bundled-types/bb-plugin-sdk-app.d.ts +264 -384
- package/bundled-types/bb-plugin-sdk-environment-provider.d.ts +0 -84
- package/bundled-types/bb-plugin-sdk-internal-composer-handle.d.ts +457 -0
- package/bundled-types/bb-plugin-sdk-internal-host-policy.d.ts +21 -88
- package/bundled-types/bb-plugin-sdk-testing-app.d.ts +32 -10
- package/bundled-types/bb-plugin-sdk-testing.d.ts +8 -87
- package/bundled-types/bb-plugin-sdk.d.ts +298 -391
- package/dist/app.js +2 -0
- package/dist/internal/composer-customization-validation.js +37 -27
- package/dist/internal/composer-handle.js +531 -0
- package/dist/internal/plugin-app-collector.js +37 -27
- package/dist/testing/app.js +780 -132
- package/dist/testing/index.js +7 -4
- package/package.json +7 -1
|
@@ -234,6 +234,11 @@ declare const appKeybindingOverridesSchema: z$1.ZodArray<z$1.ZodObject<{
|
|
|
234
234
|
"window.new": "window.new";
|
|
235
235
|
"workspace.openPreferred": "workspace.openPreferred";
|
|
236
236
|
}>, z$1.ZodTemplateLiteral<`plugin:${string}/${string}`>]>;
|
|
237
|
+
platform: z$1.ZodOptional<z$1.ZodEnum<{
|
|
238
|
+
linux: "linux";
|
|
239
|
+
mac: "mac";
|
|
240
|
+
windows: "windows";
|
|
241
|
+
}>>;
|
|
237
242
|
shortcut: z$1.ZodNullable<z$1.ZodObject<{
|
|
238
243
|
alt: z$1.ZodBoolean;
|
|
239
244
|
control: z$1.ZodBoolean;
|
|
@@ -290,7 +295,6 @@ type AppThemeSelection = z$1.infer<typeof appThemeSelectionSchema>;
|
|
|
290
295
|
declare const changedMessageSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
|
|
291
296
|
changes: z$1.ZodReadonly<z$1.ZodArray<z$1.ZodEnum<{
|
|
292
297
|
"archived-changed": "archived-changed";
|
|
293
|
-
"draft-changed": "draft-changed";
|
|
294
298
|
"environment-changed": "environment-changed";
|
|
295
299
|
"events-appended": "events-appended";
|
|
296
300
|
"history-rewritten": "history-rewritten";
|
|
@@ -325,7 +329,6 @@ declare const changedMessageSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
|
|
|
325
329
|
latestAttentionAt: z$1.ZodNumber;
|
|
326
330
|
runtime: z$1.ZodObject<{
|
|
327
331
|
displayStatus: z$1.ZodEnum<{
|
|
328
|
-
"host-reconnecting": "host-reconnecting";
|
|
329
332
|
"waiting-for-host": "waiting-for-host";
|
|
330
333
|
active: "active";
|
|
331
334
|
error: "error";
|
|
@@ -335,7 +338,6 @@ declare const changedMessageSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
|
|
|
335
338
|
starting: "starting";
|
|
336
339
|
stopping: "stopping";
|
|
337
340
|
}>;
|
|
338
|
-
hostReconnectGraceExpiresAt: z$1.ZodNullable<z$1.ZodNumber>;
|
|
339
341
|
}, z$1.core.$strip>;
|
|
340
342
|
status: z$1.ZodEnum<{
|
|
341
343
|
active: "active";
|
|
@@ -486,6 +488,7 @@ declare const environmentSchema: z$1.ZodObject<{
|
|
|
486
488
|
type Environment = z$1.infer<typeof environmentSchema>;
|
|
487
489
|
|
|
488
490
|
declare const experimentsSchema: z$1.ZodRecord<z$1.ZodEnum<{
|
|
491
|
+
androidTesting: "androidTesting";
|
|
489
492
|
changelogPreview: "changelogPreview";
|
|
490
493
|
legacyJitiPluginLoader: "legacyJitiPluginLoader";
|
|
491
494
|
mobileApp: "mobileApp";
|
|
@@ -4260,7 +4263,6 @@ declare const threadTimelinePendingTodosSchema: z$1.ZodObject<{
|
|
|
4260
4263
|
type ThreadTimelinePendingTodos = z$1.infer<typeof threadTimelinePendingTodosSchema>;
|
|
4261
4264
|
|
|
4262
4265
|
declare const threadRuntimeDisplayStatusSchema: z$1.ZodEnum<{
|
|
4263
|
-
"host-reconnecting": "host-reconnecting";
|
|
4264
4266
|
"waiting-for-host": "waiting-for-host";
|
|
4265
4267
|
active: "active";
|
|
4266
4268
|
error: "error";
|
|
@@ -4953,7 +4955,6 @@ declare const projectWithThreadsResponseSchema: z$1.ZodObject<{
|
|
|
4953
4955
|
}>;
|
|
4954
4956
|
runtime: z$1.ZodObject<{
|
|
4955
4957
|
displayStatus: z$1.ZodEnum<{
|
|
4956
|
-
"host-reconnecting": "host-reconnecting";
|
|
4957
4958
|
"waiting-for-host": "waiting-for-host";
|
|
4958
4959
|
active: "active";
|
|
4959
4960
|
error: "error";
|
|
@@ -4963,7 +4964,6 @@ declare const projectWithThreadsResponseSchema: z$1.ZodObject<{
|
|
|
4963
4964
|
starting: "starting";
|
|
4964
4965
|
stopping: "stopping";
|
|
4965
4966
|
}>;
|
|
4966
|
-
hostReconnectGraceExpiresAt: z$1.ZodNullable<z$1.ZodNumber>;
|
|
4967
4967
|
}, z$1.core.$strip>;
|
|
4968
4968
|
sectionId: z$1.ZodNullable<z$1.ZodString>;
|
|
4969
4969
|
sourceThreadId: z$1.ZodNullable<z$1.ZodString>;
|
|
@@ -5073,7 +5073,6 @@ declare const sidebarBootstrapResponseSchema: z$1.ZodObject<{
|
|
|
5073
5073
|
}>;
|
|
5074
5074
|
runtime: z$1.ZodObject<{
|
|
5075
5075
|
displayStatus: z$1.ZodEnum<{
|
|
5076
|
-
"host-reconnecting": "host-reconnecting";
|
|
5077
5076
|
"waiting-for-host": "waiting-for-host";
|
|
5078
5077
|
active: "active";
|
|
5079
5078
|
error: "error";
|
|
@@ -5083,7 +5082,6 @@ declare const sidebarBootstrapResponseSchema: z$1.ZodObject<{
|
|
|
5083
5082
|
starting: "starting";
|
|
5084
5083
|
stopping: "stopping";
|
|
5085
5084
|
}>;
|
|
5086
|
-
hostReconnectGraceExpiresAt: z$1.ZodNullable<z$1.ZodNumber>;
|
|
5087
5085
|
}, z$1.core.$strip>;
|
|
5088
5086
|
sectionId: z$1.ZodNullable<z$1.ZodString>;
|
|
5089
5087
|
sourceThreadId: z$1.ZodNullable<z$1.ZodString>;
|
|
@@ -5191,7 +5189,6 @@ declare const sidebarBootstrapResponseSchema: z$1.ZodObject<{
|
|
|
5191
5189
|
}>;
|
|
5192
5190
|
runtime: z$1.ZodObject<{
|
|
5193
5191
|
displayStatus: z$1.ZodEnum<{
|
|
5194
|
-
"host-reconnecting": "host-reconnecting";
|
|
5195
5192
|
"waiting-for-host": "waiting-for-host";
|
|
5196
5193
|
active: "active";
|
|
5197
5194
|
error: "error";
|
|
@@ -5201,7 +5198,6 @@ declare const sidebarBootstrapResponseSchema: z$1.ZodObject<{
|
|
|
5201
5198
|
starting: "starting";
|
|
5202
5199
|
stopping: "stopping";
|
|
5203
5200
|
}>;
|
|
5204
|
-
hostReconnectGraceExpiresAt: z$1.ZodNullable<z$1.ZodNumber>;
|
|
5205
5201
|
}, z$1.core.$strip>;
|
|
5206
5202
|
sectionId: z$1.ZodNullable<z$1.ZodString>;
|
|
5207
5203
|
sourceThreadId: z$1.ZodNullable<z$1.ZodString>;
|
|
@@ -10193,6 +10189,7 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
|
|
|
10193
10189
|
all: z$1.ZodArray<z$1.ZodEnum<{
|
|
10194
10190
|
browserFocus: "browserFocus";
|
|
10195
10191
|
editableFocus: "editableFocus";
|
|
10192
|
+
linuxPlatform: "linuxPlatform";
|
|
10196
10193
|
macPlatform: "macPlatform";
|
|
10197
10194
|
mainSurface: "mainSurface";
|
|
10198
10195
|
modalOpen: "modalOpen";
|
|
@@ -10202,10 +10199,12 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
|
|
|
10202
10199
|
splitActive: "splitActive";
|
|
10203
10200
|
terminalFocus: "terminalFocus";
|
|
10204
10201
|
webSurface: "webSurface";
|
|
10202
|
+
windowsPlatform: "windowsPlatform";
|
|
10205
10203
|
}>>;
|
|
10206
10204
|
none: z$1.ZodArray<z$1.ZodEnum<{
|
|
10207
10205
|
browserFocus: "browserFocus";
|
|
10208
10206
|
editableFocus: "editableFocus";
|
|
10207
|
+
linuxPlatform: "linuxPlatform";
|
|
10209
10208
|
macPlatform: "macPlatform";
|
|
10210
10209
|
mainSurface: "mainSurface";
|
|
10211
10210
|
modalOpen: "modalOpen";
|
|
@@ -10215,10 +10214,12 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
|
|
|
10215
10214
|
splitActive: "splitActive";
|
|
10216
10215
|
terminalFocus: "terminalFocus";
|
|
10217
10216
|
webSurface: "webSurface";
|
|
10217
|
+
windowsPlatform: "windowsPlatform";
|
|
10218
10218
|
}>>;
|
|
10219
10219
|
}, z$1.core.$strict>;
|
|
10220
10220
|
}, z$1.core.$strict>>;
|
|
10221
10221
|
experiments: z$1.ZodRecord<z$1.ZodEnum<{
|
|
10222
|
+
androidTesting: "androidTesting";
|
|
10222
10223
|
changelogPreview: "changelogPreview";
|
|
10223
10224
|
legacyJitiPluginLoader: "legacyJitiPluginLoader";
|
|
10224
10225
|
mobileApp: "mobileApp";
|
|
@@ -10327,6 +10328,11 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
|
|
|
10327
10328
|
"window.new": "window.new";
|
|
10328
10329
|
"workspace.openPreferred": "workspace.openPreferred";
|
|
10329
10330
|
}>, z$1.ZodTemplateLiteral<`plugin:${string}/${string}`>]>;
|
|
10331
|
+
platform: z$1.ZodOptional<z$1.ZodEnum<{
|
|
10332
|
+
linux: "linux";
|
|
10333
|
+
mac: "mac";
|
|
10334
|
+
windows: "windows";
|
|
10335
|
+
}>>;
|
|
10330
10336
|
shortcut: z$1.ZodNullable<z$1.ZodObject<{
|
|
10331
10337
|
alt: z$1.ZodBoolean;
|
|
10332
10338
|
control: z$1.ZodBoolean;
|
|
@@ -10427,6 +10433,7 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
|
|
|
10427
10433
|
all: z$1.ZodArray<z$1.ZodEnum<{
|
|
10428
10434
|
browserFocus: "browserFocus";
|
|
10429
10435
|
editableFocus: "editableFocus";
|
|
10436
|
+
linuxPlatform: "linuxPlatform";
|
|
10430
10437
|
macPlatform: "macPlatform";
|
|
10431
10438
|
mainSurface: "mainSurface";
|
|
10432
10439
|
modalOpen: "modalOpen";
|
|
@@ -10436,10 +10443,12 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
|
|
|
10436
10443
|
splitActive: "splitActive";
|
|
10437
10444
|
terminalFocus: "terminalFocus";
|
|
10438
10445
|
webSurface: "webSurface";
|
|
10446
|
+
windowsPlatform: "windowsPlatform";
|
|
10439
10447
|
}>>;
|
|
10440
10448
|
none: z$1.ZodArray<z$1.ZodEnum<{
|
|
10441
10449
|
browserFocus: "browserFocus";
|
|
10442
10450
|
editableFocus: "editableFocus";
|
|
10451
|
+
linuxPlatform: "linuxPlatform";
|
|
10443
10452
|
macPlatform: "macPlatform";
|
|
10444
10453
|
mainSurface: "mainSurface";
|
|
10445
10454
|
modalOpen: "modalOpen";
|
|
@@ -10449,6 +10458,7 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
|
|
|
10449
10458
|
splitActive: "splitActive";
|
|
10450
10459
|
terminalFocus: "terminalFocus";
|
|
10451
10460
|
webSurface: "webSurface";
|
|
10461
|
+
windowsPlatform: "windowsPlatform";
|
|
10452
10462
|
}>>;
|
|
10453
10463
|
}, z$1.core.$strict>;
|
|
10454
10464
|
}, z$1.core.$strict>>;
|
|
@@ -10716,6 +10726,27 @@ declare const systemMachineProviderSchema: z$1.ZodObject<{
|
|
|
10716
10726
|
supportsSuspend: z$1.ZodBoolean;
|
|
10717
10727
|
}, z$1.core.$strip>;
|
|
10718
10728
|
type SystemMachineProvider = z$1.infer<typeof systemMachineProviderSchema>;
|
|
10729
|
+
declare const androidAppArtifactSchema: z$1.ZodObject<{
|
|
10730
|
+
sha256: z$1.ZodString;
|
|
10731
|
+
size: z$1.ZodNumber;
|
|
10732
|
+
version: z$1.ZodString;
|
|
10733
|
+
versionCode: z$1.ZodNumber;
|
|
10734
|
+
}, z$1.core.$strip>;
|
|
10735
|
+
type AndroidAppArtifact = z$1.infer<typeof androidAppArtifactSchema>;
|
|
10736
|
+
type SystemAndroidAppResponse = AndroidAppArtifact | null;
|
|
10737
|
+
declare const androidAppPrepareRequestSchema: z$1.ZodObject<{
|
|
10738
|
+
source: z$1.ZodEnum<{
|
|
10739
|
+
github: "github";
|
|
10740
|
+
local: "local";
|
|
10741
|
+
}>;
|
|
10742
|
+
}, z$1.core.$strip>;
|
|
10743
|
+
type AndroidAppPrepareRequest = z$1.infer<typeof androidAppPrepareRequestSchema>;
|
|
10744
|
+
interface AndroidAppPreparation {
|
|
10745
|
+
status: "failed" | "idle" | "preparing" | "ready";
|
|
10746
|
+
source: "github" | "local" | null;
|
|
10747
|
+
message: string;
|
|
10748
|
+
artifact: AndroidAppArtifact | null;
|
|
10749
|
+
}
|
|
10719
10750
|
|
|
10720
10751
|
interface UiPreferencesResponse {
|
|
10721
10752
|
preferences: UiPreferenceEntries;
|
|
@@ -12034,7 +12065,6 @@ declare const createExecutionInputSourcesSchema: z$1.ZodObject<{
|
|
|
12034
12065
|
}, z$1.core.$strict>;
|
|
12035
12066
|
type CreateExecutionInputSources = z$1.infer<typeof createExecutionInputSourcesSchema>;
|
|
12036
12067
|
declare const createThreadRequestSchema: z$1.ZodObject<{
|
|
12037
|
-
draft: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
12038
12068
|
environment: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
|
|
12039
12069
|
environmentId: z$1.ZodString;
|
|
12040
12070
|
type: z$1.ZodLiteral<"reuse">;
|
|
@@ -12199,6 +12229,7 @@ declare const createThreadRequestSchema: z$1.ZodObject<{
|
|
|
12199
12229
|
auto: "auto";
|
|
12200
12230
|
full: "full";
|
|
12201
12231
|
}>, z$1.ZodLiteral<"workspace-write">]>, z$1.ZodTransform<"accept-edits" | "auto" | "full", "accept-edits" | "auto" | "full" | "workspace-write">>>;
|
|
12232
|
+
pinned: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
12202
12233
|
pluginMetadata: z$1.ZodOptional<z$1.ZodType<JsonObject, unknown, z$1.core.$ZodTypeInternals<JsonObject, unknown>>>;
|
|
12203
12234
|
pluginSubmission: z$1.ZodOptional<z$1.ZodObject<{
|
|
12204
12235
|
data: z$1.ZodType<JsonValue$1, unknown, z$1.core.$ZodTypeInternals<JsonValue$1, unknown>>;
|
|
@@ -13069,91 +13100,6 @@ declare const createQueuedMessageRequestSchema: z$1.ZodObject<{
|
|
|
13069
13100
|
}>>;
|
|
13070
13101
|
}, z$1.core.$strip>;
|
|
13071
13102
|
type CreateQueuedMessageRequest = z$1.infer<typeof createQueuedMessageRequestSchema>;
|
|
13072
|
-
declare const updateThreadDraftRequestSchema: z$1.ZodObject<{
|
|
13073
|
-
input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
|
|
13074
|
-
mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
|
|
13075
|
-
end: z$1.ZodNumber;
|
|
13076
|
-
resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
|
|
13077
|
-
kind: z$1.ZodLiteral<"thread">;
|
|
13078
|
-
label: z$1.ZodString;
|
|
13079
|
-
projectId: z$1.ZodOptional<z$1.ZodString>;
|
|
13080
|
-
threadId: z$1.ZodString;
|
|
13081
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13082
|
-
kind: z$1.ZodLiteral<"project">;
|
|
13083
|
-
label: z$1.ZodString;
|
|
13084
|
-
projectId: z$1.ZodString;
|
|
13085
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13086
|
-
kind: z$1.ZodLiteral<"section">;
|
|
13087
|
-
label: z$1.ZodString;
|
|
13088
|
-
sectionId: z$1.ZodString;
|
|
13089
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13090
|
-
entryKind: z$1.ZodEnum<{
|
|
13091
|
-
directory: "directory";
|
|
13092
|
-
file: "file";
|
|
13093
|
-
}>;
|
|
13094
|
-
kind: z$1.ZodLiteral<"path">;
|
|
13095
|
-
label: z$1.ZodString;
|
|
13096
|
-
path: z$1.ZodString;
|
|
13097
|
-
source: z$1.ZodEnum<{
|
|
13098
|
-
"thread-storage": "thread-storage";
|
|
13099
|
-
workspace: "workspace";
|
|
13100
|
-
}>;
|
|
13101
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13102
|
-
argumentHint: z$1.ZodNullable<z$1.ZodString>;
|
|
13103
|
-
kind: z$1.ZodLiteral<"command">;
|
|
13104
|
-
label: z$1.ZodString;
|
|
13105
|
-
name: z$1.ZodString;
|
|
13106
|
-
origin: z$1.ZodEnum<{
|
|
13107
|
-
builtin: "builtin";
|
|
13108
|
-
project: "project";
|
|
13109
|
-
user: "user";
|
|
13110
|
-
}>;
|
|
13111
|
-
source: z$1.ZodEnum<{
|
|
13112
|
-
command: "command";
|
|
13113
|
-
skill: "skill";
|
|
13114
|
-
}>;
|
|
13115
|
-
trigger: z$1.ZodEnum<{
|
|
13116
|
-
"/": "/";
|
|
13117
|
-
$: "$";
|
|
13118
|
-
}>;
|
|
13119
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13120
|
-
icon: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
|
|
13121
|
-
itemId: z$1.ZodString;
|
|
13122
|
-
kind: z$1.ZodLiteral<"plugin">;
|
|
13123
|
-
label: z$1.ZodString;
|
|
13124
|
-
pluginId: z$1.ZodString;
|
|
13125
|
-
}, z$1.core.$strip>], "kind">>;
|
|
13126
|
-
start: z$1.ZodNumber;
|
|
13127
|
-
}, z$1.core.$strip>>>;
|
|
13128
|
-
text: z$1.ZodString;
|
|
13129
|
-
type: z$1.ZodLiteral<"text">;
|
|
13130
|
-
visibility: z$1.ZodOptional<z$1.ZodEnum<{
|
|
13131
|
-
"agent-only": "agent-only";
|
|
13132
|
-
}>>;
|
|
13133
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13134
|
-
type: z$1.ZodLiteral<"image">;
|
|
13135
|
-
url: z$1.ZodString;
|
|
13136
|
-
visibility: z$1.ZodOptional<z$1.ZodEnum<{
|
|
13137
|
-
"agent-only": "agent-only";
|
|
13138
|
-
}>>;
|
|
13139
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13140
|
-
path: z$1.ZodString;
|
|
13141
|
-
type: z$1.ZodLiteral<"localImage">;
|
|
13142
|
-
visibility: z$1.ZodOptional<z$1.ZodEnum<{
|
|
13143
|
-
"agent-only": "agent-only";
|
|
13144
|
-
}>>;
|
|
13145
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13146
|
-
mimeType: z$1.ZodOptional<z$1.ZodString>;
|
|
13147
|
-
name: z$1.ZodOptional<z$1.ZodString>;
|
|
13148
|
-
path: z$1.ZodString;
|
|
13149
|
-
sizeBytes: z$1.ZodOptional<z$1.ZodNumber>;
|
|
13150
|
-
type: z$1.ZodLiteral<"localFile">;
|
|
13151
|
-
visibility: z$1.ZodOptional<z$1.ZodEnum<{
|
|
13152
|
-
"agent-only": "agent-only";
|
|
13153
|
-
}>>;
|
|
13154
|
-
}, z$1.core.$strip>], "type">>;
|
|
13155
|
-
}, z$1.core.$strict>;
|
|
13156
|
-
type UpdateThreadDraftRequest = z$1.infer<typeof updateThreadDraftRequestSchema>;
|
|
13157
13103
|
declare const updateQueuedMessageRequestSchema: z$1.ZodObject<{
|
|
13158
13104
|
expectedUpdatedAt: z$1.ZodNumber;
|
|
13159
13105
|
input: z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
|
|
@@ -13463,7 +13409,6 @@ declare const threadListResponseSchema: z$1.ZodArray<z$1.ZodObject<{
|
|
|
13463
13409
|
}>;
|
|
13464
13410
|
runtime: z$1.ZodObject<{
|
|
13465
13411
|
displayStatus: z$1.ZodEnum<{
|
|
13466
|
-
"host-reconnecting": "host-reconnecting";
|
|
13467
13412
|
"waiting-for-host": "waiting-for-host";
|
|
13468
13413
|
active: "active";
|
|
13469
13414
|
error: "error";
|
|
@@ -13473,7 +13418,6 @@ declare const threadListResponseSchema: z$1.ZodArray<z$1.ZodObject<{
|
|
|
13473
13418
|
starting: "starting";
|
|
13474
13419
|
stopping: "stopping";
|
|
13475
13420
|
}>;
|
|
13476
|
-
hostReconnectGraceExpiresAt: z$1.ZodNullable<z$1.ZodNumber>;
|
|
13477
13421
|
}, z$1.core.$strip>;
|
|
13478
13422
|
sectionId: z$1.ZodNullable<z$1.ZodString>;
|
|
13479
13423
|
sourceThreadId: z$1.ZodNullable<z$1.ZodString>;
|
|
@@ -13566,7 +13510,6 @@ declare const threadSearchResponseSchema: z$1.ZodObject<{
|
|
|
13566
13510
|
}>;
|
|
13567
13511
|
runtime: z$1.ZodObject<{
|
|
13568
13512
|
displayStatus: z$1.ZodEnum<{
|
|
13569
|
-
"host-reconnecting": "host-reconnecting";
|
|
13570
13513
|
"waiting-for-host": "waiting-for-host";
|
|
13571
13514
|
active: "active";
|
|
13572
13515
|
error: "error";
|
|
@@ -13576,7 +13519,6 @@ declare const threadSearchResponseSchema: z$1.ZodObject<{
|
|
|
13576
13519
|
starting: "starting";
|
|
13577
13520
|
stopping: "stopping";
|
|
13578
13521
|
}>;
|
|
13579
|
-
hostReconnectGraceExpiresAt: z$1.ZodNullable<z$1.ZodNumber>;
|
|
13580
13522
|
}, z$1.core.$strip>;
|
|
13581
13523
|
sectionId: z$1.ZodNullable<z$1.ZodString>;
|
|
13582
13524
|
sourceThreadId: z$1.ZodNullable<z$1.ZodString>;
|
|
@@ -13660,7 +13602,6 @@ declare const threadSearchResponseSchema: z$1.ZodObject<{
|
|
|
13660
13602
|
}>;
|
|
13661
13603
|
runtime: z$1.ZodObject<{
|
|
13662
13604
|
displayStatus: z$1.ZodEnum<{
|
|
13663
|
-
"host-reconnecting": "host-reconnecting";
|
|
13664
13605
|
"waiting-for-host": "waiting-for-host";
|
|
13665
13606
|
active: "active";
|
|
13666
13607
|
error: "error";
|
|
@@ -13670,7 +13611,6 @@ declare const threadSearchResponseSchema: z$1.ZodObject<{
|
|
|
13670
13611
|
starting: "starting";
|
|
13671
13612
|
stopping: "stopping";
|
|
13672
13613
|
}>;
|
|
13673
|
-
hostReconnectGraceExpiresAt: z$1.ZodNullable<z$1.ZodNumber>;
|
|
13674
13614
|
}, z$1.core.$strip>;
|
|
13675
13615
|
sectionId: z$1.ZodNullable<z$1.ZodString>;
|
|
13676
13616
|
sourceThreadId: z$1.ZodNullable<z$1.ZodString>;
|
|
@@ -13702,88 +13642,6 @@ declare const threadResponseSchema: z$1.ZodObject<{
|
|
|
13702
13642
|
canSpawnChild: z$1.ZodBoolean;
|
|
13703
13643
|
createdAt: z$1.ZodNumber;
|
|
13704
13644
|
deletedAt: z$1.ZodNullable<z$1.ZodNumber>;
|
|
13705
|
-
draft: z$1.ZodNullable<z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
|
|
13706
|
-
mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
|
|
13707
|
-
end: z$1.ZodNumber;
|
|
13708
|
-
resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
|
|
13709
|
-
kind: z$1.ZodLiteral<"thread">;
|
|
13710
|
-
label: z$1.ZodString;
|
|
13711
|
-
projectId: z$1.ZodOptional<z$1.ZodString>;
|
|
13712
|
-
threadId: z$1.ZodString;
|
|
13713
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13714
|
-
kind: z$1.ZodLiteral<"project">;
|
|
13715
|
-
label: z$1.ZodString;
|
|
13716
|
-
projectId: z$1.ZodString;
|
|
13717
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13718
|
-
kind: z$1.ZodLiteral<"section">;
|
|
13719
|
-
label: z$1.ZodString;
|
|
13720
|
-
sectionId: z$1.ZodString;
|
|
13721
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13722
|
-
entryKind: z$1.ZodEnum<{
|
|
13723
|
-
directory: "directory";
|
|
13724
|
-
file: "file";
|
|
13725
|
-
}>;
|
|
13726
|
-
kind: z$1.ZodLiteral<"path">;
|
|
13727
|
-
label: z$1.ZodString;
|
|
13728
|
-
path: z$1.ZodString;
|
|
13729
|
-
source: z$1.ZodEnum<{
|
|
13730
|
-
"thread-storage": "thread-storage";
|
|
13731
|
-
workspace: "workspace";
|
|
13732
|
-
}>;
|
|
13733
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13734
|
-
argumentHint: z$1.ZodNullable<z$1.ZodString>;
|
|
13735
|
-
kind: z$1.ZodLiteral<"command">;
|
|
13736
|
-
label: z$1.ZodString;
|
|
13737
|
-
name: z$1.ZodString;
|
|
13738
|
-
origin: z$1.ZodEnum<{
|
|
13739
|
-
builtin: "builtin";
|
|
13740
|
-
project: "project";
|
|
13741
|
-
user: "user";
|
|
13742
|
-
}>;
|
|
13743
|
-
source: z$1.ZodEnum<{
|
|
13744
|
-
command: "command";
|
|
13745
|
-
skill: "skill";
|
|
13746
|
-
}>;
|
|
13747
|
-
trigger: z$1.ZodEnum<{
|
|
13748
|
-
"/": "/";
|
|
13749
|
-
$: "$";
|
|
13750
|
-
}>;
|
|
13751
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13752
|
-
icon: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
|
|
13753
|
-
itemId: z$1.ZodString;
|
|
13754
|
-
kind: z$1.ZodLiteral<"plugin">;
|
|
13755
|
-
label: z$1.ZodString;
|
|
13756
|
-
pluginId: z$1.ZodString;
|
|
13757
|
-
}, z$1.core.$strip>], "kind">>;
|
|
13758
|
-
start: z$1.ZodNumber;
|
|
13759
|
-
}, z$1.core.$strip>>>;
|
|
13760
|
-
text: z$1.ZodString;
|
|
13761
|
-
type: z$1.ZodLiteral<"text">;
|
|
13762
|
-
visibility: z$1.ZodOptional<z$1.ZodEnum<{
|
|
13763
|
-
"agent-only": "agent-only";
|
|
13764
|
-
}>>;
|
|
13765
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13766
|
-
type: z$1.ZodLiteral<"image">;
|
|
13767
|
-
url: z$1.ZodString;
|
|
13768
|
-
visibility: z$1.ZodOptional<z$1.ZodEnum<{
|
|
13769
|
-
"agent-only": "agent-only";
|
|
13770
|
-
}>>;
|
|
13771
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13772
|
-
path: z$1.ZodString;
|
|
13773
|
-
type: z$1.ZodLiteral<"localImage">;
|
|
13774
|
-
visibility: z$1.ZodOptional<z$1.ZodEnum<{
|
|
13775
|
-
"agent-only": "agent-only";
|
|
13776
|
-
}>>;
|
|
13777
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13778
|
-
mimeType: z$1.ZodOptional<z$1.ZodString>;
|
|
13779
|
-
name: z$1.ZodOptional<z$1.ZodString>;
|
|
13780
|
-
path: z$1.ZodString;
|
|
13781
|
-
sizeBytes: z$1.ZodOptional<z$1.ZodNumber>;
|
|
13782
|
-
type: z$1.ZodLiteral<"localFile">;
|
|
13783
|
-
visibility: z$1.ZodOptional<z$1.ZodEnum<{
|
|
13784
|
-
"agent-only": "agent-only";
|
|
13785
|
-
}>>;
|
|
13786
|
-
}, z$1.core.$strip>], "type">>>;
|
|
13787
13645
|
environmentId: z$1.ZodNullable<z$1.ZodString>;
|
|
13788
13646
|
id: z$1.ZodString;
|
|
13789
13647
|
lastReadAt: z$1.ZodNullable<z$1.ZodNumber>;
|
|
@@ -13800,7 +13658,6 @@ declare const threadResponseSchema: z$1.ZodObject<{
|
|
|
13800
13658
|
queuedMessageCount: z$1.ZodNumber;
|
|
13801
13659
|
runtime: z$1.ZodObject<{
|
|
13802
13660
|
displayStatus: z$1.ZodEnum<{
|
|
13803
|
-
"host-reconnecting": "host-reconnecting";
|
|
13804
13661
|
"waiting-for-host": "waiting-for-host";
|
|
13805
13662
|
active: "active";
|
|
13806
13663
|
error: "error";
|
|
@@ -13810,7 +13667,6 @@ declare const threadResponseSchema: z$1.ZodObject<{
|
|
|
13810
13667
|
starting: "starting";
|
|
13811
13668
|
stopping: "stopping";
|
|
13812
13669
|
}>;
|
|
13813
|
-
hostReconnectGraceExpiresAt: z$1.ZodNullable<z$1.ZodNumber>;
|
|
13814
13670
|
}, z$1.core.$strip>;
|
|
13815
13671
|
sectionId: z$1.ZodNullable<z$1.ZodString>;
|
|
13816
13672
|
sourceThreadId: z$1.ZodNullable<z$1.ZodString>;
|
|
@@ -13843,88 +13699,6 @@ declare const threadWithIncludesResponseSchema: z$1.ZodObject<{
|
|
|
13843
13699
|
canSpawnChild: z$1.ZodBoolean;
|
|
13844
13700
|
createdAt: z$1.ZodNumber;
|
|
13845
13701
|
deletedAt: z$1.ZodNullable<z$1.ZodNumber>;
|
|
13846
|
-
draft: z$1.ZodNullable<z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
|
|
13847
|
-
mentions: z$1.ZodDefault<z$1.ZodArray<z$1.ZodObject<{
|
|
13848
|
-
end: z$1.ZodNumber;
|
|
13849
|
-
resource: z$1.ZodPipe<z$1.ZodTransform<unknown, unknown>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
|
|
13850
|
-
kind: z$1.ZodLiteral<"thread">;
|
|
13851
|
-
label: z$1.ZodString;
|
|
13852
|
-
projectId: z$1.ZodOptional<z$1.ZodString>;
|
|
13853
|
-
threadId: z$1.ZodString;
|
|
13854
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13855
|
-
kind: z$1.ZodLiteral<"project">;
|
|
13856
|
-
label: z$1.ZodString;
|
|
13857
|
-
projectId: z$1.ZodString;
|
|
13858
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13859
|
-
kind: z$1.ZodLiteral<"section">;
|
|
13860
|
-
label: z$1.ZodString;
|
|
13861
|
-
sectionId: z$1.ZodString;
|
|
13862
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13863
|
-
entryKind: z$1.ZodEnum<{
|
|
13864
|
-
directory: "directory";
|
|
13865
|
-
file: "file";
|
|
13866
|
-
}>;
|
|
13867
|
-
kind: z$1.ZodLiteral<"path">;
|
|
13868
|
-
label: z$1.ZodString;
|
|
13869
|
-
path: z$1.ZodString;
|
|
13870
|
-
source: z$1.ZodEnum<{
|
|
13871
|
-
"thread-storage": "thread-storage";
|
|
13872
|
-
workspace: "workspace";
|
|
13873
|
-
}>;
|
|
13874
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13875
|
-
argumentHint: z$1.ZodNullable<z$1.ZodString>;
|
|
13876
|
-
kind: z$1.ZodLiteral<"command">;
|
|
13877
|
-
label: z$1.ZodString;
|
|
13878
|
-
name: z$1.ZodString;
|
|
13879
|
-
origin: z$1.ZodEnum<{
|
|
13880
|
-
builtin: "builtin";
|
|
13881
|
-
project: "project";
|
|
13882
|
-
user: "user";
|
|
13883
|
-
}>;
|
|
13884
|
-
source: z$1.ZodEnum<{
|
|
13885
|
-
command: "command";
|
|
13886
|
-
skill: "skill";
|
|
13887
|
-
}>;
|
|
13888
|
-
trigger: z$1.ZodEnum<{
|
|
13889
|
-
"/": "/";
|
|
13890
|
-
$: "$";
|
|
13891
|
-
}>;
|
|
13892
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13893
|
-
icon: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
|
|
13894
|
-
itemId: z$1.ZodString;
|
|
13895
|
-
kind: z$1.ZodLiteral<"plugin">;
|
|
13896
|
-
label: z$1.ZodString;
|
|
13897
|
-
pluginId: z$1.ZodString;
|
|
13898
|
-
}, z$1.core.$strip>], "kind">>;
|
|
13899
|
-
start: z$1.ZodNumber;
|
|
13900
|
-
}, z$1.core.$strip>>>;
|
|
13901
|
-
text: z$1.ZodString;
|
|
13902
|
-
type: z$1.ZodLiteral<"text">;
|
|
13903
|
-
visibility: z$1.ZodOptional<z$1.ZodEnum<{
|
|
13904
|
-
"agent-only": "agent-only";
|
|
13905
|
-
}>>;
|
|
13906
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13907
|
-
type: z$1.ZodLiteral<"image">;
|
|
13908
|
-
url: z$1.ZodString;
|
|
13909
|
-
visibility: z$1.ZodOptional<z$1.ZodEnum<{
|
|
13910
|
-
"agent-only": "agent-only";
|
|
13911
|
-
}>>;
|
|
13912
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13913
|
-
path: z$1.ZodString;
|
|
13914
|
-
type: z$1.ZodLiteral<"localImage">;
|
|
13915
|
-
visibility: z$1.ZodOptional<z$1.ZodEnum<{
|
|
13916
|
-
"agent-only": "agent-only";
|
|
13917
|
-
}>>;
|
|
13918
|
-
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
13919
|
-
mimeType: z$1.ZodOptional<z$1.ZodString>;
|
|
13920
|
-
name: z$1.ZodOptional<z$1.ZodString>;
|
|
13921
|
-
path: z$1.ZodString;
|
|
13922
|
-
sizeBytes: z$1.ZodOptional<z$1.ZodNumber>;
|
|
13923
|
-
type: z$1.ZodLiteral<"localFile">;
|
|
13924
|
-
visibility: z$1.ZodOptional<z$1.ZodEnum<{
|
|
13925
|
-
"agent-only": "agent-only";
|
|
13926
|
-
}>>;
|
|
13927
|
-
}, z$1.core.$strip>], "type">>>;
|
|
13928
13702
|
environment: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodObject<{
|
|
13929
13703
|
baseBranch: z$1.ZodNullable<z$1.ZodString>;
|
|
13930
13704
|
branchName: z$1.ZodNullable<z$1.ZodString>;
|
|
@@ -14051,7 +13825,6 @@ declare const threadWithIncludesResponseSchema: z$1.ZodObject<{
|
|
|
14051
13825
|
queuedMessageCount: z$1.ZodNumber;
|
|
14052
13826
|
runtime: z$1.ZodObject<{
|
|
14053
13827
|
displayStatus: z$1.ZodEnum<{
|
|
14054
|
-
"host-reconnecting": "host-reconnecting";
|
|
14055
13828
|
"waiting-for-host": "waiting-for-host";
|
|
14056
13829
|
active: "active";
|
|
14057
13830
|
error: "error";
|
|
@@ -14061,7 +13834,6 @@ declare const threadWithIncludesResponseSchema: z$1.ZodObject<{
|
|
|
14061
13834
|
starting: "starting";
|
|
14062
13835
|
stopping: "stopping";
|
|
14063
13836
|
}>;
|
|
14064
|
-
hostReconnectGraceExpiresAt: z$1.ZodNullable<z$1.ZodNumber>;
|
|
14065
13837
|
}, z$1.core.$strip>;
|
|
14066
13838
|
sectionId: z$1.ZodNullable<z$1.ZodString>;
|
|
14067
13839
|
sourceThreadId: z$1.ZodNullable<z$1.ZodString>;
|
|
@@ -15782,6 +15554,9 @@ interface EnvironmentListProvidersArgs {
|
|
|
15782
15554
|
}
|
|
15783
15555
|
type EnvironmentListProvidersResult = SystemEnvironmentProvider[];
|
|
15784
15556
|
interface EnvironmentsArea {
|
|
15557
|
+
experimental_cleanup(args: EnvironmentActionArgs): Promise<{
|
|
15558
|
+
ok: true;
|
|
15559
|
+
}>;
|
|
15785
15560
|
archiveThreads(args: EnvironmentActionArgs): Promise<EnvironmentArchiveThreadsResult>;
|
|
15786
15561
|
commit(args: EnvironmentCommitArgs): Promise<EnvironmentCommitResult>;
|
|
15787
15562
|
diff(args: EnvironmentDiffArgs): Promise<EnvironmentDiffResult>;
|
|
@@ -15942,6 +15717,7 @@ type HostDeleteResult = {
|
|
|
15942
15717
|
type HostDirectoryResult = HostDirectoryListing;
|
|
15943
15718
|
type HostGetResult = Host & {
|
|
15944
15719
|
connectMachineId: string | null;
|
|
15720
|
+
threadStorageRootPath: string | null;
|
|
15945
15721
|
};
|
|
15946
15722
|
type HostEnrollmentCommandResult = HostEnrollmentCommandResponse;
|
|
15947
15723
|
type HostReconnectResult = HostReconnectResponse;
|
|
@@ -16612,6 +16388,9 @@ interface SystemArea {
|
|
|
16612
16388
|
testAiService(args: SystemTestAiServiceArgs): Promise<SystemTestAiServiceResult>;
|
|
16613
16389
|
transcribeVoice(args: SystemVoiceTranscriptionArgs): Promise<SystemVoiceTranscriptionResult>;
|
|
16614
16390
|
uiPreferences: SystemUiPreferencesArea;
|
|
16391
|
+
androidAppPreparation(): Promise<AndroidAppPreparation>;
|
|
16392
|
+
prepareAndroidApp(input: AndroidAppPrepareRequest): Promise<AndroidAppPreparation>;
|
|
16393
|
+
androidApp(): Promise<SystemAndroidAppResponse>;
|
|
16615
16394
|
updateExperiments(args: Experiments): Promise<SystemUpdateExperimentsResult>;
|
|
16616
16395
|
updateGeneralSettings(args: AppSettingsUpdate): Promise<SystemUpdateGeneralSettingsResult>;
|
|
16617
16396
|
updateKeyboardSettings(args: AppKeybindingOverrides): Promise<SystemUpdateKeyboardSettingsResult>;
|
|
@@ -16867,9 +16646,6 @@ interface ThreadForkArgs extends Omit<ForkThreadRequest, "origin" | "visibility"
|
|
|
16867
16646
|
interface ThreadUpdateArgs extends UpdateThreadRequest {
|
|
16868
16647
|
threadId: string;
|
|
16869
16648
|
}
|
|
16870
|
-
interface ThreadUpdateDraftArgs extends UpdateThreadDraftRequest {
|
|
16871
|
-
threadId: string;
|
|
16872
|
-
}
|
|
16873
16649
|
interface ThreadPluginMetadataArgs {
|
|
16874
16650
|
pluginId: string;
|
|
16875
16651
|
signal?: AbortSignal;
|
|
@@ -17153,12 +16929,6 @@ interface ThreadsArea {
|
|
|
17153
16929
|
unarchive(args: ThreadActionArgs): Promise<ThreadUnarchiveResult>;
|
|
17154
16930
|
unpin(args: ThreadActionArgs): Promise<ThreadMutationResult>;
|
|
17155
16931
|
update(args: ThreadUpdateArgs): Promise<ThreadMutationResult>;
|
|
17156
|
-
/**
|
|
17157
|
-
* Replace the thread's saved, unsent draft message. An empty `input` clears
|
|
17158
|
-
* it. On a `pending` thread the draft also becomes the thread's fallback
|
|
17159
|
-
* title. Sending a message does not clear the draft; clear it explicitly.
|
|
17160
|
-
*/
|
|
17161
|
-
updateDraft(args: ThreadUpdateDraftArgs): Promise<ThreadMutationResult>;
|
|
17162
16932
|
wait(args: ThreadWaitArgs): Promise<ThreadWaitResult>;
|
|
17163
16933
|
}
|
|
17164
16934
|
|
|
@@ -17276,9 +17046,33 @@ interface PluginRpcMethodContract<InputSchema extends StandardSchemaV1 = Standar
|
|
|
17276
17046
|
type PluginRpcContract = Readonly<Record<string, PluginRpcMethodContract>>;
|
|
17277
17047
|
/** Define a shared RPC contract while preserving exact method/schema types. */
|
|
17278
17048
|
declare function defineRpcContract<const Contract extends PluginRpcContract>(contract: Contract): Contract;
|
|
17049
|
+
/**
|
|
17050
|
+
* Who invoked an rpc method. `plugin` means another loaded plugin (or this
|
|
17051
|
+
* one) called through its own `bb.sdk.plugins.callRpc`; the host verifies
|
|
17052
|
+
* that with a per-load token only the server knows. Every other caller — the
|
|
17053
|
+
* app, the `bb` CLI, agents, and bb itself — is `client`.
|
|
17054
|
+
*/
|
|
17055
|
+
type ExperimentalPluginRpcCaller = {
|
|
17056
|
+
readonly kind: "plugin";
|
|
17057
|
+
readonly pluginId: string;
|
|
17058
|
+
} | {
|
|
17059
|
+
readonly kind: "client";
|
|
17060
|
+
};
|
|
17061
|
+
/** Second argument of every rpc handler. */
|
|
17062
|
+
interface ExperimentalPluginRpcHandlerContext {
|
|
17063
|
+
readonly experimental_caller: ExperimentalPluginRpcCaller;
|
|
17064
|
+
}
|
|
17279
17065
|
type PluginRpcHandlers<Contract extends PluginRpcContract> = {
|
|
17280
17066
|
[Method in keyof Contract]: (input: StandardSchemaV1InferOutput<Contract[Method]["input"]>) => StandardSchemaV1InferInput<Contract[Method]["output"]> | Promise<StandardSchemaV1InferInput<Contract[Method]["output"]>>;
|
|
17281
17067
|
};
|
|
17068
|
+
/**
|
|
17069
|
+
* Handlers as `bb.rpc.register` calls them: the validated input, then the
|
|
17070
|
+
* call's context. A `PluginRpcHandlers` map is assignable to this type, so
|
|
17071
|
+
* handlers that ignore the context keep their one-argument signature.
|
|
17072
|
+
*/
|
|
17073
|
+
type ExperimentalPluginRpcHandlersWithContext<Contract extends PluginRpcContract> = {
|
|
17074
|
+
[Method in keyof Contract]: (input: StandardSchemaV1InferOutput<Contract[Method]["input"]>, context: ExperimentalPluginRpcHandlerContext) => StandardSchemaV1InferInput<Contract[Method]["output"]> | Promise<StandardSchemaV1InferInput<Contract[Method]["output"]>>;
|
|
17075
|
+
};
|
|
17282
17076
|
type PluginRpcCallInput<Method extends PluginRpcMethodContract> = StandardSchemaV1InferInput<Method["input"]>;
|
|
17283
17077
|
type PluginRpcCallArgs<Method extends PluginRpcMethodContract> = null extends PluginRpcCallInput<Method> ? [input?: PluginRpcCallInput<Method>] : [input: PluginRpcCallInput<Method>];
|
|
17284
17078
|
type PluginRpcResult<Method extends PluginRpcMethodContract> = StandardSchemaV1InferOutput<Method["output"]>;
|
|
@@ -17419,7 +17213,7 @@ type ExperimentalSidebarNavigationAction = {
|
|
|
17419
17213
|
/**
|
|
17420
17214
|
* Semantic icon identity for one sidebar navigation item. Render it with
|
|
17421
17215
|
* {@link PluginSdkApp.experimental_SidebarNavigationIcon} to match bb's
|
|
17422
|
-
* artwork, including plugin branding.
|
|
17216
|
+
* artwork, including panel icons with plugin branding as their fallback.
|
|
17423
17217
|
*/
|
|
17424
17218
|
type ExperimentalSidebarNavigationIcon = {
|
|
17425
17219
|
kind: "host";
|
|
@@ -17945,6 +17739,7 @@ type ExperimentalPluginFixedTabReference<Target extends JsonValue = never> = {
|
|
|
17945
17739
|
/** A fixed tab declared by a plugin nav panel. */
|
|
17946
17740
|
type PluginFixedTabRegistration<Target extends JsonValue = never> = ExperimentalPluginFixedTabReference<Target> & {
|
|
17947
17741
|
title: string;
|
|
17742
|
+
/** Resolved names take precedence over plugin branding; unknown names fall back to branding. */
|
|
17948
17743
|
icon: BbIconName;
|
|
17949
17744
|
component: ComponentType<PluginNavPanelProps>;
|
|
17950
17745
|
/** `flush` lets the component own padding and scrolling. */
|
|
@@ -17956,6 +17751,7 @@ interface PluginNavPanelRegistration {
|
|
|
17956
17751
|
/** Unique within the plugin; letters, digits, `-`, `_`. */
|
|
17957
17752
|
id: string;
|
|
17958
17753
|
title: string;
|
|
17754
|
+
/** Resolved names take precedence over plugin branding in navigation and the header; unknown names fall back to branding. */
|
|
17959
17755
|
icon: BbIconName;
|
|
17960
17756
|
/** URL segment under `/plugins/<pluginId>/`; letters, digits, `-`, `_`. */
|
|
17961
17757
|
path: string;
|
|
@@ -18039,8 +17835,8 @@ interface PluginThreadPanelActionRegistration {
|
|
|
18039
17835
|
/** Label of the action row in the panel's new-tab launcher. */
|
|
18040
17836
|
title: string;
|
|
18041
17837
|
/**
|
|
18042
|
-
*
|
|
18043
|
-
*
|
|
17838
|
+
* Resolved names take precedence over plugin branding in the launcher and
|
|
17839
|
+
* opened tabs. Omitted or unknown names fall back to plugin branding.
|
|
18044
17840
|
*/
|
|
18045
17841
|
icon?: BbIconName;
|
|
18046
17842
|
/** Rendered inside every panel tab this action opens. */
|
|
@@ -18079,7 +17875,7 @@ interface PluginNewThreadPanelActionRegistration {
|
|
|
18079
17875
|
id: string;
|
|
18080
17876
|
/** Label of the action row in the panel's new-tab launcher. */
|
|
18081
17877
|
title: string;
|
|
18082
|
-
/**
|
|
17878
|
+
/** Resolved names take precedence over plugin branding; omitted or unknown names fall back to branding. */
|
|
18083
17879
|
icon?: BbIconName;
|
|
18084
17880
|
/** Rendered inside every panel tab this action opens. */
|
|
18085
17881
|
component: ComponentType<PluginNewThreadPanelProps>;
|
|
@@ -18124,7 +17920,7 @@ interface PluginSidebarFooterActionRegistration {
|
|
|
18124
17920
|
id: string;
|
|
18125
17921
|
/** Tooltip and accessible label for the icon button. */
|
|
18126
17922
|
title: string;
|
|
18127
|
-
/**
|
|
17923
|
+
/** Resolved names take precedence over plugin branding; omitted or unknown names fall back to branding. */
|
|
18128
17924
|
icon: BbIconName;
|
|
18129
17925
|
/**
|
|
18130
17926
|
* Runs when the user activates the action (e.g. call `openSettings()`,
|
|
@@ -18240,9 +18036,9 @@ interface PluginSidebarThread {
|
|
|
18240
18036
|
*/
|
|
18241
18037
|
status: ThreadStatus;
|
|
18242
18038
|
/**
|
|
18243
|
-
* `status` refined by host and environment state: adds "provisioning"
|
|
18244
|
-
* "
|
|
18245
|
-
*
|
|
18039
|
+
* `status` refined by host and environment state: adds "provisioning" and
|
|
18040
|
+
* "waiting-for-host" for a thread whose machine is not ready. Treat an
|
|
18041
|
+
* unknown value as `status`.
|
|
18246
18042
|
*/
|
|
18247
18043
|
runtimeStatus: ThreadRuntimeDisplayStatus;
|
|
18248
18044
|
/**
|
|
@@ -18509,7 +18305,7 @@ interface PluginSidebarThreadDraftState {
|
|
|
18509
18305
|
}
|
|
18510
18306
|
/**
|
|
18511
18307
|
* The status another plugin's app-wide script set on a thread's row through
|
|
18512
|
-
* `
|
|
18308
|
+
* the content-script context's `experimental_setThreadRowStatus` (see
|
|
18513
18309
|
* {@link PluginSdkApp.useSidebarThreadRowStatus}). bb's row draws it in
|
|
18514
18310
|
* place of the draft glyph while it is set; a replaced list should do the
|
|
18515
18311
|
* same so a status set by, say, the drafts or workflows plugin does not
|
|
@@ -18549,6 +18345,9 @@ interface PluginSidebarThreadActions {
|
|
|
18549
18345
|
* `sectionId` files the new thread under that section, and
|
|
18550
18346
|
* `environmentId` reuses that environment (the "New thread in
|
|
18551
18347
|
* environment" affordance), both exactly as bb's own list does.
|
|
18348
|
+
* `experimental_placement` explicitly selects the section and pin state,
|
|
18349
|
+
* overriding `sectionId`. Omitting placement starts unpinned, outside sections
|
|
18350
|
+
* unless `sectionId` is supplied; previous composer placement is cleared.
|
|
18552
18351
|
* `hostId` selects a machine for a new environment when it
|
|
18553
18352
|
* is known and supports an environment provider. `environmentId` wins when
|
|
18554
18353
|
* both are supplied.
|
|
@@ -18556,6 +18355,10 @@ interface PluginSidebarThreadActions {
|
|
|
18556
18355
|
openNewThread(options?: {
|
|
18557
18356
|
projectId?: string;
|
|
18558
18357
|
sectionId?: string;
|
|
18358
|
+
experimental_placement?: {
|
|
18359
|
+
sectionId: string | null;
|
|
18360
|
+
pinned: boolean;
|
|
18361
|
+
};
|
|
18559
18362
|
environmentId?: string;
|
|
18560
18363
|
hostId?: string;
|
|
18561
18364
|
focusPrompt?: boolean;
|
|
@@ -18844,12 +18647,19 @@ interface PluginMessageActionContext {
|
|
|
18844
18647
|
* is never thrown: the host logs it and reports it here.
|
|
18845
18648
|
*/
|
|
18846
18649
|
openPanel(options: PluginTargetedPanelActionOpenOptions): boolean;
|
|
18650
|
+
/**
|
|
18651
|
+
* The composer of the thread the message is in, or null when that thread's
|
|
18652
|
+
* composer is not available on this surface. The same handle
|
|
18653
|
+
* `useComposer()` returns there.
|
|
18654
|
+
*/
|
|
18655
|
+
composer: PluginComposerApi | null;
|
|
18847
18656
|
}
|
|
18848
18657
|
/**
|
|
18849
18658
|
* An action on chat messages: an icon button in the per-message action bar
|
|
18850
18659
|
* (user and assistant messages) and an entry in the assistant-message
|
|
18851
18660
|
* text-selection menu. Host-rendered chrome — the plugin supplies title,
|
|
18852
|
-
* icon
|
|
18661
|
+
* icon, and `run` behavior only. Resolved icon names take precedence over
|
|
18662
|
+
* plugin branding; omitted or unknown names fall back to branding.
|
|
18853
18663
|
*/
|
|
18854
18664
|
interface PluginMessageActionRegistration {
|
|
18855
18665
|
/** Unique within the plugin; letters, digits, `-`, `_`. */
|
|
@@ -19359,12 +19169,6 @@ type PluginComposerScope = {
|
|
|
19359
19169
|
kind: "queued-message";
|
|
19360
19170
|
threadId: string;
|
|
19361
19171
|
queuedMessageId: string;
|
|
19362
|
-
} | {
|
|
19363
|
-
kind: "side-chat";
|
|
19364
|
-
projectId: string;
|
|
19365
|
-
parentThreadId: string;
|
|
19366
|
-
tabId: string;
|
|
19367
|
-
childThreadId: string | null;
|
|
19368
19172
|
} | {
|
|
19369
19173
|
kind: "new-thread";
|
|
19370
19174
|
/** Root compose's effective selected project; null only while unresolved. */
|
|
@@ -19387,35 +19191,39 @@ interface ComposerCustomization {
|
|
|
19387
19191
|
component: ComponentType;
|
|
19388
19192
|
}[];
|
|
19389
19193
|
plusMenu?: readonly ComposerPlusMenuItem[];
|
|
19194
|
+
/** Host-rendered rows in the menu next to the composer's send button. */
|
|
19195
|
+
sendMenu?: readonly ComposerSendMenuItem[];
|
|
19390
19196
|
richText?: ComposerRichTextSpec;
|
|
19391
19197
|
}
|
|
19392
19198
|
/** Host-rendered menu row in the composer's `+` menu. */
|
|
19393
19199
|
interface ComposerPlusMenuItem {
|
|
19394
19200
|
id: string;
|
|
19395
19201
|
label: string;
|
|
19396
|
-
/**
|
|
19202
|
+
/** Takes precedence over the plugin's `bb.branding.icon`, which is drawn when this is omitted. */
|
|
19397
19203
|
icon?: BbIconName;
|
|
19398
19204
|
/** Accessible description for the host-rendered row. */
|
|
19399
19205
|
description?: string;
|
|
19400
|
-
disabled?: boolean | ((
|
|
19206
|
+
disabled?: boolean | ((composer: PluginComposerApi) => boolean);
|
|
19401
19207
|
run(context: {
|
|
19402
19208
|
composer: PluginComposerApi;
|
|
19403
|
-
view: ComposerView;
|
|
19404
19209
|
}): void | Promise<void>;
|
|
19405
19210
|
}
|
|
19406
|
-
/**
|
|
19407
|
-
|
|
19408
|
-
|
|
19409
|
-
|
|
19410
|
-
|
|
19411
|
-
|
|
19412
|
-
|
|
19413
|
-
|
|
19414
|
-
|
|
19415
|
-
|
|
19416
|
-
|
|
19417
|
-
|
|
19418
|
-
|
|
19211
|
+
/**
|
|
19212
|
+
* Host-rendered row in the menu next to the composer's send button, for
|
|
19213
|
+
* alternatives to sending right away (save as a draft, send later). The menu
|
|
19214
|
+
* shows only while the composer can submit.
|
|
19215
|
+
*/
|
|
19216
|
+
interface ComposerSendMenuItem {
|
|
19217
|
+
id: string;
|
|
19218
|
+
label: string;
|
|
19219
|
+
/** Takes precedence over the plugin's `bb.branding.icon`, which is drawn when this is omitted. */
|
|
19220
|
+
icon?: BbIconName;
|
|
19221
|
+
/** Accessible description for the host-rendered row. */
|
|
19222
|
+
description?: string;
|
|
19223
|
+
disabled?: boolean | ((composer: PluginComposerApi) => boolean);
|
|
19224
|
+
run(context: {
|
|
19225
|
+
composer: PluginComposerApi;
|
|
19226
|
+
}): void | Promise<void>;
|
|
19419
19227
|
}
|
|
19420
19228
|
interface ComposerRichTextSpec {
|
|
19421
19229
|
/** Content-derived paint: match ranges receive `className`; text is never mutated. */
|
|
@@ -19428,18 +19236,80 @@ interface ComposerRichTextSpec {
|
|
|
19428
19236
|
}[];
|
|
19429
19237
|
className: string;
|
|
19430
19238
|
}[];
|
|
19431
|
-
/** Debounced, read-only observation of the structured draft. */
|
|
19432
|
-
onDraftChange?(draft: ComposerStructuredDraft, view: ComposerView): void;
|
|
19433
19239
|
}
|
|
19434
|
-
|
|
19240
|
+
/** The composer's text and the @-mention pills in it. */
|
|
19241
|
+
interface ComposerDraft {
|
|
19435
19242
|
text: string;
|
|
19436
|
-
mentions: readonly
|
|
19437
|
-
|
|
19438
|
-
|
|
19439
|
-
|
|
19440
|
-
|
|
19441
|
-
|
|
19442
|
-
|
|
19243
|
+
mentions: readonly ComposerMention[];
|
|
19244
|
+
}
|
|
19245
|
+
/** An already uploaded attachment; paths retain their original project or thread ownership. */
|
|
19246
|
+
type ComposerAttachment = UploadedPromptAttachment;
|
|
19247
|
+
/** The complete current draft. Snapshots and their entries are immutable. */
|
|
19248
|
+
interface ComposerDraftSnapshot extends ComposerDraft {
|
|
19249
|
+
readonly attachments: readonly ComposerAttachment[];
|
|
19250
|
+
}
|
|
19251
|
+
/** Atomic text and mention replacement, optionally replacing uploaded attachments too. */
|
|
19252
|
+
interface ComposerDraftReplacement extends ComposerDraft {
|
|
19253
|
+
/** Omit to preserve attachments; supply an empty array to remove them all. Does not upload or copy files. */
|
|
19254
|
+
attachments?: readonly ComposerAttachment[];
|
|
19255
|
+
}
|
|
19256
|
+
/**
|
|
19257
|
+
* One @-mention pill: its range in `ComposerDraft.text` plus everything the
|
|
19258
|
+
* host needs to recreate it, so a mention read from `draft` can be passed
|
|
19259
|
+
* back to `insert` unchanged.
|
|
19260
|
+
*/
|
|
19261
|
+
type ComposerMention = {
|
|
19262
|
+
from: number;
|
|
19263
|
+
to: number;
|
|
19264
|
+
label: string;
|
|
19265
|
+
} & ({
|
|
19266
|
+
kind: "thread";
|
|
19267
|
+
threadId: string;
|
|
19268
|
+
projectId?: string;
|
|
19269
|
+
} | {
|
|
19270
|
+
kind: "project";
|
|
19271
|
+
projectId: string;
|
|
19272
|
+
} | {
|
|
19273
|
+
kind: "section";
|
|
19274
|
+
sectionId: string;
|
|
19275
|
+
} | {
|
|
19276
|
+
kind: "path";
|
|
19277
|
+
path: string;
|
|
19278
|
+
source: "thread-storage" | "workspace";
|
|
19279
|
+
entryKind: "directory" | "file";
|
|
19280
|
+
} | {
|
|
19281
|
+
kind: "command";
|
|
19282
|
+
trigger: "$" | "/";
|
|
19283
|
+
name: string;
|
|
19284
|
+
source: "command" | "skill";
|
|
19285
|
+
origin: "builtin" | "project" | "user";
|
|
19286
|
+
argumentHint: string | null;
|
|
19287
|
+
} | {
|
|
19288
|
+
kind: "plugin";
|
|
19289
|
+
/** The plugin that owns the pill. */
|
|
19290
|
+
pluginId: string;
|
|
19291
|
+
/** The mention provider id that plugin registered. */
|
|
19292
|
+
provider: string;
|
|
19293
|
+
/** The item id the provider's `resolve` receives at send time. */
|
|
19294
|
+
id: string;
|
|
19295
|
+
icon?: string | null;
|
|
19296
|
+
});
|
|
19297
|
+
/**
|
|
19298
|
+
* What `insert` accepts: text, a mention read from `draft` (any kind), or one
|
|
19299
|
+
* of the calling plugin's own mentions (`{ provider, id, label }`, no `kind`).
|
|
19300
|
+
*/
|
|
19301
|
+
type ComposerInsertPart = string | ComposerMention | PluginComposerMention;
|
|
19302
|
+
/** Where `insert` puts its content. */
|
|
19303
|
+
interface ComposerInsertOptions {
|
|
19304
|
+
/**
|
|
19305
|
+
* `"cursor"` (default) inserts at the editor's selection, replacing any
|
|
19306
|
+
* selected text; the selection is kept while focus is elsewhere, and the
|
|
19307
|
+
* composer must be on screen. `"end"` inserts after the last character and
|
|
19308
|
+
* also works for a composer that is not on screen.
|
|
19309
|
+
*/
|
|
19310
|
+
at?: "cursor" | "end";
|
|
19311
|
+
/** Put the content on its own paragraph, adding a paragraph break before and after only where text is adjacent. */
|
|
19312
|
+
block?: boolean;
|
|
19443
19313
|
}
|
|
19444
19314
|
/** Host-rendered paint applied to the editable composer text. */
|
|
19445
19315
|
interface PluginComposerTextEffect {
|
|
@@ -19471,31 +19341,77 @@ interface PluginComposerMention {
|
|
|
19471
19341
|
label: string;
|
|
19472
19342
|
}
|
|
19473
19343
|
/**
|
|
19474
|
-
*
|
|
19475
|
-
*
|
|
19476
|
-
*
|
|
19477
|
-
*
|
|
19478
|
-
* draft.
|
|
19479
|
-
*
|
|
19480
|
-
*
|
|
19344
|
+
* One composer: its state and the writes a plugin can make. `useComposer()`
|
|
19345
|
+
* returns the composer the calling surface belongs to — inside a composer
|
|
19346
|
+
* slot, that composer; in a thread's panels, that thread's composer;
|
|
19347
|
+
* elsewhere, the current route's draft (the thread in view, or the new-thread
|
|
19348
|
+
* draft).
|
|
19349
|
+
*
|
|
19350
|
+
* The handle is stable: the same composer returns the same object across
|
|
19351
|
+
* renders, and its methods always act on the current draft, so it is safe to
|
|
19352
|
+
* keep in effects, callbacks and async work. Its reactive fields (`text`,
|
|
19353
|
+
* `draft`, `selection`, `isEmpty`, …) re-render the calling component when they change;
|
|
19354
|
+
* depend on those fields, not on the handle, in memo dependency lists.
|
|
19355
|
+
*
|
|
19356
|
+
* A handle always writes to its own composer's draft. Thread and new-thread
|
|
19357
|
+
* drafts persist, so a write after the composer left the screen still lands
|
|
19358
|
+
* in that draft. When the draft no longer exists (a queued-message or
|
|
19359
|
+
* sent-message editor that closed), `insert`, `replace`, `removeMention`, `submit` and
|
|
19360
|
+
* `setSelection` throw "This composer is no longer available"; the older
|
|
19361
|
+
* text methods log a warning and do nothing.
|
|
19481
19362
|
*/
|
|
19482
19363
|
interface PluginComposerApi {
|
|
19483
19364
|
scope: PluginComposerScope;
|
|
19365
|
+
/**
|
|
19366
|
+
* Stable identity for this composer's draft: the same across remounts and
|
|
19367
|
+
* reloads for thread and new-thread composers (including a `ThreadChat`),
|
|
19368
|
+
* and per editing session for queued-message and sent-message editors.
|
|
19369
|
+
*/
|
|
19370
|
+
readonly key: string;
|
|
19371
|
+
/** `"compact"` in the collapsed single-line layout, otherwise `"expanded"`. */
|
|
19372
|
+
readonly layout: "compact" | "expanded";
|
|
19373
|
+
/** The thread's agent is running or stopping. Always false in a new-thread composer. */
|
|
19374
|
+
readonly isRunning: boolean;
|
|
19375
|
+
/** The composer is submitting right now. */
|
|
19376
|
+
readonly isSubmitting: boolean;
|
|
19377
|
+
/**
|
|
19378
|
+
* Pressing Enter would not submit right now: the same decision as the
|
|
19379
|
+
* host's send button (empty draft, uploads in progress, loading, a
|
|
19380
|
+
* selection or setup missing, a pending interaction, voice input, …).
|
|
19381
|
+
*/
|
|
19382
|
+
readonly isSubmittingBlocked: boolean;
|
|
19383
|
+
/** The host's message for why submitting is blocked, or null when it is not. */
|
|
19384
|
+
readonly submittingBlockedReason: string | null;
|
|
19385
|
+
/** No text (ignoring whitespace), no mentions and no attachments. */
|
|
19386
|
+
readonly isEmpty: boolean;
|
|
19387
|
+
/** Attachments that have finished uploading. */
|
|
19388
|
+
readonly attachmentCount: number;
|
|
19484
19389
|
/** Current plain text for this composer scope. */
|
|
19485
19390
|
readonly text: string;
|
|
19486
|
-
/**
|
|
19487
|
-
|
|
19488
|
-
|
|
19489
|
-
|
|
19490
|
-
|
|
19491
|
-
|
|
19492
|
-
|
|
19493
|
-
*
|
|
19494
|
-
*
|
|
19495
|
-
|
|
19496
|
-
|
|
19497
|
-
|
|
19498
|
-
|
|
19391
|
+
/** The complete current draft, including uploaded attachments. Stable until the draft changes. */
|
|
19392
|
+
readonly draft: ComposerDraftSnapshot;
|
|
19393
|
+
/** Current picker values, or null when this composer has no pickers. Stable until a picker value changes. */
|
|
19394
|
+
readonly selection: ComposerSelection | null;
|
|
19395
|
+
/**
|
|
19396
|
+
* Replace text and mentions together in one committed change. An updater
|
|
19397
|
+
* receives the latest immutable snapshot, including attachments, and must
|
|
19398
|
+
* return its result synchronously. Returning that same snapshot is a no-op.
|
|
19399
|
+
* Omitted attachments are preserved; an explicit list replaces them, and
|
|
19400
|
+
* an empty list clears them. Does not infer or rebase mention ranges.
|
|
19401
|
+
* Ranges are non-overlapping UTF-16 offsets into the supplied text.
|
|
19402
|
+
* Invalid results, throwing updaters, and unavailable editors leave the
|
|
19403
|
+
* draft unchanged. Does not focus, submit, upload, or copy files between
|
|
19404
|
+
* projects. Use `insert` for insertion at the editor's cursor.
|
|
19405
|
+
*/
|
|
19406
|
+
replace(next: ComposerDraftReplacement | ((current: ComposerDraftSnapshot) => ComposerDraftReplacement)): void;
|
|
19407
|
+
/**
|
|
19408
|
+
* Insert text and mentions. See {@link ComposerInsertOptions} for placement.
|
|
19409
|
+
* Mentions read from `draft` are recreated exactly; the calling plugin's
|
|
19410
|
+
* own `{ provider, id, label }` resolves through its mention provider.
|
|
19411
|
+
* Throws for another plugin's mention without `kind`, and for
|
|
19412
|
+
* `at: "cursor"` when the composer is not on screen.
|
|
19413
|
+
*/
|
|
19414
|
+
insert(parts: ComposerInsertPart | readonly ComposerInsertPart[], options?: ComposerInsertOptions): void;
|
|
19499
19415
|
/**
|
|
19500
19416
|
* Apply a host-rendered effect to this composer's editable text, or clear it.
|
|
19501
19417
|
* Effects are scoped to the calling plugin and automatically clear when the
|
|
@@ -19508,38 +19424,22 @@ interface PluginComposerApi {
|
|
|
19508
19424
|
* scope changes.
|
|
19509
19425
|
*/
|
|
19510
19426
|
setInputLock(locked: boolean): void;
|
|
19511
|
-
/**
|
|
19512
|
-
* Append text to the draft as a `> ` blockquote block and focus the
|
|
19513
|
-
* composer. Blank text is a no-op. This is the "reference this selection
|
|
19514
|
-
* in chat" primitive.
|
|
19515
|
-
*/
|
|
19516
|
-
addQuote(text: string): void;
|
|
19517
|
-
/**
|
|
19518
|
-
* Insert an @-mention pill that resolves through this plugin's mention
|
|
19519
|
-
* provider at send time — the durable way to reference an entity whose
|
|
19520
|
-
* content should be fetched fresh when the message is sent.
|
|
19521
|
-
*/
|
|
19522
|
-
insertMention(mention: PluginComposerMention): void;
|
|
19523
|
-
/** Remove this plugin's matching mention pills and their text from the current draft. */
|
|
19524
|
-
experimental_removeMention(mention: {
|
|
19525
|
-
provider: string;
|
|
19526
|
-
id: string;
|
|
19527
|
-
}): void;
|
|
19528
19427
|
/** Subscribe to successful local submissions in this composer scope, including accepted queued messages. Failed sends and draft clearing do not notify. Dispose on unmount. */
|
|
19529
|
-
|
|
19428
|
+
onSubmitted(listener: () => void): () => void;
|
|
19530
19429
|
/** Focus the composer caret at the end of the draft. */
|
|
19531
19430
|
focus(): void;
|
|
19532
19431
|
/**
|
|
19533
|
-
* Submit this composer's draft
|
|
19534
|
-
*
|
|
19535
|
-
*
|
|
19536
|
-
* This is a real submission, not a plugin-issued send: the host builds the
|
|
19537
|
-
* request exactly as pressing Enter would, so the draft's attachments and
|
|
19432
|
+
* Submit this composer's draft exactly as pressing Enter would: the same
|
|
19433
|
+
* checks and the same action (send, or queue while the thread is busy; a
|
|
19434
|
+
* provider handoff creates a new thread). The draft's attachments and
|
|
19538
19435
|
* @-mentions, and — in the new-thread composer — the provider, model,
|
|
19539
19436
|
* reasoning level, service tier, permission mode and environment the user
|
|
19540
|
-
* has selected on screen, all travel with it.
|
|
19541
|
-
*
|
|
19542
|
-
*
|
|
19437
|
+
* has selected on screen, all travel with it.
|
|
19438
|
+
*
|
|
19439
|
+
* While attachments are uploading it waits for them, then checks again; it
|
|
19440
|
+
* rejects if an upload fails. Otherwise, when submitting is blocked it
|
|
19441
|
+
* rejects with `submittingBlockedReason`, a message safe to show to the
|
|
19442
|
+
* user. The queued-message and sent-message editors save edits and reject.
|
|
19543
19443
|
*
|
|
19544
19444
|
* `sendAt` queues the submission until that time. `experimental_data` is
|
|
19545
19445
|
* opaque JSON delivered to dispatch hooks together with the calling plugin's
|
|
@@ -19548,16 +19448,10 @@ interface PluginComposerApi {
|
|
|
19548
19448
|
* later attempts; core does not persist or interpret the opaque data.
|
|
19549
19449
|
*
|
|
19550
19450
|
* Resolves once the host has accepted the submission and cleared the draft.
|
|
19551
|
-
* Rejects when the composer refused to submit — a scope with no submit
|
|
19552
|
-
* pipeline (a queued-message editor, a side chat), an empty draft, or a
|
|
19553
|
-
* composer that is not ready (still loading its execution defaults, missing
|
|
19554
|
-
* an environment). The rejection's message is safe to show to the user.
|
|
19555
19451
|
* Failures of the underlying request are reported by bb's own submit error
|
|
19556
19452
|
* handling and restore the draft, exactly as an interactive failure does.
|
|
19557
|
-
*
|
|
19558
|
-
* Experimental: see docs/api_to_audit.md.
|
|
19559
19453
|
*/
|
|
19560
|
-
|
|
19454
|
+
submit(options: ComposerSubmitOptions): Promise<void>;
|
|
19561
19455
|
/**
|
|
19562
19456
|
* Set this composer's pickers as if each value had been picked by hand.
|
|
19563
19457
|
*
|
|
@@ -19604,18 +19498,15 @@ interface PluginComposerApi {
|
|
|
19604
19498
|
* mounted outside any composer), when the calling surface is no longer
|
|
19605
19499
|
* active, and when a value is not a known reasoning level, service tier or
|
|
19606
19500
|
* permission mode.
|
|
19607
|
-
*
|
|
19608
|
-
* Experimental: see docs/api_to_audit.md.
|
|
19609
19501
|
*/
|
|
19610
|
-
|
|
19502
|
+
setSelection(selection: ComposerSelection): Promise<ComposerSelection>;
|
|
19611
19503
|
}
|
|
19612
19504
|
/**
|
|
19613
|
-
*
|
|
19614
|
-
* with. Field names match `NewThreadRequest` and the `default*` props of
|
|
19505
|
+
* Current picker values in `selection`, input for `setSelection`, and the shape it resolves with. Field names match `NewThreadRequest` and the `default*` props of
|
|
19615
19506
|
* `experimental_NewThreadComposer`, so one routed decision can feed the
|
|
19616
19507
|
* composer, the embedded composer and `bb.sdk.threads.spawn` alike.
|
|
19617
19508
|
*/
|
|
19618
|
-
interface
|
|
19509
|
+
interface ComposerSelection {
|
|
19619
19510
|
/** New-thread composers only. BB's personal-project id means "Don't work in a project". */
|
|
19620
19511
|
projectId?: string;
|
|
19621
19512
|
/**
|
|
@@ -19636,13 +19527,13 @@ interface ExperimentalComposerSelection {
|
|
|
19636
19527
|
permissionMode?: PermissionMode;
|
|
19637
19528
|
}
|
|
19638
19529
|
/**
|
|
19639
|
-
* What `
|
|
19530
|
+
* What `submit` does differently from pressing Enter.
|
|
19640
19531
|
*
|
|
19641
19532
|
* `experimental_data` is opaque JSON delivered to dispatch hooks. The runtime
|
|
19642
19533
|
* associates it with the calling plugin automatically for the initial
|
|
19643
19534
|
* dispatch attempt.
|
|
19644
19535
|
*/
|
|
19645
|
-
type
|
|
19536
|
+
type ComposerSubmitOptions = {
|
|
19646
19537
|
sendAt: number;
|
|
19647
19538
|
experimental_data?: JsonValue;
|
|
19648
19539
|
} | {
|
|
@@ -19867,7 +19758,7 @@ interface NewThreadRequest {
|
|
|
19867
19758
|
input: PromptInput[];
|
|
19868
19759
|
/**
|
|
19869
19760
|
* Epoch ms the first turn should dispatch at. Present only when the
|
|
19870
|
-
* submission came from `useComposer().
|
|
19761
|
+
* submission came from `useComposer().submit` — a scheduled
|
|
19871
19762
|
* create — and absent otherwise, which is what makes an ordinary submission
|
|
19872
19763
|
* start work at once. Forward it to `threads.spawn` unchanged: the thread is
|
|
19873
19764
|
* created `pending` and its first message is queued as a row until then.
|
|
@@ -20171,6 +20062,20 @@ interface PluginSdkApp {
|
|
|
20171
20062
|
/** Read or clear the owning tab's validated, session-scoped target. */
|
|
20172
20063
|
experimental_useFixedTabTarget<Target extends JsonValue>(tab: ExperimentalPluginFixedTabReference<Target>): ExperimentalFixedTabTargetState<Target> | null;
|
|
20173
20064
|
useComposer(): PluginComposerApi;
|
|
20065
|
+
/**
|
|
20066
|
+
* Every composer on screen that plugin composer customizations mount in,
|
|
20067
|
+
* oldest first: the thread page's composer, a `ThreadChat`'s composer, the
|
|
20068
|
+
* new-thread composer and open queued-message editors. Use it from a panel
|
|
20069
|
+
* or page that writes into a composer the user picks — label each by its
|
|
20070
|
+
* `scope`, then call `insert`, `focus` or `submit` on the chosen handle.
|
|
20071
|
+
*
|
|
20072
|
+
* Each handle is stable while its composer stays on screen and follows the
|
|
20073
|
+
* same lifetime rule as `useComposer()`. `setTextEffect` and `setInputLock`
|
|
20074
|
+
* have no effect here; call them from a composer slot's `useComposer()`.
|
|
20075
|
+
* The calling component re-renders when the list or any listed draft
|
|
20076
|
+
* changes.
|
|
20077
|
+
*/
|
|
20078
|
+
useComposers(): readonly PluginComposerApi[];
|
|
20174
20079
|
/**
|
|
20175
20080
|
* The sidebar's live thread view (see {@link PluginSidebarThreadsState}).
|
|
20176
20081
|
* Reads the host's own cache and realtime subscriptions, so it costs no
|
|
@@ -20231,7 +20136,7 @@ interface PluginSdkApp {
|
|
|
20231
20136
|
experimental_useSidebarNavigationSplit(itemId: string, options?: ExperimentalSidebarNavigationSplitOptions): ExperimentalSidebarNavigationSplit;
|
|
20232
20137
|
/**
|
|
20233
20138
|
* bb's artwork for a navigation item's icon: bb's glyphs for its own items,
|
|
20234
|
-
* and the
|
|
20139
|
+
* and the panel's explicit icon, falling back to plugin branding, for plugin panels. Experimental:
|
|
20235
20140
|
* see docs/api_to_audit.md.
|
|
20236
20141
|
*/
|
|
20237
20142
|
experimental_SidebarNavigationIcon: ComponentType<ExperimentalSidebarNavigationIconProps>;
|
|
@@ -20391,7 +20296,6 @@ interface PluginSdkApp {
|
|
|
20391
20296
|
* docs/api_to_audit.md.
|
|
20392
20297
|
*/
|
|
20393
20298
|
experimental_Diff: ComponentType<DiffProps>;
|
|
20394
|
-
useComposerView(): ComposerView;
|
|
20395
20299
|
}
|
|
20396
20300
|
|
|
20397
20301
|
type PluginMachineProviderResource = Exclude<JsonValue$2, null>;
|
|
@@ -21291,7 +21195,7 @@ interface MessageDispatchHookContext {
|
|
|
21291
21195
|
queuedMessages: ThreadQueuedMessage[];
|
|
21292
21196
|
/**
|
|
21293
21197
|
* Opaque JSON supplied by a plugin through the composer's
|
|
21294
|
-
* `
|
|
21198
|
+
* `submit`, paired with that plugin's id. Null for ordinary
|
|
21295
21199
|
* submissions and queued re-attempts. Core does not persist or interpret
|
|
21296
21200
|
* the data.
|
|
21297
21201
|
*/
|
|
@@ -21446,9 +21350,11 @@ interface PluginRpc {
|
|
|
21446
21350
|
* `/api/v1/plugins/<id>/rpc/<method>` with "local" auth semantics. The
|
|
21447
21351
|
* host validates input before invocation and output before strict JSON
|
|
21448
21352
|
* serialization. The response is `{ ok: true, result }` or
|
|
21449
|
-
* `{ ok: false, error: { code, message, issues? } }`.
|
|
21353
|
+
* `{ ok: false, error: { code, message, issues? } }`. Each handler gets
|
|
21354
|
+
* the call's context as its second argument; `experimental_caller` names
|
|
21355
|
+
* the plugin that called through `bb.sdk.plugins.callRpc`, or `client`.
|
|
21450
21356
|
*/
|
|
21451
|
-
register<Contract extends PluginRpcContract>(contract: Contract, handlers:
|
|
21357
|
+
register<Contract extends PluginRpcContract>(contract: Contract, handlers: ExperimentalPluginRpcHandlersWithContext<Contract>, options?: {
|
|
21452
21358
|
experimental_discoverable?: boolean;
|
|
21453
21359
|
experimental_description?: string;
|
|
21454
21360
|
}): void;
|
|
@@ -22242,8 +22148,9 @@ interface PluginMentionItem {
|
|
|
22242
22148
|
subtitle?: string;
|
|
22243
22149
|
/**
|
|
22244
22150
|
* BB icon name: a built-in name, or a name the plugin's app bundle
|
|
22245
|
-
* registered with `app.experimental_icons.register()`.
|
|
22246
|
-
* plugin
|
|
22151
|
+
* registered with `app.experimental_icons.register()`. Resolved names take
|
|
22152
|
+
* precedence over plugin branding in menu rows, composer pills, and sent
|
|
22153
|
+
* messages. Omitted or unknown names fall back to plugin branding, then
|
|
22247
22154
|
* the generic plugin icon.
|
|
22248
22155
|
*/
|
|
22249
22156
|
icon?: string;
|
|
@@ -22803,4 +22710,4 @@ declare function cliCommand<const TOptions extends CliOptions = Record<string, n
|
|
|
22803
22710
|
declare function defineCli(spec: PluginCliSpec): PluginCliRegistration;
|
|
22804
22711
|
|
|
22805
22712
|
export { PLUGIN_CLI_OUTPUT_MAX_BYTES, PluginCliError, cliCommand, defineCli, defineRpcContract, experimental_defineHostEntry };
|
|
22806
|
-
export type { BbContext, BbNavigate, BbPluginApi, BranchPickerProps, BranchesState, CheckoutState, CodeOverflowMode, ComposerCustomization, ComposerPlusMenuItem, ComposerRichTextSpec,
|
|
22713
|
+
export type { BbContext, BbNavigate, BbPluginApi, BranchPickerProps, BranchesState, CheckoutState, CodeOverflowMode, ComposerAttachment, ComposerCustomization, ComposerDraft, ComposerDraftReplacement, ComposerDraftSnapshot, ComposerInsertOptions, ComposerInsertPart, ComposerMention, ComposerPlusMenuItem, ComposerRichTextSpec, ComposerSelection, ComposerSendMenuItem, ComposerSubmitOptions, DiffProps, DiffViewMode, ExperimentalAppIcons, ExperimentalAppOverlayProps, ExperimentalAppOverlayRegistration, ExperimentalAppPanel, ExperimentalAppPanelSurface, ExperimentalDesktopBrowserAcquireInput, ExperimentalDesktopBrowserCreateInput, ExperimentalDesktopBrowserLease, ExperimentalDesktopBrowserScope, ExperimentalDesktopBrowsersArea, ExperimentalDiffFileContent, ExperimentalDiffFullFileContents, ExperimentalFileLinkProps, ExperimentalFileLocation, ExperimentalFileOpenOptions, ExperimentalFixedTabTargetContract, ExperimentalFixedTabTargetState, ExperimentalHostCallOptions, ExperimentalHostClient, ExperimentalHostEntry, ExperimentalHostPaths, ExperimentalHostRpcContext, ExperimentalHostRpcHandlers, ExperimentalHostSignalContract, ExperimentalHostSignalEvent, ExperimentalHostSignals, ExperimentalHostWatchChange, ExperimentalHostWatchChangeType, ExperimentalHostWatchEvent, ExperimentalHostWatchListener, ExperimentalHostWatchOptions, ExperimentalHostWatchSubscription, ExperimentalHostWorkerLease, ExperimentalIconProps, ExperimentalIconRegistration, ExperimentalLiveFileTarget, ExperimentalOpenFixedTabOptions, ExperimentalPermissionModePickerProps, ExperimentalPluginBrowserPage, ExperimentalPluginBrowserPageEvaluateOptions, ExperimentalPluginBrowserPageWorld, ExperimentalPluginBrowserToolbarActionProps, ExperimentalPluginBrowserToolbarActionRegistration, ExperimentalPluginFixedTabReference, ExperimentalPluginMentionImage, ExperimentalPluginProviderEnvContext, ExperimentalPluginProviderEnvEntry, ExperimentalPluginProviderEnvHealth, ExperimentalPluginProviderEnvHealthContext, ExperimentalPluginRpcCaller, ExperimentalPluginRpcHandlerContext, ExperimentalPluginRpcHandlersWithContext, ExperimentalPluginWebSocket, ExperimentalPluginWebSocketContext, ExperimentalPluginWebSocketHandler, ExperimentalPluginWebSocketHandlers, ExperimentalProviderIconProps, ExperimentalProviderModelPickerProps, ExperimentalProviderModelPickerRouting, ExperimentalProviderModelPickerValue, ExperimentalQuestionFormHost, ExperimentalQuestionShortcut, ExperimentalSidebarFooter, ExperimentalSidebarFooterActionContext, ExperimentalSidebarFooterActionRegistration, ExperimentalSidebarFooterDisclosureController, ExperimentalSidebarFooterDisclosureProps, ExperimentalSidebarFooterDisclosureRegistration, ExperimentalSidebarFooterItemBase, ExperimentalSidebarFooterItemRegistration, ExperimentalSidebarHeaderProps, ExperimentalSidebarHeaderRegistration, ExperimentalSidebarNavigationAction, ExperimentalSidebarNavigationActions, ExperimentalSidebarNavigationActivationOptions, ExperimentalSidebarNavigationIcon, ExperimentalSidebarNavigationIconProps, ExperimentalSidebarNavigationItem, ExperimentalSidebarNavigationProps, ExperimentalSidebarNavigationRegistration, ExperimentalSidebarNavigationShortcut, ExperimentalSidebarNavigationSplit, ExperimentalSidebarNavigationSplitOptions, ExperimentalSidebarNavigationState, JsonValue, MachineBootstrapApi, MachineBootstrapRequest, MachineExecutor, MachineExecutorRequest, MarkdownProps, MessageDispatchHookContext, MessageDispatchHookDecision, NewThreadComposerProps, NewThreadRequest, PluginAgentConfiguration, PluginAgentConfigurationContext, PluginAgentToolContentPart, PluginAgentToolContext, PluginAgentToolRegistrationBase, PluginAgentToolResult, PluginAgentToolSelection, PluginAgents, PluginAiCompleteOptions, PluginAiServiceDeclaration, PluginAiServiceStatus, PluginAiServices, PluginAiTranscribeOptions, PluginAppBuilder, PluginAppCommands, PluginAppComposer, PluginAppContentScripts, PluginAppDefinition, PluginAppSetup, PluginAppSlots, PluginBackground, PluginBbSdk, PluginBoundThreadsArea, PluginBrowserBbSdk, PluginCli, PluginCliBooleanOption, PluginCliCommand, PluginCliCommandInfo, PluginCliConstraint, PluginCliContext, PluginCliDurationOption, PluginCliDurationUnit, PluginCliEnumOption, PluginCliErrorCode, PluginCliExecutionResult, PluginCliIntegerOption, PluginCliOption, PluginCliOptionValues, PluginCliOutputLimitError, PluginCliPositional, PluginCliPositionalValues, PluginCliRegistration, PluginCliResult, PluginCliRunInput, PluginCliSpec, PluginCliStringOption, PluginCodeThemeData, PluginCodeThemeState, PluginCodeThemeTokenRule, PluginCommandContext, PluginCommandRegistration, PluginCommandShortcut, PluginComposerApi, PluginComposerMention, PluginComposerScope, PluginComposerTextEffect, PluginComposerThreadRowStatus, PluginContentScriptContext, PluginContentScriptDisposer, PluginContentScriptRegistration, PluginDiffRendererProps, PluginDiffRendererRegistration, PluginDispatchAttemptKind, PluginDispatchEnvironmentIntent, PluginDispatchExecution, PluginDispatchExecutionSources, PluginDispatchInput, PluginEnvironmentProvider, PluginEnvironmentProviderDeclaration, PluginEnvironmentProviderInputsChange, PluginEnvironmentProviderInputsProps, PluginEnvironmentProviderInputsRegistration, PluginEnvironmentProviderRequirements, PluginEnvironmentProvidersState, PluginEnvironmentValidateDecision, PluginEnvironments, PluginEvents, PluginFileOpenerProps, PluginFileOpenerRegistration, PluginFileOpenerSource, PluginFixedTabDeclaration, PluginFixedTabRegistration, PluginHomepageSectionProps, PluginHomepageSectionRegistration, PluginHookHandler, PluginHookName, PluginHookSignatures, PluginHooks, PluginHosts, PluginHttp, PluginHttpAuthMode, PluginHttpHandler, PluginInteractionCancelReason, PluginInteractionDescription, PluginInteractionRequest, PluginInteractionResult, PluginKvStorage, PluginLogger, PluginMachineProviderDeclaration, PluginMachineProviderInputsChange, PluginMachineProviderInputsProps, PluginMachineProviderInputsRegistration, PluginMachineValidateDecision, PluginMachines, PluginMentionItem, PluginMentionProviderRegistration, PluginMentionSearchContext, PluginMentionTrigger, PluginMessageActionContext, PluginMessageActionRegistration, PluginMessageDirectiveMessage, PluginMessageDirectiveOpenWorkspaceFile, PluginMessageDirectiveProps, PluginMessageDirectiveRegistration, PluginNavPanelProps, PluginNavPanelRegistration, PluginNewThreadPanelActionContext, PluginNewThreadPanelActionRegistration, PluginNewThreadPanelProps, PluginPanelActionOpenOptions, PluginPendingInteractionProps, PluginPendingInteractionRegistration, PluginPendingInteractionView, PluginProviderCapabilities, PluginProviderCompletedTurnDisplay, PluginProviderComposerAction, PluginProviderDeclaration, PluginProviderExtensionKindDeclaration, PluginProviderFallbackModel, PluginProviderIconRegistration, PluginProviderMaintenance, PluginProviderModelCatalogScope, PluginProviderNativeRootEntry, PluginProviderNativeRoots, PluginProviderOptionDescriptor, PluginProviderOptionsContext, PluginProviderPermissionMode, PluginProviderReasoningLevel, PluginProviderStrings, PluginProviders, PluginProvidersState, PluginRealtime, PluginRealtimeConnectionState, PluginRowLabels, PluginRowPresentation, PluginRpc, PluginRpcCallArgs, PluginRpcClient, PluginRpcContract, PluginRpcError, PluginRpcErrorCode, PluginRpcHandlers, PluginRpcIssuePathSegment, PluginRpcMethodContract, PluginRpcResult, PluginRpcValidationIssue, PluginSdkApp, PluginServerAccess, PluginServerApi, PluginSettingDescriptor, PluginSettingDescriptors, PluginSettingValue, PluginSettings, PluginSettingsHandle, PluginSettingsSectionProps, PluginSettingsSectionRegistration, PluginSettingsState, PluginSettingsValues, PluginSharedPortTunnelIdentity, PluginSidebarFooterActionContext, PluginSidebarFooterActionProps, PluginSidebarFooterActionRegistration, PluginSidebarProject, PluginSidebarPullRequest, PluginSidebarSection, PluginSidebarSplitLayout, PluginSidebarSplitPane, PluginSidebarThread, PluginSidebarThreadActions, PluginSidebarThreadActivity, PluginSidebarThreadDraftState, PluginSidebarThreadIndicator, PluginSidebarThreadPullRequestState, PluginSidebarThreadRowStatus, PluginSidebarThreadShortcut, PluginSidebarThreadSplit, PluginSidebarThreadsState, PluginSourceCodeRendererProps, PluginSourceCodeRendererRegistration, PluginStatusApi, PluginStorage, PluginTargetedPanelActionOpenOptions, PluginThreadEventHandler, PluginThreadEventName, PluginThreadEventPayloads, PluginThreadHeaderActionProps, PluginThreadHeaderActionRegistration, PluginThreadListProps, PluginThreadListRegistration, PluginThreadPanelActionContext, PluginThreadPanelActionRegistration, PluginThreadPanelProps, PluginThreadTitleProps, PluginTimelineRendererProps, PluginTimelineRendererRegistration, PluginTimelineRendererRow, PluginTimelineRowPresentation, PluginTimelineRowStatus, PluginTurnFailedEvent, PluginUi, ReadonlyJsonValue, ServerAccessGrant, ServerAccessProviderDeclaration, SourceCodeLineRange, SourceCodeProps, StandardSchemaV1, StandardSchemaV1InferInput, StandardSchemaV1InferOutput, StandardSchemaV1Issue, StandardSchemaV1Result, ThreadChatMessageAction, ThreadChatMessageReference, ThreadChatProps, UrlLinkProps, UseBranchesArgs, UseCheckoutStateArgs };
|