/* tslint:disable */ /* eslint-disable */ /** * Boat Public API v1 * Public JSON API for creating, operating, prompting, observing, and exposing Boat sandboxes from backend services, CI jobs, hosted workers, and Boat automation products. The v1 reference intentionally documents the developer integration surface only. Dashboard billing actions are not part of v1. * * The version of the OpenAPI document: 1.0.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import { mapValues } from '../runtime'; /** * Work item to queue inside an existing Boat. Provider credentials must already be configured in the Boat dashboard. * * **Providers (harnesses):** `codex`, `claude-code` (alias `claude`), `pi`, `opencode`, `prime-agent` (alias `prime`), `kimi` (Kimi Code CLI, alias `kimi-code`). Omit `provider` to use the harness the user selected on the Agents dashboard. * * **Models & reasoning effort** are harness- and model-specific and change over time. Fetch the live catalog (every provider's models and which reasoning-effort levels each accepts) from `GET /provider-models`. Some models accept no reasoning control. `pi`, `opencode` and `prime-agent` also expose models routed through OpenRouter and llmgateway (ids like `openrouter:anthropic/claude-sonnet-4.5`). * * **Conversations:** a Box runs many conversations in parallel, each with its own history. Set `new: true` to start a fresh conversation, or `conversationId` to continue a specific one; omit both to continue the Box's most-recently-active conversation. The response returns the `conversationId` this prompt ran in. Conversations run concurrently up to a per-box limit that scales with the Box's memory; beyond it, prompts queue. * * @export * @interface PromptRequest */ export interface PromptRequest { /** * * @type {PromptRequestProviderEnum} * @memberof PromptRequest */ provider: PromptRequestProviderEnum; /** * Optional provider model id from `GET /provider-models`. Omit to use the model selected for that harness on the Agents dashboard. Unknown explicit ids are currently forwarded rather than rejected by request validation. * @type {string} * @memberof PromptRequest */ model?: string | null; /** * Optional reasoning/thinking level (e.g. `none`, `low`, `medium`, `high`, `xhigh`, `max`). Which levels a given model accepts is listed per model in `GET /provider-models`; some models accept none. * @type {string} * @memberof PromptRequest */ reasoningEffort?: string | null; /** * Start a NEW conversation on the Box (runs in parallel with any existing ones) instead of continuing the most-recently-active one. Mutually exclusive with `conversationId`. * @type {boolean} * @memberof PromptRequest */ _new?: boolean; /** * Continue a specific conversation by id (as returned by a previous prompt). Omit (and omit `new`) to continue the Box's most-recently-active conversation. * @type {string} * @memberof PromptRequest */ conversationId?: string | null; /** * Natural-language task for the Boat, including repo, preview, or browser-use instructions. * @type {string} * @memberof PromptRequest */ prompt: string; } /** * @export */ export const PromptRequestProviderEnum = { Codex: 'codex', ClaudeCode: 'claude-code', Claude: 'claude', Pi: 'pi', Opencode: 'opencode', PrimeAgent: 'prime-agent', Prime: 'prime', Kimi: 'kimi', KimiCode: 'kimi-code' } as const; export type PromptRequestProviderEnum = typeof PromptRequestProviderEnum[keyof typeof PromptRequestProviderEnum]; /** * Check if a given object implements the PromptRequest interface. */ export function instanceOfPromptRequest(value: object): value is PromptRequest { if (!('provider' in value) || value['provider'] === undefined) return false; if (!('prompt' in value) || value['prompt'] === undefined) return false; return true; } export function PromptRequestFromJSON(json: any): PromptRequest { return PromptRequestFromJSONTyped(json, false); } export function PromptRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): PromptRequest { if (json == null) { return json; } return { 'provider': json['provider'], 'model': json['model'] == null ? undefined : json['model'], 'reasoningEffort': json['reasoningEffort'] == null ? undefined : json['reasoningEffort'], '_new': json['new'] == null ? undefined : json['new'], 'conversationId': json['conversationId'] == null ? undefined : json['conversationId'], 'prompt': json['prompt'], }; } export function PromptRequestToJSON(json: any): PromptRequest { return PromptRequestToJSONTyped(json, false); } export function PromptRequestToJSONTyped(value?: PromptRequest | null, ignoreDiscriminator: boolean = false): any { if (value == null) { return value; } return { 'provider': value['provider'], 'model': value['model'], 'reasoningEffort': value['reasoningEffort'], 'new': value['_new'], 'conversationId': value['conversationId'], 'prompt': value['prompt'], }; }