Coverage: old API to 2.0

This matrix contains 1,499 mappings across 12 old namespaces and 13 destination pages, including 47 explicit drops.

Counts by old namespace

Old namespace Rows Dropped
app 379 12
bridge 179 1
build 33 0
cli 41 0
host 161 0
install 37 0
manifest 41 1
marketplace 34 0
registry 115 1
server 407 22
settings 11 7
testing 61 3
Total 1499 47

app

Old item New home Note
app.PluginAppBuilder AppPluginApi The app factory receives the concrete API object.
app.PluginAppBuilder.composer bb.threads composer contracts The Threads owner replaces builder composer registration.
app.PluginAppBuilder.contentScripts dropped Use an owner-declared surface or app service.
app.PluginAppBuilder.slots AppPluginApi.surfaces Typed owner surfaces replace the slot registry.
app.PluginAppDefinition AppPluginFactory The app artifact exports a tier factory.
app.PluginAppDefinition.__bbPluginApp dropped The loader verifies the artifact and does not use a branded value.
app.PluginAppDefinition.setup definePlugin(factory) The default app export is the factory result.
app.PluginAppSetup AppPluginFactory Replaced by the typed factory callback.
app.PluginSdkApp AppPluginApi Replaced by the concrete app API object.
app.components.ExperimentalAppPanel @bb/layout/contracts: LayoutPanelController The controller covers all shell panel actions.
app.components.ExperimentalAppPanelSurface @bb/layout/contracts: LayoutPanelController The nearest controller replaces kind current.
app.components.ExperimentalFileLocation @bb/ui: FileLocation Pure file-link location type.
app.components.ExperimentalFileOpenOptions @bb/ui: FileOpenOptions Pure file-link option type.
app.components.ExperimentalFixedTabTargetState bb.layout.panels surface: LayoutPanelProps.target The target keeps its sequence and value.
app.components.ExperimentalLiveFileTarget @bb/ui: LiveFileTarget Pure file-link target type.
app.components.ExperimentalOpenFixedTabOptions bb.layout.panels surface: LayoutPanelOpenOptions The panel ID and target move into one open() call.
app.components.ExperimentalPermissionModePickerProps @bb/ui: PermissionModePickerProps The stable controlled props keep provider routing.
app.components.ExperimentalPermissionModePickerProps.onChange PermissionModePickerProps.onChange The callback receives the accepted mode.
app.components.ExperimentalProviderModelPickerProps @bb/ui: ProviderModelPickerProps The stable controlled props keep provider routing.
app.components.ExperimentalProviderModelPickerProps.onChange ProviderModelPickerProps.onChange The callback receives one coherent selection.
app.components.ExperimentalProviderModelPickerRouting @bb/ui: ProviderPickerRouting The route identifies a host or environment.
app.components.ExperimentalProviderModelPickerValue @bb/ui: ProviderPickerValue The stable value keeps provider, model, reasoning, and tier.
app.components.Markdown @bb/thread-ui/components: Markdown The chat Markdown component remains available as a module export.
app.components.ThreadChat @bb/thread-ui/components: ThreadChat The exact component remains available as a module export.
app.components.UrlLink @bb/ui: UrlLink Shared semantic link export.
app.components.experimental_Diff @bb/ui: Diff Facade; bb.files owns the renderer surface.
app.components.experimental_FileLink @bb/ui: FileLink Canonical name removes the experimental prefix.
app.components.experimental_NewThreadComposer @bb/thread-ui/components: NewThreadComposer The stable export removes the experimental prefix.
app.components.experimental_PermissionModePicker @bb/ui: PermissionModePicker The stable export drops the experimental prefix.
app.components.experimental_ProviderModelPicker @bb/ui: ProviderModelPicker The stable export drops the experimental prefix.
app.components.experimental_SourceCode @bb/ui: SourceCode Facade; bb.files owns the renderer surface.
app.components.experimental_UrlLink @bb/ui: experimental_UrlLink Deprecated alias for UrlLink.
app.composer bb.thread-ui.composer.actions surface and ComposerHandle Separate contracts replace the customization bundle.
app.composer.ComposerCustomization bb.thread-ui.composer.actions surface: ComposerActionContribution Each action, menu row, or card becomes one contribution.
app.composer.ComposerPlusMenuItem bb.thread-ui.composer.actions surface: plus-menu contribution The list contribution keeps the action behavior.
app.composer.ComposerPlusMenuItem.run bb.thread-ui.composer.actions surface: plus-menu contribution The list contribution keeps the action behavior.
app.composer.ComposerRichTextSpec @bb/thread-ui/components: ComposerHandle.setTextEffect() The composer handle owns text effects.
app.composer.ComposerStructuredDraft @bb/threads/contracts: ComposerDraft The draft also carries attachments and a revision.
app.composer.ComposerView bb.thread-ui.composer surface: ComposerProps The surface props expose reactive composer state.
app.composer.PluginComposerApi @bb/thread-ui/components: ComposerHandle The shared handle keeps imperative composer operations.
app.composer.PluginComposerApi.addQuote @bb/thread-ui/components: ComposerHandle.addQuote The shared handle keeps imperative composer operations.
app.composer.PluginComposerApi.clear @bb/thread-ui/components: ComposerHandle.clear The shared handle keeps imperative composer operations.
app.composer.PluginComposerApi.focus @bb/thread-ui/components: ComposerHandle.focus The shared handle keeps imperative composer operations.
app.composer.PluginComposerApi.insertMention @bb/thread-ui/components: ComposerHandle.insertMention The shared handle keeps imperative composer operations.
app.composer.PluginComposerApi.setInputLock @bb/thread-ui/components: ComposerHandle.setInputLock The shared handle keeps imperative composer operations.
app.composer.PluginComposerApi.setText @bb/thread-ui/components: ComposerHandle.setText The shared handle keeps imperative composer operations.
app.composer.PluginComposerApi.setTextEffect @bb/thread-ui/components: ComposerHandle.setTextEffect The shared handle keeps imperative composer operations.
app.composer.PluginComposerApi.updateText @bb/thread-ui/components: ComposerHandle.updateText The shared handle keeps imperative composer operations.
app.composer.PluginComposerMention @bb/threads/contracts: ComposerMention
app.composer.PluginComposerTextEffect @bb/thread-ui/components: ComposerHandle.setTextEffect()
app.composer.customize bb.thread-ui.composer.actions surface Each old bundle entry becomes one ordered contribution.
app.contentScripts dropped Replaced by owner-declared surface claims and app services.
app.contentScripts.register dropped Replaced by api.surfaces.provide() or a typed service edge.
app.contracts.BbContext @bb/workspace/contracts: WorkspaceContext Replaces the project-and-thread-only route record.
app.contracts.BbNavigate @bb/workspace/contracts: WorkspaceNavigation Replaces the broad navigation type.
app.contracts.BbNavigate.experimental_openFileExternally useFiles().open({ disposition: external }) The app client keeps host routing private.
app.contracts.BbNavigate.experimental_openFilePreview useFiles().open({ disposition: preview }) The bb.files-ui.opener winner handles the request.
app.contracts.BbNavigate.openThreadPanel WorkspaceNavigation.openThreadPanel() Keeps thread panel routing.
app.contracts.BbNavigate.openUrl WorkspaceNavigation.openUrl() Keeps host-controlled URL opening.
app.contracts.BbNavigate.toCompose WorkspaceNavigation.toCompose() Adds an optional typed project ID.
app.contracts.BbNavigate.toPluginPanel WorkspaceNavigation.toPluginPanel() Keeps plugin panel routes.
app.contracts.BbNavigate.toProject WorkspaceNavigation.toProject() Keeps project route navigation.
app.contracts.BbNavigate.toThread WorkspaceNavigation.toThread() Keeps thread route navigation.
app.contracts.CodeOverflowMode CodeOverflowMode The values stay scroll and wrap.
app.contracts.DiffProps DiffRenderProps The exact component and surface use one base type.
app.contracts.DiffProps.className DiffRenderProps.className The optional root class stays available.
app.contracts.DiffProps.experimental_fullFileContents DiffRenderProps.fullFileContents The field becomes stable.
app.contracts.DiffProps.overflow DiffRenderProps.overflow The owner resolves the default before the surface call.
app.contracts.DiffProps.patch DiffRenderProps.patch The field stays required.
app.contracts.DiffProps.path DiffRenderProps.path The field stays required.
app.contracts.DiffProps.showLineNumbers DiffRenderProps.showLineNumbers The owner resolves the default before the surface call.
app.contracts.DiffProps.view DiffRenderProps.view The owner resolves the default before the surface call.
app.contracts.DiffViewMode DiffViewMode The values stay unified and split.
app.contracts.ExperimentalAppPanel.openFixedTab bb.layout.panels surface: LayoutPanelController.open() An open call focuses the current single panel.
app.contracts.ExperimentalDiffFileContent DiffFileContent The type loses the experimental prefix.
app.contracts.ExperimentalDiffFullFileContents DiffFullFileContents fullFileContents replaces the experimental field.
app.contracts.ExperimentalFileLinkProps FileLinkProps The type loses the experimental prefix.
app.contracts.ExperimentalFixedTabTargetContract bb.layout.panels surface: target StandardSchemaV1<T> The panel declaration owns target validation.
app.contracts.ExperimentalFixedTabTargetContract.validate bb.layout.panels surface: target schema validation The shell checks the schema before open().
app.contracts.ExperimentalFixedTabTargetState.clear bb.layout.panels surface: LayoutPanelController.clearTarget() The caller can clear one exact target sequence.
app.contracts.ExperimentalPluginFixedTabReference bb.layout.panels surface: full panel ID plus target schema The full ID replaces the old panelId and id pair.
app.contracts.MarkdownProps @bb/thread-ui/components: Markdown and MarkdownProps The chat Markdown component remains an exact export.
app.contracts.NewThreadComposerProps @bb/thread-ui/components: NewThreadComposer and ComposerProps The component uses the shared draft and selection contracts.
app.contracts.NewThreadComposerProps.onSubmit @bb/thread-ui/components: NewThreadComposer and ComposerProps The component uses the shared draft and selection contracts.
app.contracts.NewThreadRequest @bb/thread-ui/components: NewThreadComposer and ComposerProps The component uses the shared draft and selection contracts.
app.contracts.PluginCodeThemeData @bb/layout/contracts: LayoutCodeTheme The stable code theme keeps colors and token rules.
app.contracts.PluginCodeThemeState @bb/layout/contracts: LayoutThemeClientState The new state includes the selected theme definition.
app.contracts.PluginCodeThemeTokenRule @bb/layout/contracts: LayoutCodeThemeTokenRule The TextMate rule shape stays stable.
app.contracts.PluginCommandPaletteActionContext bb.commands.command keyed service: AppCommandContext The context includes route, source, input, cancellation, and navigation.
app.contracts.PluginCommandPaletteActionContext.openPanel bb.commands.command keyed service: AppCommandContext.navigation.openPanel() The new target names the Threads side-panel surface and key.
app.contracts.PluginCommandPaletteActionRegistration bb.commands.command keyed service: AppCommand The new contract adds common command metadata and keybindings.
app.contracts.PluginCommandPaletteActionRegistration.isAvailable bb.commands.command keyed service: AppCommand.isAvailable() Availability applies to the palette, menus, keybindings, and direct runs.
app.contracts.PluginCommandPaletteActionRegistration.run bb.commands.command keyed service: AppCommand.run() All command sources use the same executor.
app.contracts.PluginComposerScope @bb/threads/contracts: ComposerScope The durable draft and selection services use this scope.
app.contracts.PluginComposerThreadRowStatus bb.thread-ui.composer surface and @bb/thread-ui/components: ComposerHandle The surface and handle split state from local focus actions.
app.contracts.PluginContentScriptContext dropped Owner surfaces and services provide typed context.
app.contracts.PluginContentScriptContext.experimental_setThreadRowStatus bb.threads.list child surface A declared child surface replaces global row mutation.
app.contracts.PluginContentScriptDisposer Disposer The app factory and registrations own cleanup.
app.contracts.PluginContentScriptRegistration dropped The 2.0 app tier has no trusted content-script registration.
app.contracts.PluginContentScriptRegistration.mount dropped Use a factory or an owner-declared surface implementation.
app.contracts.PluginDiffRendererProps DiffSurfaceProps The stable type keeps the resolved values and Original.
app.contracts.PluginDiffRendererProps.Original DiffSurfaceProps.Original A single surface winner receives the default component.
app.contracts.PluginDiffRendererProps.experimental_fullFileContents DiffSurfaceProps.fullFileContents The field becomes stable and nullable.
app.contracts.PluginDiffRendererProps.overflow DiffSurfaceProps.overflow The field stays resolved and required.
app.contracts.PluginDiffRendererProps.patch DiffSurfaceProps.patch The field stays required.
app.contracts.PluginDiffRendererProps.path DiffSurfaceProps.path The field stays required.
app.contracts.PluginDiffRendererProps.showLineNumbers DiffSurfaceProps.showLineNumbers The field stays resolved and required.
app.contracts.PluginDiffRendererProps.view DiffSurfaceProps.view The field stays resolved and required.
app.contracts.PluginDiffRendererRegistration bb.files-ui.diff claim plus api.surfaces.provide() The surface declaration owns the props type.
app.contracts.PluginFileOpenerProps FileOpenerProps FileTarget replaces separate path and source fields.
app.contracts.PluginFileOpenerProps.Original dropped A keyed surface has no Original. Use renderPreview() for bb.files-ui.preview.
app.contracts.PluginFileOpenerProps.path FileOpenerProps.target.path The target contains the confined path.
app.contracts.PluginFileOpenerProps.source FileOpenerProps.target FileTarget replaces the old source object.
app.contracts.PluginFileOpenerRegistration bb.files-ui.opener claim plus api.surfaces.provide() Static claims replace registration metadata.
app.contracts.PluginFileOpenerRegistration.component api.surfaces.provide(bb.files-ui.opener, { key }, component) Behavior moves to the app factory.
app.contracts.PluginFileOpenerRegistration.extensions repeated bb.files-ui.opener keyed claims Each extension becomes one static claim.
app.contracts.PluginFileOpenerRegistration.id bb.files-ui.opener claim key The extension key and plugin ID identify the claimant.
app.contracts.PluginFileOpenerRegistration.title plugin manifest name and description The winner picker reads static plugin metadata.
app.contracts.PluginFileOpenerSource FileTarget A discriminated union replaces nullable identity fields.
app.contracts.PluginFileOpenerSource.environmentId FileTarget workspace variant: environmentId The field is required only for a workspace.
app.contracts.PluginFileOpenerSource.experimental_hostId FileTarget host variant: hostId The field becomes stable and required for host targets.
app.contracts.PluginFileOpenerSource.kind FileTarget.kind The stable discriminant keeps the three source kinds.
app.contracts.PluginFileOpenerSource.projectId dropped environmentId identifies the workspace. Use bb.workspace to resolve its project.
app.contracts.PluginFileOpenerSource.threadId FileTarget thread-storage variant: threadId The field is required only for thread storage.
app.contracts.PluginFixedTabDeclaration bb.layout.panels surface: LayoutPanelRegistration The target schema is optional on one stable declaration.
app.contracts.PluginFixedTabRegistration bb.layout.panels surface: LayoutPanelRegistration Use persistent: true and instances: single.
app.contracts.PluginFixedTabRegistration.component bb.layout.panels surface: LayoutPanelRegistration.component The plugin still owns the panel body.
app.contracts.PluginFixedTabRegistration.icon bb.layout.panels surface: LayoutPanelRegistration.icon The shell uses this icon for its tab.
app.contracts.PluginFixedTabRegistration.id bb.layout.panels surface: LayoutPanelRegistration.id The local ID remains stable.
app.contracts.PluginFixedTabRegistration.layout bb.layout.panels surface: LayoutPanelRegistration.frame padded and flush keep their meanings.
app.contracts.PluginFixedTabRegistration.panelId bb.layout.panels surface: full panel ID The claimant namespace replaces the separate old panel ID.
app.contracts.PluginFixedTabRegistration.title bb.layout.panels surface: LayoutPanelRegistration.title The shell uses this title for its tab.
app.contracts.PluginHomepageSectionProps bb.thread-ui.composer.actions: ComposerActionContext The default composer declares and renders this presentation surface.
app.contracts.PluginHomepageSectionProps.projectId ComposerActionContext.scope A new-thread scope carries the nullable project ID.
app.contracts.PluginHomepageSectionRegistration bb.thread-ui.composer.actions: ComposerActionContribution A stack contribution replaces the fixed homepage slot.
app.contracts.PluginHomepageSectionRegistration.component ComposerActionContribution.component The component receives the composer action context.
app.contracts.PluginHomepageSectionRegistration.id ComposerActionContribution.id The contribution keeps one stable ID.
app.contracts.PluginHomepageSectionRegistration.title ComposerActionContribution.component The component renders its own heading.
app.contracts.PluginMessageActionContext bb.thread-ui.view surface: MessageAction A view wrapper or ThreadChat instance supplies the action.
app.contracts.PluginMessageActionContext.openPanel bb.thread-ui.view surface: MessageAction A view wrapper or ThreadChat instance supplies the action.
app.contracts.PluginMessageActionRegistration bb.thread-ui.view surface: MessageAction A view wrapper or ThreadChat instance supplies the action.
app.contracts.PluginMessageActionRegistration.run bb.thread-ui.view surface: MessageAction A view wrapper or ThreadChat instance supplies the action.
app.contracts.PluginMessageDirectiveMessage bb.thread-ui.timeline.item surface: plugin-owned directive item type The timeline item contract carries message and thread identity.
app.contracts.PluginMessageDirectiveMessage.id bb.thread-ui.timeline.item surface: plugin-owned directive item type The timeline item contract carries message and thread identity.
app.contracts.PluginMessageDirectiveMessage.projectId bb.thread-ui.timeline.item surface: plugin-owned directive item type The timeline item contract carries message and thread identity.
app.contracts.PluginMessageDirectiveMessage.threadId bb.thread-ui.timeline.item surface: plugin-owned directive item type The timeline item contract carries message and thread identity.
app.contracts.PluginMessageDirectiveMessage.turnId bb.thread-ui.timeline.item surface: plugin-owned directive item type The timeline item contract carries message and thread identity.
app.contracts.PluginMessageDirectiveOpenWorkspaceFile useFiles().open() The caller supplies a workspace FileTarget.
app.contracts.PluginMessageDirectiveProps bb.thread-ui.timeline.item surface: plugin-owned directive item type The timeline item contract carries message and thread identity.
app.contracts.PluginMessageDirectiveProps.attributes bb.thread-ui.timeline.item surface: plugin-owned directive item type The timeline item contract carries message and thread identity.
app.contracts.PluginMessageDirectiveProps.message bb.thread-ui.timeline.item surface: plugin-owned directive item type The timeline item contract carries message and thread identity.
app.contracts.PluginMessageDirectiveProps.openWorkspaceFile useFiles().open() A workspace target replaces the nullable helper.
app.contracts.PluginMessageDirectiveProps.source bb.thread-ui.timeline.item surface: plugin-owned directive item type The timeline item contract carries message and thread identity.
app.contracts.PluginMessageDirectiveRegistration bb.thread-ui.timeline.item surface: plugin-owned directive item type The timeline item contract carries message and thread identity.
app.contracts.PluginNavPanel.experimental_sidebarAccessory bb.layout.panels surface: navigation.accessory The sidebar winner places the bounded accessory.
app.contracts.PluginNavPanel.fixedTabs bb.layout.panels surface: persistent panel declarations Each old fixed tab becomes one persistent panel declaration.
app.contracts.PluginNavPanel.headerContent bb.layout.panels surface: headerContent The panel dock winner owns the panel header.
app.contracts.PluginNavPanelProps bb.layout.panels surface: LayoutPanelProps Panel state replaces route remainder props.
app.contracts.PluginNavPanelProps.subPath bb.layout.panels surface: LayoutPanelProps.state A panel can store its route state as JSON.
app.contracts.PluginNavPanelRegistration bb.layout.panels surface: LayoutPanelRegistration The new declaration separates panel content from shell frame rules.
app.contracts.PluginNavPanelRegistration.component bb.layout.panels surface: LayoutPanelRegistration.component The plugin still owns the panel body.
app.contracts.PluginNavPanelRegistration.icon bb.layout.panels surface: LayoutPanelRegistration.icon The shell uses one icon in navigation and panel chrome.
app.contracts.PluginNavPanelRegistration.id bb.layout.panels surface: LayoutPanelRegistration.id The runtime adds the claimant ID to form the full panel ID.
app.contracts.PluginNavPanelRegistration.path bb.layout.panels surface: LayoutPanelRegistration.navigation.path The path remains shell-owned navigation metadata.
app.contracts.PluginNavPanelRegistration.title bb.layout.panels surface: LayoutPanelRegistration.title The shell uses the title in navigation and panel chrome.
app.contracts.PluginNewThreadPanelActionContext bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginNewThreadPanelActionContext.openPanel bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginNewThreadPanelActionRegistration bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginNewThreadPanelActionRegistration.component bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginNewThreadPanelActionRegistration.icon bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginNewThreadPanelActionRegistration.id bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginNewThreadPanelActionRegistration.layout bb.layout.panels surface: LayoutPanelRegistration.frame Threads owns the launcher; Layout owns the frame choice.
app.contracts.PluginNewThreadPanelActionRegistration.run bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginNewThreadPanelActionRegistration.title bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginNewThreadPanelProps bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginNewThreadPanelProps.params bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginNewThreadPanelProps.projectId bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginPanelActionOpenOptions bb.layout.panels surface: LayoutPanelOpenOptions state replaces params; the frame keeps the optional title.
app.contracts.PluginPendingInteractionProps bb.thread-ui.timeline.item surface: InteractionItemProps The keyed timeline component displays the interaction.
app.contracts.PluginPendingInteractionProps.cancel bb.thread-ui.timeline.item surface: InteractionItemProps The keyed timeline component displays the interaction.
app.contracts.PluginPendingInteractionProps.interaction bb.thread-ui.timeline.item surface: InteractionItemProps The keyed timeline component displays the interaction.
app.contracts.PluginPendingInteractionProps.submit bb.thread-ui.timeline.item surface: InteractionItemProps The keyed timeline component displays the interaction.
app.contracts.PluginPendingInteractionRegistration bb.thread-ui.timeline.item surface: InteractionItemProps The keyed timeline component displays the interaction.
app.contracts.PluginPendingInteractionView bb.thread-ui.timeline.item surface: InteractionItemProps The keyed timeline component displays the interaction.
app.contracts.PluginProviderIconRegistration ProviderDeclaration.icon or exact app export Provider identity data replaces the global icon slot.
app.contracts.PluginProviderIconRegistration.icon ProviderDeclaration.icon A plugin can also export an exact React icon module.
app.contracts.PluginProviderIconRegistration.providerId ProviderDeclaration.id The provider key identifies the icon owner.
app.contracts.PluginProvidersState @bb/providers/app: ProviderDirectoryState The state reports directory status and provider records.
app.contracts.PluginRealtimeConnectionState @get-bb/plugin/app: RealtimeConnectionState The app adapter keeps the shared connection states.
app.contracts.PluginRpcClient @get-bb/plugin/app: RpcClient The client binds one plugin RPC contract.
app.contracts.PluginRpcClient.call @get-bb/plugin/app: RpcClient.call() The call remains typed by method input and output.
app.contracts.PluginSettingsSectionProps bb.settings.pages surface: SettingsPageProps Pages receive routing and compact-layout data.
app.contracts.PluginSettingsSectionRegistration bb.settings.pages surface: SettingsPageRegistration A list-surface registration replaces the fixed slot registration.
app.contracts.PluginSettingsSectionRegistration.component bb.settings.pages surface: SettingsPageRegistration.component The component now receives SettingsPageProps.
app.contracts.PluginSettingsSectionRegistration.description bb.settings.pages surface: SettingsPageRegistration.description The page can show the description below its heading.
app.contracts.PluginSettingsSectionRegistration.id bb.settings.pages surface: SettingsPageRegistration.id The runtime qualifies the ID with the claimant plugin ID.
app.contracts.PluginSettingsSectionRegistration.title bb.settings.pages surface: SettingsPageRegistration.label The page label appears in navigation and the page header.
app.contracts.PluginSettingsState @bb/settings/hooks: UsePluginSettingsState The UI state adapts bb.preferences, reports errors, and keeps secret values out.
app.contracts.PluginSidebarFooterActionContext bb.layout.statusbar surface: LayoutStatusItemProps The shell controllers replace the special footer context.
app.contracts.PluginSidebarFooterActionContext.openSettings bb.commands command: bb.settings.openCurrent A status action runs the Settings command through api.commands.
app.contracts.PluginSidebarFooterActionProps bb.layout.statusbar surface: LayoutStatusItemProps The new props include route and shell controllers.
app.contracts.PluginSidebarFooterActionRegistration bb.layout.statusbar surface: LayoutStatusItemRegistration The data-only form keeps the host-rendered action.
app.contracts.PluginSidebarProject bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginSidebarPullRequest bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginSidebarSplit bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginSidebarSplitPane bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginSidebarThread bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginSidebarThreadActions bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginSidebarThreadActions.archive bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginSidebarThreadActions.open bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginSidebarThreadActions.openNewThread bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginSidebarThreadActions.rename bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginSidebarThreadActions.requestDelete bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginSidebarThreadActions.setPinned bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginSidebarThreadActions.setRead bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginSidebarThreadActivity bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginSidebarThreadIndicator bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginSidebarThreadPullRequestState bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginSidebarThreadsState bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginSidebarWorkspaceKind bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginSourceCodeRendererProps SourceSurfaceProps The stable type keeps the resolved values and Original.
app.contracts.PluginSourceCodeRendererProps.Original SourceSurfaceProps.Original A single surface winner receives the default component.
app.contracts.PluginSourceCodeRendererProps.content SourceSurfaceProps.content The field stays required.
app.contracts.PluginSourceCodeRendererProps.highlightedLines SourceSurfaceProps.highlightedLines The field stays resolved and nullable.
app.contracts.PluginSourceCodeRendererProps.overflow SourceSurfaceProps.overflow The field stays resolved and required.
app.contracts.PluginSourceCodeRendererProps.path SourceSurfaceProps.path The field stays required.
app.contracts.PluginSourceCodeRendererRegistration bb.files-ui.source claim plus api.surfaces.provide() The surface declaration owns the props type.
app.contracts.PluginTargetedPanelActionOpenOptions bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginThreadHeaderActionProps bb.thread-ui.view surface: ThreadViewProps.headerActions A view winner can wrap Original.
app.contracts.PluginThreadHeaderActionProps.isCompactViewport bb.thread-ui.view surface: ThreadViewProps.headerActions A view winner can wrap Original.
app.contracts.PluginThreadHeaderActionProps.projectId bb.thread-ui.view surface: ThreadViewProps.headerActions A view winner can wrap Original.
app.contracts.PluginThreadHeaderActionProps.threadId bb.thread-ui.view surface: ThreadViewProps.headerActions A view winner can wrap Original.
app.contracts.PluginThreadHeaderActionRegistration bb.thread-ui.view surface: ThreadViewProps.headerActions A view winner can wrap Original.
app.contracts.PluginThreadListProps bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginThreadListProps.Original bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginThreadListProps.activeProjectId bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginThreadListProps.activeThreadId bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginThreadListProps.isCompactViewport bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginThreadListProps.onNavigate bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginThreadListProps.searchQuery bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginThreadListRegistration bb.thread-ui.list surface: ThreadListProps and ThreadSummary The list surface receives data and actions through typed props.
app.contracts.PluginThreadPanelActionContext bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginThreadPanelActionContext.openPanel bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginThreadPanelActionRegistration bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginThreadPanelActionRegistration.component bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginThreadPanelActionRegistration.icon bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginThreadPanelActionRegistration.id bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginThreadPanelActionRegistration.layout bb.layout.panels surface: LayoutPanelRegistration.frame Threads owns the body; Layout owns the frame choice.
app.contracts.PluginThreadPanelActionRegistration.run bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginThreadPanelActionRegistration.title bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginThreadPanelProps bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginThreadPanelProps.params bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginThreadPanelProps.threadId bb.thread-ui.sidePanels surface: ThreadSidePanelContribution and ThreadSidePanelProps One list contract replaces panel action and panel body records.
app.contracts.PluginTimelineRendererProps bb.thread-ui.timeline.item surface: TimelineItem and TimelineItemProps The keyed contract uses the canonical item type.
app.contracts.PluginTimelineRendererRegistration bb.thread-ui.timeline.item surface: TimelineItem and TimelineItemProps The keyed contract uses the canonical item type.
app.contracts.PluginTimelineRendererRegistration.component bb.thread-ui.timeline.item surface: TimelineItem and TimelineItemProps The keyed contract uses the canonical item type.
app.contracts.PluginTimelineRendererRegistration.kind bb.thread-ui.timeline.item surface: TimelineItem and TimelineItemProps The keyed contract uses the canonical item type.
app.contracts.PluginTimelineRendererRow bb.thread-ui.timeline.item surface: TimelineItem and TimelineItemProps The keyed contract uses the canonical item type.
app.contracts.PluginTimelineRowPresentation bb.thread-ui.timeline.item surface: TimelineItem and TimelineItemProps The keyed contract uses the canonical item type.
app.contracts.PluginTimelineRowStatus bb.thread-ui.timeline.item surface: TimelineItem and TimelineItemProps The keyed contract uses the canonical item type.
app.contracts.SourceCodeLineRange SourceCodeLineRange The stable type keeps inclusive one-based lines.
app.contracts.SourceCodeProps SourceRenderProps The exact component and surface use one base type.
app.contracts.SourceCodeProps.className SourceRenderProps.className The optional root class stays available.
app.contracts.SourceCodeProps.content SourceRenderProps.content The field stays required.
app.contracts.SourceCodeProps.highlightedLines SourceRenderProps.highlightedLines The owner resolves absent input to null.
app.contracts.SourceCodeProps.overflow SourceRenderProps.overflow The owner resolves the default before the surface call.
app.contracts.SourceCodeProps.path SourceRenderProps.path The field stays required.
app.contracts.ThreadChatMessageAction @bb/thread-ui/components: ThreadChat and its props The exact component export keeps instance actions.
app.contracts.ThreadChatMessageReference @bb/thread-ui/components: ThreadChat and its props The exact component export keeps instance actions.
app.contracts.ThreadChatProps @bb/thread-ui/components: ThreadChat and its props The exact component export keeps instance actions.
app.contracts.UrlLinkProps @bb/ui: UrlLinkProps The semantic link keeps standard anchor props and BB URL policy.
app.coreUi @bb/ui/core The stable module contains shared display helpers.
app.coreUi.EnvironmentDisplayHostContext @bb/ui/core: EnvironmentDisplayHostContext Pure type export.
app.coreUi.EnvironmentDisplayInfo @bb/ui/core: EnvironmentDisplayInfo Pure type export.
app.coreUi.PendingInteractionToolUseAsk @bb/ui/core: PendingInteractionToolUseAsk Pure type export.
app.coreUi.assertNever @bb/ui/core: assertNever Pure helper export.
app.coreUi.buildPendingInteractionApprovalResolution @bb/ui/core: buildPendingInteractionApprovalResolution Pure helper export.
app.coreUi.describePendingInteractionToolUse @bb/ui/core: describePendingInteractionToolUse Pure helper export.
app.coreUi.extractErrorMessage @bb/ui/core: extractErrorMessage Pure helper export.
app.coreUi.formatEnvironmentDisplay @bb/ui/core: formatEnvironmentDisplay Pure helper export.
app.coreUi.formatPendingInteractionApprovalResolutionOutcome @bb/ui/core: formatPendingInteractionApprovalResolutionOutcome Pure helper export.
app.coreUi.formatPendingInteractionSubjectDetailLines @bb/ui/core: formatPendingInteractionSubjectDetailLines Pure helper export.
app.coreUi.formatPendingInteractionSummary @bb/ui/core: formatPendingInteractionSummary Pure helper export.
app.coreUi.formatPendingInteractionToolUseDetailLines @bb/ui/core: formatPendingInteractionToolUseDetailLines Pure helper export.
app.coreUi.formatPendingInteractionUserQuestionOptionLabel @bb/ui/core: formatPendingInteractionUserQuestionOptionLabel Pure helper export.
app.coreUi.summarizePendingInteractionRequestedPermissions @bb/ui/core: summarizePendingInteractionRequestedPermissions Pure helper export.
app.coreUi.toRecord @bb/ui/core: toRecord Pure helper export.
app.definePluginApp definePlugin(factory) Replaced by the app factory.
app.fileOpener.Original dropped A keyed surface has no Original. Use FileOpenerProps.renderPreview().
app.fileOpener.path FileOpenerProps.target.path The target contains the path.
app.fileOpener.source FileOpenerProps.target FileTarget provides the stable source identity.
app.hooks.experimental_useAppPanel @bb/layout/hooks: usePanelController() The controller opens, focuses, closes, and moves shell panels.
app.hooks.experimental_useCodeTheme @bb/layout/hooks: useLayoutTheme() The hook returns the active mode and resolved code theme.
app.hooks.experimental_useFixedTabTarget @bb/layout/hooks: usePanelTarget() The hook reads the target and its sequence from LayoutPanelProps.
app.hooks.experimental_useProviders @bb/providers/app: useProviders() The stable hook reads the active provider directory.
app.hooks.experimental_useSidebarThreadActions bb.thread-ui.list surface: ThreadListProps.actions The surface receives the typed list actions.
app.hooks.experimental_useSidebarThreadPullRequest bb.thread-ui.list surface: ThreadSummary and view wrappers A list winner can add thread status data through its own service.
app.hooks.experimental_useSidebarThreadSplit bb.thread-ui.list surface: ThreadListProps.actions.open() The open action selects current or split placement.
app.hooks.experimental_useSidebarThreads bb.thread-ui.list surface: ThreadListProps.state The surface receives the typed list state.
app.hooks.useBbContext @bb/workspace/app: useWorkspaceContext() Adds environment and typed route state.
app.hooks.useBbNavigate @bb/workspace/app: useWorkspaceNavigate() Returns typed workspace route actions.
app.hooks.useComposer @bb/thread-ui/app: useComposer() The hook returns the shared composer handle.
app.hooks.useComposerView @bb/thread-ui/app: useComposerView() The hook reads the active composer props.
app.hooks.useRealtime @get-bb/plugin/app: useRealtime() The hook adapts the bb.realtime port.
app.hooks.useRealtimeConnectionState @get-bb/plugin/app: useRealtimeConnectionState() The hook reports the shared transport state.
app.hooks.useRpc @get-bb/plugin/app: useRpc() The hook returns a typed client for bb.rpc.
app.hooks.useSettings @bb/settings/hooks: usePluginSettings() The hook adapts bb.preferences, omits secrets, and reports errors.
app.interaction-contracts @bb/thread-ui/interactions exports Shared schemas remain available to native clients.
app.interactions.ASK_USER_QUESTION_RENDERER_ID @bb/thread-ui/interactions: ASK_USER_QUESTION_RENDERER_ID The interaction export keeps the shared wire shape.
app.interactions.InteractionAnswer @bb/thread-ui/interactions: InteractionAnswer The interaction export keeps the shared wire shape.
app.interactions.InteractionOption @bb/thread-ui/interactions: InteractionOption The interaction export keeps the shared wire shape.
app.interactions.InteractionPayload @bb/thread-ui/interactions: InteractionPayload The interaction export keeps the shared wire shape.
app.interactions.InteractionQuestion @bb/thread-ui/interactions: InteractionQuestion The interaction export keeps the shared wire shape.
app.interactions.InteractionResponse @bb/thread-ui/interactions: InteractionResponse The interaction export keeps the shared wire shape.
app.interactions.MAX_OPTIONS @bb/thread-ui/interactions: MAX_OPTIONS The interaction export keeps the shared wire shape.
app.interactions.MAX_OPTION_PREVIEW_LENGTH @bb/thread-ui/interactions: MAX_OPTION_PREVIEW_LENGTH The interaction export keeps the shared wire shape.
app.interactions.MAX_QUESTIONS @bb/thread-ui/interactions: MAX_QUESTIONS The interaction export keeps the shared wire shape.
app.interactions.SECRET_REQUEST_RENDERER_ID @bb/thread-ui/interactions: SECRET_REQUEST_RENDERER_ID The interaction export keeps the shared wire shape.
app.interactions.SecretRequestPayload @bb/thread-ui/interactions: SecretRequestPayload The interaction export keeps the shared wire shape.
app.interactions.SecretRequestResponse @bb/thread-ui/interactions: SecretRequestResponse The interaction export keeps the shared wire shape.
app.interactions.interactionPayloadSchema @bb/thread-ui/interactions: interactionPayloadSchema The interaction export keeps the shared wire shape.
app.interactions.interactionResponseSchema @bb/thread-ui/interactions: interactionResponseSchema The interaction export keeps the shared wire shape.
app.interactions.secretNameSchema @bb/thread-ui/interactions: secretNameSchema The interaction export keeps the shared wire shape.
app.interactions.secretRequestPayloadSchema @bb/thread-ui/interactions: secretRequestPayloadSchema The interaction export keeps the shared wire shape.
app.interactions.secretRequestResponseSchema @bb/thread-ui/interactions: secretRequestResponseSchema The interaction export keeps the shared wire shape.
app.mentions.PluginMentionItem bb.mentions.provider: MentionItem The provider returns the same row data.
app.mentions.PluginMentionProviderRegistration bb.mentions.provider: claim, facts, and MentionProvider The static claim replaces the app-visible registration record.
app.mentions.PluginMentionSearchContext bb.mentions.provider: MentionProviderSearchInput Project and thread scope remain nullable.
app.mentions.PluginMentionSearchGroup bb.mentions service: MentionSearchGroup One trigger produces at most one winner group.
app.mentions.PluginMentionSearchItem bb.mentions service: MentionSearchItem The wire row keeps the old nullable subtitle and icon.
app.mentions.PluginMentionTrigger bb.mentions.provider: MentionTrigger key Version 1 keeps the five old trigger characters.
app.mentions.PluginUi.registerMentionProvider bb.mentions.provider keyed claim plus api.services.provide() The factory uses the ordinary service path.
app.mentions.contributions bb.mentions service: providers() The app no longer uses a special contributions route.
app.mentions.search bb.mentions service: search() The typed service replaces the special mention search route.
app.module @get-bb/plugin/app module Replaced by the tier-specific app entry.
app.replacement.AUTOMATIC_REPLACEMENT_PROVIDER ArbitrationRecord.source: default The migration converts the automatic sentinel to the declared default.
app.replacement.BUILT_IN_REPLACEMENT_PROVIDER ContractRecord.defaultClaimant The migration pins the declared built-in default claimant.
app.replacement.diffPreference bb.files-ui.diff global winner The kernel migrates the old local pin.
app.replacement.fileOpenerOverride dropped bb.files-ui.opener has one global winner per extension. Import an exact component when choice must stay fixed.
app.replacement.fileOpenerPreference bb.files-ui.opener keyed global winners One winner exists for each extension key.
app.replacement.replacementProviderKey arbitration identity: contractId plus key The kernel stores the normalized contract identity directly.
app.replacement.sourceCodePreference bb.files-ui.source global winner The kernel migrates the old local pin.
app.replacement.threadListPreference kernel winner store: bb.thread-ui.list The global winner replaces the client local-storage preference.
app.rpc.JsonValue @get-bb/plugin/contracts: JsonValue The contracts package keeps the typed RPC boundary.
app.rpc.PluginRpcCallArgs @get-bb/plugin/contracts: RpcCallArgs The contracts package keeps the typed RPC boundary.
app.rpc.PluginRpcContract @get-bb/plugin/contracts: RpcContract The contracts package keeps the typed RPC boundary.
app.rpc.PluginRpcError @get-bb/plugin/contracts: RpcError The contracts package keeps the typed RPC boundary.
app.rpc.PluginRpcErrorCode @get-bb/plugin/contracts: RpcErrorCode The contracts package keeps the typed RPC boundary.
app.rpc.PluginRpcHandlers @get-bb/plugin/contracts: RpcHandlers The contracts package keeps the typed RPC boundary.
app.rpc.PluginRpcIssuePathSegment @get-bb/plugin/contracts: RpcIssuePathSegment The contracts package keeps the typed RPC boundary.
app.rpc.PluginRpcMethodContract @get-bb/plugin/contracts: RpcMethodContract The contracts package keeps the typed RPC boundary.
app.rpc.PluginRpcMethodContract.input @get-bb/plugin/contracts: RpcMethodContract.input The contracts package keeps the typed RPC boundary.
app.rpc.PluginRpcMethodContract.output @get-bb/plugin/contracts: RpcMethodContract.output The contracts package keeps the typed RPC boundary.
app.rpc.PluginRpcResult @get-bb/plugin/contracts: RpcResult The contracts package keeps the typed RPC boundary.
app.rpc.PluginRpcValidationIssue @get-bb/plugin/contracts: RpcValidationIssue The contracts package keeps the typed RPC boundary.
app.rpc.StandardSchemaV1 @get-bb/plugin/contracts: StandardSchemaV1 The contracts package keeps the typed RPC boundary.
app.rpc.StandardSchemaV1InferInput @get-bb/plugin/contracts: StandardSchemaV1InferInput The contracts package keeps the typed RPC boundary.
app.rpc.StandardSchemaV1InferOutput @get-bb/plugin/contracts: StandardSchemaV1InferOutput The contracts package keeps the typed RPC boundary.
app.rpc.StandardSchemaV1Issue @get-bb/plugin/contracts: StandardSchemaV1Issue The contracts package keeps the typed RPC boundary.
app.rpc.StandardSchemaV1Result @get-bb/plugin/contracts: StandardSchemaV1Result The contracts package keeps the typed RPC boundary.
app.rpc.defineRpcContract @get-bb/plugin/contracts: defineRpcContract The contracts package keeps the typed RPC boundary.
app.slots AppPluginApi.surfaces Owner-declared contracts replace the open slot namespace.
app.slots.commandPaletteAction bb.commands.command keyed service: api.commands.add() The bb.commands-ui palette reads the keyed command catalog.
app.slots.experimental_diffRenderer bb.files-ui.diff single surface The global winner replaces the local slot pin.
app.slots.experimental_newThreadPanelAction bb.thread-ui.sidePanels surface The placement field selects the new-thread context.
app.slots.experimental_providerIcon dropped Declare icon data or export an exact provider icon component.
app.slots.experimental_sourceCodeRenderer bb.files-ui.source single surface The global winner replaces the local slot pin.
app.slots.experimental_threadHeaderAction bb.thread-ui.view surface: ThreadViewProps.headerActions A view winner can wrap Original and add typed actions.
app.slots.experimental_threadList bb.thread-ui.list surface The single surface uses the global winner store.
app.slots.experimental_timelineRenderer bb.thread-ui.timeline.item surface The keyed surface selects one winner for each item type.
app.slots.fileOpener bb.files-ui.opener keyed surface Each normalized extension is a key.
app.slots.homepageSection bb.thread-ui.composer.actions surface with placement: stack The default composer owns this presentation-only affordance.
app.slots.messageAction bb.thread-ui.view surface: ThreadViewProps.messageActions A view wrapper or ThreadChat instance adds typed actions.
app.slots.messageDirective bb.thread-ui.timeline.item surface A plugin-owned directive becomes a plugin-owned item type.
app.slots.navPanel bb.layout.panels surface: api.surfaces.add() One panel declaration can add navigation metadata.
app.slots.pendingInteraction bb.thread-ui.timeline.item surface and bb.threads interactions service The keyed item component shows pending and final states.
app.slots.settingsSection bb.settings.pages surface Each old section becomes an ordered settings page claim.
app.slots.sidebarFooterAction bb.layout.statusbar surface: api.surfaces.add() The default sidebar can place status entries in its footer.
app.slots.threadPanelAction bb.thread-ui.sidePanels surface A list contribution provides the thread launcher and body.

