@dikolab/kbdb 0.2.2 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (520) hide show
  1. package/README.md +47 -31
  2. package/dist/bench/constants/corpus-defaults.constant.d.ts +3 -0
  3. package/dist/bench/functions/format-report.function.d.ts +11 -0
  4. package/dist/bench/functions/generate-corpus.function.d.ts +12 -0
  5. package/dist/bench/functions/measure-operation.function.d.ts +14 -0
  6. package/dist/bench/functions/seeded-rng.function.d.ts +11 -0
  7. package/dist/bench/functions/zipf-word.function.d.ts +13 -0
  8. package/dist/bench/index.d.ts +10 -0
  9. package/dist/bench/typings/bench-result.interface.d.ts +11 -0
  10. package/dist/bench/typings/bench-suite-result.interface.d.ts +10 -0
  11. package/dist/bench/typings/corpus-config.interface.d.ts +11 -0
  12. package/dist/bench/typings/corpus-section.interface.d.ts +9 -0
  13. package/dist/cli.cjs +523 -80
  14. package/dist/cli.cjs.map +4 -4
  15. package/dist/cli.mjs +515 -72
  16. package/dist/cli.mjs.map +4 -4
  17. package/dist/kbdb-worker.cjs +395 -60
  18. package/dist/kbdb-worker.cjs.map +4 -4
  19. package/dist/mod.cjs +17 -0
  20. package/dist/mod.cjs.map +2 -2
  21. package/dist/mod.mjs +17 -0
  22. package/dist/mod.mjs.map +2 -2
  23. package/dist/src/shared/auto-capture/classes/auto-capture-controller.class.d.ts +33 -0
  24. package/dist/src/shared/auto-capture/constants/auto-capture-defaults.constant.d.ts +8 -0
  25. package/dist/src/shared/auto-capture/functions/build-capture-prompt.function.d.ts +11 -0
  26. package/dist/src/shared/auto-capture/functions/evaluate-trigger.function.d.ts +12 -0
  27. package/dist/src/shared/auto-capture/index.d.ts +7 -0
  28. package/dist/src/shared/auto-capture/typings/auto-capture-config.interface.d.ts +13 -0
  29. package/dist/src/shared/auto-capture/typings/auto-capture-state.interface.d.ts +13 -0
  30. package/dist/src/shared/auto-capture/typings/auto-capture-trigger.interface.d.ts +7 -0
  31. package/dist/src/shared/cli/constants/global-help.constant.d.ts +8 -0
  32. package/dist/src/shared/cli/constants/leaf-help.constant.d.ts +7 -0
  33. package/dist/src/shared/cli/constants/memory-protocol-body.constant.d.ts +7 -0
  34. package/dist/src/shared/cli/constants/query-guidance-body.constant.d.ts +7 -0
  35. package/dist/src/shared/cli/constants/subcommand-help.constant.d.ts +8 -0
  36. package/dist/src/shared/cli/functions/collect-files.function.d.ts +13 -0
  37. package/dist/src/shared/cli/functions/compute-section-kbid.function.d.ts +15 -0
  38. package/dist/src/shared/cli/functions/dispatch-command.function.d.ts +3 -1
  39. package/dist/src/shared/cli/functions/format-mcp-output.function.d.ts +9 -0
  40. package/dist/src/shared/cli/functions/format-text-output.function.d.ts +9 -0
  41. package/dist/src/shared/cli/functions/generate-group-help.function.d.ts +11 -0
  42. package/dist/src/shared/cli/functions/handle-data-command.function.d.ts +16 -0
  43. package/dist/src/shared/cli/functions/handle-mcp.function.d.ts +15 -0
  44. package/dist/src/shared/cli/functions/handle-migrate.function.d.ts +15 -0
  45. package/dist/src/shared/cli/functions/hydrate-search-previews.function.d.ts +14 -0
  46. package/dist/src/shared/cli/functions/install-default-skills.function.d.ts +12 -0
  47. package/dist/src/shared/cli/functions/resolve-skill-names.function.d.ts +16 -0
  48. package/dist/src/shared/cli/functions/run-check.function.d.ts +47 -5
  49. package/dist/src/shared/cli/functions/run-export.function.d.ts +34 -0
  50. package/dist/src/shared/cli/functions/run-gc.function.d.ts +6 -0
  51. package/dist/src/shared/cli/functions/run-learn.function.d.ts +35 -6
  52. package/dist/src/shared/cli/functions/run-recall.function.d.ts +45 -0
  53. package/dist/src/shared/cli/functions/run-search.function.d.ts +53 -15
  54. package/dist/src/shared/cli/functions/version-gate.function.d.ts +15 -0
  55. package/dist/src/shared/cli/functions/wrap-command.function.d.ts +15 -0
  56. package/dist/src/shared/cli/index.d.ts +4 -0
  57. package/dist/src/shared/cli/typings/agent-create-client.interface.d.ts +42 -0
  58. package/dist/src/shared/cli/typings/agent-get-client.interface.d.ts +36 -0
  59. package/dist/src/shared/cli/typings/check-client.interface.d.ts +58 -0
  60. package/dist/src/shared/cli/typings/cli-deps.interface.d.ts +48 -0
  61. package/dist/src/shared/cli/typings/cli-options.interface.d.ts +15 -0
  62. package/dist/src/shared/cli/typings/disconnectable-client.interface.d.ts +26 -0
  63. package/dist/src/shared/cli/typings/dispatch-client.type.d.ts +27 -0
  64. package/dist/src/shared/cli/typings/learn-client.interface.d.ts +52 -0
  65. package/dist/src/shared/cli/typings/learn-io.interface.d.ts +5 -0
  66. package/dist/src/shared/cli/typings/learn-result.model.d.ts +19 -0
  67. package/dist/src/shared/cli/typings/search-client.interface.d.ts +71 -0
  68. package/dist/src/shared/cli/typings/search-display.model.d.ts +18 -0
  69. package/dist/src/shared/embedding/classes/null-embedding-provider.class.d.ts +20 -0
  70. package/dist/src/shared/embedding/constants/near-duplicate-thresholds.constant.d.ts +15 -0
  71. package/dist/src/shared/embedding/functions/build-vector-index.function.d.ts +14 -0
  72. package/dist/src/shared/embedding/functions/cosine-similarity.function.d.ts +10 -0
  73. package/dist/src/shared/embedding/functions/detect-near-duplicates.function.d.ts +18 -0
  74. package/dist/src/shared/embedding/functions/jaccard-coefficient.function.d.ts +9 -0
  75. package/dist/src/shared/embedding/functions/read-vector-index-meta.function.d.ts +10 -0
  76. package/dist/src/shared/embedding/functions/rrf-fuse.function.d.ts +14 -0
  77. package/dist/src/shared/embedding/functions/search-vectors.function.d.ts +14 -0
  78. package/dist/src/shared/embedding/index.d.ts +16 -0
  79. package/dist/src/shared/embedding/typings/embedding-config.interface.d.ts +20 -0
  80. package/dist/src/shared/embedding/typings/embedding-provider.interface.d.ts +23 -0
  81. package/dist/src/shared/embedding/typings/near-duplicate-candidate.model.d.ts +23 -0
  82. package/dist/src/shared/embedding/typings/near-duplicate-result.model.d.ts +24 -0
  83. package/dist/src/shared/embedding/typings/vector-index-entry.model.d.ts +12 -0
  84. package/dist/src/shared/embedding/typings/vector-index-meta.model.d.ts +11 -0
  85. package/dist/src/shared/embedding/typings/vector-search-result.model.d.ts +7 -0
  86. package/dist/src/shared/mcp/classes/mcp-server.class.d.ts +8 -0
  87. package/dist/src/shared/mcp/constants/tool-agent-create.constant.d.ts +3 -0
  88. package/dist/src/shared/mcp/constants/tool-agent-delete.constant.d.ts +3 -0
  89. package/dist/src/shared/mcp/constants/tool-agent-get.constant.d.ts +3 -0
  90. package/dist/src/shared/mcp/constants/tool-agent-list.constant.d.ts +3 -0
  91. package/dist/src/shared/mcp/constants/tool-auto-capture-review.constant.d.ts +8 -0
  92. package/dist/src/shared/mcp/constants/tool-check.constant.d.ts +3 -0
  93. package/dist/src/shared/mcp/constants/tool-content.constant.d.ts +3 -0
  94. package/dist/src/shared/mcp/constants/tool-export.constant.d.ts +3 -0
  95. package/dist/src/shared/mcp/constants/tool-gc.constant.d.ts +3 -0
  96. package/dist/src/shared/mcp/constants/tool-learn.constant.d.ts +3 -0
  97. package/dist/src/shared/mcp/constants/tool-rebuild.constant.d.ts +3 -0
  98. package/dist/src/shared/mcp/constants/tool-recall.constant.d.ts +3 -0
  99. package/dist/src/shared/mcp/constants/tool-retrieve.constant.d.ts +3 -0
  100. package/dist/src/shared/mcp/constants/tool-search.constant.d.ts +3 -0
  101. package/dist/src/shared/mcp/constants/tool-skill-delete.constant.d.ts +3 -0
  102. package/dist/src/shared/mcp/constants/tool-skill-get.constant.d.ts +3 -0
  103. package/dist/src/shared/mcp/constants/tool-skill-learn.constant.d.ts +3 -0
  104. package/dist/src/shared/mcp/constants/tool-skill-list.constant.d.ts +3 -0
  105. package/dist/src/shared/mcp/constants/tool-status.constant.d.ts +3 -0
  106. package/dist/src/shared/mcp/constants/tool-unlearn.constant.d.ts +3 -0
  107. package/dist/src/shared/mcp/functions/as-boolean-or-undefined.function.d.ts +7 -0
  108. package/dist/src/shared/mcp/functions/as-string-array-or-undefined.function.d.ts +7 -0
  109. package/dist/src/shared/mcp/functions/as-string-array.function.d.ts +7 -0
  110. package/dist/src/shared/mcp/functions/as-string.function.d.ts +8 -0
  111. package/dist/src/shared/mcp/functions/build-skills-text.function.d.ts +18 -0
  112. package/dist/src/shared/mcp/functions/handle-agent-prompt.function.d.ts +14 -0
  113. package/dist/src/shared/mcp/functions/handle-mcp-request.function.d.ts +14 -0
  114. package/dist/src/shared/mcp/functions/handle-prompt-get.function.d.ts +4 -3
  115. package/dist/src/shared/mcp/functions/handle-skill-prompt.function.d.ts +16 -0
  116. package/dist/src/shared/mcp/functions/handle-tool-auto-capture-review.function.d.ts +12 -0
  117. package/dist/src/shared/mcp/functions/handle-tool-check.function.d.ts +11 -0
  118. package/dist/src/shared/mcp/functions/handle-tool-content.function.d.ts +12 -0
  119. package/dist/src/shared/mcp/functions/handle-tool-export.function.d.ts +12 -0
  120. package/dist/src/shared/mcp/functions/handle-tool-gc.function.d.ts +11 -0
  121. package/dist/src/shared/mcp/functions/handle-tool-learn.function.d.ts +12 -0
  122. package/dist/src/shared/mcp/functions/handle-tool-rebuild.function.d.ts +11 -0
  123. package/dist/src/shared/mcp/functions/handle-tool-retrieve.function.d.ts +12 -0
  124. package/dist/src/shared/mcp/functions/handle-tool-search.function.d.ts +13 -0
  125. package/dist/src/shared/mcp/functions/handle-tool-skill-delete.function.d.ts +12 -0
  126. package/dist/src/shared/mcp/functions/handle-tool-skill-get.function.d.ts +13 -0
  127. package/dist/src/shared/mcp/functions/handle-tool-skill-learn.function.d.ts +13 -0
  128. package/dist/src/shared/mcp/functions/handle-tool-skill-list.function.d.ts +11 -0
  129. package/dist/src/shared/mcp/functions/handle-tool-status.function.d.ts +11 -0
  130. package/dist/src/shared/mcp/functions/handle-tool-unlearn.function.d.ts +12 -0
  131. package/dist/src/shared/mcp/functions/parse-agent-meta.function.d.ts +14 -0
  132. package/dist/src/shared/mcp/functions/parse-skill-arguments.function.d.ts +11 -0
  133. package/dist/src/shared/mcp/functions/read-agent-meta.function.d.ts +17 -0
  134. package/dist/src/shared/mcp/functions/resolve-skill-refs.function.d.ts +23 -0
  135. package/dist/src/shared/mcp/functions/run-startup-health-check.function.d.ts +14 -0
  136. package/dist/src/shared/mcp/typings/mcp-capabilities.interface.d.ts +16 -0
  137. package/dist/src/shared/mcp/typings/mcp-client.interface.d.ts +45 -0
  138. package/dist/src/shared/mcp/typings/mcp-completion.interface.d.ts +43 -0
  139. package/dist/src/shared/mcp/typings/mcp-content-result.model.d.ts +9 -0
  140. package/dist/src/shared/mcp/typings/mcp-export-result.model.d.ts +11 -0
  141. package/dist/src/shared/mcp/typings/mcp-gc-result.model.d.ts +15 -0
  142. package/dist/src/shared/mcp/typings/mcp-integrity-check-result.model.d.ts +16 -0
  143. package/dist/src/shared/mcp/typings/mcp-integrity-error.model.d.ts +9 -0
  144. package/dist/src/shared/mcp/typings/mcp-notification.interface.d.ts +9 -0
  145. package/dist/src/shared/mcp/typings/mcp-rebuild-result.model.d.ts +9 -0
  146. package/dist/src/shared/mcp/typings/mcp-request.interface.d.ts +11 -0
  147. package/dist/src/shared/mcp/typings/mcp-resource-result.interface.d.ts +12 -0
  148. package/dist/src/shared/mcp/typings/mcp-resource-template.interface.d.ts +11 -0
  149. package/dist/src/shared/mcp/typings/mcp-response.interface.d.ts +18 -0
  150. package/dist/src/shared/mcp/typings/mcp-server-info.interface.d.ts +7 -0
  151. package/dist/src/shared/mcp/typings/mcp-server-state.interface.d.ts +16 -0
  152. package/dist/src/shared/mcp/typings/mcp-tool-annotations.interface.d.ts +32 -0
  153. package/dist/src/shared/mcp/typings/mcp-tool-definition.interface.d.ts +15 -0
  154. package/dist/src/shared/mcp/typings/mcp-tool-result.interface.d.ts +19 -0
  155. package/dist/src/shared/mcp/typings/mcp-worker-client.interface.d.ts +220 -0
  156. package/dist/src/shared/mcp/typings/tool-call-result.model.d.ts +17 -0
  157. package/dist/src/shared/sync/functions/build-import-report.function.d.ts +18 -0
  158. package/dist/src/shared/sync/functions/parse-export-entry.function.d.ts +11 -0
  159. package/dist/src/shared/sync/functions/resolve-conflict.function.d.ts +13 -0
  160. package/dist/src/shared/sync/functions/serialize-export-entry.function.d.ts +8 -0
  161. package/dist/src/shared/sync/index.d.ts +9 -0
  162. package/dist/src/shared/sync/typings/conflict-resolution.type.d.ts +8 -0
  163. package/dist/src/shared/sync/typings/export-entry.interface.d.ts +13 -0
  164. package/dist/src/shared/sync/typings/export-options.interface.d.ts +9 -0
  165. package/dist/src/shared/sync/typings/import-options.interface.d.ts +7 -0
  166. package/dist/src/shared/sync/typings/import-report.interface.d.ts +15 -0
  167. package/dist/src/shared/wasm-codec/functions/decode-add-section-result.function.d.ts +48 -0
  168. package/dist/src/shared/wasm-codec/functions/decode-one-recall-result.function.d.ts +14 -0
  169. package/dist/src/shared/wasm-codec/functions/decode-option-string.function.d.ts +12 -0
  170. package/dist/src/shared/wasm-codec/functions/decode-recall-document.function.d.ts +14 -0
  171. package/dist/src/shared/wasm-codec/functions/decode-recall-reference.function.d.ts +14 -0
  172. package/dist/src/shared/wasm-codec/functions/decode-recall-sibling.function.d.ts +13 -0
  173. package/dist/src/shared/wasm-codec/functions/decode-scored-results.function.d.ts +58 -0
  174. package/dist/src/shared/wasm-codec/functions/decode-section-match.function.d.ts +15 -0
  175. package/dist/src/shared/wasm-codec/functions/decode-section-record-trailing.function.d.ts +14 -0
  176. package/dist/src/shared/wasm-codec/functions/decode-section-record.function.d.ts +14 -0
  177. package/dist/src/shared/wasm-codec/functions/decode-section-records.function.d.ts +33 -0
  178. package/dist/src/shared/wasm-codec/functions/decode-section-type.function.d.ts +13 -0
  179. package/dist/src/shared/wasm-codec/functions/decode-wasm-list.function.d.ts +17 -0
  180. package/dist/src/shared/wasm-codec/functions/encode-add-section-params.function.d.ts +52 -0
  181. package/dist/src/shared/wasm-codec/index.d.ts +2 -0
  182. package/dist/src/shared/wasm-codec/typings/add-section-input.model.d.ts +45 -0
  183. package/dist/src/shared/wasm-codec/typings/add-section-result.model.d.ts +27 -0
  184. package/dist/src/shared/wasm-codec/typings/document-manifest.model.d.ts +19 -0
  185. package/dist/src/shared/wasm-codec/typings/document-section.model.d.ts +12 -0
  186. package/dist/src/shared/wasm-codec/typings/item-decoder.type.d.ts +6 -0
  187. package/dist/src/shared/wasm-codec/typings/near-duplicate.model.d.ts +16 -0
  188. package/dist/src/shared/wasm-codec/typings/paged-search-result.model.d.ts +21 -0
  189. package/dist/src/shared/wasm-codec/typings/section-match.model.d.ts +31 -0
  190. package/dist/src/shared/wasm-codec/typings/section-record-trailing.model.d.ts +38 -0
  191. package/dist/src/shared/wasm-codec/typings/section-record.model.d.ts +66 -0
  192. package/dist/src/shared/wasm-codec/typings/section-type-result.model.d.ts +12 -0
  193. package/dist/src/shared/worker-client/classes/worker-client.class.d.ts +16 -0
  194. package/dist/src/shared/worker-client/functions/handle-ipc-data.function.d.ts +16 -0
  195. package/dist/src/shared/worker-client/functions/send-ipc-request.function.d.ts +19 -0
  196. package/dist/src/shared/worker-client/index.d.ts +1 -1
  197. package/dist/src/shared/worker-client/typings/add-section-result.model.d.ts +31 -15
  198. package/dist/src/shared/worker-client/typings/export-result.model.d.ts +14 -0
  199. package/dist/src/shared/worker-client/typings/gc-result.model.d.ts +6 -0
  200. package/dist/src/shared/worker-client/typings/json-rpc-response.interface.d.ts +16 -0
  201. package/dist/src/shared/worker-client/typings/pending-call.interface.d.ts +7 -0
  202. package/dist/src/shared/worker-client/typings/recall-document.model.d.ts +16 -0
  203. package/dist/src/shared/worker-client/typings/recall-params.model.d.ts +15 -0
  204. package/dist/src/shared/worker-client/typings/recall-reference.model.d.ts +32 -0
  205. package/dist/src/shared/worker-client/typings/recall-sibling.model.d.ts +11 -0
  206. package/dist/src/shared/worker-client/typings/recall-single-result.model.d.ts +40 -0
  207. package/dist/src/shared/worker-client/typings/search-result.model.d.ts +12 -0
  208. package/dist/src/shared/worker-client/typings/section.model.d.ts +16 -0
  209. package/dist/src/shared/worker-daemon/classes/ipc-error.class.d.ts +17 -0
  210. package/dist/src/shared/worker-daemon/classes/worker-daemon.class.d.ts +35 -0
  211. package/dist/src/shared/worker-daemon/constants/wasm-method-map.constant.d.ts +16 -0
  212. package/dist/src/shared/worker-daemon/functions/build-ipc-error-response.function.d.ts +9 -0
  213. package/dist/src/shared/worker-daemon/functions/check-catalog-version.function.d.ts +9 -0
  214. package/dist/src/shared/worker-daemon/functions/check-preconditions.function.d.ts +10 -0
  215. package/dist/src/shared/worker-daemon/functions/detect-stale-pid.function.d.ts +15 -0
  216. package/dist/src/shared/worker-daemon/functions/dispatch-request.function.d.ts +35 -0
  217. package/dist/src/shared/worker-daemon/functions/handle-check-version.function.d.ts +23 -0
  218. package/dist/src/shared/worker-daemon/functions/handle-config-method.function.d.ts +11 -0
  219. package/dist/src/shared/worker-daemon/functions/handle-read-ops.function.d.ts +52 -0
  220. package/dist/src/shared/worker-daemon/functions/handle-write-ops.function.d.ts +44 -0
  221. package/dist/src/shared/worker-daemon/functions/parse-auto-capture-section.function.d.ts +14 -0
  222. package/dist/src/shared/worker-daemon/functions/parse-catalog-version.function.d.ts +10 -0
  223. package/dist/src/shared/worker-daemon/functions/parse-embedding-section.function.d.ts +13 -0
  224. package/dist/src/shared/worker-daemon/functions/parse-worker-toml.function.d.ts +11 -0
  225. package/dist/src/shared/worker-daemon/functions/run-startup-integrity-check.function.d.ts +18 -0
  226. package/dist/src/shared/worker-daemon/functions/scan-near-duplicates.function.d.ts +21 -0
  227. package/dist/src/shared/worker-daemon/functions/wasm-bridge.function.d.ts +51 -0
  228. package/dist/src/shared/worker-daemon/functions/wasm-memory-helpers.function.d.ts +22 -0
  229. package/dist/src/shared/worker-daemon/functions/write-lock.function.d.ts +32 -0
  230. package/dist/src/shared/worker-daemon/typings/allocator-ref.interface.d.ts +16 -0
  231. package/dist/src/shared/worker-daemon/typings/daemon-config.interface.d.ts +6 -0
  232. package/dist/src/shared/worker-daemon/typings/fs-adapter.interface.d.ts +22 -0
  233. package/dist/src/shared/worker-daemon/typings/handler-context.interface.d.ts +18 -0
  234. package/dist/src/shared/worker-daemon/typings/memory-ref.interface.d.ts +13 -0
  235. package/dist/src/shared/worker-daemon/typings/wasm-fn.type.d.ts +2 -0
  236. package/dist/src/shared/worker-daemon/typings/write-lock.interface.d.ts +15 -0
  237. package/dist/wasm/fs-database/kbdb_fs_database.d.ts +22 -1
  238. package/dist/wasm/fs-database/kbdb_fs_database.js +28 -1
  239. package/dist/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
  240. package/dist/wasm/fs-database/kbdb_fs_database_bg.wasm.d.ts +1 -0
  241. package/dist/wasm/kb-worker/kbdb_worker.d.ts +48 -1
  242. package/dist/wasm/kb-worker/kbdb_worker.js +60 -1
  243. package/dist/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
  244. package/dist/wasm/kb-worker/kbdb_worker_bg.wasm.d.ts +2 -0
  245. package/dist/wasm/query-parser/kbdb_query_parser_bg.wasm +0 -0
  246. package/dist/worker.mjs +396 -60
  247. package/dist/worker.mjs.map +4 -4
  248. package/docs/details/cli.md +102 -15
  249. package/docs/details/library-api.md +55 -6
  250. package/docs/details/mcp-server.md +10 -4
  251. package/docs/details/search-and-ranking.md +63 -5
  252. package/docs/details/storage.md +2 -0
  253. package/docs/goals/auto-capture.md +378 -0
  254. package/docs/goals/benchmarking.md +296 -0
  255. package/docs/goals/cli.md +255 -14
  256. package/docs/goals/concurrency.md +259 -0
  257. package/docs/goals/database.md +244 -17
  258. package/docs/goals/document.md +1 -1
  259. package/docs/goals/hybrid-search.md +436 -0
  260. package/docs/goals/mcp.md +83 -14
  261. package/docs/goals/query-parser.md +98 -4
  262. package/docs/goals/query-result.md +177 -10
  263. package/docs/goals/semantic-dedup.md +229 -0
  264. package/docs/goals/skills.md +72 -0
  265. package/docs/goals/sync.md +217 -0
  266. package/docs/goals/worker-daemon.md +54 -7
  267. package/docs/modules/rust/fs-database/functions/integrity.md +11 -0
  268. package/docs/modules/rust/fs-database/functions/section.md +23 -6
  269. package/docs/modules/rust/fs-database/indexes/vectors.md +110 -0
  270. package/docs/modules/rust/fs-database/module.md +1 -0
  271. package/docs/modules/rust/fs-database/types/section.md +27 -1
  272. package/docs/modules/rust/overview.md +2 -1
  273. package/docs/modules/rust/query-parser/functions/module.md +2 -2
  274. package/docs/modules/rust/query-parser/functions/pipeline.md +44 -6
  275. package/docs/modules/rust/query-parser/module.md +5 -4
  276. package/docs/modules/rust/query-parser/types/keyphrase.md +11 -0
  277. package/docs/modules/rust/query-parser/types/module.md +3 -3
  278. package/docs/modules/typescript/shared/auto-capture/module.md +73 -0
  279. package/docs/modules/typescript/shared/cli/functions.md +68 -3
  280. package/docs/modules/typescript/shared/embedding/functions.md +94 -0
  281. package/docs/modules/typescript/shared/embedding/module.md +71 -0
  282. package/docs/modules/typescript/shared/embedding/typings.md +122 -0
  283. package/docs/overview.md +148 -166
  284. package/docs/release-notes/0.2.0.md +3 -3
  285. package/docs/release-notes/0.3.0.md +89 -0
  286. package/docs/release-notes/0.3.1.md +111 -0
  287. package/docs/release-notes/README.md +2 -0
  288. package/package.json +1 -1
  289. package/src/shared/auto-capture/classes/auto-capture-controller.class.ts +62 -0
  290. package/src/shared/auto-capture/constants/auto-capture-defaults.constant.ts +15 -0
  291. package/src/shared/auto-capture/functions/build-capture-prompt.function.ts +27 -0
  292. package/src/shared/auto-capture/functions/evaluate-trigger.function.ts +50 -0
  293. package/src/shared/auto-capture/index.ts +7 -0
  294. package/src/shared/auto-capture/typings/auto-capture-config.interface.ts +13 -0
  295. package/src/shared/auto-capture/typings/auto-capture-state.interface.ts +13 -0
  296. package/src/shared/auto-capture/typings/auto-capture-trigger.interface.ts +7 -0
  297. package/src/shared/cli/constants/global-help.constant.ts +73 -0
  298. package/src/shared/cli/constants/leaf-help.constant.ts +219 -0
  299. package/src/shared/cli/constants/memory-protocol-body.constant.ts +39 -0
  300. package/src/shared/cli/constants/query-guidance-body.constant.ts +37 -0
  301. package/src/shared/cli/constants/subcommand-help.constant.ts +195 -0
  302. package/src/shared/cli/functions/collect-files.function.ts +55 -0
  303. package/src/shared/cli/functions/compute-section-kbid.function.ts +49 -0
  304. package/src/shared/cli/functions/dispatch-command.function.ts +53 -1
  305. package/src/shared/cli/functions/format-mcp-output.function.ts +41 -0
  306. package/src/shared/cli/functions/format-output.function.ts +36 -12
  307. package/src/shared/cli/functions/format-text-output.function.ts +42 -0
  308. package/src/shared/cli/functions/generate-group-help.function.ts +41 -0
  309. package/src/shared/cli/functions/generate-help.function.ts +56 -1
  310. package/src/shared/cli/functions/handle-data-command.function.ts +67 -0
  311. package/src/shared/cli/functions/handle-mcp.function.ts +56 -0
  312. package/src/shared/cli/functions/handle-migrate.function.ts +64 -0
  313. package/src/shared/cli/functions/hydrate-search-previews.function.ts +29 -0
  314. package/src/shared/cli/functions/install-default-skills.function.ts +296 -0
  315. package/src/shared/cli/functions/parse-args.function.ts +16 -0
  316. package/src/shared/cli/functions/resolve-skill-names.function.ts +43 -0
  317. package/src/shared/cli/functions/run-check.function.ts +87 -6
  318. package/src/shared/cli/functions/run-export.function.ts +40 -0
  319. package/src/shared/cli/functions/run-gc.function.ts +6 -0
  320. package/src/shared/cli/functions/run-init.function.ts +2 -0
  321. package/src/shared/cli/functions/run-learn.function.ts +68 -16
  322. package/src/shared/cli/functions/run-recall.function.ts +66 -0
  323. package/src/shared/cli/functions/run-search.function.ts +60 -15
  324. package/src/shared/cli/functions/version-gate.function.ts +44 -0
  325. package/src/shared/cli/functions/wrap-command.function.ts +34 -0
  326. package/src/shared/cli/index.ts +4 -0
  327. package/src/shared/cli/typings/agent-create-client.interface.ts +47 -0
  328. package/src/shared/cli/typings/agent-get-client.interface.ts +39 -0
  329. package/src/shared/cli/typings/check-client.interface.ts +66 -0
  330. package/src/shared/cli/typings/cli-deps.interface.ts +54 -0
  331. package/src/shared/cli/typings/cli-options.interface.ts +15 -0
  332. package/src/shared/cli/typings/disconnectable-client.interface.ts +29 -0
  333. package/src/shared/cli/typings/dispatch-client.type.ts +46 -0
  334. package/src/shared/cli/typings/learn-client.interface.ts +53 -0
  335. package/src/shared/cli/typings/learn-io.interface.ts +5 -0
  336. package/src/shared/cli/typings/learn-result.model.ts +16 -0
  337. package/src/shared/cli/typings/search-client.interface.ts +73 -0
  338. package/src/shared/cli/typings/search-display.model.ts +18 -0
  339. package/src/shared/embedding/classes/null-embedding-provider.class.ts +29 -0
  340. package/src/shared/embedding/constants/near-duplicate-thresholds.constant.ts +17 -0
  341. package/src/shared/embedding/functions/build-vector-index.function.ts +79 -0
  342. package/src/shared/embedding/functions/cosine-similarity.function.ts +31 -0
  343. package/src/shared/embedding/functions/detect-near-duplicates.function.ts +69 -0
  344. package/src/shared/embedding/functions/jaccard-coefficient.function.ts +26 -0
  345. package/src/shared/embedding/functions/read-vector-index-meta.function.ts +44 -0
  346. package/src/shared/embedding/functions/rrf-fuse.function.ts +33 -0
  347. package/src/shared/embedding/functions/search-vectors.function.ts +59 -0
  348. package/src/shared/embedding/index.ts +20 -0
  349. package/src/shared/embedding/typings/embedding-config.interface.ts +23 -0
  350. package/src/shared/embedding/typings/embedding-provider.interface.ts +25 -0
  351. package/src/shared/embedding/typings/near-duplicate-candidate.model.ts +25 -0
  352. package/src/shared/embedding/typings/near-duplicate-result.model.ts +26 -0
  353. package/src/shared/embedding/typings/vector-index-entry.model.ts +13 -0
  354. package/src/shared/embedding/typings/vector-index-meta.model.ts +14 -0
  355. package/src/shared/embedding/typings/vector-search-result.model.ts +8 -0
  356. package/src/shared/mcp/classes/mcp-server.class.ts +36 -4
  357. package/src/shared/mcp/constants/tool-agent-create.constant.ts +39 -0
  358. package/src/shared/mcp/constants/tool-agent-delete.constant.ts +26 -0
  359. package/src/shared/mcp/constants/tool-agent-get.constant.ts +24 -0
  360. package/src/shared/mcp/constants/tool-agent-list.constant.ts +18 -0
  361. package/src/shared/mcp/constants/tool-auto-capture-review.constant.ts +32 -0
  362. package/src/shared/mcp/constants/tool-check.constant.ts +21 -0
  363. package/src/shared/mcp/constants/tool-content.constant.ts +29 -0
  364. package/src/shared/mcp/constants/tool-export.constant.ts +27 -0
  365. package/src/shared/mcp/constants/tool-gc.constant.ts +21 -0
  366. package/src/shared/mcp/constants/tool-learn.constant.ts +58 -0
  367. package/src/shared/mcp/constants/tool-rebuild.constant.ts +21 -0
  368. package/src/shared/mcp/constants/tool-recall.constant.ts +36 -0
  369. package/src/shared/mcp/constants/tool-retrieve.constant.ts +31 -0
  370. package/src/shared/mcp/constants/tool-search.constant.ts +51 -0
  371. package/src/shared/mcp/constants/tool-skill-delete.constant.ts +24 -0
  372. package/src/shared/mcp/constants/tool-skill-get.constant.ts +27 -0
  373. package/src/shared/mcp/constants/tool-skill-learn.constant.ts +37 -0
  374. package/src/shared/mcp/constants/tool-skill-list.constant.ts +18 -0
  375. package/src/shared/mcp/constants/tool-status.constant.ts +20 -0
  376. package/src/shared/mcp/constants/tool-unlearn.constant.ts +25 -0
  377. package/src/shared/mcp/functions/as-boolean-or-undefined.function.ts +11 -0
  378. package/src/shared/mcp/functions/as-string-array-or-undefined.function.ts +17 -0
  379. package/src/shared/mcp/functions/as-string-array.function.ts +15 -0
  380. package/src/shared/mcp/functions/as-string.function.ts +10 -0
  381. package/src/shared/mcp/functions/build-skills-text.function.ts +43 -0
  382. package/src/shared/mcp/functions/create-tool-definitions.function.ts +74 -5
  383. package/src/shared/mcp/functions/handle-agent-create.function.ts +1 -1
  384. package/src/shared/mcp/functions/handle-agent-prompt.function.ts +68 -0
  385. package/src/shared/mcp/functions/handle-mcp-request.function.ts +202 -0
  386. package/src/shared/mcp/functions/handle-prompt-get.function.ts +18 -12
  387. package/src/shared/mcp/functions/handle-skill-prompt.function.ts +44 -0
  388. package/src/shared/mcp/functions/handle-tool-auto-capture-review.function.ts +24 -0
  389. package/src/shared/mcp/functions/handle-tool-call.function.ts +88 -2
  390. package/src/shared/mcp/functions/handle-tool-check.function.ts +21 -0
  391. package/src/shared/mcp/functions/handle-tool-content.function.ts +23 -0
  392. package/src/shared/mcp/functions/handle-tool-export.function.ts +25 -0
  393. package/src/shared/mcp/functions/handle-tool-gc.function.ts +21 -0
  394. package/src/shared/mcp/functions/handle-tool-learn.function.ts +69 -0
  395. package/src/shared/mcp/functions/handle-tool-rebuild.function.ts +21 -0
  396. package/src/shared/mcp/functions/handle-tool-retrieve.function.ts +40 -0
  397. package/src/shared/mcp/functions/handle-tool-search.function.ts +47 -0
  398. package/src/shared/mcp/functions/handle-tool-skill-delete.function.ts +34 -0
  399. package/src/shared/mcp/functions/handle-tool-skill-get.function.ts +59 -0
  400. package/src/shared/mcp/functions/handle-tool-skill-learn.function.ts +61 -0
  401. package/src/shared/mcp/functions/handle-tool-skill-list.function.ts +39 -0
  402. package/src/shared/mcp/functions/handle-tool-status.function.ts +21 -0
  403. package/src/shared/mcp/functions/handle-tool-unlearn.function.ts +24 -0
  404. package/src/shared/mcp/functions/parse-agent-meta.function.ts +27 -0
  405. package/src/shared/mcp/functions/parse-skill-arguments.function.ts +36 -0
  406. package/src/shared/mcp/functions/read-agent-meta.function.ts +41 -0
  407. package/src/shared/mcp/functions/resolve-skill-refs.function.ts +50 -0
  408. package/src/shared/mcp/functions/run-startup-health-check.function.ts +34 -0
  409. package/src/shared/mcp/typings/mcp-capabilities.interface.ts +16 -0
  410. package/src/shared/mcp/typings/mcp-client.interface.ts +47 -0
  411. package/src/shared/mcp/typings/mcp-completion.interface.ts +45 -0
  412. package/src/shared/mcp/typings/mcp-content-result.model.ts +9 -0
  413. package/src/shared/mcp/typings/mcp-export-result.model.ts +11 -0
  414. package/src/shared/mcp/typings/mcp-gc-result.model.ts +15 -0
  415. package/src/shared/mcp/typings/mcp-integrity-check-result.model.ts +17 -0
  416. package/src/shared/mcp/typings/mcp-integrity-error.model.ts +15 -0
  417. package/src/shared/mcp/typings/mcp-notification.interface.ts +9 -0
  418. package/src/shared/mcp/typings/mcp-rebuild-result.model.ts +9 -0
  419. package/src/shared/mcp/typings/mcp-request.interface.ts +11 -0
  420. package/src/shared/mcp/typings/mcp-resource-result.interface.ts +12 -0
  421. package/src/shared/mcp/typings/mcp-resource-template.interface.ts +11 -0
  422. package/src/shared/mcp/typings/mcp-response.interface.ts +18 -0
  423. package/src/shared/mcp/typings/mcp-server-info.interface.ts +7 -0
  424. package/src/shared/mcp/typings/mcp-server-state.interface.ts +17 -0
  425. package/src/shared/mcp/typings/mcp-tool-annotations.interface.ts +32 -0
  426. package/src/shared/mcp/typings/mcp-tool-definition.interface.ts +16 -0
  427. package/src/shared/mcp/typings/mcp-tool-result.interface.ts +19 -0
  428. package/src/shared/mcp/typings/mcp-worker-client.interface.ts +243 -0
  429. package/src/shared/mcp/typings/tool-call-result.model.ts +18 -0
  430. package/src/shared/sync/functions/build-import-report.function.ts +40 -0
  431. package/src/shared/sync/functions/parse-export-entry.function.ts +45 -0
  432. package/src/shared/sync/functions/resolve-conflict.function.ts +31 -0
  433. package/src/shared/sync/functions/serialize-export-entry.function.ts +18 -0
  434. package/src/shared/sync/index.ts +9 -0
  435. package/src/shared/sync/typings/conflict-resolution.type.ts +8 -0
  436. package/src/shared/sync/typings/export-entry.interface.ts +13 -0
  437. package/src/shared/sync/typings/export-options.interface.ts +9 -0
  438. package/src/shared/sync/typings/import-options.interface.ts +7 -0
  439. package/src/shared/sync/typings/import-report.interface.ts +15 -0
  440. package/src/shared/wasm-codec/functions/decode-add-section-result.function.ts +112 -0
  441. package/src/shared/wasm-codec/functions/decode-one-recall-result.function.ts +86 -0
  442. package/src/shared/wasm-codec/functions/decode-option-string.function.ts +24 -0
  443. package/src/shared/wasm-codec/functions/decode-recall-document.function.ts +59 -0
  444. package/src/shared/wasm-codec/functions/decode-recall-reference.function.ts +52 -0
  445. package/src/shared/wasm-codec/functions/decode-recall-sibling.function.ts +43 -0
  446. package/src/shared/wasm-codec/functions/decode-scored-results.function.ts +86 -0
  447. package/src/shared/wasm-codec/functions/decode-section-match.function.ts +80 -0
  448. package/src/shared/wasm-codec/functions/decode-section-record-trailing.function.ts +75 -0
  449. package/src/shared/wasm-codec/functions/decode-section-record.function.ts +85 -0
  450. package/src/shared/wasm-codec/functions/decode-section-records.function.ts +87 -0
  451. package/src/shared/wasm-codec/functions/decode-section-type.function.ts +30 -0
  452. package/src/shared/wasm-codec/functions/decode-wasm-list.function.ts +31 -0
  453. package/src/shared/wasm-codec/functions/encode-add-section-params.function.ts +68 -0
  454. package/src/shared/wasm-codec/index.ts +5 -0
  455. package/src/shared/wasm-codec/typings/add-section-input.model.ts +45 -0
  456. package/src/shared/wasm-codec/typings/add-section-result.model.ts +28 -0
  457. package/src/shared/wasm-codec/typings/document-manifest.model.ts +20 -0
  458. package/src/shared/wasm-codec/typings/document-section.model.ts +12 -0
  459. package/src/shared/wasm-codec/typings/item-decoder.type.ts +10 -0
  460. package/src/shared/wasm-codec/typings/near-duplicate.model.ts +16 -0
  461. package/src/shared/wasm-codec/typings/paged-search-result.model.ts +22 -0
  462. package/src/shared/wasm-codec/typings/section-match.model.ts +31 -0
  463. package/src/shared/wasm-codec/typings/section-record-trailing.model.ts +38 -0
  464. package/src/shared/wasm-codec/typings/section-record.model.ts +66 -0
  465. package/src/shared/wasm-codec/typings/section-type-result.model.ts +12 -0
  466. package/src/shared/worker-client/classes/worker-client.class.ts +19 -0
  467. package/src/shared/worker-client/functions/handle-ipc-data.function.ts +49 -0
  468. package/src/shared/worker-client/functions/send-ipc-request.function.ts +39 -0
  469. package/src/shared/worker-client/index.ts +4 -1
  470. package/src/shared/worker-client/typings/add-section-result.model.ts +32 -15
  471. package/src/shared/worker-client/typings/export-result.model.ts +14 -0
  472. package/src/shared/worker-client/typings/gc-result.model.ts +6 -0
  473. package/src/shared/worker-client/typings/json-rpc-response.interface.ts +17 -0
  474. package/src/shared/worker-client/typings/pending-call.interface.ts +7 -0
  475. package/src/shared/worker-client/typings/recall-document.model.ts +16 -0
  476. package/src/shared/worker-client/typings/recall-params.model.ts +15 -0
  477. package/src/shared/worker-client/typings/recall-reference.model.ts +32 -0
  478. package/src/shared/worker-client/typings/recall-sibling.model.ts +11 -0
  479. package/src/shared/worker-client/typings/recall-single-result.model.ts +41 -0
  480. package/src/shared/worker-client/typings/search-result.model.ts +12 -0
  481. package/src/shared/worker-client/typings/section.model.ts +16 -0
  482. package/src/shared/worker-daemon/classes/ipc-error.class.ts +22 -0
  483. package/src/shared/worker-daemon/classes/worker-daemon.class.ts +315 -46
  484. package/src/shared/worker-daemon/constants/wasm-method-map.constant.ts +69 -0
  485. package/src/shared/worker-daemon/functions/build-ipc-error-response.function.ts +16 -0
  486. package/src/shared/worker-daemon/functions/check-catalog-version.function.ts +54 -0
  487. package/src/shared/worker-daemon/functions/check-preconditions.function.ts +28 -0
  488. package/src/shared/worker-daemon/functions/create-host-imports.function.ts +19 -4
  489. package/src/shared/worker-daemon/functions/create-ipc-server.function.ts +5 -1
  490. package/src/shared/worker-daemon/functions/detect-stale-pid.function.ts +33 -0
  491. package/src/shared/worker-daemon/functions/dispatch-request.function.ts +190 -0
  492. package/src/shared/worker-daemon/functions/handle-check-version.function.ts +74 -0
  493. package/src/shared/worker-daemon/functions/handle-config-method.function.ts +27 -0
  494. package/src/shared/worker-daemon/functions/handle-read-ops.function.ts +236 -0
  495. package/src/shared/worker-daemon/functions/handle-write-ops.function.ts +257 -0
  496. package/src/shared/worker-daemon/functions/parse-auto-capture-section.function.ts +51 -0
  497. package/src/shared/worker-daemon/functions/parse-catalog-version.function.ts +20 -0
  498. package/src/shared/worker-daemon/functions/parse-embedding-section.function.ts +38 -0
  499. package/src/shared/worker-daemon/functions/parse-worker-toml.function.ts +104 -0
  500. package/src/shared/worker-daemon/functions/run-startup-integrity-check.function.ts +55 -0
  501. package/src/shared/worker-daemon/functions/scan-near-duplicates.function.ts +92 -0
  502. package/src/shared/worker-daemon/functions/wasm-bridge.function.ts +144 -0
  503. package/src/shared/worker-daemon/functions/wasm-memory-helpers.function.ts +41 -0
  504. package/src/shared/worker-daemon/functions/write-lock.function.ts +49 -0
  505. package/src/shared/worker-daemon/typings/allocator-ref.interface.ts +16 -0
  506. package/src/shared/worker-daemon/typings/daemon-config.interface.ts +7 -0
  507. package/src/shared/worker-daemon/typings/fs-adapter.interface.ts +22 -0
  508. package/src/shared/worker-daemon/typings/handler-context.interface.ts +19 -0
  509. package/src/shared/worker-daemon/typings/memory-ref.interface.ts +13 -0
  510. package/src/shared/worker-daemon/typings/wasm-fn.type.ts +2 -0
  511. package/src/shared/worker-daemon/typings/write-lock.interface.ts +13 -0
  512. package/src/wasm/fs-database/kbdb_fs_database.d.ts +22 -1
  513. package/src/wasm/fs-database/kbdb_fs_database.js +28 -1
  514. package/src/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
  515. package/src/wasm/fs-database/kbdb_fs_database_bg.wasm.d.ts +1 -0
  516. package/src/wasm/kb-worker/kbdb_worker.d.ts +48 -1
  517. package/src/wasm/kb-worker/kbdb_worker.js +60 -1
  518. package/src/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
  519. package/src/wasm/kb-worker/kbdb_worker_bg.wasm.d.ts +2 -0
  520. package/src/wasm/query-parser/kbdb_query_parser_bg.wasm +0 -0
