/** * Static catalog of agent runtime tools (the strings used in an agent's * `allowedTools`). Mirrors the `@polpo-ai/tools` package so the dashboard * can show the FULL catalog — not just what a given agent has enabled — * with human-readable descriptions and per-category metadata. * * Descriptions are taken from the tool definitions in @polpo-ai/tools. * Keep in sync when the package adds/changes tools. (A future * GET /v1/tools endpoint will replace this — see todo-tools-catalog-endpoint.) * * `core: true` → always available, cannot be disabled (no allowedTools entry needed). * `requiresKey` → needs an external credential (vault entry, env var, or managed Connection) to run. */ export interface CatalogTool { name: string; description: string; } export interface CatalogGroup { /** Stable key + the tool-name prefix for non-core groups (e.g. "image_"). */ key: string; /** Display label, e.g. "Image". */ label: string; /** Lucide icon name, resolved to a component in the view. */ icon: string; /** Core groups are always available and have no on/off state. */ core?: boolean; /** * Baseline groups are ON by default (when the agent has no `allowedTools` * set) but CAN be turned off — they mirror the runtime, which keeps these * tools only while `allowedTools` is unset, and filters them otherwise. */ baseline?: boolean; /** At least one tool in the group needs an external API key / credential. */ requiresKey?: boolean; /** Display text for the credential requirement badge. Defaults to "needs vault". */ credentialLabel?: string; /** Keep every tool visible in allowedTools instead of collapsing to a wildcard. */ explicitToolsOnly?: boolean; /** One-line note about what the group unlocks / requires. */ note?: string; tools: CatalogTool[]; } export declare const TOOL_CATALOG: CatalogGroup[]; /** Every catalogued tool name, for detecting custom/unknown enabled tools. */ export declare const CATALOG_TOOL_NAMES: Set; export declare const CATALOG_TOOL_WILDCARDS: Set; /** * Is `toolName` enabled by an agent's `allowedTools`? True on an exact match * or a matching wildcard (e.g. "image_*" enables "image_generate"). */ export declare function isToolEnabled(toolName: string, allowed: string[]): boolean; /** Tools the runtime grants when an agent has no explicit allowedTools. */ export declare const BASELINE_TOOLS: Set; /** * The number of tools an agent actually has enabled — resolving core tools * (always on), the empty-allowedTools baseline, and `prefix*` wildcards. Use * this instead of `allowedTools.length`, which miscounts wildcards/baseline. */ export declare function countEnabledTools(allowed: string[]): number; /** Does `allowed` enable a whole group via its wildcard (e.g. "image_*")? */ export declare function hasGroupWildcard(groupKey: string, allowed: string[]): boolean; //# sourceMappingURL=tool-catalog.d.ts.map