@dikolab/kbdb 0.3.1 → 0.4.0

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 (468) hide show
  1. package/README.md +108 -126
  2. package/dist/chunk-BJPSPNGX.mjs +223 -0
  3. package/dist/chunk-BJPSPNGX.mjs.map +7 -0
  4. package/dist/cli.cjs +956 -319
  5. package/dist/cli.cjs.map +4 -4
  6. package/dist/cli.d.ts +9 -0
  7. package/dist/cli.mjs +840 -321
  8. package/dist/cli.mjs.map +4 -4
  9. package/dist/kbdb-worker.cjs +714 -94
  10. package/dist/kbdb-worker.cjs.map +4 -4
  11. package/dist/mod.cjs +122 -16
  12. package/dist/mod.cjs.map +3 -3
  13. package/dist/mod.d.ts +23 -2
  14. package/dist/mod.mjs +121 -16
  15. package/dist/mod.mjs.map +3 -3
  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 +17 -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/functions/append-vector-entry.function.d.ts +14 -0
  38. package/dist/src/shared/embedding/functions/create-embedding-provider.function.d.ts +12 -0
  39. package/dist/src/shared/embedding/functions/detect-stale-vectors.function.d.ts +16 -0
  40. package/dist/src/shared/embedding/functions/parse-api-embedding-response.function.d.ts +11 -0
  41. package/dist/src/shared/embedding/functions/rebuild-vectors.function.d.ts +15 -0
  42. package/dist/src/shared/embedding/functions/scan-semantic-contradictions.function.d.ts +13 -0
  43. package/dist/src/shared/embedding/index.d.ts +7 -0
  44. package/dist/src/shared/embedding/typings/semantic-contradiction.model.d.ts +21 -0
  45. package/dist/src/shared/embedding/typings/stale-vectors-report.model.d.ts +16 -0
  46. package/dist/src/shared/mcp/classes/mcp-server.class.d.ts +22 -2
  47. package/dist/src/shared/mcp/functions/create-mcp-server.function.d.ts +6 -1
  48. package/dist/src/shared/mcp/functions/has-sampling-capability.function.d.ts +8 -0
  49. package/dist/src/shared/mcp/functions/run-auto-capture.function.d.ts +26 -0
  50. package/dist/src/shared/mcp/typings/mcp-client.interface.d.ts +2 -0
  51. package/dist/src/shared/mcp/typings/mcp-integrity-check-result.model.d.ts +24 -0
  52. package/dist/src/shared/mcp/typings/mcp-worker-client.interface.d.ts +3 -1
  53. package/dist/src/shared/version/constants/version.constant.d.ts +1 -1
  54. package/dist/src/shared/wasm-codec/typings/paged-search-result.model.d.ts +2 -0
  55. package/dist/src/shared/worker-client/classes/worker-client.class.d.ts +31 -1
  56. package/dist/src/shared/worker-client/constants/request-timeout.constant.d.ts +2 -0
  57. package/dist/src/shared/worker-client/constants/retry-defaults.constant.d.ts +2 -0
  58. package/dist/src/shared/worker-client/functions/get-or-create-client.function.d.ts +20 -0
  59. package/dist/src/shared/worker-client/functions/retry-on-timeout.function.d.ts +17 -0
  60. package/dist/src/shared/worker-client/index.d.ts +4 -1
  61. package/dist/src/shared/worker-client/typings/import-result.model.d.ts +16 -0
  62. package/dist/src/shared/worker-client/typings/integrity-check-result.model.d.ts +24 -0
  63. package/dist/src/shared/worker-client/typings/search-params.model.d.ts +4 -0
  64. package/dist/src/shared/worker-client/typings/search-result.model.d.ts +6 -0
  65. package/dist/src/shared/worker-client/typings/worker-client-options.interface.d.ts +7 -0
  66. package/dist/src/shared/worker-daemon/classes/worker-daemon.class.d.ts +5 -0
  67. package/dist/src/shared/worker-daemon/functions/create-ipc-server.function.d.ts +11 -11
  68. package/dist/src/shared/worker-daemon/functions/embed-after-learn.function.d.ts +13 -0
  69. package/dist/src/shared/worker-daemon/functions/handle-hybrid-search.function.d.ts +44 -0
  70. package/dist/src/shared/worker-daemon/functions/handle-import.function.d.ts +14 -0
  71. package/dist/src/shared/worker-daemon/functions/handle-read-ops.function.d.ts +7 -1
  72. package/dist/src/shared/worker-daemon/functions/handle-write-ops.function.d.ts +9 -4
  73. package/dist/src/shared/worker-daemon/typings/handler-context.interface.d.ts +3 -0
  74. package/dist/wasm/fs-database/kbdb_fs_database.d.ts +16 -85
  75. package/dist/wasm/fs-database/kbdb_fs_database.js +16 -85
  76. package/dist/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
  77. package/dist/wasm/kb-worker/kbdb_worker.d.ts +20 -115
  78. package/dist/wasm/kb-worker/kbdb_worker.js +20 -115
  79. package/dist/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
  80. package/dist/wasm/query-parser/kbdb_query_parser_bg.wasm +0 -0
  81. package/dist/worker.d.ts +8 -0
  82. package/dist/worker.mjs +606 -102
  83. package/dist/worker.mjs.map +4 -4
  84. package/docs/details/README.md +4 -0
  85. package/docs/details/agent-tooling.md +122 -0
  86. package/docs/details/cli.md +78 -12
  87. package/docs/details/knowledge-base.md +173 -0
  88. package/docs/details/library-api.md +42 -2
  89. package/docs/details/mcp-server.md +39 -8
  90. package/docs/details/search-and-ranking.md +56 -0
  91. package/docs/goals/cli.md +110 -34
  92. package/docs/goals/mcp.md +22 -19
  93. package/docs/goals/query-parser.md +8 -0
  94. package/docs/goals/worker-client.md +62 -1
  95. package/docs/goals/worker-daemon.md +52 -10
  96. package/docs/modules/typescript/cli.md +1 -1
  97. package/docs/modules/typescript/shared/cli/functions.md +116 -13
  98. package/docs/modules/typescript/shared/cli/module.md +33 -20
  99. package/docs/modules/typescript/shared/cli/typings.md +4 -0
  100. package/docs/modules/typescript/shared/embedding/functions.md +104 -25
  101. package/docs/modules/typescript/shared/mcp/module.md +1 -1
  102. package/docs/modules/typescript/shared/mcp/typings.md +8 -1
  103. package/docs/modules/typescript/shared/worker-client/module.md +9 -1
  104. package/docs/modules/typescript/shared/worker-client/typings.md +3 -0
  105. package/docs/modules/typescript/shared/worker-daemon/module.md +6 -3
  106. package/docs/overview.md +43 -22
  107. package/docs/release-notes/0.3.1.md +10 -0
  108. package/docs/release-notes/0.3.2.md +64 -0
  109. package/docs/release-notes/0.4.0.md +80 -0
  110. package/docs/release-notes/README.md +2 -0
  111. package/mod.ts +33 -15
  112. package/package.json +11 -10
  113. package/dist/chunk-JG2UCKLI.mjs +0 -95
  114. package/dist/chunk-JG2UCKLI.mjs.map +0 -7
  115. package/src/cli.ts +0 -71
  116. package/src/shared/auto-capture/classes/auto-capture-controller.class.ts +0 -62
  117. package/src/shared/auto-capture/constants/auto-capture-defaults.constant.ts +0 -15
  118. package/src/shared/auto-capture/functions/build-capture-prompt.function.ts +0 -27
  119. package/src/shared/auto-capture/functions/evaluate-trigger.function.ts +0 -50
  120. package/src/shared/auto-capture/index.ts +0 -7
  121. package/src/shared/auto-capture/typings/auto-capture-config.interface.ts +0 -13
  122. package/src/shared/auto-capture/typings/auto-capture-state.interface.ts +0 -13
  123. package/src/shared/auto-capture/typings/auto-capture-trigger.interface.ts +0 -7
  124. package/src/shared/cli/constants/defaults.constant.ts +0 -19
  125. package/src/shared/cli/constants/global-help.constant.ts +0 -73
  126. package/src/shared/cli/constants/help-text.constant.ts +0 -4
  127. package/src/shared/cli/constants/leaf-help.constant.ts +0 -219
  128. package/src/shared/cli/constants/memory-protocol-body.constant.ts +0 -39
  129. package/src/shared/cli/constants/query-guidance-body.constant.ts +0 -37
  130. package/src/shared/cli/constants/subcommand-help.constant.ts +0 -195
  131. package/src/shared/cli/functions/collect-files.function.ts +0 -55
  132. package/src/shared/cli/functions/compute-section-kbid.function.ts +0 -49
  133. package/src/shared/cli/functions/dispatch-command.function.ts +0 -390
  134. package/src/shared/cli/functions/ensure-db.function.ts +0 -21
  135. package/src/shared/cli/functions/error-to-message.function.ts +0 -9
  136. package/src/shared/cli/functions/find-db.function.ts +0 -20
  137. package/src/shared/cli/functions/format-mcp-output.function.ts +0 -41
  138. package/src/shared/cli/functions/format-output.function.ts +0 -95
  139. package/src/shared/cli/functions/format-text-output.function.ts +0 -42
  140. package/src/shared/cli/functions/generate-group-help.function.ts +0 -41
  141. package/src/shared/cli/functions/generate-help.function.ts +0 -654
  142. package/src/shared/cli/functions/handle-data-command.function.ts +0 -67
  143. package/src/shared/cli/functions/handle-mcp.function.ts +0 -56
  144. package/src/shared/cli/functions/handle-migrate.function.ts +0 -64
  145. package/src/shared/cli/functions/hydrate-search-previews.function.ts +0 -29
  146. package/src/shared/cli/functions/install-default-skills.function.ts +0 -296
  147. package/src/shared/cli/functions/is-stdin-tty.function.ts +0 -12
  148. package/src/shared/cli/functions/parse-args.function.ts +0 -156
  149. package/src/shared/cli/functions/prompt-user.function.ts +0 -36
  150. package/src/shared/cli/functions/resolve-skill-names.function.ts +0 -43
  151. package/src/shared/cli/functions/run-agent-create.function.ts +0 -114
  152. package/src/shared/cli/functions/run-agent-delete.function.ts +0 -47
  153. package/src/shared/cli/functions/run-agent-get.function.ts +0 -166
  154. package/src/shared/cli/functions/run-agent-list.function.ts +0 -58
  155. package/src/shared/cli/functions/run-check.function.ts +0 -159
  156. package/src/shared/cli/functions/run-cli.function.ts +0 -299
  157. package/src/shared/cli/functions/run-content.function.ts +0 -47
  158. package/src/shared/cli/functions/run-db-init.function.ts +0 -44
  159. package/src/shared/cli/functions/run-db-migrate.function.ts +0 -40
  160. package/src/shared/cli/functions/run-export.function.ts +0 -40
  161. package/src/shared/cli/functions/run-gc.function.ts +0 -51
  162. package/src/shared/cli/functions/run-init.function.ts +0 -93
  163. package/src/shared/cli/functions/run-learn.function.ts +0 -223
  164. package/src/shared/cli/functions/run-migrate.function.ts +0 -85
  165. package/src/shared/cli/functions/run-rebuild.function.ts +0 -47
  166. package/src/shared/cli/functions/run-recall.function.ts +0 -66
  167. package/src/shared/cli/functions/run-search.function.ts +0 -133
  168. package/src/shared/cli/functions/run-skill-delete.function.ts +0 -47
  169. package/src/shared/cli/functions/run-skill-get.function.ts +0 -90
  170. package/src/shared/cli/functions/run-skill-learn.function.ts +0 -70
  171. package/src/shared/cli/functions/run-skill-list.function.ts +0 -74
  172. package/src/shared/cli/functions/run-status.function.ts +0 -29
  173. package/src/shared/cli/functions/run-unlearn.function.ts +0 -58
  174. package/src/shared/cli/functions/version-gate.function.ts +0 -44
  175. package/src/shared/cli/functions/wrap-command.function.ts +0 -34
  176. package/src/shared/cli/index.ts +0 -55
  177. package/src/shared/cli/typings/agent-create-client.interface.ts +0 -47
  178. package/src/shared/cli/typings/agent-get-client.interface.ts +0 -39
  179. package/src/shared/cli/typings/check-client.interface.ts +0 -66
  180. package/src/shared/cli/typings/cli-deps.interface.ts +0 -54
  181. package/src/shared/cli/typings/cli-options.interface.ts +0 -72
  182. package/src/shared/cli/typings/command-result.model.ts +0 -15
  183. package/src/shared/cli/typings/disconnectable-client.interface.ts +0 -29
  184. package/src/shared/cli/typings/dispatch-client.type.ts +0 -46
  185. package/src/shared/cli/typings/learn-client.interface.ts +0 -53
  186. package/src/shared/cli/typings/learn-io.interface.ts +0 -5
  187. package/src/shared/cli/typings/learn-result.model.ts +0 -27
  188. package/src/shared/cli/typings/search-client.interface.ts +0 -73
  189. package/src/shared/cli/typings/search-display.model.ts +0 -54
  190. package/src/shared/dir-resolver/functions/join-path.function.ts +0 -13
  191. package/src/shared/dir-resolver/functions/resolve-base-dir.function.ts +0 -25
  192. package/src/shared/dir-resolver/functions/resolve-wasm-dir.function.ts +0 -5
  193. package/src/shared/dir-resolver/functions/resolve-worker-script.function.ts +0 -13
  194. package/src/shared/dir-resolver/index.ts +0 -11
  195. package/src/shared/dir-resolver/typings/base-dir.interface.ts +0 -4
  196. package/src/shared/embedding/classes/null-embedding-provider.class.ts +0 -29
  197. package/src/shared/embedding/constants/near-duplicate-thresholds.constant.ts +0 -17
  198. package/src/shared/embedding/functions/build-vector-index.function.ts +0 -79
  199. package/src/shared/embedding/functions/cosine-similarity.function.ts +0 -31
  200. package/src/shared/embedding/functions/detect-near-duplicates.function.ts +0 -69
  201. package/src/shared/embedding/functions/jaccard-coefficient.function.ts +0 -26
  202. package/src/shared/embedding/functions/read-vector-index-meta.function.ts +0 -44
  203. package/src/shared/embedding/functions/rrf-fuse.function.ts +0 -33
  204. package/src/shared/embedding/functions/search-vectors.function.ts +0 -59
  205. package/src/shared/embedding/index.ts +0 -20
  206. package/src/shared/embedding/typings/embedding-config.interface.ts +0 -23
  207. package/src/shared/embedding/typings/embedding-provider.interface.ts +0 -25
  208. package/src/shared/embedding/typings/near-duplicate-candidate.model.ts +0 -25
  209. package/src/shared/embedding/typings/near-duplicate-result.model.ts +0 -26
  210. package/src/shared/embedding/typings/vector-index-entry.model.ts +0 -13
  211. package/src/shared/embedding/typings/vector-index-meta.model.ts +0 -14
  212. package/src/shared/embedding/typings/vector-search-result.model.ts +0 -8
  213. package/src/shared/hash/functions/compute-sha256.ts +0 -17
  214. package/src/shared/hash/index.ts +0 -1
  215. package/src/shared/mcp/classes/mcp-server.class.ts +0 -480
  216. package/src/shared/mcp/constants/mcp-error-codes.constant.ts +0 -30
  217. package/src/shared/mcp/constants/tool-agent-create.constant.ts +0 -39
  218. package/src/shared/mcp/constants/tool-agent-delete.constant.ts +0 -26
  219. package/src/shared/mcp/constants/tool-agent-get.constant.ts +0 -24
  220. package/src/shared/mcp/constants/tool-agent-list.constant.ts +0 -18
  221. package/src/shared/mcp/constants/tool-auto-capture-review.constant.ts +0 -32
  222. package/src/shared/mcp/constants/tool-check.constant.ts +0 -21
  223. package/src/shared/mcp/constants/tool-content.constant.ts +0 -29
  224. package/src/shared/mcp/constants/tool-export.constant.ts +0 -27
  225. package/src/shared/mcp/constants/tool-gc.constant.ts +0 -21
  226. package/src/shared/mcp/constants/tool-learn.constant.ts +0 -58
  227. package/src/shared/mcp/constants/tool-rebuild.constant.ts +0 -21
  228. package/src/shared/mcp/constants/tool-recall.constant.ts +0 -36
  229. package/src/shared/mcp/constants/tool-retrieve.constant.ts +0 -31
  230. package/src/shared/mcp/constants/tool-search.constant.ts +0 -51
  231. package/src/shared/mcp/constants/tool-skill-delete.constant.ts +0 -24
  232. package/src/shared/mcp/constants/tool-skill-get.constant.ts +0 -27
  233. package/src/shared/mcp/constants/tool-skill-learn.constant.ts +0 -37
  234. package/src/shared/mcp/constants/tool-skill-list.constant.ts +0 -18
  235. package/src/shared/mcp/constants/tool-status.constant.ts +0 -20
  236. package/src/shared/mcp/constants/tool-unlearn.constant.ts +0 -25
  237. package/src/shared/mcp/functions/as-boolean-or-undefined.function.ts +0 -11
  238. package/src/shared/mcp/functions/as-string-array-or-undefined.function.ts +0 -17
  239. package/src/shared/mcp/functions/as-string-array.function.ts +0 -15
  240. package/src/shared/mcp/functions/as-string.function.ts +0 -10
  241. package/src/shared/mcp/functions/build-skills-text.function.ts +0 -43
  242. package/src/shared/mcp/functions/create-mcp-server.function.ts +0 -14
  243. package/src/shared/mcp/functions/create-prompt-definitions.function.ts +0 -102
  244. package/src/shared/mcp/functions/create-resource-templates.function.ts +0 -23
  245. package/src/shared/mcp/functions/create-tool-definitions.function.ts +0 -530
  246. package/src/shared/mcp/functions/extract-skill-arguments.function.ts +0 -27
  247. package/src/shared/mcp/functions/handle-agent-create.function.ts +0 -116
  248. package/src/shared/mcp/functions/handle-agent-delete.function.ts +0 -50
  249. package/src/shared/mcp/functions/handle-agent-get.function.ts +0 -160
  250. package/src/shared/mcp/functions/handle-agent-list.function.ts +0 -50
  251. package/src/shared/mcp/functions/handle-agent-prompt.function.ts +0 -68
  252. package/src/shared/mcp/functions/handle-completion.function.ts +0 -114
  253. package/src/shared/mcp/functions/handle-mcp-request.function.ts +0 -202
  254. package/src/shared/mcp/functions/handle-prompt-get.function.ts +0 -220
  255. package/src/shared/mcp/functions/handle-recall.function.ts +0 -66
  256. package/src/shared/mcp/functions/handle-resource-read.function.ts +0 -56
  257. package/src/shared/mcp/functions/handle-roots-list.function.ts +0 -29
  258. package/src/shared/mcp/functions/handle-skill-prompt.function.ts +0 -44
  259. package/src/shared/mcp/functions/handle-tool-auto-capture-review.function.ts +0 -24
  260. package/src/shared/mcp/functions/handle-tool-call.function.ts +0 -560
  261. package/src/shared/mcp/functions/handle-tool-check.function.ts +0 -21
  262. package/src/shared/mcp/functions/handle-tool-content.function.ts +0 -23
  263. package/src/shared/mcp/functions/handle-tool-export.function.ts +0 -25
  264. package/src/shared/mcp/functions/handle-tool-gc.function.ts +0 -21
  265. package/src/shared/mcp/functions/handle-tool-learn.function.ts +0 -69
  266. package/src/shared/mcp/functions/handle-tool-rebuild.function.ts +0 -21
  267. package/src/shared/mcp/functions/handle-tool-retrieve.function.ts +0 -40
  268. package/src/shared/mcp/functions/handle-tool-search.function.ts +0 -47
  269. package/src/shared/mcp/functions/handle-tool-skill-delete.function.ts +0 -34
  270. package/src/shared/mcp/functions/handle-tool-skill-get.function.ts +0 -59
  271. package/src/shared/mcp/functions/handle-tool-skill-learn.function.ts +0 -61
  272. package/src/shared/mcp/functions/handle-tool-skill-list.function.ts +0 -39
  273. package/src/shared/mcp/functions/handle-tool-status.function.ts +0 -21
  274. package/src/shared/mcp/functions/handle-tool-unlearn.function.ts +0 -24
  275. package/src/shared/mcp/functions/parse-agent-meta.function.ts +0 -27
  276. package/src/shared/mcp/functions/parse-skill-arguments.function.ts +0 -36
  277. package/src/shared/mcp/functions/parse-skill-content.function.ts +0 -38
  278. package/src/shared/mcp/functions/read-agent-meta.function.ts +0 -41
  279. package/src/shared/mcp/functions/resolve-skill-refs.function.ts +0 -50
  280. package/src/shared/mcp/functions/run-startup-health-check.function.ts +0 -34
  281. package/src/shared/mcp/functions/serialize-skill-content.function.ts +0 -12
  282. package/src/shared/mcp/functions/should-emit-log.function.ts +0 -38
  283. package/src/shared/mcp/index.ts +0 -28
  284. package/src/shared/mcp/typings/agent-types.interface.ts +0 -39
  285. package/src/shared/mcp/typings/log-types.interface.ts +0 -26
  286. package/src/shared/mcp/typings/mcp-capabilities.interface.ts +0 -16
  287. package/src/shared/mcp/typings/mcp-client.interface.ts +0 -317
  288. package/src/shared/mcp/typings/mcp-completion.interface.ts +0 -45
  289. package/src/shared/mcp/typings/mcp-content-result.model.ts +0 -9
  290. package/src/shared/mcp/typings/mcp-export-result.model.ts +0 -11
  291. package/src/shared/mcp/typings/mcp-gc-result.model.ts +0 -15
  292. package/src/shared/mcp/typings/mcp-integrity-check-result.model.ts +0 -17
  293. package/src/shared/mcp/typings/mcp-integrity-error.model.ts +0 -15
  294. package/src/shared/mcp/typings/mcp-notification.interface.ts +0 -9
  295. package/src/shared/mcp/typings/mcp-rebuild-result.model.ts +0 -9
  296. package/src/shared/mcp/typings/mcp-request.interface.ts +0 -11
  297. package/src/shared/mcp/typings/mcp-resource-result.interface.ts +0 -12
  298. package/src/shared/mcp/typings/mcp-resource-template.interface.ts +0 -11
  299. package/src/shared/mcp/typings/mcp-response.interface.ts +0 -18
  300. package/src/shared/mcp/typings/mcp-server-info.interface.ts +0 -7
  301. package/src/shared/mcp/typings/mcp-server-state.interface.ts +0 -17
  302. package/src/shared/mcp/typings/mcp-tool-annotations.interface.ts +0 -32
  303. package/src/shared/mcp/typings/mcp-tool-definition.interface.ts +0 -16
  304. package/src/shared/mcp/typings/mcp-tool-result.interface.ts +0 -19
  305. package/src/shared/mcp/typings/mcp-types.interface.ts +0 -158
  306. package/src/shared/mcp/typings/mcp-worker-client.interface.ts +0 -243
  307. package/src/shared/mcp/typings/prompt-types.interface.ts +0 -39
  308. package/src/shared/mcp/typings/remove-section-result.model.ts +0 -10
  309. package/src/shared/mcp/typings/sampling-types.interface.ts +0 -48
  310. package/src/shared/mcp/typings/skill-types.interface.ts +0 -29
  311. package/src/shared/mcp/typings/tool-call-result.model.ts +0 -18
  312. package/src/shared/mod.ts +0 -1
  313. package/src/shared/platform/functions/get-ipc-path.function.ts +0 -19
  314. package/src/shared/platform/functions/get-tmpdir.function.ts +0 -8
  315. package/src/shared/platform/functions/is-process-alive.function.ts +0 -17
  316. package/src/shared/platform/index.ts +0 -3
  317. package/src/shared/runtime/functions/detect-runtime.ts +0 -14
  318. package/src/shared/runtime/functions/get-args.ts +0 -16
  319. package/src/shared/runtime/index.ts +0 -3
  320. package/src/shared/runtime/typings/runtime.ts +0 -2
  321. package/src/shared/sync/functions/build-import-report.function.ts +0 -40
  322. package/src/shared/sync/functions/parse-export-entry.function.ts +0 -45
  323. package/src/shared/sync/functions/resolve-conflict.function.ts +0 -31
  324. package/src/shared/sync/functions/serialize-export-entry.function.ts +0 -18
  325. package/src/shared/sync/index.ts +0 -9
  326. package/src/shared/sync/typings/conflict-resolution.type.ts +0 -8
  327. package/src/shared/sync/typings/export-entry.interface.ts +0 -13
  328. package/src/shared/sync/typings/export-options.interface.ts +0 -9
  329. package/src/shared/sync/typings/import-options.interface.ts +0 -7
  330. package/src/shared/sync/typings/import-report.interface.ts +0 -15
  331. package/src/shared/version/constants/version.constant.ts +0 -2
  332. package/src/shared/version/index.ts +0 -1
  333. package/src/shared/wasm-codec/functions/decode-add-section-result.function.ts +0 -112
  334. package/src/shared/wasm-codec/functions/decode-compose-output.function.ts +0 -16
  335. package/src/shared/wasm-codec/functions/decode-document-manifest-list.function.ts +0 -70
  336. package/src/shared/wasm-codec/functions/decode-document-manifest.function.ts +0 -87
  337. package/src/shared/wasm-codec/functions/decode-f32.function.ts +0 -16
  338. package/src/shared/wasm-codec/functions/decode-key-value-text.function.ts +0 -15
  339. package/src/shared/wasm-codec/functions/decode-one-recall-result.function.ts +0 -86
  340. package/src/shared/wasm-codec/functions/decode-option-string.function.ts +0 -24
  341. package/src/shared/wasm-codec/functions/decode-recall-document.function.ts +0 -59
  342. package/src/shared/wasm-codec/functions/decode-recall-reference.function.ts +0 -52
  343. package/src/shared/wasm-codec/functions/decode-recall-result.function.ts +0 -267
  344. package/src/shared/wasm-codec/functions/decode-recall-sibling.function.ts +0 -43
  345. package/src/shared/wasm-codec/functions/decode-remove-flag.function.ts +0 -3
  346. package/src/shared/wasm-codec/functions/decode-scored-results.function.ts +0 -194
  347. package/src/shared/wasm-codec/functions/decode-section-match.function.ts +0 -80
  348. package/src/shared/wasm-codec/functions/decode-section-record-list.function.ts +0 -20
  349. package/src/shared/wasm-codec/functions/decode-section-record-trailing.function.ts +0 -75
  350. package/src/shared/wasm-codec/functions/decode-section-record.function.ts +0 -85
  351. package/src/shared/wasm-codec/functions/decode-section-records.function.ts +0 -249
  352. package/src/shared/wasm-codec/functions/decode-section-type.function.ts +0 -30
  353. package/src/shared/wasm-codec/functions/decode-string.function.ts +0 -22
  354. package/src/shared/wasm-codec/functions/decode-u32.function.ts +0 -16
  355. package/src/shared/wasm-codec/functions/decode-u64.function.ts +0 -16
  356. package/src/shared/wasm-codec/functions/decode-wasm-list.function.ts +0 -31
  357. package/src/shared/wasm-codec/functions/encode-add-section-params.function.ts +0 -102
  358. package/src/shared/wasm-codec/functions/encode-group-params.function.ts +0 -28
  359. package/src/shared/wasm-codec/functions/encode-identifier-list.function.ts +0 -17
  360. package/src/shared/wasm-codec/functions/encode-kbid-list.function.ts +0 -17
  361. package/src/shared/wasm-codec/functions/encode-option-string.function.ts +0 -14
  362. package/src/shared/wasm-codec/functions/encode-recall-params.function.ts +0 -68
  363. package/src/shared/wasm-codec/functions/encode-search-params.function.ts +0 -12
  364. package/src/shared/wasm-codec/functions/encode-section-type.function.ts +0 -18
  365. package/src/shared/wasm-codec/functions/encode-string.function.ts +0 -9
  366. package/src/shared/wasm-codec/functions/encode-type-filter-param.function.ts +0 -13
  367. package/src/shared/wasm-codec/functions/encode-u32.function.ts +0 -5
  368. package/src/shared/wasm-codec/functions/encode-update-section-params.function.ts +0 -16
  369. package/src/shared/wasm-codec/index.ts +0 -49
  370. package/src/shared/wasm-codec/typings/add-section-input.model.ts +0 -45
  371. package/src/shared/wasm-codec/typings/add-section-result.model.ts +0 -28
  372. package/src/shared/wasm-codec/typings/document-manifest.model.ts +0 -20
  373. package/src/shared/wasm-codec/typings/document-section.model.ts +0 -12
  374. package/src/shared/wasm-codec/typings/item-decoder.type.ts +0 -10
  375. package/src/shared/wasm-codec/typings/near-duplicate.model.ts +0 -16
  376. package/src/shared/wasm-codec/typings/paged-search-result.model.ts +0 -22
  377. package/src/shared/wasm-codec/typings/section-match.model.ts +0 -31
  378. package/src/shared/wasm-codec/typings/section-record-trailing.model.ts +0 -38
  379. package/src/shared/wasm-codec/typings/section-record.model.ts +0 -66
  380. package/src/shared/wasm-codec/typings/section-type-result.model.ts +0 -12
  381. package/src/shared/worker-client/classes/worker-client.class.ts +0 -466
  382. package/src/shared/worker-client/functions/compute-context-id.function.ts +0 -18
  383. package/src/shared/worker-client/functions/create-worker-client.function.ts +0 -70
  384. package/src/shared/worker-client/functions/discover-daemon.function.ts +0 -47
  385. package/src/shared/worker-client/functions/handle-ipc-data.function.ts +0 -49
  386. package/src/shared/worker-client/functions/resolve-db-path.function.ts +0 -21
  387. package/src/shared/worker-client/functions/send-ipc-request.function.ts +0 -39
  388. package/src/shared/worker-client/functions/spawn-daemon.function.ts +0 -35
  389. package/src/shared/worker-client/functions/wait-for-daemon.function.ts +0 -34
  390. package/src/shared/worker-client/index.ts +0 -44
  391. package/src/shared/worker-client/typings/add-section-result.model.ts +0 -39
  392. package/src/shared/worker-client/typings/content-result.model.ts +0 -12
  393. package/src/shared/worker-client/typings/daemon-info.model.ts +0 -7
  394. package/src/shared/worker-client/typings/export-result.model.ts +0 -14
  395. package/src/shared/worker-client/typings/gc-result.model.ts +0 -18
  396. package/src/shared/worker-client/typings/integrity-check-result.model.ts +0 -43
  397. package/src/shared/worker-client/typings/json-rpc-response.interface.ts +0 -17
  398. package/src/shared/worker-client/typings/migrate-result.model.ts +0 -11
  399. package/src/shared/worker-client/typings/pending-call.interface.ts +0 -7
  400. package/src/shared/worker-client/typings/rebuild-result.model.ts +0 -12
  401. package/src/shared/worker-client/typings/recall-document.model.ts +0 -16
  402. package/src/shared/worker-client/typings/recall-params.model.ts +0 -15
  403. package/src/shared/worker-client/typings/recall-reference.model.ts +0 -32
  404. package/src/shared/worker-client/typings/recall-result.model.ts +0 -98
  405. package/src/shared/worker-client/typings/recall-sibling.model.ts +0 -11
  406. package/src/shared/worker-client/typings/recall-single-result.model.ts +0 -41
  407. package/src/shared/worker-client/typings/remove-section-result.model.ts +0 -7
  408. package/src/shared/worker-client/typings/search-params.model.ts +0 -14
  409. package/src/shared/worker-client/typings/search-result.model.ts +0 -43
  410. package/src/shared/worker-client/typings/section.model.ts +0 -43
  411. package/src/shared/worker-client/typings/status-result.model.ts +0 -14
  412. package/src/shared/worker-client/typings/version-status.model.ts +0 -28
  413. package/src/shared/worker-client/typings/worker-client-error.interface.ts +0 -8
  414. package/src/shared/worker-client/typings/worker-client-options.interface.ts +0 -30
  415. package/src/shared/worker-daemon/classes/ipc-error.class.ts +0 -22
  416. package/src/shared/worker-daemon/classes/worker-daemon.class.ts +0 -1291
  417. package/src/shared/worker-daemon/constants/daemon-defaults.constant.ts +0 -29
  418. package/src/shared/worker-daemon/constants/wasm-method-map.constant.ts +0 -69
  419. package/src/shared/worker-daemon/functions/build-ipc-error-response.function.ts +0 -16
  420. package/src/shared/worker-daemon/functions/check-catalog-version.function.ts +0 -54
  421. package/src/shared/worker-daemon/functions/check-preconditions.function.ts +0 -28
  422. package/src/shared/worker-daemon/functions/create-host-imports.function.ts +0 -328
  423. package/src/shared/worker-daemon/functions/create-ipc-server.function.ts +0 -87
  424. package/src/shared/worker-daemon/functions/detect-stale-pid.function.ts +0 -33
  425. package/src/shared/worker-daemon/functions/dispatch-request.function.ts +0 -190
  426. package/src/shared/worker-daemon/functions/handle-check-version.function.ts +0 -74
  427. package/src/shared/worker-daemon/functions/handle-config-method.function.ts +0 -27
  428. package/src/shared/worker-daemon/functions/handle-read-ops.function.ts +0 -236
  429. package/src/shared/worker-daemon/functions/handle-write-ops.function.ts +0 -257
  430. package/src/shared/worker-daemon/functions/load-wasm-modules.function.ts +0 -95
  431. package/src/shared/worker-daemon/functions/parse-auto-capture-section.function.ts +0 -51
  432. package/src/shared/worker-daemon/functions/parse-catalog-version.function.ts +0 -20
  433. package/src/shared/worker-daemon/functions/parse-embedding-section.function.ts +0 -38
  434. package/src/shared/worker-daemon/functions/parse-worker-toml.function.ts +0 -104
  435. package/src/shared/worker-daemon/functions/read-config.function.ts +0 -83
  436. package/src/shared/worker-daemon/functions/run-startup-integrity-check.function.ts +0 -55
  437. package/src/shared/worker-daemon/functions/run-worker.function.ts +0 -57
  438. package/src/shared/worker-daemon/functions/scan-near-duplicates.function.ts +0 -92
  439. package/src/shared/worker-daemon/functions/start-daemon.function.ts +0 -74
  440. package/src/shared/worker-daemon/functions/wasm-bridge.function.ts +0 -144
  441. package/src/shared/worker-daemon/functions/wasm-memory-helpers.function.ts +0 -41
  442. package/src/shared/worker-daemon/functions/write-lock.function.ts +0 -49
  443. package/src/shared/worker-daemon/index.ts +0 -16
  444. package/src/shared/worker-daemon/typings/allocator-ref.interface.ts +0 -16
  445. package/src/shared/worker-daemon/typings/daemon-config.interface.ts +0 -20
  446. package/src/shared/worker-daemon/typings/fs-adapter.interface.ts +0 -22
  447. package/src/shared/worker-daemon/typings/handler-context.interface.ts +0 -19
  448. package/src/shared/worker-daemon/typings/ipc-handler.interface.ts +0 -39
  449. package/src/shared/worker-daemon/typings/memory-ref.interface.ts +0 -13
  450. package/src/shared/worker-daemon/typings/wasm-fn.type.ts +0 -2
  451. package/src/shared/worker-daemon/typings/wasm-modules.interface.ts +0 -7
  452. package/src/shared/worker-daemon/typings/write-lock.interface.ts +0 -13
  453. package/src/wasm/fs-database/kbdb_fs_database.d.ts +0 -259
  454. package/src/wasm/fs-database/kbdb_fs_database.js +0 -515
  455. package/src/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
  456. package/src/wasm/fs-database/kbdb_fs_database_bg.wasm.d.ts +0 -35
  457. package/src/wasm/fs-database/package.json +0 -13
  458. package/src/wasm/kb-worker/kbdb_worker.d.ts +0 -650
  459. package/src/wasm/kb-worker/kbdb_worker.js +0 -1181
  460. package/src/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
  461. package/src/wasm/kb-worker/kbdb_worker_bg.wasm.d.ts +0 -77
  462. package/src/wasm/kb-worker/package.json +0 -13
  463. package/src/wasm/query-parser/kbdb_query_parser.d.ts +0 -195
  464. package/src/wasm/query-parser/kbdb_query_parser.js +0 -403
  465. package/src/wasm/query-parser/kbdb_query_parser_bg.wasm +0 -0
  466. package/src/wasm/query-parser/kbdb_query_parser_bg.wasm.d.ts +0 -25
  467. package/src/wasm/query-parser/package.json +0 -13
  468. package/src/worker.ts +0 -42
