目錄

Developers

Application manifest

Application manifest 是一個單一的 YAML 檔案,宣告 Bricoop 偵測、設定並連線一個桌面應用所需的全部資訊。manifest 是 Application 與 Bricoop 之間唯一的契約;它不包含任何 Provider 專屬邏輯,也不包含憑證。下面的每一個欄位都由固定版本的 registry 自動生成,因此權威參考是 Application schema 參考。

穩定 ID

id 欄位是一個穩定的 lowercase 識別碼,在所有 locale 和 release 中命名該 Application。一旦發布就永不改變;重新命名 id 等同於先移除再新增。name 欄位是人類可讀的顯示名稱,version 是 manifest 所針對的 Application 版本。schema_version 欄位固定 manifest 自身的 schema,使 Bricoop 可以拒絕為不相容 schema 撰寫的 manifest。

命令與偵測

configs[] 陣列告訴 Bricoop 如何在各平台上定位並修補 Application 的設定。每個條目攜帶一個 type(如 file_patch)、一個 format(如 json)、一個包含 macos、linux 和 windows 位置的 path 物件,以及一個 Bricoop 套用的 writes[] 操作清單。Bricoop 讀取 path 找到設定檔,在檔案不存在時依 create_if_missing 建立,並執行每一條 writes[] 把 Provider 端點寫入 manifest 宣告的槽位。

版本範圍

version 欄位是 manifest 撰寫時所針對的 Application 版本,minimal_client_version 是能執行該 manifest 的最低 Bricoop Desktop 版本,minimal_application_version 是能接受被修補 config 的最低 Application 版本。Bricoop 會把執行中的 client 和偵測到的 Application 與這兩個最低值比較,並明確拒絕不相容的組合,而不是寫出一個 Application 無法讀取的 config。

模型槽位

model_slots[] 陣列宣告 Application 暴露給使用者的模型端點。每個槽位攜帶一個 label、一個 description、一個 kind(如 chat)和一個 required 標誌。Bricoop 把每個已連線的 Provider 和模型對映到一個相容的槽位;required 槽位必須在啟用 Application 前被填上,而可選槽位在沒有選中相容模型時保持不動。

能力

模型槽位的 kind 和 required 標誌直接對映到 Application 宣告需要的能力。kind: chat 的槽位宣告 Chat 能力;期望工具呼叫的槽位宣告 Tools。Bricoop 把 Application 宣告的需求與每個 Provider 支援的能力取交集,只提供相容的模型。完整的協商流程見 協定能力 頁面。

範例

下面的範例是 Claude Code 的最小 Application manifest。它宣告了一個必需的 chat 模型槽位,以及一個把 Provider 端點寫入 ~/.claude.json 的 file-patch 設定。

id: claude-code
name: Claude Code
version: 2.1.158
schema_version: 1
minimal_client_version: 2.0.0
minimal_application_version: 2.1.0
model_slots:
  - label: Default model
    description: Primary model used for chat and tools.
    kind: chat
    required: true
configs:
  - type: file_patch
    format: json
    path:
      macos: ~/.claude.json
      linux: ~/.claude.json
      windows: "%USERPROFILE%\\.claude.json"
    create_if_missing: true
    writes:
      - entry_id: provider
        op: set
        path: providers
版本: sha256:50e649aa40aaa2bb86ca5bd34ce3e2b6a69ac75e201b2ec4505394b87ec8c13b 編輯此頁