還原發現鏈
解釋索引優先、檔案系統回退、manifest 解析與來源優先順序。
目錄能展示外掛,安裝器能複製或克隆外掛,執行時還要判斷啟用狀態與信任。把三層拆開,才能看清外掛生態的真實安全邊界。
解釋索引優先、檔案系統回退、manifest 解析與來源優先順序。
區分可發現、已安裝、已啟用、受信任,避免用一個「已安裝」覆蓋全部語義。
判斷 skill、agent、hook、MCP 與 script 在未信任狀態下的處理差異。
marketplace-root/
├── .grok-plugin/
│ ├── marketplace.json
│ └── plugin-index.json
├── plugins/
│ └── sample-plugin/
└── default-skills/掃描器先讀索引;缺失或無效時掃描 plugins/*/。default-skills 可作為虛擬外掛加入結果。
sample-plugin/
├── plugin.json
├── skills/*/SKILL.md
├── commands/
├── agents/
├── hooks/hooks.json
├── .mcp.json
└── scripts/plugin.json 是首選 manifest,.grok-plugin/plugin.json 與 .claude-plugin/plugin.json 是後備位置。PluginManifest 可覆蓋 skills、commands、agents、hooks、MCP 與 LSP 路徑;解析後還要驗證路徑仍包含在外掛根目錄內。
--plugin-dir.grok/plugins$GROK_HOME/plugins[plugins].paths關鍵區分:xai-grok-plugin-marketplace 負責目錄、掃描和安裝;xai-grok-agent::plugins 負責執行時發現、去重、名稱衝突、啟用與信任。Marketplace 中出現一條記錄,不代表元件立即執行。
MarketplaceRelativePath 拒絕絕對路徑、父目錄穿越和越界 join。遠端條目可用 git ref 或 SHA 定位內容。
發現配置維護 enabled 與 disabled。專案或使用者範圍預設加入 disabled 列表,CLI override 與 config path 預設加入 enabled,使用者可顯式調整。
專案外掛按 canonical plugin root 授權,粒度是單個外掛根。信任記錄寫入 ~/.grok/trusted-plugins。
match dunce::canonicalize(plugin_root) {
Ok(path) => self.trusted.contains(&path),
Err(_) => false,
}CLI override 與使用者範圍在原始碼中標記為 trusted;專案範圍要求顯式信任;config path 位於使用者 home 下時可自動信任,其他位置仍需授權。
crates/codegen/xai-grok-agent/src/plugins/trust.rs · discovery.rs本地 Marketplace 透過 managed install storage 安裝;遠端條目透過 Git URL、ref、SHA 與 subdir 定位。InstallRegistry 寫入 MarketplaceProvenance。
當前程式碼能夠證明官方源常量、多個來源、目錄索引、搜尋和安裝流程。它無法單獨證明外掛數量、活躍作者、審核覆蓋率或增長速度,本頁不作這些推斷。
xai-grok-plugin-marketplace/src/lib.rs · types.rs提交物
外掛骨架與威脅表
外掛系統的核心價值由能力面與信任面共同決定。目錄解決發現,安裝器負責寫入磁碟,執行時信任門決定哪些內容可以進入執行鏈。
原始碼快照說明:本頁依據本地 grok-build-main 的 xai-grok-plugin-marketplace 與 xai-grok-agent::plugins 整理。目錄樹合併了原始碼預設約定,用於教學表達;來源優先順序、路徑約束、啟用配置和信任行為保持原始碼語義。