@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,33 @@
1
+ import type { AutoCaptureConfig } from '../typings/auto-capture-config.interface.ts';
2
+ import type { AutoCaptureState } from '../typings/auto-capture-state.interface.ts';
3
+ import type { AutoCaptureTrigger } from '../typings/auto-capture-trigger.interface.ts';
4
+ /**
5
+ * Controls the auto-capture lifecycle.
6
+ *
7
+ * Tracks tool call counts, evaluates trigger conditions, and
8
+ * advances session state when a capture fires. Reset state on
9
+ * disconnect or session end via `reset()`.
10
+ */
11
+ export declare class AutoCaptureController {
12
+ private toolCallsSinceLastCapture;
13
+ private lastCaptureTimestamp;
14
+ private totalCapturesThisSession;
15
+ private readonly config;
16
+ /** @param config - the auto-capture configuration to use */
17
+ constructor(config: AutoCaptureConfig);
18
+ /** Record one tool call for trigger counting. */
19
+ recordToolCall(): void;
20
+ /**
21
+ * Evaluates the current state against the trigger criteria.
22
+ *
23
+ * When the trigger fires, advances the session counters so the
24
+ * next evaluation respects rate limiting and the session cap.
25
+ *
26
+ * @returns the trigger decision with a human-readable reason
27
+ */
28
+ evaluate(): AutoCaptureTrigger;
29
+ /** Reset all counters, e.g. on client disconnect. */
30
+ reset(): void;
31
+ /** Returns a snapshot of the current controller state. */
32
+ state(): AutoCaptureState;
33
+ }
@@ -0,0 +1,8 @@
1
+ import type { AutoCaptureConfig } from '../typings/auto-capture-config.interface.ts';
2
+ /**
3
+ * Default configuration for the auto-capture feature.
4
+ *
5
+ * Auto-capture is disabled by default. Enable it in
6
+ * `worker.toml` under `[auto_capture]`.
7
+ */
8
+ export declare const AUTO_CAPTURE_DEFAULTS: AutoCaptureConfig;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Builds the MCP sampling prompt for knowledge extraction.
3
+ *
4
+ * Instructs the host LLM to identify durable factual knowledge
5
+ * from the recent conversation context, filter out ephemeral or
6
+ * task-specific information, and format the result for storage
7
+ * following memory-protocol criteria.
8
+ *
9
+ * @param recentContext - the conversation excerpt to analyse
10
+ */
11
+ export declare function buildCapturePrompt(recentContext: string): string;
@@ -0,0 +1,12 @@
1
+ import type { AutoCaptureConfig } from '../typings/auto-capture-config.interface.ts';
2
+ import type { AutoCaptureState } from '../typings/auto-capture-state.interface.ts';
3
+ import type { AutoCaptureTrigger } from '../typings/auto-capture-trigger.interface.ts';
4
+ /**
5
+ * Evaluates whether auto-capture should fire given the current
6
+ * configuration and runtime state.
7
+ *
8
+ * Checks (in order): feature flag, session cap, rate limit,
9
+ * and tool-call count threshold. Returns the first failing
10
+ * condition as the reason.
11
+ */
12
+ export declare function evaluateTrigger(config: AutoCaptureConfig, state: AutoCaptureState): AutoCaptureTrigger;
@@ -0,0 +1,7 @@
1
+ export { AutoCaptureController } from './classes/auto-capture-controller.class.ts';
2
+ export { AUTO_CAPTURE_DEFAULTS } from './constants/auto-capture-defaults.constant.ts';
3
+ export { evaluateTrigger } from './functions/evaluate-trigger.function.ts';
4
+ export { buildCapturePrompt } from './functions/build-capture-prompt.function.ts';
5
+ export type { AutoCaptureConfig } from './typings/auto-capture-config.interface.ts';
6
+ export type { AutoCaptureTrigger } from './typings/auto-capture-trigger.interface.ts';
7
+ export type { AutoCaptureState } from './typings/auto-capture-state.interface.ts';
@@ -0,0 +1,13 @@
1
+ /** Configuration for auto-capture behavior. */
2
+ export interface AutoCaptureConfig {
3
+ /** Enable or disable auto-capture. */
4
+ readonly enabled: boolean;
5
+ /** Trigger a capture after this many tool calls. */
6
+ readonly triggerAfterToolCalls: number;
7
+ /** Minimum time in milliseconds between captures. */
8
+ readonly minIntervalMs: number;
9
+ /** Maximum number of captures allowed per session. */
10
+ readonly maxCapturesPerSession: number;
11
+ /** Log without writing when true. */
12
+ readonly dryRun: boolean;
13
+ }
@@ -0,0 +1,13 @@
1
+ /** Runtime state tracked by the auto-capture controller. */
2
+ export interface AutoCaptureState {
3
+ /** Tool calls recorded since the last successful capture. */
4
+ readonly toolCallsSinceLastCapture: number;
5
+ /**
6
+ * Unix epoch milliseconds of the most recent capture.
7
+ *
8
+ * Zero when no capture has occurred this session.
9
+ */
10
+ readonly lastCaptureTimestamp: number;
11
+ /** Total captures completed during the current session. */
12
+ readonly totalCapturesThisSession: number;
13
+ }
@@ -0,0 +1,7 @@
1
+ /** Result of evaluating whether auto-capture should fire. */
2
+ export interface AutoCaptureTrigger {
3
+ /** Whether a capture should be triggered. */
4
+ readonly shouldCapture: boolean;
5
+ /** Human-readable reason for the decision. */
6
+ readonly reason: string;
7
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Top-level help text displayed when no command is given or when
3
+ * `--help` is passed without a command name.
4
+ *
5
+ * Lists all available commands grouped by category and describes
6
+ * global options.
7
+ */
8
+ export declare const GLOBAL_HELP: string;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Help text strings keyed by top-level command name.
3
+ *
4
+ * Used by `generateHelp` to display per-command documentation
5
+ * when the user runs `kbdb <command> --help`.
6
+ */
7
+ export declare const LEAF_HELP: Readonly<Record<string, string>>;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Body text for the `memory-protocol` default skill.
3
+ *
4
+ * Teaches AI agents when and what to store in the knowledge base
5
+ * to keep it accurate and useful.
6
+ */
7
+ export declare const MEMORY_PROTOCOL_BODY: string;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Body text for the `query-guidance` default skill.
3
+ *
4
+ * Teaches AI agents how to effectively search the knowledge base
5
+ * using lexical BM25F queries.
6
+ */
7
+ export declare const QUERY_GUIDANCE_BODY: string;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Detailed help texts keyed by `"group-subcommand"`.
3
+ *
4
+ * Used by `generateHelp` to display per-subcommand documentation
5
+ * when the user runs `kbdb <group> <subcommand> --help`. Falls
6
+ * back to group-level help when the key is absent.
7
+ */
8
+ export declare const SUBCOMMAND_HELP: Readonly<Record<string, string>>;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Resolves a single target path to a flat list of supported files.
3
+ *
4
+ * When `target` is a file, returns it wrapped in an array if its
5
+ * extension is in `SUPPORTED_EXTENSIONS` and it is not a dotfile;
6
+ * otherwise returns `[]`. When `target` is a directory, recursively
7
+ * collects all matching files, skipping dot-entries at every level.
8
+ * Returns `[]` for non-existent or inaccessible paths.
9
+ *
10
+ * @param target - file or directory path to resolve
11
+ * @returns flat array of absolute or relative paths to supported files
12
+ */
13
+ export declare function collectFiles(target: string): string[];
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Computes a 26-character kbid for a section using the same algorithm
3
+ * as the Rust engine's `hash_section`.
4
+ *
5
+ * Algorithm:
6
+ * 1. Build input: `"section <mime> <byteLen>\0<content>"`
7
+ * 2. SHA-256 hash the input
8
+ * 3. Take the first 16 bytes
9
+ * 4. Base32 encode (RFC 4648, no padding), lowercased → 26 chars
10
+ *
11
+ * @param mimeType - MIME type string (e.g. `"text/markdown"`)
12
+ * @param content - UTF-8 section content string
13
+ * @returns 26-character lowercase base32 kbid
14
+ */
15
+ export declare function computeSectionKbid(mimeType: string, content: string): string;
@@ -0,0 +1,9 @@
1
+ import type { PagedSearchDisplay } from '../typings/search-display.model.ts';
2
+ /**
3
+ * Formats a paged search result as a JSON string compatible
4
+ * with the MCP (Model Context Protocol) `text` content block.
5
+ *
6
+ * @param paged - paginated search results to serialise
7
+ * @returns MCP-compatible JSON string ready for stdout
8
+ */
9
+ export declare function formatMcpOutput(paged: PagedSearchDisplay): string;
@@ -0,0 +1,9 @@
1
+ import type { PagedSearchDisplay } from '../typings/search-display.model.ts';
2
+ /**
3
+ * Formats a paged search result as a numbered human-readable
4
+ * text list with a paging footer and optional "more" hint.
5
+ *
6
+ * @param paged - paginated search results to render
7
+ * @returns formatted string ready for stdout
8
+ */
9
+ export declare function formatTextOutput(paged: PagedSearchDisplay): string;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Generates the level-2 help text for a group command.
3
+ *
4
+ * Lists all subcommands with their descriptions and
5
+ * includes a footer pointing to per-subcommand help.
6
+ *
7
+ * @param group - the group command name (e.g. `'db'`, `'skill'`)
8
+ * @param subs - ordered list of `[name, description]` pairs
9
+ * @returns formatted help string for the group command
10
+ */
11
+ export declare function generateGroupHelp(group: string, subs: readonly (readonly [string, string])[]): string;
@@ -0,0 +1,16 @@
1
+ import type { CliOptions } from '../typings/cli-options.interface.ts';
2
+ import type { CommandResult } from '../typings/command-result.model.ts';
3
+ import type { CliDeps } from '../typings/cli-deps.interface.ts';
4
+ /**
5
+ * Handles data commands (search, learn, recall, etc.) by finding or
6
+ * creating the database, running the version gate, and dispatching to
7
+ * the appropriate command handler.
8
+ *
9
+ * When the database is not found in non-TTY mode, returns an error.
10
+ * In TTY mode, prompts the user to create a new database.
11
+ *
12
+ * @param options - parsed CLI options with command and args
13
+ * @param deps - injectable CLI dependencies
14
+ * @returns a `CommandResult` from the dispatched command
15
+ */
16
+ export declare function handleDataCommand(options: CliOptions, deps: CliDeps): Promise<CommandResult>;
@@ -0,0 +1,15 @@
1
+ import type { CliOptions } from '../typings/cli-options.interface.ts';
2
+ import type { CommandResult } from '../typings/command-result.model.ts';
3
+ import type { CliDeps } from '../typings/cli-deps.interface.ts';
4
+ /**
5
+ * Handles the `mcp` command sub-flow.
6
+ *
7
+ * Resolves the database directory, creates a worker client, runs
8
+ * the version gate, and starts the MCP server. Disconnects the
9
+ * worker client when finished.
10
+ *
11
+ * @param options - parsed CLI options (uses `dbPath` and env fallback)
12
+ * @param deps - injectable CLI dependencies
13
+ * @returns a `CommandResult` with `exitCode: 0` on success
14
+ */
15
+ export declare function handleMcp(options: CliOptions, deps: CliDeps): Promise<CommandResult>;
@@ -0,0 +1,15 @@
1
+ import type { CliOptions } from '../typings/cli-options.interface.ts';
2
+ import type { CommandResult } from '../typings/command-result.model.ts';
3
+ import type { CliDeps } from '../typings/cli-deps.interface.ts';
4
+ /**
5
+ * Handles the `migrate` / `db-migrate` command sub-flow.
6
+ *
7
+ * Resolves the database directory, creates a worker client,
8
+ * checks the version, and runs migrations when needed. Disconnects
9
+ * the worker client when finished.
10
+ *
11
+ * @param options - parsed CLI options (uses `dbPath`)
12
+ * @param deps - injectable CLI dependencies
13
+ * @returns a `CommandResult` with migration output or an error
14
+ */
15
+ export declare function handleMigrate(options: CliOptions, deps: CliDeps): Promise<CommandResult>;
@@ -0,0 +1,14 @@
1
+ import type { PagedSearchDisplay } from '../typings/search-display.model.ts';
2
+ import type { ContentClient } from './run-content.function.ts';
3
+ /**
4
+ * Hydrates each result's `preview` field with the actual section
5
+ * content fetched from the client.
6
+ *
7
+ * Failures for individual results are caught and suppressed so that
8
+ * one unavailable section does not prevent other previews from
9
+ * being returned.
10
+ *
11
+ * @param client - content client used to fetch section text
12
+ * @param paged - mutable search display records to hydrate
13
+ */
14
+ export declare function hydrateSearchPreviews(client: ContentClient, paged: PagedSearchDisplay): Promise<void>;
@@ -0,0 +1,16 @@
1
+ import type { AgentGetClient, AgentDocumentSection } from '../typings/agent-get-client.interface.ts';
2
+ /**
3
+ * Resolves skill names by reading each skill section's JSON content.
4
+ *
5
+ * Returns `null` for any reference whose section no longer exists
6
+ * (dangling reference) or whose content cannot be parsed.
7
+ *
8
+ * @param client - client used to fetch section records
9
+ * @param skillRefs - ordered section references to resolve
10
+ * @returns list of resolved skill entries with name and position
11
+ */
12
+ export declare function resolveSkillNames(client: AgentGetClient, skillRefs: AgentDocumentSection[]): Promise<{
13
+ kbid: string;
14
+ name: string | null;
15
+ position: number;
16
+ }[]>;
@@ -67,6 +67,7 @@ export interface SearchClient {
67
67
  mode?: string;
68
68
  limit?: number;
69
69
  offset?: number;
70
+ algo?: string;
70
71
  }): Promise<RawSearchResponse>;
