@squadrules/mcp 4.8.6 → 5.0.0

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 (614) hide show
  1. package/README.md +37 -32
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/bootstrap.d.ts +1 -1
  4. package/dist/bootstrap.js +3 -3
  5. package/dist/bootstrap.js.map +1 -1
  6. package/dist/cli/api-client.d.ts +1 -1
  7. package/dist/cli/api-client.js +3 -3
  8. package/dist/cli/api-client.js.map +1 -1
  9. package/dist/cli/auth-error.js +1 -1
  10. package/dist/cli/auth-error.js.map +1 -1
  11. package/dist/cli/client-factory.js +2 -2
  12. package/dist/cli/client-factory.js.map +1 -1
  13. package/dist/cli/commands/attest.js +2 -2
  14. package/dist/cli/commands/attest.js.map +1 -1
  15. package/dist/cli/commands/begin.js +2 -2
  16. package/dist/cli/commands/begin.js.map +1 -1
  17. package/dist/cli/commands/cli-train.js +4 -4
  18. package/dist/cli/commands/cli-train.js.map +1 -1
  19. package/dist/cli/commands/delete-metadata.d.ts +2 -2
  20. package/dist/cli/commands/delete-metadata.d.ts.map +1 -1
  21. package/dist/cli/commands/delete-metadata.js +2 -2
  22. package/dist/cli/commands/delete-metadata.js.map +1 -1
  23. package/dist/cli/commands/export.js +2 -2
  24. package/dist/cli/commands/export.js.map +1 -1
  25. package/dist/cli/commands/login.d.ts +1 -1
  26. package/dist/cli/commands/login.js +13 -13
  27. package/dist/cli/commands/login.js.map +1 -1
  28. package/dist/cli/commands/logout.d.ts +1 -1
  29. package/dist/cli/commands/logout.js +1 -1
  30. package/dist/cli/commands/search.js +1 -1
  31. package/dist/cli/commands/search.js.map +1 -1
  32. package/dist/cli/commands/serve.d.ts +3 -3
  33. package/dist/cli/commands/serve.js +9 -9
  34. package/dist/cli/commands/serve.js.map +1 -1
  35. package/dist/cli/commands/token.d.ts +1 -1
  36. package/dist/cli/commands/token.js +3 -3
  37. package/dist/cli/commands/token.js.map +1 -1
  38. package/dist/cli/commands/update.js +3 -3
  39. package/dist/cli/commands/update.js.map +1 -1
  40. package/dist/cli/config-file-internals.d.ts +1 -1
  41. package/dist/cli/config-file-internals.d.ts.map +1 -1
  42. package/dist/cli/config-file-internals.js +3 -3
  43. package/dist/cli/config-file-internals.js.map +1 -1
  44. package/dist/cli/config-file-write.js +1 -1
  45. package/dist/cli/config-file-write.js.map +1 -1
  46. package/dist/cli/config-file.d.ts +2 -2
  47. package/dist/cli/config-file.js +6 -6
  48. package/dist/cli/config-file.js.map +1 -1
  49. package/dist/cli/config.d.ts +2 -2
  50. package/dist/cli/config.js +3 -3
  51. package/dist/cli/config.js.map +1 -1
  52. package/dist/cli/fetch-error.js +1 -1
  53. package/dist/cli/fetch-error.js.map +1 -1
  54. package/dist/cli/format-next-call.js +3 -3
  55. package/dist/cli/format-next-call.js.map +1 -1
  56. package/dist/cli/index.d.ts +1 -1
  57. package/dist/cli/index.js +1 -1
  58. package/dist/cli/keyring.d.ts +5 -12
  59. package/dist/cli/keyring.d.ts.map +1 -1
  60. package/dist/cli/keyring.js +18 -64
  61. package/dist/cli/keyring.js.map +1 -1
  62. package/dist/cli/oauth-refresh.d.ts +2 -2
  63. package/dist/cli/oauth-refresh.d.ts.map +1 -1
  64. package/dist/cli/oauth-refresh.js +3 -3
  65. package/dist/cli/oauth-refresh.js.map +1 -1
  66. package/dist/cli/program.js +4 -4
  67. package/dist/cli/program.js.map +1 -1
  68. package/dist/cli/resolve-api-base.d.ts +1 -1
  69. package/dist/cli/resolve-api-base.js +2 -2
  70. package/dist/cli/resolve-api-base.js.map +1 -1
  71. package/dist/cli/skill-zip-local-write.js +2 -2
  72. package/dist/cli/skill-zip-local-write.js.map +1 -1
  73. package/dist/cli/upload-guards.js +3 -3
  74. package/dist/cli/upload-guards.js.map +1 -1
  75. package/dist/config/adapter-markdown-size-limits.d.ts +2 -5
  76. package/dist/config/adapter-markdown-size-limits.d.ts.map +1 -1
  77. package/dist/config/adapter-markdown-size-limits.js +19 -10
  78. package/dist/config/adapter-markdown-size-limits.js.map +1 -1
  79. package/dist/config/embedding-fastembed.d.ts +9 -0
  80. package/dist/config/embedding-fastembed.d.ts.map +1 -0
  81. package/dist/config/embedding-fastembed.js +20 -0
  82. package/dist/config/embedding-fastembed.js.map +1 -0
  83. package/dist/config/export-download-settings.d.ts +2 -2
  84. package/dist/config/export-download-settings.d.ts.map +1 -1
  85. package/dist/config/export-download-settings.js +3 -23
  86. package/dist/config/export-download-settings.js.map +1 -1
  87. package/dist/config/export-zip-settings.d.ts +2 -3
  88. package/dist/config/export-zip-settings.d.ts.map +1 -1
  89. package/dist/config/export-zip-settings.js +3 -6
  90. package/dist/config/export-zip-settings.js.map +1 -1
  91. package/dist/config.d.ts +35 -31
  92. package/dist/config.d.ts.map +1 -1
  93. package/dist/config.js +50 -47
  94. package/dist/config.js.map +1 -1
  95. package/dist/constants/builtin-search-meta.d.ts +5 -5
  96. package/dist/constants/builtin-search-meta.d.ts.map +1 -1
  97. package/dist/constants/builtin-search-meta.js +6 -6
  98. package/dist/constants/builtin-search-meta.js.map +1 -1
  99. package/dist/embed-docs/mem/README.md +9 -9
  100. package/dist/embed-docs/mem/adapter-migration.md +2 -2
  101. package/dist/embed-docs/mem/bulk-insert-adapters-via-cli.md +20 -20
  102. package/dist/embed-docs/mem/challenge-type-guide.md +10 -10
  103. package/dist/embed-docs/mem/create-new-protocol.md +16 -16
  104. package/dist/embed-docs/mem/phase-critic-guide.md +2 -2
  105. package/dist/embed-docs/mem/phase-critic.md +2 -2
  106. package/dist/embed-docs/mem/protocol-linking-guide.md +6 -6
  107. package/dist/embed-docs/mem/refine-search.md +3 -3
  108. package/dist/embed-docs/mem/skill-format-guide.md +24 -24
  109. package/dist/http/bearer-validate.d.ts +1 -1
  110. package/dist/http/bearer-validate.d.ts.map +1 -1
  111. package/dist/http/export-skill-zip-http.js +3 -3
  112. package/dist/http/export-skill-zip-http.js.map +1 -1
  113. package/dist/http/http-api-snapshot.d.ts.map +1 -1
  114. package/dist/http/http-api-snapshot.js +13 -1
  115. package/dist/http/http-api-snapshot.js.map +1 -1
  116. package/dist/http/http-api-train-json.js +8 -8
  117. package/dist/http/http-api-train-json.js.map +1 -1
  118. package/dist/http/http-api-train-raw.js +8 -8
  119. package/dist/http/http-api-train-raw.js.map +1 -1
  120. package/dist/http/http-auth-callback.js +1 -1
  121. package/dist/http/http-auth-middleware.d.ts +1 -1
  122. package/dist/http/http-auth-middleware.d.ts.map +1 -1
  123. package/dist/http/http-auth-middleware.js +7 -15
  124. package/dist/http/http-auth-middleware.js.map +1 -1
  125. package/dist/http/http-export-artifact-download-routes.js +1 -1
  126. package/dist/http/http-export-artifact-download-routes.js.map +1 -1
  127. package/dist/http/http-health-routes.d.ts.map +1 -1
  128. package/dist/http/http-health-routes.js +6 -3
  129. package/dist/http/http-health-routes.js.map +1 -1
  130. package/dist/http/http-mcp-handler.js +2 -2
  131. package/dist/http/http-mcp-handler.js.map +1 -1
  132. package/dist/http/http-route-errors.js +4 -4
  133. package/dist/http/http-route-errors.js.map +1 -1
  134. package/dist/http/http-ui-static.js +8 -8
  135. package/dist/http/http-ui-static.js.map +1 -1
  136. package/dist/http/http-well-known.js +1 -1
  137. package/dist/http/http-well-known.js.map +1 -1
  138. package/dist/http/oidc-profile-claims.d.ts +5 -5
  139. package/dist/http/oidc-profile-claims.d.ts.map +1 -1
  140. package/dist/http/oidc-profile-claims.js +5 -5
  141. package/dist/http/oidc-profile-claims.js.map +1 -1
  142. package/dist/http/oidc-scopes.js +2 -2
  143. package/dist/http/oidc-scopes.js.map +1 -1
  144. package/dist/index.d.ts +2 -2
  145. package/dist/index.d.ts.map +1 -1
  146. package/dist/index.js +21 -11
  147. package/dist/index.js.map +1 -1
  148. package/dist/mcp-apps/activate-widget-html.js +4 -4
  149. package/dist/mcp-apps/activate-widget-html.js.map +1 -1
  150. package/dist/mcp-apps/activate-widget-inline-css.js +1 -1
  151. package/dist/mcp-apps/activate-widget-inline-script.js +9 -9
  152. package/dist/mcp-apps/forward-widget-html.js +4 -4
  153. package/dist/mcp-apps/forward-widget-html.js.map +1 -1
  154. package/dist/mcp-apps/forward-widget-inline-script.d.ts.map +1 -1
  155. package/dist/mcp-apps/forward-widget-inline-script.js +8 -8
  156. package/dist/mcp-apps/forward-widget-inline-script.js.map +1 -1
  157. package/dist/mcp-apps/list-offerings-for-ui.d.ts.map +1 -1
  158. package/dist/mcp-apps/list-offerings-for-ui.js +16 -16
  159. package/dist/mcp-apps/list-offerings-for-ui.js.map +1 -1
  160. package/dist/mcp-apps/mcp-widget-presentation-inject.d.ts +2 -2
  161. package/dist/mcp-apps/mcp-widget-presentation-inject.d.ts.map +1 -1
  162. package/dist/mcp-apps/mcp-widget-presentation-inject.js +4 -4
  163. package/dist/mcp-apps/mcp-widget-presentation-inject.js.map +1 -1
  164. package/dist/mcp-apps/register-activate-ui-resources.d.ts +1 -1
  165. package/dist/mcp-apps/register-activate-ui-resources.d.ts.map +1 -1
  166. package/dist/mcp-apps/register-activate-ui-resources.js +2 -13
  167. package/dist/mcp-apps/register-activate-ui-resources.js.map +1 -1
  168. package/dist/mcp-apps/register-forward-ui-resources.d.ts +1 -1
  169. package/dist/mcp-apps/register-forward-ui-resources.d.ts.map +1 -1
  170. package/dist/mcp-apps/register-forward-ui-resources.js +3 -14
  171. package/dist/mcp-apps/register-forward-ui-resources.js.map +1 -1
  172. package/dist/mcp-apps/register-spaces-ui-resources.d.ts +1 -1
  173. package/dist/mcp-apps/register-spaces-ui-resources.d.ts.map +1 -1
  174. package/dist/mcp-apps/register-spaces-ui-resources.js +2 -13
  175. package/dist/mcp-apps/register-spaces-ui-resources.js.map +1 -1
  176. package/dist/mcp-apps/spaces-mcp-app-widget-html.js +8 -8
  177. package/dist/mcp-apps/spaces-mcp-app-widget-html.js.map +1 -1
  178. package/dist/mcp-apps/spaces-widget-html.js +1 -1
  179. package/dist/mcp-apps/squadrules-logo-embedded.d.ts +3 -0
  180. package/dist/mcp-apps/squadrules-logo-embedded.d.ts.map +1 -0
  181. package/dist/mcp-apps/squadrules-logo-embedded.js +3 -0
  182. package/dist/mcp-apps/squadrules-logo-embedded.js.map +1 -0
  183. package/dist/mcp-apps/{kairos-server-ui-capability.d.ts → squadrules-server-ui-capability.d.ts} +2 -2
  184. package/dist/mcp-apps/squadrules-server-ui-capability.d.ts.map +1 -0
  185. package/dist/mcp-apps/{kairos-server-ui-capability.js → squadrules-server-ui-capability.js} +3 -3
  186. package/dist/mcp-apps/squadrules-server-ui-capability.js.map +1 -0
  187. package/dist/mcp-apps/{kairos-ui-constants.d.ts → squadrules-ui-constants.d.ts} +14 -52
  188. package/dist/mcp-apps/squadrules-ui-constants.d.ts.map +1 -0
  189. package/dist/mcp-apps/squadrules-ui-constants.js +59 -0
  190. package/dist/mcp-apps/squadrules-ui-constants.js.map +1 -0
  191. package/dist/resources/docs-resources.js +2 -2
  192. package/dist/resources/docs-resources.js.map +1 -1
  193. package/dist/resources/embedded-mcp-resources.js +17 -17
  194. package/dist/resources/embedded-mcp-resources.js.map +1 -1
  195. package/dist/resources/mem-resources-boot.d.ts.map +1 -1
  196. package/dist/resources/mem-resources-boot.js +5 -31
  197. package/dist/resources/mem-resources-boot.js.map +1 -1
  198. package/dist/resources/mem-uuid-mapper.d.ts.map +1 -1
  199. package/dist/resources/mem-uuid-mapper.js +8 -23
  200. package/dist/resources/mem-uuid-mapper.js.map +1 -1
  201. package/dist/resources/resource-bootstrap.js +4 -4
  202. package/dist/resources/resource-bootstrap.js.map +1 -1
  203. package/dist/server.d.ts.map +1 -1
  204. package/dist/server.js +16 -14
  205. package/dist/server.js.map +1 -1
  206. package/dist/services/adapter-navigation.js +1 -1
  207. package/dist/services/adapter-navigation.js.map +1 -1
  208. package/dist/services/embedding/fastembed-provider.d.ts +2 -0
  209. package/dist/services/embedding/fastembed-provider.d.ts.map +1 -0
  210. package/dist/services/embedding/fastembed-provider.js +78 -0
  211. package/dist/services/embedding/fastembed-provider.js.map +1 -0
  212. package/dist/services/embedding/health.d.ts.map +1 -1
  213. package/dist/services/embedding/health.js +99 -96
  214. package/dist/services/embedding/health.js.map +1 -1
  215. package/dist/services/embedding/provider-audit.d.ts +15 -0
  216. package/dist/services/embedding/provider-audit.d.ts.map +1 -0
  217. package/dist/services/embedding/provider-audit.js +28 -0
  218. package/dist/services/embedding/provider-audit.js.map +1 -0
  219. package/dist/services/embedding/providers.d.ts +2 -1
  220. package/dist/services/embedding/providers.d.ts.map +1 -1
  221. package/dist/services/embedding/providers.js +21 -23
  222. package/dist/services/embedding/providers.js.map +1 -1
  223. package/dist/services/embedding/service.d.ts +2 -2
  224. package/dist/services/embedding/service.d.ts.map +1 -1
  225. package/dist/services/embedding/service.js +13 -16
  226. package/dist/services/embedding/service.js.map +1 -1
  227. package/dist/services/execution-trace-store.d.ts +5 -29
  228. package/dist/services/execution-trace-store.d.ts.map +1 -1
  229. package/dist/services/execution-trace-store.js +10 -2
  230. package/dist/services/execution-trace-store.js.map +1 -1
  231. package/dist/services/export-artifact-download-capability.js +4 -4
  232. package/dist/services/export-artifact-download-capability.js.map +1 -1
  233. package/dist/services/export-download-capability.js +4 -4
  234. package/dist/services/export-download-capability.js.map +1 -1
  235. package/dist/services/id-generator.d.ts +11 -11
  236. package/dist/services/id-generator.d.ts.map +1 -1
  237. package/dist/services/id-generator.js +20 -30
  238. package/dist/services/id-generator.js.map +1 -1
  239. package/dist/services/memory/artifact-metadata.js +1 -1
  240. package/dist/services/memory/artifact-metadata.js.map +1 -1
  241. package/dist/services/memory/qdrant-point-to-memory.js +2 -2
  242. package/dist/services/memory/qdrant-point-to-memory.js.map +1 -1
  243. package/dist/services/memory/store-adapter-default-handler.js +2 -2
  244. package/dist/services/memory/store-adapter-default-handler.js.map +1 -1
  245. package/dist/services/memory/store-adapter-helpers.js +7 -7
  246. package/dist/services/memory/store-adapter-helpers.js.map +1 -1
  247. package/dist/services/memory/store-adapter.js +2 -2
  248. package/dist/services/memory/store-adapter.js.map +1 -1
  249. package/dist/services/memory/store-artifact.js +4 -4
  250. package/dist/services/memory/store-artifact.js.map +1 -1
  251. package/dist/services/memory/store-methods.js +7 -7
  252. package/dist/services/memory/store-methods.js.map +1 -1
  253. package/dist/services/memory/store-title-similarity-search.js +2 -2
  254. package/dist/services/memory/store-title-similarity-search.js.map +1 -1
  255. package/dist/services/memory/store.d.ts +23 -0
  256. package/dist/services/memory/store.d.ts.map +1 -1
  257. package/dist/services/memory/store.js +111 -4
  258. package/dist/services/memory/store.js.map +1 -1
  259. package/dist/services/memory/validate-protocol-structure.d.ts +1 -1
  260. package/dist/services/memory/validate-protocol-structure.d.ts.map +1 -1
  261. package/dist/services/memory/validate-protocol-structure.js +1 -1
  262. package/dist/services/memory/validate-protocol-structure.js.map +1 -1
  263. package/dist/services/memory-store.d.ts +5 -0
  264. package/dist/services/memory-store.d.ts.map +1 -1
  265. package/dist/services/memory-store.js +8 -3
  266. package/dist/services/memory-store.js.map +1 -1
  267. package/dist/services/metrics/agent-metrics.js +4 -4
  268. package/dist/services/metrics/agent-metrics.js.map +1 -1
  269. package/dist/services/metrics/anomaly-metrics.js +1 -1
  270. package/dist/services/metrics/anomaly-metrics.js.map +1 -1
  271. package/dist/services/metrics/embedding-metrics.js +5 -5
  272. package/dist/services/metrics/embedding-metrics.js.map +1 -1
  273. package/dist/services/metrics/export-metrics.js +4 -4
  274. package/dist/services/metrics/export-metrics.js.map +1 -1
  275. package/dist/services/metrics/http-metrics.js +5 -5
  276. package/dist/services/metrics/http-metrics.js.map +1 -1
  277. package/dist/services/metrics/mcp-metrics.d.ts +3 -3
  278. package/dist/services/metrics/mcp-metrics.d.ts.map +1 -1
  279. package/dist/services/metrics/mcp-metrics.js +10 -10
  280. package/dist/services/metrics/mcp-metrics.js.map +1 -1
  281. package/dist/services/metrics/memory-metrics.js +3 -3
  282. package/dist/services/metrics/memory-metrics.js.map +1 -1
  283. package/dist/services/metrics/qdrant-metrics.js +4 -4
  284. package/dist/services/metrics/qdrant-metrics.js.map +1 -1
  285. package/dist/services/metrics/registry.d.ts +1 -1
  286. package/dist/services/metrics/registry.js +3 -3
  287. package/dist/services/metrics/registry.js.map +1 -1
  288. package/dist/services/metrics/system-metrics.js +3 -3
  289. package/dist/services/metrics/system-metrics.js.map +1 -1
  290. package/dist/services/qdrant/connection.d.ts.map +1 -1
  291. package/dist/services/qdrant/connection.js +6 -6
  292. package/dist/services/qdrant/connection.js.map +1 -1
  293. package/dist/services/qdrant/initialization.d.ts +1 -1
  294. package/dist/services/qdrant/initialization.js +4 -4
  295. package/dist/services/qdrant/initialization.js.map +1 -1
  296. package/dist/services/qdrant/memory-retrieval.js +6 -6
  297. package/dist/services/qdrant/memory-retrieval.js.map +1 -1
  298. package/dist/services/qdrant/memory-updates.js +4 -4
  299. package/dist/services/qdrant/memory-updates.js.map +1 -1
  300. package/dist/services/qdrant/quality.js +4 -4
  301. package/dist/services/qdrant/quality.js.map +1 -1
  302. package/dist/services/qdrant/resources.js +2 -2
  303. package/dist/services/qdrant/resources.js.map +1 -1
  304. package/dist/services/qdrant/service.d.ts.map +1 -1
  305. package/dist/services/qdrant/service.js +11 -2
  306. package/dist/services/qdrant/service.js.map +1 -1
  307. package/dist/services/qdrant/snapshots.js +1 -1
  308. package/dist/services/qdrant/snapshots.js.map +1 -1
  309. package/dist/services/qdrant/utils.js +13 -13
  310. package/dist/services/qdrant/utils.js.map +1 -1
  311. package/dist/services/redis-cache.js +4 -4
  312. package/dist/services/redis-cache.js.map +1 -1
  313. package/dist/services/redis.d.ts +2 -2
  314. package/dist/services/redis.js +5 -5
  315. package/dist/services/redis.js.map +1 -1
  316. package/dist/services/reward-metrics.js +2 -2
  317. package/dist/services/reward-metrics.js.map +1 -1
  318. package/dist/services/vector-store/IExecutionTraceStore.d.ts +25 -0
  319. package/dist/services/vector-store/IExecutionTraceStore.d.ts.map +1 -0
  320. package/dist/services/vector-store/IExecutionTraceStore.js +2 -0
  321. package/dist/services/vector-store/IExecutionTraceStore.js.map +1 -0
  322. package/dist/services/vector-store/IVectorRecordStore.d.ts +58 -0
  323. package/dist/services/vector-store/IVectorRecordStore.d.ts.map +1 -0
  324. package/dist/services/vector-store/IVectorRecordStore.js +2 -0
  325. package/dist/services/vector-store/IVectorRecordStore.js.map +1 -0
  326. package/dist/services/vector-store/commit-retry.d.ts +21 -0
  327. package/dist/services/vector-store/commit-retry.d.ts.map +1 -0
  328. package/dist/services/vector-store/commit-retry.js +58 -0
  329. package/dist/services/vector-store/commit-retry.js.map +1 -0
  330. package/dist/services/vector-store/embedded-store-singleton.d.ts +12 -0
  331. package/dist/services/vector-store/embedded-store-singleton.d.ts.map +1 -0
  332. package/dist/services/vector-store/embedded-store-singleton.js +17 -0
  333. package/dist/services/vector-store/embedded-store-singleton.js.map +1 -0
  334. package/dist/services/vector-store/lancedb/LanceExecutionTraceStore.d.ts +28 -0
  335. package/dist/services/vector-store/lancedb/LanceExecutionTraceStore.d.ts.map +1 -0
  336. package/dist/services/vector-store/lancedb/LanceExecutionTraceStore.js +222 -0
  337. package/dist/services/vector-store/lancedb/LanceExecutionTraceStore.js.map +1 -0
  338. package/dist/services/vector-store/lancedb/LanceVectorRecordStore.d.ts +77 -0
  339. package/dist/services/vector-store/lancedb/LanceVectorRecordStore.d.ts.map +1 -0
  340. package/dist/services/vector-store/lancedb/LanceVectorRecordStore.js +136 -0
  341. package/dist/services/vector-store/lancedb/LanceVectorRecordStore.js.map +1 -0
  342. package/dist/services/vector-store/lancedb/lance-records-engine.d.ts +41 -0
  343. package/dist/services/vector-store/lancedb/lance-records-engine.d.ts.map +1 -0
  344. package/dist/services/vector-store/lancedb/lance-records-engine.js +102 -0
  345. package/dist/services/vector-store/lancedb/lance-records-engine.js.map +1 -0
  346. package/dist/services/vector-store/lancedb/lance-records-mutations.d.ts +22 -0
  347. package/dist/services/vector-store/lancedb/lance-records-mutations.d.ts.map +1 -0
  348. package/dist/services/vector-store/lancedb/lance-records-mutations.js +211 -0
  349. package/dist/services/vector-store/lancedb/lance-records-mutations.js.map +1 -0
  350. package/dist/services/vector-store/lancedb/lance-records-reads.d.ts +64 -0
  351. package/dist/services/vector-store/lancedb/lance-records-reads.d.ts.map +1 -0
  352. package/dist/services/vector-store/lancedb/lance-records-reads.js +237 -0
  353. package/dist/services/vector-store/lancedb/lance-records-reads.js.map +1 -0
  354. package/dist/services/vector-store/lancedb/lance-records-schema.d.ts +48 -0
  355. package/dist/services/vector-store/lancedb/lance-records-schema.d.ts.map +1 -0
  356. package/dist/services/vector-store/lancedb/lance-records-schema.js +159 -0
  357. package/dist/services/vector-store/lancedb/lance-records-schema.js.map +1 -0
  358. package/dist/services/vector-store/lancedb/lance-records-search.d.ts +30 -0
  359. package/dist/services/vector-store/lancedb/lance-records-search.d.ts.map +1 -0
  360. package/dist/services/vector-store/lancedb/lance-records-search.js +112 -0
  361. package/dist/services/vector-store/lancedb/lance-records-search.js.map +1 -0
  362. package/dist/services/vector-store/lancedb/lance-records-write-artifact.d.ts +11 -0
  363. package/dist/services/vector-store/lancedb/lance-records-write-artifact.d.ts.map +1 -0
  364. package/dist/services/vector-store/lancedb/lance-records-write-artifact.js +121 -0
  365. package/dist/services/vector-store/lancedb/lance-records-write-artifact.js.map +1 -0
  366. package/dist/services/vector-store/lancedb/lance-records-write-helpers.d.ts +52 -0
  367. package/dist/services/vector-store/lancedb/lance-records-write-helpers.d.ts.map +1 -0
  368. package/dist/services/vector-store/lancedb/lance-records-write-helpers.js +216 -0
  369. package/dist/services/vector-store/lancedb/lance-records-write-helpers.js.map +1 -0
  370. package/dist/services/vector-store/lancedb/lance-records-writes.d.ts +21 -0
  371. package/dist/services/vector-store/lancedb/lance-records-writes.d.ts.map +1 -0
  372. package/dist/services/vector-store/lancedb/lance-records-writes.js +294 -0
  373. package/dist/services/vector-store/lancedb/lance-records-writes.js.map +1 -0
  374. package/dist/services/vector-store/lancedb-connection.d.ts +12 -0
  375. package/dist/services/vector-store/lancedb-connection.d.ts.map +1 -0
  376. package/dist/services/vector-store/lancedb-connection.js +28 -0
  377. package/dist/services/vector-store/lancedb-connection.js.map +1 -0
  378. package/dist/services/vector-store/types.d.ts +85 -0
  379. package/dist/services/vector-store/types.d.ts.map +1 -0
  380. package/dist/services/vector-store/types.js +2 -0
  381. package/dist/services/vector-store/types.js.map +1 -0
  382. package/dist/stdio/stdio-server.js +1 -1
  383. package/dist/stdio/stdio-server.js.map +1 -1
  384. package/dist/tools/activate.js +11 -11
  385. package/dist/tools/activate.js.map +1 -1
  386. package/dist/tools/activate_schema.d.ts +0 -1
  387. package/dist/tools/activate_schema.d.ts.map +1 -1
  388. package/dist/tools/activate_schema.js +8 -10
  389. package/dist/tools/activate_schema.js.map +1 -1
  390. package/dist/tools/artifact-catalog.d.ts.map +1 -1
  391. package/dist/tools/artifact-catalog.js +6 -33
  392. package/dist/tools/artifact-catalog.js.map +1 -1
  393. package/dist/tools/delete.js +4 -4
  394. package/dist/tools/delete.js.map +1 -1
  395. package/dist/tools/delete_schema.js +3 -3
  396. package/dist/tools/delete_schema.js.map +1 -1
  397. package/dist/tools/dump.d.ts.map +1 -1
  398. package/dist/tools/dump.js +4 -13
  399. package/dist/tools/dump.js.map +1 -1
  400. package/dist/tools/export-resolve-adapter.js +2 -2
  401. package/dist/tools/export-resolve-adapter.js.map +1 -1
  402. package/dist/tools/export-reward-jsonl.js +3 -3
  403. package/dist/tools/export-reward-jsonl.js.map +1 -1
  404. package/dist/tools/export-selection.js +4 -4
  405. package/dist/tools/export-selection.js.map +1 -1
  406. package/dist/tools/export-source.js +5 -5
  407. package/dist/tools/export-source.js.map +1 -1
  408. package/dist/tools/export.js +5 -5
  409. package/dist/tools/export.js.map +1 -1
  410. package/dist/tools/export_schema.js +4 -4
  411. package/dist/tools/export_schema.js.map +1 -1
  412. package/dist/tools/forward-register.js +4 -4
  413. package/dist/tools/forward-register.js.map +1 -1
  414. package/dist/tools/forward-tool-error.d.ts +2 -2
  415. package/dist/tools/forward-tool-error.d.ts.map +1 -1
  416. package/dist/tools/forward-tool-error.js.map +1 -1
  417. package/dist/tools/forward-trace.js +1 -1
  418. package/dist/tools/forward-trace.js.map +1 -1
  419. package/dist/tools/forward-view.d.ts +2 -2
  420. package/dist/tools/forward-view.d.ts.map +1 -1
  421. package/dist/tools/forward-view.js +3 -3
  422. package/dist/tools/forward-view.js.map +1 -1
  423. package/dist/tools/forward.js +5 -5
  424. package/dist/tools/forward.js.map +1 -1
  425. package/dist/tools/forward_schema.d.ts +1 -2
  426. package/dist/tools/forward_schema.d.ts.map +1 -1
  427. package/dist/tools/forward_schema.js +5 -7
  428. package/dist/tools/forward_schema.js.map +1 -1
  429. package/dist/tools/local-artifact-dir-contract.d.ts +2 -8
  430. package/dist/tools/local-artifact-dir-contract.d.ts.map +1 -1
  431. package/dist/tools/local-artifact-dir-contract.js +2 -9
  432. package/dist/tools/local-artifact-dir-contract.js.map +1 -1
  433. package/dist/tools/mcp-tool-input-teaching.d.ts +3 -3
  434. package/dist/tools/mcp-tool-input-teaching.d.ts.map +1 -1
  435. package/dist/tools/mcp-tool-input-teaching.js +22 -22
  436. package/dist/tools/mcp-tool-input-teaching.js.map +1 -1
  437. package/dist/tools/next-missing-proof-payload.js +1 -1
  438. package/dist/tools/next-missing-proof-payload.js.map +1 -1
  439. package/dist/tools/next-pow-challenge-shape.js +1 -1
  440. package/dist/tools/next-pow-challenge-shape.js.map +1 -1
  441. package/dist/tools/next-pow-helpers.d.ts +1 -1
  442. package/dist/tools/next-pow-helpers.d.ts.map +1 -1
  443. package/dist/tools/next-pow-helpers.js +4 -4
  444. package/dist/tools/next-pow-helpers.js.map +1 -1
  445. package/dist/tools/next-previous-step.js +1 -1
  446. package/dist/tools/next-previous-step.js.map +1 -1
  447. package/dist/tools/next.js +8 -8
  448. package/dist/tools/next.js.map +1 -1
  449. package/dist/tools/next_schema.d.ts +0 -1
  450. package/dist/tools/next_schema.d.ts.map +1 -1
  451. package/dist/tools/next_schema.js +3 -5
  452. package/dist/tools/next_schema.js.map +1 -1
  453. package/dist/tools/review-evidence-check.js +1 -1
  454. package/dist/tools/review-evidence-check.js.map +1 -1
  455. package/dist/tools/reward.js +6 -6
  456. package/dist/tools/reward.js.map +1 -1
  457. package/dist/tools/reward_schema.js +1 -1
  458. package/dist/tools/reward_schema.js.map +1 -1
  459. package/dist/tools/search.d.ts.map +1 -1
  460. package/dist/tools/search.js +20 -34
  461. package/dist/tools/search.js.map +1 -1
  462. package/dist/tools/search_output.js +11 -11
  463. package/dist/tools/search_output.js.map +1 -1
  464. package/dist/tools/search_schema.d.ts +1 -1
  465. package/dist/tools/search_schema.js +7 -7
  466. package/dist/tools/search_schema.js.map +1 -1
  467. package/dist/tools/skill-export/assemble-skill-item.d.ts.map +1 -1
  468. package/dist/tools/skill-export/assemble-skill-item.js +11 -15
  469. package/dist/tools/skill-export/assemble-skill-item.js.map +1 -1
  470. package/dist/tools/skill-export/derive-metadata.d.ts +1 -1
  471. package/dist/tools/skill-export/derive-metadata.d.ts.map +1 -1
  472. package/dist/tools/skill-export/enumerate-space-adapters.d.ts +2 -2
  473. package/dist/tools/skill-export/enumerate-space-adapters.d.ts.map +1 -1
  474. package/dist/tools/skill-export/enumerate-space-adapters.js +12 -28
  475. package/dist/tools/skill-export/enumerate-space-adapters.js.map +1 -1
  476. package/dist/tools/skill-export/types.d.ts +1 -1
  477. package/dist/tools/skill-export/types.d.ts.map +1 -1
  478. package/dist/tools/spaces.d.ts.map +1 -1
  479. package/dist/tools/spaces.js +9 -22
  480. package/dist/tools/spaces.js.map +1 -1
  481. package/dist/tools/spaces_schema.js +1 -1
  482. package/dist/tools/spaces_schema.js.map +1 -1
  483. package/dist/tools/{kairos-challenge-display.d.ts → squadrules-challenge-display.d.ts} +1 -1
  484. package/dist/tools/squadrules-challenge-display.d.ts.map +1 -0
  485. package/dist/tools/{kairos-challenge-display.js → squadrules-challenge-display.js} +3 -3
  486. package/dist/tools/squadrules-challenge-display.js.map +1 -0
  487. package/dist/tools/{kairos-genesis-proof-hash.d.ts → squadrules-genesis-proof-hash.d.ts} +1 -1
  488. package/dist/tools/squadrules-genesis-proof-hash.d.ts.map +1 -0
  489. package/dist/tools/{kairos-genesis-proof-hash.js → squadrules-genesis-proof-hash.js} +1 -1
  490. package/dist/tools/squadrules-genesis-proof-hash.js.map +1 -0
  491. package/dist/tools/{kairos-uri.d.ts → squadrules-uri.d.ts} +4 -4
  492. package/dist/tools/squadrules-uri.d.ts.map +1 -0
  493. package/dist/tools/{kairos-uri.js → squadrules-uri.js} +18 -29
  494. package/dist/tools/squadrules-uri.js.map +1 -0
  495. package/dist/tools/tool-registry.d.ts +11 -13
  496. package/dist/tools/tool-registry.d.ts.map +1 -1
  497. package/dist/tools/tool-registry.js +8 -8
  498. package/dist/tools/tool-registry.js.map +1 -1
  499. package/dist/tools/train-artifact-adapter-uri.js +3 -3
  500. package/dist/tools/train-artifact-adapter-uri.js.map +1 -1
  501. package/dist/tools/train-output-adapter-uri.js +2 -2
  502. package/dist/tools/train-output-adapter-uri.js.map +1 -1
  503. package/dist/tools/train-store.js +4 -4
  504. package/dist/tools/train-store.js.map +1 -1
  505. package/dist/tools/train.js +11 -11
  506. package/dist/tools/train.js.map +1 -1
  507. package/dist/tools/train_schema.js +4 -4
  508. package/dist/tools/train_schema.js.map +1 -1
  509. package/dist/tools/tune-execute.d.ts.map +1 -1
  510. package/dist/tools/tune-execute.js +5 -5
  511. package/dist/tools/tune-execute.js.map +1 -1
  512. package/dist/tools/tune-messages.js +2 -2
  513. package/dist/tools/tune-messages.js.map +1 -1
  514. package/dist/tools/tune_schema.js +3 -3
  515. package/dist/tools/tune_schema.js.map +1 -1
  516. package/dist/tools/update.js +2 -2
  517. package/dist/tools/update.js.map +1 -1
  518. package/dist/tools/update_schema.d.ts.map +1 -1
  519. package/dist/tools/update_schema.js +3 -5
  520. package/dist/tools/update_schema.js.map +1 -1
  521. package/dist/types/index.d.ts +2 -2
  522. package/dist/types/index.d.ts.map +1 -1
  523. package/dist/types/index.js +4 -4
  524. package/dist/types/index.js.map +1 -1
  525. package/dist/ui/assets/{AccountPage-DBrqe8KI.js → AccountPage-BJm56sur.js} +1 -1
  526. package/dist/ui/assets/HomePage-B06u5RCw.js +1 -0
  527. package/dist/ui/assets/{ProtocolDetailPage-C20Yd3q6.js → ProtocolDetailPage-DCw5D34S.js} +1 -1
  528. package/dist/ui/assets/ProtocolEditPage-mChBe3JY.js +5 -0
  529. package/dist/ui/assets/{RichTextEditor-uun0UIVc.js → RichTextEditor-Bj6JxHM5.js} +1 -1
  530. package/dist/ui/assets/{RunGuidedPage-BbyHZjPU.js → RunGuidedPage-Bd1bUTBH.js} +1 -1
  531. package/dist/ui/assets/{RunsPage-BijmxS6f.js → RunsPage-4kDF_Ylg.js} +1 -1
  532. package/dist/ui/assets/{SkillBundlePage-BsndXJaC.js → SkillBundlePage-D1OPKJzA.js} +1 -1
  533. package/dist/ui/assets/SquadrulesPage-D84vIaBc.js +1 -0
  534. package/dist/ui/assets/{export-skill-zip-CIyOWxuI.js → export-skill-zip-C1bRyhE2.js} +1 -1
  535. package/dist/ui/assets/index-PouLvU1c.js +8 -0
  536. package/dist/ui/assets/{kairos-mcp-DNiKVgiO.svg → squadrules-mcp-Qc5pokoj.svg} +1 -1
  537. package/dist/ui/assets/useRunSession-BX2U9D53.js +1 -0
  538. package/dist/ui/favicon.svg +1 -1
  539. package/dist/ui/index.html +3 -3
  540. package/dist/ui/logo.svg +1 -1
  541. package/dist/utils/build-version.d.ts +1 -1
  542. package/dist/utils/build-version.js +1 -1
  543. package/dist/utils/global-error-handlers.d.ts +1 -1
  544. package/dist/utils/global-error-handlers.js +1 -1
  545. package/dist/utils/log-core.d.ts +1 -1
  546. package/dist/utils/log-core.js +1 -1
  547. package/dist/utils/mcp-tool-doc-runtime.d.ts +1 -1
  548. package/dist/utils/mcp-tool-doc-runtime.js +2 -2
  549. package/dist/utils/mcp-tool-doc-runtime.js.map +1 -1
  550. package/dist/utils/memory-body.d.ts +1 -1
  551. package/dist/utils/memory-body.js +2 -2
  552. package/dist/utils/memory-body.js.map +1 -1
  553. package/dist/utils/protected-space-write-guard.js +3 -3
  554. package/dist/utils/protected-space-write-guard.js.map +1 -1
  555. package/dist/utils/qdrant-vector-management.js +3 -3
  556. package/dist/utils/qdrant-vector-management.js.map +1 -1
  557. package/dist/utils/resolve-space-param.d.ts +1 -1
  558. package/dist/utils/resolve-space-param.js +8 -8
  559. package/dist/utils/resolve-space-param.js.map +1 -1
  560. package/dist/utils/space-display.d.ts +2 -2
  561. package/dist/utils/space-display.d.ts.map +1 -1
  562. package/dist/utils/space-display.js +6 -6
  563. package/dist/utils/space-display.js.map +1 -1
  564. package/dist/utils/squadrules-local-artifact-dirs.d.ts +12 -0
  565. package/dist/utils/squadrules-local-artifact-dirs.d.ts.map +1 -0
  566. package/dist/utils/squadrules-local-artifact-dirs.js +34 -0
  567. package/dist/utils/squadrules-local-artifact-dirs.js.map +1 -0
  568. package/dist/utils/squadrules-user-dirs.d.ts +26 -0
  569. package/dist/utils/squadrules-user-dirs.d.ts.map +1 -0
  570. package/dist/utils/squadrules-user-dirs.js +67 -0
  571. package/dist/utils/squadrules-user-dirs.js.map +1 -0
  572. package/dist/utils/structured-logger.d.ts +1 -1
  573. package/dist/utils/structured-logger.js +1 -1
  574. package/dist/utils/tenant-context.d.ts +3 -3
  575. package/dist/utils/tenant-context.d.ts.map +1 -1
  576. package/dist/utils/tenant-context.js +12 -12
  577. package/dist/utils/tenant-context.js.map +1 -1
  578. package/dist/utils/uri-builder.d.ts +12 -12
  579. package/dist/utils/uri-builder.js +14 -14
  580. package/dist/utils/uri-builder.js.map +1 -1
  581. package/package.json +21 -16
  582. package/dist/config/env-alias.d.ts +0 -56
  583. package/dist/config/env-alias.d.ts.map +0 -1
  584. package/dist/config/env-alias.js +0 -112
  585. package/dist/config/env-alias.js.map +0 -1
  586. package/dist/mcp-apps/kairos-logo-embedded.d.ts +0 -3
  587. package/dist/mcp-apps/kairos-logo-embedded.d.ts.map +0 -1
  588. package/dist/mcp-apps/kairos-logo-embedded.js +0 -3
  589. package/dist/mcp-apps/kairos-logo-embedded.js.map +0 -1
  590. package/dist/mcp-apps/kairos-server-ui-capability.d.ts.map +0 -1
  591. package/dist/mcp-apps/kairos-server-ui-capability.js.map +0 -1
  592. package/dist/mcp-apps/kairos-ui-constants.d.ts.map +0 -1
  593. package/dist/mcp-apps/kairos-ui-constants.js +0 -100
  594. package/dist/mcp-apps/kairos-ui-constants.js.map +0 -1
  595. package/dist/squadrules-mcp-4.8.6.tgz +0 -0
  596. package/dist/tools/kairos-challenge-display.d.ts.map +0 -1
  597. package/dist/tools/kairos-challenge-display.js.map +0 -1
  598. package/dist/tools/kairos-genesis-proof-hash.d.ts.map +0 -1
  599. package/dist/tools/kairos-genesis-proof-hash.js.map +0 -1
  600. package/dist/tools/kairos-uri.d.ts.map +0 -1
  601. package/dist/tools/kairos-uri.js.map +0 -1
  602. package/dist/ui/assets/HomePage-DIKsxKaH.js +0 -1
  603. package/dist/ui/assets/KairosPage-n5qbiyxb.js +0 -1
  604. package/dist/ui/assets/ProtocolEditPage-hc87ZsgM.js +0 -5
  605. package/dist/ui/assets/index-D7zMHqYN.js +0 -8
  606. package/dist/ui/assets/useRunSession-062hqhcN.js +0 -1
  607. package/dist/utils/kairos-local-artifact-dirs.d.ts +0 -13
  608. package/dist/utils/kairos-local-artifact-dirs.d.ts.map +0 -1
  609. package/dist/utils/kairos-local-artifact-dirs.js +0 -35
  610. package/dist/utils/kairos-local-artifact-dirs.js.map +0 -1
  611. package/dist/utils/kairos-user-dirs.d.ts +0 -62
  612. package/dist/utils/kairos-user-dirs.d.ts.map +0 -1
  613. package/dist/utils/kairos-user-dirs.js +0 -165
  614. package/dist/utils/kairos-user-dirs.js.map +0 -1
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Lance write-path primitives.
3
+ *
4
+ * The Qdrant store/adapter handlers reach the index through three client calls —
5
+ * `scroll` (duplicate + slug collision), `delete` (force-update replace) and the
6
+ * title-similarity search — plus a handful of artifact anchor lookups. This module
7
+ * reimplements exactly those over the Lance engine and the JS-cosine searcher, so
8
+ * the higher-level writer can reuse the backend-neutral parsing/build helpers
9
+ * (`resolveProtocolSlugCandidate`, `deriveDomainTaskType`, `buildHeaderMemoryAdapter`,
10
+ * embeddings) unchanged and produce a store that reads/searches with the same
11
+ * contract as Qdrant. Payload semantics (protected-space guard, duplicate/slug error
12
+ * codes, similarity threshold, artifact anchor resolution) are mirrored verbatim.
13
+ */
14
+ import { SIMILAR_MEMORY_THRESHOLD } from '../../../config.js';
15
+ import { getSpaceContext, getSearchSpaceIds } from '../../../utils/tenant-context.js';
16
+ import { buildSpaceFilter } from '../../../utils/space-filter.js';
17
+ import { isProtectedWriteSpace, protectedWriteErrorMessage } from '../../../utils/protected-space-write-guard.js';
18
+ import { SquadrulesError } from '../../../types/index.js';
19
+ import { buildAdapterUri, buildLayerUri } from '../../../tools/squadrules-uri.js';
20
+ import { MAX_AUTO_SUFFIX_ATTEMPTS, nextAutoSlugCandidate } from '../../../utils/protocol-slug.js';
21
+ import { ALLOWED_ARTIFACT_MIMES } from '../../../tools/artifact-mime.js';
22
+ import { deriveDomainTaskType, buildAdapterSimilaritySearchQuery } from '../../memory/store-adapter-helpers.js';
23
+ function payloadOf(row) {
24
+ return JSON.parse(row.payload);
25
+ }
26
+ function adapterIdOf(payload) {
27
+ const id = payload?.adapter?.id;
28
+ return typeof id === 'string' && id.length > 0 ? id : undefined;
29
+ }
30
+ export class LanceWriteRepo {
31
+ engine;
32
+ search;
33
+ constructor(engine, search) {
34
+ this.engine = engine;
35
+ this.search = search;
36
+ }
37
+ /** Points already stored under this adapter id (duplicate check). */
38
+ async checkDuplicateAdapter(adapterUuid) {
39
+ const filter = buildSpaceFilter(getSpaceContext().allowedSpaceIds, {
40
+ must: [{ key: 'adapter.id', match: { value: adapterUuid } }]
41
+ });
42
+ const rows = await this.engine.scroll(filter, 256);
43
+ return { points: rows.map((r) => ({ id: r.id, payload: payloadOf(r) })) };
44
+ }
45
+ /**
46
+ * Replace-or-reject an existing adapter. Mirrors `handleDuplicateAdapter`: throw
47
+ * DUPLICATE_ADAPTER unless force_update, block writes into protected spaces, then
48
+ * delete the old adapter rows so the mint re-creates a clean chain.
49
+ */
50
+ async handleDuplicateAdapter(adapterUuid, forceUpdate) {
51
+ const dup = await this.checkDuplicateAdapter(adapterUuid);
52
+ if (dup.points.length === 0)
53
+ return;
54
+ if (!forceUpdate) {
55
+ const items = dup.points.map((p) => ({ label: p.payload?.label || 'Memory', uri: buildLayerUri(p.id) }));
56
+ throw new SquadrulesError('Duplicate adapter', 'DUPLICATE_ADAPTER', 409, { adapter_id: adapterUuid, items });
57
+ }
58
+ const protectedEntries = dup.points.filter((p) => isProtectedWriteSpace(typeof p.payload?.space_id === 'string' ? p.payload.space_id : ''));
59
+ if (protectedEntries.length > 0) {
60
+ const items = protectedEntries.map((p) => ({
61
+ label: p.payload?.label || 'Memory',
62
+ uri: buildLayerUri(p.id),
63
+ space_id: typeof p.payload?.space_id === 'string' ? p.payload.space_id : undefined
64
+ }));
65
+ const firstSpaceId = typeof protectedEntries[0]?.payload?.space_id === 'string' ? protectedEntries[0].payload.space_id : undefined;
66
+ throw new SquadrulesError(protectedWriteErrorMessage(firstSpaceId), 'PROTECTED_SPACE_WRITE_FORBIDDEN', 403, { adapter_id: adapterUuid, items });
67
+ }
68
+ const filter = buildSpaceFilter(getSpaceContext().allowedSpaceIds, {
69
+ must: [{ key: 'adapter.id', match: { value: adapterUuid } }]
70
+ });
71
+ await this.engine.deleteByFilter(filter);
72
+ }
73
+ /** Slug collision scan within allowed spaces. */
74
+ async scrollPointsWithSlug(slug) {
75
+ const filter = buildSpaceFilter(getSpaceContext().allowedSpaceIds, { must: [{ key: 'slug', match: { value: slug } }] });
76
+ const rows = await this.engine.scroll(filter, 24);
77
+ return rows.map((r) => ({ id: r.id, payload: payloadOf(r) }));
78
+ }
79
+ /** Allocate a non-colliding slug (author exact-collision rejects; auto appends -2, -3…). */
80
+ async allocateAdapterSlugForMint(input, newAdapterUuid) {
81
+ const { slug: baseSlug, authorSupplied } = input;
82
+ const usedByOtherAdapter = async (candidate) => {
83
+ const hits = await this.scrollPointsWithSlug(candidate);
84
+ for (const h of hits) {
85
+ const adapterId = adapterIdOf(h.payload);
86
+ if (adapterId && adapterId !== newAdapterUuid) {
87
+ return { otherAdapterId: adapterId, sample_uri: buildLayerUri(h.id) };
88
+ }
89
+ }
90
+ return null;
91
+ };
92
+ if (authorSupplied) {
93
+ const clash = await usedByOtherAdapter(baseSlug);
94
+ if (clash) {
95
+ throw new SquadrulesError(`Slug "${baseSlug}" is already used by another protocol in this space.`, 'DUPLICATE_SLUG', 409, { slug: baseSlug, adapter_id: clash.otherAdapterId, sample_uri: clash.sample_uri });
96
+ }
97
+ return baseSlug;
98
+ }
99
+ for (let attempt = 1; attempt <= MAX_AUTO_SUFFIX_ATTEMPTS; attempt++) {
100
+ const candidate = nextAutoSlugCandidate(baseSlug, attempt);
101
+ const clash = await usedByOtherAdapter(candidate);
102
+ if (!clash)
103
+ return candidate;
104
+ }
105
+ throw new SquadrulesError(`Could not allocate a unique slug from "${baseSlug}" after ${MAX_AUTO_SUFFIX_ATTEMPTS} attempts.`, 'SLUG_ALLOCATION_EXHAUSTED', 409, { base_slug: baseSlug });
106
+ }
107
+ /** Title-similarity guard before mint (throws SIMILAR_MEMORY_FOUND above threshold). */
108
+ async checkSimilarAdapterByTitle(adapterTitle, forceUpdate) {
109
+ if (forceUpdate)
110
+ return;
111
+ const label = buildAdapterSimilaritySearchQuery(adapterTitle);
112
+ const { memories, scores } = await this.search.searchAdapterTitlesBySimilarity(label, 10);
113
+ if (memories.length === 0 || scores.length === 0)
114
+ return;
115
+ let bestMatch = memories[0];
116
+ let bestScore = scores[0] ?? 0;
117
+ for (let i = 1; i < memories.length; i++) {
118
+ const score = scores[i] ?? 0;
119
+ if (score > bestScore) {
120
+ bestScore = score;
121
+ bestMatch = memories[i];
122
+ }
123
+ }
124
+ if (bestScore < SIMILAR_MEMORY_THRESHOLD)
125
+ return;
126
+ const adapterUri = bestMatch.adapter?.id ? buildAdapterUri(bestMatch.adapter.id) : buildLayerUri(bestMatch.memory_uuid ?? '');
127
+ const existingMemory = {
128
+ uri: buildLayerUri(bestMatch.memory_uuid ?? ''),
129
+ memory_uuid: bestMatch.memory_uuid,
130
+ label: bestMatch.label,
131
+ adapter_name: bestMatch.adapter?.name ?? null,
132
+ score: bestScore,
133
+ layer_count: bestMatch.adapter?.layer_count ?? 1
134
+ };
135
+ const next_action = `call export with ${adapterUri} and format "markdown" for flat Markdown to inspect the similar adapter. If your markdown uses the same adapter id, call train with force_update: true to replace that adapter; otherwise pick a distinct adapter title (H1)`;
136
+ const content_preview = [bestMatch.label, bestMatch.text].filter(Boolean).join('\n').slice(0, 300);
137
+ const matchedAdapterName = bestMatch.adapter?.name ?? bestMatch.label;
138
+ throw new SquadrulesError('Similar memory found by title', 'SIMILAR_MEMORY_FOUND', 409, {
139
+ existing_memory: existingMemory,
140
+ similarity_score: bestScore,
141
+ message: `Adapter title similar to existing "${matchedAdapterName}" (${Math.round(bestScore * 100)}% match). Verify or use force_update: true with the same adapter id to replace.`,
142
+ must_obey: true,
143
+ next_action,
144
+ content_preview
145
+ });
146
+ }
147
+ /** Resolve an adapter head point id by slug (lowest id wins). */
148
+ async resolveAdapterAnchorPointId(slug) {
149
+ const normalized = (slug || '').trim().toLowerCase();
150
+ if (!normalized)
151
+ return null;
152
+ const filter = buildSpaceFilter(getSearchSpaceIds(), {
153
+ must: [{ key: 'slug', match: { value: normalized } }, { key: 'adapter.layer_index', match: { value: 1 } }]
154
+ });
155
+ const rows = await this.engine.scroll(filter);
156
+ if (rows.length === 0)
157
+ return null;
158
+ const ids = rows.map((r) => r.id).sort((a, b) => a.localeCompare(b));
159
+ return ids[0] ?? null;
160
+ }
161
+ async resolveAdapterNameByAdapterId(adapterId) {
162
+ const filter = buildSpaceFilter(getSearchSpaceIds(), {
163
+ must: [{ key: 'adapter.id', match: { value: adapterId } }, { key: 'adapter.layer_index', match: { value: 1 } }]
164
+ });
165
+ const rows = await this.engine.scroll(filter, 1);
166
+ const payload = rows[0] ? payloadOf(rows[0]) : {};
167
+ const name = payload?.adapter?.name;
168
+ if (typeof name === 'string' && name.trim().length > 0)
169
+ return name.trim();
170
+ if (typeof payload?.label === 'string' && payload.label.trim().length > 0)
171
+ return payload.label.trim();
172
+ return null;
173
+ }
174
+ /** Normalize a slug / layer-id / chain-id adapter reference to its chain id + name. */
175
+ async resolveChainAdapterIdForArtifacts(parsed) {
176
+ if (parsed.idKind === 'slug') {
177
+ const headPointId = await this.resolveAdapterAnchorPointId(parsed.id);
178
+ if (!headPointId)
179
+ throw new Error(`Adapter slug "${parsed.id}" was not found for artifact attachment`);
180
+ const row = await this.engine.retrieveRaw(headPointId);
181
+ const payload = row ? payloadOf(row) : {};
182
+ const adapterId = typeof payload?.adapter?.id === 'string' && payload.adapter.id.length > 0 ? payload.adapter.id : headPointId;
183
+ const adapterName = typeof payload?.adapter?.name === 'string' && payload.adapter.name.trim().length > 0
184
+ ? payload.adapter.name.trim()
185
+ : await this.resolveAdapterNameByAdapterId(adapterId);
186
+ return { adapterId, adapterName };
187
+ }
188
+ const row = await this.engine.retrieveRaw(parsed.id);
189
+ const payload = row ? payloadOf(row) : {};
190
+ const nameFromRow = typeof payload?.adapter?.name === 'string' && payload.adapter.name.trim().length > 0 ? payload.adapter.name.trim() : null;
191
+ const idFromRow = typeof payload?.adapter?.id === 'string' && payload.adapter.id.length > 0 ? payload.adapter.id : null;
192
+ if (idFromRow) {
193
+ const adapterName = nameFromRow ?? (await this.resolveAdapterNameByAdapterId(idFromRow));
194
+ return { adapterId: idFromRow, adapterName };
195
+ }
196
+ const adapterName = nameFromRow ?? (await this.resolveAdapterNameByAdapterId(parsed.id));
197
+ return { adapterId: parsed.id, adapterName };
198
+ }
199
+ /** Existing artifact points for an adapter+space (for duplicate detection). */
200
+ async listExistingArtifactPoints(spaceId, adapterId) {
201
+ const filter = buildSpaceFilter(getSearchSpaceIds(), {
202
+ must: [
203
+ { key: 'space_id', match: { value: spaceId } },
204
+ { key: 'adapter.id', match: { value: adapterId } },
205
+ { key: 'content_type', match: { any: [...ALLOWED_ARTIFACT_MIMES] } }
206
+ ]
207
+ });
208
+ const rows = await this.engine.scroll(filter);
209
+ return rows.map((r) => ({ id: r.id, payload: payloadOf(r) }));
210
+ }
211
+ /** Re-export domain/task/type for the writer's per-memory metric loop. */
212
+ deriveDomainTaskType(label, text, tags) {
213
+ return deriveDomainTaskType(label, text, tags);
214
+ }
215
+ }
216
+ //# sourceMappingURL=lance-records-write-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lance-records-write-helpers.js","sourceRoot":"","sources":["../../../../src/services/vector-store/lancedb/lance-records-write-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { Memory } from '../../../types/memory.js';
2
+ import type { StoreAdapterOptions, StoreArtifactOptions } from '../../memory/store-adapter.js';
3
+ import type { LanceRecordEngine } from './lance-records-engine.js';
4
+ import type { LanceRecordSearch } from './lance-records-search.js';
5
+ export declare class LanceRecordWriter {
6
+ private readonly engine;
7
+ private readonly repo;
8
+ private readonly codeBlockProcessor;
9
+ private readonly artifactWriter;
10
+ constructor(engine: LanceRecordEngine, search: LanceRecordSearch);
11
+ storeArtifact(content: string, options: StoreArtifactOptions): Promise<Memory[]>;
12
+ storeAdapter(docs: string[], llmModelId: string, options?: StoreAdapterOptions): Promise<Memory[]>;
13
+ private resolveAdapterTitle;
14
+ private embedActivation;
15
+ private vectorNames;
16
+ private storeHeaderBasedAdapter;
17
+ private storeDefaultAdapter;
18
+ private enginePut;
19
+ private recordContributions;
20
+ }
21
+ //# sourceMappingURL=lance-records-writes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lance-records-writes.d.ts","sourceRoot":"","sources":["../../../../src/services/vector-store/lancedb/lance-records-writes.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAkBvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC/F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAOnE,qBAAa,iBAAiB;IAM1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA4B;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;gBAGlC,MAAM,EAAE,iBAAiB,EAC1C,MAAM,EAAE,iBAAiB;IAM3B,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAI1E,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA0D5G,OAAO,CAAC,mBAAmB;YAOb,eAAe;IA0B7B,OAAO,CAAC,WAAW;YAKL,uBAAuB;YAwEvB,mBAAmB;YAqGnB,SAAS;YAMT,mBAAmB;CAclC"}
@@ -0,0 +1,294 @@
1
+ /**
2
+ * Lance adapter write path (train/store).
3
+ *
4
+ * Reuses the backend-neutral parsing and build helpers the Qdrant handlers use —
5
+ * `normalizeMarkdownBlob`, `parseFrontmatter`, `buildHeaderMemoryAdapter`,
6
+ * `generateLabel`/`generateTags`/`parseMarkdownStructure`, `deriveDomainTaskType`,
7
+ * `modelStats`, `buildActivationSearchFieldsForMemory` and the batch embedding
8
+ * call with zero-vector fallback — and only swaps the index primitives (dedup,
9
+ * slug mint, similarity guard, upsert) for the Lance `LanceWriteRepo`. The point
10
+ * payload shape is reproduced verbatim from the header/default handlers so a
11
+ * Lance-trained adapter reads, searches and reward-propagates exactly like a
12
+ * Qdrant one. The header (H1/H2) vs default branch mirrors `storeAdapter`.
13
+ */
14
+ import crypto from 'node:crypto';
15
+ import { logger } from '../../../utils/structured-logger.js';
16
+ import { CodeBlockProcessor } from '../../code-block-processor.js';
17
+ import { embeddingService } from '../../embedding/service.js';
18
+ import { getEmbeddingDimension } from '../../embedding/config.js';
19
+ import { bm25Tokenizer } from '../../embedding/bm25-tokenizer.js';
20
+ import { IDGenerator } from '../../id-generator.js';
21
+ import { modelStats } from '../../stats/model-stats.js';
22
+ import { redisCacheService } from '../../redis-cache.js';
23
+ import { memoryStore, memoryAdapterSize } from '../../metrics/memory-metrics.js';
24
+ import { getTenantId, getSpaceContext } from '../../../utils/tenant-context.js';
25
+ import { normalizeMarkdownBlob, generateLabel, generateTags, parseMarkdownStructure } from '../../../utils/memory-store-utils.js';
26
+ import { parseFrontmatter } from '../../../utils/frontmatter.js';
27
+ import { resolveProtocolSlugCandidate } from '../../../utils/protocol-slug.js';
28
+ import { SquadrulesError } from '../../../types/index.js';
29
+ import { getActivationPatternVectorName, getAdapterTitleVectorName, getPrimaryVectorName } from '../../../utils/qdrant-vector-types.js';
30
+ import { buildHeaderMemoryAdapter } from '../../memory/adapter-builder.js';
31
+ import { buildActivationSearchFieldsForMemory } from '../../memory/activation-search-fields.js';
32
+ import { LanceWriteRepo } from './lance-records-write-helpers.js';
33
+ import { LanceArtifactWriter } from './lance-records-write-artifact.js';
34
+ export class LanceRecordWriter {
35
+ engine;
36
+ repo;
37
+ codeBlockProcessor = new CodeBlockProcessor();
38
+ artifactWriter;
39
+ constructor(engine, search) {
40
+ this.engine = engine;
41
+ this.repo = new LanceWriteRepo(engine, search);
42
+ this.artifactWriter = new LanceArtifactWriter(engine, this.repo);
43
+ }
44
+ storeArtifact(content, options) {
45
+ return this.artifactWriter.storeArtifact(content, options);
46
+ }
47
+ async storeAdapter(docs, llmModelId, options = {}) {
48
+ if (!Array.isArray(docs) || docs.length === 0)
49
+ return [];
50
+ const normalizedDocs = docs.map(normalizeMarkdownBlob);
51
+ const now = new Date();
52
+ let docsForDefault = normalizedDocs;
53
+ let effectiveProtocolVersion = options.protocolVersion;
54
+ let parsedSingleDoc;
55
+ if (normalizedDocs.length === 1) {
56
+ const markdownDoc = normalizedDocs[0];
57
+ const parsed = parseFrontmatter(markdownDoc);
58
+ parsedSingleDoc = parsed;
59
+ const docForAdapter = parsed.body.length > 0 ? parsed.body : markdownDoc;
60
+ effectiveProtocolVersion = options.protocolVersion ?? parsed.version;
61
+ const headerMemories = buildHeaderMemoryAdapter(docForAdapter, llmModelId, now, this.codeBlockProcessor);
62
+ if (headerMemories.length > 0) {
63
+ if (effectiveProtocolVersion) {
64
+ for (const m of headerMemories)
65
+ if (m.adapter)
66
+ m.adapter.protocol_version = effectiveProtocolVersion;
67
+ }
68
+ if (parsedSingleDoc?.chainRoot) {
69
+ for (const m of headerMemories)
70
+ if (m.adapter)
71
+ m.adapter.chain_root = parsedSingleDoc.chainRoot;
72
+ }
73
+ const adapterTitle = this.resolveAdapterTitle(headerMemories[0]);
74
+ const slugCand = resolveProtocolSlugCandidate(parsedSingleDoc?.slugRaw !== undefined ? { slugRaw: parsedSingleDoc.slugRaw } : {}, adapterTitle);
75
+ if ('error' in slugCand)
76
+ throw new SquadrulesError(slugCand.message, 'INVALID_SLUG', 400, { message: slugCand.message });
77
+ const titleForSimilarity = (parsedSingleDoc?.title?.trim() || adapterTitle).slice(0, 120);
78
+ await this.repo.checkSimilarAdapterByTitle(titleForSimilarity, options.forceUpdate || false);
79
+ return this.storeHeaderBasedAdapter(headerMemories, llmModelId, options.forceUpdate || false, { slug: slugCand.slug, authorSupplied: slugCand.authorSupplied }, !!options.forkNewAdapter);
80
+ }
81
+ docsForDefault = [docForAdapter];
82
+ }
83
+ const doc0 = docsForDefault[0];
84
+ const struct0 = parseMarkdownStructure(doc0);
85
+ const titleForSimilarity = (parsedSingleDoc?.title?.trim() || struct0.h1 || generateLabel(doc0)).slice(0, 120);
86
+ await this.repo.checkSimilarAdapterByTitle(titleForSimilarity, options.forceUpdate || false);
87
+ return this.storeDefaultAdapter(docsForDefault, llmModelId, now, options.forceUpdate || false, effectiveProtocolVersion, parsedSingleDoc, !!options.forkNewAdapter);
88
+ }
89
+ resolveAdapterTitle(first) {
90
+ const firstLabel = first?.label || 'Knowledge Adapter';
91
+ const explicit = first?.adapter?.name;
92
+ if (explicit && explicit.trim().length > 0)
93
+ return explicit.trim();
94
+ return firstLabel.includes(':') ? firstLabel.split(':')[0].trim() : firstLabel.trim();
95
+ }
96
+ async embedActivation(memories) {
97
+ const vectorSize = getEmbeddingDimension();
98
+ const activationFields = memories.map((m) => buildActivationSearchFieldsForMemory(m));
99
+ const zeros = () => memories.map(() => Array(vectorSize).fill(0));
100
+ try {
101
+ const batch = await embeddingService.generateBatchEmbeddings(activationFields.flatMap((f) => [f.primaryDenseText, f.titleDenseText, f.activationPatternDenseText]));
102
+ const embeddings = batch.embeddings;
103
+ const wrongCount = embeddings.length !== memories.length * 3;
104
+ const wrongDim = embeddings.some((v) => !Array.isArray(v) || v.length !== vectorSize);
105
+ if (wrongCount || wrongDim) {
106
+ logger.warn(`[LanceStore] Embedding shape mismatch (count=${embeddings.length}/${memories.length * 3}); zero vectors`);
107
+ return { primary: zeros(), title: zeros(), activation: zeros() };
108
+ }
109
+ return {
110
+ primary: memories.map((_, i) => embeddings[i * 3]),
111
+ title: memories.map((_, i) => embeddings[i * 3 + 1]),
112
+ activation: memories.map((_, i) => embeddings[i * 3 + 2])
113
+ };
114
+ }
115
+ catch (err) {
116
+ logger.error('[LanceStore] Embedding generation failed; falling back to zero vectors', err);
117
+ return { primary: zeros(), title: zeros(), activation: zeros() };
118
+ }
119
+ }
120
+ vectorNames() {
121
+ const size = getEmbeddingDimension();
122
+ return { primary: getPrimaryVectorName(size), title: getAdapterTitleVectorName(size), activation: getActivationPatternVectorName(size) };
123
+ }
124
+ async storeHeaderBasedAdapter(memories, llmModelId, forceUpdate, slugInput, forkNewAdapter) {
125
+ const adapterTitle = this.resolveAdapterTitle(memories[0]);
126
+ const adapterUuid = forkNewAdapter ? crypto.randomUUID() : IDGenerator.generateAdapterUUIDv5(adapterTitle);
127
+ await this.repo.handleDuplicateAdapter(adapterUuid, forceUpdate);
128
+ const protocolSlug = await this.repo.allocateAdapterSlugForMint(slugInput, adapterUuid);
129
+ const names = this.vectorNames();
130
+ const vectors = await this.embedActivation(memories);
131
+ const activationFields = memories.map((m) => buildActivationSearchFieldsForMemory(m));
132
+ const context = getSpaceContext();
133
+ const spaceId = context.defaultWriteSpaceId;
134
+ const actorId = context.userId || 'system';
135
+ const layerCount = memories.length;
136
+ const points = memories.map((memory, i) => {
137
+ const dtt = this.repo.deriveDomainTaskType(memory.label, memory.text, memory.tags || []);
138
+ const qualityMetadata = modelStats.calculateStepQualityMetadata(memory.label, 'general', dtt.task, dtt.type, memory.tags);
139
+ const fields = activationFields[i];
140
+ const sparse = bm25Tokenizer.tokenize(fields.sparseText);
141
+ const adapter = memory.adapter ?? { id: adapterUuid, name: adapterTitle, layer_index: i + 1, layer_count: layerCount };
142
+ return {
143
+ id: memory.memory_uuid,
144
+ vector: {
145
+ [names.primary]: vectors.primary[i],
146
+ [names.title]: vectors.title[i],
147
+ [names.activation]: vectors.activation[i],
148
+ bm25: { indices: sparse.indices, values: sparse.values }
149
+ },
150
+ payload: {
151
+ space_id: spaceId,
152
+ label: memory.label,
153
+ tags: memory.tags,
154
+ text: memory.text,
155
+ llm_model_id: memory.llm_model_id,
156
+ created_at: memory.created_at,
157
+ created_by: actorId,
158
+ modified_at: memory.created_at,
159
+ modified_by: actorId,
160
+ adapter_name_text: fields.adapterNameText,
161
+ label_text: fields.labelText,
162
+ activation_patterns_text: fields.activationPatternsText,
163
+ tags_text: fields.tagsText,
164
+ inference_contract: memory.inference_contract,
165
+ task: dtt.task,
166
+ type: dtt.type,
167
+ quality_metadata: { step_quality_score: qualityMetadata.step_quality_score, step_quality: qualityMetadata.step_quality },
168
+ adapter: {
169
+ id: adapterUuid,
170
+ name: adapterTitle,
171
+ layer_index: i + 1,
172
+ layer_count: layerCount,
173
+ ...(adapter.protocol_version && { protocol_version: adapter.protocol_version }),
174
+ ...(adapter.activation_patterns && { activation_patterns: adapter.activation_patterns }),
175
+ ...(typeof adapter.reward_signal === 'string' && { reward_signal: adapter.reward_signal }),
176
+ ...(typeof adapter.chain_root === 'string' && adapter.chain_root.length > 0 && { chain_root: adapter.chain_root })
177
+ },
178
+ slug: protocolSlug
179
+ }
180
+ };
181
+ });
182
+ await this.enginePut(points);
183
+ await this.recordContributions(memories);
184
+ return memories;
185
+ }
186
+ async storeDefaultAdapter(normalizedDocs, llmModelId, now, forceUpdate, protocolVersion, parsedFrontmatter, forkNewAdapter) {
187
+ const uuids = normalizedDocs.map(() => crypto.randomUUID());
188
+ const processedDocs = normalizedDocs.map((text) => {
189
+ const codeResult = this.codeBlockProcessor.processMarkdown(text);
190
+ const enhanced = this.codeBlockProcessor.enhanceContentForSearch(text, codeResult);
191
+ return { original: text, enhanced, codeResult };
192
+ });
193
+ if (processedDocs.length === 0)
194
+ return [];
195
+ const firstGeneratedLabel = generateLabel(processedDocs[0].original);
196
+ const adapterUuid = forkNewAdapter ? crypto.randomUUID() : IDGenerator.generateAdapterUUIDv5(firstGeneratedLabel);
197
+ await this.repo.handleDuplicateAdapter(adapterUuid, forceUpdate);
198
+ const slugCand = resolveProtocolSlugCandidate(parsedFrontmatter?.slugRaw !== undefined ? { slugRaw: parsedFrontmatter.slugRaw } : {}, firstGeneratedLabel);
199
+ if ('error' in slugCand)
200
+ throw new SquadrulesError(slugCand.message, 'INVALID_SLUG', 400, { message: slugCand.message });
201
+ const protocolSlug = await this.repo.allocateAdapterSlugForMint({ slug: slugCand.slug, authorSupplied: slugCand.authorSupplied }, adapterUuid);
202
+ const memories = processedDocs.map((processed, index) => {
203
+ const allTags = [...generateTags(processed.original), ...processed.codeResult.allIdentifiers.slice(0, 5)];
204
+ const adapter = { id: adapterUuid, name: firstGeneratedLabel, layer_index: index + 1, layer_count: normalizedDocs.length };
205
+ if (protocolVersion)
206
+ adapter.protocol_version = protocolVersion;
207
+ return {
208
+ memory_uuid: uuids[index],
209
+ label: generateLabel(processed.original),
210
+ tags: allTags,
211
+ text: processed.enhanced,
212
+ llm_model_id: llmModelId,
213
+ created_at: now.toISOString(),
214
+ adapter
215
+ };
216
+ });
217
+ const names = this.vectorNames();
218
+ const vectors = await this.embedActivation(memories);
219
+ const activationFields = memories.map((m) => buildActivationSearchFieldsForMemory(m));
220
+ const context = getSpaceContext();
221
+ const spaceId = context.defaultWriteSpaceId;
222
+ const actorId = context.userId || 'system';
223
+ const points = memories.map((memory, index) => {
224
+ const { task, type } = this.repo.deriveDomainTaskType(memory.label, memory.text, memory.tags || []);
225
+ const qualityMetadata = modelStats.calculateStepQualityMetadata(memory.label, 'general', task, type, memory.tags);
226
+ const fields = activationFields[index];
227
+ const sparse = bm25Tokenizer.tokenize(fields.sparseText);
228
+ const adapter = memory.adapter ?? { id: adapterUuid, name: firstGeneratedLabel, layer_index: index + 1, layer_count: normalizedDocs.length };
229
+ return {
230
+ id: memory.memory_uuid,
231
+ vector: {
232
+ [names.primary]: vectors.primary[index],
233
+ [names.title]: vectors.title[index],
234
+ [names.activation]: vectors.activation[index],
235
+ bm25: { indices: sparse.indices, values: sparse.values }
236
+ },
237
+ payload: {
238
+ space_id: spaceId,
239
+ label: memory.label,
240
+ tags: memory.tags,
241
+ text: memory.text,
242
+ llm_model_id: memory.llm_model_id,
243
+ created_at: memory.created_at,
244
+ created_by: actorId,
245
+ modified_at: memory.created_at,
246
+ modified_by: actorId,
247
+ slug: protocolSlug,
248
+ adapter_name_text: fields.adapterNameText,
249
+ label_text: fields.labelText,
250
+ activation_patterns_text: fields.activationPatternsText,
251
+ tags_text: fields.tagsText,
252
+ inference_contract: memory.inference_contract,
253
+ task,
254
+ type,
255
+ quality_metadata: { step_quality_score: qualityMetadata.step_quality_score, step_quality: qualityMetadata.step_quality },
256
+ adapter: {
257
+ id: adapter.id,
258
+ name: adapter.name,
259
+ layer_index: adapter.layer_index,
260
+ layer_count: adapter.layer_count,
261
+ ...(adapter.protocol_version && { protocol_version: adapter.protocol_version }),
262
+ ...(adapter.activation_patterns && { activation_patterns: adapter.activation_patterns }),
263
+ ...(typeof adapter.reward_signal === 'string' && { reward_signal: adapter.reward_signal })
264
+ }
265
+ }
266
+ };
267
+ });
268
+ await this.enginePut(points);
269
+ await this.recordContributions(memories);
270
+ return memories;
271
+ }
272
+ async enginePut(points) {
273
+ const count = await this.engine.putPoints(points);
274
+ logger.tool('lance-store', 'upsert', `points=${count}`);
275
+ await redisCacheService.invalidateAfterUpdate();
276
+ }
277
+ async recordContributions(memories) {
278
+ const tenantId = getTenantId();
279
+ for (const memory of memories) {
280
+ try {
281
+ const { task, type } = this.repo.deriveDomainTaskType(memory.label, memory.text, memory.tags || []);
282
+ const score = modelStats.calculateQualityScore(memory.label, task, type, memory.tags);
283
+ await modelStats.processContribution(memory.llm_model_id, score, memory.label);
284
+ memoryStore.inc({ quality: score.quality, tenant_id: tenantId });
285
+ if (memory.adapter)
286
+ memoryAdapterSize.observe({ tenant_id: tenantId }, memory.adapter.layer_count);
287
+ }
288
+ catch {
289
+ /* metrics are best-effort */
290
+ }
291
+ }
292
+ }
293
+ }
294
+ //# sourceMappingURL=lance-records-writes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lance-records-writes.js","sourceRoot":"","sources":["../../../../src/services/vector-store/lancedb/lance-records-writes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ type LanceDbModule = typeof import('@lancedb/lancedb');
2
+ export type LanceConnection = Awaited<ReturnType<LanceDbModule['connect']>>;
3
+ export type LanceTable = Awaited<ReturnType<LanceConnection['openTable']>>;
4
+ /** Resolve the per-user LanceDB directory (derived from the shared config dir). */
5
+ export declare function resolveLanceDbDir(): string;
6
+ /**
7
+ * Open a strong-consistency connection to the embedded store. Reads see other
8
+ * processes' commits; the directory is created on demand by the SDK.
9
+ */
10
+ export declare function openLanceConnection(databaseDir?: string): Promise<LanceConnection>;
11
+ export {};
12
+ //# sourceMappingURL=lancedb-connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lancedb-connection.d.ts","sourceRoot":"","sources":["../../../src/services/vector-store/lancedb-connection.ts"],"names":[],"mappings":"AAgBA,KAAK,aAAa,GAAG,cAAc,kBAAkB,CAAC,CAAC;AACvD,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5E,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAE3E,mFAAmF;AACnF,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,GAAE,MAA4B,GAAG,OAAO,CAAC,eAAe,CAAC,CAG7G"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Strong-consistency connection for the embedded LanceDB store.
3
+ *
4
+ * Each server process opens the shared per-user directory directly (no daemon,
5
+ * no lock). The one property a Qdrant server used to give implicitly - a reader
6
+ * seeing another process's latest commits - must be requested explicitly here:
7
+ * `readConsistencyInterval: 0` makes every read check the latest committed
8
+ * version. Writes are always consistent under MVCC.
9
+ *
10
+ * The SDK is imported lazily inside these functions so that merely loading this
11
+ * module (for example on the Qdrant path, where it is never called) does not
12
+ * pull in native bindings at startup.
13
+ */
14
+ import { join } from 'path';
15
+ import { getSquadrulesConfigDir } from '../../utils/squadrules-user-dirs.js';
16
+ /** Resolve the per-user LanceDB directory (derived from the shared config dir). */
17
+ export function resolveLanceDbDir() {
18
+ return join(getSquadrulesConfigDir(), 'lancedb');
19
+ }
20
+ /**
21
+ * Open a strong-consistency connection to the embedded store. Reads see other
22
+ * processes' commits; the directory is created on demand by the SDK.
23
+ */
24
+ export async function openLanceConnection(databaseDir = resolveLanceDbDir()) {
25
+ const lancedb = await import('@lancedb/lancedb');
26
+ return lancedb.connect(databaseDir, { readConsistencyInterval: 0 });
27
+ }
28
+ //# sourceMappingURL=lancedb-connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lancedb-connection.js","sourceRoot":"","sources":["../../../src/services/vector-store/lancedb-connection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAM7E,mFAAmF;AACnF,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,sBAAsB,EAAE,EAAE,SAAS,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,cAAsB,iBAAiB,EAAE;IACjF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACjD,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,uBAAuB,EAAE,CAAC,EAAE,CAAC,CAAC;AACtE,CAAC"}