@scopeblind/langchain
v0.1.2
Published
ScopeBlind evidence wrapper for LangChain tool calls. Automatically creates Veritas Acta receipts for every tool invocation.
Downloads
431
Maintainers
Readme
@scopeblind/langchain
Veritas Acta evidence wrapper for LangChain tool calls. Every tool invocation automatically produces a cryptographically signed evidence chain: decision → execution → outcome.
Install
npm install @scopeblind/langchainUsage
Wrap a Single Tool
import { wrapTool } from '@scopeblind/langchain';
const config = {
issuer: 'my-gateway',
privateKey: '...', // Ed25519 hex seed (optional — unsigned if omitted)
onReceipt: (receipt) => console.log('📋', receipt.receipt_type, receipt.receipt_id),
};
// Wrap any LangChain tool
const protectedTool = wrapTool(myTool, config);
// Use it normally — receipts are generated automatically
const result = await protectedTool.invoke({ query: 'search term' });Wrap All Tools
import { wrapToolkit } from '@scopeblind/langchain';
const tools = wrapToolkit([searchTool, calculatorTool, fileTool], config);Push to Evidence Indexer
const config = {
issuer: 'my-gateway',
indexerEndpoint: 'https://evidence-indexer.tomjwxf.workers.dev',
indexerApiKey: 'your-api-key',
};Callback Handler (for existing chains)
import { createCallbackHandler } from '@scopeblind/langchain';
const handler = createCallbackHandler(config);
const chain = new AgentExecutor({ tools, callbacks: [handler] });Policy Enforcement
const config = {
issuer: 'my-gateway',
enforce: true,
policy: (toolName, args) => {
if (toolName === 'delete_file') return 'deny';
return 'allow';
},
};Receipt Chain
Each tool call produces 3 linked receipts:
⚖️ decision (allow/deny)
└──[caused_by]──▶ ⚡ execution (input_hash)
└──[caused_by]──▶ 📦 outcome (output_hash, duration_ms)Protocol
Built on Veritas Acta — the open evidence protocol for machine decisions.
npm install @veritasacta/protocol # MIT-licensed protocol typesLicense
MIT — ScopeBlind
