// Generated from Waveform API v1. Do not add automatic mutation retries. export interface Inputs { "identity_get": { }; "generations_list": { "query"?: { "limit"?: number; "before"?: string; "pageId"?: string } }; "generation_get": { "params": { "id": string } }; "generation_request_get": { "params": { "requestKey": string } }; "artifact_manifest": { "params": { "id": string } }; "source_get": { "params": { "id": string } }; "quality_get": { "params": { "id": string } }; "generation_create": { "body": { "autoPublish"?: boolean; "prompt": string; "approval"?: { "billingMode": "internal"; "workspaceId": string } | { "billingMode": "credits"; "workspaceId": string; "maximumCredits": string; "maximumMicros": string; "policyId": string }; "parentId"?: string; "brandOverrides"?: { "colors"?: Array; "logoUrl"?: string | null } }; "idempotencyKey": string }; "designs_review": { "params": { "id": string }; "body": { "autoPublish"?: boolean; "approval"?: { "billingMode": "internal"; "workspaceId": string } | { "billingMode": "credits"; "workspaceId": string; "maximumCredits": string; "maximumMicros": string; "policyId": string } }; "idempotencyKey": string }; "design_edit": { "params": { "id": string }; "body": { "candidateId": "astra-a" | "astra-b" | "astra-c" | "astra-d" | "openai" | "xai" | "google"; "expectedImageHash": string; "prompt": string }; "idempotencyKey": string }; "design_select": { "params": { "id": string }; "body": { "autoPublish"?: boolean; "candidateId": "astra-a" | "astra-b" | "astra-c" | "astra-d" | "openai" | "xai" | "google"; "approval"?: { "billingMode": "internal"; "workspaceId": string } | { "billingMode": "credits"; "workspaceId": string; "maximumCredits": string; "maximumMicros": string; "policyId": string } }; "idempotencyKey": string }; "source_edit": { "params": { "id": string }; "body": { "autoPublish"?: boolean; "files": { "html": string; "css": string; "js": string }; "expectedContentHash": string; "approval"?: { "billingMode": "internal"; "workspaceId": string } | { "billingMode": "credits"; "workspaceId": string; "maximumCredits": string; "maximumMicros": string; "policyId": string } }; "idempotencyKey": string }; "generation_finalize": { "params": { "id": string }; "body": { "autoPublish"?: boolean; "expectedContentHash": string }; "idempotencyKey": string }; "generation_continue": { "params": { "id": string }; "body": { "autoPublish"?: boolean; "expectedContentHash": string; "approval"?: { "billingMode": "internal"; "workspaceId": string } | { "billingMode": "credits"; "workspaceId": string; "maximumCredits": string; "maximumMicros": string; "policyId": string } }; "idempotencyKey": string }; "generation_cancel": { "params": { "id": string } }; "hosting_get": { "params": { "pageId": string } }; "page_publish": { "params": { "id": string }; "body": { "expectedContentHash": string } }; "page_unpublish": { "params": { "pageId": string }; "body": { "expectedGenerationId": string } }; "site_task_start": { "body": { "autoPublish"?: boolean; "prompt": string; "homepageGenerationId": string; "siteId"?: string }; "idempotencyKey": string }; "site_task_get": { "params": { "id": string } }; "site_tasks_list": { "params": { "pageId": string } }; "site_task_cancel": { "params": { "id": string }; "body": { }; "idempotencyKey": string }; "site_for_page": { "params": { "pageId": string } }; "site_create": { "body": { "homepagePageId": string; "title": string; "goal": string; "audience"?: string }; "idempotencyKey": string }; "site_get": { "params": { "id": string } }; "site_history": { "params": { "id": string }; "query"?: { "before"?: number } }; "site_edit": { "params": { "id": string }; "body": { "expectedVersion": number; "title": string; "goal": string; "audience": string; "blogRequested": boolean; "pages": Array<{ "name": string; "path": string; "purpose": string; "kind": "page" | "blog-index"; "id": string | null; "navigation"?: false }> }; "idempotencyKey": string }; "site_facts": { "params": { "id": string }; "body": { "expectedVersion": number; "corrections": Array<{ "key": string; "value": string | null }> }; "idempotencyKey": string }; "site_approve": { "params": { "id": string }; "body": { "expectedVersion": number; "expectedHash": string }; "idempotencyKey": string }; "site_propose": { "params": { "id": string }; "body": { "expectedVersion": number; "expectedHash": string; "homepageGenerationId": string; "homepageCandidateId": "astra-a" | "astra-b" | "astra-c" | "astra-d" | "openai" | "xai" | "google"; "homepageImageHash": string; "prompt": string; "maxPages": number; "blogRequested": boolean; "approval"?: { "billingMode": "internal"; "workspaceId": string } | { "billingMode": "credits"; "workspaceId": string; "maximumCredits": string; "maximumMicros": string; "policyId": string } }; "idempotencyKey": string }; "site_proposals": { "params": { "id": string } }; "site_job_get": { "params": { "id": string } }; "site_job_cancel": { "params": { "id": string }; "body": { }; "idempotencyKey": string }; "site_proposal_apply": { "params": { "id": string }; "body": { "expectedVersion": number; "expectedHash": string }; "idempotencyKey": string }; "site_posts": { "params": { "id": string }; "query"?: { "cursor"?: string; "limit"?: number } }; "site_post_get": { "params": { "id": string; "postId": string } }; "site_post_history": { "params": { "id": string; "postId": string }; "query"?: { "beforeRevision"?: number } }; "site_post_create": { "params": { "id": string }; "body": { "content": { "title": string; "description": string; "slug": string; "author": string | null; "date": string | null; "body": Array<{ "type": "paragraph"; "text": string } | { "type": "heading"; "level": 2 | 3; "text": string } | { "type": "quote"; "text": string; "attribution": string | null } | { "type": "list"; "ordered": boolean; "items": Array } | { "type": "link"; "text": string; "url": string }> } }; "idempotencyKey": string }; "site_post_edit": { "params": { "id": string; "postId": string }; "body": { "expectedRevision": number; "expectedHash": string; "content": { "title": string; "description": string; "slug": string; "author": string | null; "date": string | null; "body": Array<{ "type": "paragraph"; "text": string } | { "type": "heading"; "level": 2 | 3; "text": string } | { "type": "quote"; "text": string; "attribution": string | null } | { "type": "list"; "ordered": boolean; "items": Array } | { "type": "link"; "text": string; "url": string }> } }; "idempotencyKey": string }; "site_posts_select": { "params": { "id": string }; "body": { "expectedVersion": number; "expectedHash": string; "pageSize": number; "posts": Array<{ "postId": string; "revision": number; "hash": string }> }; "idempotencyKey": string }; "site_build": { "params": { "id": string }; "body": { "expectedVersion": number; "expectedHash": string; "sharedFactsHash": string; "homepageGenerationId": string; "homepageContentHash": string; "homepageImageHash": string; "children": Array<{ "pageId": string; "approval"?: { "billingMode": "internal"; "workspaceId": string } | { "billingMode": "credits"; "workspaceId": string; "maximumCredits": string; "maximumMicros": string; "policyId": string } }> }; "idempotencyKey": string }; "site_revision_options": { "params": { "id": string }; "query": { "homepageGenerationId": string; "scope": "local" | "global" | "pages" } }; "site_revise": { "params": { "id": string }; "body": { "expectedVersion": number; "expectedHash": string; "sharedFactsHash": string; "homepageGenerationId": string; "homepageContentHash": string; "homepageImageHash": string; "scope": "local" | "global" | "pages"; "prompt": string; "continueSource"?: true; "children": Array<{ "pageId": string; "parent": { "generationId": string; "contentHash": string } | null; "approval"?: { "billingMode": "internal"; "workspaceId": string } | { "billingMode": "credits"; "workspaceId": string; "maximumCredits": string; "maximumMicros": string; "policyId": string } }> }; "idempotencyKey": string }; "site_builds": { "params": { "id": string } }; "site_build_get": { "params": { "id": string } }; "billing_summary": { "query"?: { "cursor"?: string } }; "billing_receipt": { "params": { "id": string } }; "billing_quote": { "body": { "action": "create" | "select_design" | "refine" | "edit" | "continue" | "review_designs" | "site_proposal" | "site_page"; "generationId"?: string } }; "site_release_options": { "params": { "id": string }; "query": { "homepageGenerationId": string } }; "site_releases": { "params": { "id": string }; "query"?: { "before"?: string } }; "site_release_create": { "params": { "id": string }; "body": { "expectedVersion": number; "expectedHash": string; "sharedFactsHash": string; "baseline": { "generationId": string; "contentHash": string; "imageHash": string; "brandHash": string }; "pages": Array<{ "pageId": string; "generationId": string; "contentHash": string }> }; "idempotencyKey": string }; "site_release_get": { "params": { "id": string; "releaseId": string } }; "site_release_download": { "params": { "id": string; "releaseId": string } }; "site_publication_get": { "params": { "id": string } }; "site_publish": { "params": { "id": string }; "body": { "expectedVersion": number; "releaseId": string | null }; "idempotencyKey": string }; "billing_checkout": { "body": { "workspaceId": string; "idempotencyKey": string; "skuId": "starter" | "studio" | "business" | "credits_1000" | "credits_2500" | "credits_5000" | "credits_10000" } }; "billing_portal": { "body": { "workspaceId": string; "idempotencyKey": string } }; "billing_cancel": { "body": { "workspaceId": string; "idempotencyKey": string; "subscriptionId": string } }; "billing_change_preview": { "body": { "workspaceId": string; "subscriptionId": string; "planId": "starter" | "studio" | "business" } }; "billing_change_plan": { "body": { "workspaceId": string; "idempotencyKey": string; "subscriptionId": string; "planId": "starter" | "studio" | "business"; "previewId"?: string } }; "webhooks_list": { }; "webhook_get": { "params": { "id": string } }; "webhook_create": { "body": { "url": string; "secret": string; "events": Array<"generation.completed" | "generation.failed" | "generation.cancelled" | "page.published" | "page.unpublished" | "site.published" | "site.unpublished" | "form.submitted">; "enabled"?: boolean }; "idempotencyKey": string }; "webhook_update": { "params": { "id": string }; "body": { "expectedRevision": number; "url"?: string; "secret"?: string; "events": Array<"generation.completed" | "generation.failed" | "generation.cancelled" | "page.published" | "page.unpublished" | "site.published" | "site.unpublished" | "form.submitted">; "enabled": boolean } }; "webhook_deliveries": { "params": { "id": string }; "query"?: { "before"?: string; "limit"?: number } }; "webhook_retry": { "params": { "id": string; "deliveryId": string }; "body": { "expectedAttempts": number } }; "domain_connect": { "params": { "pageId": string }; "body": { "hostname": string } }; "domain_check": { "params": { "pageId": string; "domainId": string } }; "domain_disconnect": { "params": { "pageId": string; "domainId": string } }; "forms_list": { "params": { "pageId": string } }; "form_create": { "params": { "pageId": string }; "body": { "name": string; "enabled"?: boolean; "nativeFormId"?: string | null; "nativeSourceHash"?: string | null; "fields": Array<{ "name": string; "label": string; "type": "text" | "email" | "tel" | "textarea" | "select" | "checkbox" | "number" | "url" | "date"; "required"?: boolean; "placeholder"?: string; "options"?: Array; "maxLength"?: number }>; "submitLabel"?: string; "successMessage"?: string; "webhook"?: { "url": string; "fieldMapping"?: unknown; "secret"?: string } | null } }; "form_update": { "params": { "pageId": string; "formId": string }; "body": { "expectedRevision": number; "form": { "name": string; "enabled"?: boolean; "nativeFormId"?: string | null; "nativeSourceHash"?: string | null; "fields": Array<{ "name": string; "label": string; "type": "text" | "email" | "tel" | "textarea" | "select" | "checkbox" | "number" | "url" | "date"; "required"?: boolean; "placeholder"?: string; "options"?: Array; "maxLength"?: number }>; "submitLabel"?: string; "successMessage"?: string; "webhook"?: { "url": string; "fieldMapping"?: unknown; "secret"?: string } | null } } }; "form_copy": { "params": { "pageId": string; "formId": string }; "body": { "expectedRevision": number; "nativeSourceHash": string; "nativeFormId": string; "fields": Array<{ "name": string; "label": string; "type": "text" | "email" | "tel" | "textarea" | "select" | "checkbox" | "number" | "url" | "date"; "required"?: boolean; "placeholder"?: string; "options"?: Array; "maxLength"?: number }> } }; "leads_list": { "params": { "pageId": string; "formId": string }; "query"?: { "before"?: string } }; "form_test": { "params": { "pageId": string; "formId": string }; "body": { "deliverToDestination": boolean }; "idempotencyKey": string }; "lead_retry": { "params": { "pageId": string; "formId": string; "leadId": string } }; "reference_read": { "params": { "id": string }; "query"?: { "live"?: string } }; "design_image_read": { "params": { "id": string; "candidateId": "astra-a" | "astra-b" | "astra-c" | "astra-d" | "openai" | "xai" | "google" }; "query"?: { "v"?: string } }; "brand_logo_read": { "params": { "id": string } }; "download_read": { "params": { "id": string } }; "keys_list": { }; "key_create": { "body": { "name": string; "scopes": Array<"pages:read" | "pages:write" | "pages:publish" | "domains:manage" | "forms:manage" | "leads:read" | "leads:deliver" | "billing:read" | "billing:manage" | "workspace:manage">; "expiresDays"?: number } }; "key_revoke": { "params": { "id": string } }; "members_list": { }; "member_update": { "params": { "id": string }; "body": { "role": "owner" | "admin" | "editor" | "viewer" } }; "member_remove": { "params": { "id": string } }; "invites_list": { }; "invite_create": { "body": { "email": string; "role": "admin" | "editor" | "viewer" } }; "invite_revoke": { "params": { "id": string } } } export interface Outputs { "identity_get": { "workspaceId": string; "kind": "user" | "api-key" | "oauth" | "internal"; "role": "owner" | "admin" | "editor" | "viewer"; "scopes": Array<"pages:read" | "pages:write" | "pages:publish" | "domains:manage" | "forms:manage" | "leads:read" | "leads:deliver" | "billing:read" | "billing:manage" | "workspace:manage">; "verified": boolean; "userId": string | null; [key: string]: unknown }; "generations_list": { "items": Array<{ "finalizableSourceHash"?: string; "publication"?: { "state": "pending" | "published" | "blocked"; "message": string | null; [key: string]: unknown }; "rebuildRequired"?: boolean; "siteTask"?: { "id": string; "siteId": string; "state": "queued" | "planning" | "waiting_homepage" | "building" | "completed" | "needs_attention" | "cancelled"; "message": string }; "designEdit"?: { "version": 1; "sourceGenerationId": string; "sourceCandidateId": "astra-a" | "astra-b" | "astra-c" | "astra-d" | "openai" | "xai" | "google"; "sourceImageHash": string; "prompt": string; "imported"?: { "kind": "external-tool"; "tool": "imagegen"; "sourceId": string; "imageHash": string; "cost": "unknown-not-billable" }; "review"?: { "version": 1; "sourceImageHash": string; "imageHash": string; "status": "pass" | "fail" | "unverified"; "summary": string; "findings": Array; "receiptPath": string; "receiptHash": string } }; "id": string; "pageId": string; "parentId": string | null; "title": string; "prompt": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "createdAt": string; "updatedAt": string; "error": string | null; "files": { "html": string; "css": string; "js": string } | null; "quality": { "completion"?: { "version": 1; "reason": "checks_passed" | "attempt_limit" | "design_limit" | "deadline" | "checks_unavailable" | "provider_failure" | "saved_result"; "attempts": number; "maxAttempts": 3; [key: string]: unknown }; "pass": boolean; "scope": "generated" | "edited"; "contentHash": string; "referenceHash": string; "findings": Array<{ "code": string; "message": string; "severity": "blocker" | "major" | "minor"; "nodeId"?: string; "viewport"?: number; [key: string]: unknown }>; "ssim": number | null; "pixelError": number | null; "screenshots": Array<{ "width": number; "height": number; "path": string; [key: string]: unknown }>; "judged": boolean; "scores": { "composition": number; "typography": number; "imagery": number; "relevance": number; "responsiveness": number; [key: string]: unknown } | null; "logo"?: { "version": 1; "sourceHash": string; "status": "pass" | "fail" | "unverified"; "receiptHash": string; "path": string; [key: string]: unknown }; "copy"?: { "version": 1; "policyHash": string; "sourceHash": string; "receiptHash": string; "path": string; [key: string]: unknown }; [key: string]: unknown } | null; "referenceUrl": string | null; "previewUrl": string | null; "downloadUrl": string | null; "publishedUrl": string | null; "designs"?: { "analysisPolicy"?: "selected-v1"; "version": 1; "candidates": Array<{ "assessment"?: { "rank": number; "reason": string; "findings": Array; "audience": { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown }; "id": string; "label": string; "status": "queued" | "generating" | "ready" | "failed"; "imagePath": string | null; "imageHash": string | null; "width": number | null; "height": number | null; "error": string | null; "evaluation": { "eligible": boolean; "scores": { "creativity": number; "specificity": number; "composition": number; "typography": number; "usability": number; "factualIntegrity": number; [key: string]: unknown }; "reason": string; "findings": Array; "audience"?: { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown } | null; "imageUrl": string | null; "previousImageUrl"?: string | null; "previousImage"?: { "imagePath": string; "imageHash": string; "width": number; "height": number; "reason": string; [key: string]: unknown }; "inspection"?: { "accepted": boolean; "findings": Array; [key: string]: unknown }; "integrity"?: { "version": 1; "designHash": string; "policyHash": string; "logo": "pass" | "fail" | "unverified" | "not_applicable"; "copy": "pass" | "fail" | "unverified"; "receiptPath": string; "receiptHash": string; [key: string]: unknown }; [key: string]: unknown }>; "recommendedId": string | null; "selectedId": string | null; "selectionReason": string; "context": { "urls": Array; "sources": Array<{ "url": string; "title": string; [key: string]: unknown }>; "facts": Array<{ "text": string; "sourceUrls": Array; [key: string]: unknown }>; "warnings": Array; "branding"?: { "sourceUrl": string; "logoUrl": string | null; "colors": Array<{ "role": string; "value": string; [key: string]: unknown }>; "fonts": Array; "logoPath"?: string; "logoHash"?: string; "logoImageUrl"?: string; "logoCandidates"?: Array; "inlineLogoCandidates"?: Array<{ "sourceUrl": string; "selector": string; "hash": string; [key: string]: unknown }>; "colorEvidence"?: Array<{ "role": string; "value": string; "source": string; [key: string]: unknown }>; "warnings"?: Array; "logoAuthority"?: { "version": 1; "path": string; "hash": string; "canonicalSourceHash": string; [key: string]: unknown }; [key: string]: unknown }; "images"?: Array<{ "url": string; "sourceUrl": string; "alt"?: string; "selected"?: boolean; "path"?: string; "hash"?: string; "width"?: number; "height"?: number; [key: string]: unknown }>; "research"?: { "scope": string; "subject": string; "decisions": Array<{ "round": number; "reason": string; "urls": Array; [key: string]: unknown }>; [key: string]: unknown }; [key: string]: unknown }; "integrityPolicy"?: { "version": 2; "copyPolicyHash": string; [key: string]: unknown }; "refinement"?: { "kind": "edited-render"; "imagePath": string; "imageHash": string; "contentHash": string; "width": number; "height": number; [key: string]: unknown }; "direction"?: { "aspectRatio": "1:1" | "3:4" | "2:3" | "9:16"; "factIndices": Array; [key: string]: unknown }; [key: string]: unknown } | null; "activity"?: Array<{ "id": string; "at": string; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "message": string; "details"?: string; [key: string]: unknown }>; "unreviewedSource"?: { "files": { "html": string; "css": string; "js": string }; "contentHash": string; "imageHash": string; [key: string]: unknown }; [key: string]: unknown }>; "nextCursor": string | null; [key: string]: unknown }; "generation_get": { "finalizableSourceHash"?: string; "publication"?: { "state": "pending" | "published" | "blocked"; "message": string | null; [key: string]: unknown }; "rebuildRequired"?: boolean; "siteTask"?: { "id": string; "siteId": string; "state": "queued" | "planning" | "waiting_homepage" | "building" | "completed" | "needs_attention" | "cancelled"; "message": string }; "designEdit"?: { "version": 1; "sourceGenerationId": string; "sourceCandidateId": "astra-a" | "astra-b" | "astra-c" | "astra-d" | "openai" | "xai" | "google"; "sourceImageHash": string; "prompt": string; "imported"?: { "kind": "external-tool"; "tool": "imagegen"; "sourceId": string; "imageHash": string; "cost": "unknown-not-billable" }; "review"?: { "version": 1; "sourceImageHash": string; "imageHash": string; "status": "pass" | "fail" | "unverified"; "summary": string; "findings": Array; "receiptPath": string; "receiptHash": string } }; "id": string; "pageId": string; "parentId": string | null; "title": string; "prompt": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "createdAt": string; "updatedAt": string; "error": string | null; "files": { "html": string; "css": string; "js": string } | null; "quality": { "completion"?: { "version": 1; "reason": "checks_passed" | "attempt_limit" | "design_limit" | "deadline" | "checks_unavailable" | "provider_failure" | "saved_result"; "attempts": number; "maxAttempts": 3; [key: string]: unknown }; "pass": boolean; "scope": "generated" | "edited"; "contentHash": string; "referenceHash": string; "findings": Array<{ "code": string; "message": string; "severity": "blocker" | "major" | "minor"; "nodeId"?: string; "viewport"?: number; [key: string]: unknown }>; "ssim": number | null; "pixelError": number | null; "screenshots": Array<{ "width": number; "height": number; "path": string; [key: string]: unknown }>; "judged": boolean; "scores": { "composition": number; "typography": number; "imagery": number; "relevance": number; "responsiveness": number; [key: string]: unknown } | null; "logo"?: { "version": 1; "sourceHash": string; "status": "pass" | "fail" | "unverified"; "receiptHash": string; "path": string; [key: string]: unknown }; "copy"?: { "version": 1; "policyHash": string; "sourceHash": string; "receiptHash": string; "path": string; [key: string]: unknown }; [key: string]: unknown } | null; "referenceUrl": string | null; "previewUrl": string | null; "downloadUrl": string | null; "publishedUrl": string | null; "designs"?: { "analysisPolicy"?: "selected-v1"; "version": 1; "candidates": Array<{ "assessment"?: { "rank": number; "reason": string; "findings": Array; "audience": { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown }; "id": string; "label": string; "status": "queued" | "generating" | "ready" | "failed"; "imagePath": string | null; "imageHash": string | null; "width": number | null; "height": number | null; "error": string | null; "evaluation": { "eligible": boolean; "scores": { "creativity": number; "specificity": number; "composition": number; "typography": number; "usability": number; "factualIntegrity": number; [key: string]: unknown }; "reason": string; "findings": Array; "audience"?: { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown } | null; "imageUrl": string | null; "previousImageUrl"?: string | null; "previousImage"?: { "imagePath": string; "imageHash": string; "width": number; "height": number; "reason": string; [key: string]: unknown }; "inspection"?: { "accepted": boolean; "findings": Array; [key: string]: unknown }; "integrity"?: { "version": 1; "designHash": string; "policyHash": string; "logo": "pass" | "fail" | "unverified" | "not_applicable"; "copy": "pass" | "fail" | "unverified"; "receiptPath": string; "receiptHash": string; [key: string]: unknown }; [key: string]: unknown }>; "recommendedId": string | null; "selectedId": string | null; "selectionReason": string; "context": { "urls": Array; "sources": Array<{ "url": string; "title": string; [key: string]: unknown }>; "facts": Array<{ "text": string; "sourceUrls": Array; [key: string]: unknown }>; "warnings": Array; "branding"?: { "sourceUrl": string; "logoUrl": string | null; "colors": Array<{ "role": string; "value": string; [key: string]: unknown }>; "fonts": Array; "logoPath"?: string; "logoHash"?: string; "logoImageUrl"?: string; "logoCandidates"?: Array; "inlineLogoCandidates"?: Array<{ "sourceUrl": string; "selector": string; "hash": string; [key: string]: unknown }>; "colorEvidence"?: Array<{ "role": string; "value": string; "source": string; [key: string]: unknown }>; "warnings"?: Array; "logoAuthority"?: { "version": 1; "path": string; "hash": string; "canonicalSourceHash": string; [key: string]: unknown }; [key: string]: unknown }; "images"?: Array<{ "url": string; "sourceUrl": string; "alt"?: string; "selected"?: boolean; "path"?: string; "hash"?: string; "width"?: number; "height"?: number; [key: string]: unknown }>; "research"?: { "scope": string; "subject": string; "decisions": Array<{ "round": number; "reason": string; "urls": Array; [key: string]: unknown }>; [key: string]: unknown }; [key: string]: unknown }; "integrityPolicy"?: { "version": 2; "copyPolicyHash": string; [key: string]: unknown }; "refinement"?: { "kind": "edited-render"; "imagePath": string; "imageHash": string; "contentHash": string; "width": number; "height": number; [key: string]: unknown }; "direction"?: { "aspectRatio": "1:1" | "3:4" | "2:3" | "9:16"; "factIndices": Array; [key: string]: unknown }; [key: string]: unknown } | null; "activity"?: Array<{ "id": string; "at": string; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "message": string; "details"?: string; [key: string]: unknown }>; "unreviewedSource"?: { "files": { "html": string; "css": string; "js": string }; "contentHash": string; "imageHash": string; [key: string]: unknown }; [key: string]: unknown }; "generation_request_get": { "generation": { "finalizableSourceHash"?: string; "publication"?: { "state": "pending" | "published" | "blocked"; "message": string | null; [key: string]: unknown }; "rebuildRequired"?: boolean; "siteTask"?: { "id": string; "siteId": string; "state": "queued" | "planning" | "waiting_homepage" | "building" | "completed" | "needs_attention" | "cancelled"; "message": string }; "designEdit"?: { "version": 1; "sourceGenerationId": string; "sourceCandidateId": "astra-a" | "astra-b" | "astra-c" | "astra-d" | "openai" | "xai" | "google"; "sourceImageHash": string; "prompt": string; "imported"?: { "kind": "external-tool"; "tool": "imagegen"; "sourceId": string; "imageHash": string; "cost": "unknown-not-billable" }; "review"?: { "version": 1; "sourceImageHash": string; "imageHash": string; "status": "pass" | "fail" | "unverified"; "summary": string; "findings": Array; "receiptPath": string; "receiptHash": string } }; "id": string; "pageId": string; "parentId": string | null; "title": string; "prompt": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "createdAt": string; "updatedAt": string; "error": string | null; "files": { "html": string; "css": string; "js": string } | null; "quality": { "completion"?: { "version": 1; "reason": "checks_passed" | "attempt_limit" | "design_limit" | "deadline" | "checks_unavailable" | "provider_failure" | "saved_result"; "attempts": number; "maxAttempts": 3; [key: string]: unknown }; "pass": boolean; "scope": "generated" | "edited"; "contentHash": string; "referenceHash": string; "findings": Array<{ "code": string; "message": string; "severity": "blocker" | "major" | "minor"; "nodeId"?: string; "viewport"?: number; [key: string]: unknown }>; "ssim": number | null; "pixelError": number | null; "screenshots": Array<{ "width": number; "height": number; "path": string; [key: string]: unknown }>; "judged": boolean; "scores": { "composition": number; "typography": number; "imagery": number; "relevance": number; "responsiveness": number; [key: string]: unknown } | null; "logo"?: { "version": 1; "sourceHash": string; "status": "pass" | "fail" | "unverified"; "receiptHash": string; "path": string; [key: string]: unknown }; "copy"?: { "version": 1; "policyHash": string; "sourceHash": string; "receiptHash": string; "path": string; [key: string]: unknown }; [key: string]: unknown } | null; "referenceUrl": string | null; "previewUrl": string | null; "downloadUrl": string | null; "publishedUrl": string | null; "designs"?: { "analysisPolicy"?: "selected-v1"; "version": 1; "candidates": Array<{ "assessment"?: { "rank": number; "reason": string; "findings": Array; "audience": { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown }; "id": string; "label": string; "status": "queued" | "generating" | "ready" | "failed"; "imagePath": string | null; "imageHash": string | null; "width": number | null; "height": number | null; "error": string | null; "evaluation": { "eligible": boolean; "scores": { "creativity": number; "specificity": number; "composition": number; "typography": number; "usability": number; "factualIntegrity": number; [key: string]: unknown }; "reason": string; "findings": Array; "audience"?: { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown } | null; "imageUrl": string | null; "previousImageUrl"?: string | null; "previousImage"?: { "imagePath": string; "imageHash": string; "width": number; "height": number; "reason": string; [key: string]: unknown }; "inspection"?: { "accepted": boolean; "findings": Array; [key: string]: unknown }; "integrity"?: { "version": 1; "designHash": string; "policyHash": string; "logo": "pass" | "fail" | "unverified" | "not_applicable"; "copy": "pass" | "fail" | "unverified"; "receiptPath": string; "receiptHash": string; [key: string]: unknown }; [key: string]: unknown }>; "recommendedId": string | null; "selectedId": string | null; "selectionReason": string; "context": { "urls": Array; "sources": Array<{ "url": string; "title": string; [key: string]: unknown }>; "facts": Array<{ "text": string; "sourceUrls": Array; [key: string]: unknown }>; "warnings": Array; "branding"?: { "sourceUrl": string; "logoUrl": string | null; "colors": Array<{ "role": string; "value": string; [key: string]: unknown }>; "fonts": Array; "logoPath"?: string; "logoHash"?: string; "logoImageUrl"?: string; "logoCandidates"?: Array; "inlineLogoCandidates"?: Array<{ "sourceUrl": string; "selector": string; "hash": string; [key: string]: unknown }>; "colorEvidence"?: Array<{ "role": string; "value": string; "source": string; [key: string]: unknown }>; "warnings"?: Array; "logoAuthority"?: { "version": 1; "path": string; "hash": string; "canonicalSourceHash": string; [key: string]: unknown }; [key: string]: unknown }; "images"?: Array<{ "url": string; "sourceUrl": string; "alt"?: string; "selected"?: boolean; "path"?: string; "hash"?: string; "width"?: number; "height"?: number; [key: string]: unknown }>; "research"?: { "scope": string; "subject": string; "decisions": Array<{ "round": number; "reason": string; "urls": Array; [key: string]: unknown }>; [key: string]: unknown }; [key: string]: unknown }; "integrityPolicy"?: { "version": 2; "copyPolicyHash": string; [key: string]: unknown }; "refinement"?: { "kind": "edited-render"; "imagePath": string; "imageHash": string; "contentHash": string; "width": number; "height": number; [key: string]: unknown }; "direction"?: { "aspectRatio": "1:1" | "3:4" | "2:3" | "9:16"; "factIndices": Array; [key: string]: unknown }; [key: string]: unknown } | null; "activity"?: Array<{ "id": string; "at": string; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "message": string; "details"?: string; [key: string]: unknown }>; "unreviewedSource"?: { "files": { "html": string; "css": string; "js": string }; "contentHash": string; "imageHash": string; [key: string]: unknown }; [key: string]: unknown } | null; [key: string]: unknown }; "artifact_manifest": { "version": 1; "generationId": string; "pageId": string; "state": "ready" | "needs_review"; "sourceHash": string; "referenceHash": string; "qualityPass": boolean; "final"?: true; "entries": Array<{ "path": string; "byteSize": number; "sha256": string; "contentType": string }> }; "source_get": { "id": string; "files": { "html": string; "css": string; "js": string }; "quality": { "completion"?: { "version": 1; "reason": "checks_passed" | "attempt_limit" | "design_limit" | "deadline" | "checks_unavailable" | "provider_failure" | "saved_result"; "attempts": number; "maxAttempts": 3; [key: string]: unknown }; "pass": boolean; "scope": "generated" | "edited"; "contentHash": string; "referenceHash": string; "findings": Array<{ "code": string; "message": string; "severity": "blocker" | "major" | "minor"; "nodeId"?: string; "viewport"?: number; [key: string]: unknown }>; "ssim": number | null; "pixelError": number | null; "screenshots": Array<{ "width": number; "height": number; "path": string; [key: string]: unknown }>; "judged": boolean; "scores": { "composition": number; "typography": number; "imagery": number; "relevance": number; "responsiveness": number; [key: string]: unknown } | null; "logo"?: { "version": 1; "sourceHash": string; "status": "pass" | "fail" | "unverified"; "receiptHash": string; "path": string; [key: string]: unknown }; "copy"?: { "version": 1; "policyHash": string; "sourceHash": string; "receiptHash": string; "path": string; [key: string]: unknown }; [key: string]: unknown } | null; "previewUrl": string | null; [key: string]: unknown }; "quality_get": { "id": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "quality": { "completion"?: { "version": 1; "reason": "checks_passed" | "attempt_limit" | "design_limit" | "deadline" | "checks_unavailable" | "provider_failure" | "saved_result"; "attempts": number; "maxAttempts": 3; [key: string]: unknown }; "pass": boolean; "scope": "generated" | "edited"; "contentHash": string; "referenceHash": string; "findings": Array<{ "code": string; "message": string; "severity": "blocker" | "major" | "minor"; "nodeId"?: string; "viewport"?: number; [key: string]: unknown }>; "ssim": number | null; "pixelError": number | null; "screenshots": Array<{ "width": number; "height": number; "path": string; [key: string]: unknown }>; "judged": boolean; "scores": { "composition": number; "typography": number; "imagery": number; "relevance": number; "responsiveness": number; [key: string]: unknown } | null; "logo"?: { "version": 1; "sourceHash": string; "status": "pass" | "fail" | "unverified"; "receiptHash": string; "path": string; [key: string]: unknown }; "copy"?: { "version": 1; "policyHash": string; "sourceHash": string; "receiptHash": string; "path": string; [key: string]: unknown }; [key: string]: unknown } | null; [key: string]: unknown }; "generation_create": { "finalizableSourceHash"?: string; "publication"?: { "state": "pending" | "published" | "blocked"; "message": string | null; [key: string]: unknown }; "rebuildRequired"?: boolean; "siteTask"?: { "id": string; "siteId": string; "state": "queued" | "planning" | "waiting_homepage" | "building" | "completed" | "needs_attention" | "cancelled"; "message": string }; "designEdit"?: { "version": 1; "sourceGenerationId": string; "sourceCandidateId": "astra-a" | "astra-b" | "astra-c" | "astra-d" | "openai" | "xai" | "google"; "sourceImageHash": string; "prompt": string; "imported"?: { "kind": "external-tool"; "tool": "imagegen"; "sourceId": string; "imageHash": string; "cost": "unknown-not-billable" }; "review"?: { "version": 1; "sourceImageHash": string; "imageHash": string; "status": "pass" | "fail" | "unverified"; "summary": string; "findings": Array; "receiptPath": string; "receiptHash": string } }; "id": string; "pageId": string; "parentId": string | null; "title": string; "prompt": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "createdAt": string; "updatedAt": string; "error": string | null; "files": { "html": string; "css": string; "js": string } | null; "quality": { "completion"?: { "version": 1; "reason": "checks_passed" | "attempt_limit" | "design_limit" | "deadline" | "checks_unavailable" | "provider_failure" | "saved_result"; "attempts": number; "maxAttempts": 3; [key: string]: unknown }; "pass": boolean; "scope": "generated" | "edited"; "contentHash": string; "referenceHash": string; "findings": Array<{ "code": string; "message": string; "severity": "blocker" | "major" | "minor"; "nodeId"?: string; "viewport"?: number; [key: string]: unknown }>; "ssim": number | null; "pixelError": number | null; "screenshots": Array<{ "width": number; "height": number; "path": string; [key: string]: unknown }>; "judged": boolean; "scores": { "composition": number; "typography": number; "imagery": number; "relevance": number; "responsiveness": number; [key: string]: unknown } | null; "logo"?: { "version": 1; "sourceHash": string; "status": "pass" | "fail" | "unverified"; "receiptHash": string; "path": string; [key: string]: unknown }; "copy"?: { "version": 1; "policyHash": string; "sourceHash": string; "receiptHash": string; "path": string; [key: string]: unknown }; [key: string]: unknown } | null; "referenceUrl": string | null; "previewUrl": string | null; "downloadUrl": string | null; "publishedUrl": string | null; "designs"?: { "analysisPolicy"?: "selected-v1"; "version": 1; "candidates": Array<{ "assessment"?: { "rank": number; "reason": string; "findings": Array; "audience": { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown }; "id": string; "label": string; "status": "queued" | "generating" | "ready" | "failed"; "imagePath": string | null; "imageHash": string | null; "width": number | null; "height": number | null; "error": string | null; "evaluation": { "eligible": boolean; "scores": { "creativity": number; "specificity": number; "composition": number; "typography": number; "usability": number; "factualIntegrity": number; [key: string]: unknown }; "reason": string; "findings": Array; "audience"?: { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown } | null; "imageUrl": string | null; "previousImageUrl"?: string | null; "previousImage"?: { "imagePath": string; "imageHash": string; "width": number; "height": number; "reason": string; [key: string]: unknown }; "inspection"?: { "accepted": boolean; "findings": Array; [key: string]: unknown }; "integrity"?: { "version": 1; "designHash": string; "policyHash": string; "logo": "pass" | "fail" | "unverified" | "not_applicable"; "copy": "pass" | "fail" | "unverified"; "receiptPath": string; "receiptHash": string; [key: string]: unknown }; [key: string]: unknown }>; "recommendedId": string | null; "selectedId": string | null; "selectionReason": string; "context": { "urls": Array; "sources": Array<{ "url": string; "title": string; [key: string]: unknown }>; "facts": Array<{ "text": string; "sourceUrls": Array; [key: string]: unknown }>; "warnings": Array; "branding"?: { "sourceUrl": string; "logoUrl": string | null; "colors": Array<{ "role": string; "value": string; [key: string]: unknown }>; "fonts": Array; "logoPath"?: string; "logoHash"?: string; "logoImageUrl"?: string; "logoCandidates"?: Array; "inlineLogoCandidates"?: Array<{ "sourceUrl": string; "selector": string; "hash": string; [key: string]: unknown }>; "colorEvidence"?: Array<{ "role": string; "value": string; "source": string; [key: string]: unknown }>; "warnings"?: Array; "logoAuthority"?: { "version": 1; "path": string; "hash": string; "canonicalSourceHash": string; [key: string]: unknown }; [key: string]: unknown }; "images"?: Array<{ "url": string; "sourceUrl": string; "alt"?: string; "selected"?: boolean; "path"?: string; "hash"?: string; "width"?: number; "height"?: number; [key: string]: unknown }>; "research"?: { "scope": string; "subject": string; "decisions": Array<{ "round": number; "reason": string; "urls": Array; [key: string]: unknown }>; [key: string]: unknown }; [key: string]: unknown }; "integrityPolicy"?: { "version": 2; "copyPolicyHash": string; [key: string]: unknown }; "refinement"?: { "kind": "edited-render"; "imagePath": string; "imageHash": string; "contentHash": string; "width": number; "height": number; [key: string]: unknown }; "direction"?: { "aspectRatio": "1:1" | "3:4" | "2:3" | "9:16"; "factIndices": Array; [key: string]: unknown }; [key: string]: unknown } | null; "activity"?: Array<{ "id": string; "at": string; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "message": string; "details"?: string; [key: string]: unknown }>; "unreviewedSource"?: { "files": { "html": string; "css": string; "js": string }; "contentHash": string; "imageHash": string; [key: string]: unknown }; [key: string]: unknown }; "designs_review": { "finalizableSourceHash"?: string; "publication"?: { "state": "pending" | "published" | "blocked"; "message": string | null; [key: string]: unknown }; "rebuildRequired"?: boolean; "siteTask"?: { "id": string; "siteId": string; "state": "queued" | "planning" | "waiting_homepage" | "building" | "completed" | "needs_attention" | "cancelled"; "message": string }; "designEdit"?: { "version": 1; "sourceGenerationId": string; "sourceCandidateId": "astra-a" | "astra-b" | "astra-c" | "astra-d" | "openai" | "xai" | "google"; "sourceImageHash": string; "prompt": string; "imported"?: { "kind": "external-tool"; "tool": "imagegen"; "sourceId": string; "imageHash": string; "cost": "unknown-not-billable" }; "review"?: { "version": 1; "sourceImageHash": string; "imageHash": string; "status": "pass" | "fail" | "unverified"; "summary": string; "findings": Array; "receiptPath": string; "receiptHash": string } }; "id": string; "pageId": string; "parentId": string | null; "title": string; "prompt": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "createdAt": string; "updatedAt": string; "error": string | null; "files": { "html": string; "css": string; "js": string } | null; "quality": { "completion"?: { "version": 1; "reason": "checks_passed" | "attempt_limit" | "design_limit" | "deadline" | "checks_unavailable" | "provider_failure" | "saved_result"; "attempts": number; "maxAttempts": 3; [key: string]: unknown }; "pass": boolean; "scope": "generated" | "edited"; "contentHash": string; "referenceHash": string; "findings": Array<{ "code": string; "message": string; "severity": "blocker" | "major" | "minor"; "nodeId"?: string; "viewport"?: number; [key: string]: unknown }>; "ssim": number | null; "pixelError": number | null; "screenshots": Array<{ "width": number; "height": number; "path": string; [key: string]: unknown }>; "judged": boolean; "scores": { "composition": number; "typography": number; "imagery": number; "relevance": number; "responsiveness": number; [key: string]: unknown } | null; "logo"?: { "version": 1; "sourceHash": string; "status": "pass" | "fail" | "unverified"; "receiptHash": string; "path": string; [key: string]: unknown }; "copy"?: { "version": 1; "policyHash": string; "sourceHash": string; "receiptHash": string; "path": string; [key: string]: unknown }; [key: string]: unknown } | null; "referenceUrl": string | null; "previewUrl": string | null; "downloadUrl": string | null; "publishedUrl": string | null; "designs"?: { "analysisPolicy"?: "selected-v1"; "version": 1; "candidates": Array<{ "assessment"?: { "rank": number; "reason": string; "findings": Array; "audience": { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown }; "id": string; "label": string; "status": "queued" | "generating" | "ready" | "failed"; "imagePath": string | null; "imageHash": string | null; "width": number | null; "height": number | null; "error": string | null; "evaluation": { "eligible": boolean; "scores": { "creativity": number; "specificity": number; "composition": number; "typography": number; "usability": number; "factualIntegrity": number; [key: string]: unknown }; "reason": string; "findings": Array; "audience"?: { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown } | null; "imageUrl": string | null; "previousImageUrl"?: string | null; "previousImage"?: { "imagePath": string; "imageHash": string; "width": number; "height": number; "reason": string; [key: string]: unknown }; "inspection"?: { "accepted": boolean; "findings": Array; [key: string]: unknown }; "integrity"?: { "version": 1; "designHash": string; "policyHash": string; "logo": "pass" | "fail" | "unverified" | "not_applicable"; "copy": "pass" | "fail" | "unverified"; "receiptPath": string; "receiptHash": string; [key: string]: unknown }; [key: string]: unknown }>; "recommendedId": string | null; "selectedId": string | null; "selectionReason": string; "context": { "urls": Array; "sources": Array<{ "url": string; "title": string; [key: string]: unknown }>; "facts": Array<{ "text": string; "sourceUrls": Array; [key: string]: unknown }>; "warnings": Array; "branding"?: { "sourceUrl": string; "logoUrl": string | null; "colors": Array<{ "role": string; "value": string; [key: string]: unknown }>; "fonts": Array; "logoPath"?: string; "logoHash"?: string; "logoImageUrl"?: string; "logoCandidates"?: Array; "inlineLogoCandidates"?: Array<{ "sourceUrl": string; "selector": string; "hash": string; [key: string]: unknown }>; "colorEvidence"?: Array<{ "role": string; "value": string; "source": string; [key: string]: unknown }>; "warnings"?: Array; "logoAuthority"?: { "version": 1; "path": string; "hash": string; "canonicalSourceHash": string; [key: string]: unknown }; [key: string]: unknown }; "images"?: Array<{ "url": string; "sourceUrl": string; "alt"?: string; "selected"?: boolean; "path"?: string; "hash"?: string; "width"?: number; "height"?: number; [key: string]: unknown }>; "research"?: { "scope": string; "subject": string; "decisions": Array<{ "round": number; "reason": string; "urls": Array; [key: string]: unknown }>; [key: string]: unknown }; [key: string]: unknown }; "integrityPolicy"?: { "version": 2; "copyPolicyHash": string; [key: string]: unknown }; "refinement"?: { "kind": "edited-render"; "imagePath": string; "imageHash": string; "contentHash": string; "width": number; "height": number; [key: string]: unknown }; "direction"?: { "aspectRatio": "1:1" | "3:4" | "2:3" | "9:16"; "factIndices": Array; [key: string]: unknown }; [key: string]: unknown } | null; "activity"?: Array<{ "id": string; "at": string; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "message": string; "details"?: string; [key: string]: unknown }>; "unreviewedSource"?: { "files": { "html": string; "css": string; "js": string }; "contentHash": string; "imageHash": string; [key: string]: unknown }; [key: string]: unknown }; "design_edit": { "finalizableSourceHash"?: string; "publication"?: { "state": "pending" | "published" | "blocked"; "message": string | null; [key: string]: unknown }; "rebuildRequired"?: boolean; "siteTask"?: { "id": string; "siteId": string; "state": "queued" | "planning" | "waiting_homepage" | "building" | "completed" | "needs_attention" | "cancelled"; "message": string }; "designEdit"?: { "version": 1; "sourceGenerationId": string; "sourceCandidateId": "astra-a" | "astra-b" | "astra-c" | "astra-d" | "openai" | "xai" | "google"; "sourceImageHash": string; "prompt": string; "imported"?: { "kind": "external-tool"; "tool": "imagegen"; "sourceId": string; "imageHash": string; "cost": "unknown-not-billable" }; "review"?: { "version": 1; "sourceImageHash": string; "imageHash": string; "status": "pass" | "fail" | "unverified"; "summary": string; "findings": Array; "receiptPath": string; "receiptHash": string } }; "id": string; "pageId": string; "parentId": string | null; "title": string; "prompt": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "createdAt": string; "updatedAt": string; "error": string | null; "files": { "html": string; "css": string; "js": string } | null; "quality": { "completion"?: { "version": 1; "reason": "checks_passed" | "attempt_limit" | "design_limit" | "deadline" | "checks_unavailable" | "provider_failure" | "saved_result"; "attempts": number; "maxAttempts": 3; [key: string]: unknown }; "pass": boolean; "scope": "generated" | "edited"; "contentHash": string; "referenceHash": string; "findings": Array<{ "code": string; "message": string; "severity": "blocker" | "major" | "minor"; "nodeId"?: string; "viewport"?: number; [key: string]: unknown }>; "ssim": number | null; "pixelError": number | null; "screenshots": Array<{ "width": number; "height": number; "path": string; [key: string]: unknown }>; "judged": boolean; "scores": { "composition": number; "typography": number; "imagery": number; "relevance": number; "responsiveness": number; [key: string]: unknown } | null; "logo"?: { "version": 1; "sourceHash": string; "status": "pass" | "fail" | "unverified"; "receiptHash": string; "path": string; [key: string]: unknown }; "copy"?: { "version": 1; "policyHash": string; "sourceHash": string; "receiptHash": string; "path": string; [key: string]: unknown }; [key: string]: unknown } | null; "referenceUrl": string | null; "previewUrl": string | null; "downloadUrl": string | null; "publishedUrl": string | null; "designs"?: { "analysisPolicy"?: "selected-v1"; "version": 1; "candidates": Array<{ "assessment"?: { "rank": number; "reason": string; "findings": Array; "audience": { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown }; "id": string; "label": string; "status": "queued" | "generating" | "ready" | "failed"; "imagePath": string | null; "imageHash": string | null; "width": number | null; "height": number | null; "error": string | null; "evaluation": { "eligible": boolean; "scores": { "creativity": number; "specificity": number; "composition": number; "typography": number; "usability": number; "factualIntegrity": number; [key: string]: unknown }; "reason": string; "findings": Array; "audience"?: { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown } | null; "imageUrl": string | null; "previousImageUrl"?: string | null; "previousImage"?: { "imagePath": string; "imageHash": string; "width": number; "height": number; "reason": string; [key: string]: unknown }; "inspection"?: { "accepted": boolean; "findings": Array; [key: string]: unknown }; "integrity"?: { "version": 1; "designHash": string; "policyHash": string; "logo": "pass" | "fail" | "unverified" | "not_applicable"; "copy": "pass" | "fail" | "unverified"; "receiptPath": string; "receiptHash": string; [key: string]: unknown }; [key: string]: unknown }>; "recommendedId": string | null; "selectedId": string | null; "selectionReason": string; "context": { "urls": Array; "sources": Array<{ "url": string; "title": string; [key: string]: unknown }>; "facts": Array<{ "text": string; "sourceUrls": Array; [key: string]: unknown }>; "warnings": Array; "branding"?: { "sourceUrl": string; "logoUrl": string | null; "colors": Array<{ "role": string; "value": string; [key: string]: unknown }>; "fonts": Array; "logoPath"?: string; "logoHash"?: string; "logoImageUrl"?: string; "logoCandidates"?: Array; "inlineLogoCandidates"?: Array<{ "sourceUrl": string; "selector": string; "hash": string; [key: string]: unknown }>; "colorEvidence"?: Array<{ "role": string; "value": string; "source": string; [key: string]: unknown }>; "warnings"?: Array; "logoAuthority"?: { "version": 1; "path": string; "hash": string; "canonicalSourceHash": string; [key: string]: unknown }; [key: string]: unknown }; "images"?: Array<{ "url": string; "sourceUrl": string; "alt"?: string; "selected"?: boolean; "path"?: string; "hash"?: string; "width"?: number; "height"?: number; [key: string]: unknown }>; "research"?: { "scope": string; "subject": string; "decisions": Array<{ "round": number; "reason": string; "urls": Array; [key: string]: unknown }>; [key: string]: unknown }; [key: string]: unknown }; "integrityPolicy"?: { "version": 2; "copyPolicyHash": string; [key: string]: unknown }; "refinement"?: { "kind": "edited-render"; "imagePath": string; "imageHash": string; "contentHash": string; "width": number; "height": number; [key: string]: unknown }; "direction"?: { "aspectRatio": "1:1" | "3:4" | "2:3" | "9:16"; "factIndices": Array; [key: string]: unknown }; [key: string]: unknown } | null; "activity"?: Array<{ "id": string; "at": string; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "message": string; "details"?: string; [key: string]: unknown }>; "unreviewedSource"?: { "files": { "html": string; "css": string; "js": string }; "contentHash": string; "imageHash": string; [key: string]: unknown }; [key: string]: unknown }; "design_select": { "finalizableSourceHash"?: string; "publication"?: { "state": "pending" | "published" | "blocked"; "message": string | null; [key: string]: unknown }; "rebuildRequired"?: boolean; "siteTask"?: { "id": string; "siteId": string; "state": "queued" | "planning" | "waiting_homepage" | "building" | "completed" | "needs_attention" | "cancelled"; "message": string }; "designEdit"?: { "version": 1; "sourceGenerationId": string; "sourceCandidateId": "astra-a" | "astra-b" | "astra-c" | "astra-d" | "openai" | "xai" | "google"; "sourceImageHash": string; "prompt": string; "imported"?: { "kind": "external-tool"; "tool": "imagegen"; "sourceId": string; "imageHash": string; "cost": "unknown-not-billable" }; "review"?: { "version": 1; "sourceImageHash": string; "imageHash": string; "status": "pass" | "fail" | "unverified"; "summary": string; "findings": Array; "receiptPath": string; "receiptHash": string } }; "id": string; "pageId": string; "parentId": string | null; "title": string; "prompt": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "createdAt": string; "updatedAt": string; "error": string | null; "files": { "html": string; "css": string; "js": string } | null; "quality": { "completion"?: { "version": 1; "reason": "checks_passed" | "attempt_limit" | "design_limit" | "deadline" | "checks_unavailable" | "provider_failure" | "saved_result"; "attempts": number; "maxAttempts": 3; [key: string]: unknown }; "pass": boolean; "scope": "generated" | "edited"; "contentHash": string; "referenceHash": string; "findings": Array<{ "code": string; "message": string; "severity": "blocker" | "major" | "minor"; "nodeId"?: string; "viewport"?: number; [key: string]: unknown }>; "ssim": number | null; "pixelError": number | null; "screenshots": Array<{ "width": number; "height": number; "path": string; [key: string]: unknown }>; "judged": boolean; "scores": { "composition": number; "typography": number; "imagery": number; "relevance": number; "responsiveness": number; [key: string]: unknown } | null; "logo"?: { "version": 1; "sourceHash": string; "status": "pass" | "fail" | "unverified"; "receiptHash": string; "path": string; [key: string]: unknown }; "copy"?: { "version": 1; "policyHash": string; "sourceHash": string; "receiptHash": string; "path": string; [key: string]: unknown }; [key: string]: unknown } | null; "referenceUrl": string | null; "previewUrl": string | null; "downloadUrl": string | null; "publishedUrl": string | null; "designs"?: { "analysisPolicy"?: "selected-v1"; "version": 1; "candidates": Array<{ "assessment"?: { "rank": number; "reason": string; "findings": Array; "audience": { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown }; "id": string; "label": string; "status": "queued" | "generating" | "ready" | "failed"; "imagePath": string | null; "imageHash": string | null; "width": number | null; "height": number | null; "error": string | null; "evaluation": { "eligible": boolean; "scores": { "creativity": number; "specificity": number; "composition": number; "typography": number; "usability": number; "factualIntegrity": number; [key: string]: unknown }; "reason": string; "findings": Array; "audience"?: { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown } | null; "imageUrl": string | null; "previousImageUrl"?: string | null; "previousImage"?: { "imagePath": string; "imageHash": string; "width": number; "height": number; "reason": string; [key: string]: unknown }; "inspection"?: { "accepted": boolean; "findings": Array; [key: string]: unknown }; "integrity"?: { "version": 1; "designHash": string; "policyHash": string; "logo": "pass" | "fail" | "unverified" | "not_applicable"; "copy": "pass" | "fail" | "unverified"; "receiptPath": string; "receiptHash": string; [key: string]: unknown }; [key: string]: unknown }>; "recommendedId": string | null; "selectedId": string | null; "selectionReason": string; "context": { "urls": Array; "sources": Array<{ "url": string; "title": string; [key: string]: unknown }>; "facts": Array<{ "text": string; "sourceUrls": Array; [key: string]: unknown }>; "warnings": Array; "branding"?: { "sourceUrl": string; "logoUrl": string | null; "colors": Array<{ "role": string; "value": string; [key: string]: unknown }>; "fonts": Array; "logoPath"?: string; "logoHash"?: string; "logoImageUrl"?: string; "logoCandidates"?: Array; "inlineLogoCandidates"?: Array<{ "sourceUrl": string; "selector": string; "hash": string; [key: string]: unknown }>; "colorEvidence"?: Array<{ "role": string; "value": string; "source": string; [key: string]: unknown }>; "warnings"?: Array; "logoAuthority"?: { "version": 1; "path": string; "hash": string; "canonicalSourceHash": string; [key: string]: unknown }; [key: string]: unknown }; "images"?: Array<{ "url": string; "sourceUrl": string; "alt"?: string; "selected"?: boolean; "path"?: string; "hash"?: string; "width"?: number; "height"?: number; [key: string]: unknown }>; "research"?: { "scope": string; "subject": string; "decisions": Array<{ "round": number; "reason": string; "urls": Array; [key: string]: unknown }>; [key: string]: unknown }; [key: string]: unknown }; "integrityPolicy"?: { "version": 2; "copyPolicyHash": string; [key: string]: unknown }; "refinement"?: { "kind": "edited-render"; "imagePath": string; "imageHash": string; "contentHash": string; "width": number; "height": number; [key: string]: unknown }; "direction"?: { "aspectRatio": "1:1" | "3:4" | "2:3" | "9:16"; "factIndices": Array; [key: string]: unknown }; [key: string]: unknown } | null; "activity"?: Array<{ "id": string; "at": string; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "message": string; "details"?: string; [key: string]: unknown }>; "unreviewedSource"?: { "files": { "html": string; "css": string; "js": string }; "contentHash": string; "imageHash": string; [key: string]: unknown }; [key: string]: unknown }; "source_edit": { "finalizableSourceHash"?: string; "publication"?: { "state": "pending" | "published" | "blocked"; "message": string | null; [key: string]: unknown }; "rebuildRequired"?: boolean; "siteTask"?: { "id": string; "siteId": string; "state": "queued" | "planning" | "waiting_homepage" | "building" | "completed" | "needs_attention" | "cancelled"; "message": string }; "designEdit"?: { "version": 1; "sourceGenerationId": string; "sourceCandidateId": "astra-a" | "astra-b" | "astra-c" | "astra-d" | "openai" | "xai" | "google"; "sourceImageHash": string; "prompt": string; "imported"?: { "kind": "external-tool"; "tool": "imagegen"; "sourceId": string; "imageHash": string; "cost": "unknown-not-billable" }; "review"?: { "version": 1; "sourceImageHash": string; "imageHash": string; "status": "pass" | "fail" | "unverified"; "summary": string; "findings": Array; "receiptPath": string; "receiptHash": string } }; "id": string; "pageId": string; "parentId": string | null; "title": string; "prompt": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "createdAt": string; "updatedAt": string; "error": string | null; "files": { "html": string; "css": string; "js": string } | null; "quality": { "completion"?: { "version": 1; "reason": "checks_passed" | "attempt_limit" | "design_limit" | "deadline" | "checks_unavailable" | "provider_failure" | "saved_result"; "attempts": number; "maxAttempts": 3; [key: string]: unknown }; "pass": boolean; "scope": "generated" | "edited"; "contentHash": string; "referenceHash": string; "findings": Array<{ "code": string; "message": string; "severity": "blocker" | "major" | "minor"; "nodeId"?: string; "viewport"?: number; [key: string]: unknown }>; "ssim": number | null; "pixelError": number | null; "screenshots": Array<{ "width": number; "height": number; "path": string; [key: string]: unknown }>; "judged": boolean; "scores": { "composition": number; "typography": number; "imagery": number; "relevance": number; "responsiveness": number; [key: string]: unknown } | null; "logo"?: { "version": 1; "sourceHash": string; "status": "pass" | "fail" | "unverified"; "receiptHash": string; "path": string; [key: string]: unknown }; "copy"?: { "version": 1; "policyHash": string; "sourceHash": string; "receiptHash": string; "path": string; [key: string]: unknown }; [key: string]: unknown } | null; "referenceUrl": string | null; "previewUrl": string | null; "downloadUrl": string | null; "publishedUrl": string | null; "designs"?: { "analysisPolicy"?: "selected-v1"; "version": 1; "candidates": Array<{ "assessment"?: { "rank": number; "reason": string; "findings": Array; "audience": { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown }; "id": string; "label": string; "status": "queued" | "generating" | "ready" | "failed"; "imagePath": string | null; "imageHash": string | null; "width": number | null; "height": number | null; "error": string | null; "evaluation": { "eligible": boolean; "scores": { "creativity": number; "specificity": number; "composition": number; "typography": number; "usability": number; "factualIntegrity": number; [key: string]: unknown }; "reason": string; "findings": Array; "audience"?: { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown } | null; "imageUrl": string | null; "previousImageUrl"?: string | null; "previousImage"?: { "imagePath": string; "imageHash": string; "width": number; "height": number; "reason": string; [key: string]: unknown }; "inspection"?: { "accepted": boolean; "findings": Array; [key: string]: unknown }; "integrity"?: { "version": 1; "designHash": string; "policyHash": string; "logo": "pass" | "fail" | "unverified" | "not_applicable"; "copy": "pass" | "fail" | "unverified"; "receiptPath": string; "receiptHash": string; [key: string]: unknown }; [key: string]: unknown }>; "recommendedId": string | null; "selectedId": string | null; "selectionReason": string; "context": { "urls": Array; "sources": Array<{ "url": string; "title": string; [key: string]: unknown }>; "facts": Array<{ "text": string; "sourceUrls": Array; [key: string]: unknown }>; "warnings": Array; "branding"?: { "sourceUrl": string; "logoUrl": string | null; "colors": Array<{ "role": string; "value": string; [key: string]: unknown }>; "fonts": Array; "logoPath"?: string; "logoHash"?: string; "logoImageUrl"?: string; "logoCandidates"?: Array; "inlineLogoCandidates"?: Array<{ "sourceUrl": string; "selector": string; "hash": string; [key: string]: unknown }>; "colorEvidence"?: Array<{ "role": string; "value": string; "source": string; [key: string]: unknown }>; "warnings"?: Array; "logoAuthority"?: { "version": 1; "path": string; "hash": string; "canonicalSourceHash": string; [key: string]: unknown }; [key: string]: unknown }; "images"?: Array<{ "url": string; "sourceUrl": string; "alt"?: string; "selected"?: boolean; "path"?: string; "hash"?: string; "width"?: number; "height"?: number; [key: string]: unknown }>; "research"?: { "scope": string; "subject": string; "decisions": Array<{ "round": number; "reason": string; "urls": Array; [key: string]: unknown }>; [key: string]: unknown }; [key: string]: unknown }; "integrityPolicy"?: { "version": 2; "copyPolicyHash": string; [key: string]: unknown }; "refinement"?: { "kind": "edited-render"; "imagePath": string; "imageHash": string; "contentHash": string; "width": number; "height": number; [key: string]: unknown }; "direction"?: { "aspectRatio": "1:1" | "3:4" | "2:3" | "9:16"; "factIndices": Array; [key: string]: unknown }; [key: string]: unknown } | null; "activity"?: Array<{ "id": string; "at": string; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "message": string; "details"?: string; [key: string]: unknown }>; "unreviewedSource"?: { "files": { "html": string; "css": string; "js": string }; "contentHash": string; "imageHash": string; [key: string]: unknown }; [key: string]: unknown }; "generation_finalize": { "finalizableSourceHash"?: string; "publication"?: { "state": "pending" | "published" | "blocked"; "message": string | null; [key: string]: unknown }; "rebuildRequired"?: boolean; "siteTask"?: { "id": string; "siteId": string; "state": "queued" | "planning" | "waiting_homepage" | "building" | "completed" | "needs_attention" | "cancelled"; "message": string }; "designEdit"?: { "version": 1; "sourceGenerationId": string; "sourceCandidateId": "astra-a" | "astra-b" | "astra-c" | "astra-d" | "openai" | "xai" | "google"; "sourceImageHash": string; "prompt": string; "imported"?: { "kind": "external-tool"; "tool": "imagegen"; "sourceId": string; "imageHash": string; "cost": "unknown-not-billable" }; "review"?: { "version": 1; "sourceImageHash": string; "imageHash": string; "status": "pass" | "fail" | "unverified"; "summary": string; "findings": Array; "receiptPath": string; "receiptHash": string } }; "id": string; "pageId": string; "parentId": string | null; "title": string; "prompt": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "createdAt": string; "updatedAt": string; "error": string | null; "files": { "html": string; "css": string; "js": string } | null; "quality": { "completion"?: { "version": 1; "reason": "checks_passed" | "attempt_limit" | "design_limit" | "deadline" | "checks_unavailable" | "provider_failure" | "saved_result"; "attempts": number; "maxAttempts": 3; [key: string]: unknown }; "pass": boolean; "scope": "generated" | "edited"; "contentHash": string; "referenceHash": string; "findings": Array<{ "code": string; "message": string; "severity": "blocker" | "major" | "minor"; "nodeId"?: string; "viewport"?: number; [key: string]: unknown }>; "ssim": number | null; "pixelError": number | null; "screenshots": Array<{ "width": number; "height": number; "path": string; [key: string]: unknown }>; "judged": boolean; "scores": { "composition": number; "typography": number; "imagery": number; "relevance": number; "responsiveness": number; [key: string]: unknown } | null; "logo"?: { "version": 1; "sourceHash": string; "status": "pass" | "fail" | "unverified"; "receiptHash": string; "path": string; [key: string]: unknown }; "copy"?: { "version": 1; "policyHash": string; "sourceHash": string; "receiptHash": string; "path": string; [key: string]: unknown }; [key: string]: unknown } | null; "referenceUrl": string | null; "previewUrl": string | null; "downloadUrl": string | null; "publishedUrl": string | null; "designs"?: { "analysisPolicy"?: "selected-v1"; "version": 1; "candidates": Array<{ "assessment"?: { "rank": number; "reason": string; "findings": Array; "audience": { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown }; "id": string; "label": string; "status": "queued" | "generating" | "ready" | "failed"; "imagePath": string | null; "imageHash": string | null; "width": number | null; "height": number | null; "error": string | null; "evaluation": { "eligible": boolean; "scores": { "creativity": number; "specificity": number; "composition": number; "typography": number; "usability": number; "factualIntegrity": number; [key: string]: unknown }; "reason": string; "findings": Array; "audience"?: { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown } | null; "imageUrl": string | null; "previousImageUrl"?: string | null; "previousImage"?: { "imagePath": string; "imageHash": string; "width": number; "height": number; "reason": string; [key: string]: unknown }; "inspection"?: { "accepted": boolean; "findings": Array; [key: string]: unknown }; "integrity"?: { "version": 1; "designHash": string; "policyHash": string; "logo": "pass" | "fail" | "unverified" | "not_applicable"; "copy": "pass" | "fail" | "unverified"; "receiptPath": string; "receiptHash": string; [key: string]: unknown }; [key: string]: unknown }>; "recommendedId": string | null; "selectedId": string | null; "selectionReason": string; "context": { "urls": Array; "sources": Array<{ "url": string; "title": string; [key: string]: unknown }>; "facts": Array<{ "text": string; "sourceUrls": Array; [key: string]: unknown }>; "warnings": Array; "branding"?: { "sourceUrl": string; "logoUrl": string | null; "colors": Array<{ "role": string; "value": string; [key: string]: unknown }>; "fonts": Array; "logoPath"?: string; "logoHash"?: string; "logoImageUrl"?: string; "logoCandidates"?: Array; "inlineLogoCandidates"?: Array<{ "sourceUrl": string; "selector": string; "hash": string; [key: string]: unknown }>; "colorEvidence"?: Array<{ "role": string; "value": string; "source": string; [key: string]: unknown }>; "warnings"?: Array; "logoAuthority"?: { "version": 1; "path": string; "hash": string; "canonicalSourceHash": string; [key: string]: unknown }; [key: string]: unknown }; "images"?: Array<{ "url": string; "sourceUrl": string; "alt"?: string; "selected"?: boolean; "path"?: string; "hash"?: string; "width"?: number; "height"?: number; [key: string]: unknown }>; "research"?: { "scope": string; "subject": string; "decisions": Array<{ "round": number; "reason": string; "urls": Array; [key: string]: unknown }>; [key: string]: unknown }; [key: string]: unknown }; "integrityPolicy"?: { "version": 2; "copyPolicyHash": string; [key: string]: unknown }; "refinement"?: { "kind": "edited-render"; "imagePath": string; "imageHash": string; "contentHash": string; "width": number; "height": number; [key: string]: unknown }; "direction"?: { "aspectRatio": "1:1" | "3:4" | "2:3" | "9:16"; "factIndices": Array; [key: string]: unknown }; [key: string]: unknown } | null; "activity"?: Array<{ "id": string; "at": string; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "message": string; "details"?: string; [key: string]: unknown }>; "unreviewedSource"?: { "files": { "html": string; "css": string; "js": string }; "contentHash": string; "imageHash": string; [key: string]: unknown }; [key: string]: unknown }; "generation_continue": { "finalizableSourceHash"?: string; "publication"?: { "state": "pending" | "published" | "blocked"; "message": string | null; [key: string]: unknown }; "rebuildRequired"?: boolean; "siteTask"?: { "id": string; "siteId": string; "state": "queued" | "planning" | "waiting_homepage" | "building" | "completed" | "needs_attention" | "cancelled"; "message": string }; "designEdit"?: { "version": 1; "sourceGenerationId": string; "sourceCandidateId": "astra-a" | "astra-b" | "astra-c" | "astra-d" | "openai" | "xai" | "google"; "sourceImageHash": string; "prompt": string; "imported"?: { "kind": "external-tool"; "tool": "imagegen"; "sourceId": string; "imageHash": string; "cost": "unknown-not-billable" }; "review"?: { "version": 1; "sourceImageHash": string; "imageHash": string; "status": "pass" | "fail" | "unverified"; "summary": string; "findings": Array; "receiptPath": string; "receiptHash": string } }; "id": string; "pageId": string; "parentId": string | null; "title": string; "prompt": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "createdAt": string; "updatedAt": string; "error": string | null; "files": { "html": string; "css": string; "js": string } | null; "quality": { "completion"?: { "version": 1; "reason": "checks_passed" | "attempt_limit" | "design_limit" | "deadline" | "checks_unavailable" | "provider_failure" | "saved_result"; "attempts": number; "maxAttempts": 3; [key: string]: unknown }; "pass": boolean; "scope": "generated" | "edited"; "contentHash": string; "referenceHash": string; "findings": Array<{ "code": string; "message": string; "severity": "blocker" | "major" | "minor"; "nodeId"?: string; "viewport"?: number; [key: string]: unknown }>; "ssim": number | null; "pixelError": number | null; "screenshots": Array<{ "width": number; "height": number; "path": string; [key: string]: unknown }>; "judged": boolean; "scores": { "composition": number; "typography": number; "imagery": number; "relevance": number; "responsiveness": number; [key: string]: unknown } | null; "logo"?: { "version": 1; "sourceHash": string; "status": "pass" | "fail" | "unverified"; "receiptHash": string; "path": string; [key: string]: unknown }; "copy"?: { "version": 1; "policyHash": string; "sourceHash": string; "receiptHash": string; "path": string; [key: string]: unknown }; [key: string]: unknown } | null; "referenceUrl": string | null; "previewUrl": string | null; "downloadUrl": string | null; "publishedUrl": string | null; "designs"?: { "analysisPolicy"?: "selected-v1"; "version": 1; "candidates": Array<{ "assessment"?: { "rank": number; "reason": string; "findings": Array; "audience": { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown }; "id": string; "label": string; "status": "queued" | "generating" | "ready" | "failed"; "imagePath": string | null; "imageHash": string | null; "width": number | null; "height": number | null; "error": string | null; "evaluation": { "eligible": boolean; "scores": { "creativity": number; "specificity": number; "composition": number; "typography": number; "usability": number; "factualIntegrity": number; [key: string]: unknown }; "reason": string; "findings": Array; "audience"?: { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown } | null; "imageUrl": string | null; "previousImageUrl"?: string | null; "previousImage"?: { "imagePath": string; "imageHash": string; "width": number; "height": number; "reason": string; [key: string]: unknown }; "inspection"?: { "accepted": boolean; "findings": Array; [key: string]: unknown }; "integrity"?: { "version": 1; "designHash": string; "policyHash": string; "logo": "pass" | "fail" | "unverified" | "not_applicable"; "copy": "pass" | "fail" | "unverified"; "receiptPath": string; "receiptHash": string; [key: string]: unknown }; [key: string]: unknown }>; "recommendedId": string | null; "selectedId": string | null; "selectionReason": string; "context": { "urls": Array; "sources": Array<{ "url": string; "title": string; [key: string]: unknown }>; "facts": Array<{ "text": string; "sourceUrls": Array; [key: string]: unknown }>; "warnings": Array; "branding"?: { "sourceUrl": string; "logoUrl": string | null; "colors": Array<{ "role": string; "value": string; [key: string]: unknown }>; "fonts": Array; "logoPath"?: string; "logoHash"?: string; "logoImageUrl"?: string; "logoCandidates"?: Array; "inlineLogoCandidates"?: Array<{ "sourceUrl": string; "selector": string; "hash": string; [key: string]: unknown }>; "colorEvidence"?: Array<{ "role": string; "value": string; "source": string; [key: string]: unknown }>; "warnings"?: Array; "logoAuthority"?: { "version": 1; "path": string; "hash": string; "canonicalSourceHash": string; [key: string]: unknown }; [key: string]: unknown }; "images"?: Array<{ "url": string; "sourceUrl": string; "alt"?: string; "selected"?: boolean; "path"?: string; "hash"?: string; "width"?: number; "height"?: number; [key: string]: unknown }>; "research"?: { "scope": string; "subject": string; "decisions": Array<{ "round": number; "reason": string; "urls": Array; [key: string]: unknown }>; [key: string]: unknown }; [key: string]: unknown }; "integrityPolicy"?: { "version": 2; "copyPolicyHash": string; [key: string]: unknown }; "refinement"?: { "kind": "edited-render"; "imagePath": string; "imageHash": string; "contentHash": string; "width": number; "height": number; [key: string]: unknown }; "direction"?: { "aspectRatio": "1:1" | "3:4" | "2:3" | "9:16"; "factIndices": Array; [key: string]: unknown }; [key: string]: unknown } | null; "activity"?: Array<{ "id": string; "at": string; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "message": string; "details"?: string; [key: string]: unknown }>; "unreviewedSource"?: { "files": { "html": string; "css": string; "js": string }; "contentHash": string; "imageHash": string; [key: string]: unknown }; [key: string]: unknown }; "generation_cancel": { "finalizableSourceHash"?: string; "publication"?: { "state": "pending" | "published" | "blocked"; "message": string | null; [key: string]: unknown }; "rebuildRequired"?: boolean; "siteTask"?: { "id": string; "siteId": string; "state": "queued" | "planning" | "waiting_homepage" | "building" | "completed" | "needs_attention" | "cancelled"; "message": string }; "designEdit"?: { "version": 1; "sourceGenerationId": string; "sourceCandidateId": "astra-a" | "astra-b" | "astra-c" | "astra-d" | "openai" | "xai" | "google"; "sourceImageHash": string; "prompt": string; "imported"?: { "kind": "external-tool"; "tool": "imagegen"; "sourceId": string; "imageHash": string; "cost": "unknown-not-billable" }; "review"?: { "version": 1; "sourceImageHash": string; "imageHash": string; "status": "pass" | "fail" | "unverified"; "summary": string; "findings": Array; "receiptPath": string; "receiptHash": string } }; "id": string; "pageId": string; "parentId": string | null; "title": string; "prompt": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "createdAt": string; "updatedAt": string; "error": string | null; "files": { "html": string; "css": string; "js": string } | null; "quality": { "completion"?: { "version": 1; "reason": "checks_passed" | "attempt_limit" | "design_limit" | "deadline" | "checks_unavailable" | "provider_failure" | "saved_result"; "attempts": number; "maxAttempts": 3; [key: string]: unknown }; "pass": boolean; "scope": "generated" | "edited"; "contentHash": string; "referenceHash": string; "findings": Array<{ "code": string; "message": string; "severity": "blocker" | "major" | "minor"; "nodeId"?: string; "viewport"?: number; [key: string]: unknown }>; "ssim": number | null; "pixelError": number | null; "screenshots": Array<{ "width": number; "height": number; "path": string; [key: string]: unknown }>; "judged": boolean; "scores": { "composition": number; "typography": number; "imagery": number; "relevance": number; "responsiveness": number; [key: string]: unknown } | null; "logo"?: { "version": 1; "sourceHash": string; "status": "pass" | "fail" | "unverified"; "receiptHash": string; "path": string; [key: string]: unknown }; "copy"?: { "version": 1; "policyHash": string; "sourceHash": string; "receiptHash": string; "path": string; [key: string]: unknown }; [key: string]: unknown } | null; "referenceUrl": string | null; "previewUrl": string | null; "downloadUrl": string | null; "publishedUrl": string | null; "designs"?: { "analysisPolicy"?: "selected-v1"; "version": 1; "candidates": Array<{ "assessment"?: { "rank": number; "reason": string; "findings": Array; "audience": { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown }; "id": string; "label": string; "status": "queued" | "generating" | "ready" | "failed"; "imagePath": string | null; "imageHash": string | null; "width": number | null; "height": number | null; "error": string | null; "evaluation": { "eligible": boolean; "scores": { "creativity": number; "specificity": number; "composition": number; "typography": number; "usability": number; "factualIntegrity": number; [key: string]: unknown }; "reason": string; "findings": Array; "audience"?: { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown } | null; "imageUrl": string | null; "previousImageUrl"?: string | null; "previousImage"?: { "imagePath": string; "imageHash": string; "width": number; "height": number; "reason": string; [key: string]: unknown }; "inspection"?: { "accepted": boolean; "findings": Array; [key: string]: unknown }; "integrity"?: { "version": 1; "designHash": string; "policyHash": string; "logo": "pass" | "fail" | "unverified" | "not_applicable"; "copy": "pass" | "fail" | "unverified"; "receiptPath": string; "receiptHash": string; [key: string]: unknown }; [key: string]: unknown }>; "recommendedId": string | null; "selectedId": string | null; "selectionReason": string; "context": { "urls": Array; "sources": Array<{ "url": string; "title": string; [key: string]: unknown }>; "facts": Array<{ "text": string; "sourceUrls": Array; [key: string]: unknown }>; "warnings": Array; "branding"?: { "sourceUrl": string; "logoUrl": string | null; "colors": Array<{ "role": string; "value": string; [key: string]: unknown }>; "fonts": Array; "logoPath"?: string; "logoHash"?: string; "logoImageUrl"?: string; "logoCandidates"?: Array; "inlineLogoCandidates"?: Array<{ "sourceUrl": string; "selector": string; "hash": string; [key: string]: unknown }>; "colorEvidence"?: Array<{ "role": string; "value": string; "source": string; [key: string]: unknown }>; "warnings"?: Array; "logoAuthority"?: { "version": 1; "path": string; "hash": string; "canonicalSourceHash": string; [key: string]: unknown }; [key: string]: unknown }; "images"?: Array<{ "url": string; "sourceUrl": string; "alt"?: string; "selected"?: boolean; "path"?: string; "hash"?: string; "width"?: number; "height"?: number; [key: string]: unknown }>; "research"?: { "scope": string; "subject": string; "decisions": Array<{ "round": number; "reason": string; "urls": Array; [key: string]: unknown }>; [key: string]: unknown }; [key: string]: unknown }; "integrityPolicy"?: { "version": 2; "copyPolicyHash": string; [key: string]: unknown }; "refinement"?: { "kind": "edited-render"; "imagePath": string; "imageHash": string; "contentHash": string; "width": number; "height": number; [key: string]: unknown }; "direction"?: { "aspectRatio": "1:1" | "3:4" | "2:3" | "9:16"; "factIndices": Array; [key: string]: unknown }; [key: string]: unknown } | null; "activity"?: Array<{ "id": string; "at": string; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "message": string; "details"?: string; [key: string]: unknown }>; "unreviewedSource"?: { "files": { "html": string; "css": string; "js": string }; "contentHash": string; "imageHash": string; [key: string]: unknown }; [key: string]: unknown }; "hosting_get": { "publishedGenerationId": string | null; "publishedContentHash": string | null; "siteUrl": string; "published": boolean; "serving": boolean; "capacity": { "planId": "starter" | "studio" | "business" | null; "pendingPlanId"?: "starter" | "studio" | "business" | null; "hosting": { "state": "internal" | "paid" | "grace" | "suspended"; "serving": boolean; "paidUntil": string | null; "graceUntil": string | null; "graceReason": "cancelled" | "renewal_unpaid" | null; [key: string]: unknown }; "periodStart": string | null; "periodEnd": string | null; "limits": { "hostedPages": number; "customDomains": number; "seats": number; "formResponses": number; [key: string]: unknown } | null; "used": { "hostedPages": number; "customDomains": number; "seats": number; "formResponses": number; [key: string]: unknown }; "excess": { "hostedPages"?: number; "customDomains"?: number; "seats"?: number; "formResponses"?: number; [key: string]: unknown }; [key: string]: unknown }; "customDomainsConfigured": boolean; "domains": Array<{ "id": string; "pageId": string; "hostname": string; "state": "pending" | "active" | "error" | "detaching" | "detached"; "hostnameStatus": string | null; "certificateStatus": string | null; "dnsRecords": Array<{ "type": "CNAME" | "TXT"; "name": string; "value": string; "purpose": "routing" | "ownership" | "certificate"; [key: string]: unknown }>; "routingVerified": boolean; "checkedAt": string | null; "error": string | null; "createdAt": string; "updatedAt": string; "url": string | null; [key: string]: unknown }>; "formsConfigured": boolean; "formOrigin": string; [key: string]: unknown }; "page_publish": { "finalizableSourceHash"?: string; "publication"?: { "state": "pending" | "published" | "blocked"; "message": string | null; [key: string]: unknown }; "rebuildRequired"?: boolean; "siteTask"?: { "id": string; "siteId": string; "state": "queued" | "planning" | "waiting_homepage" | "building" | "completed" | "needs_attention" | "cancelled"; "message": string }; "designEdit"?: { "version": 1; "sourceGenerationId": string; "sourceCandidateId": "astra-a" | "astra-b" | "astra-c" | "astra-d" | "openai" | "xai" | "google"; "sourceImageHash": string; "prompt": string; "imported"?: { "kind": "external-tool"; "tool": "imagegen"; "sourceId": string; "imageHash": string; "cost": "unknown-not-billable" }; "review"?: { "version": 1; "sourceImageHash": string; "imageHash": string; "status": "pass" | "fail" | "unverified"; "summary": string; "findings": Array; "receiptPath": string; "receiptHash": string } }; "id": string; "pageId": string; "parentId": string | null; "title": string; "prompt": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "createdAt": string; "updatedAt": string; "error": string | null; "files": { "html": string; "css": string; "js": string } | null; "quality": { "completion"?: { "version": 1; "reason": "checks_passed" | "attempt_limit" | "design_limit" | "deadline" | "checks_unavailable" | "provider_failure" | "saved_result"; "attempts": number; "maxAttempts": 3; [key: string]: unknown }; "pass": boolean; "scope": "generated" | "edited"; "contentHash": string; "referenceHash": string; "findings": Array<{ "code": string; "message": string; "severity": "blocker" | "major" | "minor"; "nodeId"?: string; "viewport"?: number; [key: string]: unknown }>; "ssim": number | null; "pixelError": number | null; "screenshots": Array<{ "width": number; "height": number; "path": string; [key: string]: unknown }>; "judged": boolean; "scores": { "composition": number; "typography": number; "imagery": number; "relevance": number; "responsiveness": number; [key: string]: unknown } | null; "logo"?: { "version": 1; "sourceHash": string; "status": "pass" | "fail" | "unverified"; "receiptHash": string; "path": string; [key: string]: unknown }; "copy"?: { "version": 1; "policyHash": string; "sourceHash": string; "receiptHash": string; "path": string; [key: string]: unknown }; [key: string]: unknown } | null; "referenceUrl": string | null; "previewUrl": string | null; "downloadUrl": string | null; "publishedUrl": string | null; "designs"?: { "analysisPolicy"?: "selected-v1"; "version": 1; "candidates": Array<{ "assessment"?: { "rank": number; "reason": string; "findings": Array; "audience": { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown }; "id": string; "label": string; "status": "queued" | "generating" | "ready" | "failed"; "imagePath": string | null; "imageHash": string | null; "width": number | null; "height": number | null; "error": string | null; "evaluation": { "eligible": boolean; "scores": { "creativity": number; "specificity": number; "composition": number; "typography": number; "usability": number; "factualIntegrity": number; [key: string]: unknown }; "reason": string; "findings": Array; "audience"?: { "profile": string; "fit": "strong" | "mixed" | "weak" | "uncertain"; "reason": string; [key: string]: unknown }; [key: string]: unknown } | null; "imageUrl": string | null; "previousImageUrl"?: string | null; "previousImage"?: { "imagePath": string; "imageHash": string; "width": number; "height": number; "reason": string; [key: string]: unknown }; "inspection"?: { "accepted": boolean; "findings": Array; [key: string]: unknown }; "integrity"?: { "version": 1; "designHash": string; "policyHash": string; "logo": "pass" | "fail" | "unverified" | "not_applicable"; "copy": "pass" | "fail" | "unverified"; "receiptPath": string; "receiptHash": string; [key: string]: unknown }; [key: string]: unknown }>; "recommendedId": string | null; "selectedId": string | null; "selectionReason": string; "context": { "urls": Array; "sources": Array<{ "url": string; "title": string; [key: string]: unknown }>; "facts": Array<{ "text": string; "sourceUrls": Array; [key: string]: unknown }>; "warnings": Array; "branding"?: { "sourceUrl": string; "logoUrl": string | null; "colors": Array<{ "role": string; "value": string; [key: string]: unknown }>; "fonts": Array; "logoPath"?: string; "logoHash"?: string; "logoImageUrl"?: string; "logoCandidates"?: Array; "inlineLogoCandidates"?: Array<{ "sourceUrl": string; "selector": string; "hash": string; [key: string]: unknown }>; "colorEvidence"?: Array<{ "role": string; "value": string; "source": string; [key: string]: unknown }>; "warnings"?: Array; "logoAuthority"?: { "version": 1; "path": string; "hash": string; "canonicalSourceHash": string; [key: string]: unknown }; [key: string]: unknown }; "images"?: Array<{ "url": string; "sourceUrl": string; "alt"?: string; "selected"?: boolean; "path"?: string; "hash"?: string; "width"?: number; "height"?: number; [key: string]: unknown }>; "research"?: { "scope": string; "subject": string; "decisions": Array<{ "round": number; "reason": string; "urls": Array; [key: string]: unknown }>; [key: string]: unknown }; [key: string]: unknown }; "integrityPolicy"?: { "version": 2; "copyPolicyHash": string; [key: string]: unknown }; "refinement"?: { "kind": "edited-render"; "imagePath": string; "imageHash": string; "contentHash": string; "width": number; "height": number; [key: string]: unknown }; "direction"?: { "aspectRatio": "1:1" | "3:4" | "2:3" | "9:16"; "factIndices": Array; [key: string]: unknown }; [key: string]: unknown } | null; "activity"?: Array<{ "id": string; "at": string; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "message": string; "details"?: string; [key: string]: unknown }>; "unreviewedSource"?: { "files": { "html": string; "css": string; "js": string }; "contentHash": string; "imageHash": string; [key: string]: unknown }; [key: string]: unknown }; "page_unpublish": { "published": false; [key: string]: unknown }; "site_task_start": { "publication"?: { "state": "pending" | "published" | "blocked"; "message": string | null }; "id": string; "siteId": string; "homepagePageId": string; "homepageGenerationId": string; "prompt": string; "state": "queued" | "planning" | "waiting_homepage" | "building" | "completed" | "needs_attention" | "cancelled"; "message": string; "error": string | null; "createdAt": string; "updatedAt": string; "scopeVersion": number | null; "pages": Array<{ "pageId": string; "path": string; "name": string; "generationId": string | null; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled" | null }>; "activity": Array<{ "id": string; "at": string; "message": string }> }; "site_task_get": { "publication"?: { "state": "pending" | "published" | "blocked"; "message": string | null }; "id": string; "siteId": string; "homepagePageId": string; "homepageGenerationId": string; "prompt": string; "state": "queued" | "planning" | "waiting_homepage" | "building" | "completed" | "needs_attention" | "cancelled"; "message": string; "error": string | null; "createdAt": string; "updatedAt": string; "scopeVersion": number | null; "pages": Array<{ "pageId": string; "path": string; "name": string; "generationId": string | null; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled" | null }>; "activity": Array<{ "id": string; "at": string; "message": string }> }; "site_tasks_list": { "items": Array<{ "publication"?: { "state": "pending" | "published" | "blocked"; "message": string | null }; "id": string; "siteId": string; "homepagePageId": string; "homepageGenerationId": string; "prompt": string; "state": "queued" | "planning" | "waiting_homepage" | "building" | "completed" | "needs_attention" | "cancelled"; "message": string; "error": string | null; "createdAt": string; "updatedAt": string; "scopeVersion": number | null; "pages": Array<{ "pageId": string; "path": string; "name": string; "generationId": string | null; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled" | null }>; "activity": Array<{ "id": string; "at": string; "message": string }> }>; [key: string]: unknown }; "site_task_cancel": { "publication"?: { "state": "pending" | "published" | "blocked"; "message": string | null }; "id": string; "siteId": string; "homepagePageId": string; "homepageGenerationId": string; "prompt": string; "state": "queued" | "planning" | "waiting_homepage" | "building" | "completed" | "needs_attention" | "cancelled"; "message": string; "error": string | null; "createdAt": string; "updatedAt": string; "scopeVersion": number | null; "pages": Array<{ "pageId": string; "path": string; "name": string; "generationId": string | null; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled" | null }>; "activity": Array<{ "id": string; "at": string; "message": string }> }; "site_for_page": { "site": { "id": string; "workspaceId": string; "homepagePageId": string; "currentVersion": number; "approvedVersion": number | null; "current": { "siteId": string; "version": number; "hash": string; "origin": "homepage" | "proposal" | "user-edit" | "user-facts" | "verified-facts"; "document": { "title": string; "goal": string; "audience": string; "blogRequested": boolean; "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index"; "id": string; "navigation"?: false }>; "sharedFacts": { "version": number; "facts": Array<{ "key": string; "value": string | null; "authority": "user" | "verified"; "sourceUrls": Array; "changedInVersion": number; "userId": string | null }> }; "blog"?: { "version": 1; "indexPageId": string; "pageSize": number; "posts": Array<{ "postId": string; "pageId": string; "revision": number; "hash": string; "summaryHash": string }>; "indexes": Array<{ "pageId": string; "page": number }> } }; "createdAt": string }; "approved": { "siteId": string; "version": number; "hash": string; "origin": "homepage" | "proposal" | "user-edit" | "user-facts" | "verified-facts"; "document": { "title": string; "goal": string; "audience": string; "blogRequested": boolean; "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index"; "id": string; "navigation"?: false }>; "sharedFacts": { "version": number; "facts": Array<{ "key": string; "value": string | null; "authority": "user" | "verified"; "sourceUrls": Array; "changedInVersion": number; "userId": string | null }> }; "blog"?: { "version": 1; "indexPageId": string; "pageSize": number; "posts": Array<{ "postId": string; "pageId": string; "revision": number; "hash": string; "summaryHash": string }>; "indexes": Array<{ "pageId": string; "page": number }> } }; "createdAt": string } | null; [key: string]: unknown } | null; [key: string]: unknown }; "site_create": { "id": string; "workspaceId": string; "homepagePageId": string; "currentVersion": number; "approvedVersion": number | null; "current": { "siteId": string; "version": number; "hash": string; "origin": "homepage" | "proposal" | "user-edit" | "user-facts" | "verified-facts"; "document": { "title": string; "goal": string; "audience": string; "blogRequested": boolean; "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index"; "id": string; "navigation"?: false }>; "sharedFacts": { "version": number; "facts": Array<{ "key": string; "value": string | null; "authority": "user" | "verified"; "sourceUrls": Array; "changedInVersion": number; "userId": string | null }> }; "blog"?: { "version": 1; "indexPageId": string; "pageSize": number; "posts": Array<{ "postId": string; "pageId": string; "revision": number; "hash": string; "summaryHash": string }>; "indexes": Array<{ "pageId": string; "page": number }> } }; "createdAt": string }; "approved": { "siteId": string; "version": number; "hash": string; "origin": "homepage" | "proposal" | "user-edit" | "user-facts" | "verified-facts"; "document": { "title": string; "goal": string; "audience": string; "blogRequested": boolean; "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index"; "id": string; "navigation"?: false }>; "sharedFacts": { "version": number; "facts": Array<{ "key": string; "value": string | null; "authority": "user" | "verified"; "sourceUrls": Array; "changedInVersion": number; "userId": string | null }> }; "blog"?: { "version": 1; "indexPageId": string; "pageSize": number; "posts": Array<{ "postId": string; "pageId": string; "revision": number; "hash": string; "summaryHash": string }>; "indexes": Array<{ "pageId": string; "page": number }> } }; "createdAt": string } | null; [key: string]: unknown }; "site_get": { "id": string; "workspaceId": string; "homepagePageId": string; "currentVersion": number; "approvedVersion": number | null; "current": { "siteId": string; "version": number; "hash": string; "origin": "homepage" | "proposal" | "user-edit" | "user-facts" | "verified-facts"; "document": { "title": string; "goal": string; "audience": string; "blogRequested": boolean; "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index"; "id": string; "navigation"?: false }>; "sharedFacts": { "version": number; "facts": Array<{ "key": string; "value": string | null; "authority": "user" | "verified"; "sourceUrls": Array; "changedInVersion": number; "userId": string | null }> }; "blog"?: { "version": 1; "indexPageId": string; "pageSize": number; "posts": Array<{ "postId": string; "pageId": string; "revision": number; "hash": string; "summaryHash": string }>; "indexes": Array<{ "pageId": string; "page": number }> } }; "createdAt": string }; "approved": { "siteId": string; "version": number; "hash": string; "origin": "homepage" | "proposal" | "user-edit" | "user-facts" | "verified-facts"; "document": { "title": string; "goal": string; "audience": string; "blogRequested": boolean; "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index"; "id": string; "navigation"?: false }>; "sharedFacts": { "version": number; "facts": Array<{ "key": string; "value": string | null; "authority": "user" | "verified"; "sourceUrls": Array; "changedInVersion": number; "userId": string | null }> }; "blog"?: { "version": 1; "indexPageId": string; "pageSize": number; "posts": Array<{ "postId": string; "pageId": string; "revision": number; "hash": string; "summaryHash": string }>; "indexes": Array<{ "pageId": string; "page": number }> } }; "createdAt": string } | null; [key: string]: unknown }; "site_history": { "items": Array<{ "siteId": string; "version": number; "hash": string; "origin": "homepage" | "proposal" | "user-edit" | "user-facts" | "verified-facts"; "document": { "title": string; "goal": string; "audience": string; "blogRequested": boolean; "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index"; "id": string; "navigation"?: false }>; "sharedFacts": { "version": number; "facts": Array<{ "key": string; "value": string | null; "authority": "user" | "verified"; "sourceUrls": Array; "changedInVersion": number; "userId": string | null }> }; "blog"?: { "version": 1; "indexPageId": string; "pageSize": number; "posts": Array<{ "postId": string; "pageId": string; "revision": number; "hash": string; "summaryHash": string }>; "indexes": Array<{ "pageId": string; "page": number }> } }; "createdAt": string }>; [key: string]: unknown }; "site_edit": { "id": string; "workspaceId": string; "homepagePageId": string; "currentVersion": number; "approvedVersion": number | null; "current": { "siteId": string; "version": number; "hash": string; "origin": "homepage" | "proposal" | "user-edit" | "user-facts" | "verified-facts"; "document": { "title": string; "goal": string; "audience": string; "blogRequested": boolean; "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index"; "id": string; "navigation"?: false }>; "sharedFacts": { "version": number; "facts": Array<{ "key": string; "value": string | null; "authority": "user" | "verified"; "sourceUrls": Array; "changedInVersion": number; "userId": string | null }> }; "blog"?: { "version": 1; "indexPageId": string; "pageSize": number; "posts": Array<{ "postId": string; "pageId": string; "revision": number; "hash": string; "summaryHash": string }>; "indexes": Array<{ "pageId": string; "page": number }> } }; "createdAt": string }; "approved": { "siteId": string; "version": number; "hash": string; "origin": "homepage" | "proposal" | "user-edit" | "user-facts" | "verified-facts"; "document": { "title": string; "goal": string; "audience": string; "blogRequested": boolean; "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index"; "id": string; "navigation"?: false }>; "sharedFacts": { "version": number; "facts": Array<{ "key": string; "value": string | null; "authority": "user" | "verified"; "sourceUrls": Array; "changedInVersion": number; "userId": string | null }> }; "blog"?: { "version": 1; "indexPageId": string; "pageSize": number; "posts": Array<{ "postId": string; "pageId": string; "revision": number; "hash": string; "summaryHash": string }>; "indexes": Array<{ "pageId": string; "page": number }> } }; "createdAt": string } | null; [key: string]: unknown }; "site_facts": { "id": string; "workspaceId": string; "homepagePageId": string; "currentVersion": number; "approvedVersion": number | null; "current": { "siteId": string; "version": number; "hash": string; "origin": "homepage" | "proposal" | "user-edit" | "user-facts" | "verified-facts"; "document": { "title": string; "goal": string; "audience": string; "blogRequested": boolean; "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index"; "id": string; "navigation"?: false }>; "sharedFacts": { "version": number; "facts": Array<{ "key": string; "value": string | null; "authority": "user" | "verified"; "sourceUrls": Array; "changedInVersion": number; "userId": string | null }> }; "blog"?: { "version": 1; "indexPageId": string; "pageSize": number; "posts": Array<{ "postId": string; "pageId": string; "revision": number; "hash": string; "summaryHash": string }>; "indexes": Array<{ "pageId": string; "page": number }> } }; "createdAt": string }; "approved": { "siteId": string; "version": number; "hash": string; "origin": "homepage" | "proposal" | "user-edit" | "user-facts" | "verified-facts"; "document": { "title": string; "goal": string; "audience": string; "blogRequested": boolean; "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index"; "id": string; "navigation"?: false }>; "sharedFacts": { "version": number; "facts": Array<{ "key": string; "value": string | null; "authority": "user" | "verified"; "sourceUrls": Array; "changedInVersion": number; "userId": string | null }> }; "blog"?: { "version": 1; "indexPageId": string; "pageSize": number; "posts": Array<{ "postId": string; "pageId": string; "revision": number; "hash": string; "summaryHash": string }>; "indexes": Array<{ "pageId": string; "page": number }> } }; "createdAt": string } | null; [key: string]: unknown }; "site_approve": { "id": string; "workspaceId": string; "homepagePageId": string; "currentVersion": number; "approvedVersion": number | null; "current": { "siteId": string; "version": number; "hash": string; "origin": "homepage" | "proposal" | "user-edit" | "user-facts" | "verified-facts"; "document": { "title": string; "goal": string; "audience": string; "blogRequested": boolean; "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index"; "id": string; "navigation"?: false }>; "sharedFacts": { "version": number; "facts": Array<{ "key": string; "value": string | null; "authority": "user" | "verified"; "sourceUrls": Array; "changedInVersion": number; "userId": string | null }> }; "blog"?: { "version": 1; "indexPageId": string; "pageSize": number; "posts": Array<{ "postId": string; "pageId": string; "revision": number; "hash": string; "summaryHash": string }>; "indexes": Array<{ "pageId": string; "page": number }> } }; "createdAt": string }; "approved": { "siteId": string; "version": number; "hash": string; "origin": "homepage" | "proposal" | "user-edit" | "user-facts" | "verified-facts"; "document": { "title": string; "goal": string; "audience": string; "blogRequested": boolean; "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index"; "id": string; "navigation"?: false }>; "sharedFacts": { "version": number; "facts": Array<{ "key": string; "value": string | null; "authority": "user" | "verified"; "sourceUrls": Array; "changedInVersion": number; "userId": string | null }> }; "blog"?: { "version": 1; "indexPageId": string; "pageSize": number; "posts": Array<{ "postId": string; "pageId": string; "revision": number; "hash": string; "summaryHash": string }>; "indexes": Array<{ "pageId": string; "page": number }> } }; "createdAt": string } | null; [key: string]: unknown }; "site_propose": { "id": string; "siteId": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "createdAt": string; "updatedAt": string; "error": string | null; "activity": Array<{ "id": string; "at": string; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "message": string; "details"?: string; [key: string]: unknown }>; "result": { "proposal": { "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index" }> }; "application": { "status": "applied"; "version": number; "hash": string; [key: string]: unknown } | { "status": "conflict"; [key: string]: unknown }; [key: string]: unknown } | null; [key: string]: unknown }; "site_proposals": { "items": Array<{ "id": string; "siteId": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "createdAt": string; "updatedAt": string; "error": string | null; "activity": Array<{ "id": string; "at": string; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "message": string; "details"?: string; [key: string]: unknown }>; "result": { "proposal": { "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index" }> }; "application": { "status": "applied"; "version": number; "hash": string; [key: string]: unknown } | { "status": "conflict"; [key: string]: unknown }; [key: string]: unknown } | null; [key: string]: unknown }>; [key: string]: unknown }; "site_job_get": { "id": string; "siteId": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "createdAt": string; "updatedAt": string; "error": string | null; "activity": Array<{ "id": string; "at": string; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "message": string; "details"?: string; [key: string]: unknown }>; "result": { "proposal": { "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index" }> }; "application": { "status": "applied"; "version": number; "hash": string; [key: string]: unknown } | { "status": "conflict"; [key: string]: unknown }; [key: string]: unknown } | null; [key: string]: unknown }; "site_job_cancel": { "id": string; "siteId": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "createdAt": string; "updatedAt": string; "error": string | null; "activity": Array<{ "id": string; "at": string; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "message": string; "details"?: string; [key: string]: unknown }>; "result": { "proposal": { "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index" }> }; "application": { "status": "applied"; "version": number; "hash": string; [key: string]: unknown } | { "status": "conflict"; [key: string]: unknown }; [key: string]: unknown } | null; [key: string]: unknown }; "site_proposal_apply": { "id": string; "siteId": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "createdAt": string; "updatedAt": string; "error": string | null; "activity": Array<{ "id": string; "at": string; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "message": string; "details"?: string; [key: string]: unknown }>; "result": { "proposal": { "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index" }> }; "application": { "status": "applied"; "version": number; "hash": string; [key: string]: unknown } | { "status": "conflict"; [key: string]: unknown }; [key: string]: unknown } | null; [key: string]: unknown }; "site_posts": { "items": Array<{ "id": string; "siteId": string; "current": { "version": 1; "postId": string; "siteId": string; "workspaceId": string; "revision": number; "content": { "title": string; "description": string; "slug": string; "author": string | null; "date": string | null; "body": Array<{ "type": "paragraph"; "text": string } | { "type": "heading"; "level": 2 | 3; "text": string } | { "type": "quote"; "text": string; "attribution": string | null } | { "type": "list"; "ordered": boolean; "items": Array } | { "type": "link"; "text": string; "url": string }> }; "authorId": string | null; "createdAt": string; "contentHash": string; "summaryHash": string; "hash": string }; "selectedRevision": number | null; "liveRevision": number | null }>; "nextCursor": string | null }; "site_post_get": { "id": string; "siteId": string; "current": { "version": 1; "postId": string; "siteId": string; "workspaceId": string; "revision": number; "content": { "title": string; "description": string; "slug": string; "author": string | null; "date": string | null; "body": Array<{ "type": "paragraph"; "text": string } | { "type": "heading"; "level": 2 | 3; "text": string } | { "type": "quote"; "text": string; "attribution": string | null } | { "type": "list"; "ordered": boolean; "items": Array } | { "type": "link"; "text": string; "url": string }> }; "authorId": string | null; "createdAt": string; "contentHash": string; "summaryHash": string; "hash": string }; "selectedRevision": number | null; "liveRevision": number | null }; "site_post_history": { "items": Array<{ "version": 1; "postId": string; "siteId": string; "workspaceId": string; "revision": number; "content": { "title": string; "description": string; "slug": string; "author": string | null; "date": string | null; "body": Array<{ "type": "paragraph"; "text": string } | { "type": "heading"; "level": 2 | 3; "text": string } | { "type": "quote"; "text": string; "attribution": string | null } | { "type": "list"; "ordered": boolean; "items": Array } | { "type": "link"; "text": string; "url": string }> }; "authorId": string | null; "createdAt": string; "contentHash": string; "summaryHash": string; "hash": string }>; "nextBeforeRevision": number | null }; "site_post_create": { "id": string; "siteId": string; "current": { "version": 1; "postId": string; "siteId": string; "workspaceId": string; "revision": number; "content": { "title": string; "description": string; "slug": string; "author": string | null; "date": string | null; "body": Array<{ "type": "paragraph"; "text": string } | { "type": "heading"; "level": 2 | 3; "text": string } | { "type": "quote"; "text": string; "attribution": string | null } | { "type": "list"; "ordered": boolean; "items": Array } | { "type": "link"; "text": string; "url": string }> }; "authorId": string | null; "createdAt": string; "contentHash": string; "summaryHash": string; "hash": string }; "selectedRevision": number | null; "liveRevision": number | null }; "site_post_edit": { "id": string; "siteId": string; "current": { "version": 1; "postId": string; "siteId": string; "workspaceId": string; "revision": number; "content": { "title": string; "description": string; "slug": string; "author": string | null; "date": string | null; "body": Array<{ "type": "paragraph"; "text": string } | { "type": "heading"; "level": 2 | 3; "text": string } | { "type": "quote"; "text": string; "attribution": string | null } | { "type": "list"; "ordered": boolean; "items": Array } | { "type": "link"; "text": string; "url": string }> }; "authorId": string | null; "createdAt": string; "contentHash": string; "summaryHash": string; "hash": string }; "selectedRevision": number | null; "liveRevision": number | null }; "site_posts_select": { "id": string; "workspaceId": string; "homepagePageId": string; "currentVersion": number; "approvedVersion": number | null; "current": { "siteId": string; "version": number; "hash": string; "origin": "homepage" | "proposal" | "user-edit" | "user-facts" | "verified-facts"; "document": { "title": string; "goal": string; "audience": string; "blogRequested": boolean; "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index"; "id": string; "navigation"?: false }>; "sharedFacts": { "version": number; "facts": Array<{ "key": string; "value": string | null; "authority": "user" | "verified"; "sourceUrls": Array; "changedInVersion": number; "userId": string | null }> }; "blog"?: { "version": 1; "indexPageId": string; "pageSize": number; "posts": Array<{ "postId": string; "pageId": string; "revision": number; "hash": string; "summaryHash": string }>; "indexes": Array<{ "pageId": string; "page": number }> } }; "createdAt": string }; "approved": { "siteId": string; "version": number; "hash": string; "origin": "homepage" | "proposal" | "user-edit" | "user-facts" | "verified-facts"; "document": { "title": string; "goal": string; "audience": string; "blogRequested": boolean; "pages": Array<{ "name": string; "path": unknown; "purpose": string; "kind": "page" | "blog-index"; "id": string; "navigation"?: false }>; "sharedFacts": { "version": number; "facts": Array<{ "key": string; "value": string | null; "authority": "user" | "verified"; "sourceUrls": Array; "changedInVersion": number; "userId": string | null }> }; "blog"?: { "version": 1; "indexPageId": string; "pageSize": number; "posts": Array<{ "postId": string; "pageId": string; "revision": number; "hash": string; "summaryHash": string }>; "indexes": Array<{ "pageId": string; "page": number }> } }; "createdAt": string } | null }; "site_build": { "id": string; "siteId": string; "scopeVersion": number; "scopeHash": string; "createdAt": string; "revision"?: { "scope": "local" | "global" | "pages"; "prompt": string; "continueSource"?: true; [key: string]: unknown }; "items": Array<{ "pageId": string; "path": string; "name": string; "generationId": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "updatedAt": string; "error": string | null; "contentHash": string | null; [key: string]: unknown }>; [key: string]: unknown }; "site_revision_options": { "siteId": string; "scope": "local" | "global" | "pages"; "binding": { "expectedVersion": number; "expectedHash": string; "sharedFactsHash": string; "homepageGenerationId": string; "homepageContentHash": string; "homepageImageHash": string }; "pages": Array<{ "pageId": string; "name": string; "path": unknown; "canStartNew": boolean; "active": boolean; "unavailableReason": string | null; "versions": Array<{ "generationId": string; "contentHash": string; "title": string; "createdAt": string; "state": "ready" | "needs_review" }> }> }; "site_revise": { "id": string; "siteId": string; "scopeVersion": number; "scopeHash": string; "createdAt": string; "revision"?: { "scope": "local" | "global" | "pages"; "prompt": string; "continueSource"?: true; [key: string]: unknown }; "items": Array<{ "pageId": string; "path": string; "name": string; "generationId": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "updatedAt": string; "error": string | null; "contentHash": string | null; [key: string]: unknown }>; [key: string]: unknown }; "site_builds": { "items": Array<{ "id": string; "siteId": string; "scopeVersion": number; "scopeHash": string; "createdAt": string; "revision"?: { "scope": "local" | "global" | "pages"; "prompt": string; "continueSource"?: true; [key: string]: unknown }; "items": Array<{ "pageId": string; "path": string; "name": string; "generationId": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "updatedAt": string; "error": string | null; "contentHash": string | null; [key: string]: unknown }>; [key: string]: unknown }>; [key: string]: unknown }; "site_build_get": { "id": string; "siteId": string; "scopeVersion": number; "scopeHash": string; "createdAt": string; "revision"?: { "scope": "local" | "global" | "pages"; "prompt": string; "continueSource"?: true; [key: string]: unknown }; "items": Array<{ "pageId": string; "path": string; "name": string; "generationId": string; "state": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "stage": "queued" | "researching" | "designing" | "comparing" | "inspecting" | "building" | "checking" | "refining" | "finished"; "updatedAt": string; "error": string | null; "contentHash": string | null; [key: string]: unknown }>; [key: string]: unknown }; "billing_summary": { "capacity"?: { "planId": "starter" | "studio" | "business" | null; "pendingPlanId"?: "starter" | "studio" | "business" | null; "hosting": { "state": "internal" | "paid" | "grace" | "suspended"; "serving": boolean; "paidUntil": string | null; "graceUntil": string | null; "graceReason": "cancelled" | "renewal_unpaid" | null; [key: string]: unknown }; "periodStart": string | null; "periodEnd": string | null; "limits": { "hostedPages": number; "customDomains": number; "seats": number; "formResponses": number; [key: string]: unknown } | null; "used": { "hostedPages": number; "customDomains": number; "seats": number; "formResponses": number; [key: string]: unknown }; "excess": { "hostedPages"?: number; "customDomains"?: number; "seats"?: number; "formResponses"?: number; [key: string]: unknown }; [key: string]: unknown }; "workspaceId": string; "billingMode": "internal" | "credits"; "canManage": boolean; "configured": boolean; "catalog": { "id": string; "plans": Array<{ "id": "starter" | "studio" | "business"; "name": string; "monthlyCents": number; "credits": string; "creditMicros": string; "limits": { "hostedPages": number; "customDomains": number; "seats": number; "formResponses": number; "concurrentJobs": number; [key: string]: unknown }; [key: string]: unknown }>; "topups": Array<{ "id": string; "name": string; "cents": number; "credits": string; "creditMicros": string; [key: string]: unknown }>; [key: string]: unknown }; "wallet": { "availableMicros": string; "reservedMicros": string; "spentMicros": string; "unit": "credit_micro"; "creditMicrosPerCredit": "1000000"; [key: string]: unknown }; "entitlement": { "planId": "starter" | "studio" | "business" | null; "status": string; "paidUntil": string | null; "blockedReview": boolean; [key: string]: unknown }; "subscription"?: { "id": string; "cancelAtPeriodEnd": boolean; "scheduledPlanId"?: "starter" | "studio" | "business" | null; "hostingGraceUntil"?: string | null; [key: string]: unknown }; "reviews": Array<{ "id": string; "message": string; "createdAt": string; [key: string]: unknown }>; "receipts": Array<{ "id": string; "generationId"?: string; "label": string; "state": "active" | "pending_cost" | "settled" | "released" | "reimbursed"; "fundingMode"?: "automatic" | "capped"; "chargedMicros": string | null; "maximumMicros"?: string; "createdAt": string; [key: string]: unknown }>; "nextCursor"?: string | null; [key: string]: unknown }; "billing_receipt": { "generationId": string; "label": string; "policyId": string; "state": "active" | "pending_cost" | "settled" | "released" | "reimbursed"; "outcome": "queued" | "running" | "ready" | "needs_review" | "failed" | "cancelled"; "fundingMode"?: "automatic" | "capped"; "maximumMicros": string; "chargedMicros": string | null; "reimbursedMicros": string; "steps": Array<{ "id": string; "label": string; "state": "authorized" | "submitted" | "accepted" | "settled" | "not_submitted" | "unresolved"; "chargedMicros": string | null; "description"?: string; [key: string]: unknown }>; [key: string]: unknown }; "billing_quote": { "workspaceId": string; "billingMode": "internal" | "credits"; "policyId": string | null; "estimate": { "lowMicros": string; "highMicros": string; [key: string]: unknown } | null; "reason"?: string; "availableMicros": string; "maximumAllowedMicros"?: string; "expiresAt"?: string; [key: string]: unknown }; "site_release_options": { "siteId": string; "binding": { "expectedVersion": number; "expectedHash": string; "sharedFactsHash": string; "baseline": { "generationId": string; "contentHash": string; "imageHash": string; "brandHash": string } }; "pages": Array<{ "pageId": string; "path": unknown; "name": string; "versions": Array<{ "generationId": string; "title": string; "createdAt": string; "contentHash": string }> }> }; "site_releases": { "items": Array<{ "version": 1; "id": string; "siteId": string; "workspaceId": string; "scopeVersion": number; "scopeHash": string; "sharedFactsHash": string; "baseline": { "generationId": string; "contentHash": string; "imageHash": string; "brandHash": string }; "pages": Array<{ "pageId": string; "generationId": string; "path": unknown; "name": string; "sourceHash": string; "provenance": { "version": 1; "siteId": string; "pageId": string; "path": unknown; "scopeVersion": number; "scopeHash": string; "sharedFactsHash": string; "baseline": { "generationId": string; "contentHash": string; "imageHash": string; "brandHash": string }; "workHash": string; "parentGenerationId": string | null; "parentContentHash": string | null; "contentHash": string } | null; "compatibility"?: { "version": 1; "siteId": string; "pageId": string; "contentHash": string; "workHash": string; "previousScopeVersion": number; "previousScopeHash": string; "currentScopeVersion": number; "currentScopeHash": string; "sharedFactsHash": string; "baselineHash": string; "pageHash": string; "sharedScopeHash": string; "contentDependenciesHash"?: string; "hash": string } }>; "hash": string }>; "nextCursor": string | null; [key: string]: unknown }; "site_release_create": { "version": 1; "id": string; "siteId": string; "workspaceId": string; "scopeVersion": number; "scopeHash": string; "sharedFactsHash": string; "baseline": { "generationId": string; "contentHash": string; "imageHash": string; "brandHash": string }; "pages": Array<{ "pageId": string; "generationId": string; "path": unknown; "name": string; "sourceHash": string; "provenance": { "version": 1; "siteId": string; "pageId": string; "path": unknown; "scopeVersion": number; "scopeHash": string; "sharedFactsHash": string; "baseline": { "generationId": string; "contentHash": string; "imageHash": string; "brandHash": string }; "workHash": string; "parentGenerationId": string | null; "parentContentHash": string | null; "contentHash": string } | null; "compatibility"?: { "version": 1; "siteId": string; "pageId": string; "contentHash": string; "workHash": string; "previousScopeVersion": number; "previousScopeHash": string; "currentScopeVersion": number; "currentScopeHash": string; "sharedFactsHash": string; "baselineHash": string; "pageHash": string; "sharedScopeHash": string; "contentDependenciesHash"?: string; "hash": string } }>; "hash": string }; "site_release_get": { "version": 1; "id": string; "siteId": string; "workspaceId": string; "scopeVersion": number; "scopeHash": string; "sharedFactsHash": string; "baseline": { "generationId": string; "contentHash": string; "imageHash": string; "brandHash": string }; "pages": Array<{ "pageId": string; "generationId": string; "path": unknown; "name": string; "sourceHash": string; "provenance": { "version": 1; "siteId": string; "pageId": string; "path": unknown; "scopeVersion": number; "scopeHash": string; "sharedFactsHash": string; "baseline": { "generationId": string; "contentHash": string; "imageHash": string; "brandHash": string }; "workHash": string; "parentGenerationId": string | null; "parentContentHash": string | null; "contentHash": string } | null; "compatibility"?: { "version": 1; "siteId": string; "pageId": string; "contentHash": string; "workHash": string; "previousScopeVersion": number; "previousScopeHash": string; "currentScopeVersion": number; "currentScopeHash": string; "sharedFactsHash": string; "baselineHash": string; "pageHash": string; "sharedScopeHash": string; "contentDependenciesHash"?: string; "hash": string } }>; "hash": string }; "site_release_download": Response; "site_publication_get": { "siteId": string; "version": number; "releaseId": string | null }; "site_publish": { "siteId": string; "version": number; "releaseId": string | null }; "billing_checkout": { "id": string; "url": string; [key: string]: unknown }; "billing_portal": { "id": string; "url": string; [key: string]: unknown }; "billing_cancel": { "subscriptionId": string; "cancelAtPeriodEnd": true; [key: string]: unknown }; "billing_change_preview": { "id": string; "subscriptionId": string; "planId": "starter" | "studio" | "business"; "currency": "usd"; "amountDueCents": number; "creditDeltaMicros": string; "expiresAt": string; "prorationDate": number; [key: string]: unknown }; "billing_change_plan": { "subscriptionId": string; "planId": "starter" | "studio" | "business"; "effective": "after_payment" | "next_renewal"; "scheduleId"?: string; [key: string]: unknown }; "webhooks_list": { "items": Array<{ "id": string; "revision": number; "destination": string; "events": Array<"generation.completed" | "generation.failed" | "generation.cancelled" | "page.published" | "page.unpublished" | "site.published" | "site.unpublished" | "form.submitted">; "enabled": boolean; "secretConfigured": true; "createdAt": string; "updatedAt": string }> }; "webhook_get": { "id": string; "revision": number; "destination": string; "events": Array<"generation.completed" | "generation.failed" | "generation.cancelled" | "page.published" | "page.unpublished" | "site.published" | "site.unpublished" | "form.submitted">; "enabled": boolean; "secretConfigured": true; "createdAt": string; "updatedAt": string }; "webhook_create": { "id": string; "revision": number; "destination": string; "events": Array<"generation.completed" | "generation.failed" | "generation.cancelled" | "page.published" | "page.unpublished" | "site.published" | "site.unpublished" | "form.submitted">; "enabled": boolean; "secretConfigured": true; "createdAt": string; "updatedAt": string }; "webhook_update": { "id": string; "revision": number; "destination": string; "events": Array<"generation.completed" | "generation.failed" | "generation.cancelled" | "page.published" | "page.unpublished" | "site.published" | "site.unpublished" | "form.submitted">; "enabled": boolean; "secretConfigured": true; "createdAt": string; "updatedAt": string }; "webhook_deliveries": { "items": Array<{ "id": string; "eventId": string; "type": "generation.completed" | "generation.failed" | "generation.cancelled" | "page.published" | "page.unpublished" | "site.published" | "site.unpublished" | "form.submitted"; "endpointRevision": number; "state": "pending" | "delivering" | "delivered" | "failed" | "cancelled"; "attempts": number; "cycleAttempts": number; "createdAt": string; "nextAttemptAt": string | null; "completedAt": string | null; "lastStatus": number | null; "error": "network" | "timeout" | "redirect" | "http" | "invalid_destination" | "invalid_payload" | "secret_unavailable" | "lease_expired" | "disabled" | null }>; "nextCursor": string | null }; "webhook_retry": { "id": string; "eventId": string; "type": "generation.completed" | "generation.failed" | "generation.cancelled" | "page.published" | "page.unpublished" | "site.published" | "site.unpublished" | "form.submitted"; "endpointRevision": number; "state": "pending" | "delivering" | "delivered" | "failed" | "cancelled"; "attempts": number; "cycleAttempts": number; "createdAt": string; "nextAttemptAt": string | null; "completedAt": string | null; "lastStatus": number | null; "error": "network" | "timeout" | "redirect" | "http" | "invalid_destination" | "invalid_payload" | "secret_unavailable" | "lease_expired" | "disabled" | null }; "domain_connect": { "id": string; "pageId": string; "hostname": string; "state": "pending" | "active" | "error" | "detaching" | "detached"; "hostnameStatus": string | null; "certificateStatus": string | null; "dnsRecords": Array<{ "type": "CNAME" | "TXT"; "name": string; "value": string; "purpose": "routing" | "ownership" | "certificate"; [key: string]: unknown }>; "routingVerified": boolean; "checkedAt": string | null; "error": string | null; "createdAt": string; "updatedAt": string; "url": string | null; [key: string]: unknown }; "domain_check": { "id": string; "pageId": string; "hostname": string; "state": "pending" | "active" | "error" | "detaching" | "detached"; "hostnameStatus": string | null; "certificateStatus": string | null; "dnsRecords": Array<{ "type": "CNAME" | "TXT"; "name": string; "value": string; "purpose": "routing" | "ownership" | "certificate"; [key: string]: unknown }>; "routingVerified": boolean; "checkedAt": string | null; "error": string | null; "createdAt": string; "updatedAt": string; "url": string | null; [key: string]: unknown }; "domain_disconnect": { "id": string; "pageId": string; "hostname": string; "state": "pending" | "active" | "error" | "detaching" | "detached"; "hostnameStatus": string | null; "certificateStatus": string | null; "dnsRecords": Array<{ "type": "CNAME" | "TXT"; "name": string; "value": string; "purpose": "routing" | "ownership" | "certificate"; [key: string]: unknown }>; "routingVerified": boolean; "checkedAt": string | null; "error": string | null; "createdAt": string; "updatedAt": string; "url": string | null; [key: string]: unknown }; "forms_list": { "items": Array<{ "name": string; "enabled": boolean; "nativeFormId": string | null; "nativeSourceHash": string | null; "fields": Array<{ "name": string; "label": string; "type": "text" | "email" | "tel" | "textarea" | "select" | "checkbox" | "number" | "url" | "date"; "required": boolean; "placeholder": string; "options": Array; "maxLength": number }>; "submitLabel": string; "successMessage": string; "id": string; "pageId": string; "revision": number; "destination": { "url": string; "fieldMapping": { [key: string]: string }; "secretConfigured": boolean; [key: string]: unknown } | null; "createdAt": string; "updatedAt": string }>; [key: string]: unknown }; "form_create": { "name": string; "enabled": boolean; "nativeFormId": string | null; "nativeSourceHash": string | null; "fields": Array<{ "name": string; "label": string; "type": "text" | "email" | "tel" | "textarea" | "select" | "checkbox" | "number" | "url" | "date"; "required": boolean; "placeholder": string; "options": Array; "maxLength": number }>; "submitLabel": string; "successMessage": string; "id": string; "pageId": string; "revision": number; "destination": { "url": string; "fieldMapping": { [key: string]: string }; "secretConfigured": boolean; [key: string]: unknown } | null; "createdAt": string; "updatedAt": string }; "form_update": { "name": string; "enabled": boolean; "nativeFormId": string | null; "nativeSourceHash": string | null; "fields": Array<{ "name": string; "label": string; "type": "text" | "email" | "tel" | "textarea" | "select" | "checkbox" | "number" | "url" | "date"; "required": boolean; "placeholder": string; "options": Array; "maxLength": number }>; "submitLabel": string; "successMessage": string; "id": string; "pageId": string; "revision": number; "destination": { "url": string; "fieldMapping": { [key: string]: string }; "secretConfigured": boolean; [key: string]: unknown } | null; "createdAt": string; "updatedAt": string }; "form_copy": { "name": string; "enabled": boolean; "nativeFormId": string | null; "nativeSourceHash": string | null; "fields": Array<{ "name": string; "label": string; "type": "text" | "email" | "tel" | "textarea" | "select" | "checkbox" | "number" | "url" | "date"; "required": boolean; "placeholder": string; "options": Array; "maxLength": number }>; "submitLabel": string; "successMessage": string; "id": string; "pageId": string; "revision": number; "destination": { "url": string; "fieldMapping": { [key: string]: string }; "secretConfigured": boolean; [key: string]: unknown } | null; "createdAt": string; "updatedAt": string }; "leads_list": { "items": Array<{ "id": string; "receivedAt": string; "test": boolean; "pageId": string; "formId": string; "formRevision": number; "values": { [key: string]: string | boolean }; "delivery": { "state": "pending" | "delivering" | "delivered" | "failed"; "attempts": number; "nextAttemptAt": string | null; "error": string | null; "history": Array<{ "number": number; "startedAt": string; "finishedAt": string | null; "status": number | null; "error": string | null; [key: string]: unknown }>; [key: string]: unknown } | null; [key: string]: unknown }>; [key: string]: unknown }; "form_test": { "id": string; "receivedAt": string; "test": boolean; [key: string]: unknown }; "lead_retry": null; "reference_read": Response; "design_image_read": Response; "brand_logo_read": Response; "download_read": Response; "keys_list": { "items": Array<{ "id": string; "name": string; "prefix": string; "scopes": Array; "created_at": string; "expires_at": string; "last_used_at": string | null; "revoked_at": string | null; [key: string]: unknown }>; [key: string]: unknown }; "key_create": { "id": string; "token": string; [key: string]: unknown }; "key_revoke": null; "members_list": { "items": Array<{ "id": string; "email": string; "name": string; "role": "owner" | "admin" | "editor" | "viewer"; "created_at": string; [key: string]: unknown }>; [key: string]: unknown }; "member_update": null; "member_remove": null; "invites_list": { "items": Array<{ "id": string; "email": string; "role": "owner" | "admin" | "editor" | "viewer"; "expires_at": string; "accepted_at": string | null; "revoked_at": string | null; "created_at": string; [key: string]: unknown }>; [key: string]: unknown }; "invite_create": { "id": string; [key: string]: unknown }; "invite_revoke": null } const operations = { "identity_get": { "method": "GET", "path": "/api/v1/identity", "binary": false }, "generations_list": { "method": "GET", "path": "/api/v1/generations", "binary": false }, "generation_get": { "method": "GET", "path": "/api/v1/generations/:id", "binary": false }, "generation_request_get": { "method": "GET", "path": "/api/v1/generation-requests/:requestKey", "binary": false }, "artifact_manifest": { "method": "GET", "path": "/api/v1/generations/:id/artifact-manifest", "binary": false }, "source_get": { "method": "GET", "path": "/api/v1/generations/:id/source", "binary": false }, "quality_get": { "method": "GET", "path": "/api/v1/generations/:id/quality", "binary": false }, "generation_create": { "method": "POST", "path": "/api/v1/generations", "binary": false }, "designs_review": { "method": "POST", "path": "/api/v1/generations/:id/review-designs", "binary": false }, "design_edit": { "method": "POST", "path": "/api/v1/generations/:id/edit-design", "binary": false }, "design_select": { "method": "POST", "path": "/api/v1/generations/:id/select-design", "binary": false }, "source_edit": { "method": "POST", "path": "/api/v1/generations/:id/edit", "binary": false }, "generation_finalize": { "method": "POST", "path": "/api/v1/generations/:id/finalize", "binary": false }, "generation_continue": { "method": "POST", "path": "/api/v1/generations/:id/continue", "binary": false }, "generation_cancel": { "method": "POST", "path": "/api/v1/generations/:id/cancel", "binary": false }, "hosting_get": { "method": "GET", "path": "/api/v1/pages/:pageId/hosting", "binary": false }, "page_publish": { "method": "POST", "path": "/api/v1/generations/:id/publish", "binary": false }, "page_unpublish": { "method": "POST", "path": "/api/v1/pages/:pageId/unpublish", "binary": false }, "site_task_start": { "method": "POST", "path": "/api/v1/site-tasks", "binary": false }, "site_task_get": { "method": "GET", "path": "/api/v1/site-tasks/:id", "binary": false }, "site_tasks_list": { "method": "GET", "path": "/api/v1/pages/:pageId/site-tasks", "binary": false }, "site_task_cancel": { "method": "POST", "path": "/api/v1/site-tasks/:id/cancel", "binary": false }, "site_for_page": { "method": "GET", "path": "/api/v1/pages/:pageId/site", "binary": false }, "site_create": { "method": "POST", "path": "/api/v1/sites", "binary": false }, "site_get": { "method": "GET", "path": "/api/v1/sites/:id", "binary": false }, "site_history": { "method": "GET", "path": "/api/v1/sites/:id/history", "binary": false }, "site_edit": { "method": "PUT", "path": "/api/v1/sites/:id/scope", "binary": false }, "site_facts": { "method": "POST", "path": "/api/v1/sites/:id/facts", "binary": false }, "site_approve": { "method": "POST", "path": "/api/v1/sites/:id/approve", "binary": false }, "site_propose": { "method": "POST", "path": "/api/v1/sites/:id/proposals", "binary": false }, "site_proposals": { "method": "GET", "path": "/api/v1/sites/:id/proposals", "binary": false }, "site_job_get": { "method": "GET", "path": "/api/v1/site-jobs/:id", "binary": false }, "site_job_cancel": { "method": "POST", "path": "/api/v1/site-jobs/:id/cancel", "binary": false }, "site_proposal_apply": { "method": "POST", "path": "/api/v1/site-jobs/:id/apply", "binary": false }, "site_posts": { "method": "GET", "path": "/api/v1/sites/:id/posts", "binary": false }, "site_post_get": { "method": "GET", "path": "/api/v1/sites/:id/posts/:postId", "binary": false }, "site_post_history": { "method": "GET", "path": "/api/v1/sites/:id/posts/:postId/history", "binary": false }, "site_post_create": { "method": "POST", "path": "/api/v1/sites/:id/posts", "binary": false }, "site_post_edit": { "method": "PUT", "path": "/api/v1/sites/:id/posts/:postId", "binary": false }, "site_posts_select": { "method": "POST", "path": "/api/v1/sites/:id/blog-selection", "binary": false }, "site_build": { "method": "POST", "path": "/api/v1/sites/:id/builds", "binary": false }, "site_revision_options": { "method": "GET", "path": "/api/v1/sites/:id/revision-options", "binary": false }, "site_revise": { "method": "POST", "path": "/api/v1/sites/:id/revisions", "binary": false }, "site_builds": { "method": "GET", "path": "/api/v1/sites/:id/builds", "binary": false }, "site_build_get": { "method": "GET", "path": "/api/v1/site-builds/:id", "binary": false }, "billing_summary": { "method": "GET", "path": "/api/v1/billing/summary", "binary": false }, "billing_receipt": { "method": "GET", "path": "/api/v1/billing/usage/:id", "binary": false }, "billing_quote": { "method": "POST", "path": "/api/v1/billing/quote", "binary": false }, "site_release_options": { "method": "GET", "path": "/api/v1/sites/:id/release-options", "binary": false }, "site_releases": { "method": "GET", "path": "/api/v1/sites/:id/releases", "binary": false }, "site_release_create": { "method": "POST", "path": "/api/v1/sites/:id/releases", "binary": false }, "site_release_get": { "method": "GET", "path": "/api/v1/sites/:id/releases/:releaseId", "binary": false }, "site_release_download": { "method": "GET", "path": "/api/v1/sites/:id/releases/:releaseId/download", "binary": true }, "site_publication_get": { "method": "GET", "path": "/api/v1/sites/:id/publication", "binary": false }, "site_publish": { "method": "POST", "path": "/api/v1/sites/:id/publication", "binary": false }, "billing_checkout": { "method": "POST", "path": "/api/v1/billing/checkout", "binary": false }, "billing_portal": { "method": "POST", "path": "/api/v1/billing/portal", "binary": false }, "billing_cancel": { "method": "POST", "path": "/api/v1/billing/cancel", "binary": false }, "billing_change_preview": { "method": "POST", "path": "/api/v1/billing/change-preview", "binary": false }, "billing_change_plan": { "method": "POST", "path": "/api/v1/billing/change-plan", "binary": false }, "webhooks_list": { "method": "GET", "path": "/api/v1/integrations/webhooks", "binary": false }, "webhook_get": { "method": "GET", "path": "/api/v1/integrations/webhooks/:id", "binary": false }, "webhook_create": { "method": "POST", "path": "/api/v1/integrations/webhooks", "binary": false }, "webhook_update": { "method": "PUT", "path": "/api/v1/integrations/webhooks/:id", "binary": false }, "webhook_deliveries": { "method": "GET", "path": "/api/v1/integrations/webhooks/:id/deliveries", "binary": false }, "webhook_retry": { "method": "POST", "path": "/api/v1/integrations/webhooks/:id/deliveries/:deliveryId/retry", "binary": false }, "domain_connect": { "method": "POST", "path": "/api/v1/pages/:pageId/domains", "binary": false }, "domain_check": { "method": "POST", "path": "/api/v1/pages/:pageId/domains/:domainId/check", "binary": false }, "domain_disconnect": { "method": "DELETE", "path": "/api/v1/pages/:pageId/domains/:domainId", "binary": false }, "forms_list": { "method": "GET", "path": "/api/v1/pages/:pageId/forms", "binary": false }, "form_create": { "method": "POST", "path": "/api/v1/pages/:pageId/forms", "binary": false }, "form_update": { "method": "PUT", "path": "/api/v1/pages/:pageId/forms/:formId", "binary": false }, "form_copy": { "method": "POST", "path": "/api/v1/pages/:pageId/forms/:formId/copy", "binary": false }, "leads_list": { "method": "GET", "path": "/api/v1/pages/:pageId/forms/:formId/leads", "binary": false }, "form_test": { "method": "POST", "path": "/api/v1/pages/:pageId/forms/:formId/test", "binary": false }, "lead_retry": { "method": "POST", "path": "/api/v1/pages/:pageId/forms/:formId/leads/:leadId/retry", "binary": false }, "reference_read": { "method": "GET", "path": "/api/v1/generations/:id/reference", "binary": true }, "design_image_read": { "method": "GET", "path": "/api/v1/generations/:id/designs/:candidateId/image", "binary": true }, "brand_logo_read": { "method": "GET", "path": "/api/v1/generations/:id/brand/logo", "binary": true }, "download_read": { "method": "GET", "path": "/api/v1/generations/:id/download", "binary": true }, "keys_list": { "method": "GET", "path": "/api/v1/account/keys", "binary": false }, "key_create": { "method": "POST", "path": "/api/v1/account/keys", "binary": false }, "key_revoke": { "method": "DELETE", "path": "/api/v1/account/keys/:id", "binary": false }, "members_list": { "method": "GET", "path": "/api/v1/account/members", "binary": false }, "member_update": { "method": "PUT", "path": "/api/v1/account/members/:id", "binary": false }, "member_remove": { "method": "DELETE", "path": "/api/v1/account/members/:id", "binary": false }, "invites_list": { "method": "GET", "path": "/api/v1/account/invites", "binary": false }, "invite_create": { "method": "POST", "path": "/api/v1/account/invites", "binary": false }, "invite_revoke": { "method": "DELETE", "path": "/api/v1/account/invites/:id", "binary": false } } as const; export class WaveformError extends Error { constructor(readonly status:number, readonly code:string, message:string){super(message);} } export class WaveformClient { constructor(readonly origin:string, readonly headers:()=>HeadersInit, readonly fetcher:typeof fetch=fetch) {} async call(name:K,input:Inputs[K],signal?:AbortSignal):Promise { const op=operations[name],args=input as {params?:Record;query?:Record;body?:unknown;idempotencyKey?:string}; let path=op.path;for(const [key,value] of Object.entries(args.params??{}))path=path.replace(':'+key,encodeURIComponent(value)) as typeof path; const url=new URL(path,this.origin);for(const [key,value] of Object.entries(args.query??{}))if(value!==undefined)url.searchParams.set(key,String(value)); const headers=new Headers(this.headers());if(args.idempotencyKey)headers.set('Idempotency-Key',args.idempotencyKey);if(args.body!==undefined)headers.set('Content-Type','application/json'); const response=await this.fetcher(url,{method:op.method,headers,...(args.body===undefined?{}:{body:JSON.stringify(args.body)}),...(signal?{signal}:{}),redirect:'error'}); if(!response.ok){const value=await response.json().catch(()=>null) as {error?:{code:string;message:string}}|null;throw new WaveformError(response.status,value?.error?.code??'HTTP_ERROR',value?.error?.message??'Request failed; reconcile saved state before retrying.');} if(response.status===204)return null as Outputs[K];return (op.binary?response:response.json()) as Outputs[K]; } }