export interface RequestOptions { /** Override the global timeout for this specific request (milliseconds). */ timeoutMs?: number; /** Additional request headers for endpoints that accept route-specific controls. */ headers?: Record; } export type ProtocolDecision = "allow" | "deny" | "challenge"; export type PublicDecision = "allow" | "deny" | "review" | "throttle"; export type Decision = ProtocolDecision | PublicDecision; export type ExecutionOperation = "generate.text" | "embed.text" | "generate.image" | "edit.image" | "understand.image" | "generate.audio" | "transcribe.audio" | "generate.video" | "understand.video" | "run.batch" | "run.async" | "realtime.session" | "call.tools"; export type ExecutionMode = "sync" | "stream"; export type PermitExecutionMode = "sync" | "async" | "realtime"; export type ExecutionRole = "system" | "user" | "assistant"; export type ExecutionAssetSource = "url" | "upload" | "base64" | "asset_ref"; export type ExecutionInputType = "text" | "json" | "image" | "audio" | "video" | "file" | "binary"; export type RoutingProvider = "openai" | "anthropic" | "google" | "xai" | "meta" | "elevenlabs" | "vocal_bridge" | "sabre" | "mcp"; export type RoutingPriority = "cheap" | "balanced" | "quality"; export type RoutingReasonCode = "explicit_request" | "policy_preference" | "cost_optimization" | "quality_preference" | "routing_fitness" | "fallback_after_error"; export type JobStatus = "submitted" | "queued" | "processing" | "completed" | "failed"; export type PermitExportFormat = "json" | "csv"; export type PermitDryRunReplayOutcome = "fresh" | "would_reuse_existing" | "would_revalidate_existing" | "would_expire_existing"; export type ConditionMatch = "all" | "any"; export type ConditionOutcome = "allow" | "deny" | "indeterminate"; export type WorkflowDecision = "accepted" | "rejected"; export type WorkflowStatus = "active" | "completed" | "expired" | "rejected"; export interface Subject { type: string; id: string; attributes?: Record; } export type Confidence = "exact" | "inferred" | "missing"; export interface IdentityTenant { id?: string | null; name?: string | null; external_id?: string | null; confidence?: Confidence; } export interface IdentitySubject { type?: "user" | "service_account" | "agent" | "system" | "anonymous" | null; id?: string | null; name?: string | null; email?: string | null; external_id?: string | null; confidence?: Confidence; } export interface IdentityCredential { type?: "api_key" | "service_token" | "oauth_token" | "session" | "internal" | null; id?: string | null; name?: string | null; external_id?: string | null; confidence?: Confidence; } export interface IdentityEnvironment { name?: string | null; external_id?: string | null; confidence?: Confidence; } export interface Identity { tenant?: IdentityTenant | null; subject?: IdentitySubject | null; credential?: IdentityCredential | null; environment?: IdentityEnvironment | null; } export interface WorkflowIntent { expected_calls?: number | null; max_calls?: number | null; expected_model?: string | null; expected_input_tokens_per_call?: number | null; expected_output_tokens_per_call?: number | null; max_duration_seconds?: number | null; } export interface ProjectedCostMethodology { basis?: "caller_declared_workflow_x_point_pricing"; provenance?: "caller_declared_workflow"; expected_calls?: number | null; input_tokens_per_call_estimated?: number | null; output_tokens_per_call_estimated?: number | null; pricing_table_id?: string | null; tokenizer?: string | null; quality?: string | null; } export interface ProjectedCost { amount_micros?: number | null; currency?: string; methodology?: ProjectedCostMethodology | null; } export interface WorkflowDeclarationRequest { workflow_id: string; intent: WorkflowIntent; budget_envelope_id?: string | null; } export interface WorkflowPrincipal { type: "api_key" | "dashboard_session"; id: string; } export interface WorkflowDeclaredVia { sdk?: string | null; sdk_version?: string | null; } export interface WorkflowAmendmentRequest { if_match_version: number; new_max_calls?: number | null; new_expected_calls?: number | null; reason_provided?: string | null; } export interface WorkflowAmendmentResponse { id: string; workflow_declaration_id: string; applied_against_version: number; previous_max_calls?: number | null; new_max_calls?: number | null; previous_expected_calls?: number | null; new_expected_calls?: number | null; reason_provided?: string | null; amendment_canonical_hash?: string | null; amendment_signature_b64?: string | null; created_at: string; } export interface WorkflowDeclarationResponse { workflow_id: string; decision: WorkflowDecision; status?: WorkflowStatus | null; id?: string | null; version?: number | null; expected_calls?: number | null; max_calls?: number | null; cached_actual_calls?: number | null; projected_cost?: ProjectedCost | null; reason_code?: string | null; decision_details?: Record | null; declared_by?: WorkflowPrincipal | null; declared_via?: WorkflowDeclaredVia | null; declaration_canonical_hash?: string | null; declaration_signature_b64?: string | null; declared_at?: string | null; expires_at?: string | null; completed_at?: string | null; amendments?: WorkflowAmendmentResponse[] | null; } export interface WorkflowCompleteResponse { workflow_id: string; status: "completed" | "expired"; cached_actual_calls: number; authoritative_actual_calls: number; counter_reconciled: boolean; completed_at: string; } export interface Action { name: string; attributes?: Record; } export interface InputDescriptor { type: string; purpose?: string; source?: string; url?: string; file_id?: string; filename?: string; mime_type?: string; size_bytes?: number; sha256?: string; asset_id?: string; /** API wire name for base64 inputs. */ base64?: string; /** @deprecated Use `base64`; accepted here for older SDK callers. */ base64_data?: string; metadata?: Record; } export interface ImageRequestAttributes { model_id?: string | null; operation?: string | null; modality?: string | null; size?: string | null; quality?: string | null; n?: number | null; background?: string | null; output_format?: string | null; output_compression?: number | null; moderation?: string | null; input_fidelity?: string | null; stream?: boolean | null; partial_images?: number | null; has_image_inputs?: boolean | null; image_input_count?: number | null; } export interface ResourceAttributes { provider: string; model: string; estimated_input_tokens: number; estimated_output_tokens: number; max_output_tokens_requested?: number | null; operation?: string; modality?: string; execution_mode?: PermitExecutionMode; inputs?: InputDescriptor[]; image_request?: ImageRequestAttributes | null; prompt_content_hash?: string | null; routing?: Record; callback_url?: string; asset_summary?: Record; } export interface Resource { type: string; id: string; attributes: ResourceAttributes; } export interface PermitConditionRule { field: string; operator: string; value?: unknown; } export interface PermitConditions { match: ConditionMatch; rules: PermitConditionRule[]; } export interface ActorRef { issuer: string; subject: string; display_label?: string | null; } export interface AuthorityEnvelope { actions?: string[] | null; tools?: string[] | null; providers?: string[] | null; models?: string[] | null; data_classes?: string[] | null; regions?: string[] | null; expires_at?: string | null; } export interface UsageLimits { max_calls?: number | null; max_tokens?: number | null; estimated_cost_ceiling?: number | null; } export interface PermitRequest { project_id: string; idempotency_key: string; expires_at?: string | null; session_id?: string | null; subject: Subject; action: Action; resource: Resource; context?: Record | null; parent_permit_id?: string | null; budget_envelope_id?: string | null; conditions?: PermitConditions | null; actor_ref?: ActorRef | null; authority_envelope?: AuthorityEnvelope | null; authority_envelope_version?: string | null; usage_limits?: UsageLimits | null; identity?: Identity | null; custom_metadata?: Record | null; } export interface ActionMessage { type: string; message: string; } export interface Metadata { policy_id: string; policy_version: string; evaluated_at: string; subject?: { type: string; id: string; } | null; action?: { name: string; } | null; session_id?: string | null; } export interface DecisionDetails { decision: string; code: string; reason: string; [key: string]: unknown; } export interface RoutingTarget { provider: RoutingProvider; model: string; } export interface RoutingDecision { decision_id: string; decided_at: string; requested_provider: RoutingProvider; requested_model: string; selected_provider: RoutingProvider; selected_model: string; reason_code: RoutingReasonCode; fallback_occurred: boolean; policy_id?: string | null; policy_version?: string | null; estimated_cost_usd_micros?: number | null; priority?: RoutingPriority | null; task_type?: string | null; latency_target_ms?: number | null; fallback_chain?: RoutingTarget[]; reason_metadata?: Record | null; } export interface PermitResponse { permit_id: string; project_id: string; decision: Decision; issued_at: string; expires_at?: string | null; display_decision?: PublicDecision | null; reason: string; reason_code?: string | null; display_reason?: string | null; decision_source?: string | null; estimated_cost_usd?: string | number | null; projected_cost?: Record | null; reason_detail?: Record | null; outcome_detail?: Record | null; message?: string | null; constraints?: Record | null; budgets?: Record | null; actions: ActionMessage[]; metadata: Metadata; parent_permit_id?: string | null; delegation_depth?: number; status?: string | null; decision_details?: DecisionDetails | null; routing?: RoutingDecision | null; } export interface PermitWithMetaResponse { permit: PermitResponse; request_id?: string; } export interface BudgetEnvelopeSummary { envelope_id: string; reservation_status?: string | null; estimated_cost_usd_micros?: number | null; total_budget_usd_micros?: number | null; reserved_budget_usd_micros?: number | null; spent_budget_usd_micros?: number | null; remaining_budget_usd_micros?: number | null; correction_usd_micros?: number | null; } export interface ConditionEvaluation { outcome: ConditionOutcome; evaluated_at: string; match: ConditionMatch; rule_count: number; failed_rule_index?: number | null; code?: string | null; message?: string | null; field?: string | null; operator?: string | null; expected_value?: unknown; actual_value?: unknown; } export interface PermitDryRunResponse { dry_run: true; project_id: string; existing_permit_id?: string | null; replay_outcome: PermitDryRunReplayOutcome; parent_permit_id?: string | null; delegation_depth?: number; decision: Decision; display_decision?: PublicDecision | null; reason: string; reason_code?: string | null; display_reason?: string | null; decision_source?: string | null; estimated_cost_usd?: string | number | null; projected_cost?: Record | null; reason_detail?: Record | null; outcome_detail?: Record | null; message?: string | null; status?: string | null; constraints?: Record | null; budgets?: Record | null; actions: ActionMessage[]; decision_details?: DecisionDetails | null; routing?: RoutingDecision | null; metadata: Metadata; budget_envelope?: BudgetEnvelopeSummary | null; condition_evaluation?: ConditionEvaluation | null; } export interface PermitAuditItem { id: string; project_id: string; parent_permit_id?: string | null; delegation_depth?: number; subject_type: string; subject_id: string; action_name: string; resource_provider: string; resource_model: string; resource_operation?: string | null; resource_modality?: string | null; resource_execution_mode?: PermitExecutionMode | null; resource_inputs_json?: Array> | null; resource_attributes_json?: Record | null; estimated_input_tokens: number; estimated_output_tokens: number; max_output_tokens_requested?: number | null; decision: Decision; reason: string; status?: string | null; constraints_json?: Record | null; budgets_json?: Record | null; budget_envelope?: BudgetEnvelopeSummary | null; actions_json: Array>; conditions?: PermitConditions | null; condition_evaluation?: ConditionEvaluation | null; decision_details?: DecisionDetails | null; routing?: RoutingDecision | null; actual_usage_json?: Record | null; usage_verification?: PermitUsageVerificationSummary | null; usage_source?: string | null; closure_status?: string | null; connector_id?: string | null; projection_id?: string | null; policy_id: string; policy_version: string; metadata: Metadata; idempotency_key: string; request_fingerprint: string; expires_at?: string | null; created_at: string; identity?: Identity | null; } export interface PermitAuditListResponse { items: PermitAuditItem[]; next_cursor: string | null; } export interface PermitRevocationRequest { reason_code: string; } export interface PermitRevocationResponse { revocation_event_id: string; revocation_event: Record; permit: PermitAuditItem; } export interface PermitReceipt { receipt_type: "permit_receipt"; schema_version: number; format: "json"; project_id: string; permit_id: string; generated_at: string; actor: Record; action: Record; action_access?: Record | null; policy: Record; decision: Record; request_hashes: Record; dispatch_target: Record; result_digests: Record; cost: Record; timestamps: Record; signatures: Record; provider_attestation_receipts: Array>; verification_status: Record; } export interface PermitListParams { limit?: number; project_id?: string; before?: string; subject_id?: string; subject_type?: string; action_name?: string; start_date?: string; end_date?: string; decision?: Decision; view?: "default" | "envelope"; type?: "model_call" | "workflow" | "mcp_tool"; policy_id?: string; } export type PermitUsageVerificationMethod = "caller_report" | "provider_receipt" | "signed_callback" | "manual_reconciliation"; export type PermitUsageVerificationStatus = "unverified" | "pending" | "verified" | "rejected" | "reconciled"; export interface PermitUsageVerificationInput { method: PermitUsageVerificationMethod; provider_request_id?: string | null; receipt_json?: Record | null; receipt_sha256?: string | null; signature?: string | null; signature_key_id?: string | null; signed_at?: string | null; evidence_url?: string | null; metadata?: Record | null; } export interface PermitUsageVerificationRequest extends PermitUsageVerificationInput { status: Exclude; reason?: string | null; } export interface PermitUsageVerificationSummary { method: PermitUsageVerificationMethod; status: PermitUsageVerificationStatus; updated_at: string; } export interface PermitUsageVerificationOut extends PermitUsageVerificationInput { id: string; permit_id: string; project_id: string; status: PermitUsageVerificationStatus; reason?: string | null; created_at: string; verified_at?: string | null; } export interface PermitUsageReportRequest { provider?: string | null; model?: string | null; actual_input_tokens?: number | null; actual_output_tokens?: number | null; actual_total_tokens?: number | null; cost_usd?: string | number | null; cost_usd_micros?: number | null; usage_idempotency_key?: string | null; normalized_usage?: Record | null; usage_metrics?: Array> | null; metadata?: Record | null; /** Provider-level metadata for the operation (e.g. tool names). */ operation_metadata?: Record | null; verification?: PermitUsageVerificationInput | null; } export interface PermitUsageReportResponse { permit_id: string; project_id: string; usage_reported_at?: string | null; actual_input_tokens?: number | null; actual_output_tokens?: number | null; actual_total_tokens?: number | null; actual_cost_usd_micros?: number | null; actual_usage_json?: Record | null; usage_source?: string | null; usage_verification?: PermitUsageVerificationSummary | null; status?: string | null; } export interface PermitAttestationRequest { attestor: string; attestation_type: "approve" | "reject"; evidence_url?: string | null; } export interface PermitAttestationOut { id: string; permit_id: string; project_id: string; attestor: string; attestation_type: "approve" | "reject"; evidence_url?: string | null; attested_at: string; created_at: string; } export interface PermitAttestResponse { permit: PermitResponse; attestation: PermitAttestationOut; } export interface PermitEvidenceCreateRequest { evidence_type: string; evidence_value: string; label: string; attached_by: string; } export interface PermitEvidenceOut { id: string; permit_id: string; project_id: string; evidence_type: string; evidence_value: string; label: string; attached_by: string; attached_at: string; } export interface PermitEvidenceListResponse { items: PermitEvidenceOut[]; } export interface PermitLineageNodeSummary { permit_id: string; parent_permit_id?: string | null; delegation_depth: number; decision: Decision; status?: string | null; reason: string; action_name: string; resource_provider: string; resource_model: string; created_at: string; expires_at?: string | null; usage_reported_at?: string | null; actual_total_tokens?: number | null; actual_cost_usd_micros?: number | null; } export interface PermitLineageNode extends PermitLineageNodeSummary { children: PermitLineageNode[]; } export interface PermitLineageResponse { project_id: string; root_permit_id: string; current_permit_id: string; parent?: PermitLineageNodeSummary | null; ancestors: PermitLineageNodeSummary[]; current: PermitLineageNode; } export interface PermitAuditBundle { bundle_type: "permit_audit_bundle"; schema_version: number; format: "json"; project_id: string; permit_id: string; generated_at: string; record: Record; governance_events: Array>; } /** Budget-related denial and throttle reason codes. */ export declare const BUDGET_REQUEST_CAP_EXCEEDED: "budget.request_cap_exceeded"; export declare const BUDGET_DAILY_CAP_EXCEEDED: "budget.daily_cap_exceeded"; export declare const BUDGET_MONTHLY_CAP_EXCEEDED: "budget.monthly_cap_exceeded"; export declare const BUDGET_MONTHLY_THRESHOLD_EXCEEDED: "budget.monthly_threshold_exceeded"; export declare const BUDGET_DAILY_SPIKE_DETECTED: "budget.daily_spike_detected"; export declare const BUDGET_RATE_LIMIT_EXCEEDED: "budget.rate_limit_exceeded"; export declare const BUDGET_RATE_LIMIT_THROTTLED: "budget.rate_limit_throttled"; export declare const BUDGET_PRICING_UNAVAILABLE: "budget.pricing_unavailable"; /** Policy-related denial reason codes. */ export declare const POLICY_MODEL_NOT_ALLOWED: "policy.model_not_allowed"; export declare const POLICY_RULE_DENIED: "policy.rule_denied"; export declare const POLICY_REVIEW_REQUIRED: "policy.review_required"; /** Union of all Shape D permit reason codes. */ export type PermitReasonCode = typeof BUDGET_REQUEST_CAP_EXCEEDED | typeof BUDGET_DAILY_CAP_EXCEEDED | typeof BUDGET_MONTHLY_CAP_EXCEEDED | typeof BUDGET_MONTHLY_THRESHOLD_EXCEEDED | typeof BUDGET_DAILY_SPIKE_DETECTED | typeof BUDGET_RATE_LIMIT_EXCEEDED | typeof BUDGET_RATE_LIMIT_THROTTLED | typeof BUDGET_PRICING_UNAVAILABLE | typeof POLICY_MODEL_NOT_ALLOWED | typeof POLICY_RULE_DENIED | typeof POLICY_REVIEW_REQUIRED; export interface ApiKey { id: string; project_id: string; prefix: string; name?: string | null; description?: string | null; scope?: "admin" | "client" | "approval"; created_by?: string | null; created_at: string; revoked_at: string | null; last_used_at?: string | null; expires_at?: string | null; } export interface CreateApiKeyRequest { name?: string | null; description?: string | null; scope?: "admin" | "client" | "approval"; created_by?: string | null; expires_at?: string | null; } export interface CreateApiKeyResponse extends ApiKey { raw_key: string; request_id?: string; } export interface PendingApiKeyCreateResponse { status: "pending_approval"; request_id?: string; approval_request_id?: string; message?: string; } export interface ListApiKeysResponse { items: ApiKey[]; next_cursor?: string | null; request_id?: string; } export interface RevokeApiKeyResponse extends ApiKey { request_id?: string; } export type ComplianceExportType = "governance_events" | "usage" | "permits" | "full_audit" | "soc2_evidence" | "hipaa_audit" | "financial_reconciliation" | "vanta_evidence" | "access_review" | "incident_evidence"; export type ComplianceExportFormat = "json" | "jsonl" | "csv"; export type ComplianceExportStatus = "queued" | "running" | "ready" | "completed" | "failed"; export interface ComplianceExportFilters { event_id?: string | null; governance_event_id?: string | null; event_type?: string | null; category?: string | null; severity?: string | null; decision_type?: string | null; policy_id?: string | null; request_id?: string | null; permit_id?: string | null; sample_size?: number | null; subject_id?: string | null; subject_type?: string | null; provider?: string | null; model?: string | null; period?: "day" | "week" | "month" | null; include_replay_evidence?: boolean; created_at_from?: string | null; created_at_to?: string | null; incident_id?: string | null; requested_by?: string | null; } export interface ComplianceExportVantaWebhook { callback_url: string; include_manifest?: boolean; } export interface ComplianceExportCreateRequest { export_type: ComplianceExportType; format?: ComplianceExportFormat; compress_gzip?: boolean; filters?: ComplianceExportFilters; vanta_webhook?: ComplianceExportVantaWebhook | null; } export interface ComplianceExportResponse { export_id: string; project_id: string; export_type: string; status: ComplianceExportStatus | string; filters: Record; file_path?: string | null; created_at: string; started_at?: string | null; completed_at?: string | null; error_message?: string | null; manifest?: Record | null; } export interface ComplianceExportListResponse { items: ComplianceExportResponse[]; } export interface HealthResponse { status: "ok"; request_id?: string; } export interface AuthedHealthResponse extends HealthResponse { project_id: string; } export interface ExecutionMessage { role: ExecutionRole; content: string; } export interface ExecutionAssetInput { source: ExecutionAssetSource; url?: string; asset_id?: string; base64?: string; mime_type?: string; filename?: string; size_bytes?: number; metadata?: Record; } export interface ExecutionInputPart { type: ExecutionInputType; role?: ExecutionRole; text?: string; json?: Record; asset?: ExecutionAssetInput; metadata?: Record; } export interface ExecutionRoutingTarget { provider: RoutingProvider; model: string; } export interface ExecutionRoutingInput { provider?: RoutingProvider; model?: string; priority?: RoutingPriority; task_type?: string; latency_target_ms?: number; allow_cross_provider_fallback?: boolean; fallback_chain?: ExecutionRoutingTarget[]; } export interface ExecutionParametersInput { max_output_tokens?: number; temperature?: number; top_p?: number; } export interface ExecutionImageOptionsInput { size?: string; quality?: string; n?: number; background?: string; output_format?: string; output_compression?: number; moderation?: string; } export type ExecutionProviderOptions = Partial>>; export interface ExecutionCreateRequest { operation: ExecutionOperation; mode?: ExecutionMode; messages?: ExecutionMessage[]; inputs?: ExecutionInputPart[]; mask?: ExecutionAssetInput; image_options?: ExecutionImageOptionsInput; routing?: ExecutionRoutingInput; parameters?: ExecutionParametersInput; provider_options?: ExecutionProviderOptions; } export interface ExecuteRequest { provider?: RoutingProvider; model: string; input: Record; } export interface ExecutionOutputContentPart { type: string; role?: string; text?: string; [key: string]: unknown; } export interface ExecutionOutput { content?: ExecutionOutputContentPart[]; embeddings?: unknown[]; raw?: Record; } export interface ExecutionOutputAsset { asset_id: string; type: string; mime_type: string; size_bytes?: number | null; uri?: string | null; status?: string | null; metadata?: Record; } export interface ExecutionRoutingResult { requested_provider?: RoutingProvider | null; requested_model?: string | null; selected_provider: RoutingProvider; selected_model: string; reason_code: string; fallback_occurred: boolean; } export interface ExecutionGovernance { decision: Decision; reason: string; actions: ActionMessage[]; constraints?: Record | null; budgets?: Record | null; } export interface ExecutionUsage { input_tokens?: number | null; output_tokens?: number | null; total_tokens?: number | null; cost_usd_micros?: number | null; estimated_final?: boolean; metrics?: Array> | null; } export interface ExecutionTiming { started_at?: string | null; completed_at?: string | null; duration_ms?: number | null; } export interface ExecutionErrorPayload { stage?: string; code: string; message: string; details?: Record | null; retry_class?: string | null; status_code?: number | null; } export interface ExecutionResolved { provider?: string; model?: string; } export interface ExecutionResponse { id: string; object: "execution"; created_at: string | null; status: "completed" | "in_progress" | "failed" | "denied"; status_code: number; output?: ExecutionOutput | null; output_assets: ExecutionOutputAsset[]; routing: ExecutionRoutingResult; governance?: ExecutionGovernance | null; usage?: ExecutionUsage | null; timing: ExecutionTiming; error?: ExecutionErrorPayload | null; resolved?: ExecutionResolved | null; } export type ExecutionStreamEventName = "execution.started" | "content.delta" | "execution.completed" | "execution.denied" | "execution.error" | "done"; export interface ExecutionStartedEvent { event_type: "execution.started"; data: { id: string; object: "execution"; created_at: string | null; status: string; status_code: number; routing?: ExecutionRoutingResult | null; governance?: ExecutionGovernance | null; }; } export interface ExecutionContentDelta { event_type: "content.delta"; data: { id: string; object: "execution"; created_at: string | null; delta: { type: string; text?: string; }; }; } export interface ExecutionCompletedEvent { event_type: "execution.completed"; data: ExecutionResponse; } export interface ExecutionDeniedEvent { event_type: "execution.denied"; data: ExecutionResponse; } export interface ExecutionErrorEvent { event_type: "execution.error"; data: ExecutionResponse; } export interface ExecutionDoneEvent { event_type: "done"; data: { id: string; object: "execution.done"; }; } export interface ExecutionRawEvent { event_type: string; data: unknown; } export type ExecutionStreamEvent = ExecutionStartedEvent | ExecutionContentDelta | ExecutionCompletedEvent | ExecutionDeniedEvent | ExecutionErrorEvent | ExecutionDoneEvent | ExecutionRawEvent; export interface JobSubmitRequest { permit: PermitRequest; provider_payload?: Record; metadata?: Record; } export interface JobCreateResponse { job_id: string; status: JobStatus; execution_mode: "async"; submitted_at: string; permit_id?: string | null; } export interface JobStatusResponse { job_id: string; request_id: string; permit_id?: string | null; provider: string; model: string; operation: string; execution_mode: "async"; status: JobStatus; progress?: number | null; callback_url?: string | null; submitted_at: string; started_at?: string | null; completed_at?: string | null; result_assets?: Array> | null; usage_metrics?: Array> | null; error?: Record | null; metadata?: Record | null; } export type RequestTimelineEventSource = "permits" | "usage_ledger" | "usage_logs" | "governed_requests" | "execution_events" | "async_jobs" | "realtime_sessions"; export type RequestTimelinePhase = "permit" | "routing" | "firewall" | "execution" | "provider" | "usage" | "request" | "job" | "session" | "webhook"; export interface RequestTimelineEvent { timestamp: string; event_type: string; source: RequestTimelineEventSource; phase: RequestTimelinePhase; provider?: string | null; model?: string | null; permit_id?: string | null; request_id?: string | null; job_id?: string | null; session_id?: string | null; metadata?: Record | null; } export interface RequestTimelineResponse { project_id: string; request_id: string; permit_ids: string[]; job_ids: string[]; session_ids: string[]; events: RequestTimelineEvent[]; } export interface PermitLifecycleSummary { permit_id: string; project_id: string; decision: string; status: string; action_name: string; issued_at: string; expires_at?: string | null; expiry_limiting_source?: string | null; revoked_at?: string | null; revoked_by_actor_id?: string | null; revoked_by_actor_kind?: string | null; revocation_reason_code?: string | null; target: Record; } export interface PermitLifecycleResponse { generated_at: string; permit: PermitLifecycleSummary; request_id?: string | null; related_permit_ids: string[]; events: RequestTimelineEvent[]; } export interface ExecutionTimelinePermit { decision?: string | null; timestamp?: string | null; } export interface ExecutionTimelineRouting { provider?: string | null; model?: string | null; fallback_chain?: RoutingTarget[] | null; } export interface ExecutionTimelineQueue { job_id?: string | null; status?: string | null; attempts?: number | null; } export interface ExecutionTimelineExecution { started_at?: string | null; completed_at?: string | null; latency_ms?: number | null; } export interface ExecutionTimelineUsage { input_tokens?: number | null; output_tokens?: number | null; cost_usd?: number | null; } export interface ExecutionTimelineResponse { request_id: string; permit: ExecutionTimelinePermit; routing: ExecutionTimelineRouting; queue: ExecutionTimelineQueue; execution: ExecutionTimelineExecution; usage: ExecutionTimelineUsage; }