@dikolab/kbdb 0.3.0 → 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 (425) hide show
  1. package/README.md +24 -43
  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/mcp-server.md +4 -2
  211. package/docs/goals/auto-capture.md +378 -0
  212. package/docs/goals/benchmarking.md +296 -0
  213. package/docs/goals/concurrency.md +259 -0
  214. package/docs/goals/hybrid-search.md +436 -0
  215. package/docs/goals/semantic-dedup.md +229 -0
  216. package/docs/goals/sync.md +217 -0
  217. package/docs/modules/rust/fs-database/indexes/vectors.md +110 -0
  218. package/docs/modules/typescript/shared/auto-capture/module.md +73 -0
  219. package/docs/modules/typescript/shared/embedding/functions.md +94 -0
  220. package/docs/modules/typescript/shared/embedding/module.md +71 -0
  221. package/docs/modules/typescript/shared/embedding/typings.md +122 -0
  222. package/docs/overview.md +148 -166
  223. package/docs/release-notes/0.2.0.md +3 -3
  224. package/docs/release-notes/0.3.0.md +89 -0
  225. package/docs/release-notes/0.3.1.md +111 -0
  226. package/docs/release-notes/README.md +2 -0
  227. package/package.json +1 -1
  228. package/src/shared/auto-capture/classes/auto-capture-controller.class.ts +62 -0
  229. package/src/shared/auto-capture/constants/auto-capture-defaults.constant.ts +15 -0
  230. package/src/shared/auto-capture/functions/build-capture-prompt.function.ts +27 -0
  231. package/src/shared/auto-capture/functions/evaluate-trigger.function.ts +50 -0
  232. package/src/shared/auto-capture/index.ts +7 -0
  233. package/src/shared/auto-capture/typings/auto-capture-config.interface.ts +13 -0
  234. package/src/shared/auto-capture/typings/auto-capture-state.interface.ts +13 -0
  235. package/src/shared/auto-capture/typings/auto-capture-trigger.interface.ts +7 -0
  236. package/src/shared/cli/constants/global-help.constant.ts +73 -0
  237. package/src/shared/cli/constants/leaf-help.constant.ts +219 -0
  238. package/src/shared/cli/constants/memory-protocol-body.constant.ts +39 -0
  239. package/src/shared/cli/constants/query-guidance-body.constant.ts +37 -0
  240. package/src/shared/cli/constants/subcommand-help.constant.ts +195 -0
  241. package/src/shared/cli/functions/collect-files.function.ts +55 -0
  242. package/src/shared/cli/functions/compute-section-kbid.function.ts +49 -0
  243. package/src/shared/cli/functions/format-mcp-output.function.ts +41 -0
  244. package/src/shared/cli/functions/format-text-output.function.ts +42 -0
  245. package/src/shared/cli/functions/generate-group-help.function.ts +41 -0
  246. package/src/shared/cli/functions/handle-data-command.function.ts +67 -0
  247. package/src/shared/cli/functions/handle-mcp.function.ts +56 -0
  248. package/src/shared/cli/functions/handle-migrate.function.ts +64 -0
  249. package/src/shared/cli/functions/hydrate-search-previews.function.ts +29 -0
  250. package/src/shared/cli/functions/parse-args.function.ts +3 -0
  251. package/src/shared/cli/functions/resolve-skill-names.function.ts +43 -0
  252. package/src/shared/cli/functions/run-search.function.ts +2 -0
  253. package/src/shared/cli/functions/version-gate.function.ts +44 -0
  254. package/src/shared/cli/functions/wrap-command.function.ts +34 -0
  255. package/src/shared/cli/typings/agent-create-client.interface.ts +47 -0
  256. package/src/shared/cli/typings/agent-get-client.interface.ts +39 -0
  257. package/src/shared/cli/typings/check-client.interface.ts +66 -0
  258. package/src/shared/cli/typings/cli-deps.interface.ts +54 -0
  259. package/src/shared/cli/typings/cli-options.interface.ts +2 -0
  260. package/src/shared/cli/typings/disconnectable-client.interface.ts +29 -0
  261. package/src/shared/cli/typings/dispatch-client.type.ts +46 -0
  262. package/src/shared/cli/typings/learn-client.interface.ts +53 -0
  263. package/src/shared/cli/typings/learn-io.interface.ts +5 -0
  264. package/src/shared/cli/typings/search-client.interface.ts +73 -0
  265. package/src/shared/embedding/classes/null-embedding-provider.class.ts +29 -0
  266. package/src/shared/embedding/constants/near-duplicate-thresholds.constant.ts +17 -0
  267. package/src/shared/embedding/functions/build-vector-index.function.ts +79 -0
  268. package/src/shared/embedding/functions/cosine-similarity.function.ts +31 -0
  269. package/src/shared/embedding/functions/detect-near-duplicates.function.ts +69 -0
  270. package/src/shared/embedding/functions/jaccard-coefficient.function.ts +26 -0
  271. package/src/shared/embedding/functions/read-vector-index-meta.function.ts +44 -0
  272. package/src/shared/embedding/functions/rrf-fuse.function.ts +33 -0
  273. package/src/shared/embedding/functions/search-vectors.function.ts +59 -0
  274. package/src/shared/embedding/index.ts +20 -0
  275. package/src/shared/embedding/typings/embedding-config.interface.ts +23 -0
  276. package/src/shared/embedding/typings/embedding-provider.interface.ts +25 -0
  277. package/src/shared/embedding/typings/near-duplicate-candidate.model.ts +25 -0
  278. package/src/shared/embedding/typings/near-duplicate-result.model.ts +26 -0
  279. package/src/shared/embedding/typings/vector-index-entry.model.ts +13 -0
  280. package/src/shared/embedding/typings/vector-index-meta.model.ts +14 -0
  281. package/src/shared/embedding/typings/vector-search-result.model.ts +8 -0
  282. package/src/shared/mcp/classes/mcp-server.class.ts +6 -3
  283. package/src/shared/mcp/constants/tool-agent-create.constant.ts +39 -0
  284. package/src/shared/mcp/constants/tool-agent-delete.constant.ts +26 -0
  285. package/src/shared/mcp/constants/tool-agent-get.constant.ts +24 -0
  286. package/src/shared/mcp/constants/tool-agent-list.constant.ts +18 -0
  287. package/src/shared/mcp/constants/tool-auto-capture-review.constant.ts +32 -0
  288. package/src/shared/mcp/constants/tool-check.constant.ts +21 -0
  289. package/src/shared/mcp/constants/tool-content.constant.ts +29 -0
  290. package/src/shared/mcp/constants/tool-export.constant.ts +27 -0
  291. package/src/shared/mcp/constants/tool-gc.constant.ts +21 -0
  292. package/src/shared/mcp/constants/tool-learn.constant.ts +58 -0
  293. package/src/shared/mcp/constants/tool-rebuild.constant.ts +21 -0
  294. package/src/shared/mcp/constants/tool-recall.constant.ts +36 -0
  295. package/src/shared/mcp/constants/tool-retrieve.constant.ts +31 -0
  296. package/src/shared/mcp/constants/tool-search.constant.ts +51 -0
  297. package/src/shared/mcp/constants/tool-skill-delete.constant.ts +24 -0
  298. package/src/shared/mcp/constants/tool-skill-get.constant.ts +27 -0
  299. package/src/shared/mcp/constants/tool-skill-learn.constant.ts +37 -0
  300. package/src/shared/mcp/constants/tool-skill-list.constant.ts +18 -0
  301. package/src/shared/mcp/constants/tool-status.constant.ts +20 -0
  302. package/src/shared/mcp/constants/tool-unlearn.constant.ts +25 -0
  303. package/src/shared/mcp/functions/as-boolean-or-undefined.function.ts +11 -0
  304. package/src/shared/mcp/functions/as-string-array-or-undefined.function.ts +17 -0
  305. package/src/shared/mcp/functions/as-string-array.function.ts +15 -0
  306. package/src/shared/mcp/functions/as-string.function.ts +10 -0
  307. package/src/shared/mcp/functions/build-skills-text.function.ts +43 -0
  308. package/src/shared/mcp/functions/create-tool-definitions.function.ts +28 -0
  309. package/src/shared/mcp/functions/handle-agent-create.function.ts +1 -1
  310. package/src/shared/mcp/functions/handle-agent-prompt.function.ts +68 -0
  311. package/src/shared/mcp/functions/handle-mcp-request.function.ts +202 -0
  312. package/src/shared/mcp/functions/handle-prompt-get.function.ts +18 -12
  313. package/src/shared/mcp/functions/handle-skill-prompt.function.ts +44 -0
  314. package/src/shared/mcp/functions/handle-tool-auto-capture-review.function.ts +24 -0
  315. package/src/shared/mcp/functions/handle-tool-call.function.ts +18 -0
  316. package/src/shared/mcp/functions/handle-tool-check.function.ts +21 -0
  317. package/src/shared/mcp/functions/handle-tool-content.function.ts +23 -0
  318. package/src/shared/mcp/functions/handle-tool-export.function.ts +25 -0
  319. package/src/shared/mcp/functions/handle-tool-gc.function.ts +21 -0
  320. package/src/shared/mcp/functions/handle-tool-learn.function.ts +69 -0
  321. package/src/shared/mcp/functions/handle-tool-rebuild.function.ts +21 -0
  322. package/src/shared/mcp/functions/handle-tool-retrieve.function.ts +40 -0
  323. package/src/shared/mcp/functions/handle-tool-search.function.ts +47 -0
  324. package/src/shared/mcp/functions/handle-tool-skill-delete.function.ts +34 -0
  325. package/src/shared/mcp/functions/handle-tool-skill-get.function.ts +59 -0
  326. package/src/shared/mcp/functions/handle-tool-skill-learn.function.ts +61 -0
  327. package/src/shared/mcp/functions/handle-tool-skill-list.function.ts +39 -0
  328. package/src/shared/mcp/functions/handle-tool-status.function.ts +21 -0
  329. package/src/shared/mcp/functions/handle-tool-unlearn.function.ts +24 -0
  330. package/src/shared/mcp/functions/parse-agent-meta.function.ts +27 -0
  331. package/src/shared/mcp/functions/parse-skill-arguments.function.ts +36 -0
  332. package/src/shared/mcp/functions/read-agent-meta.function.ts +41 -0
  333. package/src/shared/mcp/functions/resolve-skill-refs.function.ts +50 -0
  334. package/src/shared/mcp/functions/run-startup-health-check.function.ts +34 -0
  335. package/src/shared/mcp/typings/mcp-capabilities.interface.ts +16 -0
  336. package/src/shared/mcp/typings/mcp-client.interface.ts +2 -0
  337. package/src/shared/mcp/typings/mcp-completion.interface.ts +45 -0
  338. package/src/shared/mcp/typings/mcp-content-result.model.ts +9 -0
  339. package/src/shared/mcp/typings/mcp-export-result.model.ts +11 -0
  340. package/src/shared/mcp/typings/mcp-gc-result.model.ts +15 -0
  341. package/src/shared/mcp/typings/mcp-integrity-check-result.model.ts +17 -0
  342. package/src/shared/mcp/typings/mcp-integrity-error.model.ts +15 -0
  343. package/src/shared/mcp/typings/mcp-notification.interface.ts +9 -0
  344. package/src/shared/mcp/typings/mcp-rebuild-result.model.ts +9 -0
  345. package/src/shared/mcp/typings/mcp-request.interface.ts +11 -0
  346. package/src/shared/mcp/typings/mcp-resource-result.interface.ts +12 -0
  347. package/src/shared/mcp/typings/mcp-resource-template.interface.ts +11 -0
  348. package/src/shared/mcp/typings/mcp-response.interface.ts +18 -0
  349. package/src/shared/mcp/typings/mcp-server-info.interface.ts +7 -0
  350. package/src/shared/mcp/typings/mcp-server-state.interface.ts +17 -0
  351. package/src/shared/mcp/typings/mcp-tool-annotations.interface.ts +32 -0
  352. package/src/shared/mcp/typings/mcp-tool-definition.interface.ts +16 -0
  353. package/src/shared/mcp/typings/mcp-tool-result.interface.ts +19 -0
  354. package/src/shared/mcp/typings/mcp-worker-client.interface.ts +243 -0
  355. package/src/shared/mcp/typings/tool-call-result.model.ts +18 -0
  356. package/src/shared/sync/functions/build-import-report.function.ts +40 -0
  357. package/src/shared/sync/functions/parse-export-entry.function.ts +45 -0
  358. package/src/shared/sync/functions/resolve-conflict.function.ts +31 -0
  359. package/src/shared/sync/functions/serialize-export-entry.function.ts +18 -0
  360. package/src/shared/sync/index.ts +9 -0
  361. package/src/shared/sync/typings/conflict-resolution.type.ts +8 -0
  362. package/src/shared/sync/typings/export-entry.interface.ts +13 -0
  363. package/src/shared/sync/typings/export-options.interface.ts +9 -0
  364. package/src/shared/sync/typings/import-options.interface.ts +7 -0
  365. package/src/shared/sync/typings/import-report.interface.ts +15 -0
  366. package/src/shared/wasm-codec/functions/decode-one-recall-result.function.ts +86 -0
  367. package/src/shared/wasm-codec/functions/decode-option-string.function.ts +24 -0
  368. package/src/shared/wasm-codec/functions/decode-recall-document.function.ts +59 -0
  369. package/src/shared/wasm-codec/functions/decode-recall-reference.function.ts +52 -0
  370. package/src/shared/wasm-codec/functions/decode-recall-sibling.function.ts +43 -0
  371. package/src/shared/wasm-codec/functions/decode-section-match.function.ts +80 -0
  372. package/src/shared/wasm-codec/functions/decode-section-record-trailing.function.ts +75 -0
  373. package/src/shared/wasm-codec/functions/decode-section-record.function.ts +85 -0
  374. package/src/shared/wasm-codec/functions/decode-section-type.function.ts +30 -0
  375. package/src/shared/wasm-codec/functions/decode-wasm-list.function.ts +31 -0
  376. package/src/shared/wasm-codec/typings/add-section-input.model.ts +45 -0
  377. package/src/shared/wasm-codec/typings/add-section-result.model.ts +28 -0
  378. package/src/shared/wasm-codec/typings/document-manifest.model.ts +20 -0
  379. package/src/shared/wasm-codec/typings/document-section.model.ts +12 -0
  380. package/src/shared/wasm-codec/typings/item-decoder.type.ts +10 -0
  381. package/src/shared/wasm-codec/typings/near-duplicate.model.ts +16 -0
  382. package/src/shared/wasm-codec/typings/paged-search-result.model.ts +22 -0
  383. package/src/shared/wasm-codec/typings/section-match.model.ts +31 -0
  384. package/src/shared/wasm-codec/typings/section-record-trailing.model.ts +38 -0
  385. package/src/shared/wasm-codec/typings/section-record.model.ts +66 -0
  386. package/src/shared/wasm-codec/typings/section-type-result.model.ts +12 -0
  387. package/src/shared/worker-client/functions/handle-ipc-data.function.ts +49 -0
  388. package/src/shared/worker-client/functions/send-ipc-request.function.ts +39 -0
  389. package/src/shared/worker-client/typings/add-section-result.model.ts +2 -0
  390. package/src/shared/worker-client/typings/json-rpc-response.interface.ts +17 -0
  391. package/src/shared/worker-client/typings/pending-call.interface.ts +7 -0
  392. package/src/shared/worker-client/typings/recall-document.model.ts +16 -0
  393. package/src/shared/worker-client/typings/recall-params.model.ts +15 -0
  394. package/src/shared/worker-client/typings/recall-reference.model.ts +32 -0
  395. package/src/shared/worker-client/typings/recall-sibling.model.ts +11 -0
  396. package/src/shared/worker-client/typings/recall-single-result.model.ts +41 -0
  397. package/src/shared/worker-daemon/classes/ipc-error.class.ts +22 -0
  398. package/src/shared/worker-daemon/constants/wasm-method-map.constant.ts +69 -0
  399. package/src/shared/worker-daemon/functions/build-ipc-error-response.function.ts +16 -0
  400. package/src/shared/worker-daemon/functions/check-catalog-version.function.ts +54 -0
  401. package/src/shared/worker-daemon/functions/check-preconditions.function.ts +28 -0
  402. package/src/shared/worker-daemon/functions/detect-stale-pid.function.ts +33 -0
  403. package/src/shared/worker-daemon/functions/dispatch-request.function.ts +190 -0
  404. package/src/shared/worker-daemon/functions/handle-check-version.function.ts +74 -0
  405. package/src/shared/worker-daemon/functions/handle-config-method.function.ts +27 -0
  406. package/src/shared/worker-daemon/functions/handle-read-ops.function.ts +236 -0
  407. package/src/shared/worker-daemon/functions/handle-write-ops.function.ts +257 -0
  408. package/src/shared/worker-daemon/functions/parse-auto-capture-section.function.ts +51 -0
  409. package/src/shared/worker-daemon/functions/parse-catalog-version.function.ts +20 -0
  410. package/src/shared/worker-daemon/functions/parse-embedding-section.function.ts +38 -0
  411. package/src/shared/worker-daemon/functions/parse-worker-toml.function.ts +104 -0
  412. package/src/shared/worker-daemon/functions/run-startup-integrity-check.function.ts +55 -0
  413. package/src/shared/worker-daemon/functions/scan-near-duplicates.function.ts +92 -0
  414. package/src/shared/worker-daemon/functions/wasm-bridge.function.ts +144 -0
  415. package/src/shared/worker-daemon/functions/wasm-memory-helpers.function.ts +41 -0
  416. package/src/shared/worker-daemon/functions/write-lock.function.ts +49 -0
  417. package/src/shared/worker-daemon/typings/allocator-ref.interface.ts +16 -0
  418. package/src/shared/worker-daemon/typings/daemon-config.interface.ts +7 -0
  419. package/src/shared/worker-daemon/typings/fs-adapter.interface.ts +22 -0
  420. package/src/shared/worker-daemon/typings/handler-context.interface.ts +19 -0
  421. package/src/shared/worker-daemon/typings/memory-ref.interface.ts +13 -0
  422. package/src/shared/worker-daemon/typings/wasm-fn.type.ts +2 -0
  423. package/src/shared/worker-daemon/typings/write-lock.interface.ts +13 -0
  424. package/src/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
  425. package/src/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
