bikky 0.4.0 → 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 (340) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/CODE_OF_CONDUCT.md +80 -0
  3. package/CONTRIBUTING.md +1 -1
  4. package/README.md +32 -2
  5. package/SECURITY.md +58 -0
  6. package/SUPPORT.md +22 -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/configuration.md +30 -1
  23. package/docs/privacy-first.md +140 -0
  24. package/package.json +23 -5
  25. package/dist/cli.d.ts.map +0 -1
  26. package/dist/cli.js.map +0 -1
  27. package/dist/config.d.ts.map +0 -1
  28. package/dist/config.js.map +0 -1
  29. package/dist/config.test.d.ts +0 -9
  30. package/dist/config.test.d.ts.map +0 -1
  31. package/dist/config.test.js +0 -576
  32. package/dist/config.test.js.map +0 -1
  33. package/dist/daemon/capture-policy.d.ts.map +0 -1
  34. package/dist/daemon/capture-policy.js.map +0 -1
  35. package/dist/daemon/capture-policy.test.d.ts +0 -2
  36. package/dist/daemon/capture-policy.test.d.ts.map +0 -1
  37. package/dist/daemon/capture-policy.test.js +0 -48
  38. package/dist/daemon/capture-policy.test.js.map +0 -1
  39. package/dist/daemon/consolidation.d.ts.map +0 -1
  40. package/dist/daemon/consolidation.js.map +0 -1
  41. package/dist/daemon/entity-typing.d.ts.map +0 -1
  42. package/dist/daemon/entity-typing.js.map +0 -1
  43. package/dist/daemon/entity-typing.test.d.ts +0 -2
  44. package/dist/daemon/entity-typing.test.d.ts.map +0 -1
  45. package/dist/daemon/entity-typing.test.js +0 -50
  46. package/dist/daemon/entity-typing.test.js.map +0 -1
  47. package/dist/daemon/episode-summary.d.ts.map +0 -1
  48. package/dist/daemon/episode-summary.js.map +0 -1
  49. package/dist/daemon/episode-summary.test.d.ts +0 -2
  50. package/dist/daemon/episode-summary.test.d.ts.map +0 -1
  51. package/dist/daemon/episode-summary.test.js +0 -104
  52. package/dist/daemon/episode-summary.test.js.map +0 -1
  53. package/dist/daemon/extraction-quality.test.d.ts +0 -2
  54. package/dist/daemon/extraction-quality.test.d.ts.map +0 -1
  55. package/dist/daemon/extraction-quality.test.js +0 -283
  56. package/dist/daemon/extraction-quality.test.js.map +0 -1
  57. package/dist/daemon/extraction-rules.d.ts.map +0 -1
  58. package/dist/daemon/extraction-rules.js.map +0 -1
  59. package/dist/daemon/extraction-rules.test.d.ts +0 -2
  60. package/dist/daemon/extraction-rules.test.d.ts.map +0 -1
  61. package/dist/daemon/extraction-rules.test.js +0 -203
  62. package/dist/daemon/extraction-rules.test.js.map +0 -1
  63. package/dist/daemon/extraction.d.ts.map +0 -1
  64. package/dist/daemon/extraction.js.map +0 -1
  65. package/dist/daemon/extraction.test.d.ts +0 -2
  66. package/dist/daemon/extraction.test.d.ts.map +0 -1
  67. package/dist/daemon/extraction.test.js +0 -225
  68. package/dist/daemon/extraction.test.js.map +0 -1
  69. package/dist/daemon/index.d.ts.map +0 -1
  70. package/dist/daemon/index.js.map +0 -1
  71. package/dist/daemon/loop.d.ts.map +0 -1
  72. package/dist/daemon/loop.js.map +0 -1
  73. package/dist/daemon/loop.test.d.ts +0 -2
  74. package/dist/daemon/loop.test.d.ts.map +0 -1
  75. package/dist/daemon/loop.test.js +0 -85
  76. package/dist/daemon/loop.test.js.map +0 -1
  77. package/dist/daemon/maintenance-state.d.ts.map +0 -1
  78. package/dist/daemon/maintenance-state.js.map +0 -1
  79. package/dist/daemon/maintenance-state.test.d.ts +0 -2
  80. package/dist/daemon/maintenance-state.test.d.ts.map +0 -1
  81. package/dist/daemon/maintenance-state.test.js +0 -56
  82. package/dist/daemon/maintenance-state.test.js.map +0 -1
  83. package/dist/daemon/qdrant.d.ts.map +0 -1
  84. package/dist/daemon/qdrant.js.map +0 -1
  85. package/dist/daemon/qdrant.test.d.ts +0 -8
  86. package/dist/daemon/qdrant.test.d.ts.map +0 -1
  87. package/dist/daemon/qdrant.test.js +0 -265
  88. package/dist/daemon/qdrant.test.js.map +0 -1
  89. package/dist/daemon/relations-vocab.d.ts.map +0 -1
  90. package/dist/daemon/relations-vocab.js.map +0 -1
  91. package/dist/daemon/relations-vocab.test.d.ts +0 -2
  92. package/dist/daemon/relations-vocab.test.d.ts.map +0 -1
  93. package/dist/daemon/relations-vocab.test.js +0 -69
  94. package/dist/daemon/relations-vocab.test.js.map +0 -1
  95. package/dist/daemon/relations.d.ts.map +0 -1
  96. package/dist/daemon/relations.js.map +0 -1
  97. package/dist/daemon/relations.test.d.ts +0 -2
  98. package/dist/daemon/relations.test.d.ts.map +0 -1
  99. package/dist/daemon/relations.test.js +0 -36
  100. package/dist/daemon/relations.test.js.map +0 -1
  101. package/dist/daemon/session-index.d.ts.map +0 -1
  102. package/dist/daemon/session-index.js.map +0 -1
  103. package/dist/daemon/session-index.test.d.ts +0 -2
  104. package/dist/daemon/session-index.test.d.ts.map +0 -1
  105. package/dist/daemon/session-index.test.js +0 -60
  106. package/dist/daemon/session-index.test.js.map +0 -1
  107. package/dist/daemon/session-summary.d.ts.map +0 -1
  108. package/dist/daemon/session-summary.js.map +0 -1
  109. package/dist/daemon/session-summary.test.d.ts +0 -2
  110. package/dist/daemon/session-summary.test.d.ts.map +0 -1
  111. package/dist/daemon/session-summary.test.js +0 -162
  112. package/dist/daemon/session-summary.test.js.map +0 -1
  113. package/dist/daemon/staleness.d.ts.map +0 -1
  114. package/dist/daemon/staleness.js.map +0 -1
  115. package/dist/daemon/staleness.test.d.ts +0 -7
  116. package/dist/daemon/staleness.test.d.ts.map +0 -1
  117. package/dist/daemon/staleness.test.js +0 -128
  118. package/dist/daemon/staleness.test.js.map +0 -1
  119. package/dist/daemon/watcher-health.d.ts.map +0 -1
  120. package/dist/daemon/watcher-health.js.map +0 -1
  121. package/dist/daemon/watcher-health.test.d.ts +0 -5
  122. package/dist/daemon/watcher-health.test.d.ts.map +0 -1
  123. package/dist/daemon/watcher-health.test.js +0 -119
  124. package/dist/daemon/watcher-health.test.js.map +0 -1
  125. package/dist/daemon/watcher.d.ts.map +0 -1
  126. package/dist/daemon/watcher.js.map +0 -1
  127. package/dist/daemon/watcher.test.d.ts +0 -9
  128. package/dist/daemon/watcher.test.d.ts.map +0 -1
  129. package/dist/daemon/watcher.test.js +0 -204
  130. package/dist/daemon/watcher.test.js.map +0 -1
  131. package/dist/daemon/workstream-resolver.d.ts.map +0 -1
  132. package/dist/daemon/workstream-resolver.js.map +0 -1
  133. package/dist/daemon/workstream-resolver.test.d.ts +0 -2
  134. package/dist/daemon/workstream-resolver.test.d.ts.map +0 -1
  135. package/dist/daemon/workstream-resolver.test.js +0 -128
  136. package/dist/daemon/workstream-resolver.test.js.map +0 -1
  137. package/dist/daemon/workstream-summary.d.ts.map +0 -1
  138. package/dist/daemon/workstream-summary.js.map +0 -1
  139. package/dist/daemon/workstream-summary.test.d.ts +0 -2
  140. package/dist/daemon/workstream-summary.test.d.ts.map +0 -1
  141. package/dist/daemon/workstream-summary.test.js +0 -89
  142. package/dist/daemon/workstream-summary.test.js.map +0 -1
  143. package/dist/install.d.ts.map +0 -1
  144. package/dist/install.js.map +0 -1
  145. package/dist/install.test.d.ts +0 -9
  146. package/dist/install.test.d.ts.map +0 -1
  147. package/dist/install.test.js +0 -126
  148. package/dist/install.test.js.map +0 -1
  149. package/dist/lib/qdrant-client.d.ts.map +0 -1
  150. package/dist/lib/qdrant-client.js.map +0 -1
  151. package/dist/lib/qdrant-client.test.d.ts +0 -8
  152. package/dist/lib/qdrant-client.test.d.ts.map +0 -1
  153. package/dist/lib/qdrant-client.test.js +0 -274
  154. package/dist/lib/qdrant-client.test.js.map +0 -1
  155. package/dist/lib/qdrant-pool.d.ts.map +0 -1
  156. package/dist/lib/qdrant-pool.js.map +0 -1
  157. package/dist/lifecycle.d.ts.map +0 -1
  158. package/dist/lifecycle.js.map +0 -1
  159. package/dist/lifecycle.test.d.ts +0 -8
  160. package/dist/lifecycle.test.d.ts.map +0 -1
  161. package/dist/lifecycle.test.js +0 -74
  162. package/dist/lifecycle.test.js.map +0 -1
  163. package/dist/llm/embedding/index.d.ts.map +0 -1
  164. package/dist/llm/embedding/index.js.map +0 -1
  165. package/dist/llm/embedding/index.test.d.ts +0 -8
  166. package/dist/llm/embedding/index.test.d.ts.map +0 -1
  167. package/dist/llm/embedding/index.test.js +0 -100
  168. package/dist/llm/embedding/index.test.js.map +0 -1
  169. package/dist/llm/embedding/providers/bedrock.d.ts.map +0 -1
  170. package/dist/llm/embedding/providers/bedrock.js.map +0 -1
  171. package/dist/llm/embedding/providers/bedrock.test.d.ts +0 -2
  172. package/dist/llm/embedding/providers/bedrock.test.d.ts.map +0 -1
  173. package/dist/llm/embedding/providers/bedrock.test.js +0 -24
  174. package/dist/llm/embedding/providers/bedrock.test.js.map +0 -1
  175. package/dist/llm/embedding/providers/index.d.ts.map +0 -1
  176. package/dist/llm/embedding/providers/index.js.map +0 -1
  177. package/dist/llm/embedding/providers/ollama.d.ts.map +0 -1
  178. package/dist/llm/embedding/providers/ollama.js.map +0 -1
  179. package/dist/llm/embedding/providers/ollama.test.d.ts +0 -2
  180. package/dist/llm/embedding/providers/ollama.test.d.ts.map +0 -1
  181. package/dist/llm/embedding/providers/ollama.test.js +0 -54
  182. package/dist/llm/embedding/providers/ollama.test.js.map +0 -1
  183. package/dist/llm/embedding/providers/openai.d.ts.map +0 -1
  184. package/dist/llm/embedding/providers/openai.js.map +0 -1
  185. package/dist/llm/embedding/providers/openai.test.d.ts +0 -2
  186. package/dist/llm/embedding/providers/openai.test.d.ts.map +0 -1
  187. package/dist/llm/embedding/providers/openai.test.js +0 -48
  188. package/dist/llm/embedding/providers/openai.test.js.map +0 -1
  189. package/dist/llm/embedding/providers/portkey.d.ts.map +0 -1
  190. package/dist/llm/embedding/providers/portkey.js.map +0 -1
  191. package/dist/llm/embedding/providers/portkey.test.d.ts +0 -2
  192. package/dist/llm/embedding/providers/portkey.test.d.ts.map +0 -1
  193. package/dist/llm/embedding/providers/portkey.test.js +0 -56
  194. package/dist/llm/embedding/providers/portkey.test.js.map +0 -1
  195. package/dist/llm/embedding/registry.d.ts.map +0 -1
  196. package/dist/llm/embedding/registry.js.map +0 -1
  197. package/dist/llm/embedding/registry.test.d.ts +0 -7
  198. package/dist/llm/embedding/registry.test.d.ts.map +0 -1
  199. package/dist/llm/embedding/registry.test.js +0 -68
  200. package/dist/llm/embedding/registry.test.js.map +0 -1
  201. package/dist/llm/embedding/types.d.ts.map +0 -1
  202. package/dist/llm/embedding/types.js.map +0 -1
  203. package/dist/llm/errors.d.ts.map +0 -1
  204. package/dist/llm/errors.js.map +0 -1
  205. package/dist/llm/errors.test.d.ts +0 -2
  206. package/dist/llm/errors.test.d.ts.map +0 -1
  207. package/dist/llm/errors.test.js +0 -103
  208. package/dist/llm/errors.test.js.map +0 -1
  209. package/dist/llm/fetch.d.ts.map +0 -1
  210. package/dist/llm/fetch.js.map +0 -1
  211. package/dist/llm/index.d.ts.map +0 -1
  212. package/dist/llm/index.js.map +0 -1
  213. package/dist/llm/inference/index.d.ts.map +0 -1
  214. package/dist/llm/inference/index.js.map +0 -1
  215. package/dist/llm/inference/index.test.d.ts +0 -6
  216. package/dist/llm/inference/index.test.d.ts.map +0 -1
  217. package/dist/llm/inference/index.test.js +0 -150
  218. package/dist/llm/inference/index.test.js.map +0 -1
  219. package/dist/llm/inference/providers/bedrock.d.ts.map +0 -1
  220. package/dist/llm/inference/providers/bedrock.js.map +0 -1
  221. package/dist/llm/inference/providers/bedrock.test.d.ts +0 -2
  222. package/dist/llm/inference/providers/bedrock.test.d.ts.map +0 -1
  223. package/dist/llm/inference/providers/bedrock.test.js +0 -68
  224. package/dist/llm/inference/providers/bedrock.test.js.map +0 -1
  225. package/dist/llm/inference/providers/index.d.ts.map +0 -1
  226. package/dist/llm/inference/providers/index.js.map +0 -1
  227. package/dist/llm/inference/providers/ollama.d.ts.map +0 -1
  228. package/dist/llm/inference/providers/ollama.js.map +0 -1
  229. package/dist/llm/inference/providers/ollama.test.d.ts +0 -2
  230. package/dist/llm/inference/providers/ollama.test.d.ts.map +0 -1
  231. package/dist/llm/inference/providers/ollama.test.js +0 -57
  232. package/dist/llm/inference/providers/ollama.test.js.map +0 -1
  233. package/dist/llm/inference/providers/openai.d.ts.map +0 -1
  234. package/dist/llm/inference/providers/openai.js.map +0 -1
  235. package/dist/llm/inference/providers/openai.test.d.ts +0 -2
  236. package/dist/llm/inference/providers/openai.test.d.ts.map +0 -1
  237. package/dist/llm/inference/providers/openai.test.js +0 -82
  238. package/dist/llm/inference/providers/openai.test.js.map +0 -1
  239. package/dist/llm/inference/providers/portkey.d.ts.map +0 -1
  240. package/dist/llm/inference/providers/portkey.js.map +0 -1
  241. package/dist/llm/inference/providers/portkey.test.d.ts +0 -2
  242. package/dist/llm/inference/providers/portkey.test.d.ts.map +0 -1
  243. package/dist/llm/inference/providers/portkey.test.js +0 -48
  244. package/dist/llm/inference/providers/portkey.test.js.map +0 -1
  245. package/dist/llm/inference/registry.d.ts.map +0 -1
  246. package/dist/llm/inference/registry.js.map +0 -1
  247. package/dist/llm/inference/registry.test.d.ts +0 -6
  248. package/dist/llm/inference/registry.test.d.ts.map +0 -1
  249. package/dist/llm/inference/registry.test.js +0 -63
  250. package/dist/llm/inference/registry.test.js.map +0 -1
  251. package/dist/llm/inference/types.d.ts.map +0 -1
  252. package/dist/llm/inference/types.js.map +0 -1
  253. package/dist/llm/telemetry.d.ts.map +0 -1
  254. package/dist/llm/telemetry.js.map +0 -1
  255. package/dist/llm/telemetry.test.d.ts +0 -5
  256. package/dist/llm/telemetry.test.d.ts.map +0 -1
  257. package/dist/llm/telemetry.test.js +0 -89
  258. package/dist/llm/telemetry.test.js.map +0 -1
  259. package/dist/llm/types.d.ts.map +0 -1
  260. package/dist/llm/types.js.map +0 -1
  261. package/dist/logger.d.ts.map +0 -1
  262. package/dist/logger.js.map +0 -1
  263. package/dist/logger.test.d.ts +0 -5
  264. package/dist/logger.test.d.ts.map +0 -1
  265. package/dist/logger.test.js +0 -103
  266. package/dist/logger.test.js.map +0 -1
  267. package/dist/mcp/api.d.ts.map +0 -1
  268. package/dist/mcp/api.js.map +0 -1
  269. package/dist/mcp/helpers.d.ts.map +0 -1
  270. package/dist/mcp/helpers.js.map +0 -1
  271. package/dist/mcp/helpers.test.d.ts +0 -5
  272. package/dist/mcp/helpers.test.d.ts.map +0 -1
  273. package/dist/mcp/helpers.test.js +0 -530
  274. package/dist/mcp/helpers.test.js.map +0 -1
  275. package/dist/mcp/index.d.ts.map +0 -1
  276. package/dist/mcp/index.js.map +0 -1
  277. package/dist/mcp/taxonomy.d.ts.map +0 -1
  278. package/dist/mcp/taxonomy.js.map +0 -1
  279. package/dist/mcp/taxonomy.test.d.ts +0 -5
  280. package/dist/mcp/taxonomy.test.d.ts.map +0 -1
  281. package/dist/mcp/taxonomy.test.js +0 -215
  282. package/dist/mcp/taxonomy.test.js.map +0 -1
  283. package/dist/mcp/tools.d.ts.map +0 -1
  284. package/dist/mcp/tools.js.map +0 -1
  285. package/dist/mcp/types.d.ts.map +0 -1
  286. package/dist/mcp/types.js.map +0 -1
  287. package/dist/postinstall.d.ts.map +0 -1
  288. package/dist/postinstall.js.map +0 -1
  289. package/dist/privacy/redaction.d.ts.map +0 -1
  290. package/dist/privacy/redaction.js.map +0 -1
  291. package/dist/privacy/redaction.test.d.ts +0 -2
  292. package/dist/privacy/redaction.test.d.ts.map +0 -1
  293. package/dist/privacy/redaction.test.js +0 -51
  294. package/dist/privacy/redaction.test.js.map +0 -1
  295. package/dist/prompts/brief.d.ts.map +0 -1
  296. package/dist/prompts/brief.js.map +0 -1
  297. package/dist/prompts/contradiction.d.ts.map +0 -1
  298. package/dist/prompts/contradiction.js.map +0 -1
  299. package/dist/prompts/distill.d.ts.map +0 -1
  300. package/dist/prompts/distill.js.map +0 -1
  301. package/dist/prompts/entity-typing.d.ts.map +0 -1
  302. package/dist/prompts/entity-typing.js.map +0 -1
  303. package/dist/prompts/episode-summary.d.ts.map +0 -1
  304. package/dist/prompts/episode-summary.js.map +0 -1
  305. package/dist/prompts/extraction.d.ts.map +0 -1
  306. package/dist/prompts/extraction.js.map +0 -1
  307. package/dist/prompts/index.d.ts.map +0 -1
  308. package/dist/prompts/index.js.map +0 -1
  309. package/dist/prompts/prompts.test.d.ts +0 -8
  310. package/dist/prompts/prompts.test.d.ts.map +0 -1
  311. package/dist/prompts/prompts.test.js +0 -140
  312. package/dist/prompts/prompts.test.js.map +0 -1
  313. package/dist/prompts/relations.d.ts.map +0 -1
  314. package/dist/prompts/relations.js.map +0 -1
  315. package/dist/prompts/workstream-summary.d.ts.map +0 -1
  316. package/dist/prompts/workstream-summary.js.map +0 -1
  317. package/dist/provenance/actor.d.ts.map +0 -1
  318. package/dist/provenance/actor.js.map +0 -1
  319. package/dist/provenance/actor.test.d.ts +0 -2
  320. package/dist/provenance/actor.test.d.ts.map +0 -1
  321. package/dist/provenance/actor.test.js +0 -49
  322. package/dist/provenance/actor.test.js.map +0 -1
  323. package/dist/render.d.ts.map +0 -1
  324. package/dist/render.js.map +0 -1
  325. package/dist/render.test.d.ts +0 -8
  326. package/dist/render.test.d.ts.map +0 -1
  327. package/dist/render.test.js +0 -244
  328. package/dist/render.test.js.map +0 -1
  329. package/dist/routing.d.ts.map +0 -1
  330. package/dist/routing.js.map +0 -1
  331. package/dist/routing.test.d.ts +0 -2
  332. package/dist/routing.test.d.ts.map +0 -1
  333. package/dist/routing.test.js +0 -79
  334. package/dist/routing.test.js.map +0 -1
  335. package/dist/status.d.ts.map +0 -1
  336. package/dist/status.js.map +0 -1
  337. package/dist/status.test.d.ts +0 -5
  338. package/dist/status.test.d.ts.map +0 -1
  339. package/dist/status.test.js +0 -203
  340. 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