@dikolab/kbdb 0.3.0 → 0.3.2

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 (428) hide show
  1. package/README.md +89 -120
  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 +63 -9
  14. package/dist/cli.cjs.map +2 -2
  15. package/dist/cli.mjs +63 -9
  16. package/dist/cli.mjs.map +2 -2
  17. package/dist/src/shared/auto-capture/classes/auto-capture-controller.class.d.ts +33 -0
  18. package/dist/src/shared/auto-capture/constants/auto-capture-defaults.constant.d.ts +8 -0
  19. package/dist/src/shared/auto-capture/functions/build-capture-prompt.function.d.ts +11 -0
  20. package/dist/src/shared/auto-capture/functions/evaluate-trigger.function.d.ts +12 -0
  21. package/dist/src/shared/auto-capture/index.d.ts +7 -0
  22. package/dist/src/shared/auto-capture/typings/auto-capture-config.interface.d.ts +13 -0
  23. package/dist/src/shared/auto-capture/typings/auto-capture-state.interface.d.ts +13 -0
  24. package/dist/src/shared/auto-capture/typings/auto-capture-trigger.interface.d.ts +7 -0
  25. package/dist/src/shared/cli/constants/global-help.constant.d.ts +8 -0
  26. package/dist/src/shared/cli/constants/leaf-help.constant.d.ts +7 -0
  27. package/dist/src/shared/cli/constants/memory-protocol-body.constant.d.ts +7 -0
  28. package/dist/src/shared/cli/constants/query-guidance-body.constant.d.ts +7 -0
  29. package/dist/src/shared/cli/constants/subcommand-help.constant.d.ts +8 -0
  30. package/dist/src/shared/cli/functions/collect-files.function.d.ts +13 -0
  31. package/dist/src/shared/cli/functions/compute-section-kbid.function.d.ts +15 -0
  32. package/dist/src/shared/cli/functions/format-mcp-output.function.d.ts +9 -0
  33. package/dist/src/shared/cli/functions/format-text-output.function.d.ts +9 -0
  34. package/dist/src/shared/cli/functions/generate-group-help.function.d.ts +11 -0
  35. package/dist/src/shared/cli/functions/handle-data-command.function.d.ts +16 -0
  36. package/dist/src/shared/cli/functions/handle-mcp.function.d.ts +15 -0
  37. package/dist/src/shared/cli/functions/handle-migrate.function.d.ts +15 -0
  38. package/dist/src/shared/cli/functions/hydrate-search-previews.function.d.ts +14 -0
  39. package/dist/src/shared/cli/functions/resolve-skill-names.function.d.ts +16 -0
  40. package/dist/src/shared/cli/functions/run-search.function.d.ts +1 -0
  41. package/dist/src/shared/cli/functions/version-gate.function.d.ts +15 -0
  42. package/dist/src/shared/cli/functions/wrap-command.function.d.ts +15 -0
  43. package/dist/src/shared/cli/typings/agent-create-client.interface.d.ts +42 -0
  44. package/dist/src/shared/cli/typings/agent-get-client.interface.d.ts +36 -0
  45. package/dist/src/shared/cli/typings/check-client.interface.d.ts +58 -0
  46. package/dist/src/shared/cli/typings/cli-deps.interface.d.ts +48 -0
  47. package/dist/src/shared/cli/typings/cli-options.interface.d.ts +2 -0
  48. package/dist/src/shared/cli/typings/disconnectable-client.interface.d.ts +26 -0
  49. package/dist/src/shared/cli/typings/dispatch-client.type.d.ts +27 -0
  50. package/dist/src/shared/cli/typings/learn-client.interface.d.ts +52 -0
  51. package/dist/src/shared/cli/typings/learn-io.interface.d.ts +5 -0
  52. package/dist/src/shared/cli/typings/search-client.interface.d.ts +71 -0
  53. package/dist/src/shared/embedding/classes/null-embedding-provider.class.d.ts +20 -0
  54. package/dist/src/shared/embedding/constants/near-duplicate-thresholds.constant.d.ts +15 -0
  55. package/dist/src/shared/embedding/functions/build-vector-index.function.d.ts +14 -0
  56. package/dist/src/shared/embedding/functions/cosine-similarity.function.d.ts +10 -0
  57. package/dist/src/shared/embedding/functions/detect-near-duplicates.function.d.ts +18 -0
  58. package/dist/src/shared/embedding/functions/jaccard-coefficient.function.d.ts +9 -0
  59. package/dist/src/shared/embedding/functions/read-vector-index-meta.function.d.ts +10 -0
  60. package/dist/src/shared/embedding/functions/rrf-fuse.function.d.ts +14 -0
  61. package/dist/src/shared/embedding/functions/search-vectors.function.d.ts +14 -0
  62. package/dist/src/shared/embedding/index.d.ts +16 -0
  63. package/dist/src/shared/embedding/typings/embedding-config.interface.d.ts +20 -0
  64. package/dist/src/shared/embedding/typings/embedding-provider.interface.d.ts +23 -0
  65. package/dist/src/shared/embedding/typings/near-duplicate-candidate.model.d.ts +23 -0
  66. package/dist/src/shared/embedding/typings/near-duplicate-result.model.d.ts +24 -0
  67. package/dist/src/shared/embedding/typings/vector-index-entry.model.d.ts +12 -0
  68. package/dist/src/shared/embedding/typings/vector-index-meta.model.d.ts +11 -0
  69. package/dist/src/shared/embedding/typings/vector-search-result.model.d.ts +7 -0
  70. package/dist/src/shared/mcp/constants/tool-agent-create.constant.d.ts +3 -0
  71. package/dist/src/shared/mcp/constants/tool-agent-delete.constant.d.ts +3 -0
  72. package/dist/src/shared/mcp/constants/tool-agent-get.constant.d.ts +3 -0
  73. package/dist/src/shared/mcp/constants/tool-agent-list.constant.d.ts +3 -0
  74. package/dist/src/shared/mcp/constants/tool-auto-capture-review.constant.d.ts +8 -0
  75. package/dist/src/shared/mcp/constants/tool-check.constant.d.ts +3 -0
  76. package/dist/src/shared/mcp/constants/tool-content.constant.d.ts +3 -0
  77. package/dist/src/shared/mcp/constants/tool-export.constant.d.ts +3 -0
  78. package/dist/src/shared/mcp/constants/tool-gc.constant.d.ts +3 -0
  79. package/dist/src/shared/mcp/constants/tool-learn.constant.d.ts +3 -0
  80. package/dist/src/shared/mcp/constants/tool-rebuild.constant.d.ts +3 -0
  81. package/dist/src/shared/mcp/constants/tool-recall.constant.d.ts +3 -0
  82. package/dist/src/shared/mcp/constants/tool-retrieve.constant.d.ts +3 -0
  83. package/dist/src/shared/mcp/constants/tool-search.constant.d.ts +3 -0
  84. package/dist/src/shared/mcp/constants/tool-skill-delete.constant.d.ts +3 -0
  85. package/dist/src/shared/mcp/constants/tool-skill-get.constant.d.ts +3 -0
  86. package/dist/src/shared/mcp/constants/tool-skill-learn.constant.d.ts +3 -0
  87. package/dist/src/shared/mcp/constants/tool-skill-list.constant.d.ts +3 -0
  88. package/dist/src/shared/mcp/constants/tool-status.constant.d.ts +3 -0
  89. package/dist/src/shared/mcp/constants/tool-unlearn.constant.d.ts +3 -0
  90. package/dist/src/shared/mcp/functions/as-boolean-or-undefined.function.d.ts +7 -0
  91. package/dist/src/shared/mcp/functions/as-string-array-or-undefined.function.d.ts +7 -0
  92. package/dist/src/shared/mcp/functions/as-string-array.function.d.ts +7 -0
  93. package/dist/src/shared/mcp/functions/as-string.function.d.ts +8 -0
  94. package/dist/src/shared/mcp/functions/build-skills-text.function.d.ts +18 -0
  95. package/dist/src/shared/mcp/functions/handle-agent-prompt.function.d.ts +14 -0
  96. package/dist/src/shared/mcp/functions/handle-mcp-request.function.d.ts +14 -0
  97. package/dist/src/shared/mcp/functions/handle-prompt-get.function.d.ts +4 -3
  98. package/dist/src/shared/mcp/functions/handle-skill-prompt.function.d.ts +16 -0
  99. package/dist/src/shared/mcp/functions/handle-tool-auto-capture-review.function.d.ts +12 -0
  100. package/dist/src/shared/mcp/functions/handle-tool-check.function.d.ts +11 -0
  101. package/dist/src/shared/mcp/functions/handle-tool-content.function.d.ts +12 -0
  102. package/dist/src/shared/mcp/functions/handle-tool-export.function.d.ts +12 -0
  103. package/dist/src/shared/mcp/functions/handle-tool-gc.function.d.ts +11 -0
  104. package/dist/src/shared/mcp/functions/handle-tool-learn.function.d.ts +12 -0
  105. package/dist/src/shared/mcp/functions/handle-tool-rebuild.function.d.ts +11 -0
  106. package/dist/src/shared/mcp/functions/handle-tool-retrieve.function.d.ts +12 -0
  107. package/dist/src/shared/mcp/functions/handle-tool-search.function.d.ts +13 -0
  108. package/dist/src/shared/mcp/functions/handle-tool-skill-delete.function.d.ts +12 -0
  109. package/dist/src/shared/mcp/functions/handle-tool-skill-get.function.d.ts +13 -0
  110. package/dist/src/shared/mcp/functions/handle-tool-skill-learn.function.d.ts +13 -0
  111. package/dist/src/shared/mcp/functions/handle-tool-skill-list.function.d.ts +11 -0
  112. package/dist/src/shared/mcp/functions/handle-tool-status.function.d.ts +11 -0
  113. package/dist/src/shared/mcp/functions/handle-tool-unlearn.function.d.ts +12 -0
  114. package/dist/src/shared/mcp/functions/parse-agent-meta.function.d.ts +14 -0
  115. package/dist/src/shared/mcp/functions/parse-skill-arguments.function.d.ts +11 -0
  116. package/dist/src/shared/mcp/functions/read-agent-meta.function.d.ts +17 -0
  117. package/dist/src/shared/mcp/functions/resolve-skill-refs.function.d.ts +23 -0
  118. package/dist/src/shared/mcp/functions/run-startup-health-check.function.d.ts +14 -0
  119. package/dist/src/shared/mcp/typings/mcp-capabilities.interface.d.ts +16 -0
  120. package/dist/src/shared/mcp/typings/mcp-client.interface.d.ts +2 -0
  121. package/dist/src/shared/mcp/typings/mcp-completion.interface.d.ts +43 -0
  122. package/dist/src/shared/mcp/typings/mcp-content-result.model.d.ts +9 -0
  123. package/dist/src/shared/mcp/typings/mcp-export-result.model.d.ts +11 -0
  124. package/dist/src/shared/mcp/typings/mcp-gc-result.model.d.ts +15 -0
  125. package/dist/src/shared/mcp/typings/mcp-integrity-check-result.model.d.ts +16 -0
  126. package/dist/src/shared/mcp/typings/mcp-integrity-error.model.d.ts +9 -0
  127. package/dist/src/shared/mcp/typings/mcp-notification.interface.d.ts +9 -0
  128. package/dist/src/shared/mcp/typings/mcp-rebuild-result.model.d.ts +9 -0
  129. package/dist/src/shared/mcp/typings/mcp-request.interface.d.ts +11 -0
  130. package/dist/src/shared/mcp/typings/mcp-resource-result.interface.d.ts +12 -0
  131. package/dist/src/shared/mcp/typings/mcp-resource-template.interface.d.ts +11 -0
  132. package/dist/src/shared/mcp/typings/mcp-response.interface.d.ts +18 -0
  133. package/dist/src/shared/mcp/typings/mcp-server-info.interface.d.ts +7 -0
  134. package/dist/src/shared/mcp/typings/mcp-server-state.interface.d.ts +16 -0
  135. package/dist/src/shared/mcp/typings/mcp-tool-annotations.interface.d.ts +32 -0
  136. package/dist/src/shared/mcp/typings/mcp-tool-definition.interface.d.ts +15 -0
  137. package/dist/src/shared/mcp/typings/mcp-tool-result.interface.d.ts +19 -0
  138. package/dist/src/shared/mcp/typings/mcp-worker-client.interface.d.ts +220 -0
  139. package/dist/src/shared/mcp/typings/tool-call-result.model.d.ts +17 -0
  140. package/dist/src/shared/sync/functions/build-import-report.function.d.ts +18 -0
  141. package/dist/src/shared/sync/functions/parse-export-entry.function.d.ts +11 -0
  142. package/dist/src/shared/sync/functions/resolve-conflict.function.d.ts +13 -0
  143. package/dist/src/shared/sync/functions/serialize-export-entry.function.d.ts +8 -0
  144. package/dist/src/shared/sync/index.d.ts +9 -0
  145. package/dist/src/shared/sync/typings/conflict-resolution.type.d.ts +8 -0
  146. package/dist/src/shared/sync/typings/export-entry.interface.d.ts +13 -0
  147. package/dist/src/shared/sync/typings/export-options.interface.d.ts +9 -0
  148. package/dist/src/shared/sync/typings/import-options.interface.d.ts +7 -0
  149. package/dist/src/shared/sync/typings/import-report.interface.d.ts +15 -0
  150. package/dist/src/shared/wasm-codec/functions/decode-one-recall-result.function.d.ts +14 -0
  151. package/dist/src/shared/wasm-codec/functions/decode-option-string.function.d.ts +12 -0
  152. package/dist/src/shared/wasm-codec/functions/decode-recall-document.function.d.ts +14 -0
  153. package/dist/src/shared/wasm-codec/functions/decode-recall-reference.function.d.ts +14 -0
  154. package/dist/src/shared/wasm-codec/functions/decode-recall-sibling.function.d.ts +13 -0
  155. package/dist/src/shared/wasm-codec/functions/decode-section-match.function.d.ts +15 -0
  156. package/dist/src/shared/wasm-codec/functions/decode-section-record-trailing.function.d.ts +14 -0
  157. package/dist/src/shared/wasm-codec/functions/decode-section-record.function.d.ts +14 -0
  158. package/dist/src/shared/wasm-codec/functions/decode-section-type.function.d.ts +13 -0
  159. package/dist/src/shared/wasm-codec/functions/decode-wasm-list.function.d.ts +17 -0
  160. package/dist/src/shared/wasm-codec/typings/add-section-input.model.d.ts +45 -0
  161. package/dist/src/shared/wasm-codec/typings/add-section-result.model.d.ts +27 -0
  162. package/dist/src/shared/wasm-codec/typings/document-manifest.model.d.ts +19 -0
  163. package/dist/src/shared/wasm-codec/typings/document-section.model.d.ts +12 -0
  164. package/dist/src/shared/wasm-codec/typings/item-decoder.type.d.ts +6 -0
  165. package/dist/src/shared/wasm-codec/typings/near-duplicate.model.d.ts +16 -0
  166. package/dist/src/shared/wasm-codec/typings/paged-search-result.model.d.ts +21 -0
  167. package/dist/src/shared/wasm-codec/typings/section-match.model.d.ts +31 -0
  168. package/dist/src/shared/wasm-codec/typings/section-record-trailing.model.d.ts +38 -0
  169. package/dist/src/shared/wasm-codec/typings/section-record.model.d.ts +66 -0
  170. package/dist/src/shared/wasm-codec/typings/section-type-result.model.d.ts +12 -0
  171. package/dist/src/shared/worker-client/functions/handle-ipc-data.function.d.ts +16 -0
  172. package/dist/src/shared/worker-client/functions/send-ipc-request.function.d.ts +19 -0
  173. package/dist/src/shared/worker-client/typings/add-section-result.model.d.ts +2 -0
  174. package/dist/src/shared/worker-client/typings/json-rpc-response.interface.d.ts +16 -0
  175. package/dist/src/shared/worker-client/typings/pending-call.interface.d.ts +7 -0
  176. package/dist/src/shared/worker-client/typings/recall-document.model.d.ts +16 -0
  177. package/dist/src/shared/worker-client/typings/recall-params.model.d.ts +15 -0
  178. package/dist/src/shared/worker-client/typings/recall-reference.model.d.ts +32 -0
  179. package/dist/src/shared/worker-client/typings/recall-sibling.model.d.ts +11 -0
  180. package/dist/src/shared/worker-client/typings/recall-single-result.model.d.ts +40 -0
  181. package/dist/src/shared/worker-daemon/classes/ipc-error.class.d.ts +17 -0
  182. package/dist/src/shared/worker-daemon/constants/wasm-method-map.constant.d.ts +16 -0
  183. package/dist/src/shared/worker-daemon/functions/build-ipc-error-response.function.d.ts +9 -0
  184. package/dist/src/shared/worker-daemon/functions/check-catalog-version.function.d.ts +9 -0
  185. package/dist/src/shared/worker-daemon/functions/check-preconditions.function.d.ts +10 -0
  186. package/dist/src/shared/worker-daemon/functions/detect-stale-pid.function.d.ts +15 -0
  187. package/dist/src/shared/worker-daemon/functions/dispatch-request.function.d.ts +35 -0
  188. package/dist/src/shared/worker-daemon/functions/handle-check-version.function.d.ts +23 -0
  189. package/dist/src/shared/worker-daemon/functions/handle-config-method.function.d.ts +11 -0
  190. package/dist/src/shared/worker-daemon/functions/handle-read-ops.function.d.ts +52 -0
  191. package/dist/src/shared/worker-daemon/functions/handle-write-ops.function.d.ts +44 -0
  192. package/dist/src/shared/worker-daemon/functions/parse-auto-capture-section.function.d.ts +14 -0
  193. package/dist/src/shared/worker-daemon/functions/parse-catalog-version.function.d.ts +10 -0
  194. package/dist/src/shared/worker-daemon/functions/parse-embedding-section.function.d.ts +13 -0
  195. package/dist/src/shared/worker-daemon/functions/parse-worker-toml.function.d.ts +11 -0
  196. package/dist/src/shared/worker-daemon/functions/run-startup-integrity-check.function.d.ts +18 -0
  197. package/dist/src/shared/worker-daemon/functions/scan-near-duplicates.function.d.ts +21 -0
  198. package/dist/src/shared/worker-daemon/functions/wasm-bridge.function.d.ts +51 -0
  199. package/dist/src/shared/worker-daemon/functions/wasm-memory-helpers.function.d.ts +22 -0
  200. package/dist/src/shared/worker-daemon/functions/write-lock.function.d.ts +32 -0
  201. package/dist/src/shared/worker-daemon/typings/allocator-ref.interface.d.ts +16 -0
  202. package/dist/src/shared/worker-daemon/typings/daemon-config.interface.d.ts +6 -0
  203. package/dist/src/shared/worker-daemon/typings/fs-adapter.interface.d.ts +22 -0
  204. package/dist/src/shared/worker-daemon/typings/handler-context.interface.d.ts +18 -0
  205. package/dist/src/shared/worker-daemon/typings/memory-ref.interface.d.ts +13 -0
  206. package/dist/src/shared/worker-daemon/typings/wasm-fn.type.d.ts +2 -0
  207. package/dist/src/shared/worker-daemon/typings/write-lock.interface.d.ts +15 -0
  208. package/dist/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
  209. package/dist/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
  210. package/docs/details/cli.md +9 -0
  211. package/docs/details/mcp-server.md +5 -3
  212. package/docs/details/search-and-ranking.md +55 -0
  213. package/docs/goals/auto-capture.md +378 -0
  214. package/docs/goals/benchmarking.md +296 -0
  215. package/docs/goals/concurrency.md +259 -0
  216. package/docs/goals/hybrid-search.md +436 -0
  217. package/docs/goals/semantic-dedup.md +229 -0
  218. package/docs/goals/sync.md +217 -0
  219. package/docs/modules/rust/fs-database/indexes/vectors.md +110 -0
  220. package/docs/modules/typescript/shared/auto-capture/module.md +73 -0
  221. package/docs/modules/typescript/shared/embedding/functions.md +94 -0
  222. package/docs/modules/typescript/shared/embedding/module.md +71 -0
  223. package/docs/modules/typescript/shared/embedding/typings.md +122 -0
  224. package/docs/overview.md +171 -167
  225. package/docs/release-notes/0.2.0.md +3 -3
  226. package/docs/release-notes/0.3.0.md +89 -0
  227. package/docs/release-notes/0.3.1.md +121 -0
  228. package/docs/release-notes/0.3.2.md +64 -0
  229. package/docs/release-notes/README.md +3 -0
  230. package/package.json +1 -1
  231. package/src/shared/auto-capture/classes/auto-capture-controller.class.ts +62 -0
  232. package/src/shared/auto-capture/constants/auto-capture-defaults.constant.ts +15 -0
  233. package/src/shared/auto-capture/functions/build-capture-prompt.function.ts +27 -0
  234. package/src/shared/auto-capture/functions/evaluate-trigger.function.ts +50 -0
  235. package/src/shared/auto-capture/index.ts +7 -0
  236. package/src/shared/auto-capture/typings/auto-capture-config.interface.ts +13 -0
  237. package/src/shared/auto-capture/typings/auto-capture-state.interface.ts +13 -0
  238. package/src/shared/auto-capture/typings/auto-capture-trigger.interface.ts +7 -0
  239. package/src/shared/cli/constants/global-help.constant.ts +73 -0
  240. package/src/shared/cli/constants/leaf-help.constant.ts +219 -0
  241. package/src/shared/cli/constants/memory-protocol-body.constant.ts +39 -0
  242. package/src/shared/cli/constants/query-guidance-body.constant.ts +37 -0
  243. package/src/shared/cli/constants/subcommand-help.constant.ts +195 -0
  244. package/src/shared/cli/functions/collect-files.function.ts +55 -0
  245. package/src/shared/cli/functions/compute-section-kbid.function.ts +49 -0
  246. package/src/shared/cli/functions/format-mcp-output.function.ts +41 -0
  247. package/src/shared/cli/functions/format-text-output.function.ts +42 -0
  248. package/src/shared/cli/functions/generate-group-help.function.ts +41 -0
  249. package/src/shared/cli/functions/handle-data-command.function.ts +67 -0
  250. package/src/shared/cli/functions/handle-mcp.function.ts +56 -0
  251. package/src/shared/cli/functions/handle-migrate.function.ts +64 -0
  252. package/src/shared/cli/functions/hydrate-search-previews.function.ts +29 -0
  253. package/src/shared/cli/functions/parse-args.function.ts +3 -0
  254. package/src/shared/cli/functions/resolve-skill-names.function.ts +43 -0
  255. package/src/shared/cli/functions/run-search.function.ts +2 -0
  256. package/src/shared/cli/functions/version-gate.function.ts +44 -0
  257. package/src/shared/cli/functions/wrap-command.function.ts +34 -0
  258. package/src/shared/cli/typings/agent-create-client.interface.ts +47 -0
  259. package/src/shared/cli/typings/agent-get-client.interface.ts +39 -0
  260. package/src/shared/cli/typings/check-client.interface.ts +66 -0
  261. package/src/shared/cli/typings/cli-deps.interface.ts +54 -0
  262. package/src/shared/cli/typings/cli-options.interface.ts +2 -0
  263. package/src/shared/cli/typings/disconnectable-client.interface.ts +29 -0
  264. package/src/shared/cli/typings/dispatch-client.type.ts +46 -0
  265. package/src/shared/cli/typings/learn-client.interface.ts +53 -0
  266. package/src/shared/cli/typings/learn-io.interface.ts +5 -0
  267. package/src/shared/cli/typings/search-client.interface.ts +73 -0
  268. package/src/shared/embedding/classes/null-embedding-provider.class.ts +29 -0
  269. package/src/shared/embedding/constants/near-duplicate-thresholds.constant.ts +17 -0
  270. package/src/shared/embedding/functions/build-vector-index.function.ts +79 -0
  271. package/src/shared/embedding/functions/cosine-similarity.function.ts +31 -0
  272. package/src/shared/embedding/functions/detect-near-duplicates.function.ts +69 -0
  273. package/src/shared/embedding/functions/jaccard-coefficient.function.ts +26 -0
  274. package/src/shared/embedding/functions/read-vector-index-meta.function.ts +44 -0
  275. package/src/shared/embedding/functions/rrf-fuse.function.ts +33 -0
  276. package/src/shared/embedding/functions/search-vectors.function.ts +59 -0
  277. package/src/shared/embedding/index.ts +20 -0
  278. package/src/shared/embedding/typings/embedding-config.interface.ts +23 -0
  279. package/src/shared/embedding/typings/embedding-provider.interface.ts +25 -0
  280. package/src/shared/embedding/typings/near-duplicate-candidate.model.ts +25 -0
  281. package/src/shared/embedding/typings/near-duplicate-result.model.ts +26 -0
  282. package/src/shared/embedding/typings/vector-index-entry.model.ts +13 -0
  283. package/src/shared/embedding/typings/vector-index-meta.model.ts +14 -0
  284. package/src/shared/embedding/typings/vector-search-result.model.ts +8 -0
  285. package/src/shared/mcp/classes/mcp-server.class.ts +6 -3
  286. package/src/shared/mcp/constants/tool-agent-create.constant.ts +39 -0
  287. package/src/shared/mcp/constants/tool-agent-delete.constant.ts +26 -0
  288. package/src/shared/mcp/constants/tool-agent-get.constant.ts +24 -0
  289. package/src/shared/mcp/constants/tool-agent-list.constant.ts +18 -0
  290. package/src/shared/mcp/constants/tool-auto-capture-review.constant.ts +32 -0
  291. package/src/shared/mcp/constants/tool-check.constant.ts +21 -0
  292. package/src/shared/mcp/constants/tool-content.constant.ts +29 -0
  293. package/src/shared/mcp/constants/tool-export.constant.ts +27 -0
  294. package/src/shared/mcp/constants/tool-gc.constant.ts +21 -0
  295. package/src/shared/mcp/constants/tool-learn.constant.ts +58 -0
  296. package/src/shared/mcp/constants/tool-rebuild.constant.ts +21 -0
  297. package/src/shared/mcp/constants/tool-recall.constant.ts +36 -0
  298. package/src/shared/mcp/constants/tool-retrieve.constant.ts +31 -0
  299. package/src/shared/mcp/constants/tool-search.constant.ts +51 -0
  300. package/src/shared/mcp/constants/tool-skill-delete.constant.ts +24 -0
  301. package/src/shared/mcp/constants/tool-skill-get.constant.ts +27 -0
  302. package/src/shared/mcp/constants/tool-skill-learn.constant.ts +37 -0
  303. package/src/shared/mcp/constants/tool-skill-list.constant.ts +18 -0
  304. package/src/shared/mcp/constants/tool-status.constant.ts +20 -0
  305. package/src/shared/mcp/constants/tool-unlearn.constant.ts +25 -0
  306. package/src/shared/mcp/functions/as-boolean-or-undefined.function.ts +11 -0
  307. package/src/shared/mcp/functions/as-string-array-or-undefined.function.ts +17 -0
  308. package/src/shared/mcp/functions/as-string-array.function.ts +15 -0
  309. package/src/shared/mcp/functions/as-string.function.ts +10 -0
  310. package/src/shared/mcp/functions/build-skills-text.function.ts +43 -0
  311. package/src/shared/mcp/functions/create-tool-definitions.function.ts +28 -0
  312. package/src/shared/mcp/functions/handle-agent-create.function.ts +1 -1
  313. package/src/shared/mcp/functions/handle-agent-prompt.function.ts +68 -0
  314. package/src/shared/mcp/functions/handle-mcp-request.function.ts +202 -0
  315. package/src/shared/mcp/functions/handle-prompt-get.function.ts +18 -12
  316. package/src/shared/mcp/functions/handle-skill-prompt.function.ts +44 -0
  317. package/src/shared/mcp/functions/handle-tool-auto-capture-review.function.ts +24 -0
  318. package/src/shared/mcp/functions/handle-tool-call.function.ts +18 -0
  319. package/src/shared/mcp/functions/handle-tool-check.function.ts +21 -0
  320. package/src/shared/mcp/functions/handle-tool-content.function.ts +23 -0
  321. package/src/shared/mcp/functions/handle-tool-export.function.ts +25 -0
  322. package/src/shared/mcp/functions/handle-tool-gc.function.ts +21 -0
  323. package/src/shared/mcp/functions/handle-tool-learn.function.ts +69 -0
  324. package/src/shared/mcp/functions/handle-tool-rebuild.function.ts +21 -0
  325. package/src/shared/mcp/functions/handle-tool-retrieve.function.ts +40 -0
  326. package/src/shared/mcp/functions/handle-tool-search.function.ts +47 -0
  327. package/src/shared/mcp/functions/handle-tool-skill-delete.function.ts +34 -0
  328. package/src/shared/mcp/functions/handle-tool-skill-get.function.ts +59 -0
  329. package/src/shared/mcp/functions/handle-tool-skill-learn.function.ts +61 -0
  330. package/src/shared/mcp/functions/handle-tool-skill-list.function.ts +39 -0
  331. package/src/shared/mcp/functions/handle-tool-status.function.ts +21 -0
  332. package/src/shared/mcp/functions/handle-tool-unlearn.function.ts +24 -0
  333. package/src/shared/mcp/functions/parse-agent-meta.function.ts +27 -0
  334. package/src/shared/mcp/functions/parse-skill-arguments.function.ts +36 -0
  335. package/src/shared/mcp/functions/read-agent-meta.function.ts +41 -0
  336. package/src/shared/mcp/functions/resolve-skill-refs.function.ts +50 -0
  337. package/src/shared/mcp/functions/run-startup-health-check.function.ts +34 -0
  338. package/src/shared/mcp/typings/mcp-capabilities.interface.ts +16 -0
  339. package/src/shared/mcp/typings/mcp-client.interface.ts +2 -0
  340. package/src/shared/mcp/typings/mcp-completion.interface.ts +45 -0
  341. package/src/shared/mcp/typings/mcp-content-result.model.ts +9 -0
  342. package/src/shared/mcp/typings/mcp-export-result.model.ts +11 -0
  343. package/src/shared/mcp/typings/mcp-gc-result.model.ts +15 -0
  344. package/src/shared/mcp/typings/mcp-integrity-check-result.model.ts +17 -0
  345. package/src/shared/mcp/typings/mcp-integrity-error.model.ts +15 -0
  346. package/src/shared/mcp/typings/mcp-notification.interface.ts +9 -0
  347. package/src/shared/mcp/typings/mcp-rebuild-result.model.ts +9 -0
  348. package/src/shared/mcp/typings/mcp-request.interface.ts +11 -0
  349. package/src/shared/mcp/typings/mcp-resource-result.interface.ts +12 -0
  350. package/src/shared/mcp/typings/mcp-resource-template.interface.ts +11 -0
  351. package/src/shared/mcp/typings/mcp-response.interface.ts +18 -0
  352. package/src/shared/mcp/typings/mcp-server-info.interface.ts +7 -0
  353. package/src/shared/mcp/typings/mcp-server-state.interface.ts +17 -0
  354. package/src/shared/mcp/typings/mcp-tool-annotations.interface.ts +32 -0
  355. package/src/shared/mcp/typings/mcp-tool-definition.interface.ts +16 -0
  356. package/src/shared/mcp/typings/mcp-tool-result.interface.ts +19 -0
  357. package/src/shared/mcp/typings/mcp-worker-client.interface.ts +243 -0
  358. package/src/shared/mcp/typings/tool-call-result.model.ts +18 -0
  359. package/src/shared/sync/functions/build-import-report.function.ts +40 -0
  360. package/src/shared/sync/functions/parse-export-entry.function.ts +45 -0
  361. package/src/shared/sync/functions/resolve-conflict.function.ts +31 -0
  362. package/src/shared/sync/functions/serialize-export-entry.function.ts +18 -0
  363. package/src/shared/sync/index.ts +9 -0
  364. package/src/shared/sync/typings/conflict-resolution.type.ts +8 -0
  365. package/src/shared/sync/typings/export-entry.interface.ts +13 -0
  366. package/src/shared/sync/typings/export-options.interface.ts +9 -0
  367. package/src/shared/sync/typings/import-options.interface.ts +7 -0
  368. package/src/shared/sync/typings/import-report.interface.ts +15 -0
  369. package/src/shared/wasm-codec/functions/decode-one-recall-result.function.ts +86 -0
  370. package/src/shared/wasm-codec/functions/decode-option-string.function.ts +24 -0
  371. package/src/shared/wasm-codec/functions/decode-recall-document.function.ts +59 -0
  372. package/src/shared/wasm-codec/functions/decode-recall-reference.function.ts +52 -0
  373. package/src/shared/wasm-codec/functions/decode-recall-sibling.function.ts +43 -0
  374. package/src/shared/wasm-codec/functions/decode-section-match.function.ts +80 -0
  375. package/src/shared/wasm-codec/functions/decode-section-record-trailing.function.ts +75 -0
  376. package/src/shared/wasm-codec/functions/decode-section-record.function.ts +85 -0
  377. package/src/shared/wasm-codec/functions/decode-section-type.function.ts +30 -0
  378. package/src/shared/wasm-codec/functions/decode-wasm-list.function.ts +31 -0
  379. package/src/shared/wasm-codec/typings/add-section-input.model.ts +45 -0
  380. package/src/shared/wasm-codec/typings/add-section-result.model.ts +28 -0
  381. package/src/shared/wasm-codec/typings/document-manifest.model.ts +20 -0
  382. package/src/shared/wasm-codec/typings/document-section.model.ts +12 -0
  383. package/src/shared/wasm-codec/typings/item-decoder.type.ts +10 -0
  384. package/src/shared/wasm-codec/typings/near-duplicate.model.ts +16 -0
  385. package/src/shared/wasm-codec/typings/paged-search-result.model.ts +22 -0
  386. package/src/shared/wasm-codec/typings/section-match.model.ts +31 -0
  387. package/src/shared/wasm-codec/typings/section-record-trailing.model.ts +38 -0
  388. package/src/shared/wasm-codec/typings/section-record.model.ts +66 -0
  389. package/src/shared/wasm-codec/typings/section-type-result.model.ts +12 -0
  390. package/src/shared/worker-client/functions/handle-ipc-data.function.ts +49 -0
  391. package/src/shared/worker-client/functions/send-ipc-request.function.ts +39 -0
  392. package/src/shared/worker-client/typings/add-section-result.model.ts +2 -0
  393. package/src/shared/worker-client/typings/json-rpc-response.interface.ts +17 -0
  394. package/src/shared/worker-client/typings/pending-call.interface.ts +7 -0
  395. package/src/shared/worker-client/typings/recall-document.model.ts +16 -0
  396. package/src/shared/worker-client/typings/recall-params.model.ts +15 -0
  397. package/src/shared/worker-client/typings/recall-reference.model.ts +32 -0
  398. package/src/shared/worker-client/typings/recall-sibling.model.ts +11 -0
  399. package/src/shared/worker-client/typings/recall-single-result.model.ts +41 -0
  400. package/src/shared/worker-daemon/classes/ipc-error.class.ts +22 -0
  401. package/src/shared/worker-daemon/constants/wasm-method-map.constant.ts +69 -0
  402. package/src/shared/worker-daemon/functions/build-ipc-error-response.function.ts +16 -0
  403. package/src/shared/worker-daemon/functions/check-catalog-version.function.ts +54 -0
  404. package/src/shared/worker-daemon/functions/check-preconditions.function.ts +28 -0
  405. package/src/shared/worker-daemon/functions/detect-stale-pid.function.ts +33 -0
  406. package/src/shared/worker-daemon/functions/dispatch-request.function.ts +190 -0
  407. package/src/shared/worker-daemon/functions/handle-check-version.function.ts +74 -0
  408. package/src/shared/worker-daemon/functions/handle-config-method.function.ts +27 -0
  409. package/src/shared/worker-daemon/functions/handle-read-ops.function.ts +236 -0
  410. package/src/shared/worker-daemon/functions/handle-write-ops.function.ts +257 -0
  411. package/src/shared/worker-daemon/functions/parse-auto-capture-section.function.ts +51 -0
  412. package/src/shared/worker-daemon/functions/parse-catalog-version.function.ts +20 -0
  413. package/src/shared/worker-daemon/functions/parse-embedding-section.function.ts +38 -0
  414. package/src/shared/worker-daemon/functions/parse-worker-toml.function.ts +104 -0
  415. package/src/shared/worker-daemon/functions/run-startup-integrity-check.function.ts +55 -0
  416. package/src/shared/worker-daemon/functions/scan-near-duplicates.function.ts +92 -0
  417. package/src/shared/worker-daemon/functions/wasm-bridge.function.ts +144 -0
  418. package/src/shared/worker-daemon/functions/wasm-memory-helpers.function.ts +41 -0
  419. package/src/shared/worker-daemon/functions/write-lock.function.ts +49 -0
  420. package/src/shared/worker-daemon/typings/allocator-ref.interface.ts +16 -0
  421. package/src/shared/worker-daemon/typings/daemon-config.interface.ts +7 -0
  422. package/src/shared/worker-daemon/typings/fs-adapter.interface.ts +22 -0
  423. package/src/shared/worker-daemon/typings/handler-context.interface.ts +19 -0
  424. package/src/shared/worker-daemon/typings/memory-ref.interface.ts +13 -0
  425. package/src/shared/worker-daemon/typings/wasm-fn.type.ts +2 -0
  426. package/src/shared/worker-daemon/typings/write-lock.interface.ts +13 -0
  427. package/src/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
  428. package/src/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
