export type ApiShapeId = "openai-chat-completions" | "openai-responses" | "anthropic-messages" | "google-generations"; /** * The poe-code surfaces an agent can be used with. This is the single * published source for each command's allow-list; `agent-capability-matrix.test.ts` * pins every value to the registry that implements it, so the sets cannot drift. */ export type AgentCapability = "spawn" | "configure" | "install" | "test" | "skill" | "mcp"; export interface OtelCaptureDefinition { env?: Record; args?: (endpoint: string, content: boolean) => string[]; } export interface AgentDefinition { id: string; name: string; label: string; summary: string; aliases?: string[]; /** Binary name for CLI agents. Optional for GUI-only apps like Claude Desktop. */ binaryName?: string; readonly capabilities?: readonly AgentCapability[]; readonly apiShapes?: readonly ApiShapeId[]; readonly otelCapture?: OtelCaptureDefinition; configPath?: string; readonly configPaths?: { readonly darwin: string; readonly linux: string; readonly win32: string; }; branding: { colors: { dark: string; light: string; }; }; }