bridge

Old item New home Note
bridge.context bb.providers.bridge host role: ProviderBridgeContext
bridge.define @bb/providers/bridge: defineProviderBridge()
bridge.definition bb.providers.bridge host role: ProviderBridgeDefinition
bridge.definition.handleLine bb.providers.bridge host role: ProviderBridgeDefinition.handleLine
bridge.definition.onClose bb.providers.bridge host role: ProviderBridgeDefinition.onClose
bridge.definition.onSigint bb.providers.bridge host role: ProviderBridgeDefinition.onSigint
bridge.definition.onSigterm bb.providers.bridge host role: ProviderBridgeDefinition.onSigterm
bridge.definition.start bb.providers.bridge host role: ProviderBridgeDefinition.start
bridge.delta.backgroundTask @bb/providers/bridge: BackgroundTaskItem
bridge.delta.commandSnapshot @bb/providers/bridge: ThreadDelta.commandSnapshot
bridge.delta.contextCleared @bb/providers/bridge: ThreadDelta.contextCleared
bridge.delta.contextCompacted @bb/providers/bridge: ThreadDelta.contextCompacted
bridge.delta.contextWindow @bb/providers/bridge: ThreadDelta.contextWindow
bridge.delta.delegation @bb/providers/bridge: DelegationItem
bridge.delta.extension @bb/providers/bridge: ExtensionItem
bridge.delta.extensionState @bb/providers/bridge: ThreadDelta.extensionState
bridge.delta.fileChange @bb/providers/bridge: DeltaFileChange
bridge.delta.fileRead @bb/providers/bridge: FileReadItem
bridge.delta.inputAccepted @bb/providers/bridge: ThreadDelta.inputAccepted
bridge.delta.inputProvider @bb/providers/bridge: ThreadDelta.inputProvider
bridge.delta.item @bb/providers/bridge: DeltaItem
bridge.delta.itemClose @bb/providers/bridge: ThreadDelta.itemClose
bridge.delta.itemKey @bb/providers/bridge: DeltaItemKey
bridge.delta.itemOpen @bb/providers/bridge: ThreadDelta.itemOpen
bridge.delta.itemProgress @bb/providers/bridge: ThreadDelta.itemProgress
bridge.delta.itemTypes @bb/providers/bridge: DeltaItem["type"]
bridge.delta.kinds @bb/providers/bridge: ThreadDelta union The union keeps all normalized delta kinds.
bridge.delta.method @bb/providers/bridge: THREAD_DELTA_NOTIFICATION_METHOD
bridge.delta.modelFallback @bb/providers/bridge: ThreadDelta.modelFallback
bridge.delta.noTurnFallback @bb/providers/bridge: DeltaNoTurnFallback
bridge.delta.notification bb.providers.bridge host role: thread/delta notification
bridge.delta.outputChannel @bb/providers/bridge: DeltaOutputChannel
bridge.delta.outputDelta @bb/providers/bridge: ThreadDelta.outputDelta
bridge.delta.planSteps @bb/providers/bridge: PlanStepsItem
bridge.delta.progress @bb/providers/bridge: DeltaProgressSnapshot
bridge.delta.providerError @bb/providers/bridge: ThreadDelta.providerError
bridge.delta.rateLimits @bb/providers/bridge: ThreadDelta.rateLimits
bridge.delta.search @bb/providers/bridge: SearchItem
bridge.delta.sessionEnded @bb/providers/bridge: ThreadDelta.sessionEnded
bridge.delta.sessionReset @bb/providers/bridge: ThreadDelta.sessionReset
bridge.delta.textChannel @bb/providers/bridge: DeltaTextChannel
bridge.delta.textClose @bb/providers/bridge: ThreadDelta.textClose
bridge.delta.textDelta @bb/providers/bridge: ThreadDelta.textDelta
bridge.delta.threadIdentity @bb/providers/bridge: ThreadDelta.threadIdentity
bridge.delta.threadName @bb/providers/bridge: ThreadDelta.threadName
bridge.delta.threadStarted @bb/providers/bridge: ThreadDelta.threadStarted
bridge.delta.turnBoundary @bb/providers/bridge: ThreadDelta.turnBoundary
bridge.delta.turnDiff @bb/providers/bridge: ThreadDelta.turnDiff
bridge.delta.turnOpen @bb/providers/bridge: ThreadDelta.turnOpen
bridge.delta.unhandled @bb/providers/bridge: ThreadDelta.unhandled
bridge.delta.usage @bb/providers/bridge: ThreadDelta.usage
bridge.delta.warning @bb/providers/bridge: ThreadDelta.warning
bridge.entry bb.providers.bridge host role: ProviderBridgeEntry
bridge.env.withoutRuntime bb.providers.host.supervisor: childEnv() The shared supervisor removes runtime-only environment values.
bridge.error.codes @bb/providers/bridge: BRIDGE_JSON_RPC_ERRORS
bridge.error.data @bb/providers/bridge: BridgeError.data
bridge.execution.envVars @bb/providers/bridge: BridgeExecutionOptions.envVars
bridge.execution.instructions @bb/providers/bridge: BridgeExecutionOptions.instructions
bridge.execution.model @bb/providers/bridge: BridgeExecutionOptions.model
bridge.execution.promptMode @bb/providers/bridge: BridgeExecutionOptions.promptMode
bridge.execution.providerOptions @bb/providers/bridge: BridgeExecutionOptions.providerOptions
bridge.execution.reasoningLevel @bb/providers/bridge: BridgeExecutionOptions.reasoningLevel
bridge.execution.serviceTier @bb/providers/bridge: BridgeExecutionOptions.serviceTier
bridge.experimental_acpAgentProbeSchema @bb/providers/bridge/acp: experimental_acpAgentProbeSchema The export stays experimental.
bridge.experimental_acpLaunchSpecSchema @bb/providers/bridge/acp: experimental_acpLaunchSpecSchema The export stays experimental.
bridge.experimental_acpProviderBridge @bb/providers/bridge/acp: experimental_acpProviderBridge The adapter uses the stable bridge role.
bridge.experimental_buildBridgeToolCallContent bb.providers.host.requests: buildToolContent() The shared request service replaces the experimental helper.
bridge.experimental_probeAcpAgent @bb/providers/bridge/acp: experimental_probeAcpAgent() The export stays experimental.
bridge.experimental_recordProviderChildIo bb.providers.host.supervisor: recordChildIo() The shared supervisor owns transcript records.
bridge.experimental_toolPresentation @bb/providers/bridge/acp: experimental_toolPresentation The ACP presentation adapter stays experimental.
bridge.exportName dropped The bb.providers.bridge host-role claim replaces the magic experimental_providerBridge export.
bridge.handshake.capabilities @bb/providers/bridge: handshake.capabilities
bridge.handshake.capabilities.approvalEnforcedBy @bb/providers/bridge: handshake.capabilities.approvalEnforcedBy
bridge.handshake.capabilities.fork @bb/providers/bridge: handshake.capabilities.fork
bridge.handshake.capabilities.grammarVersions @bb/providers/bridge: handshake.capabilities.grammarVersions
bridge.handshake.capabilities.sessionRestore @bb/providers/bridge: handshake.capabilities.sessionRestore
bridge.handshake.capabilities.skills @bb/providers/bridge: handshake.capabilities.skills
bridge.handshake.capabilities.steerMode @bb/providers/bridge: handshake.capabilities.steerMode
bridge.handshake.capabilities.threadArchive @bb/providers/bridge: handshake.capabilities.threadArchive
bridge.handshake.capabilities.threadGoalClear @bb/providers/bridge: handshake.capabilities.threadGoalClear
bridge.handshake.capabilities.threadRename @bb/providers/bridge: handshake.capabilities.threadRename
bridge.handshake.grammarVersions @bb/providers/bridge: handshake.grammarVersions
bridge.handshake.initialize @bb/providers/bridge: handshake.initialize
bridge.handshake.negotiateGrammar @bb/providers/bridge: handshake.negotiateGrammar
bridge.handshake.steerMode @bb/providers/bridge: handshake.steerMode
bridge.inbound.interaction bb.providers.host.requests: interaction The shared request service tracks the response.
bridge.inbound.methods @bb/providers/bridge: BRIDGE_RUNTIME_REQUEST_METHODS
bridge.inbound.toolCall bb.providers.host.requests: toolCall The shared request service tracks the response.
bridge.interaction.secretRequest @bb/providers/bridge: SecretInteraction The kernel secrets port stores the submitted value.
bridge.io.create bb.providers.host.requests: transport.create The shared request service owns JSON-RPC output.
bridge.io.lineHandler bb.providers.host.requests: transport.lineHandler The shared request service owns JSON-RPC output.
bridge.io.recoveryError bb.providers.host.requests: transport.recoveryError The shared request service owns JSON-RPC output.
bridge.io.runRequest bb.providers.host.requests: transport.runRequest The shared request service owns JSON-RPC output.
bridge.io.sendError bb.providers.host.requests: transport.sendError The shared request service owns JSON-RPC output.
bridge.jsonrpc.commandPlan @bb/providers/bridge: JsonRpc.commandPlan The bridge runtime owns transport decoding.
bridge.jsonrpc.decodeToolCall @bb/providers/bridge: JsonRpc.decodeToolCall The bridge runtime owns transport decoding.
bridge.jsonrpc.decodedInteraction @bb/providers/bridge: JsonRpc.decodedInteraction The bridge runtime owns transport decoding.
bridge.jsonrpc.decodedToolCall @bb/providers/bridge: JsonRpc.decodedToolCall The bridge runtime owns transport decoding.
bridge.jsonrpc.inboundRequest @bb/providers/bridge: JsonRpc.inboundRequest The bridge runtime owns transport decoding.
bridge.jsonrpc.message @bb/providers/bridge: JsonRpc.message The bridge runtime owns transport decoding.
bridge.jsonrpc.noopPlan @bb/providers/bridge: JsonRpc.noopPlan The bridge runtime owns transport decoding.
bridge.jsonrpc.postInitialize @bb/providers/bridge: JsonRpc.postInitialize The bridge runtime owns transport decoding.
bridge.jsonrpc.requestPlan @bb/providers/bridge: JsonRpc.requestPlan The bridge runtime owns transport decoding.
bridge.jsonrpc.runtimeEvent @bb/providers/bridge: JsonRpc.runtimeEvent The bridge runtime owns transport decoding.
bridge.lines.args @bb/providers/host: BoundedLineReaderOptions
bridge.lines.maxBytes bb.providers.host.supervisor: MAX_BRIDGE_LINE_BYTES
bridge.lines.read bb.providers.host.supervisor: readBoundedLines()
bridge.maintenance.clampPercent bb.providers.host.maintenance: clampPercent() The shared host service removes provider-local probe code.
bridge.maintenance.command @bb/providers/bridge: ProviderInstallationCommand
bridge.maintenance.commandOutput bb.providers.host.maintenance: commandOutput() The shared host service removes provider-local probe code.
bridge.maintenance.compareVersions bb.providers.host.maintenance: compareVersions() The shared host service removes provider-local probe code.
bridge.maintenance.downloadedInstaller bb.providers.host.maintenance: downloadedInstaller() The shared host service removes provider-local probe code.
bridge.maintenance.formatCommand bb.providers.host.maintenance: formatCommand() The shared host service removes provider-local probe code.
bridge.maintenance.health @bb/providers/bridge: ProviderHealth
bridge.maintenance.installAction @bb/providers/bridge: ProviderInstallationAction
bridge.maintenance.installSource bb.providers.host.maintenance: installSource() The shared host service removes provider-local probe code.
bridge.maintenance.installStatus @bb/providers/bridge: ProviderInstallationStatus
bridge.maintenance.installationVerification bb.providers.host.maintenance: installationVerification() The shared host service removes provider-local probe code.
bridge.maintenance.npmCommand bb.providers.host.maintenance: npmCommand() The shared host service removes provider-local probe code.
bridge.maintenance.npmInstall bb.providers.host.maintenance: npmInstall() The shared host service removes provider-local probe code.
bridge.maintenance.npmLatest bb.providers.host.maintenance: npmLatest() The shared host service removes provider-local probe code.
bridge.maintenance.npmProbe bb.providers.host.maintenance: npmProbe() The shared host service removes provider-local probe code.
bridge.maintenance.npmProbeType @bb/providers/host: NpmGlobalPackageProbe
bridge.maintenance.readCliVersion bb.providers.host.maintenance: readCliVersion() The shared host service removes provider-local probe code.
bridge.maintenance.resolveExecutable bb.providers.host.maintenance: resolveExecutable() The shared host service removes provider-local probe code.
bridge.maintenance.runResult @bb/providers/bridge: ProviderInstallationRunResult
bridge.maintenance.usage @bb/providers/bridge: ProviderUsage
bridge.maintenance.verification @bb/providers/bridge: ProviderInstallationVerification
bridge.maintenance.versionFrom bb.providers.host.maintenance: versionFrom() The shared host service removes provider-local probe code.
bridge.maintenance.window @bb/providers/bridge: ProviderUsageWindow
bridge.notification.error bb.providers.bridge host role: notify.error
bridge.notification.methods @bb/providers/bridge: BRIDGE_NOTIFICATION_METHODS
bridge.notification.providerRaw bb.providers.bridge host role: notify.providerRaw
bridge.notification.recovery bb.providers.bridge host role: notify.recovery
bridge.notification.sessionReplaced bb.providers.bridge host role: notify.sessionReplaced
bridge.notification.threadIdentity bb.providers.bridge host role: notify.threadIdentity
bridge.parseEntry bb.providers.bridge host-role loader validation The loader validates contract.json before role start.
bridge.protocol.grammarV2 @bb/providers/bridge: delta grammar version 2 Kept for negotiated compatibility.
bridge.protocol.grammarV3 @bb/providers/bridge: delta grammar version 3 Kept for negotiated compatibility.
bridge.protocol.version @bb/providers/bridge: BRIDGE_PROTOCOL_VERSION
bridge.providerRawEventSchema @bb/providers/bridge: providerRawEventSchema
bridge.recovery.hint @bb/providers/bridge: ProviderRecoveryHint
bridge.request.executionOptions @bb/providers/bridge: BridgeExecutionOptions The type applies to thread and turn requests.
bridge.request.installRun bb.providers.bridge host role: installRun Runtime request handlers use this message contract.
bridge.request.installStatus bb.providers.bridge host role: installStatus Runtime request handlers use this message contract.
bridge.request.methods @bb/providers/bridge: RUNTIME_BRIDGE_METHODS
bridge.request.modelList bb.providers.bridge host role: modelList Runtime request handlers use this message contract.
bridge.request.providerHealth bb.providers.bridge host role: providerHealth Runtime request handlers use this message contract.
bridge.request.providerUsage bb.providers.bridge host role: providerUsage Runtime request handlers use this message contract.
bridge.request.skillsConfigure bb.providers.bridge host role: skillsConfigure Runtime request handlers use this message contract.
bridge.request.threadArchive bb.providers.bridge host role: threadArchive Runtime request handlers use this message contract.
bridge.request.threadDiscard bb.providers.bridge host role: threadDiscard Runtime request handlers use this message contract.
bridge.request.threadFork bb.providers.bridge host role: threadFork Runtime request handlers use this message contract.
bridge.request.threadGoalClear bb.providers.bridge host role: threadGoalClear Runtime request handlers use this message contract.
bridge.request.threadLifecycle bb.providers.bridge host role: threadLifecycle Runtime request handlers use this message contract.
bridge.request.threadNameSet bb.providers.bridge host role: threadNameSet Runtime request handlers use this message contract.
bridge.request.threadResume bb.providers.bridge host role: threadResume Runtime request handlers use this message contract.
bridge.request.threadStart bb.providers.bridge host role: threadStart Runtime request handlers use this message contract.
bridge.request.threadStop bb.providers.bridge host role: threadStop Runtime request handlers use this message contract.
bridge.request.threadUnarchive bb.providers.bridge host role: threadUnarchive Runtime request handlers use this message contract.
bridge.request.turnStart bb.providers.bridge host role: turnStart Runtime request handlers use this message contract.
bridge.request.turnSteer bb.providers.bridge host role: turnSteer Runtime request handlers use this message contract.
bridge.threadDelta @bb/providers/bridge: ThreadDelta and threadDeltaSchema
bridge.toolCall.buildContent bb.providers.host.requests: buildContent The shared host service owns pending tool calls.
bridge.toolCall.content @bb/providers/bridge: BridgeToolCall.content
bridge.toolCall.decodePayload bb.providers.host.requests: decodePayload The shared host service owns pending tool calls.
bridge.toolCall.decodeResponse bb.providers.host.requests: decodeResponse The shared host service owns pending tool calls.
bridge.toolCall.image @bb/providers/bridge: BridgeToolCall.image
bridge.toolCall.request @bb/providers/bridge: BridgeToolCall.request
bridge.toolCall.response @bb/providers/bridge: BridgeToolCall.response
bridge.toolCall.tracker bb.providers.host.requests: tracker The shared host service owns pending tool calls.
bridge.toolCall.tracker.create bb.providers.host.requests: tracker.create The shared host service owns pending tool calls.
bridge.toolCall.tracker.forward bb.providers.host.requests: tracker.forward The shared host service owns pending tool calls.
bridge.toolCall.tracker.handle bb.providers.host.requests: tracker.handle The shared host service owns pending tool calls.
bridge.toolCall.tracker.resolve bb.providers.host.requests: tracker.resolve The shared host service owns pending tool calls.
bridge.visibility.coverage @bb/providers/bridge: ProviderVisibility.coverage
bridge.visibility.create @bb/providers/bridge: ProviderVisibility.create
bridge.visibility.description @bb/providers/bridge: ProviderVisibility.description
bridge.visibility.metadata @bb/providers/bridge: ProviderVisibility.metadata

