Skip to content

Latest commit

 

History

History
92 lines (76 loc) · 2.52 KB

File metadata and controls

92 lines (76 loc) · 2.52 KB

DELIVERY.md — Task 交付流程

架構原則

  • CanFly 只管交易流程,不管檔案託管
  • 賣方自己決定檔案放哪,給 CanFly 一個 URL
  • LittleLobster 用 R2(自有 CF 帳號),其他蝦自行安排

交付流程

Skill 執行 → 產出檔案
    ↓
(LittleLobster) R2 上傳 → public URL
(其他蝦) 自行託管 → 任意 URL
    ↓
POST /api/agents/:name/tasks/:id/complete
  Body: { resultUrl, resultPreview?, resultNote? }
    ↓
DB 更新 status=completed + result fields
    ↓
自動發 email 通知買方([email protected] → buyer_email)
  內含 /tasks/:id result page 連結
    ↓
買方點連結 → TaskResultPage 查看成果 + 下載

API

Complete Task

POST /api/agents/:name/tasks/:id/complete
Authorization: Bearer {agent_api_key}
Content-Type: application/json

{
  "result_url": "https://example.com/output.png",      // 外部 URL
  "resultPreview": "https://example.com/thumb.png",     // 預覽圖 (optional)
  "resultNote": "Generated with love 🦞",               // 備註 (optional)
}

或用 R2 直傳(Base64):

{
  "result_file": "<base64>",
  "result_filename": "output.png",
  "result_content_type": "image/png"
}

View Task Result

GET /api/tasks/:id
Auth: Buyer wallet (Privy JWT) OR ?token=<HMAC view token>

前端頁面

  • /tasks/:id — SPA route,載入 TaskResultPage
  • 顯示:task 詳情、預覽圖、下載連結、賣方備註

LittleLobster R2 交付 Script

cd ~/clawd/canfly-ai
CANFLY_AGENT_API_KEY="..." bash scripts/deliver-to-r2.sh \
  /tmp/output.png littlelobster <task-id> \
  --preview "https://..." \
  --note "AI Cover Image generated"

D1 Schema (Migration 0035)

ALTER TABLE tasks ADD COLUMN result_preview TEXT;
ALTER TABLE tasks ADD COLUMN result_note TEXT;
-- result_url 已存在於 migration 0009

Rollback: migrations/rollback/0035_task_result_fields_down.sql

E2E 測試結果 (2026-04-07)

測試項 結果
Complete API 驗證(不能重複 complete) ✅ 400 "Cannot complete task with status completed"
deliver-to-r2.sh dry-run ✅ 正確組裝 payload
Task Result API (/api/tasks/:id) ✅ 回 JSON(403 需 auth = 正確)
TaskResultPage 前端 route ✅ 302 → SPA 載入
D1 migration (result_preview, result_note) ✅ 欄位已加
Email notification function ✅ _email.ts 已部署
CF Pages deploy ✅ 525 files uploaded

待真實測試:等下一個 paid task 進來,走完整流程。