# 自動化端點

排程執行的端點。

Cron 與一次性任務合併為同一組介面。原本分離的 `/v1/cron*` 與 `/v1/task*` 已於 v0.33.6 由 `/v1/schedule` 取代，以 `type=cron|task` 區分。

| Method | 路徑 | 說明 |
|---|---|---|
| `GET` | `/v1/schedule` | **local** — 將 cron 條目與一次性任務合併成一個 `schedules` 陣列，各自標記 `type=cron\|task`；`?type=` 可只取其一 |
| `GET` | `/v1/schedule/*skill` | **local** — 讀取 scheduler skill（不存在回 404）：`name`（另以 `skill` 回傳同值）與 `body`，其中 `body` 自 v1.0.2 起是**含 frontmatter 的原始** SKILL.md，不再是解析掉 frontmatter 的主體。`files` 以與 `GET /v1/skill/*name` 相同的規則附上該 skill 的 `scripts/`／`references/`／`assets/` 內容。`description` 欄位已移除 |
| `POST` `PATCH` | `/v1/schedule` | **local** — `{type, name, content, expressions, session_id?}`。建立（`POST`，名稱已被使用回 409）或更新（`PATCH`，不存在回 404）scheduler skill，並把整組條目重新綁到 `type=cron\|task`；切換 type 會丟棄該 skill 在另一種型別下持有的條目。`description` 已於 v1.0.2 移除。`content` 若本身就以 `---` frontmatter 開頭則原樣寫入；否則由 server 端補上最小的 `---\nname: <name>\n---` 標頭。`name` 為 1-64 個 `A-Z a-z 0-9 _ -` 字元。`expressions`（至少一筆）在 `cron` 為 cron 表達式，在 `task` 為未來的時間（`+<duration>`、`YYYY-MM-DD HH:MM`、RFC 3339，或當天的 `HH:MM`）。`session_id` 預設沿用該 skill 既有的 session，沒有則新建 `chat-` session。回傳 `{type, name, session_id}` |
| `DELETE` | `/v1/schedule` | **local** — `{skill, type?}`。刪除某 skill 的條目（`type` 可縮限其一，省略則兩者皆移除），若無其他綁定則一併把 skill 移入垃圾桶；回傳 `{ok, removed, trashed}`，沒有任何條目被移除時回 404 |
| `POST` | `/v1/schedule/run` | **local** — `{session_id, skill}`，皆必填。立即觸發一則排程，不等候執行即回 `202` `{ok, started:true}` |