build

Old item New home Note
build.app bb plugin build: app build stage
build.app.options.minify bb plugin build --mode production: app minification
build.app.output.css dist/app.css
build.app.output.js dist/app.mjs
build.app.output.meta artifact.json: files for app.mjs and app.css
build.app.result build result: app artifact paths and digests
build.app.runtimeShims app runtime import map The host supplies React and the bb app runtime.
build.app.shimmedTypePackages 2.0 SDK app runtime allowlist
build.artifactMeta bb plugin build: create artifact.json
build.artifactMeta.fields artifact.json: ArtifactManifest
build.devLoop bb plugin dev: verified candidate loop
build.devLoop.deps bb plugin dev: build, verify, install, and reload adapters
build.devLoop.dispose bb plugin dev: stop watcher and candidate work
build.devLoop.handleChange bb plugin dev: queue changed source
build.devLoop.ignore bb plugin dev: source filter
build.devLoop.settled bb plugin dev: await current candidate
build.host bb plugin build: host build stage
build.host.output.js dist/host.mjs
build.host.output.map dist/host.mjs.map
build.host.output.meta artifact.json: files for host.mjs
build.host.result build result: host artifact paths and digest
build.server bb plugin build: server build stage
build.server.externals 2.0 SDK server runtime allowlist
build.server.output.js dist/server.mjs
build.server.output.map dist/server.mjs.map
build.server.output.meta artifact.json: files for server.mjs
build.server.result build result: server artifact paths and digests
build.svg.compactIcon bb plugin build: safe SVG validator
build.svg.icon bb plugin build: safe SVG validator
build.svg.logo bb plugin build: safe SVG validator
build.toolchain.pins artifact.json: builtWith.toolchain
build.toolchain.resolve bb plugin build: pinned toolchain resolver
build.toolchain.type 2.0 PluginBuildToolchain

