跳到內容

CLI 概覽

Imbrace CLI(@imbrace/cli)是一個用於與 Imbrace 平台互動的終端工具。指令透過 @imbrace/sdk 套件直接呼叫 Imbrace 平台。原始碼:imbraceltd/imbrace-cli

imbrace (CLI) → https://app-gatewayv2.imbrace.co (Imbrace Platform)

認證流程

CLI 支援兩種認證方式:

1. API 金鑰(憑證以 sk-api_ 開頭):

  • 直接傳遞給 SDK:new ImbraceClient({ apiKey: credential })
  • 以原始形式儲存在本機設定中

2. 電子郵件 + 密碼(回傳 JWT 令牌):

  • SDK:client.login(email, password) → 令牌儲存在本機
  • JWT 令牌作為憑證儲存

憑證儲存

憑證透過 conf npm 套件以 projectName: "imbrace" 儲存。

作業系統設定檔路徑
macOS~/Library/Preferences/imbrace-nodejs/config.json
Linux~/.config/imbrace-nodejs/config.json
Windows%APPDATA%\imbrace-nodejs\Config\config.json

儲存的欄位:credentialmethod"api-key" | "password")、email

自動登入

每個 CLI 指令(除了 login)都繼承 BaseCommand,其在初始化時會呼叫 ensureLoggedIn()。如果找不到憑證,它會以互動方式提示使用者選擇登入方式(API 金鑰或電子郵件 + 密碼)。

專案結構

imbrace-cli/
└── cli/ ← oclif CLI
└── src/
├── base-command.ts ← 自動登入
├── config.ts ← 憑證儲存 (conf)
└── commands/
├── login.ts / logout.ts / whoami.ts / docs.ts
├── data-board/ (8 個指令)
├── ai-agent/ (9 個指令)
├── document-ai/ (7 個指令)
├── orchestrator/ (4 個指令)
├── guardrail/ (5 個指令)
└── workflow/ (32 個指令)

工作流程節點架構

工作流程使用透過 nextAction 指標的鏈結串列結構:

{
version: {
trigger: {
name: "trigger",
type: "PIECE_TRIGGER" | "EMPTY" | "PIECE" | "ROUTER" | "LOOP_ON_ITEMS" | "CODE",
settings: { pieceName, pieceVersion, input, ... },
nextAction: { ... },
children?: any[], // ROUTER 分支
firstLoopAction?: any, // LOOP_ON_ITEMS 主體
}
}
}

所有節點操作都使用 applyFlowOperation(),類型包括:UPDATE_TRIGGERADD_ACTIONUPDATE_ACTIONDELETE_ACTIONLOCK_AND_PUBLISHCHANGE_STATUSCHANGE_FOLDER