@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
package/dist/mod.cjs CHANGED
@@ -23,26 +23,142 @@ __export(mod_exports, {
23
23
  WorkerClient: () => WorkerClient,
24
24
  computeContextId: () => computeContextId,
25
25
  createWorkerClient: () => createWorkerClient,
26
+ getOrCreateClient: () => getOrCreateClient,
26
27
  resolveDbPath: () => resolveDbPath,
27
28
  version: () => VERSION
28
29
  });
29
30
  module.exports = __toCommonJS(mod_exports);
30
31
 
31
32
  // src/shared/version/constants/version.constant.ts
32
- var VERSION = "0.2.2";
33
+ var VERSION = "0.4.1";
33
34
 
34
35
  // src/shared/worker-client/classes/worker-client.class.ts
35
36
  var import_node_net = require("node:net");
37
+
38
+ // src/shared/worker-client/functions/discover-daemon.function.ts
39
+ var import_node_fs = require("node:fs");
40
+ var import_node_path = require("node:path");
41
+ var import_node_os = require("node:os");
42
+
43
+ // src/shared/platform/functions/is-process-alive.function.ts
44
+ function isProcessAlive(pid) {
45
+ try {
46
+ process.kill(pid, 0);
47
+ return true;
48
+ } catch {
49
+ return false;
50
+ }
51
+ }
52
+
53
+ // src/shared/log/typings/log-level.type.ts
54
+ var LogLevel = /* @__PURE__ */ ((LogLevel2) => {
55
+ LogLevel2[LogLevel2["DEBUG"] = 0] = "DEBUG";
56
+ LogLevel2[LogLevel2["INFO"] = 1] = "INFO";
57
+ LogLevel2[LogLevel2["WARNING"] = 2] = "WARNING";
58
+ LogLevel2[LogLevel2["ERROR"] = 3] = "ERROR";
59
+ return LogLevel2;
60
+ })(LogLevel || {});
61
+
62
+ // src/shared/log/constants/log-colors.constant.ts
63
+ var ANSI_RESET = "\x1B[0m";
64
+ var LOG_COLORS = {
65
+ [0 /* DEBUG */]: "\x1B[37m",
66
+ [1 /* INFO */]: "\x1B[36m",
67
+ [2 /* WARNING */]: "\x1B[33m",
68
+ [3 /* ERROR */]: "\x1B[91m"
69
+ };
70
+
71
+ // src/shared/log/constants/log-icons.constant.ts
72
+ var LOG_ICONS = {
73
+ [0 /* DEBUG */]: "\u25B8",
74
+ [1 /* INFO */]: "\u2139",
75
+ [2 /* WARNING */]: "\u26A0",
76
+ [3 /* ERROR */]: "\u2716"
77
+ };
78
+
79
+ // src/shared/log/constants/log-defaults.constant.ts
80
+ var DEFAULT_LOG_LEVEL = 3 /* ERROR */;
81
+
82
+ // src/shared/log/functions/write-stderr.function.ts
83
+ function writeStderr(message) {
84
+ const g = globalThis;
85
+ const proc = g["process"];
86
+ if (proc?.stderr) {
87
+ proc.stderr.write(message);
88
+ return;
89
+ }
90
+ const deno = g["Deno"];
91
+ deno?.stderr.writeSync(new TextEncoder().encode(message));
92
+ }
93
+
94
+ // src/shared/log/functions/log.function.ts
95
+ var currentLevel = DEFAULT_LOG_LEVEL;
96
+ var outputs = {
97
+ [0 /* DEBUG */]: writeStderr,
98
+ [1 /* INFO */]: writeStderr,
99
+ [2 /* WARNING */]: writeStderr,
100
+ [3 /* ERROR */]: writeStderr
101
+ };
102
+ function log(message, level = 3 /* ERROR */) {
103
+ if (level < currentLevel) {
104
+ return;
105
+ }
106
+ const color = LOG_COLORS[level];
107
+ const icon = LOG_ICONS[level];
108
+ const name = LogLevel[level];
109
+ const line = `${color}${icon} [${name}] ${message}${ANSI_RESET}
110
+ `;
111
+ outputs[level](line);
112
+ }
113
+
114
+ // src/shared/worker-client/functions/discover-daemon.function.ts
115
+ function discoverDaemon(contextId) {
116
+ log("discovering daemon for context: " + contextId, 0 /* DEBUG */);
117
+ const pidPath = (0, import_node_path.join)((0, import_node_os.tmpdir)(), `kbdb-${contextId}.pid`);
118
+ if (!(0, import_node_fs.existsSync)(pidPath)) {
119
+ log(
120
+ "no daemon PID file found for context: " + contextId,
121
+ 0 /* DEBUG */
122
+ );
123
+ return null;
124
+ }
125
+ const pidStr = (0, import_node_fs.readFileSync)(pidPath, "utf-8").trim();
126
+ const pid = parseInt(pidStr, 10);
127
+ if (isNaN(pid) || !isProcessAlive(pid)) {
128
+ log(
129
+ "daemon process not alive for context: " + contextId,
130
+ 0 /* DEBUG */
131
+ );
132
+ try {
133
+ (0, import_node_fs.unlinkSync)(pidPath);
134
+ } catch {
135
+ }
136
+ return null;
137
+ }
138
+ log("daemon found: pid=" + pid.toString(), 0 /* DEBUG */);
139
+ const socketPath = (0, import_node_path.join)((0, import_node_os.tmpdir)(), `kbdb-${contextId}.sock`);
140
+ const crashPath = (0, import_node_path.join)((0, import_node_os.tmpdir)(), `kbdb-${contextId}.crash`);
141
+ try {
142
+ (0, import_node_fs.unlinkSync)(crashPath);
143
+ } catch {
144
+ }
145
+ return { pid, socketPath };
146
+ }
147
+
148
+ // src/shared/worker-client/classes/worker-client.class.ts
36
149
  var WorkerClient = class {
37
150
  /**
38
151
  * @param socketPath - absolute path to the daemon's IPC socket
39
152
  * (or Windows named pipe path)
40
153
  * @param contextId - 16-character context identifier sent as
41
154
  * `ctx` in every JSON-RPC request
155
+ * @param requestTimeoutMs - per-request timeout in ms
156
+ * (0 or undefined disables the timeout)
42
157
  */
43
- constructor(socketPath, contextId) {
158
+ constructor(socketPath, contextId, requestTimeoutMs) {
44
159
  this.socketPath = socketPath;
45
160
  this.contextId = contextId;
161
+ this.requestTimeoutMs = requestTimeoutMs;
46
162
  }
47
163
  /** Underlying socket; `null` when not connected. */
48
164
  socket = null;
@@ -52,30 +168,121 @@ var WorkerClient = class {
52
168
  pending = /* @__PURE__ */ new Map();
53
169
  /** Partial line buffer for split TCP/IPC frames. */
54
170
  buffer = "";
171
+ /** Whether the underlying socket is connected. */
172
+ get isConnected() {
173
+ return this.socket !== null;
174
+ }
55
175
  /**
56
176
  * Establishes the IPC connection to the worker daemon.
57
177
  *
178
+ * Retries up to 5 times with exponential backoff on
179
+ * transient errors (`ENOENT`, `ECONNREFUSED`).
180
+ *
58
181
  * @throws {Error} if the connection cannot be established
59
182
  */
60
183
  async connect() {
184
+ log("connecting to " + this.socketPath, 0 /* DEBUG */);
185
+ const maxRetries = 5;
186
+ let delay = 50;
187
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
188
+ try {
189
+ await this.tryConnect();
190
+ log("connected", 0 /* DEBUG */);
191
+ return;
192
+ } catch (err) {
193
+ const code = err.code;
194
+ const retriable = code === "ENOENT" || code === "ECONNREFUSED";
195
+ if (!retriable || attempt === maxRetries) {
196
+ throw err;
197
+ }
198
+ log(
199
+ "connect retry: attempt=" + attempt.toString() + " code=" + code + " delay=" + delay.toString() + "ms",
200
+ 0 /* DEBUG */
201
+ );
202
+ await new Promise((r) => setTimeout(r, delay));
203
+ delay = Math.min(delay * 2, 1e3);
204
+ }
205
+ }
206
+ }
207
+ /** Destroys the IPC socket and clears the connection state. */
208
+ disconnect() {
209
+ log("disconnecting client", 0 /* DEBUG */);
210
+ if (this.socket) {
211
+ this.socket.destroy();
212
+ this.socket = null;
213
+ }
214
+ }
215
+ /**
216
+ * Kills the daemon process and disconnects the client.
217
+ *
218
+ * Discovers the daemon via PID file and sends `SIGTERM`.
219
+ * Always disconnects the socket regardless of kill outcome.
220
+ */
221
+ killDaemon() {
222
+ const info = discoverDaemon(this.contextId);
223
+ log(
224
+ "killing daemon: pid=" + (info ? info.pid.toString() : "unknown"),
225
+ 0 /* DEBUG */
226
+ );
227
+ if (info) {
228
+ try {
229
+ process.kill(info.pid, "SIGTERM");
230
+ } catch {
231
+ }
232
+ }
233
+ this.disconnect();
234
+ }
235
+ /**
236
+ * Single connection attempt with keepalive and
237
+ * post-connect failure handlers.
238
+ */
239
+ async tryConnect() {
61
240
  return new Promise((resolve2, reject) => {
62
- this.socket = (0, import_node_net.connect)(this.socketPath, () => {
241
+ const sock = (0, import_node_net.connect)(this.socketPath, () => {
242
+ sock.removeListener("error", reject);
243
+ sock.setKeepAlive(true, 3e4);
244
+ sock.on("error", (err) => {
245
+ log(
246
+ "socket error: code=" + (err.code ?? err.message),
247
+ 0 /* DEBUG */
248
+ );
249
+ this.handleSocketFailure(err);
250
+ });
251
+ sock.on("close", () => {
252
+ log("socket closed", 0 /* DEBUG */);
253
+ if (this.pending.size > 0) {
254
+ this.handleSocketFailure(
255
+ new Error("connection closed")
256
+ );
257
+ }
258
+ this.socket = null;
259
+ });
260
+ this.socket = sock;
63
261
  resolve2();
64
262
  });
65
- this.socket.on("error", (err) => {
66
- reject(err);
67
- });
68
- this.socket.on("data", (chunk) => {
263
+ sock.on("error", reject);
264
+ sock.on("data", (chunk) => {
69
265
  this.handleData(chunk.toString());
70
266
  });
71
267
  });
72
268
  }
73
- /** Destroys the IPC socket and clears the connection state. */
74
- disconnect() {
75
- if (this.socket) {
76
- this.socket.destroy();
77
- this.socket = null;
269
+ /**
270
+ * Rejects all pending calls and marks the client as
271
+ * disconnected.
272
+ */
273
+ handleSocketFailure(err) {
274
+ log(
275
+ "socket failure: pending=" + this.pending.size.toString() + " err=" + err.message,
276
+ 0 /* DEBUG */
277
+ );
278
+ const sock = this.socket;
279
+ this.socket = null;
280
+ for (const [id, call] of this.pending) {
281
+ this.pending.delete(id);
282
+ if (call.timer) clearTimeout(call.timer);
283
+ call.reject(err);
78
284
  }
285
+ if (sock) sock.destroy();
79
286
  }
80
287
  /**
81
288
  * Searches the knowledge base.
@@ -84,7 +291,10 @@ var WorkerClient = class {
84
291
  * @returns paginated search results with metadata
85
292
  */
86
293
  async search(params) {
87
- return this.call("search", params);
294
+ return this.call("search", {
295
+ ...params,
296
+ algo: params.algo
297
+ });
88
298
  }
89
299
  /**
90
300
  * Retrieves full content and context for one or more sections by
@@ -335,7 +545,20 @@ var WorkerClient = class {
335
545
  */
336
546
  async export(params) {
337
547
  return this.call("export", {
338
- targetPath: params?.path || void 0
548
+ targetPath: params?.path || void 0,
549
+ format: params?.format
550
+ });
551
+ }
552
+ /**
553
+ * Imports an exported database from the given path.
554
+ *
555
+ * @param params - source path and dry-run flag
556
+ * @returns import report with counts and timing
557
+ */
558
+ async import(params) {
559
+ return this.call("importDb", {
560
+ sourcePath: params.from,
561
+ dryRun: params.dryRun
339
562
  });
340
563
  }
341
564
  /**
@@ -352,14 +575,35 @@ var WorkerClient = class {
352
575
  throw new Error("not connected");
353
576
  }
354
577
  const id = this.nextId++;
578
+ log(
579
+ "call: method=" + method + " id=" + id.toString(),
580
+ 0 /* DEBUG */
581
+ );
355
582
  const request = {
356
583
  jsonrpc: "2.0",
357
584
  id,
358
585
  method,
359
586
  params: { ctx: this.contextId, ...params }
360
587
  };
588
+ const timeoutMs = this.requestTimeoutMs;
361
589
  return new Promise((resolve2, reject) => {
362
- this.pending.set(id, { resolve: resolve2, reject });
590
+ const call = { resolve: resolve2, reject };
591
+ if (timeoutMs) {
592
+ call.timer = setTimeout(() => {
593
+ if (!this.pending.has(id)) return;
594
+ this.pending.delete(id);
595
+ log(
596
+ "request timeout after " + String(timeoutMs) + "ms",
597
+ 2 /* WARNING */
598
+ );
599
+ const err = new Error(
600
+ `request timeout after ${String(timeoutMs)}ms`
601
+ );
602
+ err.code = "REQUEST_TIMEOUT";
603
+ reject(err);
604
+ }, timeoutMs);
605
+ }
606
+ this.pending.set(id, call);
363
607
  socket.write(JSON.stringify(request) + "\n");
364
608
  });
365
609
  }
@@ -380,15 +624,33 @@ var WorkerClient = class {
380
624
  const pending = this.pending.get(response.id);
381
625
  if (pending) {
382
626
  this.pending.delete(response.id);
627
+ if (pending.timer) clearTimeout(pending.timer);
383
628
  if (response.error) {
629
+ log(
630
+ "response error: id=" + response.id.toString() + " code=" + response.error.code.toString(),
631
+ 0 /* DEBUG */
632
+ );
384
633
  const err = new Error(response.error.message);
385
634
  err.code = response.error.code;
386
635
  pending.reject(err);
387
636
  } else {
637
+ log(
638
+ "response ok: id=" + response.id.toString(),
639
+ 0 /* DEBUG */
640
+ );
388
641
  pending.resolve(response.result);
389
642
  }
643
+ } else {
644
+ log(
645
+ "unmatched response id=" + response.id.toString(),
646
+ 0 /* DEBUG */
647
+ );
390
648
  }
391
- } catch {
649
+ } catch (parseErr) {
650
+ log(
651
+ "json parse error: " + parseErr.message,
652
+ 0 /* DEBUG */
653
+ );
392
654
  }
393
655
  }
394
656
  }
@@ -400,13 +662,15 @@ var import_node_path5 = require("node:path");
400
662
  var import_node_os4 = require("node:os");
401
663
 
402
664
  // src/shared/worker-client/functions/resolve-db-path.function.ts
403
- var import_node_fs = require("node:fs");
404
- var import_node_path = require("node:path");
665
+ var import_node_fs2 = require("node:fs");
666
+ var import_node_path2 = require("node:path");
405
667
  function resolveDbPath(targetDir) {
406
- const base = targetDir ? (0, import_node_path.resolve)(targetDir) : process.cwd();
407
- const dbPath = (0, import_node_path.join)(base, ".kbdb");
408
- if (!(0, import_node_fs.existsSync)(dbPath)) {
409
- throw new Error(`database not found: ${dbPath}`);
668
+ const base = targetDir ? (0, import_node_path2.resolve)(targetDir) : process.cwd();
669
+ const dbPath = (0, import_node_path2.join)(base, ".kbdb");
670
+ if (!(0, import_node_fs2.existsSync)(dbPath)) {
671
+ const msg = `database not found: ${dbPath}`;
672
+ log(msg, 3 /* ERROR */);
673
+ throw new Error(msg);
410
674
  }
411
675
  return dbPath;
412
676
  }
@@ -425,53 +689,22 @@ async function computeContextId(absolutePath) {
425
689
  return hash.slice(0, 16);
426
690
  }
427
691
 
428
- // src/shared/worker-client/functions/discover-daemon.function.ts
429
- var import_node_fs2 = require("node:fs");
430
- var import_node_path2 = require("node:path");
431
- var import_node_os = require("node:os");
432
-
433
- // src/shared/platform/functions/is-process-alive.function.ts
434
- function isProcessAlive(pid) {
435
- try {
436
- process.kill(pid, 0);
437
- return true;
438
- } catch {
439
- return false;
440
- }
441
- }
442
-
443
- // src/shared/worker-client/functions/discover-daemon.function.ts
444
- function discoverDaemon(contextId) {
445
- const pidPath = (0, import_node_path2.join)((0, import_node_os.tmpdir)(), `kbdb-${contextId}.pid`);
446
- if (!(0, import_node_fs2.existsSync)(pidPath)) return null;
447
- const pidStr = (0, import_node_fs2.readFileSync)(pidPath, "utf-8").trim();
448
- const pid = parseInt(pidStr, 10);
449
- if (isNaN(pid) || !isProcessAlive(pid)) {
450
- try {
451
- (0, import_node_fs2.unlinkSync)(pidPath);
452
- } catch {
453
- }
454
- return null;
455
- }
456
- const socketPath = (0, import_node_path2.join)((0, import_node_os.tmpdir)(), `kbdb-${contextId}.sock`);
457
- const crashPath = (0, import_node_path2.join)((0, import_node_os.tmpdir)(), `kbdb-${contextId}.crash`);
458
- try {
459
- (0, import_node_fs2.unlinkSync)(crashPath);
460
- } catch {
461
- }
462
- return { pid, socketPath };
463
- }
464
-
465
692
  // src/shared/worker-client/functions/spawn-daemon.function.ts
466
693
  var import_node_child_process = require("node:child_process");
467
694
  function spawnDaemon(contextPath, runtime, workerScript) {
468
695
  if (!workerScript) {
469
- throw new Error(
470
- "workerScript must be provided (resolve at entry point)"
471
- );
696
+ const msg = "workerScript must be provided (resolve at entry point)";
697
+ log(msg, 3 /* ERROR */);
698
+ throw new Error(msg);
472
699
  }
473
700
  const execPath = runtime === "deno" ? "deno" : process.execPath;
474
- const args = runtime === "deno" ? ["run", "--allow-all", workerScript, contextPath] : [workerScript, contextPath];
701
+ const logLevelEnv = process.env["KBDB_LOG_LEVEL"];
702
+ const logArgs = logLevelEnv ? ["--log-level", logLevelEnv] : [];
703
+ const args = runtime === "deno" ? ["run", "--allow-all", workerScript, contextPath, ...logArgs] : [workerScript, contextPath, ...logArgs];
704
+ log(
705
+ "spawning daemon: " + execPath + " " + args.join(" "),
706
+ 0 /* DEBUG */
707
+ );
475
708
  const child = (0, import_node_child_process.spawn)(execPath, args, {
476
709
  detached: true,
477
710
  stdio: "ignore"
@@ -486,12 +719,30 @@ var import_node_os2 = require("node:os");
486
719
  var DEFAULT_TIMEOUT_MS = 1e4;
487
720
  var POLL_INTERVAL_MS = 100;
488
721
  async function waitForDaemon(contextId, timeoutMs = DEFAULT_TIMEOUT_MS) {
722
+ log("waiting for daemon: contextId=" + contextId, 0 /* DEBUG */);
489
723
  const pidPath = (0, import_node_path3.join)((0, import_node_os2.tmpdir)(), `kbdb-${contextId}.pid`);
490
724
  const start = Date.now();
725
+ let iteration = 0;
491
726
  while (Date.now() - start < timeoutMs) {
492
- if ((0, import_node_fs3.existsSync)(pidPath)) return true;
727
+ if ((0, import_node_fs3.existsSync)(pidPath)) {
728
+ log("daemon PID file appeared", 0 /* DEBUG */);
729
+ return true;
730
+ }
731
+ iteration++;
732
+ if (iteration % 10 === 0) {
733
+ const elapsed2 = Date.now() - start;
734
+ log(
735
+ "still waiting for daemon: elapsed=" + elapsed2.toString() + "ms",
736
+ 0 /* DEBUG */
737
+ );
738
+ }
493
739
  await new Promise((r) => setTimeout(r, POLL_INTERVAL_MS));
494
740
  }
741
+ const elapsed = Date.now() - start;
742
+ log(
743
+ "timed out waiting for daemon: elapsed=" + elapsed.toString() + "ms",
744
+ 0 /* DEBUG */
745
+ );
495
746
  return false;
496
747
  }
497
748
 
@@ -524,20 +775,33 @@ function getIpcPath(ctx) {
524
775
  async function createWorkerClient(options) {
525
776
  const dbPath = options?.contextPath ?? resolveDbPath(options?.dbPath);
526
777
  const contextId = await computeContextId(dbPath);
778
+ log("create-worker-client: contextId=" + contextId, 0 /* DEBUG */);
527
779
  const socketPath = getIpcPath(contextId);
528
780
  let daemon = discoverDaemon(contextId);
781
+ if (daemon) {
782
+ log("daemon found: pid=" + daemon.pid.toString(), 0 /* DEBUG */);
783
+ } else {
784
+ log("no daemon found", 0 /* DEBUG */);
785
+ }
529
786
  if (!daemon && options?.autoSpawn !== false) {
530
787
  const runtime = detectRuntime();
788
+ log("auto-spawning daemon", 0 /* DEBUG */);
531
789
  spawnDaemon(dbPath, runtime, options?.workerScript);
790
+ log("waiting for daemon after spawn", 0 /* DEBUG */);
532
791
  await waitForDaemon(contextId, options?.connectTimeoutMs);
533
792
  daemon = discoverDaemon(contextId);
534
793
  }
535
794
  if (!daemon) {
536
- throw new Error(
537
- `kbdb worker daemon did not start: ${readCrashReason(contextId)}`
538
- );
539
- }
540
- const client = new WorkerClient(socketPath, contextId);
795
+ const msg = `kbdb worker daemon did not start: ${readCrashReason(contextId)}`;
796
+ log(msg, 3 /* ERROR */);
797
+ throw new Error(msg);
798
+ }
799
+ log("connecting to daemon", 0 /* DEBUG */);
800
+ const client = new WorkerClient(
801
+ socketPath,
802
+ contextId,
803
+ options?.requestTimeoutMs
804
+ );
541
805
  await client.connect();
542
806
  return client;
543
807
  }
@@ -555,11 +819,29 @@ function readCrashReason(contextId) {
555
819
  return "daemon failed to start (crash log unreadable)";
556
820
  }
557
821
  }
822
+
823
+ // src/shared/worker-client/functions/get-or-create-client.function.ts
824
+ var cache = /* @__PURE__ */ new Map();
825
+ async function getOrCreateClient(options) {
826
+ log("getOrCreateClient called", 0 /* DEBUG */);
827
+ const dbPath = options?.contextPath ?? resolveDbPath(options?.dbPath);
828
+ const cached = cache.get(dbPath);
829
+ if (cached?.isConnected) {
830
+ log("returning cached client for: " + dbPath, 0 /* DEBUG */);
831
+ return cached;
832
+ }
833
+ cache.delete(dbPath);
834
+ log("creating new client for: " + dbPath, 0 /* DEBUG */);
835
+ const client = await createWorkerClient(options);
836
+ cache.set(dbPath, client);
837
+ return client;
838
+ }
558
839
  // Annotate the CommonJS export names for ESM import in node:
559
840
  0 && (module.exports = {
560
841
  WorkerClient,
561
842
  computeContextId,
562
843
  createWorkerClient,
844
+ getOrCreateClient,
563
845
  resolveDbPath,
564
846
  version
565
847
  });