@dikolab/kbdb 0.3.2 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (523) hide show
  1. package/README.md +92 -90
  2. package/dist/chunk-BJXEVALU.mjs +337 -0
  3. package/dist/chunk-BJXEVALU.mjs.map +7 -0
  4. package/dist/cli.cjs +1398 -378
  5. package/dist/cli.cjs.map +4 -4
  6. package/dist/cli.d.ts +9 -0
  7. package/dist/cli.mjs +1138 -342
  8. package/dist/cli.mjs.map +4 -4
  9. package/dist/kbdb-worker.cjs +1115 -135
  10. package/dist/kbdb-worker.cjs.map +4 -4
  11. package/dist/mod.cjs +351 -69
  12. package/dist/mod.cjs.map +4 -4
  13. package/dist/mod.d.ts +23 -2
  14. package/dist/mod.mjs +349 -68
  15. package/dist/mod.mjs.map +4 -4
  16. package/dist/src/shared/cli/functions/dispatch-command.function.d.ts +2 -1
  17. package/dist/src/shared/cli/functions/find-db.function.d.ts +7 -8
  18. package/dist/src/shared/cli/functions/handle-mcp.function.d.ts +1 -1
  19. package/dist/src/shared/cli/functions/parse-args.function.d.ts +4 -3
  20. package/dist/src/shared/cli/functions/resolve-kbid-prefix.function.d.ts +27 -0
  21. package/dist/src/shared/cli/functions/resolve-raw-db-path.function.d.ts +10 -0
  22. package/dist/src/shared/cli/functions/run-cli.function.d.ts +3 -1
  23. package/dist/src/shared/cli/functions/run-content.function.d.ts +8 -3
  24. package/dist/src/shared/cli/functions/run-import.function.d.ts +27 -0
  25. package/dist/src/shared/cli/functions/run-recall.function.d.ts +10 -4
  26. package/dist/src/shared/cli/functions/run-search.function.d.ts +7 -0
  27. package/dist/src/shared/cli/functions/run-unlearn.function.d.ts +9 -4
  28. package/dist/src/shared/cli/functions/run-worker-restart.function.d.ts +11 -0
  29. package/dist/src/shared/cli/functions/run-worker-stop.function.d.ts +11 -0
  30. package/dist/src/shared/cli/index.d.ts +2 -0
  31. package/dist/src/shared/cli/typings/cli-deps.interface.d.ts +4 -1
  32. package/dist/src/shared/cli/typings/cli-options.interface.d.ts +22 -0
  33. package/dist/src/shared/cli/typings/dispatch-client.type.d.ts +2 -1
  34. package/dist/src/shared/cli/typings/search-display.model.d.ts +6 -0
  35. package/dist/src/shared/embedding/classes/api-embedding-provider.class.d.ts +33 -0
  36. package/dist/src/shared/embedding/classes/onnx-embedding-provider.class.d.ts +33 -0
  37. package/dist/src/shared/embedding/classes/tfidf-embedding-provider.class.d.ts +28 -0
  38. package/dist/src/shared/embedding/constants/tfidf-defaults.constant.d.ts +4 -0
  39. package/dist/src/shared/embedding/functions/append-vector-entry.function.d.ts +14 -0
  40. package/dist/src/shared/embedding/functions/create-embedding-provider.function.d.ts +15 -0
  41. package/dist/src/shared/embedding/functions/detect-stale-vectors.function.d.ts +16 -0
  42. package/dist/src/shared/embedding/functions/parse-api-embedding-response.function.d.ts +11 -0
  43. package/dist/src/shared/embedding/functions/rebuild-vectors.function.d.ts +15 -0
  44. package/dist/src/shared/embedding/functions/scan-semantic-contradictions.function.d.ts +13 -0
  45. package/dist/src/shared/embedding/index.d.ts +9 -0
  46. package/dist/src/shared/embedding/typings/semantic-contradiction.model.d.ts +21 -0
  47. package/dist/src/shared/embedding/typings/stale-vectors-report.model.d.ts +16 -0
  48. package/dist/src/shared/log/constants/log-colors.constant.d.ts +5 -0
  49. package/dist/src/shared/log/constants/log-defaults.constant.d.ts +3 -0
  50. package/dist/src/shared/log/constants/log-icons.constant.d.ts +3 -0
  51. package/dist/src/shared/log/functions/configure-log.function.d.ts +12 -0
  52. package/dist/src/shared/log/functions/log.function.d.ts +28 -0
  53. package/dist/src/shared/log/functions/parse-log-level.function.d.ts +10 -0
  54. package/dist/src/shared/log/functions/resolve-log-level.function.d.ts +12 -0
  55. package/dist/src/shared/log/functions/write-stderr.function.d.ts +10 -0
  56. package/dist/src/shared/log/index.d.ts +10 -0
  57. package/dist/src/shared/log/typings/log-config.interface.d.ts +7 -0
  58. package/dist/src/shared/log/typings/log-level.type.d.ts +7 -0
  59. package/dist/src/shared/log/typings/log-output.interface.d.ts +4 -0
  60. package/dist/src/shared/mcp/classes/mcp-server.class.d.ts +22 -2
  61. package/dist/src/shared/mcp/functions/create-mcp-server.function.d.ts +6 -1
  62. package/dist/src/shared/mcp/functions/has-sampling-capability.function.d.ts +8 -0
  63. package/dist/src/shared/mcp/functions/run-auto-capture.function.d.ts +26 -0
  64. package/dist/src/shared/mcp/typings/mcp-client.interface.d.ts +2 -0
  65. package/dist/src/shared/mcp/typings/mcp-integrity-check-result.model.d.ts +24 -0
  66. package/dist/src/shared/mcp/typings/mcp-worker-client.interface.d.ts +3 -1
  67. package/dist/src/shared/version/constants/version.constant.d.ts +1 -1
  68. package/dist/src/shared/wasm-codec/typings/paged-search-result.model.d.ts +2 -0
  69. package/dist/src/shared/worker-client/classes/worker-client.class.d.ts +38 -1
  70. package/dist/src/shared/worker-client/constants/request-timeout.constant.d.ts +2 -0
  71. package/dist/src/shared/worker-client/constants/retry-defaults.constant.d.ts +2 -0
  72. package/dist/src/shared/worker-client/functions/get-or-create-client.function.d.ts +20 -0
  73. package/dist/src/shared/worker-client/functions/retry-on-timeout.function.d.ts +18 -0
  74. package/dist/src/shared/worker-client/index.d.ts +4 -1
  75. package/dist/src/shared/worker-client/typings/import-result.model.d.ts +16 -0
  76. package/dist/src/shared/worker-client/typings/integrity-check-result.model.d.ts +24 -0
  77. package/dist/src/shared/worker-client/typings/search-params.model.d.ts +4 -0
  78. package/dist/src/shared/worker-client/typings/search-result.model.d.ts +6 -0
  79. package/dist/src/shared/worker-client/typings/worker-client-options.interface.d.ts +7 -0
  80. package/dist/src/shared/worker-daemon/classes/worker-daemon.class.d.ts +6 -0
  81. package/dist/src/shared/worker-daemon/functions/create-ipc-server.function.d.ts +11 -11
  82. package/dist/src/shared/worker-daemon/functions/embed-after-learn.function.d.ts +13 -0
  83. package/dist/src/shared/worker-daemon/functions/handle-hybrid-search.function.d.ts +44 -0
  84. package/dist/src/shared/worker-daemon/functions/handle-import.function.d.ts +14 -0
  85. package/dist/src/shared/worker-daemon/functions/handle-read-ops.function.d.ts +7 -1
  86. package/dist/src/shared/worker-daemon/functions/handle-write-ops.function.d.ts +9 -4
  87. package/dist/src/shared/worker-daemon/functions/run-worker.function.d.ts +6 -1
  88. package/dist/src/shared/worker-daemon/typings/handler-context.interface.d.ts +3 -0
  89. package/dist/src/shared/worker-daemon/typings/wasm-modules.interface.d.ts +5 -0
  90. package/dist/wasm/default-embedding/kbdb_default_embedding.d.ts +55 -0
  91. package/dist/wasm/default-embedding/kbdb_default_embedding.js +156 -0
  92. package/{src/wasm/query-parser/kbdb_query_parser_bg.wasm → dist/wasm/default-embedding/kbdb_default_embedding_bg.wasm} +0 -0
  93. package/dist/wasm/default-embedding/kbdb_default_embedding_bg.wasm.d.ts +12 -0
  94. package/dist/wasm/default-embedding/package.json +13 -0
  95. package/dist/wasm/fs-database/kbdb_fs_database.d.ts +16 -85
  96. package/dist/wasm/fs-database/kbdb_fs_database.js +16 -85
  97. package/dist/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
  98. package/dist/wasm/fs-migration/kbdb_fs_migration.d.ts +38 -0
  99. package/dist/wasm/fs-migration/kbdb_fs_migration.js +130 -0
  100. package/dist/wasm/fs-migration/kbdb_fs_migration_bg.wasm +0 -0
  101. package/dist/wasm/fs-migration/kbdb_fs_migration_bg.wasm.d.ts +9 -0
  102. package/dist/wasm/fs-migration/package.json +13 -0
  103. package/dist/wasm/kb-worker/kbdb_worker.d.ts +20 -115
  104. package/dist/wasm/kb-worker/kbdb_worker.js +20 -115
  105. package/dist/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
  106. package/dist/wasm/query-parser/kbdb_query_parser_bg.wasm +0 -0
  107. package/dist/worker.d.ts +8 -0
  108. package/dist/worker.mjs +899 -143
  109. package/dist/worker.mjs.map +4 -4
  110. package/docs/details/README.md +4 -0
  111. package/docs/details/agent-tooling.md +132 -0
  112. package/docs/details/cli.md +91 -18
  113. package/docs/details/knowledge-base.md +180 -0
  114. package/docs/details/library-api.md +42 -2
  115. package/docs/details/mcp-server.md +53 -7
  116. package/docs/details/search-and-ranking.md +16 -11
  117. package/docs/goals/cli.md +142 -37
  118. package/docs/goals/content-parser.md +1 -1
  119. package/docs/goals/hybrid-search.md +71 -42
  120. package/docs/goals/mcp.md +24 -19
  121. package/docs/goals/overview.md +1 -1
  122. package/docs/goals/query-parser.md +8 -0
  123. package/docs/goals/semantic-dedup.md +7 -3
  124. package/docs/goals/worker-client.md +62 -1
  125. package/docs/goals/worker-daemon.md +83 -30
  126. package/docs/modules/overview.md +43 -22
  127. package/docs/modules/rust/embedding/module.md +91 -0
  128. package/docs/modules/rust/overview.md +56 -21
  129. package/docs/modules/rust/query-parser/functions/module.md +7 -5
  130. package/docs/modules/rust/query-parser/functions/pipeline.md +6 -138
  131. package/docs/modules/rust/query-parser/module.md +16 -22
  132. package/docs/modules/rust/query-parser/types/module.md +5 -4
  133. package/docs/modules/rust/query-parser/types/token.md +5 -1
  134. package/docs/modules/rust/shared/content-parser/functions.md +1 -1
  135. package/docs/modules/rust/shared/memory/module.md +1 -1
  136. package/docs/modules/rust/shared/module.md +33 -5
  137. package/docs/modules/rust/shared/pipeline/functions.md +141 -0
  138. package/docs/modules/rust/shared/pipeline/module.md +62 -0
  139. package/docs/modules/rust/shared/pipeline/types.md +43 -0
  140. package/docs/modules/rust/shared/section/module.md +1 -1
  141. package/docs/modules/rust/shared/section/types.md +1 -1
  142. package/docs/modules/typescript/cli.md +5 -3
  143. package/docs/modules/typescript/kbdb-worker.md +20 -5
  144. package/docs/modules/typescript/overview.md +28 -6
  145. package/docs/modules/typescript/shared/cli/functions.md +131 -17
  146. package/docs/modules/typescript/shared/cli/module.md +33 -20
  147. package/docs/modules/typescript/shared/cli/typings.md +25 -0
  148. package/docs/modules/typescript/shared/embedding/functions.md +125 -19
  149. package/docs/modules/typescript/shared/embedding/module.md +10 -4
  150. package/docs/modules/typescript/shared/embedding/typings.md +7 -5
  151. package/docs/modules/typescript/shared/log/constants.md +82 -0
  152. package/docs/modules/typescript/shared/log/functions.md +131 -0
  153. package/docs/modules/typescript/shared/log/module.md +153 -0
  154. package/docs/modules/typescript/shared/log/typings.md +82 -0
  155. package/docs/modules/typescript/shared/mcp/module.md +1 -1
  156. package/docs/modules/typescript/shared/mcp/typings.md +8 -1
  157. package/docs/modules/typescript/shared/module.md +22 -6
  158. package/docs/modules/typescript/shared/worker-client/module.md +9 -1
  159. package/docs/modules/typescript/shared/worker-client/typings.md +3 -0
  160. package/docs/modules/typescript/shared/worker-daemon/functions.md +19 -6
  161. package/docs/modules/typescript/shared/worker-daemon/module.md +11 -5
  162. package/docs/modules/typescript/shared/worker-daemon/typings.md +13 -7
  163. package/docs/overview.md +1 -2
  164. package/docs/release-notes/0.4.0.md +80 -0
  165. package/docs/release-notes/0.4.1.md +149 -0
  166. package/docs/release-notes/README.md +1 -0
  167. package/mod.ts +33 -15
  168. package/package.json +12 -11
  169. package/dist/chunk-JG2UCKLI.mjs +0 -95
  170. package/dist/chunk-JG2UCKLI.mjs.map +0 -7
  171. package/src/cli.ts +0 -71
  172. package/src/shared/auto-capture/classes/auto-capture-controller.class.ts +0 -62
  173. package/src/shared/auto-capture/constants/auto-capture-defaults.constant.ts +0 -15
  174. package/src/shared/auto-capture/functions/build-capture-prompt.function.ts +0 -27
  175. package/src/shared/auto-capture/functions/evaluate-trigger.function.ts +0 -50
  176. package/src/shared/auto-capture/index.ts +0 -7
  177. package/src/shared/auto-capture/typings/auto-capture-config.interface.ts +0 -13
  178. package/src/shared/auto-capture/typings/auto-capture-state.interface.ts +0 -13
  179. package/src/shared/auto-capture/typings/auto-capture-trigger.interface.ts +0 -7
  180. package/src/shared/cli/constants/defaults.constant.ts +0 -19
  181. package/src/shared/cli/constants/global-help.constant.ts +0 -73
  182. package/src/shared/cli/constants/help-text.constant.ts +0 -4
  183. package/src/shared/cli/constants/leaf-help.constant.ts +0 -219
  184. package/src/shared/cli/constants/memory-protocol-body.constant.ts +0 -39
  185. package/src/shared/cli/constants/query-guidance-body.constant.ts +0 -37
  186. package/src/shared/cli/constants/subcommand-help.constant.ts +0 -195
  187. package/src/shared/cli/functions/collect-files.function.ts +0 -55
  188. package/src/shared/cli/functions/compute-section-kbid.function.ts +0 -49
  189. package/src/shared/cli/functions/dispatch-command.function.ts +0 -390
  190. package/src/shared/cli/functions/ensure-db.function.ts +0 -21
  191. package/src/shared/cli/functions/error-to-message.function.ts +0 -9
  192. package/src/shared/cli/functions/find-db.function.ts +0 -20
  193. package/src/shared/cli/functions/format-mcp-output.function.ts +0 -41
  194. package/src/shared/cli/functions/format-output.function.ts +0 -95
  195. package/src/shared/cli/functions/format-text-output.function.ts +0 -42
  196. package/src/shared/cli/functions/generate-group-help.function.ts +0 -41
  197. package/src/shared/cli/functions/generate-help.function.ts +0 -654
  198. package/src/shared/cli/functions/handle-data-command.function.ts +0 -67
  199. package/src/shared/cli/functions/handle-mcp.function.ts +0 -56
  200. package/src/shared/cli/functions/handle-migrate.function.ts +0 -64
  201. package/src/shared/cli/functions/hydrate-search-previews.function.ts +0 -29
  202. package/src/shared/cli/functions/install-default-skills.function.ts +0 -296
  203. package/src/shared/cli/functions/is-stdin-tty.function.ts +0 -12
  204. package/src/shared/cli/functions/parse-args.function.ts +0 -156
  205. package/src/shared/cli/functions/prompt-user.function.ts +0 -36
  206. package/src/shared/cli/functions/resolve-skill-names.function.ts +0 -43
  207. package/src/shared/cli/functions/run-agent-create.function.ts +0 -114
  208. package/src/shared/cli/functions/run-agent-delete.function.ts +0 -47
  209. package/src/shared/cli/functions/run-agent-get.function.ts +0 -166
  210. package/src/shared/cli/functions/run-agent-list.function.ts +0 -58
  211. package/src/shared/cli/functions/run-check.function.ts +0 -159
  212. package/src/shared/cli/functions/run-cli.function.ts +0 -299
  213. package/src/shared/cli/functions/run-content.function.ts +0 -47
  214. package/src/shared/cli/functions/run-db-init.function.ts +0 -44
  215. package/src/shared/cli/functions/run-db-migrate.function.ts +0 -40
  216. package/src/shared/cli/functions/run-export.function.ts +0 -40
  217. package/src/shared/cli/functions/run-gc.function.ts +0 -51
  218. package/src/shared/cli/functions/run-init.function.ts +0 -93
  219. package/src/shared/cli/functions/run-learn.function.ts +0 -223
  220. package/src/shared/cli/functions/run-migrate.function.ts +0 -85
  221. package/src/shared/cli/functions/run-rebuild.function.ts +0 -47
  222. package/src/shared/cli/functions/run-recall.function.ts +0 -66
  223. package/src/shared/cli/functions/run-search.function.ts +0 -133
  224. package/src/shared/cli/functions/run-skill-delete.function.ts +0 -47
  225. package/src/shared/cli/functions/run-skill-get.function.ts +0 -90
  226. package/src/shared/cli/functions/run-skill-learn.function.ts +0 -70
  227. package/src/shared/cli/functions/run-skill-list.function.ts +0 -74
  228. package/src/shared/cli/functions/run-status.function.ts +0 -29
  229. package/src/shared/cli/functions/run-unlearn.function.ts +0 -58
  230. package/src/shared/cli/functions/version-gate.function.ts +0 -44
  231. package/src/shared/cli/functions/wrap-command.function.ts +0 -34
  232. package/src/shared/cli/index.ts +0 -55
  233. package/src/shared/cli/typings/agent-create-client.interface.ts +0 -47
  234. package/src/shared/cli/typings/agent-get-client.interface.ts +0 -39
  235. package/src/shared/cli/typings/check-client.interface.ts +0 -66
  236. package/src/shared/cli/typings/cli-deps.interface.ts +0 -54
  237. package/src/shared/cli/typings/cli-options.interface.ts +0 -72
  238. package/src/shared/cli/typings/command-result.model.ts +0 -15
  239. package/src/shared/cli/typings/disconnectable-client.interface.ts +0 -29
  240. package/src/shared/cli/typings/dispatch-client.type.ts +0 -46
  241. package/src/shared/cli/typings/learn-client.interface.ts +0 -53
  242. package/src/shared/cli/typings/learn-io.interface.ts +0 -5
  243. package/src/shared/cli/typings/learn-result.model.ts +0 -27
  244. package/src/shared/cli/typings/search-client.interface.ts +0 -73
  245. package/src/shared/cli/typings/search-display.model.ts +0 -54
  246. package/src/shared/dir-resolver/functions/join-path.function.ts +0 -13
  247. package/src/shared/dir-resolver/functions/resolve-base-dir.function.ts +0 -25
  248. package/src/shared/dir-resolver/functions/resolve-wasm-dir.function.ts +0 -5
  249. package/src/shared/dir-resolver/functions/resolve-worker-script.function.ts +0 -13
  250. package/src/shared/dir-resolver/index.ts +0 -11
  251. package/src/shared/dir-resolver/typings/base-dir.interface.ts +0 -4
  252. package/src/shared/embedding/classes/null-embedding-provider.class.ts +0 -29
  253. package/src/shared/embedding/constants/near-duplicate-thresholds.constant.ts +0 -17
  254. package/src/shared/embedding/functions/build-vector-index.function.ts +0 -79
  255. package/src/shared/embedding/functions/cosine-similarity.function.ts +0 -31
  256. package/src/shared/embedding/functions/detect-near-duplicates.function.ts +0 -69
  257. package/src/shared/embedding/functions/jaccard-coefficient.function.ts +0 -26
  258. package/src/shared/embedding/functions/read-vector-index-meta.function.ts +0 -44
  259. package/src/shared/embedding/functions/rrf-fuse.function.ts +0 -33
  260. package/src/shared/embedding/functions/search-vectors.function.ts +0 -59
  261. package/src/shared/embedding/index.ts +0 -20
  262. package/src/shared/embedding/typings/embedding-config.interface.ts +0 -23
  263. package/src/shared/embedding/typings/embedding-provider.interface.ts +0 -25
  264. package/src/shared/embedding/typings/near-duplicate-candidate.model.ts +0 -25
  265. package/src/shared/embedding/typings/near-duplicate-result.model.ts +0 -26
  266. package/src/shared/embedding/typings/vector-index-entry.model.ts +0 -13
  267. package/src/shared/embedding/typings/vector-index-meta.model.ts +0 -14
  268. package/src/shared/embedding/typings/vector-search-result.model.ts +0 -8
  269. package/src/shared/hash/functions/compute-sha256.ts +0 -17
  270. package/src/shared/hash/index.ts +0 -1
  271. package/src/shared/mcp/classes/mcp-server.class.ts +0 -480
  272. package/src/shared/mcp/constants/mcp-error-codes.constant.ts +0 -30
  273. package/src/shared/mcp/constants/tool-agent-create.constant.ts +0 -39
  274. package/src/shared/mcp/constants/tool-agent-delete.constant.ts +0 -26
  275. package/src/shared/mcp/constants/tool-agent-get.constant.ts +0 -24
  276. package/src/shared/mcp/constants/tool-agent-list.constant.ts +0 -18
  277. package/src/shared/mcp/constants/tool-auto-capture-review.constant.ts +0 -32
  278. package/src/shared/mcp/constants/tool-check.constant.ts +0 -21
  279. package/src/shared/mcp/constants/tool-content.constant.ts +0 -29
  280. package/src/shared/mcp/constants/tool-export.constant.ts +0 -27
  281. package/src/shared/mcp/constants/tool-gc.constant.ts +0 -21
  282. package/src/shared/mcp/constants/tool-learn.constant.ts +0 -58
  283. package/src/shared/mcp/constants/tool-rebuild.constant.ts +0 -21
  284. package/src/shared/mcp/constants/tool-recall.constant.ts +0 -36
  285. package/src/shared/mcp/constants/tool-retrieve.constant.ts +0 -31
  286. package/src/shared/mcp/constants/tool-search.constant.ts +0 -51
  287. package/src/shared/mcp/constants/tool-skill-delete.constant.ts +0 -24
  288. package/src/shared/mcp/constants/tool-skill-get.constant.ts +0 -27
  289. package/src/shared/mcp/constants/tool-skill-learn.constant.ts +0 -37
  290. package/src/shared/mcp/constants/tool-skill-list.constant.ts +0 -18
  291. package/src/shared/mcp/constants/tool-status.constant.ts +0 -20
  292. package/src/shared/mcp/constants/tool-unlearn.constant.ts +0 -25
  293. package/src/shared/mcp/functions/as-boolean-or-undefined.function.ts +0 -11
  294. package/src/shared/mcp/functions/as-string-array-or-undefined.function.ts +0 -17
  295. package/src/shared/mcp/functions/as-string-array.function.ts +0 -15
  296. package/src/shared/mcp/functions/as-string.function.ts +0 -10
  297. package/src/shared/mcp/functions/build-skills-text.function.ts +0 -43
  298. package/src/shared/mcp/functions/create-mcp-server.function.ts +0 -14
  299. package/src/shared/mcp/functions/create-prompt-definitions.function.ts +0 -102
  300. package/src/shared/mcp/functions/create-resource-templates.function.ts +0 -23
  301. package/src/shared/mcp/functions/create-tool-definitions.function.ts +0 -530
  302. package/src/shared/mcp/functions/extract-skill-arguments.function.ts +0 -27
  303. package/src/shared/mcp/functions/handle-agent-create.function.ts +0 -116
  304. package/src/shared/mcp/functions/handle-agent-delete.function.ts +0 -50
  305. package/src/shared/mcp/functions/handle-agent-get.function.ts +0 -160
  306. package/src/shared/mcp/functions/handle-agent-list.function.ts +0 -50
  307. package/src/shared/mcp/functions/handle-agent-prompt.function.ts +0 -68
  308. package/src/shared/mcp/functions/handle-completion.function.ts +0 -114
  309. package/src/shared/mcp/functions/handle-mcp-request.function.ts +0 -202
  310. package/src/shared/mcp/functions/handle-prompt-get.function.ts +0 -220
  311. package/src/shared/mcp/functions/handle-recall.function.ts +0 -66
  312. package/src/shared/mcp/functions/handle-resource-read.function.ts +0 -56
  313. package/src/shared/mcp/functions/handle-roots-list.function.ts +0 -29
  314. package/src/shared/mcp/functions/handle-skill-prompt.function.ts +0 -44
  315. package/src/shared/mcp/functions/handle-tool-auto-capture-review.function.ts +0 -24
  316. package/src/shared/mcp/functions/handle-tool-call.function.ts +0 -560
  317. package/src/shared/mcp/functions/handle-tool-check.function.ts +0 -21
  318. package/src/shared/mcp/functions/handle-tool-content.function.ts +0 -23
  319. package/src/shared/mcp/functions/handle-tool-export.function.ts +0 -25
  320. package/src/shared/mcp/functions/handle-tool-gc.function.ts +0 -21
  321. package/src/shared/mcp/functions/handle-tool-learn.function.ts +0 -69
  322. package/src/shared/mcp/functions/handle-tool-rebuild.function.ts +0 -21
  323. package/src/shared/mcp/functions/handle-tool-retrieve.function.ts +0 -40
  324. package/src/shared/mcp/functions/handle-tool-search.function.ts +0 -47
  325. package/src/shared/mcp/functions/handle-tool-skill-delete.function.ts +0 -34
  326. package/src/shared/mcp/functions/handle-tool-skill-get.function.ts +0 -59
  327. package/src/shared/mcp/functions/handle-tool-skill-learn.function.ts +0 -61
  328. package/src/shared/mcp/functions/handle-tool-skill-list.function.ts +0 -39
  329. package/src/shared/mcp/functions/handle-tool-status.function.ts +0 -21
  330. package/src/shared/mcp/functions/handle-tool-unlearn.function.ts +0 -24
  331. package/src/shared/mcp/functions/parse-agent-meta.function.ts +0 -27
  332. package/src/shared/mcp/functions/parse-skill-arguments.function.ts +0 -36
  333. package/src/shared/mcp/functions/parse-skill-content.function.ts +0 -38
  334. package/src/shared/mcp/functions/read-agent-meta.function.ts +0 -41
  335. package/src/shared/mcp/functions/resolve-skill-refs.function.ts +0 -50
  336. package/src/shared/mcp/functions/run-startup-health-check.function.ts +0 -34
  337. package/src/shared/mcp/functions/serialize-skill-content.function.ts +0 -12
  338. package/src/shared/mcp/functions/should-emit-log.function.ts +0 -38
  339. package/src/shared/mcp/index.ts +0 -28
  340. package/src/shared/mcp/typings/agent-types.interface.ts +0 -39
  341. package/src/shared/mcp/typings/log-types.interface.ts +0 -26
  342. package/src/shared/mcp/typings/mcp-capabilities.interface.ts +0 -16
  343. package/src/shared/mcp/typings/mcp-client.interface.ts +0 -317
  344. package/src/shared/mcp/typings/mcp-completion.interface.ts +0 -45
  345. package/src/shared/mcp/typings/mcp-content-result.model.ts +0 -9
  346. package/src/shared/mcp/typings/mcp-export-result.model.ts +0 -11
  347. package/src/shared/mcp/typings/mcp-gc-result.model.ts +0 -15
  348. package/src/shared/mcp/typings/mcp-integrity-check-result.model.ts +0 -17
  349. package/src/shared/mcp/typings/mcp-integrity-error.model.ts +0 -15
  350. package/src/shared/mcp/typings/mcp-notification.interface.ts +0 -9
  351. package/src/shared/mcp/typings/mcp-rebuild-result.model.ts +0 -9
  352. package/src/shared/mcp/typings/mcp-request.interface.ts +0 -11
  353. package/src/shared/mcp/typings/mcp-resource-result.interface.ts +0 -12
  354. package/src/shared/mcp/typings/mcp-resource-template.interface.ts +0 -11
  355. package/src/shared/mcp/typings/mcp-response.interface.ts +0 -18
  356. package/src/shared/mcp/typings/mcp-server-info.interface.ts +0 -7
  357. package/src/shared/mcp/typings/mcp-server-state.interface.ts +0 -17
  358. package/src/shared/mcp/typings/mcp-tool-annotations.interface.ts +0 -32
  359. package/src/shared/mcp/typings/mcp-tool-definition.interface.ts +0 -16
  360. package/src/shared/mcp/typings/mcp-tool-result.interface.ts +0 -19
  361. package/src/shared/mcp/typings/mcp-types.interface.ts +0 -158
  362. package/src/shared/mcp/typings/mcp-worker-client.interface.ts +0 -243
  363. package/src/shared/mcp/typings/prompt-types.interface.ts +0 -39
  364. package/src/shared/mcp/typings/remove-section-result.model.ts +0 -10
  365. package/src/shared/mcp/typings/sampling-types.interface.ts +0 -48
  366. package/src/shared/mcp/typings/skill-types.interface.ts +0 -29
  367. package/src/shared/mcp/typings/tool-call-result.model.ts +0 -18
  368. package/src/shared/mod.ts +0 -1
  369. package/src/shared/platform/functions/get-ipc-path.function.ts +0 -19
  370. package/src/shared/platform/functions/get-tmpdir.function.ts +0 -8
  371. package/src/shared/platform/functions/is-process-alive.function.ts +0 -17
  372. package/src/shared/platform/index.ts +0 -3
  373. package/src/shared/runtime/functions/detect-runtime.ts +0 -14
  374. package/src/shared/runtime/functions/get-args.ts +0 -16
  375. package/src/shared/runtime/index.ts +0 -3
  376. package/src/shared/runtime/typings/runtime.ts +0 -2
  377. package/src/shared/sync/functions/build-import-report.function.ts +0 -40
  378. package/src/shared/sync/functions/parse-export-entry.function.ts +0 -45
  379. package/src/shared/sync/functions/resolve-conflict.function.ts +0 -31
  380. package/src/shared/sync/functions/serialize-export-entry.function.ts +0 -18
  381. package/src/shared/sync/index.ts +0 -9
  382. package/src/shared/sync/typings/conflict-resolution.type.ts +0 -8
  383. package/src/shared/sync/typings/export-entry.interface.ts +0 -13
  384. package/src/shared/sync/typings/export-options.interface.ts +0 -9
  385. package/src/shared/sync/typings/import-options.interface.ts +0 -7
  386. package/src/shared/sync/typings/import-report.interface.ts +0 -15
  387. package/src/shared/version/constants/version.constant.ts +0 -2
  388. package/src/shared/version/index.ts +0 -1
  389. package/src/shared/wasm-codec/functions/decode-add-section-result.function.ts +0 -112
  390. package/src/shared/wasm-codec/functions/decode-compose-output.function.ts +0 -16
  391. package/src/shared/wasm-codec/functions/decode-document-manifest-list.function.ts +0 -70
  392. package/src/shared/wasm-codec/functions/decode-document-manifest.function.ts +0 -87
  393. package/src/shared/wasm-codec/functions/decode-f32.function.ts +0 -16
  394. package/src/shared/wasm-codec/functions/decode-key-value-text.function.ts +0 -15
  395. package/src/shared/wasm-codec/functions/decode-one-recall-result.function.ts +0 -86
  396. package/src/shared/wasm-codec/functions/decode-option-string.function.ts +0 -24
  397. package/src/shared/wasm-codec/functions/decode-recall-document.function.ts +0 -59
  398. package/src/shared/wasm-codec/functions/decode-recall-reference.function.ts +0 -52
  399. package/src/shared/wasm-codec/functions/decode-recall-result.function.ts +0 -267
  400. package/src/shared/wasm-codec/functions/decode-recall-sibling.function.ts +0 -43
  401. package/src/shared/wasm-codec/functions/decode-remove-flag.function.ts +0 -3
  402. package/src/shared/wasm-codec/functions/decode-scored-results.function.ts +0 -194
  403. package/src/shared/wasm-codec/functions/decode-section-match.function.ts +0 -80
  404. package/src/shared/wasm-codec/functions/decode-section-record-list.function.ts +0 -20
  405. package/src/shared/wasm-codec/functions/decode-section-record-trailing.function.ts +0 -75
  406. package/src/shared/wasm-codec/functions/decode-section-record.function.ts +0 -85
  407. package/src/shared/wasm-codec/functions/decode-section-records.function.ts +0 -249
  408. package/src/shared/wasm-codec/functions/decode-section-type.function.ts +0 -30
  409. package/src/shared/wasm-codec/functions/decode-string.function.ts +0 -22
  410. package/src/shared/wasm-codec/functions/decode-u32.function.ts +0 -16
  411. package/src/shared/wasm-codec/functions/decode-u64.function.ts +0 -16
  412. package/src/shared/wasm-codec/functions/decode-wasm-list.function.ts +0 -31
  413. package/src/shared/wasm-codec/functions/encode-add-section-params.function.ts +0 -102
  414. package/src/shared/wasm-codec/functions/encode-group-params.function.ts +0 -28
  415. package/src/shared/wasm-codec/functions/encode-identifier-list.function.ts +0 -17
  416. package/src/shared/wasm-codec/functions/encode-kbid-list.function.ts +0 -17
  417. package/src/shared/wasm-codec/functions/encode-option-string.function.ts +0 -14
  418. package/src/shared/wasm-codec/functions/encode-recall-params.function.ts +0 -68
  419. package/src/shared/wasm-codec/functions/encode-search-params.function.ts +0 -12
  420. package/src/shared/wasm-codec/functions/encode-section-type.function.ts +0 -18
  421. package/src/shared/wasm-codec/functions/encode-string.function.ts +0 -9
  422. package/src/shared/wasm-codec/functions/encode-type-filter-param.function.ts +0 -13
  423. package/src/shared/wasm-codec/functions/encode-u32.function.ts +0 -5
  424. package/src/shared/wasm-codec/functions/encode-update-section-params.function.ts +0 -16
  425. package/src/shared/wasm-codec/index.ts +0 -49
  426. package/src/shared/wasm-codec/typings/add-section-input.model.ts +0 -45
  427. package/src/shared/wasm-codec/typings/add-section-result.model.ts +0 -28
  428. package/src/shared/wasm-codec/typings/document-manifest.model.ts +0 -20
  429. package/src/shared/wasm-codec/typings/document-section.model.ts +0 -12
  430. package/src/shared/wasm-codec/typings/item-decoder.type.ts +0 -10
  431. package/src/shared/wasm-codec/typings/near-duplicate.model.ts +0 -16
  432. package/src/shared/wasm-codec/typings/paged-search-result.model.ts +0 -22
  433. package/src/shared/wasm-codec/typings/section-match.model.ts +0 -31
  434. package/src/shared/wasm-codec/typings/section-record-trailing.model.ts +0 -38
  435. package/src/shared/wasm-codec/typings/section-record.model.ts +0 -66
  436. package/src/shared/wasm-codec/typings/section-type-result.model.ts +0 -12
  437. package/src/shared/worker-client/classes/worker-client.class.ts +0 -466
  438. package/src/shared/worker-client/functions/compute-context-id.function.ts +0 -18
  439. package/src/shared/worker-client/functions/create-worker-client.function.ts +0 -70
  440. package/src/shared/worker-client/functions/discover-daemon.function.ts +0 -47
  441. package/src/shared/worker-client/functions/handle-ipc-data.function.ts +0 -49
  442. package/src/shared/worker-client/functions/resolve-db-path.function.ts +0 -21
  443. package/src/shared/worker-client/functions/send-ipc-request.function.ts +0 -39
  444. package/src/shared/worker-client/functions/spawn-daemon.function.ts +0 -35
  445. package/src/shared/worker-client/functions/wait-for-daemon.function.ts +0 -34
  446. package/src/shared/worker-client/index.ts +0 -44
  447. package/src/shared/worker-client/typings/add-section-result.model.ts +0 -39
  448. package/src/shared/worker-client/typings/content-result.model.ts +0 -12
  449. package/src/shared/worker-client/typings/daemon-info.model.ts +0 -7
  450. package/src/shared/worker-client/typings/export-result.model.ts +0 -14
  451. package/src/shared/worker-client/typings/gc-result.model.ts +0 -18
  452. package/src/shared/worker-client/typings/integrity-check-result.model.ts +0 -43
  453. package/src/shared/worker-client/typings/json-rpc-response.interface.ts +0 -17
  454. package/src/shared/worker-client/typings/migrate-result.model.ts +0 -11
  455. package/src/shared/worker-client/typings/pending-call.interface.ts +0 -7
  456. package/src/shared/worker-client/typings/rebuild-result.model.ts +0 -12
  457. package/src/shared/worker-client/typings/recall-document.model.ts +0 -16
  458. package/src/shared/worker-client/typings/recall-params.model.ts +0 -15
  459. package/src/shared/worker-client/typings/recall-reference.model.ts +0 -32
  460. package/src/shared/worker-client/typings/recall-result.model.ts +0 -98
  461. package/src/shared/worker-client/typings/recall-sibling.model.ts +0 -11
  462. package/src/shared/worker-client/typings/recall-single-result.model.ts +0 -41
  463. package/src/shared/worker-client/typings/remove-section-result.model.ts +0 -7
  464. package/src/shared/worker-client/typings/search-params.model.ts +0 -14
  465. package/src/shared/worker-client/typings/search-result.model.ts +0 -43
  466. package/src/shared/worker-client/typings/section.model.ts +0 -43
  467. package/src/shared/worker-client/typings/status-result.model.ts +0 -14
  468. package/src/shared/worker-client/typings/version-status.model.ts +0 -28
  469. package/src/shared/worker-client/typings/worker-client-error.interface.ts +0 -8
  470. package/src/shared/worker-client/typings/worker-client-options.interface.ts +0 -30
  471. package/src/shared/worker-daemon/classes/ipc-error.class.ts +0 -22
  472. package/src/shared/worker-daemon/classes/worker-daemon.class.ts +0 -1291
  473. package/src/shared/worker-daemon/constants/daemon-defaults.constant.ts +0 -29
  474. package/src/shared/worker-daemon/constants/wasm-method-map.constant.ts +0 -69
  475. package/src/shared/worker-daemon/functions/build-ipc-error-response.function.ts +0 -16
  476. package/src/shared/worker-daemon/functions/check-catalog-version.function.ts +0 -54
  477. package/src/shared/worker-daemon/functions/check-preconditions.function.ts +0 -28
  478. package/src/shared/worker-daemon/functions/create-host-imports.function.ts +0 -328
  479. package/src/shared/worker-daemon/functions/create-ipc-server.function.ts +0 -87
  480. package/src/shared/worker-daemon/functions/detect-stale-pid.function.ts +0 -33
  481. package/src/shared/worker-daemon/functions/dispatch-request.function.ts +0 -190
  482. package/src/shared/worker-daemon/functions/handle-check-version.function.ts +0 -74
  483. package/src/shared/worker-daemon/functions/handle-config-method.function.ts +0 -27
  484. package/src/shared/worker-daemon/functions/handle-read-ops.function.ts +0 -236
  485. package/src/shared/worker-daemon/functions/handle-write-ops.function.ts +0 -257
  486. package/src/shared/worker-daemon/functions/load-wasm-modules.function.ts +0 -95
  487. package/src/shared/worker-daemon/functions/parse-auto-capture-section.function.ts +0 -51
  488. package/src/shared/worker-daemon/functions/parse-catalog-version.function.ts +0 -20
  489. package/src/shared/worker-daemon/functions/parse-embedding-section.function.ts +0 -38
  490. package/src/shared/worker-daemon/functions/parse-worker-toml.function.ts +0 -104
  491. package/src/shared/worker-daemon/functions/read-config.function.ts +0 -83
  492. package/src/shared/worker-daemon/functions/run-startup-integrity-check.function.ts +0 -55
  493. package/src/shared/worker-daemon/functions/run-worker.function.ts +0 -57
  494. package/src/shared/worker-daemon/functions/scan-near-duplicates.function.ts +0 -92
  495. package/src/shared/worker-daemon/functions/start-daemon.function.ts +0 -74
  496. package/src/shared/worker-daemon/functions/wasm-bridge.function.ts +0 -144
  497. package/src/shared/worker-daemon/functions/wasm-memory-helpers.function.ts +0 -41
  498. package/src/shared/worker-daemon/functions/write-lock.function.ts +0 -49
  499. package/src/shared/worker-daemon/index.ts +0 -16
  500. package/src/shared/worker-daemon/typings/allocator-ref.interface.ts +0 -16
  501. package/src/shared/worker-daemon/typings/daemon-config.interface.ts +0 -20
  502. package/src/shared/worker-daemon/typings/fs-adapter.interface.ts +0 -22
  503. package/src/shared/worker-daemon/typings/handler-context.interface.ts +0 -19
  504. package/src/shared/worker-daemon/typings/ipc-handler.interface.ts +0 -39
  505. package/src/shared/worker-daemon/typings/memory-ref.interface.ts +0 -13
  506. package/src/shared/worker-daemon/typings/wasm-fn.type.ts +0 -2
  507. package/src/shared/worker-daemon/typings/wasm-modules.interface.ts +0 -7
  508. package/src/shared/worker-daemon/typings/write-lock.interface.ts +0 -13
  509. package/src/wasm/fs-database/kbdb_fs_database.d.ts +0 -259
  510. package/src/wasm/fs-database/kbdb_fs_database.js +0 -515
  511. package/src/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
  512. package/src/wasm/fs-database/kbdb_fs_database_bg.wasm.d.ts +0 -35
  513. package/src/wasm/fs-database/package.json +0 -13
  514. package/src/wasm/kb-worker/kbdb_worker.d.ts +0 -650
  515. package/src/wasm/kb-worker/kbdb_worker.js +0 -1181
  516. package/src/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
  517. package/src/wasm/kb-worker/kbdb_worker_bg.wasm.d.ts +0 -77
  518. package/src/wasm/kb-worker/package.json +0 -13
  519. package/src/wasm/query-parser/kbdb_query_parser.d.ts +0 -195
  520. package/src/wasm/query-parser/kbdb_query_parser.js +0 -403
  521. package/src/wasm/query-parser/kbdb_query_parser_bg.wasm.d.ts +0 -25
  522. package/src/wasm/query-parser/package.json +0 -13
  523. package/src/worker.ts +0 -42
