@dikolab/kbdb 0.3.2 → 0.4.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 (523) hide show
  1. package/README.md +92 -90
  2. package/dist/chunk-BJXEVALU.mjs +337 -0
  3. package/dist/chunk-BJXEVALU.mjs.map +7 -0
  4. package/dist/cli.cjs +1398 -378
  5. package/dist/cli.cjs.map +4 -4
  6. package/dist/cli.d.ts +9 -0
  7. package/dist/cli.mjs +1138 -342
  8. package/dist/cli.mjs.map +4 -4
  9. package/dist/kbdb-worker.cjs +1115 -135
  10. package/dist/kbdb-worker.cjs.map +4 -4
  11. package/dist/mod.cjs +351 -69
  12. package/dist/mod.cjs.map +4 -4
  13. package/dist/mod.d.ts +23 -2
  14. package/dist/mod.mjs +349 -68
  15. package/dist/mod.mjs.map +4 -4
  16. package/dist/src/shared/cli/functions/dispatch-command.function.d.ts +2 -1
  17. package/dist/src/shared/cli/functions/find-db.function.d.ts +7 -8
  18. package/dist/src/shared/cli/functions/handle-mcp.function.d.ts +1 -1
  19. package/dist/src/shared/cli/functions/parse-args.function.d.ts +4 -3
  20. package/dist/src/shared/cli/functions/resolve-kbid-prefix.function.d.ts +27 -0
  21. package/dist/src/shared/cli/functions/resolve-raw-db-path.function.d.ts +10 -0
  22. package/dist/src/shared/cli/functions/run-cli.function.d.ts +3 -1
  23. package/dist/src/shared/cli/functions/run-content.function.d.ts +8 -3
  24. package/dist/src/shared/cli/functions/run-import.function.d.ts +27 -0
  25. package/dist/src/shared/cli/functions/run-recall.function.d.ts +10 -4
  26. package/dist/src/shared/cli/functions/run-search.function.d.ts +7 -0
  27. package/dist/src/shared/cli/functions/run-unlearn.function.d.ts +9 -4
  28. package/dist/src/shared/cli/functions/run-worker-restart.function.d.ts +11 -0
  29. package/dist/src/shared/cli/functions/run-worker-stop.function.d.ts +11 -0
  30. package/dist/src/shared/cli/index.d.ts +2 -0
  31. package/dist/src/shared/cli/typings/cli-deps.interface.d.ts +4 -1
  32. package/dist/src/shared/cli/typings/cli-options.interface.d.ts +22 -0
  33. package/dist/src/shared/cli/typings/dispatch-client.type.d.ts +2 -1
  34. package/dist/src/shared/cli/typings/search-display.model.d.ts +6 -0
  35. package/dist/src/shared/embedding/classes/api-embedding-provider.class.d.ts +33 -0
  36. package/dist/src/shared/embedding/classes/onnx-embedding-provider.class.d.ts +33 -0
  37. package/dist/src/shared/embedding/classes/tfidf-embedding-provider.class.d.ts +28 -0
  38. package/dist/src/shared/embedding/constants/tfidf-defaults.constant.d.ts +4 -0
  39. package/dist/src/shared/embedding/functions/append-vector-entry.function.d.ts +14 -0
  40. package/dist/src/shared/embedding/functions/create-embedding-provider.function.d.ts +15 -0
  41. package/dist/src/shared/embedding/functions/detect-stale-vectors.function.d.ts +16 -0
  42. package/dist/src/shared/embedding/functions/parse-api-embedding-response.function.d.ts +11 -0
  43. package/dist/src/shared/embedding/functions/rebuild-vectors.function.d.ts +15 -0
  44. package/dist/src/shared/embedding/functions/scan-semantic-contradictions.function.d.ts +13 -0
  45. package/dist/src/shared/embedding/index.d.ts +9 -0
  46. package/dist/src/shared/embedding/typings/semantic-contradiction.model.d.ts +21 -0
  47. package/dist/src/shared/embedding/typings/stale-vectors-report.model.d.ts +16 -0
  48. package/dist/src/shared/log/constants/log-colors.constant.d.ts +5 -0
  49. package/dist/src/shared/log/constants/log-defaults.constant.d.ts +3 -0
  50. package/dist/src/shared/log/constants/log-icons.constant.d.ts +3 -0
  51. package/dist/src/shared/log/functions/configure-log.function.d.ts +12 -0
  52. package/dist/src/shared/log/functions/log.function.d.ts +28 -0
  53. package/dist/src/shared/log/functions/parse-log-level.function.d.ts +10 -0
  54. package/dist/src/shared/log/functions/resolve-log-level.function.d.ts +12 -0
  55. package/dist/src/shared/log/functions/write-stderr.function.d.ts +10 -0
  56. package/dist/src/shared/log/index.d.ts +10 -0
  57. package/dist/src/shared/log/typings/log-config.interface.d.ts +7 -0
  58. package/dist/src/shared/log/typings/log-level.type.d.ts +7 -0
  59. package/dist/src/shared/log/typings/log-output.interface.d.ts +4 -0
  60. package/dist/src/shared/mcp/classes/mcp-server.class.d.ts +22 -2
  61. package/dist/src/shared/mcp/functions/create-mcp-server.function.d.ts +6 -1
  62. package/dist/src/shared/mcp/functions/has-sampling-capability.function.d.ts +8 -0
  63. package/dist/src/shared/mcp/functions/run-auto-capture.function.d.ts +26 -0
  64. package/dist/src/shared/mcp/typings/mcp-client.interface.d.ts +2 -0
  65. package/dist/src/shared/mcp/typings/mcp-integrity-check-result.model.d.ts +24 -0
  66. package/dist/src/shared/mcp/typings/mcp-worker-client.interface.d.ts +3 -1
  67. package/dist/src/shared/version/constants/version.constant.d.ts +1 -1
  68. package/dist/src/shared/wasm-codec/typings/paged-search-result.model.d.ts +2 -0
  69. package/dist/src/shared/worker-client/classes/worker-client.class.d.ts +38 -1
  70. package/dist/src/shared/worker-client/constants/request-timeout.constant.d.ts +2 -0
  71. package/dist/src/shared/worker-client/constants/retry-defaults.constant.d.ts +2 -0
  72. package/dist/src/shared/worker-client/functions/get-or-create-client.function.d.ts +20 -0
  73. package/dist/src/shared/worker-client/functions/retry-on-timeout.function.d.ts +18 -0
  74. package/dist/src/shared/worker-client/index.d.ts +4 -1
  75. package/dist/src/shared/worker-client/typings/import-result.model.d.ts +16 -0
  76. package/dist/src/shared/worker-client/typings/integrity-check-result.model.d.ts +24 -0
  77. package/dist/src/shared/worker-client/typings/search-params.model.d.ts +4 -0
  78. package/dist/src/shared/worker-client/typings/search-result.model.d.ts +6 -0
  79. package/dist/src/shared/worker-client/typings/worker-client-options.interface.d.ts +7 -0
  80. package/dist/src/shared/worker-daemon/classes/worker-daemon.class.d.ts +6 -0
  81. package/dist/src/shared/worker-daemon/functions/create-ipc-server.function.d.ts +11 -11
  82. package/dist/src/shared/worker-daemon/functions/embed-after-learn.function.d.ts +13 -0
  83. package/dist/src/shared/worker-daemon/functions/handle-hybrid-search.function.d.ts +44 -0
  84. package/dist/src/shared/worker-daemon/functions/handle-import.function.d.ts +14 -0
  85. package/dist/src/shared/worker-daemon/functions/handle-read-ops.function.d.ts +7 -1
  86. package/dist/src/shared/worker-daemon/functions/handle-write-ops.function.d.ts +9 -4
  87. package/dist/src/shared/worker-daemon/functions/run-worker.function.d.ts +6 -1
  88. package/dist/src/shared/worker-daemon/typings/handler-context.interface.d.ts +3 -0
  89. package/dist/src/shared/worker-daemon/typings/wasm-modules.interface.d.ts +5 -0
  90. package/dist/wasm/default-embedding/kbdb_default_embedding.d.ts +55 -0
  91. package/dist/wasm/default-embedding/kbdb_default_embedding.js +156 -0
  92. package/{src/wasm/query-parser/kbdb_query_parser_bg.wasm → dist/wasm/default-embedding/kbdb_default_embedding_bg.wasm} +0 -0
  93. package/dist/wasm/default-embedding/kbdb_default_embedding_bg.wasm.d.ts +12 -0
  94. package/dist/wasm/default-embedding/package.json +13 -0
  95. package/dist/wasm/fs-database/kbdb_fs_database.d.ts +16 -85
  96. package/dist/wasm/fs-database/kbdb_fs_database.js +16 -85
  97. package/dist/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
  98. package/dist/wasm/fs-migration/kbdb_fs_migration.d.ts +38 -0
  99. package/dist/wasm/fs-migration/kbdb_fs_migration.js +130 -0
  100. package/dist/wasm/fs-migration/kbdb_fs_migration_bg.wasm +0 -0
  101. package/dist/wasm/fs-migration/kbdb_fs_migration_bg.wasm.d.ts +9 -0
  102. package/dist/wasm/fs-migration/package.json +13 -0
  103. package/dist/wasm/kb-worker/kbdb_worker.d.ts +20 -115
  104. package/dist/wasm/kb-worker/kbdb_worker.js +20 -115
  105. package/dist/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
  106. package/dist/wasm/query-parser/kbdb_query_parser_bg.wasm +0 -0
  107. package/dist/worker.d.ts +8 -0
  108. package/dist/worker.mjs +899 -143
  109. package/dist/worker.mjs.map +4 -4
  110. package/docs/details/README.md +4 -0
  111. package/docs/details/agent-tooling.md +132 -0
  112. package/docs/details/cli.md +91 -18
  113. package/docs/details/knowledge-base.md +180 -0
  114. package/docs/details/library-api.md +42 -2
  115. package/docs/details/mcp-server.md +53 -7
  116. package/docs/details/search-and-ranking.md +16 -11
  117. package/docs/goals/cli.md +142 -37
  118. package/docs/goals/content-parser.md +1 -1
  119. package/docs/goals/hybrid-search.md +71 -42
  120. package/docs/goals/mcp.md +24 -19
  121. package/docs/goals/overview.md +1 -1
  122. package/docs/goals/query-parser.md +8 -0
  123. package/docs/goals/semantic-dedup.md +7 -3
  124. package/docs/goals/worker-client.md +62 -1
  125. package/docs/goals/worker-daemon.md +83 -30
  126. package/docs/modules/overview.md +43 -22
  127. package/docs/modules/rust/embedding/module.md +91 -0
  128. package/docs/modules/rust/overview.md +56 -21
  129. package/docs/modules/rust/query-parser/functions/module.md +7 -5
  130. package/docs/modules/rust/query-parser/functions/pipeline.md +6 -138
  131. package/docs/modules/rust/query-parser/module.md +16 -22
  132. package/docs/modules/rust/query-parser/types/module.md +5 -4
  133. package/docs/modules/rust/query-parser/types/token.md +5 -1
  134. package/docs/modules/rust/shared/content-parser/functions.md +1 -1
  135. package/docs/modules/rust/shared/memory/module.md +1 -1
  136. package/docs/modules/rust/shared/module.md +33 -5
  137. package/docs/modules/rust/shared/pipeline/functions.md +141 -0
  138. package/docs/modules/rust/shared/pipeline/module.md +62 -0
  139. package/docs/modules/rust/shared/pipeline/types.md +43 -0
  140. package/docs/modules/rust/shared/section/module.md +1 -1
  141. package/docs/modules/rust/shared/section/types.md +1 -1
  142. package/docs/modules/typescript/cli.md +5 -3
  143. package/docs/modules/typescript/kbdb-worker.md +20 -5
  144. package/docs/modules/typescript/overview.md +28 -6
  145. package/docs/modules/typescript/shared/cli/functions.md +131 -17
  146. package/docs/modules/typescript/shared/cli/module.md +33 -20
  147. package/docs/modules/typescript/shared/cli/typings.md +25 -0
  148. package/docs/modules/typescript/shared/embedding/functions.md +125 -19
  149. package/docs/modules/typescript/shared/embedding/module.md +10 -4
  150. package/docs/modules/typescript/shared/embedding/typings.md +7 -5
  151. package/docs/modules/typescript/shared/log/constants.md +82 -0
  152. package/docs/modules/typescript/shared/log/functions.md +131 -0
  153. package/docs/modules/typescript/shared/log/module.md +153 -0
  154. package/docs/modules/typescript/shared/log/typings.md +82 -0
  155. package/docs/modules/typescript/shared/mcp/module.md +1 -1
  156. package/docs/modules/typescript/shared/mcp/typings.md +8 -1
  157. package/docs/modules/typescript/shared/module.md +22 -6
  158. package/docs/modules/typescript/shared/worker-client/module.md +9 -1
  159. package/docs/modules/typescript/shared/worker-client/typings.md +3 -0
  160. package/docs/modules/typescript/shared/worker-daemon/functions.md +19 -6
  161. package/docs/modules/typescript/shared/worker-daemon/module.md +11 -5
  162. package/docs/modules/typescript/shared/worker-daemon/typings.md +13 -7
  163. package/docs/overview.md +1 -2
  164. package/docs/release-notes/0.4.0.md +80 -0
  165. package/docs/release-notes/0.4.1.md +149 -0
  166. package/docs/release-notes/README.md +1 -0
  167. package/mod.ts +33 -15
  168. package/package.json +12 -11
  169. package/dist/chunk-JG2UCKLI.mjs +0 -95
  170. package/dist/chunk-JG2UCKLI.mjs.map +0 -7
  171. package/src/cli.ts +0 -71
  172. package/src/shared/auto-capture/classes/auto-capture-controller.class.ts +0 -62
  173. package/src/shared/auto-capture/constants/auto-capture-defaults.constant.ts +0 -15
  174. package/src/shared/auto-capture/functions/build-capture-prompt.function.ts +0 -27
  175. package/src/shared/auto-capture/functions/evaluate-trigger.function.ts +0 -50
  176. package/src/shared/auto-capture/index.ts +0 -7
  177. package/src/shared/auto-capture/typings/auto-capture-config.interface.ts +0 -13
  178. package/src/shared/auto-capture/typings/auto-capture-state.interface.ts +0 -13
  179. package/src/shared/auto-capture/typings/auto-capture-trigger.interface.ts +0 -7
  180. package/src/shared/cli/constants/defaults.constant.ts +0 -19
  181. package/src/shared/cli/constants/global-help.constant.ts +0 -73
  182. package/src/shared/cli/constants/help-text.constant.ts +0 -4
  183. package/src/shared/cli/constants/leaf-help.constant.ts +0 -219
  184. package/src/shared/cli/constants/memory-protocol-body.constant.ts +0 -39
  185. package/src/shared/cli/constants/query-guidance-body.constant.ts +0 -37
  186. package/src/shared/cli/constants/subcommand-help.constant.ts +0 -195
  187. package/src/shared/cli/functions/collect-files.function.ts +0 -55
  188. package/src/shared/cli/functions/compute-section-kbid.function.ts +0 -49
  189. package/src/shared/cli/functions/dispatch-command.function.ts +0 -390
  190. package/src/shared/cli/functions/ensure-db.function.ts +0 -21
  191. package/src/shared/cli/functions/error-to-message.function.ts +0 -9
  192. package/src/shared/cli/functions/find-db.function.ts +0 -20
  193. package/src/shared/cli/functions/format-mcp-output.function.ts +0 -41
  194. package/src/shared/cli/functions/format-output.function.ts +0 -95
  195. package/src/shared/cli/functions/format-text-output.function.ts +0 -42
  196. package/src/shared/cli/functions/generate-group-help.function.ts +0 -41
  197. package/src/shared/cli/functions/generate-help.function.ts +0 -654
  198. package/src/shared/cli/functions/handle-data-command.function.ts +0 -67
  199. package/src/shared/cli/functions/handle-mcp.function.ts +0 -56
  200. package/src/shared/cli/functions/handle-migrate.function.ts +0 -64
  201. package/src/shared/cli/functions/hydrate-search-previews.function.ts +0 -29
  202. package/src/shared/cli/functions/install-default-skills.function.ts +0 -296
  203. package/src/shared/cli/functions/is-stdin-tty.function.ts +0 -12
  204. package/src/shared/cli/functions/parse-args.function.ts +0 -156
  205. package/src/shared/cli/functions/prompt-user.function.ts +0 -36
  206. package/src/shared/cli/functions/resolve-skill-names.function.ts +0 -43
  207. package/src/shared/cli/functions/run-agent-create.function.ts +0 -114
  208. package/src/shared/cli/functions/run-agent-delete.function.ts +0 -47
  209. package/src/shared/cli/functions/run-agent-get.function.ts +0 -166
  210. package/src/shared/cli/functions/run-agent-list.function.ts +0 -58
  211. package/src/shared/cli/functions/run-check.function.ts +0 -159
  212. package/src/shared/cli/functions/run-cli.function.ts +0 -299
  213. package/src/shared/cli/functions/run-content.function.ts +0 -47
  214. package/src/shared/cli/functions/run-db-init.function.ts +0 -44
  215. package/src/shared/cli/functions/run-db-migrate.function.ts +0 -40
  216. package/src/shared/cli/functions/run-export.function.ts +0 -40
  217. package/src/shared/cli/functions/run-gc.function.ts +0 -51
  218. package/src/shared/cli/functions/run-init.function.ts +0 -93
  219. package/src/shared/cli/functions/run-learn.function.ts +0 -223
  220. package/src/shared/cli/functions/run-migrate.function.ts +0 -85
  221. package/src/shared/cli/functions/run-rebuild.function.ts +0 -47
  222. package/src/shared/cli/functions/run-recall.function.ts +0 -66
  223. package/src/shared/cli/functions/run-search.function.ts +0 -133
  224. package/src/shared/cli/functions/run-skill-delete.function.ts +0 -47
  225. package/src/shared/cli/functions/run-skill-get.function.ts +0 -90
  226. package/src/shared/cli/functions/run-skill-learn.function.ts +0 -70
  227. package/src/shared/cli/functions/run-skill-list.function.ts +0 -74
  228. package/src/shared/cli/functions/run-status.function.ts +0 -29
  229. package/src/shared/cli/functions/run-unlearn.function.ts +0 -58
  230. package/src/shared/cli/functions/version-gate.function.ts +0 -44
  231. package/src/shared/cli/functions/wrap-command.function.ts +0 -34
  232. package/src/shared/cli/index.ts +0 -55
  233. package/src/shared/cli/typings/agent-create-client.interface.ts +0 -47
  234. package/src/shared/cli/typings/agent-get-client.interface.ts +0 -39
  235. package/src/shared/cli/typings/check-client.interface.ts +0 -66
  236. package/src/shared/cli/typings/cli-deps.interface.ts +0 -54
  237. package/src/shared/cli/typings/cli-options.interface.ts +0 -72
  238. package/src/shared/cli/typings/command-result.model.ts +0 -15
  239. package/src/shared/cli/typings/disconnectable-client.interface.ts +0 -29
  240. package/src/shared/cli/typings/dispatch-client.type.ts +0 -46
  241. package/src/shared/cli/typings/learn-client.interface.ts +0 -53
  242. package/src/shared/cli/typings/learn-io.interface.ts +0 -5
  243. package/src/shared/cli/typings/learn-result.model.ts +0 -27
  244. package/src/shared/cli/typings/search-client.interface.ts +0 -73
  245. package/src/shared/cli/typings/search-display.model.ts +0 -54
  246. package/src/shared/dir-resolver/functions/join-path.function.ts +0 -13
  247. package/src/shared/dir-resolver/functions/resolve-base-dir.function.ts +0 -25
  248. package/src/shared/dir-resolver/functions/resolve-wasm-dir.function.ts +0 -5
  249. package/src/shared/dir-resolver/functions/resolve-worker-script.function.ts +0 -13
  250. package/src/shared/dir-resolver/index.ts +0 -11
  251. package/src/shared/dir-resolver/typings/base-dir.interface.ts +0 -4
  252. package/src/shared/embedding/classes/null-embedding-provider.class.ts +0 -29
  253. package/src/shared/embedding/constants/near-duplicate-thresholds.constant.ts +0 -17
  254. package/src/shared/embedding/functions/build-vector-index.function.ts +0 -79
  255. package/src/shared/embedding/functions/cosine-similarity.function.ts +0 -31
  256. package/src/shared/embedding/functions/detect-near-duplicates.function.ts +0 -69
  257. package/src/shared/embedding/functions/jaccard-coefficient.function.ts +0 -26
  258. package/src/shared/embedding/functions/read-vector-index-meta.function.ts +0 -44
  259. package/src/shared/embedding/functions/rrf-fuse.function.ts +0 -33
  260. package/src/shared/embedding/functions/search-vectors.function.ts +0 -59
  261. package/src/shared/embedding/index.ts +0 -20
  262. package/src/shared/embedding/typings/embedding-config.interface.ts +0 -23
  263. package/src/shared/embedding/typings/embedding-provider.interface.ts +0 -25
  264. package/src/shared/embedding/typings/near-duplicate-candidate.model.ts +0 -25
  265. package/src/shared/embedding/typings/near-duplicate-result.model.ts +0 -26
  266. package/src/shared/embedding/typings/vector-index-entry.model.ts +0 -13
  267. package/src/shared/embedding/typings/vector-index-meta.model.ts +0 -14
  268. package/src/shared/embedding/typings/vector-search-result.model.ts +0 -8
  269. package/src/shared/hash/functions/compute-sha256.ts +0 -17
  270. package/src/shared/hash/index.ts +0 -1
  271. package/src/shared/mcp/classes/mcp-server.class.ts +0 -480
  272. package/src/shared/mcp/constants/mcp-error-codes.constant.ts +0 -30
  273. package/src/shared/mcp/constants/tool-agent-create.constant.ts +0 -39
  274. package/src/shared/mcp/constants/tool-agent-delete.constant.ts +0 -26
  275. package/src/shared/mcp/constants/tool-agent-get.constant.ts +0 -24
  276. package/src/shared/mcp/constants/tool-agent-list.constant.ts +0 -18
  277. package/src/shared/mcp/constants/tool-auto-capture-review.constant.ts +0 -32
  278. package/src/shared/mcp/constants/tool-check.constant.ts +0 -21
  279. package/src/shared/mcp/constants/tool-content.constant.ts +0 -29
  280. package/src/shared/mcp/constants/tool-export.constant.ts +0 -27
  281. package/src/shared/mcp/constants/tool-gc.constant.ts +0 -21
  282. package/src/shared/mcp/constants/tool-learn.constant.ts +0 -58
  283. package/src/shared/mcp/constants/tool-rebuild.constant.ts +0 -21
  284. package/src/shared/mcp/constants/tool-recall.constant.ts +0 -36
  285. package/src/shared/mcp/constants/tool-retrieve.constant.ts +0 -31
  286. package/src/shared/mcp/constants/tool-search.constant.ts +0 -51
  287. package/src/shared/mcp/constants/tool-skill-delete.constant.ts +0 -24
  288. package/src/shared/mcp/constants/tool-skill-get.constant.ts +0 -27
  289. package/src/shared/mcp/constants/tool-skill-learn.constant.ts +0 -37
  290. package/src/shared/mcp/constants/tool-skill-list.constant.ts +0 -18
  291. package/src/shared/mcp/constants/tool-status.constant.ts +0 -20
  292. package/src/shared/mcp/constants/tool-unlearn.constant.ts +0 -25
  293. package/src/shared/mcp/functions/as-boolean-or-undefined.function.ts +0 -11
  294. package/src/shared/mcp/functions/as-string-array-or-undefined.function.ts +0 -17
  295. package/src/shared/mcp/functions/as-string-array.function.ts +0 -15
  296. package/src/shared/mcp/functions/as-string.function.ts +0 -10
  297. package/src/shared/mcp/functions/build-skills-text.function.ts +0 -43
  298. package/src/shared/mcp/functions/create-mcp-server.function.ts +0 -14
  299. package/src/shared/mcp/functions/create-prompt-definitions.function.ts +0 -102
  300. package/src/shared/mcp/functions/create-resource-templates.function.ts +0 -23
  301. package/src/shared/mcp/functions/create-tool-definitions.function.ts +0 -530
  302. package/src/shared/mcp/functions/extract-skill-arguments.function.ts +0 -27
  303. package/src/shared/mcp/functions/handle-agent-create.function.ts +0 -116
  304. package/src/shared/mcp/functions/handle-agent-delete.function.ts +0 -50
  305. package/src/shared/mcp/functions/handle-agent-get.function.ts +0 -160
  306. package/src/shared/mcp/functions/handle-agent-list.function.ts +0 -50
  307. package/src/shared/mcp/functions/handle-agent-prompt.function.ts +0 -68
  308. package/src/shared/mcp/functions/handle-completion.function.ts +0 -114
  309. package/src/shared/mcp/functions/handle-mcp-request.function.ts +0 -202
  310. package/src/shared/mcp/functions/handle-prompt-get.function.ts +0 -220
  311. package/src/shared/mcp/functions/handle-recall.function.ts +0 -66
  312. package/src/shared/mcp/functions/handle-resource-read.function.ts +0 -56
  313. package/src/shared/mcp/functions/handle-roots-list.function.ts +0 -29
  314. package/src/shared/mcp/functions/handle-skill-prompt.function.ts +0 -44
  315. package/src/shared/mcp/functions/handle-tool-auto-capture-review.function.ts +0 -24
  316. package/src/shared/mcp/functions/handle-tool-call.function.ts +0 -560
  317. package/src/shared/mcp/functions/handle-tool-check.function.ts +0 -21
  318. package/src/shared/mcp/functions/handle-tool-content.function.ts +0 -23
  319. package/src/shared/mcp/functions/handle-tool-export.function.ts +0 -25
  320. package/src/shared/mcp/functions/handle-tool-gc.function.ts +0 -21
  321. package/src/shared/mcp/functions/handle-tool-learn.function.ts +0 -69
  322. package/src/shared/mcp/functions/handle-tool-rebuild.function.ts +0 -21
  323. package/src/shared/mcp/functions/handle-tool-retrieve.function.ts +0 -40
  324. package/src/shared/mcp/functions/handle-tool-search.function.ts +0 -47
  325. package/src/shared/mcp/functions/handle-tool-skill-delete.function.ts +0 -34
  326. package/src/shared/mcp/functions/handle-tool-skill-get.function.ts +0 -59
  327. package/src/shared/mcp/functions/handle-tool-skill-learn.function.ts +0 -61
  328. package/src/shared/mcp/functions/handle-tool-skill-list.function.ts +0 -39
  329. package/src/shared/mcp/functions/handle-tool-status.function.ts +0 -21
  330. package/src/shared/mcp/functions/handle-tool-unlearn.function.ts +0 -24
  331. package/src/shared/mcp/functions/parse-agent-meta.function.ts +0 -27
  332. package/src/shared/mcp/functions/parse-skill-arguments.function.ts +0 -36
  333. package/src/shared/mcp/functions/parse-skill-content.function.ts +0 -38
  334. package/src/shared/mcp/functions/read-agent-meta.function.ts +0 -41
  335. package/src/shared/mcp/functions/resolve-skill-refs.function.ts +0 -50
  336. package/src/shared/mcp/functions/run-startup-health-check.function.ts +0 -34
  337. package/src/shared/mcp/functions/serialize-skill-content.function.ts +0 -12
  338. package/src/shared/mcp/functions/should-emit-log.function.ts +0 -38
  339. package/src/shared/mcp/index.ts +0 -28
  340. package/src/shared/mcp/typings/agent-types.interface.ts +0 -39
  341. package/src/shared/mcp/typings/log-types.interface.ts +0 -26
  342. package/src/shared/mcp/typings/mcp-capabilities.interface.ts +0 -16
  343. package/src/shared/mcp/typings/mcp-client.interface.ts +0 -317
  344. package/src/shared/mcp/typings/mcp-completion.interface.ts +0 -45
  345. package/src/shared/mcp/typings/mcp-content-result.model.ts +0 -9
  346. package/src/shared/mcp/typings/mcp-export-result.model.ts +0 -11
  347. package/src/shared/mcp/typings/mcp-gc-result.model.ts +0 -15
  348. package/src/shared/mcp/typings/mcp-integrity-check-result.model.ts +0 -17
  349. package/src/shared/mcp/typings/mcp-integrity-error.model.ts +0 -15
  350. package/src/shared/mcp/typings/mcp-notification.interface.ts +0 -9
  351. package/src/shared/mcp/typings/mcp-rebuild-result.model.ts +0 -9
  352. package/src/shared/mcp/typings/mcp-request.interface.ts +0 -11
  353. package/src/shared/mcp/typings/mcp-resource-result.interface.ts +0 -12
  354. package/src/shared/mcp/typings/mcp-resource-template.interface.ts +0 -11
  355. package/src/shared/mcp/typings/mcp-response.interface.ts +0 -18
  356. package/src/shared/mcp/typings/mcp-server-info.interface.ts +0 -7
  357. package/src/shared/mcp/typings/mcp-server-state.interface.ts +0 -17
  358. package/src/shared/mcp/typings/mcp-tool-annotations.interface.ts +0 -32
  359. package/src/shared/mcp/typings/mcp-tool-definition.interface.ts +0 -16
  360. package/src/shared/mcp/typings/mcp-tool-result.interface.ts +0 -19
  361. package/src/shared/mcp/typings/mcp-types.interface.ts +0 -158
  362. package/src/shared/mcp/typings/mcp-worker-client.interface.ts +0 -243
  363. package/src/shared/mcp/typings/prompt-types.interface.ts +0 -39
  364. package/src/shared/mcp/typings/remove-section-result.model.ts +0 -10
  365. package/src/shared/mcp/typings/sampling-types.interface.ts +0 -48
  366. package/src/shared/mcp/typings/skill-types.interface.ts +0 -29
  367. package/src/shared/mcp/typings/tool-call-result.model.ts +0 -18
  368. package/src/shared/mod.ts +0 -1
  369. package/src/shared/platform/functions/get-ipc-path.function.ts +0 -19
  370. package/src/shared/platform/functions/get-tmpdir.function.ts +0 -8
  371. package/src/shared/platform/functions/is-process-alive.function.ts +0 -17
  372. package/src/shared/platform/index.ts +0 -3
  373. package/src/shared/runtime/functions/detect-runtime.ts +0 -14
  374. package/src/shared/runtime/functions/get-args.ts +0 -16
  375. package/src/shared/runtime/index.ts +0 -3
  376. package/src/shared/runtime/typings/runtime.ts +0 -2
  377. package/src/shared/sync/functions/build-import-report.function.ts +0 -40
  378. package/src/shared/sync/functions/parse-export-entry.function.ts +0 -45
  379. package/src/shared/sync/functions/resolve-conflict.function.ts +0 -31
  380. package/src/shared/sync/functions/serialize-export-entry.function.ts +0 -18
  381. package/src/shared/sync/index.ts +0 -9
  382. package/src/shared/sync/typings/conflict-resolution.type.ts +0 -8
  383. package/src/shared/sync/typings/export-entry.interface.ts +0 -13
  384. package/src/shared/sync/typings/export-options.interface.ts +0 -9
  385. package/src/shared/sync/typings/import-options.interface.ts +0 -7
  386. package/src/shared/sync/typings/import-report.interface.ts +0 -15
  387. package/src/shared/version/constants/version.constant.ts +0 -2
  388. package/src/shared/version/index.ts +0 -1
  389. package/src/shared/wasm-codec/functions/decode-add-section-result.function.ts +0 -112
  390. package/src/shared/wasm-codec/functions/decode-compose-output.function.ts +0 -16
  391. package/src/shared/wasm-codec/functions/decode-document-manifest-list.function.ts +0 -70
  392. package/src/shared/wasm-codec/functions/decode-document-manifest.function.ts +0 -87
  393. package/src/shared/wasm-codec/functions/decode-f32.function.ts +0 -16
  394. package/src/shared/wasm-codec/functions/decode-key-value-text.function.ts +0 -15
  395. package/src/shared/wasm-codec/functions/decode-one-recall-result.function.ts +0 -86
  396. package/src/shared/wasm-codec/functions/decode-option-string.function.ts +0 -24
  397. package/src/shared/wasm-codec/functions/decode-recall-document.function.ts +0 -59
  398. package/src/shared/wasm-codec/functions/decode-recall-reference.function.ts +0 -52
  399. package/src/shared/wasm-codec/functions/decode-recall-result.function.ts +0 -267
  400. package/src/shared/wasm-codec/functions/decode-recall-sibling.function.ts +0 -43
  401. package/src/shared/wasm-codec/functions/decode-remove-flag.function.ts +0 -3
  402. package/src/shared/wasm-codec/functions/decode-scored-results.function.ts +0 -194
  403. package/src/shared/wasm-codec/functions/decode-section-match.function.ts +0 -80
  404. package/src/shared/wasm-codec/functions/decode-section-record-list.function.ts +0 -20
  405. package/src/shared/wasm-codec/functions/decode-section-record-trailing.function.ts +0 -75
  406. package/src/shared/wasm-codec/functions/decode-section-record.function.ts +0 -85
  407. package/src/shared/wasm-codec/functions/decode-section-records.function.ts +0 -249
  408. package/src/shared/wasm-codec/functions/decode-section-type.function.ts +0 -30
  409. package/src/shared/wasm-codec/functions/decode-string.function.ts +0 -22
  410. package/src/shared/wasm-codec/functions/decode-u32.function.ts +0 -16
  411. package/src/shared/wasm-codec/functions/decode-u64.function.ts +0 -16
  412. package/src/shared/wasm-codec/functions/decode-wasm-list.function.ts +0 -31
  413. package/src/shared/wasm-codec/functions/encode-add-section-params.function.ts +0 -102
  414. package/src/shared/wasm-codec/functions/encode-group-params.function.ts +0 -28
  415. package/src/shared/wasm-codec/functions/encode-identifier-list.function.ts +0 -17
  416. package/src/shared/wasm-codec/functions/encode-kbid-list.function.ts +0 -17
  417. package/src/shared/wasm-codec/functions/encode-option-string.function.ts +0 -14
  418. package/src/shared/wasm-codec/functions/encode-recall-params.function.ts +0 -68
  419. package/src/shared/wasm-codec/functions/encode-search-params.function.ts +0 -12
  420. package/src/shared/wasm-codec/functions/encode-section-type.function.ts +0 -18
  421. package/src/shared/wasm-codec/functions/encode-string.function.ts +0 -9
  422. package/src/shared/wasm-codec/functions/encode-type-filter-param.function.ts +0 -13
  423. package/src/shared/wasm-codec/functions/encode-u32.function.ts +0 -5
  424. package/src/shared/wasm-codec/functions/encode-update-section-params.function.ts +0 -16
  425. package/src/shared/wasm-codec/index.ts +0 -49
  426. package/src/shared/wasm-codec/typings/add-section-input.model.ts +0 -45
  427. package/src/shared/wasm-codec/typings/add-section-result.model.ts +0 -28
  428. package/src/shared/wasm-codec/typings/document-manifest.model.ts +0 -20
  429. package/src/shared/wasm-codec/typings/document-section.model.ts +0 -12
  430. package/src/shared/wasm-codec/typings/item-decoder.type.ts +0 -10
  431. package/src/shared/wasm-codec/typings/near-duplicate.model.ts +0 -16
  432. package/src/shared/wasm-codec/typings/paged-search-result.model.ts +0 -22
  433. package/src/shared/wasm-codec/typings/section-match.model.ts +0 -31
  434. package/src/shared/wasm-codec/typings/section-record-trailing.model.ts +0 -38
  435. package/src/shared/wasm-codec/typings/section-record.model.ts +0 -66
  436. package/src/shared/wasm-codec/typings/section-type-result.model.ts +0 -12
  437. package/src/shared/worker-client/classes/worker-client.class.ts +0 -466
  438. package/src/shared/worker-client/functions/compute-context-id.function.ts +0 -18
  439. package/src/shared/worker-client/functions/create-worker-client.function.ts +0 -70
  440. package/src/shared/worker-client/functions/discover-daemon.function.ts +0 -47
  441. package/src/shared/worker-client/functions/handle-ipc-data.function.ts +0 -49
  442. package/src/shared/worker-client/functions/resolve-db-path.function.ts +0 -21
  443. package/src/shared/worker-client/functions/send-ipc-request.function.ts +0 -39
  444. package/src/shared/worker-client/functions/spawn-daemon.function.ts +0 -35
  445. package/src/shared/worker-client/functions/wait-for-daemon.function.ts +0 -34
  446. package/src/shared/worker-client/index.ts +0 -44
  447. package/src/shared/worker-client/typings/add-section-result.model.ts +0 -39
  448. package/src/shared/worker-client/typings/content-result.model.ts +0 -12
  449. package/src/shared/worker-client/typings/daemon-info.model.ts +0 -7
  450. package/src/shared/worker-client/typings/export-result.model.ts +0 -14
  451. package/src/shared/worker-client/typings/gc-result.model.ts +0 -18
  452. package/src/shared/worker-client/typings/integrity-check-result.model.ts +0 -43
  453. package/src/shared/worker-client/typings/json-rpc-response.interface.ts +0 -17
  454. package/src/shared/worker-client/typings/migrate-result.model.ts +0 -11
  455. package/src/shared/worker-client/typings/pending-call.interface.ts +0 -7
  456. package/src/shared/worker-client/typings/rebuild-result.model.ts +0 -12
  457. package/src/shared/worker-client/typings/recall-document.model.ts +0 -16
  458. package/src/shared/worker-client/typings/recall-params.model.ts +0 -15
  459. package/src/shared/worker-client/typings/recall-reference.model.ts +0 -32
  460. package/src/shared/worker-client/typings/recall-result.model.ts +0 -98
  461. package/src/shared/worker-client/typings/recall-sibling.model.ts +0 -11
  462. package/src/shared/worker-client/typings/recall-single-result.model.ts +0 -41
  463. package/src/shared/worker-client/typings/remove-section-result.model.ts +0 -7
  464. package/src/shared/worker-client/typings/search-params.model.ts +0 -14
  465. package/src/shared/worker-client/typings/search-result.model.ts +0 -43
  466. package/src/shared/worker-client/typings/section.model.ts +0 -43
  467. package/src/shared/worker-client/typings/status-result.model.ts +0 -14
  468. package/src/shared/worker-client/typings/version-status.model.ts +0 -28
  469. package/src/shared/worker-client/typings/worker-client-error.interface.ts +0 -8
  470. package/src/shared/worker-client/typings/worker-client-options.interface.ts +0 -30
  471. package/src/shared/worker-daemon/classes/ipc-error.class.ts +0 -22
  472. package/src/shared/worker-daemon/classes/worker-daemon.class.ts +0 -1291
  473. package/src/shared/worker-daemon/constants/daemon-defaults.constant.ts +0 -29
  474. package/src/shared/worker-daemon/constants/wasm-method-map.constant.ts +0 -69
  475. package/src/shared/worker-daemon/functions/build-ipc-error-response.function.ts +0 -16
  476. package/src/shared/worker-daemon/functions/check-catalog-version.function.ts +0 -54
  477. package/src/shared/worker-daemon/functions/check-preconditions.function.ts +0 -28
  478. package/src/shared/worker-daemon/functions/create-host-imports.function.ts +0 -328
  479. package/src/shared/worker-daemon/functions/create-ipc-server.function.ts +0 -87
  480. package/src/shared/worker-daemon/functions/detect-stale-pid.function.ts +0 -33
  481. package/src/shared/worker-daemon/functions/dispatch-request.function.ts +0 -190
  482. package/src/shared/worker-daemon/functions/handle-check-version.function.ts +0 -74
  483. package/src/shared/worker-daemon/functions/handle-config-method.function.ts +0 -27
  484. package/src/shared/worker-daemon/functions/handle-read-ops.function.ts +0 -236
  485. package/src/shared/worker-daemon/functions/handle-write-ops.function.ts +0 -257
  486. package/src/shared/worker-daemon/functions/load-wasm-modules.function.ts +0 -95
  487. package/src/shared/worker-daemon/functions/parse-auto-capture-section.function.ts +0 -51
  488. package/src/shared/worker-daemon/functions/parse-catalog-version.function.ts +0 -20
  489. package/src/shared/worker-daemon/functions/parse-embedding-section.function.ts +0 -38
  490. package/src/shared/worker-daemon/functions/parse-worker-toml.function.ts +0 -104
  491. package/src/shared/worker-daemon/functions/read-config.function.ts +0 -83
  492. package/src/shared/worker-daemon/functions/run-startup-integrity-check.function.ts +0 -55
  493. package/src/shared/worker-daemon/functions/run-worker.function.ts +0 -57
  494. package/src/shared/worker-daemon/functions/scan-near-duplicates.function.ts +0 -92
  495. package/src/shared/worker-daemon/functions/start-daemon.function.ts +0 -74
  496. package/src/shared/worker-daemon/functions/wasm-bridge.function.ts +0 -144
  497. package/src/shared/worker-daemon/functions/wasm-memory-helpers.function.ts +0 -41
  498. package/src/shared/worker-daemon/functions/write-lock.function.ts +0 -49
  499. package/src/shared/worker-daemon/index.ts +0 -16
  500. package/src/shared/worker-daemon/typings/allocator-ref.interface.ts +0 -16
  501. package/src/shared/worker-daemon/typings/daemon-config.interface.ts +0 -20
  502. package/src/shared/worker-daemon/typings/fs-adapter.interface.ts +0 -22
  503. package/src/shared/worker-daemon/typings/handler-context.interface.ts +0 -19
  504. package/src/shared/worker-daemon/typings/ipc-handler.interface.ts +0 -39
  505. package/src/shared/worker-daemon/typings/memory-ref.interface.ts +0 -13
  506. package/src/shared/worker-daemon/typings/wasm-fn.type.ts +0 -2
  507. package/src/shared/worker-daemon/typings/wasm-modules.interface.ts +0 -7
  508. package/src/shared/worker-daemon/typings/write-lock.interface.ts +0 -13
  509. package/src/wasm/fs-database/kbdb_fs_database.d.ts +0 -259
  510. package/src/wasm/fs-database/kbdb_fs_database.js +0 -515
  511. package/src/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
  512. package/src/wasm/fs-database/kbdb_fs_database_bg.wasm.d.ts +0 -35
  513. package/src/wasm/fs-database/package.json +0 -13
  514. package/src/wasm/kb-worker/kbdb_worker.d.ts +0 -650
  515. package/src/wasm/kb-worker/kbdb_worker.js +0 -1181
  516. package/src/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
  517. package/src/wasm/kb-worker/kbdb_worker_bg.wasm.d.ts +0 -77
  518. package/src/wasm/kb-worker/package.json +0 -13
  519. package/src/wasm/query-parser/kbdb_query_parser.d.ts +0 -195
  520. package/src/wasm/query-parser/kbdb_query_parser.js +0 -403
  521. package/src/wasm/query-parser/kbdb_query_parser_bg.wasm.d.ts +0 -25
  522. package/src/wasm/query-parser/package.json +0 -13
  523. package/src/worker.ts +0 -42
