bikky 0.4.0 → 0.4.2

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 (342) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/CODE_OF_CONDUCT.md +80 -0
  3. package/CONTRIBUTING.md +2 -2
  4. package/README.md +48 -14
  5. package/SECURITY.md +58 -0
  6. package/SUPPORT.md +23 -0
  7. package/dist/config.d.ts +19 -0
  8. package/dist/config.js +72 -0
  9. package/dist/daemon/extraction.d.ts +12 -2
  10. package/dist/daemon/extraction.js +85 -133
  11. package/dist/daemon/transcript-sources.d.ts +26 -0
  12. package/dist/daemon/transcript-sources.js +193 -0
  13. package/dist/daemon/watcher.d.ts +3 -2
  14. package/dist/daemon/watcher.js +51 -2
  15. package/dist/install.d.ts +9 -1
  16. package/dist/install.js +62 -34
  17. package/dist/mcp/api.d.ts +4 -3
  18. package/dist/mcp/api.js +4 -3
  19. package/dist/mcp/tools.js +317 -93
  20. package/dist/search-scope.d.ts +24 -0
  21. package/dist/search-scope.js +174 -0
  22. package/docs/config/fully-hosted.md +1 -1
  23. package/docs/config/hosted-models.md +1 -1
  24. package/docs/configuration.md +34 -5
  25. package/docs/privacy-first.md +140 -0
  26. package/package.json +27 -5
  27. package/dist/cli.d.ts.map +0 -1
  28. package/dist/cli.js.map +0 -1
  29. package/dist/config.d.ts.map +0 -1
  30. package/dist/config.js.map +0 -1
  31. package/dist/config.test.d.ts +0 -9
  32. package/dist/config.test.d.ts.map +0 -1
  33. package/dist/config.test.js +0 -576
  34. package/dist/config.test.js.map +0 -1
  35. package/dist/daemon/capture-policy.d.ts.map +0 -1
  36. package/dist/daemon/capture-policy.js.map +0 -1
  37. package/dist/daemon/capture-policy.test.d.ts +0 -2
  38. package/dist/daemon/capture-policy.test.d.ts.map +0 -1
  39. package/dist/daemon/capture-policy.test.js +0 -48
  40. package/dist/daemon/capture-policy.test.js.map +0 -1
  41. package/dist/daemon/consolidation.d.ts.map +0 -1
  42. package/dist/daemon/consolidation.js.map +0 -1
  43. package/dist/daemon/entity-typing.d.ts.map +0 -1
  44. package/dist/daemon/entity-typing.js.map +0 -1
  45. package/dist/daemon/entity-typing.test.d.ts +0 -2
  46. package/dist/daemon/entity-typing.test.d.ts.map +0 -1
  47. package/dist/daemon/entity-typing.test.js +0 -50
  48. package/dist/daemon/entity-typing.test.js.map +0 -1
  49. package/dist/daemon/episode-summary.d.ts.map +0 -1
  50. package/dist/daemon/episode-summary.js.map +0 -1
  51. package/dist/daemon/episode-summary.test.d.ts +0 -2
  52. package/dist/daemon/episode-summary.test.d.ts.map +0 -1
  53. package/dist/daemon/episode-summary.test.js +0 -104
  54. package/dist/daemon/episode-summary.test.js.map +0 -1
  55. package/dist/daemon/extraction-quality.test.d.ts +0 -2
  56. package/dist/daemon/extraction-quality.test.d.ts.map +0 -1
  57. package/dist/daemon/extraction-quality.test.js +0 -283
  58. package/dist/daemon/extraction-quality.test.js.map +0 -1
  59. package/dist/daemon/extraction-rules.d.ts.map +0 -1
  60. package/dist/daemon/extraction-rules.js.map +0 -1
  61. package/dist/daemon/extraction-rules.test.d.ts +0 -2
  62. package/dist/daemon/extraction-rules.test.d.ts.map +0 -1
  63. package/dist/daemon/extraction-rules.test.js +0 -203
  64. package/dist/daemon/extraction-rules.test.js.map +0 -1
  65. package/dist/daemon/extraction.d.ts.map +0 -1
  66. package/dist/daemon/extraction.js.map +0 -1
  67. package/dist/daemon/extraction.test.d.ts +0 -2
  68. package/dist/daemon/extraction.test.d.ts.map +0 -1
  69. package/dist/daemon/extraction.test.js +0 -225
  70. package/dist/daemon/extraction.test.js.map +0 -1
  71. package/dist/daemon/index.d.ts.map +0 -1
  72. package/dist/daemon/index.js.map +0 -1
  73. package/dist/daemon/loop.d.ts.map +0 -1
  74. package/dist/daemon/loop.js.map +0 -1
  75. package/dist/daemon/loop.test.d.ts +0 -2
  76. package/dist/daemon/loop.test.d.ts.map +0 -1
  77. package/dist/daemon/loop.test.js +0 -85
  78. package/dist/daemon/loop.test.js.map +0 -1
  79. package/dist/daemon/maintenance-state.d.ts.map +0 -1
  80. package/dist/daemon/maintenance-state.js.map +0 -1
  81. package/dist/daemon/maintenance-state.test.d.ts +0 -2
  82. package/dist/daemon/maintenance-state.test.d.ts.map +0 -1
  83. package/dist/daemon/maintenance-state.test.js +0 -56
  84. package/dist/daemon/maintenance-state.test.js.map +0 -1
  85. package/dist/daemon/qdrant.d.ts.map +0 -1
  86. package/dist/daemon/qdrant.js.map +0 -1
  87. package/dist/daemon/qdrant.test.d.ts +0 -8
  88. package/dist/daemon/qdrant.test.d.ts.map +0 -1
  89. package/dist/daemon/qdrant.test.js +0 -265
  90. package/dist/daemon/qdrant.test.js.map +0 -1
  91. package/dist/daemon/relations-vocab.d.ts.map +0 -1
  92. package/dist/daemon/relations-vocab.js.map +0 -1
  93. package/dist/daemon/relations-vocab.test.d.ts +0 -2
  94. package/dist/daemon/relations-vocab.test.d.ts.map +0 -1
  95. package/dist/daemon/relations-vocab.test.js +0 -69
  96. package/dist/daemon/relations-vocab.test.js.map +0 -1
  97. package/dist/daemon/relations.d.ts.map +0 -1
  98. package/dist/daemon/relations.js.map +0 -1
  99. package/dist/daemon/relations.test.d.ts +0 -2
  100. package/dist/daemon/relations.test.d.ts.map +0 -1
  101. package/dist/daemon/relations.test.js +0 -36
  102. package/dist/daemon/relations.test.js.map +0 -1
  103. package/dist/daemon/session-index.d.ts.map +0 -1
  104. package/dist/daemon/session-index.js.map +0 -1
  105. package/dist/daemon/session-index.test.d.ts +0 -2
  106. package/dist/daemon/session-index.test.d.ts.map +0 -1
  107. package/dist/daemon/session-index.test.js +0 -60
  108. package/dist/daemon/session-index.test.js.map +0 -1
  109. package/dist/daemon/session-summary.d.ts.map +0 -1
  110. package/dist/daemon/session-summary.js.map +0 -1
  111. package/dist/daemon/session-summary.test.d.ts +0 -2
  112. package/dist/daemon/session-summary.test.d.ts.map +0 -1
  113. package/dist/daemon/session-summary.test.js +0 -162
  114. package/dist/daemon/session-summary.test.js.map +0 -1
  115. package/dist/daemon/staleness.d.ts.map +0 -1
  116. package/dist/daemon/staleness.js.map +0 -1
  117. package/dist/daemon/staleness.test.d.ts +0 -7
  118. package/dist/daemon/staleness.test.d.ts.map +0 -1
  119. package/dist/daemon/staleness.test.js +0 -128
  120. package/dist/daemon/staleness.test.js.map +0 -1
  121. package/dist/daemon/watcher-health.d.ts.map +0 -1
  122. package/dist/daemon/watcher-health.js.map +0 -1
  123. package/dist/daemon/watcher-health.test.d.ts +0 -5
  124. package/dist/daemon/watcher-health.test.d.ts.map +0 -1
  125. package/dist/daemon/watcher-health.test.js +0 -119
  126. package/dist/daemon/watcher-health.test.js.map +0 -1
  127. package/dist/daemon/watcher.d.ts.map +0 -1
  128. package/dist/daemon/watcher.js.map +0 -1
  129. package/dist/daemon/watcher.test.d.ts +0 -9
  130. package/dist/daemon/watcher.test.d.ts.map +0 -1
  131. package/dist/daemon/watcher.test.js +0 -204
  132. package/dist/daemon/watcher.test.js.map +0 -1
  133. package/dist/daemon/workstream-resolver.d.ts.map +0 -1
  134. package/dist/daemon/workstream-resolver.js.map +0 -1
  135. package/dist/daemon/workstream-resolver.test.d.ts +0 -2
  136. package/dist/daemon/workstream-resolver.test.d.ts.map +0 -1
  137. package/dist/daemon/workstream-resolver.test.js +0 -128
  138. package/dist/daemon/workstream-resolver.test.js.map +0 -1
  139. package/dist/daemon/workstream-summary.d.ts.map +0 -1
  140. package/dist/daemon/workstream-summary.js.map +0 -1
  141. package/dist/daemon/workstream-summary.test.d.ts +0 -2
  142. package/dist/daemon/workstream-summary.test.d.ts.map +0 -1
  143. package/dist/daemon/workstream-summary.test.js +0 -89
  144. package/dist/daemon/workstream-summary.test.js.map +0 -1
  145. package/dist/install.d.ts.map +0 -1
  146. package/dist/install.js.map +0 -1
  147. package/dist/install.test.d.ts +0 -9
  148. package/dist/install.test.d.ts.map +0 -1
  149. package/dist/install.test.js +0 -126
  150. package/dist/install.test.js.map +0 -1
  151. package/dist/lib/qdrant-client.d.ts.map +0 -1
  152. package/dist/lib/qdrant-client.js.map +0 -1
  153. package/dist/lib/qdrant-client.test.d.ts +0 -8
  154. package/dist/lib/qdrant-client.test.d.ts.map +0 -1
  155. package/dist/lib/qdrant-client.test.js +0 -274
  156. package/dist/lib/qdrant-client.test.js.map +0 -1
  157. package/dist/lib/qdrant-pool.d.ts.map +0 -1
  158. package/dist/lib/qdrant-pool.js.map +0 -1
  159. package/dist/lifecycle.d.ts.map +0 -1
  160. package/dist/lifecycle.js.map +0 -1
  161. package/dist/lifecycle.test.d.ts +0 -8
  162. package/dist/lifecycle.test.d.ts.map +0 -1
  163. package/dist/lifecycle.test.js +0 -74
  164. package/dist/lifecycle.test.js.map +0 -1
  165. package/dist/llm/embedding/index.d.ts.map +0 -1
  166. package/dist/llm/embedding/index.js.map +0 -1
  167. package/dist/llm/embedding/index.test.d.ts +0 -8
  168. package/dist/llm/embedding/index.test.d.ts.map +0 -1
  169. package/dist/llm/embedding/index.test.js +0 -100
  170. package/dist/llm/embedding/index.test.js.map +0 -1
  171. package/dist/llm/embedding/providers/bedrock.d.ts.map +0 -1
  172. package/dist/llm/embedding/providers/bedrock.js.map +0 -1
  173. package/dist/llm/embedding/providers/bedrock.test.d.ts +0 -2
  174. package/dist/llm/embedding/providers/bedrock.test.d.ts.map +0 -1
  175. package/dist/llm/embedding/providers/bedrock.test.js +0 -24
  176. package/dist/llm/embedding/providers/bedrock.test.js.map +0 -1
  177. package/dist/llm/embedding/providers/index.d.ts.map +0 -1
  178. package/dist/llm/embedding/providers/index.js.map +0 -1
  179. package/dist/llm/embedding/providers/ollama.d.ts.map +0 -1
  180. package/dist/llm/embedding/providers/ollama.js.map +0 -1
  181. package/dist/llm/embedding/providers/ollama.test.d.ts +0 -2
  182. package/dist/llm/embedding/providers/ollama.test.d.ts.map +0 -1
  183. package/dist/llm/embedding/providers/ollama.test.js +0 -54
  184. package/dist/llm/embedding/providers/ollama.test.js.map +0 -1
  185. package/dist/llm/embedding/providers/openai.d.ts.map +0 -1
  186. package/dist/llm/embedding/providers/openai.js.map +0 -1
  187. package/dist/llm/embedding/providers/openai.test.d.ts +0 -2
  188. package/dist/llm/embedding/providers/openai.test.d.ts.map +0 -1
  189. package/dist/llm/embedding/providers/openai.test.js +0 -48
  190. package/dist/llm/embedding/providers/openai.test.js.map +0 -1
  191. package/dist/llm/embedding/providers/portkey.d.ts.map +0 -1
  192. package/dist/llm/embedding/providers/portkey.js.map +0 -1
  193. package/dist/llm/embedding/providers/portkey.test.d.ts +0 -2
  194. package/dist/llm/embedding/providers/portkey.test.d.ts.map +0 -1
  195. package/dist/llm/embedding/providers/portkey.test.js +0 -56
  196. package/dist/llm/embedding/providers/portkey.test.js.map +0 -1
  197. package/dist/llm/embedding/registry.d.ts.map +0 -1
  198. package/dist/llm/embedding/registry.js.map +0 -1
  199. package/dist/llm/embedding/registry.test.d.ts +0 -7
  200. package/dist/llm/embedding/registry.test.d.ts.map +0 -1
  201. package/dist/llm/embedding/registry.test.js +0 -68
  202. package/dist/llm/embedding/registry.test.js.map +0 -1
  203. package/dist/llm/embedding/types.d.ts.map +0 -1
  204. package/dist/llm/embedding/types.js.map +0 -1
  205. package/dist/llm/errors.d.ts.map +0 -1
  206. package/dist/llm/errors.js.map +0 -1
  207. package/dist/llm/errors.test.d.ts +0 -2
  208. package/dist/llm/errors.test.d.ts.map +0 -1
  209. package/dist/llm/errors.test.js +0 -103
  210. package/dist/llm/errors.test.js.map +0 -1
  211. package/dist/llm/fetch.d.ts.map +0 -1
  212. package/dist/llm/fetch.js.map +0 -1
  213. package/dist/llm/index.d.ts.map +0 -1
  214. package/dist/llm/index.js.map +0 -1
  215. package/dist/llm/inference/index.d.ts.map +0 -1
  216. package/dist/llm/inference/index.js.map +0 -1
  217. package/dist/llm/inference/index.test.d.ts +0 -6
  218. package/dist/llm/inference/index.test.d.ts.map +0 -1
  219. package/dist/llm/inference/index.test.js +0 -150
  220. package/dist/llm/inference/index.test.js.map +0 -1
  221. package/dist/llm/inference/providers/bedrock.d.ts.map +0 -1
  222. package/dist/llm/inference/providers/bedrock.js.map +0 -1
  223. package/dist/llm/inference/providers/bedrock.test.d.ts +0 -2
  224. package/dist/llm/inference/providers/bedrock.test.d.ts.map +0 -1
  225. package/dist/llm/inference/providers/bedrock.test.js +0 -68
  226. package/dist/llm/inference/providers/bedrock.test.js.map +0 -1
  227. package/dist/llm/inference/providers/index.d.ts.map +0 -1
  228. package/dist/llm/inference/providers/index.js.map +0 -1
  229. package/dist/llm/inference/providers/ollama.d.ts.map +0 -1
  230. package/dist/llm/inference/providers/ollama.js.map +0 -1
  231. package/dist/llm/inference/providers/ollama.test.d.ts +0 -2
  232. package/dist/llm/inference/providers/ollama.test.d.ts.map +0 -1
  233. package/dist/llm/inference/providers/ollama.test.js +0 -57
  234. package/dist/llm/inference/providers/ollama.test.js.map +0 -1
  235. package/dist/llm/inference/providers/openai.d.ts.map +0 -1
  236. package/dist/llm/inference/providers/openai.js.map +0 -1
  237. package/dist/llm/inference/providers/openai.test.d.ts +0 -2
  238. package/dist/llm/inference/providers/openai.test.d.ts.map +0 -1
  239. package/dist/llm/inference/providers/openai.test.js +0 -82
  240. package/dist/llm/inference/providers/openai.test.js.map +0 -1
  241. package/dist/llm/inference/providers/portkey.d.ts.map +0 -1
  242. package/dist/llm/inference/providers/portkey.js.map +0 -1
  243. package/dist/llm/inference/providers/portkey.test.d.ts +0 -2
  244. package/dist/llm/inference/providers/portkey.test.d.ts.map +0 -1
  245. package/dist/llm/inference/providers/portkey.test.js +0 -48
  246. package/dist/llm/inference/providers/portkey.test.js.map +0 -1
  247. package/dist/llm/inference/registry.d.ts.map +0 -1
  248. package/dist/llm/inference/registry.js.map +0 -1
  249. package/dist/llm/inference/registry.test.d.ts +0 -6
  250. package/dist/llm/inference/registry.test.d.ts.map +0 -1
  251. package/dist/llm/inference/registry.test.js +0 -63
  252. package/dist/llm/inference/registry.test.js.map +0 -1
  253. package/dist/llm/inference/types.d.ts.map +0 -1
  254. package/dist/llm/inference/types.js.map +0 -1
  255. package/dist/llm/telemetry.d.ts.map +0 -1
  256. package/dist/llm/telemetry.js.map +0 -1
  257. package/dist/llm/telemetry.test.d.ts +0 -5
  258. package/dist/llm/telemetry.test.d.ts.map +0 -1
  259. package/dist/llm/telemetry.test.js +0 -89
  260. package/dist/llm/telemetry.test.js.map +0 -1
  261. package/dist/llm/types.d.ts.map +0 -1
  262. package/dist/llm/types.js.map +0 -1
  263. package/dist/logger.d.ts.map +0 -1
  264. package/dist/logger.js.map +0 -1
  265. package/dist/logger.test.d.ts +0 -5
  266. package/dist/logger.test.d.ts.map +0 -1
  267. package/dist/logger.test.js +0 -103
  268. package/dist/logger.test.js.map +0 -1
  269. package/dist/mcp/api.d.ts.map +0 -1
  270. package/dist/mcp/api.js.map +0 -1
  271. package/dist/mcp/helpers.d.ts.map +0 -1
  272. package/dist/mcp/helpers.js.map +0 -1
  273. package/dist/mcp/helpers.test.d.ts +0 -5
  274. package/dist/mcp/helpers.test.d.ts.map +0 -1
  275. package/dist/mcp/helpers.test.js +0 -530
  276. package/dist/mcp/helpers.test.js.map +0 -1
  277. package/dist/mcp/index.d.ts.map +0 -1
  278. package/dist/mcp/index.js.map +0 -1
  279. package/dist/mcp/taxonomy.d.ts.map +0 -1
  280. package/dist/mcp/taxonomy.js.map +0 -1
  281. package/dist/mcp/taxonomy.test.d.ts +0 -5
  282. package/dist/mcp/taxonomy.test.d.ts.map +0 -1
  283. package/dist/mcp/taxonomy.test.js +0 -215
  284. package/dist/mcp/taxonomy.test.js.map +0 -1
  285. package/dist/mcp/tools.d.ts.map +0 -1
  286. package/dist/mcp/tools.js.map +0 -1
  287. package/dist/mcp/types.d.ts.map +0 -1
  288. package/dist/mcp/types.js.map +0 -1
  289. package/dist/postinstall.d.ts.map +0 -1
  290. package/dist/postinstall.js.map +0 -1
  291. package/dist/privacy/redaction.d.ts.map +0 -1
  292. package/dist/privacy/redaction.js.map +0 -1
  293. package/dist/privacy/redaction.test.d.ts +0 -2
  294. package/dist/privacy/redaction.test.d.ts.map +0 -1
  295. package/dist/privacy/redaction.test.js +0 -51
  296. package/dist/privacy/redaction.test.js.map +0 -1
  297. package/dist/prompts/brief.d.ts.map +0 -1
  298. package/dist/prompts/brief.js.map +0 -1
  299. package/dist/prompts/contradiction.d.ts.map +0 -1
  300. package/dist/prompts/contradiction.js.map +0 -1
  301. package/dist/prompts/distill.d.ts.map +0 -1
  302. package/dist/prompts/distill.js.map +0 -1
  303. package/dist/prompts/entity-typing.d.ts.map +0 -1
  304. package/dist/prompts/entity-typing.js.map +0 -1
  305. package/dist/prompts/episode-summary.d.ts.map +0 -1
  306. package/dist/prompts/episode-summary.js.map +0 -1
  307. package/dist/prompts/extraction.d.ts.map +0 -1
  308. package/dist/prompts/extraction.js.map +0 -1
  309. package/dist/prompts/index.d.ts.map +0 -1
  310. package/dist/prompts/index.js.map +0 -1
  311. package/dist/prompts/prompts.test.d.ts +0 -8
  312. package/dist/prompts/prompts.test.d.ts.map +0 -1
  313. package/dist/prompts/prompts.test.js +0 -140
  314. package/dist/prompts/prompts.test.js.map +0 -1
  315. package/dist/prompts/relations.d.ts.map +0 -1
  316. package/dist/prompts/relations.js.map +0 -1
  317. package/dist/prompts/workstream-summary.d.ts.map +0 -1
  318. package/dist/prompts/workstream-summary.js.map +0 -1
  319. package/dist/provenance/actor.d.ts.map +0 -1
  320. package/dist/provenance/actor.js.map +0 -1
  321. package/dist/provenance/actor.test.d.ts +0 -2
  322. package/dist/provenance/actor.test.d.ts.map +0 -1
  323. package/dist/provenance/actor.test.js +0 -49
  324. package/dist/provenance/actor.test.js.map +0 -1
  325. package/dist/render.d.ts.map +0 -1
  326. package/dist/render.js.map +0 -1
  327. package/dist/render.test.d.ts +0 -8
  328. package/dist/render.test.d.ts.map +0 -1
  329. package/dist/render.test.js +0 -244
  330. package/dist/render.test.js.map +0 -1
  331. package/dist/routing.d.ts.map +0 -1
  332. package/dist/routing.js.map +0 -1
  333. package/dist/routing.test.d.ts +0 -2
  334. package/dist/routing.test.d.ts.map +0 -1
  335. package/dist/routing.test.js +0 -79
  336. package/dist/routing.test.js.map +0 -1
  337. package/dist/status.d.ts.map +0 -1
  338. package/dist/status.js.map +0 -1
  339. package/dist/status.test.d.ts +0 -5
  340. package/dist/status.test.d.ts.map +0 -1
  341. package/dist/status.test.js +0 -203
  342. package/dist/status.test.js.map +0 -1
