@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
@@ -4,6 +4,30 @@ import type { CliOptions } from '../typings/cli-options.interface.ts';
4
4
  import type { LearnResult } from '../typings/learn-result.model.ts';
5
5
  import { SUPPORTED_EXTENSIONS } from '../constants/defaults.constant.ts';
6
6
 
7
+ /** Enriched add-section result returned by the daemon. */
8
+ interface AddSectionResult {
9
+ /** Knowledge-base identifier assigned to the new section. */
10
+ readonly kbid: string;
11
+ /**
12
+ * Kbid of the section superseded via `--replace`,
13
+ * or `null` / `undefined` when none.
14
+ */
15
+ readonly superseded?: string | null;
16
+ /**
17
+ * Advisory warning strings (e.g. `"heading_missing"`).
18
+ * May be absent from older daemon versions.
19
+ */
20
+ readonly warnings?: string[];
21
+ /**
22
+ * Near-duplicate sections with similarity >= 0.85.
23
+ * May be absent from older daemon versions.
24
+ */
25
+ readonly near_duplicates?: {
26
+ readonly kbid: string;
27
+ readonly similarity: number;
28
+ }[];
29
+ }
30
+
7
31
  /**
8
32
  * Minimal client interface required by `runLearn`.
9
33
  *
@@ -14,9 +38,9 @@ export interface LearnClient {
14
38
  /**
15
39
  * Ingests a content section into the knowledge base.
16
40
  *
17
- * @param params - section type label and raw text content
18
- * @returns result object containing the knowledge-base identifier
19
- * assigned to the section
41
+ * @param params - section metadata and raw text content
42
+ * @returns enriched result containing the new kbid plus
43
+ * optional supersession, warnings, and near-duplicate info
20
44
  */
21
45
  addSection(params: {
22
46
  sectionType: string;
@@ -24,7 +48,14 @@ export interface LearnClient {
24
48
  title?: string;
25
49
  description?: string;
26
50
  docid?: string;
27
- }): Promise<{ kbid: string }>;
51
+ tags?: string[];
52
+ replace?: boolean;
53
+ /**
54
+ * Absolute path to the source file. Required for supersession
55
+ * via source key when `replace` is `true`.
56
+ */
57
+ sourcePath?: string;
58
+ }): Promise<AddSectionResult>;
28
59
  }
29
60
 
30
61
  /** Injectable I/O for testing without real stdin. */
@@ -67,13 +98,10 @@ export async function runLearn(
67
98
  title: options.title,
68
99
  description: options.description,
69
100
  docid: options.docid,
101
+ tags: options.tags,
102
+ replace: options.replace,
70
103
  });
71
- results.push({
72
- kbid: result.kbid,
73
- path: '-',
74
- size: content.length,
75
- skipped: false,
76
- });
104
+ results.push(mapAddSectionResult(result, '-', content.length));
77
105
  continue;
78
106
  }
79
107
 
@@ -84,20 +112,44 @@ export async function runLearn(
84
112
  sectionType: 'text',
85
113
  content,
86
114
  title: options.title,
115
+ description: options.description,
87
116
  docid: options.docid,
117
+ tags: options.tags,
118
+ replace: options.replace,
119
+ sourcePath: file,
88
120
  });
89
- results.push({
90
- kbid: result.kbid,
91
- path: file,
92
- size: content.length,
93
- skipped: false,
94
- });
121
+ results.push(
122
+ mapAddSectionResult(result, file, content.length),
123
+ );
95
124
  }
96
125
  }
97
126
 
98
127
  return results;
99
128
  }
100
129
 
