diff --git a/packages/client/src/api/hermes/plugins.ts b/packages/client/src/api/hermes/plugins.ts new file mode 100644 index 0000000..5cee32d --- /dev/null +++ b/packages/client/src/api/hermes/plugins.ts @@ -0,0 +1,37 @@ +import { request } from '../client' + +export type PluginConfigStatus = 'enabled' | 'disabled' | 'not-enabled' | 'auto' | 'provider-managed' +export type PluginEffectiveStatus = 'enabled' | 'disabled' | 'inactive' | 'auto-active' | 'provider-managed' + +export interface HermesPluginInfo { + key: string + name: string + kind: string + source: string + configStatus: PluginConfigStatus | string + effectiveStatus: PluginEffectiveStatus | string + version: string + description: string + author: string + path: string + providesTools: string[] + providesHooks: string[] + requiresEnv: Array> +} + +export interface HermesPluginsMetadata { + hermesAgentRoot: string + pythonExecutable: string + cwd: string + projectPluginsEnabled: boolean +} + +export interface HermesPluginsResponse { + plugins: HermesPluginInfo[] + warnings: string[] + metadata: HermesPluginsMetadata +} + +export async function fetchPlugins(): Promise { + return request('/api/hermes/plugins') +} diff --git a/packages/client/src/components/layout/AppSidebar.vue b/packages/client/src/components/layout/AppSidebar.vue index f48c61b..dc031b4 100644 --- a/packages/client/src/components/layout/AppSidebar.vue +++ b/packages/client/src/components/layout/AppSidebar.vue @@ -157,6 +157,13 @@ function openChangelog() { {{ t("sidebar.skills") }} +