@hasna/mementos 0.14.86 → 0.14.88

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 (572) hide show
  1. package/bun.lock +3 -0
  2. package/dist/cli/__fixtures__/clean-fallback-stub-server.d.ts +2 -0
  3. package/dist/cli/__fixtures__/clean-fallback-stub-server.d.ts.map +1 -0
  4. package/dist/cli/__fixtures__/io-restore-stub-server.d.ts +2 -0
  5. package/dist/cli/__fixtures__/io-restore-stub-server.d.ts.map +1 -0
  6. package/dist/cli/brains.d.ts +3 -0
  7. package/dist/cli/brains.d.ts.map +1 -0
  8. package/dist/cli/commands/agent.d.ts +3 -0
  9. package/dist/cli/commands/agent.d.ts.map +1 -0
  10. package/dist/cli/commands/consolidation.d.ts +3 -0
  11. package/dist/cli/commands/consolidation.d.ts.map +1 -0
  12. package/dist/cli/commands/entity.d.ts +3 -0
  13. package/dist/cli/commands/entity.d.ts.map +1 -0
  14. package/dist/cli/commands/graph.d.ts +3 -0
  15. package/dist/cli/commands/graph.d.ts.map +1 -0
  16. package/dist/cli/commands/info-context.d.ts +3 -0
  17. package/dist/cli/commands/info-context.d.ts.map +1 -0
  18. package/dist/cli/commands/info-history.d.ts +3 -0
  19. package/dist/cli/commands/info-history.d.ts.map +1 -0
  20. package/dist/cli/commands/info-report.d.ts +3 -0
  21. package/dist/cli/commands/info-report.d.ts.map +1 -0
  22. package/dist/cli/commands/info-stale.d.ts +3 -0
  23. package/dist/cli/commands/info-stale.d.ts.map +1 -0
  24. package/dist/cli/commands/info-stats.d.ts +3 -0
  25. package/dist/cli/commands/info-stats.d.ts.map +1 -0
  26. package/dist/cli/commands/info.d.ts +12 -0
  27. package/dist/cli/commands/info.d.ts.map +1 -0
  28. package/dist/cli/commands/init.d.ts +3 -0
  29. package/dist/cli/commands/init.d.ts.map +1 -0
  30. package/dist/cli/commands/io-backup.d.ts +3 -0
  31. package/dist/cli/commands/io-backup.d.ts.map +1 -0
  32. package/dist/cli/commands/io-clean.d.ts +3 -0
  33. package/dist/cli/commands/io-clean.d.ts.map +1 -0
  34. package/dist/cli/commands/io-export.d.ts +3 -0
  35. package/dist/cli/commands/io-export.d.ts.map +1 -0
  36. package/dist/cli/commands/io-import.d.ts +3 -0
  37. package/dist/cli/commands/io-import.d.ts.map +1 -0
  38. package/dist/cli/commands/io-restore.d.ts +3 -0
  39. package/dist/cli/commands/io-restore.d.ts.map +1 -0
  40. package/dist/cli/commands/io.d.ts +12 -0
  41. package/dist/cli/commands/io.d.ts.map +1 -0
  42. package/dist/cli/commands/memory-cmd-bulk.d.ts +3 -0
  43. package/dist/cli/commands/memory-cmd-bulk.d.ts.map +1 -0
  44. package/dist/cli/commands/memory-cmd-chain.d.ts +3 -0
  45. package/dist/cli/commands/memory-cmd-chain.d.ts.map +1 -0
  46. package/dist/cli/commands/memory-cmd-crud.d.ts +3 -0
  47. package/dist/cli/commands/memory-cmd-crud.d.ts.map +1 -0
  48. package/dist/cli/commands/memory-cmd-diff.d.ts +3 -0
  49. package/dist/cli/commands/memory-cmd-diff.d.ts.map +1 -0
  50. package/dist/cli/commands/memory-cmd-list.d.ts +3 -0
  51. package/dist/cli/commands/memory-cmd-list.d.ts.map +1 -0
  52. package/dist/cli/commands/memory-cmd-recall-exit.d.ts +3 -0
  53. package/dist/cli/commands/memory-cmd-recall-exit.d.ts.map +1 -0
  54. package/dist/cli/commands/memory-cmd-recall.d.ts +3 -0
  55. package/dist/cli/commands/memory-cmd-recall.d.ts.map +1 -0
  56. package/dist/cli/commands/memory-cmd-remove.d.ts +3 -0
  57. package/dist/cli/commands/memory-cmd-remove.d.ts.map +1 -0
  58. package/dist/cli/commands/memory-cmd-search.d.ts +3 -0
  59. package/dist/cli/commands/memory-cmd-search.d.ts.map +1 -0
  60. package/dist/cli/commands/memory-cmd-tail.d.ts +3 -0
  61. package/dist/cli/commands/memory-cmd-tail.d.ts.map +1 -0
  62. package/dist/cli/commands/memory-cmd-util.d.ts +3 -0
  63. package/dist/cli/commands/memory-cmd-util.d.ts.map +1 -0
  64. package/dist/cli/commands/memory-cmd-view.d.ts +3 -0
  65. package/dist/cli/commands/memory-cmd-view.d.ts.map +1 -0
  66. package/dist/cli/commands/memory-cmd-watch.d.ts +3 -0
  67. package/dist/cli/commands/memory-cmd-watch.d.ts.map +1 -0
  68. package/dist/cli/commands/memory-cmd-when-to-use.d.ts +3 -0
  69. package/dist/cli/commands/memory-cmd-when-to-use.d.ts.map +1 -0
  70. package/dist/cli/commands/memory.d.ts +3 -0
  71. package/dist/cli/commands/memory.d.ts.map +1 -0
  72. package/dist/cli/commands/project-panel.d.ts +3 -0
  73. package/dist/cli/commands/project-panel.d.ts.map +1 -0
  74. package/dist/cli/commands/project.d.ts +3 -0
  75. package/dist/cli/commands/project.d.ts.map +1 -0
  76. package/dist/cli/commands/relation.d.ts +3 -0
  77. package/dist/cli/commands/relation.d.ts.map +1 -0
  78. package/dist/cli/commands/storage.d.ts +3 -0
  79. package/dist/cli/commands/storage.d.ts.map +1 -0
  80. package/dist/cli/commands/system-auto-memory.d.ts +3 -0
  81. package/dist/cli/commands/system-auto-memory.d.ts.map +1 -0
  82. package/dist/cli/commands/system-completions.d.ts +13 -0
  83. package/dist/cli/commands/system-completions.d.ts.map +1 -0
  84. package/dist/cli/commands/system-config.d.ts +3 -0
  85. package/dist/cli/commands/system-config.d.ts.map +1 -0
  86. package/dist/cli/commands/system-doctor.d.ts +3 -0
  87. package/dist/cli/commands/system-doctor.d.ts.map +1 -0
  88. package/dist/cli/commands/system-hooks.d.ts +3 -0
  89. package/dist/cli/commands/system-hooks.d.ts.map +1 -0
  90. package/dist/cli/commands/system-mcp.d.ts +3 -0
  91. package/dist/cli/commands/system-mcp.d.ts.map +1 -0
  92. package/dist/cli/commands/system-misc.d.ts +3 -0
  93. package/dist/cli/commands/system-misc.d.ts.map +1 -0
  94. package/dist/cli/commands/system-profile.d.ts +3 -0
  95. package/dist/cli/commands/system-profile.d.ts.map +1 -0
  96. package/dist/cli/commands/system-session.d.ts +3 -0
  97. package/dist/cli/commands/system-session.d.ts.map +1 -0
  98. package/dist/cli/commands/system-sessions.d.ts +3 -0
  99. package/dist/cli/commands/system-sessions.d.ts.map +1 -0
  100. package/dist/cli/commands/system-synthesis.d.ts +3 -0
  101. package/dist/cli/commands/system-synthesis.d.ts.map +1 -0
  102. package/dist/cli/commands/system-synthesized-profile.d.ts +3 -0
  103. package/dist/cli/commands/system-synthesized-profile.d.ts.map +1 -0
  104. package/dist/cli/commands/system-tools.d.ts +3 -0
  105. package/dist/cli/commands/system-tools.d.ts.map +1 -0
  106. package/dist/cli/commands/system-watch.d.ts +3 -0
  107. package/dist/cli/commands/system-watch.d.ts.map +1 -0
  108. package/dist/cli/commands/system.d.ts +3 -0
  109. package/dist/cli/commands/system.d.ts.map +1 -0
  110. package/dist/cli/exit-codes.d.ts +13 -0
  111. package/dist/cli/exit-codes.d.ts.map +1 -0
  112. package/dist/cli/global-options.d.ts +27 -0
  113. package/dist/cli/global-options.d.ts.map +1 -0
  114. package/dist/cli/helpers.d.ts +150 -0
  115. package/dist/cli/helpers.d.ts.map +1 -0
  116. package/dist/cli/index.d.ts +3 -0
  117. package/dist/cli/index.d.ts.map +1 -0
  118. package/dist/cli/index.js +1150 -695
  119. package/dist/cli/register-all.d.ts +17 -0
  120. package/dist/cli/register-all.d.ts.map +1 -0
  121. package/dist/cli/startup-side-effects.d.ts +9 -0
  122. package/dist/cli/startup-side-effects.d.ts.map +1 -0
  123. package/dist/db/__fixtures__/fail-closed-stub-server.d.ts +2 -0
  124. package/dist/db/__fixtures__/fail-closed-stub-server.d.ts.map +1 -0
  125. package/dist/db/__fixtures__/list-filter-capture-server.d.ts +2 -0
  126. package/dist/db/__fixtures__/list-filter-capture-server.d.ts.map +1 -0
  127. package/dist/db/__fixtures__/list-filter-client-runner.d.ts +2 -0
  128. package/dist/db/__fixtures__/list-filter-client-runner.d.ts.map +1 -0
  129. package/dist/db/acl.d.ts +34 -0
  130. package/dist/db/acl.d.ts.map +1 -0
  131. package/dist/db/agents.d.ts +35 -0
  132. package/dist/db/agents.d.ts.map +1 -0
  133. package/dist/db/analytics.d.ts +124 -0
  134. package/dist/db/analytics.d.ts.map +1 -0
  135. package/dist/db/api-mode.d.ts +127 -0
  136. package/dist/db/api-mode.d.ts.map +1 -0
  137. package/dist/db/audit.d.ts +53 -0
  138. package/dist/db/audit.d.ts.map +1 -0
  139. package/dist/db/database.d.ts +26 -0
  140. package/dist/db/database.d.ts.map +1 -0
  141. package/dist/db/entities.d.ts +62 -0
  142. package/dist/db/entities.d.ts.map +1 -0
  143. package/dist/db/entity-memories.d.ts +34 -0
  144. package/dist/db/entity-memories.d.ts.map +1 -0
  145. package/dist/db/feedback.d.ts +9 -0
  146. package/dist/db/feedback.d.ts.map +1 -0
  147. package/dist/db/locks.d.ts +63 -0
  148. package/dist/db/locks.d.ts.map +1 -0
  149. package/dist/db/machines.d.ts +23 -0
  150. package/dist/db/machines.d.ts.map +1 -0
  151. package/dist/db/memories.d.ts +199 -0
  152. package/dist/db/memories.d.ts.map +1 -0
  153. package/dist/db/memory-links.d.ts +21 -0
  154. package/dist/db/memory-links.d.ts.map +1 -0
  155. package/dist/db/memory-project-link.d.ts +13 -0
  156. package/dist/db/memory-project-link.d.ts.map +1 -0
  157. package/dist/db/migrations.d.ts +3 -0
  158. package/dist/db/migrations.d.ts.map +1 -0
  159. package/dist/db/pg-migrate.d.ts +27 -0
  160. package/dist/db/pg-migrate.d.ts.map +1 -0
  161. package/dist/db/pg-migrations.d.ts +2 -0
  162. package/dist/db/pg-migrations.d.ts.map +1 -0
  163. package/dist/db/projects.d.ts +27 -0
  164. package/dist/db/projects.d.ts.map +1 -0
  165. package/dist/db/ratings.d.ts +23 -0
  166. package/dist/db/ratings.d.ts.map +1 -0
  167. package/dist/db/relations.d.ts +49 -0
  168. package/dist/db/relations.d.ts.map +1 -0
  169. package/dist/db/session-jobs.d.ts +67 -0
  170. package/dist/db/session-jobs.d.ts.map +1 -0
  171. package/dist/db/store-backend.d.ts +42 -0
  172. package/dist/db/store-backend.d.ts.map +1 -0
  173. package/dist/db/subscriptions.d.ts +24 -0
  174. package/dist/db/subscriptions.d.ts.map +1 -0
  175. package/dist/db/synthesis.d.ts +101 -0
  176. package/dist/db/synthesis.d.ts.map +1 -0
  177. package/dist/db/tasks.d.ts +89 -0
  178. package/dist/db/tasks.d.ts.map +1 -0
  179. package/dist/db/tool-events.d.ts +27 -0
  180. package/dist/db/tool-events.d.ts.map +1 -0
  181. package/dist/db/webhook_hooks.d.ts +48 -0
  182. package/dist/db/webhook_hooks.d.ts.map +1 -0
  183. package/dist/diagnostics/historical-project-registration-receipt.d.ts +39 -0
  184. package/dist/diagnostics/historical-project-registration-receipt.d.ts.map +1 -0
  185. package/dist/diagnostics/historical-project-registration-receipt.js +116 -10
  186. package/dist/generated/storage-kit/backend.d.ts +20 -0
  187. package/dist/generated/storage-kit/backend.d.ts.map +1 -0
  188. package/dist/generated/storage-kit/health.d.ts +20 -0
  189. package/dist/generated/storage-kit/health.d.ts.map +1 -0
  190. package/dist/generated/storage-kit/index.d.ts +8 -0
  191. package/dist/generated/storage-kit/index.d.ts.map +1 -0
  192. package/dist/generated/storage-kit/migrations.d.ts +48 -0
  193. package/dist/generated/storage-kit/migrations.d.ts.map +1 -0
  194. package/dist/generated/storage-kit/own.d.ts +11 -0
  195. package/dist/generated/storage-kit/own.d.ts.map +1 -0
  196. package/dist/generated/storage-kit/pool.d.ts +35 -0
  197. package/dist/generated/storage-kit/pool.d.ts.map +1 -0
  198. package/dist/generated/storage-kit/query.d.ts +36 -0
  199. package/dist/generated/storage-kit/query.d.ts.map +1 -0
  200. package/dist/generated/storage-kit/tls.d.ts +53 -0
  201. package/dist/generated/storage-kit/tls.d.ts.map +1 -0
  202. package/dist/index.d.ts +45 -0
  203. package/dist/index.d.ts.map +1 -0
  204. package/dist/index.js +806 -541
  205. package/dist/lib/activation-matcher.d.ts +17 -0
  206. package/dist/lib/activation-matcher.d.ts.map +1 -0
  207. package/dist/lib/asmr/categorizer.d.ts +31 -0
  208. package/dist/lib/asmr/categorizer.d.ts.map +1 -0
  209. package/dist/lib/asmr/context-agent.d.ts +4 -0
  210. package/dist/lib/asmr/context-agent.d.ts.map +1 -0
  211. package/dist/lib/asmr/ensemble.d.ts +23 -0
  212. package/dist/lib/asmr/ensemble.d.ts.map +1 -0
  213. package/dist/lib/asmr/fact-agent.d.ts +4 -0
  214. package/dist/lib/asmr/fact-agent.d.ts.map +1 -0
  215. package/dist/lib/asmr/index.d.ts +7 -0
  216. package/dist/lib/asmr/index.d.ts.map +1 -0
  217. package/dist/lib/asmr/orchestrator.d.ts +4 -0
  218. package/dist/lib/asmr/orchestrator.d.ts.map +1 -0
  219. package/dist/lib/asmr/recall.d.ts +3 -0
  220. package/dist/lib/asmr/recall.d.ts.map +1 -0
  221. package/dist/lib/asmr/temporal-agent.d.ts +4 -0
  222. package/dist/lib/asmr/temporal-agent.d.ts.map +1 -0
  223. package/dist/lib/asmr/types.d.ts +27 -0
  224. package/dist/lib/asmr/types.d.ts.map +1 -0
  225. package/dist/lib/auto-inject-orchestrator.d.ts +57 -0
  226. package/dist/lib/auto-inject-orchestrator.d.ts.map +1 -0
  227. package/dist/lib/auto-memory-queue.d.ts +48 -0
  228. package/dist/lib/auto-memory-queue.d.ts.map +1 -0
  229. package/dist/lib/auto-memory.d.ts +19 -0
  230. package/dist/lib/auto-memory.d.ts.map +1 -0
  231. package/dist/lib/bench.d.ts +20 -0
  232. package/dist/lib/bench.d.ts.map +1 -0
  233. package/dist/lib/built-in-hooks.d.ts +32 -0
  234. package/dist/lib/built-in-hooks.d.ts.map +1 -0
  235. package/dist/lib/channel-pusher.d.ts +39 -0
  236. package/dist/lib/channel-pusher.d.ts.map +1 -0
  237. package/dist/lib/config.d.ts +9 -0
  238. package/dist/lib/config.d.ts.map +1 -0
  239. package/dist/lib/connectors/files.d.ts +8 -0
  240. package/dist/lib/connectors/files.d.ts.map +1 -0
  241. package/dist/lib/connectors/github.d.ts +7 -0
  242. package/dist/lib/connectors/github.d.ts.map +1 -0
  243. package/dist/lib/connectors/index.d.ts +12 -0
  244. package/dist/lib/connectors/index.d.ts.map +1 -0
  245. package/dist/lib/connectors/notion.d.ts +7 -0
  246. package/dist/lib/connectors/notion.d.ts.map +1 -0
  247. package/dist/lib/connectors/types.d.ts +27 -0
  248. package/dist/lib/connectors/types.d.ts.map +1 -0
  249. package/dist/lib/consolidation.d.ts +52 -0
  250. package/dist/lib/consolidation.d.ts.map +1 -0
  251. package/dist/lib/context-extractor.d.ts +14 -0
  252. package/dist/lib/context-extractor.d.ts.map +1 -0
  253. package/dist/lib/context.d.ts +36 -0
  254. package/dist/lib/context.d.ts.map +1 -0
  255. package/dist/lib/contradiction.d.ts +50 -0
  256. package/dist/lib/contradiction.d.ts.map +1 -0
  257. package/dist/lib/decay.d.ts +35 -0
  258. package/dist/lib/decay.d.ts.map +1 -0
  259. package/dist/lib/dedup.d.ts +33 -0
  260. package/dist/lib/dedup.d.ts.map +1 -0
  261. package/dist/lib/duration.d.ts +28 -0
  262. package/dist/lib/duration.d.ts.map +1 -0
  263. package/dist/lib/embeddings.d.ts +20 -0
  264. package/dist/lib/embeddings.d.ts.map +1 -0
  265. package/dist/lib/enum-validation.d.ts +20 -0
  266. package/dist/lib/enum-validation.d.ts.map +1 -0
  267. package/dist/lib/export-v1.d.ts +30 -0
  268. package/dist/lib/export-v1.d.ts.map +1 -0
  269. package/dist/lib/extractor.d.ts +9 -0
  270. package/dist/lib/extractor.d.ts.map +1 -0
  271. package/dist/lib/extractors/audio.d.ts +8 -0
  272. package/dist/lib/extractors/audio.d.ts.map +1 -0
  273. package/dist/lib/extractors/index.d.ts +12 -0
  274. package/dist/lib/extractors/index.d.ts.map +1 -0
  275. package/dist/lib/extractors/ocr.d.ts +7 -0
  276. package/dist/lib/extractors/ocr.d.ts.map +1 -0
  277. package/dist/lib/extractors/pdf.d.ts +7 -0
  278. package/dist/lib/extractors/pdf.d.ts.map +1 -0
  279. package/dist/lib/extractors/types.d.ts +12 -0
  280. package/dist/lib/extractors/types.d.ts.map +1 -0
  281. package/dist/lib/file-deps.d.ts +27 -0
  282. package/dist/lib/file-deps.d.ts.map +1 -0
  283. package/dist/lib/focus.d.ts +58 -0
  284. package/dist/lib/focus.d.ts.map +1 -0
  285. package/dist/lib/gatherer.d.ts +16 -0
  286. package/dist/lib/gatherer.d.ts.map +1 -0
  287. package/dist/lib/gdpr.d.ts +39 -0
  288. package/dist/lib/gdpr.d.ts.map +1 -0
  289. package/dist/lib/hooks.d.ts +50 -0
  290. package/dist/lib/hooks.d.ts.map +1 -0
  291. package/dist/lib/importers/index.d.ts +38 -0
  292. package/dist/lib/importers/index.d.ts.map +1 -0
  293. package/dist/lib/injector.d.ts +89 -0
  294. package/dist/lib/injector.d.ts.map +1 -0
  295. package/dist/lib/machine-visibility.d.ts +6 -0
  296. package/dist/lib/machine-visibility.d.ts.map +1 -0
  297. package/dist/lib/matryoshka.d.ts +50 -0
  298. package/dist/lib/matryoshka.d.ts.map +1 -0
  299. package/dist/lib/memory-lock.d.ts +58 -0
  300. package/dist/lib/memory-lock.d.ts.map +1 -0
  301. package/dist/lib/model-config.d.ts +14 -0
  302. package/dist/lib/model-config.d.ts.map +1 -0
  303. package/dist/lib/open-sessions-connector.d.ts +60 -0
  304. package/dist/lib/open-sessions-connector.d.ts.map +1 -0
  305. package/dist/lib/package-version.d.ts +3 -0
  306. package/dist/lib/package-version.d.ts.map +1 -0
  307. package/dist/lib/paths.d.ts +51 -0
  308. package/dist/lib/paths.d.ts.map +1 -0
  309. package/dist/lib/poisoning.d.ts +19 -0
  310. package/dist/lib/poisoning.d.ts.map +1 -0
  311. package/dist/lib/poll.d.ts +17 -0
  312. package/dist/lib/poll.d.ts.map +1 -0
  313. package/dist/lib/procedural-extractor.d.ts +21 -0
  314. package/dist/lib/procedural-extractor.d.ts.map +1 -0
  315. package/dist/lib/profile-sync.d.ts +20 -0
  316. package/dist/lib/profile-sync.d.ts.map +1 -0
  317. package/dist/lib/profile-synthesizer.d.ts +20 -0
  318. package/dist/lib/profile-synthesizer.d.ts.map +1 -0
  319. package/dist/lib/project-detect.d.ts +18 -0
  320. package/dist/lib/project-detect.d.ts.map +1 -0
  321. package/dist/lib/project-panel.d.ts +7 -0
  322. package/dist/lib/project-panel.d.ts.map +1 -0
  323. package/dist/lib/providers/anthropic.d.ts +21 -0
  324. package/dist/lib/providers/anthropic.d.ts.map +1 -0
  325. package/dist/lib/providers/base.d.ts +96 -0
  326. package/dist/lib/providers/base.d.ts.map +1 -0
  327. package/dist/lib/providers/cerebras.d.ts +20 -0
  328. package/dist/lib/providers/cerebras.d.ts.map +1 -0
  329. package/dist/lib/providers/grok.d.ts +19 -0
  330. package/dist/lib/providers/grok.d.ts.map +1 -0
  331. package/dist/lib/providers/index.d.ts +7 -0
  332. package/dist/lib/providers/index.d.ts.map +1 -0
  333. package/dist/lib/providers/openai-compat.d.ts +18 -0
  334. package/dist/lib/providers/openai-compat.d.ts.map +1 -0
  335. package/dist/lib/providers/openai.d.ts +20 -0
  336. package/dist/lib/providers/openai.d.ts.map +1 -0
  337. package/dist/lib/providers/registry.d.ts +38 -0
  338. package/dist/lib/providers/registry.d.ts.map +1 -0
  339. package/dist/lib/quality.d.ts +16 -0
  340. package/dist/lib/quality.d.ts.map +1 -0
  341. package/dist/lib/redact.d.ts +26 -0
  342. package/dist/lib/redact.d.ts.map +1 -0
  343. package/dist/lib/reflection.d.ts +83 -0
  344. package/dist/lib/reflection.d.ts.map +1 -0
  345. package/dist/lib/retention.d.ts +17 -0
  346. package/dist/lib/retention.d.ts.map +1 -0
  347. package/dist/lib/retired-storage-mode.d.ts +11 -0
  348. package/dist/lib/retired-storage-mode.d.ts.map +1 -0
  349. package/dist/lib/search.d.ts +52 -0
  350. package/dist/lib/search.d.ts.map +1 -0
  351. package/dist/lib/session-auto-resolve.d.ts +28 -0
  352. package/dist/lib/session-auto-resolve.d.ts.map +1 -0
  353. package/dist/lib/session-processor.d.ts +38 -0
  354. package/dist/lib/session-processor.d.ts.map +1 -0
  355. package/dist/lib/session-queue.d.ts +28 -0
  356. package/dist/lib/session-queue.d.ts.map +1 -0
  357. package/dist/lib/session-registry.d.ts +47 -0
  358. package/dist/lib/session-registry.d.ts.map +1 -0
  359. package/dist/lib/session-start-briefing.d.ts +10 -0
  360. package/dist/lib/session-start-briefing.d.ts.map +1 -0
  361. package/dist/lib/session-watcher.d.ts +30 -0
  362. package/dist/lib/session-watcher.d.ts.map +1 -0
  363. package/dist/lib/storage-sync.d.ts +45 -0
  364. package/dist/lib/storage-sync.d.ts.map +1 -0
  365. package/dist/lib/sync.d.ts +10 -0
  366. package/dist/lib/sync.d.ts.map +1 -0
  367. package/dist/lib/synthesis/corpus-builder.d.ts +30 -0
  368. package/dist/lib/synthesis/corpus-builder.d.ts.map +1 -0
  369. package/dist/lib/synthesis/executor.d.ts +14 -0
  370. package/dist/lib/synthesis/executor.d.ts.map +1 -0
  371. package/dist/lib/synthesis/index.d.ts +37 -0
  372. package/dist/lib/synthesis/index.d.ts.map +1 -0
  373. package/dist/lib/synthesis/llm-analyzer.d.ts +18 -0
  374. package/dist/lib/synthesis/llm-analyzer.d.ts.map +1 -0
  375. package/dist/lib/synthesis/metrics.d.ts +13 -0
  376. package/dist/lib/synthesis/metrics.d.ts.map +1 -0
  377. package/dist/lib/synthesis/scheduler.d.ts +18 -0
  378. package/dist/lib/synthesis/scheduler.d.ts.map +1 -0
  379. package/dist/lib/synthesis/validator.d.ts +19 -0
  380. package/dist/lib/synthesis/validator.d.ts.map +1 -0
  381. package/dist/lib/task-runner.d.ts +37 -0
  382. package/dist/lib/task-runner.d.ts.map +1 -0
  383. package/dist/lib/tool-lesson-extractor.d.ts +24 -0
  384. package/dist/lib/tool-lesson-extractor.d.ts.map +1 -0
  385. package/dist/lib/tool-memory-synthesizer.d.ts +28 -0
  386. package/dist/lib/tool-memory-synthesizer.d.ts.map +1 -0
  387. package/dist/lib/topic-clusterer.d.ts +21 -0
  388. package/dist/lib/topic-clusterer.d.ts.map +1 -0
  389. package/dist/lib/when-to-use-generator.d.ts +22 -0
  390. package/dist/lib/when-to-use-generator.d.ts.map +1 -0
  391. package/dist/mcp/http.d.ts +17 -0
  392. package/dist/mcp/http.d.ts.map +1 -0
  393. package/dist/mcp/index.d.ts +6 -0
  394. package/dist/mcp/index.d.ts.map +1 -0
  395. package/dist/mcp/index.js +978 -554
  396. package/dist/mcp/memory-broadcast.d.ts +12 -0
  397. package/dist/mcp/memory-broadcast.d.ts.map +1 -0
  398. package/dist/mcp/tools/agent-tools.d.ts +3 -0
  399. package/dist/mcp/tools/agent-tools.d.ts.map +1 -0
  400. package/dist/mcp/tools/auto-memory-tools.d.ts +5 -0
  401. package/dist/mcp/tools/auto-memory-tools.d.ts.map +1 -0
  402. package/dist/mcp/tools/bulk-tools.d.ts +3 -0
  403. package/dist/mcp/tools/bulk-tools.d.ts.map +1 -0
  404. package/dist/mcp/tools/consolidation-tools.d.ts +3 -0
  405. package/dist/mcp/tools/consolidation-tools.d.ts.map +1 -0
  406. package/dist/mcp/tools/focus-tools.d.ts +3 -0
  407. package/dist/mcp/tools/focus-tools.d.ts.map +1 -0
  408. package/dist/mcp/tools/graph-entity-tools.d.ts +3 -0
  409. package/dist/mcp/tools/graph-entity-tools.d.ts.map +1 -0
  410. package/dist/mcp/tools/graph-query-tools.d.ts +3 -0
  411. package/dist/mcp/tools/graph-query-tools.d.ts.map +1 -0
  412. package/dist/mcp/tools/graph-relation-tools.d.ts +3 -0
  413. package/dist/mcp/tools/graph-relation-tools.d.ts.map +1 -0
  414. package/dist/mcp/tools/graph-tools.d.ts +3 -0
  415. package/dist/mcp/tools/graph-tools.d.ts.map +1 -0
  416. package/dist/mcp/tools/graph-utils.d.ts +5 -0
  417. package/dist/mcp/tools/graph-utils.d.ts.map +1 -0
  418. package/dist/mcp/tools/hook-tools.d.ts +3 -0
  419. package/dist/mcp/tools/hook-tools.d.ts.map +1 -0
  420. package/dist/mcp/tools/lock-tools.d.ts +3 -0
  421. package/dist/mcp/tools/lock-tools.d.ts.map +1 -0
  422. package/dist/mcp/tools/memory-audit.d.ts +3 -0
  423. package/dist/mcp/tools/memory-audit.d.ts.map +1 -0
  424. package/dist/mcp/tools/memory-crud.d.ts +3 -0
  425. package/dist/mcp/tools/memory-crud.d.ts.map +1 -0
  426. package/dist/mcp/tools/memory-health.d.ts +3 -0
  427. package/dist/mcp/tools/memory-health.d.ts.map +1 -0
  428. package/dist/mcp/tools/memory-history.d.ts +3 -0
  429. package/dist/mcp/tools/memory-history.d.ts.map +1 -0
  430. package/dist/mcp/tools/memory-inject.d.ts +3 -0
  431. package/dist/mcp/tools/memory-inject.d.ts.map +1 -0
  432. package/dist/mcp/tools/memory-io.d.ts +3 -0
  433. package/dist/mcp/tools/memory-io.d.ts.map +1 -0
  434. package/dist/mcp/tools/memory-lifecycle.d.ts +3 -0
  435. package/dist/mcp/tools/memory-lifecycle.d.ts.map +1 -0
  436. package/dist/mcp/tools/memory-search.d.ts +3 -0
  437. package/dist/mcp/tools/memory-search.d.ts.map +1 -0
  438. package/dist/mcp/tools/memory-stats.d.ts +3 -0
  439. package/dist/mcp/tools/memory-stats.d.ts.map +1 -0
  440. package/dist/mcp/tools/memory-tools.d.ts +17 -0
  441. package/dist/mcp/tools/memory-tools.d.ts.map +1 -0
  442. package/dist/mcp/tools/memory-utils.d.ts +27 -0
  443. package/dist/mcp/tools/memory-utils.d.ts.map +1 -0
  444. package/dist/mcp/tools/memory-validation.d.ts +3 -0
  445. package/dist/mcp/tools/memory-validation.d.ts.map +1 -0
  446. package/dist/mcp/tools/project-tools.d.ts +3 -0
  447. package/dist/mcp/tools/project-tools.d.ts.map +1 -0
  448. package/dist/mcp/tools/session-tools.d.ts +3 -0
  449. package/dist/mcp/tools/session-tools.d.ts.map +1 -0
  450. package/dist/mcp/tools/storage-tools.d.ts +3 -0
  451. package/dist/mcp/tools/storage-tools.d.ts.map +1 -0
  452. package/dist/mcp/tools/synthesis-tools.d.ts +3 -0
  453. package/dist/mcp/tools/synthesis-tools.d.ts.map +1 -0
  454. package/dist/mcp/tools/system-tools-events.d.ts +3 -0
  455. package/dist/mcp/tools/system-tools-events.d.ts.map +1 -0
  456. package/dist/mcp/tools/system-tools-memory-admin.d.ts +3 -0
  457. package/dist/mcp/tools/system-tools-memory-admin.d.ts.map +1 -0
  458. package/dist/mcp/tools/system-tools-shared.d.ts +23 -0
  459. package/dist/mcp/tools/system-tools-shared.d.ts.map +1 -0
  460. package/dist/mcp/tools/system-tools.d.ts +3 -0
  461. package/dist/mcp/tools/system-tools.d.ts.map +1 -0
  462. package/dist/mcp/tools/tool-registry.d.ts +30 -0
  463. package/dist/mcp/tools/tool-registry.d.ts.map +1 -0
  464. package/dist/mcp/tools/utility-tools.d.ts +3 -0
  465. package/dist/mcp/tools/utility-tools.d.ts.map +1 -0
  466. package/dist/memory-project-link/index.d.ts +2 -0
  467. package/dist/memory-project-link/index.d.ts.map +1 -0
  468. package/dist/memory-project-link/schema.d.ts +5 -0
  469. package/dist/memory-project-link/schema.d.ts.map +1 -0
  470. package/dist/pg-sync-worker.d.ts +2 -0
  471. package/dist/pg-sync-worker.d.ts.map +1 -0
  472. package/dist/project-registration/authority.d.ts +43 -0
  473. package/dist/project-registration/authority.d.ts.map +1 -0
  474. package/dist/project-registration/historical-receipt.d.ts +38 -0
  475. package/dist/project-registration/historical-receipt.d.ts.map +1 -0
  476. package/dist/project-registration/http.d.ts +32 -0
  477. package/dist/project-registration/http.d.ts.map +1 -0
  478. package/dist/project-registration/identity.d.ts +20 -0
  479. package/dist/project-registration/identity.d.ts.map +1 -0
  480. package/dist/project-registration/index.d.ts +11 -0
  481. package/dist/project-registration/index.d.ts.map +1 -0
  482. package/dist/project-registration/project-references.d.ts +71 -0
  483. package/dist/project-registration/project-references.d.ts.map +1 -0
  484. package/dist/project-registration/project-resources.d.ts +22 -0
  485. package/dist/project-registration/project-resources.d.ts.map +1 -0
  486. package/dist/project-registration/schema.d.ts +5 -0
  487. package/dist/project-registration/schema.d.ts.map +1 -0
  488. package/dist/project-registration/types.d.ts +319 -0
  489. package/dist/project-registration/types.d.ts.map +1 -0
  490. package/dist/project-registration.d.ts +2 -0
  491. package/dist/project-registration.d.ts.map +1 -0
  492. package/dist/project-registration.js +179 -42
  493. package/dist/sdk/index.d.ts +987 -0
  494. package/dist/sdk/index.d.ts.map +1 -0
  495. package/dist/server/auth.d.ts +11 -0
  496. package/dist/server/auth.d.ts.map +1 -0
  497. package/dist/server/helpers.d.ts +53 -0
  498. package/dist/server/helpers.d.ts.map +1 -0
  499. package/dist/server/index.d.ts +14 -0
  500. package/dist/server/index.d.ts.map +1 -0
  501. package/dist/server/index.js +1047 -569
  502. package/dist/server/openapi.d.ts +2 -0
  503. package/dist/server/openapi.d.ts.map +1 -0
  504. package/dist/server/router.d.ts +17 -0
  505. package/dist/server/router.d.ts.map +1 -0
  506. package/dist/server/routes/agents.d.ts +2 -0
  507. package/dist/server/routes/agents.d.ts.map +1 -0
  508. package/dist/server/routes/entities.d.ts +2 -0
  509. package/dist/server/routes/entities.d.ts.map +1 -0
  510. package/dist/server/routes/memories-bulk.d.ts +2 -0
  511. package/dist/server/routes/memories-bulk.d.ts.map +1 -0
  512. package/dist/server/routes/memories-crud.d.ts +2 -0
  513. package/dist/server/routes/memories-crud.d.ts.map +1 -0
  514. package/dist/server/routes/memories-io.d.ts +2 -0
  515. package/dist/server/routes/memories-io.d.ts.map +1 -0
  516. package/dist/server/routes/memories-misc.d.ts +2 -0
  517. package/dist/server/routes/memories-misc.d.ts.map +1 -0
  518. package/dist/server/routes/memories-search.d.ts +2 -0
  519. package/dist/server/routes/memories-search.d.ts.map +1 -0
  520. package/dist/server/routes/memories-stats.d.ts +2 -0
  521. package/dist/server/routes/memories-stats.d.ts.map +1 -0
  522. package/dist/server/routes/memories.d.ts +19 -0
  523. package/dist/server/routes/memories.d.ts.map +1 -0
  524. package/dist/server/routes/memory-project-link.d.ts +2 -0
  525. package/dist/server/routes/memory-project-link.d.ts.map +1 -0
  526. package/dist/server/routes/project-registration.d.ts +2 -0
  527. package/dist/server/routes/project-registration.d.ts.map +1 -0
  528. package/dist/server/routes/projects.d.ts +2 -0
  529. package/dist/server/routes/projects.d.ts.map +1 -0
  530. package/dist/server/routes/system-auto-memory.d.ts +2 -0
  531. package/dist/server/routes/system-auto-memory.d.ts.map +1 -0
  532. package/dist/server/routes/system-chain.d.ts +2 -0
  533. package/dist/server/routes/system-chain.d.ts.map +1 -0
  534. package/dist/server/routes/system-consolidation.d.ts +2 -0
  535. package/dist/server/routes/system-consolidation.d.ts.map +1 -0
  536. package/dist/server/routes/system-hooks.d.ts +2 -0
  537. package/dist/server/routes/system-hooks.d.ts.map +1 -0
  538. package/dist/server/routes/system-sessions.d.ts +2 -0
  539. package/dist/server/routes/system-sessions.d.ts.map +1 -0
  540. package/dist/server/routes/system-subscriptions.d.ts +2 -0
  541. package/dist/server/routes/system-subscriptions.d.ts.map +1 -0
  542. package/dist/server/routes/system-synthesis.d.ts +2 -0
  543. package/dist/server/routes/system-synthesis.d.ts.map +1 -0
  544. package/dist/server/routes/system-tools.d.ts +2 -0
  545. package/dist/server/routes/system-tools.d.ts.map +1 -0
  546. package/dist/server/routes/system.d.ts +2 -0
  547. package/dist/server/routes/system.d.ts.map +1 -0
  548. package/dist/server/routes/tasks.d.ts +2 -0
  549. package/dist/server/routes/tasks.d.ts.map +1 -0
  550. package/dist/storage.d.ts +298 -0
  551. package/dist/storage.d.ts.map +1 -0
  552. package/dist/storage.js +134 -17
  553. package/dist/test-support/memories-page-stub-server.d.ts +2 -0
  554. package/dist/test-support/memories-page-stub-server.d.ts.map +1 -0
  555. package/dist/test-support/memories-page-stub.d.ts +28 -0
  556. package/dist/test-support/memories-page-stub.d.ts.map +1 -0
  557. package/dist/test-support/pg-sync-stub-worker.d.ts +2 -0
  558. package/dist/test-support/pg-sync-stub-worker.d.ts.map +1 -0
  559. package/dist/test-support/preload-local-store.d.ts +2 -0
  560. package/dist/test-support/preload-local-store.d.ts.map +1 -0
  561. package/dist/test-support/project-authority-identity.d.ts +8 -0
  562. package/dist/test-support/project-authority-identity.d.ts.map +1 -0
  563. package/dist/test-support/store-isolation.d.ts +108 -0
  564. package/dist/test-support/store-isolation.d.ts.map +1 -0
  565. package/dist/test-support/strip-ansi.d.ts +3 -0
  566. package/dist/test-support/strip-ansi.d.ts.map +1 -0
  567. package/dist/types/hooks.d.ts +136 -0
  568. package/dist/types/hooks.d.ts.map +1 -0
  569. package/dist/types/index.d.ts +482 -0
  570. package/dist/types/index.d.ts.map +1 -0
  571. package/package.json +6 -4
  572. package/postinstall.mjs +34 -0