@@ -0,0 +1,89 @@
1
+ # 0.3.0
2
+
3
+ *Minor release -- 2026-06-23*
4
+
5
+ Adds supersession, relaxed queries, database export,
6
+ tags, and confidence scoring. The Rust engine gains
7
+ source tracking, near-duplicate detection, and
8
+ synonym expansion.
9
+
10
+ ---
11
+
12
+ ## New Features
13
+
14
+ - **Supersession** -- Re-learning from the same
15
+ source automatically replaces outdated sections
16
+ instead of duplicating them. Source key identity
17
+ tracked via SHA-256.
18
+
19
+ - **Relaxed OR fallback** -- When an exact AND
20
+ query returns no results, kbdb automatically
21
+ retries with relaxed OR matching so you always
22
+ get the best available results.
23
+
24
+ - **Database export** -- New `export` CLI command
25
+ and MCP tool. Copies sections, documents, and
26
+ catalog as a self-contained directory snapshot.
27
+
28
+ - **Tags and replace on learn** -- `--tags` attaches
29
+ labels to imported sections for scoped queries.
30
+ `--replace` supersedes existing sections from the
31
+ same source in one step.
32
+
33
+ - **Confidence scoring** -- Search results include
34
+ a normalized BM25F confidence score and
35
+ `matched_fields` (heading, body, code) so agents
36
+ can tell strong matches from weak ones.
37
+
38
+ - **Near-duplicate detection** -- Jaccard similarity
39
+ warns when imported content closely matches an
40
+ existing section, preventing silent drift.
41
+
42
+ - **Default skills** -- `db init` installs
43
+ `query-guidance` and `memory-protocol` skills
44
+ that teach agents how to search and what to store.
45
+
46
+ ---
47
+
48
+ ## Improvements
49
+
50
+ - **Synonym expansion pipeline** in the Rust engine
51
+ broadens keyword coverage automatically.
52
+
53
+ - **Matched field tracking** -- Results show which
54
+ fields (heading, body, code) matched the query.
55
+
56
+ - **`created_at` timestamps** in search results.
57
+
58
+ - **Divergent content detection** via integrity
59
+ check catches contradictions between versions.
60
+
61
+ - **GC fix** -- Garbage collection now only removes
62
+ superseded sections, not active ones.
63
+
64
+ - **Reference graph rebuild** included in `rebuild`
65
+ command.
66
+
67
+ - **Writer lock** prevents concurrent WASM writes.
68
+
69
+ - **Worker daemon startup health check** verifies
70
+ WASM modules load correctly.
71
+
72
+ ---
73
+
74
+ ## Testing
75
+
76
+ - **517 e2e assertions (Node.js), 514 (Deno)** --
77
+ all pass with 0 failures.
78
+
79
+ ---
80
+
81
+ ## Upgrade
82
+
83
+ ```sh
84
+ # Node.js
85
+ npm install -g @dikolab/kbdb@0.3.0
86
+
87
+ # Deno
88
+ deno install -Agf jsr:@dikolab/kbdb/cli
89
+ ```
@@ -0,0 +1,111 @@
1
+ # 0.3.1
2
+
3
+ *Patch release -- 2026-06-23*
4
+
5
+ Fixes MCP request processing reliability, agent
6
+ document persistence, WASM memory safety, and
7
+ eliminates all e2e test skips. Adds the 20th MCP
8
+ tool (`auto-capture-review`).
9
+
10
+ ---
11
+
12
+ ## Bug Fixes
13
+
14
+ - **MCP sequential request processing** -- The MCP
15
+ server previously dispatched JSON-RPC requests
16
+ concurrently (fire-and-forget). When multiple
17
+ requests arrived in a batch, later requests could
18
+ execute before earlier ones finished -- for
19
+ example, reading an agent document before it was
20
+ fully written. Requests are now processed
21
+ sequentially via a promise chain, ensuring each
22
+ completes before the next begins.
23
+
24
+ - **Agent document type persistence** -- Agent
25
+ documents created via `agent-create` were missing
26
+ their `doc_type` field, so `listDocumentsByType`
27
+ could not find them. `handleAgentCreate` now
28
+ passes `'agent'` as the document type.
29
+
30
+ - **Agent prompt lookup** -- `prompts/get` for
31
+ agent prompts treated the agent title as a
32
+ document ID, which failed because document IDs
33
+ are content hashes. Now looks up agents by title
34
+ via `listDocumentsByType('agent')`.
35
+
36
+ - **WASM `worker_remove_grouping` double-free** --
37
+ The WASM export returned success without calling
38
+ `set_return`, leaving stale memory in the return
39
+ slot. The next `readReturnSlot` call freed
40
+ already-freed memory, causing a WASM trap. Now
41
+ sets the return slot to null before returning.
42
+
43
+ - **WASM defensive `set_return` calls** -- Added
44
+ null return slot initialization to `worker_init`
45
+ and `worker_init_directory` to prevent the same
46
+ stale-memory pattern from surfacing in edge cases.
47
+
48
+ ---
49
+
50
+ ## New Features
51
+
52
+ - **`auto-capture-review` MCP tool** -- Review and
53
+ approve pending auto-captured knowledge before
54
+ storage. Accepts `action` parameter with values
55
+ `list`, `approve`, or `reject`. This brings the
56
+ MCP server to 20 tools.
57
+
58
+ ---
59
+
60
+ ## Testing
61
+
62
+ - **548 e2e assertions** on both Node.js and Deno,
63
+ all passing with **0 failures and 0 skips** (up
64
+ from 517/514 with some skips in 0.3.0).
65
+
66
+ - **E2E test restructuring** -- Test databases
67
+ isolated by category (CLI, MCP, Worker) instead
68
+ of sharing a flat directory. Worker recall tests
69
+ now seed their own cross-reference data instead
70
+ of depending on CLI test data.
71
+
72
+ - **Pre-built WASM in Docker** -- E2E test
73
+ container caches WASM binaries at build time,
74
+ reducing test startup from ~30 seconds to
75
+ sub-second.
76
+
77
+ ---
78
+
79
+ ## Documentation
80
+
81
+ - **README.md** reorganized for clarity -- shorter
82
+ intro, labeled paragraphs ("How search works",
83
+ "Knowledge stays fresh"), accessible to both
84
+ technical and non-technical readers.
85
+
86
+ - **Architecture overview** rewritten -- simplified
87
+ prose, ASCII architecture diagram, removed stale
88
+ "Remaining" section (WASM host I/O is fully
89
+ implemented).
90
+
91
+ - **MCP server guide** updated with
92
+ `auto-capture-review` tool in reference tables
93
+ and annotations summary.
94
+
95
+ - **Tool counts corrected** across all docs
96
+ (19 -> 20).
97
+
98
+ - **Assertion counts updated** across all docs
99
+ (380+/383 -> 548).
100
+
101
+ ---
102
+
103
+ ## Upgrade
104
+
105
+ ```sh
106
+ # Node.js
107
+ npm install -g @dikolab/kbdb@0.3.1
108
+
109
+ # Deno
110
+ deno install -Agf jsr:@dikolab/kbdb/cli
111
+ ```
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Releases
4
4
 
