trellis
Version:
Agentic State Engine — event-sourced causal graph with branching, decision traces, and realtime sync for AI-native applications
46 lines (43 loc) • 965 B
JavaScript
import {
TrellisDb
} from "./chunk-K224QLJL.js";
// src/react/provider.tsx
import React, {
createContext,
useContext,
useMemo,
useEffect
} from "react";
var TrellisContext = createContext(null);
function TrellisProvider({
url,
apiKey,
tenantId,
children
}) {
const client = useMemo(() => {
const opts = { url };
if (apiKey) opts.apiKey = apiKey;
if (tenantId) opts.tenantId = tenantId;
return new TrellisDb(opts);
}, [url, apiKey, tenantId]);
useEffect(() => {
return () => {
client.disconnect();
};
}, [client]);
return /* @__PURE__ */ React.createElement(TrellisContext.Provider, { value: client }, children);
}
function useTrellis() {
const client = useContext(TrellisContext);
if (!client) {
throw new Error(
'useTrellis() must be used within a <TrellisProvider>. Wrap your app with <TrellisProvider url="...">.'
);
}
return client;
}
export {
TrellisProvider,
useTrellis
};