@debian777/kairos-mcp 3.0.1-beta.14

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 (502) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +108 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/cli/api-client.d.ts +31 -0
  5. package/dist/cli/api-client.d.ts.map +1 -0
  6. package/dist/cli/api-client.js +110 -0
  7. package/dist/cli/api-client.js.map +1 -0
  8. package/dist/cli/commands/attest.d.ts +6 -0
  9. package/dist/cli/commands/attest.d.ts.map +1 -0
  10. package/dist/cli/commands/attest.js +52 -0
  11. package/dist/cli/commands/attest.js.map +1 -0
  12. package/dist/cli/commands/begin.d.ts +6 -0
  13. package/dist/cli/commands/begin.d.ts.map +1 -0
  14. package/dist/cli/commands/begin.js +32 -0
  15. package/dist/cli/commands/begin.js.map +1 -0
  16. package/dist/cli/commands/delete.d.ts +6 -0
  17. package/dist/cli/commands/delete.d.ts.map +1 -0
  18. package/dist/cli/commands/delete.js +32 -0
  19. package/dist/cli/commands/delete.js.map +1 -0
  20. package/dist/cli/commands/mint.d.ts +6 -0
  21. package/dist/cli/commands/mint.d.ts.map +1 -0
  22. package/dist/cli/commands/mint.js +48 -0
  23. package/dist/cli/commands/mint.js.map +1 -0
  24. package/dist/cli/commands/next.d.ts +6 -0
  25. package/dist/cli/commands/next.d.ts.map +1 -0
  26. package/dist/cli/commands/next.js +89 -0
  27. package/dist/cli/commands/next.js.map +1 -0
  28. package/dist/cli/commands/search.d.ts +6 -0
  29. package/dist/cli/commands/search.d.ts.map +1 -0
  30. package/dist/cli/commands/search.js +32 -0
  31. package/dist/cli/commands/search.js.map +1 -0
  32. package/dist/cli/commands/update.d.ts +6 -0
  33. package/dist/cli/commands/update.d.ts.map +1 -0
  34. package/dist/cli/commands/update.js +72 -0
  35. package/dist/cli/commands/update.js.map +1 -0
  36. package/dist/cli/config.d.ts +9 -0
  37. package/dist/cli/config.d.ts.map +1 -0
  38. package/dist/cli/config.js +14 -0
  39. package/dist/cli/config.js.map +1 -0
  40. package/dist/cli/index.d.ts +6 -0
  41. package/dist/cli/index.d.ts.map +1 -0
  42. package/dist/cli/index.js +40 -0
  43. package/dist/cli/index.js.map +1 -0
  44. package/dist/cli/output.d.ts +10 -0
  45. package/dist/cli/output.d.ts.map +1 -0
  46. package/dist/cli/output.js +20 -0
  47. package/dist/cli/output.js.map +1 -0
  48. package/dist/config.d.ts +58 -0
  49. package/dist/config.d.ts.map +1 -0
  50. package/dist/config.js +165 -0
  51. package/dist/config.js.map +1 -0
  52. package/dist/embed-docs/mem/00000000-0000-0000-0000-000000002001.md +324 -0
  53. package/dist/embed-docs/mem/00000000-0000-0000-0000-000000002002.md +48 -0
  54. package/dist/http/bearer-validate.d.ts +14 -0
  55. package/dist/http/bearer-validate.d.ts.map +1 -0
  56. package/dist/http/bearer-validate.js +111 -0
  57. package/dist/http/bearer-validate.js.map +1 -0
  58. package/dist/http/http-api-attest.d.ts +7 -0
  59. package/dist/http/http-api-attest.d.ts.map +1 -0
  60. package/dist/http/http-api-attest.js +103 -0
  61. package/dist/http/http-api-attest.js.map +1 -0
  62. package/dist/http/http-api-begin-step.d.ts +8 -0
  63. package/dist/http/http-api-begin-step.d.ts.map +1 -0
  64. package/dist/http/http-api-begin-step.js +108 -0
  65. package/dist/http/http-api-begin-step.js.map +1 -0
  66. package/dist/http/http-api-begin.d.ts +8 -0
  67. package/dist/http/http-api-begin.d.ts.map +1 -0
  68. package/dist/http/http-api-begin.js +167 -0
  69. package/dist/http/http-api-begin.js.map +1 -0
  70. package/dist/http/http-api-delete.d.ts +9 -0
  71. package/dist/http/http-api-delete.d.ts.map +1 -0
  72. package/dist/http/http-api-delete.js +67 -0
  73. package/dist/http/http-api-delete.js.map +1 -0
  74. package/dist/http/http-api-dump.d.ts +8 -0
  75. package/dist/http/http-api-dump.d.ts.map +1 -0
  76. package/dist/http/http-api-dump.js +34 -0
  77. package/dist/http/http-api-dump.js.map +1 -0
  78. package/dist/http/http-api-mint.d.ts +9 -0
  79. package/dist/http/http-api-mint.d.ts.map +1 -0
  80. package/dist/http/http-api-mint.js +100 -0
  81. package/dist/http/http-api-mint.js.map +1 -0
  82. package/dist/http/http-api-next.d.ts +9 -0
  83. package/dist/http/http-api-next.d.ts.map +1 -0
  84. package/dist/http/http-api-next.js +237 -0
  85. package/dist/http/http-api-next.js.map +1 -0
  86. package/dist/http/http-api-routes.d.ts +13 -0
  87. package/dist/http/http-api-routes.d.ts.map +1 -0
  88. package/dist/http/http-api-routes.js +28 -0
  89. package/dist/http/http-api-routes.js.map +1 -0
  90. package/dist/http/http-api-snapshot.d.ts +4 -0
  91. package/dist/http/http-api-snapshot.d.ts.map +1 -0
  92. package/dist/http/http-api-snapshot.js +36 -0
  93. package/dist/http/http-api-snapshot.js.map +1 -0
  94. package/dist/http/http-api-update.d.ts +9 -0
  95. package/dist/http/http-api-update.d.ts.map +1 -0
  96. package/dist/http/http-api-update.js +105 -0
  97. package/dist/http/http-api-update.js.map +1 -0
  98. package/dist/http/http-auth-callback.d.ts +6 -0
  99. package/dist/http/http-auth-callback.d.ts.map +1 -0
  100. package/dist/http/http-auth-callback.js +183 -0
  101. package/dist/http/http-auth-callback.js.map +1 -0
  102. package/dist/http/http-auth-middleware.d.ts +30 -0
  103. package/dist/http/http-auth-middleware.d.ts.map +1 -0
  104. package/dist/http/http-auth-middleware.js +224 -0
  105. package/dist/http/http-auth-middleware.js.map +1 -0
  106. package/dist/http/http-error-handlers.d.ts +7 -0
  107. package/dist/http/http-error-handlers.d.ts.map +1 -0
  108. package/dist/http/http-error-handlers.js +35 -0
  109. package/dist/http/http-error-handlers.js.map +1 -0
  110. package/dist/http/http-health-routes.d.ts +9 -0
  111. package/dist/http/http-health-routes.d.ts.map +1 -0
  112. package/dist/http/http-health-routes.js +117 -0
  113. package/dist/http/http-health-routes.js.map +1 -0
  114. package/dist/http/http-mcp-handler.d.ts +8 -0
  115. package/dist/http/http-mcp-handler.d.ts.map +1 -0
  116. package/dist/http/http-mcp-handler.js +136 -0
  117. package/dist/http/http-mcp-handler.js.map +1 -0
  118. package/dist/http/http-metrics-middleware.d.ts +7 -0
  119. package/dist/http/http-metrics-middleware.d.ts.map +1 -0
  120. package/dist/http/http-metrics-middleware.js +56 -0
  121. package/dist/http/http-metrics-middleware.js.map +1 -0
  122. package/dist/http/http-server-config.d.ts +11 -0
  123. package/dist/http/http-server-config.d.ts.map +1 -0
  124. package/dist/http/http-server-config.js +15 -0
  125. package/dist/http/http-server-config.js.map +1 -0
  126. package/dist/http/http-server-startup.d.ts +9 -0
  127. package/dist/http/http-server-startup.d.ts.map +1 -0
  128. package/dist/http/http-server-startup.js +26 -0
  129. package/dist/http/http-server-startup.js.map +1 -0
  130. package/dist/http/http-server.d.ts +4 -0
  131. package/dist/http/http-server.d.ts.map +1 -0
  132. package/dist/http/http-server.js +39 -0
  133. package/dist/http/http-server.js.map +1 -0
  134. package/dist/http/http-well-known.d.ts +13 -0
  135. package/dist/http/http-well-known.d.ts.map +1 -0
  136. package/dist/http/http-well-known.js +32 -0
  137. package/dist/http/http-well-known.js.map +1 -0
  138. package/dist/index.d.ts +7 -0
  139. package/dist/index.d.ts.map +1 -0
  140. package/dist/index.js +100 -0
  141. package/dist/index.js.map +1 -0
  142. package/dist/metrics-server.d.ts +14 -0
  143. package/dist/metrics-server.d.ts.map +1 -0
  144. package/dist/metrics-server.js +41 -0
  145. package/dist/metrics-server.js.map +1 -0
  146. package/dist/resources/docs-resources.d.ts +2 -0
  147. package/dist/resources/docs-resources.d.ts.map +1 -0
  148. package/dist/resources/docs-resources.js +47 -0
  149. package/dist/resources/docs-resources.js.map +1 -0
  150. package/dist/resources/embedded-mcp-resources.d.ts +73 -0
  151. package/dist/resources/embedded-mcp-resources.d.ts.map +1 -0
  152. package/dist/resources/embedded-mcp-resources.js +132 -0
  153. package/dist/resources/embedded-mcp-resources.js.map +1 -0
  154. package/dist/resources/mem-resources-boot.d.ts +10 -0
  155. package/dist/resources/mem-resources-boot.d.ts.map +1 -0
  156. package/dist/resources/mem-resources-boot.js +164 -0
  157. package/dist/resources/mem-resources-boot.js.map +1 -0
  158. package/dist/resources/prompt-resources.d.ts +5 -0
  159. package/dist/resources/prompt-resources.d.ts.map +1 -0
  160. package/dist/resources/prompt-resources.js +42 -0
  161. package/dist/resources/prompt-resources.js.map +1 -0
  162. package/dist/resources/resource-bootstrap.d.ts +7 -0
  163. package/dist/resources/resource-bootstrap.d.ts.map +1 -0
  164. package/dist/resources/resource-bootstrap.js +33 -0
  165. package/dist/resources/resource-bootstrap.js.map +1 -0
  166. package/dist/server.d.ts +4 -0
  167. package/dist/server.d.ts.map +1 -0
  168. package/dist/server.js +79 -0
  169. package/dist/server.js.map +1 -0
  170. package/dist/services/chain-utils.d.ts +22 -0
  171. package/dist/services/chain-utils.d.ts.map +1 -0
  172. package/dist/services/chain-utils.js +95 -0
  173. package/dist/services/chain-utils.js.map +1 -0
  174. package/dist/services/code-block-processor.d.ts +40 -0
  175. package/dist/services/code-block-processor.d.ts.map +1 -0
  176. package/dist/services/code-block-processor.js +169 -0
  177. package/dist/services/code-block-processor.js.map +1 -0
  178. package/dist/services/embedding/config.d.ts +5 -0
  179. package/dist/services/embedding/config.d.ts.map +1 -0
  180. package/dist/services/embedding/config.js +13 -0
  181. package/dist/services/embedding/config.js.map +1 -0
  182. package/dist/services/embedding/providers.d.ts +5 -0
  183. package/dist/services/embedding/providers.d.ts.map +1 -0
  184. package/dist/services/embedding/providers.js +141 -0
  185. package/dist/services/embedding/providers.js.map +1 -0
  186. package/dist/services/embedding/service.d.ts +39 -0
  187. package/dist/services/embedding/service.d.ts.map +1 -0
  188. package/dist/services/embedding/service.js +302 -0
  189. package/dist/services/embedding/service.js.map +1 -0
  190. package/dist/services/embedding/types.d.ts +17 -0
  191. package/dist/services/embedding/types.d.ts.map +1 -0
  192. package/dist/services/embedding/types.js +2 -0
  193. package/dist/services/embedding/types.js.map +1 -0
  194. package/dist/services/id-generator.d.ts +63 -0
  195. package/dist/services/id-generator.d.ts.map +1 -0
  196. package/dist/services/id-generator.js +101 -0
  197. package/dist/services/id-generator.js.map +1 -0
  198. package/dist/services/key-value-store-factory.d.ts +7 -0
  199. package/dist/services/key-value-store-factory.d.ts.map +1 -0
  200. package/dist/services/key-value-store-factory.js +15 -0
  201. package/dist/services/key-value-store-factory.js.map +1 -0
  202. package/dist/services/key-value-store.d.ts +24 -0
  203. package/dist/services/key-value-store.d.ts.map +1 -0
  204. package/dist/services/key-value-store.js +6 -0
  205. package/dist/services/key-value-store.js.map +1 -0
  206. package/dist/services/memory/chain-builder-proof.d.ts +18 -0
  207. package/dist/services/memory/chain-builder-proof.d.ts.map +1 -0
  208. package/dist/services/memory/chain-builder-proof.js +78 -0
  209. package/dist/services/memory/chain-builder-proof.js.map +1 -0
  210. package/dist/services/memory/chain-builder.d.ts +4 -0
  211. package/dist/services/memory/chain-builder.d.ts.map +1 -0
  212. package/dist/services/memory/chain-builder.js +185 -0
  213. package/dist/services/memory/chain-builder.js.map +1 -0
  214. package/dist/services/memory/store-chain-default-handler.d.ts +9 -0
  215. package/dist/services/memory/store-chain-default-handler.d.ts.map +1 -0
  216. package/dist/services/memory/store-chain-default-handler.js +118 -0
  217. package/dist/services/memory/store-chain-default-handler.js.map +1 -0
  218. package/dist/services/memory/store-chain-header-handler.d.ts +8 -0
  219. package/dist/services/memory/store-chain-header-handler.d.ts.map +1 -0
  220. package/dist/services/memory/store-chain-header-handler.js +98 -0
  221. package/dist/services/memory/store-chain-header-handler.js.map +1 -0
  222. package/dist/services/memory/store-chain-helpers.d.ts +27 -0
  223. package/dist/services/memory/store-chain-helpers.d.ts.map +1 -0
  224. package/dist/services/memory/store-chain-helpers.js +102 -0
  225. package/dist/services/memory/store-chain-helpers.js.map +1 -0
  226. package/dist/services/memory/store-chain.d.ts +15 -0
  227. package/dist/services/memory/store-chain.d.ts.map +1 -0
  228. package/dist/services/memory/store-chain.js +56 -0
  229. package/dist/services/memory/store-chain.js.map +1 -0
  230. package/dist/services/memory/store-init.d.ts +3 -0
  231. package/dist/services/memory/store-init.d.ts.map +1 -0
  232. package/dist/services/memory/store-init.js +127 -0
  233. package/dist/services/memory/store-init.js.map +1 -0
  234. package/dist/services/memory/store-methods.d.ts +35 -0
  235. package/dist/services/memory/store-methods.d.ts.map +1 -0
  236. package/dist/services/memory/store-methods.js +308 -0
  237. package/dist/services/memory/store-methods.js.map +1 -0
  238. package/dist/services/memory/store.d.ts +36 -0
  239. package/dist/services/memory/store.d.ts.map +1 -0
  240. package/dist/services/memory/store.js +119 -0
  241. package/dist/services/memory/store.js.map +1 -0
  242. package/dist/services/memory-store.d.ts +33 -0
  243. package/dist/services/memory-store.d.ts.map +1 -0
  244. package/dist/services/memory-store.js +158 -0
  245. package/dist/services/memory-store.js.map +1 -0
  246. package/dist/services/metrics/agent-metrics.d.ts +12 -0
  247. package/dist/services/metrics/agent-metrics.d.ts.map +1 -0
  248. package/dist/services/metrics/agent-metrics.js +34 -0
  249. package/dist/services/metrics/agent-metrics.js.map +1 -0
  250. package/dist/services/metrics/embedding-metrics.d.ts +12 -0
  251. package/dist/services/metrics/embedding-metrics.d.ts.map +1 -0
  252. package/dist/services/metrics/embedding-metrics.js +41 -0
  253. package/dist/services/metrics/embedding-metrics.js.map +1 -0
  254. package/dist/services/metrics/http-metrics.d.ts +12 -0
  255. package/dist/services/metrics/http-metrics.d.ts.map +1 -0
  256. package/dist/services/metrics/http-metrics.js +41 -0
  257. package/dist/services/metrics/http-metrics.js.map +1 -0
  258. package/dist/services/metrics/mcp-metrics.d.ts +16 -0
  259. package/dist/services/metrics/mcp-metrics.d.ts.map +1 -0
  260. package/dist/services/metrics/mcp-metrics.js +55 -0
  261. package/dist/services/metrics/mcp-metrics.js.map +1 -0
  262. package/dist/services/metrics/memory-metrics.d.ts +10 -0
  263. package/dist/services/metrics/memory-metrics.d.ts.map +1 -0
  264. package/dist/services/metrics/memory-metrics.js +28 -0
  265. package/dist/services/metrics/memory-metrics.js.map +1 -0
  266. package/dist/services/metrics/qdrant-metrics.d.ts +11 -0
  267. package/dist/services/metrics/qdrant-metrics.d.ts.map +1 -0
  268. package/dist/services/metrics/qdrant-metrics.js +35 -0
  269. package/dist/services/metrics/qdrant-metrics.js.map +1 -0
  270. package/dist/services/metrics/registry.d.ts +9 -0
  271. package/dist/services/metrics/registry.d.ts.map +1 -0
  272. package/dist/services/metrics/registry.js +19 -0
  273. package/dist/services/metrics/registry.js.map +1 -0
  274. package/dist/services/metrics/system-metrics.d.ts +10 -0
  275. package/dist/services/metrics/system-metrics.d.ts.map +1 -0
  276. package/dist/services/metrics/system-metrics.js +35 -0
  277. package/dist/services/metrics/system-metrics.js.map +1 -0
  278. package/dist/services/proof-of-work-store.d.ts +66 -0
  279. package/dist/services/proof-of-work-store.d.ts.map +1 -0
  280. package/dist/services/proof-of-work-store.js +141 -0
  281. package/dist/services/proof-of-work-store.js.map +1 -0
  282. package/dist/services/qdrant/connection.d.ts +24 -0
  283. package/dist/services/qdrant/connection.d.ts.map +1 -0
  284. package/dist/services/qdrant/connection.js +126 -0
  285. package/dist/services/qdrant/connection.js.map +1 -0
  286. package/dist/services/qdrant/index.d.ts +3 -0
  287. package/dist/services/qdrant/index.d.ts.map +1 -0
  288. package/dist/services/qdrant/index.js +4 -0
  289. package/dist/services/qdrant/index.js.map +1 -0
  290. package/dist/services/qdrant/initialization.d.ts +25 -0
  291. package/dist/services/qdrant/initialization.d.ts.map +1 -0
  292. package/dist/services/qdrant/initialization.js +170 -0
  293. package/dist/services/qdrant/initialization.js.map +1 -0
  294. package/dist/services/qdrant/listing.d.ts +26 -0
  295. package/dist/services/qdrant/listing.d.ts.map +1 -0
  296. package/dist/services/qdrant/listing.js +88 -0
  297. package/dist/services/qdrant/listing.js.map +1 -0
  298. package/dist/services/qdrant/memory-retrieval.d.ts +14 -0
  299. package/dist/services/qdrant/memory-retrieval.d.ts.map +1 -0
  300. package/dist/services/qdrant/memory-retrieval.js +110 -0
  301. package/dist/services/qdrant/memory-retrieval.js.map +1 -0
  302. package/dist/services/qdrant/memory-store.d.ts +16 -0
  303. package/dist/services/qdrant/memory-store.d.ts.map +1 -0
  304. package/dist/services/qdrant/memory-store.js +108 -0
  305. package/dist/services/qdrant/memory-store.js.map +1 -0
  306. package/dist/services/qdrant/memory-updates.d.ts +8 -0
  307. package/dist/services/qdrant/memory-updates.d.ts.map +1 -0
  308. package/dist/services/qdrant/memory-updates.js +206 -0
  309. package/dist/services/qdrant/memory-updates.js.map +1 -0
  310. package/dist/services/qdrant/protocol.d.ts +16 -0
  311. package/dist/services/qdrant/protocol.d.ts.map +1 -0
  312. package/dist/services/qdrant/protocol.js +48 -0
  313. package/dist/services/qdrant/protocol.js.map +1 -0
  314. package/dist/services/qdrant/quality.d.ts +14 -0
  315. package/dist/services/qdrant/quality.d.ts.map +1 -0
  316. package/dist/services/qdrant/quality.js +101 -0
  317. package/dist/services/qdrant/quality.js.map +1 -0
  318. package/dist/services/qdrant/resources.d.ts +7 -0
  319. package/dist/services/qdrant/resources.d.ts.map +1 -0
  320. package/dist/services/qdrant/resources.js +108 -0
  321. package/dist/services/qdrant/resources.js.map +1 -0
  322. package/dist/services/qdrant/search.d.ts +22 -0
  323. package/dist/services/qdrant/search.d.ts.map +1 -0
  324. package/dist/services/qdrant/search.js +75 -0
  325. package/dist/services/qdrant/search.js.map +1 -0
  326. package/dist/services/qdrant/service.d.ts +90 -0
  327. package/dist/services/qdrant/service.d.ts.map +1 -0
  328. package/dist/services/qdrant/service.js +95 -0
  329. package/dist/services/qdrant/service.js.map +1 -0
  330. package/dist/services/qdrant/snapshots.d.ts +19 -0
  331. package/dist/services/qdrant/snapshots.d.ts.map +1 -0
  332. package/dist/services/qdrant/snapshots.js +130 -0
  333. package/dist/services/qdrant/snapshots.js.map +1 -0
  334. package/dist/services/qdrant/types.d.ts +39 -0
  335. package/dist/services/qdrant/types.d.ts.map +1 -0
  336. package/dist/services/qdrant/types.js +2 -0
  337. package/dist/services/qdrant/types.js.map +1 -0
  338. package/dist/services/qdrant/utils.d.ts +20 -0
  339. package/dist/services/qdrant/utils.d.ts.map +1 -0
  340. package/dist/services/qdrant/utils.js +121 -0
  341. package/dist/services/qdrant/utils.js.map +1 -0
  342. package/dist/services/redis-cache.d.ts +43 -0
  343. package/dist/services/redis-cache.d.ts.map +1 -0
  344. package/dist/services/redis-cache.js +214 -0
  345. package/dist/services/redis-cache.js.map +1 -0
  346. package/dist/services/redis.d.ts +43 -0
  347. package/dist/services/redis.d.ts.map +1 -0
  348. package/dist/services/redis.js +234 -0
  349. package/dist/services/redis.js.map +1 -0
  350. package/dist/services/stats/bonuses.d.ts +28 -0
  351. package/dist/services/stats/bonuses.d.ts.map +1 -0
  352. package/dist/services/stats/bonuses.js +96 -0
  353. package/dist/services/stats/bonuses.js.map +1 -0
  354. package/dist/services/stats/healer.d.ts +6 -0
  355. package/dist/services/stats/healer.d.ts.map +1 -0
  356. package/dist/services/stats/healer.js +24 -0
  357. package/dist/services/stats/healer.js.map +1 -0
  358. package/dist/services/stats/model-stats.d.ts +53 -0
  359. package/dist/services/stats/model-stats.d.ts.map +1 -0
  360. package/dist/services/stats/model-stats.js +238 -0
  361. package/dist/services/stats/model-stats.js.map +1 -0
  362. package/dist/services/stats/protocol.d.ts +11 -0
  363. package/dist/services/stats/protocol.d.ts.map +1 -0
  364. package/dist/services/stats/protocol.js +55 -0
  365. package/dist/services/stats/protocol.js.map +1 -0
  366. package/dist/services/stats/scoring.d.ts +19 -0
  367. package/dist/services/stats/scoring.d.ts.map +1 -0
  368. package/dist/services/stats/scoring.js +102 -0
  369. package/dist/services/stats/scoring.js.map +1 -0
  370. package/dist/services/stats/types.d.ts +39 -0
  371. package/dist/services/stats/types.d.ts.map +1 -0
  372. package/dist/services/stats/types.js +8 -0
  373. package/dist/services/stats/types.js.map +1 -0
  374. package/dist/tools/kairos_attest.d.ts +7 -0
  375. package/dist/tools/kairos_attest.d.ts.map +1 -0
  376. package/dist/tools/kairos_attest.js +179 -0
  377. package/dist/tools/kairos_attest.js.map +1 -0
  378. package/dist/tools/kairos_begin.d.ts +9 -0
  379. package/dist/tools/kairos_begin.d.ts.map +1 -0
  380. package/dist/tools/kairos_begin.js +149 -0
  381. package/dist/tools/kairos_begin.js.map +1 -0
  382. package/dist/tools/kairos_begin_schema.d.ts +48 -0
  383. package/dist/tools/kairos_begin_schema.d.ts.map +1 -0
  384. package/dist/tools/kairos_begin_schema.js +48 -0
  385. package/dist/tools/kairos_begin_schema.js.map +1 -0
  386. package/dist/tools/kairos_delete.d.ts +2 -0
  387. package/dist/tools/kairos_delete.d.ts.map +1 -0
  388. package/dist/tools/kairos_delete.js +113 -0
  389. package/dist/tools/kairos_delete.js.map +1 -0
  390. package/dist/tools/kairos_dump.d.ts +14 -0
  391. package/dist/tools/kairos_dump.d.ts.map +1 -0
  392. package/dist/tools/kairos_dump.js +148 -0
  393. package/dist/tools/kairos_dump.js.map +1 -0
  394. package/dist/tools/kairos_mint.d.ts +7 -0
  395. package/dist/tools/kairos_mint.d.ts.map +1 -0
  396. package/dist/tools/kairos_mint.js +233 -0
  397. package/dist/tools/kairos_mint.js.map +1 -0
  398. package/dist/tools/kairos_next-missing-proof-payload.d.ts +24 -0
  399. package/dist/tools/kairos_next-missing-proof-payload.d.ts.map +1 -0
  400. package/dist/tools/kairos_next-missing-proof-payload.js +32 -0
  401. package/dist/tools/kairos_next-missing-proof-payload.js.map +1 -0
  402. package/dist/tools/kairos_next-pow-helpers.d.ts +57 -0
  403. package/dist/tools/kairos_next-pow-helpers.d.ts.map +1 -0
  404. package/dist/tools/kairos_next-pow-helpers.js +271 -0
  405. package/dist/tools/kairos_next-pow-helpers.js.map +1 -0
  406. package/dist/tools/kairos_next-previous-step.d.ts +36 -0
  407. package/dist/tools/kairos_next-previous-step.d.ts.map +1 -0
  408. package/dist/tools/kairos_next-previous-step.js +121 -0
  409. package/dist/tools/kairos_next-previous-step.js.map +1 -0
  410. package/dist/tools/kairos_next.d.ts +12 -0
  411. package/dist/tools/kairos_next.d.ts.map +1 -0
  412. package/dist/tools/kairos_next.js +285 -0
  413. package/dist/tools/kairos_next.js.map +1 -0
  414. package/dist/tools/kairos_next_schema.d.ts +80 -0
  415. package/dist/tools/kairos_next_schema.d.ts.map +1 -0
  416. package/dist/tools/kairos_next_schema.js +82 -0
  417. package/dist/tools/kairos_next_schema.js.map +1 -0
  418. package/dist/tools/kairos_search.d.ts +15 -0
  419. package/dist/tools/kairos_search.d.ts.map +1 -0
  420. package/dist/tools/kairos_search.js +262 -0
  421. package/dist/tools/kairos_search.js.map +1 -0
  422. package/dist/tools/kairos_spaces.d.ts +10 -0
  423. package/dist/tools/kairos_spaces.d.ts.map +1 -0
  424. package/dist/tools/kairos_spaces.js +129 -0
  425. package/dist/tools/kairos_spaces.js.map +1 -0
  426. package/dist/tools/kairos_update.d.ts +2 -0
  427. package/dist/tools/kairos_update.d.ts.map +1 -0
  428. package/dist/tools/kairos_update.js +158 -0
  429. package/dist/tools/kairos_update.js.map +1 -0
  430. package/dist/types/index.d.ts +60 -0
  431. package/dist/types/index.d.ts.map +1 -0
  432. package/dist/types/index.js +21 -0
  433. package/dist/types/index.js.map +1 -0
  434. package/dist/types/memory.d.ts +38 -0
  435. package/dist/types/memory.d.ts.map +1 -0
  436. package/dist/types/memory.js +2 -0
  437. package/dist/types/memory.js.map +1 -0
  438. package/dist/utils/build-version.d.ts +15 -0
  439. package/dist/utils/build-version.d.ts.map +1 -0
  440. package/dist/utils/build-version.js +46 -0
  441. package/dist/utils/build-version.js.map +1 -0
  442. package/dist/utils/global-error-handlers.d.ts +7 -0
  443. package/dist/utils/global-error-handlers.d.ts.map +1 -0
  444. package/dist/utils/global-error-handlers.js +61 -0
  445. package/dist/utils/global-error-handlers.js.map +1 -0
  446. package/dist/utils/log-core.d.ts +11 -0
  447. package/dist/utils/log-core.d.ts.map +1 -0
  448. package/dist/utils/log-core.js +78 -0
  449. package/dist/utils/log-core.js.map +1 -0
  450. package/dist/utils/logger.d.ts +22 -0
  451. package/dist/utils/logger.d.ts.map +1 -0
  452. package/dist/utils/logger.js +63 -0
  453. package/dist/utils/logger.js.map +1 -0
  454. package/dist/utils/memory-body.d.ts +6 -0
  455. package/dist/utils/memory-body.d.ts.map +1 -0
  456. package/dist/utils/memory-body.js +21 -0
  457. package/dist/utils/memory-body.js.map +1 -0
  458. package/dist/utils/memory-store-utils.d.ts +14 -0
  459. package/dist/utils/memory-store-utils.d.ts.map +1 -0
  460. package/dist/utils/memory-store-utils.js +83 -0
  461. package/dist/utils/memory-store-utils.js.map +1 -0
  462. package/dist/utils/qdrant-collection-utils.d.ts +11 -0
  463. package/dist/utils/qdrant-collection-utils.d.ts.map +1 -0
  464. package/dist/utils/qdrant-collection-utils.js +62 -0
  465. package/dist/utils/qdrant-collection-utils.js.map +1 -0
  466. package/dist/utils/qdrant-query-utils.d.ts +6 -0
  467. package/dist/utils/qdrant-query-utils.d.ts.map +1 -0
  468. package/dist/utils/qdrant-query-utils.js +23 -0
  469. package/dist/utils/qdrant-query-utils.js.map +1 -0
  470. package/dist/utils/qdrant-utils.d.ts +5 -0
  471. package/dist/utils/qdrant-utils.d.ts.map +1 -0
  472. package/dist/utils/qdrant-utils.js +5 -0
  473. package/dist/utils/qdrant-utils.js.map +1 -0
  474. package/dist/utils/qdrant-vector-management.d.ts +25 -0
  475. package/dist/utils/qdrant-vector-management.d.ts.map +1 -0
  476. package/dist/utils/qdrant-vector-management.js +284 -0
  477. package/dist/utils/qdrant-vector-management.js.map +1 -0
  478. package/dist/utils/qdrant-vector-types.d.ts +35 -0
  479. package/dist/utils/qdrant-vector-types.d.ts.map +1 -0
  480. package/dist/utils/qdrant-vector-types.js +42 -0
  481. package/dist/utils/qdrant-vector-types.js.map +1 -0
  482. package/dist/utils/space-display.d.ts +11 -0
  483. package/dist/utils/space-display.d.ts.map +1 -0
  484. package/dist/utils/space-display.js +25 -0
  485. package/dist/utils/space-display.js.map +1 -0
  486. package/dist/utils/space-filter.d.ts +15 -0
  487. package/dist/utils/space-filter.d.ts.map +1 -0
  488. package/dist/utils/space-filter.js +18 -0
  489. package/dist/utils/space-filter.js.map +1 -0
  490. package/dist/utils/structured-logger.d.ts +41 -0
  491. package/dist/utils/structured-logger.d.ts.map +1 -0
  492. package/dist/utils/structured-logger.js +133 -0
  493. package/dist/utils/structured-logger.js.map +1 -0
  494. package/dist/utils/tenant-context.d.ts +67 -0
  495. package/dist/utils/tenant-context.d.ts.map +1 -0
  496. package/dist/utils/tenant-context.js +154 -0
  497. package/dist/utils/tenant-context.js.map +1 -0
  498. package/dist/utils/uri-builder.d.ts +37 -0
  499. package/dist/utils/uri-builder.d.ts.map +1 -0
  500. package/dist/utils/uri-builder.js +60 -0
  501. package/dist/utils/uri-builder.js.map +1 -0
  502. package/package.json +121 -0
