/** * Paperclip API tools. * * Eight tools that map 1:1 to the most-common Paperclip board operations. * They are defined as OpenAI-style function-calling schemas and shipped * to MiniMax on every turn. The model picks which to call; we dispatch * to the corresponding Paperclip REST endpoint and return the result. * * Approval-gated tools (`hire_agent`, `request_approval`) route through * Paperclip's `/api/companies/:id/approvals` flow so the board stays in * the loop — even autonomous agents can't sidestep a human sign-off. */ import type { AdapterConfig, ToolDefinition, JsonValue } from "./types.js"; declare const toolDefs: ToolDefinition[]; export declare function listTools(): ToolDefinition[]; export type ToolName = (typeof toolDefs)[number]["function"]["name"]; export interface ToolContext { config: AdapterConfig; companyId: string; issueId: string; fetchImpl?: typeof fetch; /** When true, side-effect tools (hire_agent, request_approval) are routed through the approval flow. */ approvalGated: boolean; } /** * Dispatch a tool call to Paperclip. Returns a JSON-serializable value * for the model and records the result for the transcript. */ export declare function callTool(name: string, rawArgs: string, ctx: ToolContext): Promise<{ output: JsonValue; isError: boolean; }>; export {}; //# sourceMappingURL=tools.d.ts.map