@dikolab/kbdb 0.2.2 → 0.3.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 (520) hide show
  1. package/README.md +47 -31
  2. package/dist/bench/constants/corpus-defaults.constant.d.ts +3 -0
  3. package/dist/bench/functions/format-report.function.d.ts +11 -0
  4. package/dist/bench/functions/generate-corpus.function.d.ts +12 -0
  5. package/dist/bench/functions/measure-operation.function.d.ts +14 -0
  6. package/dist/bench/functions/seeded-rng.function.d.ts +11 -0
  7. package/dist/bench/functions/zipf-word.function.d.ts +13 -0
  8. package/dist/bench/index.d.ts +10 -0
  9. package/dist/bench/typings/bench-result.interface.d.ts +11 -0
  10. package/dist/bench/typings/bench-suite-result.interface.d.ts +10 -0
  11. package/dist/bench/typings/corpus-config.interface.d.ts +11 -0
  12. package/dist/bench/typings/corpus-section.interface.d.ts +9 -0
  13. package/dist/cli.cjs +523 -80
  14. package/dist/cli.cjs.map +4 -4
  15. package/dist/cli.mjs +515 -72
  16. package/dist/cli.mjs.map +4 -4
  17. package/dist/kbdb-worker.cjs +395 -60
  18. package/dist/kbdb-worker.cjs.map +4 -4
  19. package/dist/mod.cjs +17 -0
  20. package/dist/mod.cjs.map +2 -2
  21. package/dist/mod.mjs +17 -0
  22. package/dist/mod.mjs.map +2 -2
  23. package/dist/src/shared/auto-capture/classes/auto-capture-controller.class.d.ts +33 -0
  24. package/dist/src/shared/auto-capture/constants/auto-capture-defaults.constant.d.ts +8 -0
  25. package/dist/src/shared/auto-capture/functions/build-capture-prompt.function.d.ts +11 -0
  26. package/dist/src/shared/auto-capture/functions/evaluate-trigger.function.d.ts +12 -0
  27. package/dist/src/shared/auto-capture/index.d.ts +7 -0
  28. package/dist/src/shared/auto-capture/typings/auto-capture-config.interface.d.ts +13 -0
  29. package/dist/src/shared/auto-capture/typings/auto-capture-state.interface.d.ts +13 -0
  30. package/dist/src/shared/auto-capture/typings/auto-capture-trigger.interface.d.ts +7 -0
  31. package/dist/src/shared/cli/constants/global-help.constant.d.ts +8 -0
  32. package/dist/src/shared/cli/constants/leaf-help.constant.d.ts +7 -0
  33. package/dist/src/shared/cli/constants/memory-protocol-body.constant.d.ts +7 -0
  34. package/dist/src/shared/cli/constants/query-guidance-body.constant.d.ts +7 -0
  35. package/dist/src/shared/cli/constants/subcommand-help.constant.d.ts +8 -0
  36. package/dist/src/shared/cli/functions/collect-files.function.d.ts +13 -0
  37. package/dist/src/shared/cli/functions/compute-section-kbid.function.d.ts +15 -0
  38. package/dist/src/shared/cli/functions/dispatch-command.function.d.ts +3 -1
  39. package/dist/src/shared/cli/functions/format-mcp-output.function.d.ts +9 -0
  40. package/dist/src/shared/cli/functions/format-text-output.function.d.ts +9 -0
  41. package/dist/src/shared/cli/functions/generate-group-help.function.d.ts +11 -0
  42. package/dist/src/shared/cli/functions/handle-data-command.function.d.ts +16 -0
  43. package/dist/src/shared/cli/functions/handle-mcp.function.d.ts +15 -0
  44. package/dist/src/shared/cli/functions/handle-migrate.function.d.ts +15 -0
  45. package/dist/src/shared/cli/functions/hydrate-search-previews.function.d.ts +14 -0
  46. package/dist/src/shared/cli/functions/install-default-skills.function.d.ts +12 -0
  47. package/dist/src/shared/cli/functions/resolve-skill-names.function.d.ts +16 -0
  48. package/dist/src/shared/cli/functions/run-check.function.d.ts +47 -5
  49. package/dist/src/shared/cli/functions/run-export.function.d.ts +34 -0
  50. package/dist/src/shared/cli/functions/run-gc.function.d.ts +6 -0
  51. package/dist/src/shared/cli/functions/run-learn.function.d.ts +35 -6
  52. package/dist/src/shared/cli/functions/run-recall.function.d.ts +45 -0
  53. package/dist/src/shared/cli/functions/run-search.function.d.ts +53 -15
  54. package/dist/src/shared/cli/functions/version-gate.function.d.ts +15 -0
  55. package/dist/src/shared/cli/functions/wrap-command.function.d.ts +15 -0
  56. package/dist/src/shared/cli/index.d.ts +4 -0
  57. package/dist/src/shared/cli/typings/agent-create-client.interface.d.ts +42 -0
  58. package/dist/src/shared/cli/typings/agent-get-client.interface.d.ts +36 -0
  59. package/dist/src/shared/cli/typings/check-client.interface.d.ts +58 -0
  60. package/dist/src/shared/cli/typings/cli-deps.interface.d.ts +48 -0
  61. package/dist/src/shared/cli/typings/cli-options.interface.d.ts +15 -0
  62. package/dist/src/shared/cli/typings/disconnectable-client.interface.d.ts +26 -0
  63. package/dist/src/shared/cli/typings/dispatch-client.type.d.ts +27 -0
  64. package/dist/src/shared/cli/typings/learn-client.interface.d.ts +52 -0
  65. package/dist/src/shared/cli/typings/learn-io.interface.d.ts +5 -0
  66. package/dist/src/shared/cli/typings/learn-result.model.d.ts +19 -0
  67. package/dist/src/shared/cli/typings/search-client.interface.d.ts +71 -0
  68. package/dist/src/shared/cli/typings/search-display.model.d.ts +18 -0
  69. package/dist/src/shared/embedding/classes/null-embedding-provider.class.d.ts +20 -0
  70. package/dist/src/shared/embedding/constants/near-duplicate-thresholds.constant.d.ts +15 -0
  71. package/dist/src/shared/embedding/functions/build-vector-index.function.d.ts +14 -0
  72. package/dist/src/shared/embedding/functions/cosine-similarity.function.d.ts +10 -0
  73. package/dist/src/shared/embedding/functions/detect-near-duplicates.function.d.ts +18 -0
  74. package/dist/src/shared/embedding/functions/jaccard-coefficient.function.d.ts +9 -0
  75. package/dist/src/shared/embedding/functions/read-vector-index-meta.function.d.ts +10 -0
  76. package/dist/src/shared/embedding/functions/rrf-fuse.function.d.ts +14 -0
  77. package/dist/src/shared/embedding/functions/search-vectors.function.d.ts +14 -0
  78. package/dist/src/shared/embedding/index.d.ts +16 -0
  79. package/dist/src/shared/embedding/typings/embedding-config.interface.d.ts +20 -0
  80. package/dist/src/shared/embedding/typings/embedding-provider.interface.d.ts +23 -0
  81. package/dist/src/shared/embedding/typings/near-duplicate-candidate.model.d.ts +23 -0
  82. package/dist/src/shared/embedding/typings/near-duplicate-result.model.d.ts +24 -0
  83. package/dist/src/shared/embedding/typings/vector-index-entry.model.d.ts +12 -0
  84. package/dist/src/shared/embedding/typings/vector-index-meta.model.d.ts +11 -0
  85. package/dist/src/shared/embedding/typings/vector-search-result.model.d.ts +7 -0
  86. package/dist/src/shared/mcp/classes/mcp-server.class.d.ts +8 -0
  87. package/dist/src/shared/mcp/constants/tool-agent-create.constant.d.ts +3 -0
  88. package/dist/src/shared/mcp/constants/tool-agent-delete.constant.d.ts +3 -0
  89. package/dist/src/shared/mcp/constants/tool-agent-get.constant.d.ts +3 -0
  90. package/dist/src/shared/mcp/constants/tool-agent-list.constant.d.ts +3 -0
  91. package/dist/src/shared/mcp/constants/tool-auto-capture-review.constant.d.ts +8 -0
  92. package/dist/src/shared/mcp/constants/tool-check.constant.d.ts +3 -0
  93. package/dist/src/shared/mcp/constants/tool-content.constant.d.ts +3 -0
  94. package/dist/src/shared/mcp/constants/tool-export.constant.d.ts +3 -0
  95. package/dist/src/shared/mcp/constants/tool-gc.constant.d.ts +3 -0
  96. package/dist/src/shared/mcp/constants/tool-learn.constant.d.ts +3 -0
  97. package/dist/src/shared/mcp/constants/tool-rebuild.constant.d.ts +3 -0
  98. package/dist/src/shared/mcp/constants/tool-recall.constant.d.ts +3 -0
  99. package/dist/src/shared/mcp/constants/tool-retrieve.constant.d.ts +3 -0
  100. package/dist/src/shared/mcp/constants/tool-search.constant.d.ts +3 -0
  101. package/dist/src/shared/mcp/constants/tool-skill-delete.constant.d.ts +3 -0
  102. package/dist/src/shared/mcp/constants/tool-skill-get.constant.d.ts +3 -0
  103. package/dist/src/shared/mcp/constants/tool-skill-learn.constant.d.ts +3 -0
  104. package/dist/src/shared/mcp/constants/tool-skill-list.constant.d.ts +3 -0
  105. package/dist/src/shared/mcp/constants/tool-status.constant.d.ts +3 -0
  106. package/dist/src/shared/mcp/constants/tool-unlearn.constant.d.ts +3 -0
  107. package/dist/src/shared/mcp/functions/as-boolean-or-undefined.function.d.ts +7 -0
  108. package/dist/src/shared/mcp/functions/as-string-array-or-undefined.function.d.ts +7 -0
  109. package/dist/src/shared/mcp/functions/as-string-array.function.d.ts +7 -0
  110. package/dist/src/shared/mcp/functions/as-string.function.d.ts +8 -0
  111. package/dist/src/shared/mcp/functions/build-skills-text.function.d.ts +18 -0
  112. package/dist/src/shared/mcp/functions/handle-agent-prompt.function.d.ts +14 -0
  113. package/dist/src/shared/mcp/functions/handle-mcp-request.function.d.ts +14 -0
  114. package/dist/src/shared/mcp/functions/handle-prompt-get.function.d.ts +4 -3
  115. package/dist/src/shared/mcp/functions/handle-skill-prompt.function.d.ts +16 -0
  116. package/dist/src/shared/mcp/functions/handle-tool-auto-capture-review.function.d.ts +12 -0
  117. package/dist/src/shared/mcp/functions/handle-tool-check.function.d.ts +11 -0
  118. package/dist/src/shared/mcp/functions/handle-tool-content.function.d.ts +12 -0
  119. package/dist/src/shared/mcp/functions/handle-tool-export.function.d.ts +12 -0
  120. package/dist/src/shared/mcp/functions/handle-tool-gc.function.d.ts +11 -0
  121. package/dist/src/shared/mcp/functions/handle-tool-learn.function.d.ts +12 -0
  122. package/dist/src/shared/mcp/functions/handle-tool-rebuild.function.d.ts +11 -0
  123. package/dist/src/shared/mcp/functions/handle-tool-retrieve.function.d.ts +12 -0
  124. package/dist/src/shared/mcp/functions/handle-tool-search.function.d.ts +13 -0
  125. package/dist/src/shared/mcp/functions/handle-tool-skill-delete.function.d.ts +12 -0
  126. package/dist/src/shared/mcp/functions/handle-tool-skill-get.function.d.ts +13 -0
  127. package/dist/src/shared/mcp/functions/handle-tool-skill-learn.function.d.ts +13 -0
  128. package/dist/src/shared/mcp/functions/handle-tool-skill-list.function.d.ts +11 -0
  129. package/dist/src/shared/mcp/functions/handle-tool-status.function.d.ts +11 -0
  130. package/dist/src/shared/mcp/functions/handle-tool-unlearn.function.d.ts +12 -0
  131. package/dist/src/shared/mcp/functions/parse-agent-meta.function.d.ts +14 -0
  132. package/dist/src/shared/mcp/functions/parse-skill-arguments.function.d.ts +11 -0
  133. package/dist/src/shared/mcp/functions/read-agent-meta.function.d.ts +17 -0
  134. package/dist/src/shared/mcp/functions/resolve-skill-refs.function.d.ts +23 -0
  135. package/dist/src/shared/mcp/functions/run-startup-health-check.function.d.ts +14 -0
  136. package/dist/src/shared/mcp/typings/mcp-capabilities.interface.d.ts +16 -0
  137. package/dist/src/shared/mcp/typings/mcp-client.interface.d.ts +45 -0
  138. package/dist/src/shared/mcp/typings/mcp-completion.interface.d.ts +43 -0
  139. package/dist/src/shared/mcp/typings/mcp-content-result.model.d.ts +9 -0
  140. package/dist/src/shared/mcp/typings/mcp-export-result.model.d.ts +11 -0
  141. package/dist/src/shared/mcp/typings/mcp-gc-result.model.d.ts +15 -0
  142. package/dist/src/shared/mcp/typings/mcp-integrity-check-result.model.d.ts +16 -0
  143. package/dist/src/shared/mcp/typings/mcp-integrity-error.model.d.ts +9 -0
  144. package/dist/src/shared/mcp/typings/mcp-notification.interface.d.ts +9 -0
  145. package/dist/src/shared/mcp/typings/mcp-rebuild-result.model.d.ts +9 -0
  146. package/dist/src/shared/mcp/typings/mcp-request.interface.d.ts +11 -0
  147. package/dist/src/shared/mcp/typings/mcp-resource-result.interface.d.ts +12 -0
  148. package/dist/src/shared/mcp/typings/mcp-resource-template.interface.d.ts +11 -0
  149. package/dist/src/shared/mcp/typings/mcp-response.interface.d.ts +18 -0
  150. package/dist/src/shared/mcp/typings/mcp-server-info.interface.d.ts +7 -0
  151. package/dist/src/shared/mcp/typings/mcp-server-state.interface.d.ts +16 -0
  152. package/dist/src/shared/mcp/typings/mcp-tool-annotations.interface.d.ts +32 -0
  153. package/dist/src/shared/mcp/typings/mcp-tool-definition.interface.d.ts +15 -0
  154. package/dist/src/shared/mcp/typings/mcp-tool-result.interface.d.ts +19 -0
  155. package/dist/src/shared/mcp/typings/mcp-worker-client.interface.d.ts +220 -0
  156. package/dist/src/shared/mcp/typings/tool-call-result.model.d.ts +17 -0
  157. package/dist/src/shared/sync/functions/build-import-report.function.d.ts +18 -0
  158. package/dist/src/shared/sync/functions/parse-export-entry.function.d.ts +11 -0
  159. package/dist/src/shared/sync/functions/resolve-conflict.function.d.ts +13 -0
  160. package/dist/src/shared/sync/functions/serialize-export-entry.function.d.ts +8 -0
  161. package/dist/src/shared/sync/index.d.ts +9 -0
  162. package/dist/src/shared/sync/typings/conflict-resolution.type.d.ts +8 -0
  163. package/dist/src/shared/sync/typings/export-entry.interface.d.ts +13 -0
  164. package/dist/src/shared/sync/typings/export-options.interface.d.ts +9 -0
  165. package/dist/src/shared/sync/typings/import-options.interface.d.ts +7 -0
  166. package/dist/src/shared/sync/typings/import-report.interface.d.ts +15 -0
  167. package/dist/src/shared/wasm-codec/functions/decode-add-section-result.function.d.ts +48 -0
  168. package/dist/src/shared/wasm-codec/functions/decode-one-recall-result.function.d.ts +14 -0
  169. package/dist/src/shared/wasm-codec/functions/decode-option-string.function.d.ts +12 -0
  170. package/dist/src/shared/wasm-codec/functions/decode-recall-document.function.d.ts +14 -0
  171. package/dist/src/shared/wasm-codec/functions/decode-recall-reference.function.d.ts +14 -0
  172. package/dist/src/shared/wasm-codec/functions/decode-recall-sibling.function.d.ts +13 -0
  173. package/dist/src/shared/wasm-codec/functions/decode-scored-results.function.d.ts +58 -0
  174. package/dist/src/shared/wasm-codec/functions/decode-section-match.function.d.ts +15 -0
  175. package/dist/src/shared/wasm-codec/functions/decode-section-record-trailing.function.d.ts +14 -0
  176. package/dist/src/shared/wasm-codec/functions/decode-section-record.function.d.ts +14 -0
  177. package/dist/src/shared/wasm-codec/functions/decode-section-records.function.d.ts +33 -0
  178. package/dist/src/shared/wasm-codec/functions/decode-section-type.function.d.ts +13 -0
  179. package/dist/src/shared/wasm-codec/functions/decode-wasm-list.function.d.ts +17 -0
  180. package/dist/src/shared/wasm-codec/functions/encode-add-section-params.function.d.ts +52 -0
  181. package/dist/src/shared/wasm-codec/index.d.ts +2 -0
  182. package/dist/src/shared/wasm-codec/typings/add-section-input.model.d.ts +45 -0
  183. package/dist/src/shared/wasm-codec/typings/add-section-result.model.d.ts +27 -0
  184. package/dist/src/shared/wasm-codec/typings/document-manifest.model.d.ts +19 -0
  185. package/dist/src/shared/wasm-codec/typings/document-section.model.d.ts +12 -0
  186. package/dist/src/shared/wasm-codec/typings/item-decoder.type.d.ts +6 -0
  187. package/dist/src/shared/wasm-codec/typings/near-duplicate.model.d.ts +16 -0
  188. package/dist/src/shared/wasm-codec/typings/paged-search-result.model.d.ts +21 -0
  189. package/dist/src/shared/wasm-codec/typings/section-match.model.d.ts +31 -0
  190. package/dist/src/shared/wasm-codec/typings/section-record-trailing.model.d.ts +38 -0
  191. package/dist/src/shared/wasm-codec/typings/section-record.model.d.ts +66 -0
  192. package/dist/src/shared/wasm-codec/typings/section-type-result.model.d.ts +12 -0
  193. package/dist/src/shared/worker-client/classes/worker-client.class.d.ts +16 -0
  194. package/dist/src/shared/worker-client/functions/handle-ipc-data.function.d.ts +16 -0
  195. package/dist/src/shared/worker-client/functions/send-ipc-request.function.d.ts +19 -0
  196. package/dist/src/shared/worker-client/index.d.ts +1 -1
  197. package/dist/src/shared/worker-client/typings/add-section-result.model.d.ts +31 -15
  198. package/dist/src/shared/worker-client/typings/export-result.model.d.ts +14 -0
  199. package/dist/src/shared/worker-client/typings/gc-result.model.d.ts +6 -0
  200. package/dist/src/shared/worker-client/typings/json-rpc-response.interface.d.ts +16 -0
  201. package/dist/src/shared/worker-client/typings/pending-call.interface.d.ts +7 -0
  202. package/dist/src/shared/worker-client/typings/recall-document.model.d.ts +16 -0
  203. package/dist/src/shared/worker-client/typings/recall-params.model.d.ts +15 -0
  204. package/dist/src/shared/worker-client/typings/recall-reference.model.d.ts +32 -0
  205. package/dist/src/shared/worker-client/typings/recall-sibling.model.d.ts +11 -0
  206. package/dist/src/shared/worker-client/typings/recall-single-result.model.d.ts +40 -0
  207. package/dist/src/shared/worker-client/typings/search-result.model.d.ts +12 -0
  208. package/dist/src/shared/worker-client/typings/section.model.d.ts +16 -0
  209. package/dist/src/shared/worker-daemon/classes/ipc-error.class.d.ts +17 -0
  210. package/dist/src/shared/worker-daemon/classes/worker-daemon.class.d.ts +35 -0
  211. package/dist/src/shared/worker-daemon/constants/wasm-method-map.constant.d.ts +16 -0
  212. package/dist/src/shared/worker-daemon/functions/build-ipc-error-response.function.d.ts +9 -0
  213. package/dist/src/shared/worker-daemon/functions/check-catalog-version.function.d.ts +9 -0
  214. package/dist/src/shared/worker-daemon/functions/check-preconditions.function.d.ts +10 -0
  215. package/dist/src/shared/worker-daemon/functions/detect-stale-pid.function.d.ts +15 -0
  216. package/dist/src/shared/worker-daemon/functions/dispatch-request.function.d.ts +35 -0
  217. package/dist/src/shared/worker-daemon/functions/handle-check-version.function.d.ts +23 -0
  218. package/dist/src/shared/worker-daemon/functions/handle-config-method.function.d.ts +11 -0
  219. package/dist/src/shared/worker-daemon/functions/handle-read-ops.function.d.ts +52 -0
  220. package/dist/src/shared/worker-daemon/functions/handle-write-ops.function.d.ts +44 -0
  221. package/dist/src/shared/worker-daemon/functions/parse-auto-capture-section.function.d.ts +14 -0
  222. package/dist/src/shared/worker-daemon/functions/parse-catalog-version.function.d.ts +10 -0
  223. package/dist/src/shared/worker-daemon/functions/parse-embedding-section.function.d.ts +13 -0
  224. package/dist/src/shared/worker-daemon/functions/parse-worker-toml.function.d.ts +11 -0
  225. package/dist/src/shared/worker-daemon/functions/run-startup-integrity-check.function.d.ts +18 -0
  226. package/dist/src/shared/worker-daemon/functions/scan-near-duplicates.function.d.ts +21 -0
  227. package/dist/src/shared/worker-daemon/functions/wasm-bridge.function.d.ts +51 -0
  228. package/dist/src/shared/worker-daemon/functions/wasm-memory-helpers.function.d.ts +22 -0
  229. package/dist/src/shared/worker-daemon/functions/write-lock.function.d.ts +32 -0
  230. package/dist/src/shared/worker-daemon/typings/allocator-ref.interface.d.ts +16 -0
  231. package/dist/src/shared/worker-daemon/typings/daemon-config.interface.d.ts +6 -0
  232. package/dist/src/shared/worker-daemon/typings/fs-adapter.interface.d.ts +22 -0
  233. package/dist/src/shared/worker-daemon/typings/handler-context.interface.d.ts +18 -0
  234. package/dist/src/shared/worker-daemon/typings/memory-ref.interface.d.ts +13 -0
  235. package/dist/src/shared/worker-daemon/typings/wasm-fn.type.d.ts +2 -0
  236. package/dist/src/shared/worker-daemon/typings/write-lock.interface.d.ts +15 -0
  237. package/dist/wasm/fs-database/kbdb_fs_database.d.ts +22 -1
  238. package/dist/wasm/fs-database/kbdb_fs_database.js +28 -1
  239. package/dist/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
  240. package/dist/wasm/fs-database/kbdb_fs_database_bg.wasm.d.ts +1 -0
  241. package/dist/wasm/kb-worker/kbdb_worker.d.ts +48 -1
  242. package/dist/wasm/kb-worker/kbdb_worker.js +60 -1
  243. package/dist/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
  244. package/dist/wasm/kb-worker/kbdb_worker_bg.wasm.d.ts +2 -0
  245. package/dist/wasm/query-parser/kbdb_query_parser_bg.wasm +0 -0
  246. package/dist/worker.mjs +396 -60
  247. package/dist/worker.mjs.map +4 -4
  248. package/docs/details/cli.md +102 -15
  249. package/docs/details/library-api.md +55 -6
  250. package/docs/details/mcp-server.md +10 -4
  251. package/docs/details/search-and-ranking.md +63 -5
  252. package/docs/details/storage.md +2 -0
  253. package/docs/goals/auto-capture.md +378 -0
  254. package/docs/goals/benchmarking.md +296 -0
  255. package/docs/goals/cli.md +255 -14
  256. package/docs/goals/concurrency.md +259 -0
  257. package/docs/goals/database.md +244 -17
  258. package/docs/goals/document.md +1 -1
  259. package/docs/goals/hybrid-search.md +436 -0
  260. package/docs/goals/mcp.md +83 -14
  261. package/docs/goals/query-parser.md +98 -4
  262. package/docs/goals/query-result.md +177 -10
  263. package/docs/goals/semantic-dedup.md +229 -0
  264. package/docs/goals/skills.md +72 -0
  265. package/docs/goals/sync.md +217 -0
  266. package/docs/goals/worker-daemon.md +54 -7
  267. package/docs/modules/rust/fs-database/functions/integrity.md +11 -0
  268. package/docs/modules/rust/fs-database/functions/section.md +23 -6
  269. package/docs/modules/rust/fs-database/indexes/vectors.md +110 -0
  270. package/docs/modules/rust/fs-database/module.md +1 -0
  271. package/docs/modules/rust/fs-database/types/section.md +27 -1
  272. package/docs/modules/rust/overview.md +2 -1
  273. package/docs/modules/rust/query-parser/functions/module.md +2 -2
  274. package/docs/modules/rust/query-parser/functions/pipeline.md +44 -6
  275. package/docs/modules/rust/query-parser/module.md +5 -4
  276. package/docs/modules/rust/query-parser/types/keyphrase.md +11 -0
  277. package/docs/modules/rust/query-parser/types/module.md +3 -3
  278. package/docs/modules/typescript/shared/auto-capture/module.md +73 -0
  279. package/docs/modules/typescript/shared/cli/functions.md +68 -3
  280. package/docs/modules/typescript/shared/embedding/functions.md +94 -0
  281. package/docs/modules/typescript/shared/embedding/module.md +71 -0
  282. package/docs/modules/typescript/shared/embedding/typings.md +122 -0
  283. package/docs/overview.md +148 -166
  284. package/docs/release-notes/0.2.0.md +3 -3
  285. package/docs/release-notes/0.3.0.md +89 -0
  286. package/docs/release-notes/0.3.1.md +111 -0
  287. package/docs/release-notes/README.md +2 -0
  288. package/package.json +1 -1
  289. package/src/shared/auto-capture/classes/auto-capture-controller.class.ts +62 -0
  290. package/src/shared/auto-capture/constants/auto-capture-defaults.constant.ts +15 -0
  291. package/src/shared/auto-capture/functions/build-capture-prompt.function.ts +27 -0
  292. package/src/shared/auto-capture/functions/evaluate-trigger.function.ts +50 -0
  293. package/src/shared/auto-capture/index.ts +7 -0
  294. package/src/shared/auto-capture/typings/auto-capture-config.interface.ts +13 -0
  295. package/src/shared/auto-capture/typings/auto-capture-state.interface.ts +13 -0
  296. package/src/shared/auto-capture/typings/auto-capture-trigger.interface.ts +7 -0
  297. package/src/shared/cli/constants/global-help.constant.ts +73 -0
  298. package/src/shared/cli/constants/leaf-help.constant.ts +219 -0
  299. package/src/shared/cli/constants/memory-protocol-body.constant.ts +39 -0
  300. package/src/shared/cli/constants/query-guidance-body.constant.ts +37 -0
  301. package/src/shared/cli/constants/subcommand-help.constant.ts +195 -0
  302. package/src/shared/cli/functions/collect-files.function.ts +55 -0
  303. package/src/shared/cli/functions/compute-section-kbid.function.ts +49 -0
  304. package/src/shared/cli/functions/dispatch-command.function.ts +53 -1
  305. package/src/shared/cli/functions/format-mcp-output.function.ts +41 -0
  306. package/src/shared/cli/functions/format-output.function.ts +36 -12
  307. package/src/shared/cli/functions/format-text-output.function.ts +42 -0
  308. package/src/shared/cli/functions/generate-group-help.function.ts +41 -0
  309. package/src/shared/cli/functions/generate-help.function.ts +56 -1
  310. package/src/shared/cli/functions/handle-data-command.function.ts +67 -0
  311. package/src/shared/cli/functions/handle-mcp.function.ts +56 -0
  312. package/src/shared/cli/functions/handle-migrate.function.ts +64 -0
  313. package/src/shared/cli/functions/hydrate-search-previews.function.ts +29 -0
  314. package/src/shared/cli/functions/install-default-skills.function.ts +296 -0
  315. package/src/shared/cli/functions/parse-args.function.ts +16 -0
  316. package/src/shared/cli/functions/resolve-skill-names.function.ts +43 -0
  317. package/src/shared/cli/functions/run-check.function.ts +87 -6
  318. package/src/shared/cli/functions/run-export.function.ts +40 -0
  319. package/src/shared/cli/functions/run-gc.function.ts +6 -0
  320. package/src/shared/cli/functions/run-init.function.ts +2 -0
  321. package/src/shared/cli/functions/run-learn.function.ts +68 -16
  322. package/src/shared/cli/functions/run-recall.function.ts +66 -0
  323. package/src/shared/cli/functions/run-search.function.ts +60 -15
  324. package/src/shared/cli/functions/version-gate.function.ts +44 -0
  325. package/src/shared/cli/functions/wrap-command.function.ts +34 -0
  326. package/src/shared/cli/index.ts +4 -0
  327. package/src/shared/cli/typings/agent-create-client.interface.ts +47 -0
  328. package/src/shared/cli/typings/agent-get-client.interface.ts +39 -0
  329. package/src/shared/cli/typings/check-client.interface.ts +66 -0
  330. package/src/shared/cli/typings/cli-deps.interface.ts +54 -0
  331. package/src/shared/cli/typings/cli-options.interface.ts +15 -0
  332. package/src/shared/cli/typings/disconnectable-client.interface.ts +29 -0
  333. package/src/shared/cli/typings/dispatch-client.type.ts +46 -0
  334. package/src/shared/cli/typings/learn-client.interface.ts +53 -0
  335. package/src/shared/cli/typings/learn-io.interface.ts +5 -0
  336. package/src/shared/cli/typings/learn-result.model.ts +16 -0
  337. package/src/shared/cli/typings/search-client.interface.ts +73 -0
  338. package/src/shared/cli/typings/search-display.model.ts +18 -0
  339. package/src/shared/embedding/classes/null-embedding-provider.class.ts +29 -0
  340. package/src/shared/embedding/constants/near-duplicate-thresholds.constant.ts +17 -0
  341. package/src/shared/embedding/functions/build-vector-index.function.ts +79 -0
  342. package/src/shared/embedding/functions/cosine-similarity.function.ts +31 -0
  343. package/src/shared/embedding/functions/detect-near-duplicates.function.ts +69 -0
  344. package/src/shared/embedding/functions/jaccard-coefficient.function.ts +26 -0
  345. package/src/shared/embedding/functions/read-vector-index-meta.function.ts +44 -0
  346. package/src/shared/embedding/functions/rrf-fuse.function.ts +33 -0
  347. package/src/shared/embedding/functions/search-vectors.function.ts +59 -0
  348. package/src/shared/embedding/index.ts +20 -0
  349. package/src/shared/embedding/typings/embedding-config.interface.ts +23 -0
  350. package/src/shared/embedding/typings/embedding-provider.interface.ts +25 -0
  351. package/src/shared/embedding/typings/near-duplicate-candidate.model.ts +25 -0
  352. package/src/shared/embedding/typings/near-duplicate-result.model.ts +26 -0
  353. package/src/shared/embedding/typings/vector-index-entry.model.ts +13 -0
  354. package/src/shared/embedding/typings/vector-index-meta.model.ts +14 -0
  355. package/src/shared/embedding/typings/vector-search-result.model.ts +8 -0
  356. package/src/shared/mcp/classes/mcp-server.class.ts +36 -4
  357. package/src/shared/mcp/constants/tool-agent-create.constant.ts +39 -0
  358. package/src/shared/mcp/constants/tool-agent-delete.constant.ts +26 -0
  359. package/src/shared/mcp/constants/tool-agent-get.constant.ts +24 -0
  360. package/src/shared/mcp/constants/tool-agent-list.constant.ts +18 -0
  361. package/src/shared/mcp/constants/tool-auto-capture-review.constant.ts +32 -0
  362. package/src/shared/mcp/constants/tool-check.constant.ts +21 -0
  363. package/src/shared/mcp/constants/tool-content.constant.ts +29 -0
  364. package/src/shared/mcp/constants/tool-export.constant.ts +27 -0
  365. package/src/shared/mcp/constants/tool-gc.constant.ts +21 -0
  366. package/src/shared/mcp/constants/tool-learn.constant.ts +58 -0
  367. package/src/shared/mcp/constants/tool-rebuild.constant.ts +21 -0
  368. package/src/shared/mcp/constants/tool-recall.constant.ts +36 -0
  369. package/src/shared/mcp/constants/tool-retrieve.constant.ts +31 -0
  370. package/src/shared/mcp/constants/tool-search.constant.ts +51 -0
  371. package/src/shared/mcp/constants/tool-skill-delete.constant.ts +24 -0
  372. package/src/shared/mcp/constants/tool-skill-get.constant.ts +27 -0
  373. package/src/shared/mcp/constants/tool-skill-learn.constant.ts +37 -0
  374. package/src/shared/mcp/constants/tool-skill-list.constant.ts +18 -0
  375. package/src/shared/mcp/constants/tool-status.constant.ts +20 -0
  376. package/src/shared/mcp/constants/tool-unlearn.constant.ts +25 -0
  377. package/src/shared/mcp/functions/as-boolean-or-undefined.function.ts +11 -0
  378. package/src/shared/mcp/functions/as-string-array-or-undefined.function.ts +17 -0
  379. package/src/shared/mcp/functions/as-string-array.function.ts +15 -0
  380. package/src/shared/mcp/functions/as-string.function.ts +10 -0
  381. package/src/shared/mcp/functions/build-skills-text.function.ts +43 -0
  382. package/src/shared/mcp/functions/create-tool-definitions.function.ts +74 -5
  383. package/src/shared/mcp/functions/handle-agent-create.function.ts +1 -1
  384. package/src/shared/mcp/functions/handle-agent-prompt.function.ts +68 -0
  385. package/src/shared/mcp/functions/handle-mcp-request.function.ts +202 -0
  386. package/src/shared/mcp/functions/handle-prompt-get.function.ts +18 -12
  387. package/src/shared/mcp/functions/handle-skill-prompt.function.ts +44 -0
  388. package/src/shared/mcp/functions/handle-tool-auto-capture-review.function.ts +24 -0
  389. package/src/shared/mcp/functions/handle-tool-call.function.ts +88 -2
  390. package/src/shared/mcp/functions/handle-tool-check.function.ts +21 -0
  391. package/src/shared/mcp/functions/handle-tool-content.function.ts +23 -0
  392. package/src/shared/mcp/functions/handle-tool-export.function.ts +25 -0
  393. package/src/shared/mcp/functions/handle-tool-gc.function.ts +21 -0
  394. package/src/shared/mcp/functions/handle-tool-learn.function.ts +69 -0
  395. package/src/shared/mcp/functions/handle-tool-rebuild.function.ts +21 -0
  396. package/src/shared/mcp/functions/handle-tool-retrieve.function.ts +40 -0
  397. package/src/shared/mcp/functions/handle-tool-search.function.ts +47 -0
  398. package/src/shared/mcp/functions/handle-tool-skill-delete.function.ts +34 -0
  399. package/src/shared/mcp/functions/handle-tool-skill-get.function.ts +59 -0
  400. package/src/shared/mcp/functions/handle-tool-skill-learn.function.ts +61 -0
  401. package/src/shared/mcp/functions/handle-tool-skill-list.function.ts +39 -0
  402. package/src/shared/mcp/functions/handle-tool-status.function.ts +21 -0
  403. package/src/shared/mcp/functions/handle-tool-unlearn.function.ts +24 -0
  404. package/src/shared/mcp/functions/parse-agent-meta.function.ts +27 -0
  405. package/src/shared/mcp/functions/parse-skill-arguments.function.ts +36 -0
  406. package/src/shared/mcp/functions/read-agent-meta.function.ts +41 -0
  407. package/src/shared/mcp/functions/resolve-skill-refs.function.ts +50 -0
  408. package/src/shared/mcp/functions/run-startup-health-check.function.ts +34 -0
  409. package/src/shared/mcp/typings/mcp-capabilities.interface.ts +16 -0
  410. package/src/shared/mcp/typings/mcp-client.interface.ts +47 -0
  411. package/src/shared/mcp/typings/mcp-completion.interface.ts +45 -0
  412. package/src/shared/mcp/typings/mcp-content-result.model.ts +9 -0
  413. package/src/shared/mcp/typings/mcp-export-result.model.ts +11 -0
  414. package/src/shared/mcp/typings/mcp-gc-result.model.ts +15 -0
  415. package/src/shared/mcp/typings/mcp-integrity-check-result.model.ts +17 -0
  416. package/src/shared/mcp/typings/mcp-integrity-error.model.ts +15 -0
  417. package/src/shared/mcp/typings/mcp-notification.interface.ts +9 -0
  418. package/src/shared/mcp/typings/mcp-rebuild-result.model.ts +9 -0
  419. package/src/shared/mcp/typings/mcp-request.interface.ts +11 -0
  420. package/src/shared/mcp/typings/mcp-resource-result.interface.ts +12 -0
  421. package/src/shared/mcp/typings/mcp-resource-template.interface.ts +11 -0
  422. package/src/shared/mcp/typings/mcp-response.interface.ts +18 -0
  423. package/src/shared/mcp/typings/mcp-server-info.interface.ts +7 -0
  424. package/src/shared/mcp/typings/mcp-server-state.interface.ts +17 -0
  425. package/src/shared/mcp/typings/mcp-tool-annotations.interface.ts +32 -0
  426. package/src/shared/mcp/typings/mcp-tool-definition.interface.ts +16 -0
  427. package/src/shared/mcp/typings/mcp-tool-result.interface.ts +19 -0
  428. package/src/shared/mcp/typings/mcp-worker-client.interface.ts +243 -0
  429. package/src/shared/mcp/typings/tool-call-result.model.ts +18 -0
  430. package/src/shared/sync/functions/build-import-report.function.ts +40 -0
  431. package/src/shared/sync/functions/parse-export-entry.function.ts +45 -0
  432. package/src/shared/sync/functions/resolve-conflict.function.ts +31 -0
  433. package/src/shared/sync/functions/serialize-export-entry.function.ts +18 -0
  434. package/src/shared/sync/index.ts +9 -0
  435. package/src/shared/sync/typings/conflict-resolution.type.ts +8 -0
  436. package/src/shared/sync/typings/export-entry.interface.ts +13 -0
  437. package/src/shared/sync/typings/export-options.interface.ts +9 -0
  438. package/src/shared/sync/typings/import-options.interface.ts +7 -0
  439. package/src/shared/sync/typings/import-report.interface.ts +15 -0
  440. package/src/shared/wasm-codec/functions/decode-add-section-result.function.ts +112 -0
  441. package/src/shared/wasm-codec/functions/decode-one-recall-result.function.ts +86 -0
  442. package/src/shared/wasm-codec/functions/decode-option-string.function.ts +24 -0
  443. package/src/shared/wasm-codec/functions/decode-recall-document.function.ts +59 -0
  444. package/src/shared/wasm-codec/functions/decode-recall-reference.function.ts +52 -0
  445. package/src/shared/wasm-codec/functions/decode-recall-sibling.function.ts +43 -0
  446. package/src/shared/wasm-codec/functions/decode-scored-results.function.ts +86 -0
  447. package/src/shared/wasm-codec/functions/decode-section-match.function.ts +80 -0
  448. package/src/shared/wasm-codec/functions/decode-section-record-trailing.function.ts +75 -0
  449. package/src/shared/wasm-codec/functions/decode-section-record.function.ts +85 -0
  450. package/src/shared/wasm-codec/functions/decode-section-records.function.ts +87 -0
  451. package/src/shared/wasm-codec/functions/decode-section-type.function.ts +30 -0
  452. package/src/shared/wasm-codec/functions/decode-wasm-list.function.ts +31 -0
  453. package/src/shared/wasm-codec/functions/encode-add-section-params.function.ts +68 -0
  454. package/src/shared/wasm-codec/index.ts +5 -0
  455. package/src/shared/wasm-codec/typings/add-section-input.model.ts +45 -0
  456. package/src/shared/wasm-codec/typings/add-section-result.model.ts +28 -0
  457. package/src/shared/wasm-codec/typings/document-manifest.model.ts +20 -0
  458. package/src/shared/wasm-codec/typings/document-section.model.ts +12 -0
  459. package/src/shared/wasm-codec/typings/item-decoder.type.ts +10 -0
  460. package/src/shared/wasm-codec/typings/near-duplicate.model.ts +16 -0
  461. package/src/shared/wasm-codec/typings/paged-search-result.model.ts +22 -0
  462. package/src/shared/wasm-codec/typings/section-match.model.ts +31 -0
  463. package/src/shared/wasm-codec/typings/section-record-trailing.model.ts +38 -0
  464. package/src/shared/wasm-codec/typings/section-record.model.ts +66 -0
  465. package/src/shared/wasm-codec/typings/section-type-result.model.ts +12 -0
  466. package/src/shared/worker-client/classes/worker-client.class.ts +19 -0
  467. package/src/shared/worker-client/functions/handle-ipc-data.function.ts +49 -0
  468. package/src/shared/worker-client/functions/send-ipc-request.function.ts +39 -0
  469. package/src/shared/worker-client/index.ts +4 -1
  470. package/src/shared/worker-client/typings/add-section-result.model.ts +32 -15
  471. package/src/shared/worker-client/typings/export-result.model.ts +14 -0
  472. package/src/shared/worker-client/typings/gc-result.model.ts +6 -0
  473. package/src/shared/worker-client/typings/json-rpc-response.interface.ts +17 -0
  474. package/src/shared/worker-client/typings/pending-call.interface.ts +7 -0
  475. package/src/shared/worker-client/typings/recall-document.model.ts +16 -0
  476. package/src/shared/worker-client/typings/recall-params.model.ts +15 -0
  477. package/src/shared/worker-client/typings/recall-reference.model.ts +32 -0
  478. package/src/shared/worker-client/typings/recall-sibling.model.ts +11 -0
  479. package/src/shared/worker-client/typings/recall-single-result.model.ts +41 -0
  480. package/src/shared/worker-client/typings/search-result.model.ts +12 -0
  481. package/src/shared/worker-client/typings/section.model.ts +16 -0
  482. package/src/shared/worker-daemon/classes/ipc-error.class.ts +22 -0
  483. package/src/shared/worker-daemon/classes/worker-daemon.class.ts +315 -46
  484. package/src/shared/worker-daemon/constants/wasm-method-map.constant.ts +69 -0
  485. package/src/shared/worker-daemon/functions/build-ipc-error-response.function.ts +16 -0
  486. package/src/shared/worker-daemon/functions/check-catalog-version.function.ts +54 -0
  487. package/src/shared/worker-daemon/functions/check-preconditions.function.ts +28 -0
  488. package/src/shared/worker-daemon/functions/create-host-imports.function.ts +19 -4
  489. package/src/shared/worker-daemon/functions/create-ipc-server.function.ts +5 -1
  490. package/src/shared/worker-daemon/functions/detect-stale-pid.function.ts +33 -0
  491. package/src/shared/worker-daemon/functions/dispatch-request.function.ts +190 -0
  492. package/src/shared/worker-daemon/functions/handle-check-version.function.ts +74 -0
  493. package/src/shared/worker-daemon/functions/handle-config-method.function.ts +27 -0
  494. package/src/shared/worker-daemon/functions/handle-read-ops.function.ts +236 -0
  495. package/src/shared/worker-daemon/functions/handle-write-ops.function.ts +257 -0
  496. package/src/shared/worker-daemon/functions/parse-auto-capture-section.function.ts +51 -0
  497. package/src/shared/worker-daemon/functions/parse-catalog-version.function.ts +20 -0
  498. package/src/shared/worker-daemon/functions/parse-embedding-section.function.ts +38 -0
  499. package/src/shared/worker-daemon/functions/parse-worker-toml.function.ts +104 -0
  500. package/src/shared/worker-daemon/functions/run-startup-integrity-check.function.ts +55 -0
  501. package/src/shared/worker-daemon/functions/scan-near-duplicates.function.ts +92 -0
  502. package/src/shared/worker-daemon/functions/wasm-bridge.function.ts +144 -0
  503. package/src/shared/worker-daemon/functions/wasm-memory-helpers.function.ts +41 -0
  504. package/src/shared/worker-daemon/functions/write-lock.function.ts +49 -0
  505. package/src/shared/worker-daemon/typings/allocator-ref.interface.ts +16 -0
  506. package/src/shared/worker-daemon/typings/daemon-config.interface.ts +7 -0
  507. package/src/shared/worker-daemon/typings/fs-adapter.interface.ts +22 -0
  508. package/src/shared/worker-daemon/typings/handler-context.interface.ts +19 -0
  509. package/src/shared/worker-daemon/typings/memory-ref.interface.ts +13 -0
  510. package/src/shared/worker-daemon/typings/wasm-fn.type.ts +2 -0
  511. package/src/shared/worker-daemon/typings/write-lock.interface.ts +13 -0
  512. package/src/wasm/fs-database/kbdb_fs_database.d.ts +22 -1
  513. package/src/wasm/fs-database/kbdb_fs_database.js +28 -1
  514. package/src/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
  515. package/src/wasm/fs-database/kbdb_fs_database_bg.wasm.d.ts +1 -0
  516. package/src/wasm/kb-worker/kbdb_worker.d.ts +48 -1
  517. package/src/wasm/kb-worker/kbdb_worker.js +60 -1
  518. package/src/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
  519. package/src/wasm/kb-worker/kbdb_worker_bg.wasm.d.ts +2 -0
  520. package/src/wasm/query-parser/kbdb_query_parser_bg.wasm +0 -0
