Skip to content

CellarDoorExits/langchain

@cellar-door/langchain

npm version tests license NIST

𓉸 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 hawthornhollows@gmail.com.

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

Paper · Website

Quick Start

npm install @cellar-door/langchain @langchain/core cellar-door-exit cellar-door-entry
import { 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 marker

Automatic 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 finishes

EXIT Tools

Exit Tool

import { createExitTool } from "@cellar-door/langchain";

const tool = createExitTool();
// Use with any LangChain agent

Exit 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 verification

Admission 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 markers

API

EXIT

  • createExitTool(opts?)DynamicStructuredTool for creating EXIT markers
  • ExitCallbackHandler — Callback handler for automatic EXIT (and optionally ENTRY) markers

ENTRY

  • createEntryTool() — Tool to verify EXIT + create arrival
  • createAdmissionPolicyTool() — Tool to evaluate admission policies
  • createTransferVerificationTool() — 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

Packages

 
 
 

Contributors