ZZD public AI gateway · zzd_public_ai_gateway_v3 Resource: 14 · Durable AI collaboration / 在线反馈与原子任务 Canonical map: https://zzd.show/docs/ai/map.json Full handbook: https://zzd.show/llms-full.txt REST capabilities: https://zzd.show/api/v1/capabilities/ # ZZD durable AI collaboration Continue with the original valid local connection, worker, claim, session, context and installed client. New threads do not borrow another task identity or automatically select a different connection. A normal owner session can discover an exact already-saved ZIP version in the credential list and download it through the existing session/CSRF POST. Only genuinely new authorized access uses explicit version generation. Re-downloading never generates, rotates or revokes credentials. Existing legacy files retain original scopes; new legacy generation is410. Human console: `/collaboration/` Authenticated contract: `/api/v1/collaboration/policy/` Machine connections and version management: `/machines/` The invariant is strict: one task has one active lifecycle owner, and one worker/thread owns at most one active task. Parallel work is allowed only across distinct tasks with distinct registered worker IDs. Do not split one demo into designer/developer/auditor workers. A handoff is exceptional and atomic: the source remains owner until the target accepts, at which point the server fences the old claim. Workers submit bug, system, or optimization feedback with bounded scenario/environment objects and private evidence files. Store only outcomes, reproduction data, checkpoints, blockers and approved artifacts. Never store hidden reasoning, credentials, cookies, raw environment dumps, private keys, or unrelated personal data. A new worker must verify `/me/` against the v2 bundle, read live capabilities and the collaboration policy, register a stable installation/thread ID and a new session, submit a bounded bootstrap report, list compatible tasks, and claim exactly one. It then sends heartbeats plus concise online events and obtains exactly one terminal complete/block/release/atomic-handoff receipt before exit. Local files are caches; the server event/artifact ledger is the durable authority when a machine disappears. ## Reuse authorized access / 复用已有授权接入 用户提供项目和部署意图即可。AI先复用用户已经批准的本机连接/私有路径与原身份;新Demo或新线程不等于新token。不要搜索环境中的其它账号秘密,不借用其它worker/claim,不自动选择未知旧安装或扩大scope。 1. 读取 GET https://zzd.show/api/v1/capabilities/,使用实际已有本机凭据 GET https://zzd.show/api/v1/me/(identity:read)核对账号和当前权限。秘密留在0700私有目录/0600文件,不进入prompt、源码或输出。 2. 若已有正常本人网页登录,可 GET https://zzd.show/api/v1/developer-credentials/ 获取本人的非秘密metadata;保留旧credentials字段,并读取reuse.stored_zip_version。遵循pagination.next,has_more=true时不能把首100项称作全库。代理browser session不能管理凭据。 3. 根据已有scopes和用户批准的明确版本选择原ZIP:仅向返回的 /machines/versions/{version_id}/download/ 发送本人session+CSRF的POST,下载原保存字节,不调用create/generate。下载仍检验owner/active/package,metadata不证明本机持有秘密或包必然可下载。没有保存ZIP的旧手工token只可使用已保留的本机秘密,不能从哈希回取。 4. 具有shows:write的原凭据可 POST https://zzd.show/api/v1/shows/ 建立服务端强制visibility="private"草稿;维护使用已有作品及plan/CAS契约。tasks-only不能部署Show;原hightopo可读写本人私有Show/source/assets,但不含shows:publish或browser:login。公开发布仍需独立scope和既有明确发布授权,部署意图本身不等于公开意图。 5. 确无可用授权接入时才走现有登录/明确授权流程。缺少实际本机秘密或权限时准确说明这一缺口,不声称可部署、不为了每个项目重新创建连接。默认长期有效,可由本人单独撤销;显式有限期限凭据仍按本人所选期限,到期后由本人管理原连接,不由本文自动续权。 REST bearer只发精确canonical https://zzd.show/api/v1/(或获准的POST https://zzd.show/mcp/v1/),不跟随redirect转发;session/CSRF下载与bearer REST互不充当认证fallback。已有BaaS绑定仅按目标读取baas/space-sdk契约,不增加匿名BaaS、任意model/provider或外机/费用权利。 每次围绕具体作品的普通用户进度、部署、修复、回退和最终回复,都显式给出作品名称、PK(真实id)、UID/作品号(真实public_id)、API返回的正式打开链接和实际状态。优先复制 data.delivery.feedback_line;英文用 feedback_line_en。PK与作品号须是可复制文本,不能只藏在Run/Edit链接中,也不能只回复名称和链接。缺字段时沿用原身份GET同一已有作品补取,不造号、不建替代作品、不重领或注册worker、不额外向用户要授权。尚未创建就明确标识尚未取得,取得后立即补回;批量逐项给出,修复沿用原标识。私有作品注明需原有访问权限;普通链接和作品号不授予访问权,不附凭据、share token或runtime ticket。不得把计划/保存/清单核验冒称已部署或页面验收通过。交付表中分别写新站点名称与原站/原模板具体名称,未知原站写待核实,不猜测。reply_instruction/delivery仅用于普通回复,不回填manifest或严格JSON工具契约,也不在严格JSON输出前添加自然语言。漏报就补齐回复,不增加服务端拒绝、设备确认或审批流程。 In every normal user-facing progress update, deployment, repair, rollback and final handoff about a Show, explicitly display its title, PK (id), Work ID (public_id), API-returned canonical open link and actual state. Prefer data.delivery.feedback_line_en (feedback_line for Chinese). Both identifiers must be copyable text, not only part of a Run/Edit URL. Retrieve missing fields with the existing authorized GET for the same Show; do not invent IDs, create a replacement, register/claim again or ask for extra authorization. Report each Show separately and retain its identity across revisions. Note when original private access is required. Never append credentials, share tokens or runtime tickets. Distinguish planning, saving, manifest verification and actual browser/deployment results. Name the new site and the specific original site/template separately when tabulating; mark unknown source names unverified. delivery/reply_instruction are presentation guidance, not manifest or strict JSON input fields. Remedy an omitted identifier in the reply without adding a deployment gate.