@@ -1,29 +0,0 @@
1
- /** Default maximum number of items held in daemon memory. */
2
- export const DEFAULT_ITEM_LIMIT = 1000;
3
-
4
- /** Default maximum number of index entries held in daemon memory. */
5
- export const DEFAULT_INDEX_LIMIT = 100;
6
-
7
- /**
8
- * Default idle timeout in milliseconds before the daemon shuts
9
- * down automatically (5 minutes).
10
- */
11
- export const DEFAULT_TIMEOUT_MS = 300_000;
12
-
13
- /**
14
- * Default time-to-live in milliseconds for each cached item
15
- * (1 minute).
16
- */
17
- export const DEFAULT_ITEM_TTL_MS = 60_000;
18
-
19
- /** Filename of the daemon configuration file inside `.kbdb/`. */
20
- export const WORKER_TOML_FILENAME = 'worker.toml';
21
-
22
- /**
23
- * Database format version the daemon supports.
24
- *
25
- * Read from `catalog.toml` at startup. If the catalog version
26
- * differs, the daemon prints a structured error to stderr and
27
- * exits with code 1 before loading any WASM modules.
28
- */
29
- export const DB_FORMAT_VERSION = 1;
@@ -1,69 +0,0 @@
1
- import type { DaemonConfig } from '../typings/daemon-config.interface.ts';
2
-
3
- /**
4
- * Maps incoming IPC method names to `kb-worker.wasm` export names.
5
- *
6
- * Both camelCase and snake_case variants of each method are
7
- * included so that clients may use either convention.
8
- */
9
- export const WASM_METHOD_MAP: Readonly<
10
- Partial<Record<string, string>>
11
- > = {
12
- search: 'worker_search',
13
- addSection: 'worker_add_section',
14
- add_section: 'worker_add_section',
15
- updateSection: 'worker_update_section',
16
- update_section: 'worker_update_section',
17
- removeSection: 'worker_remove_section',
18
- remove_section: 'worker_remove_section',
19
- readSections: 'worker_read_sections',
20
- read_sections: 'worker_read_sections',
21
- groupSections: 'worker_group_sections',
22
- group_sections: 'worker_group_sections',
23
- removeGrouping: 'worker_remove_grouping',
24
- remove_grouping: 'worker_remove_grouping',
25
- retrieveDocument: 'worker_retrieve_doc',
26
- retrieve_doc: 'worker_retrieve_doc',
27
- content: 'worker_compose',
28
- compose: 'worker_compose',
29
- integrity_check: 'worker_check_integrity',
30
- integrityCheck: 'worker_check_integrity',
31
- gc: 'worker_garbage_collect',
32
- rebuild_indexes: 'worker_rebuild_indexes',
33
- rebuildIndexes: 'worker_rebuild_indexes',
34
- init_directory: 'worker_init_directory',
35
- initDirectory: 'worker_init_directory',
36
- migrateDatabase: 'worker_migrate',
37
- query: 'worker_query',
38
- get_result_status: 'worker_result_status',
39
- get_result: 'worker_get_result',
40
- invalidate: 'worker_invalidate',
41
- invalidate_all: 'worker_invalidate_all',
42
- invalidateAll: 'worker_invalidate_all',
43
- db_status: 'worker_status',
44
- dbStatus: 'worker_status',
45
- listByType: 'worker_list_by_type',
46
- list_by_type: 'worker_list_by_type',
47
- listDocumentsByType: 'worker_list_docs_by_type',
48
- list_docs_by_type: 'worker_list_docs_by_type',
49
- recall: 'worker_recall',
50
- export: 'worker_export',
51
- exportDb: 'worker_export',
52
- };
53
-
54
- /** Prefix shared by all IPC config-accessor method names. */
55
- export const CONFIG_PREFIX = 'config_';
56
-
57
- /**
58
- * Maps config IPC key suffixes to `DaemonConfig` property names.
59
- *
60
- * A client sends `config_timeout_ms` to read `config.timeoutMs`.
61
- */
62
- export const CONFIG_KEY_MAP: Readonly<
63
- Partial<Record<string, keyof DaemonConfig>>
64
- > = {
65
- timeout_ms: 'timeoutMs',
66
- item_ttl_ms: 'itemTtlMs',
67
- item_limit: 'itemLimit',
68
- index_limit: 'indexLimit',
69
- };
@@ -1,16 +0,0 @@
1
- import type { IpcResponse } from '../typings/ipc-handler.interface.ts';
2
-
3
- /**
4
- * Builds a JSON-RPC 2.0 error response object.
5
- *
6
- * @param id - request identifier to echo back in the response
7
- * @param code - JSON-RPC error code
8
- * @param message - human-readable error description
9
- */
10
- export function buildIpcErrorResponse(
11
- id: number | string,
12
- code: number,
13
- message: string,
14
- ): IpcResponse {
15
- return { jsonrpc: '2.0', id, error: { code, message } };
16
- }
@@ -1,54 +0,0 @@
1
- import { readFileSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import { DB_FORMAT_VERSION } from '../constants/daemon-defaults.constant.ts';
4
- import { parseCatalogVersion } from './parse-catalog-version.function.ts';
5
-
6
- /**
7
- * Reads `catalog.toml` in `targetDir` and validates its version
8
- * against `DB_FORMAT_VERSION`.
9
- *
10
- * @param targetDir - absolute path to the `.kbdb` directory
11
- * @throws {Error} when the catalog cannot be read, is missing a
12
- * version, or the version is incompatible with the current engine
13
- */
14
- export function checkCatalogVersion(targetDir: string): void {
15
- const catalogPath = join(targetDir, 'catalog.toml');
16
- let text: string;
17
- try {
18
- text = readFileSync(catalogPath, 'utf-8');
19
- } catch {
20
- throw new Error(
21
- `cannot read database directory: ${targetDir}` +
22
- ' -- permission denied',
23
- );
24
- }
25
-
26
- const version = parseCatalogVersion(text);
27
- if (version === null) {
28
- throw new Error(
29
- 'database version 0 requires migration to version ' +
30
- String(DB_FORMAT_VERSION) +
31
- ' -- run `kbdb --migrate` before starting the daemon',
32
- );
33
- }
34
-
35
- if (version > DB_FORMAT_VERSION) {
36
- throw new Error(
37
- 'database version ' +
38
- String(version) +
39
- ' is newer than kbdb version ' +
40
- String(DB_FORMAT_VERSION) +
41
- ' -- upgrade kbdb to open this database',
42
- );
43
- }
44
-
45
- if (version < DB_FORMAT_VERSION) {
46
- throw new Error(
47
- 'database version ' +
48
- String(version) +
49
- ' requires migration to version ' +
50
- String(DB_FORMAT_VERSION) +
51
- ' -- run `kbdb --migrate` before starting the daemon',
52
- );
53
- }
54
- }
@@ -1,28 +0,0 @@
1
- import { existsSync, accessSync, constants } from 'node:fs';
2
- import { checkCatalogVersion } from './check-catalog-version.function.ts';
3
-
4
- /**
5
- * Validates startup preconditions for the worker daemon.
6
- *
7
- * Checks that `targetDir` exists, is readable and writable, and
8
- * that `catalog.toml` reports a compatible format version.
9
- *
10
- * @param targetDir - absolute path to the `.kbdb` directory
11
- * @throws {Error} when any precondition fails
12
- */
13
- export function checkPreconditions(targetDir: string): void {
14
- if (!existsSync(targetDir)) {
15
- throw new Error(`database directory not found: ${targetDir}`);
16
- }
17
-
18
- try {
19
- accessSync(targetDir, constants.R_OK | constants.W_OK);
20
- } catch {
21
- throw new Error(
22
- `cannot access database directory: ${targetDir}` +
23
- ' -- permission denied',
24
- );
25
- }
26
-
27
- checkCatalogVersion(targetDir);
28
- }
@@ -1,328 +0,0 @@
1
- import {
2
- readFileSync,
3
- writeFileSync,
4
- renameSync,
5
- unlinkSync,
6
- readdirSync,
7
- mkdirSync,
8
- existsSync,
9
- } from 'node:fs';
10
- import { join } from 'node:path';
11
-
12
- // ---------------------------------------------------------------------------
13
- // FsAdapter interface (enables dependency injection for testing)
14
- // ---------------------------------------------------------------------------
15
-
16
- /**
17
- * Minimal filesystem operations required by the host imports.
18
- *
19
- * The default implementation delegates to `node:fs` synchronous
20
- * APIs. Tests inject a stub to avoid touching the real filesystem.
21
- */
22
- export interface FsAdapter {
23
- /** Read entire file as a Buffer. */
24
- readFileSync(path: string): Buffer;
25
- /** Write data buffer to file. */
26
- writeFileSync(path: string, data: Uint8Array): void;
27
- /** Rename `oldPath` to `newPath`. */
28
- renameSync(oldPath: string, newPath: string): void;
29
- /** Delete a file. */
30
- unlinkSync(path: string): void;
31
- /** List directory entries as strings. */
32
- readdirSync(path: string): string[];
33
- /** Create a directory (and parents) recursively. */
34
- mkdirSync(path: string): void;
35
- /** Return true if the path exists. */
36
- existsSync(path: string): boolean;
37
- }
38
-
39
- // ---------------------------------------------------------------------------
40
- // MemoryRef interface
41
- // ---------------------------------------------------------------------------
42
-
43
- /**
44
- * A mutable reference to the WASM linear memory.
45
- *
46
- * The `memory` field starts as `null` and is wired up after the
47
- * `kb-worker` WASM module is instantiated (the module exports its
48
- * own memory rather than importing one). Host import functions
49
- * read `memory` at call time, not at creation time, so the ref
50
- * can be populated after the import record is built.
51
- */
52
- export interface MemoryRef {
53
- memory: WebAssembly.Memory | null;
54
- }
55
-
56
- // ---------------------------------------------------------------------------
57
- // AllocatorRef interface
58
- // ---------------------------------------------------------------------------
59
-
60
- /**
61
- * A mutable reference to the WASM allocator function.
62
- *
63
- * The `alloc` field starts as `null` and is wired up after the
64
- * `kb-worker` WASM module is instantiated. Host import functions
65
- * that must allocate memory in WASM linear memory check this
66
- * reference before proceeding and return -1 when it is null.
67
- */
68
- export interface AllocatorRef {
69
- /**
70
- * Allocates `size` bytes in WASM linear memory and returns the
71
- * byte offset of the allocated region, or `null` when the
72
- * allocator is not yet available.
73
- */
74
- alloc: ((size: number) => number) | null;
75
- }
76
-
77
- /** Default `FsAdapter` backed by `node:fs` synchronous APIs. */
78
- const nodeFsAdapter: FsAdapter = {
79
- readFileSync: (p) => readFileSync(p),
80
- writeFileSync: (p, d) => {
81
- writeFileSync(p, d);
82
- },
83
- renameSync: (o, n) => {
84
- renameSync(o, n);
85
- },
86
- unlinkSync: (p) => {
87
- unlinkSync(p);
88
- },
89
- readdirSync: (p) => readdirSync(p),
90
- mkdirSync: (p) => {
91
- mkdirSync(p, { recursive: true });
92
- },
93
- existsSync: (p) => existsSync(p),
94
- };
95
-
96
- /** Default `MemoryRef` with no memory wired. */
97
- const nullMemory: MemoryRef = { memory: null };
98
-
99
- /** Default `AllocatorRef` with no allocator wired. */
100
- const nullAllocator: AllocatorRef = { alloc: null };
101
-
102
- // ---------------------------------------------------------------------------
103
- // createHostImports
104
- // ---------------------------------------------------------------------------
105
-
106
- /**
107
- * Creates the host I/O import functions required by `kb-worker.wasm`.
108
- *
109
- * All functions read the WASM linear memory through `memoryRef`,
110
- * a deferred reference wired up after module instantiation (the
111
- * module exports its own memory). Paths from WASM are resolved
112
- * relative to `contextPath`.
113
- *
114
- * @param contextPath - absolute path to the `.kbdb` database directory
115
- * @param memoryRef - deferred reference to the WASM module's
116
- * exported memory; wired after instantiation
117
- * @param fs - filesystem adapter; defaults to real `node:fs` operations
118
- * @param allocator - reference to the WASM allocator; wired after
119
- * `kb-worker` instantiation. Defaults to a null (uninitialized) ref.
120
- * @returns a record of host import functions keyed by their WASM import
121
- * names
122
- */
123
- export function createHostImports(
124
- contextPath: string,
125
- memoryRef: MemoryRef = nullMemory,
126
- fs: FsAdapter = nodeFsAdapter,
127
- allocator: AllocatorRef = nullAllocator,
128
- ): Record<string, WebAssembly.ImportValue> {
129
- function getBuffer(): ArrayBuffer {
130
- if (!memoryRef.memory) {
131
- throw new Error('WASM memory not initialized');
132
- }
133
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
134
- return memoryRef.memory.buffer as ArrayBuffer;
135
- }
136
-
137
- function readPathArg(ptr: number, len: number): string {
138
- const bytes = new Uint8Array(getBuffer(), ptr, len);
139
- const decoded = new TextDecoder().decode(bytes);
140
- if (decoded.startsWith('/')) return decoded;
141
- return join(contextPath, decoded);
142
- }
143
-
144
- return {
145
- /**
146
- * Reads a file at the path encoded in shared memory and writes
147
- * the result back via the out-pointer protocol.
148
- *
149
- * `outPtr` and `outLen` are WASM linear-memory addresses. On
150
- * success, the host allocates a buffer via `allocator.alloc`,
151
- * copies the file data there, and writes the allocated pointer
152
- * as a LE u32 to `outPtr` and the data length as a LE u32 to
153
- * `outLen`. Returns 0 on success, -1 on error or when the
154
- * allocator is not yet available.
155
- */
156
- host_read_file(
157
- pathPtr: number,
158
- pathLen: number,
159
- outPtr: number,
160
- outLen: number,
161
- ): number {
162
- try {
163
- if (!allocator.alloc) return -1;
164
- const filePath = readPathArg(pathPtr, pathLen);
165
- const data = fs.readFileSync(filePath);
166
- const dataLen = data.byteLength;
167
- if (dataLen === 0) {
168
- // No allocation -- buffer cannot have grown; safe to
169
- // create DataView now.
170
- const dv = new DataView(getBuffer());
171
- dv.setUint32(outPtr, 0, true);
172
- dv.setUint32(outLen, 0, true);
173
- return 0;
174
- }
175
- const dataPtr = allocator.alloc(dataLen);
176
- if (dataPtr === 0) return -1;
177
- // Create DataView AFTER alloc() -- alloc may trigger WASM
178
- // memory growth, which detaches the old ArrayBuffer and
179
- // replaces it with a new one. A DataView captured before
180
- // growth would reference the detached buffer and throw.
181
- const dv = new DataView(getBuffer());
182
- const memView = new Uint8Array(getBuffer());
183
- memView.set(
184
- new Uint8Array(
185
- data.buffer,
186
- data.byteOffset,
187
- data.byteLength,
188
- ),
189
- dataPtr,
190
- );
191
- dv.setUint32(outPtr, dataPtr, true);
192
- dv.setUint32(outLen, dataLen, true);
193
- return 0;
194
- } catch {
195
- return -1;
196
- }
197
- },
198
-
199
- /**
200
- * Writes bytes from shared memory (`dataPtr`, `dataLen`) to the
201
- * file at the path encoded in shared memory. Returns 0 on
202
- * success, -1 on error.
203
- */
204
- host_write_file(
205
- pathPtr: number,
206
- pathLen: number,
207
- dataPtr: number,
208
- dataLen: number,
209
- ): number {
210
- try {
211
- const filePath = readPathArg(pathPtr, pathLen);
212
- const data = new Uint8Array(getBuffer(), dataPtr, dataLen);
213
- fs.writeFileSync(filePath, data);
214
- return 0;
215
- } catch {
216
- return -1;
217
- }
218
- },
219
-
220
- /**
221
- * Renames the file at `oldPtr/oldLen` to `newPtr/newLen`.
222
- * Both paths are resolved relative to `contextPath`. Returns 0
223
- * on success, -1 on error.
224
- */
225
- host_rename(
226
- oldPtr: number,
227
- oldLen: number,
228
- newPtr: number,
229
- newLen: number,
230
- ): number {
231
- try {
232
- const oldPath = readPathArg(oldPtr, oldLen);
233
- const newPath = readPathArg(newPtr, newLen);
234
- fs.renameSync(oldPath, newPath);
235
- return 0;
236
- } catch {
237
- return -1;
238
- }
239
- },
240
-
241
- /**
242
- * Deletes the file at the path encoded in shared memory.
243
- * Returns 0 on success, -1 on error.
244
- */
245
- host_remove_file(pathPtr: number, pathLen: number): number {
246
- try {
247
- const filePath = readPathArg(pathPtr, pathLen);
248
- fs.unlinkSync(filePath);
249
- return 0;
250
- } catch {
251
- return -1;
252
- }
253
- },
254
-
255
- /**
256
- * Lists the directory at the path encoded in shared memory and
257
- * writes the result back via the out-pointer protocol.
258
- *
259
- * `outPtr` and `outLen` are WASM linear-memory addresses. On
260
- * success, the host allocates a buffer via `allocator.alloc`,
261
- * copies a newline-delimited UTF-8 listing there, and writes
262
- * the allocated pointer as a LE u32 to `outPtr` and the byte
263
- * length as a LE u32 to `outLen`. Returns 0 on success, -1 on
264
- * error or when the allocator is not yet available.
265
- */
266
- host_list_dir(
267
- pathPtr: number,
268
- pathLen: number,
269
- outPtr: number,
270
- outLen: number,
271
- ): number {
272
- try {
273
- if (!allocator.alloc) return -1;
274
- const dirPath = readPathArg(pathPtr, pathLen);
275
- const entries = fs.readdirSync(dirPath);
276
- const text = entries.join('\n');
277
- const encoded = new TextEncoder().encode(text);
278
- if (encoded.length === 0) {
279
- // No allocation -- buffer cannot have grown; safe to
280
- // create DataView now.
281
- const dv = new DataView(getBuffer());
282
- dv.setUint32(outPtr, 0, true);
283
- dv.setUint32(outLen, 0, true);
284
- return 0;
285
- }
286
- const dataPtr = allocator.alloc(encoded.length);
287
- if (dataPtr === 0) return -1;
288
- // Create DataView AFTER alloc() -- alloc may trigger WASM
289
- // memory growth, which detaches the old ArrayBuffer and
290
- // replaces it with a new one. A DataView captured before
291
- // growth would reference the detached buffer and throw.
292
- const dv = new DataView(getBuffer());
293
- new Uint8Array(getBuffer(), dataPtr, encoded.length).set(
294
- encoded,
295
- );
296
- dv.setUint32(outPtr, dataPtr, true);
297
- dv.setUint32(outLen, encoded.length, true);
298
- return 0;
299
- } catch {
300
- return -1;
301
- }
302
- },
303
-
304
- /**
305
- * Creates the directory at the path encoded in shared memory,
306
- * including any missing parent directories (recursive). Returns
307
- * 0 on success, -1 on error.
308
- */
309
- host_mkdir(pathPtr: number, pathLen: number): number {
310
- try {
311
- const dirPath = readPathArg(pathPtr, pathLen);
312
- fs.mkdirSync(dirPath);
313
- return 0;
314
- } catch {
315
- return -1;
316
- }
317
- },
318
-
319
- /**
320
- * Checks whether the file at the path encoded in shared memory
321
- * exists. Returns 1 if it exists, 0 if it does not.
322
- */
323
- host_file_exists(pathPtr: number, pathLen: number): number {
324
- const filePath = readPathArg(pathPtr, pathLen);
325
- return fs.existsSync(filePath) ? 1 : 0;
326
- },
327
- };
328
- }
@@ -1,87 +0,0 @@
1
- import { createServer } from 'node:net';
2
- import type { Server, Socket } from 'node:net';
3
- import type {
4
- IpcHandler,
5
- IpcRequest,
6
- IpcResponse,
7
- } from '../typings/ipc-handler.interface.ts';
8
-
9
- /**
10
- * Creates a Unix socket (or named pipe on Windows) IPC server that
11
- * reads newline-delimited JSON-RPC requests and writes responses.
12
- *
13
- * Each line received on a socket connection is parsed as an
14
- * `IpcRequest`, dispatched to `handler`, and the resulting
15
- * `IpcResponse` is written back as a newline-terminated JSON string.
16
- * A malformed line that cannot be parsed results in a JSON-RPC
17
- * parse-error response (`-32700`).
18
- *
19
- * @param socketPath - path to the Unix domain socket or Windows
20
- * named pipe
21
- * @param handler - async function invoked for each valid request
22
- * @returns the listening `net.Server` instance
23
- */
24
- export function createIpcServer(
25
- socketPath: string,
26
- handler: IpcHandler,
27
- ): Server {
28
- const server = createServer((socket) => {
29
- let buffer = '';
30
-
31
- let processingQueue = Promise.resolve();
32
-
33
- socket.on('data', (chunk: Buffer) => {
34
- buffer += chunk.toString();
35
- const lines = buffer.split('\n');
36
- buffer = lines.pop() ?? '';
37
-
38
- for (const line of lines) {
39
- if (!line.trim()) continue;
40
- processingQueue = processingQueue.then(() =>
41
- handleLine(line, handler, socket),
42
- );
43
- }
44
- });
45
-
46
- socket.on('error', (err: Error) => {
47
- // eslint-disable-next-line no-console
48
- console.error(
49
- `kbdb-worker: ipc connection error: ${err.message}`,
50
- );
51
- });
52
- });
53
-
54
- server.on('error', (err: Error) => {
55
- // eslint-disable-next-line no-console
56
- console.error(`kbdb-worker: ipc server error: ${err.message}`);
57
- });
58
-
59
- server.listen(socketPath);
60
- return server;
61
- }
62
-
63
- function bigintReplacer(_key: string, value: unknown): unknown {
64
- return typeof value === 'bigint' ? Number(value) : value;
65
- }
66
-
67
- async function handleLine(
68
- line: string,
69
- handler: IpcHandler,
70
- socket: Socket,
71
- ): Promise<void> {
72
- let response: IpcResponse;
73
- try {
74
- const request = JSON.parse(line) as IpcRequest;
75
- response = await handler(request);
76
- } catch {
77
- response = {
78
- jsonrpc: '2.0',
79
- id: 0,
80
- error: {
81
- code: -32700,
82
- message: 'Parse error',
83
- },
84
- };
85
- }
86
- socket.write(JSON.stringify(response, bigintReplacer) + '\n');
87
- }
@@ -1,33 +0,0 @@
1
- import { existsSync, readFileSync, unlinkSync } from 'node:fs';
2
- import { isProcessAlive } from '../../platform/functions/is-process-alive.function.ts';
3
-
4
- /**
5
- * Checks whether a PID file contains a stale process ID.
6
- *
7
- * Reads the PID from the file and checks whether the process is
8
- * still running using `process.kill(pid, 0)`. If the process is
9
- * dead, or the PID is unparseable, removes the PID file and
10
- * returns `true`. Returns `false` when the process is alive or
11
- * the file does not exist.
12
- *
13
- * @param pidPath - absolute path to the PID file to inspect
14
- * @returns `true` if the PID file is stale (process dead or
15
- * content invalid) and was removed; `false` if the process is
16
- * alive or the file does not exist
17
- */
18
- export function detectStalePid(pidPath: string): boolean {
19
- if (!existsSync(pidPath)) return false;
20
-
21
- const pidStr = readFileSync(pidPath, 'utf-8').trim();
22
- const pid = parseInt(pidStr, 10);
23
- const isAlive = !isNaN(pid) && pid > 0 && isProcessAlive(pid);
24
-
25
- if (isAlive) return false;
26
-
27
- try {
28
- unlinkSync(pidPath);
29
- } catch {
30
- // Best-effort removal; stale file is treated as detected
31
- }
32
- return true;
33
- }