@psiclawops/hypermem 0.9.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (926) hide show
  1. package/ARCHITECTURE.md +2 -2
  2. package/CHANGELOG.md +10 -1
  3. package/docs/ROADMAP.md +12 -3
  4. package/memory-plugin/package.json +3 -3
  5. package/package.json +2 -1
  6. package/plugin/package.json +4 -4
  7. package/dist/adaptive-lifecycle.d.ts +0 -81
  8. package/dist/adaptive-lifecycle.d.ts.map +0 -1
  9. package/dist/adaptive-lifecycle.js +0 -190
  10. package/dist/background-indexer.d.ts +0 -161
  11. package/dist/background-indexer.d.ts.map +0 -1
  12. package/dist/background-indexer.js +0 -1263
  13. package/dist/budget-policy.d.ts +0 -22
  14. package/dist/budget-policy.d.ts.map +0 -1
  15. package/dist/budget-policy.js +0 -32
  16. package/dist/cache.d.ts +0 -148
  17. package/dist/cache.d.ts.map +0 -1
  18. package/dist/cache.js +0 -571
  19. package/dist/compaction-fence.d.ts +0 -97
  20. package/dist/compaction-fence.d.ts.map +0 -1
  21. package/dist/compaction-fence.js +0 -174
  22. package/dist/composition-snapshot-integrity.d.ts +0 -36
  23. package/dist/composition-snapshot-integrity.d.ts.map +0 -1
  24. package/dist/composition-snapshot-integrity.js +0 -131
  25. package/dist/composition-snapshot-runtime.d.ts +0 -59
  26. package/dist/composition-snapshot-runtime.d.ts.map +0 -1
  27. package/dist/composition-snapshot-runtime.js +0 -250
  28. package/dist/composition-snapshot-store.d.ts +0 -44
  29. package/dist/composition-snapshot-store.d.ts.map +0 -1
  30. package/dist/composition-snapshot-store.js +0 -117
  31. package/dist/compositor-utils.d.ts +0 -31
  32. package/dist/compositor-utils.d.ts.map +0 -1
  33. package/dist/compositor-utils.js +0 -47
  34. package/dist/compositor.d.ts +0 -518
  35. package/dist/compositor.d.ts.map +0 -1
  36. package/dist/compositor.js +0 -4280
  37. package/dist/content-hash.d.ts +0 -43
  38. package/dist/content-hash.d.ts.map +0 -1
  39. package/dist/content-hash.js +0 -75
  40. package/dist/content-type-classifier.d.ts +0 -41
  41. package/dist/content-type-classifier.d.ts.map +0 -1
  42. package/dist/content-type-classifier.js +0 -181
  43. package/dist/context-backfill.d.ts +0 -46
  44. package/dist/context-backfill.d.ts.map +0 -1
  45. package/dist/context-backfill.js +0 -113
  46. package/dist/context-store.d.ts +0 -131
  47. package/dist/context-store.d.ts.map +0 -1
  48. package/dist/context-store.js +0 -279
  49. package/dist/contradiction-audit-store.d.ts +0 -54
  50. package/dist/contradiction-audit-store.d.ts.map +0 -1
  51. package/dist/contradiction-audit-store.js +0 -88
  52. package/dist/contradiction-detector.d.ts +0 -78
  53. package/dist/contradiction-detector.d.ts.map +0 -1
  54. package/dist/contradiction-detector.js +0 -362
  55. package/dist/contradiction-resolution-policy.d.ts +0 -21
  56. package/dist/contradiction-resolution-policy.d.ts.map +0 -1
  57. package/dist/contradiction-resolution-policy.js +0 -17
  58. package/dist/cross-agent.d.ts +0 -74
  59. package/dist/cross-agent.d.ts.map +0 -1
  60. package/dist/cross-agent.js +0 -271
  61. package/dist/db.d.ts +0 -131
  62. package/dist/db.d.ts.map +0 -1
  63. package/dist/db.js +0 -410
  64. package/dist/degradation.d.ts +0 -102
  65. package/dist/degradation.d.ts.map +0 -1
  66. package/dist/degradation.js +0 -141
  67. package/dist/desired-state-store.d.ts +0 -100
  68. package/dist/desired-state-store.d.ts.map +0 -1
  69. package/dist/desired-state-store.js +0 -222
  70. package/dist/doc-chunk-store.d.ts +0 -159
  71. package/dist/doc-chunk-store.d.ts.map +0 -1
  72. package/dist/doc-chunk-store.js +0 -441
  73. package/dist/doc-chunker.d.ts +0 -99
  74. package/dist/doc-chunker.d.ts.map +0 -1
  75. package/dist/doc-chunker.js +0 -324
  76. package/dist/dreaming-promoter.d.ts +0 -124
  77. package/dist/dreaming-promoter.d.ts.map +0 -1
  78. package/dist/dreaming-promoter.js +0 -447
  79. package/dist/episode-store.d.ts +0 -49
  80. package/dist/episode-store.d.ts.map +0 -1
  81. package/dist/episode-store.js +0 -135
  82. package/dist/expertise-store.d.ts +0 -129
  83. package/dist/expertise-store.d.ts.map +0 -1
  84. package/dist/expertise-store.js +0 -342
  85. package/dist/fact-store.d.ts +0 -90
  86. package/dist/fact-store.d.ts.map +0 -1
  87. package/dist/fact-store.js +0 -283
  88. package/dist/fleet-store.d.ts +0 -144
  89. package/dist/fleet-store.d.ts.map +0 -1
  90. package/dist/fleet-store.js +0 -276
  91. package/dist/fos-mod.d.ts +0 -178
  92. package/dist/fos-mod.d.ts.map +0 -1
  93. package/dist/fos-mod.js +0 -416
  94. package/dist/hybrid-retrieval.d.ts +0 -102
  95. package/dist/hybrid-retrieval.d.ts.map +0 -1
  96. package/dist/hybrid-retrieval.js +0 -429
  97. package/dist/image-eviction.d.ts +0 -49
  98. package/dist/image-eviction.d.ts.map +0 -1
  99. package/dist/image-eviction.js +0 -251
  100. package/dist/index.d.ts +0 -727
  101. package/dist/index.d.ts.map +0 -1
  102. package/dist/index.js +0 -1495
  103. package/dist/keystone-scorer.d.ts +0 -51
  104. package/dist/keystone-scorer.d.ts.map +0 -1
  105. package/dist/keystone-scorer.js +0 -52
  106. package/dist/knowledge-graph.d.ts +0 -110
  107. package/dist/knowledge-graph.d.ts.map +0 -1
  108. package/dist/knowledge-graph.js +0 -305
  109. package/dist/knowledge-lint.d.ts +0 -31
  110. package/dist/knowledge-lint.d.ts.map +0 -1
  111. package/dist/knowledge-lint.js +0 -155
  112. package/dist/knowledge-store.d.ts +0 -75
  113. package/dist/knowledge-store.d.ts.map +0 -1
  114. package/dist/knowledge-store.js +0 -270
  115. package/dist/library-schema.d.ts +0 -31
  116. package/dist/library-schema.d.ts.map +0 -1
  117. package/dist/library-schema.js +0 -1357
  118. package/dist/message-store.d.ts +0 -181
  119. package/dist/message-store.d.ts.map +0 -1
  120. package/dist/message-store.js +0 -577
  121. package/dist/metrics-dashboard.d.ts +0 -131
  122. package/dist/metrics-dashboard.d.ts.map +0 -1
  123. package/dist/metrics-dashboard.js +0 -298
  124. package/dist/obsidian-exporter.d.ts +0 -57
  125. package/dist/obsidian-exporter.d.ts.map +0 -1
  126. package/dist/obsidian-exporter.js +0 -274
  127. package/dist/obsidian-watcher.d.ts +0 -147
  128. package/dist/obsidian-watcher.d.ts.map +0 -1
  129. package/dist/obsidian-watcher.js +0 -403
  130. package/dist/open-domain.d.ts +0 -46
  131. package/dist/open-domain.d.ts.map +0 -1
  132. package/dist/open-domain.js +0 -125
  133. package/dist/preference-store.d.ts +0 -54
  134. package/dist/preference-store.d.ts.map +0 -1
  135. package/dist/preference-store.js +0 -109
  136. package/dist/preservation-gate.d.ts +0 -82
  137. package/dist/preservation-gate.d.ts.map +0 -1
  138. package/dist/preservation-gate.js +0 -150
  139. package/dist/proactive-pass.d.ts +0 -63
  140. package/dist/proactive-pass.d.ts.map +0 -1
  141. package/dist/proactive-pass.js +0 -293
  142. package/dist/profiles.d.ts +0 -46
  143. package/dist/profiles.d.ts.map +0 -1
  144. package/dist/profiles.js +0 -262
  145. package/dist/provider-translator.d.ts +0 -50
  146. package/dist/provider-translator.d.ts.map +0 -1
  147. package/dist/provider-translator.js +0 -403
  148. package/dist/rate-limiter.d.ts +0 -76
  149. package/dist/rate-limiter.d.ts.map +0 -1
  150. package/dist/rate-limiter.js +0 -179
  151. package/dist/repair-tool-pairs.d.ts +0 -38
  152. package/dist/repair-tool-pairs.d.ts.map +0 -1
  153. package/dist/repair-tool-pairs.js +0 -209
  154. package/dist/replay-recovery.d.ts +0 -29
  155. package/dist/replay-recovery.d.ts.map +0 -1
  156. package/dist/replay-recovery.js +0 -82
  157. package/dist/reranker.d.ts +0 -95
  158. package/dist/reranker.d.ts.map +0 -1
  159. package/dist/reranker.js +0 -308
  160. package/dist/retrieval-policy.d.ts +0 -51
  161. package/dist/retrieval-policy.d.ts.map +0 -1
  162. package/dist/retrieval-policy.js +0 -77
  163. package/dist/schema.d.ts +0 -15
  164. package/dist/schema.d.ts.map +0 -1
  165. package/dist/schema.js +0 -327
  166. package/dist/secret-scanner.d.ts +0 -51
  167. package/dist/secret-scanner.d.ts.map +0 -1
  168. package/dist/secret-scanner.js +0 -248
  169. package/dist/seed.d.ts +0 -108
  170. package/dist/seed.d.ts.map +0 -1
  171. package/dist/seed.js +0 -179
  172. package/dist/session-flusher.d.ts +0 -53
  173. package/dist/session-flusher.d.ts.map +0 -1
  174. package/dist/session-flusher.js +0 -69
  175. package/dist/session-topic-map.d.ts +0 -41
  176. package/dist/session-topic-map.d.ts.map +0 -1
  177. package/dist/session-topic-map.js +0 -77
  178. package/dist/spawn-context.d.ts +0 -54
  179. package/dist/spawn-context.d.ts.map +0 -1
  180. package/dist/spawn-context.js +0 -159
  181. package/dist/system-store.d.ts +0 -73
  182. package/dist/system-store.d.ts.map +0 -1
  183. package/dist/system-store.js +0 -182
  184. package/dist/temporal-store.d.ts +0 -81
  185. package/dist/temporal-store.d.ts.map +0 -1
  186. package/dist/temporal-store.js +0 -149
  187. package/dist/tool-artifact-store.d.ts +0 -98
  188. package/dist/tool-artifact-store.d.ts.map +0 -1
  189. package/dist/tool-artifact-store.js +0 -244
  190. package/dist/topic-detector.d.ts +0 -35
  191. package/dist/topic-detector.d.ts.map +0 -1
  192. package/dist/topic-detector.js +0 -249
  193. package/dist/topic-store.d.ts +0 -51
  194. package/dist/topic-store.d.ts.map +0 -1
  195. package/dist/topic-store.js +0 -175
  196. package/dist/topic-synthesizer.d.ts +0 -71
  197. package/dist/topic-synthesizer.d.ts.map +0 -1
  198. package/dist/topic-synthesizer.js +0 -426
  199. package/dist/trigger-registry.d.ts +0 -63
  200. package/dist/trigger-registry.d.ts.map +0 -1
  201. package/dist/trigger-registry.js +0 -171
  202. package/dist/types.d.ts +0 -1085
  203. package/dist/types.d.ts.map +0 -1
  204. package/dist/types.js +0 -9
  205. package/dist/vector-store.d.ts +0 -180
  206. package/dist/vector-store.d.ts.map +0 -1
  207. package/dist/vector-store.js +0 -1041
  208. package/dist/version.d.ts +0 -34
  209. package/dist/version.d.ts.map +0 -1
  210. package/dist/version.js +0 -44
  211. package/dist/wiki-page-emitter.d.ts +0 -65
  212. package/dist/wiki-page-emitter.d.ts.map +0 -1
  213. package/dist/wiki-page-emitter.js +0 -258
  214. package/dist/work-store.d.ts +0 -112
  215. package/dist/work-store.d.ts.map +0 -1
  216. package/dist/work-store.js +0 -273
  217. package/memory-plugin/dist/index.d.ts +0 -24
  218. package/memory-plugin/dist/index.d.ts.map +0 -1
  219. package/memory-plugin/dist/index.js +0 -350
  220. package/memory-plugin/dist/index.js.map +0 -1
  221. package/node_modules/sqlite-vec/README.md +0 -1
  222. package/node_modules/sqlite-vec/index.cjs +0 -46
  223. package/node_modules/sqlite-vec/index.d.ts +0 -17
  224. package/node_modules/sqlite-vec/index.mjs +0 -47
  225. package/node_modules/sqlite-vec/package.json +0 -1
  226. package/node_modules/sqlite-vec-linux-x64/README.md +0 -1
  227. package/node_modules/sqlite-vec-linux-x64/package.json +0 -1
  228. package/node_modules/sqlite-vec-linux-x64/vec0.so +0 -0
  229. package/node_modules/zod/LICENSE +0 -21
  230. package/node_modules/zod/README.md +0 -208
  231. package/node_modules/zod/index.cjs +0 -33
  232. package/node_modules/zod/index.d.cts +0 -4
  233. package/node_modules/zod/index.d.ts +0 -4
  234. package/node_modules/zod/index.js +0 -4
  235. package/node_modules/zod/locales/index.cjs +0 -17
  236. package/node_modules/zod/locales/index.d.cts +0 -1
  237. package/node_modules/zod/locales/index.d.ts +0 -1
  238. package/node_modules/zod/locales/index.js +0 -1
  239. package/node_modules/zod/locales/package.json +0 -6
  240. package/node_modules/zod/mini/index.cjs +0 -32
  241. package/node_modules/zod/mini/index.d.cts +0 -3
  242. package/node_modules/zod/mini/index.d.ts +0 -3
  243. package/node_modules/zod/mini/index.js +0 -3
  244. package/node_modules/zod/mini/package.json +0 -6
  245. package/node_modules/zod/package.json +0 -135
  246. package/node_modules/zod/src/index.ts +0 -4
  247. package/node_modules/zod/src/locales/index.ts +0 -1
  248. package/node_modules/zod/src/mini/index.ts +0 -3
  249. package/node_modules/zod/src/v3/ZodError.ts +0 -330
  250. package/node_modules/zod/src/v3/benchmarks/datetime.ts +0 -58
  251. package/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +0 -80
  252. package/node_modules/zod/src/v3/benchmarks/index.ts +0 -59
  253. package/node_modules/zod/src/v3/benchmarks/ipv4.ts +0 -57
  254. package/node_modules/zod/src/v3/benchmarks/object.ts +0 -69
  255. package/node_modules/zod/src/v3/benchmarks/primitives.ts +0 -162
  256. package/node_modules/zod/src/v3/benchmarks/realworld.ts +0 -63
  257. package/node_modules/zod/src/v3/benchmarks/string.ts +0 -55
  258. package/node_modules/zod/src/v3/benchmarks/union.ts +0 -80
  259. package/node_modules/zod/src/v3/errors.ts +0 -13
  260. package/node_modules/zod/src/v3/external.ts +0 -6
  261. package/node_modules/zod/src/v3/helpers/enumUtil.ts +0 -17
  262. package/node_modules/zod/src/v3/helpers/errorUtil.ts +0 -8
  263. package/node_modules/zod/src/v3/helpers/parseUtil.ts +0 -176
  264. package/node_modules/zod/src/v3/helpers/partialUtil.ts +0 -34
  265. package/node_modules/zod/src/v3/helpers/typeAliases.ts +0 -2
  266. package/node_modules/zod/src/v3/helpers/util.ts +0 -224
  267. package/node_modules/zod/src/v3/index.ts +0 -4
  268. package/node_modules/zod/src/v3/locales/en.ts +0 -124
  269. package/node_modules/zod/src/v3/standard-schema.ts +0 -113
  270. package/node_modules/zod/src/v3/tests/Mocker.ts +0 -54
  271. package/node_modules/zod/src/v3/tests/all-errors.test.ts +0 -157
  272. package/node_modules/zod/src/v3/tests/anyunknown.test.ts +0 -28
  273. package/node_modules/zod/src/v3/tests/array.test.ts +0 -71
  274. package/node_modules/zod/src/v3/tests/async-parsing.test.ts +0 -388
  275. package/node_modules/zod/src/v3/tests/async-refinements.test.ts +0 -46
  276. package/node_modules/zod/src/v3/tests/base.test.ts +0 -29
  277. package/node_modules/zod/src/v3/tests/bigint.test.ts +0 -55
  278. package/node_modules/zod/src/v3/tests/branded.test.ts +0 -53
  279. package/node_modules/zod/src/v3/tests/catch.test.ts +0 -220
  280. package/node_modules/zod/src/v3/tests/coerce.test.ts +0 -133
  281. package/node_modules/zod/src/v3/tests/complex.test.ts +0 -70
  282. package/node_modules/zod/src/v3/tests/custom.test.ts +0 -31
  283. package/node_modules/zod/src/v3/tests/date.test.ts +0 -32
  284. package/node_modules/zod/src/v3/tests/deepmasking.test.ts +0 -186
  285. package/node_modules/zod/src/v3/tests/default.test.ts +0 -112
  286. package/node_modules/zod/src/v3/tests/description.test.ts +0 -33
  287. package/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +0 -315
  288. package/node_modules/zod/src/v3/tests/enum.test.ts +0 -80
  289. package/node_modules/zod/src/v3/tests/error.test.ts +0 -551
  290. package/node_modules/zod/src/v3/tests/firstparty.test.ts +0 -87
  291. package/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +0 -21
  292. package/node_modules/zod/src/v3/tests/function.test.ts +0 -261
  293. package/node_modules/zod/src/v3/tests/generics.test.ts +0 -48
  294. package/node_modules/zod/src/v3/tests/instanceof.test.ts +0 -37
  295. package/node_modules/zod/src/v3/tests/intersection.test.ts +0 -110
  296. package/node_modules/zod/src/v3/tests/language-server.source.ts +0 -76
  297. package/node_modules/zod/src/v3/tests/language-server.test.ts +0 -207
  298. package/node_modules/zod/src/v3/tests/literal.test.ts +0 -36
  299. package/node_modules/zod/src/v3/tests/map.test.ts +0 -110
  300. package/node_modules/zod/src/v3/tests/masking.test.ts +0 -4
  301. package/node_modules/zod/src/v3/tests/mocker.test.ts +0 -19
  302. package/node_modules/zod/src/v3/tests/nan.test.ts +0 -24
  303. package/node_modules/zod/src/v3/tests/nativeEnum.test.ts +0 -87
  304. package/node_modules/zod/src/v3/tests/nullable.test.ts +0 -42
  305. package/node_modules/zod/src/v3/tests/number.test.ts +0 -176
  306. package/node_modules/zod/src/v3/tests/object-augmentation.test.ts +0 -29
  307. package/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +0 -29
  308. package/node_modules/zod/src/v3/tests/object.test.ts +0 -434
  309. package/node_modules/zod/src/v3/tests/optional.test.ts +0 -42
  310. package/node_modules/zod/src/v3/tests/parseUtil.test.ts +0 -23
  311. package/node_modules/zod/src/v3/tests/parser.test.ts +0 -41
  312. package/node_modules/zod/src/v3/tests/partials.test.ts +0 -243
  313. package/node_modules/zod/src/v3/tests/pickomit.test.ts +0 -111
  314. package/node_modules/zod/src/v3/tests/pipeline.test.ts +0 -29
  315. package/node_modules/zod/src/v3/tests/preprocess.test.ts +0 -186
  316. package/node_modules/zod/src/v3/tests/primitive.test.ts +0 -440
  317. package/node_modules/zod/src/v3/tests/promise.test.ts +0 -90
  318. package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -194
  319. package/node_modules/zod/src/v3/tests/record.test.ts +0 -171
  320. package/node_modules/zod/src/v3/tests/recursive.test.ts +0 -197
  321. package/node_modules/zod/src/v3/tests/refine.test.ts +0 -313
  322. package/node_modules/zod/src/v3/tests/safeparse.test.ts +0 -27
  323. package/node_modules/zod/src/v3/tests/set.test.ts +0 -142
  324. package/node_modules/zod/src/v3/tests/standard-schema.test.ts +0 -83
  325. package/node_modules/zod/src/v3/tests/string.test.ts +0 -916
  326. package/node_modules/zod/src/v3/tests/transformer.test.ts +0 -233
  327. package/node_modules/zod/src/v3/tests/tuple.test.ts +0 -90
  328. package/node_modules/zod/src/v3/tests/unions.test.ts +0 -57
  329. package/node_modules/zod/src/v3/tests/validations.test.ts +0 -133
  330. package/node_modules/zod/src/v3/tests/void.test.ts +0 -15
  331. package/node_modules/zod/src/v3/types.ts +0 -5138
  332. package/node_modules/zod/src/v4/classic/checks.ts +0 -32
  333. package/node_modules/zod/src/v4/classic/coerce.ts +0 -27
  334. package/node_modules/zod/src/v4/classic/compat.ts +0 -70
  335. package/node_modules/zod/src/v4/classic/errors.ts +0 -82
  336. package/node_modules/zod/src/v4/classic/external.ts +0 -51
  337. package/node_modules/zod/src/v4/classic/from-json-schema.ts +0 -643
  338. package/node_modules/zod/src/v4/classic/index.ts +0 -5
  339. package/node_modules/zod/src/v4/classic/iso.ts +0 -90
  340. package/node_modules/zod/src/v4/classic/parse.ts +0 -82
  341. package/node_modules/zod/src/v4/classic/schemas.ts +0 -2409
  342. package/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +0 -26
  343. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +0 -59
  344. package/node_modules/zod/src/v4/classic/tests/array.test.ts +0 -264
  345. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +0 -210
  346. package/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +0 -381
  347. package/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +0 -68
  348. package/node_modules/zod/src/v4/classic/tests/base.test.ts +0 -7
  349. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +0 -54
  350. package/node_modules/zod/src/v4/classic/tests/brand.test.ts +0 -106
  351. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +0 -276
  352. package/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +0 -20
  353. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +0 -573
  354. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +0 -562
  355. package/node_modules/zod/src/v4/classic/tests/coerce.test.ts +0 -160
  356. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +0 -374
  357. package/node_modules/zod/src/v4/classic/tests/custom.test.ts +0 -40
  358. package/node_modules/zod/src/v4/classic/tests/date.test.ts +0 -62
  359. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +0 -302
  360. package/node_modules/zod/src/v4/classic/tests/default.test.ts +0 -365
  361. package/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +0 -27
  362. package/node_modules/zod/src/v4/classic/tests/description.test.ts +0 -32
  363. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +0 -661
  364. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +0 -285
  365. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +0 -595
  366. package/node_modules/zod/src/v4/classic/tests/error.test.ts +0 -711
  367. package/node_modules/zod/src/v4/classic/tests/file.test.ts +0 -96
  368. package/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +0 -179
  369. package/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +0 -26
  370. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +0 -734
  371. package/node_modules/zod/src/v4/classic/tests/function.test.ts +0 -360
  372. package/node_modules/zod/src/v4/classic/tests/generics.test.ts +0 -72
  373. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +0 -68
  374. package/node_modules/zod/src/v4/classic/tests/index.test.ts +0 -939
  375. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +0 -60
  376. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +0 -198
  377. package/node_modules/zod/src/v4/classic/tests/json.test.ts +0 -109
  378. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +0 -227
  379. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +0 -117
  380. package/node_modules/zod/src/v4/classic/tests/map.test.ts +0 -330
  381. package/node_modules/zod/src/v4/classic/tests/nan.test.ts +0 -21
  382. package/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +0 -168
  383. package/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +0 -101
  384. package/node_modules/zod/src/v4/classic/tests/nullable.test.ts +0 -22
  385. package/node_modules/zod/src/v4/classic/tests/number.test.ts +0 -270
  386. package/node_modules/zod/src/v4/classic/tests/object.test.ts +0 -640
  387. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +0 -223
  388. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +0 -427
  389. package/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +0 -211
  390. package/node_modules/zod/src/v4/classic/tests/pipe.test.ts +0 -101
  391. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +0 -74
  392. package/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +0 -282
  393. package/node_modules/zod/src/v4/classic/tests/primitive.test.ts +0 -175
  394. package/node_modules/zod/src/v4/classic/tests/promise.test.ts +0 -81
  395. package/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +0 -23
  396. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -252
  397. package/node_modules/zod/src/v4/classic/tests/record.test.ts +0 -632
  398. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +0 -582
  399. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +0 -570
  400. package/node_modules/zod/src/v4/classic/tests/registries.test.ts +0 -243
  401. package/node_modules/zod/src/v4/classic/tests/set.test.ts +0 -181
  402. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +0 -134
  403. package/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +0 -125
  404. package/node_modules/zod/src/v4/classic/tests/string.test.ts +0 -1175
  405. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +0 -106
  406. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +0 -771
  407. package/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +0 -438
  408. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +0 -2990
  409. package/node_modules/zod/src/v4/classic/tests/transform.test.ts +0 -361
  410. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +0 -183
  411. package/node_modules/zod/src/v4/classic/tests/union.test.ts +0 -219
  412. package/node_modules/zod/src/v4/classic/tests/url.test.ts +0 -13
  413. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +0 -283
  414. package/node_modules/zod/src/v4/classic/tests/void.test.ts +0 -12
  415. package/node_modules/zod/src/v4/core/api.ts +0 -1798
  416. package/node_modules/zod/src/v4/core/checks.ts +0 -1293
  417. package/node_modules/zod/src/v4/core/config.ts +0 -15
  418. package/node_modules/zod/src/v4/core/core.ts +0 -138
  419. package/node_modules/zod/src/v4/core/doc.ts +0 -44
  420. package/node_modules/zod/src/v4/core/errors.ts +0 -448
  421. package/node_modules/zod/src/v4/core/index.ts +0 -16
  422. package/node_modules/zod/src/v4/core/json-schema-generator.ts +0 -126
  423. package/node_modules/zod/src/v4/core/json-schema-processors.ts +0 -667
  424. package/node_modules/zod/src/v4/core/json-schema.ts +0 -147
  425. package/node_modules/zod/src/v4/core/parse.ts +0 -195
  426. package/node_modules/zod/src/v4/core/regexes.ts +0 -183
  427. package/node_modules/zod/src/v4/core/registries.ts +0 -105
  428. package/node_modules/zod/src/v4/core/schemas.ts +0 -4538
  429. package/node_modules/zod/src/v4/core/standard-schema.ts +0 -159
  430. package/node_modules/zod/src/v4/core/tests/extend.test.ts +0 -59
  431. package/node_modules/zod/src/v4/core/tests/index.test.ts +0 -46
  432. package/node_modules/zod/src/v4/core/tests/locales/be.test.ts +0 -124
  433. package/node_modules/zod/src/v4/core/tests/locales/en.test.ts +0 -22
  434. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +0 -181
  435. package/node_modules/zod/src/v4/core/tests/locales/he.test.ts +0 -379
  436. package/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +0 -46
  437. package/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +0 -128
  438. package/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +0 -69
  439. package/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +0 -83
  440. package/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +0 -67
  441. package/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +0 -45
  442. package/node_modules/zod/src/v4/core/to-json-schema.ts +0 -613
  443. package/node_modules/zod/src/v4/core/util.ts +0 -966
  444. package/node_modules/zod/src/v4/core/versions.ts +0 -5
  445. package/node_modules/zod/src/v4/core/zsf.ts +0 -323
  446. package/node_modules/zod/src/v4/index.ts +0 -4
  447. package/node_modules/zod/src/v4/locales/ar.ts +0 -115
  448. package/node_modules/zod/src/v4/locales/az.ts +0 -111
  449. package/node_modules/zod/src/v4/locales/be.ts +0 -176
  450. package/node_modules/zod/src/v4/locales/bg.ts +0 -128
  451. package/node_modules/zod/src/v4/locales/ca.ts +0 -116
  452. package/node_modules/zod/src/v4/locales/cs.ts +0 -118
  453. package/node_modules/zod/src/v4/locales/da.ts +0 -123
  454. package/node_modules/zod/src/v4/locales/de.ts +0 -116
  455. package/node_modules/zod/src/v4/locales/en.ts +0 -119
  456. package/node_modules/zod/src/v4/locales/eo.ts +0 -118
  457. package/node_modules/zod/src/v4/locales/es.ts +0 -141
  458. package/node_modules/zod/src/v4/locales/fa.ts +0 -126
  459. package/node_modules/zod/src/v4/locales/fi.ts +0 -121
  460. package/node_modules/zod/src/v4/locales/fr-CA.ts +0 -116
  461. package/node_modules/zod/src/v4/locales/fr.ts +0 -116
  462. package/node_modules/zod/src/v4/locales/he.ts +0 -246
  463. package/node_modules/zod/src/v4/locales/hu.ts +0 -117
  464. package/node_modules/zod/src/v4/locales/hy.ts +0 -164
  465. package/node_modules/zod/src/v4/locales/id.ts +0 -115
  466. package/node_modules/zod/src/v4/locales/index.ts +0 -49
  467. package/node_modules/zod/src/v4/locales/is.ts +0 -119
  468. package/node_modules/zod/src/v4/locales/it.ts +0 -116
  469. package/node_modules/zod/src/v4/locales/ja.ts +0 -114
  470. package/node_modules/zod/src/v4/locales/ka.ts +0 -123
  471. package/node_modules/zod/src/v4/locales/kh.ts +0 -7
  472. package/node_modules/zod/src/v4/locales/km.ts +0 -119
  473. package/node_modules/zod/src/v4/locales/ko.ts +0 -121
  474. package/node_modules/zod/src/v4/locales/lt.ts +0 -239
  475. package/node_modules/zod/src/v4/locales/mk.ts +0 -118
  476. package/node_modules/zod/src/v4/locales/ms.ts +0 -115
  477. package/node_modules/zod/src/v4/locales/nl.ts +0 -121
  478. package/node_modules/zod/src/v4/locales/no.ts +0 -116
  479. package/node_modules/zod/src/v4/locales/ota.ts +0 -117
  480. package/node_modules/zod/src/v4/locales/pl.ts +0 -118
  481. package/node_modules/zod/src/v4/locales/ps.ts +0 -126
  482. package/node_modules/zod/src/v4/locales/pt.ts +0 -116
  483. package/node_modules/zod/src/v4/locales/ru.ts +0 -176
  484. package/node_modules/zod/src/v4/locales/sl.ts +0 -118
  485. package/node_modules/zod/src/v4/locales/sv.ts +0 -119
  486. package/node_modules/zod/src/v4/locales/ta.ts +0 -118
  487. package/node_modules/zod/src/v4/locales/th.ts +0 -119
  488. package/node_modules/zod/src/v4/locales/tr.ts +0 -111
  489. package/node_modules/zod/src/v4/locales/ua.ts +0 -7
  490. package/node_modules/zod/src/v4/locales/uk.ts +0 -117
  491. package/node_modules/zod/src/v4/locales/ur.ts +0 -119
  492. package/node_modules/zod/src/v4/locales/uz.ts +0 -116
  493. package/node_modules/zod/src/v4/locales/vi.ts +0 -117
  494. package/node_modules/zod/src/v4/locales/yo.ts +0 -124
  495. package/node_modules/zod/src/v4/locales/zh-CN.ts +0 -116
  496. package/node_modules/zod/src/v4/locales/zh-TW.ts +0 -115
  497. package/node_modules/zod/src/v4/mini/checks.ts +0 -32
  498. package/node_modules/zod/src/v4/mini/coerce.ts +0 -27
  499. package/node_modules/zod/src/v4/mini/external.ts +0 -40
  500. package/node_modules/zod/src/v4/mini/index.ts +0 -3
  501. package/node_modules/zod/src/v4/mini/iso.ts +0 -66
  502. package/node_modules/zod/src/v4/mini/parse.ts +0 -14
  503. package/node_modules/zod/src/v4/mini/schemas.ts +0 -1916
  504. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +0 -24
  505. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +0 -129
  506. package/node_modules/zod/src/v4/mini/tests/brand.test.ts +0 -94
  507. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +0 -144
  508. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +0 -529
  509. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +0 -36
  510. package/node_modules/zod/src/v4/mini/tests/error.test.ts +0 -22
  511. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +0 -5
  512. package/node_modules/zod/src/v4/mini/tests/index.test.ts +0 -963
  513. package/node_modules/zod/src/v4/mini/tests/number.test.ts +0 -95
  514. package/node_modules/zod/src/v4/mini/tests/object.test.ts +0 -227
  515. package/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +0 -43
  516. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +0 -275
  517. package/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +0 -50
  518. package/node_modules/zod/src/v4/mini/tests/string.test.ts +0 -347
  519. package/node_modules/zod/src/v4-mini/index.ts +0 -3
  520. package/node_modules/zod/v3/ZodError.cjs +0 -138
  521. package/node_modules/zod/v3/ZodError.d.cts +0 -164
  522. package/node_modules/zod/v3/ZodError.d.ts +0 -164
  523. package/node_modules/zod/v3/ZodError.js +0 -133
  524. package/node_modules/zod/v3/errors.cjs +0 -17
  525. package/node_modules/zod/v3/errors.d.cts +0 -5
  526. package/node_modules/zod/v3/errors.d.ts +0 -5
  527. package/node_modules/zod/v3/errors.js +0 -9
  528. package/node_modules/zod/v3/external.cjs +0 -22
  529. package/node_modules/zod/v3/external.d.cts +0 -6
  530. package/node_modules/zod/v3/external.d.ts +0 -6
  531. package/node_modules/zod/v3/external.js +0 -6
  532. package/node_modules/zod/v3/helpers/enumUtil.cjs +0 -2
  533. package/node_modules/zod/v3/helpers/enumUtil.d.cts +0 -8
  534. package/node_modules/zod/v3/helpers/enumUtil.d.ts +0 -8
  535. package/node_modules/zod/v3/helpers/enumUtil.js +0 -1
  536. package/node_modules/zod/v3/helpers/errorUtil.cjs +0 -9
  537. package/node_modules/zod/v3/helpers/errorUtil.d.cts +0 -9
  538. package/node_modules/zod/v3/helpers/errorUtil.d.ts +0 -9
  539. package/node_modules/zod/v3/helpers/errorUtil.js +0 -6
  540. package/node_modules/zod/v3/helpers/parseUtil.cjs +0 -124
  541. package/node_modules/zod/v3/helpers/parseUtil.d.cts +0 -78
  542. package/node_modules/zod/v3/helpers/parseUtil.d.ts +0 -78
  543. package/node_modules/zod/v3/helpers/parseUtil.js +0 -109
  544. package/node_modules/zod/v3/helpers/partialUtil.cjs +0 -2
  545. package/node_modules/zod/v3/helpers/partialUtil.d.cts +0 -8
  546. package/node_modules/zod/v3/helpers/partialUtil.d.ts +0 -8
  547. package/node_modules/zod/v3/helpers/partialUtil.js +0 -1
  548. package/node_modules/zod/v3/helpers/typeAliases.cjs +0 -2
  549. package/node_modules/zod/v3/helpers/typeAliases.d.cts +0 -2
  550. package/node_modules/zod/v3/helpers/typeAliases.d.ts +0 -2
  551. package/node_modules/zod/v3/helpers/typeAliases.js +0 -1
  552. package/node_modules/zod/v3/helpers/util.cjs +0 -137
  553. package/node_modules/zod/v3/helpers/util.d.cts +0 -85
  554. package/node_modules/zod/v3/helpers/util.d.ts +0 -85
  555. package/node_modules/zod/v3/helpers/util.js +0 -133
  556. package/node_modules/zod/v3/index.cjs +0 -33
  557. package/node_modules/zod/v3/index.d.cts +0 -4
  558. package/node_modules/zod/v3/index.d.ts +0 -4
  559. package/node_modules/zod/v3/index.js +0 -4
  560. package/node_modules/zod/v3/locales/en.cjs +0 -112
  561. package/node_modules/zod/v3/locales/en.d.cts +0 -3
  562. package/node_modules/zod/v3/locales/en.d.ts +0 -3
  563. package/node_modules/zod/v3/locales/en.js +0 -109
  564. package/node_modules/zod/v3/package.json +0 -6
  565. package/node_modules/zod/v3/standard-schema.cjs +0 -2
  566. package/node_modules/zod/v3/standard-schema.d.cts +0 -102
  567. package/node_modules/zod/v3/standard-schema.d.ts +0 -102
  568. package/node_modules/zod/v3/standard-schema.js +0 -1
  569. package/node_modules/zod/v3/types.cjs +0 -3777
  570. package/node_modules/zod/v3/types.d.cts +0 -1034
  571. package/node_modules/zod/v3/types.d.ts +0 -1034
  572. package/node_modules/zod/v3/types.js +0 -3695
  573. package/node_modules/zod/v4/classic/checks.cjs +0 -33
  574. package/node_modules/zod/v4/classic/checks.d.cts +0 -1
  575. package/node_modules/zod/v4/classic/checks.d.ts +0 -1
  576. package/node_modules/zod/v4/classic/checks.js +0 -1
  577. package/node_modules/zod/v4/classic/coerce.cjs +0 -47
  578. package/node_modules/zod/v4/classic/coerce.d.cts +0 -17
  579. package/node_modules/zod/v4/classic/coerce.d.ts +0 -17
  580. package/node_modules/zod/v4/classic/coerce.js +0 -17
  581. package/node_modules/zod/v4/classic/compat.cjs +0 -61
  582. package/node_modules/zod/v4/classic/compat.d.cts +0 -50
  583. package/node_modules/zod/v4/classic/compat.d.ts +0 -50
  584. package/node_modules/zod/v4/classic/compat.js +0 -31
  585. package/node_modules/zod/v4/classic/errors.cjs +0 -74
  586. package/node_modules/zod/v4/classic/errors.d.cts +0 -30
  587. package/node_modules/zod/v4/classic/errors.d.ts +0 -30
  588. package/node_modules/zod/v4/classic/errors.js +0 -48
  589. package/node_modules/zod/v4/classic/external.cjs +0 -73
  590. package/node_modules/zod/v4/classic/external.d.cts +0 -15
  591. package/node_modules/zod/v4/classic/external.d.ts +0 -15
  592. package/node_modules/zod/v4/classic/external.js +0 -20
  593. package/node_modules/zod/v4/classic/from-json-schema.cjs +0 -610
  594. package/node_modules/zod/v4/classic/from-json-schema.d.cts +0 -12
  595. package/node_modules/zod/v4/classic/from-json-schema.d.ts +0 -12
  596. package/node_modules/zod/v4/classic/from-json-schema.js +0 -584
  597. package/node_modules/zod/v4/classic/index.cjs +0 -33
  598. package/node_modules/zod/v4/classic/index.d.cts +0 -4
  599. package/node_modules/zod/v4/classic/index.d.ts +0 -4
  600. package/node_modules/zod/v4/classic/index.js +0 -4
  601. package/node_modules/zod/v4/classic/iso.cjs +0 -60
  602. package/node_modules/zod/v4/classic/iso.d.cts +0 -22
  603. package/node_modules/zod/v4/classic/iso.d.ts +0 -22
  604. package/node_modules/zod/v4/classic/iso.js +0 -30
  605. package/node_modules/zod/v4/classic/package.json +0 -6
  606. package/node_modules/zod/v4/classic/parse.cjs +0 -41
  607. package/node_modules/zod/v4/classic/parse.d.cts +0 -31
  608. package/node_modules/zod/v4/classic/parse.d.ts +0 -31
  609. package/node_modules/zod/v4/classic/parse.js +0 -15
  610. package/node_modules/zod/v4/classic/schemas.cjs +0 -1272
  611. package/node_modules/zod/v4/classic/schemas.d.cts +0 -739
  612. package/node_modules/zod/v4/classic/schemas.d.ts +0 -739
  613. package/node_modules/zod/v4/classic/schemas.js +0 -1157
  614. package/node_modules/zod/v4/core/api.cjs +0 -1222
  615. package/node_modules/zod/v4/core/api.d.cts +0 -304
  616. package/node_modules/zod/v4/core/api.d.ts +0 -304
  617. package/node_modules/zod/v4/core/api.js +0 -1082
  618. package/node_modules/zod/v4/core/checks.cjs +0 -601
  619. package/node_modules/zod/v4/core/checks.d.cts +0 -278
  620. package/node_modules/zod/v4/core/checks.d.ts +0 -278
  621. package/node_modules/zod/v4/core/checks.js +0 -575
  622. package/node_modules/zod/v4/core/core.cjs +0 -83
  623. package/node_modules/zod/v4/core/core.d.cts +0 -70
  624. package/node_modules/zod/v4/core/core.d.ts +0 -70
  625. package/node_modules/zod/v4/core/core.js +0 -76
  626. package/node_modules/zod/v4/core/doc.cjs +0 -39
  627. package/node_modules/zod/v4/core/doc.d.cts +0 -14
  628. package/node_modules/zod/v4/core/doc.d.ts +0 -14
  629. package/node_modules/zod/v4/core/doc.js +0 -35
  630. package/node_modules/zod/v4/core/errors.cjs +0 -213
  631. package/node_modules/zod/v4/core/errors.d.cts +0 -220
  632. package/node_modules/zod/v4/core/errors.d.ts +0 -220
  633. package/node_modules/zod/v4/core/errors.js +0 -182
  634. package/node_modules/zod/v4/core/index.cjs +0 -47
  635. package/node_modules/zod/v4/core/index.d.cts +0 -16
  636. package/node_modules/zod/v4/core/index.d.ts +0 -16
  637. package/node_modules/zod/v4/core/index.js +0 -16
  638. package/node_modules/zod/v4/core/json-schema-generator.cjs +0 -99
  639. package/node_modules/zod/v4/core/json-schema-generator.d.cts +0 -65
  640. package/node_modules/zod/v4/core/json-schema-generator.d.ts +0 -65
  641. package/node_modules/zod/v4/core/json-schema-generator.js +0 -95
  642. package/node_modules/zod/v4/core/json-schema-processors.cjs +0 -648
  643. package/node_modules/zod/v4/core/json-schema-processors.d.cts +0 -49
  644. package/node_modules/zod/v4/core/json-schema-processors.d.ts +0 -49
  645. package/node_modules/zod/v4/core/json-schema-processors.js +0 -605
  646. package/node_modules/zod/v4/core/json-schema.cjs +0 -2
  647. package/node_modules/zod/v4/core/json-schema.d.cts +0 -88
  648. package/node_modules/zod/v4/core/json-schema.d.ts +0 -88
  649. package/node_modules/zod/v4/core/json-schema.js +0 -1
  650. package/node_modules/zod/v4/core/package.json +0 -6
  651. package/node_modules/zod/v4/core/parse.cjs +0 -131
  652. package/node_modules/zod/v4/core/parse.d.cts +0 -49
  653. package/node_modules/zod/v4/core/parse.d.ts +0 -49
  654. package/node_modules/zod/v4/core/parse.js +0 -93
  655. package/node_modules/zod/v4/core/regexes.cjs +0 -166
  656. package/node_modules/zod/v4/core/regexes.d.cts +0 -79
  657. package/node_modules/zod/v4/core/regexes.d.ts +0 -79
  658. package/node_modules/zod/v4/core/regexes.js +0 -133
  659. package/node_modules/zod/v4/core/registries.cjs +0 -56
  660. package/node_modules/zod/v4/core/registries.d.cts +0 -35
  661. package/node_modules/zod/v4/core/registries.d.ts +0 -35
  662. package/node_modules/zod/v4/core/registries.js +0 -51
  663. package/node_modules/zod/v4/core/schemas.cjs +0 -2124
  664. package/node_modules/zod/v4/core/schemas.d.cts +0 -1146
  665. package/node_modules/zod/v4/core/schemas.d.ts +0 -1146
  666. package/node_modules/zod/v4/core/schemas.js +0 -2093
  667. package/node_modules/zod/v4/core/standard-schema.cjs +0 -2
  668. package/node_modules/zod/v4/core/standard-schema.d.cts +0 -126
  669. package/node_modules/zod/v4/core/standard-schema.d.ts +0 -126
  670. package/node_modules/zod/v4/core/standard-schema.js +0 -1
  671. package/node_modules/zod/v4/core/to-json-schema.cjs +0 -446
  672. package/node_modules/zod/v4/core/to-json-schema.d.cts +0 -114
  673. package/node_modules/zod/v4/core/to-json-schema.d.ts +0 -114
  674. package/node_modules/zod/v4/core/to-json-schema.js +0 -437
  675. package/node_modules/zod/v4/core/util.cjs +0 -710
  676. package/node_modules/zod/v4/core/util.d.cts +0 -199
  677. package/node_modules/zod/v4/core/util.d.ts +0 -199
  678. package/node_modules/zod/v4/core/util.js +0 -651
  679. package/node_modules/zod/v4/core/versions.cjs +0 -8
  680. package/node_modules/zod/v4/core/versions.d.cts +0 -5
  681. package/node_modules/zod/v4/core/versions.d.ts +0 -5
  682. package/node_modules/zod/v4/core/versions.js +0 -5
  683. package/node_modules/zod/v4/index.cjs +0 -22
  684. package/node_modules/zod/v4/index.d.cts +0 -3
  685. package/node_modules/zod/v4/index.d.ts +0 -3
  686. package/node_modules/zod/v4/index.js +0 -3
  687. package/node_modules/zod/v4/locales/ar.cjs +0 -133
  688. package/node_modules/zod/v4/locales/ar.d.cts +0 -5
  689. package/node_modules/zod/v4/locales/ar.d.ts +0 -4
  690. package/node_modules/zod/v4/locales/ar.js +0 -106
  691. package/node_modules/zod/v4/locales/az.cjs +0 -132
  692. package/node_modules/zod/v4/locales/az.d.cts +0 -5
  693. package/node_modules/zod/v4/locales/az.d.ts +0 -4
  694. package/node_modules/zod/v4/locales/az.js +0 -105
  695. package/node_modules/zod/v4/locales/be.cjs +0 -183
  696. package/node_modules/zod/v4/locales/be.d.cts +0 -5
  697. package/node_modules/zod/v4/locales/be.d.ts +0 -4
  698. package/node_modules/zod/v4/locales/be.js +0 -156
  699. package/node_modules/zod/v4/locales/bg.cjs +0 -147
  700. package/node_modules/zod/v4/locales/bg.d.cts +0 -5
  701. package/node_modules/zod/v4/locales/bg.d.ts +0 -4
  702. package/node_modules/zod/v4/locales/bg.js +0 -120
  703. package/node_modules/zod/v4/locales/ca.cjs +0 -134
  704. package/node_modules/zod/v4/locales/ca.d.cts +0 -5
  705. package/node_modules/zod/v4/locales/ca.d.ts +0 -4
  706. package/node_modules/zod/v4/locales/ca.js +0 -107
  707. package/node_modules/zod/v4/locales/cs.cjs +0 -138
  708. package/node_modules/zod/v4/locales/cs.d.cts +0 -5
  709. package/node_modules/zod/v4/locales/cs.d.ts +0 -4
  710. package/node_modules/zod/v4/locales/cs.js +0 -111
  711. package/node_modules/zod/v4/locales/da.cjs +0 -142
  712. package/node_modules/zod/v4/locales/da.d.cts +0 -5
  713. package/node_modules/zod/v4/locales/da.d.ts +0 -4
  714. package/node_modules/zod/v4/locales/da.js +0 -115
  715. package/node_modules/zod/v4/locales/de.cjs +0 -135
  716. package/node_modules/zod/v4/locales/de.d.cts +0 -5
  717. package/node_modules/zod/v4/locales/de.d.ts +0 -4
  718. package/node_modules/zod/v4/locales/de.js +0 -108
  719. package/node_modules/zod/v4/locales/en.cjs +0 -136
  720. package/node_modules/zod/v4/locales/en.d.cts +0 -5
  721. package/node_modules/zod/v4/locales/en.d.ts +0 -4
  722. package/node_modules/zod/v4/locales/en.js +0 -109
  723. package/node_modules/zod/v4/locales/eo.cjs +0 -136
  724. package/node_modules/zod/v4/locales/eo.d.cts +0 -5
  725. package/node_modules/zod/v4/locales/eo.d.ts +0 -4
  726. package/node_modules/zod/v4/locales/eo.js +0 -109
  727. package/node_modules/zod/v4/locales/es.cjs +0 -159
  728. package/node_modules/zod/v4/locales/es.d.cts +0 -5
  729. package/node_modules/zod/v4/locales/es.d.ts +0 -4
  730. package/node_modules/zod/v4/locales/es.js +0 -132
  731. package/node_modules/zod/v4/locales/fa.cjs +0 -141
  732. package/node_modules/zod/v4/locales/fa.d.cts +0 -5
  733. package/node_modules/zod/v4/locales/fa.d.ts +0 -4
  734. package/node_modules/zod/v4/locales/fa.js +0 -114
  735. package/node_modules/zod/v4/locales/fi.cjs +0 -139
  736. package/node_modules/zod/v4/locales/fi.d.cts +0 -5
  737. package/node_modules/zod/v4/locales/fi.d.ts +0 -4
  738. package/node_modules/zod/v4/locales/fi.js +0 -112
  739. package/node_modules/zod/v4/locales/fr-CA.cjs +0 -134
  740. package/node_modules/zod/v4/locales/fr-CA.d.cts +0 -5
  741. package/node_modules/zod/v4/locales/fr-CA.d.ts +0 -4
  742. package/node_modules/zod/v4/locales/fr-CA.js +0 -107
  743. package/node_modules/zod/v4/locales/fr.cjs +0 -135
  744. package/node_modules/zod/v4/locales/fr.d.cts +0 -5
  745. package/node_modules/zod/v4/locales/fr.d.ts +0 -4
  746. package/node_modules/zod/v4/locales/fr.js +0 -108
  747. package/node_modules/zod/v4/locales/he.cjs +0 -241
  748. package/node_modules/zod/v4/locales/he.d.cts +0 -5
  749. package/node_modules/zod/v4/locales/he.d.ts +0 -4
  750. package/node_modules/zod/v4/locales/he.js +0 -214
  751. package/node_modules/zod/v4/locales/hu.cjs +0 -135
  752. package/node_modules/zod/v4/locales/hu.d.cts +0 -5
  753. package/node_modules/zod/v4/locales/hu.d.ts +0 -4
  754. package/node_modules/zod/v4/locales/hu.js +0 -108
  755. package/node_modules/zod/v4/locales/hy.cjs +0 -174
  756. package/node_modules/zod/v4/locales/hy.d.cts +0 -5
  757. package/node_modules/zod/v4/locales/hy.d.ts +0 -4
  758. package/node_modules/zod/v4/locales/hy.js +0 -147
  759. package/node_modules/zod/v4/locales/id.cjs +0 -133
  760. package/node_modules/zod/v4/locales/id.d.cts +0 -5
  761. package/node_modules/zod/v4/locales/id.d.ts +0 -4
  762. package/node_modules/zod/v4/locales/id.js +0 -106
  763. package/node_modules/zod/v4/locales/index.cjs +0 -104
  764. package/node_modules/zod/v4/locales/index.d.cts +0 -49
  765. package/node_modules/zod/v4/locales/index.d.ts +0 -49
  766. package/node_modules/zod/v4/locales/index.js +0 -49
  767. package/node_modules/zod/v4/locales/is.cjs +0 -136
  768. package/node_modules/zod/v4/locales/is.d.cts +0 -5
  769. package/node_modules/zod/v4/locales/is.d.ts +0 -4
  770. package/node_modules/zod/v4/locales/is.js +0 -109
  771. package/node_modules/zod/v4/locales/it.cjs +0 -135
  772. package/node_modules/zod/v4/locales/it.d.cts +0 -5
  773. package/node_modules/zod/v4/locales/it.d.ts +0 -4
  774. package/node_modules/zod/v4/locales/it.js +0 -108
  775. package/node_modules/zod/v4/locales/ja.cjs +0 -134
  776. package/node_modules/zod/v4/locales/ja.d.cts +0 -5
  777. package/node_modules/zod/v4/locales/ja.d.ts +0 -4
  778. package/node_modules/zod/v4/locales/ja.js +0 -107
  779. package/node_modules/zod/v4/locales/ka.cjs +0 -139
  780. package/node_modules/zod/v4/locales/ka.d.cts +0 -5
  781. package/node_modules/zod/v4/locales/ka.d.ts +0 -4
  782. package/node_modules/zod/v4/locales/ka.js +0 -112
  783. package/node_modules/zod/v4/locales/kh.cjs +0 -12
  784. package/node_modules/zod/v4/locales/kh.d.cts +0 -5
  785. package/node_modules/zod/v4/locales/kh.d.ts +0 -5
  786. package/node_modules/zod/v4/locales/kh.js +0 -5
  787. package/node_modules/zod/v4/locales/km.cjs +0 -137
  788. package/node_modules/zod/v4/locales/km.d.cts +0 -5
  789. package/node_modules/zod/v4/locales/km.d.ts +0 -4
  790. package/node_modules/zod/v4/locales/km.js +0 -110
  791. package/node_modules/zod/v4/locales/ko.cjs +0 -138
  792. package/node_modules/zod/v4/locales/ko.d.cts +0 -5
  793. package/node_modules/zod/v4/locales/ko.d.ts +0 -4
  794. package/node_modules/zod/v4/locales/ko.js +0 -111
  795. package/node_modules/zod/v4/locales/lt.cjs +0 -230
  796. package/node_modules/zod/v4/locales/lt.d.cts +0 -5
  797. package/node_modules/zod/v4/locales/lt.d.ts +0 -4
  798. package/node_modules/zod/v4/locales/lt.js +0 -203
  799. package/node_modules/zod/v4/locales/mk.cjs +0 -136
  800. package/node_modules/zod/v4/locales/mk.d.cts +0 -5
  801. package/node_modules/zod/v4/locales/mk.d.ts +0 -4
  802. package/node_modules/zod/v4/locales/mk.js +0 -109
  803. package/node_modules/zod/v4/locales/ms.cjs +0 -134
  804. package/node_modules/zod/v4/locales/ms.d.cts +0 -5
  805. package/node_modules/zod/v4/locales/ms.d.ts +0 -4
  806. package/node_modules/zod/v4/locales/ms.js +0 -107
  807. package/node_modules/zod/v4/locales/nl.cjs +0 -137
  808. package/node_modules/zod/v4/locales/nl.d.cts +0 -5
  809. package/node_modules/zod/v4/locales/nl.d.ts +0 -4
  810. package/node_modules/zod/v4/locales/nl.js +0 -110
  811. package/node_modules/zod/v4/locales/no.cjs +0 -135
  812. package/node_modules/zod/v4/locales/no.d.cts +0 -5
  813. package/node_modules/zod/v4/locales/no.d.ts +0 -4
  814. package/node_modules/zod/v4/locales/no.js +0 -108
  815. package/node_modules/zod/v4/locales/ota.cjs +0 -136
  816. package/node_modules/zod/v4/locales/ota.d.cts +0 -5
  817. package/node_modules/zod/v4/locales/ota.d.ts +0 -4
  818. package/node_modules/zod/v4/locales/ota.js +0 -109
  819. package/node_modules/zod/v4/locales/package.json +0 -6
  820. package/node_modules/zod/v4/locales/pl.cjs +0 -136
  821. package/node_modules/zod/v4/locales/pl.d.cts +0 -5
  822. package/node_modules/zod/v4/locales/pl.d.ts +0 -4
  823. package/node_modules/zod/v4/locales/pl.js +0 -109
  824. package/node_modules/zod/v4/locales/ps.cjs +0 -141
  825. package/node_modules/zod/v4/locales/ps.d.cts +0 -5
  826. package/node_modules/zod/v4/locales/ps.d.ts +0 -4
  827. package/node_modules/zod/v4/locales/ps.js +0 -114
  828. package/node_modules/zod/v4/locales/pt.cjs +0 -135
  829. package/node_modules/zod/v4/locales/pt.d.cts +0 -5
  830. package/node_modules/zod/v4/locales/pt.d.ts +0 -4
  831. package/node_modules/zod/v4/locales/pt.js +0 -108
  832. package/node_modules/zod/v4/locales/ru.cjs +0 -183
  833. package/node_modules/zod/v4/locales/ru.d.cts +0 -5
  834. package/node_modules/zod/v4/locales/ru.d.ts +0 -4
  835. package/node_modules/zod/v4/locales/ru.js +0 -156
  836. package/node_modules/zod/v4/locales/sl.cjs +0 -136
  837. package/node_modules/zod/v4/locales/sl.d.cts +0 -5
  838. package/node_modules/zod/v4/locales/sl.d.ts +0 -4
  839. package/node_modules/zod/v4/locales/sl.js +0 -109
  840. package/node_modules/zod/v4/locales/sv.cjs +0 -137
  841. package/node_modules/zod/v4/locales/sv.d.cts +0 -5
  842. package/node_modules/zod/v4/locales/sv.d.ts +0 -4
  843. package/node_modules/zod/v4/locales/sv.js +0 -110
  844. package/node_modules/zod/v4/locales/ta.cjs +0 -137
  845. package/node_modules/zod/v4/locales/ta.d.cts +0 -5
  846. package/node_modules/zod/v4/locales/ta.d.ts +0 -4
  847. package/node_modules/zod/v4/locales/ta.js +0 -110
  848. package/node_modules/zod/v4/locales/th.cjs +0 -137
  849. package/node_modules/zod/v4/locales/th.d.cts +0 -5
  850. package/node_modules/zod/v4/locales/th.d.ts +0 -4
  851. package/node_modules/zod/v4/locales/th.js +0 -110
  852. package/node_modules/zod/v4/locales/tr.cjs +0 -132
  853. package/node_modules/zod/v4/locales/tr.d.cts +0 -5
  854. package/node_modules/zod/v4/locales/tr.d.ts +0 -4
  855. package/node_modules/zod/v4/locales/tr.js +0 -105
  856. package/node_modules/zod/v4/locales/ua.cjs +0 -12
  857. package/node_modules/zod/v4/locales/ua.d.cts +0 -5
  858. package/node_modules/zod/v4/locales/ua.d.ts +0 -5
  859. package/node_modules/zod/v4/locales/ua.js +0 -5
  860. package/node_modules/zod/v4/locales/uk.cjs +0 -135
  861. package/node_modules/zod/v4/locales/uk.d.cts +0 -5
  862. package/node_modules/zod/v4/locales/uk.d.ts +0 -4
  863. package/node_modules/zod/v4/locales/uk.js +0 -108
  864. package/node_modules/zod/v4/locales/ur.cjs +0 -137
  865. package/node_modules/zod/v4/locales/ur.d.cts +0 -5
  866. package/node_modules/zod/v4/locales/ur.d.ts +0 -4
  867. package/node_modules/zod/v4/locales/ur.js +0 -110
  868. package/node_modules/zod/v4/locales/uz.cjs +0 -136
  869. package/node_modules/zod/v4/locales/uz.d.cts +0 -5
  870. package/node_modules/zod/v4/locales/uz.d.ts +0 -4
  871. package/node_modules/zod/v4/locales/uz.js +0 -109
  872. package/node_modules/zod/v4/locales/vi.cjs +0 -135
  873. package/node_modules/zod/v4/locales/vi.d.cts +0 -5
  874. package/node_modules/zod/v4/locales/vi.d.ts +0 -4
  875. package/node_modules/zod/v4/locales/vi.js +0 -108
  876. package/node_modules/zod/v4/locales/yo.cjs +0 -134
  877. package/node_modules/zod/v4/locales/yo.d.cts +0 -5
  878. package/node_modules/zod/v4/locales/yo.d.ts +0 -4
  879. package/node_modules/zod/v4/locales/yo.js +0 -107
  880. package/node_modules/zod/v4/locales/zh-CN.cjs +0 -136
  881. package/node_modules/zod/v4/locales/zh-CN.d.cts +0 -5
  882. package/node_modules/zod/v4/locales/zh-CN.d.ts +0 -4
  883. package/node_modules/zod/v4/locales/zh-CN.js +0 -109
  884. package/node_modules/zod/v4/locales/zh-TW.cjs +0 -134
  885. package/node_modules/zod/v4/locales/zh-TW.d.cts +0 -5
  886. package/node_modules/zod/v4/locales/zh-TW.d.ts +0 -4
  887. package/node_modules/zod/v4/locales/zh-TW.js +0 -107
  888. package/node_modules/zod/v4/mini/checks.cjs +0 -34
  889. package/node_modules/zod/v4/mini/checks.d.cts +0 -1
  890. package/node_modules/zod/v4/mini/checks.d.ts +0 -1
  891. package/node_modules/zod/v4/mini/checks.js +0 -1
  892. package/node_modules/zod/v4/mini/coerce.cjs +0 -52
  893. package/node_modules/zod/v4/mini/coerce.d.cts +0 -7
  894. package/node_modules/zod/v4/mini/coerce.d.ts +0 -7
  895. package/node_modules/zod/v4/mini/coerce.js +0 -22
  896. package/node_modules/zod/v4/mini/external.cjs +0 -63
  897. package/node_modules/zod/v4/mini/external.d.cts +0 -12
  898. package/node_modules/zod/v4/mini/external.d.ts +0 -12
  899. package/node_modules/zod/v4/mini/external.js +0 -14
  900. package/node_modules/zod/v4/mini/index.cjs +0 -32
  901. package/node_modules/zod/v4/mini/index.d.cts +0 -3
  902. package/node_modules/zod/v4/mini/index.d.ts +0 -3
  903. package/node_modules/zod/v4/mini/index.js +0 -3
  904. package/node_modules/zod/v4/mini/iso.cjs +0 -64
  905. package/node_modules/zod/v4/mini/iso.d.cts +0 -22
  906. package/node_modules/zod/v4/mini/iso.d.ts +0 -22
  907. package/node_modules/zod/v4/mini/iso.js +0 -34
  908. package/node_modules/zod/v4/mini/package.json +0 -6
  909. package/node_modules/zod/v4/mini/parse.cjs +0 -16
  910. package/node_modules/zod/v4/mini/parse.d.cts +0 -1
  911. package/node_modules/zod/v4/mini/parse.d.ts +0 -1
  912. package/node_modules/zod/v4/mini/parse.js +0 -1
  913. package/node_modules/zod/v4/mini/schemas.cjs +0 -1046
  914. package/node_modules/zod/v4/mini/schemas.d.cts +0 -427
  915. package/node_modules/zod/v4/mini/schemas.d.ts +0 -427
  916. package/node_modules/zod/v4/mini/schemas.js +0 -925
  917. package/node_modules/zod/v4/package.json +0 -6
  918. package/node_modules/zod/v4-mini/index.cjs +0 -32
  919. package/node_modules/zod/v4-mini/index.d.cts +0 -3
  920. package/node_modules/zod/v4-mini/index.d.ts +0 -3
  921. package/node_modules/zod/v4-mini/index.js +0 -3
  922. package/node_modules/zod/v4-mini/package.json +0 -6
  923. package/plugin/dist/index.d.ts +0 -208
  924. package/plugin/dist/index.d.ts.map +0 -1
  925. package/plugin/dist/index.js +0 -3474
  926. package/plugin/dist/index.js.map +0 -1