cli

Old item New home Note
cli.marketplace.add bb marketplace add
cli.marketplace.list bb marketplace list
cli.marketplace.parent bb marketplace parent
cli.marketplace.refresh bb marketplace refresh
cli.marketplace.register kernel CLI registration: bb marketplace
cli.marketplace.remove bb marketplace remove
cli.plugin.build bb plugin build
cli.plugin.config bb plugin config
cli.plugin.dev bb plugin dev
cli.plugin.disable bb plugin disable
cli.plugin.enable bb plugin enable
cli.plugin.install bb plugin install
cli.plugin.install.json bb plugin install option: --json
cli.plugin.install.plugin bb plugin install option: --plugin
cli.plugin.install.subdirectory bb plugin install option: --subdirectory
cli.plugin.install.tagPrefix bb plugin install option: --tag-prefix
cli.plugin.install.yes bb plugin install option: --yes
cli.plugin.list bb plugin list
cli.plugin.logs bb plugin logs
cli.plugin.logs.follow bb plugin logs option: --follow
cli.plugin.logs.lines bb plugin logs option: --lines
cli.plugin.migrate bb plugin migrate
cli.plugin.migrate.yes bb plugin migrate option: --yes
cli.plugin.new bb plugin new
cli.plugin.outdated bb plugin outdated
cli.plugin.parent bb plugin parent
cli.plugin.register kernel CLI registration: bb plugin
cli.plugin.reload bb plugin reload
cli.plugin.remove bb plugin remove
cli.plugin.run bb plugin run
cli.plugin.search bb plugin search
cli.plugin.source bb plugin source
cli.plugin.token bb plugin token
cli.plugin.token.rotate bb plugin token option: --rotate
cli.plugin.types bb plugin types
cli.plugin.types.check bb plugin types option: --check
cli.plugin.update bb plugin update
cli.plugin.update.all bb plugin update option: --all
cli.plugin.update.yes bb plugin update option: --yes
cli.pluginCall bb plugin run <id> <verb>
cli.reservedCommands kernel CLI reserved word set

host

