{"ok":true,"generatedAt":"2026-05-30T11:54:09.082Z","environment":"production","noExternalPublishingPerformed":true,"demoKind":"hosted_browser_preview","project":{"projectId":"agent-publish-control-plane","projectName":"Agent Publish Control Plane","version":"0.3.2","git":{"remote":"https://github.com/fkx2016/agent-publish-control-plane.git","branch":"main"},"cloudflare":{"stagingUrl":"https://agent-publish-control-plane-staging.fkurka.workers.dev","productionUrl":"https://agent-publish-control-plane.fkurka.workers.dev"},"hereNow":{"drivePrefix":"projects/agent-publish-control-plane"}},"workspaceId":"default","sourcePath":"content/papers/apcp-universal-publishing-router.md","manifestPath":"publish/apcp-universal-publishing-router.manifest.json","operatorConsoleUrl":"/demo/operator","localShowcaseCommand":"npm run demo:showcase","hostedPreviewSteps":["Classify the sample article as public human-readable content.","Plan private handoff, canonical publishing, assisted distribution, and hosted sync.","Explain provider readiness and setup validation gaps.","Preview a hosted-safe sync run boundary without queueing or publishing."],"notPerformed":["No here.now upload.","No GitHub release.","No Kurka Labs repository write.","No social post or newsletter publication.","No provider setup record write.","No secret read or storage."],"plan":{"approval":{"required":true,"status":"required"},"readinessSummary":{"configured":0,"local_only":3,"missing_setup":0,"assisted":4},"targetCount":7,"targets":[{"channelId":"here-now-drive","label":"here.now Drive","mode":"handoff","status":"local_only","requiresApproval":false,"readiness":"local_only","readinessReason":"Execution depends on local operator profile setup for here.now.","validation":[{"provider":"here.now","status":"not_started","summary":"No provider connection record exists yet.","nextActions":["Authenticate with here.now locally or through the hosted provider connection store."],"localExecutionSupported":true}]},{"channelId":"github","label":"GitHub Source Ledger","mode":"handoff","status":"local_only","requiresApproval":false,"readiness":"local_only","readinessReason":"Execution depends on local operator profile setup for github.","validation":[{"provider":"github","status":"not_started","summary":"No provider connection record exists yet.","nextActions":["Use gh auth or GitHub Actions secrets. Do not commit tokens."],"localExecutionSupported":true}]},{"channelId":"kurka-labs-papers","label":"Kurka Labs Papers","mode":"deploy","status":"local_only","requiresApproval":true,"readiness":"local_only","readinessReason":"Execution depends on local operator profile setup for github-cloudflare-pages.","validation":[{"provider":"github-cloudflare-pages","status":"not_started","summary":"No provider connection record exists yet.","nextActions":["Use the Kurka Labs GitHub repo and Cloudflare Pages integration; keep credentials in GitHub/Cloudflare."],"localExecutionSupported":true}]},{"channelId":"substack-post","label":"Substack Post","mode":"distribute","status":"assisted","requiresApproval":true,"readiness":"assisted","readinessReason":"Destination is intentionally assisted: APCP can render drafts or handoff artifacts, while publication remains manual or future OAuth-backed work.","validation":[{"provider":"substack","status":"not_started","summary":"No provider connection record exists yet.","nextActions":["Keep public posting assisted until an approved Substack API or OAuth path is configured."],"localExecutionSupported":false}]},{"channelId":"medium-post","label":"Medium Post","mode":"distribute","status":"assisted","requiresApproval":true,"readiness":"assisted","readinessReason":"Destination is intentionally assisted: APCP can render drafts or handoff artifacts, while publication remains manual or future OAuth-backed work.","validation":[{"provider":"medium","status":"not_started","summary":"No provider connection record exists yet.","nextActions":["Store Medium integration tokens in Cloudflare secrets or a provider vault after account API access is confirmed."],"localExecutionSupported":false}]},{"channelId":"linkedin-post","label":"LinkedIn Post","mode":"distribute","status":"assisted","requiresApproval":true,"readiness":"assisted","readinessReason":"Destination is intentionally assisted: APCP can render drafts or handoff artifacts, while publication remains manual or future OAuth-backed work.","validation":[{"provider":"linkedin","status":"not_started","summary":"No provider connection record exists yet.","nextActions":["Use an approved LinkedIn OAuth app and store secrets outside manifests."],"localExecutionSupported":false}]},{"channelId":"x-thread","label":"X Thread","mode":"distribute","status":"assisted","requiresApproval":true,"readiness":"assisted","readinessReason":"Destination is intentionally assisted: APCP can render drafts or handoff artifacts, while publication remains manual or future OAuth-backed work.","validation":[{"provider":"x","status":"not_started","summary":"No provider connection record exists yet.","nextActions":["Use an approved X API app/tier and store OAuth secrets outside manifests."],"localExecutionSupported":false}]}],"localOnly":["here-now-drive","github","kurka-labs-papers"],"assisted":["substack-post","medium-post","linkedin-post","x-thread"],"setupRequired":[]},"providerReadiness":{"summary":{"configured":1,"local_only":5,"missing_setup":1,"assisted":4},"destinations":[{"destinationId":"cloudflare","label":"Cloudflare","readiness":"missing_setup","reason":"Missing hosted setup for cloudflare."},{"destinationId":"r2-media","label":"Cloudflare R2 Media","readiness":"configured","reason":"All required hosted provider setup is configured."},{"destinationId":"github-release","label":"GitHub Release","readiness":"local_only","reason":"Execution depends on local operator profile setup for github."},{"destinationId":"github","label":"GitHub Source Ledger","readiness":"local_only","reason":"Execution depends on local operator profile setup for github."},{"destinationId":"here-now-drive","label":"here.now Drive","readiness":"local_only","reason":"Execution depends on local operator profile setup for here.now."},{"destinationId":"here-now-sites","label":"here.now Sites","readiness":"local_only","reason":"Execution depends on local operator profile setup for here.now."},{"destinationId":"kurka-labs-papers","label":"Kurka Labs Papers","readiness":"local_only","reason":"Execution depends on local operator profile setup for github-cloudflare-pages."},{"destinationId":"linkedin-post","label":"LinkedIn Post","readiness":"assisted","reason":"Destination is intentionally assisted: APCP can render drafts or handoff artifacts, while publication remains manual or future OAuth-backed work."},{"destinationId":"medium-post","label":"Medium Post","readiness":"assisted","reason":"Destination is intentionally assisted: APCP can render drafts or handoff artifacts, while publication remains manual or future OAuth-backed work."},{"destinationId":"substack-post","label":"Substack Post","readiness":"assisted","reason":"Destination is intentionally assisted: APCP can render drafts or handoff artifacts, while publication remains manual or future OAuth-backed work."},{"destinationId":"x-thread","label":"X Thread","readiness":"assisted","reason":"Destination is intentionally assisted: APCP can render drafts or handoff artifacts, while publication remains manual or future OAuth-backed work."}]},"hostedSyncRunPreview":{"queueStatus":"dry_run","executionBoundary":"hosted_safe","reason":"Manifest sync reconciliation can be acknowledged by the hosted Worker because the manifest already exists in D1."}}