/** * Discovery API — enumerates the graph + process ops shipped by this * plugin so that host runtimes (deposium scratchpad, etc.) can * boot-validate their op-to-model bindings against what is actually * available. Avoids silent drift when the plugin adds/removes ops. * * @since v1.3.0 * * Usage on the host side: * ```ts * import { AVAILABLE_OPS } from '@seed-ship/duckdb-mcp-native' * * const shipped = new Set(AVAILABLE_OPS.map((op) => op.name)) * for (const bound of Object.keys(OP_MODEL_BINDINGS)) { * if (!shipped.has(bound)) { * console.warn(`OP_MODEL_BINDINGS references '${bound}' but plugin does not ship it`) * } * } * ``` */ /** * Metadata for an op exported by the plugin. * * `costClass` is a coarse hint useful to the host for routing the call to * an appropriately-sized model class. It does not encode SLA — it merely * groups ops by typical workload shape. */ export interface AvailableOp { /** Canonical op name, e.g. 'graph.pagerank'. Must match the binding key on the host. */ name: string; /** Family the op belongs to. Useful for grouping in dashboards. */ family: 'graph' | 'process' | 'data'; /** One-line description of what the op does. */ description: string; /** * Coarse cost hint for the host's model-router: * - `cheap`: fast, deterministic, summarisation-only (e.g. modularity scoring) * - `medium`: typical analytical query, multi-statement (e.g. pagerank, community) * - `heavy`: large iteration counts or fan-out (e.g. compare_periods on big graphs) */ costClass: 'cheap' | 'medium' | 'heavy'; /** Names of the input fields the op accepts (Zod schema field names). */ inputs: readonly string[]; } export declare const AVAILABLE_OPS: readonly AvailableOp[]; //# sourceMappingURL=available-ops.d.ts.map