Old item New home Note
host.ai.contract <pluginId>.aiHost role: AiHostCommands A private typed role replaces the shared experimental host contract.
host.ai.declaration bb.agents.ai: AiService One public keyed service replaces the declaration-only form.
host.ai.declaration.displayName bb.agents.ai: AiService.displayName The label remains.
host.ai.declaration.id bb.agents.ai: AiService.id The ID selects the keyed winner.
host.ai.declaration.kinds bb.agents.ai: AiService.kinds The list must match the service method groups.
host.ai.errorCode @bb/agents/host: AiServiceErrorCode The stable error code union remains.
host.ai.inference.complete <pluginId>.aiHost role: inference.complete The explicit host verb remains.
host.ai.inference.input <pluginId>.aiHost role: AiInferenceHostInput The request keeps the service ID for host dispatch.
host.ai.inference.output <pluginId>.aiHost role: AiInferenceResult The structured result and classified failure remain.
host.ai.voice.input <pluginId>.aiHost role: AiVoiceHostInput The request keeps audio, file, prompt, and timeout data.
host.ai.voice.output <pluginId>.aiHost role: AiVoiceResult The text result and classified failure remain.
host.ai.voice.transcribe <pluginId>.aiHost role: voice.transcribe The explicit host verb remains.
host.api.aiServices api.ai The stable direct API replaces the experimental property.
host.api.aiServices.register api.ai.add() The server half provides a host-backed AI service.
host.api.dispose host factory disposer
host.api.hosts host factory: api.roles
host.api.hosts.client HostRolesPort.use()
host.api.hosts.declarePorts host role manifest: shared port declarations
host.api.hosts.ensureTunnel host daemon: tunnel.ensure
host.api.tunnelIdentity host daemon: tunnel identity
host.call.options HostRoleClient.call(): signal and timeoutMs
host.client HostRoleClient
host.client.call HostRoleClient.call()
host.client.signal HostRoleClient.onSignal()
host.client.workerExit HostRolesPort.watch(): role.exited
host.context.experimental_retainWorker bb.providers.host.supervisor: retainWorker() The shared supervisor owns worker leases.
host.daemon.bridgeLaunch bb.providers private bridge host role The Providers plugin owns bridge launch behavior.
host.daemon.events host daemon: session.events
host.daemon.interaction bb.providers private host role The Providers plugin owns tool and interaction behavior.
host.daemon.interactionInterrupt bb.providers private host role The Providers plugin owns tool and interaction behavior.
host.daemon.local.client host daemon local API: typed local client
host.daemon.local.health host daemon local API: local.health
host.daemon.local.openInTarget host daemon local API: local.openInTarget
host.daemon.local.openTargets host daemon local API: local.openTargets
host.daemon.local.status host daemon local API: local.status
host.daemon.local.statusType host daemon local API: LocalStatus
host.daemon.pluginHostCall host daemon: role.call
host.daemon.pluginHostCancel host daemon: role.cancel
host.daemon.pluginHostDispose host daemon: role.dispose
host.daemon.pluginHostSignal host daemon: role.signal
host.daemon.pluginHostWorkerExited host daemon: role.exited
host.daemon.providerHealth bb.providers private host role The daemon carries the typed call. The Providers plugin owns the verb.
host.daemon.providerInstallRun bb.providers private host role The daemon carries the typed call. The Providers plugin owns the verb.
host.daemon.providerInstallStatus bb.providers private host role The daemon carries the typed call. The Providers plugin owns the verb.
host.daemon.providerModels bb.providers private host role The daemon carries the typed call. The Providers plugin owns the verb.
host.daemon.providerUsage bb.providers private host role The daemon carries the typed call. The Providers plugin owns the verb.
host.daemon.sessionOpen host daemon: session.open
host.daemon.sessionOpenRequest host daemon: SessionOpenRequest
host.daemon.sessionOpenResponse host daemon: SessionOpenResponse
host.daemon.toolCall bb.providers private host role The Providers plugin owns tool and interaction behavior.
host.daemon.tunnelIdentity host daemon: tunnel.ensure identity
host.defineEntry defineHostPlugin()
host.entry defineHostPlugin() result
host.entry.contract contract.json: hostRoles[]
host.entry.dispose host factory disposer and HostRoleContext.signal
host.entry.experimental_apiVersion host artifact protocol version The version field is stable in 2.0.
host.entry.experimental_signals contract.json: hostRoles[].signals Signals are stable typed role members.
host.entry.handlers host factory: api.roles.provide() handlers
host.experimental_aiServicesHostContract <pluginId>.aiHost role: AiHostCommands This gap ID maps to the same private role as host.ai.contract.
host.experimental_nativeRootsHostContract bb.providers.nativeRoots host role The keyed role replaces the experimental host contract.
host.experimental_providerBridge bb.providers.bridge host role The keyed host-role claim replaces the magic export.
host.experimental_resolveClaudePluginRoots @bb/providers/host: experimental_resolveClaudePluginRoots() The vendor adapter stays experimental.
host.experimental_resolveVendorPluginRoots @bb/providers/host: experimental_resolveVendorPluginRoots() The vendor adapter stays experimental.
host.nativeRoots.answer bb.providers.nativeRoots: ProviderNativeRootsRole.resolve() input The role call carries the validated resolver answer.
host.nativeRoots.contract bb.providers.nativeRoots host role The keyed role replaces the experimental contract.
host.nativeRoots.dropped FilteredNativeRoots.dropped Validation still reports each removed root.
host.nativeRoots.filter bb.providers.host.declarations: filterNativeRoots() The shared host service validates and limits roots.
host.nativeRoots.filtered FilteredNativeRoots The result keeps accepted roots and validation reports.
host.nativeRoots.input ProviderResolvedNativeRootsInput The input keeps provider and workspace context.
host.nativeRoots.output ProviderResolvedNativeRoots The output keeps normalized skill and command roots.
host.nativeRoots.resolve bb.providers.nativeRoots: resolve() The keyed host role resolves host-specific roots.
host.paths HostRoleContext.paths
host.provider.capabilities bb.providers.provider: ProviderCapabilities
host.provider.capabilities.fork bb.providers.provider: ProviderCapabilities.fork
host.provider.capabilities.permissionModes bb.providers.provider: ProviderCapabilities.permissionModes
host.provider.capabilities.reasoningLevels bb.providers.provider: ProviderCapabilities.reasoningLevels
host.provider.capabilities.supportsManualCompaction bb.providers.provider: ProviderCapabilities.supportsManualCompaction
host.provider.capabilities.supportsNativeUserQuestion bb.providers.provider: ProviderCapabilities.supportsNativeUserQuestion
host.provider.capabilities.supportsServiceTier bb.providers.provider: ProviderCapabilities.supportsServiceTier
host.provider.capabilities.supportsThreadArchive bb.providers.provider: ProviderCapabilities.supportsThreadArchive
host.provider.capabilities.supportsThreadRename bb.providers.provider: ProviderCapabilities.supportsThreadRename
host.provider.declaration bb.providers.provider: ProviderDeclaration The server and host use one declaration type.
host.provider.declaration.capabilities bb.providers.provider: ProviderDeclaration.capabilities
host.provider.declaration.composerActions bb.providers.provider: ProviderDeclaration.composerActions
host.provider.declaration.deriveOptions bb.providers.provider: Provider.deriveOptions() Behavior moves from declaration data to the provider service.
host.provider.declaration.displayName bb.providers.provider: ProviderDeclaration.displayName
host.provider.declaration.env bb.providers.provider: ProviderDeclaration.env
host.provider.declaration.experimental_bridgeOptions bb.providers.provider: ProviderDeclaration.bridgeOptions The stable declaration field replaces the experimental field.
host.provider.declaration.experimental_visibility bb.providers.provider: ProviderDeclaration.visibility The stable declaration field replaces the experimental field.
host.provider.declaration.extensionKinds bb.providers.provider: ProviderDeclaration.extensionKinds
host.provider.declaration.family bb.providers.provider: ProviderDeclaration.family
host.provider.declaration.icon bb.providers.provider: ProviderDeclaration.icon
host.provider.declaration.id bb.providers.provider: ProviderDeclaration.id
host.provider.declaration.maintenance bb.providers.provider: ProviderDeclaration.maintenance
host.provider.declaration.models bb.providers.provider: ProviderDeclaration.models
host.provider.declaration.nativeCommandRoots bb.providers.provider: ProviderDeclaration.nativeRoots.commands The native-roots object holds static command roots.
host.provider.declaration.nativeSkillRoots bb.providers.provider: ProviderDeclaration.nativeRoots.skills The native-roots object holds static skill roots.
host.provider.declaration.reasoningLevels bb.providers.provider: ProviderDeclaration.reasoningLevels
host.provider.declaration.resolvesNativeRoots bb.providers.provider: ProviderDeclaration.nativeRoots.resolveOnHost The provider can claim the bb.providers.nativeRoots host role.
host.provider.declaration.serviceTiers bb.providers.provider: ProviderDeclaration.serviceTiers
host.provider.declaration.strings bb.providers.provider: ProviderDeclaration.strings
host.provider.extensionKind bb.providers.provider: ProviderExtensionKind
host.provider.extensionKind.item bb.providers.provider: ProviderExtensionKind.item
host.provider.extensionKind.state bb.providers.provider: ProviderExtensionKind.state
host.provider.fallbackModel bb.providers.provider: ProviderFallbackModel
host.provider.fallbackModel.defaultReasoningEffort bb.providers.provider: ProviderFallbackModel.defaultReasoningEffort
host.provider.fallbackModel.description bb.providers.provider: ProviderFallbackModel.description
host.provider.fallbackModel.displayName bb.providers.provider: ProviderFallbackModel.displayName
host.provider.fallbackModel.id bb.providers.provider: ProviderFallbackModel.id
host.provider.fallbackModel.isDefault bb.providers.provider: ProviderFallbackModel.isDefault
host.provider.fallbackModel.supportedReasoningEfforts bb.providers.provider: ProviderFallbackModel.supportedReasoningEfforts
host.provider.maintenance bb.providers.provider: ProviderMaintenance
host.provider.maintenance.health bb.providers.provider: ProviderMaintenance.health
host.provider.maintenance.installation bb.providers.provider: ProviderMaintenance.installation
host.provider.maintenance.usage bb.providers.provider: ProviderMaintenance.usage
host.provider.option bb.providers.provider: ProviderOption
host.provider.option.description bb.providers.provider: ProviderOption.description
host.provider.option.id bb.providers.provider: ProviderOption.id
host.provider.option.label bb.providers.provider: ProviderOption.label
host.provider.optionsContext bb.providers.provider: ProviderOptionsContext
host.provider.optionsContext.settings bb.providers.provider: ProviderOptionsContext.settings
host.provider.strings bb.providers.provider: ProviderStrings
host.provider.strings.brandPrefix bb.providers.provider: ProviderStrings.brandPrefix
host.provider.strings.expiredHint bb.providers.provider: ProviderStrings.expiredHint
host.provider.strings.iconTint bb.providers.provider: ProviderStrings.iconTint
host.provider.strings.installUrl bb.providers.provider: ProviderStrings.installUrl
host.provider.strings.planModeCopy bb.providers.provider: ProviderStrings.planModeCopy
host.provider.strings.signInHint bb.providers.provider: ProviderStrings.signInHint
host.providers.namespace bb.providers.provider keyed service The service token replaces the host registration namespace.
host.providers.register api.services.provide(bbProvider.key()) The factory scope owns provider cleanup.
host.rpc.context HostRoleContext
host.rpc.context.emitSignal HostRoleContext.emitSignal()
host.rpc.context.lifecycle HostRoleContext.signal and role lifecycle
host.rpc.context.paths HostRoleContext.paths
host.rpc.context.retainWorker HostRoleContext.retain()
host.rpc.context.signal HostRoleContext.signal
host.rpc.context.watch HostRoleContext.watch()
host.rpc.handlers host factory: typed role handlers
host.signal.contract contract.json: hostRoles[].signals
host.signal.event HostRoleEvent: role.signal
host.signals host role signal map
host.watch.change WatchEvent
host.watch.changeType WatchEvent.kind
host.watch.event HostRoleContext.watch() event
host.watch.options WatchOptions
host.watch.subscription HostRoleContext.watch() disposer
host.worker.lease HostRoleLease
host.workspace @bb/workspace/host: EnvironmentWorkspace Keeps the host-only workspace object.
host.workspace.commitOptions WorkspaceCommitOptions Keeps the message and hook choice.
host.workspace.diffFilesArgs WorkspaceDiffFilesInput Keeps file count limits.
host.workspace.diffOptions WorkspaceDiffOptions Keeps diff work limits.
host.workspace.diffPatchArgs WorkspaceDiffPatchInput Keeps path and byte limits.
host.workspace.mutations EnvironmentWorkspace mutation methods Keeps commit, reset, merge, pull request, and destroy operations.
host.workspace.personalRoot EnvironmentWorkspaceFactory.personalRoot() Returns the managed personal root.
host.workspace.provision EnvironmentWorkspaceFactory.provision() Creates or reconnects a contained workspace.
host.workspace.provisionArgs ProvisionWorkspaceInput Keeps all four provisioning modes.
host.workspace.pullRequestAction PullRequestAction Keeps the typed pull request action.
host.workspace.queries EnvironmentWorkspace query methods Keeps all status, diff, branch, fingerprint, pull request, and file queries.
host.workspace.squashMergeOptions WorkspaceSquashMergeOptions Keeps the target branch and commit message.
host.workspace.statusOptions WorkspaceStatusOptions Keeps status work limits.
host.workspace.validatePersonalPath EnvironmentWorkspaceFactory.validatePersonalPath() Validates a personal target path.

install

Old item New home Note
install.collection.entryName bb.plugins.json: plugins[].name
install.collection.entrySource bb.plugins.json: plugins[].source
install.collection.entrySubdirectory kernel installer: resolve selected collection path
install.collection.name bb.plugins.json: name
install.collection.parse kernel installer: parse bb.plugins.json
install.collection.plugins bb.plugins.json: plugins
install.collection.read kernel installer: read bb.plugins.json as data
install.collection.schema bb.plugins.json: collection schema version 2
install.collection.schemaUrl bb.plugins.json: $schema
install.collection.schemaVersion bb.plugins.json: schemaVersion
install.collection.select kernel installer: select collection root, path, or name
install.defaultGitRef kernel installer: resolved default Git ref
install.gitCache kernel artifact store: commit-addressed Git cache
install.gitRangeSpec kernel installer: canonical Git semver source
install.gitTagName kernel installer: Git release-tag formatter
install.gitTagVersion kernel installer: Git release-tag parser
install.hashDir artifact verifier: artifact root digest
install.isCommitSha kernel installer: Git commit selector validator
install.nestedRoots kernel installer: preserve nested collection roots
install.normalizeSubdirectory kernel installer: validate safe repository subdirectory
install.normalizeTagPrefix kernel installer: Git tag-prefix validator
install.npmCache kernel artifact store: content-addressed npm cache
install.npmPrefix kernel artifact store: npm stage directory
install.parseSource kernel installer: parse canonical source
install.parsedSource kernel installer: InstallSource union
install.promoteDir kernel artifact store: immutable promotion
install.promoteGit kernel artifact store: contained Git promotion
install.recoverGit kernel artifact store: remove incomplete stage The active immutable artifact never changes during recovery.
install.rootDir kernel installer: resolve contained plugin root
install.runCommand kernel installer: bounded Git or npm process
install.source.builtin kernel installer: InstallSource.builtin
install.source.collection kernel installer: InstallSource.collection
install.source.git kernel installer: InstallSource.git
install.source.git.range kernel installer: InstallSource.git.range
install.source.git.ref kernel installer: InstallSource.git.ref
install.source.npm kernel installer: InstallSource.npm
install.source.path kernel installer: InstallSource.path

manifest

Old item New home Note
manifest.bb.app bb.plugin.jsonc: artifacts.app
manifest.bb.branding bb.plugin.jsonc: branding
manifest.bb.branding.experimental_icons bb.plugin.jsonc: branding.icons Named icons are stable manifest data.
manifest.bb.branding.icon bb.plugin.jsonc: branding.icon
manifest.bb.branding.logo bb.plugin.jsonc: branding.logo
manifest.bb.branding.logo.dark bb.plugin.jsonc: branding.logo.dark
manifest.bb.branding.logo.light bb.plugin.jsonc: branding.logo.light
manifest.bb.description bb.plugin.jsonc: description
manifest.bb.host bb.plugin.jsonc: artifacts.host
manifest.bb.hostArtifact bb.plugin.jsonc: artifacts.host and artifact.json One verified host artifact fulfills declared roles.
manifest.bb.name bb.plugin.jsonc: name
manifest.bb.server bb.plugin.jsonc: artifacts.server
manifest.bb.skills bb.plugin.jsonc: skills The build makes ordinary bb.agents skill claims.
manifest.bb.themes bb.plugin.jsonc: themes The build makes keyed bb.layout.theme claims.
manifest.bb.themes.codeTheme bb.plugin.jsonc: themes[].codeTheme
manifest.bb.themes.css bb.plugin.jsonc: themes[].css
manifest.bb.themes.description bb.plugin.jsonc: themes[].description
manifest.bb.themes.id bb.plugin.jsonc: themes[].id
manifest.bb.themes.name bb.plugin.jsonc: themes[].name
manifest.noCurrentArtifacts bb.plugin.jsonc: artifacts The new manifest names built tier artifacts.
manifest.noCurrentContributes bb.plugin.jsonc: claims, surfaces, services, settings, skills, themes, and hostRoles The 2.0 manifest has explicit static declarations.
manifest.normalized kernel loader: NormalizedPluginRecord
manifest.normalized.appEntry NormalizedPluginRecord.artifacts.app
manifest.normalized.branding NormalizedPluginRecord.branding
manifest.normalized.description NormalizedPluginRecord.description
manifest.normalized.hostEntry NormalizedPluginRecord.artifacts.host
manifest.normalized.id NormalizedPluginRecord.id
manifest.normalized.name NormalizedPluginRecord.name
manifest.normalized.packageName NormalizedPluginRecord.provenance.packageName
manifest.normalized.rootDir kernel artifact store: verified immutable root
manifest.normalized.serverEntry NormalizedPluginRecord.artifacts.server
manifest.normalized.skillNames bb.agents skill claims The Agents plugin owns skill discovery and names.
manifest.normalized.skillsRootPaths NormalizedPluginRecord.skills.roots
manifest.normalized.themes NormalizedPluginRecord.themes
manifest.normalized.version NormalizedPluginRecord.version
manifest.package.bb bb.plugin.jsonc The manifest moves from package.json to a strict standalone file.
manifest.package.engines bb.plugin.jsonc: engines
manifest.package.name bb.plugin.jsonc: id and artifact.json: plugin.packageName The plugin ID is explicit. The package name stays provenance data.
manifest.package.pluginTailwindContent dropped The app build scans the source import graph and declared exported modules.
manifest.package.version bb.plugin.jsonc: version
manifest.reader kernel loader: read and validate bb.plugin.json plus contract.json

marketplace

Old item New home Note
marketplace.entry.author marketplace-v2.json: plugins[].author
marketplace.entry.description marketplace-v2.json: plugins[].description
marketplace.entry.displayName marketplace-v2.json: plugins[].displayName
marketplace.entry.icon marketplace-v2.json: plugins[].icon
marketplace.entry.id marketplace-v2.json: plugins[].id
marketplace.entry.source marketplace-v2.json: plugins[].source
marketplace.entry.tags marketplace-v2.json: plugins[].tags
marketplace.manifest.description marketplace-v2.json: description
marketplace.manifest.displayName marketplace-v2.json: displayName
marketplace.manifest.name marketplace-v2.json: name
marketplace.manifest.plugins marketplace-v2.json: plugins
marketplace.manifest.schema marketplace-v2.json: catalog schema
marketplace.manifest.schemaUrl marketplace-v2.json: schemaUrl
marketplace.manifest.schemaVersion marketplace-v2.json: schemaVersion
marketplace.materialize kernel marketplace cache: verified materialization
marketplace.parse kernel marketplace index parser
marketplace.parseJson kernel marketplace index parser
marketplace.registerRoutes kernel marketplace control routes Kernel UI and CLI use authenticated control routes.
marketplace.resolveSource kernel marketplace resolver: entry to canonical InstallSource
marketplace.routes kernel marketplace control routes Kernel UI and CLI use authenticated control routes.
marketplace.service kernel marketplace control API This API is privileged and is not a plugin service.
marketplace.service.add kernel marketplace control API: add()
marketplace.service.install kernel marketplace control API: install()
marketplace.service.installPlan kernel marketplace control API: installPlan()
marketplace.service.list kernel marketplace control API: list()
marketplace.service.refresh kernel marketplace control API: refresh()
marketplace.service.remove kernel marketplace control API: remove()
marketplace.service.search kernel marketplace control API: search()
marketplace.service.status kernel marketplace control API: status()
marketplace.source.git.range marketplace-v2.json: plugins[].source.git.range
marketplace.source.git.ref marketplace-v2.json: plugins[].source.git.ref
marketplace.source.npm marketplace-v2.json: plugins[].source.npm
marketplace.sourceDisplay kernel marketplace source formatter
marketplace.sourceParser kernel marketplace source parser

registry

