@get-bb/plugin-sdk 0.4.104 → 0.4.108
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/bundled-types/bb-plugin-sdk-app.d.ts +11 -10
- package/bundled-types/bb-plugin-sdk-environment-provider.d.ts +2 -0
- package/bundled-types/bb-plugin-sdk-internal-host-policy.d.ts +3 -0
- package/bundled-types/bb-plugin-sdk-testing.d.ts +3 -0
- package/bundled-types/bb-plugin-sdk.d.ts +63 -11
- package/dist/internal/composer-customization-validation.js +7 -0
- package/dist/internal/host-policy.js +7 -0
- package/dist/internal/plugin-app-collector.js +7 -0
- package/dist/provider-bridge-acp.js +1 -1
- package/dist/testing/app.js +8 -1
- package/dist/testing/index.js +7 -0
- package/package.json +1 -1
|
@@ -2102,6 +2102,8 @@ interface ComposerCustomization {
|
|
|
2102
2102
|
/** Host-rendered menu row in the composer's `+` menu. */
|
|
2103
2103
|
interface ComposerPlusMenuItem {
|
|
2104
2104
|
id: string;
|
|
2105
|
+
/** Also offer this action in the desktop send dropdown and mobile long-press menu. */
|
|
2106
|
+
experimental_sendMenu?: boolean;
|
|
2105
2107
|
label: string;
|
|
2106
2108
|
/** Drawn only when the manifest declares no `bb.branding.icon`. */
|
|
2107
2109
|
icon?: BbIconName;
|
|
@@ -2470,9 +2472,8 @@ interface ExperimentalProviderModelPickerProps {
|
|
|
2470
2472
|
/**
|
|
2471
2473
|
* Props of the host-owned `experimental_BranchPicker` component — bb's branch
|
|
2472
2474
|
* picker bundled with its branch-options loading for the given host and
|
|
2473
|
-
* project
|
|
2474
|
-
*
|
|
2475
|
-
* caller owns only the selection.
|
|
2475
|
+
* project. The host owns fetching, searching, and refreshing the branch list;
|
|
2476
|
+
* the caller owns the selection and its meaning.
|
|
2476
2477
|
*/
|
|
2477
2478
|
interface BranchPickerProps {
|
|
2478
2479
|
/**
|
|
@@ -2483,21 +2484,21 @@ interface BranchPickerProps {
|
|
|
2483
2484
|
/** The project whose source on `hostId` is listed; null disables loading. */
|
|
2484
2485
|
projectId: string | null;
|
|
2485
2486
|
/**
|
|
2486
|
-
* The selected branch name, or null when no branch is chosen
|
|
2487
|
-
* shows
|
|
2487
|
+
* The selected branch name, or null when no branch is chosen. A null value
|
|
2488
|
+
* shows the placeholder without selecting or implying a default branch.
|
|
2488
2489
|
*/
|
|
2489
2490
|
value: string | null;
|
|
2490
2491
|
/** Called with the picked branch name, or null when the pick is cleared. */
|
|
2491
2492
|
onChange(next: string | null): void;
|
|
2492
2493
|
/**
|
|
2493
|
-
* Text placed before the branch on the trigger
|
|
2494
|
-
* trigger is the branch alone
|
|
2494
|
+
* Text placed before the branch on the trigger and used as the menu heading,
|
|
2495
|
+
* e.g. "Compare with:". Omitted, the trigger is the branch alone and the menu
|
|
2496
|
+
* uses the neutral "Branches" heading.
|
|
2495
2497
|
*/
|
|
2496
2498
|
label?: string;
|
|
2497
2499
|
/**
|
|
2498
|
-
* The trigger while nothing is picked
|
|
2499
|
-
*
|
|
2500
|
-
* when the base cannot be resolved.
|
|
2500
|
+
* The complete trigger text while nothing is picked, without the label
|
|
2501
|
+
* prefix. Defaults to "Select branch".
|
|
2501
2502
|
*/
|
|
2502
2503
|
placeholder?: string;
|
|
2503
2504
|
/** Render the current selection without allowing changes. */
|
|
@@ -292,6 +292,8 @@ interface PluginEnvironmentProviderDefinition<R extends PluginEnvironmentProvide
|
|
|
292
292
|
/** Experimental per-machine availability, probed in the background for pickers and again at thread creation: see docs/api_to_audit.md. */
|
|
293
293
|
availability?(context: PluginEnvironmentProviderAvailabilityContext): PluginEnvironmentProviderAvailability | Promise<PluginEnvironmentProviderAvailability>;
|
|
294
294
|
validate?(context: PluginEnvironmentProviderValidateContext<R, S>): PluginEnvironmentValidateDecision | Promise<PluginEnvironmentValidateDecision>;
|
|
295
|
+
/** Pure path selection from parsed inputs. Core reuses a recorded environment on the selected host before calling create; null requests normal creation. */
|
|
296
|
+
experimental_existingPath?(inputs: InputsValue<S>): string | null;
|
|
295
297
|
create(context: PluginEnvironmentProviderCreateContext<R, S>): Promise<PluginEnvironmentProviderCreateResult>;
|
|
296
298
|
remove(context: PluginEnvironmentProviderRemoveContext): Promise<PluginEnvironmentProviderRemoveResult>;
|
|
297
299
|
}
|
|
@@ -630,6 +630,8 @@ interface PluginEnvironmentProviderDefinition<R extends PluginEnvironmentProvide
|
|
|
630
630
|
/** Experimental per-machine availability, probed in the background for pickers and again at thread creation: see docs/api_to_audit.md. */
|
|
631
631
|
availability?(context: PluginEnvironmentProviderAvailabilityContext): PluginEnvironmentProviderAvailability | Promise<PluginEnvironmentProviderAvailability>;
|
|
632
632
|
validate?(context: PluginEnvironmentProviderValidateContext<R, S>): PluginEnvironmentValidateDecision | Promise<PluginEnvironmentValidateDecision>;
|
|
633
|
+
/** Pure path selection from parsed inputs. Core reuses a recorded environment on the selected host before calling create; null requests normal creation. */
|
|
634
|
+
experimental_existingPath?(inputs: InputsValue$1<S>): string | null;
|
|
633
635
|
create(context: PluginEnvironmentProviderCreateContext<R, S>): Promise<PluginEnvironmentProviderCreateResult>;
|
|
634
636
|
remove(context: PluginEnvironmentProviderRemoveContext): Promise<PluginEnvironmentProviderRemoveResult>;
|
|
635
637
|
}
|
|
@@ -1931,6 +1933,7 @@ interface NormalizedPluginEnvironmentProvider {
|
|
|
1931
1933
|
inputsJsonSchema: JsonValue | null;
|
|
1932
1934
|
availability: NonNullable<PluginEnvironmentProviderDeclaration["availability"]> | null;
|
|
1933
1935
|
validate: NonNullable<PluginEnvironmentProviderDeclaration["validate"]> | null;
|
|
1936
|
+
experimental_existingPath: NonNullable<PluginEnvironmentProviderDeclaration["experimental_existingPath"]> | null;
|
|
1934
1937
|
create: PluginEnvironmentProviderDeclaration["create"];
|
|
1935
1938
|
remove: PluginEnvironmentProviderDeclaration["remove"];
|
|
1936
1939
|
policy: PluginEnvironmentProviderPolicy;
|
|
@@ -423,6 +423,8 @@ interface PluginEnvironmentProviderDefinition<R extends PluginEnvironmentProvide
|
|
|
423
423
|
/** Experimental per-machine availability, probed in the background for pickers and again at thread creation: see docs/api_to_audit.md. */
|
|
424
424
|
availability?(context: PluginEnvironmentProviderAvailabilityContext): PluginEnvironmentProviderAvailability | Promise<PluginEnvironmentProviderAvailability>;
|
|
425
425
|
validate?(context: PluginEnvironmentProviderValidateContext<R, S>): PluginEnvironmentValidateDecision | Promise<PluginEnvironmentValidateDecision>;
|
|
426
|
+
/** Pure path selection from parsed inputs. Core reuses a recorded environment on the selected host before calling create; null requests normal creation. */
|
|
427
|
+
experimental_existingPath?(inputs: InputsValue<S>): string | null;
|
|
426
428
|
create(context: PluginEnvironmentProviderCreateContext<R, S>): Promise<PluginEnvironmentProviderCreateResult>;
|
|
427
429
|
remove(context: PluginEnvironmentProviderRemoveContext): Promise<PluginEnvironmentProviderRemoveResult>;
|
|
428
430
|
}
|
|
@@ -980,6 +982,7 @@ interface NormalizedPluginEnvironmentProvider {
|
|
|
980
982
|
inputsJsonSchema: JsonValue | null;
|
|
981
983
|
availability: NonNullable<PluginEnvironmentProviderDeclaration["availability"]> | null;
|
|
982
984
|
validate: NonNullable<PluginEnvironmentProviderDeclaration["validate"]> | null;
|
|
985
|
+
experimental_existingPath: NonNullable<PluginEnvironmentProviderDeclaration["experimental_existingPath"]> | null;
|
|
983
986
|
create: PluginEnvironmentProviderDeclaration["create"];
|
|
984
987
|
remove: PluginEnvironmentProviderDeclaration["remove"];
|
|
985
988
|
policy: PluginEnvironmentProviderPolicy;
|
|
@@ -98,7 +98,7 @@ declare const appSettingsUpdateSchema: z$1.ZodUnion<readonly [z$1.ZodObject<{
|
|
|
98
98
|
}, z$1.core.$strict>]>;
|
|
99
99
|
type AppSettingsUpdate = z$1.infer<typeof appSettingsUpdateSchema>;
|
|
100
100
|
|
|
101
|
-
declare const UI_PREFERENCE_KEYS: readonly ["sidebar.organizationMode", "sidebar.threadGrouping.environment", "sidebar.chronologicalSort", "sidebar.sortDirection", "sidebar.sectionOrder", "sidebar.manualSectionOrder", "sidebar.machineSectionOrder", "sidebar.collapsedSections", "sidebar.collapsedProjects", "sidebar.collapsedThreads", "sidebar.collapsedEnvironments", "sidebar.collapsedThreadSections", "sidebar.collapsedMachines", "sidebar.footerOrder", "sidebar.hiddenFooterItems", "sidebar.pluginPanelOrder", "sidebar.visiblePluginPanels", "sidebar.navigationProvider", "sidebar.threadListProvider"];
|
|
101
|
+
declare const UI_PREFERENCE_KEYS: readonly ["sidebar.organizationMode", "sidebar.threadGrouping.environment", "sidebar.chronologicalSort", "sidebar.sortDirection", "sidebar.sectionOrder", "sidebar.manualSectionOrder", "sidebar.machineSectionOrder", "sidebar.hiddenGroups", "sidebar.collapsedSections", "sidebar.collapsedProjects", "sidebar.collapsedThreads", "sidebar.collapsedEnvironments", "sidebar.collapsedThreadSections", "sidebar.collapsedMachines", "sidebar.footerOrder", "sidebar.hiddenFooterItems", "sidebar.pluginPanelOrder", "sidebar.visiblePluginPanels", "sidebar.navigationProvider", "sidebar.threadListProvider"];
|
|
102
102
|
type UiPreferenceKey = (typeof UI_PREFERENCE_KEYS)[number];
|
|
103
103
|
interface UiPreferenceDefinition<Schema extends z$1.ZodTypeAny = z$1.ZodTypeAny> {
|
|
104
104
|
schema: Schema;
|
|
@@ -126,6 +126,7 @@ declare const uiPreferenceDefinitions: {
|
|
|
126
126
|
readonly "sidebar.sectionOrder": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
|
|
127
127
|
readonly "sidebar.manualSectionOrder": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
|
|
128
128
|
readonly "sidebar.machineSectionOrder": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
|
|
129
|
+
readonly "sidebar.hiddenGroups": UiPreferenceDefinition<z$1.ZodPipe<z$1.ZodArray<z$1.ZodString>, z$1.ZodTransform<string[], string[]>>>;
|
|
129
130
|
readonly "sidebar.collapsedSections": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodEnum<{
|
|
130
131
|
pinned: "pinned";
|
|
131
132
|
threads: "threads";
|
|
@@ -179,11 +180,19 @@ declare const appKeybindingOverridesSchema: z$1.ZodArray<z$1.ZodObject<{
|
|
|
179
180
|
"pane.focus.6": "pane.focus.6";
|
|
180
181
|
"pane.focus.7": "pane.focus.7";
|
|
181
182
|
"pane.focus.8": "pane.focus.8";
|
|
183
|
+
"pane.focus.down": "pane.focus.down";
|
|
184
|
+
"pane.focus.left": "pane.focus.left";
|
|
182
185
|
"pane.focus.next": "pane.focus.next";
|
|
183
186
|
"pane.focus.previous": "pane.focus.previous";
|
|
187
|
+
"pane.focus.right": "pane.focus.right";
|
|
188
|
+
"pane.focus.up": "pane.focus.up";
|
|
184
189
|
"pane.maximize.toggle": "pane.maximize.toggle";
|
|
185
190
|
"panel.close": "panel.close";
|
|
186
191
|
"panel.newTab": "panel.newTab";
|
|
192
|
+
"panel.nextNewTabItem": "panel.nextNewTabItem";
|
|
193
|
+
"panel.nextTab": "panel.nextTab";
|
|
194
|
+
"panel.previousNewTabItem": "panel.previousNewTabItem";
|
|
195
|
+
"panel.previousTab": "panel.previousTab";
|
|
187
196
|
"panel.reopenClosedTab": "panel.reopenClosedTab";
|
|
188
197
|
"panel.toggle": "panel.toggle";
|
|
189
198
|
"question.select.1": "question.select.1";
|
|
@@ -9936,11 +9945,19 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
|
|
|
9936
9945
|
"pane.focus.6": "pane.focus.6";
|
|
9937
9946
|
"pane.focus.7": "pane.focus.7";
|
|
9938
9947
|
"pane.focus.8": "pane.focus.8";
|
|
9948
|
+
"pane.focus.down": "pane.focus.down";
|
|
9949
|
+
"pane.focus.left": "pane.focus.left";
|
|
9939
9950
|
"pane.focus.next": "pane.focus.next";
|
|
9940
9951
|
"pane.focus.previous": "pane.focus.previous";
|
|
9952
|
+
"pane.focus.right": "pane.focus.right";
|
|
9953
|
+
"pane.focus.up": "pane.focus.up";
|
|
9941
9954
|
"pane.maximize.toggle": "pane.maximize.toggle";
|
|
9942
9955
|
"panel.close": "panel.close";
|
|
9943
9956
|
"panel.newTab": "panel.newTab";
|
|
9957
|
+
"panel.nextNewTabItem": "panel.nextNewTabItem";
|
|
9958
|
+
"panel.nextTab": "panel.nextTab";
|
|
9959
|
+
"panel.previousNewTabItem": "panel.previousNewTabItem";
|
|
9960
|
+
"panel.previousTab": "panel.previousTab";
|
|
9944
9961
|
"panel.reopenClosedTab": "panel.reopenClosedTab";
|
|
9945
9962
|
"panel.toggle": "panel.toggle";
|
|
9946
9963
|
"question.select.1": "question.select.1";
|
|
@@ -10071,11 +10088,19 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
|
|
|
10071
10088
|
"pane.focus.6": "pane.focus.6";
|
|
10072
10089
|
"pane.focus.7": "pane.focus.7";
|
|
10073
10090
|
"pane.focus.8": "pane.focus.8";
|
|
10091
|
+
"pane.focus.down": "pane.focus.down";
|
|
10092
|
+
"pane.focus.left": "pane.focus.left";
|
|
10074
10093
|
"pane.focus.next": "pane.focus.next";
|
|
10075
10094
|
"pane.focus.previous": "pane.focus.previous";
|
|
10095
|
+
"pane.focus.right": "pane.focus.right";
|
|
10096
|
+
"pane.focus.up": "pane.focus.up";
|
|
10076
10097
|
"pane.maximize.toggle": "pane.maximize.toggle";
|
|
10077
10098
|
"panel.close": "panel.close";
|
|
10078
10099
|
"panel.newTab": "panel.newTab";
|
|
10100
|
+
"panel.nextNewTabItem": "panel.nextNewTabItem";
|
|
10101
|
+
"panel.nextTab": "panel.nextTab";
|
|
10102
|
+
"panel.previousNewTabItem": "panel.previousNewTabItem";
|
|
10103
|
+
"panel.previousTab": "panel.previousTab";
|
|
10079
10104
|
"panel.reopenClosedTab": "panel.reopenClosedTab";
|
|
10080
10105
|
"panel.toggle": "panel.toggle";
|
|
10081
10106
|
"question.select.1": "question.select.1";
|
|
@@ -10146,11 +10171,19 @@ declare const systemConfigResponseSchema: z$1.ZodObject<{
|
|
|
10146
10171
|
"pane.focus.6": "pane.focus.6";
|
|
10147
10172
|
"pane.focus.7": "pane.focus.7";
|
|
10148
10173
|
"pane.focus.8": "pane.focus.8";
|
|
10174
|
+
"pane.focus.down": "pane.focus.down";
|
|
10175
|
+
"pane.focus.left": "pane.focus.left";
|
|
10149
10176
|
"pane.focus.next": "pane.focus.next";
|
|
10150
10177
|
"pane.focus.previous": "pane.focus.previous";
|
|
10178
|
+
"pane.focus.right": "pane.focus.right";
|
|
10179
|
+
"pane.focus.up": "pane.focus.up";
|
|
10151
10180
|
"pane.maximize.toggle": "pane.maximize.toggle";
|
|
10152
10181
|
"panel.close": "panel.close";
|
|
10153
10182
|
"panel.newTab": "panel.newTab";
|
|
10183
|
+
"panel.nextNewTabItem": "panel.nextNewTabItem";
|
|
10184
|
+
"panel.nextTab": "panel.nextTab";
|
|
10185
|
+
"panel.previousNewTabItem": "panel.previousNewTabItem";
|
|
10186
|
+
"panel.previousTab": "panel.previousTab";
|
|
10154
10187
|
"panel.reopenClosedTab": "panel.reopenClosedTab";
|
|
10155
10188
|
"panel.toggle": "panel.toggle";
|
|
10156
10189
|
"question.select.1": "question.select.1";
|
|
@@ -14098,6 +14131,13 @@ declare const timelineTurnSummaryDetailsResponseSchema: z$1.ZodObject<{
|
|
|
14098
14131
|
rows: z$1.ZodArray<z$1.ZodType<TimelineRow, unknown, z$1.core.$ZodTypeInternals<TimelineRow, unknown>>>;
|
|
14099
14132
|
}, z$1.core.$strip>;
|
|
14100
14133
|
type TimelineTurnSummaryDetailsResponse = z$1.infer<typeof timelineTurnSummaryDetailsResponseSchema>;
|
|
14134
|
+
declare const threadImageMetadataSchema: z$1.ZodObject<{
|
|
14135
|
+
etag: z$1.ZodNullable<z$1.ZodString>;
|
|
14136
|
+
height: z$1.ZodNumber;
|
|
14137
|
+
source: z$1.ZodString;
|
|
14138
|
+
width: z$1.ZodNumber;
|
|
14139
|
+
}, z$1.core.$strip>;
|
|
14140
|
+
type ThreadImageMetadata = z$1.infer<typeof threadImageMetadataSchema>;
|
|
14101
14141
|
declare const threadTimelineResponseSchema: z$1.ZodObject<{
|
|
14102
14142
|
activeBackgroundCommands: z$1.ZodArray<z$1.ZodObject<{
|
|
14103
14143
|
completedAt: z$1.ZodNullable<z$1.ZodNumber>;
|
|
@@ -14364,6 +14404,12 @@ declare const threadTimelineResponseSchema: z$1.ZodObject<{
|
|
|
14364
14404
|
tokensUsed: z$1.ZodNumber;
|
|
14365
14405
|
updatedAt: z$1.ZodNumber;
|
|
14366
14406
|
}, z$1.core.$strip>>;
|
|
14407
|
+
imageMetadata: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
|
|
14408
|
+
etag: z$1.ZodNullable<z$1.ZodString>;
|
|
14409
|
+
height: z$1.ZodNumber;
|
|
14410
|
+
source: z$1.ZodString;
|
|
14411
|
+
width: z$1.ZodNumber;
|
|
14412
|
+
}, z$1.core.$strip>>>;
|
|
14367
14413
|
maxSeq: z$1.ZodNumber;
|
|
14368
14414
|
modelFallback: z$1.ZodNullable<z$1.ZodObject<{
|
|
14369
14415
|
detectedAt: z$1.ZodNumber;
|
|
@@ -16847,6 +16893,8 @@ interface ComposerCustomization {
|
|
|
16847
16893
|
/** Host-rendered menu row in the composer's `+` menu. */
|
|
16848
16894
|
interface ComposerPlusMenuItem {
|
|
16849
16895
|
id: string;
|
|
16896
|
+
/** Also offer this action in the desktop send dropdown and mobile long-press menu. */
|
|
16897
|
+
experimental_sendMenu?: boolean;
|
|
16850
16898
|
label: string;
|
|
16851
16899
|
/** Drawn only when the manifest declares no `bb.branding.icon`. */
|
|
16852
16900
|
icon?: BbIconName;
|
|
@@ -17215,9 +17263,8 @@ interface ExperimentalProviderModelPickerProps {
|
|
|
17215
17263
|
/**
|
|
17216
17264
|
* Props of the host-owned `experimental_BranchPicker` component — bb's branch
|
|
17217
17265
|
* picker bundled with its branch-options loading for the given host and
|
|
17218
|
-
* project
|
|
17219
|
-
*
|
|
17220
|
-
* caller owns only the selection.
|
|
17266
|
+
* project. The host owns fetching, searching, and refreshing the branch list;
|
|
17267
|
+
* the caller owns the selection and its meaning.
|
|
17221
17268
|
*/
|
|
17222
17269
|
interface BranchPickerProps {
|
|
17223
17270
|
/**
|
|
@@ -17228,21 +17275,21 @@ interface BranchPickerProps {
|
|
|
17228
17275
|
/** The project whose source on `hostId` is listed; null disables loading. */
|
|
17229
17276
|
projectId: string | null;
|
|
17230
17277
|
/**
|
|
17231
|
-
* The selected branch name, or null when no branch is chosen
|
|
17232
|
-
* shows
|
|
17278
|
+
* The selected branch name, or null when no branch is chosen. A null value
|
|
17279
|
+
* shows the placeholder without selecting or implying a default branch.
|
|
17233
17280
|
*/
|
|
17234
17281
|
value: string | null;
|
|
17235
17282
|
/** Called with the picked branch name, or null when the pick is cleared. */
|
|
17236
17283
|
onChange(next: string | null): void;
|
|
17237
17284
|
/**
|
|
17238
|
-
* Text placed before the branch on the trigger
|
|
17239
|
-
* trigger is the branch alone
|
|
17285
|
+
* Text placed before the branch on the trigger and used as the menu heading,
|
|
17286
|
+
* e.g. "Compare with:". Omitted, the trigger is the branch alone and the menu
|
|
17287
|
+
* uses the neutral "Branches" heading.
|
|
17240
17288
|
*/
|
|
17241
17289
|
label?: string;
|
|
17242
17290
|
/**
|
|
17243
|
-
* The trigger while nothing is picked
|
|
17244
|
-
*
|
|
17245
|
-
* when the base cannot be resolved.
|
|
17291
|
+
* The complete trigger text while nothing is picked, without the label
|
|
17292
|
+
* prefix. Defaults to "Select branch".
|
|
17246
17293
|
*/
|
|
17247
17294
|
placeholder?: string;
|
|
17248
17295
|
/** Render the current selection without allowing changes. */
|
|
@@ -17917,6 +17964,8 @@ interface PluginEnvironmentProviderDefinition<R extends PluginEnvironmentProvide
|
|
|
17917
17964
|
/** Experimental per-machine availability, probed in the background for pickers and again at thread creation: see docs/api_to_audit.md. */
|
|
17918
17965
|
availability?(context: PluginEnvironmentProviderAvailabilityContext): PluginEnvironmentProviderAvailability | Promise<PluginEnvironmentProviderAvailability>;
|
|
17919
17966
|
validate?(context: PluginEnvironmentProviderValidateContext<R, S>): PluginEnvironmentValidateDecision$1 | Promise<PluginEnvironmentValidateDecision$1>;
|
|
17967
|
+
/** Pure path selection from parsed inputs. Core reuses a recorded environment on the selected host before calling create; null requests normal creation. */
|
|
17968
|
+
experimental_existingPath?(inputs: InputsValue<S>): string | null;
|
|
17920
17969
|
create(context: PluginEnvironmentProviderCreateContext<R, S>): Promise<PluginEnvironmentProviderCreateResult>;
|
|
17921
17970
|
remove(context: PluginEnvironmentProviderRemoveContext): Promise<PluginEnvironmentProviderRemoveResult>;
|
|
17922
17971
|
}
|
|
@@ -19376,6 +19425,9 @@ interface ThreadsArea {
|
|
|
19376
19425
|
tabs: ThreadTabsArea;
|
|
19377
19426
|
context(args: ThreadStatusArgs): Promise<ThreadContextResult>;
|
|
19378
19427
|
timeline(args: ThreadTimelineArgs): Promise<ThreadTimelineResult>;
|
|
19428
|
+
saveImageMetadata(args: ThreadImageMetadata & ThreadStatusArgs): Promise<{
|
|
19429
|
+
ok: true;
|
|
19430
|
+
}>;
|
|
19379
19431
|
timelineTurnSummaryDetails(args: ThreadTimelineTurnSummaryDetailsArgs): Promise<ThreadTimelineTurnSummaryDetailsResult>;
|
|
19380
19432
|
storageFiles(args: ThreadStorageFilesArgs): Promise<ThreadStorageFilesResult>;
|
|
19381
19433
|
storageLocation(args: ThreadStatusArgs): Promise<ThreadStorageLocationResult>;
|
|
@@ -159,6 +159,12 @@ function parseRegions(kind, registration, onRejected) {
|
|
|
159
159
|
"description",
|
|
160
160
|
entry?.description
|
|
161
161
|
);
|
|
162
|
+
const sendMenu = entry?.experimental_sendMenu;
|
|
163
|
+
if (sendMenu !== void 0 && typeof sendMenu !== "boolean") {
|
|
164
|
+
throw new Error(
|
|
165
|
+
`${entryKind}: "experimental_sendMenu" must be a boolean when set`
|
|
166
|
+
);
|
|
167
|
+
}
|
|
162
168
|
const disabled = entry?.disabled;
|
|
163
169
|
if (disabled !== void 0 && typeof disabled !== "boolean" && typeof disabled !== "function") {
|
|
164
170
|
throw new Error(
|
|
@@ -168,6 +174,7 @@ function parseRegions(kind, registration, onRejected) {
|
|
|
168
174
|
return {
|
|
169
175
|
id,
|
|
170
176
|
label: requireNonEmptyString(entryKind, "label", entry?.label),
|
|
177
|
+
...sendMenu !== void 0 ? { experimental_sendMenu: sendMenu } : {},
|
|
171
178
|
...icon !== void 0 ? { icon } : {},
|
|
172
179
|
...description !== void 0 ? { description } : {},
|
|
173
180
|
...disabled !== void 0 ? {
|
|
@@ -1983,6 +1983,12 @@ function validatePluginEnvironmentProviderDeclaration(declaration) {
|
|
|
1983
1983
|
declaration.availability,
|
|
1984
1984
|
"availability"
|
|
1985
1985
|
);
|
|
1986
|
+
assertOptionalFunction(
|
|
1987
|
+
"environment provider",
|
|
1988
|
+
id,
|
|
1989
|
+
declaration.experimental_existingPath,
|
|
1990
|
+
"experimental_existingPath"
|
|
1991
|
+
);
|
|
1986
1992
|
return {
|
|
1987
1993
|
id,
|
|
1988
1994
|
displayName,
|
|
@@ -1993,6 +1999,7 @@ function validatePluginEnvironmentProviderDeclaration(declaration) {
|
|
|
1993
1999
|
inputsJsonSchema: inputs === null ? null : inputs.jsonSchema,
|
|
1994
2000
|
availability: declaration.availability ?? null,
|
|
1995
2001
|
validate: declaration.validate ?? null,
|
|
2002
|
+
experimental_existingPath: declaration.experimental_existingPath ?? null,
|
|
1996
2003
|
create: declaration.create,
|
|
1997
2004
|
remove: declaration.remove,
|
|
1998
2005
|
policy: environmentProviderPolicySchema.parse(declaration.policy ?? {})
|
|
@@ -13902,6 +13902,12 @@ function parseRegions(kind, registration, onRejected) {
|
|
|
13902
13902
|
"description",
|
|
13903
13903
|
entry?.description
|
|
13904
13904
|
);
|
|
13905
|
+
const sendMenu = entry?.experimental_sendMenu;
|
|
13906
|
+
if (sendMenu !== void 0 && typeof sendMenu !== "boolean") {
|
|
13907
|
+
throw new Error(
|
|
13908
|
+
`${entryKind}: "experimental_sendMenu" must be a boolean when set`
|
|
13909
|
+
);
|
|
13910
|
+
}
|
|
13905
13911
|
const disabled = entry?.disabled;
|
|
13906
13912
|
if (disabled !== void 0 && typeof disabled !== "boolean" && typeof disabled !== "function") {
|
|
13907
13913
|
throw new Error(
|
|
@@ -13911,6 +13917,7 @@ function parseRegions(kind, registration, onRejected) {
|
|
|
13911
13917
|
return {
|
|
13912
13918
|
id,
|
|
13913
13919
|
label: requireNonEmptyString(entryKind, "label", entry?.label),
|
|
13920
|
+
...sendMenu !== void 0 ? { experimental_sendMenu: sendMenu } : {},
|
|
13914
13921
|
...icon !== void 0 ? { icon } : {},
|
|
13915
13922
|
...description !== void 0 ? { description } : {},
|
|
13916
13923
|
...disabled !== void 0 ? {
|
|
@@ -9277,7 +9277,7 @@ async function handleFsWriteTextFile(session, params, responder) {
|
|
|
9277
9277
|
...oldText === void 0 ? {} : { oldText },
|
|
9278
9278
|
content: parsed.data.content
|
|
9279
9279
|
});
|
|
9280
|
-
responder.result(
|
|
9280
|
+
responder.result({});
|
|
9281
9281
|
} catch (error) {
|
|
9282
9282
|
responder.error(
|
|
9283
9283
|
-32603,
|
package/dist/testing/app.js
CHANGED
|
@@ -182,6 +182,12 @@ function parseRegions(kind, registration, onRejected) {
|
|
|
182
182
|
"description",
|
|
183
183
|
entry?.description
|
|
184
184
|
);
|
|
185
|
+
const sendMenu = entry?.experimental_sendMenu;
|
|
186
|
+
if (sendMenu !== void 0 && typeof sendMenu !== "boolean") {
|
|
187
|
+
throw new Error(
|
|
188
|
+
`${entryKind}: "experimental_sendMenu" must be a boolean when set`
|
|
189
|
+
);
|
|
190
|
+
}
|
|
185
191
|
const disabled = entry?.disabled;
|
|
186
192
|
if (disabled !== void 0 && typeof disabled !== "boolean" && typeof disabled !== "function") {
|
|
187
193
|
throw new Error(
|
|
@@ -191,6 +197,7 @@ function parseRegions(kind, registration, onRejected) {
|
|
|
191
197
|
return {
|
|
192
198
|
id,
|
|
193
199
|
label: requireNonEmptyString(entryKind, "label", entry?.label),
|
|
200
|
+
...sendMenu !== void 0 ? { experimental_sendMenu: sendMenu } : {},
|
|
194
201
|
...icon !== void 0 ? { icon } : {},
|
|
195
202
|
...description !== void 0 ? { description } : {},
|
|
196
203
|
...disabled !== void 0 ? {
|
|
@@ -15157,7 +15164,7 @@ function TestBranchPicker({
|
|
|
15157
15164
|
"input",
|
|
15158
15165
|
{
|
|
15159
15166
|
"aria-label": label ?? "Branch",
|
|
15160
|
-
placeholder: placeholder ?? "",
|
|
15167
|
+
placeholder: placeholder ?? "Select branch",
|
|
15161
15168
|
disabled: inert,
|
|
15162
15169
|
value: value ?? "",
|
|
15163
15170
|
onChange: (event) => {
|
package/dist/testing/index.js
CHANGED
|
@@ -2008,6 +2008,12 @@ function validatePluginEnvironmentProviderDeclaration(declaration) {
|
|
|
2008
2008
|
declaration.availability,
|
|
2009
2009
|
"availability"
|
|
2010
2010
|
);
|
|
2011
|
+
assertOptionalFunction(
|
|
2012
|
+
"environment provider",
|
|
2013
|
+
id,
|
|
2014
|
+
declaration.experimental_existingPath,
|
|
2015
|
+
"experimental_existingPath"
|
|
2016
|
+
);
|
|
2011
2017
|
return {
|
|
2012
2018
|
id,
|
|
2013
2019
|
displayName,
|
|
@@ -2018,6 +2024,7 @@ function validatePluginEnvironmentProviderDeclaration(declaration) {
|
|
|
2018
2024
|
inputsJsonSchema: inputs === null ? null : inputs.jsonSchema,
|
|
2019
2025
|
availability: declaration.availability ?? null,
|
|
2020
2026
|
validate: declaration.validate ?? null,
|
|
2027
|
+
experimental_existingPath: declaration.experimental_existingPath ?? null,
|
|
2021
2028
|
create: declaration.create,
|
|
2022
2029
|
remove: declaration.remove,
|
|
2023
2030
|
policy: environmentProviderPolicySchema.parse(declaration.policy ?? {})
|