5
+ - [0.3.1](0.3.1.md) -- MCP reliability fixes, 20 tools, zero test skips
6
+ - [0.3.0](0.3.0.md) -- Supersession, relaxed queries, export, tags, confidence
5
7
  - [0.2.0](0.2.0.md) -- Recall, paginated search, reference graph
6
8
  - [0.1.3](0.1.3.md) -- Include WASM binaries in JSR package
7
9
  - [0.1.2](0.1.2.md) -- Fix WASM loading from JSR
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dikolab/kbdb",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "CLI tool and MCP server for a file-based knowledge base database",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -0,0 +1,62 @@
1
+ import type { AutoCaptureConfig } from '../typings/auto-capture-config.interface.ts';
2
+ import type { AutoCaptureState } from '../typings/auto-capture-state.interface.ts';
3
+ import type { AutoCaptureTrigger } from '../typings/auto-capture-trigger.interface.ts';
4
+ import { evaluateTrigger } from '../functions/evaluate-trigger.function.ts';
5
+
6
+ /**
7
+ * Controls the auto-capture lifecycle.
8
+ *
9
+ * Tracks tool call counts, evaluates trigger conditions, and
10
+ * advances session state when a capture fires. Reset state on
11
+ * disconnect or session end via `reset()`.
12
+ */
13
+ export class AutoCaptureController {
14
+ private toolCallsSinceLastCapture = 0;
15
+ private lastCaptureTimestamp = 0;
16
+ private totalCapturesThisSession = 0;
17
+ private readonly config: AutoCaptureConfig;
18
+
19
+ /** @param config - the auto-capture configuration to use */
20
+ constructor(config: AutoCaptureConfig) {
21
+ this.config = config;
22
+ }
23
+
24
+ /** Record one tool call for trigger counting. */
25
+ recordToolCall(): void {
26
+ this.toolCallsSinceLastCapture += 1;
27
+ }
28
+
29
+ /**
30
+ * Evaluates the current state against the trigger criteria.
31
+ *
32
+ * When the trigger fires, advances the session counters so the
33
+ * next evaluation respects rate limiting and the session cap.
34
+ *
35
+ * @returns the trigger decision with a human-readable reason
36
+ */
37
+ evaluate(): AutoCaptureTrigger {
38
+ const trigger = evaluateTrigger(this.config, this.state());
39
+ if (trigger.shouldCapture) {
40
+ this.totalCapturesThisSession += 1;
41
+ this.lastCaptureTimestamp = Date.now();
42
+ this.toolCallsSinceLastCapture = 0;
43
+ }
44
+ return trigger;
45
+ }
46
+
47
+ /** Reset all counters, e.g. on client disconnect. */
48
+ reset(): void {
49
+ this.toolCallsSinceLastCapture = 0;
50
+ this.lastCaptureTimestamp = 0;
51
+ this.totalCapturesThisSession = 0;
52
+ }
53
+
54
+ /** Returns a snapshot of the current controller state. */
55
+ state(): AutoCaptureState {
56
+ return {
57
+ toolCallsSinceLastCapture: this.toolCallsSinceLastCapture,
58
+ lastCaptureTimestamp: this.lastCaptureTimestamp,
59
+ totalCapturesThisSession: this.totalCapturesThisSession,
60
+ };
61
+ }
62
+ }
@@ -0,0 +1,15 @@
1
+ import type { AutoCaptureConfig } from '../typings/auto-capture-config.interface.ts';
2
+
3
+ /**
4
+ * Default configuration for the auto-capture feature.
5
+ *
6
+ * Auto-capture is disabled by default. Enable it in
7
+ * `worker.toml` under `[auto_capture]`.
8
+ */
9
+ export const AUTO_CAPTURE_DEFAULTS: AutoCaptureConfig = {
10
+ enabled: false,
11
+ triggerAfterToolCalls: 5,
12
+ minIntervalMs: 60_000,
13
+ maxCapturesPerSession: 10,
14
+ dryRun: false,
15
+ };
@@ -0,0 +1,27 @@
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 function buildCapturePrompt(recentContext: string): string {
12
+ return (
13
+ 'Review the following conversation context and identify' +
14
+ ' factual knowledge worth storing in the knowledge base.\n\n' +
15
+ 'Rules:\n' +
16
+ '- Include durable facts, decisions, preferences, and' +
17
+ ' corrections that would be useful in future sessions.\n' +
18
+ '- Exclude ephemeral, task-specific, or temporary information' +
19
+ ' that has no lasting value.\n' +
20
+ '- Format each piece of extracted knowledge as a concise' +
21
+ ' statement suitable for direct storage.\n' +
22
+ '- If no durable knowledge is found, respond with an empty' +
23
+ ' list.\n\n' +
24
+ 'Conversation context:\n' +
25
+ recentContext
26
+ );
27
+ }
@@ -0,0 +1,50 @@
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
+ /**
6
+ * Evaluates whether auto-capture should fire given the current
7
+ * configuration and runtime state.
8
+ *
9
+ * Checks (in order): feature flag, session cap, rate limit,
10
+ * and tool-call count threshold. Returns the first failing
11
+ * condition as the reason.
12
+ */
13
+ export function evaluateTrigger(
14
+ config: AutoCaptureConfig,
15
+ state: AutoCaptureState,
16
+ ): AutoCaptureTrigger {
17
+ if (!config.enabled) {
18
+ return {
19
+ shouldCapture: false,
20
+ reason: 'auto-capture is disabled',
21
+ };
22
+ }
23
+
24
+ if (state.totalCapturesThisSession >= config.maxCapturesPerSession) {
25
+ return {
26
+ shouldCapture: false,
27
+ reason: 'session capture limit reached',
28
+ };
29
+ }
30
+
31
+ const elapsed = state.lastCaptureTimestamp
32
+ ? Date.now() - state.lastCaptureTimestamp
33
+ : Infinity;
34
+
35
+ if (elapsed < config.minIntervalMs) {
36
+ return {
37
+ shouldCapture: false,
38
+ reason: 'within minimum interval',
39
+ };
40
+ }
41
+
42
+ if (state.toolCallsSinceLastCapture < config.triggerAfterToolCalls) {
43
+ return {
44
+ shouldCapture: false,
45
+ reason: 'tool call threshold not yet reached',
46
+ };
47
+ }
48
+
49
+ return { shouldCapture: true, reason: 'trigger threshold met' };
50
+ }
@@ -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,73 @@
1
+ import { VERSION } from '../../version/index.ts';
2
+
3
+ /**
4
+ * Top-level help text displayed when no command is given or when
5
+ * `--help` is passed without a command name.
6
+ *
7
+ * Lists all available commands grouped by category and describes
8
+ * global options.
9
+ */
10
+ export const GLOBAL_HELP =
11
+ `kbdb v${VERSION} - File-based knowledge base` +
12
+ ` database for AI agents\n` +
13
+ `\n` +
14
+ `Usage: kbdb [options]\n` +
15
+ ` kbdb <command> [options] ...[parameters]\n` +
16
+ ` kbdb <command> <subcommand> [options]` +
17
+ ` ...[params]\n` +
18
+ `\n` +
19
+ `Knowledge Base:\n` +
20
+ ` learn Import content from` +
21
+ ` files/stdin\n` +
22
+ ` unlearn Remove sections by kbid\n` +
23
+ ` search Query the knowledge base\n` +
24
+ ` recall Retrieve section context` +
25
+ ` by kbid\n` +
26
+ ` content Compose rendered content` +
27
+ ` from ids\n` +
28
+ `\n` +
29
+ `Database:\n` +
30
+ ` db init Initialise a new .kbdb` +
31
+ ` directory\n` +
32
+ ` db migrate Migrate database to current` +
33
+ ` format\n` +
34
+ `\n` +
35
+ `Maintenance:\n` +
36
+ ` check Verify knowledge base` +
37
+ ` integrity\n` +
38
+ ` gc Garbage collect unreferenced\n` +
39
+ ` sections\n` +
40
+ ` rebuild Reconstruct all index` +
41
+ ` files\n` +
42
+ ` status Show database status\n` +
43
+ ` export Snapshot database for` +
44
+ ` backup\n` +
45
+ `\n` +
46
+ `Skills:\n` +
47
+ ` skill learn Create a new skill` +
48
+ ` definition\n` +
49
+ ` skill list List all skills\n` +
50
+ ` skill get Retrieve a skill by name` +
51
+ ` or kbid\n` +
52
+ ` skill delete Remove a skill\n` +
53
+ `\n` +
54
+ `Agents:\n` +
55
+ ` agent create Create an agent with skill` +
56
+ ` refs\n` +
57
+ ` agent list List all agents\n` +
58
+ ` agent get Retrieve an agent by docid\n` +
59
+ ` agent delete Remove an agent\n` +
60
+ `\n` +
61
+ `Server:\n` +
62
+ ` mcp Start MCP server mode` +
63
+ ` (stdio)\n` +
64
+ `\n` +
65
+ `Global Options:\n` +
66
+ ` -h, --help Show this help message\n` +
67
+ ` -v, --version Show version information\n` +
68
+ ` --db <path> Path to .kbdb directory\n` +
69
+ ` --format <fmt> Output format` +
70
+ ` (json|text|mcp)\n` +
71
+ `\n` +
72
+ `Run "kbdb <command> --help" for detailed` +
73
+ ` information.\n`;