package/dist/install.js CHANGED
@@ -4,46 +4,74 @@
4
4
  import fs from "node:fs";
5
5
  import path from "node:path";
6
6
  import os from "node:os";
7
- export async function writeInstallConfig() {
7
+ import { spawnSync } from "node:child_process";
8
+ const SERVER_NAME = "bikky";
9
+ function readJsonConfig(filePath) {
10
+ if (!fs.existsSync(filePath))
11
+ return {};
12
+ try {
13
+ return JSON.parse(fs.readFileSync(filePath, "utf-8"));
14
+ }
15
+ catch {
16
+ return {};
17
+ }
18
+ }
19
+ function writeJsonConfig(filePath, config) {
20
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
21
+ fs.writeFileSync(filePath, JSON.stringify(config, null, 2) + "\n");
22
+ }
23
+ function writeCopilotConfig(homeDir, entry) {
24
+ const copilotConfigPath = path.join(homeDir, ".copilot", "mcp-config.json");
25
+ const config = readJsonConfig(copilotConfigPath);
26
+ config.mcpServers ??= {};
27
+ config.mcpServers[SERVER_NAME] = entry;
28
+ writeJsonConfig(copilotConfigPath, config);
29
+ console.log(`✅ Written to ${copilotConfigPath}`);
30
+ }
31
+ function registerClaudeWithCli(homeDir, entry, command) {
32
+ const result = spawnSync(command, ["mcp", "add-json", "-s", "user", SERVER_NAME, JSON.stringify(entry)], {
33
+ env: { ...process.env, HOME: homeDir },
34
+ encoding: "utf-8",
35
+ stdio: "pipe",
36
+ });
37
+ if (result.status === 0) {
38
+ console.log(`✅ Registered ${SERVER_NAME} with Claude Code user config`);
39
+ return true;
40
+ }
41
+ if (result.error && "code" in result.error && result.error.code === "ENOENT") {
42
+ return false;
43
+ }
44
+ const stderr = typeof result.stderr === "string" ? result.stderr.trim() : "";
45
+ if (/already exists/i.test(stderr)) {
46
+ return false;
47
+ }
48
+ const detail = stderr ? `: ${stderr}` : "";
49
+ console.warn(`⚠️ Claude Code CLI registration failed${detail}`);
50
+ return false;
51
+ }
52
+ function writeClaudeCodeUserConfig(homeDir, entry) {
53
+ const claudeConfigPath = path.join(homeDir, ".claude.json");
54
+ const config = readJsonConfig(claudeConfigPath);
55
+ config.mcpServers ??= {};
56
+ config.mcpServers[SERVER_NAME] = entry;
57
+ writeJsonConfig(claudeConfigPath, config);
58
+ console.log(`✅ Written to ${claudeConfigPath}`);
59
+ }
60
+ export async function writeInstallConfig(options = {}) {
61
+ const homeDir = options.homeDir ?? os.homedir();
8
62
  const entry = {
9
63
  type: "stdio",
10
64
  command: "npx",
11
65
  args: ["-y", "bikky", "mcp"],
12
66
  };
13
- // Copilot MCP config
14
- const copilotConfigPath = path.join(os.homedir(), ".copilot", "mcp-config.json");
15
- let config = {};
16
- if (fs.existsSync(copilotConfigPath)) {
17
- try {
18
- config = JSON.parse(fs.readFileSync(copilotConfigPath, "utf-8"));
19
- }
20
- catch {
21
- config = {};
22
- }
67
+ writeCopilotConfig(homeDir, entry);
68
+ const claudeCommand = options.claudeCommand === undefined ? "claude" : options.claudeCommand;
69
+ const registeredWithClaudeCli = claudeCommand
70
+ ? registerClaudeWithCli(homeDir, entry, claudeCommand)
71
+ : false;
72
+ if (!registeredWithClaudeCli) {
73
+ writeClaudeCodeUserConfig(homeDir, entry);
23
74
  }
24
- if (!config.mcpServers)
25
- config.mcpServers = {};
26
- config.mcpServers["bikky"] = entry;
27
- fs.mkdirSync(path.dirname(copilotConfigPath), { recursive: true });
28
- fs.writeFileSync(copilotConfigPath, JSON.stringify(config, null, 2) + "\n");
29
- console.log(`✅ Written to ${copilotConfigPath}`);
30
- // Claude Code MCP config
31
- const claudeConfigPath = path.join(os.homedir(), ".claude", "mcp.json");
32
- let claudeConfig = {};
33
- if (fs.existsSync(claudeConfigPath)) {
34
- try {
35
- claudeConfig = JSON.parse(fs.readFileSync(claudeConfigPath, "utf-8"));
36
- }
37
- catch {
38
- claudeConfig = {};
39
- }
40
- }
41
- if (!claudeConfig.mcpServers)
42
- claudeConfig.mcpServers = {};
43
- claudeConfig.mcpServers["bikky"] = entry;
44
- fs.mkdirSync(path.dirname(claudeConfigPath), { recursive: true });
45
- fs.writeFileSync(claudeConfigPath, JSON.stringify(claudeConfig, null, 2) + "\n");
46
- console.log(`✅ Written to ${claudeConfigPath}`);
47
75
  console.log("\n🧠 bikky is now registered. Restart your editor to activate.");
48
76
  }
49
77
  //# sourceMappingURL=install.js.map
package/dist/mcp/api.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * External API helpers — Qdrant REST client pool, LLM chat, logging.
3
3
  *
4
- * Multi-destination model: each memory operation resolves to one Destination
5
- * (see ../routing.ts) and operates against that destination's QdrantClient
6
- * via the QdrantPool (see ../lib/qdrant-pool.ts).
4
+ * Multi-destination model: write operations resolve to one Destination
5
+ * (see ../routing.ts) and operate against that destination's QdrantClient
6
+ * via the QdrantPool (see ../lib/qdrant-pool.ts). Read/search operations may
7
+ * resolve a search scope and fan out across multiple destinations.
7
8
  *
8
9
  * The legacy single-Qdrant API is kept around for back-compat where call sites
9
10
  * have not yet been refactored — they all route to a "default" destination
package/dist/mcp/api.js CHANGED
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * External API helpers — Qdrant REST client pool, LLM chat, logging.
3
3
  *
4
- * Multi-destination model: each memory operation resolves to one Destination
5
- * (see ../routing.ts) and operates against that destination's QdrantClient
6
- * via the QdrantPool (see ../lib/qdrant-pool.ts).
4
+ * Multi-destination model: write operations resolve to one Destination
5
+ * (see ../routing.ts) and operate against that destination's QdrantClient
6
+ * via the QdrantPool (see ../lib/qdrant-pool.ts). Read/search operations may
7
+ * resolve a search scope and fan out across multiple destinations.
7
8
  *
8
9
  * The legacy single-Qdrant API is kept around for back-compat where call sites
9
10
  * have not yet been refactored — they all route to a "default" destination