@@ -0,0 +1,11 @@
1
+ import { QdrantClient } from '@qdrant/js-client-rest';
2
+ import { VectorDescriptorMap } from './qdrant-vector-types.js';
3
+ /**
4
+ * Create a Qdrant collection with standard vector configuration
5
+ */
6
+ export declare function createQdrantCollection(client: QdrantClient, collectionName: string, vectors?: VectorDescriptorMap): Promise<void>;
7
+ /**
8
+ * Get the current vector size of an existing collection
9
+ */
10
+ export declare function getCollectionVectorConfig(client: QdrantClient, collectionName: string): Promise<VectorDescriptorMap | number | null>;
11
+ //# sourceMappingURL=qdrant-collection-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qdrant-collection-utils.d.ts","sourceRoot":"","sources":["../../src/utils/qdrant-collection-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAwB,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAErF;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BvI;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,MAAM,GAAG,IAAI,CAAC,CAqB1I"}
@@ -0,0 +1,62 @@
1
+ import { getVectorDescriptors } from './qdrant-vector-types.js';
2
+ /**
3
+ * Create a Qdrant collection with standard vector configuration
4
+ */
5
+ export async function createQdrantCollection(client, collectionName, vectors) {
6
+ // If caller provided explicit vector descriptors, use them, otherwise generate defaults
7
+ const vecs = vectors || getVectorDescriptors();
8
+ // Normalize to Qdrant expected shape: either single vector or named vectors
9
+ let vectorConfig;
10
+ const keys = Object.keys(vecs);
11
+ if (keys.length === 1 && keys[0] === 'oai') {
12
+ // Backwards compatibility: single vector under root
13
+ const oaiVec = vecs['oai'];
14
+ if (oaiVec) {
15
+ vectorConfig = { size: oaiVec.size, distance: oaiVec.distance || 'Cosine', on_disk: oaiVec.on_disk };
16
+ }
17
+ }
18
+ else {
19
+ // Named vectors
20
+ vectorConfig = {};
21
+ Object.entries(vecs).forEach(([k, v]) => {
22
+ vectorConfig[k] = { size: v.size, distance: v.distance || 'Cosine', on_disk: v.on_disk };
23
+ });
24
+ }
25
+ await client.createCollection(collectionName, {
26
+ vectors: vectorConfig,
27
+ quantization_config: {
28
+ scalar: {
29
+ type: "int8",
30
+ always_ram: true,
31
+ },
32
+ },
33
+ });
34
+ }
35
+ /**
36
+ * Get the current vector size of an existing collection
37
+ */
38
+ export async function getCollectionVectorConfig(client, collectionName) {
39
+ try {
40
+ const collectionInfo = await client.getCollection(collectionName);
41
+ const vectors = collectionInfo.config?.params?.vectors;
42
+ if (!vectors)
43
+ return null;
44
+ // If named vectors exist, parse named map
45
+ if (typeof vectors === 'object' && !('size' in vectors)) {
46
+ const out = {};
47
+ Object.entries(vectors).forEach(([k, v]) => {
48
+ out[k] = { size: v.size, distance: v.distance || 'Cosine', on_disk: v.on_disk };
49
+ });
50
+ return out;
51
+ }
52
+ if (typeof vectors === 'object' && 'size' in vectors) {
53
+ // Single vector configured (legacy)
54
+ return vectors.size;
55
+ }
56
+ return null;
57
+ }
58
+ catch {
59
+ return null;
60
+ }
61
+ }
62
+ //# sourceMappingURL=qdrant-collection-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qdrant-collection-utils.js","sourceRoot":"","sources":["../../src/utils/qdrant-collection-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAuB,MAAM,0BAA0B,CAAC;AAErF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,MAAoB,EAAE,cAAsB,EAAE,OAA6B;IACtH,wFAAwF;IACxF,MAAM,IAAI,GAAG,OAAO,IAAI,oBAAoB,EAAE,CAAC;IAC/C,4EAA4E;IAC5E,IAAI,YAAiB,CAAC;IACtB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QAC3C,oDAAoD;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,MAAM,EAAE,CAAC;YACX,YAAY,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACvG,CAAC;IACH,CAAC;SAAM,CAAC;QACN,gBAAgB;QAChB,YAAY,GAAG,EAAS,CAAC;QACzB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YACtC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3F,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE;QAC5C,OAAO,EAAE,YAAY;QACrB,mBAAmB,EAAE;YACnB,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,UAAU,EAAE,IAAI;aACjB;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,MAAoB,EAAE,cAAsB;IAC1F,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;QACvD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,0CAA0C;QAC1C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,EAAE,CAAC;YACxD,MAAM,GAAG,GAAwB,EAAE,CAAC;YACpC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAgB,EAAE,EAAE;gBACxD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAClF,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACrD,oCAAoC;YACpC,OAAQ,OAAe,CAAC,IAAI,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { QdrantClient } from '@qdrant/js-client-rest';
2
+ /**
3
+ * Count points that have the specified named vector present (non-null)
4
+ */
5
+ export declare function countPointsWithVector(client: QdrantClient, collectionName: string, vectorName: string): Promise<number>;
6
+ //# sourceMappingURL=qdrant-query-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qdrant-query-utils.d.ts","sourceRoot":"","sources":["../../src/utils/qdrant-query-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAItD;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAe7H"}
@@ -0,0 +1,23 @@
1
+ import { getSpaceContext } from './tenant-context.js';
2
+ import { buildSpaceFilter } from './space-filter.js';
3
+ /**
4
+ * Count points that have the specified named vector present (non-null)
5
+ */
6
+ export async function countPointsWithVector(client, collectionName, vectorName) {
7
+ const filter = buildSpaceFilter(getSpaceContext().allowedSpaceIds);
8
+ let offset = undefined;
9
+ let count = 0;
10
+ do {
11
+ const page = await client.scroll(collectionName, { filter, with_payload: false, with_vector: [vectorName], limit: 256, offset });
12
+ if (!page?.points || page.points.length === 0)
13
+ break;
14
+ for (const p of page.points) {
15
+ if (p?.vector && p.vector[vectorName]) {
16
+ count += 1;
17
+ }
18
+ }
19
+ offset = page.next_page_offset;
20
+ } while (offset);
21
+ return count;
22
+ }
23
+ //# sourceMappingURL=qdrant-query-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qdrant-query-utils.js","sourceRoot":"","sources":["../../src/utils/qdrant-query-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAoB,EAAE,cAAsB,EAAE,UAAkB;IAC1G,MAAM,MAAM,GAAG,gBAAgB,CAAC,eAAe,EAAE,CAAC,eAAe,CAAC,CAAC;IACnE,IAAI,MAAM,GAAQ,SAAS,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,GAAG,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAS,CAAC,CAAC;QACxI,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM;QACrD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,EAAE,MAAM,IAAK,CAAC,CAAC,MAAc,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/C,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;QACH,CAAC;QACD,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC,QAAQ,MAAM,EAAE;IACjB,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './qdrant-vector-types.js';
2
+ export * from './qdrant-collection-utils.js';
3
+ export * from './qdrant-vector-management.js';
4
+ export * from './qdrant-query-utils.js';
5
+ //# sourceMappingURL=qdrant-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qdrant-utils.d.ts","sourceRoot":"","sources":["../../src/utils/qdrant-utils.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './qdrant-vector-types.js';
2
+ export * from './qdrant-collection-utils.js';
3
+ export * from './qdrant-vector-management.js';
4
+ export * from './qdrant-query-utils.js';
5
+ //# sourceMappingURL=qdrant-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qdrant-utils.js","sourceRoot":"","sources":["../../src/utils/qdrant-utils.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { QdrantClient } from '@qdrant/js-client-rest';
2
+ import { VectorDescriptorMap } from './qdrant-vector-types.js';
3
+ /**
4
+ * Add named vectors to an existing collection by updating its config.
5
+ * This uses client.updateCollection and will fail if the server does not support the operation.
6
+ */
7
+ export declare function addVectorsToCollection(client: QdrantClient, collectionName: string, vectors: VectorDescriptorMap): Promise<void>;
8
+ /**
9
+ * Migrate points from one named vector to another by re-embedding content.
10
+ * Assumes the new vector space is already added to the collection.
11
+ * @param client Qdrant client
12
+ * @param collectionName Collection name
13
+ * @param fromVectorName Source vector name (e.g., 'vs1024')
14
+ * @param toVectorName Target vector name (e.g., 'vs1536')
15
+ * @param embeddingService Service to generate new embeddings
16
+ * @param batchSize Batch size for migration (default 64)
17
+ */
18
+ export declare function migrateVectorSpace(client: QdrantClient, collectionName: string, fromVectorName: string, toVectorName: string, embeddingService: any, // EmbeddingService
19
+ batchSize?: number): Promise<void>;
20
+ /**
21
+ * Remove a named vector from the collection after migration.
22
+ * Note: Qdrant may not support removing vectors once added; this is a placeholder.
23
+ */
24
+ export declare function removeVectorFromCollection(client: QdrantClient, collectionName: string, vectorName: string): Promise<void>;
25
+ //# sourceMappingURL=qdrant-vector-management.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qdrant-vector-management.d.ts","sourceRoot":"","sources":["../../src/utils/qdrant-vector-management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAM/D;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqGtI;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,GAAG,EAAE,mBAAmB;AAC1C,SAAS,GAAE,MAAW,GACrB,OAAO,CAAC,IAAI,CAAC,CAqEf;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FhI"}
@@ -0,0 +1,284 @@
1
+ import { logger } from './logger.js';
2
+ import { createQdrantCollection } from './qdrant-collection-utils.js';
3
+ import { KAIROS_APP_SPACE_ID } from '../config.js';
4
+ import { getSpaceContext } from '../utils/tenant-context.js';
5
+ import { buildSpaceFilter } from '../utils/space-filter.js';
6
+ /**
7
+ * Add named vectors to an existing collection by updating its config.
8
+ * This uses client.updateCollection and will fail if the server does not support the operation.
9
+ */
10
+ export async function addVectorsToCollection(client, collectionName, vectors) {
11
+ logger.info(`addVectorsToCollection: Attempting to add vectors [${Object.keys(vectors).join(', ')}] to collection ${collectionName}`);
12
+ try {
13
+ const updateCtx = { vectors: {} };
14
+ Object.entries(vectors).forEach(([k, v]) => {
15
+ updateCtx.vectors[k] = { size: v.size, distance: v.distance || 'Cosine', on_disk: v.on_disk };
16
+ });
17
+ // Attempt to call Qdrant updateCollection if available
18
+ if (typeof client.updateCollection === 'function') {
19
+ await client.updateCollection(collectionName, { vectors: updateCtx.vectors });
20
+ logger.info(`addVectorsToCollection: updateCollection called successfully for ${collectionName} -> added ${Object.keys(updateCtx.vectors).join(',')}`);
21
+ }
22
+ else {
23
+ // Try fallback: for older JS client versions, may not support updateCollection
24
+ throw new Error('Qdrant client does not support updateCollection; please recreate collection with named vectors');
25
+ }
26
+ }
27
+ catch (err) {
28
+ // If updateCollection fails because server doesn't allow adding new vector names, we need a safer migration path
29
+ const msg = err?.data?.status?.error || err?.message || String(err);
30
+ logger.warn(`addVectorsToCollection: updateCollection failed: ${msg}`);
31
+ // Heuristic: detect "Not existing vector name" error and attempt safe recreate + restore
32
+ if (String(msg).includes('Not existing vector name') || String(msg).includes('Not existing named vector')) {
33
+ logger.info(`addVectorsToCollection: detected inability to add vector via updateCollection, starting recreation-based migration for ${collectionName} to add vectors [${Object.keys(vectors).join(', ')}]`);
34
+ // Step 1: Gather existing points via scroll in batches
35
+ const allPoints = [];
36
+ const filter = buildSpaceFilter(getSpaceContext().allowedSpaceIds);
37
+ let offset = undefined;
38
+ do {
39
+ const page = await client.scroll(collectionName, {
40
+ filter,
41
+ with_payload: true,
42
+ with_vector: true,
43
+ limit: 256,
44
+ offset
45
+ });
46
+ if (!page?.points || page.points.length === 0)
47
+ break;
48
+ for (const p of page.points) {
49
+ allPoints.push({ id: p.id, payload: p.payload, vector: p.vector });
50
+ }
51
+ offset = page.next_page_offset;
52
+ } while (offset);
53
+ logger.info(`addVectorsToCollection: fetched ${allPoints.length} points from ${collectionName} for recreation`);
54
+ // Step 2: Recreate collection with merged vector set (existing vectors + requested)
55
+ // Gather existing vector descriptors so we can merge them
56
+ let mergedVectors = {};
57
+ try {
58
+ const existingCollectionInfo = await client.getCollection(collectionName);
59
+ const existingVectors = existingCollectionInfo.config?.params?.vectors;
60
+ if (existingVectors) {
61
+ if (typeof existingVectors === 'object' && !existingVectors?.size) {
62
+ Object.entries(existingVectors).forEach(([k, v]) => {
63
+ mergedVectors[k] = { size: v.size, distance: v.distance || 'Cosine', on_disk: v.on_disk };
64
+ });
65
+ }
66
+ else if (typeof existingVectors === 'object' && existingVectors.size) {
67
+ // legacy single-vector
68
+ const ev = existingVectors;
69
+ mergedVectors[`vs${ev.size}`] = { size: ev.size, distance: ev.distance || 'Cosine', on_disk: ev.on_disk };
70
+ }
71
+ }
72
+ }
73
+ catch (infoErr) {
74
+ // ignore; best-effort merge
75
+ logger.warn(`addVectorsToCollection: could not read existing collection info for ${collectionName}: ${String(infoErr)}`);
76
+ }
77
+ mergedVectors = { ...mergedVectors, ...vectors };
78
+ // We simply delete and recreate the collection with the desired vectors
79
+ try {
80
+ await client.deleteCollection(collectionName);
81
+ // small pause to ensure deletion is processed
82
+ await new Promise(resolve => setTimeout(resolve, 500));
83
+ }
84
+ catch (delErr) {
85
+ logger.warn(`addVectorsToCollection: failed to delete collection ${collectionName}: ${String(delErr)}; attempting to proceed`);
86
+ }
87
+ await createQdrantCollection(client, collectionName, mergedVectors);
88
+ logger.info(`addVectorsToCollection: recreated collection ${collectionName} with new vectors: ${Object.keys(mergedVectors).join(',')}`);
89
+ // Step 3: Re-insert points in batches to prevent memory pressure
90
+ const BATCH_SIZE = 256;
91
+ logger.info(`addVectorsToCollection: starting restore of ${allPoints.length} points to collection ${collectionName} (batchSize=${BATCH_SIZE})`);
92
+ let restored = 0;
93
+ for (let i = 0; i < allPoints.length; i += BATCH_SIZE) {
94
+ const batch = allPoints.slice(i, i + BATCH_SIZE).map(pt => ({
95
+ id: pt.id,
96
+ vector: pt.vector,
97
+ payload: { ...pt.payload, space_id: pt.payload?.space_id ?? KAIROS_APP_SPACE_ID }
98
+ }));
99
+ try {
100
+ await client.upsert(collectionName, { points: batch });
101
+ restored += batch.length;
102
+ logger.info(`addVectorsToCollection: upserted ${batch.length} restored points to ${collectionName} (restored total=${restored})`);
103
+ }
104
+ catch (upErr) {
105
+ // If we fail here, try to continue and log
106
+ logger.error(`addVectorsToCollection: failed upserting batch during recreation: ${String(upErr)}`);
107
+ }
108
+ }
109
+ logger.info(`addVectorsToCollection: restore complete, collection ${collectionName} now contains ${restored} points (attempted ${allPoints.length})`);
110
+ return;
111
+ }
112
+ throw err;
113
+ }
114
+ }
115
+ /**
116
+ * Migrate points from one named vector to another by re-embedding content.
117
+ * Assumes the new vector space is already added to the collection.
118
+ * @param client Qdrant client
119
+ * @param collectionName Collection name
120
+ * @param fromVectorName Source vector name (e.g., 'vs1024')
121
+ * @param toVectorName Target vector name (e.g., 'vs1536')
122
+ * @param embeddingService Service to generate new embeddings
123
+ * @param batchSize Batch size for migration (default 64)
124
+ */
125
+ export async function migrateVectorSpace(client, collectionName, fromVectorName, toVectorName, embeddingService, // EmbeddingService
126
+ batchSize = 64) {
127
+ let offset = undefined;
128
+ let migrated = 0;
129
+ let failed = 0;
130
+ logger.info(`migrateVectorSpace: Starting migration from ${fromVectorName} to ${toVectorName} in collection ${collectionName} - status=START`);
131
+ const filter = buildSpaceFilter(getSpaceContext().allowedSpaceIds);
132
+ do {
133
+ // Scroll points with the old vector
134
+ const page = await client.scroll(collectionName, {
135
+ filter,
136
+ with_payload: true,
137
+ with_vector: [fromVectorName], // Only fetch the old vector
138
+ limit: batchSize,
139
+ offset
140
+ });
141
+ if (!page.points || page.points.length === 0)
142
+ break;
143
+ const updates = [];
144
+ for (const point of page.points) {
145
+ const payload = point.payload;
146
+ // Re-embed the content to get new vector
147
+ const textToEmbed = [
148
+ payload.description_full || '',
149
+ payload.label || '',
150
+ payload.text || '',
151
+ `Tags: ${(payload.tags || []).join(', ')}`
152
+ ].filter(t => t.trim()).join('\n');
153
+ if (!textToEmbed.trim()) {
154
+ logger.warn(`Point ${point.id} has no embeddable content, skipping`);
155
+ continue;
156
+ }
157
+ let newVector = null;
158
+ try {
159
+ const embeddingResult = await embeddingService.generateEmbedding(textToEmbed);
160
+ newVector = embeddingResult.embedding;
161
+ }
162
+ catch (embedErr) {
163
+ failed += 1;
164
+ logger.warn(`migrateVectorSpace: failed to generate embedding for point ${point.id}; skipping; reason=${String(embedErr)}`);
165
+ continue;
166
+ }
167
+ // Prepare update: set new vector, keep payload
168
+ updates.push({
169
+ id: point.id,
170
+ vector: { [toVectorName]: newVector },
171
+ payload // Keep existing payload
172
+ });
173
+ }
174
+ if (updates.length > 0) {
175
+ try {
176
+ await client.upsert(collectionName, { points: updates });
177
+ migrated += updates.length;
178
+ logger.info(`migrateVectorSpace: Migrated ${updates.length} points in current batch, total migrated: ${migrated}`);
179
+ }
180
+ catch (upErr) {
181
+ // If upsert fails, log and attempt to continue
182
+ logger.error(`migrateVectorSpace: failed to upsert migrated vectors batch: ${String(upErr)}; migrated so far: ${migrated}`);
183
+ }
184
+ }
185
+ offset = page.next_page_offset;
186
+ } while (offset);
187
+ logger.info(`migrateVectorSpace: Migration complete for ${collectionName}: migrated=${migrated}, failed=${failed}, from=${fromVectorName}, to=${toVectorName} - status=COMPLETE`);
188
+ }
189
+ /**
190
+ * Remove a named vector from the collection after migration.
191
+ * Note: Qdrant may not support removing vectors once added; this is a placeholder.
192
+ */
193
+ export async function removeVectorFromCollection(client, collectionName, vectorName) {
194
+ logger.info(`removeVectorFromCollection: Attempting to remove vector '${vectorName}' from collection '${collectionName}'`);
195
+ // Recreate the collection without the given vectorName by gathering all points, removing the vector field,
196
+ // and recreating the collection with a merged vector map that excludes the vectorName.
197
+ try {
198
+ const collectionInfo = await client.getCollection(collectionName);
199
+ const vectors = collectionInfo.config?.params?.vectors;
200
+ if (!vectors) {
201
+ logger.warn(`removeVectorFromCollection: No vector config found for ${collectionName}; nothing to remove`);
202
+ return;
203
+ }
204
+ // Convert to descriptor map
205
+ const existingVectors = {};
206
+ if (typeof vectors === 'object' && !vectors.size) {
207
+ Object.entries(vectors).forEach(([k, v]) => {
208
+ existingVectors[k] = { size: v.size, distance: v.distance || 'Cosine', on_disk: v.on_disk };
209
+ });
210
+ }
211
+ else if (typeof vectors === 'object' && vectors.size) {
212
+ // Single root vector; cannot remove unless recreating collection & leaving no vectors which is invalid
213
+ const ev = vectors;
214
+ existingVectors[`vs${ev.size}`] = { size: ev.size, distance: ev.distance || 'Cosine', on_disk: ev.on_disk };
215
+ }
216
+ if (!(vectorName in existingVectors)) {
217
+ logger.info(`removeVectorFromCollection: vector '${vectorName}' not present in collection '${collectionName}', nothing to remove`);
218
+ return;
219
+ }
220
+ // Build new vector map excluding the vectorName
221
+ const newVectors = {};
222
+ Object.entries(existingVectors).forEach(([k, v]) => {
223
+ if (k !== vectorName)
224
+ newVectors[k] = v;
225
+ });
226
+ if (Object.keys(newVectors).length === 0) {
227
+ logger.error(`removeVectorFromCollection: Cannot remove vector '${vectorName}' as it would leave collection '${collectionName}' without any vectors`);
228
+ return;
229
+ }
230
+ // Gather all points and strip the vectorName from all points
231
+ const filter = buildSpaceFilter(getSpaceContext().allowedSpaceIds);
232
+ const allPoints = [];
233
+ let offset = undefined;
234
+ do {
235
+ const page = await client.scroll(collectionName, { filter, with_payload: true, with_vector: true, limit: 256, offset });
236
+ if (!page?.points || page.points.length === 0)
237
+ break;
238
+ for (const p of page.points) {
239
+ const vec = p.vector || {};
240
+ // Copy all vector fields except the removed one
241
+ const newVectorFields = {};
242
+ Object.entries(vec).forEach(([vn, v]) => {
243
+ if (vn !== vectorName)
244
+ newVectorFields[vn] = v;
245
+ });
246
+ allPoints.push({ id: p.id, vector: newVectorFields, payload: p.payload });
247
+ }
248
+ offset = page.next_page_offset;
249
+ } while (offset);
250
+ logger.info(`removeVectorFromCollection: Fetched ${allPoints.length} points from ${collectionName} to recreate without ${vectorName}`);
251
+ // Delete, recreate with new vectors, and upsert points (without the removed vector)
252
+ try {
253
+ await client.deleteCollection(collectionName);
254
+ await new Promise(resolve => setTimeout(resolve, 500));
255
+ }
256
+ catch (delErr) {
257
+ logger.warn(`removeVectorFromCollection: failed to delete collection ${collectionName}: ${String(delErr)}; attempting to proceed`);
258
+ }
259
+ await createQdrantCollection(client, collectionName, newVectors);
260
+ logger.info(`removeVectorFromCollection: recreated collection ${collectionName} without vector ${vectorName}; new vectors: ${Object.keys(newVectors).join(',')}`);
261
+ const BATCH_SIZE = 256;
262
+ let restored = 0;
263
+ for (let i = 0; i < allPoints.length; i += BATCH_SIZE) {
264
+ const batch = allPoints.slice(i, i + BATCH_SIZE).map(p => ({
265
+ id: p.id,
266
+ vector: p.vector,
267
+ payload: { ...p.payload, space_id: p.payload?.space_id ?? KAIROS_APP_SPACE_ID }
268
+ }));
269
+ try {
270
+ await client.upsert(collectionName, { points: batch });
271
+ restored += batch.length;
272
+ logger.info(`removeVectorFromCollection: upserted ${batch.length} restored points into ${collectionName} (restored=${restored})`);
273
+ }
274
+ catch (upErr) {
275
+ logger.error(`removeVectorFromCollection: upsert failed during recreation: ${String(upErr)}`);
276
+ }
277
+ }
278
+ logger.info(`removeVectorFromCollection: Completed removal of ${vectorName} on ${collectionName} - restored points=${restored}`);
279
+ }
280
+ catch (err) {
281
+ logger.error(`removeVectorFromCollection: removal failed for ${vectorName} on ${collectionName}: ${String(err)}`);
282
+ }
283
+ }
284
+ //# sourceMappingURL=qdrant-vector-management.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qdrant-vector-management.js","sourceRoot":"","sources":["../../src/utils/qdrant-vector-management.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Get the vector size from environment variable EMBEDDING_DIMENSION
3
+ */
4
+ export type VectorDescriptor = {
5
+ size: number;
6
+ distance?: 'Cosine' | 'Euclid' | 'Dot';
7
+ on_disk?: boolean;
8
+ };
9
+ export type VectorDescriptorMap = Record<string, VectorDescriptor>;
10
+ /**
11
+ * Get the vector size for the default provider (OpenAI) from environment variable EMBEDDING_DIMENSION
12
+ * Backwards compatible helper for single-vector deployments.
13
+ */
14
+ export declare function getVectorSize(): number;
15
+ /**
16
+ * Build a named vector configuration object from environment variables.
17
+ * Uses "vs{DIMENSION}" naming to support migration between dimensions.
18
+ * Only one vector space active at a time, but supports migration from old to new.
19
+ */
20
+ export declare function getVectorDescriptors(): VectorDescriptorMap;
21
+ /**
22
+ * Resolve a potential 'current' alias for Qdrant collection names.
23
+ *
24
+ * Usage:
25
+ * - If callers pass the literal alias 'current' (or an env var resolves to it),
26
+ * this function returns the real collection name derived from:
27
+ * 1) process.env['QDRANT_COLLECTION_CURRENT']
28
+ * 2) process.env['QDRANT_COLLECTION'] (fallback)
29
+ * 3) the provided collection string (final fallback)
30
+ *
31
+ * This allows code to use the stable alias 'current' while the actual
32
+ * target collection can be changed via environment without touching code.
33
+ */
34
+ export declare function resolveCollectionAlias(collectionName: string): string;
35
+ //# sourceMappingURL=qdrant-vector-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qdrant-vector-types.d.ts","sourceRoot":"","sources":["../../src/utils/qdrant-vector-types.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAC3G,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,mBAAmB,CAK1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAOrE"}
@@ -0,0 +1,42 @@
1
+ import { getEmbeddingDimension, QDRANT_COLLECTION_CURRENT, getQdrantCollection } from '../config.js';
2
+ /**
3
+ * Get the vector size for the default provider (OpenAI) from environment variable EMBEDDING_DIMENSION
4
+ * Backwards compatible helper for single-vector deployments.
5
+ */
6
+ export function getVectorSize() {
7
+ return getEmbeddingDimension();
8
+ }
9
+ /**
10
+ * Build a named vector configuration object from environment variables.
11
+ * Uses "vs{DIMENSION}" naming to support migration between dimensions.
12
+ * Only one vector space active at a time, but supports migration from old to new.
13
+ */
14
+ export function getVectorDescriptors() {
15
+ const dim = getEmbeddingDimension(1536);
16
+ const map = {};
17
+ map[`vs${dim}`] = { size: dim, distance: 'Cosine', on_disk: true };
18
+ return map;
19
+ }
20
+ /**
21
+ * Resolve a potential 'current' alias for Qdrant collection names.
22
+ *
23
+ * Usage:
24
+ * - If callers pass the literal alias 'current' (or an env var resolves to it),
25
+ * this function returns the real collection name derived from:
26
+ * 1) process.env['QDRANT_COLLECTION_CURRENT']
27
+ * 2) process.env['QDRANT_COLLECTION'] (fallback)
28
+ * 3) the provided collection string (final fallback)
29
+ *
30
+ * This allows code to use the stable alias 'current' while the actual
31
+ * target collection can be changed via environment without touching code.
32
+ */
33
+ export function resolveCollectionAlias(collectionName) {
34
+ if (!collectionName)
35
+ return collectionName;
36
+ if (collectionName === 'current') {
37
+ // Priority: explicit current mapping, then legacy QDRANT_COLLECTION, then alias itself
38
+ return QDRANT_COLLECTION_CURRENT || getQdrantCollection();
39
+ }
40
+ return collectionName;
41
+ }
42
+ //# sourceMappingURL=qdrant-vector-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qdrant-vector-types.js","sourceRoot":"","sources":["../../src/utils/qdrant-vector-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAQrG;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,qBAAqB,EAAE,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACnE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CAAC,cAAsB;IAC3D,IAAI,CAAC,cAAc;QAAE,OAAO,cAAc,CAAC;IAC3C,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,uFAAuF;QACvF,OAAO,yBAAyB,IAAI,mBAAmB,EAAE,CAAC;IAC5D,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Human-readable names for space IDs. Frontend (tools, responses) uses names; backend uses ids.
3
+ */
4
+ /** Display label for the app space (embedded mem docs). */
5
+ export declare const KAIROS_APP_SPACE_DISPLAY_NAME = "Kairos app";
6
+ /**
7
+ * Map a space_id to a human-readable name for tool outputs and agent-facing responses.
8
+ * user:realm:sub → "Personal"; group:realm:ref → "Group: ref"; space:kairos-app → "Kairos app".
9
+ */
10
+ export declare function spaceIdToDisplayName(spaceId: string): string;
11
+ //# sourceMappingURL=space-display.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"space-display.d.ts","sourceRoot":"","sources":["../../src/utils/space-display.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,2DAA2D;AAC3D,eAAO,MAAM,6BAA6B,eAAe,CAAC;AAE1D;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQ5D"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Human-readable names for space IDs. Frontend (tools, responses) uses names; backend uses ids.
3
+ */
4
+ import { KAIROS_APP_SPACE_ID } from '../config.js';
5
+ /** Display label for the app space (embedded mem docs). */
6
+ export const KAIROS_APP_SPACE_DISPLAY_NAME = 'Kairos app';
7
+ /**
8
+ * Map a space_id to a human-readable name for tool outputs and agent-facing responses.
9
+ * user:realm:sub → "Personal"; group:realm:ref → "Group: ref"; space:kairos-app → "Kairos app".
10
+ */
11
+ export function spaceIdToDisplayName(spaceId) {
12
+ if (!spaceId || typeof spaceId !== 'string')
13
+ return 'Unknown';
14
+ if (spaceId === KAIROS_APP_SPACE_ID)
15
+ return KAIROS_APP_SPACE_DISPLAY_NAME;
16
+ const parts = spaceId.split(':');
17
+ if (parts[0] === 'user')
18
+ return 'Personal';
19
+ if (parts[0] === 'group' && parts.length >= 3)
20
+ return `Group: ${parts[2]}`;
21
+ if (parts[0] === 'space' && parts.length >= 2)
22
+ return parts.slice(1).join(':') || spaceId;
23
+ return spaceId;
24
+ }
25
+ //# sourceMappingURL=space-display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"space-display.js","sourceRoot":"","sources":["../../src/utils/space-display.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,6BAA6B,GAAG,YAAY,CAAC;AAE1D;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC9D,IAAI,OAAO,KAAK,mBAAmB;QAAE,OAAO,6BAA6B,CAAC;IAC1E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM;QAAE,OAAO,UAAU,CAAC;IAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,UAAU,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC;IAC5E,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC;IAC1F,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Build Qdrant filter for space isolation. Merges space_id constraint with optional existing filter.
3
+ */
4
+ /** Qdrant filter shape (must array of conditions). */
5
+ export interface QdrantFilterMust {
6
+ must?: Array<Record<string, unknown>>;
7
+ }
8
+ /**
9
+ * Build a filter that restricts results to points whose space_id is in allowedSpaceIds.
10
+ * Merges with existingFilter.must so callers can add domain, chain.id, etc.
11
+ */
12
+ export declare function buildSpaceFilter(allowedSpaceIds: string[], existingFilter?: QdrantFilterMust): {
13
+ must: Array<Record<string, unknown>>;
14
+ };
15
+ //# sourceMappingURL=space-filter.d.ts.map