130
+ /**
131
+ * Maps an `AddSectionResult` to a `LearnResult` record.
132
+ *
133
+ * @param result - raw result from `client.addSection()`
134
+ * @param path - source file path or `'-'` for stdin
135
+ * @param size - UTF-8 character count of the ingested content
136
+ */
137
+ function mapAddSectionResult(
138
+ result: AddSectionResult,
139
+ path: string,
140
+ size: number,
141
+ ): LearnResult {
142
+ return {
143
+ kbid: result.kbid,
144
+ path,
145
+ size,
146
+ skipped: false,
147
+ superseded: result.superseded ?? null,
148
+ warnings: result.warnings ?? [],
149
+ near_duplicates: result.near_duplicates ?? [],
150
+ };
151
+ }
152
+
101
153
  function readProcessStdin(): Promise<string> {
102
154
  return new Promise<string>((resolve) => {
103
155
  const chunks: Buffer[] = [];
@@ -0,0 +1,66 @@
1
+ import type { CliOptions } from '../typings/cli-options.interface.ts';
2
+ import type { RecallResult } from '../../worker-client/typings/recall-result.model.ts';
3
+
4
+ /** Maximum allowed expansion depth for recall operations. */
5
+ const MAX_RECALL_DEPTH = 3;
6
+
7
+ /**
8
+ * Minimal client interface required by `runRecall`.
9
+ *
10
+ * Decouples the CLI function from the concrete `WorkerClient`
11
+ * implementation, making it straightforward to test with mocks.
12
+ */
13
+ export interface RecallClient {
14
+ /**
15
+ * Retrieves full content and context for one or more sections
16
+ * by their knowledge-base identifiers.
17
+ *
18
+ * @param params - section identifier(s) and optional expansion
19
+ * depth (0--3)
20
+ * @returns a single `RecallResult` when `kbid` is supplied, or
21
+ * a `RecallResult[]` when `kbids` is supplied
22
+ */
23
+ recall(params: {
24
+ kbid?: string;
25
+ kbids?: string[];
26
+ depth?: number;
27
+ }): Promise<RecallResult | RecallResult[]>;
28
+ }
29
+
30
+ /**
31
+ * Retrieves full content and progressive context for one or more
32
+ * sections by kbid via the provided client.
33
+ *
34
+ * Returns an error result when no kbids are provided in
35
+ * `options.args`. For a single kbid, calls `client.recall` with the
36
+ * `kbid` parameter and returns the single `RecallResult`. For
37
+ * multiple kbids, calls `client.recall` with the `kbids` array.
38
+ *
39
+ * The `depth` option is read from `options.depth`, defaulting to 0
40
+ * and clamped to the range 0--3.
41
+ *
42
+ * @param client - recall client to delegate to
43
+ * @param options - parsed CLI options supplying kbids in `args` and
44
+ * expansion depth in `depth`
45
+ * @returns the `RecallResult` or `RecallResult[]` from the client,
46
+ * or an error object when no kbids are provided
47
+ */
48
+ export async function runRecall(
49
+ client: RecallClient,
50
+ options: CliOptions,
51
+ ): Promise<RecallResult | RecallResult[] | { error: string }> {
52
+ if (options.args.length === 0) {
53
+ return { error: 'no kbid provided' };
54
+ }
55
+
56
+ const depth = Math.min(
57
+ MAX_RECALL_DEPTH,
58
+ Math.max(0, options.depth ?? 0),
59
+ );
60
+
61
+ if (options.args.length === 1) {
62
+ return client.recall({ kbid: options.args[0], depth });
63
+ }
64
+
65
+ return client.recall({ kbids: options.args, depth });
66
+ }
@@ -1,6 +1,58 @@
1
1
  import type { CliOptions } from '../typings/cli-options.interface.ts';
2
2
  import type { PagedSearchDisplay } from '../typings/search-display.model.ts';
3
3
 
4
+ /** A single raw search result item returned by the daemon. */
5
+ interface RawSearchItem {
6
+ /** Knowledge-base identifier of the matched section. */
7
+ readonly kbid: string;
8
+ /** Section heading, or null when untitled. */
9
+ readonly heading: string | null;
10
+ /** MIME type of the section content. */
11
+ readonly type: string;
12
+ /** Document IDs this section belongs to. */
13
+ readonly docids: readonly string[];
14
+ /** Relevance score from the ranking engine. */
15
+ readonly score: number;
16
+ /** KWIC excerpt centered on the highest-scoring matched term. */
17
+ readonly snippet: string;
18
+ /** Query terms that matched within this section. */
19
+ readonly matched_terms: readonly string[];
20
+ /**
21
+ * Fields that contained at least one match.
22
+ * May be absent from older daemon versions.
23
+ */
24
+ readonly matched_fields?: readonly string[];
25
+ /**
26
+ * Normalised confidence score (0.0-1.0) relative to the top result.
27
+ * May be absent from older daemon versions.
28
+ */
29
+ readonly confidence?: number;
30
+ /**
31
+ * ISO 8601 creation timestamp of the section.
32
+ * May be absent from older daemon versions.
33
+ */
34
+ readonly created_at?: string;
35
+ }
36
+
37
+ /** Raw paginated search response from the daemon. */
38
+ interface RawSearchResponse {
39
+ /** Result items for the current page. */
40
+ readonly items: readonly RawSearchItem[];
41
+ /** Total number of matches across all pages. */
42
+ readonly total: number;
43
+ /** Number of results skipped. */
44
+ readonly offset: number;
45
+ /** Maximum results per page. */
46
+ readonly limit: number;
47
+ /** Whether more results exist beyond this page. */
48
+ readonly has_more: boolean;
49
+ /**
50
+ * When `true`, the engine relaxed the query to produce results.
51
+ * May be absent from older daemon versions.
52
+ */
53
+ readonly relaxed?: boolean;
54
+ }
55
+
4
56
  /**
5
57
  * Minimal client interface required by `runSearch`.
6
58
  *
@@ -18,21 +70,8 @@ export interface SearchClient {
18
70
  mode?: string;
19
71
  limit?: number;
20
72
  offset?: number;
21
- }): Promise<{
22
- readonly items: readonly {
23
- readonly kbid: string;
24
- readonly heading: string | null;
25
- readonly type: string;
26
- readonly docids: readonly string[];
27
- readonly score: number;
28
- readonly snippet: string;
29
- readonly matched_terms: readonly string[];
30
- }[];
31
- readonly total: number;
32
- readonly offset: number;
33
- readonly limit: number;
34
- readonly has_more: boolean;
35
- }>;
73
+ algo?: string;
74
+ }): Promise<RawSearchResponse>;
36
75
  }
37
76
 
38
77
  /**
@@ -59,6 +98,7 @@ export async function runSearch(
59
98
  offset: 0,
60
99
  limit: options.limit,
61
100
  has_more: false,
101
+ relaxed: false,
62
102
  };
63
103
  }
64
104
 
@@ -67,6 +107,7 @@ export async function runSearch(
67
107
  mode: options.mode,
68
108
  limit: options.limit,
69
109
  offset: options.offset,
110
+ algo: options.algo,
70
111
  });
71
112
 
72
113
  return {
@@ -76,13 +117,17 @@ export async function runSearch(
76
117
  type: r.type,
77
118
  docids: r.docids,
78
119
  score: r.score,
120
+ confidence: r.confidence ?? 0,
79
121
  snippet: r.snippet,
80
122
  matched_terms: r.matched_terms,
123
+ matched_fields: r.matched_fields ?? [],
124
+ created_at: r.created_at ?? '',
81
125
  preview: '',
82
126
  })),
83
127
  total: results.total,
84
128
  offset: results.offset,
85
129
  limit: results.limit,
86
130
  has_more: results.has_more,
131
+ relaxed: results.relaxed ?? false,
87
132
  };
88
133
  }
@@ -0,0 +1,44 @@
1
+ import type { CommandResult } from '../typings/command-result.model.ts';
2
+ import type { DisconnectableClient } from '../typings/disconnectable-client.interface.ts';
3
+
4
+ /**
5
+ * Checks the database version and returns a `CommandResult` error
6
+ * when the version is incompatible, or `null` when it is compatible.
7
+ *
8
+ * - `'needs_migration'`: prompts the user to run `kbdb --migrate`
9
+ * - `'too_new'`: informs the user to upgrade kbdb
10
+ * - `'compatible'`: returns `null` (no gate triggered)
11
+ *
12
+ * @param client - disconnectable client with version-check capability
13
+ * @param dbDir - absolute path to the `.kbdb` database root
14
+ * @returns error `CommandResult` when blocked, or `null` when clear
15
+ */
16
+ export async function versionGate(
17
+ client: DisconnectableClient,
18
+ dbDir: string,
19
+ ): Promise<CommandResult | null> {
20
+ const versionStatus = await client.checkVersion(dbDir);
21
+
22
+ if (versionStatus.status === 'needs_migration') {
23
+ return {
24
+ error:
25
+ 'error: database needs migration' +
26
+ ' -- run `kbdb --migrate`',
27
+ exitCode: 1,
28
+ };
29
+ }
30
+
31
+ if (versionStatus.status === 'too_new') {
32
+ return {
33
+ error:
34
+ `error: database version` +
35
+ ` ${versionStatus.currentVersion.toString()}` +
36
+ ` is newer than kbdb version` +
37
+ ` ${versionStatus.requiredVersion.toString()}` +
38
+ ` -- upgrade kbdb`,
39
+ exitCode: 1,
40
+ };
41
+ }
42
+
43
+ return null;
44
+ }
@@ -0,0 +1,34 @@
1
+ import type { CommandResult } from '../typings/command-result.model.ts';
2
+ import { errorToMessage } from './error-to-message.function.ts';
3
+
4
+ /**
5
+ * Wraps an async command handler in a standard try/catch envelope.
6
+ *
7
+ * On success, serialises the result with `JSON.stringify` and
8
+ * returns `exitCode: 0`. On failure, returns an error message
9
+ * prefixed with `<label> failed:` and `exitCode: 1`.
10
+ *
11
+ * @param label - command name used in the error prefix
12
+ * @param handler - async function that produces the command result
13
+ * @param exitCodeSelector - optional function to derive `exitCode`
14
+ * from the successful result; defaults to always returning 0
15
+ * @returns a `CommandResult` with output or error
16
+ */
17
+ export async function wrapCommand<T>(
18
+ label: string,
19
+ handler: () => Promise<T>,
20
+ exitCodeSelector?: (result: T) => number,
21
+ ): Promise<CommandResult> {
22
+ try {
23
+ const result = await handler();
24
+ return {
25
+ output: JSON.stringify(result, null, 2),
26
+ exitCode: exitCodeSelector ? exitCodeSelector(result) : 0,
27
+ };
28
+ } catch (err) {
29
+ return {
30
+ error: `${label} failed: ${errorToMessage(err)}`,
31
+ exitCode: 1,
32
+ };
33
+ }
34
+ }
@@ -1,6 +1,8 @@
1
1
  export { parseArgs } from './functions/parse-args.function.ts';
2
2
  export { formatOutput } from './functions/format-output.function.ts';
3
3
  export { runSearch } from './functions/run-search.function.ts';
4
+ export { runRecall } from './functions/run-recall.function.ts';
5
+ export { runExport } from './functions/run-export.function.ts';
4
6
  export { runLearn } from './functions/run-learn.function.ts';
5
7
  export { runUnlearn } from './functions/run-unlearn.function.ts';
6
8
  export { runContent } from './functions/run-content.function.ts';
@@ -28,6 +30,8 @@ export type {
28
30
  PagedSearchDisplay,
29
31
  } from './typings/search-display.model.ts';
30
32
  export type { SearchClient } from './functions/run-search.function.ts';
33
+ export type { RecallClient } from './functions/run-recall.function.ts';
34
+ export type { ExportClient } from './functions/run-export.function.ts';
31
35
  export type { LearnClient } from './functions/run-learn.function.ts';
32
36
  export type {
33
37
  UnlearnClient,
@@ -0,0 +1,47 @@
1
+ import type { AddSectionResult } from '../../worker-client/typings/add-section-result.model.ts';
2
+
3
+ /**
4
+ * Minimal client interface required by `runAgentCreate`.
5
+ *
6
+ * Decouples the CLI function from the concrete `WorkerClient`
7
+ * implementation, making it straightforward to test with mocks.
8
+ */
9
+ export interface AgentCreateClient {
10
+ /**
11
+ * Ingests a content section into the knowledge base.
12
+ *
13
+ * @param params - section type label, raw content, and optional
14
+ * metadata
15
+ * @returns result object containing the assigned knowledge-base
16
+ * identifier
17
+ */
18
+ addSection(params: {
19
+ readonly sectionType: string;
20
+ readonly content: string;
21
+ readonly title?: string;
22
+ readonly description?: string;
23
+ }): Promise<AddSectionResult>;
24
+
25
+ /**
26
+ * Groups a set of sections under a named document.
27
+ *
28
+ * @param title - human-readable document title
29
+ * @param kbids - identifiers of the sections to group
30
+ * @param docType - application-level document type tag; omit or
31
+ * pass an empty string for untagged documents
32
+ * @returns the assigned document identifier
33
+ */
34
+ groupSections(
35
+ title: string,
36
+ kbids: string[],
37
+ docType?: string,
38
+ ): Promise<string>;
39
+
40
+ /**
41
+ * Retrieves one or more sections by their identifiers.
42
+ *
43
+ * @param kbids - list of knowledge-base identifiers to fetch
44
+ * @returns sections found; missing kbids are omitted from the result
45
+ */
46
+ readSections(kbids: string[]): Promise<{ kbid: string }[]>;
47
+ }
@@ -0,0 +1,39 @@
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
+
9
+ /** A section record as returned by `readSections`. */
10
+ export interface AgentSectionRecord {
11
+ /** Knowledge-base identifier of the section. */
12
+ readonly kbid: string;
13
+ /** Raw text content stored in the section. */
14
+ readonly content: string;
15
+ }
16
+
17
+ /**
18
+ * Minimal client interface required by `runAgentGet`.
19
+ *
20
+ * Decouples the CLI function from the concrete `WorkerClient`
21
+ * implementation, making it straightforward to test with mocks.
22
+ */
23
+ export interface AgentGetClient {
24
+ /**
25
+ * Retrieves a full document record including its ordered sections.
26
+ *
27
+ * @param docid - identifier of the document to retrieve
28
+ * @returns the document record
29
+ */
30
+ retrieveDocument(docid: string): Promise<unknown>;
31
+
32
+ /**
33
+ * Retrieves one or more sections by their identifiers.
34
+ *
35
+ * @param kbids - list of knowledge-base identifiers to fetch
36
+ * @returns sections found; missing kbids are omitted from the result
37
+ */
38
+ readSections(kbids: string[]): Promise<AgentSectionRecord[]>;
39
+ }
@@ -0,0 +1,66 @@
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
+
27
+ /** A single integrity error found during a database check. */
28
+ export interface IntegrityError {
29
+ /**
30
+ * The category of integrity violation detected.
31
+ *
32
+ * - `'checksum_mismatch'` -- stored content does not match its hash
33
+ * - `'orphan_section'` -- section not referenced by any document
34
+ * - `'orphan_document'` -- document references no existing sections
35
+ * - `'broken_reference'` -- a marker references a non-existent entity
36
+ * - `'type_mismatch'` -- stored MIME type conflicts with content
37
+ * - `'circular_reference'` -- marker chain contains a cycle
38
+ */
39
+ readonly type:
40
+ | 'checksum_mismatch'
41
+ | 'orphan_section'
42
+ | 'orphan_document'
43
+ | 'broken_reference'
44
+ | 'type_mismatch'
45
+ | 'circular_reference';
46
+ /** Identifier of the entity (kbid or docid) that has the issue. */
47
+ readonly entity: string;
48
+ /** Human-readable description of the specific problem. */
49
+ readonly detail: string;
50
+ }
51
+
52
+ /**
53
+ * Minimal client interface required by `runCheck`.
54
+ *
55
+ * Decouples the CLI function from the concrete `WorkerClient`
56
+ * implementation, making it straightforward to test with mocks.
57
+ */
58
+ export interface CheckClient {
59
+ /**
60
+ * Runs an integrity check on the knowledge-base database.
61
+ *
62
+ * @returns a report of all issues found; `ok` is `true` when
63
+ * no errors were detected
64
+ */
65
+ integrityCheck(): Promise<RawIntegrityCheckResult>;
66
+ }
@@ -0,0 +1,54 @@
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
+ /**
6
+ * Injectable dependencies for the CLI orchestrator.
7
+ *
8
+ * Every external side-effect is injected so the function
9
+ * is fully testable without touching process globals,
10
+ * filesystem, or network.
11
+ */
12
+ export interface CliDeps {
13
+ /** Returns `true` when stdin is an interactive terminal. */
14
+ isStdinTty: () => boolean;
15
+
16
+ /**
17
+ * Prompts the user with the given question and resolves with
18
+ * their trimmed response.
19
+ *
20
+ * @param question - text to display before the input prompt
21
+ */
22
+ promptUser: (question: string) => Promise<string>;
23
+
24
+ /**
25
+ * Creates a worker client connected to the given database path.
26
+ *
27
+ * @param opts - connection options including the context path
28
+ */
29
+ createWorkerClient: (opts: {
30
+ contextPath: string;
31
+ }) => Promise<DisconnectableClient>;
32
+
33
+ /**
34
+ * Finds the `.kbdb` directory starting from the given base path.
35
+ *
36
+ * @param basePath - starting directory; defaults to `process.cwd()`
37
+ * @returns absolute path to `.kbdb` or `null` when not found
38
+ */
39
+ findDb: (basePath?: string) => string | null;
40
+
41
+ /**
42
+ * Initialises a new `.kbdb` database directory.
43
+ *
44
+ * @param options - parsed CLI options
45
+ */
46
+ runInit: (options: CliOptions) => InitResult;
47
+
48
+ /**
49
+ * Starts the MCP server using the given database path.
50
+ *
51
+ * @param contextPath - absolute path to the `.kbdb` directory
52
+ */
53
+ startMcpServer?: (contextPath: string) => Promise<void>;
54
+ }
@@ -29,6 +29,8 @@ export interface CliOptions {
29
29
  format: OutputFormat;
30
30
  /** Search mode passed to the worker daemon. Defaults to `'sections'`. */
31
31
  mode: SearchMode;
32
+ /** Search algorithm: `'lexical'`, `'vector'`, or `'hybrid'`. */
33
+ algo?: string;
32
34
  /** Maximum number of results to return. Defaults to 20. */
33
35
  limit: number;
34
36
  /** Number of results to skip for pagination. */
@@ -52,6 +54,19 @@ export interface CliOptions {
52
54
  body?: string;
53
55
  /** Comma-separated skill kbids for agent create. */
54
56
  skills?: string[];
57
+ /**
58
+ * Recall expansion depth (0-3). Clamped to 3.
59
+ * Defaults to 0.
60
+ */
61
+ depth?: number;
62
+ /** Comma-separated tags for scoping (learn, recall). */
63
+ tags?: string[];
64
+ /**
65
+ * When `true`, enables supersession by source key (learn).
66
+ * Re-learning edited content replaces the original section
67
+ * instead of creating a sibling.
68
+ */
69
+ replace?: boolean;
55
70
  /** Positional arguments following the sub-command. */
56
71
  args: string[];
57
72
  }
@@ -0,0 +1,29 @@
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
+ /**
6
+ * Extension of `DispatchClient` with lifecycle methods needed by
7
+ * the CLI orchestrator.
8
+ *
9
+ * Adds version checking, migration, and disconnect so the orchestrator
10
+ * can manage a worker-client connection across all CLI commands.
11
+ */
12
+ export interface DisconnectableClient extends DispatchClient {
13
+ /**
14
+ * Checks the database version against the worker engine.
15
+ *
16
+ * @param targetPath - absolute path to the `.kbdb` database root
17
+ */
18
+ checkVersion(targetPath: string): Promise<VersionStatus>;
19
+
20
+ /**
21
+ * Runs all pending database migrations.
22
+ *
23
+ * @param targetPath - absolute path to the `.kbdb` database root
24
+ */
25
+ migrateDatabase(targetPath: string): Promise<MigrateResult>;
26
+
27
+ /** Disconnects from the worker daemon and releases resources. */
28
+ disconnect(): void;
29
+ }