import { type AgentRunner, type Json, type RunContext, type ToolRegistry } from "./core/index.js"; import { type VendoToolPackFilter } from "./tool-pack.js"; export interface VendoToolPackCoreOptions extends VendoToolPackFilter { /** The guard-bound registry (guard.bind(actions)) — the pack never wraps an * unbound registry; parking, grants, breakers, and audit all live in the * binding's execute path. */ registry: ToolRegistry; /** Backs `vendo_delegate` (the umbrella passes `agent.asRunner()`). */ runner: AgentRunner; } /** How a pack tool is executed by a format shim. `ctx` is per-call because the * Mastra shim resolves its principal lazily from the framework's request * context; the AI SDK shim closes one request-scoped ctx over every call. */ export interface VendoPackExecuteOptions { ctx: RunContext; /** The host loop's tool-call id, for audit continuity; unset mints one. */ callId?: string; } /** One framework-neutral pack tool: final `vendo_*` name, the descriptor's * JSON-Schema input, and a guarded execute returning either a versioned * envelope (`vendo/app-ref@1`, `vendo/approval-ref@1`) or plain data. */ export interface VendoPackTool { name: string; description: string; inputSchema: Json; execute(input: unknown, options: VendoPackExecuteOptions): Promise; } /** * Build the pack: every registered host tool guard-wrapped under `vendo_`, * plus the two built-ins. Vendo-internal registry tools (names already under * `vendo_` — the apps runtime's `vendo_apps_*`, doctor probes) are never * double-wrapped: the pack's door to app creation is `vendo_make` itself, and * in-app interaction rides the wire, not the host loop. `include`/`exclude` * match FINAL namespaced names exactly; exclude wins. */ export declare function buildVendoToolPack(options: VendoToolPackCoreOptions): Promise;