@adonis-agora/agent
Version:
Governed, durable-backed AI agent (chat + tool-calling + governance) for AdonisJS — part of the Agora ecosystem.
40 lines • 1.93 kB
TypeScript
import { type HumanReply } from '../elicitation.js';
import type { AgentRunner, AgentRunStartOptions } from '../spi/agent-runner.js';
import type { AgentStore } from '../spi/agent-store.js';
import type { AgentRunInput } from '../types.js';
import type { OpenCodeTurns } from './turns.js';
/**
* Runs OpenCode turns in this process: `begin → prompt → [observe → wait for a person → reply]* →
* settle`, with the waits on people held in memory. Like `InlineAgentRunner`, a run parked on a
* person lives in this process, so deploy it single-replica — or use `openCodeDurable()`
* (`@adonis-agora/agent/opencode/durable`), which checkpoints every step and waits on a durable
* signal.
*/
export declare class OpenCodeAgentRunner implements AgentRunner {
private readonly turns;
private readonly store;
private readonly live;
private readonly cancelled;
private readonly pending;
constructor(turns: OpenCodeTurns, store: AgentStore);
runIdFor(input: AgentRunInput): string;
/** In-process, so exact: a run this process is not running is not running anywhere. */
isRunActive(runId: string): Promise<boolean>;
start(input: AgentRunInput, options?: AgentRunStartOptions): Promise<{
runId: string;
}>;
/**
* Deliver a person's reply. Answers addressed at an approval are refused, as the inline runner
* refuses them: they say nothing about whether the action should run.
*/
signal(runId: string, toolCallId: string, reply: HumanReply): Promise<void>;
/**
* Stop the run: what it waits on a person for is dropped, and OpenCode is interrupted — it answers
* `session.execution.interrupted`, which settles the run as cancelled.
*/
cancel(runId: string): Promise<void>;
private run;
/** Wait for a person's answer; a lapsed approval answers itself as expired. */
private park;
}
//# sourceMappingURL=runner.d.ts.map