Old item New home Note
registry.applyUpdate bb plugin update
registry.bindSdk dropped The old bb.sdk facade delegates to named 2.0 services during migration.
registry.builtin.root kernel bundled release index: verified artifact root
registry.builtin.source kernel bundled release index: InstallSource
registry.bundled.autoInstall kernel bundled release index: entries[].installByDefault
registry.bundled.categories kernel bundled release index: categories
registry.bundled.category kernel bundled release index: entries[].category
registry.bundled.defaultEnabled kernel bundled release index: entries[].enabledByDefault
registry.bundled.definition kernel bundled release index: BundledPluginDefinition
registry.bundled.list bb.plugins.list({ includeBuiltins: true })
registry.bundled.name kernel bundled release index: entries[].name
registry.bundled.pluginId kernel bundled release index: entries[].pluginId
registry.bundled.plugins kernel bundled release index: entries
registry.checkUpdates bb plugin outdated
registry.componentBuild bb plugin build: component registry generator Build tooling generates @bb/ui registry records.
registry.componentRegistry bb plugin build: @bb/ui component registry The registry remains build input, not a runtime contract.
registry.events bb.plugins.watch()
registry.findAgentTool bb.agents.tool keyed contract: resolve key
registry.getApi plugin factory: tier-specific api object
registry.getAppAsset kernel verified artifact route: app assets
registry.getBrandingAsset kernel verified artifact route: branding assets
registry.getHttpRoute bb.http: route registry
registry.getIconAsset kernel verified artifact route: named icons
registry.getRpcHandler bb.rpc: registered contract handler
registry.getSettings bb.settings service: get plugin settings
registry.getSource bb.plugins.get(): source
registry.handleHostSignal host role runtime: role.signal
registry.handleHostWorkerExit host role runtime: role.exited
registry.handleUncaughtException kernel diagnostics: generation failure and fallback
registry.httpToken bb plugin token and bb.http token authentication
registry.index bb plugin build: generated component registry index The index remains build output.
registry.install bb plugin install
registry.installCatalog bb plugin install marketplace:<market>/<entry>
registry.installOfficial bb plugin install builtin:<name>
registry.installPath bb plugin install path:<directory>
registry.invokeAgentTool bb.agents tool service: execute()
registry.invokeHttpRoute bb.http: route dispatch
registry.invokeRpcHandler bb.rpc.call()
registry.isBuiltin bb.plugins: PluginSummary.source.kind
registry.item bb plugin build: generated component registry item The item remains build output.
registry.item.file bb plugin build: generated component registry file The file remains build output.
registry.list bb.plugins.list()
registry.listAgentTools bb.agents.tool keyed contract: list claims
registry.listCli bb.commands.cli keyed contract: list claims
registry.listHostArtifactGenerations bb.plugins.hostRoles()
registry.listInstructions bb.agents instructions service: list()
registry.listMentions bb.mentions provider contract: list claims
registry.listSkills bb.agents skill service: list()
registry.listThemes bb.layout.theme keyed contract The kernel indexes theme claims. The Layout plugin owns theme behavior.
registry.listUpdateResults bb.plugins.get(): update facts
registry.readLogTail bb.plugins.diagnostics(): logs
registry.readThemeCodeTheme bb.layout.theme service: read code theme asset
registry.readThemeCss bb.layout.theme service: read CSS asset
registry.reload bb plugin reload
registry.reloadOutcome kernel loader: ReloadResult
registry.remove bb plugin remove
registry.resolveAgentConfiguration bb.agents configuration service: resolve()
registry.resolveCatalogNpm kernel marketplace resolver: npm InstallSource
registry.resolveMention bb.mentions service: resolve()
registry.runCli bb plugin run <id> <verb>
registry.searchMentions bb.mentions service: search()
registry.service kernel PluginRuntimeRegistry
registry.setEnabled bb plugin enable and bb plugin disable
registry.skillContribution bb.agents skill claim
registry.start kernel loader: boot and activate
registry.startUpdateChecks kernel marketplace update scheduler
registry.stop kernel loader: drain and unload
registry.stopUpdateChecks kernel marketplace update scheduler: dispose
registry.sweepSchedules kernel loader lifecycle: remove generation-owned schedules
registry.ui.accordion @bb/ui: Accordion* Shared module export.
registry.ui.alert @bb/ui: Alert Shared module export.
registry.ui.alertDialog @bb/ui: AlertDialog* Shared module export.
registry.ui.aspectRatio @bb/ui: AspectRatio Shared module export.
registry.ui.avatar @bb/ui: Avatar Shared module export.
registry.ui.badge @bb/ui: Badge Shared module export.
registry.ui.breadcrumb @bb/ui: Breadcrumb* Shared module export.
registry.ui.button @bb/ui: Button Shared module export.
registry.ui.calendar @bb/ui: Calendar Shared module export.
registry.ui.card @bb/ui: Card* Shared module export.
registry.ui.carousel @bb/ui: Carousel* Shared module export.
registry.ui.chart @bb/ui: Chart* Shared module export.
registry.ui.checkbox @bb/ui: Checkbox Shared module export.
registry.ui.collapsible @bb/ui: Collapsible* Shared module export.
registry.ui.command @bb/ui: Command* Shared module export.
registry.ui.contextMenu @bb/ui: ContextMenu* Shared module export.
registry.ui.dialog @bb/ui: Dialog* Shared module export.
registry.ui.drawer @bb/ui: Drawer* Shared module export.
registry.ui.dropdownMenu @bb/ui: DropdownMenu* Shared module export.
registry.ui.form @bb/ui: Form* Shared module export.
registry.ui.hoverCard @bb/ui: HoverCard* Shared module export.
registry.ui.input @bb/ui: Input Shared module export.
registry.ui.inputOtp @bb/ui: InputOtp Shared module export.
registry.ui.label @bb/ui: Label Shared module export.
registry.ui.menubar @bb/ui: Menubar* Shared module export.
registry.ui.navigationMenu @bb/ui: NavigationMenu* Shared module export.
registry.ui.pagination @bb/ui: Pagination* Shared module export.
registry.ui.popover @bb/ui: Popover* Shared module export.
registry.ui.progress @bb/ui: Progress Shared module export.
registry.ui.radioGroup @bb/ui: RadioGroup* Shared module export.
registry.ui.resizable @bb/ui: Resizable* Shared module export.
registry.ui.scrollArea @bb/ui: ScrollArea, ScrollBar Shared module export.
registry.ui.select @bb/ui: Select* Shared module export.
registry.ui.separator @bb/ui: Separator Shared module export.
registry.ui.sheet @bb/ui: Sheet* Shared module export.
registry.ui.skeleton @bb/ui: Skeleton Shared module export.
registry.ui.slider @bb/ui: Slider Shared module export.
registry.ui.switch @bb/ui: Switch Shared module export.
registry.ui.table @bb/ui: Table* Shared module export.
registry.ui.tabs @bb/ui: Tabs* Shared module export.
registry.ui.textarea @bb/ui: Textarea Shared module export.
registry.ui.toggle @bb/ui: Toggle Shared module export.
registry.ui.toggleGroup @bb/ui: ToggleGroup* Shared module export.
registry.ui.tooltip @bb/ui: Tooltip* Shared module export.
registry.updateSettings bb.settings service: update plugin settings
registry.watchDispatch bb.plugins.watch()

server

