@cellar-door/vercel-ai-sdk
v0.1.5
Published
Vercel AI SDK integration for cellar-door EXIT and ENTRY — verifiable agent departure and arrival markers
Downloads
486
Maintainers
Readme
@cellar-door/vercel-ai-sdk
𓉸 Passage Protocol · exit-door · entry-door · mcp · langchain · vercel · eliza · eas · erc-8004 · sign · python
⚠️ Pre-release software — no formal security audit has been conducted. This project is published for transparency, review, and community feedback. It should not be used in production systems where security guarantees are required. If you find a vulnerability, please report it to [email protected].
Add verifiable departure and arrival records to your Vercel AI SDK agents.
Ecosystem
| Package | Language | Description | |---------|----------|-------------| | cellar-door-exit | TypeScript | Core protocol (reference impl) | | cellar-door-exit | Python | Core protocol | | cellar-door-entry | TypeScript | Arrival/entry markers | | @cellar-door/langchain | TypeScript | LangChain integration | | cellar-door-langchain | Python | LangChain integration | | @cellar-door/vercel-ai-sdk | TypeScript | Vercel AI SDK ← you are here | | @cellar-door/mcp-server | TypeScript | MCP server | | @cellar-door/eliza | TypeScript | ElizaOS plugin | | @cellar-door/eas | TypeScript | EAS attestation anchoring | | @cellar-door/erc-8004 | TypeScript | ERC-8004 identity/reputation | | @cellar-door/sign-protocol | TypeScript | Sign Protocol attestation |
Quick Start
npm install @cellar-door/vercel-ai-sdk cellar-door-exit cellar-door-entry aiimport { generateText } from "ai";
import { openai } from "@ai-sdk/openai";
import { exitMarkerTool } from "@cellar-door/vercel-ai-sdk";
const { text, toolResults } = await generateText({
model: openai("gpt-4o"),
tools: { exitMarker: exitMarkerTool },
prompt: "Complete the task and produce a departure marker for did:web:platform.example",
});
// The agent creates a signed EXIT marker automatically
// toolResults contains the verified marker JSONAutomatic EXIT on session end
import { streamText } from "ai";
import { createExitOnFinish } from "@cellar-door/vercel-ai-sdk";
const result = await streamText({
model: openai("gpt-4o"),
prompt: "Hello!",
onFinish: createExitOnFinish({
origin: "my-agent",
onMarkerCreated: (marker, identity) => {
console.log("EXIT marker created:", marker.id);
},
}),
});EXIT Tools
Tool
import { exitMarkerTool } from "@cellar-door/vercel-ai-sdk";
// Drop into any generateText/streamText callMiddleware
import { createExitOnFinish } from "@cellar-door/vercel-ai-sdk";
// Automatic EXIT marker on session endENTRY Tools
Verify and Admit
import { verifyAndAdmitAgentTool } from "@cellar-door/vercel-ai-sdk";
// Agent calls with { exitMarkerJson, destination, admissionPolicy? }Evaluate Admission Policy
import { evaluateAdmissionTool } from "@cellar-door/vercel-ai-sdk";
// Check if an EXIT marker meets a policy without creating an arrivalVerify Transfer Chain
import { verifyTransferTool } from "@cellar-door/vercel-ai-sdk";
// Verify a complete EXIT→ENTRY transferFull Transit Middleware (EXIT + ENTRY)
import { createTransitOnFinish } from "@cellar-door/vercel-ai-sdk";
const result = await streamText({
model,
prompt: "Hello",
onFinish: createTransitOnFinish({
origin: "platform-a",
arrivalDestination: "platform-b",
onMarkerCreated: (marker) => console.log("EXIT:", marker.id),
onArrivalCreated: (arrival) => console.log("ARRIVAL:", arrival.id),
}),
});API
EXIT
exitMarkerTool— Vercel AI SDK tool for creating EXIT markerscreateExitOnFinish(opts)—onFinishcallback for automatic EXIT markerswithExitMarker(originalOnFinish, opts)— Wraps existingonFinishto also create EXIT markers
ENTRY
verifyAndAdmitAgentTool— Verify EXIT marker + create arrivalevaluateAdmissionTool— Check if EXIT marker meets an admission policyverifyTransferTool— Verify a complete EXIT→ENTRY transfer chaincreateEntryOnStart(exitMarkerJson, opts)— Create arrival on session startcreateTransitOnFinish(opts)— Create both EXIT and ENTRY markers on finish
Admission Policies
OPEN_DOOR— Accept any verified departureSTRICT— Voluntary only, <24h old, requires lineage + stateSnapshotEMERGENCY_ONLY— Accept only emergency exits
⚠️ Disclaimer
WARNING: Automated admission decisions should be reviewed by platform operators. This integration does not constitute legal advice. Platforms are responsible for their own admission policies and the consequences of admitting agents.
License
Apache-2.0
