import { SidekickProtocolError, controlReviewSchema, type DelegationInput, type FailureCode, type SidekickEvidenceRequest } from "../../internal-providers/sidekick-contracts/index.js"; import { z } from "zod"; import { type CloudHttpOptions } from "./http.js"; /** Decode only the public fields; never retain unknown server diagnostics. */ export declare const cloudSidekickContextSchema: z.ZodObject<{ protocolVersion: z.ZodLiteral<1>; organizationId: z.ZodString; userId: z.ZodString; membershipId: z.ZodString; }, z.core.$strip>; export type CloudSidekickContext = z.infer; export declare const cloudSidekickDelegationSchema: z.ZodObject<{ protocolVersion: z.ZodLiteral<1>; delegationId: z.ZodUUID; mode: z.ZodLiteral<"cloud">; repository: z.ZodString; baseCommitSha: z.ZodString; model: z.ZodString; state: z.ZodEnum<{ failed: "failed"; queued: "queued"; running: "running"; succeeded: "succeeded"; cancelled: "cancelled"; timed_out: "timed_out"; awaiting_review: "awaiting_review"; taken_over: "taken_over"; discarded: "discarded"; expired: "expired"; }>; attemptId: z.ZodUUID; generation: z.ZodString; attemptNumber: z.ZodNumber; budgetMicrousd: z.ZodNumber; budgetStatus: z.ZodEnum<{ pending: "pending"; settled: "settled"; reserved: "reserved"; released: "released"; }>; cleanup: z.ZodEnum<{ error: "error"; pending: "pending"; running: "running"; complete: "complete"; }>; createdAt: z.ZodISODateTime; terminalAt: z.ZodNullable; resultExpiresAt: z.ZodISODateTime; resultDigest: z.ZodNullable; }, z.core.$strip>; export type CloudSidekickDelegation = z.infer; export declare class CloudSidekickHttpError extends SidekickProtocolError { readonly status: number; constructor(status: number, code: FailureCode); } /** The caller supplies its locked OAuth credential, never a model-supplied token. */ export declare class CloudSidekickHttp { #private; readonly options: CloudHttpOptions; readonly origin: string; constructor(origin: string, options?: CloudHttpOptions); context(token: string, signal?: AbortSignal): Promise; create(token: string, input: DelegationInput, signal?: AbortSignal): Promise<{ delegation: { protocolVersion: 1; delegationId: string; mode: "cloud"; repository: string; baseCommitSha: string; model: string; state: "cancelled" | "running" | "succeeded" | "failed" | "expired" | "queued" | "timed_out" | "awaiting_review" | "taken_over" | "discarded"; attemptId: string; generation: string; attemptNumber: number; budgetMicrousd: number; budgetStatus: "pending" | "settled" | "reserved" | "released"; cleanup: "error" | "pending" | "running" | "complete"; createdAt: string; terminalAt: string | null; resultExpiresAt: string; resultDigest: string | null; }; reused?: boolean | undefined; }>; get(token: string, id: string, signal?: AbortSignal): Promise<{ delegation: { protocolVersion: 1; delegationId: string; mode: "cloud"; repository: string; baseCommitSha: string; model: string; state: "cancelled" | "running" | "succeeded" | "failed" | "expired" | "queued" | "timed_out" | "awaiting_review" | "taken_over" | "discarded"; attemptId: string; generation: string; attemptNumber: number; budgetMicrousd: number; budgetStatus: "pending" | "settled" | "reserved" | "released"; cleanup: "error" | "pending" | "running" | "complete"; createdAt: string; terminalAt: string | null; resultExpiresAt: string; resultDigest: string | null; }; reused?: boolean | undefined; }>; evidence(token: string, id: string, input: SidekickEvidenceRequest, signal?: AbortSignal): Promise<{ protocolVersion: 1; scope: { organizationId: string; userId: string; membershipId: string; sessionId: string; operationId: string; }; delegationId: string; attemptId: string; generation: string; attemptNumber: number; resultDigest: string | null; repository: string; repositoryId: string; baseCommitSha: string; model: string; originalBudget: { maxProviderCalls: number; wallTimeMs: number; maxCostMicrousd: number; }; currentBudgetMaximumMicrousd: number | null; budgetStatus: "pending" | "settled" | "reserved" | "released"; state: "cancelled" | "running" | "succeeded" | "failed" | "expired" | "queued" | "timed_out" | "awaiting_review" | "taken_over" | "discarded"; cleanup: "error" | "pending" | "running" | "complete"; execution: { agentRunId: string; sandboxWorkloadId: string; sandboxJobId: string; operationId: string; } | null; createdAt: string; hardDeadlineAt: string; observedAt: string; currentAttempt: { settlement: { kind: "unknown"; reason: "pending" | "missing" | "incomplete" | "mismatch" | "retained_usage_missing" | "unverified_prior_attempt"; } | { kind: "known"; reservationId: string; maximumMicrousd: number; status: "settled" | "released"; quantityMicrousd: number; billingState: "internal_only" | "billable" | "included" | "written_off"; priceBookRevision: string; evidenceRef: string | null; }; ledger: { kind: "unknown"; reason: "pending" | "missing" | "incomplete" | "mismatch" | "retained_usage_missing" | "unverified_prior_attempt"; } | { kind: "known"; requests: number; calls: number; quantityMicrousd: number; }; usage: { kind: "unknown"; reason: "pending" | "missing" | "incomplete" | "mismatch" | "retained_usage_missing" | "unverified_prior_attempt"; } | { kind: "known"; inputTokens: number; outputTokens: number; }; providerAccountingCost: { kind: "unknown"; reason: "pending" | "missing" | "incomplete" | "mismatch" | "retained_usage_missing" | "unverified_prior_attempt"; } | { kind: "known"; quantityMicrousd: number; }; providerCash: { kind: "unknown"; reason: "pending" | "missing" | "incomplete" | "mismatch" | "retained_usage_missing" | "unverified_prior_attempt"; } | { kind: "known"; quantityMicrousd: number; }; physicalCleanup: { kind: "unknown"; reason: "pending" | "missing" | "incomplete" | "mismatch" | "retained_usage_missing" | "unverified_prior_attempt"; } | { kind: "known"; status: "complete"; tasks: number; notRequired: boolean; }; }; lifetime: { settlement: { kind: "unknown"; reason: "pending" | "missing" | "incomplete" | "mismatch" | "retained_usage_missing" | "unverified_prior_attempt"; } | { kind: "known"; quantityMicrousd: number; attempts: { attemptId: string; attemptNumber: number; generation: string; resultDigest: string | null; reservationId: string; status: "settled" | "released"; quantityMicrousd: number; evidenceRef: string | null; }[]; }; ledger: { kind: "unknown"; reason: "pending" | "missing" | "incomplete" | "mismatch" | "retained_usage_missing" | "unverified_prior_attempt"; } | { kind: "known"; requests: number; calls: number; quantityMicrousd: number; }; usage: { kind: "unknown"; reason: "pending" | "missing" | "incomplete" | "mismatch" | "retained_usage_missing" | "unverified_prior_attempt"; } | { kind: "known"; inputTokens: number; outputTokens: number; }; providerAccountingCost: { kind: "unknown"; reason: "pending" | "missing" | "incomplete" | "mismatch" | "retained_usage_missing" | "unverified_prior_attempt"; } | { kind: "known"; quantityMicrousd: number; }; providerCash: { kind: "unknown"; reason: "pending" | "missing" | "incomplete" | "mismatch" | "retained_usage_missing" | "unverified_prior_attempt"; } | { kind: "known"; quantityMicrousd: number; }; physicalCleanup: { kind: "unknown"; reason: "pending" | "missing" | "incomplete" | "mismatch" | "retained_usage_missing" | "unverified_prior_attempt"; } | { kind: "known"; status: "complete"; tasks: number; notRequired: boolean; }; }; }>; result(token: string, id: string, signal?: AbortSignal): Promise<{ protocolVersion: 1; delegationId: string; attemptId: string; generation: string; baseCommitSha: string; summary: string; patch: { kind: "no_change"; } | { kind: "patch"; sha256: string; bytes: number; }; changedFiles: { path: string; status: "added" | "modified" | "deleted"; beforeSha256: string | null; afterSha256: string | null; }[]; tests: { command: string; outcome: "failed" | "skipped" | "passed" | "not_run"; exitCode: number | null; }[]; warnings: string[]; complete: boolean; digest: string; }>; patch(token: string, id: string, generation: string, digest: string, signal?: AbortSignal): Promise<{ result: { protocolVersion: 1; delegationId: string; attemptId: string; generation: string; baseCommitSha: string; summary: string; patch: { kind: "no_change"; } | { kind: "patch"; sha256: string; bytes: number; }; changedFiles: { path: string; status: "added" | "modified" | "deleted"; beforeSha256: string | null; afterSha256: string | null; }[]; tests: { command: string; outcome: "failed" | "skipped" | "passed" | "not_run"; exitCode: number | null; }[]; warnings: string[]; complete: boolean; digest: string; }; patchText: string; }>; followUp(token: string, id: string, input: { operationId: string; generation: string; resultDigest: string; task: string; }, signal?: AbortSignal): Promise<{ delegation: { protocolVersion: 1; delegationId: string; mode: "cloud"; repository: string; baseCommitSha: string; model: string; state: "cancelled" | "running" | "succeeded" | "failed" | "expired" | "queued" | "timed_out" | "awaiting_review" | "taken_over" | "discarded"; attemptId: string; generation: string; attemptNumber: number; budgetMicrousd: number; budgetStatus: "pending" | "settled" | "reserved" | "released"; cleanup: "error" | "pending" | "running" | "complete"; createdAt: string; terminalAt: string | null; resultExpiresAt: string; resultDigest: string | null; }; reused?: boolean | undefined; }>; cancel(token: string, id: string, generation: string, signal?: AbortSignal): Promise<{ delegation: { protocolVersion: 1; delegationId: string; mode: "cloud"; repository: string; baseCommitSha: string; model: string; state: "cancelled" | "running" | "succeeded" | "failed" | "expired" | "queued" | "timed_out" | "awaiting_review" | "taken_over" | "discarded"; attemptId: string; generation: string; attemptNumber: number; budgetMicrousd: number; budgetStatus: "pending" | "settled" | "reserved" | "released"; cleanup: "error" | "pending" | "running" | "complete"; createdAt: string; terminalAt: string | null; resultExpiresAt: string; resultDigest: string | null; }; reused?: boolean | undefined; }>; review(token: string, input: z.infer, signal?: AbortSignal): Promise<{ delegation: { protocolVersion: 1; delegationId: string; mode: "cloud"; repository: string; baseCommitSha: string; model: string; state: "cancelled" | "running" | "succeeded" | "failed" | "expired" | "queued" | "timed_out" | "awaiting_review" | "taken_over" | "discarded"; attemptId: string; generation: string; attemptNumber: number; budgetMicrousd: number; budgetStatus: "pending" | "settled" | "reserved" | "released"; cleanup: "error" | "pending" | "running" | "complete"; createdAt: string; terminalAt: string | null; resultExpiresAt: string; resultDigest: string | null; }; reused?: boolean | undefined; }>; }