@@ -0,0 +1,80 @@
1
+ # 0.4.0
2
+
3
+ *Minor release -- 2026-06-25*
4
+
5
+ Rust engine refactor, daemon reliability, publishing
6
+ fixes, and documentation accuracy audit.
7
+
8
+ ---
9
+
10
+ ## Engine
11
+
12
+ - **Rust engine refactor** -- extracted specs into
13
+ separate files, split large modules across all
14
+ four crates for readability and maintainability.
15
+
16
+ ## Daemon
17
+
18
+ - **Reliability fixes** -- improved daemon startup,
19
+ error handling, and shutdown behaviour.
20
+ - **UX improvements** -- clearer error messages and
21
+ exit codes from the worker daemon.
22
+
23
+ ## CLI
24
+
25
+ - **Optional `--db`** -- the `--db` flag is now
26
+ optional. kbdb walks up from the current directory
27
+ to find `.kbdb`. Set `KBDB_DB_DIR` as an
28
+ alternative. Resolution order: `--db` flag >
29
+ `KBDB_DB_DIR` env var > upward traversal from cwd.
30
+ - **Request timeout** -- per-request timeout via
31
+ `--timeout-ms` flag or `KBDB_DAEMON_TIMEOUT` env
32
+ var (default 30 000 ms).
33
+ - **Automatic retry** -- on timeout, the CLI
34
+ respawns the daemon and retries. Configurable via
35
+ `--retry` flag or `KBDB_RETRY` env var (default 5).
36
+ - **Breaking: `KBDB_DIR` renamed to `KBDB_DB_DIR`**
37
+ -- update MCP server configs and scripts that
38
+ reference the old variable name.
39
+
40
+ ## MCP Server
41
+
42
+ - **Version reports package version** -- the MCP
43
+ `initialize` response now uses the `VERSION`
44
+ constant instead of a hardcoded `'0.1.0'` string.
45
+ Clients see the real server version.
46
+ - **Retry on timeout** -- tool calls and resource
47
+ reads automatically retry with a fresh daemon
48
+ connection when the worker times out.
49
+
50
+ ## Packaging
51
+
52
+ - **Trimmed npm package** -- removed raw TypeScript
53
+ source files from the npm tarball. Package dropped
54
+ from 908 files / 6.7 MB to 545 files / 4.5 MB.
55
+ JSR still includes sources as required.
56
+
57
+ ## Documentation
58
+
59
+ - **README accuracy audit** -- removed overstated
60
+ claims about reStructuredText/AsciiDoc parsing
61
+ and sync feature. Added npm/JSR/license badges
62
+ and a beta status line.
63
+ - **CLAUDE.md updated** -- corrected outdated
64
+ statement about the WASM-to-host bridge being
65
+ stubbed. The bridge is fully implemented and
66
+ tested.
67
+ - **Docs alignment** -- knowledge-base guide updated
68
+ to match README on supported file formats.
69
+
70
+ ---
71
+
72
+ ## Upgrade
73
+
74
+ ```sh
75
+ # Node.js
76
+ npm install -g @dikolab/kbdb@0.4.0
77
+
78
+ # Deno
79
+ deno install -Agf jsr:@dikolab/kbdb/cli
80
+ ```
@@ -0,0 +1,149 @@
1
+ # 0.4.1
2
+
3
+ *Patch release -- 2026-06-26*
4
+
5
+ Built-in TF-IDF embedding provider so hybrid search
6
+ works out of the box with zero configuration.
7
+ Structured logging across the entire TypeScript
8
+ layer with configurable verbosity. Daemon lifecycle
9
+ fixes for reliable shutdown on bare Linux TTY.
10
+ Non-interactive mode for scripts, CI, and automated
11
+ testing.
12
+
13
+ ---
14
+
15
+ ## Engine
16
+
17
+ - **New WASM crate: `kbdb-default-embedding`** --
18
+ computes 256-dimensional feature-hashed sublinear
19
+ TF vectors using FNV-1a with the sign trick
20
+ (Weinberger et al., 2009). Pure computation, no
21
+ host imports.
22
+ - **Pipeline moved to `kbdb-shared`** -- the 9-stage
23
+ tokenization pipeline (NFC normalization, Unicode
24
+ segmentation, camelCase splitting, stop-word
25
+ removal, synonym expansion, Snowball stemming)
26
+ moved from `kbdb-query-parser` to `kbdb-shared`.
27
+ Both `kbdb-query-parser` and
28
+ `kbdb-default-embedding` now share a single source
29
+ of truth, keeping TF-IDF vectors token-consistent
30
+ with the lexical index.
31
+
32
+ ## Daemon
33
+
34
+ - **Loads `default-embedding.wasm` at startup** --
35
+ the worker daemon loads the new standalone WASM
36
+ module alongside the existing `kb-worker.wasm`.
37
+ If the module is missing, the daemon gracefully
38
+ falls back to `NullEmbeddingProvider`.
39
+ - **Daemon lifecycle fixes** -- socket-level
40
+ connection tracking replaces the broken
41
+ server-level `close` handler, so the idle timer
42
+ fires correctly. `stop()` force-closes lingering
43
+ sockets. `worker stop` polls until the daemon
44
+ actually exits (5 s cap) instead of fire-and-forget
45
+ SIGTERM. `retryOnTimeout` kills a stuck daemon
46
+ before spawning a fresh one.
47
+ - **Accepts `--log-level`** -- the daemon parses an
48
+ optional `--log-level <level>` argument forwarded
49
+ by the spawner from the `KBDB_LOG_LEVEL` env var.
50
+
51
+ ## CLI
52
+
53
+ - **`--non-interactive` flag** -- suppresses
54
+ interactive prompts and uses default values.
55
+ When set, data commands that find no `.kbdb`
56
+ directory return an error instead of prompting
57
+ to create one.
58
+ - **`KBDB_NON_INTERACTIVE` env var** -- same effect
59
+ as `--non-interactive`. Accepts `1` or `true`.
60
+ CLI flag takes priority.
61
+ - **Deprecation warnings fixed** -- `--init` and
62
+ `--migrate` deprecation messages now emit at all
63
+ log levels. Previously they fired before log
64
+ configuration and were suppressed.
65
+
66
+ ## Embedding
67
+
68
+ - **`TfidfEmbeddingProvider`** -- new provider backed
69
+ by the `kbdb-default-embedding` WASM module.
70
+ Returns 256-dimensional L2-normalized vectors.
71
+ Model name: `tfidf-v1`.
72
+ - **New factory default** -- when no `[embedding]`
73
+ section is present in `worker.toml`, the factory
74
+ returns `TfidfEmbeddingProvider` instead of
75
+ `NullEmbeddingProvider`. Hybrid and vector search
76
+ work without configuration.
77
+ - **Explicit disable** -- setting `provider = "none"`
78
+ in `worker.toml` still returns
79
+ `NullEmbeddingProvider`, which rejects hybrid and
80
+ vector search with a structured error.
81
+
82
+ ## Logging
83
+
84
+ - **New `log` module** (`src/shared/log/`) --
85
+ structured logging with four levels (`DEBUG`,
86
+ `INFO`, `WARNING`, `ERROR`), per-level Unicode
87
+ icons (▸ℹ⚠✖), per-level ANSI colors, and
88
+ configurable output targets. Default level is
89
+ `ERROR` (errors only).
90
+ - **CLI verbose flags** -- `-v` (warnings), `-vv`
91
+ (info), `-vvv` (debug). `-v` is reassigned from
92
+ `--version` to `--verbose`; `--version` has no
93
+ short alias.
94
+ - **`KBDB_LOG_LEVEL` env var** -- accepts `debug`,
95
+ `info`, `warning`, `error` (case-insensitive).
96
+ CLI flags take priority over the env var.
97
+ - **Comprehensive lifecycle logging** -- milestone
98
+ logging at key process points across CLI command
99
+ runners, MCP server lifecycle, worker daemon IPC
100
+ dispatch, embedding providers, worker client
101
+ discovery, and auto-capture. Full IPC lifecycle
102
+ coverage: daemon startup/shutdown, socket
103
+ connections, request dispatch, retry logic,
104
+ daemon discovery, write lock events, and idle
105
+ timer. Pre-throw error logging at all throw
106
+ sites. All `console.error` calls replaced with
107
+ `log()`.
108
+
109
+ ## Documentation
110
+
111
+ - **Hybrid search docs aligned** -- updated
112
+ architecture, CLI/MCP surface, and design
113
+ constraint sections to reflect the new WASM crate
114
+ and `--algo` flag.
115
+ - **Worker daemon docs updated** -- WASM module
116
+ count, loading diagram, and distribution section
117
+ now describe four modules.
118
+ - **Factory docs corrected** -- `type:` references
119
+ fixed to `provider:`, factory mapping table
120
+ updated for the new default.
121
+ - **Log module docs added** -- module overview,
122
+ functions reference, typings reference, and
123
+ constants reference under
124
+ `docs/modules/typescript/shared/log/`.
125
+ - **CLI and worker daemon docs updated** -- verbose
126
+ flags (`-v`/`-vv`/`-vvv`), `--log-level` arg,
127
+ `KBDB_LOG_LEVEL` env var documented across CLI,
128
+ worker daemon, and shared module pages.
129
+ - **E2E test harness hardened** -- `run_kbdb`
130
+ wrapper wraps all `kbdb` calls in `timeout -k 5`
131
+ with SIGKILL fallback. Timeouts report as test
132
+ failures. GNU `coreutils` added to Docker image.
133
+ Non-interactive mode enabled for all E2E tests.
134
+ - **Completed todos and issues archived** -- three
135
+ todo docs (pipeline move, TF-IDF provider, default
136
+ wiring) and two issue docs (daemon lifecycle hang,
137
+ hybrid search errors) moved to `archived/`.
138
+
139
+ ---
140
+
141
+ ## Upgrade
142
+
143
+ ```sh
144
+ # Node.js
145
+ npm install -g @dikolab/kbdb@0.4.1
146
+
147
+ # Deno
148
+ deno install -Agf jsr:@dikolab/kbdb/cli
149
+ ```
@@ -2,6 +2,7 @@
2
2
 
