UNPKG

@adonis-agora/agent

Version:

Governed, durable-backed AI agent (chat + tool-calling + governance) for AdonisJS — part of the Agora ecosystem.

61 lines • 2.24 kB
let current; /** Install (or clear, with `undefined`) the durable agent context. Called by the provider at boot. */ export function setDurableAgentContext(context) { current = context; } /** * The installed {@link DurableAgentContext}. Throws if the durable runner was reached without the * provider having wired it — a misconfiguration, never a normal path. */ export function getDurableAgentContext() { if (current === undefined) { throw new Error('[@adonis-agora/agent] durable agent context is not set — the durable runner was used before ' + 'the provider wired it (call setDurableAgentContext during boot).'); } return current; } let registered; const engineListeners = new Set(); /** @internal Recorded by `registerAgentWorkflow`: the engine the agent workflow runs on. */ export function rememberAgentEngine(engine) { registered = engine; if (engine === undefined) return; for (const listener of engineListeners) listener(engine); } /** * @internal The engine the agent's durable runner was wired on (`durable: true`), if it was — what * the text channels run their inbound messages on. */ export function registeredAgentEngine() { return registered; } /** * @internal Be told when the agent's durable engine is wired (now, when it already is). Returns an * unsubscribe function. */ export function onAgentEngine(listener) { engineListeners.add(listener); if (registered !== undefined) listener(registered); return () => engineListeners.delete(listener); } let stepServer; /** * @internal Where the app's durable engine serves dispatched steps by name (its transport) — * recorded by the provider before the agent workflow is registered, so the text channels dispatch * their phases there. */ export function rememberAgentStepServer(server) { stepServer = server; } /** @internal See {@link rememberAgentStepServer}. */ export function registeredAgentStepServer() { return stepServer; } /** @internal The engine a detached delegation starts on — see {@link DurableAgentContext.engine}. */ export function agentEngine(context) { return context.engine ?? registered; } //# sourceMappingURL=agent-run-context.js.map