package/docs/overview.md CHANGED
@@ -1,187 +1,169 @@
1
1
  # @dikolab/kbdb -- Knowledge Base Database
2
2
 
3
- *A persistent, file-based knowledge store and MCP server purpose-built for AI agents -- your second brain, on disk.*
3
+ *A file-based knowledge store and MCP server for
4
+ AI agents -- your second brain, on disk.*
4
5
 
5
- ## What Is @dikolab/kbdb?
6
+ ## What Is kbdb?
6
7
 
7
- AI agents operate in ephemeral sessions. They lose context between conversations, forget prior research, and have no built-in way to persist or retrieve knowledge across runs. When an agent needs to recall documentation, search a codebase's API surface, or query a corpus of notes, there is no lightweight, local solution optimized for how agents actually retrieve information -- keyword-driven, section-level, ranked.
8
+ AI agents forget everything between sessions. kbdb
9
+ gives them a searchable, persistent memory.
8
10
 
9
- @dikolab/kbdb is a CLI tool and MCP server that imports documents and code documentation, extracts keywords, builds indexes, and enables ranked search -- all backed by a directory-based file database. No database server, no cloud dependency. A folder on disk is your entire knowledge base.
11
+ Import your documents, and kbdb indexes them
12
+ automatically. Search returns ranked results
13
+ instantly. No database server to install, no cloud
14
+ account to create -- your knowledge base is just a
15
+ folder on disk.
10
16
 