Old item New home Note
server.agents api.agents and api.tools The direct APIs provide configuration, interception, and keyed tool registration.
server.agents.configuration bb.agents.configuration: AgentConfiguration The list resolver combines this shape.
server.agents.configuration.instructions bb.agents.configuration: AgentInstructions The shape adds an explicit merge mode.
server.agents.configuration.skills bb.agents.configuration: AgentConfiguration.skills Values use stable rootId and path references.
server.agents.configuration.tools bb.agents.configuration: AgentToolSet The old array becomes the include list with an explicit exclude list.
server.agents.configurationContext bb.agents.configuration: AgentConfigurationContext The stable session context remains available.
server.agents.configure api.agents.configure() A list contribution resolves configuration for each turn.
server.agents.contributeInstructions api.agents.contributeInstructions() The shortcut adds an append configuration contribution.
server.agents.registerTool api.tools.add() The call provides one bb.agents.tool key.
server.agents.toolContext bb.agents.tool: AgentToolContext The context adds environment, host, and provider IDs.
server.agents.toolLabels bb.agents.tool: AgentToolLabels Pending and completed labels remain a pair.
server.agents.toolPresentation bb.agents.tool: AgentToolPresentation The presentation remains data for the timeline owner.
server.agents.toolPresentation.icon bb.agents.tool: AgentToolPresentation.icon The glyph remains host-rendered data.
server.agents.toolPresentation.label bb.agents.tool: AgentToolPresentation.label Pending and completed labels remain.
server.agents.toolPresentation.suppress bb.agents.tool: AgentToolPresentation.suppress The default-collapse hint remains.
server.agents.toolPresentation.tint bb.agents.tool: AgentToolPresentation.tint Light and dark tint values remain.
server.agents.toolRegistration bb.agents.tool: AgentTool AgentTool holds metadata, parameters, and execution.
server.agents.toolRegistration.description bb.agents.tool: AgentTool.description The model reads this description.
server.agents.toolRegistration.execute bb.agents.tool: AgentTool.execute() The selected winner handles the call.
server.agents.toolRegistration.instructions bb.agents.tool: AgentTool.instructions Active tool instructions join session instructions.
server.agents.toolRegistration.name bb.agents.tool: AgentTool.name The name is the keyed contract key.
server.agents.toolRegistration.parameters bb.agents.tool: AgentTool.parameters Standard Schema and JSON Schema forms remain available.
server.agents.toolResult bb.agents.tool: AgentToolResult Text and image content remain.
server.agents.toolSelection.name bb.agents.configuration: AgentToolSelection.name The selection names one bb.agents.tool key.
server.agents.toolSelection.parameters bb.agents.configuration: AgentToolSelection.parameters The per-turn schema restriction remains.
server.background bb.background port The kernel port owns generation-scoped background work.
server.background.schedule bb.background: schedule() The kernel keeps the durable five-field cron row.
server.background.service bb.background: service() The kernel restarts failed services with bounded backoff.
server.background.service.start bb.background: BackgroundService.start() The generation signal stops the service.
server.cli server factory: api.cli The direct API is backed by bb.commands.cli.
server.cli.commandInfo bb.commands.cli service: CliSubcommand Help metadata stays static.
server.cli.commandInfo.name CliSubcommand.name The field keeps its purpose.
server.cli.commandInfo.summary CliSubcommand.summary The field keeps its purpose.
server.cli.commandInfo.usage CliSubcommand.usage The field keeps its purpose.
server.cli.context bb.commands.cli service: CliInvocationContext The new context makes all four fields present and nullable where necessary.
server.cli.context.cwd CliInvocationContext.cwd The kernel supplies an absolute invocation directory.
server.cli.context.projectId CliInvocationContext.projectId A missing route context becomes null.
server.cli.context.signal CliInvocationContext.signal The signal is always present and stops on disconnect or shutdown.
server.cli.context.threadId CliInvocationContext.threadId A missing route context becomes null.
server.cli.executionResult CLI boundary: CliExecutionResult The boundary still normalizes output and reports limit failures.
server.cli.outputLimit @bb/commands/server: CLI_OUTPUT_MAX_BYTES The combined output limit stays 1 MiB.
server.cli.outputLimitError CLI boundary: CliOutputLimitError The error keeps byte counts and the stable code.
server.cli.register server factory: api.cli.add() The factory stages one keyed CLI claim.
server.cli.registration bb.commands.cli service: CliVerb The keyed contract replaces the old registration object.
server.cli.registration.commands CliVerb.commands The optional subcommand help list remains.
server.cli.registration.name CliVerb.name and the bb.commands.cli key The manifest claim and handler must use the same top-level verb.
server.cli.registration.run CliVerb.run() The server runs the resolved keyed provider.
server.cli.registration.summary CliVerb.summary The kernel can render help without handler execution.
server.cli.result bb.commands.cli service: CliResult The handler still returns an exit code and optional output.
server.contract ServerPluginApi The server factory receives the concrete tier API.
server.events bb.threads service: events The domain service owns thread lifecycle events.
server.events.on bb.threads service: events.subscribe() The subscription stays observe-only.
server.events.payloads bb.threads service: ThreadEventMap The event map keeps typed payloads.
server.events.thread.active bb.threads service: ThreadEventMap["thread.active"] The lifecycle event keeps its payload.
server.events.thread.archived bb.threads service: ThreadEventMap["thread.archived"] The lifecycle event keeps its payload.
server.events.thread.created bb.threads service: ThreadEventMap["thread.created"] The lifecycle event keeps its payload.
server.events.thread.deleted bb.threads service: ThreadEventMap["thread.deleted"] The lifecycle event keeps its payload.
server.events.thread.failed bb.threads service: ThreadEventMap["thread.failed"] The lifecycle event keeps its payload.
server.events.thread.idle bb.threads service: ThreadEventMap["thread.idle"] The lifecycle event keeps its payload.
server.experimental_aiServices api.ai The stable API registers bb.agents.ai keys.
server.experimental_aiServices.declaration bb.agents.ai: AiService The public service joins metadata and methods.
server.experimental_aiServices.declaration.displayName bb.agents.ai: AiService.displayName The user-facing label remains.
server.experimental_aiServices.declaration.id bb.agents.ai: AiService.id The ID is the keyed contract key.
server.experimental_aiServices.declaration.kinds bb.agents.ai: AiService.kinds The list declares inference and voice methods.
server.experimental_aiServices.register api.ai.add() The call provides one keyed AI service.
server.factory defineServerPlugin(factory) The server artifact exports one typed factory.
server.hosts plugin factory: api.hosts
server.hosts.client.call HostRoleClient.call()
server.hosts.client.experimental_onSignal HostRoleClient.onSignal()
server.hosts.client.experimental_onWorkerExit HostRolesPort.watch(): role.exited
server.hosts.client.options HostRoleClient.call(): options
server.hosts.client.signalEvent HostRoleEvent: role.signal
server.hosts.clientArgs.contract contract.json: hostRoles[]
server.hosts.clientArgs.experimental_signals contract.json: hostRoles[].signals
server.hosts.declareSharedPorts bb.plugin.jsonc: hostRoles[].sharedPorts
server.hosts.ensureSharedPortTunnel host daemon: tunnel.ensure
server.hosts.experimental_client HostRolesPort.use()
server.hosts.sharedPortIdentity host daemon: tunnel identity
server.http bb.http service
server.http.handler bb.http: HttpHandler
server.http.route bb.http: route()
server.http.route.options bb.http: HttpRoute
server.http.route.options.auth bb.http: HttpRoute.auth
server.import.defineRpcContract defineRpcContract() from @get-bb/plugin/contracts
server.log plugin factory: api.log and kernel diagnostics
server.log.debug PluginLogger.debug()
server.log.error PluginLogger.error()
server.log.info PluginLogger.info()
server.log.warn PluginLogger.warn()
server.onDispose PluginScope.effect() or the factory disposer
server.pluginId PluginScope.pluginId
server.providers bb.providers.provider contract The keyed contract replaces the registration namespace.
server.providers.capabilities bb.providers.provider: ProviderCapabilities
server.providers.capabilities.fork bb.providers.provider: ProviderCapabilities.fork
server.providers.capabilities.permissionModes bb.providers.provider: ProviderCapabilities.permissionModes
server.providers.capabilities.reasoningLevels bb.providers.provider: ProviderCapabilities.reasoningLevels
server.providers.capabilities.supportsManualCompaction bb.providers.provider: ProviderCapabilities.supportsManualCompaction
server.providers.capabilities.supportsNativeUserQuestion bb.providers.provider: ProviderCapabilities.supportsNativeUserQuestion
server.providers.capabilities.supportsServiceTier bb.providers.provider: ProviderCapabilities.supportsServiceTier
server.providers.capabilities.supportsThreadArchive bb.providers.provider: ProviderCapabilities.supportsThreadArchive
server.providers.capabilities.supportsThreadRename bb.providers.provider: ProviderCapabilities.supportsThreadRename
server.providers.declaration bb.providers.provider: ProviderDeclaration The static declaration remains part of contract.json.
server.providers.declaration.capabilities bb.providers.provider: ProviderDeclaration.capabilities
server.providers.declaration.composerActions bb.providers.provider: ProviderDeclaration.composerActions
server.providers.declaration.deriveProviderOptions bb.providers.provider: Provider.deriveOptions() Behavior moves from declaration data to the provider service.
server.providers.declaration.displayName bb.providers.provider: ProviderDeclaration.displayName
server.providers.declaration.env bb.providers.provider: ProviderDeclaration.env
server.providers.declaration.experimental_bridgeOptions bb.providers.provider: ProviderDeclaration.bridgeOptions The stable declaration field replaces the experimental field.
server.providers.declaration.experimental_nativeCommandRoots bb.providers.provider: ProviderDeclaration.nativeRoots.commands The stable native-roots object replaces the experimental field.
server.providers.declaration.experimental_nativeSkillRoots bb.providers.provider: ProviderDeclaration.nativeRoots.skills The stable native-roots object replaces the experimental field.
server.providers.declaration.experimental_resolvesNativeRoots bb.providers.provider: ProviderDeclaration.nativeRoots.resolveOnHost The stable native-roots object replaces the experimental field.
server.providers.declaration.experimental_visibility bb.providers.provider: ProviderDeclaration.visibility The stable declaration field replaces the experimental field.
server.providers.declaration.extensionKinds bb.providers.provider: ProviderDeclaration.extensionKinds
server.providers.declaration.family bb.providers.provider: ProviderDeclaration.family
server.providers.declaration.icon bb.providers.provider: ProviderDeclaration.icon
server.providers.declaration.id bb.providers.provider: ProviderDeclaration.id
server.providers.declaration.maintenance bb.providers.provider: ProviderDeclaration.maintenance
server.providers.declaration.models bb.providers.provider: ProviderDeclaration.models
server.providers.declaration.reasoningLevels bb.providers.provider: ProviderDeclaration.reasoningLevels
server.providers.declaration.serviceTiers bb.providers.provider: ProviderDeclaration.serviceTiers
server.providers.declaration.strings bb.providers.provider: ProviderDeclaration.strings
server.providers.env.passthrough bb.providers.provider: ProviderDeclaration.env.passthrough
server.providers.extensionKind bb.providers.provider: ProviderExtensionKind
server.providers.extensionKind.item bb.providers.provider: ProviderExtensionKind.item
server.providers.extensionKind.state bb.providers.provider: ProviderExtensionKind.state
server.providers.fallbackModel bb.providers.provider: ProviderFallbackModel
server.providers.fallbackModel.defaultReasoningEffort bb.providers.provider: ProviderFallbackModel.defaultReasoningEffort
server.providers.fallbackModel.description bb.providers.provider: ProviderFallbackModel.description
server.providers.fallbackModel.displayName bb.providers.provider: ProviderFallbackModel.displayName
server.providers.fallbackModel.id bb.providers.provider: ProviderFallbackModel.id
server.providers.fallbackModel.isDefault bb.providers.provider: ProviderFallbackModel.isDefault
server.providers.fallbackModel.supportedReasoningEfforts bb.providers.provider: ProviderFallbackModel.supportedReasoningEfforts
server.providers.maintenance bb.providers.provider: ProviderMaintenance
server.providers.maintenance.health bb.providers.provider: ProviderMaintenance.health
server.providers.maintenance.installation bb.providers.provider: ProviderMaintenance.installation
server.providers.maintenance.usage bb.providers.provider: ProviderMaintenance.usage
server.providers.models.fallback bb.providers.provider: ProviderDeclaration.models.fallback
server.providers.models.scope bb.providers.provider: ProviderDeclaration.models.scope
server.providers.optionDescriptor bb.providers.provider: ProviderOption
server.providers.optionDescriptor.description bb.providers.provider: ProviderOption.description
server.providers.optionDescriptor.id bb.providers.provider: ProviderOption.id
server.providers.optionDescriptor.label bb.providers.provider: ProviderOption.label
server.providers.optionsContext bb.providers.provider: ProviderOptionsContext
server.providers.optionsContext.model bb.providers.provider: ProviderOptionsContext.model
server.providers.optionsContext.permissionMode bb.providers.provider: ProviderOptionsContext.permissionMode
server.providers.optionsContext.projectId bb.providers.provider: ProviderOptionsContext.projectId
server.providers.optionsContext.promptMode bb.providers.provider: ProviderOptionsContext.promptMode
server.providers.optionsContext.settings bb.providers.provider: ProviderOptionsContext.settings
server.providers.optionsContext.threadId bb.providers.provider: ProviderOptionsContext.threadId
server.providers.register api.services.provide(bbProvider, implementation, { key }) The factory scope supplies automatic cleanup.
server.providers.strings bb.providers.provider: ProviderStrings
server.providers.strings.brandPrefix bb.providers.provider: ProviderStrings.brandPrefix
server.providers.strings.expiredHint bb.providers.provider: ProviderStrings.expiredHint
server.providers.strings.iconTint bb.providers.provider: ProviderStrings.iconTint
server.providers.strings.installUrl bb.providers.provider: ProviderStrings.installUrl
server.providers.strings.planModeCopy bb.providers.provider: ProviderStrings.planModeCopy
server.providers.strings.signInHint bb.providers.provider: ProviderStrings.signInHint
server.realtime bb.realtime service
server.realtime.publish bb.realtime: publish()
server.rpc bb.rpc service
server.rpc.contract bb.rpc: RpcContract and contract.json methods
server.rpc.error bb.rpc: RpcError
server.rpc.register bb.rpc: register()
server.sdk deprecated bb.sdk facade over named services The facade drains during migration.
server.sdk.contract typed service edges and kernel ports Named contracts replace the broad SDK facade.
server.sdk.environments bb.workspace service: environments Replaces the broad SDK area.
server.sdk.environments.archiveThreads bb.workspace service: environments.archiveThreads() The implementation uses its required bb.threads edge.
server.sdk.environments.commit bb.workspace service: environments.commit() Keeps an explicit commit input.
server.sdk.environments.diff bb.workspace service: environments.diff() Returns a bounded diff record.
server.sdk.environments.diffBranches bb.workspace service: environments.diffBranches() Lists valid comparison branches.
server.sdk.environments.diffFile bb.workspace service: environments.diffFile() Returns one changed file.
server.sdk.environments.diffFiles bb.workspace service: environments.diffFiles() Returns a bounded file page.
server.sdk.environments.diffPatch bb.workspace service: environments.diffPatch() Returns bounded patches for selected paths.
server.sdk.environments.get bb.workspace service: environments.get() Reads one environment.
server.sdk.environments.markPullRequestDraft bb.workspace service: environments.markPullRequestDraft() Uses a typed environment ID.
server.sdk.environments.markPullRequestReady bb.workspace service: environments.markPullRequestReady() Uses a typed environment ID.
server.sdk.environments.mergePullRequest bb.workspace service: environments.mergePullRequest() Keeps merge options in one input record.
server.sdk.environments.paths bb.workspace service: environments.paths() Lists roots for one environment.
server.sdk.environments.pullRequest bb.workspace service: environments.pullRequest() Returns pull request state or null.
server.sdk.environments.squashMerge bb.workspace service: environments.squashMerge() Keeps target and message options.
server.sdk.environments.status bb.workspace service: environments.status() Returns workspace and Git status.
server.sdk.environments.update bb.workspace service: environments.update() Updates environment metadata.
server.sdk.files bb.files service The named service replaces the broad SDK area.
server.sdk.files.createPreview bb.files service: preview() The result is a scoped preview lease.
server.sdk.files.list bb.files service: list() The result uses typed FileEntry values.
server.sdk.files.listPaths bb.files service: list({ recursive: true }) One method replaces the duplicate path-list verb.
server.sdk.files.mkdir bb.files service: mkdir() The request can create parent directories.
server.sdk.files.move bb.files service: move() The service checks both target scopes.
server.sdk.files.read bb.files service: read() The request uses FileTarget.
server.sdk.files.remove bb.files service: remove() Recursive removal requires an explicit flag.
server.sdk.files.write bb.files service: write() expectedRevision keeps the concurrency guard.
server.sdk.guide bb guide static renderer The kernel keeps static CLI guide rendering.
server.sdk.guide.render bb guide: render chapter The renderer reads verified packaged guide data.
server.sdk.hosts bb.workspace service: hosts The named workspace service owns enrolled host operations.
server.sdk.hosts.cloneDefaultPath bb.workspace service: hosts.cloneDefaultPath() The workspace owner keeps explicit host identity.
server.sdk.hosts.createJoinCode bb.workspace service: hosts.createJoinCode() The workspace owner keeps explicit host identity.
server.sdk.hosts.delete bb.workspace service: hosts.delete() The workspace owner keeps explicit host identity.
server.sdk.hosts.directory bb.workspace service: hosts.directory() The workspace owner keeps explicit host identity.
server.sdk.hosts.get bb.workspace service: hosts.get() The workspace owner keeps explicit host identity.
server.sdk.hosts.installProviderCli bb.workspace service: hosts.installProviderCli() The workspace owner keeps explicit host identity.
server.sdk.hosts.list bb.workspace service: hosts.list() The workspace owner keeps explicit host identity.
server.sdk.hosts.pathsExist bb.workspace service: hosts.pathsExist() The workspace owner keeps explicit host identity.
server.sdk.hosts.pickFolder bb.workspace service: hosts.pickFolder() The workspace owner keeps explicit host identity.
server.sdk.hosts.providerCliStatus bb.workspace service: hosts.providerCliStatus() The workspace owner keeps explicit host identity.
server.sdk.hosts.retryUpdate bb.workspace service: hosts.retryUpdate() The workspace owner keeps explicit host identity.
server.sdk.hosts.update bb.workspace service: hosts.update() The workspace owner keeps explicit host identity.
server.sdk.plugins bb.plugins introspection plus privileged kernel controls
server.sdk.plugins.applyUpdate dropped Use the privileged bb plugin update command or the recovery UI.
server.sdk.plugins.callRpc bb.rpc.call()
server.sdk.plugins.catalog kernel marketplace control API This API is privileged and is not a plugin service.
server.sdk.plugins.catalog.install dropped Use the privileged bb plugin install flow.
server.sdk.plugins.catalog.installPlan dropped Use the privileged bb plugin install flow.
server.sdk.plugins.catalog.search kernel marketplace query: search()
server.sdk.plugins.catalog.status kernel marketplace query: status()
server.sdk.plugins.checkUpdates bb plugin outdated
server.sdk.plugins.disable dropped Use the privileged bb plugin disable command or the plugin management UI.
server.sdk.plugins.enable dropped Use the privileged bb plugin enable command or the plugin management UI.
server.sdk.plugins.getSettings bb.preferences: list() plus bb.plugins manifest read The schema comes from bb.plugins, and values come from bb.preferences.
server.sdk.plugins.getSource bb.plugins.get(): source
server.sdk.plugins.install dropped Use the privileged bb plugin install command or the plugin management UI.
server.sdk.plugins.list bb.plugins.list()
server.sdk.plugins.listUpdateResults bb.plugins.get(): update facts
server.sdk.plugins.marketplaces kernel marketplace control API This API is privileged and is not a plugin service.
server.sdk.plugins.marketplaces.add dropped Use the privileged bb marketplace add command or the plugin management UI.
server.sdk.plugins.marketplaces.list dropped Use the privileged bb marketplace list command or the plugin management UI.
server.sdk.plugins.marketplaces.refresh dropped Use the privileged bb marketplace refresh command or the plugin management UI.
server.sdk.plugins.marketplaces.remove dropped Use the privileged bb marketplace remove command or the plugin management UI.
server.sdk.plugins.reload dropped Use the privileged bb plugin reload command or the plugin management UI.
server.sdk.plugins.remove dropped Use the privileged bb plugin remove command or the plugin management UI.
server.sdk.plugins.token bb plugin token and bb.http token authentication
server.sdk.plugins.updateSettings bb.preferences: set() and clear() Secret changes use the kernel human-only secret flow.
server.sdk.projects bb.workspace service: projects Replaces the broad SDK area.
server.sdk.projects.attachments bb.workspace service: projects.attachments Keeps attachment operations under projects.
server.sdk.projects.attachments.copy bb.workspace service: projects.attachments.copy() Copies one attachment.
server.sdk.projects.attachments.read bb.workspace service: projects.attachments.read() Reads one attachment.
server.sdk.projects.attachments.upload bb.workspace service: projects.attachments.upload() Uploads one attachment.
server.sdk.projects.branches bb.workspace service: projects.branches() Lists source branches.
server.sdk.projects.commands bb.workspace service: projects.commands() Lists project commands.
server.sdk.projects.create bb.workspace service: projects.create() Creates one project.
server.sdk.projects.defaultExecutionOptions bb.workspace service: projects.defaultExecutionOptions() Reads project execution defaults.
server.sdk.projects.delete bb.workspace service: projects.delete() Deletes one project.
server.sdk.projects.fileContent bb.workspace service: projects.fileContent() Reads source content through workspace containment.
server.sdk.projects.files bb.workspace service: projects.files() Lists source files through workspace containment.
server.sdk.projects.get bb.workspace service: projects.get() Reads one project.
server.sdk.projects.list bb.workspace service: projects.list() Returns a bounded project page.
server.sdk.projects.paths bb.workspace service: projects.paths() Lists project source roots.
server.sdk.projects.promptHistory bb.workspace service: projects.promptHistory() Reads bounded prompt history.
server.sdk.projects.reorder bb.workspace service: projects.reorder() Applies one explicit project order.
server.sdk.projects.sidebarBootstrap bb.workspace service: projects.catalogSnapshot() Replaces sidebar-specific output with a presentation-neutral project catalog.
server.sdk.projects.sources bb.workspace service: projects.sources Keeps source operations under projects.
server.sdk.projects.sources.add bb.workspace service: projects.sources.add() Adds one source.
server.sdk.projects.sources.delete bb.workspace service: projects.sources.delete() Deletes one source.
server.sdk.projects.sources.update bb.workspace service: projects.sources.update() Updates one source.
server.sdk.projects.update bb.workspace service: projects.update() Updates project metadata.
server.sdk.providers bb.providers service The named service replaces the broad SDK area.
server.sdk.providers.list bb.providers service: list() The service returns the active provider directory.
server.sdk.providers.models bb.providers service: models() The service resolves models through the provider winner.
server.sdk.skills bb.agents.skills service The named service replaces the broad SDK area.
server.sdk.skills.getContent bb.agents.skills service: getContent() The method reads one skill.
server.sdk.skills.list bb.agents.skills service: list() The method lists skill summaries.
server.sdk.skills.listFiles bb.agents.skills service: listFiles() The method lists files under one skill.
server.sdk.skills.registry bb.agents.skills service: registry The nested service owns registry operations.
server.sdk.skills.registry.detail bb.agents.skills service: registry.detail() The method reads source details.
server.sdk.skills.registry.entries bb.agents.skills service: registry.entries() The method lists source entries.
server.sdk.skills.registry.get bb.agents.skills service: registry.get() The method reads one registry skill.
server.sdk.skills.registry.install bb.agents.skills service: registry.install() The method installs one registry skill.
server.sdk.skills.registry.repositoryStars bb.agents.skills service: registry.repositoryStars() The method reads repository stars.
server.sdk.skills.registry.search bb.agents.skills service: registry.search() The method searches the registry.
server.sdk.skills.remove bb.agents.skills service: remove() The method removes one skill by stable identity.
server.sdk.skills.update bb.agents.skills service: update() The method writes content with an optional revision check.
server.sdk.status bb.plugins: status() Thread and workspace fields move to their domain services.
server.sdk.status.get bb.plugins: status() Thread and workspace fields move to their domain services.
server.sdk.subscribe bb.realtime: subscribe() Named domain services replace entity selectors.
server.sdk.subscribe.connection bb.realtime: connection() The connection listener reports transport state.
server.sdk.subscribe.environmentChanged bb.workspace service: environments.watch() Replaces the broad realtime subscription filter.
server.sdk.subscribe.hostChanged bb.workspace service: hosts.watch() The host watcher replaces the broad realtime selector.
server.sdk.subscribe.projectChanged bb.workspace service: projects.watch() Replaces the broad realtime subscription filter.
server.sdk.subscribe.systemChanged bb.workspace service: watch() The workspace watcher reports host, environment, and project changes.
server.sdk.subscribe.systemConfigChanged bb.preferences: watch() The preference watcher reports effective configuration changes.
server.sdk.subscribe.threadChanged bb.threads service: records.subscribe() The typed subscription replaces the realtime thread channel.
server.sdk.system named owner services and kernel ports The broad system facade splits by contract owner.
server.sdk.system.attention bb.threads service: attention.get() The thread owner computes unread and pending attention.
server.sdk.system.cliSkillsStatus bb.agents.skills service: cli.status() Skill install state moves out of the system SDK area.
server.sdk.system.config bb.preferences: list() This port returns the settings slice. Other named services return the old system facts.
server.sdk.system.executionOptions bb.providers service: models() execution catalog The provider catalog owns execution choices.
server.sdk.system.installCliSkills bb.agents.skills service: cli.install() CLI skill installation moves to the skill owner.
server.sdk.system.providerStates bb.providers service: list() and watch() Provider records carry availability and winner state.
server.sdk.system.reloadConfig bb.preferences: reload() The kernel port reloads external configuration.
server.sdk.system.transcribeVoice bb.agents.ai: AiService.voice.transcribe() The selected AI service transcribes the recording.
server.sdk.system.updateExperiments bb.preferences: set() The bb.settings manifest declares the experiment keys.
server.sdk.system.updateGeneralSettings bb.preferences: set() Individual keys replace the old bulk object update.
server.sdk.system.updateKeyboardSettings bb.preferences: set() Declared keyboard keys replace the bulk update.
server.sdk.system.usageLimits bb.providers service: usage() The selected provider reports account limits.
server.sdk.system.version bb.plugins: status().version Kernel status supplies the server version.
server.sdk.terminals bb.workspace service: terminals The named workspace service owns terminal sessions.
server.sdk.terminals.close bb.workspace service: terminals.close() The workspace owner keeps terminal identity and scope.
server.sdk.terminals.create bb.workspace service: terminals.create() The workspace owner keeps terminal identity and scope.
server.sdk.terminals.get bb.workspace service: terminals.get() The workspace owner keeps terminal identity and scope.
server.sdk.terminals.input bb.workspace service: terminals.input() The workspace owner keeps terminal identity and scope.
server.sdk.terminals.list bb.workspace service: terminals.list() The workspace owner keeps terminal identity and scope.
server.sdk.terminals.output bb.workspace service: terminals.output() The workspace owner keeps terminal identity and scope.
server.sdk.terminals.rename bb.workspace service: terminals.rename() The workspace owner keeps terminal identity and scope.
server.sdk.terminals.resize bb.workspace service: terminals.resize() The workspace owner keeps terminal identity and scope.
server.sdk.terminals.restart bb.workspace service: terminals.restart() The workspace owner keeps terminal identity and scope.
server.sdk.theme bb.layout.themes service bb.sdk.theme becomes a compatibility facade.
server.sdk.theme.catalog bb.layout.themes service: catalog() The catalog lists built-in, custom, and plugin theme claims.
server.sdk.theme.get bb.layout.themes service: get() The result uses LayoutThemeState.
server.sdk.theme.set bb.layout.themes service: set(selection) and set(themeId) Both old overloads stay available.
server.sdk.threadSections bb.threads service: sections The thread service owns section records.
server.sdk.threadSections.create bb.threads service: sections.create()
server.sdk.threadSections.delete bb.threads service: sections.delete()
server.sdk.threadSections.list bb.threads service: sections.list()
server.sdk.threadSections.update bb.threads service: sections.update()
server.sdk.threads bb.threads service The compatibility facade resolves to this named service.
server.sdk.threads.archive bb.threads service: records.archive()
server.sdk.threads.archiveAll bb.threads service: records.archiveTree()
server.sdk.threads.cancelPlan bb.threads service: execution.cancelPlan()
server.sdk.threads.childSummary bb.threads service: records.childSummary()
server.sdk.threads.clearGoal bb.threads service: execution.clearGoal()
server.sdk.threads.compact bb.threads service: execution.compact()
server.sdk.threads.conversationOutline bb.threads service: records.conversationOutline()
server.sdk.threads.defaultExecutionOptions bb.threads service: execution.defaultOptions()
server.sdk.threads.delete bb.threads service: records.delete()
server.sdk.threads.editMessage bb.threads service: timeline.editMessage()
server.sdk.threads.events bb.threads service: events The domain service exposes durable event history.
server.sdk.threads.events.list bb.threads service: events.list()
server.sdk.threads.events.wait bb.threads service: events.wait()
server.sdk.threads.fork bb.threads service: records.fork()
server.sdk.threads.get bb.threads service: records.get()
server.sdk.threads.interactions bb.threads service: interactions The domain service owns pending interactions.
server.sdk.threads.interactions.cancel bb.threads service: interactions.cancel()
server.sdk.threads.interactions.get bb.threads service: interactions.get()
server.sdk.threads.interactions.list bb.threads service: interactions.list()
server.sdk.threads.interactions.resolve bb.threads service: interactions.resolve()
server.sdk.threads.interactions.respond bb.threads service: interactions.respond()
server.sdk.threads.list bb.threads service: records.list()
server.sdk.threads.markRead bb.threads service: records.markRead()
server.sdk.threads.markUnread bb.threads service: records.markUnread()
server.sdk.threads.open bb.threads service: selection.open()
server.sdk.threads.output bb.threads service: execution.output()
server.sdk.threads.paneAction bb.threads service: selection.updateContext() The service stores an opaque context and does not define pane layout.
server.sdk.threads.pin bb.threads service: records.pin()
server.sdk.threads.promptHistory bb.threads service: execution.promptHistory()
server.sdk.threads.queuedMessages bb.threads service: queue The queue service owns queued messages.
server.sdk.threads.queuedMessages.create bb.threads service: queue.create()
server.sdk.threads.queuedMessages.delete bb.threads service: queue.delete()
server.sdk.threads.queuedMessages.list bb.threads service: queue.list()
server.sdk.threads.queuedMessages.reorder bb.threads service: queue.reorder()
server.sdk.threads.queuedMessages.send bb.threads service: queue.send()
server.sdk.threads.queuedMessages.setGroupBoundary bb.threads service: queue.setGroupBoundary()
server.sdk.threads.queuedMessages.update bb.threads service: queue.update()
server.sdk.threads.reorderPinned bb.threads service: records.reorderPinned()
server.sdk.threads.resolveMentions bb.threads service: execution.resolveMentions()
server.sdk.threads.search bb.threads service: records.search()
server.sdk.threads.send bb.threads service: execution.send()
server.sdk.threads.spawn bb.threads service: execution.spawn()
server.sdk.threads.stop bb.threads service: execution.stop()
server.sdk.threads.storageFiles bb.threads service: storage.files()
server.sdk.threads.storageLocation bb.threads service: storage.location()
server.sdk.threads.storagePaths bb.threads service: storage.paths()
server.sdk.threads.tabs bb.threads service: selection.getContexts() and selection.setContexts() Opaque contexts replace tab-specific storage.
server.sdk.threads.tabs.get bb.threads service: selection.getContexts()
server.sdk.threads.tabs.update bb.threads service: selection.setContexts()
server.sdk.threads.timeline bb.threads service: timeline.list()
server.sdk.threads.timelineTurnSummaryDetails bb.threads service: timeline.turnSummaryDetails()
server.sdk.threads.unarchive bb.threads service: records.unarchive()
server.sdk.threads.unpin bb.threads service: records.unpin()
server.sdk.threads.update bb.threads service: records.update()
server.sdk.threads.wait bb.threads service: execution.wait()
server.server plugin factory facts and kernel ports
server.server.experimental_dataDir dropped Use bb.storage. The kernel does not expose its data directory.
server.server.loopbackBaseUrl bb.http: url()
server.settings bb.preferences port The fixed kernel port replaces the factory property.
server.settings.define dropped Declare the schema in the kernel manifest and read values through bb.preferences.
server.settings.descriptor dropped The kernel manifest settings schema replaces the runtime descriptor union.
server.settings.descriptor.default dropped The kernel manifest settings schema owns the effective default.
server.settings.descriptor.description dropped The kernel manifest settings schema owns the field description.
server.settings.descriptor.experimental_multiline dropped The kernel manifest settings schema selects the text editor.
server.settings.descriptor.label dropped The kernel manifest settings schema owns the field label.
server.settings.descriptor.options dropped The kernel manifest settings schema owns select choices.
server.settings.descriptor.secret dropped The kernel manifest marks a secret field, and the UI uses the kernel bb.secrets port.
server.settings.descriptor.type dropped The kernel manifest settings schema owns the field type.
server.settings.handle.get bb.preferences: get() Returns one effective typed value.
server.settings.handle.onChange bb.preferences: watch() Returns a disposable subscription.
server.status bb.plugins: reportStatus()
server.status.needsConfiguration bb.plugins: reportStatus({ state: 'needs-configuration' })
server.storage bb.storage service
server.storage.database bb.storage: database()
server.storage.kv bb.storage: kv()
server.storage.kv.delete bb.storage: KvStore.delete()
server.storage.kv.get bb.storage: KvStore.get()
server.storage.kv.list bb.storage: KvStore.list()
server.storage.kv.set bb.storage: KvStore.set()
server.storage.migrate bb.storage: migrate()
server.ui domain-owned surfaces and services Threads and Mentions own the former server UI operations.
server.ui.mentionItem bb.mentions.provider: MentionItem The item keeps its stable ID, title, subtitle, and icon.
server.ui.mentionProvider bb.mentions.provider: MentionProvider and MentionProviderFacts Static facts and live methods now have separate shapes.
server.ui.mentionProvider.id bb.mentions.provider: MentionProviderFacts.providerId The build enforces an owner namespace.
server.ui.mentionProvider.label bb.mentions.provider: MentionProviderFacts.label The app reads the label from static contract facts.
server.ui.mentionProvider.resolve bb.mentions.provider: resolve() Resolution runs at send time and returns agent-only context.
server.ui.mentionProvider.search bb.mentions.provider: search() The service adds cancellation, a limit, and a two-second deadline.
server.ui.mentionProvider.triggers bb.mentions.provider: keyed claim Each array entry becomes one claim. An omitted array becomes the @ key.
server.ui.mentionSearchContext bb.mentions.provider: MentionProviderSearchInput The new input adds a limit and an abort signal.
server.ui.registerMentionProvider bb.mentions.provider keyed claim plus api.services.provide() One old registration becomes one claim for each trigger.
server.ui.requestInput bb.threads service: interactions.request() The thread interaction service replaces the server UI request.
server.ui.requestInput.options.signal bb.threads service: interactions.request() options.signal The abort signal cancels the wait.
server.ui.requestInput.request bb.threads service: ThreadInteractionRequest The request keeps the thread, interaction type, title, payload, and timeout.

