@cellar-door/langchain
v0.1.5
Published
LangChain integration for cellar-door EXIT and ENTRY — verifiable agent departure and arrival markers
Maintainers
Readme
@cellar-door/langchain
𓉸 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 LangChain 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 ← you are here | | cellar-door-langchain | Python | LangChain integration | | @cellar-door/vercel-ai-sdk | TypeScript | Vercel AI SDK | | @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/langchain @langchain/core cellar-door-exit cellar-door-entryimport { createExitTool } from "@cellar-door/langchain";
// Add to any LangChain agent
const exitTool = createExitTool();
// The agent can now create signed EXIT markers:
// "Create a departure record for did:web:platform.example"
// → Returns a signed, verifiable EXIT markerAutomatic EXIT on chain completion
import { ExitCallbackHandler } from "@cellar-door/langchain";
const handler = new ExitCallbackHandler({
origin: "my-app",
onMarker: (marker) => console.log("Departed:", marker.id),
});
const result = await chain.invoke(input, { callbacks: [handler] });
// EXIT marker created automatically when the chain finishesEXIT Tools
Exit Tool
import { createExitTool } from "@cellar-door/langchain";
const tool = createExitTool();
// Use with any LangChain agentExit Callback Handler
import { ExitCallbackHandler } from "@cellar-door/langchain";
const handler = new ExitCallbackHandler({
origin: "my-app",
onMarker: (marker) => console.log("Departed:", marker.id),
});ENTRY Tools
Entry Tool
import { createEntryTool } from "@cellar-door/langchain";
const entryTool = createEntryTool();
// Agent calls with { exitMarkerJson, destination }
// Returns signed arrival marker with continuity verificationAdmission Policy Tool
import { createAdmissionPolicyTool } from "@cellar-door/langchain";
const admissionTool = createAdmissionPolicyTool();
// Agent calls with { exitMarkerJson, policy: "OPEN_DOOR" | "STRICT" | "EMERGENCY_ONLY" }Transfer Verification Tool
import { createTransferVerificationTool } from "@cellar-door/langchain";
const transferTool = createTransferVerificationTool();
// Agent calls with { exitMarkerJson, arrivalMarkerJson }
// Returns { verified, transferTime, errors, continuity }Callback Handler with Arrival
import { ExitCallbackHandler } from "@cellar-door/langchain";
const handler = new ExitCallbackHandler({
origin: "platform-a",
arrivalDestination: "platform-b",
onMarker: (marker) => console.log("EXIT:", marker.id),
onArrival: (arrival) => console.log("ARRIVAL:", arrival.id),
});
// handler.markers — all EXIT markers
// handler.arrivals — all ARRIVAL markersAPI
EXIT
createExitTool(opts?)—DynamicStructuredToolfor creating EXIT markersExitCallbackHandler— Callback handler for automatic EXIT (and optionally ENTRY) markers
ENTRY
createEntryTool()— Tool to verify EXIT + create arrivalcreateAdmissionPolicyTool()— Tool to evaluate admission policiescreateTransferVerificationTool()— Tool to verify EXIT→ENTRY transfers
⚠️ 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