71
72
  }
72
73
  /**
@@ -0,0 +1,15 @@
1
+ import type { CommandResult } from '../typings/command-result.model.ts';
2
+ import type { DisconnectableClient } from '../typings/disconnectable-client.interface.ts';
3
+ /**
4
+ * Checks the database version and returns a `CommandResult` error
5
+ * when the version is incompatible, or `null` when it is compatible.
6
+ *
7
+ * - `'needs_migration'`: prompts the user to run `kbdb --migrate`
8
+ * - `'too_new'`: informs the user to upgrade kbdb
9
+ * - `'compatible'`: returns `null` (no gate triggered)
10
+ *
11
+ * @param client - disconnectable client with version-check capability
12
+ * @param dbDir - absolute path to the `.kbdb` database root
13
+ * @returns error `CommandResult` when blocked, or `null` when clear
14
+ */
15
+ export declare function versionGate(client: DisconnectableClient, dbDir: string): Promise<CommandResult | null>;
@@ -0,0 +1,15 @@
1
+ import type { CommandResult } from '../typings/command-result.model.ts';
2
+ /**
3
+ * Wraps an async command handler in a standard try/catch envelope.
4
+ *
5
+ * On success, serialises the result with `JSON.stringify` and
6
+ * returns `exitCode: 0`. On failure, returns an error message
7
+ * prefixed with `<label> failed:` and `exitCode: 1`.
8
+ *
9
+ * @param label - command name used in the error prefix
10
+ * @param handler - async function that produces the command result
11
+ * @param exitCodeSelector - optional function to derive `exitCode`
12
+ * from the successful result; defaults to always returning 0
13
+ * @returns a `CommandResult` with output or error
14
+ */
15
+ export declare function wrapCommand<T>(label: string, handler: () => Promise<T>, exitCodeSelector?: (result: T) => number): Promise<CommandResult>;
@@ -0,0 +1,42 @@
1
+ import type { AddSectionResult } from '../../worker-client/typings/add-section-result.model.ts';
2
+ /**
3
+ * Minimal client interface required by `runAgentCreate`.
4
+ *
5
+ * Decouples the CLI function from the concrete `WorkerClient`
6
+ * implementation, making it straightforward to test with mocks.
7
+ */
8
+ export interface AgentCreateClient {
9
+ /**
10
+ * Ingests a content section into the knowledge base.
11
+ *
12
+ * @param params - section type label, raw content, and optional
13
+ * metadata
14
+ * @returns result object containing the assigned knowledge-base
15
+ * identifier
16
+ */
17
+ addSection(params: {
18
+ readonly sectionType: string;
19
+ readonly content: string;
20
+ readonly title?: string;
21
+ readonly description?: string;
22
+ }): Promise<AddSectionResult>;
23
+ /**
24
+ * Groups a set of sections under a named document.
25
+ *
26
+ * @param title - human-readable document title
27
+ * @param kbids - identifiers of the sections to group
28
+ * @param docType - application-level document type tag; omit or
29
+ * pass an empty string for untagged documents
30
+ * @returns the assigned document identifier
31
+ */
32
+ groupSections(title: string, kbids: string[], docType?: string): Promise<string>;
33
+ /**
34
+ * Retrieves one or more sections by their identifiers.
35
+ *
36
+ * @param kbids - list of knowledge-base identifiers to fetch
37
+ * @returns sections found; missing kbids are omitted from the result
38
+ */
39
+ readSections(kbids: string[]): Promise<{
40
+ kbid: string;
41
+ }[]>;
42
+ }
@@ -0,0 +1,36 @@
1
+ /** A document section reference as returned by `retrieveDocument`. */
2
+ export interface AgentDocumentSection {
3
+ /** Knowledge-base identifier of the section. */
4
+ readonly kbid: string;
5
+ /** Zero-based position of the section within the document. */
6
+ readonly position: number;
7
+ }
8
+ /** A section record as returned by `readSections`. */
9
+ export interface AgentSectionRecord {
10
+ /** Knowledge-base identifier of the section. */
11
+ readonly kbid: string;
12
+ /** Raw text content stored in the section. */
13
+ readonly content: string;
14
+ }
15
+ /**
16
+ * Minimal client interface required by `runAgentGet`.
17
+ *
18
+ * Decouples the CLI function from the concrete `WorkerClient`
19
+ * implementation, making it straightforward to test with mocks.
20
+ */
21
+ export interface AgentGetClient {
22
+ /**
23
+ * Retrieves a full document record including its ordered sections.
24
+ *
25
+ * @param docid - identifier of the document to retrieve
26
+ * @returns the document record
27
+ */
28
+ retrieveDocument(docid: string): Promise<unknown>;
29
+ /**
30
+ * Retrieves one or more sections by their identifiers.
31
+ *
32
+ * @param kbids - list of knowledge-base identifiers to fetch
33
+ * @returns sections found; missing kbids are omitted from the result
34
+ */
35
+ readSections(kbids: string[]): Promise<AgentSectionRecord[]>;
36
+ }
@@ -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. */
@@ -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;