@@ -34,8 +34,9 @@ both modes.
34
34
  ## Architecture
35
35
 
36
36
  Two retrieval paths run in parallel. The vector path
37
- runs entirely in TypeScript. No WASM code is added or
38
- modified.
37
+ runs in TypeScript, backed by a lightweight WASM crate
38
+ (`kbdb-default-embedding`) for the built-in TF-IDF
39
+ provider.
39
40
 
40
41
  ```
41
42
  Query → ┌─ Lexical path (WASM) ─→ BM25F ranked list ─┐
@@ -43,12 +44,19 @@ Query → ┌─ Lexical path (WASM) ─→ BM25F ranked list ─┐
43
44
  └─ Vector path (TS) ─→ Cosine ranked list ──┘
44
45
  ```
45
46
 
46
- The WASM boundary is untouched. `query-parser.wasm`
47
- remains a pure-computation lexical module. `kb-worker.wasm`
48
- continues to orchestrate lexical retrieval via
49
- `fs-database.wasm` exactly as today. No new WASM crate,
50
- no new WASM export, and no new host import is needed for
51
- the vector path.
47
+ The existing WASM modules are untouched.
48
+ `query-parser.wasm` remains a pure-computation lexical
49
+ module. `kb-worker.wasm` continues to orchestrate
50
+ lexical retrieval via `fs-database.wasm` exactly as
51
+ today. No new exports or host imports are added to
52
+ any existing WASM module.
53
+
54
+ A new standalone WASM crate, `kbdb-default-embedding`,
55
+ provides the built-in TF-IDF embedding computation.
56
+ It depends only on `kbdb-shared` and requires no host
57
+ imports -- pure computation. It is loaded as an
58
+ independent WASM instance by the worker daemon
59
+ alongside the existing three modules.
52
60
 
