Skip to content

Interface: ExtensionUiContribution

Makaio Framework


Makaio Framework / contracts/extension / ExtensionUiContribution

Defined in: ../../../packages/contracts/src/extension/extension-contributions.ts:103

Browser UI contribution surface declared by an extension.

readonly optional configComponent?: ExtensionConfigComponentLoader

Defined in: ../../../packages/contracts/src/extension/extension-contributions.ts:170

Fully custom configuration component loader.

When provided, the schema-driven form is bypassed entirely. Use this for complex UIs where >50% of fields need custom rendering.

configComponent: () => import('./ui/CustomConfigPanel.js'),

readonly optional fieldTypes?: Record<string, ExtensionFieldTypeLoader>

Defined in: ../../../packages/contracts/src/extension/extension-contributions.ts:158

Custom field type loaders for schema-driven forms.

Maps field type identifiers to lazy-loaded React components that accept FormFieldProps. Registered with FormFieldRegistry on extension load.

fieldTypes: {
'image-upload': () => import('./ui/ImageUploadField.js'),
}

readonly optional pages?: readonly PageDeclaration[]

Defined in: ../../../packages/contracts/src/extension/extension-contributions.ts:136

Page declarations for the page registry and optional sidebar navigation.

Pages are registered in the page registry. When mode, level, and component are provided, the loader also registers the page in the sidebar navigation (PageDefinitionRegistry).


readonly optional routes?: readonly MakaioWebUiRoute<unknown, MakaioWebUiActions | undefined>[]

Defined in: ../../../packages/contracts/src/extension/extension-contributions.ts:110

WebUI routes mounted under /extensions/<extension-name>/.

Each route defines a path, an optional data loader, optional action handlers, and a lazy-loaded React component.


readonly optional tiles?: readonly TileDeclaration[]

Defined in: ../../../packages/contracts/src/extension/extension-contributions.ts:119

Tile declarations for pane-placeable content.

Tiles are registered with TileRegistry and shown in the “Add Pane” palette. Each declaration includes metadata, an icon, and platform renderers.


readonly optional toolFormatters?: readonly ToolCallFormatterDeclaration[]

Defined in: ../../../packages/contracts/src/extension/extension-contributions.ts:144

Tool call formatter declarations.

Formatters customize how specific tool calls are rendered in the chat UI. Registered with ToolCallFormatterRegistry on extension load.


readonly optional widgets?: readonly WidgetDeclaration[]

Defined in: ../../../packages/contracts/src/extension/extension-contributions.ts:127

Widget declarations for small dashboard cards.

Widgets are registered in the global widget catalog. They are NOT pane content — use tiles for pane-placeable content.