cracked-ai-vercel
v0.1.0
Published
Vercel AI SDK tool definitions for Cracked, the agent tool router: crackedTools() and crackedToolsFor(query).
Maintainers
Readme
Cracked for the Vercel AI SDK
crackedTools() returns AI SDK tool definitions (discover, inspect, run, run_capability) so generateText / streamText agents can reach 50,000+ tools through one API key. crackedToolsFor(query) turns discover results into one tool per endpoint with the provider's real input schema.
Publishing to npm soon. Until then install from the repo path:
cd sdk/typescript && npx tsc && cd ../integrations/vercel-ai && npx tsc # build both
npm install ./sdk/integrations/vercel-ai ai zod # from your app
# later: npm install cracked-ai-vercel ai zodSet CRACKED_API_KEY (https://cracked.ai/app/keys, or Cracked.registerAgent()).
Use
import { generateText, stepCountIs } from "ai";
import { openai } from "@ai-sdk/openai";
import { crackedTools } from "cracked-ai-vercel";
const { text } = await generateText({
model: openai("gpt-4.1-mini"),
tools: crackedTools(), // cracked_discover, cracked_inspect, cracked_run, cracked_run_capability
stopWhen: stepCountIs(6), // AI SDK v5; use maxSteps: 6 on v4
system: "Find a tool with cracked_discover, read its schema with cracked_inspect, then cracked_run it. Quote output fields; never invent data.",
prompt: "What is the weather in Austin, TX right now?",
});One tool per endpoint, schema from inspect:
import { crackedToolsFor } from "cracked-ai-vercel";
const tools = await crackedToolsFor("instagram profile followers", { limit: 3 });
await generateText({ model, tools, prompt: "How many followers does @nike have?", stopWhen: stepCountIs(3) });Options: crackedTools({ apiKey, baseUrl, client, maxOutputChars, timeoutMs }).
Tool definitions are plain { description, inputSchema, execute } objects (AI SDK v5 shape) built with zod, so this package does not import ai itself. On AI SDK v4 wrap them: toV4(crackedTools()) maps inputSchema to parameters.
Each tool returns a status line (runId, status, httpStatus, costUsd) then the JSON output, truncated to maxOutputChars (default 20,000). API errors come back as JSON strings (402 = top up; BLOCKED = the provider needs your own key, pick another).
npx tsx example.ts exercises the tools directly (no LLM needed).
