@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.mjs CHANGED
@@ -1,18 +1,133 @@
1
1
  // src/shared/version/constants/version.constant.ts
2
- var VERSION = "0.2.2";
2
+ var VERSION = "0.4.1";
3
3
 
4
4
  // src/shared/worker-client/classes/worker-client.class.ts
5
5
  import { connect } from "node:net";
6
+
7
+ // src/shared/worker-client/functions/discover-daemon.function.ts
8
+ import { existsSync, readFileSync, unlinkSync } from "node:fs";
9
+ import { join } from "node:path";
10
+ import { tmpdir } from "node:os";
11
+
12
+ // src/shared/platform/functions/is-process-alive.function.ts
13
+ function isProcessAlive(pid) {
14
+ try {
15
+ process.kill(pid, 0);
16
+ return true;
17
+ } catch {
18
+ return false;
19
+ }
20
+ }
21
+
22
+ // src/shared/log/typings/log-level.type.ts
23
+ var LogLevel = /* @__PURE__ */ ((LogLevel2) => {
24
+ LogLevel2[LogLevel2["DEBUG"] = 0] = "DEBUG";
25
+ LogLevel2[LogLevel2["INFO"] = 1] = "INFO";
26
+ LogLevel2[LogLevel2["WARNING"] = 2] = "WARNING";
27
+ LogLevel2[LogLevel2["ERROR"] = 3] = "ERROR";
28
+ return LogLevel2;
29
+ })(LogLevel || {});
30
+
31
+ // src/shared/log/constants/log-colors.constant.ts
32
+ var ANSI_RESET = "\x1B[0m";
33
+ var LOG_COLORS = {
34
+ [0 /* DEBUG */]: "\x1B[37m",
35
+ [1 /* INFO */]: "\x1B[36m",
36
+ [2 /* WARNING */]: "\x1B[33m",
37
+ [3 /* ERROR */]: "\x1B[91m"
38
+ };
39
+
40
+ // src/shared/log/constants/log-icons.constant.ts
41
+ var LOG_ICONS = {
42
+ [0 /* DEBUG */]: "\u25B8",
43
+ [1 /* INFO */]: "\u2139",
44
+ [2 /* WARNING */]: "\u26A0",
45
+ [3 /* ERROR */]: "\u2716"
46
+ };
47
+
48
+ // src/shared/log/constants/log-defaults.constant.ts
49
+ var DEFAULT_LOG_LEVEL = 3 /* ERROR */;
50
+
51
+ // src/shared/log/functions/write-stderr.function.ts
52
+ function writeStderr(message) {
53
+ const g = globalThis;
54
+ const proc = g["process"];
55
+ if (proc?.stderr) {
56
+ proc.stderr.write(message);
57
+ return;
58
+ }
59
+ const deno = g["Deno"];
60
+ deno?.stderr.writeSync(new TextEncoder().encode(message));
61
+ }
62
+
63
+ // src/shared/log/functions/log.function.ts
64
+ var currentLevel = DEFAULT_LOG_LEVEL;
65
+ var outputs = {
66
+ [0 /* DEBUG */]: writeStderr,
67
+ [1 /* INFO */]: writeStderr,
68
+ [2 /* WARNING */]: writeStderr,
69
+ [3 /* ERROR */]: writeStderr
70
+ };
71
+ function log(message, level = 3 /* ERROR */) {
72
+ if (level < currentLevel) {
73
+ return;
74
+ }
75
+ const color = LOG_COLORS[level];
76
+ const icon = LOG_ICONS[level];
77
+ const name = LogLevel[level];
78
+ const line = `${color}${icon} [${name}] ${message}${ANSI_RESET}
79
+ `;
80
+ outputs[level](line);
81
+ }
82
+
83
+ // src/shared/worker-client/functions/discover-daemon.function.ts
84
+ function discoverDaemon(contextId) {
85
+ log("discovering daemon for context: " + contextId, 0 /* DEBUG */);
86
+ const pidPath = join(tmpdir(), `kbdb-${contextId}.pid`);
87
+ if (!existsSync(pidPath)) {
88
+ log(
89
+ "no daemon PID file found for context: " + contextId,
90
+ 0 /* DEBUG */
91
+ );
92
+ return null;
93
+ }
94
+ const pidStr = readFileSync(pidPath, "utf-8").trim();
95
+ const pid = parseInt(pidStr, 10);
96
+ if (isNaN(pid) || !isProcessAlive(pid)) {
97
+ log(
98
+ "daemon process not alive for context: " + contextId,
99
+ 0 /* DEBUG */
100
+ );
101
+ try {
102
+ unlinkSync(pidPath);
103
+ } catch {
104
+ }
105
+ return null;
106
+ }
107
+ log("daemon found: pid=" + pid.toString(), 0 /* DEBUG */);
108
+ const socketPath = join(tmpdir(), `kbdb-${contextId}.sock`);
109
+ const crashPath = join(tmpdir(), `kbdb-${contextId}.crash`);
110
+ try {
111
+ unlinkSync(crashPath);
112
+ } catch {
113
+ }
114
+ return { pid, socketPath };
115
+ }
116
+
117
+ // src/shared/worker-client/classes/worker-client.class.ts
6
118
  var WorkerClient = class {
7
119
  /**
8
120
  * @param socketPath - absolute path to the daemon's IPC socket
9
121
  * (or Windows named pipe path)
10
122
  * @param contextId - 16-character context identifier sent as
11
123
  * `ctx` in every JSON-RPC request
124
+ * @param requestTimeoutMs - per-request timeout in ms
125
+ * (0 or undefined disables the timeout)
12
126
  */
13
- constructor(socketPath, contextId) {
127
+ constructor(socketPath, contextId, requestTimeoutMs) {
14
128
  this.socketPath = socketPath;
15
129
  this.contextId = contextId;
130
+ this.requestTimeoutMs = requestTimeoutMs;
16
131
  }
17
132
  /** Underlying socket; `null` when not connected. */
18
133
  socket = null;
@@ -22,30 +137,121 @@ var WorkerClient = class {
22
137
  pending = /* @__PURE__ */ new Map();
23
138
  /** Partial line buffer for split TCP/IPC frames. */
24
139
  buffer = "";
140
+ /** Whether the underlying socket is connected. */
141
+ get isConnected() {
142
+ return this.socket !== null;
143
+ }
25
144
  /**
26
145
  * Establishes the IPC connection to the worker daemon.
27
146
  *
147
+ * Retries up to 5 times with exponential backoff on
148
+ * transient errors (`ENOENT`, `ECONNREFUSED`).
149
+ *
28
150
  * @throws {Error} if the connection cannot be established
29
151
  */
30
152
  async connect() {
153
+ log("connecting to " + this.socketPath, 0 /* DEBUG */);
154
+ const maxRetries = 5;
155
+ let delay = 50;
156
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
157
+ try {
158
+ await this.tryConnect();
159
+ log("connected", 0 /* DEBUG */);
160
+ return;
161
+ } catch (err) {
162
+ const code = err.code;
163
+ const retriable = code === "ENOENT" || code === "ECONNREFUSED";
164
+ if (!retriable || attempt === maxRetries) {
165
+ throw err;
166
+ }
167
+ log(
168
+ "connect retry: attempt=" + attempt.toString() + " code=" + code + " delay=" + delay.toString() + "ms",
169
+ 0 /* DEBUG */
170
+ );
171
+ await new Promise((r) => setTimeout(r, delay));
172
+ delay = Math.min(delay * 2, 1e3);
173
+ }
174
+ }
175
+ }
176
+ /** Destroys the IPC socket and clears the connection state. */
177
+ disconnect() {
178
+ log("disconnecting client", 0 /* DEBUG */);
179
+ if (this.socket) {
180
+ this.socket.destroy();
181
+ this.socket = null;
182
+ }
183
+ }
184
+ /**
185
+ * Kills the daemon process and disconnects the client.
186
+ *
187
+ * Discovers the daemon via PID file and sends `SIGTERM`.
188
+ * Always disconnects the socket regardless of kill outcome.
189
+ */
190
+ killDaemon() {
191
+ const info = discoverDaemon(this.contextId);
192
+ log(
193
+ "killing daemon: pid=" + (info ? info.pid.toString() : "unknown"),
194
+ 0 /* DEBUG */
195
+ );
196
+ if (info) {
197
+ try {
198
+ process.kill(info.pid, "SIGTERM");
199
+ } catch {
200
+ }
201
+ }
202
+ this.disconnect();
203
+ }
204
+ /**
205
+ * Single connection attempt with keepalive and
206
+ * post-connect failure handlers.
207
+ */
208
+ async tryConnect() {
31
209
  return new Promise((resolve2, reject) => {
32
- this.socket = connect(this.socketPath, () => {
210
+ const sock = connect(this.socketPath, () => {
211
+ sock.removeListener("error", reject);
212
+ sock.setKeepAlive(true, 3e4);
213
+ sock.on("error", (err) => {
214
+ log(
215
+ "socket error: code=" + (err.code ?? err.message),
216
+ 0 /* DEBUG */
217
+ );
218
+ this.handleSocketFailure(err);
219
+ });
220
+ sock.on("close", () => {
221
+ log("socket closed", 0 /* DEBUG */);
222
+ if (this.pending.size > 0) {
223
+ this.handleSocketFailure(
224
+ new Error("connection closed")
225
+ );
226
+ }
227
+ this.socket = null;
228
+ });
229
+ this.socket = sock;
33
230
  resolve2();
34
231
  });
35
- this.socket.on("error", (err) => {
36
- reject(err);
37
- });
38
- this.socket.on("data", (chunk) => {
232
+ sock.on("error", reject);
233
+ sock.on("data", (chunk) => {
39
234
  this.handleData(chunk.toString());
40
235
  });
41
236
  });
42
237
  }
43
- /** Destroys the IPC socket and clears the connection state. */
44
- disconnect() {
45
- if (this.socket) {
46
- this.socket.destroy();
47
- this.socket = null;
238
+ /**
239
+ * Rejects all pending calls and marks the client as
240
+ * disconnected.
241
+ */
242
+ handleSocketFailure(err) {
243
+ log(
244
+ "socket failure: pending=" + this.pending.size.toString() + " err=" + err.message,
245
+ 0 /* DEBUG */
246
+ );
247
+ const sock = this.socket;
248
+ this.socket = null;
249
+ for (const [id, call] of this.pending) {
250
+ this.pending.delete(id);
251
+ if (call.timer) clearTimeout(call.timer);
252
+ call.reject(err);
48
253
  }
254
+ if (sock) sock.destroy();
49
255
  }
50
256
  /**
51
257
  * Searches the knowledge base.
@@ -54,7 +260,10 @@ var WorkerClient = class {
54
260
  * @returns paginated search results with metadata
55
261
  */
56
262
  async search(params) {
57
- return this.call("search", params);
263
+ return this.call("search", {
264
+ ...params,
265
+ algo: params.algo
266
+ });
58
267
  }
59
268
  /**
60
269
  * Retrieves full content and context for one or more sections by
@@ -305,7 +514,20 @@ var WorkerClient = class {
305
514
  */
306
515
  async export(params) {
307
516
  return this.call("export", {
308
- targetPath: params?.path || void 0
517
+ targetPath: params?.path || void 0,
518
+ format: params?.format
519
+ });
520
+ }
521
+ /**
522
+ * Imports an exported database from the given path.
523
+ *
524
+ * @param params - source path and dry-run flag
525
+ * @returns import report with counts and timing
526
+ */
527
+ async import(params) {
528
+ return this.call("importDb", {
529
+ sourcePath: params.from,
530
+ dryRun: params.dryRun
309
531
  });
310
532
  }
311
533
  /**
@@ -322,14 +544,35 @@ var WorkerClient = class {
322
544
  throw new Error("not connected");
323
545
  }
324
546
  const id = this.nextId++;
547
+ log(
548
+ "call: method=" + method + " id=" + id.toString(),
549
+ 0 /* DEBUG */
550
+ );
325
551
  const request = {
326
552
  jsonrpc: "2.0",
327
553
  id,
328
554
  method,
329
555
  params: { ctx: this.contextId, ...params }
330
556
  };
557
+ const timeoutMs = this.requestTimeoutMs;
331
558
  return new Promise((resolve2, reject) => {
332
- this.pending.set(id, { resolve: resolve2, reject });
559
+ const call = { resolve: resolve2, reject };
560
+ if (timeoutMs) {
561
+ call.timer = setTimeout(() => {
562
+ if (!this.pending.has(id)) return;
563
+ this.pending.delete(id);
564
+ log(
565
+ "request timeout after " + String(timeoutMs) + "ms",
566
+ 2 /* WARNING */
567
+ );
568
+ const err = new Error(
569
+ `request timeout after ${String(timeoutMs)}ms`
570
+ );
571
+ err.code = "REQUEST_TIMEOUT";
572
+ reject(err);
573
+ }, timeoutMs);
574
+ }
575
+ this.pending.set(id, call);
333
576
  socket.write(JSON.stringify(request) + "\n");
334
577
  });
335
578
  }
@@ -350,15 +593,33 @@ var WorkerClient = class {
350
593
  const pending = this.pending.get(response.id);
351
594
  if (pending) {
352
595
  this.pending.delete(response.id);
596
+ if (pending.timer) clearTimeout(pending.timer);
353
597
  if (response.error) {
598
+ log(
599
+ "response error: id=" + response.id.toString() + " code=" + response.error.code.toString(),
600
+ 0 /* DEBUG */
601
+ );
354
602
  const err = new Error(response.error.message);
355
603
  err.code = response.error.code;
356
604
  pending.reject(err);
357
605
  } else {
606
+ log(
607
+ "response ok: id=" + response.id.toString(),
608
+ 0 /* DEBUG */
609
+ );
358
610
  pending.resolve(response.result);
359
611
  }
612
+ } else {
613
+ log(
614
+ "unmatched response id=" + response.id.toString(),
615
+ 0 /* DEBUG */
616
+ );
360
617
  }
361
- } catch {
618
+ } catch (parseErr) {
619
+ log(
620
+ "json parse error: " + parseErr.message,
621
+ 0 /* DEBUG */
622
+ );
362
623
  }
363
624
  }
364
625
  }
@@ -370,13 +631,15 @@ import { join as join5 } from "node:path";
370
631
  import { tmpdir as tmpdir4 } from "node:os";
371
632
 
372
633
  // src/shared/worker-client/functions/resolve-db-path.function.ts
373
- import { existsSync } from "node:fs";
374
- import { join, resolve } from "node:path";
634
+ import { existsSync as existsSync2 } from "node:fs";
635
+ import { join as join2, resolve } from "node:path";
375
636
  function resolveDbPath(targetDir) {
376
637
  const base = targetDir ? resolve(targetDir) : process.cwd();
377
- const dbPath = join(base, ".kbdb");
378
- if (!existsSync(dbPath)) {
379
- throw new Error(`database not found: ${dbPath}`);
638
+ const dbPath = join2(base, ".kbdb");
639
+ if (!existsSync2(dbPath)) {
640
+ const msg = `database not found: ${dbPath}`;
641
+ log(msg, 3 /* ERROR */);
642
+ throw new Error(msg);
380
643
  }
381
644
  return dbPath;
382
645
  }
@@ -395,53 +658,22 @@ async function computeContextId(absolutePath) {
395
658
  return hash.slice(0, 16);
396
659
  }
397
660
 
398
- // src/shared/worker-client/functions/discover-daemon.function.ts
399
- import { existsSync as existsSync2, readFileSync, unlinkSync } from "node:fs";
400
- import { join as join2 } from "node:path";
401
- import { tmpdir } from "node:os";
402
-
403
- // src/shared/platform/functions/is-process-alive.function.ts
404
- function isProcessAlive(pid) {
405
- try {
406
- process.kill(pid, 0);
407
- return true;
408
- } catch {
409
- return false;
410
- }
411
- }
412
-
413
- // src/shared/worker-client/functions/discover-daemon.function.ts
414
- function discoverDaemon(contextId) {
415
- const pidPath = join2(tmpdir(), `kbdb-${contextId}.pid`);
416
- if (!existsSync2(pidPath)) return null;
417
- const pidStr = readFileSync(pidPath, "utf-8").trim();
418
- const pid = parseInt(pidStr, 10);
419
- if (isNaN(pid) || !isProcessAlive(pid)) {
420
- try {
421
- unlinkSync(pidPath);
422
- } catch {
423
- }
424
- return null;
425
- }
426
- const socketPath = join2(tmpdir(), `kbdb-${contextId}.sock`);
427
- const crashPath = join2(tmpdir(), `kbdb-${contextId}.crash`);
428
- try {
429
- unlinkSync(crashPath);
430
- } catch {
431
- }
432
- return { pid, socketPath };
433
- }
434
-
435
661
  // src/shared/worker-client/functions/spawn-daemon.function.ts
436
662
  import { spawn } from "node:child_process";
437
663
  function spawnDaemon(contextPath, runtime, workerScript) {
438
664
  if (!workerScript) {
439
- throw new Error(
440
- "workerScript must be provided (resolve at entry point)"
441
- );
665
+ const msg = "workerScript must be provided (resolve at entry point)";
666
+ log(msg, 3 /* ERROR */);
667
+ throw new Error(msg);
442
668
  }
443
669
  const execPath = runtime === "deno" ? "deno" : process.execPath;
444
- const args = runtime === "deno" ? ["run", "--allow-all", workerScript, contextPath] : [workerScript, contextPath];
670
+ const logLevelEnv = process.env["KBDB_LOG_LEVEL"];
671
+ const logArgs = logLevelEnv ? ["--log-level", logLevelEnv] : [];
672
+ const args = runtime === "deno" ? ["run", "--allow-all", workerScript, contextPath, ...logArgs] : [workerScript, contextPath, ...logArgs];
673
+ log(
674
+ "spawning daemon: " + execPath + " " + args.join(" "),
675
+ 0 /* DEBUG */
676
+ );
445
677
  const child = spawn(execPath, args, {
446
678
  detached: true,
447
679
  stdio: "ignore"
@@ -456,12 +688,30 @@ import { tmpdir as tmpdir2 } from "node:os";
456
688
  var DEFAULT_TIMEOUT_MS = 1e4;
457
689
  var POLL_INTERVAL_MS = 100;
458
690
  async function waitForDaemon(contextId, timeoutMs = DEFAULT_TIMEOUT_MS) {
691
+ log("waiting for daemon: contextId=" + contextId, 0 /* DEBUG */);
459
692
  const pidPath = join3(tmpdir2(), `kbdb-${contextId}.pid`);
460
693
  const start = Date.now();
694
+ let iteration = 0;
461
695
  while (Date.now() - start < timeoutMs) {
462
- if (existsSync3(pidPath)) return true;
696
+ if (existsSync3(pidPath)) {
697
+ log("daemon PID file appeared", 0 /* DEBUG */);
698
+ return true;
699
+ }
700
+ iteration++;
701
+ if (iteration % 10 === 0) {
702
+ const elapsed2 = Date.now() - start;
703
+ log(
704
+ "still waiting for daemon: elapsed=" + elapsed2.toString() + "ms",
705
+ 0 /* DEBUG */
706
+ );
707
+ }
463
708
  await new Promise((r) => setTimeout(r, POLL_INTERVAL_MS));
464
709
  }
710
+ const elapsed = Date.now() - start;
711
+ log(
712
+ "timed out waiting for daemon: elapsed=" + elapsed.toString() + "ms",
713
+ 0 /* DEBUG */
714
+ );
465
715
  return false;
466
716
  }
467
717
 
@@ -494,20 +744,33 @@ function getIpcPath(ctx) {
494
744
  async function createWorkerClient(options) {
495
745
  const dbPath = options?.contextPath ?? resolveDbPath(options?.dbPath);
496
746
  const contextId = await computeContextId(dbPath);
747
+ log("create-worker-client: contextId=" + contextId, 0 /* DEBUG */);
497
748
  const socketPath = getIpcPath(contextId);
498
749
  let daemon = discoverDaemon(contextId);
750
+ if (daemon) {
751
+ log("daemon found: pid=" + daemon.pid.toString(), 0 /* DEBUG */);
752
+ } else {
753
+ log("no daemon found", 0 /* DEBUG */);
754
+ }
499
755
  if (!daemon && options?.autoSpawn !== false) {
500
756
  const runtime = detectRuntime();
757
+ log("auto-spawning daemon", 0 /* DEBUG */);
501
758
  spawnDaemon(dbPath, runtime, options?.workerScript);
759
+ log("waiting for daemon after spawn", 0 /* DEBUG */);
502
760
  await waitForDaemon(contextId, options?.connectTimeoutMs);
503
761
  daemon = discoverDaemon(contextId);
504
762
  }
505
763
  if (!daemon) {
506
- throw new Error(
507
- `kbdb worker daemon did not start: ${readCrashReason(contextId)}`
508
- );
509
- }
510
- const client = new WorkerClient(socketPath, contextId);
764
+ const msg = `kbdb worker daemon did not start: ${readCrashReason(contextId)}`;
765
+ log(msg, 3 /* ERROR */);
766
+ throw new Error(msg);
767
+ }
768
+ log("connecting to daemon", 0 /* DEBUG */);
769
+ const client = new WorkerClient(
770
+ socketPath,
771
+ contextId,
772
+ options?.requestTimeoutMs
773
+ );
511
774
  await client.connect();
512
775
  return client;
513
776
  }
@@ -525,10 +788,28 @@ function readCrashReason(contextId) {
525
788
  return "daemon failed to start (crash log unreadable)";
526
789
  }
527
790
  }
791
+
792
+ // src/shared/worker-client/functions/get-or-create-client.function.ts
793
+ var cache = /* @__PURE__ */ new Map();
794
+ async function getOrCreateClient(options) {
795
+ log("getOrCreateClient called", 0 /* DEBUG */);
796
+ const dbPath = options?.contextPath ?? resolveDbPath(options?.dbPath);
797
+ const cached = cache.get(dbPath);
798
+ if (cached?.isConnected) {
799
+ log("returning cached client for: " + dbPath, 0 /* DEBUG */);
800
+ return cached;
801
+ }
802
+ cache.delete(dbPath);
803
+ log("creating new client for: " + dbPath, 0 /* DEBUG */);
804
+ const client = await createWorkerClient(options);
805
+ cache.set(dbPath, client);
806
+ return client;
807
+ }
528
808
  export {
529
809
  WorkerClient,
530
810
  computeContextId,
531
811
  createWorkerClient,
812
+ getOrCreateClient,
532
813
  resolveDbPath,
533
814
  VERSION as version
534
815
  };