@@ -0,0 +1,27 @@
1
+ import type { McpToolDefinition } from '../typings/mcp-types.interface.ts';
2
+
3
+ /** MCP tool definition for the `skill-get` operation. */
4
+ export const TOOL_SKILL_GET: McpToolDefinition = {
5
+ name: 'skill-get',
6
+ description: 'Get a skill definition by name or kbid.',
7
+ inputSchema: {
8
+ type: 'object',
9
+ properties: {
10
+ name: {
11
+ type: 'string',
12
+ description: 'Skill name',
13
+ },
14
+ kbid: {
15
+ type: 'string',
16
+ description: 'Knowledge base ID',
17
+ },
18
+ },
19
+ },
20
+ annotations: {
21
+ title: 'Get Skill',
22
+ readOnlyHint: true,
23
+ destructiveHint: false,
24
+ idempotentHint: true,
25
+ openWorldHint: false,
26
+ },
27
+ };
@@ -0,0 +1,37 @@
1
+ import type { McpToolDefinition } from '../typings/mcp-types.interface.ts';
2
+
3
+ /** MCP tool definition for the `skill-learn` operation. */
4
+ export const TOOL_SKILL_LEARN: McpToolDefinition = {
5
+ name: 'skill-learn',
6
+ description:
7
+ 'Create or update a skill definition.' +
8
+ ' Skills are reusable AI agent capabilities' +
9
+ ' with template placeholders.',
10
+ inputSchema: {
11
+ type: 'object',
12
+ properties: {
13
+ name: {
14
+ type: 'string',
15
+ description: 'Skill name',
16
+ },
17
+ description: {
18
+ type: 'string',
19
+ description: 'Skill description',
20
+ },
21
+ body: {
22
+ type: 'string',
23
+ description:
24
+ 'Skill body template.' +
25
+ ' Use {{argName}} for placeholders.',
26
+ },
27
+ },
28
+ required: ['name', 'body'],
29
+ },
30
+ annotations: {
31
+ title: 'Create Skill',
32
+ readOnlyHint: false,
33
+ destructiveHint: false,
34
+ idempotentHint: true,
35
+ openWorldHint: false,
36
+ },
37
+ };
@@ -0,0 +1,18 @@
1
+ import type { McpToolDefinition } from '../typings/mcp-types.interface.ts';
2
+
3
+ /** MCP tool definition for the `skill-list` operation. */
4
+ export const TOOL_SKILL_LIST: McpToolDefinition = {
5
+ name: 'skill-list',
6
+ description: 'List all skills in the knowledge base.',
7
+ inputSchema: {
8
+ type: 'object',
9
+ properties: {},
10
+ },
11
+ annotations: {
12
+ title: 'List Skills',
13
+ readOnlyHint: true,
14
+ destructiveHint: false,
15
+ idempotentHint: true,
16
+ openWorldHint: false,
17
+ },
18
+ };
@@ -0,0 +1,20 @@
1
+ import type { McpToolDefinition } from '../typings/mcp-types.interface.ts';
2
+
3
+ /** MCP tool definition for the `status` operation. */
4
+ export const TOOL_STATUS: McpToolDefinition = {
5
+ name: 'status',
6
+ description:
7
+ 'Get database metadata including document count,' +
8
+ ' section count, index size, and cache statistics.',
9
+ inputSchema: {
10
+ type: 'object',
11
+ properties: {},
12
+ },
13
+ annotations: {
14
+ title: 'DB Status',
15
+ readOnlyHint: true,
16
+ destructiveHint: false,
17
+ idempotentHint: true,
18
+ openWorldHint: false,
19
+ },
20
+ };
@@ -0,0 +1,25 @@
1
+ import type { McpToolDefinition } from '../typings/mcp-types.interface.ts';
2
+
3
+ /** MCP tool definition for the `unlearn` operation. */
4
+ export const TOOL_UNLEARN: McpToolDefinition = {
5
+ name: 'unlearn',
6
+ description:
7
+ 'Remove a section from the knowledge base' + ' by its kb-id.',
8
+ inputSchema: {
9
+ type: 'object',
10
+ properties: {
11
+ kbid: {
12
+ type: 'string',
13
+ description: 'Knowledge base ID of the section',
14
+ },
15
+ },
16
+ required: ['kbid'],
17
+ },
18
+ annotations: {
19
+ title: 'Remove Section',
20
+ readOnlyHint: false,
21
+ destructiveHint: true,
22
+ idempotentHint: true,
23
+ openWorldHint: false,
24
+ },
25
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Narrows an `unknown` value to a boolean, returning `undefined`
3
+ * when the value is not a boolean.
4
+ *
5
+ * @param value - the value to narrow
6
+ */
7
+ export function asBooleanOrUndefined(
8
+ value: unknown,
9
+ ): boolean | undefined {
10
+ return typeof value === 'boolean' ? value : undefined;
11
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Narrows an `unknown` value to a `string[]`, returning `undefined`
3
+ * when the value is not an array of strings.
4
+ *
5
+ * @param value - the value to narrow
6
+ */
7
+ export function asStringArrayOrUndefined(
8
+ value: unknown,
9
+ ): string[] | undefined {
10
+ if (
11
+ Array.isArray(value) &&
12
+ value.every((item) => typeof item === 'string')
13
+ ) {
14
+ return value;
15
+ }
16
+ return undefined;
17
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Narrows an `unknown` value to a `string[]`, returning an empty
3
+ * array when the value is not an array of strings.
4
+ *
5
+ * @param value - the value to narrow
6
+ */
7
+ export function asStringArray(value: unknown): string[] {
8
+ if (
9
+ Array.isArray(value) &&
10
+ value.every((item) => typeof item === 'string')
11
+ ) {
12
+ return value;
13
+ }
14
+ return [];
15
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Narrows an `unknown` value to a string, returning the fallback
3
+ * when the value is not already a string.
4
+ *
5
+ * @param value - the value to narrow
6
+ * @param fallback - returned when `value` is not a string
7
+ */
8
+ export function asString(value: unknown, fallback: string): string {
9
+ return typeof value === 'string' ? value : fallback;
10
+ }
@@ -0,0 +1,43 @@
1
+ /** Minimal section shape for building the skills listing text. */
2
+ export interface SkillSection {
3
+ /** Knowledge-base identifier of the section. */
4
+ readonly kbid: string;
5
+ /** Raw JSON content of the skill section. */
6
+ readonly content: string;
7
+ }
8
+
9
+ /**
10
+ * Builds a human-readable skills listing from an array of skill
11
+ * section records.
12
+ *
13
+ * Sections whose JSON is not parseable or whose `name` field is
14
+ * absent are silently omitted. Returns `null` when no valid skills
15
+ * remain after filtering.
16
+ *
17
+ * @param skillSections - array of section records to summarise
18
+ */
19
+ export function buildSkillsText(
20
+ skillSections: SkillSection[],
21
+ ): string | null {
22
+ const lines: string[] = [];
23
+ for (const sec of skillSections) {
24
+ try {
25
+ const parsed = JSON.parse(sec.content) as Record<
26
+ string,
27
+ unknown
28
+ >;
29
+ const name =
30
+ typeof parsed['name'] === 'string' ? parsed['name'] : null;
31
+ if (name === null) continue;
32
+ const description =
33
+ typeof parsed['description'] === 'string'
34
+ ? parsed['description']
35
+ : '';
36
+ lines.push(`- ${name}: ${description}`);
37
+ } catch {
38
+ // skip unparseable sections
39
+ }
40
+ }
41
+ if (lines.length === 0) return null;
42
+ return `Available skills:\n${lines.join('\n')}`;
43
+ }
@@ -10,10 +10,11 @@ export function createToolDefinitions(): McpToolDefinition[] {
10
10
  {
11
11
  name: 'search',
12
12
  description:
13
- 'Search the knowledge base. Returns ranked' +
14
- ' results with headings and snippets for' +
15
- ' relevance evaluation. Use `recall` to' +
16
- ' get full content of specific results.',
13
+ 'Query the knowledge base by keywords.' +
14
+ ' Returns ranked results with heading,' +
15
+ ' snippet, and matched terms. Use multiple' +
16
+ ' short keyword queries for best coverage.' +
17
+ ' Use recall to get full content.',
17
18
  inputSchema: {
18
19
  type: 'object',
19
20
  properties: {
@@ -36,6 +37,11 @@ export function createToolDefinitions(): McpToolDefinition[] {
36
37
  'Number of results to skip for' +
37
38
  ' pagination (default: 0)',
38
39
  },
40
+ algo: {
41
+ type: 'string',
42
+ enum: ['lexical', 'vector', 'hybrid'],
43
+ description: 'Search algorithm (default: lexical)',
44
+ },
39
45
  },
40
46
  required: ['query'],
41
47
  },
@@ -49,7 +55,11 @@ export function createToolDefinitions(): McpToolDefinition[] {
49
55
  },
50
56
  {
51
57
  name: 'learn',
52
- description: 'Add a text section to the knowledge base.',
58
+ description:
59
+ 'Import content into the knowledge base.' +
60
+ ' Use for durable facts, decisions, and' +
61
+ ' corrections. Use replace when updating' +
62
+ ' existing knowledge. Attach tags for scoping.',
53
63
  inputSchema: {
54
64
  type: 'object',
55
65
  properties: {
@@ -76,6 +86,17 @@ export function createToolDefinitions(): McpToolDefinition[] {
76
86
  type: 'string',
77
87
  description: 'Document ID to group under',
78
88
  },
89
+ tags: {
90
+ type: 'array',
91
+ items: { type: 'string' },
92
+ description: 'Tags for scoping and filtering',
93
+ },
94
+ replace: {
95
+ type: 'boolean',
96
+ description:
97
+ 'Replace existing section with same' +
98
+ ' source key (supersession)',
99
+ },
79
100
  },
80
101
  required: ['content'],
81
102
  },
@@ -268,6 +289,31 @@ export function createToolDefinitions(): McpToolDefinition[] {
268
289
  openWorldHint: false,
269
290
  },
270
291
  },
292
+ {
293
+ name: 'export',
294
+ description:
295
+ 'Export the database as a self-contained' +
296
+ ' directory snapshot (sections, documents,' +
297
+ ' catalog -- no indexes).',
298
+ inputSchema: {
299
+ type: 'object',
300
+ properties: {
301
+ path: {
302
+ type: 'string',
303
+ description:
304
+ 'Export destination path' +
305
+ ' (default: ./kbdb-export/)',
306
+ },
307
+ },
308
+ },
309
+ annotations: {
310
+ title: 'Export Snapshot',
311
+ readOnlyHint: false,
312
+ destructiveHint: false,
313
+ idempotentHint: true,
314
+ openWorldHint: false,
315
+ },
316
+ },
271
317
  {
272
318
  name: 'skill-learn',
273
319
  description:
@@ -457,5 +503,28 @@ export function createToolDefinitions(): McpToolDefinition[] {
457
503
  openWorldHint: false,
458
504
  },
459
505
  },
506
+ {
507
+ name: 'auto-capture-review',
508
+ description:
509
+ 'Review and approve pending auto-captured' +
510
+ ' knowledge before storage.',
511
+ inputSchema: {
512
+ type: 'object',
513
+ properties: {
514
+ action: {
515
+ type: 'string',
516
+ enum: ['list', 'approve', 'reject'],
517
+ description: 'Action to perform on pending captures',
518
+ },
519
+ },
520
+ },
521
+ annotations: {
522
+ title: 'Auto-Capture Review',
523
+ readOnlyHint: false,
524
+ destructiveHint: false,
525
+ idempotentHint: true,
526
+ openWorldHint: false,
527
+ },
528
+ },
460
529
  ];
461
530
  }
@@ -99,7 +99,7 @@ export async function handleAgentCreate(
99
99
  });
100
100
 
101
101
  const allKbids = [metaResult.kbid, ...skills];
102
- const docid = await client.groupSections(name, allKbids);
102
+ const docid = await client.groupSections(name, allKbids, 'agent');
103
103
 
104
104
  return {
105
105
  content: [
@@ -0,0 +1,68 @@
1
+ import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
2
+ import type { McpPromptMessage } from '../typings/prompt-types.interface.ts';
3
+ import { parseAgentMeta } from './parse-agent-meta.function.ts';
4
+ import { buildSkillsText } from './build-skills-text.function.ts';
5
+
6
+ /** Minimal agent document shape returned by retrieveDocument. */
7
+ interface AgentDocument {
8
+ /** Document identifier. */
9
+ readonly docid: string;
10
+ /** Document title. */
11
+ readonly title: string;
12
+ /** Ordered section references. */
13
+ readonly sections: readonly {
14
+ readonly kbid: string;
15
+ readonly position: number;
16
+ }[];
17
+ }
18
+
19
+ /**
20
+ * Handles an MCP `prompts/get` request for an agent prompt.
21
+ *
22
+ * Reads the agent document, extracts its persona from the metadata
23
+ * section, then reads all skill sections and composes the response.
24
+ * Returns an assistant message with the persona and, when skills
25
+ * exist, a user message listing them.
26
+ *
27
+ * @param name - prompt name with `agent:` prefix
28
+ * @param client - worker client used to access the knowledge base
29
+ */
30
+ export async function handleAgentPrompt(
31
+ name: string,
32
+ client: McpWorkerClient,
33
+ ): Promise<McpPromptMessage[]> {
34
+ const docid = name.slice(6);
35
+ const doc = (await client.retrieveDocument(docid)) as AgentDocument;
36
+ const metaSection = doc.sections.at(0);
37
+ const skillRefs = doc.sections.slice(1);
38
+
39
+ let persona = '';
40
+ if (metaSection !== undefined) {
41
+ const metaSections = await client.readSections([
42
+ metaSection.kbid,
43
+ ]);
44
+ const metaContent = metaSections.at(0);
45
+ if (metaContent !== undefined) {
46
+ persona = parseAgentMeta(metaContent.content).persona;
47
+ }
48
+ }
49
+
50
+ const messages: McpPromptMessage[] = [
51
+ { role: 'assistant', content: { type: 'text', text: persona } },
52
+ ];
53
+
54
+ if (skillRefs.length === 0) return messages;
55
+
56
+ const skillKbids = skillRefs.map((s) => s.kbid);
57
+ const skillSections = await client.readSections(skillKbids);
58
+ const skillsText = buildSkillsText(skillSections);
59
+
60
+ if (skillsText !== null) {
61
+ messages.push({
62
+ role: 'user',
63
+ content: { type: 'text', text: skillsText },
64
+ });
65
+ }
66
+
67
+ return messages;
68
+ }
@@ -0,0 +1,202 @@
1
+ import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
2
+ import type {
3
+ McpRequest,
4
+ McpResponse,
5
+ } from '../typings/mcp-types.interface.ts';
6
+ import type { McpLogLevel } from '../typings/log-types.interface.ts';
7
+ import type {
8
+ McpCompletionRef,
9
+ McpCompletionArgument,
10
+ } from '../typings/mcp-completion.interface.ts';
11
+ import type { McpServerState } from '../typings/mcp-server-state.interface.ts';
12
+ import { createToolDefinitions } from './create-tool-definitions.function.ts';
13
+ import { createResourceTemplates } from './create-resource-templates.function.ts';
14
+ import { handleToolCall } from './handle-tool-call.function.ts';
15
+ import { handleResourceRead } from './handle-resource-read.function.ts';
16
+ import { createPromptDefinitions } from './create-prompt-definitions.function.ts';
17
+ import { handlePromptGet } from './handle-prompt-get.function.ts';
18
+ import { handleCompletion } from './handle-completion.function.ts';
19
+ import { handleRootsList } from './handle-roots-list.function.ts';
20
+ import {
21
+ METHOD_NOT_FOUND,
22
+ RESOURCE_NOT_FOUND,
23
+ } from '../constants/mcp-error-codes.constant.ts';
24
+
25
+ /**
26
+ * Routes an MCP JSON-RPC request to the appropriate handler and
27
+ * returns the JSON-RPC response. Mutates `state` for methods that
28
+ * update server-side configuration (logging level, subscriptions,
29
+ * capabilities).
30
+ *
31
+ * @param request - the parsed MCP request
32
+ * @param client - worker client for knowledge-base operations
33
+ * @param state - mutable server state shared with `McpServer`
34
+ */
35
+ export async function handleMcpRequest(
36
+ request: McpRequest,
37
+ client: McpWorkerClient,
38
+ state: McpServerState,
39
+ ): Promise<McpResponse> {
40
+ const id = request.id as number | string;
41
+
42
+ switch (request.method) {
43
+ case 'initialize': {
44
+ const params = request.params ?? {};
45
+ const caps = params['capabilities'];
46
+ state.hostCapabilities = caps
47
+ ? (caps as Record<string, unknown>)
48
+ : null;
49
+ return {
50
+ jsonrpc: '2.0',
51
+ id,
52
+ result: {
53
+ protocolVersion: '2025-11-25',
54
+ serverInfo: { name: 'kbdb', version: '0.1.0' },
55
+ capabilities: {
56
+ tools: {},
57
+ resources: { subscribe: true },
58
+ prompts: {},
59
+ logging: {},
60
+ completions: {},
61
+ },
62
+ },
63
+ };
64
+ }
65
+
66
+ case 'ping':
67
+ return { jsonrpc: '2.0', id, result: {} };
68
+
69
+ case 'tools/list':
70
+ return {
71
+ jsonrpc: '2.0',
72
+ id,
73
+ result: { tools: createToolDefinitions() },
74
+ };
75
+
76
+ case 'resources/list':
77
+ return { jsonrpc: '2.0', id, result: { resources: [] } };
78
+
79
+ case 'resources/templates/list':
80
+ return {
81
+ jsonrpc: '2.0',
82
+ id,
83
+ result: { resourceTemplates: createResourceTemplates() },
84
+ };
85
+
86
+ case 'tools/call': {
87
+ const params = request.params ?? {};
88
+ const rawName = params['name'];
89
+ const name = typeof rawName === 'string' ? rawName : '';
90
+ const args = (params['arguments'] ?? {}) as Record<
91
+ string,
92
+ unknown
93
+ >;
94
+ const result = await handleToolCall(client, name, args);
95
+ return { jsonrpc: '2.0', id, result };
96
+ }
97
+
98
+ case 'resources/read': {
99
+ const params = request.params ?? {};
100
+ const rawUri = params['uri'];
101
+ const uri = typeof rawUri === 'string' ? rawUri : '';
102
+ try {
103
+ const result = await handleResourceRead(client, uri);
104
+ return { jsonrpc: '2.0', id, result };
105
+ } catch (err) {
106
+ return {
107
+ jsonrpc: '2.0',
108
+ id,
109
+ error: {
110
+ code: RESOURCE_NOT_FOUND,
111
+ message:
112
+ err instanceof Error ? err.message : String(err),
113
+ },
114
+ };
115
+ }
116
+ }
117
+
118
+ case 'prompts/list': {
119
+ const skills = await client.listByType('skill');
120
+ const agents = await client.listDocumentsByType('agent');
121
+ const prompts = createPromptDefinitions(skills, agents);
122
+ return { jsonrpc: '2.0', id, result: { prompts } };
123
+ }
124
+
125
+ case 'prompts/get': {
126
+ const params = request.params ?? {};
127
+ const name =
128
+ typeof params['name'] === 'string' ? params['name'] : '';
129
+ const promptArgs = (params['arguments'] ?? {}) as Record<
130
+ string,
131
+ string
132
+ >;
133
+ try {
134
+ const messages = await handlePromptGet(
135
+ name,
136
+ promptArgs,
137
+ client,
138
+ );
139
+ return { jsonrpc: '2.0', id, result: { messages } };
140
+ } catch (err) {
141
+ return {
142
+ jsonrpc: '2.0',
143
+ id,
144
+ error: {
145
+ code: RESOURCE_NOT_FOUND,
146
+ message:
147
+ err instanceof Error ? err.message : String(err),
148
+ },
149
+ };
150
+ }
151
+ }
152
+
153
+ case 'completion/complete': {
154
+ const params = request.params ?? {};
155
+ const ref = params['ref'] as McpCompletionRef;
156
+ const argument = (params['argument'] ?? {
157
+ name: '',
158
+ value: '',
159
+ }) as McpCompletionArgument;
160
+ const result = await handleCompletion(ref, argument, client);
161
+ return { jsonrpc: '2.0', id, result };
162
+ }
163
+
164
+ case 'roots/list': {
165
+ const roots = handleRootsList(state.contextPath);
166
+ return { jsonrpc: '2.0', id, result: { roots } };
167
+ }
168
+
169
+ case 'logging/setLevel': {
170
+ const params = request.params ?? {};
171
+ const level = params['level'] as McpLogLevel | undefined;
172
+ state.logLevel = level ?? null;
173
+ return { jsonrpc: '2.0', id, result: {} };
174
+ }
175
+
176
+ case 'resources/subscribe': {
177
+ const params = request.params ?? {};
178
+ const uri =
179
+ typeof params['uri'] === 'string' ? params['uri'] : '';
180
+ state.subscriptions.add(uri);
181
+ return { jsonrpc: '2.0', id, result: {} };
182
+ }
183
+
184
+ case 'resources/unsubscribe': {
185
+ const params = request.params ?? {};
186
+ const uri =
187
+ typeof params['uri'] === 'string' ? params['uri'] : '';
188
+ state.subscriptions.delete(uri);
189
+ return { jsonrpc: '2.0', id, result: {} };
190
+ }
191
+
192
+ default:
193
+ return {
194
+ jsonrpc: '2.0',
195
+ id,
196
+ error: {
197
+ code: METHOD_NOT_FOUND,
198
+ message: `Method not found: ` + request.method,
199
+ },
200
+ };
201
+ }
202
+ }