@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
@@ -15,10 +15,8 @@ interface ReadSection {
15
15
  readonly content: string;
16
16
  }
17
17
 
18
- /** Minimal agent document shape returned by retrieveDocument. */
18
+ /** Minimal agent document shape from listDocumentsByType. */
19
19
  interface AgentDocument {
20
- /** Document identifier. */
21
- readonly docid: string;
22
20
  /** Document title. */
23
21
  readonly title: string;
24
22
  /** Ordered section references. */
@@ -86,17 +84,24 @@ function buildSkillsText(skillSections: ReadSection[]): string | null {
86
84
  /**
87
85
  * Handles an MCP `prompts/get` request for an agent prompt.
88
86
  *
89
- * Reads the agent document, extracts its persona from the metadata
90
- * section, then reads all skill sections and composes the response.
91
- * Returns an assistant message with the persona and, when skills
92
- * exist, a user message listing them.
87
+ * Looks up the agent by title via `listDocumentsByType('agent')`,
88
+ * extracts its persona from the metadata section, then reads all
89
+ * skill sections and composes the response. Returns an assistant
90
+ * message with the persona and, when skills exist, a user message
91
+ * listing them.
93
92
  */
94
93
  async function handleAgentPrompt(
95
94
  name: string,
96
95
  client: McpWorkerClient,
97
96
  ): Promise<McpPromptMessage[]> {
98
- const docid = name.slice(6);
99
- const doc = (await client.retrieveDocument(docid)) as AgentDocument;
97
+ const agentName = name.slice(6);
98
+ const agents = await client.listDocumentsByType('agent');
99
+ const doc = agents.find((a) => a.title === agentName) as
100
+ | AgentDocument
101
+ | undefined;
102
+ if (!doc) {
103
+ throw new Error('agent not found: ' + agentName);
104
+ }
100
105
  const sections = doc.sections;
101
106
 
102
107
  const metaSection = sections.at(0);
@@ -192,9 +197,10 @@ async function handleSkillPrompt(
192
197
  * substitutes `{{argName}}` placeholders in the body, and returns a
193
198
  * single user message.
194
199
  *
195
- * For agent prompts: reads the agent document via `retrieveDocument`,
196
- * builds an assistant message from the persona section, and (when
197
- * skills exist) a user message listing their names and descriptions.
200
+ * For agent prompts: looks up the agent by title via
201
+ * `listDocumentsByType('agent')`, builds an assistant message from
202
+ * the persona section, and (when skills exist) a user message
203
+ * listing their names and descriptions.
198
204
  *
199
205
  * @param name - prompt name from the MCP request
200
206
  * @param promptArgs - argument key-value map from the MCP request
@@ -0,0 +1,44 @@
1
+ import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
2
+ import type { McpPromptMessage } from '../typings/prompt-types.interface.ts';
3
+
4
+ /**
5
+ * Handles an MCP `prompts/get` request for a skill prompt.
6
+ *
7
+ * Looks up the skill by name in the `listByType('skill')` results,
8
+ * picks the most recent match (last occurrence), parses its body,
9
+ * and substitutes `{{argName}}` placeholders from `promptArgs`.
10
+ * Unresolved placeholders are left as-is.
11
+ *
12
+ * @param name - skill prompt name to look up
13
+ * @param promptArgs - argument key-value map from the MCP request
14
+ * @param client - worker client used to access the knowledge base
15
+ * @throws {Error} when no skill with the given name is found
16
+ */
17
+ export async function handleSkillPrompt(
18
+ name: string,
19
+ promptArgs: Record<string, string>,
20
+ client: McpWorkerClient,
21
+ ): Promise<McpPromptMessage[]> {
22
+ const sections = await client.listByType('skill');
23
+ let matchContent: string | undefined;
24
+ for (const sec of sections) {
25
+ if (sec.title === name) {
26
+ matchContent = sec.content;
27
+ }
28
+ }
29
+ if (matchContent === undefined) {
30
+ throw new Error(`Prompt not found: ${name}`);
31
+ }
32
+
33
+ const parsed = JSON.parse(matchContent) as Record<string, unknown>;
34
+ const body =
35
+ typeof parsed['body'] === 'string' ? parsed['body'] : '';
36
+
37
+ const rendered = body.replace(
38
+ /\{\{(\w+)\}\}/g,
39
+ (_match, key: string) =>
40
+ key in promptArgs ? (promptArgs[key] ?? _match) : _match,
41
+ );
42
+
43
+ return [{ role: 'user', content: { type: 'text', text: rendered } }];
44
+ }
@@ -0,0 +1,24 @@
1
+ import type { ToolCallResult } from '../typings/tool-call-result.model.ts';
2
+
3
+ /**
4
+ * Handles the `auto-capture-review` MCP tool call.
5
+ *
6
+ * Returns a stub response indicating no pending captures are
7
+ * available. Full implementation requires wiring the auto-capture
8
+ * controller into the MCP server state.
9
+ *
10
+ * @param _args - tool arguments; `action` may be list, approve,
11
+ * or reject
12
+ */
13
+ export function handleToolAutoCaptureReview(
14
+ _args: Record<string, unknown>,
15
+ ): Promise<ToolCallResult> {
16
+ return Promise.resolve({
17
+ content: [
18
+ {
19
+ type: 'text' as const,
20
+ text: 'No pending auto-captured knowledge entries.',
21
+ },
22
+ ],
23
+ });
24
+ }
@@ -32,6 +32,30 @@ function asString(value: unknown, fallback: string): string {
32
32
  return typeof value === 'string' ? value : fallback;
33
33
  }
34
34
 
35
+ /**
36
+ * Narrows an `unknown` value to a boolean, returning `undefined`
37
+ * when the value is not a boolean.
38
+ */
39
+ function asBooleanOrUndefined(value: unknown): boolean | undefined {
40
+ return typeof value === 'boolean' ? value : undefined;
41
+ }
42
+
43
+ /**
44
+ * Narrows an `unknown` value to a `string[]`, returning `undefined`
45
+ * when the value is not an array of strings.
46
+ */
47
+ function asStringArrayOrUndefined(
48
+ value: unknown,
49
+ ): string[] | undefined {
50
+ if (
51
+ Array.isArray(value) &&
52
+ value.every((item) => typeof item === 'string')
53
+ ) {
54
+ return value;
55
+ }
56
+ return undefined;
57
+ }
58
+
35
59
  /**
36
60
  * Narrows an `unknown` value to a `string[]`, returning an empty
37
61
  * array when the value is not an array of strings.
@@ -82,6 +106,8 @@ export async function handleToolCall(
82
106
  return await handleGc(client);
83
107
  case 'rebuild':
84
108
  return await handleRebuild(client);
109
+ case 'export':
110
+ return await handleExport(client, args);
85
111
  case 'skill-learn':
86
112
  return await handleSkillLearn(client, args);
87
113
  case 'skill-list':
@@ -98,6 +124,8 @@ export async function handleToolCall(
98
124
  return await handleAgentGet(client, args);
99
125
  case 'agent-delete':
100
126
  return await handleAgentDelete(client, args);
127
+ case 'auto-capture-review':
128
+ return handleAutoCaptureReview();
101
129
  default:
102
130
  return {
103
131
  content: [
@@ -131,11 +159,20 @@ async function handleSearch(
131
159
  mode: args['mode'] as string | undefined,
132
160
  limit: args['limit'] as number | undefined,
133
161
  offset: args['offset'] as number | undefined,
162
+ algo: args['algo'] as string | undefined,
134
163
  });
135
164
 
136
165
  const stripped = {
137
166
  ...results,
138
- items: results.items.map(({ score: _score, ...rest }) => rest),
167
+ items: results.items.map(
168
+ ({
169
+ score: _score,
170
+ confidence: _confidence,
171
+ ...rest
172
+ }: (typeof results.items)[number] & {
173
+ confidence?: number;
174
+ }) => rest,
175
+ ),
139
176
  };
140
177
 
141
178
  return {
@@ -161,6 +198,8 @@ async function handleLearn(
161
198
  : undefined;
162
199
  const docid =
163
200
  typeof args['docid'] === 'string' ? args['docid'] : undefined;
201
+ const tags = asStringArrayOrUndefined(args['tags']);
202
+ const replace = asBooleanOrUndefined(args['replace']);
164
203
  if (sectionType.startsWith('image/') && !title) {
165
204
  return {
166
205
  content: [
@@ -178,12 +217,26 @@ async function handleLearn(
178
217
  title,
179
218
  description,
180
219
  docid,
220
+ tags,
221
+ replace,
181
222
  });
223
+ const normalized = {
224
+ kbid: result.kbid,
225
+ indexed_terms_count: result.indexed_terms_count ?? 0,
226
+ elapsed_ms: result.elapsed_ms ?? 0,
227
+ superseded: result.superseded ?? null,
228
+ warnings: result.warnings ?? [],
229
+ near_duplicates: (result.near_duplicates ?? []).map((d) => ({
230
+ kbid: d.kbid,
231
+ similarity: d.similarity,
232
+ ...(d.method !== undefined ? { method: d.method } : {}),
233
+ })),
234
+ };
182
235
  return {
183
236
  content: [
184
237
  {
185
238
  type: 'text',
186
- text: JSON.stringify(result),
239
+ text: JSON.stringify(normalized),
187
240
  },
188
241
  ],
189
242
  };
@@ -472,3 +525,36 @@ async function handleSkillDelete(
472
525
  ],
473
526
  };
474
527
  }
528
+
529
+ function handleAutoCaptureReview(): ToolCallResult {
530
+ return {
531
+ content: [
532
+ {
533
+ type: 'text',
534
+ text: JSON.stringify({
535
+ pending: [],
536
+ message: 'No pending auto-captured knowledge entries.',
537
+ }),
538
+ },
539
+ ],
540
+ };
541
+ }
542
+
543
+ async function handleExport(
544
+ client: McpWorkerClient,
545
+ args: Record<string, unknown>,
546
+ ): Promise<ToolCallResult> {
547
+ const path =
548
+ typeof args['path'] === 'string' ? args['path'] : undefined;
549
+ const result = await client.export(
550
+ path !== undefined ? { path } : {},
551
+ );
552
+ return {
553
+ content: [
554
+ {
555
+ type: 'text',
556
+ text: JSON.stringify(result),
557
+ },
558
+ ],
559
+ };
560
+ }
@@ -0,0 +1,21 @@
1
+ import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
2
+ import type { ToolCallResult } from '../typings/tool-call-result.model.ts';
3
+
4
+ /**
5
+ * Handles the `check` MCP tool call.
6
+ *
7
+ * Runs an integrity check on the knowledge base and returns the
8
+ * report as formatted JSON.
9
+ *
10
+ * @param client - the worker client used to execute operations
11
+ */
12
+ export async function handleToolCheck(
13
+ client: McpWorkerClient,
14
+ ): Promise<ToolCallResult> {
15
+ const report = await client.integrityCheck();
16
+ return {
17
+ content: [
18
+ { type: 'text', text: JSON.stringify(report, null, 2) },
19
+ ],
20
+ };
21
+ }
@@ -0,0 +1,23 @@
1
+ import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
2
+ import type { ToolCallResult } from '../typings/tool-call-result.model.ts';
3
+ import { asStringArray } from './as-string-array.function.ts';
4
+
5
+ /**
6
+ * Handles the `content` MCP tool call.
7
+ *
8
+ * Composes a rendered Markdown document from the given identifiers
9
+ * and returns the result as JSON.
10
+ *
11
+ * @param client - the worker client used to execute operations
12
+ * @param args - tool arguments from the MCP request
13
+ */
14
+ export async function handleToolContent(
15
+ client: McpWorkerClient,
16
+ args: Record<string, unknown>,
17
+ ): Promise<ToolCallResult> {
18
+ const ids = asStringArray(args['ids']);
19
+ const result = await client.content(ids);
20
+ return {
21
+ content: [{ type: 'text', text: JSON.stringify(result) }],
22
+ };
23
+ }
@@ -0,0 +1,25 @@
1
+ import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
2
+ import type { ToolCallResult } from '../typings/tool-call-result.model.ts';
3
+
4
+ /**
5
+ * Handles the `export` MCP tool call.
6
+ *
7
+ * Exports the database as a self-contained directory snapshot.
8
+ * Passes the optional `path` argument when supplied.
9
+ *
10
+ * @param client - the worker client used to execute operations
11
+ * @param args - tool arguments from the MCP request
12
+ */
13
+ export async function handleToolExport(
14
+ client: McpWorkerClient,
15
+ args: Record<string, unknown>,
16
+ ): Promise<ToolCallResult> {
17
+ const path =
18
+ typeof args['path'] === 'string' ? args['path'] : undefined;
19
+ const result = await client.export(
20
+ path !== undefined ? { path } : {},
21
+ );
22
+ return {
23
+ content: [{ type: 'text', text: JSON.stringify(result) }],
24
+ };
25
+ }
@@ -0,0 +1,21 @@
1
+ import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
2
+ import type { ToolCallResult } from '../typings/tool-call-result.model.ts';
3
+
4
+ /**
5
+ * Handles the `gc` MCP tool call.
6
+ *
7
+ * Removes unreferenced sections from the knowledge base and returns
8
+ * the collection report as formatted JSON.
9
+ *
10
+ * @param client - the worker client used to execute operations
11
+ */
12
+ export async function handleToolGc(
13
+ client: McpWorkerClient,
14
+ ): Promise<ToolCallResult> {
15
+ const report = await client.gc();
16
+ return {
17
+ content: [
18
+ { type: 'text', text: JSON.stringify(report, null, 2) },
19
+ ],
20
+ };
21
+ }
@@ -0,0 +1,69 @@
1
+ import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
2
+ import type { ToolCallResult } from '../typings/tool-call-result.model.ts';
3
+ import { asString } from './as-string.function.ts';
4
+ import { asStringArrayOrUndefined } from './as-string-array-or-undefined.function.ts';
5
+ import { asBooleanOrUndefined } from './as-boolean-or-undefined.function.ts';
6
+
7
+ /**
8
+ * Handles the `learn` MCP tool call.
9
+ *
10
+ * Validates that image content includes a title, then imports the
11
+ * content into the knowledge base via the worker client.
12
+ *
13
+ * @param client - the worker client used to execute operations
14
+ * @param args - tool arguments from the MCP request
15
+ */
16
+ export async function handleToolLearn(
17
+ client: McpWorkerClient,
18
+ args: Record<string, unknown>,
19
+ ): Promise<ToolCallResult> {
20
+ const sectionType = asString(args['type'], 'text/markdown');
21
+ const title =
22
+ typeof args['title'] === 'string' ? args['title'] : undefined;
23
+ const description =
24
+ typeof args['description'] === 'string'
25
+ ? args['description']
26
+ : undefined;
27
+ const docid =
28
+ typeof args['docid'] === 'string' ? args['docid'] : undefined;
29
+ const tags = asStringArrayOrUndefined(args['tags']);
30
+ const replace = asBooleanOrUndefined(args['replace']);
31
+
32
+ if (sectionType.startsWith('image/') && !title) {
33
+ return {
34
+ content: [
35
+ {
36
+ type: 'text',
37
+ text: 'title is required for image/* types',
38
+ },
39
+ ],
40
+ isError: true,
41
+ };
42
+ }
43
+
44
+ const result = await client.addSection({
45
+ sectionType,
46
+ content: asString(args['content'], ''),
47
+ title,
48
+ description,
49
+ docid,
50
+ tags,
51
+ replace,
52
+ });
53
+
54
+ const normalized = {
55
+ kbid: result.kbid,
56
+ indexed_terms_count: result.indexed_terms_count ?? 0,
57
+ elapsed_ms: result.elapsed_ms ?? 0,
58
+ superseded: result.superseded ?? null,
59
+ warnings: result.warnings ?? [],
60
+ near_duplicates: (result.near_duplicates ?? []).map((d) => ({
61
+ kbid: d.kbid,
62
+ similarity: d.similarity,
63
+ })),
64
+ };
65
+
66
+ return {
67
+ content: [{ type: 'text', text: JSON.stringify(normalized) }],
68
+ };
69
+ }
@@ -0,0 +1,21 @@
1
+ import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
2
+ import type { ToolCallResult } from '../typings/tool-call-result.model.ts';
3
+
4
+ /**
5
+ * Handles the `rebuild` MCP tool call.
6
+ *
7
+ * Reconstructs all index files from section and document files and
8
+ * returns the rebuild report as formatted JSON.
9
+ *
10
+ * @param client - the worker client used to execute operations
11
+ */
12
+ export async function handleToolRebuild(
13
+ client: McpWorkerClient,
14
+ ): Promise<ToolCallResult> {
15
+ const report = await client.rebuildIndexes();
16
+ return {
17
+ content: [
18
+ { type: 'text', text: JSON.stringify(report, null, 2) },
19
+ ],
20
+ };
21
+ }
@@ -0,0 +1,40 @@
1
+ import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
2
+ import type { ToolCallResult } from '../typings/tool-call-result.model.ts';
3
+
4
+ /**
5
+ * Handles the `retrieve` MCP tool call.
6
+ *
7
+ * Fetches a section by `kbid` or a document by `docid`. Returns an
8
+ * error when neither identifier is supplied.
9
+ *
10
+ * @param client - the worker client used to execute operations
11
+ * @param args - tool arguments from the MCP request
12
+ */
13
+ export async function handleToolRetrieve(
14
+ client: McpWorkerClient,
15
+ args: Record<string, unknown>,
16
+ ): Promise<ToolCallResult> {
17
+ if (typeof args['kbid'] === 'string') {
18
+ const sections = await client.readSections([args['kbid']]);
19
+ return {
20
+ content: [
21
+ {
22
+ type: 'text',
23
+ text: JSON.stringify(sections, null, 2),
24
+ },
25
+ ],
26
+ };
27
+ }
28
+ if (typeof args['docid'] === 'string') {
29
+ const doc = await client.retrieveDocument(args['docid']);
30
+ return {
31
+ content: [
32
+ { type: 'text', text: JSON.stringify(doc, null, 2) },
33
+ ],
34
+ };
35
+ }
36
+ return {
37
+ content: [{ type: 'text', text: 'Provide kbid or docid' }],
38
+ isError: true,
39
+ };
40
+ }
@@ -0,0 +1,47 @@
1
+ import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
2
+ import type { ToolCallResult } from '../typings/tool-call-result.model.ts';
3
+
4
+ /**
5
+ * Handles the `search` MCP tool call.
6
+ *
7
+ * Forwards query parameters to the worker client and strips internal
8
+ * scoring fields (`score`, `confidence`) from each result item before
9
+ * returning.
10
+ *
11
+ * @param client - the worker client used to execute operations
12
+ * @param args - tool arguments from the MCP request
13
+ */
14
+ export async function handleToolSearch(
15
+ client: McpWorkerClient,
16
+ args: Record<string, unknown>,
17
+ ): Promise<ToolCallResult> {
18
+ const query = typeof args['query'] === 'string' ? args['query'] : '';
19
+ const algo =
20
+ typeof args['algo'] === 'string' ? args['algo'] : undefined;
21
+ const results = await client.search({
22
+ query,
23
+ mode: args['mode'] as string | undefined,
24
+ ...(algo !== undefined ? { algo } : {}),
25
+ limit: args['limit'] as number | undefined,
26
+ offset: args['offset'] as number | undefined,
27
+ });
28
+
29
+ const stripped = {
30
+ ...results,
31
+ items: results.items.map(
32
+ ({
33
+ score: _score,
34
+ confidence: _confidence,
35
+ ...rest
36
+ }: (typeof results.items)[number] & {
37
+ confidence?: number;
38
+ }) => rest,
39
+ ),
40
+ };
41
+
42
+ return {
43
+ content: [
44
+ { type: 'text', text: JSON.stringify(stripped, null, 2) },
45
+ ],
46
+ };
47
+ }
@@ -0,0 +1,34 @@
1
+ import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
2
+ import type { ToolCallResult } from '../typings/tool-call-result.model.ts';
3
+ import { asString } from './as-string.function.ts';
4
+
5
+ /**
6
+ * Handles the `skill-delete` MCP tool call.
7
+ *
8
+ * Removes the skill section identified by `kbid` from the knowledge
9
+ * base and returns the result.
10
+ *
11
+ * @param client - the worker client used to execute operations
12
+ * @param args - tool arguments from the MCP request
13
+ */
14
+ export async function handleToolSkillDelete(
15
+ client: McpWorkerClient,
16
+ args: Record<string, unknown>,
17
+ ): Promise<ToolCallResult> {
18
+ const kbid = asString(args['kbid'], '');
19
+ if (!kbid) {
20
+ return {
21
+ content: [{ type: 'text', text: 'kbid is required' }],
22
+ isError: true,
23
+ };
24
+ }
25
+ const result = await client.removeSection(kbid);
26
+ return {
27
+ content: [
28
+ {
29
+ type: 'text',
30
+ text: JSON.stringify({ kbid, removed: result.removed }),
31
+ },
32
+ ],
33
+ };
34
+ }
@@ -0,0 +1,59 @@
1
+ import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
2
+ import type { ToolCallResult } from '../typings/tool-call-result.model.ts';
3
+ import { parseSkillContent } from './parse-skill-content.function.ts';
4
+
5
+ /**
6
+ * Handles the `skill-get` MCP tool call.
7
+ *
8
+ * Looks up a skill by `kbid` first, then falls back to searching by
9
+ * `name`. Returns an error when neither identifier resolves to a
10
+ * known skill.
11
+ *
12
+ * @param client - the worker client used to execute operations
13
+ * @param args - tool arguments from the MCP request
14
+ */
15
+ export async function handleToolSkillGet(
16
+ client: McpWorkerClient,
17
+ args: Record<string, unknown>,
18
+ ): Promise<ToolCallResult> {
19
+ const kbid =
20
+ typeof args['kbid'] === 'string' ? args['kbid'] : undefined;
21
+ const name =
22
+ typeof args['name'] === 'string' ? args['name'] : undefined;
23
+
24
+ if (!kbid && !name) {
25
+ return {
26
+ content: [{ type: 'text', text: 'name or kbid is required' }],
27
+ isError: true,
28
+ };
29
+ }
30
+
31
+ let content: string | undefined;
32
+ if (kbid) {
33
+ const sections = await client.readSections([kbid]);
34
+ if (sections.length > 0) {
35
+ content = sections[0]?.content;
36
+ }
37
+ }
38
+ if (content === undefined && name) {
39
+ const records = await client.listByType('skill');
40
+ const match = records.filter((r) => r.title === name).pop();
41
+ if (match) {
42
+ content = match.content;
43
+ }
44
+ }
45
+ if (content === undefined) {
46
+ const identifier = kbid ?? name ?? '';
47
+ return {
48
+ content: [
49
+ { type: 'text', text: `skill not found: ${identifier}` },
50
+ ],
51
+ isError: true,
52
+ };
53
+ }
54
+
55
+ const skill = parseSkillContent(content);
56
+ return {
57
+ content: [{ type: 'text', text: JSON.stringify(skill, null, 2) }],
58
+ };
59
+ }