@@ -0,0 +1,13 @@
1
+ import type { EmbeddingConfig } from '../../embedding/typings/embedding-config.interface.ts';
2
+ /**
3
+ * Parses key-value pairs from a `[embedding]` TOML section into an
4
+ * `EmbeddingConfig`.
5
+ *
6
+ * Recognises: `provider`, `model`, `endpoint`, `dimensions`.
7
+ * Unknown keys are silently ignored. Returns `undefined` when the
8
+ * `provider` key is absent from the supplied entries.
9
+ *
10
+ * @param entries - key-value pairs from inside the `[embedding]`
11
+ * section
12
+ */
13
+ export declare function parseEmbeddingSection(entries: ReadonlyMap<string, string>): EmbeddingConfig | undefined;
@@ -0,0 +1,11 @@
1
+ import type { DaemonConfig } from '../typings/daemon-config.interface.ts';
2
+ /**
3
+ * Parses a `worker.toml` file body into a partial `DaemonConfig`.
4
+ *
5
+ * Handles `[embedding]` sub-sections and root key-value pairs.
6
+ * Unknown keys are silently ignored.
7
+ *
8
+ * @param text - raw content of `worker.toml`
9
+ * @param contextPath - daemon context directory path
10
+ */
11
+ export declare function parseWorkerToml(text: string, contextPath: string): DaemonConfig;
@@ -0,0 +1,18 @@
1
+ import type { WasmModules } from '../typings/wasm-modules.interface.ts';
2
+ /** Result of a startup integrity check. */
3
+ export interface StartupIntegrityResult {
4
+ /** Whether the check passed without errors. */
5
+ readonly integrityOk: boolean;
6
+ /** Integrity error descriptions found at startup. */
7
+ readonly integrityErrors: string[];
8
+ }
9
+ /**
10
+ * Runs `worker_check_integrity` immediately after WASM context
11
+ * initialisation and returns the result.
12
+ *
13
+ * Logs a warning to stderr when issues are found. Never throws --
14
+ * failures are captured and returned as part of the result.
15
+ *
16
+ * @param modules - loaded WASM module instances
17
+ */
18
+ export declare function runStartupIntegrityCheck(modules: WasmModules): StartupIntegrityResult;
@@ -0,0 +1,21 @@
1
+ /** A near-duplicate match found during add-section scanning. */
2
+ export interface NearDuplicateMatch {
3
+ /** Knowledge-base identifier of the near-duplicate section. */
4
+ readonly kbid: string;
5
+ /** Jaccard similarity score, rounded to 2 decimal places (0–1). */
6
+ readonly similarity: number;
7
+ }
8
+ /**
9
+ * Scans existing section files for near-duplicates of `content`.
10
+ *
11
+ * Uses Jaccard similarity on a set of lowercased tokens (3+ chars)
12
+ * extracted from the section body. Sections with a similarity of
13
+ * 0.85 or above are included in the result. The `newKbid` section
14
+ * is excluded from comparison.
15
+ *
16
+ * @param targetDir - absolute path to the `.kbdb` directory
17
+ * @param content - raw text content of the newly added section
18
+ * @param newKbid - identifier of the just-added section to exclude
19
+ * @returns near-duplicate matches sorted by insertion order
20
+ */
21
+ export declare function scanNearDuplicates(targetDir: string, content: string, newKbid: string): NearDuplicateMatch[];
@@ -0,0 +1,51 @@
1
+ import type { WasmModules } from '../typings/wasm-modules.interface.ts';
2
+ import type { WasmFn } from '../typings/wasm-fn.type.ts';
3
+ /**
4
+ * Retrieves a named export from the kb-worker WASM instance.
5
+ *
6
+ * @throws {Error} if WASM modules are not yet loaded
7
+ * @throws {Error} if the named export does not exist or is not a
8
+ * function
9
+ */
10
+ export declare function getWasmExport(modules: WasmModules, name: string): WasmFn;
11
+ /**
12
+ * Allocates `size` bytes in WASM linear memory.
13
+ *
14
+ * Returns `0` when `size` is zero or the allocator export is
15
+ * absent.
16
+ */
17
+ export declare function wasmAlloc(modules: WasmModules, size: number): number;
18
+ /**
19
+ * Frees a previously allocated WASM memory region.
20
+ *
21
+ * No-ops when `ptr` or `size` is zero, or when the free export
22
+ * is absent.
23
+ */
24
+ export declare function wasmFree(modules: WasmModules, ptr: number, size: number): void;
25
+ /**
26
+ * Writes `data` into WASM linear memory at `ptr`.
27
+ *
28
+ * @throws {Error} if the write would exceed memory bounds
29
+ */
30
+ export declare function wasmWrite(modules: WasmModules, ptr: number, data: Uint8Array): void;
31
+ /**
32
+ * Reads the WASM return slot, frees the underlying buffer, and
33
+ * returns its contents as a `Uint8Array`.
34
+ *
35
+ * Returns an empty array when the slot is unset or memory is
36
+ * unavailable.
37
+ */
38
+ export declare function readReturnSlot(modules: WasmModules): Uint8Array;
39
+ /**
40
+ * Calls a WASM export with binary-encoded input via the
41
+ * alloc/write/call/read/free protocol.
42
+ *
43
+ * @throws {IpcError} when the export returns `-1` (error sentinel)
44
+ */
45
+ export declare function callWasmSync(modules: WasmModules, exportName: string, input: Uint8Array): Uint8Array;
46
+ /**
47
+ * Calls a zero-argument WASM export and checks its return code.
48
+ *
49
+ * @throws {IpcError} when the export returns `-1` (error sentinel)
50
+ */
51
+ export declare function callWasmZeroArg(modules: WasmModules, exportName: string): void;
@@ -0,0 +1,22 @@
1
+ import type { MemoryRef } from '../typings/memory-ref.interface.ts';
2
+ /**
3
+ * Returns the current `ArrayBuffer` backing WASM linear memory.
4
+ *
5
+ * Must be called after WASM module instantiation. The buffer
6
+ * reference may change after WASM memory growth, so callers
7
+ * should call this function each time they need a fresh view.
8
+ *
9
+ * @param memoryRef - deferred reference to WASM linear memory
10
+ * @throws {Error} when memory is not yet initialised
11
+ */
12
+ export declare function getWasmBuffer(memoryRef: MemoryRef): ArrayBuffer;
13
+ /**
14
+ * Decodes a UTF-8 path from WASM linear memory and resolves it
15
+ * relative to `contextPath` when the path is not absolute.
16
+ *
17
+ * @param memoryRef - deferred reference to WASM linear memory
18
+ * @param contextPath - base directory for relative paths
19
+ * @param ptr - byte offset of the path string in WASM memory
20
+ * @param len - byte length of the path string
21
+ */
22
+ export declare function readWasmPathArg(memoryRef: MemoryRef, contextPath: string, ptr: number, len: number): string;
@@ -0,0 +1,32 @@
1
+ import type { WriteLockState } from '../typings/write-lock.interface.ts';
2
+ /**
3
+ * Acquires the single-writer lock.
4
+ *
5
+ * Enforces the single-writer guarantee: at most one write
6
+ * operation runs at a time inside the daemon. Concurrent writes
7
+ * are serialized through an in-memory FIFO queue -- each caller
8
+ * awaits this function and proceeds only when it is at the head
9
+ * of the queue. Read operations bypass this lock entirely and
10
+ * may proceed concurrently with writes and with each other.
11
+ *
12
+ * Crash recovery: the lock is purely in-memory. If the daemon
13
+ * process crashes mid-write, the OS reclaims process memory,
14
+ * releasing the lock automatically. The WASM engine is
15
+ * responsible for leaving on-disk state consistent (it uses
16
+ * atomic rename: write to a `.tmp` file, then `host_rename` to
17
+ * the final path).
18
+ *
19
+ * @param state - shared write-lock state
20
+ */
21
+ export declare function acquireWriteLock(state: WriteLockState): Promise<void>;
22
+ /**
23
+ * Releases the single-writer lock.
24
+ *
25
+ * Grants the lock to the next queued waiter if one exists;
26
+ * otherwise marks the lock as free. Must always be called in a
27
+ * `finally` block after `acquireWriteLock` to prevent permanent
28
+ * lock starvation.
29
+ *
30
+ * @param state - shared write-lock state
31
+ */
32
+ export declare function releaseWriteLock(state: WriteLockState): void;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * A mutable reference to the WASM allocator function.
3
+ *
4
+ * The `alloc` field starts as `null` and is wired up after the
5
+ * `kb-worker` WASM module is instantiated. Host import functions
6
+ * that must allocate memory in WASM linear memory check this
7
+ * reference before proceeding and return `-1` when it is null.
8
+ */
9
+ export interface AllocatorRef {
10
+ /**
11
+ * Allocates `size` bytes in WASM linear memory and returns the
12
+ * byte offset of the allocated region, or `null` when the
13
+ * allocator is not yet available.
14
+ */
15
+ alloc: ((size: number) => number) | null;
16
+ }
@@ -1,3 +1,5 @@
1
+ import type { EmbeddingConfig } from '../../embedding/typings/embedding-config.interface.ts';
2
+ import type { AutoCaptureConfig } from '../../auto-capture/typings/auto-capture-config.interface.ts';
1
3
  /** Configuration for the worker daemon process. */
