Leo 16ad1cb208 feat(ingest): T0.5–T5 純餵食器管線實作(issue #2)
ingest 全管線(採取優先、extract fallback、跨庫織網、POST envelope):
- T0.5 骨架:Hono + zod-openapi,無 D1/Vectorize/AI 綁定(不碰儲存鐵律)
- T1 SourceAdapter:GitHub runtime API 拉 + per-file sha256 content-hash + /refresh 受理端
- T2 採取(路徑 A 優先):harvest template 1.8.0+ 卡(gloss/實體/typed-edge)
- T3 extract(路徑 B fallback):LlmCaller 可選模型 + JSON-fail 升級閘 + 端點對齊硬自檢護欄;第一版不 embed(只打標)
- T4 跨庫織網(主職):匯總多 repo → 偵測跨庫橋/異見,不算 bridge_score(graph 領域)
- T5 輸出:buildEnvelope strict + 顯式禁送欄位自檢;graph-client 純 POST(cherry-pick _kbdb_client.py 改不碰 base);薄 ops CLI(不帶查詢 MCP)

envelope 對齊 full contract(embed/id/aliases/predicate_embed);同步 contract 向量化欄位升格。

gate:vitest 28 passed / tsc clean / wrangler dry-run 乾淨(只 env-var 綁定)。
端到端 ingest→graph:graph receiver 已補對齊 → 待 ingest 部署 + GRAPH_BASE_URL → 待部署驗,未假綠。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 20:40:53 +08:00
2026-06-26 12:43:26 +08:00
2026-06-26 12:43:26 +08:00
2026-06-26 12:43:26 +08:00

kbdb-ingest-plugin

KBDB 堆疊的餵食器——從 GitHub repo 拉知識庫,採取/萃取成三元組候選,餵給 kbdb-graph-plugin,織成跨 vault 的圖。

堆疊裡最薄的一層:

base KBDBarcrun/kbdb           ← 儲存(D1 三表 + CRUD API
   ↑ API
kbdb-graph-plugin                  ← 三元組領域 + 圖查詢
   ↑ APIingest 餵候選)
kbdb-ingest-plugin(本 repo       ← 純餵食器:拉 + 採取/萃取 + 跨庫織網

它做什麼

  • 採取(優先):拉本地 CC 已建好的三元組 + gloss(用了精耕模板的 repo)。
  • 萃取(fallback:裸原文時自己萃成 (subject, predicate, object) + gloss;模型可選(預設 Haiku)。
  • 跨 repo 織網:匯總多 repo 的三元組,織出單一 repo 看不到的跨庫橋與異見。

它不做什麼

  • 不碰儲存(不直連 D1/Vectorize/表)——只 POST 候選給 graph 的寫入 API。
  • 不算向量 normalize(歸 base embed 模組)。
  • 不帶查詢 MCPambient 餵食器,只帶 ops CLI)。

命題

不是「更好的 notes RAG」(紅海),而是跨所有 vault 的圖——Obsidian/Logseq 結構上做不到的那層。護城河是你累積的圖,不是這份程式碼。

契約

contracts/ingest-candidate.json — ingest→graph 的凍結 envelope 契約(與 graph repo 同一份)。


InkStoneCo 子專案。開發規範見 CLAUDE.md,跨專案藍圖見 InkStoneCo docs/3-specs/mira-dissolve/

S
Description
No description provided
Readme 150 KiB
Languages
Markdown 100%