Files
Arcrun/kbdb/tests/node-builtins.d.ts
Claude 15fe012006 feat(kbdb): 藏書地圖 M1+M2 — library_map template+/map 端點(聚合 SQL 住基本盤)(#39)
M1:library_map template(migration 0003 seed+runtime ensure,D6 零建表零 ALTER);
核實 triplet 按庫定位=不足(prod triplet template 無 library slot、entries
metadata.library 未標記)→ 走 SDD 預案:recompute 冪等補 optional library slot
(改 template 不動表),slot 值由 ingest 端(M3)補寫,核實結果記入 design §1。

M2:kbdb base 三端點(design §2 歸屬裁定:聚合 SQL 只准住基本盤):
- POST /map/recompute?library=X:degree top-N/predicate 分布/跨庫 bridges/
  triplet_count 一段 SQL 聚合;narrative 本輪收 body 傳入(wiki 抽取屬 M3);
  寫入順序安全(先建新 active map block 再標舊 superseded,讀端取最新 active 自癒);
  過渡 source_prefix fallback 讓無 library 值的舊 triplet 靠 source_uri 前綴歸庫。
- GET /map:全館地圖每庫一行(library+narrative+top 3 entities+triplet_count),
  MCP instructions/GUI 共用(數百 token 內)。
- GET /map/:library:該庫詳圖(完整 slots+可嵌人話 content,design §5 M6 直用)。

測試:node:sqlite(零新依賴)當真 SQLite 實跑 migrations+聚合 SQL,
Hono route 行為同款覆蓋;45/45 過、tsc --noEmit 乾淨。

關聯 #39

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JUmjwkHLVBHM3ydhT1WSW3
2026-07-19 08:40:22 +00:00

22 lines
1.0 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 測試用 node 內建模組最小型別宣告。tsconfig types 只掛 @cloudflare/workers-typesworker 本體
// 不該看見 node API),但測試在 node 跑:library-map 測試用 node:sqlite 當真 SQLite 驗聚合 SQL
//(零新依賴;Node ≥22.5 內建)。這份 d.ts 只為 tsc --noEmit 過關,不影響 runtime。
declare module 'node:sqlite' {
export class DatabaseSync {
constructor(location: string);
exec(sql: string): void;
prepare(sql: string): {
all(...params: unknown[]): Record<string, unknown>[];
get(...params: unknown[]): Record<string, unknown> | undefined;
run(...params: unknown[]): { changes: number | bigint };
};
close(): void;
}
}
declare module 'node:fs' {
export function readFileSync(path: URL | string, encoding: string): string;
}
// workers-types 的 ImportMeta 沒宣告 urlworker bundle 不用);測試以 import.meta.url 定位
// migrations 原檔 → 全域補上(僅型別,node/vitest runtime 本來就有)。
interface ImportMeta { url: string }