package/dist/index.js DELETED
@@ -1,1495 +0,0 @@
1
- /**
2
- * hypermem — Agent-Centric Memory & Context Composition Engine
3
- *
4
- * @module @psiclawops/hypermem
5
- *
6
- * Architecture:
7
- * L1: CacheLayer — SQLite `:memory:` hot session working memory
8
- * L2: messages.db — per-agent conversation log (rotatable)
9
- * L3: vectors.db — per-agent semantic search index (reconstructable)
10
- * L4: library.db — fleet-wide structured knowledge (crown jewel)
11
- */
12
- export { ENGINE_VERSION, MIN_NODE_VERSION, MIN_REDIS_VERSION, SQLITE_VEC_VERSION, MAIN_SCHEMA_VERSION, LIBRARY_SCHEMA_VERSION_EXPORT, HYPERMEM_COMPAT_VERSION, SCHEMA_COMPAT } from './version.js';
13
- export { DatabaseManager } from './db.js';
14
- export { MessageStore } from './message-store.js';
15
- export { ToolArtifactStore } from './tool-artifact-store.js';
16
- export { FactStore } from './fact-store.js';
17
- export { KnowledgeStore } from './knowledge-store.js';
18
- export { TopicStore } from './topic-store.js';
19
- export { EpisodeStore } from './episode-store.js';
20
- export { PreferenceStore } from './preference-store.js';
21
- export { FleetStore } from './fleet-store.js';
22
- export { SystemStore } from './system-store.js';
23
- export { WorkStore } from './work-store.js';
24
- export { ensureContextSchema, getActiveContext, getOrCreateActiveContext, updateContextHead, archiveContext, rotateSessionContext, getContextById, getArchivedContexts, getArchivedContext, getContextLineage, getForkChildren } from './context-store.js';
25
- export { DesiredStateStore } from './desired-state-store.js';
26
- export { ExpertiseStore } from './expertise-store.js';
27
- export { evictStaleContent, DEFAULT_EVICTION_CONFIG } from './image-eviction.js';
28
- export { KnowledgeGraph } from './knowledge-graph.js';
29
- export { RateLimiter, createRateLimitedEmbedder } from './rate-limiter.js';
30
- export { CacheLayer } from './cache.js';
31
- export { TRIM_SOFT_TARGET, TRIM_GROWTH_THRESHOLD, TRIM_HEADROOM_FRACTION, TRIM_BUDGET_POLICY, resolveTrimBudgets, } from './budget-policy.js';
32
- export { resolveAdaptiveLifecyclePolicy, } from './adaptive-lifecycle.js';
33
- // ── Phase C0.2: Canonical degradation contracts ───────────────────────────────
34
- export {
35
- // Reason enum + all values
36
- DEGRADATION_REASONS, DEGRADATION_LIMITS, isDegradationReason, isReplayState,
37
- // Tool-chain stub
38
- formatToolChainStub, parseToolChainStub, isToolChainStub,
39
- // Artifact reference
40
- formatArtifactRef, parseArtifactRef, isArtifactRef,
41
- // Replay marker
42
- formatReplayMarker, parseReplayMarker, isReplayMarker,
43
- // Generic detector
44
- isDegradedContent, } from './degradation.js';
45
- export { REPLAY_RECOVERY_POLICY, decideReplayRecovery, isColdRedisReplay, isReplayRecovered, } from './replay-recovery.js';
46
- export { Compositor, applyToolGradientToWindow, canPersistReshapedHistory, OPENCLAW_BOOTSTRAP_FILES, resolveToolChainEjections } from './compositor.js';
47
- // Sprint 3 + Sprint 4: depth estimator, session classifier, unified pressure signal
48
- export { classifySessionType, estimateObservedMsgDensity, computeAdaptiveHistoryDepth, computeUnifiedPressure, PRESSURE_SOURCE } from './compositor.js';
49
- export { TRIGGER_REGISTRY, TRIGGER_REGISTRY_VERSION, TRIGGER_REGISTRY_HASH, DEFAULT_TRIGGERS, matchTriggers, } from './trigger-registry.js';
50
- export { canonicalizeSnapshotJson, hashSnapshotJson, parseSnapshotSlotsJson, isInlineSnapshotSlotPayload, computeInlineIntegrityHash, attachInlineIntegrityHash, computeSlotsIntegrityHash, verifySnapshotSlotsIntegrity, } from './composition-snapshot-integrity.js';
51
- export { insertCompositionSnapshot, listCompositionSnapshots, getCompositionSnapshot, verifyCompositionSnapshot, getLatestValidCompositionSnapshot, } from './composition-snapshot-store.js';
52
- export { ensureCompactionFenceSchema, updateCompactionFence, getCompactionFence, getCompactionEligibility, getCompactableMessages, } from './compaction-fence.js';
53
- export { verifyPreservation, verifyPreservationFromVectors, } from './preservation-gate.js';
54
- export { toProviderFormat, fromProviderFormat, userMessageToNeutral, toolResultsToNeutral, normalizeToolCallId, generateToolCallId, detectProvider, repairToolCallPairs, } from './provider-translator.js';
55
- export { migrate, SCHEMA_VERSION } from './schema.js';
56
- export { migrateLibrary, LIBRARY_SCHEMA_VERSION } from './library-schema.js';
57
- export { VectorStore, generateEmbeddings } from './vector-store.js';
58
- export { hybridSearch, buildFtsQuery } from './hybrid-retrieval.js';
59
- export { createReranker, ZeroEntropyReranker, OpenRouterReranker, OllamaReranker, } from './reranker.js';
60
- export { ContradictionDetector } from './contradiction-detector.js';
61
- export { DocChunkStore } from './doc-chunk-store.js';
62
- export { WorkspaceSeeder, seedWorkspace } from './seed.js';
63
- export { chunkMarkdown, chunkFile, inferCollection, hashContent, ACA_COLLECTIONS } from './doc-chunker.js';
64
- export { crossAgentQuery, canAccess, visibilityFilter, defaultOrgRegistry, buildOrgRegistryFromDb, loadOrgRegistryFromDb, } from './cross-agent.js';
65
- export { BackgroundIndexer, createIndexer } from './background-indexer.js';
66
- export { runDreamingPromoter, runDreamingPassForFleet, resolveAgentWorkspacePath, DEFAULT_DREAMER_CONFIG, } from './dreaming-promoter.js';
67
- export { TopicSynthesizer } from './topic-synthesizer.js';
68
- export { WikiPageEmitter } from './wiki-page-emitter.js';
69
- export { lintKnowledge } from './knowledge-lint.js';
70
- export { buildSpawnContext } from './spawn-context.js';
71
- export { runNoiseSweep, runToolDecay } from './proactive-pass.js';
72
- export { classifyContentType, signalWeight, isSignalBearing, SIGNAL_WEIGHT } from './content-type-classifier.js';
73
- export { detectTopicShift, stripMessageMetadata } from './topic-detector.js';
74
- export { SessionTopicMap } from './session-topic-map.js';
75
- export { getActiveFOS, matchMOD, renderFOS, renderMOD, recordOutputMetrics, } from './fos-mod.js';
76
- import { DatabaseManager } from './db.js';
77
- import { MessageStore } from './message-store.js';
78
- import { FactStore } from './fact-store.js';
79
- import { KnowledgeStore } from './knowledge-store.js';
80
- import { TopicStore } from './topic-store.js';
81
- import { EpisodeStore } from './episode-store.js';
82
- import { PreferenceStore } from './preference-store.js';
83
- import { FleetStore } from './fleet-store.js';
84
- import { SystemStore } from './system-store.js';
85
- import { WorkStore } from './work-store.js';
86
- import { KnowledgeGraph } from './knowledge-graph.js';
87
- import { DesiredStateStore } from './desired-state-store.js';
88
- import { CacheLayer } from './cache.js';
89
- import { Compositor } from './compositor.js';
90
- import { getArchivedContexts } from './context-store.js';
91
- import { VectorStore } from './vector-store.js';
92
- import { userMessageToNeutral, fromProviderFormat } from './provider-translator.js';
93
- import { stripMessageMetadata } from './topic-detector.js';
94
- import { DocChunkStore } from './doc-chunk-store.js';
95
- import { WorkspaceSeeder } from './seed.js';
96
- import { crossAgentQuery, buildOrgRegistryFromDb } from './cross-agent.js';
97
- import fs from 'node:fs';
98
- import path from 'node:path';
99
- import os from 'node:os';
100
- const DEFAULT_CONFIG = {
101
- enabled: true,
102
- dataDir: path.join(process.env.HOME || os.homedir(), '.openclaw', 'hypermem'),
103
- cache: {
104
- keyPrefix: 'hm:',
105
- sessionTTL: 14400, // 4 hours — system/identity/meta slots
106
- historyTTL: 604800, // 7 days — extended for canvas display
107
- },
108
- compositor: {
109
- // TUNE-010 (2026-04-02): Raised from 65000 → 90000.
110
- // TUNE-008 dropped to 65k as a tool-loop overflow band-aid. The real fix
111
- // (tool-loop pass-through guard in assemble()) means tool turns don't
112
- // re-run composition, so 90k is safe — leaves ~30k headroom for in-flight
113
- // tool results on a 120k window. Budget is better spent on context quality.
114
- defaultTokenBudget: 90000,
115
- maxHistoryMessages: 1000,
116
- maxFacts: 28,
117
- maxCrossSessionContext: 6000,
118
- maxRecentToolPairs: 3,
119
- maxProseToolPairs: 10,
120
- warmHistoryBudgetFraction: 0.4,
121
- },
122
- indexer: {
123
- enabled: true,
124
- factExtractionMode: 'tiered',
125
- topicDormantAfter: '24h',
126
- topicClosedAfter: '7d',
127
- factDecayRate: 0.01,
128
- episodeSignificanceThreshold: 0.5,
129
- periodicInterval: 300000,
130
- batchSize: 128,
131
- maxMessagesPerTick: 500,
132
- },
133
- embedding: {
134
- provider: 'ollama',
135
- ollamaUrl: 'http://localhost:11434',
136
- model: 'nomic-embed-text',
137
- dimensions: 768,
138
- timeout: 10000,
139
- batchSize: 32,
140
- },
141
- };
142
- function escapeRegExp(value) {
143
- return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
144
- }
145
- function normalizeAgentId(value) {
146
- return value
147
- .trim()
148
- .toLowerCase()
149
- .replace(/[^a-z0-9]+/g, '-')
150
- .replace(/^-+|-+$/g, '');
151
- }
152
- function parseIdentityField(markdown, label) {
153
- const pattern = new RegExp(`^\\s*-\\s+\\*\\*${escapeRegExp(label)}:\\*\\*\\s*(.+?)\\s*$`, 'mi');
154
- const match = markdown.match(pattern);
155
- return match?.[1]?.trim() || null;
156
- }
157
- function parseSoulName(markdown) {
158
- const anchor = markdown.match(/You are \*\*([^*]+)\*\*/);
159
- if (anchor?.[1])
160
- return anchor[1].trim();
161
- const heading = markdown.match(/^#\s+SOUL\.md\s+[—-]\s+([^,\n]+)/m);
162
- return heading?.[1]?.trim() || null;
163
- }
164
- function parseSoulRole(markdown) {
165
- const anchor = markdown.match(/You are \*\*[^*]+\*\*\s+[—-]\s+([^\.\n]+)/);
166
- return anchor?.[1]?.trim() || null;
167
- }
168
- function inferTierFromRole(role) {
169
- const lower = (role || '').toLowerCase();
170
- if (!lower)
171
- return 'unknown';
172
- if (lower.includes('council') || lower.includes(' seat'))
173
- return 'council';
174
- if (lower.includes('director'))
175
- return 'director';
176
- if (lower.includes('specialist') || lower.includes('aide-de-camp'))
177
- return 'specialist';
178
- return 'unknown';
179
- }
180
- function parseReportTargets(raw) {
181
- if (!raw)
182
- return [];
183
- const stripped = raw.replace(/\([^)]*\)/g, ' ');
184
- const parts = stripped
185
- .split(/\s*(?:\+|,|\/|&|\band\b)\s*/i)
186
- .map(part => normalizeAgentId(part))
187
- .filter(Boolean);
188
- return [...new Set(parts)];
189
- }
190
- function mergeStartupCandidate(target, partial) {
191
- const existing = target.get(partial.agentId);
192
- if (!existing) {
193
- target.set(partial.agentId, {
194
- agentId: partial.agentId,
195
- displayName: partial.displayName || partial.agentId,
196
- tier: partial.tier || 'unknown',
197
- orgId: partial.orgId ?? null,
198
- reportsTo: partial.reportsTo ?? null,
199
- reportTargets: partial.reportTargets ? [...partial.reportTargets] : [],
200
- metadata: partial.metadata ?? null,
201
- });
202
- return;
203
- }
204
- if (partial.displayName && existing.displayName === existing.agentId) {
205
- existing.displayName = partial.displayName;
206
- }
207
- if (partial.tier && existing.tier === 'unknown') {
208
- existing.tier = partial.tier;
209
- }
210
- if (partial.orgId && !existing.orgId) {
211
- existing.orgId = partial.orgId;
212
- }
213
- if (partial.reportsTo && !existing.reportsTo) {
214
- existing.reportsTo = partial.reportsTo;
215
- }
216
- if (partial.reportTargets?.length) {
217
- existing.reportTargets = [...new Set([...existing.reportTargets, ...partial.reportTargets])];
218
- }
219
- if (partial.metadata) {
220
- existing.metadata = { ...(existing.metadata ?? {}), ...partial.metadata };
221
- }
222
- }
223
- function discoverStartupFleetCandidates(dbManager, opts = {}) {
224
- const homeDir = process.env.HOME || os.homedir();
225
- const workspaceRoots = opts.workspaceRoots ?? [
226
- path.join(homeDir, '.openclaw', 'workspace'),
227
- path.join(homeDir, '.openclaw', 'workspace'),
228
- ];
229
- const candidates = new Map();
230
- for (const root of workspaceRoots) {
231
- if (!fs.existsSync(root))
232
- continue;
233
- let entries = [];
234
- try {
235
- entries = fs.readdirSync(root, { withFileTypes: true });
236
- }
237
- catch {
238
- continue;
239
- }
240
- for (const entry of entries) {
241
- if (!entry.isDirectory())
242
- continue;
243
- const workspacePath = path.join(root, entry.name);
244
- const identityPath = path.join(workspacePath, 'IDENTITY.md');
245
- const soulPath = path.join(workspacePath, 'SOUL.md');
246
- if (!fs.existsSync(identityPath) && !fs.existsSync(soulPath))
247
- continue;
248
- let identityText = '';
249
- let soulText = '';
250
- try {
251
- if (fs.existsSync(identityPath))
252
- identityText = fs.readFileSync(identityPath, 'utf8');
253
- }
254
- catch { }
255
- try {
256
- if (fs.existsSync(soulPath))
257
- soulText = fs.readFileSync(soulPath, 'utf8');
258
- }
259
- catch { }
260
- const displayName = parseIdentityField(identityText, 'Name') ||
261
- parseSoulName(soulText) ||
262
- entry.name;
263
- const role = parseIdentityField(identityText, 'Role') ||
264
- parseSoulRole(soulText) ||
265
- null;
266
- const reportTargets = parseReportTargets(parseIdentityField(identityText, 'Reports to'));
267
- const agentId = normalizeAgentId(entry.name || displayName);
268
- if (!agentId)
269
- continue;
270
- mergeStartupCandidate(candidates, {
271
- agentId,
272
- displayName,
273
- tier: inferTierFromRole(role),
274
- reportTargets,
275
- metadata: {
276
- startupSeed: {
277
- source: 'workspace-identity',
278
- workspacePath,
279
- reportsToRaw: reportTargets,
280
- },
281
- },
282
- });
283
- }
284
- }
285
- if (opts.includeMessageDbAgents !== false) {
286
- for (const agentId of dbManager.listAgents()) {
287
- mergeStartupCandidate(candidates, {
288
- agentId,
289
- displayName: agentId,
290
- tier: 'unknown',
291
- metadata: {
292
- startupSeed: {
293
- source: 'message-db',
294
- },
295
- },
296
- });
297
- }
298
- }
299
- const resolved = [...candidates.values()];
300
- const knownIds = new Set(resolved.map(candidate => candidate.agentId));
301
- const councilIds = new Set(resolved
302
- .filter(candidate => candidate.tier === 'council')
303
- .map(candidate => candidate.agentId));
304
- for (const candidate of resolved) {
305
- const preferredLead = candidate.reportTargets.find(target => councilIds.has(target)) ||
306
- candidate.reportTargets.find(target => knownIds.has(target)) ||
307
- null;
308
- if (candidate.tier === 'council' && !candidate.orgId) {
309
- candidate.orgId = `${candidate.agentId}-org`;
310
- }
311
- if (candidate.tier === 'director' && preferredLead) {
312
- candidate.reportsTo = preferredLead;
313
- if (!candidate.orgId) {
314
- candidate.orgId = `${preferredLead}-org`;
315
- }
316
- }
317
- if (!candidate.reportsTo && preferredLead && candidate.tier !== 'director') {
318
- candidate.reportsTo = preferredLead;
319
- }
320
- // Null out reportsTo if it points outside the known fleet (e.g. a human operator ID)
321
- if (candidate.reportsTo && !knownIds.has(candidate.reportsTo)) {
322
- candidate.reportsTo = null;
323
- }
324
- candidate.metadata = {
325
- ...(candidate.metadata ?? {}),
326
- startupSeed: {
327
- ...(candidate.metadata ?? {}).startupSeed,
328
- derivedOrgId: candidate.orgId,
329
- derivedReportsTo: candidate.reportsTo,
330
- },
331
- };
332
- }
333
- return resolved.sort((a, b) => a.agentId.localeCompare(b.agentId));
334
- }
335
- /**
336
- * hypermem — the main API facade.
337
- *
338
- * Usage:
339
- * const hm = await hypermem.create({ dataDir: '~/.openclaw/hypermem' });
340
- * await hm.record('alice', 'agent:alice:webchat:main', userMsg);
341
- * const result = await hm.compose({ agentId: 'alice', sessionKey: '...', ... });
342
- */
343
- export class HyperMem {
344
- dbManager;
345
- cache;
346
- compositor;
347
- config;
348
- constructor(config) {
349
- this.config = config;
350
- this.dbManager = new DatabaseManager({ dataDir: config.dataDir });
351
- this.cache = new CacheLayer(config.cache);
352
- this.compositor = new Compositor({
353
- cache: this.cache,
354
- vectorStore: null, // Set after create() when vector DB is available
355
- libraryDb: null, // Set after create() when library DB is available
356
- }, config.compositor);
357
- }
358
- /**
359
- * Get the active vector store, if initialized.
360
- * Used by the plugin to wire embeddings into the background indexer.
361
- */
362
- getVectorStore() {
363
- return this.compositor.vectorStore;
364
- }
365
- /**
366
- * Create and initialize a hypermem instance.
367
- */
368
- static async create(config) {
369
- const merged = {
370
- ...DEFAULT_CONFIG,
371
- ...config,
372
- cache: { ...DEFAULT_CONFIG.cache, ...config?.cache },
373
- compositor: { ...DEFAULT_CONFIG.compositor, ...config?.compositor },
374
- indexer: { ...DEFAULT_CONFIG.indexer, ...config?.indexer },
375
- embedding: {
376
- ...DEFAULT_CONFIG.embedding,
377
- ...config?.embedding,
378
- },
379
- };
380
- const hm = new HyperMem(merged);
381
- const cacheOk = await hm.cache.connect();
382
- if (cacheOk) {
383
- console.log('[hypermem] Cache connected');
384
- }
385
- else {
386
- console.warn('[hypermem] Cache unavailable — running in SQLite-only mode');
387
- }
388
- // ── Vector store init ─────────────────────────────────────
389
- // Attempt to wire up sqlite-vec + nomic-embed-text for semantic recall.
390
- // Non-fatal: if sqlite-vec isn't available or Ollama is down,
391
- // hybridSearch() continues in FTS5-only mode.
392
- // The vector store is shared (not per-agent) — facts/episodes from all agents
393
- // are indexed together, keyed by (source_table, source_id).
394
- if (merged.embedding.provider === 'none') {
395
- console.log('[hypermem] Embedding provider: none — semantic search disabled, using FTS5 fallback');
396
- }
397
- else {
398
- try {
399
- const vectorDb = hm.dbManager.getSharedVectorDb();
400
- if (vectorDb) {
401
- const vs = new VectorStore(vectorDb, merged.embedding, hm.dbManager.getLibraryDb());
402
- vs.ensureTables();
403
- hm.compositor.setVectorStore(vs);
404
- const embeddingDesc = merged.embedding.provider === 'openai'
405
- ? `${merged.embedding.openaiBaseUrl?.includes('openrouter') ? 'openrouter' : 'openai'}/${merged.embedding.model ?? 'text-embedding-3-small'}`
406
- : `ollama/${merged.embedding.model ?? 'nomic-embed-text'}`;
407
- console.log(`[hypermem] Vector store initialized (sqlite-vec + ${embeddingDesc})`);
408
- }
409
- else {
410
- console.warn('[hypermem] sqlite-vec unavailable — semantic recall in FTS5-only mode');
411
- }
412
- }
413
- catch (err) {
414
- console.warn('[hypermem] Vector store init failed (non-fatal):', err.message);
415
- }
416
- }
417
- // ── Reranker init ─────────────────────────────────────────
418
- // Reranker is optional; when config.reranker is omitted or provider is
419
- // 'none', the compositor receives null and hybridSearch skips the rerank
420
- // hook. On provider errors, hybridSearch falls back to RRF ordering.
421
- if (merged.reranker && merged.reranker.provider !== 'none') {
422
- try {
423
- const { createReranker } = await import('./reranker.js');
424
- const rr = createReranker(merged.reranker);
425
- if (rr) {
426
- hm.compositor.setReranker(rr);
427
- console.log(`[hypermem] Reranker enabled: provider=${rr.name}`);
428
- }
429
- else {
430
- console.log(`[hypermem] Reranker configured (${merged.reranker.provider}) but no API key resolved — RRF-only`);
431
- }
432
- }
433
- catch (err) {
434
- console.warn('[hypermem] Reranker init failed (non-fatal):', err.message);
435
- }
436
- }
437
- const autoStartupFleetSeeding = merged.startupFleetSeeding !== false &&
438
- !path.resolve(merged.dataDir).startsWith(path.resolve(os.tmpdir()) + path.sep);
439
- if (autoStartupFleetSeeding) {
440
- try {
441
- const startupSeed = await hm.seedFleetAgentsOnStartup();
442
- if (startupSeed.discovered > 0) {
443
- console.log(`[hypermem] Startup fleet seed: ${startupSeed.inserted} inserted, ` +
444
- `${startupSeed.updated} updated, ${startupSeed.skipped} unchanged, ` +
445
- `${startupSeed.orgsCreated} orgs, ${startupSeed.hydratedAgents} cached`);
446
- }
447
- }
448
- catch (err) {
449
- console.warn('[hypermem] Startup fleet seed failed (non-fatal):', err.message);
450
- }
451
- }
452
- return hm;
453
- }
454
- // ─── Core API (L2: Message DB) ──────────────────────────────
455
- /**
456
- * Record a user message.
457
- */
458
- async recordUserMessage(agentId, sessionKey, content, opts) {
459
- const db = this.dbManager.getMessageDb(agentId);
460
- this.dbManager.ensureAgent(agentId);
461
- const store = new MessageStore(db);
462
- const conversation = store.getOrCreateConversation(agentId, sessionKey, {
463
- channelType: opts?.channelType,
464
- channelId: opts?.channelId,
465
- provider: opts?.provider,
466
- model: opts?.model,
467
- });
468
- let contextId;
469
- try {
470
- const { getOrCreateActiveContext } = await import('./context-store.js');
471
- const ctx = getOrCreateActiveContext(db, agentId, sessionKey, conversation.id);
472
- contextId = ctx.id;
473
- }
474
- catch (_) { /* context wiring is best-effort in Phase 1 */ }
475
- const neutral = userMessageToNeutral(stripMessageMetadata(content));
476
- const stored = store.recordMessage(conversation.id, agentId, neutral, {
477
- tokenCount: opts?.tokenCount,
478
- isHeartbeat: opts?.isHeartbeat,
479
- contextId,
480
- });
481
- await this.cache.pushHistory(agentId, sessionKey, [stored], this.config.compositor.maxHistoryMessages);
482
- await this.cache.touchSession(agentId, sessionKey);
483
- return stored;
484
- }
485
- /**
486
- * Record an assistant response.
487
- */
488
- async recordAssistantMessage(agentId, sessionKey, message, opts) {
489
- const db = this.dbManager.getMessageDb(agentId);
490
- const store = new MessageStore(db);
491
- const conversation = store.getConversation(sessionKey);
492
- if (!conversation) {
493
- throw new Error(`No conversation found for session ${sessionKey}`);
494
- }
495
- let contextId;
496
- try {
497
- const { getOrCreateActiveContext } = await import('./context-store.js');
498
- const ctx = getOrCreateActiveContext(db, agentId, sessionKey, conversation.id);
499
- contextId = ctx.id;
500
- }
501
- catch (_) { /* context wiring is best-effort in Phase 1 */ }
502
- const stored = store.recordMessage(conversation.id, agentId, message, {
503
- tokenCount: opts?.tokenCount,
504
- contextId,
505
- });
506
- await this.cache.pushHistory(agentId, sessionKey, [stored], this.config.compositor.maxHistoryMessages);
507
- await this.cache.touchSession(agentId, sessionKey);
508
- return stored;
509
- }
510
- /**
511
- * Record a raw provider response, converting to neutral format.
512
- */
513
- async recordProviderResponse(agentId, sessionKey, response, provider, opts) {
514
- const neutral = fromProviderFormat(response, provider);
515
- return this.recordAssistantMessage(agentId, sessionKey, neutral, opts);
516
- }
517
- /**
518
- * Compose context for an LLM call.
519
- */
520
- async compose(request) {
521
- const db = this.dbManager.getMessageDb(request.agentId);
522
- const libraryDb = this.dbManager.getLibraryDb();
523
- return this.compositor.compose(request, db, libraryDb);
524
- }
525
- // ─── Tool Artifacts (L2: per-agent, schema v9) ───────────────────
526
- /**
527
- * Persist a full tool result payload and return the durable record.
528
- * Used by the plugin wave-guard to capture payloads before stubbing the
529
- * transcript. Dedupes by content hash within the (agentId, sessionKey)
530
- * scope — identical payloads bump ref_count on the existing row.
531
- */
532
- async recordToolArtifact(agentId, sessionKey, input) {
533
- const db = this.dbManager.getMessageDb(agentId);
534
- this.dbManager.ensureAgent(agentId);
535
- const { ToolArtifactStore } = await import('./tool-artifact-store.js');
536
- const store = new ToolArtifactStore(db);
537
- return store.put({ ...input, agentId, sessionKey });
538
- }
539
- /** Fetch a tool artifact by id. Returns null if unknown. */
540
- async getToolArtifact(agentId, artifactId) {
541
- const db = this.dbManager.getMessageDb(agentId);
542
- const { ToolArtifactStore } = await import('./tool-artifact-store.js');
543
- const store = new ToolArtifactStore(db);
544
- const record = store.get(artifactId);
545
- if (record)
546
- store.touch(artifactId);
547
- return record;
548
- }
549
- /** List tool artifacts for a specific turn. */
550
- async listToolArtifactsByTurn(agentId, sessionKey, turnId) {
551
- const db = this.dbManager.getMessageDb(agentId);
552
- const { ToolArtifactStore } = await import('./tool-artifact-store.js');
553
- const store = new ToolArtifactStore(db);
554
- return store.listByTurn(sessionKey, turnId);
555
- }
556
- // ─── Archived Mining (L2: Messages) ─────────────────────────
557
- /**
558
- * List archived or forked contexts for an agent.
559
- *
560
- * operator-safe enumeration path. This is the approved archived-context
561
- * listing surface. Active composition remains separate.
562
- */
563
- listArchivedContexts(agentId, opts) {
564
- const db = this.dbManager.getMessageDb(agentId);
565
- return getArchivedContexts(db, agentId, opts);
566
- }
567
- /**
568
- * Mine a single archived or forked context through the archived-mining
569
- * surface. This does not widen active composition.
570
- */
571
- mineArchivedContext(agentId, query) {
572
- const db = this.dbManager.getMessageDb(agentId);
573
- const store = new MessageStore(db);
574
- return store.mineArchivedContext(query);
575
- }
576
- /**
577
- * Mine multiple archived or forked contexts through the capped archived-
578
- * mining surface. This does not expose raw DAG helpers and does not widen
579
- * active composition.
580
- */
581
- mineArchivedContexts(agentId, contextIds, opts) {
582
- const db = this.dbManager.getMessageDb(agentId);
583
- const store = new MessageStore(db);
584
- return store.mineArchivedContexts(contextIds, opts);
585
- }
586
- /**
587
- * Warm a session from SQLite into Redis.
588
- */
589
- async warm(agentId, sessionKey, opts) {
590
- const db = this.dbManager.getMessageDb(agentId);
591
- const libraryDb = this.dbManager.getLibraryDb();
592
- await this.compositor.warmSession(agentId, sessionKey, db, { ...opts, libraryDb });
593
- }
594
- /**
595
- * Recompute the Redis hot history view from SQLite and re-apply tool gradient.
596
- */
597
- async refreshRedisGradient(agentId, sessionKey, tokenBudget, historyDepth, trimSoftTarget) {
598
- const db = this.dbManager.getMessageDb(agentId);
599
- await this.compositor.refreshRedisGradient(agentId, sessionKey, db, tokenBudget, historyDepth, trimSoftTarget);
600
- }
601
- /**
602
- * Full-text search across all messages for an agent.
603
- */
604
- search(agentId, query, limit = 20) {
605
- const db = this.dbManager.getMessageDb(agentId);
606
- const store = new MessageStore(db);
607
- return store.searchMessages(agentId, query, limit);
608
- }
609
- /**
610
- * Get or create a conversation.
611
- */
612
- getOrCreateConversation(agentId, sessionKey, opts) {
613
- const db = this.dbManager.getMessageDb(agentId);
614
- this.dbManager.ensureAgent(agentId);
615
- const store = new MessageStore(db);
616
- return store.getOrCreateConversation(agentId, sessionKey, opts);
617
- }
618
- /**
619
- * List all agents with databases.
620
- */
621
- listAgents() {
622
- return this.dbManager.listAgents();
623
- }
624
- // ─── Facts (L4: Library) ────────────────────────────────────
625
- /**
626
- * Add a fact.
627
- */
628
- addFact(agentId, content, opts) {
629
- const db = this.dbManager.getLibraryDb();
630
- const store = new FactStore(db);
631
- return store.addFact(agentId, content, opts);
632
- }
633
- /**
634
- * Get active facts for an agent.
635
- */
636
- getActiveFacts(agentId, opts) {
637
- const db = this.dbManager.getLibraryDb();
638
- const store = new FactStore(db);
639
- return store.getActiveFacts(agentId, opts);
640
- }
641
- // ─── Knowledge (L4: Library) ────────────────────────────────
642
- /**
643
- * Add/update knowledge.
644
- */
645
- upsertKnowledge(agentId, domain, key, content, opts) {
646
- const db = this.dbManager.getLibraryDb();
647
- const store = new KnowledgeStore(db);
648
- return store.upsert(agentId, domain, key, content, opts);
649
- }
650
- /**
651
- * Get active knowledge, optionally filtered by domain.
652
- */
653
- getKnowledge(agentId, opts) {
654
- const db = this.dbManager.getLibraryDb();
655
- const store = new KnowledgeStore(db);
656
- return store.getActive(agentId, opts);
657
- }
658
- // ─── Topics (L4: Library) ───────────────────────────────────
659
- /**
660
- * Create a topic.
661
- */
662
- createTopic(agentId, name, description) {
663
- const db = this.dbManager.getLibraryDb();
664
- const store = new TopicStore(db);
665
- return store.create(agentId, name, description);
666
- }
667
- /**
668
- * Get active topics.
669
- */
670
- getActiveTopics(agentId, limit = 20) {
671
- const db = this.dbManager.getLibraryDb();
672
- const store = new TopicStore(db);
673
- return store.getActive(agentId, limit);
674
- }
675
- // ─── Episodes (L4: Library) ─────────────────────────────────
676
- /**
677
- * Record an episode.
678
- */
679
- recordEpisode(agentId, eventType, summary, opts) {
680
- const db = this.dbManager.getLibraryDb();
681
- const store = new EpisodeStore(db);
682
- return store.record(agentId, eventType, summary, opts);
683
- }
684
- /**
685
- * Get recent episodes.
686
- */
687
- getRecentEpisodes(agentId, opts) {
688
- const db = this.dbManager.getLibraryDb();
689
- const store = new EpisodeStore(db);
690
- return store.getRecent(agentId, opts);
691
- }
692
- // ─── Preferences (L4: Library) ──────────────────────────────
693
- /**
694
- * Set a preference.
695
- */
696
- setPreference(subject, key, value, opts) {
697
- const db = this.dbManager.getLibraryDb();
698
- const store = new PreferenceStore(db);
699
- return store.set(subject, key, value, opts);
700
- }
701
- /**
702
- * Get a preference.
703
- */
704
- getPreference(subject, key, domain) {
705
- const db = this.dbManager.getLibraryDb();
706
- const store = new PreferenceStore(db);
707
- return store.get(subject, key, domain);
708
- }
709
- /**
710
- * Get all preferences for a subject.
711
- */
712
- getPreferences(subject, domain) {
713
- const db = this.dbManager.getLibraryDb();
714
- const store = new PreferenceStore(db);
715
- return store.getForSubject(subject, domain);
716
- }
717
- // ─── Fleet Registry (L4: Library) ───────────────────────────
718
- /**
719
- * Register or update a fleet agent. Invalidates cache.
720
- */
721
- upsertFleetAgent(id, data) {
722
- const db = this.dbManager.getLibraryDb();
723
- const store = new FleetStore(db);
724
- const result = store.upsertAgent(id, data);
725
- // Invalidate cache — fire and forget
726
- this.cache.invalidateFleetAgent(id).catch(() => { });
727
- return result;
728
- }
729
- /**
730
- * Get a fleet agent. Cache-aside: check Redis first, fall back to SQLite.
731
- */
732
- async getFleetAgentCached(id) {
733
- // Try cache first
734
- const cached = await this.cache.getCachedFleetAgent(id);
735
- if (cached)
736
- return cached;
737
- // Fall back to SQLite
738
- const agent = this.getFleetAgent(id);
739
- if (agent) {
740
- // Warm cache — fire and forget
741
- this.cache.cacheFleetAgent(id, agent).catch(() => { });
742
- }
743
- return agent;
744
- }
745
- /**
746
- * Get a fleet agent (synchronous, SQLite only).
747
- */
748
- getFleetAgent(id) {
749
- const db = this.dbManager.getLibraryDb();
750
- const store = new FleetStore(db);
751
- return store.getAgent(id);
752
- }
753
- /**
754
- * List fleet agents.
755
- */
756
- listFleetAgents(opts) {
757
- const db = this.dbManager.getLibraryDb();
758
- const store = new FleetStore(db);
759
- return store.listAgents(opts);
760
- }
761
- /**
762
- * Register or update a fleet org.
763
- */
764
- upsertFleetOrg(id, data) {
765
- const db = this.dbManager.getLibraryDb();
766
- const store = new FleetStore(db);
767
- return store.upsertOrg(id, data);
768
- }
769
- /**
770
- * List fleet orgs.
771
- */
772
- listFleetOrgs() {
773
- const db = this.dbManager.getLibraryDb();
774
- const store = new FleetStore(db);
775
- return store.listOrgs();
776
- }
777
- // ─── Agent Capabilities (L4: Library) ────────────────────────
778
- /**
779
- * Register or update a capability for an agent.
780
- */
781
- upsertCapability(agentId, cap) {
782
- const db = this.dbManager.getLibraryDb();
783
- const store = new FleetStore(db);
784
- return store.upsertCapability(agentId, cap);
785
- }
786
- /**
787
- * Bulk-sync capabilities of a given type for an agent.
788
- * Marks capabilities not in the list as 'removed'.
789
- */
790
- syncCapabilities(agentId, capType, caps) {
791
- const db = this.dbManager.getLibraryDb();
792
- const store = new FleetStore(db);
793
- store.syncCapabilities(agentId, capType, caps);
794
- }
795
- /**
796
- * Get capabilities for an agent, optionally filtered by type.
797
- */
798
- getAgentCapabilities(agentId, capType) {
799
- const db = this.dbManager.getLibraryDb();
800
- const store = new FleetStore(db);
801
- return store.getAgentCapabilities(agentId, capType);
802
- }
803
- /**
804
- * Find agents that have a specific capability.
805
- */
806
- findAgentsByCapability(capType, name) {
807
- const db = this.dbManager.getLibraryDb();
808
- const store = new FleetStore(db);
809
- return store.findByCapability(capType, name);
810
- }
811
- // ─── System Registry (L4: Library) ──────────────────────────
812
- /**
813
- * Set a system state value.
814
- */
815
- setSystemState(category, key, value, opts) {
816
- const db = this.dbManager.getLibraryDb();
817
- const store = new SystemStore(db);
818
- return store.set(category, key, value, opts);
819
- }
820
- /**
821
- * Get a system state value.
822
- */
823
- getSystemState(category, key) {
824
- const db = this.dbManager.getLibraryDb();
825
- const store = new SystemStore(db);
826
- return store.get(category, key);
827
- }
828
- /**
829
- * Get all state in a category.
830
- */
831
- getSystemCategory(category) {
832
- const db = this.dbManager.getLibraryDb();
833
- const store = new SystemStore(db);
834
- return store.getCategory(category);
835
- }
836
- // ─── Work Items (L4: Library) ───────────────────────────────
837
- /**
838
- * Create a work item.
839
- */
840
- createWorkItem(data) {
841
- const db = this.dbManager.getLibraryDb();
842
- const store = new WorkStore(db);
843
- return store.create(data);
844
- }
845
- /**
846
- * Update work item status.
847
- */
848
- updateWorkStatus(id, status, agentId, comment) {
849
- const db = this.dbManager.getLibraryDb();
850
- const store = new WorkStore(db);
851
- return store.updateStatus(id, status, agentId, comment);
852
- }
853
- /**
854
- * Get active work for an agent.
855
- */
856
- getAgentWork(agentId, status) {
857
- const db = this.dbManager.getLibraryDb();
858
- const store = new WorkStore(db);
859
- return store.getAgentWork(agentId, status);
860
- }
861
- /**
862
- * Get the fleet kanban board.
863
- */
864
- getFleetKanban(opts) {
865
- const db = this.dbManager.getLibraryDb();
866
- const store = new WorkStore(db);
867
- return store.getKanban(opts);
868
- }
869
- /**
870
- * Get work item stats.
871
- */
872
- getWorkStats(opts) {
873
- const db = this.dbManager.getLibraryDb();
874
- const store = new WorkStore(db);
875
- return store.getStats(opts);
876
- }
877
- /**
878
- * Get blocked work items.
879
- */
880
- getBlockedWork() {
881
- const db = this.dbManager.getLibraryDb();
882
- const store = new WorkStore(db);
883
- return store.getBlocked();
884
- }
885
- // ─── Agent Desired State (L4: Library) ──────────────────────
886
- /**
887
- * Set desired configuration for an agent.
888
- */
889
- setDesiredState(agentId, configKey, desiredValue, opts) {
890
- const db = this.dbManager.getLibraryDb();
891
- const store = new DesiredStateStore(db);
892
- const result = store.setDesired(agentId, configKey, desiredValue, opts);
893
- // Invalidate cache — desired state change affects fleet view
894
- this.cache.invalidateFleetAgent(agentId).catch(() => { });
895
- return result;
896
- }
897
- /**
898
- * Report actual runtime value for drift detection. Invalidates cache.
899
- */
900
- reportActualState(agentId, configKey, actualValue) {
901
- const db = this.dbManager.getLibraryDb();
902
- const store = new DesiredStateStore(db);
903
- const result = store.reportActual(agentId, configKey, actualValue);
904
- this.cache.invalidateFleetAgent(agentId).catch(() => { });
905
- return result;
906
- }
907
- /**
908
- * Bulk report actual state (e.g., on session startup / heartbeat). Invalidates cache.
909
- */
910
- reportActualStateBulk(agentId, actuals) {
911
- const db = this.dbManager.getLibraryDb();
912
- const store = new DesiredStateStore(db);
913
- const result = store.reportActualBulk(agentId, actuals);
914
- this.cache.invalidateFleetAgent(agentId).catch(() => { });
915
- return result;
916
- }
917
- /**
918
- * Get all desired state for an agent.
919
- */
920
- getDesiredState(agentId) {
921
- const db = this.dbManager.getLibraryDb();
922
- const store = new DesiredStateStore(db);
923
- return store.getAgentState(agentId);
924
- }
925
- /**
926
- * Get desired state as a flat config map.
927
- */
928
- getDesiredConfig(agentId) {
929
- const db = this.dbManager.getLibraryDb();
930
- const store = new DesiredStateStore(db);
931
- return store.getAgentConfig(agentId);
932
- }
933
- /**
934
- * Get all drifted entries across the fleet.
935
- */
936
- getDriftedState() {
937
- const db = this.dbManager.getLibraryDb();
938
- const store = new DesiredStateStore(db);
939
- return store.getDrifted();
940
- }
941
- /**
942
- * Get fleet-wide view of a specific config key.
943
- */
944
- getFleetConfigKey(configKey) {
945
- const db = this.dbManager.getLibraryDb();
946
- const store = new DesiredStateStore(db);
947
- return store.getFleetConfig(configKey);
948
- }
949
- /**
950
- * Get config change history.
951
- */
952
- getConfigHistory(agentId, configKey, limit) {
953
- const db = this.dbManager.getLibraryDb();
954
- const store = new DesiredStateStore(db);
955
- return store.getHistory(agentId, configKey, limit);
956
- }
957
- /**
958
- * Get fleet drift summary.
959
- */
960
- getDriftSummary() {
961
- const db = this.dbManager.getLibraryDb();
962
- const store = new DesiredStateStore(db);
963
- return store.getDriftSummary();
964
- }
965
- // ─── Knowledge Graph (L4: Library) ──────────────────────────
966
- /**
967
- * Add a directed link between two entities.
968
- */
969
- addKnowledgeLink(fromType, fromId, toType, toId, linkType) {
970
- const db = this.dbManager.getLibraryDb();
971
- const graph = new KnowledgeGraph(db);
972
- return graph.addLink(fromType, fromId, toType, toId, linkType);
973
- }
974
- /**
975
- * Remove a specific link.
976
- */
977
- removeKnowledgeLink(fromType, fromId, toType, toId, linkType) {
978
- const db = this.dbManager.getLibraryDb();
979
- const graph = new KnowledgeGraph(db);
980
- return graph.removeLink(fromType, fromId, toType, toId, linkType);
981
- }
982
- /**
983
- * Get all links for an entity (both directions).
984
- */
985
- getEntityLinks(type, id) {
986
- const db = this.dbManager.getLibraryDb();
987
- const graph = new KnowledgeGraph(db);
988
- return graph.getLinks(type, id);
989
- }
990
- /**
991
- * Traverse the knowledge graph from a starting entity.
992
- * BFS with bounded depth and result count.
993
- */
994
- traverseGraph(startType, startId, opts) {
995
- const db = this.dbManager.getLibraryDb();
996
- const graph = new KnowledgeGraph(db);
997
- return graph.traverse(startType, startId, opts);
998
- }
999
- /**
1000
- * Find the shortest path between two entities.
1001
- */
1002
- findGraphPath(fromType, fromId, toType, toId, maxDepth) {
1003
- const db = this.dbManager.getLibraryDb();
1004
- const graph = new KnowledgeGraph(db);
1005
- return graph.findPath(fromType, fromId, toType, toId, maxDepth);
1006
- }
1007
- /**
1008
- * Get the most connected entities.
1009
- */
1010
- getMostConnectedEntities(opts) {
1011
- const db = this.dbManager.getLibraryDb();
1012
- const graph = new KnowledgeGraph(db);
1013
- return graph.getMostConnected(opts);
1014
- }
1015
- /**
1016
- * Get knowledge graph statistics.
1017
- */
1018
- getGraphStats() {
1019
- const db = this.dbManager.getLibraryDb();
1020
- const graph = new KnowledgeGraph(db);
1021
- return {
1022
- totalLinks: graph.getTotalLinks(),
1023
- byType: graph.getLinkStats(),
1024
- };
1025
- }
1026
- // ─── Vector / Semantic Search (L3: Vectors DB) ──────────────
1027
- /**
1028
- * Semantic search across an agent's indexed memory.
1029
- */
1030
- async semanticSearch(agentId, query, opts) {
1031
- const db = this.dbManager.getVectorDb(agentId);
1032
- if (!db) {
1033
- console.warn('[hypermem] Semantic search unavailable — sqlite-vec not loaded');
1034
- return [];
1035
- }
1036
- const libraryDb = this.dbManager.getLibraryDb();
1037
- const vs = new VectorStore(db, this.config.embedding, libraryDb);
1038
- return vs.search(query, opts);
1039
- }
1040
- /**
1041
- * Index all un-indexed content for an agent.
1042
- */
1043
- async indexAgent(agentId) {
1044
- const db = this.dbManager.getVectorDb(agentId);
1045
- if (!db)
1046
- return { indexed: 0, skipped: 0, tombstoned: 0 };
1047
- const libraryDb = this.dbManager.getLibraryDb();
1048
- const vs = new VectorStore(db, this.config.embedding, libraryDb);
1049
- vs.ensureTables();
1050
- const result = await vs.indexAll(agentId);
1051
- // Tombstone superseded facts/knowledge so they don't surface in recall
1052
- const tombstoned = vs.tombstoneSuperseded();
1053
- return { ...result, tombstoned };
1054
- }
1055
- /**
1056
- * Get vector index statistics.
1057
- */
1058
- getVectorStats(agentId) {
1059
- const db = this.dbManager.getVectorDb(agentId);
1060
- if (!db)
1061
- return null;
1062
- const libraryDb = this.dbManager.getLibraryDb();
1063
- const vs = new VectorStore(db, this.config.embedding, libraryDb);
1064
- return vs.getStats();
1065
- }
1066
- /**
1067
- * Prune orphaned vector entries.
1068
- */
1069
- pruneVectorOrphans(agentId) {
1070
- const db = this.dbManager.getVectorDb(agentId);
1071
- if (!db)
1072
- return 0;
1073
- const libraryDb = this.dbManager.getLibraryDb();
1074
- const vs = new VectorStore(db, this.config.embedding, libraryDb);
1075
- return vs.pruneOrphans();
1076
- }
1077
- // ─── Session Cursor (dual-read: Redis → SQLite fallback) ──────
1078
- /**
1079
- * Get the session cursor for an agent+session.
1080
- * Reads from Redis first; falls back to SQLite if Redis returns null
1081
- * (e.g. after eviction or restart). This is the P1.3 durability guarantee.
1082
- */
1083
- async getSessionCursor(agentId, sessionKey) {
1084
- // Try Redis first (hot path)
1085
- const redisCursor = await this.cache.getCursor(agentId, sessionKey);
1086
- if (redisCursor)
1087
- return redisCursor;
1088
- // Fallback to SQLite
1089
- const db = this.dbManager.getMessageDb(agentId);
1090
- if (!db)
1091
- return null;
1092
- const row = db.prepare(`
1093
- SELECT cursor_last_sent_id, cursor_last_sent_index, cursor_last_sent_at,
1094
- cursor_window_size, cursor_token_count
1095
- FROM conversations
1096
- WHERE session_key = ? AND cursor_last_sent_id IS NOT NULL
1097
- `).get(sessionKey);
1098
- if (!row || row.cursor_last_sent_id == null)
1099
- return null;
1100
- const cursor = {
1101
- lastSentId: row.cursor_last_sent_id,
1102
- lastSentIndex: row.cursor_last_sent_index,
1103
- lastSentAt: row.cursor_last_sent_at,
1104
- windowSize: row.cursor_window_size,
1105
- tokenCount: row.cursor_token_count,
1106
- };
1107
- // Re-warm Redis so subsequent reads are fast
1108
- try {
1109
- await this.cache.setCursor(agentId, sessionKey, cursor);
1110
- }
1111
- catch {
1112
- // Best-effort re-warm
1113
- }
1114
- return cursor;
1115
- }
1116
- // ─── Message Rotation (L2: Messages) ────────────────────────
1117
- /**
1118
- * Get the size of an agent's active messages.db in bytes.
1119
- */
1120
- getMessageDbSize(agentId) {
1121
- return this.dbManager.getMessageDbSize(agentId);
1122
- }
1123
- /**
1124
- * Check if an agent's message database needs rotation.
1125
- */
1126
- shouldRotate(agentId, opts) {
1127
- return this.dbManager.shouldRotate(agentId, opts);
1128
- }
1129
- /**
1130
- * Rotate an agent's message database.
1131
- * Returns the path to the rotated file, or null if no active DB exists.
1132
- */
1133
- rotateMessageDb(agentId) {
1134
- return this.dbManager.rotateMessageDb(agentId);
1135
- }
1136
- /**
1137
- * List rotated message DB files for an agent.
1138
- */
1139
- listRotatedDbs(agentId) {
1140
- return this.dbManager.listRotatedDbs(agentId);
1141
- }
1142
- /**
1143
- * Check and auto-rotate all agents' message databases.
1144
- * Call on heartbeat/startup.
1145
- * Returns agents that were rotated.
1146
- */
1147
- autoRotate(opts) {
1148
- const agents = this.dbManager.listAgents();
1149
- const rotated = [];
1150
- for (const agentId of agents) {
1151
- const check = this.shouldRotate(agentId, opts);
1152
- if (check) {
1153
- const rotatedPath = this.rotateMessageDb(agentId);
1154
- if (rotatedPath) {
1155
- rotated.push({
1156
- agentId,
1157
- reason: `${check.reason}: ${check.current} > ${check.threshold}`,
1158
- rotatedTo: rotatedPath,
1159
- });
1160
- }
1161
- }
1162
- }
1163
- return rotated;
1164
- }
1165
- // ─── Session Registry (L4: Library) ─────────────────────────
1166
- /**
1167
- * Register a session start.
1168
- */
1169
- registerSession(sessionKey, agentId, opts) {
1170
- const db = this.dbManager.getLibraryDb();
1171
- const now = new Date().toISOString();
1172
- const existing = db
1173
- .prepare('SELECT id FROM session_registry WHERE id = ?')
1174
- .get(sessionKey);
1175
- if (existing) {
1176
- db.prepare('UPDATE session_registry SET status = ?, started_at = ? WHERE id = ?')
1177
- .run('active', now, sessionKey);
1178
- }
1179
- else {
1180
- db.prepare(`INSERT INTO session_registry (id, agent_id, channel, channel_type, started_at, status)
1181
- VALUES (?, ?, ?, ?, ?, 'active')`).run(sessionKey, agentId, opts?.channel || null, opts?.channelType || null, now);
1182
- }
1183
- db.prepare('INSERT INTO session_events (session_id, event_type, timestamp, payload) VALUES (?, ?, ?, ?)').run(sessionKey, 'start', now, JSON.stringify({ channel: opts?.channel, channelType: opts?.channelType }));
1184
- }
1185
- /**
1186
- * Record a session event.
1187
- */
1188
- recordSessionEvent(sessionKey, eventType, payload) {
1189
- const db = this.dbManager.getLibraryDb();
1190
- db.prepare('INSERT INTO session_events (session_id, event_type, timestamp, payload) VALUES (?, ?, ?, ?)').run(sessionKey, eventType, new Date().toISOString(), payload ? JSON.stringify(payload) : null);
1191
- if (eventType === 'decision') {
1192
- db.prepare('UPDATE session_registry SET decisions_made = decisions_made + 1 WHERE id = ?').run(sessionKey);
1193
- }
1194
- else if (eventType === 'fact_extracted') {
1195
- db.prepare('UPDATE session_registry SET facts_extracted = facts_extracted + 1 WHERE id = ?').run(sessionKey);
1196
- }
1197
- }
1198
- /**
1199
- * Close a session.
1200
- */
1201
- closeSession(sessionKey, summary) {
1202
- const db = this.dbManager.getLibraryDb();
1203
- const now = new Date().toISOString();
1204
- db.prepare('UPDATE session_registry SET status = ?, ended_at = ?, summary = ? WHERE id = ?').run('completed', now, summary || null, sessionKey);
1205
- db.prepare('INSERT INTO session_events (session_id, event_type, timestamp) VALUES (?, ?, ?)').run(sessionKey, 'completion', now);
1206
- }
1207
- /**
1208
- * Query sessions.
1209
- */
1210
- querySessions(opts) {
1211
- const db = this.dbManager.getLibraryDb();
1212
- const conditions = [];
1213
- const params = [];
1214
- if (opts?.agentId) {
1215
- conditions.push('agent_id = ?');
1216
- params.push(opts.agentId);
1217
- }
1218
- if (opts?.status) {
1219
- conditions.push('status = ?');
1220
- params.push(opts.status);
1221
- }
1222
- if (opts?.since) {
1223
- conditions.push('started_at >= ?');
1224
- params.push(opts.since);
1225
- }
1226
- const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
1227
- return db
1228
- .prepare(`SELECT * FROM session_registry ${where} ORDER BY started_at DESC LIMIT ?`)
1229
- .all(...params, opts?.limit || 50);
1230
- }
1231
- /**
1232
- * Get session events.
1233
- */
1234
- getSessionEvents(sessionKey, limit = 50) {
1235
- const db = this.dbManager.getLibraryDb();
1236
- return db
1237
- .prepare('SELECT * FROM session_events WHERE session_id = ? ORDER BY timestamp DESC LIMIT ?')
1238
- .all(sessionKey, limit);
1239
- }
1240
- // ─── Cross-Agent Queries ─────────────────────────────────────
1241
- /**
1242
- * Query another agent's memory with visibility-scoped access.
1243
- */
1244
- queryAgent(requesterId, targetAgentId, opts, registry) {
1245
- return crossAgentQuery(this.dbManager, {
1246
- requesterId,
1247
- targetAgentId,
1248
- memoryType: opts?.memoryType || 'facts',
1249
- domain: opts?.domain,
1250
- limit: opts?.limit,
1251
- }, registry || buildOrgRegistryFromDb(this.dbManager.getLibraryDb()));
1252
- }
1253
- /**
1254
- * Query fleet-wide visible memory.
1255
- */
1256
- queryFleet(requesterId, opts, registry) {
1257
- const reg = registry || buildOrgRegistryFromDb(this.dbManager.getLibraryDb());
1258
- const results = [];
1259
- // Query all agents from the fleet registry
1260
- const libraryDb = this.dbManager.getLibraryDb();
1261
- const agents = libraryDb
1262
- .prepare("SELECT id FROM fleet_agents WHERE status = 'active'")
1263
- .all();
1264
- for (const agent of agents) {
1265
- if (agent.id === requesterId)
1266
- continue;
1267
- try {
1268
- const agentResults = this.queryAgent(requesterId, agent.id, opts, reg);
1269
- results.push(...agentResults);
1270
- }
1271
- catch {
1272
- // Skip agents we can't query (not in registry)
1273
- }
1274
- }
1275
- return results;
1276
- }
1277
- // ─── Document Chunks (L4: Library) ──────────────────────────
1278
- /**
1279
- * Index chunks from a parsed set of DocChunk objects.
1280
- * Atomic: replaces all chunks for the source in one transaction.
1281
- */
1282
- indexDocChunks(chunks) {
1283
- const db = this.dbManager.getLibraryDb();
1284
- const store = new DocChunkStore(db);
1285
- return store.indexChunks(chunks);
1286
- }
1287
- /**
1288
- * Query doc chunks by collection with optional keyword/scope/agent filters.
1289
- */
1290
- queryDocChunks(query) {
1291
- const db = this.dbManager.getLibraryDb();
1292
- const store = new DocChunkStore(db);
1293
- return store.queryChunks(query);
1294
- }
1295
- /**
1296
- * Seed all ACA files from a workspace directory into the doc chunk index.
1297
- * Idempotent: skips files whose source hash hasn't changed.
1298
- * Force re-index with opts.force = true.
1299
- */
1300
- async seedWorkspace(workspaceDir, opts = {}) {
1301
- const db = this.dbManager.getLibraryDb();
1302
- const seeder = new WorkspaceSeeder(db);
1303
- return seeder.seedWorkspace(workspaceDir, opts);
1304
- }
1305
- /**
1306
- * Seed a single file into the doc chunk index.
1307
- */
1308
- seedFile(filePath, collection, opts = {}) {
1309
- const db = this.dbManager.getLibraryDb();
1310
- const seeder = new WorkspaceSeeder(db);
1311
- return seeder.seedFile(filePath, collection, opts);
1312
- }
1313
- /**
1314
- * Get stats about the current doc chunk index.
1315
- */
1316
- getDocIndexStats() {
1317
- const db = this.dbManager.getLibraryDb();
1318
- const store = new DocChunkStore(db);
1319
- return store.getStats();
1320
- }
1321
- /**
1322
- * List indexed sources (what files have been seeded and their hashes).
1323
- */
1324
- listDocSources(opts) {
1325
- const db = this.dbManager.getLibraryDb();
1326
- const store = new DocChunkStore(db);
1327
- return store.listSources(opts);
1328
- }
1329
- // ─── Fleet Startup Seeding + Cache Hydration ────────────────
1330
- /**
1331
- * Seed fleet agents from known workspace identity files and existing
1332
- * message-db agent directories, then optionally hydrate the Redis fleet cache.
1333
- *
1334
- * The sweep is idempotent: existing rows are only updated when startup-discovered
1335
- * values differ, so repeated boots do not duplicate or churn fleet rows.
1336
- */
1337
- async seedFleetAgentsOnStartup(opts = {}) {
1338
- const db = this.dbManager.getLibraryDb();
1339
- const store = new FleetStore(db);
1340
- const discovered = discoverStartupFleetCandidates(this.dbManager, opts);
1341
- let inserted = 0;
1342
- let updated = 0;
1343
- let skipped = 0;
1344
- let orgsCreated = 0;
1345
- for (const candidate of discovered) {
1346
- const existing = store.getAgent(candidate.agentId);
1347
- const mergedMetadata = {
1348
- ...(existing?.metadata ?? {}),
1349
- ...(candidate.metadata ?? {}),
1350
- };
1351
- if (!existing) {
1352
- store.upsertAgent(candidate.agentId, {
1353
- displayName: candidate.displayName,
1354
- tier: candidate.tier,
1355
- orgId: candidate.orgId ?? undefined,
1356
- reportsTo: candidate.reportsTo ?? undefined,
1357
- status: 'active',
1358
- metadata: Object.keys(mergedMetadata).length > 0 ? mergedMetadata : undefined,
1359
- });
1360
- inserted++;
1361
- continue;
1362
- }
1363
- const patch = {};
1364
- if (candidate.displayName && candidate.displayName !== existing.displayName) {
1365
- patch.displayName = candidate.displayName;
1366
- }
1367
- if (candidate.tier && candidate.tier !== 'unknown' && candidate.tier !== existing.tier) {
1368
- patch.tier = candidate.tier;
1369
- }
1370
- if (candidate.orgId && candidate.orgId !== existing.orgId) {
1371
- patch.orgId = candidate.orgId;
1372
- }
1373
- if (candidate.reportsTo && candidate.reportsTo !== existing.reportsTo) {
1374
- patch.reportsTo = candidate.reportsTo;
1375
- }
1376
- if (JSON.stringify(mergedMetadata) !== JSON.stringify(existing.metadata ?? {})) {
1377
- patch.metadata = mergedMetadata;
1378
- }
1379
- if (Object.keys(patch).length === 0) {
1380
- skipped++;
1381
- continue;
1382
- }
1383
- store.upsertAgent(candidate.agentId, patch);
1384
- updated++;
1385
- }
1386
- for (const candidate of discovered) {
1387
- if (!candidate.orgId)
1388
- continue;
1389
- if (store.getOrg(candidate.orgId))
1390
- continue;
1391
- if (candidate.tier !== 'council')
1392
- continue;
1393
- store.upsertOrg(candidate.orgId, {
1394
- name: `${candidate.displayName} Org`,
1395
- leadAgentId: candidate.agentId,
1396
- });
1397
- orgsCreated++;
1398
- }
1399
- let hydratedAgents = 0;
1400
- let hydratedSummary = false;
1401
- if (opts.hydrateCache !== false) {
1402
- const hydrated = await this.hydrateFleetCache();
1403
- hydratedAgents = hydrated.agents;
1404
- hydratedSummary = hydrated.summary;
1405
- }
1406
- return {
1407
- discovered: discovered.length,
1408
- inserted,
1409
- updated,
1410
- skipped,
1411
- orgsCreated,
1412
- hydratedAgents,
1413
- hydratedSummary,
1414
- };
1415
- }
1416
- /**
1417
- * Hydrate the Redis fleet cache from library.db.
1418
- * Call on gateway startup to warm the cache for dashboard queries.
1419
- *
1420
- * Populates:
1421
- * - Per-agent profiles (fleet registry + capabilities + desired state)
1422
- * - Fleet summary (counts, drift status)
1423
- */
1424
- async hydrateFleetCache() {
1425
- if (!this.cache.isConnected)
1426
- return { agents: 0, summary: false };
1427
- const db = this.dbManager.getLibraryDb();
1428
- const fleetStore = new FleetStore(db);
1429
- const desiredStore = new DesiredStateStore(db);
1430
- const agents = fleetStore.listAgents();
1431
- let hydrated = 0;
1432
- for (const agent of agents) {
1433
- try {
1434
- // Build a composite profile for each agent
1435
- const capabilities = fleetStore.getAgentCapabilities(agent.id);
1436
- const desiredState = desiredStore.getAgentState(agent.id);
1437
- const desiredConfig = desiredStore.getAgentConfig(agent.id);
1438
- const composite = {
1439
- ...agent,
1440
- capabilities: capabilities.map(c => ({ capType: c.capType, name: c.name, version: c.version })),
1441
- desiredState: desiredState.map(d => ({
1442
- configKey: d.configKey,
1443
- desiredValue: d.desiredValue,
1444
- actualValue: d.actualValue,
1445
- driftStatus: d.driftStatus,
1446
- })),
1447
- desiredConfig,
1448
- };
1449
- await this.cache.cacheFleetAgent(agent.id, composite);
1450
- hydrated++;
1451
- }
1452
- catch (err) {
1453
- const message = err instanceof Error ? err.message : String(err);
1454
- console.warn(`[hypermem] Failed to cache agent ${agent.id}: ${message}`);
1455
- }
1456
- }
1457
- // Cache fleet summary
1458
- try {
1459
- const driftSummary = desiredStore.getDriftSummary();
1460
- const summary = {
1461
- totalAgents: agents.length,
1462
- activeAgents: agents.filter(a => a.status === 'active').length,
1463
- tiers: {
1464
- council: agents.filter(a => a.tier === 'council').length,
1465
- director: agents.filter(a => a.tier === 'director').length,
1466
- specialist: agents.filter(a => a.tier === 'specialist').length,
1467
- },
1468
- drift: driftSummary,
1469
- hydratedAt: new Date().toISOString(),
1470
- };
1471
- await this.cache.cacheFleetSummary(summary);
1472
- }
1473
- catch {
1474
- return { agents: hydrated, summary: false };
1475
- }
1476
- return { agents: hydrated, summary: true };
1477
- }
1478
- // ─── Lifecycle ───────────────────────────────────────────────
1479
- /**
1480
- * Clean shutdown.
1481
- */
1482
- async close() {
1483
- await this.cache.disconnect();
1484
- this.dbManager.close();
1485
- }
1486
- }
1487
- export default HyperMem;
1488
- export { SessionFlusher, flushSession } from './session-flusher.js';
1489
- export { importVault, watchVault, parseObsidianNote, parseFrontmatter, extractWikilinks, extractTags, cleanObsidianMarkdown } from './obsidian-watcher.js';
1490
- export { exportToVault } from './obsidian-exporter.js';
1491
- export { collectMetrics, formatMetricsSummary } from './metrics-dashboard.js';
1492
- export { getProfile, mergeProfile, PROFILES, lightProfile, standardProfile, fullProfile, extendedProfile, minimalProfile, richProfile } from './profiles.js';
1493
- export { renderStarterFOS, resolveOutputTier } from './fos-mod.js';
1494
- export { repairToolPairs } from './repair-tool-pairs.js';
1495
- //# sourceMappingURL=index.js.map