settings

Old item New home Note
settings.boolean.fields dropped The kernel manifest settings schema owns boolean field declarations.
settings.define dropped Declare settings in the kernel manifest settings schema.
settings.descriptor dropped The kernel manifest settings schema owns the descriptor union.
settings.descriptors dropped The kernel manifest settings schema owns the settings map.
settings.handle.get bb.preferences: get() Returns the effective stored or default cell.
settings.handle.onChange bb.preferences: watch() Reports committed effective changes.
settings.namespace bb.preferences port The fixed kernel port replaces the old runtime settings namespace.
settings.project.fields dropped The kernel manifest settings schema owns project field declarations.
settings.select.fields dropped The kernel manifest settings schema owns select field declarations.
settings.string.fields dropped The kernel manifest settings schema owns string field declarations.
settings.value bb.preferences: PreferenceCell.value The new value type is JsonValue after schema validation.

testing

Old item New home Note
testing.contentScript.mounted dropped RenderedSurface replaces the mount result and inspects cleanup.
testing.contentScript.options dropped RenderSurfaceOptions supplies the replacement surface context.
testing.createFakePluginHost createServerHarness() The server harness runs the real loader graph.
testing.createFakeSdk ServerHarness.services.stub() Named service doubles replace the broad bb.sdk fake.
testing.fakeHarness.callAgentTool ServerHarness.drivers.callAgentTool() It calls a keyed bb.agents.tool claim.
testing.fakeHarness.callRpc ServerHarness.drivers.callRpc() It calls the explicit RPC port.
testing.fakeHarness.dispose ServerHarness.dispose() It tests automatic cleanup and abort.
testing.fakeHarness.emitThreadEvent ServerHarness.drivers.emitThreadEvent() It sends an event through bb.threads.
testing.fakeHarness.fetchHttp ServerHarness.drivers.fetchHttp() It calls the HTTP port.
testing.fakeHarness.reload ServerHarness.drivers.reload() It tests generation replacement.
testing.fakeHarness.resolveAgentConfiguration ServerHarness.drivers.resolveAgentConfiguration() It resolves configuration through bb.agents.
testing.fakeHarness.runCli ServerHarness.drivers.runCli() It runs a contributed command verb.
testing.fakeHarness.runSchedule ServerHarness.drivers.runSchedule() It runs a declared schedule.
testing.fakeHarness.runService ServerHarness.drivers.runService() It starts a declared background service.
testing.fakeHarness.setSettings ServerHarness.drivers.setSettings() It changes test settings and sends change events.
testing.fakeHost.bb ServerHarness.api The harness exposes the concrete server API.
testing.fakeHost.harness ServerHarness Drivers and inspection share one typed harness.
testing.fakeHost.options ServerHarnessOptions Named services and test ports replace broad SDK options.
testing.fakeHost.staleError KernelError with stale_handle The common kernel error replaces a test-only class.
testing.fakeSdk.calls ServerHarness.inspection.calls It records typed service and port calls.
testing.fakeSdk.callsTo ServerHarness.inspection.callsTo() It filters recorded calls by a contract path.
testing.fakeSdk.stub ServerHarness.services.stub() It stubs one named service token.
testing.hostHarness.call HostHarness.call() It validates input, output, JSON, and cancellation.
testing.hostHarness.create createHostHarness() The stable host harness replaces the experimental entry.
testing.hostHarness.dispose HostHarness.dispose() It aborts calls and disposes the role.
testing.hostHarness.leases HostHarness.retainedLeaseCount() It reports current host retention leases.
testing.hostHarness.lifecycleSignal HostHarness.lifecycleSignal It exposes the role lifecycle signal.
testing.hostHarness.options HostHarnessOptions It supplies paths and host ports.
testing.hostHarness.signals HostHarness.signals() It returns validated signals in order.
testing.installRuntime installTestAppRuntime() It installs the 2.0 app test runtime.
testing.loadPluginApp loadAppPlugin() It loads the 2.0 app factory.
testing.makeThreadResponse @bb/threads/testing: threadFixture() The thread owner supplies its fixture.
testing.mountContentScripts dropped renderSurface() tests the owner surface that replaces the content script.
testing.package.app @get-bb/plugin/testing/app The app harness entry.
testing.package.host @get-bb/plugin/testing/host The host harness entry.
testing.package.root @get-bb/plugin/testing The Node-only common test entry.
testing.publicScan.options PublicImportScanOptions It keeps explicit allow rules.
testing.publicScan.result PublicImportScan It reports files, violations, and private dependencies.
testing.publicScan.violation PublicImportViolation It keeps the four violation reasons.
testing.renderSlot renderSurface() A general surface renderer replaces slot rendering.
testing.renderSlot.behavior RenderedSurface.behavior It drives realtime, service bindings, and winner changes.
testing.renderSlot.inspection RenderedSurface.inspection It records RPC, navigation, service calls, and remounts.
testing.renderSlot.lifecycle RenderedSurface.rerender() and unmount() It controls surface and plugin cleanup.
testing.renderSlot.options RenderSurfaceOptions Contract ID, key, props, services, and route replace slot state.
testing.scanPublicSdkOnly scanPublicImports() The stable scan checks public package boundaries.
testing.testHelpers.corpusAvailable @bb/providers/testing: providerCorpusAvailable() The provider test module checks corpus availability.
testing.testHelpers.corpusEnv @bb/providers/testing: PROVIDER_CORPUS_DIR_ENV The provider test module owns the corpus location.
testing.testHelpers.decodeCorpus @bb/threads/testing: decodeStoredEventRow() The thread owner decodes stored event rows.
testing.testHelpers.deferred deferred() The common test entry keeps a small promise controller.
testing.testHelpers.deferredType Deferred<T> It defines the promise controller type.
testing.testHelpers.listCorpus @bb/providers/testing: listProviderCorpus() The provider test module lists corpus records.
testing.testHelpers.loadCorpus @bb/providers/testing: loadProviderCorpus() The provider test module loads one record.
testing.testHelpers.mergeBase @bb/workspace/testing: mergeBaseFixture() The workspace owner supplies its fixture.
testing.testHelpers.models @bb/providers/testing: preferredTestModels() The provider owner supplies test model order.
testing.testHelpers.optionalPaths assertContract() Contract conformance owns optional-path checks.
testing.testHelpers.resolveCorpusDir @bb/providers/testing: resolveProviderCorpusDir() The provider test module resolves the corpus directory.
testing.testHelpers.resolveModel @bb/providers/testing: resolveTestModel() The provider owner selects an available model.
testing.testHelpers.shellQuote @get-bb/plugin/testing/process: shellQuote() The process test subpath supplies shell quotation.
testing.testHelpers.waitMarker @get-bb/plugin/testing/process: waitForMarkerCount() The process test subpath supplies marker waits.
testing.testHelpers.workspaceStatus @bb/workspace/testing: workspaceStatusFixture() The workspace owner supplies its fixture.
testing.testHelpers.workspaceTree @bb/workspace/testing: workingTreeFixture() The workspace owner supplies its fixture.

Drop list

These 47 old items have no direct 2.0 mapping. Each row states the replacement path in its note.

Old item New Note
app.PluginAppBuilder.contentScripts dropped Use an owner-declared surface or app service.
app.PluginAppDefinition.__bbPluginApp dropped The loader verifies the artifact and does not use a branded value.
app.contentScripts dropped Replaced by owner-declared surface claims and app services.
app.contentScripts.register dropped Replaced by api.surfaces.provide() or a typed service edge.
app.contracts.PluginContentScriptContext dropped Owner surfaces and services provide typed context.
app.contracts.PluginContentScriptRegistration dropped The 2.0 app tier has no trusted content-script registration.
app.contracts.PluginContentScriptRegistration.mount dropped Use a factory or an owner-declared surface implementation.
app.contracts.PluginFileOpenerProps.Original dropped A keyed surface has no Original. Use renderPreview() for bb.files-ui.preview.
app.contracts.PluginFileOpenerSource.projectId dropped environmentId identifies the workspace. Use bb.workspace to resolve its project.
app.fileOpener.Original dropped A keyed surface has no Original. Use FileOpenerProps.renderPreview().
app.replacement.fileOpenerOverride dropped bb.files-ui.opener has one global winner per extension. Import an exact component when choice must stay fixed.
app.slots.experimental_providerIcon dropped Declare icon data or export an exact provider icon component.
bridge.exportName dropped The bb.providers.bridge host-role claim replaces the magic experimental_providerBridge export.
manifest.package.pluginTailwindContent dropped The app build scans the source import graph and declared exported modules.
registry.bindSdk dropped The old bb.sdk facade delegates to named 2.0 services during migration.
server.sdk.plugins.applyUpdate dropped Use the privileged bb plugin update command or the recovery UI.
server.sdk.plugins.catalog.install dropped Use the privileged bb plugin install flow.
server.sdk.plugins.catalog.installPlan dropped Use the privileged bb plugin install flow.
server.sdk.plugins.disable dropped Use the privileged bb plugin disable command or the plugin management UI.
server.sdk.plugins.enable dropped Use the privileged bb plugin enable command or the plugin management UI.
server.sdk.plugins.install dropped Use the privileged bb plugin install command or the plugin management UI.
server.sdk.plugins.marketplaces.add dropped Use the privileged bb marketplace add command or the plugin management UI.
server.sdk.plugins.marketplaces.list dropped Use the privileged bb marketplace list command or the plugin management UI.
server.sdk.plugins.marketplaces.refresh dropped Use the privileged bb marketplace refresh command or the plugin management UI.
server.sdk.plugins.marketplaces.remove dropped Use the privileged bb marketplace remove command or the plugin management UI.
server.sdk.plugins.reload dropped Use the privileged bb plugin reload command or the plugin management UI.
server.sdk.plugins.remove dropped Use the privileged bb plugin remove command or the plugin management UI.
server.server.experimental_dataDir dropped Use bb.storage. The kernel does not expose its data directory.
server.settings.define dropped Declare the schema in the kernel manifest and read values through bb.preferences.
server.settings.descriptor dropped The kernel manifest settings schema replaces the runtime descriptor union.
server.settings.descriptor.default dropped The kernel manifest settings schema owns the effective default.
server.settings.descriptor.description dropped The kernel manifest settings schema owns the field description.
server.settings.descriptor.experimental_multiline dropped The kernel manifest settings schema selects the text editor.
server.settings.descriptor.label dropped The kernel manifest settings schema owns the field label.
server.settings.descriptor.options dropped The kernel manifest settings schema owns select choices.
server.settings.descriptor.secret dropped The kernel manifest marks a secret field, and the UI uses the kernel bb.secrets port.
server.settings.descriptor.type dropped The kernel manifest settings schema owns the field type.
settings.boolean.fields dropped The kernel manifest settings schema owns boolean field declarations.
settings.define dropped Declare settings in the kernel manifest settings schema.
settings.descriptor dropped The kernel manifest settings schema owns the descriptor union.
settings.descriptors dropped The kernel manifest settings schema owns the settings map.
settings.project.fields dropped The kernel manifest settings schema owns project field declarations.
settings.select.fields dropped The kernel manifest settings schema owns select field declarations.
settings.string.fields dropped The kernel manifest settings schema owns string field declarations.
testing.contentScript.mounted dropped RenderedSurface replaces the mount result and inspects cleanup.
testing.contentScript.options dropped RenderSurfaceOptions supplies the replacement surface context.
testing.mountContentScripts dropped renderSurface() tests the owner surface that replaces the content script.