Files
archy/packages/app/src/plugins/index.ts
T
DorianandClaude Opus 4.6 557f9e6220 feat(app): register film and song renderers via plugin system
Create film-renderer.ts and song-renderer.ts as RendererDefinition
plugins using defineAsyncComponent for lazy loading. ContentPanel.vue
now looks up film/song components via getRendererForContentType()
instead of direct imports, enabling future community renderer plugins.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 20:39:28 +00:00

34 lines
1.0 KiB
TypeScript

import { registerPlugin, registerRenderer } from '@aiui/core'
export async function initializePlugins(): Promise<void> {
// Register built-in AI provider
const { claudeProvider } = await import('./claude-provider')
registerPlugin(claudeProvider)
await claudeProvider.init({
settings: {
get: () => undefined,
set: () => {},
},
events: {
emit: () => {},
on: () => () => {},
},
logger: {
info: console.info.bind(console, '[AIUI plugin]'),
warn: console.warn.bind(console, '[AIUI plugin]'),
error: console.error.bind(console, '[AIUI plugin]'),
},
})
// Register built-in content renderers
const { filmRenderer } = await import('./renderers/film-renderer')
const { songRenderer } = await import('./renderers/song-renderer')
registerRenderer(filmRenderer)
registerRenderer(songRenderer)
if (import.meta.env.DEV) {
console.log('[AIUI] Plugins initialized:', claudeProvider.id)
console.log('[AIUI] Renderers registered: film, song')
}
}