@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
@@ -0,0 +1,58 @@
1
+ /** Raw daemon response from `integrityCheck`. */
2
+ export interface RawIntegrityCheckResult {
3
+ /** `true` when all checks passed and no errors were found. */
4
+ readonly ok: boolean;
5
+ /** All integrity errors found; empty when `ok` is `true`. */
6
+ readonly errors: IntegrityError[];
7
+ /** Total number of sections examined. */
8
+ readonly sections_checked: number;
9
+ /** Total number of documents examined. */
10
+ readonly documents_checked: number;
11
+ /** Total number of marker references checked. */
12
+ readonly references_checked: number;
13
+ /** Time taken to complete the check, in milliseconds. */
14
+ readonly elapsed_ms: number;
15
+ /**
16
+ * Encoded divergent-content map.
17
+ *
18
+ * Format: `sk1:kbid1,kbid2;sk2:kbid3,kbid4`
19
+ *
20
+ * Each semicolon-separated segment is a source key followed by
21
+ * a colon and a comma-separated list of kbids. Absent when no
22
+ * divergent content exists.
23
+ */
24
+ readonly divergent_content?: string;
25
+ }
26
+ /** A single integrity error found during a database check. */
27
+ export interface IntegrityError {
28
+ /**
29
+ * The category of integrity violation detected.
30
+ *
31
+ * - `'checksum_mismatch'` -- stored content does not match its hash
32
+ * - `'orphan_section'` -- section not referenced by any document
33
+ * - `'orphan_document'` -- document references no existing sections
34
+ * - `'broken_reference'` -- a marker references a non-existent entity
35
+ * - `'type_mismatch'` -- stored MIME type conflicts with content
36
+ * - `'circular_reference'` -- marker chain contains a cycle
37
+ */
38
+ readonly type: 'checksum_mismatch' | 'orphan_section' | 'orphan_document' | 'broken_reference' | 'type_mismatch' | 'circular_reference';
39
+ /** Identifier of the entity (kbid or docid) that has the issue. */
40
+ readonly entity: string;
41
+ /** Human-readable description of the specific problem. */
42
+ readonly detail: string;
43
+ }
44
+ /**
45
+ * Minimal client interface required by `runCheck`.
46
+ *
47
+ * Decouples the CLI function from the concrete `WorkerClient`
48
+ * implementation, making it straightforward to test with mocks.
49
+ */
50
+ export interface CheckClient {
51
+ /**
52
+ * Runs an integrity check on the knowledge-base database.
53
+ *
54
+ * @returns a report of all issues found; `ok` is `true` when
55
+ * no errors were detected
56
+ */
57
+ integrityCheck(): Promise<RawIntegrityCheckResult>;
58
+ }
@@ -0,0 +1,48 @@
1
+ import type { CliOptions } from './cli-options.interface.ts';
2
+ import type { InitResult } from '../functions/run-init.function.ts';
3
+ import type { DisconnectableClient } from './disconnectable-client.interface.ts';
4
+ /**
5
+ * Injectable dependencies for the CLI orchestrator.
6
+ *
7
+ * Every external side-effect is injected so the function
8
+ * is fully testable without touching process globals,
9
+ * filesystem, or network.
10
+ */
11
+ export interface CliDeps {
12
+ /** Returns `true` when stdin is an interactive terminal. */
13
+ isStdinTty: () => boolean;
14
+ /**
15
+ * Prompts the user with the given question and resolves with
16
+ * their trimmed response.
17
+ *
18
+ * @param question - text to display before the input prompt
19
+ */
20
+ promptUser: (question: string) => Promise<string>;
21
+ /**
22
+ * Creates a worker client connected to the given database path.
23
+ *
24
+ * @param opts - connection options including the context path
25
+ */
26
+ createWorkerClient: (opts: {
27
+ contextPath: string;
28
+ }) => Promise<DisconnectableClient>;
29
+ /**
30
+ * Finds the `.kbdb` directory starting from the given base path.
31
+ *
32
+ * @param basePath - starting directory; defaults to `process.cwd()`
33
+ * @returns absolute path to `.kbdb` or `null` when not found
34
+ */
35
+ findDb: (basePath?: string) => string | null;
36
+ /**
37
+ * Initialises a new `.kbdb` database directory.
38
+ *
39
+ * @param options - parsed CLI options
40
+ */
41
+ runInit: (options: CliOptions) => InitResult;
42
+ /**
43
+ * Starts the MCP server using the given database path.
44
+ *
45
+ * @param contextPath - absolute path to the `.kbdb` directory
46
+ */
47
+ startMcpServer?: (contextPath: string) => Promise<void>;
48
+ }
@@ -27,6 +27,8 @@ export interface CliOptions {
27
27
  format: OutputFormat;
28
28
  /** Search mode passed to the worker daemon. Defaults to `'sections'`. */
29
29
  mode: SearchMode;
30
+ /** Search algorithm: `'lexical'`, `'vector'`, or `'hybrid'`. */
31
+ algo?: string;
30
32
  /** Maximum number of results to return. Defaults to 20. */
31
33
  limit: number;
32
34
  /** Number of results to skip for pagination. */
@@ -50,6 +52,19 @@ export interface CliOptions {
50
52
  body?: string;
51
53
  /** Comma-separated skill kbids for agent create. */
52
54
  skills?: string[];
55
+ /**
56
+ * Recall expansion depth (0-3). Clamped to 3.
57
+ * Defaults to 0.
58
+ */
59
+ depth?: number;
60
+ /** Comma-separated tags for scoping (learn, recall). */
61
+ tags?: string[];
62
+ /**
63
+ * When `true`, enables supersession by source key (learn).
64
+ * Re-learning edited content replaces the original section
65
+ * instead of creating a sibling.
66
+ */
67
+ replace?: boolean;
53
68
  /** Positional arguments following the sub-command. */
54
69
  args: string[];
55
70
  }
@@ -0,0 +1,26 @@
1
+ import type { VersionStatus } from '../../worker-client/typings/version-status.model.ts';
2
+ import type { MigrateResult } from '../../worker-client/typings/migrate-result.model.ts';
3
+ import type { DispatchClient } from './dispatch-client.type.ts';
4
+ /**
5
+ * Extension of `DispatchClient` with lifecycle methods needed by
6
+ * the CLI orchestrator.
7
+ *
8
+ * Adds version checking, migration, and disconnect so the orchestrator
9
+ * can manage a worker-client connection across all CLI commands.
10
+ */
11
+ export interface DisconnectableClient extends DispatchClient {
12
+ /**
13
+ * Checks the database version against the worker engine.
14
+ *
15
+ * @param targetPath - absolute path to the `.kbdb` database root
16
+ */
17
+ checkVersion(targetPath: string): Promise<VersionStatus>;
18
+ /**
19
+ * Runs all pending database migrations.
20
+ *
21
+ * @param targetPath - absolute path to the `.kbdb` database root
22
+ */
23
+ migrateDatabase(targetPath: string): Promise<MigrateResult>;
24
+ /** Disconnects from the worker daemon and releases resources. */
25
+ disconnect(): void;
26
+ }
@@ -0,0 +1,27 @@
1
+ import type { SearchClient } from './search-client.interface.ts';
2
+ import type { LearnClient } from './learn-client.interface.ts';
3
+ import type { UnlearnClient } from '../functions/run-unlearn.function.ts';
4
+ import type { ContentClient } from '../functions/run-content.function.ts';
5
+ import type { CheckClient } from './check-client.interface.ts';
6
+ import type { GcClient } from '../functions/run-gc.function.ts';
7
+ import type { RebuildClient } from '../functions/run-rebuild.function.ts';
8
+ import type { StatusClient } from '../functions/run-status.function.ts';
9
+ import type { DbMigrateClient } from '../functions/run-db-migrate.function.ts';
10
+ import type { SkillLearnClient } from '../functions/run-skill-learn.function.ts';
11
+ import type { SkillListClient } from '../functions/run-skill-list.function.ts';
12
+ import type { SkillGetClient } from '../functions/run-skill-get.function.ts';
13
+ import type { SkillDeleteClient } from '../functions/run-skill-delete.function.ts';
14
+ import type { AgentCreateClient } from './agent-create-client.interface.ts';
15
+ import type { AgentListClient } from '../functions/run-agent-list.function.ts';
16
+ import type { AgentGetClient } from './agent-get-client.interface.ts';
17
+ import type { AgentDeleteClient } from '../functions/run-agent-delete.function.ts';
18
+ import type { RecallClient } from '../functions/run-recall.function.ts';
19
+ import type { ExportClient } from '../functions/run-export.function.ts';
20
+ /**
21
+ * Intersection of all data-command client interfaces.
22
+ *
23
+ * Each run* function defines its own minimal interface; this
24
+ * intersection combines them so `dispatchCommand` can route
25
+ * to any command handler with full type safety.
26
+ */
27
+ export type DispatchClient = SearchClient & LearnClient & UnlearnClient & ContentClient & CheckClient & GcClient & RebuildClient & StatusClient & DbMigrateClient & SkillLearnClient & SkillListClient & SkillGetClient & SkillDeleteClient & AgentCreateClient & AgentListClient & AgentGetClient & AgentDeleteClient & RecallClient & ExportClient;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Minimal client interface required by `runLearn`.
3
+ *
4
+ * Decouples the CLI function from the concrete `WorkerClient`
5
+ * implementation, making it straightforward to test with mocks.
6
+ */
7
+ export interface LearnClient {
8
+ /**
9
+ * Ingests a content section into the knowledge base.
10
+ *
11
+ * @param params - section metadata and raw text content
12
+ * @returns enriched result containing the new kbid plus
13
+ * optional supersession, warnings, and near-duplicate info
14
+ */
15
+ addSection(params: {
16
+ sectionType: string;
17
+ content: string;
18
+ title?: string;
19
+ description?: string;
20
+ docid?: string;
21
+ tags?: string[];
22
+ replace?: boolean;
23
+ /**
24
+ * Absolute path to the source file. Required for supersession
25
+ * via source key when `replace` is `true`.
26
+ */
27
+ sourcePath?: string;
28
+ }): Promise<LearnAddSectionResult>;
29
+ }
30
+ /** Enriched add-section result returned by the daemon. */
31
+ export interface LearnAddSectionResult {
32
+ /** Knowledge-base identifier assigned to the new section. */
33
+ readonly kbid: string;
34
+ /**
35
+ * Kbid of the section superseded via `--replace`,
36
+ * or `null` / `undefined` when none.
37
+ */
38
+ readonly superseded?: string | null;
39
+ /**
40
+ * Advisory warning strings (e.g. `"heading_missing"`).
41
+ * May be absent from older daemon versions.
42
+ */
43
+ readonly warnings?: string[];
44
+ /**
45
+ * Near-duplicate sections with similarity >= 0.85.
46
+ * May be absent from older daemon versions.
47
+ */
48
+ readonly near_duplicates?: {
49
+ readonly kbid: string;
50
+ readonly similarity: number;
51
+ }[];
52
+ }
@@ -0,0 +1,5 @@
1
+ /** Injectable I/O for `runLearn` without real stdin. */
2
+ export interface LearnIO {
3
+ /** Reads all stdin content and resolves with the full string. */
4
+ readStdin: () => Promise<string>;
5
+ }
@@ -8,4 +8,23 @@ export interface LearnResult {
8
8
  size: number;
9
9
  /** `true` when the file was skipped without being ingested. */
10
10
  skipped: boolean;
11
+ /**
12
+ * Kbid of the section that was superseded via `--replace`,
13
+ * or `null` when no supersession occurred.
14
+ */
15
+ superseded: string | null;
16
+ /**
17
+ * Advisory warning strings returned by the engine
18
+ * (e.g. `"heading_missing"` when no title is provided).
19
+ */
20
+ warnings: string[];
21
+ /**
22
+ * Sections with content similarity >= 0.85 to this section.
23
+ * Each entry identifies a near-duplicate section and its
24
+ * similarity score.
25
+ */
26
+ near_duplicates: {
27
+ kbid: string;
28
+ similarity: number;
29
+ }[];
11
30
  }
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Minimal client interface required by `runSearch`.
3
+ *
4
+ * Decouples the CLI function from the concrete `WorkerClient`
5
+ * implementation, making it straightforward to test with mocks.
6
+ */
7
+ export interface SearchClient {
8
+ /**
9
+ * Searches the knowledge base and returns paginated results.
10
+ *
11
+ * @param params - query, mode, limit, and offset
12
+ */
13
+ search(params: {
14
+ query: string;
15
+ mode?: string;
16
+ /** Search algorithm: `'lexical'`, `'vector'`, or `'hybrid'`. */
17
+ algo?: string;
18
+ limit?: number;
19
+ offset?: number;
20
+ }): Promise<SearchClientResponse>;
21
+ }
22
+ /** Raw paginated search response from the daemon. */
23
+ export interface SearchClientResponse {
24
+ /** Result items for the current page. */
25
+ readonly items: readonly SearchClientItem[];
26
+ /** Total number of matches across all pages. */
27
+ readonly total: number;
28
+ /** Number of results skipped. */
29
+ readonly offset: number;
30
+ /** Maximum results per page. */
31
+ readonly limit: number;
32
+ /** Whether more results exist beyond this page. */
33
+ readonly has_more: boolean;
34
+ /**
35
+ * When `true`, the engine relaxed the query to produce results.
36
+ * May be absent from older daemon versions.
37
+ */
38
+ readonly relaxed?: boolean;
39
+ }
40
+ /** A single raw search result item returned by the daemon. */
41
+ export interface SearchClientItem {
42
+ /** Knowledge-base identifier of the matched section. */
43
+ readonly kbid: string;
44
+ /** Section heading, or null when untitled. */
45
+ readonly heading: string | null;
46
+ /** MIME type of the section content. */
47
+ readonly type: string;
48
+ /** Document IDs this section belongs to. */
49
+ readonly docids: readonly string[];
50
+ /** Relevance score from the ranking engine. */
51
+ readonly score: number;
52
+ /** KWIC excerpt centered on the highest-scoring matched term. */
53
+ readonly snippet: string;
54
+ /** Query terms that matched within this section. */
55
+ readonly matched_terms: readonly string[];
56
+ /**
57
+ * Fields that contained at least one match.
58
+ * May be absent from older daemon versions.
59
+ */
60
+ readonly matched_fields?: readonly string[];
61
+ /**
62
+ * Normalised confidence score (0.0-1.0) relative to the top result.
63
+ * May be absent from older daemon versions.
64
+ */
65
+ readonly confidence?: number;
66
+ /**
67
+ * ISO 8601 creation timestamp of the section.
68
+ * May be absent from older daemon versions.
69
+ */
70
+ readonly created_at?: string;
71
+ }
@@ -10,10 +10,22 @@ export interface SearchDisplay {
10
10
  docids: readonly string[];
11
11
  /** Relevance score assigned by the ranking engine. */
12
12
  score: number;
13
+ /**
14
+ * Normalised confidence score (0.0-1.0) relative to the
15
+ * top result in this result set.
16
+ */
17
+ confidence: number;
13
18
  /** KWIC snippet from the WASM engine (~150 chars). */
14
19
  snippet: string;
15
20
  /** Query terms that matched within this section. */
16
21
  matched_terms: readonly string[];
22
+ /**
23
+ * Fields that contained at least one match:
24
+ * subset of `["heading", "body", "code"]`.
25
+ */
26
+ matched_fields: readonly string[];
27
+ /** ISO 8601 creation timestamp of the section. */
28
+ created_at: string;
17
29
  /**
18
30
  * CLI-side truncated content preview for terminal display.
19
31
  * Populated when `--content` / `-c` is used.
@@ -32,4 +44,10 @@ export interface PagedSearchDisplay {
32
44
  limit: number;
33
45
  /** Whether more results exist beyond this page. */
34
46
  has_more: boolean;
47
+ /**
48
+ * When `true`, the engine relaxed the query (e.g. dropped
49
+ * rare terms) to return results that would otherwise be
50
+ * empty.
51
+ */
52
+ relaxed: boolean;
35
53
  }
@@ -0,0 +1,20 @@
1
+ import type { EmbeddingProvider } from '../typings/embedding-provider.interface.ts';
2
+ /**
3
+ * No-op embedding provider used when embeddings are not configured.
4
+ *
5
+ * Satisfies the `EmbeddingProvider` contract without performing any
6
+ * computation. Use this as the default when no provider is selected
7
+ * in the config.
8
+ */
9
+ export declare class NullEmbeddingProvider implements EmbeddingProvider {
10
+ /**
11
+ * Returns an empty `Float32Array` for each input text.
12
+ *
13
+ * @param texts - input strings (contents are ignored)
14
+ */
15
+ embed(texts: string[]): Promise<Float32Array[]>;
16
+ /** Always returns 0 -- no dimensions when disabled. */
17
+ dimensions(): number;
18
+ /** Always returns `'none'`. */
19
+ modelName(): string;
20
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Minimum Jaccard coefficient to flag a section as a near-duplicate
3
+ * directly via the Jaccard pass.
4
+ */
5
+ export declare const JACCARD_THRESHOLD = 0.85;
6
+ /**
7
+ * Lower bound of the Jaccard pre-filter band that triggers the
8
+ * cosine-similarity pass.
9
+ */
10
+ export declare const JACCARD_BAND_MIN = 0.4;
11
+ /**
12
+ * Minimum cosine similarity to flag a section as a near-duplicate
13
+ * via the cosine pass.
14
+ */
15
+ export declare const COSINE_THRESHOLD = 0.92;
@@ -0,0 +1,14 @@
1
+ import type { VectorIndexEntry } from '../typings/vector-index-entry.model.ts';
2
+ /**
3
+ * Writes a binary `vectors.idx` file to the given directory.
4
+ *
5
+ * Header: 32 bytes (magic KBVX, version u32, dimensions u32, count
6
+ * u32, model-name length u32, 12 reserved bytes). Followed by the
7
+ * model name (UTF-8) then records (64-byte kbid + dims*4 floats).
8
+ *
9
+ * @param dirPath - directory where `vectors.idx` will be written
10
+ * @param modelName - name of the embedding model used
11
+ * @param dimensions - vector dimension count
12
+ * @param entries - kbid/vector pairs to index
13
+ */
14
+ export declare function buildVectorIndex(dirPath: string, modelName: string, dimensions: number, entries: VectorIndexEntry[]): Promise<void>;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Computes cosine similarity between two vectors.
3
+ *
4
+ * Returns `dot(a, b) / (||a|| * ||b||)`. Returns `0` when either
5
+ * vector has zero magnitude to avoid division by zero.
6
+ *
7
+ * @param a - first embedding vector
8
+ * @param b - second embedding vector
9
+ */
10
+ export declare function cosineSimilarity(a: Float32Array, b: Float32Array): number;
@@ -0,0 +1,18 @@
1
+ import type { EmbeddingProvider } from '../typings/embedding-provider.interface.ts';
2
+ import type { NearDuplicateCandidate } from '../typings/near-duplicate-candidate.model.ts';
3
+ import type { NearDuplicateResult } from '../typings/near-duplicate-result.model.ts';
4
+ /**
5
+ * Two-pass near-duplicate detection.
6
+ *
7
+ * Pass 1: Jaccard coefficient (always runs).
8
+ * Pass 2: Cosine similarity on embeddings (only when `provider` is
9
+ * available and the Jaccard score falls in the pre-filter band
10
+ * [0.40, 0.85)).
11
+ *
12
+ * @param candidate - the new section to test against existing ones
13
+ * @param existing - known sections to compare against
14
+ * @param provider - optional embedding provider; when absent or null,
15
+ * the cosine pass is skipped entirely
16
+ * @returns detected near-duplicates in the same order as `existing`
17
+ */
18
+ export declare function detectNearDuplicates(candidate: NearDuplicateCandidate, existing: NearDuplicateCandidate[], provider?: EmbeddingProvider | null): NearDuplicateResult[];
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Computes Jaccard coefficient between two token sets.
3
+ *
4
+ * `|A ∩ B| / |A ∪ B|`. Returns `0` if both sets are empty.
5
+ *
6
+ * @param a - first token set
7
+ * @param b - second token set
8
+ */
9
+ export declare function jaccardCoefficient(a: ReadonlySet<string>, b: ReadonlySet<string>): number;
@@ -0,0 +1,10 @@
1
+ import type { VectorIndexMeta } from '../typings/vector-index-meta.model.ts';
2
+ /**
3
+ * Reads the 32-byte header from a `vectors.idx` file and returns
4
+ * the embedded `VectorIndexMeta`.
5
+ *
6
+ * @param filePath - absolute path to the `vectors.idx` file
7
+ * @throws {Error} if the file does not exist or the magic bytes do
8
+ * not match the expected `KBVX` signature
9
+ */
10
+ export declare function readVectorIndexMeta(filePath: string): VectorIndexMeta;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Fuses lexical and vector rankings using Reciprocal Rank Fusion.
3
+ *
4
+ * For each kbid in either map the fused score is:
5
+ * `1/(k + lexicalRank) + 1/(k + vectorRank)`.
6
+ * When a kbid appears in only one map the missing rank contributes
7
+ * `0` (treated as infinite rank -- no contribution).
8
+ *
9
+ * @param lexicalRanks - map of kbid to 1-based lexical rank position
10
+ * @param vectorRanks - map of kbid to 1-based vector rank position
11
+ * @param k - RRF smoothing constant (default 60)
12
+ * @returns map of kbid to fused RRF score
13
+ */
14
+ export declare function rrfFuse(lexicalRanks: Map<string, number>, vectorRanks: Map<string, number>, k?: number): Map<string, number>;
@@ -0,0 +1,14 @@
1
+ import type { VectorSearchResult } from '../typings/vector-search-result.model.ts';
2
+ /**
3
+ * Brute-force linear scan of a `vectors.idx` file.
4
+ *
5
+ * Reads every stored vector, computes cosine similarity against
6
+ * `queryVector`, then returns the top `topN` results sorted by
7
+ * score descending.
8
+ *
9
+ * @param filePath - absolute path to the `vectors.idx` file
10
+ * @param queryVector - embedding to search against
11
+ * @param topN - maximum number of results to return
12
+ * @returns results sorted by descending cosine similarity score
13
+ */
14
+ export declare function searchVectors(filePath: string, queryVector: Float32Array, topN: number): VectorSearchResult[];
@@ -0,0 +1,16 @@
1
+ export { NullEmbeddingProvider } from './classes/null-embedding-provider.class.ts';
2
+ export { cosineSimilarity } from './functions/cosine-similarity.function.ts';
3
+ export { rrfFuse } from './functions/rrf-fuse.function.ts';
4
+ export { buildVectorIndex } from './functions/build-vector-index.function.ts';
5
+ export { searchVectors } from './functions/search-vectors.function.ts';
6
+ export { readVectorIndexMeta } from './functions/read-vector-index-meta.function.ts';
7
+ export { jaccardCoefficient } from './functions/jaccard-coefficient.function.ts';
8
+ export { detectNearDuplicates } from './functions/detect-near-duplicates.function.ts';
9
+ export { JACCARD_THRESHOLD, JACCARD_BAND_MIN, COSINE_THRESHOLD, } from './constants/near-duplicate-thresholds.constant.ts';
10
+ export type { EmbeddingProvider } from './typings/embedding-provider.interface.ts';
11
+ export type { EmbeddingConfig } from './typings/embedding-config.interface.ts';
12
+ export type { VectorSearchResult } from './typings/vector-search-result.model.ts';
13
+ export type { VectorIndexMeta } from './typings/vector-index-meta.model.ts';
14
+ export type { VectorIndexEntry } from './typings/vector-index-entry.model.ts';
15
+ export type { NearDuplicateCandidate } from './typings/near-duplicate-candidate.model.ts';
16
+ export type { NearDuplicateResult } from './typings/near-duplicate-result.model.ts';
@@ -0,0 +1,20 @@
1
+ /** Configuration for the embedding provider. */
2
+ export interface EmbeddingConfig {
3
+ /**
4
+ * Provider type.
5
+ *
6
+ * - `'none'` -- embeddings disabled (default)
7
+ * - `'onnx'` -- local ONNX Runtime model
8
+ * - `'api'` -- remote HTTP embedding API
9
+ */
10
+ readonly provider: 'none' | 'onnx' | 'api';
11
+ /** Model name or path (for onnx/api providers). */
12
+ readonly model?: string;
13
+ /** API endpoint URL (for api provider). */
14
+ readonly endpoint?: string;
15
+ /**
16
+ * Number of dimensions the model produces
17
+ * (required for api provider).
18
+ */
19
+ readonly dimensions?: number;
20
+ }
@@ -0,0 +1,23 @@
1
+ /** Pluggable embedding provider interface. */
2
+ export interface EmbeddingProvider {
3
+ /**
4
+ * Compute embedding vectors for text inputs.
5
+ *
6
+ * @param texts - list of text strings to embed
7
+ * @returns a Float32Array embedding for each input text,
8
+ * in the same order
9
+ */
10
+ embed(texts: string[]): Promise<Float32Array[]>;
11
+ /**
12
+ * Number of dimensions in the embedding vector.
13
+ *
14
+ * Returns 0 when embeddings are disabled.
15
+ */
16
+ dimensions(): number;
17
+ /**
18
+ * Name of the underlying model.
19
+ *
20
+ * Returns `'none'` when embeddings are disabled.
21
+ */
22
+ modelName(): string;
23
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * A document section candidate for near-duplicate detection.
3
+ *
4
+ * Carries the token set for Jaccard comparison and an optional
5
+ * embedding vector for cosine-similarity comparison.
6
+ */
7
+ export interface NearDuplicateCandidate {
8
+ /** Knowledge-base identifier for this section. */
9
+ readonly kbid: string;
10
+ /**
11
+ * Set of lowercased word tokens extracted from the section body.
12
+ *
13
+ * Used by the Jaccard coefficient pass.
14
+ */
15
+ readonly tokens: Set<string>;
16
+ /**
17
+ * Optional embedding vector for this section.
18
+ *
19
+ * When present and a provider is available, used as the
20
+ * cosine-similarity pass input.
21
+ */
22
+ readonly embedding?: Float32Array;
23
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * A near-duplicate detected by the two-pass detection algorithm.
3
+ *
4
+ * Reports which existing section matched the candidate and which
5
+ * detection method produced the match.
6
+ */
7
+ export interface NearDuplicateResult {
8
+ /** Knowledge-base identifier of the matched existing section. */
9
+ readonly kbid: string;
10
+ /**
11
+ * Similarity score of the match (0.0–1.0).
12
+ *
13
+ * Jaccard matches use the Jaccard coefficient; cosine matches use
14
+ * cosine similarity.
15
+ */
16
+ readonly score: number;
17
+ /**
18
+ * Detection method that produced this match.
19
+ *
20
+ * - `'jaccard'`: Jaccard coefficient >= 0.85
21
+ * - `'cosine'`: cosine similarity >= 0.92 with Jaccard 0.40–0.84
22
+ */
23
+ readonly method: 'jaccard' | 'cosine';
24
+ }
@@ -0,0 +1,12 @@
1
+ /** A single record written into the vector index file. */
2
+ export interface VectorIndexEntry {
3
+ /**
4
+ * Knowledge-base identifier for this section.
5
+ *
6
+ * Stored as a fixed 64-byte UTF-8 field in the index file;
7
+ * truncated or zero-padded as needed.
8
+ */
9
+ readonly kbid: string;
10
+ /** Embedding vector for this section. */
11
+ readonly vector: Float32Array;
12
+ }
@@ -0,0 +1,11 @@
1
+ /** Metadata for a vector index file. */
2
+ export interface VectorIndexMeta {
3
+ /** Name of the embedding model used. */
4
+ readonly modelName: string;
5
+ /** Embedding vector dimensions. */
6
+ readonly dimensions: number;
7
+ /** Number of vectors stored. */
8
+ readonly count: number;
9
+ /** Schema version. */
10
+ readonly version: number;
11
+ }