11
- The computationally intensive work -- keyword extraction, indexing, ranking -- is offloaded to a Rust engine compiled to WebAssembly, delivering near-native performance inside a Deno or Node.js runtime. The TypeScript CLI provides the developer-facing interface and MCP server; Rust/WASM does the heavy lifting underneath.
17
+ kbdb works as both a command-line tool and an
18
+ [MCP](https://modelcontextprotocol.io/) server.
19
+ Humans use it from the terminal; AI agents connect
20
+ to it as a tool.
12
21
 
13
22
  ## Who Is This For?
14
23
 
15
- - **AI agent developers** -- Anyone building agentic workflows (with Claude, LangChain, or custom harnesses) who needs persistent, searchable knowledge across sessions.
16
- - **MCP tool authors** -- Developers creating Model Context Protocol servers who need a local knowledge backend their tools can query.
17
- - **Knowledge workers using AI assistants** -- Power users who want their AI to have a second brain -- a searchable, structured store of documentation, research, and reference material that survives session boundaries.
18
- - **CLI-first developers** -- Those who prefer composable command-line tools over GUI applications for managing knowledge.
19
-
20
- ## Core Features
21
-
22
- ### CLI
23
-
24
- 1. **Markdown import and indexing** -- Import `*.md` files, extract keywords and sections, and store them in the file system database.
25
- 2. **Codebase documentation scanning** -- Scan a codebase and import code documentation (TypeDoc, JSDoc, PHPDoc), index it, and store it in the file system database.
26
- 3. **Ranked search** -- Search and display a ranked list of results by section or by whole document, with output in `.md` or `.json` format.
27
-
28
- ### MCP
29
-
30
- 1. **MCP service endpoints** -- Expose the knowledge base as MCP service endpoints for Claude and other AI agents to query, search, and retrieve knowledge programmatically.
31
-
32
- ### Distribution
33
-
34
- This tool is available via **NPM** for Node.js or **JSR** for Deno.
35
-
36
- - **Node.js**: `npm install -g @dikolab/kbdb`
37
- - **Deno**: `deno add @dikolab/kbdb` (via [jsr.io](https://jsr.io))
38
-
39
- ## High-Level Architecture
40
-
41
- The system is organized in five layers. Data flows
42
- downward from user commands or agent requests through
43
- the worker client and daemon into the WASM engine,
44
- which performs heavy processing and manages the file
45
- database.
46
-
47
- ![System Architecture](goals/architecture.svg)
48
-
49
- **The kbdb Command** -- A single executable with two
50
- run modes. CLI mode (`kbdb learn`, `kbdb search`,
51
- `kbdb unlearn`) handles human and script invocation --
52
- each command is a short-lived process. MCP mode
53
- (`kbdb mcp`) starts a long-lived MCP server that AI
54
- agents connect to over stdio.
55
-
56
- **Worker Client** -- Shared TypeScript module imported
57
- by both run modes. Discovers or spawns the worker
58
- daemon and provides a typed async API over IPC.
59
-
60
- **Worker Daemon** -- A detached background process
61
- that loads WASM modules, manages an in-memory cache,
62
- and serves JSON-RPC 2.0 requests over local IPC (Unix
63
- sockets or Windows named pipes). The daemon has no
64
- knowledge of its callers.
65
-
66
- **Rust/WASM Engine** -- Three WASM modules:
67
- `query-parser.wasm` (tokenization, query parsing,
68
- ranking), `fs-database.wasm` (file database I/O), and
69
- `kb-worker.wasm` (imports both, orchestrates). Rust
70
- provides memory safety and performance; WASM provides
71
- portability across runtimes.
72
-
73
- **File Database** -- A structured directory on disk.
74
- No external database process required. Documents,
75
- indexes, keywords, and metadata are stored in a
76
- defined directory layout. The database is portable,
77
- version-controllable, and human-inspectable.
78
-
79
- ## Technology Stack
80
-
81
- | Layer | Technology | Role |
82
- |-------|-----------|------|
83
- | Runtime | Deno (primary), Node.js (compatible) | Executes the CLI, MCP server, and TypeScript orchestration |
84
- | Language | TypeScript | CLI, command parsing, MCP protocol, I/O coordination |
85
- | Engine | Rust compiled to WebAssembly | Keyword processing, indexing, ranking, file DB operations |
86
- | Protocol | MCP (Model Context Protocol) | AI agent integration interface |
87
- | Distribution | NPM (Node.js), JSR (Deno) | Package distribution for both ecosystems |
88
- | Storage | Directory-based file database | Persistent, portable, server-less data storage |
24
+ - **AI agent developers** -- persistent, searchable
25
+ knowledge across agent sessions
26
+ - **MCP tool authors** -- a local knowledge backend
27
+ for Model Context Protocol servers
28
+ - **Knowledge workers** -- a second brain your AI
29
+ assistant can search across conversations
30
+ - **CLI-first developers** -- composable commands
31
+ for managing knowledge from the terminal
32
+
33
+ ## What Can It Do?
34
+
35
+ - **Import** Markdown files with automatic keyword
36
+ extraction and indexing
37
+ - **Search** with ranked results, snippets, and
38
+ paginated output
39
+ - **Recall** sections with progressive context
40
+ (depth 0--3)
41
+ - **Skills** -- reusable prompt templates with
42
+ placeholder arguments
43
+ - **Agents** -- AI profiles combining a persona
44
+ with skills
45
+ - **Export** the database as a portable snapshot
46
+ - **Verify** database integrity and clean up stale
47
+ data
48
+ - **MCP server** with 20 tools, prompts, resources,
49
+ and completions
50
+
51
+ ### Install
52
+
53
+ ```sh
54
+ # Node.js
55
+ npm install -g @dikolab/kbdb
56
+
57
+ # Deno
58
+ deno add @dikolab/kbdb
59
+ ```
60
+
61
+ ## Architecture
62
+
63
+ Five layers, top to bottom:
64
+
65
+ ```
66
+ User / AI Agent
67
+ -> kbdb command (CLI or MCP mode)
68
+ -> Worker Client (TypeScript IPC)
69
+ -> Worker Daemon (background process)
70
+ -> Rust/WASM Engine
71
+ -> File Database (folder on disk)
72
+ ```
73
+
74
+ **kbdb command** -- One executable, two modes. CLI
75
+ mode runs short-lived commands (`learn`, `search`,
76
+ `recall`). MCP mode starts a long-lived server for
77
+ AI agents over stdio.
78
+
79
+ **Worker Client** -- TypeScript module that discovers
80
+ or spawns the daemon and provides a typed async API.
81
+
82
+ **Worker Daemon** -- Background process that loads
83
+ WASM modules, caches data in memory, and serves
84
+ JSON-RPC 2.0 requests over local IPC.
85
+
86
+ **Rust/WASM Engine** -- Three WASM modules handle
87
+ tokenization, indexing, ranking, and file I/O. Rust
88
+ provides speed and memory safety; WASM runs on any
89
+ runtime.
90
+
91
+ **File Database** -- Structured directory on disk.
92
+ No server process. Portable, version-controllable,
93
+ and human-readable.
94
+
95
+ ### Technology Stack
96
+
97
+ | Layer | Technology | Purpose |
98
+ |-------|-----------|---------|
99
+ | Runtime | Node.js, Deno | Runs CLI, MCP server, orchestration |
100
+ | Language | TypeScript | CLI, MCP protocol, I/O |
101
+ | Engine | Rust -> WebAssembly | Indexing, ranking, file operations |
102
+ | Protocol | MCP | AI agent integration |
103
+ | Distribution | NPM, JSR | Package delivery |
104
+ | Storage | File database | Persistent, portable data |
89
105
 
90
106
  ## Design Principles
91
107
 
92
- 1. **Offline-first, server-less** -- No database server, no cloud dependency. A directory on disk is the entire database. Works anywhere a filesystem exists.
93
- 2. **AI-agent-native** -- Designed from the ground up to be invoked by AI agents, not just humans. Commands, output formats, and the MCP interface prioritize machine consumption.
94
- 3. **MCP-first integration** -- The MCP server is a primary interface, not an afterthought. AI agents connect to the knowledge base as naturally as they connect to any other MCP service.
95
- 4. **Performance through Rust/WASM** -- Computationally intensive work runs in compiled Rust via WebAssembly, keeping the TypeScript layer thin and the heavy processing fast.
96
- 5. **Portability** -- Runs on Deno or Node.js. The file database is a plain directory. No platform lock-in at any layer.
97
- 6. **Section-level precision** -- Documents are decomposed into sections. Search returns the specific passage that matters, not an entire document.
98
- 7. **Incremental design** -- The project ships working slices. Storage format and engine capabilities will evolve; the architecture accommodates change without requiring rewrites.
99
-
100
- ## Details
101
-
102
- The following documents describe the intended behavior and
103
- design goals for each major subsystem. They serve as
104
- implementation specifications, not descriptions of current
105
- functionality.
106
-
107
- - **[Database](goals/database.md)** -- Filesystem storage
108
- engine (`fs-database.wasm`). The `.kbdb` directory
109
- structure, section and document CRUD operations, index
110
- management, and storage design.
111
- - **[Query Parser](goals/query-parser.md)** -- Query
112
- processing and tokenization (`query-parser.wasm`).
113
- Standalone WASM module for tokenization, query
114
- parsing, keyword extraction, and ranking.
115
- - **[Document](goals/document.md)** -- Text content
116
- format specification. Markdown body text with
117
- embedding markers and cross-reference link markers.
108
+ 1. **No server needed** -- A folder is your whole
109
+ database. Works anywhere.
110
+ 2. **Built for AI agents** -- Commands and output
111
+ are optimized for machine use.
112
+ 3. **MCP-first** -- The MCP server is a primary
113
+ interface, not an add-on.
114
+ 4. **Fast** -- Heavy work runs in compiled Rust
115
+ via WebAssembly.
116
+ 5. **Portable** -- Runs on Node.js or Deno. The
117
+ database is a plain directory.
118
+ 6. **Section-level search** -- Returns the specific
119
+ passage that matters, not a whole document.
120
+
121
+ ## Design Documents
122
+
123
+ Detailed specifications for each subsystem:
124
+
125
+ - **[Database](goals/database.md)** -- File storage
126
+ engine, directory structure, section and document
127
+ operations
128
+ - **[Query Parser](goals/query-parser.md)** --
129
+ Tokenization, query parsing, keyword extraction,
130
+ ranking
131
+ - **[Document](goals/document.md)** -- Content format
132
+ with markers and cross-references
118
133
  - **[Content Parser](goals/content-parser.md)** --
119
- Marker extraction engine (`kbdb-shared` rlib).
120
- Scans section content for `$(type: value)` markers
121
- and returns structured reference lists.
134
+ Marker extraction from section content
122
135
  - **[Content Composer](goals/content-composer.md)** --
123
- Content composition engine (`kbdb-shared` rlib).
124
- Resolves sections and markers, produces rendered
125
- Markdown documents from kbid and docid identifiers.
126
- - **[CLI](goals/cli.md)** -- The `kbdb` command and its
127
- two run modes. CLI mode commands (`learn`, `unlearn`,
128
- `search`), MCP mode dispatch, output formats, and the
129
- pass-through execution model.
130
- - **[MCP](goals/mcp.md)** -- MCP server mode
131
- (`kbdb mcp`). Invocation, database path
132
- configuration, stdio transport, MCP tools and
133
- resources, agent wiring examples, and relationship
134
- to CLI mode.
135
- - **[Worker Daemon](goals/worker-daemon.md)** -- Cache
136
- daemon (`kb-worker.wasm` + `src/worker.ts`).
137
- The detached TypeScript daemon, WASM module loading,
138
- caching, IPC protocol, lifecycle, and configuration.
139
- - **[Worker Client](goals/worker-client.md)** -- Shared
140
- TypeScript client module (`src/shared/worker-client/`).
141
- Daemon discovery, spawning, IPC connection, typed
142
- API, and the sole entry point used by `src/cli.ts`.
136
+ Rendered Markdown composition from identifiers
137
+ - **[CLI](goals/cli.md)** -- Commands, run modes,
138
+ output formats
139
+ - **[MCP](goals/mcp.md)** -- MCP server, tools,
140
+ resources, agent wiring
141
+ - **[Worker Daemon](goals/worker-daemon.md)** --
142
+ Background daemon, WASM loading, caching, IPC
143
+ - **[Worker Client](goals/worker-client.md)** --
144
+ Client module, daemon discovery, typed API
143
145
 
144
146
  ## Project Status
145
147
 
146
- @dikolab/kbdb is in active development. The full
147
- five-layer stack (CLI/MCP -> Worker Client -> Worker
148
- Daemon -> WASM Engine -> File Database) is wired and
149
- working end-to-end for all core operations: learn,
150
- search, recall, content retrieval, skills, agents,
151
- and maintenance commands.
152
-
153
- E2E smoke tests run on both Node.js and Deno via
154
- Docker, covering 380+ assertions across CLI commands,
155
- 18 MCP tools, MCP protocol features, and worker IPC
156
- methods.
157
-
158
- ### Completed
159
-
160
- - CLI with 18 commands across 6 groups (tested)
161
- - MCP server with 18 tools, prompts, resources,
162
- and completions (tested)
163
- - Worker client with typed async IPC API (tested)
164
- - Worker daemon with WASM module loading (tested)
165
- - Rust/WASM engine: search, recall, indexing,
166
- reference graph, KWIC snippets, pagination
167
- - Paginated search with rich metadata (heading,
168
- type, snippet, matched_terms, docids)
148
+ All layers are wired and working end-to-end. Every
149
+ core operation -- learn, search, recall, content
150
+ retrieval, skills, agents, export, and maintenance
151
+ -- runs through the full stack.
152
+
153
+ **548 e2e assertions** pass on both Node.js and Deno
154
+ with zero failures and zero skips.
155
+
156
+ - 18 CLI commands across 6 groups
157
+ - 20 MCP tools with prompts, resources, completions
158
+ - Sequential MCP request processing
159
+ - Worker daemon with fully implemented WASM host I/O
160
+ - Paginated search with rich metadata
169
161
  - Progressive recall at depths 0--3
170
- - Bidirectional reference graph (references.idx)
171
- - Skills (template-based prompts) and agents
172
- (persona + skills compositions)
173
- - esbuild bundling pipeline (ESM + CJS + .d.ts)
174
- - Docker build containers (Deno + Node + Rust +
175
- wasm-pack)
176
- - npm and JSR packaging with documentation
177
-
178
- ### Remaining
179
-
180
- - Complete WASM host I/O imports (some operations
181
- still hit stubs: document removal, agent document
182
- persistence)
183
- - Database format versioning and migration
184
- infrastructure
162
+ - Bidirectional reference graph
163
+ - Skills and agent document management
164
+ - esbuild bundling (ESM + CJS + .d.ts)
165
+ - Docker build containers
166
+ - npm and JSR packages with documentation
185
167
 
186
168
  ## Links
187
169
 
@@ -62,7 +62,7 @@ at once.
62
62
  scores are kept in CLI and IPC output for
63
63
  debugging.
64
64
 
65
- - **Tool annotations** -- All 18 MCP tool
65
+ - **Tool annotations** -- All 20 MCP tool
66
66
  definitions now include `openWorldHint: false`,
67
67
  `readOnlyHint`, `destructiveHint`, and
68
68
  `idempotentHint` annotations per the MCP spec.
@@ -84,8 +84,8 @@ at once.
84
84
 
85
85
  ## Testing
86
86
 
87
- - **383 e2e assertions (Node.js), 378 (Deno)** --
88
- up from ~300. All pass with 0 failures.
87
+ - **548 e2e assertions** on both Node.js and Deno --
88
+ all passing with 0 failures and 0 skips.
89
89
 
90
90
  - **Recall depth testing** -- Cross-referenced
91
91
  test data (sections with `$(link: ...)` markers)
@@ -0,0 +1,89 @@
1
+ # 0.3.0
2
+
3
+ *Minor release -- 2026-06-23*
4
+
5
+ Adds supersession, relaxed queries, database export,
6
+ tags, and confidence scoring. The Rust engine gains
7
+ source tracking, near-duplicate detection, and
8
+ synonym expansion.
9
+
10
+ ---
11
+
12
+ ## New Features
13
+
14
+ - **Supersession** -- Re-learning from the same
15
+ source automatically replaces outdated sections
16
+ instead of duplicating them. Source key identity
17
+ tracked via SHA-256.
18
+
19
+ - **Relaxed OR fallback** -- When an exact AND
20
+ query returns no results, kbdb automatically
21
+ retries with relaxed OR matching so you always
22
+ get the best available results.
23
+
24
+ - **Database export** -- New `export` CLI command
25
+ and MCP tool. Copies sections, documents, and
26
+ catalog as a self-contained directory snapshot.
27
+
28
+ - **Tags and replace on learn** -- `--tags` attaches
29
+ labels to imported sections for scoped queries.
30
+ `--replace` supersedes existing sections from the
31
+ same source in one step.
32
+
33
+ - **Confidence scoring** -- Search results include
34
+ a normalized BM25F confidence score and
35
+ `matched_fields` (heading, body, code) so agents
36
+ can tell strong matches from weak ones.
37
+
38
+ - **Near-duplicate detection** -- Jaccard similarity
39
+ warns when imported content closely matches an
40
+ existing section, preventing silent drift.
41
+
42
+ - **Default skills** -- `db init` installs
43
+ `query-guidance` and `memory-protocol` skills
44
+ that teach agents how to search and what to store.
45
+
46
+ ---
47
+
48
+ ## Improvements
49
+
50
+ - **Synonym expansion pipeline** in the Rust engine
51
+ broadens keyword coverage automatically.
52
+
53
+ - **Matched field tracking** -- Results show which
54
+ fields (heading, body, code) matched the query.
55
+
56
+ - **`created_at` timestamps** in search results.
57
+
58
+ - **Divergent content detection** via integrity
59
+ check catches contradictions between versions.
60
+
61
+ - **GC fix** -- Garbage collection now only removes
62
+ superseded sections, not active ones.
63
+
64
+ - **Reference graph rebuild** included in `rebuild`
65
+ command.
66
+
67
+ - **Writer lock** prevents concurrent WASM writes.
68
+
69
+ - **Worker daemon startup health check** verifies
70
+ WASM modules load correctly.
71
+
72
+ ---
73
+
74
+ ## Testing
75
+
76
+ - **517 e2e assertions (Node.js), 514 (Deno)** --
77
+ all pass with 0 failures.
78
+
79
+ ---
80
+
81
+ ## Upgrade
82
+
83
+ ```sh
84
+ # Node.js
85
+ npm install -g @dikolab/kbdb@0.3.0
86
+
87
+ # Deno
88
+ deno install -Agf jsr:@dikolab/kbdb/cli
89
+ ```
@@ -0,0 +1,111 @@
1
+ # 0.3.1
2
+
3
+ *Patch release -- 2026-06-23*
4
+
5
+ Fixes MCP request processing reliability, agent
6
+ document persistence, WASM memory safety, and
7
+ eliminates all e2e test skips. Adds the 20th MCP
8
+ tool (`auto-capture-review`).
9
+
10
+ ---
11
+
12
+ ## Bug Fixes
13
+
14
+ - **MCP sequential request processing** -- The MCP
15
+ server previously dispatched JSON-RPC requests
16
+ concurrently (fire-and-forget). When multiple
17
+ requests arrived in a batch, later requests could
18
+ execute before earlier ones finished -- for
19
+ example, reading an agent document before it was
20
+ fully written. Requests are now processed
21
+ sequentially via a promise chain, ensuring each
22
+ completes before the next begins.
23
+
24
+ - **Agent document type persistence** -- Agent
25
+ documents created via `agent-create` were missing
26
+ their `doc_type` field, so `listDocumentsByType`
27
+ could not find them. `handleAgentCreate` now
28
+ passes `'agent'` as the document type.
29
+
30
+ - **Agent prompt lookup** -- `prompts/get` for
31
+ agent prompts treated the agent title as a
32
+ document ID, which failed because document IDs
33
+ are content hashes. Now looks up agents by title
34
+ via `listDocumentsByType('agent')`.
35
+
36
+ - **WASM `worker_remove_grouping` double-free** --
37
+ The WASM export returned success without calling
38
+ `set_return`, leaving stale memory in the return
39
+ slot. The next `readReturnSlot` call freed
40
+ already-freed memory, causing a WASM trap. Now
41
+ sets the return slot to null before returning.
42
+
43
+ - **WASM defensive `set_return` calls** -- Added
44
+ null return slot initialization to `worker_init`
45
+ and `worker_init_directory` to prevent the same
46
+ stale-memory pattern from surfacing in edge cases.
47
+
48
+ ---
49
+
50
+ ## New Features
51
+
52
+ - **`auto-capture-review` MCP tool** -- Review and
53
+ approve pending auto-captured knowledge before
54
+ storage. Accepts `action` parameter with values
55
+ `list`, `approve`, or `reject`. This brings the
56
+ MCP server to 20 tools.
57
+
58
+ ---
59
+
60
+ ## Testing
61
+
62
+ - **548 e2e assertions** on both Node.js and Deno,
63
+ all passing with **0 failures and 0 skips** (up
64
+ from 517/514 with some skips in 0.3.0).
65
+
66
+ - **E2E test restructuring** -- Test databases
67
+ isolated by category (CLI, MCP, Worker) instead
68
+ of sharing a flat directory. Worker recall tests
69
+ now seed their own cross-reference data instead
70
+ of depending on CLI test data.
71
+
72
+ - **Pre-built WASM in Docker** -- E2E test
73
+ container caches WASM binaries at build time,
74
+ reducing test startup from ~30 seconds to
75
+ sub-second.
76
+
77
+ ---
78
+
79
+ ## Documentation
80
+
81
+ - **README.md** reorganized for clarity -- shorter
82
+ intro, labeled paragraphs ("How search works",
83
+ "Knowledge stays fresh"), accessible to both
84
+ technical and non-technical readers.
85
+
86
+ - **Architecture overview** rewritten -- simplified
87
+ prose, ASCII architecture diagram, removed stale
88
+ "Remaining" section (WASM host I/O is fully
89
+ implemented).
90
+
91
+ - **MCP server guide** updated with
92
+ `auto-capture-review` tool in reference tables
93
+ and annotations summary.
94
+
95
+ - **Tool counts corrected** across all docs
96
+ (19 -> 20).
97
+
98
+ - **Assertion counts updated** across all docs
99
+ (380+/383 -> 548).
100
+
101
+ ---
102
+
103
+ ## Upgrade
104
+
105
+ ```sh
106
+ # Node.js
107
+ npm install -g @dikolab/kbdb@0.3.1
108
+
109
+ # Deno
110
+ deno install -Agf jsr:@dikolab/kbdb/cli
111
+ ```
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Releases
4
4
 
5
+ - [0.3.1](0.3.1.md) -- MCP reliability fixes, 20 tools, zero test skips
6
+ - [0.3.0](0.3.0.md) -- Supersession, relaxed queries, export, tags, confidence
5
7
  - [0.2.0](0.2.0.md) -- Recall, paginated search, reference graph
6
8
  - [0.1.3](0.1.3.md) -- Include WASM binaries in JSR package
7
9
  - [0.1.2](0.1.2.md) -- Fix WASM loading from JSR
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dikolab/kbdb",
3
- "version": "0.2.2",
3
+ "version": "0.3.1",
4
4
  "description": "CLI tool and MCP server for a file-based knowledge base database",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -0,0 +1,62 @@
1
+ import type { AutoCaptureConfig } from '../typings/auto-capture-config.interface.ts';
2
+ import type { AutoCaptureState } from '../typings/auto-capture-state.interface.ts';
3
+ import type { AutoCaptureTrigger } from '../typings/auto-capture-trigger.interface.ts';
4
+ import { evaluateTrigger } from '../functions/evaluate-trigger.function.ts';
5
+
6
+ /**
7
+ * Controls the auto-capture lifecycle.
8
+ *
9
+ * Tracks tool call counts, evaluates trigger conditions, and
10
+ * advances session state when a capture fires. Reset state on
11
+ * disconnect or session end via `reset()`.
12
+ */
13
+ export class AutoCaptureController {
14
+ private toolCallsSinceLastCapture = 0;
15
+ private lastCaptureTimestamp = 0;
16
+ private totalCapturesThisSession = 0;
17
+ private readonly config: AutoCaptureConfig;
18
+
19
+ /** @param config - the auto-capture configuration to use */
20
+ constructor(config: AutoCaptureConfig) {
21
+ this.config = config;
22
+ }
23
+
24
+ /** Record one tool call for trigger counting. */
25
+ recordToolCall(): void {
26
+ this.toolCallsSinceLastCapture += 1;
27
+ }
28
+
29
+ /**
30
+ * Evaluates the current state against the trigger criteria.
31
+ *
32
+ * When the trigger fires, advances the session counters so the
33
+ * next evaluation respects rate limiting and the session cap.
34
+ *
35
+ * @returns the trigger decision with a human-readable reason
36
+ */
37
+ evaluate(): AutoCaptureTrigger {
38
+ const trigger = evaluateTrigger(this.config, this.state());
39
+ if (trigger.shouldCapture) {
40
+ this.totalCapturesThisSession += 1;
41
+ this.lastCaptureTimestamp = Date.now();
42
+ this.toolCallsSinceLastCapture = 0;
43
+ }
44
+ return trigger;
45
+ }
46
+
47
+ /** Reset all counters, e.g. on client disconnect. */
48
+ reset(): void {
49
+ this.toolCallsSinceLastCapture = 0;
50
+ this.lastCaptureTimestamp = 0;
51
+ this.totalCapturesThisSession = 0;
52
+ }
53
+
54
+ /** Returns a snapshot of the current controller state. */
55
+ state(): AutoCaptureState {
56
+ return {
57
+ toolCallsSinceLastCapture: this.toolCallsSinceLastCapture,
58
+ lastCaptureTimestamp: this.lastCaptureTimestamp,
59
+ totalCapturesThisSession: this.totalCapturesThisSession,
60
+ };
61
+ }
62
+ }
@@ -0,0 +1,15 @@
1
+ import type { AutoCaptureConfig } from '../typings/auto-capture-config.interface.ts';
2
+
3
+ /**
4
+ * Default configuration for the auto-capture feature.
5
+ *
6
+ * Auto-capture is disabled by default. Enable it in
7
+ * `worker.toml` under `[auto_capture]`.
8
+ */
9
+ export const AUTO_CAPTURE_DEFAULTS: AutoCaptureConfig = {
10
+ enabled: false,
11
+ triggerAfterToolCalls: 5,
12
+ minIntervalMs: 60_000,
13
+ maxCapturesPerSession: 10,
14
+ dryRun: false,
15
+ };