@@ -152,11 +152,119 @@ var init_retired_storage_mode = __esm(() => {
152
152
  ];
153
153
  });
154
154
 
155
- // src/storage.ts
156
- import { Database } from "bun:sqlite";
157
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
155
+ // ../../node_modules/.bun/@hasna+paths@0.1.0/node_modules/@hasna/paths/dist/index.js
158
156
  import { homedir } from "os";
159
157
  import { join } from "path";
158
+ function assertApp(app) {
159
+ if (typeof app !== "string" || app.length === 0) {
160
+ throw new TypeError("paths: app must be a non-empty string");
161
+ }
162
+ if (!APP_SLUG_RE.test(app)) {
163
+ throw new TypeError(`paths: invalid app slug "${app}" \u2014 expected lowercase kebab-case ([a-z0-9]+(-[a-z0-9]+)*)`);
164
+ }
165
+ }
166
+ function envOf(options) {
167
+ return options.env ?? process.env;
168
+ }
169
+ function envValue(options, kind) {
170
+ const value = envOf(options)[KIND_ENV[kind]];
171
+ return typeof value === "string" && value.length > 0 ? value : undefined;
172
+ }
173
+ function isMacOS(platform) {
174
+ return platform === "darwin";
175
+ }
176
+ function baseDir(kind, options) {
177
+ const override = envValue(options, kind);
178
+ if (override)
179
+ return override;
180
+ const home = options.home ?? homedir();
181
+ const platform = options.platform ?? process.platform;
182
+ if (isMacOS(platform)) {
183
+ switch (kind) {
184
+ case "config":
185
+ case "data":
186
+ return join(home, "Library", "Application Support", "Hasna");
187
+ case "cache":
188
+ return join(home, "Library", "Caches", "Hasna");
189
+ case "state":
190
+ return join(home, "Library", "Logs", "Hasna");
191
+ }
192
+ }
193
+ switch (kind) {
194
+ case "config":
195
+ return join(home, ".config", "hasna");
196
+ case "data":
197
+ return join(home, ".local", "share", "hasna");
198
+ case "state":
199
+ return join(home, ".local", "state", "hasna");
200
+ case "cache":
201
+ return join(home, ".cache", "hasna");
202
+ }
203
+ }
204
+ function resolvePath(kind, options) {
205
+ assertApp(options.app);
206
+ const appSegment = options.internal === true ? join("internal", options.app) : options.app;
207
+ return join(baseDir(kind, options), appSegment);
208
+ }
209
+ function dataDir(options) {
210
+ return resolvePath("data", options);
211
+ }
212
+ var KIND_ENV, APP_SLUG_RE;
213
+ var init_dist = __esm(() => {
214
+ KIND_ENV = {
215
+ config: "HASNA_CONFIG_HOME",
216
+ data: "HASNA_DATA_HOME",
217
+ state: "HASNA_STATE_HOME",
218
+ cache: "HASNA_CACHE_HOME"
219
+ };
220
+ APP_SLUG_RE = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
221
+ });
222
+
223
+ // src/lib/paths.ts
224
+ import { existsSync } from "fs";
225
+ import { homedir as homedir2 } from "os";
226
+ import { join as join2, resolve } from "path";
227
+ function effectiveHome() {
228
+ return process.env["HOME"] || process.env["USERPROFILE"] || homedir2() || "/tmp";
229
+ }
230
+ function legacyDataRoot() {
231
+ return join2(effectiveHome(), ".hasna", "mementos");
232
+ }
233
+ function resolverDataRoot() {
234
+ return dataDir({
235
+ app: "mementos",
236
+ home: process.env["HOME"] || process.env["USERPROFILE"] || undefined
237
+ });
238
+ }
239
+ function adoptResolverDataRoot(resolved, env = process.env) {
240
+ const dataOverride = env.HASNA_DATA_HOME;
241
+ if (typeof dataOverride === "string" && dataOverride.trim().length > 0)
242
+ return true;
243
+ return existsSync(join2(resolved, "mementos.db"));
244
+ }
245
+ function exactDataRoot() {
246
+ for (const key of ["HASNA_MEMENTOS_HOME", "MEMENTOS_HOME"]) {
247
+ const dir = process.env[key]?.trim();
248
+ if (dir)
249
+ return resolve(dir);
250
+ }
251
+ return;
252
+ }
253
+ function getDataRoot() {
254
+ const exact = exactDataRoot();
255
+ if (exact)
256
+ return exact;
257
+ const resolved = resolverDataRoot();
258
+ return adoptResolverDataRoot(resolved) ? resolve(resolved) : resolve(legacyDataRoot());
259
+ }
260
+ var init_paths = __esm(() => {
261
+ init_dist();
262
+ });
263
+
264
+ // src/storage.ts
265
+ import { Database } from "bun:sqlite";
266
+ import { existsSync as existsSync2, mkdirSync, readFileSync, writeFileSync } from "fs";
267
+ import { join as join3 } from "path";
160
268
  import { fileURLToPath } from "url";