3
3
  ## Releases
4
4
 
5
+ - [0.4.0](0.4.0.md) -- Engine refactor, daemon reliability, publishing fixes
5
6
  - [0.3.2](0.3.2.md) -- Docs alignment, hybrid search highlight, readability
6
7
  - [0.3.1](0.3.1.md) -- MCP reliability fixes, 20 tools, zero test skips
7
8
  - [0.3.0](0.3.0.md) -- Supersession, relaxed queries, export, tags, confidence
package/mod.ts CHANGED
@@ -24,20 +24,38 @@
24
24
  * ```
25
25
  */
26
26
 
27
+ /** Semantic version string matching `package.json`. */
27
28
  export { version } from './src/shared/mod.ts';
28
29
 
29
- export {
30
- createWorkerClient,
31
- WorkerClient,
32
- resolveDbPath,
33
- computeContextId,
34
- } from './src/shared/worker-client/index.ts';
35
-
36
- export type {
37
- WorkerClientOptions,
38
- SearchParams,
39
- SearchResult,
40
- Section,
41
- AddSectionParams,
42
- StatusResult,
43
- } from './src/shared/worker-client/index.ts';
30
+ /** Creates a connected worker client for the given database. */
31
+ export { createWorkerClient } from './src/shared/worker-client/index.ts';
32
+
33
+ /** Persistent client wrapping JSON-RPC calls to the daemon. */
34
+ export { WorkerClient } from './src/shared/worker-client/index.ts';
35
+
36
+ /** Resolves a parent directory to the `.kbdb` path inside it. */
37
+ export { resolveDbPath } from './src/shared/worker-client/index.ts';
38
+
39
+ /** Derives the 16-char hex context ID from an absolute path. */
40
+ export { computeContextId } from './src/shared/worker-client/index.ts';
41
+
42
+ /** Returns a cached client or creates a new one for the given path. */
43
+ export { getOrCreateClient } from './src/shared/worker-client/index.ts';
44
+
45
+ /** Options accepted by {@linkcode createWorkerClient}. */
46
+ export type { WorkerClientOptions } from './src/shared/worker-client/index.ts';
47
+
48
+ /** Parameters for a search query. */
49
+ export type { SearchParams } from './src/shared/worker-client/index.ts';
50
+
51
+ /** A single ranked result returned by search. */
52
+ export type { SearchResult } from './src/shared/worker-client/index.ts';
53
+
54
+ /** Raw section record stored on disk. */
55
+ export type { Section } from './src/shared/worker-client/index.ts';
56
+
57
+ /** Parameters for adding a new section. */
58
+ export type { AddSectionParams } from './src/shared/worker-client/index.ts';
59
+
60
+ /** Database status snapshot returned by `client.status()`. */
61
+ export type { StatusResult } from './src/shared/worker-client/index.ts';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dikolab/kbdb",
3
- "version": "0.3.2",
4
- "description": "CLI tool and MCP server for a file-based knowledge base database",
3
+ "version": "0.4.1",
4
+ "description": "CLI tool and MCP server for a file-based knowledge base database -- index documents, search with ranked results, and recall context for AI agents",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -17,13 +17,15 @@
17
17
  "license": "ISC",
18
18
  "repository": {
19
19
  "type": "git",
20
- "url": "git@diko-gitlab:tech-slaves-internal/knowledge-base-db.git"
20
+ "url": "git+https://gitlab.com/tech-slaves/knowledge-base-db.git"
21
+ },
22
+ "homepage": "https://gitlab.com/tech-slaves/knowledge-base-db#readme",
23
+ "bugs": {
24
+ "url": "https://gitlab.com/tech-slaves/knowledge-base-db/-/issues"
21
25
  },
22
26
  "files": [
23
27
  "dist/**/*",
24
28
  "mod.ts",
25
- "src/**/*",
26
- "!src/**/*.spec.ts",
27
29
  "LICENSE",
28
30
  "README.md",
29
31
  "docs/details/**/*.md",
@@ -37,26 +39,25 @@
37
39
  "module": "./dist/mod.mjs",
38
40
  "types": "./dist/mod.d.ts",
39
41
  "bin": {
40
- "kbdb": "./dist/cli.cjs",
41
- "kbdb-worker": "./dist/kbdb-worker.cjs"
42
+ "kbdb": "./dist/cli.cjs"
42
43
  },
43
44
  "exports": {
44
45
  ".": {
45
- "deno": "./mod.ts",
46
46
  "types": "./dist/mod.d.ts",
47
+ "deno": "./mod.ts",
47
48
  "import": "./dist/mod.mjs",
48
49
  "require": "./dist/mod.cjs",
49
50
  "default": "./dist/mod.mjs"
50
51
  },
51
52
  "./cli": {
53
+ "types": "./dist/cli.d.ts",
52
54
  "deno": "./src/cli.ts",
53
- "types": "./dist/src/cli.d.ts",
54
55
  "import": "./dist/cli.mjs",
55
56
  "default": "./dist/cli.mjs"
56
57
  },
57
58
  "./worker": {
59
+ "types": "./dist/worker.d.ts",
58
60
  "deno": "./src/worker.ts",
59
- "types": "./dist/src/worker.d.ts",
60
61
  "import": "./dist/worker.mjs",
61
62
  "default": "./dist/worker.mjs"
62
63
  }
@@ -69,7 +70,7 @@
69
70
  "lint:fix": "eslint --fix",
70
71
  "test": "vitest --run",
71
72
  "build": "node esbuild.config.js",
72
- "build:wasm": "cd engine && wasm-pack build crates/query-parser --target no-modules --out-dir ../../../src/wasm/query-parser && wasm-pack build crates/fs-database --target no-modules --out-dir ../../../src/wasm/fs-database && wasm-pack build crates/kb-worker --target no-modules --out-dir ../../../src/wasm/kb-worker",
73
+ "build:wasm": "cd engine && wasm-pack build crates/query-parser --target no-modules --out-dir ../../../src/wasm/query-parser && wasm-pack build crates/fs-database --target no-modules --out-dir ../../../src/wasm/fs-database && wasm-pack build crates/default-embedding --target no-modules --out-dir ../../../src/wasm/default-embedding && wasm-pack build crates/kb-worker --target no-modules --out-dir ../../../src/wasm/kb-worker",
73
74
  "build:all": "npm run build:wasm && npm run build"
74
75
  },
75
76
  "devDependencies": {
@@ -1,95 +0,0 @@
1
- // src/shared/runtime/functions/detect-runtime.ts
2
- function detectRuntime() {
3
- if (typeof globalThis !== "undefined" && "Deno" in globalThis) {
4
- return "deno";
5
- }
6
- return "node";
7
- }
8
-
9
- // src/shared/runtime/functions/get-args.ts
10
- function getArgs() {
11
- if (detectRuntime() === "deno") {
12
- const g = globalThis;
13
- const deno = g["Deno"];
14
- return deno?.args ?? [];
15
- }
16
- return process.argv.slice(2);
17
- }
18
-
19
- // src/shared/dir-resolver/functions/resolve-base-dir.function.ts
20
- import { dirname } from "node:path";
21
- import { fileURLToPath } from "node:url";
22
- function resolveScriptDir(entryUrl, entryDirname) {
23
- if (entryDirname) return entryDirname;
24
- if (entryUrl.startsWith("file:"))
25
- return dirname(fileURLToPath(entryUrl));
26
- return dirname(entryUrl);
27
- }
28
- function resolveBaseDir(entryUrl, entryDirname) {
29
- const scriptDir = typeof __dirname !== "undefined" ? __dirname : resolveScriptDir(entryUrl, entryDirname);
30
- return { scriptDir, cwd: process.cwd() };
31
- }
32
-
33
- // src/shared/dir-resolver/functions/join-path.function.ts
34
- import { join } from "node:path";
35
- function isRemoteUrl(path) {
36
- return path.startsWith("http://") || path.startsWith("https://");
37
- }
38
- function joinPath(base, ...segments) {
39
- if (isRemoteUrl(base)) {
40
- const trailing = base.endsWith("/") ? "" : "/";
41
- return base + trailing + segments.join("/");
42
- }
43
- return join(base, ...segments);
44
- }
45
-
46
- // src/shared/dir-resolver/functions/resolve-worker-script.function.ts
47
- function resolveWorkerScript(scriptDir, runtime) {
48
- if (runtime === "deno") {
49
- return joinPath(scriptDir, "worker.ts");
50
- }
51
- return joinPath(scriptDir, "kbdb-worker.cjs");
52
- }
53
-
54
- // src/shared/dir-resolver/functions/resolve-wasm-dir.function.ts
55
- function resolveWasmDir(scriptDir) {
56
- return joinPath(scriptDir, "wasm");
57
- }
58
-
59
- // src/shared/hash/functions/compute-sha256.ts
60
- async function computeSha256(input) {
61
- const data = new TextEncoder().encode(input);
62
- const hash = await crypto.subtle.digest("SHA-256", data);
63
- const bytes = new Uint8Array(hash);
64
- return Array.from(bytes).map((b) => b.toString(16).padStart(2, "0")).join("");
65
- }
66
-
67
- // src/shared/platform/functions/get-ipc-path.function.ts
68
- import { join as join2 } from "node:path";
69
-
70
- // src/shared/platform/functions/get-tmpdir.function.ts
71
- import { tmpdir } from "node:os";
72
- function getTmpdir() {
73
- return tmpdir();
74
- }
75
-
76
- // src/shared/platform/functions/get-ipc-path.function.ts
77
- function getIpcPath(ctx) {
78
- if (process.platform === "win32") {
79
- return `\\\\.\\pipe\\kbdb-${ctx}`;
80
- }
81
- return join2(getTmpdir(), `kbdb-${ctx}.sock`);
82
- }
83
-
84
- export {
85
- detectRuntime,
86
- getArgs,
87
- resolveBaseDir,
88
- isRemoteUrl,
89
- joinPath,
90
- resolveWorkerScript,
91
- resolveWasmDir,
92
- computeSha256,
93
- getIpcPath
94
- };
95
- //# sourceMappingURL=chunk-JG2UCKLI.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/shared/runtime/functions/detect-runtime.ts", "../src/shared/runtime/functions/get-args.ts", "../src/shared/dir-resolver/functions/resolve-base-dir.function.ts", "../src/shared/dir-resolver/functions/join-path.function.ts", "../src/shared/dir-resolver/functions/resolve-worker-script.function.ts", "../src/shared/dir-resolver/functions/resolve-wasm-dir.function.ts", "../src/shared/hash/functions/compute-sha256.ts", "../src/shared/platform/functions/get-ipc-path.function.ts", "../src/shared/platform/functions/get-tmpdir.function.ts"],
4
- "sourcesContent": ["import type { Runtime } from '../typings/runtime.ts';\n\n/**\n * Detects the current JavaScript runtime environment.\n *\n * Returns `'deno'` when the global `Deno` object is present,\n * otherwise returns `'node'`.\n */\nexport function detectRuntime(): Runtime {\n if (typeof globalThis !== 'undefined' && 'Deno' in globalThis) {\n return 'deno';\n }\n return 'node';\n}\n", "import { detectRuntime } from './detect-runtime.ts';\n\n/**\n * Returns the command-line arguments for the current runtime.\n *\n * In Deno, reads `Deno.args`; in Node.js, slices `process.argv`\n * past the interpreter and script entries.\n */\nexport function getArgs(): string[] {\n if (detectRuntime() === 'deno') {\n const g = globalThis as Record<string, unknown>;\n const deno = g['Deno'] as { args: string[] } | undefined;\n return deno?.args ?? [];\n }\n return process.argv.slice(2);\n}\n", "import { dirname } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nimport type { BaseDir } from '../typings/base-dir.interface.ts';\n\nexport function resolveScriptDir(\n entryUrl: string,\n entryDirname?: string,\n): string {\n if (entryDirname) return entryDirname;\n if (entryUrl.startsWith('file:'))\n return dirname(fileURLToPath(entryUrl));\n return dirname(entryUrl);\n}\n\nexport function resolveBaseDir(\n entryUrl: string,\n entryDirname?: string,\n): BaseDir {\n const scriptDir =\n typeof __dirname !== 'undefined'\n ? __dirname\n : resolveScriptDir(entryUrl, entryDirname);\n return { scriptDir, cwd: process.cwd() };\n}\n", "import { join } from 'node:path';\n\nexport function isRemoteUrl(path: string): boolean {\n return path.startsWith('http://') || path.startsWith('https://');\n}\n\nexport function joinPath(base: string, ...segments: string[]): string {\n if (isRemoteUrl(base)) {\n const trailing = base.endsWith('/') ? '' : '/';\n return base + trailing + segments.join('/');\n }\n return join(base, ...segments);\n}\n", "import { joinPath } from './join-path.function.ts';\n\nimport type { Runtime } from '../../runtime/typings/runtime.ts';\n\nexport function resolveWorkerScript(\n scriptDir: string,\n runtime: Runtime,\n): string {\n if (runtime === 'deno') {\n return joinPath(scriptDir, 'worker.ts');\n }\n return joinPath(scriptDir, 'kbdb-worker.cjs');\n}\n", "import { joinPath } from './join-path.function.ts';\n\nexport function resolveWasmDir(scriptDir: string): string {\n return joinPath(scriptDir, 'wasm');\n}\n", "/**\n * Computes the SHA-256 hash of a UTF-8 string.\n *\n * Uses the Web Crypto API (`crypto.subtle`), which is available\n * in both Deno and Node.js >= 20 without additional imports.\n *\n * @param input - the string to hash\n * @returns lowercase hex-encoded SHA-256 digest (64 characters)\n */\nexport async function computeSha256(input: string): Promise<string> {\n const data = new TextEncoder().encode(input);\n const hash = await crypto.subtle.digest('SHA-256', data);\n const bytes = new Uint8Array(hash);\n return Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('');\n}\n", "import { join } from 'node:path';\nimport { getTmpdir } from './get-tmpdir.function.ts';\n\n/**\n * Returns the platform-appropriate IPC socket path for a given\n * context identifier.\n *\n * On Windows, returns a named pipe path (`\\\\.\\pipe\\kbdb-<ctx>`).\n * On POSIX systems, returns a Unix domain socket path under the\n * system temp directory (`<tmpdir>/kbdb-<ctx>.sock`).\n *\n * @param ctx - unique context identifier embedded in the path\n */\nexport function getIpcPath(ctx: string): string {\n if (process.platform === 'win32') {\n return `\\\\\\\\.\\\\pipe\\\\kbdb-${ctx}`;\n }\n return join(getTmpdir(), `kbdb-${ctx}.sock`);\n}\n", "import { tmpdir } from 'node:os';\n\n/**\n * Returns the operating system's default temporary directory path.\n */\nexport function getTmpdir(): string {\n return tmpdir();\n}\n"],
5
- "mappings": ";AAQO,SAAS,gBAAyB;AACtC,MAAI,OAAO,eAAe,eAAe,UAAU,YAAY;AAC5D,WAAO;AAAA,EACV;AACA,SAAO;AACV;;;ACLO,SAAS,UAAoB;AACjC,MAAI,cAAc,MAAM,QAAQ;AAC7B,UAAM,IAAI;AACV,UAAM,OAAO,EAAE,MAAM;AACrB,WAAO,MAAM,QAAQ,CAAC;AAAA,EACzB;AACA,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC9B;;;ACfA,SAAS,eAAe;AACxB,SAAS,qBAAqB;AAIvB,SAAS,iBACb,UACA,cACO;AACP,MAAI,aAAc,QAAO;AACzB,MAAI,SAAS,WAAW,OAAO;AAC5B,WAAO,QAAQ,cAAc,QAAQ,CAAC;AACzC,SAAO,QAAQ,QAAQ;AAC1B;AAEO,SAAS,eACb,UACA,cACQ;AACR,QAAM,YACH,OAAO,cAAc,cAChB,YACA,iBAAiB,UAAU,YAAY;AAC/C,SAAO,EAAE,WAAW,KAAK,QAAQ,IAAI,EAAE;AAC1C;;;ACxBA,SAAS,YAAY;AAEd,SAAS,YAAY,MAAuB;AAChD,SAAO,KAAK,WAAW,SAAS,KAAK,KAAK,WAAW,UAAU;AAClE;AAEO,SAAS,SAAS,SAAiB,UAA4B;AACnE,MAAI,YAAY,IAAI,GAAG;AACpB,UAAM,WAAW,KAAK,SAAS,GAAG,IAAI,KAAK;AAC3C,WAAO,OAAO,WAAW,SAAS,KAAK,GAAG;AAAA,EAC7C;AACA,SAAO,KAAK,MAAM,GAAG,QAAQ;AAChC;;;ACRO,SAAS,oBACb,WACA,SACO;AACP,MAAI,YAAY,QAAQ;AACrB,WAAO,SAAS,WAAW,WAAW;AAAA,EACzC;AACA,SAAO,SAAS,WAAW,iBAAiB;AAC/C;;;ACVO,SAAS,eAAe,WAA2B;AACvD,SAAO,SAAS,WAAW,MAAM;AACpC;;;ACKA,eAAsB,cAAc,OAAgC;AACjE,QAAM,OAAO,IAAI,YAAY,EAAE,OAAO,KAAK;AAC3C,QAAM,OAAO,MAAM,OAAO,OAAO,OAAO,WAAW,IAAI;AACvD,QAAM,QAAQ,IAAI,WAAW,IAAI;AACjC,SAAO,MAAM,KAAK,KAAK,EACnB,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAC1C,KAAK,EAAE;AACd;;;AChBA,SAAS,QAAAA,aAAY;;;ACArB,SAAS,cAAc;AAKhB,SAAS,YAAoB;AACjC,SAAO,OAAO;AACjB;;;ADMO,SAAS,WAAW,KAAqB;AAC7C,MAAI,QAAQ,aAAa,SAAS;AAC/B,WAAO,qBAAqB,GAAG;AAAA,EAClC;AACA,SAAOC,MAAK,UAAU,GAAG,QAAQ,GAAG,OAAO;AAC9C;",
6
- "names": ["join", "join"]
7
- }
package/src/cli.ts DELETED
@@ -1,71 +0,0 @@
1
- /**
2
- * @module
3
- *
4
- * CLI and MCP server executable for kbdb. Provides the
5
- * `kbdb` command with 18 subcommands for managing a
6
- * file-based knowledge base, and an MCP server mode
7
- * for AI agent integration.
8
- */
9
-
10
- import { getArgs, detectRuntime } from './shared/runtime/index.ts';
11
- import {
12
- resolveBaseDir,
13
- resolveWorkerScript,
14
- } from './shared/dir-resolver/index.ts';
15
- import {
16
- runCli,
17
- isStdinTty,
18
- promptUser,
19
- findDb,
20
- runInit,
21
- } from './shared/cli/index.ts';
22
- import type { CliDeps } from './shared/cli/index.ts';
23
- import { createWorkerClient } from './shared/worker-client/index.ts';
24
- import { createMcpServer } from './shared/mcp/index.ts';
25
-
26
- const runtime = detectRuntime();
27
- const baseDir = resolveBaseDir(import.meta.url, import.meta.dirname);
28
- const workerScript = resolveWorkerScript(baseDir.scriptDir, runtime);
29
-
30
- const deps: CliDeps = {
31
- isStdinTty,
32
- promptUser,
33
- createWorkerClient: (opts) =>
34
- createWorkerClient({ ...opts, workerScript }),
35
- findDb,
36
- runInit,
37
- startMcpServer: async (contextPath) => {
38
- const client = await createWorkerClient({
39
- contextPath,
40
- workerScript,
41
- });
42
- try {
43
- const server = createMcpServer(client);
44
- await server.listen();
45
- } finally {
46
- client.disconnect();
47
- }
48
- },
49
- };
50
-
51
- async function main(): Promise<void> {
52
- const result = await runCli(getArgs(), deps);
53
- if (result.output) {
54
- // eslint-disable-next-line no-console
55
- console.log(result.output);
56
- }
57
- if (result.error) {
58
- // eslint-disable-next-line no-console
59
- console.error(result.error);
60
- }
61
- if (result.exitCode !== 0) {
62
- process.exitCode = result.exitCode;
63
- }
64
- }
65
-
66
- main().catch((err: unknown) => {
67
- const msg = err instanceof Error ? err.message : String(err);
68
- // eslint-disable-next-line no-console
69
- console.error(`error: ${msg}`);
70
- process.exitCode = 1;
71
- });
@@ -1,62 +0,0 @@
1
- import type { AutoCaptureConfig } from '../typings/auto-capture-config.interface.ts';
2
- import type { AutoCaptureState } from '../typings/auto-capture-state.interface.ts';
3
- import type { AutoCaptureTrigger } from '../typings/auto-capture-trigger.interface.ts';
4
- import { evaluateTrigger } from '../functions/evaluate-trigger.function.ts';
5
-
6
- /**
7
- * Controls the auto-capture lifecycle.
8
- *
9
- * Tracks tool call counts, evaluates trigger conditions, and
10
- * advances session state when a capture fires. Reset state on
11
- * disconnect or session end via `reset()`.
12
- */
13
- export class AutoCaptureController {
14
- private toolCallsSinceLastCapture = 0;
15
- private lastCaptureTimestamp = 0;
16
- private totalCapturesThisSession = 0;
17
- private readonly config: AutoCaptureConfig;
18
-
19
- /** @param config - the auto-capture configuration to use */
20
- constructor(config: AutoCaptureConfig) {
21
- this.config = config;
22
- }
23
-
24
- /** Record one tool call for trigger counting. */
25
- recordToolCall(): void {
26
- this.toolCallsSinceLastCapture += 1;
27
- }
28
-
29
- /**
30
- * Evaluates the current state against the trigger criteria.
31
- *
32
- * When the trigger fires, advances the session counters so the
33
- * next evaluation respects rate limiting and the session cap.
34
- *
35
- * @returns the trigger decision with a human-readable reason
36
- */
37
- evaluate(): AutoCaptureTrigger {
38
- const trigger = evaluateTrigger(this.config, this.state());
39
- if (trigger.shouldCapture) {
40
- this.totalCapturesThisSession += 1;
41
- this.lastCaptureTimestamp = Date.now();
42
- this.toolCallsSinceLastCapture = 0;
43
- }
44
- return trigger;
45
- }
46
-
47
- /** Reset all counters, e.g. on client disconnect. */
48
- reset(): void {
49
- this.toolCallsSinceLastCapture = 0;
50
- this.lastCaptureTimestamp = 0;
51
- this.totalCapturesThisSession = 0;
52
- }
53
-
54
- /** Returns a snapshot of the current controller state. */
55
- state(): AutoCaptureState {
56
- return {
57
- toolCallsSinceLastCapture: this.toolCallsSinceLastCapture,
58
- lastCaptureTimestamp: this.lastCaptureTimestamp,
59
- totalCapturesThisSession: this.totalCapturesThisSession,
60
- };
61
- }
62
- }
@@ -1,15 +0,0 @@
1
- import type { AutoCaptureConfig } from '../typings/auto-capture-config.interface.ts';
2
-
3
- /**
4
- * Default configuration for the auto-capture feature.
5
- *
6
- * Auto-capture is disabled by default. Enable it in
7
- * `worker.toml` under `[auto_capture]`.
8
- */
9
- export const AUTO_CAPTURE_DEFAULTS: AutoCaptureConfig = {
10
- enabled: false,
11
- triggerAfterToolCalls: 5,
12
- minIntervalMs: 60_000,
13
- maxCapturesPerSession: 10,
14
- dryRun: false,
15
- };
@@ -1,27 +0,0 @@
1
- /**
2
- * Builds the MCP sampling prompt for knowledge extraction.
3
- *
4
- * Instructs the host LLM to identify durable factual knowledge
5
- * from the recent conversation context, filter out ephemeral or
6
- * task-specific information, and format the result for storage
7
- * following memory-protocol criteria.
8
- *
9
- * @param recentContext - the conversation excerpt to analyse
10
- */
11
- export function buildCapturePrompt(recentContext: string): string {
12
- return (
13
- 'Review the following conversation context and identify' +
14
- ' factual knowledge worth storing in the knowledge base.\n\n' +
15
- 'Rules:\n' +
16
- '- Include durable facts, decisions, preferences, and' +
17
- ' corrections that would be useful in future sessions.\n' +
18
- '- Exclude ephemeral, task-specific, or temporary information' +
19
- ' that has no lasting value.\n' +
20
- '- Format each piece of extracted knowledge as a concise' +
21
- ' statement suitable for direct storage.\n' +
22
- '- If no durable knowledge is found, respond with an empty' +
23
- ' list.\n\n' +
24
- 'Conversation context:\n' +
25
- recentContext
26
- );
27
- }