53
61
  The TypeScript daemon layer adds the vector path as an
54
62
  independent retrieval step that runs after the lexical
@@ -93,15 +101,29 @@ interface EmbeddingProvider {
93
101
 
94
102
  ### Implementations
95
103
 
96
- Three concrete implementations are specified.
104
+ Four concrete implementations are specified.
105
+
106
+ **`TfidfEmbeddingProvider`** -- lightweight built-in
107
+ provider backed by the `kbdb-default-embedding` WASM
108
+ crate. Computes feature-hashed sublinear TF vectors
109
+ (256 dimensions, L2-normalized) using kbdb-shared's
110
+ tokenization pipeline (NFC normalization, Unicode
111
+ segmentation, camelCase splitting, stop-word removal,
112
+ synonym expansion, Snowball stemming). This ensures
113
+ token consistency between the lexical index and the
114
+ TF-IDF vectors -- hybrid search fuses two views of
115
+ the same vocabulary. The default when no `[embedding]`
116
+ section is present in `worker.toml`. Enables hybrid
117
+ search out of the box with zero configuration and
118
+ zero external dependencies. Uses FNV-1a feature
119
+ hashing with the sign trick (Weinberger et al., 2009).
120
+ Model name: `tfidf-v1`.
97
121
 
98
122
  **`NullEmbeddingProvider`** -- no-op, returns empty
99
- arrays. The default when no `[embedding]` section is
100
- present in `worker.toml`. Requesting `vector` or
101
- `hybrid` search mode with this provider returns a
102
- structured error rather than silently returning empty
103
- results. Satisfies POLA: the absence of configuration
104
- does not silently degrade results.
123
+ arrays. Available for explicit use but no longer the
124
+ default. Returns 0 dimensions, which causes
125
+ `assertProvider` to reject hybrid/vector search
126
+ requests with a structured error.
105
127
 
106
128
  **`OnnxEmbeddingProvider`** -- local offline inference
107
129
  using ONNX Runtime. Default model: `all-MiniLM-L6-v2`
@@ -305,9 +327,12 @@ The default is `lexical`. Existing integrations that do
305
327
  not supply `search_mode` are unchanged. This is a
306
328
  strict backward-compatibility guarantee.
307
329
 
308
- Requesting `vector` or `hybrid` when no embedding
309
- provider is configured (i.e. `NullEmbeddingProvider` is
310
- active) returns a structured error:
330
+ When `[embedding]` is absent from `worker.toml`, the
331
+ `TfidfEmbeddingProvider` is active as the default.
332
+ Hybrid and vector search work out of the box using
333
+ feature-hashed TF vectors. If the user explicitly sets
334
+ `provider = "none"`, `NullEmbeddingProvider` is used
335
+ and hybrid/vector search returns a structured error:
311
336
 
312
337
  ```json
313
338
  {
@@ -320,21 +345,21 @@ active) returns a structured error:
320
345
 
321
346
  ### CLI
322
347
 
323
- The `search` subcommand gains an optional `--mode` flag:
348
+ The `search` subcommand gains an optional `--algo` flag:
324
349
 
325
350
  ```
326
351
  kbdb search "database rationale"
327
- kbdb search --mode hybrid "database rationale"
328
- kbdb search --mode vector "database rationale"
352
+ kbdb search --algo hybrid "database rationale"
353
+ kbdb search --algo vector "database rationale"
329
354
  ```
330
355
 
331
- Omitting `--mode` defaults to `lexical`. The flag is
356
+ Omitting `--algo` defaults to `lexical`. The flag is
332
357
  not shown in the short help unless an embedding provider
333
358
  is configured.
334
359
 
335
360
  ### MCP
336
361
 
337
- The `search` MCP tool gains an optional `mode` parameter
362
+ The `search` MCP tool gains an optional `algo` parameter
338
363
  (string enum: `"lexical" | "vector" | "hybrid"`). The
339
364
  parameter is documented as optional in the tool schema
340
365
  with a default of `"lexical"`.
@@ -378,8 +403,10 @@ api_key_env = "KBDB_API_KEY"
378
403
  | `api_key_env` | `"KBDB_API_KEY"` | Environment variable holding the API key |
379
404
 
380
405
  When `[embedding]` is absent from `worker.toml`,
381
- `provider` defaults to `"none"` and `NullEmbeddingProvider`
382
- is used.
406
+ `provider` defaults to `"none"` and the built-in
407
+ `TfidfEmbeddingProvider` is used (256-dimensional
408
+ feature-hashed TF vectors). To fully disable
409
+ embeddings, set `provider = "none"` explicitly.
383
410
 
384
411
  ## Fallback Behaviour
385
412
 
@@ -388,11 +415,12 @@ in the search response with a specific warning field
388
415
  rather than silently degrading.
389
416
 
390
417
  **No embedding provider configured.**
391
- `search_mode` defaults to `lexical`. Requesting `hybrid`
392
- or `vector` returns a structured error with code
393
- `EMBEDDING_PROVIDER_NOT_CONFIGURED`. No silent fallback
394
- occurs -- the caller receives an actionable error
395
- message.
418
+ The built-in `TfidfEmbeddingProvider` is active by
419
+ default, so hybrid and vector search work without
420
+ configuration. If the user explicitly sets
421
+ `provider = "none"`, requesting `hybrid` or `vector`
422
+ returns a structured error with code
423
+ `EMBEDDING_PROVIDER_NOT_CONFIGURED`.
396
424
 
397
425
  **Stale vector index (model mismatch).**
398
426
  When `vectors-meta.toml` model name does not match the
@@ -413,24 +441,25 @@ results until a rebuild is run.
413
441
 
414
442
  ## Provider Tradeoffs
415
443
 
416
- | Aspect | ONNX (local) | API (cloud) |
417
- |---------------|---------------------------|------------------------------|
418
- | Latency | ~10 ms/embed | ~100 ms/embed |
419
- | Offline | Yes | No |
420
- | Cost | Free | Per-token |
421
- | Quality | Good (384 dimensions) | Excellent (1536+ dimensions) |
422
- | Setup | Model download on first use | API key required |
423
- | Dual runtime | Deno + Node.js >= 20 | Deno + Node.js >= 20 |
424
-
425
- Both providers implement the same `EmbeddingProvider`
444
+ | Aspect | TF-IDF (built-in) | ONNX (local) | API (cloud) |
445
+ |---------------|---------------------------|---------------------------|------------------------------|
446
+ | Latency | < 1 ms/embed | ~10 ms/embed | ~100 ms/embed |
447
+ | Offline | Yes | Yes | No |
448
+ | Cost | Free | Free | Per-token |
449
+ | Quality | Adequate (256 dimensions) | Good (384 dimensions) | Excellent (1536+ dimensions) |
450
+ | Setup | None (default) | Model download on first use | API key required |
451
+ | Dependencies | None | onnxruntime-node | None |
452
+ | Dual runtime | Deno + Node.js >= 20 | Deno + Node.js >= 20 | Deno + Node.js >= 20 |
453
+
454
+ All providers implement the same `EmbeddingProvider`
426
455
  interface. The daemon interacts only with the interface.
427
456
 
428
457
  ## Design Constraints
429
458
 
430
459
  | Constraint | Details |
431
460
  |-----------------------|------------------------------------------------|
432
- | WASM purity | `query-parser.wasm` remains pure lexical computation with no I/O. No new WASM crate or export is added. |
461
+ | WASM purity | `query-parser.wasm` remains pure lexical computation with no I/O. A new standalone crate, `kbdb-default-embedding`, is added for TF-IDF embedding but has no host imports. Existing WASM modules are unchanged. |
433
462
  | Backward compatibility | Default `search_mode` is `lexical`. Callers that do not supply the parameter receive identical behaviour to today. |
434
463
  | File-based storage | `vectors.idx` and `vectors-meta.toml` follow the same derived-and-rebuildable pattern as all other index files. |
435
464
  | Dual runtime | `EmbeddingProvider` and all embedding logic must work on Deno and Node.js >= 20. No Node-specific or Deno-specific APIs in the implementation. |
436
- | No new WASM deps | All new dependencies are TypeScript-side only. The WASM modules (`fs-database.wasm`, `query-parser.wasm`, `kb-worker.wasm`) are not recompiled for this feature. |
465
+ | No new deps on existing WASM | The existing WASM modules (`fs-database.wasm`, `query-parser.wasm`, `kb-worker.wasm`) are not modified or recompiled. A new standalone module (`default-embedding.wasm`) is added, bringing the total to four WASM modules. |
package/docs/goals/mcp.md CHANGED
@@ -27,25 +27,30 @@ identically.
27
27
  ## Invocation
28
28
 
29
29
  ```
30
- kbdb mcp [--db <path>]
30
+ kbdb mcp [--db <path>] [--timeout-ms <ms>]
31
+ [--retry <n>] [--non-interactive]
31
32
  ```
32
33
 
33
- The `--db` flag specifies the absolute path to the
34
- `.kbdb` database directory. If omitted, the server
35
- reads the `KBDB_DIR` environment variable. One of the
36
- two must be provided -- the MCP server does not fall
37
- back to the current working directory.
34
+ All flags are optional. `--db` specifies the path
35
+ to the `.kbdb` database directory. If omitted, the
36
+ server reads the `KBDB_DB_DIR` environment variable,
37
+ then falls back to the current working directory.
38
38
 
39
39
  Resolution order:
40
40
 
41
41
  1. `--db <path>` command-line flag.
42
- 2. `KBDB_DIR` environment variable.
43
- 3. Error: no database directory specified.
42
+ 2. `KBDB_DB_DIR` environment variable.
43
+ 3. Current working directory.
44
44
 
45
- The MCP server does not fall back to the current
46
- working directory because the server's working
47
- directory is determined by the host application, not
48
- the user.
45
+ ### Environment Variables
46
+
47
+ | Variable | Description |
48
+ |-----------------------|-------------------------|
49
+ | `KBDB_DB_DIR` | Fallback database directory when `--db` is not specified |
50
+ | `KBDB_DAEMON_TIMEOUT` | Request timeout fallback (ms); default 30 000 |
51
+ | `KBDB_RETRY` | Retry count fallback; default 5 |
52
+ | `KBDB_LOG_LEVEL` | Log verbosity: `debug`, `info`, `warning`, `error` |
53
+ | `KBDB_NON_INTERACTIVE`| Suppress prompts (`1` or `true`) |
49
54
 
50
55
  See [CLI -- Run Modes](cli.md#run-modes) for how
51
56
  the `kbdb` executable dispatches to MCP mode.
@@ -127,7 +132,7 @@ Add to `.claude/settings.json` or project settings:
127
132
 
128
133
  ### Environment Variable
129
134
 
130
- The `--db` flag can be replaced by `KBDB_DIR`:
135
+ The `--db` flag can be replaced by `KBDB_DB_DIR`:
131
136
 
132
137
  ```json
133
138
  {
@@ -136,7 +141,7 @@ The `--db` flag can be replaced by `KBDB_DIR`:
136
141
  "command": "npx",
137
142
  "args": ["@dikolab/kbdb", "mcp"],
138
143
  "env": {
139
- "KBDB_DIR": "/path/to/.kbdb"
144
+ "KBDB_DB_DIR": "/path/to/.kbdb"
140
145
  }
141
146
  }
142
147
  }
