@get-bb/plugin-sdk 0.5.8 → 0.5.15
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 +234 -25
- package/bundled-types/bb-plugin-sdk-internal-plugin-app-collector.d.ts +2 -1
- package/bundled-types/bb-plugin-sdk-testing-app.d.ts +29 -2
- package/bundled-types/bb-plugin-sdk-testing.d.ts +6 -0
- package/bundled-types/bb-plugin-sdk.d.ts +240 -24
- package/dist/app.js +6 -0
- package/dist/internal/plugin-app-collector.js +11 -0
- package/dist/provider-bridge-acp.js +368 -196
- package/dist/testing/app.js +87 -0
- package/dist/testing/index.js +18 -0
- package/package.json +1 -1
|
@@ -149,7 +149,7 @@ declare const appSettingsUpdateSchema: z$1.ZodUnion<readonly [z$1.ZodObject<{
|
|
|
149
149
|
}, z$1.core.$strict>]>;
|
|
150
150
|
type AppSettingsUpdate = z$1.infer<typeof appSettingsUpdateSchema>;
|
|
151
151
|
|
|
152
|
-
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"];
|
|
152
|
+
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.headerProvider", "sidebar.threadListProvider"];
|
|
153
153
|
type UiPreferenceKey = (typeof UI_PREFERENCE_KEYS)[number];
|
|
154
154
|
interface UiPreferenceDefinition<Schema extends z$1.ZodTypeAny = z$1.ZodTypeAny> {
|
|
155
155
|
schema: Schema;
|
|
@@ -191,7 +191,8 @@ declare const uiPreferenceDefinitions: {
|
|
|
191
191
|
readonly "sidebar.hiddenFooterItems": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
|
|
192
192
|
readonly "sidebar.pluginPanelOrder": UiPreferenceDefinition<z$1.ZodArray<z$1.ZodString>>;
|
|
193
193
|
readonly "sidebar.visiblePluginPanels": UiPreferenceDefinition<z$1.ZodNullable<z$1.ZodArray<z$1.ZodString>>>;
|
|
194
|
-
readonly "sidebar.navigationProvider": UiPreferenceDefinition<z$1.ZodString
|
|
194
|
+
readonly "sidebar.navigationProvider": UiPreferenceDefinition<z$1.ZodPipe<z$1.ZodString, z$1.ZodTransform<string, string>>>;
|
|
195
|
+
readonly "sidebar.headerProvider": UiPreferenceDefinition<z$1.ZodPipe<z$1.ZodString, z$1.ZodTransform<string, string>>>;
|
|
195
196
|
readonly "sidebar.threadListProvider": UiPreferenceDefinition<z$1.ZodPipe<z$1.ZodString, z$1.ZodTransform<string, string>>>;
|
|
196
197
|
};
|
|
197
198
|
type UiPreferenceValue<Key extends UiPreferenceKey> = z$1.infer<(typeof uiPreferenceDefinitions)[Key]["schema"]>;
|
|
@@ -5867,18 +5868,20 @@ declare const hostDaemonCommandRegistry: {
|
|
|
5867
5868
|
}, z$1.core.$strict>, z$1.ZodObject<{
|
|
5868
5869
|
sources: z$1.ZodArray<z$1.ZodObject<{
|
|
5869
5870
|
icon: z$1.ZodOptional<z$1.ZodString>;
|
|
5870
|
-
id: z$1.ZodEnum<{
|
|
5871
|
+
id: z$1.ZodUnion<readonly [z$1.ZodEnum<{
|
|
5871
5872
|
arc: "arc";
|
|
5872
5873
|
brave: "brave";
|
|
5873
5874
|
chrome: "chrome";
|
|
5874
5875
|
chromium: "chromium";
|
|
5876
|
+
dia: "dia";
|
|
5875
5877
|
edge: "edge";
|
|
5876
5878
|
firefox: "firefox";
|
|
5877
5879
|
helium: "helium";
|
|
5878
5880
|
opera: "opera";
|
|
5879
5881
|
safari: "safari";
|
|
5880
5882
|
vivaldi: "vivaldi";
|
|
5881
|
-
|
|
5883
|
+
zen: "zen";
|
|
5884
|
+
}>, z$1.ZodString]>;
|
|
5882
5885
|
name: z$1.ZodString;
|
|
5883
5886
|
profiles: z$1.ZodArray<z$1.ZodObject<{
|
|
5884
5887
|
cookieCount: z$1.ZodOptional<z$1.ZodNumber>;
|
|
@@ -5904,18 +5907,20 @@ declare const hostDaemonCommandRegistry: {
|
|
|
5904
5907
|
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
5905
5908
|
kind: z$1.ZodLiteral<"personal">;
|
|
5906
5909
|
}, z$1.core.$strip>], "kind">;
|
|
5907
|
-
sourceId: z$1.ZodEnum<{
|
|
5910
|
+
sourceId: z$1.ZodUnion<readonly [z$1.ZodEnum<{
|
|
5908
5911
|
arc: "arc";
|
|
5909
5912
|
brave: "brave";
|
|
5910
5913
|
chrome: "chrome";
|
|
5911
5914
|
chromium: "chromium";
|
|
5915
|
+
dia: "dia";
|
|
5912
5916
|
edge: "edge";
|
|
5913
5917
|
firefox: "firefox";
|
|
5914
5918
|
helium: "helium";
|
|
5915
5919
|
opera: "opera";
|
|
5916
5920
|
safari: "safari";
|
|
5917
5921
|
vivaldi: "vivaldi";
|
|
5918
|
-
|
|
5922
|
+
zen: "zen";
|
|
5923
|
+
}>, z$1.ZodString]>;
|
|
5919
5924
|
sourceProfileDirectory: z$1.ZodString;
|
|
5920
5925
|
type: z$1.ZodLiteral<"desktop.browser.import_cookies">;
|
|
5921
5926
|
}, z$1.core.$strict>, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
|
|
@@ -8752,18 +8757,20 @@ declare const desktopBrowserCommandSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObj
|
|
|
8752
8757
|
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
8753
8758
|
kind: z$1.ZodLiteral<"personal">;
|
|
8754
8759
|
}, z$1.core.$strip>], "kind">;
|
|
8755
|
-
sourceId: z$1.ZodEnum<{
|
|
8760
|
+
sourceId: z$1.ZodUnion<readonly [z$1.ZodEnum<{
|
|
8756
8761
|
arc: "arc";
|
|
8757
8762
|
brave: "brave";
|
|
8758
8763
|
chrome: "chrome";
|
|
8759
8764
|
chromium: "chromium";
|
|
8765
|
+
dia: "dia";
|
|
8760
8766
|
edge: "edge";
|
|
8761
8767
|
firefox: "firefox";
|
|
8762
8768
|
helium: "helium";
|
|
8763
8769
|
opera: "opera";
|
|
8764
8770
|
safari: "safari";
|
|
8765
8771
|
vivaldi: "vivaldi";
|
|
8766
|
-
|
|
8772
|
+
zen: "zen";
|
|
8773
|
+
}>, z$1.ZodString]>;
|
|
8767
8774
|
sourceProfileDirectory: z$1.ZodString;
|
|
8768
8775
|
type: z$1.ZodLiteral<"desktop.browser.import_cookies">;
|
|
8769
8776
|
}, z$1.core.$strict>], "type">;
|
|
@@ -8850,18 +8857,20 @@ declare const desktopBrowserResultSchemas: {
|
|
|
8850
8857
|
"desktop.browser.list_import_sources": z$1.ZodObject<{
|
|
8851
8858
|
sources: z$1.ZodArray<z$1.ZodObject<{
|
|
8852
8859
|
icon: z$1.ZodOptional<z$1.ZodString>;
|
|
8853
|
-
id: z$1.ZodEnum<{
|
|
8860
|
+
id: z$1.ZodUnion<readonly [z$1.ZodEnum<{
|
|
8854
8861
|
arc: "arc";
|
|
8855
8862
|
brave: "brave";
|
|
8856
8863
|
chrome: "chrome";
|
|
8857
8864
|
chromium: "chromium";
|
|
8865
|
+
dia: "dia";
|
|
8858
8866
|
edge: "edge";
|
|
8859
8867
|
firefox: "firefox";
|
|
8860
8868
|
helium: "helium";
|
|
8861
8869
|
opera: "opera";
|
|
8862
8870
|
safari: "safari";
|
|
8863
8871
|
vivaldi: "vivaldi";
|
|
8864
|
-
|
|
8872
|
+
zen: "zen";
|
|
8873
|
+
}>, z$1.ZodString]>;
|
|
8865
8874
|
name: z$1.ZodString;
|
|
8866
8875
|
profiles: z$1.ZodArray<z$1.ZodObject<{
|
|
8867
8876
|
cookieCount: z$1.ZodOptional<z$1.ZodNumber>;
|
|
@@ -14512,18 +14521,20 @@ declare const desktopBrowserImportCookiesRequestSchema: z$1.ZodObject<{
|
|
|
14512
14521
|
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
14513
14522
|
kind: z$1.ZodLiteral<"personal">;
|
|
14514
14523
|
}, z$1.core.$strip>], "kind">>;
|
|
14515
|
-
sourceId: z$1.ZodEnum<{
|
|
14524
|
+
sourceId: z$1.ZodUnion<readonly [z$1.ZodEnum<{
|
|
14516
14525
|
arc: "arc";
|
|
14517
14526
|
brave: "brave";
|
|
14518
14527
|
chrome: "chrome";
|
|
14519
14528
|
chromium: "chromium";
|
|
14529
|
+
dia: "dia";
|
|
14520
14530
|
edge: "edge";
|
|
14521
14531
|
firefox: "firefox";
|
|
14522
14532
|
helium: "helium";
|
|
14523
14533
|
opera: "opera";
|
|
14524
14534
|
safari: "safari";
|
|
14525
14535
|
vivaldi: "vivaldi";
|
|
14526
|
-
|
|
14536
|
+
zen: "zen";
|
|
14537
|
+
}>, z$1.ZodString]>;
|
|
14527
14538
|
sourceProfileDirectory: z$1.ZodString;
|
|
14528
14539
|
}, z$1.core.$strict>;
|
|
14529
14540
|
type ExperimentalDesktopBrowserHostRequest = z$1.infer<typeof desktopBrowserHostRequestSchema>;
|
|
@@ -16614,15 +16625,21 @@ type ExperimentalSidebarNavigationAction = {
|
|
|
16614
16625
|
kind: "search-threads";
|
|
16615
16626
|
} | {
|
|
16616
16627
|
kind: "open-extensions";
|
|
16628
|
+
} | {
|
|
16629
|
+
kind: "open-skills";
|
|
16617
16630
|
} | {
|
|
16618
16631
|
kind: "open-plugin-panel";
|
|
16619
16632
|
pluginId: string;
|
|
16620
16633
|
panelId: string;
|
|
16621
16634
|
};
|
|
16622
|
-
/**
|
|
16635
|
+
/**
|
|
16636
|
+
* Semantic icon identity for one sidebar navigation item. Render it with
|
|
16637
|
+
* {@link PluginSdkApp.experimental_SidebarNavigationIcon} to match bb's
|
|
16638
|
+
* artwork, including plugin branding.
|
|
16639
|
+
*/
|
|
16623
16640
|
type ExperimentalSidebarNavigationIcon = {
|
|
16624
16641
|
kind: "host";
|
|
16625
|
-
name: "extensions" | "new-thread" | "search";
|
|
16642
|
+
name: "extensions" | "new-thread" | "search" | "skills";
|
|
16626
16643
|
} | {
|
|
16627
16644
|
kind: "plugin";
|
|
16628
16645
|
pluginId: string;
|
|
@@ -16630,28 +16647,164 @@ type ExperimentalSidebarNavigationIcon = {
|
|
|
16630
16647
|
};
|
|
16631
16648
|
/** One host-owned destination or action a plugin may arrange. */
|
|
16632
16649
|
interface ExperimentalSidebarNavigationItem {
|
|
16650
|
+
/**
|
|
16651
|
+
* Arrangement key, stable across reloads: `__bb__/new-thread`,
|
|
16652
|
+
* `__bb__/search-threads`, `__bb__/extensions`, `__bb__/skills`,
|
|
16653
|
+
* `__bb__/automations`, or `<pluginId>/<panelId>`. The same keys appear in
|
|
16654
|
+
* the `sidebar.pluginPanelOrder` and `sidebar.visiblePluginPanels`
|
|
16655
|
+
* settings.
|
|
16656
|
+
*/
|
|
16633
16657
|
id: string;
|
|
16634
16658
|
label: string;
|
|
16635
16659
|
icon: ExperimentalSidebarNavigationIcon;
|
|
16636
16660
|
action: ExperimentalSidebarNavigationAction;
|
|
16637
16661
|
isDisabled: boolean;
|
|
16662
|
+
/**
|
|
16663
|
+
* False when the user hid the item from the sidebar. Draw hidden items in an
|
|
16664
|
+
* overflow menu rather than dropping them, so they stay reachable.
|
|
16665
|
+
*/
|
|
16666
|
+
isVisible: boolean;
|
|
16667
|
+
/**
|
|
16668
|
+
* A plugin panel remembered from the last session whose bundle has not
|
|
16669
|
+
* registered yet. Activating it does nothing until it loads.
|
|
16670
|
+
*/
|
|
16671
|
+
isLoading: boolean;
|
|
16672
|
+
/**
|
|
16673
|
+
* The plugin that contributed this panel; null for bb's own items. Gates
|
|
16674
|
+
* `openDetails` and `disablePlugin`.
|
|
16675
|
+
*/
|
|
16676
|
+
pluginId: string | null;
|
|
16638
16677
|
shortcut: ExperimentalSidebarNavigationShortcut | null;
|
|
16639
|
-
|
|
16640
|
-
|
|
16641
|
-
|
|
16678
|
+
/**
|
|
16679
|
+
* The panel's `experimental_sidebarAccessory`, already wrapped in the host's
|
|
16680
|
+
* crash boundary. Null for bb's items, panels without an accessory, and on
|
|
16681
|
+
* compact viewports. Keep it within one line, about 4rem by 1.25rem.
|
|
16682
|
+
*/
|
|
16683
|
+
experimental_Accessory: ComponentType | null;
|
|
16642
16684
|
}
|
|
16643
16685
|
/** How the host should activate a sidebar navigation item. */
|
|
16644
16686
|
interface ExperimentalSidebarNavigationActivationOptions {
|
|
16645
16687
|
openInSplit: boolean;
|
|
16646
16688
|
}
|
|
16647
|
-
/**
|
|
16648
|
-
|
|
16689
|
+
/**
|
|
16690
|
+
* Host behavior for sidebar navigation items (see
|
|
16691
|
+
* {@link ExperimentalSidebarNavigationState}). Unknown item ids are ignored.
|
|
16692
|
+
* Calls made after the calling component unmounts do nothing.
|
|
16693
|
+
*/
|
|
16694
|
+
interface ExperimentalSidebarNavigationActions {
|
|
16695
|
+
/**
|
|
16696
|
+
* Run the item's host behavior and close the mobile sidebar drawer.
|
|
16697
|
+
* `openInSplit` is ignored where splits are unavailable, and disabled or
|
|
16698
|
+
* loading items do nothing.
|
|
16699
|
+
*/
|
|
16700
|
+
activate(itemId: string, options: ExperimentalSidebarNavigationActivationOptions): void;
|
|
16701
|
+
/** Hide or show one item. Persists to `sidebar.visiblePluginPanels`. */
|
|
16702
|
+
setVisible(itemId: string, isVisible: boolean): void;
|
|
16703
|
+
/**
|
|
16704
|
+
* Save a new order. Pass item ids in the order you want; unknown ids are
|
|
16705
|
+
* dropped and ids you leave out keep their relative order after the ones
|
|
16706
|
+
* you pass. Persists to `sidebar.pluginPanelOrder`.
|
|
16707
|
+
*/
|
|
16708
|
+
setOrder(itemIds: readonly string[]): void;
|
|
16709
|
+
/** Open bb's customize editor, which reorders and hides items. */
|
|
16710
|
+
openCustomize(): void;
|
|
16711
|
+
/** Open the owning plugin's details. Does nothing when `pluginId` is null. */
|
|
16712
|
+
openDetails(itemId: string): void;
|
|
16713
|
+
/**
|
|
16714
|
+
* Disable the owning plugin, leave its panel if it is open, and show a
|
|
16715
|
+
* toast. Rejects after the host's error toast when disabling fails. Does
|
|
16716
|
+
* nothing when `pluginId` is null.
|
|
16717
|
+
*/
|
|
16718
|
+
disablePlugin(itemId: string): Promise<void>;
|
|
16719
|
+
}
|
|
16720
|
+
/** What {@link PluginSdkApp.experimental_useSidebarNavigation} returns. */
|
|
16721
|
+
interface ExperimentalSidebarNavigationState {
|
|
16722
|
+
/** Every item in the user's saved order, visible and hidden. */
|
|
16649
16723
|
items: readonly ExperimentalSidebarNavigationItem[];
|
|
16724
|
+
/** The item whose destination the route currently shows, or null. */
|
|
16650
16725
|
activeItemId: string | null;
|
|
16726
|
+
/**
|
|
16727
|
+
* True while the user holds the app command modifier, when bb's own rows
|
|
16728
|
+
* reveal their `shortcut` labels. Show yours at the same time.
|
|
16729
|
+
*/
|
|
16730
|
+
isShortcutModifierHeld: boolean;
|
|
16731
|
+
actions: ExperimentalSidebarNavigationActions;
|
|
16732
|
+
}
|
|
16733
|
+
/**
|
|
16734
|
+
* Per-item drag-to-split support (see
|
|
16735
|
+
* {@link PluginSdkApp.experimental_useSidebarNavigationSplit}). Same contract
|
|
16736
|
+
* as {@link PluginSidebarThreadSplit}.
|
|
16737
|
+
*/
|
|
16738
|
+
interface ExperimentalSidebarNavigationSplit {
|
|
16739
|
+
/**
|
|
16740
|
+
* Spread onto the item's interactive element. Empty when the item cannot
|
|
16741
|
+
* open in a pane, so spreading it is always safe.
|
|
16742
|
+
*/
|
|
16743
|
+
splitProps: {
|
|
16744
|
+
onPointerDown?: (event: react.PointerEvent<HTMLElement>) => void;
|
|
16745
|
+
};
|
|
16746
|
+
/**
|
|
16747
|
+
* False for items that cannot open in a pane (Search, Plugins, Skills), on
|
|
16748
|
+
* compact viewports, and when splits are unavailable.
|
|
16749
|
+
*/
|
|
16750
|
+
isAvailable: boolean;
|
|
16751
|
+
/** Where this item's destination sits in the split layout, or null. */
|
|
16752
|
+
layout: {
|
|
16753
|
+
panes: readonly PluginSidebarSplitPane[];
|
|
16754
|
+
} | null;
|
|
16755
|
+
}
|
|
16756
|
+
/** Options for {@link PluginSdkApp.experimental_useSidebarNavigationSplit}. */
|
|
16757
|
+
interface ExperimentalSidebarNavigationSplitOptions {
|
|
16758
|
+
/**
|
|
16759
|
+
* `sidebar` (the default) engages the drag once the pointer leaves the
|
|
16760
|
+
* sidebar, so a row list with its own drag-to-reorder keeps working.
|
|
16761
|
+
* `distance` engages after a short movement in any direction; use it for
|
|
16762
|
+
* rows inside a menu or popover that covers the main area.
|
|
16763
|
+
*/
|
|
16764
|
+
activation?: "distance" | "sidebar";
|
|
16765
|
+
/** Called when the drag engages, for example to close the menu the row is in. */
|
|
16766
|
+
onDragStart?: () => void;
|
|
16767
|
+
}
|
|
16768
|
+
/** Props for {@link PluginSdkApp.experimental_SidebarNavigationIcon}. */
|
|
16769
|
+
interface ExperimentalSidebarNavigationIconProps {
|
|
16770
|
+
icon: ExperimentalSidebarNavigationIcon;
|
|
16771
|
+
className?: string;
|
|
16772
|
+
}
|
|
16773
|
+
/**
|
|
16774
|
+
* Props passed to an `experimental_sidebarNavigation` component. Read the
|
|
16775
|
+
* items and their actions with
|
|
16776
|
+
* {@link PluginSdkApp.experimental_useSidebarNavigation}.
|
|
16777
|
+
*/
|
|
16778
|
+
interface ExperimentalSidebarNavigationProps {
|
|
16651
16779
|
isCompactViewport: boolean;
|
|
16652
|
-
|
|
16780
|
+
/**
|
|
16781
|
+
* Renders bb's bundled Navigation plugin, or nothing while it is disabled.
|
|
16782
|
+
* Kept for plugins written before `experimental_useSidebarNavigation`;
|
|
16783
|
+
* render items from that hook instead. Scheduled for removal.
|
|
16784
|
+
*
|
|
16785
|
+
* @deprecated
|
|
16786
|
+
*/
|
|
16653
16787
|
experimental_Original: ComponentType;
|
|
16654
16788
|
}
|
|
16789
|
+
/**
|
|
16790
|
+
* Props passed to an `experimental_sidebarHeader` component, rendered in the
|
|
16791
|
+
* sidebar's header row between the sidebar toggle (and the macOS window
|
|
16792
|
+
* controls) and bb's back and forward buttons.
|
|
16793
|
+
*/
|
|
16794
|
+
interface ExperimentalSidebarHeaderProps {
|
|
16795
|
+
/**
|
|
16796
|
+
* Width in px of the space the component may use, updated when the sidebar
|
|
16797
|
+
* resizes or the window chrome changes. It can be smaller than
|
|
16798
|
+
* `controlSize` in a narrow sidebar.
|
|
16799
|
+
*/
|
|
16800
|
+
width: number;
|
|
16801
|
+
/**
|
|
16802
|
+
* Width and height in px of the header's own buttons, equal to the
|
|
16803
|
+
* `--bb-sidebar-control-size` CSS variable. Size your controls to match.
|
|
16804
|
+
*/
|
|
16805
|
+
controlSize: number;
|
|
16806
|
+
isCompactViewport: boolean;
|
|
16807
|
+
}
|
|
16655
16808
|
/**
|
|
16656
16809
|
* Props passed to an `experimental_threadList` component — the sidebar's
|
|
16657
16810
|
* scrolling thread area, replaced wholesale by one plugin.
|
|
@@ -17752,7 +17905,14 @@ interface PluginThreadListRegistration {
|
|
|
17752
17905
|
description?: string;
|
|
17753
17906
|
component: ComponentType<PluginThreadListProps>;
|
|
17754
17907
|
}
|
|
17755
|
-
/**
|
|
17908
|
+
/**
|
|
17909
|
+
* Replace the navigation controls above the sidebar thread list. Exclusive:
|
|
17910
|
+
* the user picks one provider under Settings → Appearance → Navigation, and
|
|
17911
|
+
* bb ships its own rows as the bundled Navigation plugin
|
|
17912
|
+
* (`navigation/navigation`, the default). A picked provider that is disabled
|
|
17913
|
+
* or removed falls back to Navigation; a crashing provider is replaced by a
|
|
17914
|
+
* placeholder with a Reload button.
|
|
17915
|
+
*/
|
|
17756
17916
|
interface ExperimentalSidebarNavigationRegistration {
|
|
17757
17917
|
/** Unique within the plugin; letters, digits, `-`, `_`. */
|
|
17758
17918
|
id: string;
|
|
@@ -17762,6 +17922,23 @@ interface ExperimentalSidebarNavigationRegistration {
|
|
|
17762
17922
|
description?: string;
|
|
17763
17923
|
component: ComponentType<ExperimentalSidebarNavigationProps>;
|
|
17764
17924
|
}
|
|
17925
|
+
/**
|
|
17926
|
+
* Render a component in the sidebar's header row, between the sidebar toggle
|
|
17927
|
+
* and bb's back and forward buttons. Exclusive: the user picks at most one
|
|
17928
|
+
* header under Settings → Appearance, and by default the header shows only
|
|
17929
|
+
* bb's own controls. Content is clipped to the row, so it cannot move the
|
|
17930
|
+
* thread list or bb's controls. On macOS the empty space keeps dragging the
|
|
17931
|
+
* window; buttons, links, and inputs do not.
|
|
17932
|
+
*/
|
|
17933
|
+
interface ExperimentalSidebarHeaderRegistration {
|
|
17934
|
+
/** Unique within the plugin; letters, digits, `-`, `_`. */
|
|
17935
|
+
id: string;
|
|
17936
|
+
/** Label shown in Settings → Appearance and capability details. */
|
|
17937
|
+
title: string;
|
|
17938
|
+
/** Optional one-line description shown with the provider choice. */
|
|
17939
|
+
description?: string;
|
|
17940
|
+
component: ComponentType<ExperimentalSidebarHeaderProps>;
|
|
17941
|
+
}
|
|
17765
17942
|
/**
|
|
17766
17943
|
* Register this plugin as a viewer/editor for file extensions. By default,
|
|
17767
17944
|
* matching files render the first applicable opener in deterministic slot
|
|
@@ -18166,6 +18343,12 @@ interface PluginAppSlots {
|
|
|
18166
18343
|
sidebarFooterAction(registration: PluginSidebarFooterActionRegistration): void;
|
|
18167
18344
|
/** Replace the bounded sidebar navigation controls. */
|
|
18168
18345
|
experimental_sidebarNavigation(registration: ExperimentalSidebarNavigationRegistration): void;
|
|
18346
|
+
/**
|
|
18347
|
+
* Render a component in the sidebar header row (see
|
|
18348
|
+
* {@link ExperimentalSidebarHeaderRegistration}). Experimental: see
|
|
18349
|
+
* docs/api_to_audit.md.
|
|
18350
|
+
*/
|
|
18351
|
+
experimental_sidebarHeader(registration: ExperimentalSidebarHeaderRegistration): void;
|
|
18169
18352
|
/**
|
|
18170
18353
|
* Replace the sidebar's thread list (see
|
|
18171
18354
|
* {@link PluginThreadListRegistration}). Experimental: see
|
|
@@ -19221,6 +19404,27 @@ interface PluginSdkApp {
|
|
|
19221
19404
|
* Experimental: see docs/api_to_audit.md.
|
|
19222
19405
|
*/
|
|
19223
19406
|
experimental_useSidebarThreadSplit(threadId: string): PluginSidebarThreadSplit;
|
|
19407
|
+
/**
|
|
19408
|
+
* The sidebar navigation items in the user's saved order, the active item,
|
|
19409
|
+
* and the host actions that activate, hide, reorder, and customize them
|
|
19410
|
+
* (see {@link ExperimentalSidebarNavigationState}). One model shared by
|
|
19411
|
+
* every caller in the sidebar. Items keep their identity while unchanged.
|
|
19412
|
+
* Outside the sidebar it returns no items and actions that do nothing.
|
|
19413
|
+
* Experimental: see docs/api_to_audit.md.
|
|
19414
|
+
*/
|
|
19415
|
+
experimental_useSidebarNavigation(): ExperimentalSidebarNavigationState;
|
|
19416
|
+
/**
|
|
19417
|
+
* Per-item drag-to-split support for navigation items (see
|
|
19418
|
+
* {@link ExperimentalSidebarNavigationSplit}). Call it once per rendered
|
|
19419
|
+
* item. Experimental: see docs/api_to_audit.md.
|
|
19420
|
+
*/
|
|
19421
|
+
experimental_useSidebarNavigationSplit(itemId: string, options?: ExperimentalSidebarNavigationSplitOptions): ExperimentalSidebarNavigationSplit;
|
|
19422
|
+
/**
|
|
19423
|
+
* bb's artwork for a navigation item's icon: bb's glyphs for its own items,
|
|
19424
|
+
* and the contributing plugin's branding for plugin panels. Experimental:
|
|
19425
|
+
* see docs/api_to_audit.md.
|
|
19426
|
+
*/
|
|
19427
|
+
experimental_SidebarNavigationIcon: ComponentType<ExperimentalSidebarNavigationIconProps>;
|
|
19224
19428
|
/**
|
|
19225
19429
|
* Whether the composer holds an unsent draft for one thread (see
|
|
19226
19430
|
* {@link PluginSidebarThreadDraftState}). Per row, because a draft is
|
|
@@ -19349,8 +19553,10 @@ interface PluginSdkApp {
|
|
|
19349
19553
|
*/
|
|
19350
19554
|
experimental_BranchPicker: ComponentType<BranchPickerProps>;
|
|
19351
19555
|
/**
|
|
19352
|
-
* Search and refresh the branch list for one project source.
|
|
19353
|
-
*
|
|
19556
|
+
* Search and refresh the branch list for one project source. `query` is
|
|
19557
|
+
* debounced before it reaches the host, so a control can pass it on every
|
|
19558
|
+
* keystroke; filtering the returned lists stays the caller's job.
|
|
19559
|
+
* Experimental: see docs/api_to_audit.md.
|
|
19354
19560
|
*/
|
|
19355
19561
|
experimental_useBranches(args: UseBranchesArgs): BranchesState;
|
|
19356
19562
|
/**
|
|
@@ -19408,6 +19614,9 @@ declare const experimental_useSidebarThreads: (options?: {
|
|
|
19408
19614
|
declare const experimental_useSidebarThreadActions: () => PluginSidebarThreadActions;
|
|
19409
19615
|
declare const experimental_useSidebarThreadPullRequest: (threadId: string) => PluginSidebarThreadPullRequestState;
|
|
19410
19616
|
declare const experimental_useSidebarThreadSplit: (threadId: string) => PluginSidebarThreadSplit;
|
|
19617
|
+
declare const experimental_useSidebarNavigation: () => ExperimentalSidebarNavigationState;
|
|
19618
|
+
declare const experimental_useSidebarNavigationSplit: (itemId: string, options?: ExperimentalSidebarNavigationSplitOptions) => ExperimentalSidebarNavigationSplit;
|
|
19619
|
+
declare const experimental_SidebarNavigationIcon: react.ComponentType<ExperimentalSidebarNavigationIconProps>;
|
|
19411
19620
|
declare const useSidebarThreadDraft: (threadId: string) => PluginSidebarThreadDraftState;
|
|
19412
19621
|
declare const useSidebarThreadDraftIds: () => ReadonlySet<string>;
|
|
19413
19622
|
declare const useSidebarThreadRowStatus: (threadId: string) => PluginSidebarThreadRowStatus | null;
|
|
@@ -19420,5 +19629,5 @@ declare const useSdk: () => PluginBrowserBbSdk;
|
|
|
19420
19629
|
declare const experimental_useProviders: () => PluginProvidersState;
|
|
19421
19630
|
declare const experimental_useCodeTheme: () => PluginCodeThemeState;
|
|
19422
19631
|
|
|
19423
|
-
export { Markdown, ThreadChat, ThreadTitle, UrlLink, definePluginApp, experimental_BranchPicker, experimental_Diff, experimental_FileLink, experimental_Icon, experimental_NewThreadComposer, experimental_PermissionModePicker, experimental_ProviderIcon, experimental_ProviderModelPicker, experimental_SourceCode, experimental_useAppPanel, experimental_useBranches, experimental_useCheckoutState, experimental_useCodeTheme, experimental_useFixedTabTarget, experimental_useProviders, experimental_useSidebarThreadActions, experimental_useSidebarThreadPullRequest, experimental_useSidebarThreadSplit, experimental_useSidebarThreads, useBbContext, useBbNavigate, useComposer, useComposerView, useEnvironmentProviders, useRealtime, useRealtimeConnectionState, useRpc, useSdk, useSettings, useSidebarSplitLayout, useSidebarThreadDraft, useSidebarThreadDraftIds, useSidebarThreadRowStatus, useSidebarThreadRowStatuses, useSidebarThreadShortcut };
|
|
19424
|
-
export type { BbContext, BbNavigate, BranchPickerProps, BranchesState, CheckoutState, CodeOverflowMode, ComposerCustomization, ComposerPlusMenuItem, ComposerRichTextSpec, ComposerStructuredDraft, ComposerView, DiffProps, DiffViewMode, ExperimentalAppIcons, ExperimentalAppOverlayProps, ExperimentalAppOverlayRegistration, ExperimentalAppPanel, ExperimentalAppPanelSurface, ExperimentalComposerSelection, ExperimentalComposerSubmitOptions, ExperimentalDiffFileContent, ExperimentalDiffFullFileContents, ExperimentalFileLinkProps, ExperimentalFileLocation, ExperimentalFileOpenOptions, ExperimentalFixedTabTargetContract, ExperimentalFixedTabTargetState, ExperimentalIconProps, ExperimentalIconRegistration, ExperimentalLiveFileTarget, ExperimentalOpenFixedTabOptions, ExperimentalPermissionModePickerProps, ExperimentalPluginBrowserPage, ExperimentalPluginBrowserPageEvaluateOptions, ExperimentalPluginBrowserPageWorld, ExperimentalPluginBrowserToolbarActionProps, ExperimentalPluginBrowserToolbarActionRegistration, ExperimentalPluginFixedTabReference, ExperimentalProviderIconProps, ExperimentalProviderModelPickerProps, ExperimentalProviderModelPickerRouting, ExperimentalProviderModelPickerValue, ExperimentalSidebarFooter, ExperimentalSidebarFooterActionContext, ExperimentalSidebarFooterActionRegistration, ExperimentalSidebarFooterDisclosureController, ExperimentalSidebarFooterDisclosureProps, ExperimentalSidebarFooterDisclosureRegistration, ExperimentalSidebarFooterItemBase, ExperimentalSidebarFooterItemRegistration, ExperimentalSidebarNavigationAction, ExperimentalSidebarNavigationActivationOptions, ExperimentalSidebarNavigationIcon, ExperimentalSidebarNavigationItem, ExperimentalSidebarNavigationProps, ExperimentalSidebarNavigationRegistration, ExperimentalSidebarNavigationShortcut, JsonValue$1 as JsonValue, MarkdownProps, NewThreadComposerProps, NewThreadRequest, PluginAppBuilder, PluginAppCommands, PluginAppComposer, PluginAppContentScripts, PluginAppDefinition, PluginAppSetup, PluginAppSlots, PluginBoundThreadsArea, PluginBrowserBbSdk, PluginCodeThemeData, PluginCodeThemeState, PluginCodeThemeTokenRule, PluginCommandContext, PluginCommandRegistration, PluginCommandShortcut, PluginComposerApi, PluginComposerMention, PluginComposerScope, PluginComposerTextEffect, PluginComposerThreadRowStatus, PluginContentScriptContext, PluginContentScriptDisposer, PluginContentScriptRegistration, PluginDiffRendererProps, PluginDiffRendererRegistration, PluginEnvironmentProvider, PluginEnvironmentProviderInputsChange, PluginEnvironmentProviderInputsProps, PluginEnvironmentProviderInputsRegistration, PluginEnvironmentProvidersState, PluginFileOpenerProps, PluginFileOpenerRegistration, PluginFileOpenerSource, PluginFixedTabDeclaration, PluginFixedTabRegistration, PluginHomepageSectionProps, PluginHomepageSectionRegistration, PluginMachineProviderInputsChange, PluginMachineProviderInputsProps, PluginMachineProviderInputsRegistration, PluginMessageActionContext, PluginMessageActionRegistration, PluginMessageDirectiveMessage, PluginMessageDirectiveOpenWorkspaceFile, PluginMessageDirectiveProps, PluginMessageDirectiveRegistration, PluginNavPanelProps, PluginNavPanelRegistration, PluginNewThreadPanelActionContext, PluginNewThreadPanelActionRegistration, PluginNewThreadPanelProps, PluginPanelActionOpenOptions, PluginPendingInteractionProps, PluginPendingInteractionRegistration, PluginPendingInteractionView, PluginProviderIconRegistration, PluginProvidersState, PluginRealtimeConnectionState, PluginRpcCallArgs, PluginRpcClient, PluginRpcContract, PluginRpcError, PluginRpcErrorCode, PluginRpcHandlers, PluginRpcIssuePathSegment, PluginRpcMethodContract, PluginRpcResult, PluginRpcValidationIssue, PluginSdkApp, PluginSettingsSectionProps, PluginSettingsSectionRegistration, PluginSettingsState, PluginSidebarFooterActionContext, PluginSidebarFooterActionProps, PluginSidebarFooterActionRegistration, PluginSidebarProject, PluginSidebarPullRequest, PluginSidebarSection, PluginSidebarSplitLayout, PluginSidebarSplitPane, PluginSidebarThread, PluginSidebarThreadActions, PluginSidebarThreadActivity, PluginSidebarThreadDraftState, PluginSidebarThreadIndicator, PluginSidebarThreadPullRequestState, PluginSidebarThreadRowStatus, PluginSidebarThreadShortcut, PluginSidebarThreadSplit, PluginSidebarThreadsState, PluginSourceCodeRendererProps, PluginSourceCodeRendererRegistration, PluginTargetedPanelActionOpenOptions, PluginThreadHeaderActionProps, PluginThreadHeaderActionRegistration, PluginThreadListProps, PluginThreadListRegistration, PluginThreadPanelActionContext, PluginThreadPanelActionRegistration, PluginThreadPanelProps, PluginThreadTitleProps, PluginTimelineRendererProps, PluginTimelineRendererRegistration, PluginTimelineRendererRow, PluginTimelineRowPresentation, PluginTimelineRowStatus, ReadonlyJsonValue, SourceCodeLineRange, SourceCodeProps, StandardSchemaV1, StandardSchemaV1InferInput, StandardSchemaV1InferOutput, StandardSchemaV1Issue, StandardSchemaV1Result, ThreadChatMessageAction, ThreadChatMessageReference, ThreadChatProps, UrlLinkProps, UseBranchesArgs, UseCheckoutStateArgs };
|
|
19632
|
+
export { Markdown, ThreadChat, ThreadTitle, UrlLink, definePluginApp, experimental_BranchPicker, experimental_Diff, experimental_FileLink, experimental_Icon, experimental_NewThreadComposer, experimental_PermissionModePicker, experimental_ProviderIcon, experimental_ProviderModelPicker, experimental_SidebarNavigationIcon, experimental_SourceCode, experimental_useAppPanel, experimental_useBranches, experimental_useCheckoutState, experimental_useCodeTheme, experimental_useFixedTabTarget, experimental_useProviders, experimental_useSidebarNavigation, experimental_useSidebarNavigationSplit, experimental_useSidebarThreadActions, experimental_useSidebarThreadPullRequest, experimental_useSidebarThreadSplit, experimental_useSidebarThreads, useBbContext, useBbNavigate, useComposer, useComposerView, useEnvironmentProviders, useRealtime, useRealtimeConnectionState, useRpc, useSdk, useSettings, useSidebarSplitLayout, useSidebarThreadDraft, useSidebarThreadDraftIds, useSidebarThreadRowStatus, useSidebarThreadRowStatuses, useSidebarThreadShortcut };
|
|
19633
|
+
export type { BbContext, BbNavigate, BranchPickerProps, BranchesState, CheckoutState, CodeOverflowMode, ComposerCustomization, ComposerPlusMenuItem, ComposerRichTextSpec, ComposerStructuredDraft, ComposerView, DiffProps, DiffViewMode, ExperimentalAppIcons, ExperimentalAppOverlayProps, ExperimentalAppOverlayRegistration, ExperimentalAppPanel, ExperimentalAppPanelSurface, ExperimentalComposerSelection, ExperimentalComposerSubmitOptions, ExperimentalDiffFileContent, ExperimentalDiffFullFileContents, ExperimentalFileLinkProps, ExperimentalFileLocation, ExperimentalFileOpenOptions, ExperimentalFixedTabTargetContract, ExperimentalFixedTabTargetState, ExperimentalIconProps, ExperimentalIconRegistration, ExperimentalLiveFileTarget, ExperimentalOpenFixedTabOptions, ExperimentalPermissionModePickerProps, ExperimentalPluginBrowserPage, ExperimentalPluginBrowserPageEvaluateOptions, ExperimentalPluginBrowserPageWorld, ExperimentalPluginBrowserToolbarActionProps, ExperimentalPluginBrowserToolbarActionRegistration, ExperimentalPluginFixedTabReference, ExperimentalProviderIconProps, ExperimentalProviderModelPickerProps, ExperimentalProviderModelPickerRouting, ExperimentalProviderModelPickerValue, ExperimentalSidebarFooter, ExperimentalSidebarFooterActionContext, ExperimentalSidebarFooterActionRegistration, ExperimentalSidebarFooterDisclosureController, ExperimentalSidebarFooterDisclosureProps, ExperimentalSidebarFooterDisclosureRegistration, ExperimentalSidebarFooterItemBase, ExperimentalSidebarFooterItemRegistration, ExperimentalSidebarHeaderProps, ExperimentalSidebarHeaderRegistration, ExperimentalSidebarNavigationAction, ExperimentalSidebarNavigationActions, ExperimentalSidebarNavigationActivationOptions, ExperimentalSidebarNavigationIcon, ExperimentalSidebarNavigationIconProps, ExperimentalSidebarNavigationItem, ExperimentalSidebarNavigationProps, ExperimentalSidebarNavigationRegistration, ExperimentalSidebarNavigationShortcut, ExperimentalSidebarNavigationSplit, ExperimentalSidebarNavigationSplitOptions, ExperimentalSidebarNavigationState, JsonValue$1 as JsonValue, MarkdownProps, NewThreadComposerProps, NewThreadRequest, PluginAppBuilder, PluginAppCommands, PluginAppComposer, PluginAppContentScripts, PluginAppDefinition, PluginAppSetup, PluginAppSlots, PluginBoundThreadsArea, PluginBrowserBbSdk, PluginCodeThemeData, PluginCodeThemeState, PluginCodeThemeTokenRule, PluginCommandContext, PluginCommandRegistration, PluginCommandShortcut, PluginComposerApi, PluginComposerMention, PluginComposerScope, PluginComposerTextEffect, PluginComposerThreadRowStatus, PluginContentScriptContext, PluginContentScriptDisposer, PluginContentScriptRegistration, PluginDiffRendererProps, PluginDiffRendererRegistration, PluginEnvironmentProvider, PluginEnvironmentProviderInputsChange, PluginEnvironmentProviderInputsProps, PluginEnvironmentProviderInputsRegistration, PluginEnvironmentProvidersState, PluginFileOpenerProps, PluginFileOpenerRegistration, PluginFileOpenerSource, PluginFixedTabDeclaration, PluginFixedTabRegistration, PluginHomepageSectionProps, PluginHomepageSectionRegistration, PluginMachineProviderInputsChange, PluginMachineProviderInputsProps, PluginMachineProviderInputsRegistration, PluginMessageActionContext, PluginMessageActionRegistration, PluginMessageDirectiveMessage, PluginMessageDirectiveOpenWorkspaceFile, PluginMessageDirectiveProps, PluginMessageDirectiveRegistration, PluginNavPanelProps, PluginNavPanelRegistration, PluginNewThreadPanelActionContext, PluginNewThreadPanelActionRegistration, PluginNewThreadPanelProps, PluginPanelActionOpenOptions, PluginPendingInteractionProps, PluginPendingInteractionRegistration, PluginPendingInteractionView, PluginProviderIconRegistration, PluginProvidersState, PluginRealtimeConnectionState, PluginRpcCallArgs, PluginRpcClient, PluginRpcContract, PluginRpcError, PluginRpcErrorCode, PluginRpcHandlers, PluginRpcIssuePathSegment, PluginRpcMethodContract, PluginRpcResult, PluginRpcValidationIssue, PluginSdkApp, PluginSettingsSectionProps, PluginSettingsSectionRegistration, PluginSettingsState, PluginSidebarFooterActionContext, PluginSidebarFooterActionProps, PluginSidebarFooterActionRegistration, PluginSidebarProject, PluginSidebarPullRequest, PluginSidebarSection, PluginSidebarSplitLayout, PluginSidebarSplitPane, PluginSidebarThread, PluginSidebarThreadActions, PluginSidebarThreadActivity, PluginSidebarThreadDraftState, PluginSidebarThreadIndicator, PluginSidebarThreadPullRequestState, PluginSidebarThreadRowStatus, PluginSidebarThreadShortcut, PluginSidebarThreadSplit, PluginSidebarThreadsState, PluginSourceCodeRendererProps, PluginSourceCodeRendererRegistration, PluginTargetedPanelActionOpenOptions, PluginThreadHeaderActionProps, PluginThreadHeaderActionRegistration, PluginThreadListProps, PluginThreadListRegistration, PluginThreadPanelActionContext, PluginThreadPanelActionRegistration, PluginThreadPanelProps, PluginThreadTitleProps, PluginTimelineRendererProps, PluginTimelineRendererRegistration, PluginTimelineRendererRow, PluginTimelineRowPresentation, PluginTimelineRowStatus, ReadonlyJsonValue, SourceCodeLineRange, SourceCodeProps, StandardSchemaV1, StandardSchemaV1InferInput, StandardSchemaV1InferOutput, StandardSchemaV1Issue, StandardSchemaV1Result, ThreadChatMessageAction, ThreadChatMessageReference, ThreadChatProps, UrlLinkProps, UseBranchesArgs, UseCheckoutStateArgs };
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
// and read the real source: https://github.com/get-bb/bb
|
|
7
7
|
|
|
8
8
|
import { z } from 'zod';
|
|
9
|
-
import { ExperimentalSidebarFooterActionContext, ExperimentalSidebarFooterItemRegistration, PluginHomepageSectionRegistration, PluginSettingsSectionRegistration, ExperimentalAppOverlayRegistration, PluginNavPanelRegistration, PluginThreadPanelActionRegistration, PluginNewThreadPanelActionRegistration, ComposerCustomization, PluginPendingInteractionRegistration, PluginSidebarFooterActionRegistration, ExperimentalSidebarNavigationRegistration, PluginThreadListRegistration, PluginThreadHeaderActionRegistration, ExperimentalPluginBrowserToolbarActionRegistration, PluginFileOpenerRegistration, PluginSourceCodeRendererRegistration, PluginDiffRendererRegistration, PluginMessageDirectiveRegistration, PluginMessageActionRegistration, PluginCommandRegistration, PluginProviderIconRegistration, ExperimentalIconRegistration, PluginTimelineRendererRegistration, PluginEnvironmentProviderInputsRegistration, PluginMachineProviderInputsRegistration, PluginContentScriptRegistration, PluginAppDefinition } from '@get-bb/plugin-sdk';
|
|
9
|
+
import { ExperimentalSidebarFooterActionContext, ExperimentalSidebarFooterItemRegistration, PluginHomepageSectionRegistration, PluginSettingsSectionRegistration, ExperimentalAppOverlayRegistration, PluginNavPanelRegistration, PluginThreadPanelActionRegistration, PluginNewThreadPanelActionRegistration, ComposerCustomization, PluginPendingInteractionRegistration, PluginSidebarFooterActionRegistration, ExperimentalSidebarNavigationRegistration, ExperimentalSidebarHeaderRegistration, PluginThreadListRegistration, PluginThreadHeaderActionRegistration, ExperimentalPluginBrowserToolbarActionRegistration, PluginFileOpenerRegistration, PluginSourceCodeRendererRegistration, PluginDiffRendererRegistration, PluginMessageDirectiveRegistration, PluginMessageActionRegistration, PluginCommandRegistration, PluginProviderIconRegistration, ExperimentalIconRegistration, PluginTimelineRendererRegistration, PluginEnvironmentProviderInputsRegistration, PluginMachineProviderInputsRegistration, PluginContentScriptRegistration, PluginAppDefinition } from '@get-bb/plugin-sdk';
|
|
10
10
|
|
|
11
11
|
type ExperimentalSidebarFooterCommandKind = "close" | "open" | "toggle";
|
|
12
12
|
interface ExperimentalSidebarFooterRuntimeSnapshot {
|
|
@@ -64,6 +64,7 @@ interface CollectedPluginAppRegistrations {
|
|
|
64
64
|
sidebarFooterActions: PluginSidebarFooterActionRegistration[];
|
|
65
65
|
experimentalSidebarFooterItems: CollectedExperimentalSidebarFooterItem[];
|
|
66
66
|
experimentalSidebarNavigations: ExperimentalSidebarNavigationRegistration[];
|
|
67
|
+
experimentalSidebarHeaders: ExperimentalSidebarHeaderRegistration[];
|
|
67
68
|
threadLists: PluginThreadListRegistration[];
|
|
68
69
|
threadHeaderActions: PluginThreadHeaderActionRegistration[];
|
|
69
70
|
browserToolbarActions: ExperimentalPluginBrowserToolbarActionRegistration[];
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import { ReactNode, ComponentType } from 'react';
|
|
9
9
|
import { RenderResult } from '@testing-library/react';
|
|
10
|
-
import { ExperimentalSidebarFooterItemRegistration, PluginProviderIconRegistration, PluginHomepageSectionRegistration, PluginSettingsSectionRegistration, ExperimentalAppOverlayRegistration, PluginNavPanelRegistration, PluginThreadPanelActionRegistration, PluginNewThreadPanelActionRegistration, ComposerCustomization, PluginPendingInteractionRegistration, PluginSidebarFooterActionRegistration, ExperimentalSidebarNavigationRegistration, PluginThreadListRegistration, PluginThreadHeaderActionRegistration, ExperimentalPluginBrowserToolbarActionRegistration, PluginFileOpenerRegistration, PluginSourceCodeRendererRegistration, PluginDiffRendererRegistration, PluginMessageDirectiveRegistration, PluginMessageActionRegistration, ExperimentalIconRegistration, PluginTimelineRendererRegistration, PluginEnvironmentProviderInputsRegistration, PluginMachineProviderInputsRegistration, PluginContentScriptRegistration, PluginComposerScope, PluginComposerTextEffect, PluginComposerMention, ExperimentalComposerSubmitOptions, ExperimentalComposerSelection, PluginComposerThreadRowStatus, ExperimentalOpenFixedTabOptions, JsonValue, BbNavigate, ExperimentalFileOpenOptions, PluginAppDefinition, PluginRpcContract, StandardSchemaV1InferInput, PluginRpcResult, PluginBrowserBbSdk, PluginRealtimeConnectionState, PluginSidebarThreadsState, PluginProvidersState, PluginCodeThemeState, BranchesState, CheckoutState, PluginSidebarPullRequest, PluginSidebarThreadRowStatus, PluginSidebarThreadShortcut, PluginSidebarSplitLayout, PluginEnvironmentProvidersState, PluginSidebarThreadActions } from '@get-bb/plugin-sdk';
|
|
10
|
+
import { ExperimentalSidebarFooterItemRegistration, PluginProviderIconRegistration, PluginHomepageSectionRegistration, PluginSettingsSectionRegistration, ExperimentalAppOverlayRegistration, PluginNavPanelRegistration, PluginThreadPanelActionRegistration, PluginNewThreadPanelActionRegistration, ComposerCustomization, PluginPendingInteractionRegistration, PluginSidebarFooterActionRegistration, ExperimentalSidebarNavigationRegistration, ExperimentalSidebarHeaderRegistration, PluginThreadListRegistration, PluginThreadHeaderActionRegistration, ExperimentalPluginBrowserToolbarActionRegistration, PluginFileOpenerRegistration, PluginSourceCodeRendererRegistration, PluginDiffRendererRegistration, PluginMessageDirectiveRegistration, PluginMessageActionRegistration, ExperimentalIconRegistration, PluginTimelineRendererRegistration, PluginEnvironmentProviderInputsRegistration, PluginMachineProviderInputsRegistration, PluginContentScriptRegistration, PluginComposerScope, PluginComposerTextEffect, PluginComposerMention, ExperimentalComposerSubmitOptions, ExperimentalComposerSelection, PluginComposerThreadRowStatus, ExperimentalOpenFixedTabOptions, JsonValue, BbNavigate, ExperimentalFileOpenOptions, PluginAppDefinition, PluginRpcContract, StandardSchemaV1InferInput, PluginRpcResult, PluginBrowserBbSdk, PluginRealtimeConnectionState, PluginSidebarThreadsState, PluginProvidersState, PluginCodeThemeState, BranchesState, CheckoutState, PluginSidebarPullRequest, PluginSidebarThreadRowStatus, PluginSidebarThreadShortcut, PluginSidebarSplitLayout, ExperimentalSidebarNavigationItem, PluginEnvironmentProvidersState, PluginSidebarThreadActions, ExperimentalSidebarNavigationActions } from '@get-bb/plugin-sdk';
|
|
11
11
|
|
|
12
12
|
type ExperimentalSidebarFooterCommandKind = "close" | "open" | "toggle";
|
|
13
13
|
interface ExperimentalSidebarFooterRuntimeSnapshot {
|
|
@@ -149,6 +149,17 @@ interface SidebarActionCall {
|
|
|
149
149
|
pinned?: boolean;
|
|
150
150
|
read?: boolean;
|
|
151
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* One recorded `experimental_useSidebarNavigation()` action, or a split drag
|
|
154
|
+
* started from `experimental_useSidebarNavigationSplit()` (`beginSplitDrag`).
|
|
155
|
+
*/
|
|
156
|
+
interface SidebarNavigationCall {
|
|
157
|
+
method: keyof ExperimentalSidebarNavigationActions | "beginSplitDrag";
|
|
158
|
+
itemId?: string;
|
|
159
|
+
itemIds?: string[];
|
|
160
|
+
isVisible?: boolean;
|
|
161
|
+
openInSplit?: boolean;
|
|
162
|
+
}
|
|
152
163
|
/**
|
|
153
164
|
* Install the test runtime at `globalThis.__bbPluginRuntime.pluginSdkApp`.
|
|
154
165
|
* Idempotent per module instance; must run before the plugin's `app.tsx`
|
|
@@ -167,6 +178,7 @@ interface CapturedPluginApp {
|
|
|
167
178
|
sidebarFooterActions: PluginSidebarFooterActionRegistration[];
|
|
168
179
|
experimentalSidebarFooterItems: CollectedExperimentalSidebarFooterItem[];
|
|
169
180
|
experimentalSidebarNavigations: ExperimentalSidebarNavigationRegistration[];
|
|
181
|
+
experimentalSidebarHeaders: ExperimentalSidebarHeaderRegistration[];
|
|
170
182
|
threadLists: PluginThreadListRegistration[];
|
|
171
183
|
threadHeaderActions: PluginThreadHeaderActionRegistration[];
|
|
172
184
|
browserToolbarActions: ExperimentalPluginBrowserToolbarActionRegistration[];
|
|
@@ -293,6 +305,16 @@ interface RenderSlotOptions<Contract extends PluginRpcContract = PluginRpcContra
|
|
|
293
305
|
sidebarShortcuts?: Record<string, PluginSidebarThreadShortcut>;
|
|
294
306
|
/** The split layout `useSidebarSplitLayout()` reports. Omitted → null. */
|
|
295
307
|
sidebarSplitLayout?: PluginSidebarSplitLayout;
|
|
308
|
+
/**
|
|
309
|
+
* Items and the active item `experimental_useSidebarNavigation()` reports.
|
|
310
|
+
* Omitted → no items. Actions are recorded in
|
|
311
|
+
* `inspection.sidebarNavigationCalls` and do not change the items.
|
|
312
|
+
*/
|
|
313
|
+
sidebarNavigation?: {
|
|
314
|
+
items?: readonly ExperimentalSidebarNavigationItem[];
|
|
315
|
+
activeItemId?: string | null;
|
|
316
|
+
isShortcutModifierHeld?: boolean;
|
|
317
|
+
};
|
|
296
318
|
/**
|
|
297
319
|
* The environment provider catalog `useEnvironmentProviders()` reports.
|
|
298
320
|
* Omitted → a ready, empty list. Pass `{ status: "loading" }` to test that
|
|
@@ -345,6 +367,11 @@ interface RenderedSlotInspectionState {
|
|
|
345
367
|
readonly experimental_fixedTabOpenCalls: ExperimentalFixedTabOpenCall[];
|
|
346
368
|
/** Every `experimental_useSidebarThreadActions()` call, in order. */
|
|
347
369
|
readonly sidebarActionCalls: SidebarActionCall[];
|
|
370
|
+
/**
|
|
371
|
+
* Every `experimental_useSidebarNavigation()` action and navigation split
|
|
372
|
+
* drag, in order.
|
|
373
|
+
*/
|
|
374
|
+
readonly sidebarNavigationCalls: SidebarNavigationCall[];
|
|
348
375
|
/** Every `useSdk()` call, in order, as `"<area>.<method>"`. */
|
|
349
376
|
readonly sdkCalls: SdkCall[];
|
|
350
377
|
/** Everything written through `useComposer()`. */
|
|
@@ -369,4 +396,4 @@ declare function renderSlot<Props extends object, Contract extends PluginRpcCont
|
|
|
369
396
|
}, props: Props, options?: RenderSlotOptions<Contract>): RenderedSlot;
|
|
370
397
|
|
|
371
398
|
export { installTestPluginRuntime, loadPluginApp, mountPluginContentScripts, renderSlot };
|
|
372
|
-
export type { CapturedPluginApp, ComposerLog, ContentScriptTestMountOptions, ContentScriptThreadRowStatusCall, ExperimentalFixedTabOpenCall, MountedPluginContentScripts, NavigateCall, PluginAppSource, PluginRpcTestHandlers, PluginSdkTestFakes, RenderSlotOptions, RenderedSlot, RenderedSlotBehaviorDrivers, RenderedSlotInspectionState, RenderedSlotLifecycleControls, RpcCall, SdkCall, SidebarActionCall };
|
|
399
|
+
export type { CapturedPluginApp, ComposerLog, ContentScriptTestMountOptions, ContentScriptThreadRowStatusCall, ExperimentalFixedTabOpenCall, MountedPluginContentScripts, NavigateCall, PluginAppSource, PluginRpcTestHandlers, PluginSdkTestFakes, RenderSlotOptions, RenderedSlot, RenderedSlotBehaviorDrivers, RenderedSlotInspectionState, RenderedSlotLifecycleControls, RpcCall, SdkCall, SidebarActionCall, SidebarNavigationCall };
|
|
@@ -1321,6 +1321,12 @@ interface FakePluginLifecycleControls {
|
|
|
1321
1321
|
* PluginContextStaleError). Idempotent.
|
|
1322
1322
|
*/
|
|
1323
1323
|
dispose(): Promise<void>;
|
|
1324
|
+
/**
|
|
1325
|
+
* Run every handler registered with `bb.onInstall`, in
|
|
1326
|
+
* registration order, as bb does right after a fresh install. A handler
|
|
1327
|
+
* that throws is logged at warn level and the rest still run.
|
|
1328
|
+
*/
|
|
1329
|
+
install(): Promise<void>;
|
|
1324
1330
|
}
|
|
1325
1331
|
/**
|
|
1326
1332
|
* Complete fake-host harness. Direct members are retained for compatibility;
|