pr_01m47d15m3e54sn21z27rpy5n9/packages/contracts/src/runner.ts

32 lines1,164 bytesCodeBlame
1import type { User, Viewer } from "./identity";
2import type { Result } from "./result";
3import type { Attempt } from "./work";
4
5/** A model a g1t agent can run on, as offered to the person starting it. */
6export type AgentModel = {
7 /** Stable name used in requests, e.g. `balanced`. */
8 id: string;
9 label: string;
10 description: string;
11};
12
13export type RunHostedInput = {
14 /** How many agents to race on the intent, each in its own sandbox. */
15 count: number;
16 /** Extra guidance appended to the intent's brief for these runs. */
17 instructions?: string;
18 /** One of the offered model ids; the first offered when absent. */
19 model?: string;
20};
21
22/** Hosted agents: sandboxes on g1t that work on an intent. */
23export interface RunnerApi {
24 /** The models this viewer may run g1t agents on; empty if they may not. */
25 models(viewer: Viewer): Promise<AgentModel[]>;
26 /**
27 * Starts `count` attempts on the intent, each run by an agent in its own
28 * sandbox. Returns as soon as the sandboxes are starting; progress shows
29 * up in each attempt's session.
30 */
31 run(actor: User, intentId: string, input: RunHostedInput): Promise<Result<Attempt[]>>;
32}