| 
                        1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 | 
                        - import type { ActionItem, PluginSearchResult } from './types'
 - import { renderI18nObject } from '@/i18n-config'
 - import Icon from '../../plugins/card/base/card-icon'
 - import { postMarketplace } from '@/service/base'
 - import type { Plugin, PluginsFromMarketplaceResponse } from '../../plugins/types'
 - import { getPluginIconInMarketplace } from '../../plugins/marketplace/utils'
 - 
 - const parser = (plugins: Plugin[], locale: string): PluginSearchResult[] => {
 -   return plugins.map((plugin) => {
 -     return {
 -       id: plugin.name,
 -       title: renderI18nObject(plugin.label, locale) || plugin.name,
 -       description: renderI18nObject(plugin.brief, locale) || '',
 -       type: 'plugin' as const,
 -       icon: <Icon src={plugin.icon} />,
 -       data: plugin,
 -     }
 -   })
 - }
 - 
 - export const pluginAction: ActionItem = {
 -   key: '@plugin',
 -   shortcut: '@plugin',
 -   title: 'Search Plugins',
 -   description: 'Search and navigate to your plugins',
 -   search: async (_, searchTerm = '', locale) => {
 -     try {
 -       const response = await postMarketplace<{ data: PluginsFromMarketplaceResponse }>('/plugins/search/advanced', {
 -         body: {
 -           page: 1,
 -           page_size: 10,
 -           query: searchTerm,
 -           type: 'plugin',
 -         },
 -       })
 - 
 -       if (!response?.data?.plugins) {
 -         console.warn('Plugin search: Unexpected response structure', response)
 -         return []
 -       }
 - 
 -       const list = response.data.plugins.map(plugin => ({
 -         ...plugin,
 -         icon: getPluginIconInMarketplace(plugin),
 -       }))
 -       return parser(list, locale!)
 -     }
 -     catch (error) {
 -       console.warn('Plugin search failed:', error)
 -       return []
 -     }
 -   },
 - }
 
 
  |