161
269
  import { Worker } from "worker_threads";
162
270
  import pg from "pg";
@@ -415,7 +523,7 @@ function readEnv(name) {
415
523
  return value ? value : null;
416
524
  }
417
525
  function readConfigFile() {
418
- if (!existsSync(STORAGE_CONFIG_PATH)) {
526
+ if (!existsSync2(STORAGE_CONFIG_PATH)) {
419
527
  return {};
420
528
  }
421
529
  try {
@@ -677,11 +785,7 @@ function saveStorageConfig(config) {
677
785
  function getConfiguredConnectionString() {
678
786
  return getStorageDatabaseUrl() ?? undefined;
679
787
  }
680
- function getStorageConnectionString(dbName = "mementos") {
681
- assertNoLegacyStorageMode2();
682
- if (!isServerContext()) {
683
- throw new Error("Refusing to construct an RDS Postgres DSN outside the mementos-serve server. " + "The raw database DSN is NEVER distributed to client machines. " + "Clients must use the HTTP API: set HASNA_MEMENTOS_API_URL and " + "HASNA_MEMENTOS_API_KEY (and unset HASNA_MEMENTOS_DATABASE_URL).");
684
- }
788
+ function resolveConfiguredConnectionString(dbName) {
685
789
  const envConnectionString = getConfiguredConnectionString();
686
790
  if (envConnectionString) {
687
791
  const validation = validatePostgresConnectionString(envConnectionString);
@@ -700,7 +804,7 @@ function getStorageConnectionString(dbName = "mementos") {
700
804
  missing.push("storage.rds.username");
701
805
  }
702
806
  if (missing.length > 0) {
703
- throw new Error(`Remote storage database is not configured. Missing ${missing.join(", ")}. Set HASNA_MEMENTOS_DATABASE_URL or configure ~/.hasna/mementos/storage/config.json.`);
807
+ throw new Error(`Remote storage database is not configured. Missing ${missing.join(", ")}. Set HASNA_MEMENTOS_DATABASE_URL or configure ${STORAGE_CONFIG_PATH}.`);
704
808
  }
705
809
  const password = process.env[password_env];
706
810
  if (!password) {
@@ -709,6 +813,17 @@ function getStorageConnectionString(dbName = "mementos") {
709
813
  const sslParam = ssl ? "?sslmode=require" : "";
710
814
  return `postgres://${username}:${encodeURIComponent(password)}@${host}:${port}/${dbName}${sslParam}`;
711
815
  }
816
+ function getStorageConnectionString(dbName = "mementos") {
817
+ assertNoLegacyStorageMode2();
818
+ if (!isServerContext()) {
819
+ throw new Error("Refusing to construct an RDS Postgres DSN outside the mementos-serve server. " + "The raw database DSN is NEVER distributed to client machines. " + "Clients must use the HTTP API: set HASNA_MEMENTOS_API_URL and " + "HASNA_MEMENTOS_API_KEY (and unset HASNA_MEMENTOS_DATABASE_URL).");
820
+ }
821
+ return resolveConfiguredConnectionString(dbName);
822
+ }
823
+ function getStorageConnectionStringForOperator(dbName = "mementos") {
824
+ assertNoLegacyStorageMode2();
825
+ return resolveConfiguredConnectionString(dbName);
826
+ }
712
827
  function isSyncExcludedTable(table) {
713
828
  return SYNC_EXCLUDED_TABLE_PATTERNS.some((pattern) => pattern.test(table));
714
829
  }
@@ -878,6 +993,7 @@ CREATE TABLE IF NOT EXISTS _sync_meta (
878
993
  var init_storage = __esm(() => {
879
994
  init_backend();
880
995
  init_retired_storage_mode();
996
+ init_paths();
881
997
  PgSyncPool = class PgSyncPool {
882
998
  worker;
883
999
  status;
@@ -895,12 +1011,12 @@ var init_storage = __esm(() => {
895
1011
  const ext = import.meta.url.endsWith(".ts") ? ".ts" : ".js";
896
1012
  const here = fileURLToPath(new URL(".", import.meta.url));
897
1013
  const candidates = [
898
- join(here, `pg-sync-worker${ext}`),
899
- join(here, "..", `pg-sync-worker${ext}`),
900
- join(here, "..", "..", `pg-sync-worker${ext}`)
1014
+ join3(here, `pg-sync-worker${ext}`),
1015
+ join3(here, "..", `pg-sync-worker${ext}`),
1016
+ join3(here, "..", "..", `pg-sync-worker${ext}`)
901
1017
  ];
902
1018
  for (const candidate of candidates) {
903
- if (existsSync(candidate))
1019
+ if (existsSync2(candidate))
904
1020
  return candidate;
905
1021
  }
906
1022
  return candidates[0];
@@ -988,7 +1104,7 @@ var init_storage = __esm(() => {
988
1104
  MEMENTOS_STORAGE_FALLBACK_ENV = {
989
1105
  databaseUrl: "MEMENTOS_DATABASE_URL"
990
1106
  };
991
- LOCAL_DATA_DIR = join(homedir(), ".hasna", "mementos");
1107
+ LOCAL_DATA_DIR = getDataRoot();
992
1108
  DEFAULT_STORAGE_CONFIG = {
993
1109
  rds: {
994
1110
  host: "",
@@ -1003,8 +1119,8 @@ var init_storage = __esm(() => {
1003
1119
  schedule_minutes: 0
1004
1120
  }
1005
1121
  };
1006
- STORAGE_CONFIG_DIR = join(LOCAL_DATA_DIR, "storage");
1007
- STORAGE_CONFIG_PATH = join(STORAGE_CONFIG_DIR, "config.json");
1122
+ STORAGE_CONFIG_DIR = join3(LOCAL_DATA_DIR, "storage");
1123
+ STORAGE_CONFIG_PATH = join3(STORAGE_CONFIG_DIR, "config.json");
1008
1124
  DATABASE_ENV_NAMES = [
1009
1125
  { name: MEMENTOS_STORAGE_ENV.databaseUrl, deprecated: false },
1010
1126
  { name: MEMENTOS_STORAGE_FALLBACK_ENV.databaseUrl, deprecated: false }
@@ -1030,7 +1146,7 @@ var init_storage = __esm(() => {
1030
1146
 
1031
1147
  // src/db/api-mode.ts
1032
1148
  import { tmpdir } from "os";
1033
- import { join as join2 } from "path";
1149
+ import { join as join4 } from "path";
1034
1150
  import { writeFileSync as writeFileSync2, unlinkSync } from "fs";
1035
1151
  import { randomUUID } from "crypto";
1036
1152
  function firstEnv2(keys) {
@@ -1140,7 +1256,7 @@ x-api-key: ${cfg.apiKey}
1140
1256
  ];
1141
1257
  let bodyFile;
1142
1258
  if (hasBody) {
1143
- bodyFile = join2(tmpdir(), `mem-req-${process.pid}-${randomUUID()}.json`);
1259
+ bodyFile = join4(tmpdir(), `mem-req-${process.pid}-${randomUUID()}.json`);
1144
1260
  writeFileSync2(bodyFile, JSON.stringify(body), { mode: 384 });
1145
1261
  args.push("--data-binary", `@${bodyFile}`);
1146
1262
  }
@@ -2660,18 +2776,18 @@ __export(exports_database, {
2660
2776
  escapeLikePrefix: () => escapeLikePrefix,
2661
2777
  closeDatabase: () => closeDatabase
2662
2778
  });
2663
- import { existsSync as existsSync2, mkdirSync as mkdirSync2, cpSync } from "fs";
2664
- import { dirname, join as join3, resolve } from "path";
2779
+ import { existsSync as existsSync3, mkdirSync as mkdirSync2, cpSync } from "fs";
2780
+ import { dirname, join as join5, resolve as resolve2 } from "path";
2665
2781
  function isInMemoryDb(path) {
2666
2782
  return path === ":memory:" || path.startsWith("file::memory:");
2667
2783
  }
2668
2784
  function findNearestMementosDb(startDir) {
2669
- let dir = resolve(startDir);
2785
+ let dir = resolve2(startDir);
2670
2786
  const home = process.env["HOME"] || process.env["USERPROFILE"] || "~";
2671
- const legacyHomeDb = resolve(home, ".mementos", "mementos.db");
2787
+ const legacyHomeDb = resolve2(home, ".mementos", "mementos.db");
2672
2788
  while (true) {
2673
- const candidate = join3(dir, ".mementos", "mementos.db");
2674
- if (existsSync2(candidate) && resolve(candidate) !== legacyHomeDb)
2789
+ const candidate = join5(dir, ".mementos", "mementos.db");
2790
+ if (existsSync3(candidate) && resolve2(candidate) !== legacyHomeDb)
2675
2791
  return candidate;
2676
2792
  const parent = dirname(dir);
2677
2793
  if (parent === dir)
@@ -2681,9 +2797,9 @@ function findNearestMementosDb(startDir) {
2681
2797
  return null;
2682
2798
  }
2683
2799
  function findGitRoot(startDir) {
2684
- let dir = resolve(startDir);
2800
+ let dir = resolve2(startDir);
2685
2801
  while (true) {
2686
- if (existsSync2(join3(dir, ".git")))
2802
+ if (existsSync3(join5(dir, ".git")))
2687
2803
  return dir;
2688
2804
  const parent = dirname(dir);
2689
2805
  if (parent === dir)
@@ -2694,10 +2810,10 @@ function findGitRoot(startDir) {
2694
2810
  }
2695
2811
  function migrateGlobalDir() {
2696
2812
  const home = process.env["HOME"] || process.env["USERPROFILE"] || "~";
2697
- const newDir = join3(home, ".hasna", "mementos");
2698
- const oldDir = join3(home, ".mementos");
2699
- if (!existsSync2(newDir) && existsSync2(oldDir)) {
2700
- mkdirSync2(join3(home, ".hasna"), { recursive: true });
2813
+ const newDir = getDataRoot();
2814
+ const oldDir = join5(home, ".mementos");
2815
+ if (!existsSync3(newDir) && existsSync3(oldDir)) {
2816
+ mkdirSync2(dirname(newDir), { recursive: true });
2701
2817
  cpSync(oldDir, newDir, { recursive: true });
2702
2818
  }
2703
2819
  }
@@ -2714,18 +2830,17 @@ function getDbPath() {
2714
2830
  if (process.env["MEMENTOS_DB_SCOPE"] === "project") {
2715
2831
  const gitRoot = findGitRoot(cwd);
2716
2832
  if (gitRoot) {
2717
- return join3(gitRoot, ".mementos", "mementos.db");
2833
+ return join5(gitRoot, ".mementos", "mementos.db");
2718
2834
  }
2719
2835
  }
2720
2836
  migrateGlobalDir();
2721
- const home = process.env["HOME"] || process.env["USERPROFILE"] || "~";
2722
- return join3(home, ".hasna", "mementos", "mementos.db");
2837
+ return join5(getDataRoot(), "mementos.db");
2723
2838
  }
2724
2839
  function ensureDir(filePath) {
2725
2840
  if (isInMemoryDb(filePath))
2726
2841
  return;
2727
- const dir = dirname(resolve(filePath));
2728
- if (!existsSync2(dir)) {
2842
+ const dir = dirname(resolve2(filePath));
2843
+ if (!existsSync3(dir)) {
2729
2844
  mkdirSync2(dir, { recursive: true });
2730
2845
  }
2731
2846
  }
@@ -2863,6 +2978,7 @@ var init_database = __esm(() => {
2863
2978
  init_storage();
2864
2979
  init_api_mode();
2865
2980
  init_migrations();
2981
+ init_paths();
2866
2982
  ALLOWED_TABLES = new Set([
2867
2983
  "memories",
2868
2984
  "agents",
@@ -2882,7 +2998,7 @@ var init_database = __esm(() => {
2882
2998
 
2883
2999
  // src/project-registration/authority.ts
2884
3000
  import { createHash as createHash2 } from "crypto";
2885
- import { resolve as resolve2 } from "path";
3001
+ import { resolve as resolve3 } from "path";
2886
3002
 
2887
3003
  // src/db/projects.ts
2888
3004
  init_database();
@@ -2891,13 +3007,13 @@ import { createHash } from "crypto";
2891
3007
 
2892
3008
  // src/lib/package-version.ts
2893
3009
  import { readFileSync as readFileSync2 } from "fs";
2894
- import { dirname as dirname2, join as join4 } from "path";
3010
+ import { dirname as dirname2, join as join6 } from "path";
2895
3011
  import { fileURLToPath as fileURLToPath2 } from "url";
2896
3012
  function getMementosPackageVersion() {
2897
3013
  const here = dirname2(fileURLToPath2(import.meta.url));
2898
3014
  for (const candidate of [
2899
- join4(here, "..", "..", "package.json"),
2900
- join4(here, "..", "package.json")
3015
+ join6(here, "..", "..", "package.json"),
3016
+ join6(here, "..", "package.json")
2901
3017
  ]) {
2902
3018
  try {
2903
3019
  const parsed = JSON.parse(readFileSync2(candidate, "utf8"));
@@ -3750,7 +3866,7 @@ function ownedPath(target) {
3750
3866
  }
3751
3867
  const path = target.withOwnedPath((value) => value);
3752
3868
  requireString(path, "target path", { max: 4096 });
3753
- if (path !== resolve2(path)) {
3869
+ if (path !== resolve3(path)) {
3754
3870
  throw new MementosProjectRegistrationError("MEMENTOS_PROJECT_REGISTRATION_INVALID_INPUT", "target path must already be canonical and absolute");
3755
3871
  }
3756
3872
  return path;
@@ -5443,12 +5559,22 @@ function createMemory(input, dedupeMode = "merge", db) {
5443
5559
  const effectiveMode = dedupeMode === "overwrite" ? "merge" : dedupeMode === "version-fork" ? "create" : dedupeMode;
5444
5560
  if (effectiveMode === "error") {
5445
5561
  const existing = d.query(`SELECT id, agent_id, updated_at FROM memories
5446
- WHERE key = ? AND scope = ? AND COALESCE(project_id, '') = ? AND status = 'active'
5562
+ WHERE key = ? AND scope = ? AND COALESCE(project_id, '') = ?
5447
5563
  LIMIT 1`).get(input.key, input.scope || "private", input.project_id || "");
5448
5564
  if (existing) {
5449
5565
  throw new MemoryConflictError(input.key, existing);
5450
5566
  }
5451
5567
  }
5568
+ if (effectiveMode === "create") {
5569
+ const existing = d.query(`SELECT id, agent_id, updated_at FROM memories
5570
+ WHERE key = ? AND scope = ?
5571
+ AND COALESCE(agent_id, '') = ?
5572
+ AND COALESCE(project_id, '') = ?
5573
+ AND COALESCE(session_id, '') = ?`).get(input.key, input.scope || "private", input.agent_id || "", input.project_id || "", input.session_id || "");
5574
+ if (existing) {
5575
+ throw new MemoryConflictError(input.key, existing);
5576
+ }
5577
+ }
5452
5578
  if (effectiveMode === "merge") {
5453
5579
  const existing = d.query(`SELECT id, version FROM memories
5454
5580
  WHERE key = ? AND scope = ?
@@ -5876,6 +6002,17 @@ function updateMemory(id, input, db) {
5876
6002
  if (existing.version !== input.version) {
5877
6003
  throw new VersionConflictError(id, input.version, existing.version);
5878
6004
  }
6005
+ if (input.scope !== undefined && input.scope !== existing.scope) {
6006
+ const conflict = d.query(`SELECT id, agent_id, updated_at FROM memories
6007
+ WHERE key = ? AND scope = ?
6008
+ AND COALESCE(agent_id, '') = ?
6009
+ AND COALESCE(project_id, '') = ?
6010
+ AND COALESCE(session_id, '') = ?
6011
+ AND id != ?`).get(existing.key, input.scope, existing.agent_id || "", existing.project_id || "", existing.session_id || "", memoryId);
6012
+ if (conflict) {
6013
+ throw new MemoryConflictError(existing.key, conflict);
6014
+ }
6015
+ }
5879
6016
  const sets = ["version = version + 1", "updated_at = ?"];
5880
6017
  const params = [now()];
5881
6018
  if (input.value !== undefined) {