@@ -1125,7 +1130,7 @@ interface McpToolAnnotations {
1125
1130
  }
1126
1131
  ```
1127
1132
 
1128
- Annotations for all 19 kbdb tools:
1133
+ Annotations for all 20 kbdb tools:
1129
1134
 
1130
1135
  | Tool | title | readOnly | destructive | idempotent | openWorld |
1131
1136
  |----------------|-------------------|----------|-------------|------------|-----------|
@@ -1148,6 +1153,7 @@ Annotations for all 19 kbdb tools:
1148
1153
  | `agent-list` | List Agents | true | false | true | false |
1149
1154
  | `agent-get` | Get Agent | true | false | true | false |
1150
1155
  | `agent-delete` | Delete Agent | false | true | true | false |
1156
+ | `auto-capture-review` | Review Captures | false | false | false | false |
1151
1157
 
1152
1158
  ## Completions
1153
1159
 
@@ -1361,7 +1367,7 @@ The difference is the interface:
1361
1367
  | Interface | Command-line arguments | MCP protocol (stdio) |
1362
1368
  | Consumer | Human / shell script | AI agent |
1363
1369
  | Output | stdout (JSON/text/MCP) | MCP tool result format |
1364
- | DB path | CWD or `--db` flag | `--db` flag or `KBDB_DIR` env |
1370
+ | DB path | CWD or `--db` flag | `--db` flag or `KBDB_DB_DIR` env |
1365
1371
 
1366
1372
  See [CLI](cli.md) for CLI mode details,
1367
1373
  [Worker Client](worker-client.md) for the shared
@@ -1513,9 +1519,8 @@ returns `-32601` if they are called.
1513
1519
  - The server works with both Deno and Node.js
1514
1520
  runtimes, consistent with the project's
1515
1521
  dual-runtime requirement.
1516
- - The database path must be explicitly configured
1517
- via `--db` or `KBDB_DIR`. No working directory
1518
- fallback.
1522
+ - The database path is resolved from `--db`,
1523
+ `KBDB_DB_DIR`, or the current working directory.
1519
1524
  - The MCP server does not perform keyword extraction,
1520
1525
  indexing, ranking, or database I/O itself. All
1521
1526
  processing is delegated to the worker daemon via
@@ -114,7 +114,7 @@ for both the Rust engine and the TypeScript layer.
114
114
  lands in the TypeScript source tree, and gets
115
115
  bundled into `dist/`. Start here.
116
116
  - **[Rust/WASM Modules](../modules/rust/overview.md)**
117
- -- Cargo workspace, 4 crates, module namespaces,
117
+ -- Cargo workspace, 5 crates, module namespaces,
118
118
  WASM exports/imports, size optimization, and
119
119
  testing.
120
120
  - **[TypeScript Modules](../modules/typescript/overview.md)**
@@ -193,6 +193,14 @@ hardcoded. Future versions may allow user-defined
193
193
  synonym maps via a `synonyms.toml` configuration file
194
194
  in the `.kbdb` directory.
195
195
 
196
+ **Implementation status:** Synonym expansion is
197
+ implemented in the Rust pipeline
198
+ (`shared/src/pipeline/synonyms.rs`). The
199
+ built-in map covers common technical synonyms.
200
+ The `query-guidance` default skill complements this
201
+ by instructing AI agents to rephrase queries with
202
+ alternative terms before searching.
203
+
196
204
  ## Query Parsing
197
205
 
198
206
  Search queries are parsed into a structured query plan
@@ -58,9 +58,13 @@ with no further processing.
58
58
 
59
59
  ### Pass 2: Cosine (when embeddings available)
60
60
 
61
- Pass 2 runs only when an `EmbeddingProvider` other than
62
- `NullEmbeddingProvider` is active and
63
- `vectors.idx` is present and not stale.
61
+ Pass 2 runs when the active `EmbeddingProvider` has
62
+ non-zero dimensions and `vectors.idx` is present and
63
+ not stale. With the built-in `TfidfEmbeddingProvider`
64
+ as the default (256 dimensions), Pass 2 runs
65
+ automatically without configuration. It is skipped
66
+ only when embeddings are explicitly disabled
67
+ (`provider = "none"` in `worker.toml`).
64
68
 
65
69
  For each gray-zone candidate from Pass 1, retrieve the
66
70
  candidate's embedding from `vectors.idx`. If the
@@ -270,7 +270,9 @@ The spawning sequence:
270
270
  daemon started.
271
271
  4. **On PID file found (success):** worker client
272
272
  closes the stderr pipe, detaches the child, unrefs
273
- it, and connects to the IPC socket.
273
+ it, and connects to the IPC socket. Because the
274
+ daemon writes the PID file only after the socket
275
+ is listening, the client can connect immediately.
274
276
  5. **On timeout or child exit (failure):** worker
275
277
  client reads all buffered stderr from the daemon,
276
278
  includes it in the thrown error (see Startup
@@ -337,6 +339,65 @@ error reason even though the daemon runs as a separate
337
339
  detached process. The daemon's stderr is the single
338
340
  source of truth for startup failure diagnostics.
339
341
 
342
+ ## Connection Retry
343
+
344
+ When the worker client calls `connect()`, transient
345
+ errors (`ENOENT` -- socket not yet created, or
346
+ `ECONNREFUSED` -- server not yet accepting) are
347
+ retried with exponential backoff:
348
+
349
+ - **Max retries**: 5
350
+ - **Initial delay**: 50 ms
351
+ - **Backoff**: doubles each attempt (50, 100, 200,
352
+ 400, 800 ms = ~1.55 s worst case)
353
+ - **Non-transient errors** (`EACCES`, `EINVAL`, etc.)
354
+ fail immediately without retry.
355
+
356
+ This covers the narrow window where the PID file
357
+ exists but the socket has not yet finished binding
358
+ (e.g. under heavy load or slow I/O).
359
+
360
+ ## Post-Connect Failure Handling
361
+
362
+ After a successful `connect()`, if the daemon crashes
363
+ or the IPC socket dies:
364
+
365
+ 1. All pending RPC calls (in `this.pending`) are
366
+ rejected with a descriptive error.
367
+ 2. The client marks itself as disconnected
368
+ (`this.socket = null`).
369
+ 3. The socket is destroyed.
370
+
371
+ The `isConnected` getter exposes the connection
372
+ state so callers (and the cached client factory) can
373
+ check before reusing a client.
374
+
375
+ ## Cached Client Factory
376
+
377
+ `getOrCreateClient(options?)` returns a cached
378
+ `WorkerClient` for the given context path, or creates
379
+ and caches a new one if the cached client is
380
+ disconnected or absent.
381
+
382
+ ```ts
383
+ import { getOrCreateClient } from '@dikolab/kbdb';
384
+
385
+ const client = await getOrCreateClient({
386
+ dbPath: '/path/to/project',
387
+ });
388
+ ```
389
+
390
+ Intended for library consumers and the MCP server.
391
+ CLI one-shots should use `createWorkerClient()`
392
+ directly (each is a separate process anyway).
393
+
394
+ ## Socket Keepalive
395
+
396
+ Both the client and server enable `SO_KEEPALIVE`
397
+ with a 30-second interval. This ensures both ends
398
+ detect a dead peer within ~30 seconds, even if no
399
+ application-level traffic is flowing.
400
+
340
401
  ## `createWorkerClient(options?)`
341
402
 
342
403
  Factory function. Returns a connected `WorkerClient`
@@ -14,8 +14,9 @@ retrieval and caching management. It is accessible
14
14
 
15
15
  The daemon:
16
16
 
17
- 1. Loads and compiles the `kb-worker` WASM module once
18
- at startup.
17
+ 1. Loads and compiles the WASM modules once at startup
18
+ (`kb-worker` for database operations, `embedding`
19
+ for default TF-IDF vector computation).
19
20
  2. Holds indexes and content objects in an in-memory
20
21
  cache managed by the WASM module.
21
22
  3. Listens for IPC requests from worker client
@@ -163,18 +164,21 @@ daemon process performs the following startup sequence:
163
164
  to startup. The health status (`integrity_ok`,
164
165
  `integrity_errors`) is included in subsequent
165
166
  `status` responses.
166
- 7. Writes its PID to `kbdb-{ctx}.pid` in the OS
167
- temporary directory.
167
+ 7. Removes the stale IPC socket if present.
168
168
  8. Creates the IPC socket (`kbdb-{ctx}.sock` on Unix,
169
- named pipe on Windows).
170
- 9. Begins listening for connections.
169
+ named pipe on Windows) and begins listening
170
+ (async, with backlog 256).
171
+ 9. Writes its PID to `kbdb-{ctx}.pid` in the OS
172
+ temporary directory.
171
173
 
172
- The daemon only writes its PID file and creates the
173
- IPC socket after all preconditions pass and the WASM
174
- module is loaded. If the daemon exits before step 7,
175
- the worker client's PID-file poll times out, and the
176
- worker client reads the crash log (or the daemon's
177
- stderr) to report the failure reason.
174
+ The daemon writes its PID file only after the IPC
175
+ socket is bound and listening. This guarantees the
176
+ worker client's PID-file poll succeeds only when
177
+ the socket is ready to accept connections. If the
178
+ daemon exits before step 9, the worker client's
179
+ PID-file poll times out, and the worker client
180
+ reads the crash log (or the daemon's stderr) to
181
+ report the failure reason.
178
182
 
179
183
  ### Startup Preconditions
180
184
 
@@ -273,6 +277,14 @@ a client connects, disconnects, or sends a request.
273
277
  The daemon stays alive as long as at least one client
274
278
  is connected, regardless of the idle timer.
275
279
 
280
+ `SO_KEEPALIVE` (30-second interval) provides a
281
+ secondary mechanism for detecting dead connections
282
+ beyond the counter-based idle timer. If a client
283
+ process crashes without closing the socket, the OS
284
+ will detect the dead peer within ~30 seconds and
285
+ close the connection, allowing the daemon to
286
+ decrement its counter and eventually idle-shutdown.
287
+
276
288
  ## Graceful Shutdown
277
289
 
278
290
  On shutdown (idle timeout or OS signal SIGTERM/SIGINT),
@@ -288,24 +300,28 @@ the daemon:
288
300
  exists.
289
301
  7. Calls `process.exit(0)`.
290
302
 
291
- ## WASM Module
303
+ ## WASM Modules
292
304
 
293
- The daemon loads a single WASM module: `kb-worker.wasm`
294
- (file: `kbdb_worker_bg.wasm`). This module statically
295
- links the `fs-database` and `query-parser` crates, so
296
- only one module needs to be compiled and instantiated.
305
+ The daemon loads four WASM modules at startup. Three
306
+ share a single `WebAssembly.Memory` and are wired
307
+ together via imports; the fourth is a standalone
308
+ pure-computation module.
297
309
 
298
310
  ```
