@get-bb/plugin-sdk 0.4.29 → 0.4.34

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.
@@ -1608,6 +1608,12 @@ function agentToolIconRefusalMessage(toolName, problem) {
1608
1608
  function providerWithoutBridgeMessage(providerId) {
1609
1609
  return `provider "${providerId}" has no bridge to run on: this plugin declares no "bb.host" entry in its manifest`;
1610
1610
  }
1611
+ function storePluginHook(records, hook, handler) {
1612
+ records[hook] = handler;
1613
+ }
1614
+ function pluginHookAlreadyRegisteredMessage(hook) {
1615
+ return `a "${hook}" hook handler is already registered by this plugin`;
1616
+ }
1611
1617
  export {
1612
1618
  AGENT_TOOL_NAME_PATTERN,
1613
1619
  BACKGROUND_NAME_PATTERN,
@@ -1645,12 +1651,14 @@ export {
1645
1651
  normalizeMentionProviderTriggers,
1646
1652
  parsePluginAgentToolPresentation,
1647
1653
  pluginCliCollisionWarning,
1654
+ pluginHookAlreadyRegisteredMessage,
1648
1655
  providerAlreadyRegisteredMessage,
1649
1656
  providerIconRefusalMessage,
1650
1657
  providerWithoutBridgeMessage,
1651
1658
  readRpcMethodContract,
1652
1659
  registerSettingDescriptors,
1653
1660
  rejectStaleAgentToolFields,
1661
+ storePluginHook,
1654
1662
  summarizeParseIssues,
1655
1663
  undeclaredIconProblem,
1656
1664
  validatePluginAiServiceDeclaration,
@@ -252,6 +252,7 @@ function collectPluginAppRegistrations(definition, onComposerCustomizationReject
252
252
  composerCustomizations: [],
253
253
  pendingInteractions: [],
254
254
  sidebarFooterActions: [],
255
+ experimentalSidebarNavigations: [],
255
256
  threadLists: [],
256
257
  threadHeaderActions: [],
257
258
  fileOpeners: [],
@@ -273,6 +274,7 @@ function collectPluginAppRegistrations(definition, onComposerCustomizationReject
273
274
  composerCustomization: /* @__PURE__ */ new Set(),
274
275
  pendingInteraction: /* @__PURE__ */ new Set(),
275
276
  sidebarFooterAction: /* @__PURE__ */ new Set(),
277
+ sidebarNavigation: /* @__PURE__ */ new Set(),
276
278
  threadList: /* @__PURE__ */ new Set(),
277
279
  threadHeaderAction: /* @__PURE__ */ new Set(),
278
280
  fileOpener: /* @__PURE__ */ new Set(),
@@ -464,6 +466,22 @@ function collectPluginAppRegistrations(definition, onComposerCustomizationReject
464
466
  run: registration.run
465
467
  });
466
468
  },
469
+ experimental_sidebarNavigation(registration) {
470
+ const kind = "slots.experimental_sidebarNavigation";
471
+ const id = requireSlotId(kind, registration?.id);
472
+ requireUniqueId(kind, seenIds.sidebarNavigation, id);
473
+ const description = requireOptionalString(
474
+ kind,
475
+ "description",
476
+ registration.description
477
+ );
478
+ collected.experimentalSidebarNavigations.push({
479
+ id,
480
+ title: requireNonEmptyString(kind, "title", registration.title),
481
+ ...description !== void 0 ? { description } : {},
482
+ component: requireComponent(kind, registration.component)
483
+ });
484
+ },
467
485
  experimental_threadList(registration) {
468
486
  const kind = "slots.experimental_threadList";
469
487
  const id = requireSlotId(kind, registration?.id);