2
4
  export interface DaemonConfig {
3
5
  /** Absolute path to the knowledge-base context directory. */
@@ -10,4 +12,8 @@ export interface DaemonConfig {
10
12
  readonly timeoutMs: number;
11
13
  /** Time-to-live in milliseconds for each cached item. */
12
14
  readonly itemTtlMs: number;
15
+ /** Embedding provider configuration. */
16
+ readonly embedding?: EmbeddingConfig;
17
+ /** Auto-capture behaviour configuration. */
18
+ readonly autoCapture?: AutoCaptureConfig;
13
19
  }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Minimal filesystem operations required by the WASM host imports.
3
+ *
4
+ * The default implementation delegates to `node:fs` synchronous
5
+ * APIs. Tests inject a stub to avoid touching the real filesystem.
6
+ */
7
+ export interface FsAdapter {
8
+ /** Read entire file as a Buffer. */
9
+ readFileSync(path: string): Buffer;
10
+ /** Write data buffer to file. */
11
+ writeFileSync(path: string, data: Uint8Array): void;
12
+ /** Rename `oldPath` to `newPath`. */
13
+ renameSync(oldPath: string, newPath: string): void;
14
+ /** Delete a file. */
15
+ unlinkSync(path: string): void;
16
+ /** List directory entries as strings. */
17
+ readdirSync(path: string): string[];
18
+ /** Create a directory (and parents) recursively. */
19
+ mkdirSync(path: string): void;
20
+ /** Return true if the path exists. */
21
+ existsSync(path: string): boolean;
22
+ }
@@ -0,0 +1,18 @@
1
+ import type { DaemonConfig } from './daemon-config.interface.ts';
2
+ import type { WasmModules } from './wasm-modules.interface.ts';
3
+ /**
4
+ * Runtime context passed to all IPC request handler functions.
5
+ *
6
+ * Groups the minimal shared state needed by every request handler
7
+ * so that handler functions can be standalone (not methods on a
8
+ * class) while still accessing WASM modules, configuration, and
9
+ * the database directory path.
10
+ */
11
+ export interface HandlerContext {
12
+ /** Absolute path to the `.kbdb` directory. */
13
+ readonly targetDir: string;
14
+ /** Parsed daemon configuration from `worker.toml`. */
15
+ readonly config: DaemonConfig;
16
+ /** Loaded WASM module instances. */
17
+ readonly modules: WasmModules;
18
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * A mutable reference to the WASM linear memory.
3
+ *
4
+ * The `memory` field starts as `null` and is wired up after the
5
+ * `kb-worker` WASM module is instantiated (the module exports its
6
+ * own memory rather than importing one). Host import functions
7
+ * read `memory` at call time, not at creation time, so the ref
8
+ * can be populated after the import record is built.
9
+ */
10
+ export interface MemoryRef {
11
+ /** WASM linear memory; `null` until the module is instantiated. */
12
+ memory: WebAssembly.Memory | null;
13
+ }
@@ -0,0 +1,2 @@
1
+ /** Callable WASM export function signature. */
2
+ export type WasmFn = (...args: unknown[]) => unknown;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Mutable state for the single-writer lock used by WorkerDaemon.
3
+ *
4
+ * Holds the current lock flag and the queue of pending waiters.
5
+ * Both fields are mutated by `acquireWriteLock` and
6
+ * `releaseWriteLock`.
7
+ */
8
+ export interface WriteLockState {
9
+ /** Whether the write lock is currently held. */
10
+ locked: boolean;
11
+ /** Queue of resolve callbacks for pending lock waiters. */
12
+ queue: {
13
+ resolve: () => void;
14
+ }[];
15
+ }
@@ -80,8 +80,17 @@ These options apply to the `search` command.
80
80
  | `--limit <n>` | `-l` | `20` | positive integer | Maximum results returned |
81
81
  | `--offset <n>` | | `0` | non-negative integer | Zero-based result offset for pagination |
82
82
  | `--format <fmt>` | `-f` | `json` | `json`, `text`, `mcp` | Output format |
83
+ | `--algo <algo>` | | `lexical` | `lexical`, `vector`, `hybrid` | Search algorithm |
83
84
  | `--content` | `-c` | off | boolean flag | Hydrate results with section content |
84
85
 
86
+ ### Search Algorithms
87
+
88
+ | Algorithm | Description |
89
+ |-----------|-------------|
90
+ | `lexical` | Keyword matching with stemming and synonyms (default) |
91
+ | `vector` | AI-powered similarity search using embeddings (requires a configured embedding provider) |
92
+ | `hybrid` | Combines keyword and similarity results for best coverage |
93
+
85
94
  ### Search Modes
86
95
 
87
96
  | Mode | Description |
@@ -188,7 +188,7 @@ own worker client connection.
188
188
 
189
189
  ## Tools Reference
190
190
 
191
- The MCP server exposes 19 tools grouped by
191
+ The MCP server exposes 20 tools grouped by
192
192
  function. All tools communicate with the worker
193
193
  daemon via JSON-RPC 2.0 over IPC.
194
194
 
@@ -196,7 +196,7 @@ daemon via JSON-RPC 2.0 over IPC.
196
196
 
197
197
  | Tool | Parameters | Description | Read-only | Destructive |
198
198
  |------|-----------|-------------|-----------|-------------|
199
- | `search` | `query` (string, required), `mode` (string), `limit` (number), `offset` (number), `content` (boolean) | Query the knowledge base by keywords. Returns ranked results with heading, snippet, and matched terms. Use multiple short keyword queries for best coverage. | yes | no |
199
+ | `search` | `query` (string, required), `mode` (string), `algo` (string: lexical, vector, hybrid), `limit` (number), `offset` (number), `content` (boolean) | Query the knowledge base by keywords. Returns ranked results with heading, snippet, and matched terms. Use `algo` to select search algorithm (default: lexical). | yes | no |
200
200
  | `learn` | `content` (string, required), `type` (string), `title` (string), `description` (string), `docid` (string), `tags` (string[]), `replace` (boolean) | Import content into the knowledge base. Use for durable facts, decisions, and corrections. Use `replace` when updating existing knowledge. Attach `tags` for scoping. | no | no |
201
201
  | `unlearn` | `kbid` (string, required) | Remove a section by kb-id. Cascades deletion to index entries and ranking data. | no | yes |
202
202
  | `retrieve` | `kbid` (string), `docid` (string) | Fetch a specific section or document by identifier. At least one of `kbid` or `docid` required. | yes | no |
@@ -207,6 +207,7 @@ daemon via JSON-RPC 2.0 over IPC.
207
207
  | `gc` | (none) | Remove unreferenced sections (no document manifest references). | no | yes |
208
208
  | `rebuild` | (none) | Reconstruct all index files from section files and document manifests on disk. | no | no |
209
209
  | `export` | `path` (string) | Export the knowledge base as a self-contained directory snapshot for backup or versioning. Copies sections, documents, and catalog (no indexes). | no | no |
210
+ | `auto-capture-review` | `action` (string: list, approve, reject) | Review and approve pending auto-captured knowledge before storage. | no | no |
210
211
 
211
212
  ### Skills Tools
212
213
 
@@ -249,6 +250,7 @@ daemon via JSON-RPC 2.0 over IPC.
249
250
  | `agent-list` | yes |
250
251
  | `agent-get` | yes |
251
252
  | `agent-delete` | yes |
253
+ | `auto-capture-review` | yes |
252
254
 
253
255
  ## Prompts
254
256
 
@@ -340,7 +342,7 @@ Protocol version **2025-11-25** and advertises the
340
342
  following capabilities:
341
343
 
342
344
  - **tools** -- `tools/list` and `tools/call` for
343
- all 19 tools.
345
+ all 20 tools.
344
346
  - **resources** -- `resources/list`,
345
347
  `resources/read`, and
346
348
  `resources/templates/list` for URI-based content
@@ -1,5 +1,15 @@
1
1
  # How Search Works
2
2
 
3
+ When you search, kbdb finds the sections that best
4
+ match your query and ranks them by relevance. By
5
+ default it matches keywords (like a search engine).
6
+ You can also enable AI-powered similarity search
7
+ or combine both with `--algo hybrid`. The rest of
8
+ this page explains how ranking works under the hood
9
+ -- you don't need to read it to use kbdb.
10
+
11
+ ---
12
+
3
13
  kbdb uses field-weighted BM25F ranking to score search
4
14
  results by relevance. Sections are indexed across
5
15
  three fields -- heading, body, and code -- each with a
@@ -513,3 +523,48 @@ Neither standalone module calls the other directly.
513
523
  | `sections` | Individual matching sections with scores, snippets, and matched terms |
514
524
  | `documents` | Documents containing matches, with aggregated scores and per-section details |
515
525
  | `stats` | Match counts and top terms without content bodies |
526
+
527
+ ## Search Algorithms
528
+
529
+ kbdb supports three search algorithms, selected
530
+ with `--algo` (CLI) or the `algo` parameter (MCP).
531
+
532
+ ### Lexical (default)
533
+
534
+ Keyword matching with stemming and synonym
535
+ expansion, scored by BM25F as described above.
536
+ Fast, works offline, and gives consistent results.
537
+ This is the default when no `--algo` flag is given.
538
+
539
+ ### Vector
540
+
541
+ Embedding-based similarity search. Each section's
542
+ content is converted into a numeric vector (an
543
+ "embedding") by an AI model. Search finds sections
544
+ whose vectors are closest to the query's vector
545
+ using cosine similarity.
546
+
547
+ Vector search catches matches that keyword search
548
+ misses -- for example, searching "database
549
+ rationale" finds a section about "we chose Postgres
550
+ because of JSONB" even though none of the words
551
+ overlap.
552
+
553
+ Requires an embedding provider to be configured.
554
+ Without one, vector mode falls back to lexical.
555
+
556
+ ### Hybrid
557
+
558
+ Runs both lexical and vector searches in parallel,
559
+ then merges the two ranked lists using Reciprocal
560
+ Rank Fusion (RRF). This combines the precision of
561
+ keyword matching with the associative recall of
562
+ embeddings.
563
+
564
+ RRF works by converting each result's rank position
565
+ into a score (`1 / (k + rank)` with k=60), then
566
+ summing scores across both lists. Results that rank
567
+ well in both lists get the highest combined scores.
568
+
569
+ Hybrid mode requires an embedding provider. Without
570
+ one, it falls back to lexical.