From 886a8e31d0bc959235fea69f2c920e7287e54680 Mon Sep 17 00:00:00 2001 From: uncle6me-web Date: Sun, 14 Jun 2026 22:12:32 +0800 Subject: [PATCH] =?UTF-8?q?feat(kbdb,mcp):=20KBDB=20=E8=B3=87=E6=96=99?= =?UTF-8?q?=E5=B1=A4=E8=96=84=E6=AE=BC=20+=20self-hosted=20MCP=20=E8=AA=8D?= =?UTF-8?q?=E8=AD=89=20+=20cypher=20KBDB=20proxy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 三件一條鏈(HANDOFF §2/§3b,kbdb-base Phase 9): A. KBDB MCP 薄殼(9.1):mcp/src/tools/kbdb_data.ts 6 工具 template/record/query/search,調基本盤 API。鐵律:不給建表/SQL,只 template+slot。 B. MCP self-hosted 認證 401(mcp-account-source §5.5): - partner-auth.ts:MULTI_TENANT=false 時 Bearer 明碼直接當 org_namespace, 繞 KBDB partner 驗證(對齊 cypher 的 opaque-key 模型)。官方 SaaS 行為不變、共用同碼。 - mcp-setup.ts:把 namespace/api_key 寫進 .mcp.json headers.Authorization。 - 新增 self-hosted vs SaaS 分支單測(9 tests 綠)。 C. cypher KBDB proxy(9.5)+ CLI 薄殼(9.2): - routes/kbdb-proxy.ts 純轉發 /kbdb/* → KBDB 基本盤(KBDB_BASE_URL HTTP fetch, 不新增 service binding)。讓 CLI(只認證到 cypher)能達獨立 KBDB worker。 - 租戶隔離:X-Arcrun-API-Key 自動當 owner_id 注入 records/entries(強制覆寫防跨租戶); templates 全域共享(虛擬表定義是 schema 非資料)。 - cli/src/commands/kbdb.ts:acr kbdb template/record/query/search,與 MCP kbdb_* 同能力。 - kbdb base:entries 加 page_name 過濾(9.3)。 cypher + cli + mcp tsc exit 0。未驗收:端到端需 deploy + KBDB_BASE_URL 可達後實測。 Co-Authored-By: Claude Opus 4.8 (1M context) --- cli/src/commands/kbdb.ts | 123 ++++++++++++++ cli/src/commands/mcp-setup.ts | 18 ++- cli/src/index.ts | 39 +++++ cypher-executor/src/index.ts | 2 + cypher-executor/src/routes/kbdb-proxy.ts | 131 +++++++++++++++ kbdb/src/actions/entry-crud.ts | 2 + kbdb/src/routes/entries.ts | 4 +- mcp/src/middleware/partner-auth.ts | 13 ++ mcp/src/tools/kbdb_data.ts | 195 +++++++++++++++++++++++ mcp/src/tools/registry.ts | 4 + mcp/src/types.ts | 6 + mcp/tests/unit/partner-auth.test.ts | 38 +++++ mcp/wrangler.toml | 9 ++ 13 files changed, 582 insertions(+), 2 deletions(-) create mode 100644 cli/src/commands/kbdb.ts create mode 100644 cypher-executor/src/routes/kbdb-proxy.ts create mode 100644 mcp/src/tools/kbdb_data.ts diff --git a/cli/src/commands/kbdb.ts b/cli/src/commands/kbdb.ts new file mode 100644 index 0000000..65ad027 --- /dev/null +++ b/cli/src/commands/kbdb.ts @@ -0,0 +1,123 @@ +/** + * acr kbdb — KBDB 資料層 CLI 薄殼(kbdb-base Phase 9.2,HANDOFF §2) + * + * acr kbdb template create --slots a,b,c 建 template(虛擬表定義) + * acr kbdb template list 列出所有 template + * acr kbdb record create