/** * Generated by orval v8.5.3 🍺 * Do not edit manually. * Api * API specification * OpenAPI spec version: 0.1.0 */ export interface HealthStatus { status: string; } export interface ErrorResponse { error: string; } export interface InvoiceInfo { paymentRequest: string; amountSats: number; } export interface CreateJobRequest { /** @minLength 1 */ request: string; } export interface CreateJobResponse { jobId: string; /** ISO 8601 timestamp of job creation */ createdAt: string; evalInvoice: InvoiceInfo; } export type JobState = (typeof JobState)[keyof typeof JobState]; export const JobState = { awaiting_eval_payment: "awaiting_eval_payment", evaluating: "evaluating", rejected: "rejected", awaiting_work_payment: "awaiting_work_payment", executing: "executing", complete: "complete", failed: "failed", } as const; /** * Cost breakdown shown with the work invoice (estimations at invoice-creation time) */ export interface PricingBreakdown { /** Total estimated cost in USD (token cost + DO infra + margin) */ estimatedCostUsd?: number; /** Originator margin percentage applied */ marginPct?: number; /** BTC/USD spot price used to convert the invoice to sats */ btcPriceUsd?: number; } /** * Lifecycle of the refund for this job */ export type CostLedgerRefundState = (typeof CostLedgerRefundState)[keyof typeof CostLedgerRefundState]; export const CostLedgerRefundState = { not_applicable: "not_applicable", pending: "pending", paid: "paid", } as const; /** * Honest post-work accounting stored after the job completes */ export interface CostLedger { actualInputTokens?: number; actualOutputTokens?: number; /** Sum of actualInputTokens + actualOutputTokens */ totalTokens?: number; /** Raw Anthropic token cost (no infra, no margin) */ actualCostUsd?: number; /** What we honestly charged in USD (actual token cost + DO infra + margin) */ actualChargeUsd?: number; /** Original estimate used to create the work invoice */ estimatedCostUsd?: number; /** Honest sats charge (actual cost converted at the locked BTC price) */ actualAmountSats?: number; /** Amount the user originally paid in sats */ workAmountSats?: number; /** Sats owed back to the user (workAmountSats - actualAmountSats, >= 0) */ refundAmountSats?: number; /** Lifecycle of the refund for this job */ refundState?: CostLedgerRefundState; marginPct?: number; /** BTC/USD price locked at invoice creation time */ btcPriceUsd?: number; } export interface JobStatusResponse { jobId: string; state: JobState; /** ISO 8601 timestamp of job creation (always present) */ createdAt: string; /** ISO 8601 timestamp of job completion; null when not yet complete */ completedAt?: string | null; evalInvoice?: InvoiceInfo; workInvoice?: InvoiceInfo; pricingBreakdown?: PricingBreakdown; reason?: string; result?: string; costLedger?: CostLedger; errorMessage?: string; } export type SessionState = (typeof SessionState)[keyof typeof SessionState]; export const SessionState = { awaiting_payment: "awaiting_payment", active: "active", paused: "paused", expired: "expired", } as const; export interface SessionInvoiceInfo { paymentRequest?: string; amountSats?: number; /** Only present in stub/dev mode */ paymentHash?: string; } export interface CreateSessionRequest { /** * Deposit amount (100–10,000 sats) * @minimum 100 * @maximum 10000 */ amount_sats: number; } export interface CreateSessionResponse { sessionId: string; state: SessionState; invoice: SessionInvoiceInfo; } export interface SessionStatusResponse { sessionId: string; state: SessionState; balanceSats: number; minimumBalanceSats?: number; /** Bearer token for authenticating requests; present when active or paused */ macaroon?: string; expiresAt?: string; /** Present when state is awaiting_payment */ invoice?: SessionInvoiceInfo; /** Present when a topup invoice is outstanding */ pendingTopup?: SessionInvoiceInfo; } export interface SessionRequestBody { /** @minLength 1 */ request: string; } export interface SessionCostBreakdown { evalSats?: number; workSats?: number; totalSats?: number; btcPriceUsd?: number; } export type SessionRequestResponseState = (typeof SessionRequestResponseState)[keyof typeof SessionRequestResponseState]; export const SessionRequestResponseState = { complete: "complete", rejected: "rejected", failed: "failed", } as const; export interface SessionRequestResponse { requestId: string; state: SessionRequestResponseState; result?: string; reason?: string; errorMessage?: string; debitedSats: number; balanceRemaining: number; cost?: SessionCostBreakdown; } export interface TopupSessionResponse { sessionId: string; topup: SessionInvoiceInfo; } export interface ClaimRefundRequest { /** BOLT11 invoice for exactly refundAmountSats */ invoice: string; } export interface ClaimRefundResponse { ok: boolean; refundAmountSats: number; paymentHash: string; message: string; } export interface DemoResponse { result: string; } export interface GeminiConversation { id: number; title: string; createdAt: string; } export interface GeminiMessage { id: number; conversationId: number; role: string; content: string; createdAt: string; } export interface GeminiConversationWithMessages { id: number; title: string; createdAt: string; messages: GeminiMessage[]; } export interface CreateGeminiConversationBody { title: string; } export interface SendGeminiMessageBody { content: string; /** Gemini model override (default: gemini-3-flash-preview) */ model?: string; } export interface GenerateGeminiImageBody { prompt: string; } export interface GenerateGeminiImageResponse { b64_json: string; mimeType: string; } export interface GeminiError { error: string; } export type RunDemoParams = { request: string; };