feat(cli): 實作 CLI 各指令與 help(M1+M2,issue #13)
- 加入 pnpm workspace;Node.js ≥22 + TypeScript 實作 - 指令:auth status、tokens verify/create/list/revoke、novels get - 非互動、stdout 僅輸出單一 JSON;exit code 0/1/2 - 設定優先順序:--token/--api-url > FOX_API_TOKEN/FOX_API_URL > ~/.config/fox/cli.json - novels list/create/update 待後端接受 Bearer token 後補齊(README 授權缺口) - 已對模擬後端完成端到端驗證(含 401/404/網路錯誤、冪等 revoke)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Fox CLI — 與 Fox 後端互動的命令列工具
|
||||
|
||||
> 專案狀態:規劃中(本目錄與說明先行,見 issue #10)|日期:2026-09-04
|
||||
> 專案狀態:M0–M2 已實作(M1:HTTP client、設定讀取、`tokens verify`/`auth status`;M2:`tokens create/list/revoke`、公開的 `novels get`)|日期:2026-09-04
|
||||
|
||||
`fox` 是一個命令列工具,讓人與 **AI agent** 不經過前端,直接與 Fox 後端 API 互動:查詢/建立/編輯作品、管理 access token 等。目標是「一句命令拿到機器可解析的結果」,方便腳本、CI 與 agent 排程使用。
|
||||
|
||||
@@ -54,11 +54,26 @@
|
||||
|
||||
里程碑:
|
||||
|
||||
- **M0**:子項目目錄+README(本步)。
|
||||
- **M1**:HTTP client、設定讀取、`tokens verify`/`auth status`。
|
||||
- **M2**:`tokens create/list/revoke`、公開的 `novels get`。
|
||||
- **M0**:子項目目錄+README(完成)。
|
||||
- **M1**:HTTP client、設定讀取、`tokens verify`/`auth status`(完成,見 `src/http.ts`、`src/config.ts`)。
|
||||
- **M2**:`tokens create/list/revoke`、公開的 `novels get`(完成)。
|
||||
- **M3**:`novels list/create/update`(視後端授權進度)、`--pretty`、錯誤處理打磨。
|
||||
|
||||
## 開發
|
||||
|
||||
```bash
|
||||
pnpm install # 倉庫根目錄
|
||||
pnpm --filter fox-cli build
|
||||
pnpm --filter fox-cli start -- <子命令> # 例如 auth status
|
||||
```
|
||||
|
||||
結構:`src/cli.ts`(進入點與分發)、`src/command.ts`(參數解析與註冊表)、
|
||||
`src/config.ts`(設定讀取)、`src/http.ts`(fetch 封裝)、`src/commands.ts`(各命令實作)、
|
||||
`src/errors.ts`(錯誤與 exit code)。
|
||||
|
||||
exit code:`0` 成功;`1` 執行失敗(後端 4xx/5xx、網路錯誤);`2` 用法錯誤。
|
||||
`tokens revoke` 成功時輸出 `{"ok": true, "id": <id>}`(後端回 204 無內容)。
|
||||
|
||||
## 維護說明
|
||||
|
||||
1. 後端端點異動時,同步更新第三節對應表。
|
||||
|
||||
Reference in New Issue
Block a user