299
- kbdb_worker_bg.wasm
300
- (statically links fs-database + query-parser)
311
+ query-parser.wasm (standalone)
312
+ fs-database.wasm (standalone)
313
+ default-embedding.wasm (standalone, no host imports)
314
+
315
+ kb-worker.wasm
316
+ (imports query-parser + fs-database)
301
317
 
302
318
  host I/O imports (TypeScript)
303
319
  ```
304
320
 
305
321
  ### WASM Module: kb-worker.wasm
306
322
 
307
- `kb-worker.wasm` is the single module loaded by the
308
- daemon. Its responsibilities:
323
+ `kb-worker.wasm` is the orchestration module. Its
324
+ responsibilities:
309
325
 
310
326
  - **Query orchestration** -- Parses queries, performs
311
327
  index lookups, scores and ranks results.
@@ -447,6 +463,26 @@ Configuration is set once when the daemon spawns and
447
463
  does not change until the daemon shuts down and a new
448
464
  one is spawned.
449
465
 
466
+ ### Client vs Daemon Timeouts
467
+
468
+ The `KBDB_DAEMON_TIMEOUT` environment variable (or
469
+ `--timeout-ms` CLI flag) controls the **client-side
470
+ request timeout** -- how long a CLI or MCP client
471
+ waits for a response from the daemon before giving
472
+ up and optionally retrying.
473
+
474
+ The `timeout_ms` setting in `worker.toml` controls
475
+ the **daemon-side idle timeout** -- how long the
476
+ daemon stays alive after all client connections have
477
+ closed.
478
+
479
+ These are independent. A long-running query may
480
+ exceed the client request timeout while the daemon
481
+ continues processing. Conversely, a short idle
482
+ timeout shuts the daemon down quickly between
483
+ invocations but has no effect on in-flight
484
+ requests.
485
+
450
486
  ## IPC Transport
451
487
 
452
488
  The daemon listens on a local IPC channel:
@@ -471,6 +507,17 @@ No third-party IPC library is required. The daemon
471
507
  creates the IPC socket at startup and removes it on
472
508
  shutdown.
473
509
 
510
+ ### Socket Options
511
+
512
+ - **Backlog**: `256`. Handles connection bursts from
513
+ concurrent CLI invocations and benchmarks without
514
+ dropping connections.
515
+ - **SO_KEEPALIVE**: Enabled on every accepted
516
+ connection with a 30-second interval. Detects dead
517
+ clients without relying solely on the idle timer.
518
+ Both the server and client enable keepalive (see
519
+ [Worker Client](worker-client.md)).
520
+
474
521
  ## IPC Protocol
475
522
 
476
523
  Communication uses **JSON-RPC 2.0** over the IPC
@@ -1481,14 +1528,20 @@ The worker daemon (`src/worker.ts` and its compiled
1481
1528
  `kbdb-worker.js`) ships as part of the npm/JSR package.
1482
1529
  No per-platform native binaries are required.
1483
1530
 
1484
- The package includes one WASM module:
1485
-
1486
- - `kb-worker/kbdb_worker_bg.wasm` -- single module
1487
- that statically links the query-parser and
1488
- fs-database crates
1489
-
1490
- It is compiled from Rust via `wasm-pack` and works on
1491
- all platforms. The daemon loads and compiles it at
1492
- startup using the runtime's `WebAssembly` API. The
1531
+ The package includes four WASM modules:
1532
+
1533
+ - `kb-worker/kbdb_worker_bg.wasm` -- orchestration
1534
+ module that imports query-parser and fs-database
1535
+ - `query-parser/query_parser_bg.wasm` -- tokenization
1536
+ and query parsing
1537
+ - `fs-database/fs_database_bg.wasm` -- filesystem
1538
+ storage engine
1539
+ - `default-embedding/kbdb_default_embedding_bg.wasm`
1540
+ -- built-in TF-IDF embedding (standalone, no host
1541
+ imports)
1542
+
1543
+ All are compiled from Rust via `wasm-pack` and work
1544
+ on all platforms. The daemon loads and compiles them
1545
+ at startup using the runtime's `WebAssembly` API. The
1493
1546
  daemon runs on the same runtime (Node.js or Deno) as
1494
1547
  the worker client that spawns it.