daycare-cli 2026.2.4 → 2026.2.7

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 (472) hide show
  1. package/dist/commands/upgrade.d.ts +5 -0
  2. package/dist/commands/upgrade.d.ts.map +1 -0
  3. package/dist/commands/upgrade.js +22 -0
  4. package/dist/commands/upgrade.js.map +1 -0
  5. package/dist/config/configResolve.d.ts.map +1 -1
  6. package/dist/config/configResolve.js +2 -0
  7. package/dist/config/configResolve.js.map +1 -1
  8. package/dist/config/configResolve.spec.js +11 -0
  9. package/dist/config/configResolve.spec.js.map +1 -1
  10. package/dist/config/configSettingsParse.d.ts.map +1 -1
  11. package/dist/config/configSettingsParse.js +2 -1
  12. package/dist/config/configSettingsParse.js.map +1 -1
  13. package/dist/config/configSettingsParse.spec.js +8 -0
  14. package/dist/config/configSettingsParse.spec.js.map +1 -1
  15. package/dist/config/configTypes.d.ts +1 -0
  16. package/dist/config/configTypes.d.ts.map +1 -1
  17. package/dist/engine/agents/agent.d.ts +4 -3
  18. package/dist/engine/agents/agent.d.ts.map +1 -1
  19. package/dist/engine/agents/agent.js +45 -26
  20. package/dist/engine/agents/agent.js.map +1 -1
  21. package/dist/engine/agents/agent.spec.js +91 -50
  22. package/dist/engine/agents/agent.spec.js.map +1 -1
  23. package/dist/engine/agents/agentContext.d.ts +10 -0
  24. package/dist/engine/agents/agentContext.d.ts.map +1 -0
  25. package/dist/engine/agents/agentContext.js +13 -0
  26. package/dist/engine/agents/agentContext.js.map +1 -0
  27. package/dist/engine/agents/agentContext.spec.d.ts +2 -0
  28. package/dist/engine/agents/agentContext.spec.d.ts.map +1 -0
  29. package/dist/engine/agents/agentContext.spec.js +21 -0
  30. package/dist/engine/agents/agentContext.spec.js.map +1 -0
  31. package/dist/engine/agents/agentSystem.d.ts +16 -1
  32. package/dist/engine/agents/agentSystem.d.ts.map +1 -1
  33. package/dist/engine/agents/agentSystem.js +157 -25
  34. package/dist/engine/agents/agentSystem.js.map +1 -1
  35. package/dist/engine/agents/agentSystem.spec.js +88 -0
  36. package/dist/engine/agents/agentSystem.spec.js.map +1 -1
  37. package/dist/engine/agents/ops/agentBackgroundList.d.ts +1 -1
  38. package/dist/engine/agents/ops/agentBackgroundList.d.ts.map +1 -1
  39. package/dist/engine/agents/ops/agentBackgroundList.js +8 -34
  40. package/dist/engine/agents/ops/agentBackgroundList.js.map +1 -1
  41. package/dist/engine/agents/ops/agentDescriptorRead.d.ts +2 -2
  42. package/dist/engine/agents/ops/agentDescriptorRead.d.ts.map +1 -1
  43. package/dist/engine/agents/ops/agentDescriptorRead.js +5 -72
  44. package/dist/engine/agents/ops/agentDescriptorRead.js.map +1 -1
  45. package/dist/engine/agents/ops/agentDescriptorWrite.d.ts +3 -2
  46. package/dist/engine/agents/ops/agentDescriptorWrite.d.ts.map +1 -1
  47. package/dist/engine/agents/ops/agentDescriptorWrite.js +42 -11
  48. package/dist/engine/agents/ops/agentDescriptorWrite.js.map +1 -1
  49. package/dist/engine/agents/ops/agentDescriptorWrite.spec.d.ts +2 -0
  50. package/dist/engine/agents/ops/agentDescriptorWrite.spec.d.ts.map +1 -0
  51. package/dist/engine/agents/ops/agentDescriptorWrite.spec.js +49 -0
  52. package/dist/engine/agents/ops/agentDescriptorWrite.spec.js.map +1 -0
  53. package/dist/engine/agents/ops/agentHistoryAppend.d.ts +2 -2
  54. package/dist/engine/agents/ops/agentHistoryAppend.d.ts.map +1 -1
  55. package/dist/engine/agents/ops/agentHistoryAppend.js +23 -10
  56. package/dist/engine/agents/ops/agentHistoryAppend.js.map +1 -1
  57. package/dist/engine/agents/ops/agentHistoryContext.d.ts.map +1 -1
  58. package/dist/engine/agents/ops/agentHistoryContext.js +0 -11
  59. package/dist/engine/agents/ops/agentHistoryContext.js.map +1 -1
  60. package/dist/engine/agents/ops/agentHistoryContext.spec.js +4 -7
  61. package/dist/engine/agents/ops/agentHistoryContext.spec.js.map +1 -1
  62. package/dist/engine/agents/ops/agentHistoryLoad.d.ts +1 -1
  63. package/dist/engine/agents/ops/agentHistoryLoad.d.ts.map +1 -1
  64. package/dist/engine/agents/ops/agentHistoryLoad.js +6 -19
  65. package/dist/engine/agents/ops/agentHistoryLoad.js.map +1 -1
  66. package/dist/engine/agents/ops/agentHistoryLoad.spec.js +38 -8
  67. package/dist/engine/agents/ops/agentHistoryLoad.spec.js.map +1 -1
  68. package/dist/engine/agents/ops/agentHistoryLoadAll.d.ts +1 -1
  69. package/dist/engine/agents/ops/agentHistoryLoadAll.js +3 -3
  70. package/dist/engine/agents/ops/agentHistoryLoadAll.js.map +1 -1
  71. package/dist/engine/agents/ops/agentHistoryLoadAll.spec.js +33 -14
  72. package/dist/engine/agents/ops/agentHistoryLoadAll.spec.js.map +1 -1
  73. package/dist/engine/agents/ops/agentHistoryPendingRlmResolve.spec.js +1 -1
  74. package/dist/engine/agents/ops/agentHistoryPendingRlmResolve.spec.js.map +1 -1
  75. package/dist/engine/agents/ops/agentHistorySummary.js +0 -2
  76. package/dist/engine/agents/ops/agentHistorySummary.js.map +1 -1
  77. package/dist/engine/agents/ops/agentHistorySummary.spec.js +2 -7
  78. package/dist/engine/agents/ops/agentHistorySummary.spec.js.map +1 -1
  79. package/dist/engine/agents/ops/agentInbox.d.ts +14 -1
  80. package/dist/engine/agents/ops/agentInbox.d.ts.map +1 -1
  81. package/dist/engine/agents/ops/agentInbox.js +21 -0
  82. package/dist/engine/agents/ops/agentInbox.js.map +1 -1
  83. package/dist/engine/agents/ops/agentInbox.spec.js +36 -0
  84. package/dist/engine/agents/ops/agentInbox.spec.js.map +1 -1
  85. package/dist/engine/agents/ops/agentList.d.ts +1 -1
  86. package/dist/engine/agents/ops/agentList.d.ts.map +1 -1
  87. package/dist/engine/agents/ops/agentList.js +9 -35
  88. package/dist/engine/agents/ops/agentList.js.map +1 -1
  89. package/dist/engine/agents/ops/agentLoopRun.d.ts.map +1 -1
  90. package/dist/engine/agents/ops/agentLoopRun.js +62 -2
  91. package/dist/engine/agents/ops/agentLoopRun.js.map +1 -1
  92. package/dist/engine/agents/ops/agentLoopRun.spec.js +5 -0
  93. package/dist/engine/agents/ops/agentLoopRun.spec.js.map +1 -1
  94. package/dist/engine/agents/ops/agentPermanentList.d.ts +1 -1
  95. package/dist/engine/agents/ops/agentPermanentList.d.ts.map +1 -1
  96. package/dist/engine/agents/ops/agentPermanentList.js +8 -31
  97. package/dist/engine/agents/ops/agentPermanentList.js.map +1 -1
  98. package/dist/engine/agents/ops/agentStateRead.d.ts +2 -2
  99. package/dist/engine/agents/ops/agentStateRead.d.ts.map +1 -1
  100. package/dist/engine/agents/ops/agentStateRead.js +19 -74
  101. package/dist/engine/agents/ops/agentStateRead.js.map +1 -1
  102. package/dist/engine/agents/ops/agentStateRead.spec.js +25 -28
  103. package/dist/engine/agents/ops/agentStateRead.spec.js.map +1 -1
  104. package/dist/engine/agents/ops/agentStateWrite.d.ts +2 -2
  105. package/dist/engine/agents/ops/agentStateWrite.d.ts.map +1 -1
  106. package/dist/engine/agents/ops/agentStateWrite.js +17 -16
  107. package/dist/engine/agents/ops/agentStateWrite.js.map +1 -1
  108. package/dist/engine/agents/ops/agentTypes.d.ts +7 -7
  109. package/dist/engine/agents/ops/agentTypes.d.ts.map +1 -1
  110. package/dist/engine/apps/appExecute.spec.js +43 -20
  111. package/dist/engine/apps/appExecute.spec.js.map +1 -1
  112. package/dist/engine/apps/appInstallToolBuild.spec.js +1 -0
  113. package/dist/engine/apps/appInstallToolBuild.spec.js.map +1 -1
  114. package/dist/engine/apps/appRuleToolBuild.spec.js +1 -0
  115. package/dist/engine/apps/appRuleToolBuild.spec.js.map +1 -1
  116. package/dist/engine/apps/appToolExecutorBuild.spec.js +1 -0
  117. package/dist/engine/apps/appToolExecutorBuild.spec.js.map +1 -1
  118. package/dist/engine/channels/channels.d.ts +1 -1
  119. package/dist/engine/channels/channels.d.ts.map +1 -1
  120. package/dist/engine/channels/channels.js +20 -0
  121. package/dist/engine/channels/channels.js.map +1 -1
  122. package/dist/engine/channels/channels.spec.js +19 -0
  123. package/dist/engine/channels/channels.spec.js.map +1 -1
  124. package/dist/engine/cron/cronTypes.d.ts +2 -0
  125. package/dist/engine/cron/cronTypes.d.ts.map +1 -1
  126. package/dist/engine/cron/crons.d.ts.map +1 -1
  127. package/dist/engine/cron/crons.js +11 -1
  128. package/dist/engine/cron/crons.js.map +1 -1
  129. package/dist/engine/cron/ops/cronScheduler.d.ts.map +1 -1
  130. package/dist/engine/cron/ops/cronScheduler.js +5 -2
  131. package/dist/engine/cron/ops/cronScheduler.js.map +1 -1
  132. package/dist/engine/cron/ops/cronScheduler.spec.js +3 -1
  133. package/dist/engine/cron/ops/cronScheduler.spec.js.map +1 -1
  134. package/dist/engine/cron/ops/cronStore.d.ts.map +1 -1
  135. package/dist/engine/cron/ops/cronStore.js +17 -0
  136. package/dist/engine/cron/ops/cronStore.js.map +1 -1
  137. package/dist/engine/cron/ops/cronStore.spec.js +3 -0
  138. package/dist/engine/cron/ops/cronStore.spec.js.map +1 -1
  139. package/dist/engine/engine.d.ts.map +1 -1
  140. package/dist/engine/engine.js +4 -2
  141. package/dist/engine/engine.js.map +1 -1
  142. package/dist/engine/heartbeat/heartbeats.d.ts.map +1 -1
  143. package/dist/engine/heartbeat/heartbeats.js +11 -1
  144. package/dist/engine/heartbeat/heartbeats.js.map +1 -1
  145. package/dist/engine/modules/monty/montyPythonTypeFromSchemaRuntime.spec.js +1 -0
  146. package/dist/engine/modules/monty/montyPythonTypeFromSchemaRuntime.spec.js.map +1 -1
  147. package/dist/engine/modules/rlm/rlmExecute.d.ts +10 -1
  148. package/dist/engine/modules/rlm/rlmExecute.d.ts.map +1 -1
  149. package/dist/engine/modules/rlm/rlmExecute.js +35 -1
  150. package/dist/engine/modules/rlm/rlmExecute.js.map +1 -1
  151. package/dist/engine/modules/rlm/rlmExecute.spec.js +1 -0
  152. package/dist/engine/modules/rlm/rlmExecute.spec.js.map +1 -1
  153. package/dist/engine/modules/rlm/rlmRestore.d.ts +2 -2
  154. package/dist/engine/modules/rlm/rlmRestore.d.ts.map +1 -1
  155. package/dist/engine/modules/rlm/rlmRestore.js +35 -1
  156. package/dist/engine/modules/rlm/rlmRestore.js.map +1 -1
  157. package/dist/engine/modules/rlm/rlmRestore.spec.js +1 -0
  158. package/dist/engine/modules/rlm/rlmRestore.spec.js.map +1 -1
  159. package/dist/engine/modules/rlm/rlmTool.d.ts.map +1 -1
  160. package/dist/engine/modules/rlm/rlmTool.js +9 -1
  161. package/dist/engine/modules/rlm/rlmTool.js.map +1 -1
  162. package/dist/engine/modules/rlm/rlmTool.spec.js +10 -1
  163. package/dist/engine/modules/rlm/rlmTool.spec.js.map +1 -1
  164. package/dist/engine/modules/toolResolver.spec.js +8 -7
  165. package/dist/engine/modules/toolResolver.spec.js.map +1 -1
  166. package/dist/engine/modules/tools/agentCompactTool.spec.js +1 -0
  167. package/dist/engine/modules/tools/agentCompactTool.spec.js.map +1 -1
  168. package/dist/engine/modules/tools/agentResetTool.spec.js +1 -0
  169. package/dist/engine/modules/tools/agentResetTool.spec.js.map +1 -1
  170. package/dist/engine/modules/tools/background.d.ts.map +1 -1
  171. package/dist/engine/modules/tools/background.js +40 -2
  172. package/dist/engine/modules/tools/background.js.map +1 -1
  173. package/dist/engine/modules/tools/background.spec.js +1 -0
  174. package/dist/engine/modules/tools/background.spec.js.map +1 -1
  175. package/dist/engine/modules/tools/channelCreateTool.spec.js +1 -0
  176. package/dist/engine/modules/tools/channelCreateTool.spec.js.map +1 -1
  177. package/dist/engine/modules/tools/channelHistoryTool.spec.js +1 -0
  178. package/dist/engine/modules/tools/channelHistoryTool.spec.js.map +1 -1
  179. package/dist/engine/modules/tools/channelMemberTool.spec.js +1 -0
  180. package/dist/engine/modules/tools/channelMemberTool.spec.js.map +1 -1
  181. package/dist/engine/modules/tools/channelSendTool.spec.js +1 -0
  182. package/dist/engine/modules/tools/channelSendTool.spec.js.map +1 -1
  183. package/dist/engine/modules/tools/cron.d.ts.map +1 -1
  184. package/dist/engine/modules/tools/cron.js +1 -0
  185. package/dist/engine/modules/tools/cron.js.map +1 -1
  186. package/dist/engine/modules/tools/image-generation.spec.js +1 -0
  187. package/dist/engine/modules/tools/image-generation.spec.js.map +1 -1
  188. package/dist/engine/modules/tools/mermaid-png.spec.js +1 -0
  189. package/dist/engine/modules/tools/mermaid-png.spec.js.map +1 -1
  190. package/dist/engine/modules/tools/permanentAgentToolBuild.d.ts.map +1 -1
  191. package/dist/engine/modules/tools/permanentAgentToolBuild.js +14 -4
  192. package/dist/engine/modules/tools/permanentAgentToolBuild.js.map +1 -1
  193. package/dist/engine/modules/tools/permanentAgentToolBuild.spec.js +4 -0
  194. package/dist/engine/modules/tools/permanentAgentToolBuild.spec.js.map +1 -1
  195. package/dist/engine/modules/tools/permissions.spec.js +1 -0
  196. package/dist/engine/modules/tools/permissions.spec.js.map +1 -1
  197. package/dist/engine/modules/tools/sendUserMessageTool.spec.js +1 -0
  198. package/dist/engine/modules/tools/sendUserMessageTool.spec.js.map +1 -1
  199. package/dist/engine/modules/tools/sessionHistoryToolBuild.js +1 -9
  200. package/dist/engine/modules/tools/sessionHistoryToolBuild.js.map +1 -1
  201. package/dist/engine/modules/tools/sessionHistoryToolBuild.spec.js +4 -3
  202. package/dist/engine/modules/tools/sessionHistoryToolBuild.spec.js.map +1 -1
  203. package/dist/engine/modules/tools/signal.d.ts.map +1 -1
  204. package/dist/engine/modules/tools/signal.js +7 -2
  205. package/dist/engine/modules/tools/signal.js.map +1 -1
  206. package/dist/engine/modules/tools/signal.spec.js +11 -3
  207. package/dist/engine/modules/tools/signal.spec.js.map +1 -1
  208. package/dist/engine/modules/tools/signalEventsCsvToolBuild.spec.js +1 -0
  209. package/dist/engine/modules/tools/signalEventsCsvToolBuild.spec.js.map +1 -1
  210. package/dist/engine/modules/tools/signalSubscribeToolBuild.d.ts.map +1 -1
  211. package/dist/engine/modules/tools/signalSubscribeToolBuild.js +3 -2
  212. package/dist/engine/modules/tools/signalSubscribeToolBuild.js.map +1 -1
  213. package/dist/engine/modules/tools/signalSubscribeToolBuild.spec.js +14 -4
  214. package/dist/engine/modules/tools/signalSubscribeToolBuild.spec.js.map +1 -1
  215. package/dist/engine/modules/tools/signalUnsubscribeToolBuild.d.ts.map +1 -1
  216. package/dist/engine/modules/tools/signalUnsubscribeToolBuild.js +3 -2
  217. package/dist/engine/modules/tools/signalUnsubscribeToolBuild.js.map +1 -1
  218. package/dist/engine/modules/tools/signalUnsubscribeToolBuild.spec.js +16 -2
  219. package/dist/engine/modules/tools/signalUnsubscribeToolBuild.spec.js.map +1 -1
  220. package/dist/engine/modules/tools/skillToolBuild.spec.js +1 -0
  221. package/dist/engine/modules/tools/skillToolBuild.spec.js.map +1 -1
  222. package/dist/engine/modules/tools/topologyToolBuild.d.ts +1 -1
  223. package/dist/engine/modules/tools/topologyToolBuild.d.ts.map +1 -1
  224. package/dist/engine/modules/tools/topologyToolBuild.js +11 -4
  225. package/dist/engine/modules/tools/topologyToolBuild.js.map +1 -1
  226. package/dist/engine/modules/tools/topologyToolBuild.spec.js +24 -6
  227. package/dist/engine/modules/tools/topologyToolBuild.spec.js.map +1 -1
  228. package/dist/engine/modules/tools/types.d.ts +2 -2
  229. package/dist/engine/modules/tools/types.d.ts.map +1 -1
  230. package/dist/engine/signals/signalTypes.d.ts +7 -0
  231. package/dist/engine/signals/signalTypes.d.ts.map +1 -1
  232. package/dist/engine/signals/signals.d.ts.map +1 -1
  233. package/dist/engine/signals/signals.js +38 -14
  234. package/dist/engine/signals/signals.js.map +1 -1
  235. package/dist/engine/signals/signals.spec.js +45 -8
  236. package/dist/engine/signals/signals.spec.js.map +1 -1
  237. package/dist/main.js +6 -0
  238. package/dist/main.js.map +1 -1
  239. package/dist/plugins/dashboard/site/404.html +1 -1
  240. package/dist/plugins/dashboard/site/agent.html +1 -1
  241. package/dist/plugins/dashboard/site/agent.txt +1 -1
  242. package/dist/plugins/dashboard/site/agents.html +1 -1
  243. package/dist/plugins/dashboard/site/agents.txt +1 -1
  244. package/dist/plugins/dashboard/site/automations.html +1 -1
  245. package/dist/plugins/dashboard/site/automations.txt +1 -1
  246. package/dist/plugins/dashboard/site/connectors.html +1 -1
  247. package/dist/plugins/dashboard/site/connectors.txt +1 -1
  248. package/dist/plugins/dashboard/site/index.html +1 -1
  249. package/dist/plugins/dashboard/site/index.txt +1 -1
  250. package/dist/plugins/dashboard/site/processes.html +1 -1
  251. package/dist/plugins/dashboard/site/processes.txt +1 -1
  252. package/dist/plugins/dashboard/site/providers.html +1 -1
  253. package/dist/plugins/dashboard/site/providers.txt +1 -1
  254. package/dist/plugins/dashboard/site/signals.html +1 -1
  255. package/dist/plugins/dashboard/site/signals.txt +1 -1
  256. package/dist/plugins/dashboard/site/telemetry.html +1 -1
  257. package/dist/plugins/dashboard/site/telemetry.txt +1 -1
  258. package/dist/plugins/dashboard/site/tools.html +1 -1
  259. package/dist/plugins/dashboard/site/tools.txt +1 -1
  260. package/dist/plugins/database/__tests__/plugin.spec.js +3 -1
  261. package/dist/plugins/database/__tests__/plugin.spec.js.map +1 -1
  262. package/dist/plugins/monty-python/tool.spec.js +2 -1
  263. package/dist/plugins/monty-python/tool.spec.js.map +1 -1
  264. package/dist/plugins/shell/processTools.spec.js +1 -0
  265. package/dist/plugins/shell/processTools.spec.js.map +1 -1
  266. package/dist/plugins/shell/tool.spec.js +2 -1
  267. package/dist/plugins/shell/tool.spec.js.map +1 -1
  268. package/dist/plugins/upgrade/plugin.spec.js +12 -1
  269. package/dist/plugins/upgrade/plugin.spec.js.map +1 -1
  270. package/dist/prompts/SYSTEM_AGENCY.md +10 -1
  271. package/dist/settings.d.ts +1 -0
  272. package/dist/settings.d.ts.map +1 -1
  273. package/dist/settings.js.map +1 -1
  274. package/dist/storage/agentDb.spec.d.ts +2 -0
  275. package/dist/storage/agentDb.spec.d.ts.map +1 -0
  276. package/dist/storage/agentDb.spec.js +117 -0
  277. package/dist/storage/agentDb.spec.js.map +1 -0
  278. package/dist/storage/agentDbList.d.ts +8 -0
  279. package/dist/storage/agentDbList.d.ts.map +1 -0
  280. package/dist/storage/agentDbList.js +17 -0
  281. package/dist/storage/agentDbList.js.map +1 -0
  282. package/dist/storage/agentDbParse.d.ts +7 -0
  283. package/dist/storage/agentDbParse.d.ts.map +1 -0
  284. package/dist/storage/agentDbParse.js +20 -0
  285. package/dist/storage/agentDbParse.js.map +1 -0
  286. package/dist/storage/agentDbParse.spec.d.ts +2 -0
  287. package/dist/storage/agentDbParse.spec.d.ts.map +1 -0
  288. package/dist/storage/agentDbParse.spec.js +27 -0
  289. package/dist/storage/agentDbParse.spec.js.map +1 -0
  290. package/dist/storage/agentDbRead.d.ts +8 -0
  291. package/dist/storage/agentDbRead.d.ts.map +1 -0
  292. package/dist/storage/agentDbRead.js +20 -0
  293. package/dist/storage/agentDbRead.js.map +1 -0
  294. package/dist/storage/agentDbWrite.d.ts +8 -0
  295. package/dist/storage/agentDbWrite.d.ts.map +1 -0
  296. package/dist/storage/agentDbWrite.js +40 -0
  297. package/dist/storage/agentDbWrite.js.map +1 -0
  298. package/dist/storage/databaseOpen.d.ts +7 -0
  299. package/dist/storage/databaseOpen.d.ts.map +1 -0
  300. package/dist/storage/databaseOpen.js +21 -0
  301. package/dist/storage/databaseOpen.js.map +1 -0
  302. package/dist/storage/databaseOpen.spec.d.ts +2 -0
  303. package/dist/storage/databaseOpen.spec.d.ts.map +1 -0
  304. package/dist/storage/databaseOpen.spec.js +27 -0
  305. package/dist/storage/databaseOpen.spec.js.map +1 -0
  306. package/dist/storage/databaseOpenEnsured.d.ts +7 -0
  307. package/dist/storage/databaseOpenEnsured.d.ts.map +1 -0
  308. package/dist/storage/databaseOpenEnsured.js +17 -0
  309. package/dist/storage/databaseOpenEnsured.js.map +1 -0
  310. package/dist/storage/databaseTypes.d.ts +74 -0
  311. package/dist/storage/databaseTypes.d.ts.map +1 -0
  312. package/dist/storage/databaseTypes.js +2 -0
  313. package/dist/storage/databaseTypes.js.map +1 -0
  314. package/dist/storage/migrations/20260219_import_files.d.ts +3 -0
  315. package/dist/storage/migrations/20260219_import_files.d.ts.map +1 -0
  316. package/dist/storage/migrations/20260219_import_files.js +205 -0
  317. package/dist/storage/migrations/20260219_import_files.js.map +1 -0
  318. package/dist/storage/migrations/20260219_initial.d.ts +3 -0
  319. package/dist/storage/migrations/20260219_initial.d.ts.map +1 -0
  320. package/dist/storage/migrations/20260219_initial.js +42 -0
  321. package/dist/storage/migrations/20260219_initial.js.map +1 -0
  322. package/dist/storage/migrations/20260220_add_users.d.ts +7 -0
  323. package/dist/storage/migrations/20260220_add_users.d.ts.map +1 -0
  324. package/dist/storage/migrations/20260220_add_users.js +31 -0
  325. package/dist/storage/migrations/20260220_add_users.js.map +1 -0
  326. package/dist/storage/migrations/20260220_add_users.spec.d.ts +2 -0
  327. package/dist/storage/migrations/20260220_add_users.spec.d.ts.map +1 -0
  328. package/dist/storage/migrations/20260220_add_users.spec.js +61 -0
  329. package/dist/storage/migrations/20260220_add_users.spec.js.map +1 -0
  330. package/dist/storage/migrations/20260220_users_bootstrap.d.ts +3 -0
  331. package/dist/storage/migrations/20260220_users_bootstrap.d.ts.map +1 -0
  332. package/dist/storage/migrations/20260220_users_bootstrap.js +114 -0
  333. package/dist/storage/migrations/20260220_users_bootstrap.js.map +1 -0
  334. package/dist/storage/migrations/20260220_users_bootstrap.spec.d.ts +2 -0
  335. package/dist/storage/migrations/20260220_users_bootstrap.spec.d.ts.map +1 -0
  336. package/dist/storage/migrations/20260220_users_bootstrap.spec.js +200 -0
  337. package/dist/storage/migrations/20260220_users_bootstrap.spec.js.map +1 -0
  338. package/dist/storage/migrations/_migrations.d.ts +3 -0
  339. package/dist/storage/migrations/_migrations.d.ts.map +1 -0
  340. package/dist/storage/migrations/_migrations.js +11 -0
  341. package/dist/storage/migrations/_migrations.js.map +1 -0
  342. package/dist/storage/migrations/migrationPending.d.ts +8 -0
  343. package/dist/storage/migrations/migrationPending.d.ts.map +1 -0
  344. package/dist/storage/migrations/migrationPending.js +18 -0
  345. package/dist/storage/migrations/migrationPending.js.map +1 -0
  346. package/dist/storage/migrations/migrationPending.spec.d.ts +2 -0
  347. package/dist/storage/migrations/migrationPending.spec.d.ts.map +1 -0
  348. package/dist/storage/migrations/migrationPending.spec.js +42 -0
  349. package/dist/storage/migrations/migrationPending.spec.js.map +1 -0
  350. package/dist/storage/migrations/migrationRun.d.ts +7 -0
  351. package/dist/storage/migrations/migrationRun.d.ts.map +1 -0
  352. package/dist/storage/migrations/migrationRun.js +31 -0
  353. package/dist/storage/migrations/migrationRun.js.map +1 -0
  354. package/dist/storage/migrations/migrationRun.spec.d.ts +2 -0
  355. package/dist/storage/migrations/migrationRun.spec.d.ts.map +1 -0
  356. package/dist/storage/migrations/migrationRun.spec.js +41 -0
  357. package/dist/storage/migrations/migrationRun.spec.js.map +1 -0
  358. package/dist/storage/migrations/migrationTypes.d.ts +6 -0
  359. package/dist/storage/migrations/migrationTypes.d.ts.map +1 -0
  360. package/dist/storage/migrations/migrationTypes.js +2 -0
  361. package/dist/storage/migrations/migrationTypes.js.map +1 -0
  362. package/dist/storage/sessionDb.spec.d.ts +2 -0
  363. package/dist/storage/sessionDb.spec.d.ts.map +1 -0
  364. package/dist/storage/sessionDb.spec.js +96 -0
  365. package/dist/storage/sessionDb.spec.js.map +1 -0
  366. package/dist/storage/sessionDbCreate.d.ts +14 -0
  367. package/dist/storage/sessionDbCreate.d.ts.map +1 -0
  368. package/dist/storage/sessionDbCreate.js +27 -0
  369. package/dist/storage/sessionDbCreate.js.map +1 -0
  370. package/dist/storage/sessionDbListForAgent.d.ts +8 -0
  371. package/dist/storage/sessionDbListForAgent.d.ts.map +1 -0
  372. package/dist/storage/sessionDbListForAgent.js +19 -0
  373. package/dist/storage/sessionDbListForAgent.js.map +1 -0
  374. package/dist/storage/sessionDbParse.d.ts +7 -0
  375. package/dist/storage/sessionDbParse.d.ts.map +1 -0
  376. package/dist/storage/sessionDbParse.js +14 -0
  377. package/dist/storage/sessionDbParse.js.map +1 -0
  378. package/dist/storage/sessionDbRead.d.ts +8 -0
  379. package/dist/storage/sessionDbRead.d.ts.map +1 -0
  380. package/dist/storage/sessionDbRead.js +20 -0
  381. package/dist/storage/sessionDbRead.js.map +1 -0
  382. package/dist/storage/sessionHistoryDb.spec.d.ts +2 -0
  383. package/dist/storage/sessionHistoryDb.spec.d.ts.map +1 -0
  384. package/dist/storage/sessionHistoryDb.spec.js +102 -0
  385. package/dist/storage/sessionHistoryDb.spec.js.map +1 -0
  386. package/dist/storage/sessionHistoryDbAppend.d.ts +12 -0
  387. package/dist/storage/sessionHistoryDbAppend.d.ts.map +1 -0
  388. package/dist/storage/sessionHistoryDbAppend.js +19 -0
  389. package/dist/storage/sessionHistoryDbAppend.js.map +1 -0
  390. package/dist/storage/sessionHistoryDbLoad.d.ts +7 -0
  391. package/dist/storage/sessionHistoryDbLoad.d.ts.map +1 -0
  392. package/dist/storage/sessionHistoryDbLoad.js +21 -0
  393. package/dist/storage/sessionHistoryDbLoad.js.map +1 -0
  394. package/dist/storage/sessionHistoryDbLoadAll.d.ts +7 -0
  395. package/dist/storage/sessionHistoryDbLoadAll.d.ts.map +1 -0
  396. package/dist/storage/sessionHistoryDbLoadAll.js +27 -0
  397. package/dist/storage/sessionHistoryDbLoadAll.js.map +1 -0
  398. package/dist/storage/sessionHistoryRecordParse.d.ts +8 -0
  399. package/dist/storage/sessionHistoryRecordParse.d.ts.map +1 -0
  400. package/dist/storage/sessionHistoryRecordParse.js +18 -0
  401. package/dist/storage/sessionHistoryRecordParse.js.map +1 -0
  402. package/dist/storage/sessionHistoryRecordParse.spec.d.ts +2 -0
  403. package/dist/storage/sessionHistoryRecordParse.spec.d.ts.map +1 -0
  404. package/dist/storage/sessionHistoryRecordParse.spec.js +29 -0
  405. package/dist/storage/sessionHistoryRecordParse.spec.js.map +1 -0
  406. package/dist/storage/storageUpgrade.d.ts +11 -0
  407. package/dist/storage/storageUpgrade.d.ts.map +1 -0
  408. package/dist/storage/storageUpgrade.js +27 -0
  409. package/dist/storage/storageUpgrade.js.map +1 -0
  410. package/dist/storage/storageUpgrade.spec.d.ts +2 -0
  411. package/dist/storage/storageUpgrade.spec.d.ts.map +1 -0
  412. package/dist/storage/storageUpgrade.spec.js +27 -0
  413. package/dist/storage/storageUpgrade.spec.js.map +1 -0
  414. package/dist/storage/userConnectorKeyCreate.d.ts +6 -0
  415. package/dist/storage/userConnectorKeyCreate.d.ts.map +1 -0
  416. package/dist/storage/userConnectorKeyCreate.js +16 -0
  417. package/dist/storage/userConnectorKeyCreate.js.map +1 -0
  418. package/dist/storage/userConnectorKeyCreate.spec.d.ts +2 -0
  419. package/dist/storage/userConnectorKeyCreate.spec.d.ts.map +1 -0
  420. package/dist/storage/userConnectorKeyCreate.spec.js +17 -0
  421. package/dist/storage/userConnectorKeyCreate.spec.js.map +1 -0
  422. package/dist/storage/userDb.spec.d.ts +2 -0
  423. package/dist/storage/userDb.spec.d.ts.map +1 -0
  424. package/dist/storage/userDb.spec.js +148 -0
  425. package/dist/storage/userDb.spec.js.map +1 -0
  426. package/dist/storage/userDbConnectorKeyAdd.d.ts +7 -0
  427. package/dist/storage/userDbConnectorKeyAdd.d.ts.map +1 -0
  428. package/dist/storage/userDbConnectorKeyAdd.js +18 -0
  429. package/dist/storage/userDbConnectorKeyAdd.js.map +1 -0
  430. package/dist/storage/userDbDelete.d.ts +7 -0
  431. package/dist/storage/userDbDelete.d.ts.map +1 -0
  432. package/dist/storage/userDbDelete.js +15 -0
  433. package/dist/storage/userDbDelete.js.map +1 -0
  434. package/dist/storage/userDbList.d.ts +8 -0
  435. package/dist/storage/userDbList.d.ts.map +1 -0
  436. package/dist/storage/userDbList.js +39 -0
  437. package/dist/storage/userDbList.js.map +1 -0
  438. package/dist/storage/userDbParse.d.ts +7 -0
  439. package/dist/storage/userDbParse.d.ts.map +1 -0
  440. package/dist/storage/userDbParse.js +13 -0
  441. package/dist/storage/userDbParse.js.map +1 -0
  442. package/dist/storage/userDbParse.spec.d.ts +2 -0
  443. package/dist/storage/userDbParse.spec.d.ts.map +1 -0
  444. package/dist/storage/userDbParse.spec.js +23 -0
  445. package/dist/storage/userDbParse.spec.js.map +1 -0
  446. package/dist/storage/userDbRead.d.ts +8 -0
  447. package/dist/storage/userDbRead.d.ts.map +1 -0
  448. package/dist/storage/userDbRead.js +37 -0
  449. package/dist/storage/userDbRead.js.map +1 -0
  450. package/dist/storage/userDbReadByConnectorKey.d.ts +8 -0
  451. package/dist/storage/userDbReadByConnectorKey.d.ts.map +1 -0
  452. package/dist/storage/userDbReadByConnectorKey.js +29 -0
  453. package/dist/storage/userDbReadByConnectorKey.js.map +1 -0
  454. package/dist/storage/userDbWrite.d.ts +8 -0
  455. package/dist/storage/userDbWrite.d.ts.map +1 -0
  456. package/dist/storage/userDbWrite.js +22 -0
  457. package/dist/storage/userDbWrite.js.map +1 -0
  458. package/dist/types.d.ts +2 -0
  459. package/dist/types.d.ts.map +1 -1
  460. package/dist/types.js +1 -1
  461. package/dist/types.js.map +1 -1
  462. package/package.json +1 -1
  463. package/dist/engine/agents/ops/agentHistoryRecordsLoad.d.ts +0 -8
  464. package/dist/engine/agents/ops/agentHistoryRecordsLoad.d.ts.map +0 -1
  465. package/dist/engine/agents/ops/agentHistoryRecordsLoad.js +0 -179
  466. package/dist/engine/agents/ops/agentHistoryRecordsLoad.js.map +0 -1
  467. package/dist/engine/agents/ops/agentHistoryRecordsLoad.spec.d.ts +0 -2
  468. package/dist/engine/agents/ops/agentHistoryRecordsLoad.spec.d.ts.map +0 -1
  469. package/dist/engine/agents/ops/agentHistoryRecordsLoad.spec.js +0 -114
  470. package/dist/engine/agents/ops/agentHistoryRecordsLoad.spec.js.map +0 -1
  471. /package/dist/plugins/dashboard/site/_next/static/{UTshy2up6-8QcSg4Jwp8T → nCD5T59E21TItg4yHI2OX}/_buildManifest.js +0 -0
  472. /package/dist/plugins/dashboard/site/_next/static/{UTshy2up6-8QcSg4Jwp8T → nCD5T59E21TItg4yHI2OX}/_ssgManifest.js +0 -0
@@ -0,0 +1,74 @@
1
+ import type { AgentDescriptor, AgentLifecycleState, AgentTokenEntry, AgentTokenStats, SessionPermissions } from "@/types";
2
+ export type DatabaseAgentRow = {
3
+ id: string;
4
+ user_id: string;
5
+ type: AgentDescriptor["type"];
6
+ descriptor: string;
7
+ active_session_id: string | null;
8
+ permissions: string;
9
+ tokens: string | null;
10
+ stats: string;
11
+ lifecycle: AgentLifecycleState;
12
+ created_at: number;
13
+ updated_at: number;
14
+ };
15
+ export type DatabaseSessionRow = {
16
+ id: string;
17
+ agent_id: string;
18
+ inference_session_id: string | null;
19
+ created_at: number;
20
+ reset_message: string | null;
21
+ };
22
+ export type DatabaseSessionHistoryRow = {
23
+ id: number;
24
+ session_id: string;
25
+ type: string;
26
+ at: number;
27
+ data: string;
28
+ };
29
+ export type AgentDbRecord = {
30
+ id: string;
31
+ userId: string;
32
+ type: AgentDescriptor["type"];
33
+ descriptor: AgentDescriptor;
34
+ activeSessionId: string | null;
35
+ permissions: SessionPermissions;
36
+ tokens: AgentTokenEntry | null;
37
+ stats: AgentTokenStats;
38
+ lifecycle: AgentLifecycleState;
39
+ createdAt: number;
40
+ updatedAt: number;
41
+ };
42
+ export type DatabaseUserRow = {
43
+ id: string;
44
+ is_owner: number;
45
+ created_at: number;
46
+ updated_at: number;
47
+ };
48
+ export type DatabaseUserConnectorKeyRow = {
49
+ id: number;
50
+ user_id: string;
51
+ connector_key: string;
52
+ };
53
+ export type UserDbRecord = {
54
+ id: string;
55
+ isOwner: boolean;
56
+ createdAt: number;
57
+ updatedAt: number;
58
+ };
59
+ export type UserConnectorKeyDbRecord = {
60
+ id: number;
61
+ userId: string;
62
+ connectorKey: string;
63
+ };
64
+ export type UserWithConnectorKeysDbRecord = UserDbRecord & {
65
+ connectorKeys: UserConnectorKeyDbRecord[];
66
+ };
67
+ export type SessionDbRecord = {
68
+ id: string;
69
+ agentId: string;
70
+ inferenceSessionId: string | null;
71
+ createdAt: number;
72
+ resetMessage: string | null;
73
+ };
74
+ //# sourceMappingURL=databaseTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"databaseTypes.d.ts","sourceRoot":"","sources":["../../sources/storage/databaseTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,mBAAmB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9B,UAAU,EAAE,eAAe,CAAC;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,EAAE,kBAAkB,CAAC;IAChC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,eAAe,CAAC;IACvB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,YAAY,GAAG;IACzD,aAAa,EAAE,wBAAwB,EAAE,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=databaseTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"databaseTypes.js","sourceRoot":"","sources":["../../sources/storage/databaseTypes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { Migration } from "./migrationTypes.js";
2
+ export declare const migration20260219ImportFiles: Migration;
3
+ //# sourceMappingURL=20260219_import_files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20260219_import_files.d.ts","sourceRoot":"","sources":["../../../sources/storage/migrations/20260219_import_files.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAWrD,eAAO,MAAM,4BAA4B,EAAE,SA6G1C,CAAC"}
@@ -0,0 +1,205 @@
1
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
2
+ import path from "node:path";
3
+ import { createId } from "@paralleldrive/cuid2";
4
+ export const migration20260219ImportFiles = {
5
+ name: "20260219_import_files",
6
+ up(db) {
7
+ const existing = db
8
+ .prepare("SELECT COUNT(*) AS count FROM agents")
9
+ .get();
10
+ if ((existing?.count ?? 0) > 0) {
11
+ return;
12
+ }
13
+ const dbPath = databasePathResolve(db);
14
+ if (!dbPath) {
15
+ return;
16
+ }
17
+ const dataDir = path.dirname(dbPath);
18
+ const agentsDir = path.join(dataDir, "agents");
19
+ if (!existsSync(agentsDir)) {
20
+ return;
21
+ }
22
+ const entries = readdirSync(agentsDir, { withFileTypes: true });
23
+ for (const entry of entries) {
24
+ if (!entry.isDirectory()) {
25
+ continue;
26
+ }
27
+ const agentId = entry.name;
28
+ const basePath = path.join(agentsDir, agentId);
29
+ const descriptor = legacyDescriptorRead(basePath);
30
+ const state = legacyStateRead(basePath);
31
+ if (!descriptor || !state) {
32
+ continue;
33
+ }
34
+ db.prepare(`
35
+ INSERT INTO agents (
36
+ id,
37
+ type,
38
+ descriptor,
39
+ active_session_id,
40
+ permissions,
41
+ tokens,
42
+ stats,
43
+ lifecycle,
44
+ created_at,
45
+ updated_at
46
+ ) VALUES (?, ?, ?, NULL, ?, ?, ?, ?, ?, ?)
47
+ ON CONFLICT(id) DO UPDATE SET
48
+ type = excluded.type,
49
+ descriptor = excluded.descriptor,
50
+ permissions = excluded.permissions,
51
+ tokens = excluded.tokens,
52
+ stats = excluded.stats,
53
+ lifecycle = excluded.lifecycle,
54
+ updated_at = excluded.updated_at
55
+ `).run(agentId, descriptor.type, JSON.stringify(descriptor), JSON.stringify(state.permissions), state.tokens ? JSON.stringify(state.tokens) : null, JSON.stringify(state.stats), state.state, state.createdAt, state.updatedAt);
56
+ const historyRecords = legacyHistoryRead(path.join(basePath, "history.jsonl"));
57
+ const sessions = legacySessionsBuild(historyRecords, state);
58
+ for (const session of sessions) {
59
+ db.prepare(`
60
+ INSERT INTO sessions (
61
+ id,
62
+ agent_id,
63
+ inference_session_id,
64
+ created_at,
65
+ reset_message
66
+ ) VALUES (?, ?, ?, ?, ?)
67
+ `).run(session.id, agentId, session.inferenceSessionId, session.createdAt, session.resetMessage);
68
+ for (const record of session.records) {
69
+ const { type, at, ...data } = record;
70
+ db.prepare(`
71
+ INSERT INTO session_history (session_id, type, at, data)
72
+ VALUES (?, ?, ?, ?)
73
+ `).run(session.id, type, at, JSON.stringify(data));
74
+ }
75
+ }
76
+ const activeSessionId = sessions[sessions.length - 1]?.id ?? null;
77
+ db.prepare("UPDATE agents SET active_session_id = ? WHERE id = ?").run(activeSessionId, agentId);
78
+ }
79
+ }
80
+ };
81
+ function databasePathResolve(db) {
82
+ const rows = db.prepare("PRAGMA database_list").all();
83
+ const main = rows.find((row) => row.name === "main") ?? rows[0];
84
+ const file = main?.file?.trim() ?? "";
85
+ return file.length > 0 ? file : null;
86
+ }
87
+ function legacyDescriptorRead(basePath) {
88
+ const filePath = path.join(basePath, "descriptor.json");
89
+ try {
90
+ const raw = readFileSync(filePath, "utf8");
91
+ return JSON.parse(raw);
92
+ }
93
+ catch {
94
+ return null;
95
+ }
96
+ }
97
+ function legacyStateRead(basePath) {
98
+ const filePath = path.join(basePath, "state.json");
99
+ try {
100
+ const raw = readFileSync(filePath, "utf8");
101
+ const parsed = JSON.parse(raw);
102
+ return {
103
+ inferenceSessionId: typeof parsed.inferenceSessionId === "string" ? parsed.inferenceSessionId : undefined,
104
+ permissions: parsed.permissions ?? {
105
+ workingDir: "/",
106
+ writeDirs: [],
107
+ readDirs: [],
108
+ network: false,
109
+ events: false
110
+ },
111
+ tokens: parsed.tokens ?? null,
112
+ stats: parsed.stats ?? {},
113
+ createdAt: typeof parsed.createdAt === "number" && Number.isFinite(parsed.createdAt)
114
+ ? parsed.createdAt
115
+ : Date.now(),
116
+ updatedAt: typeof parsed.updatedAt === "number" && Number.isFinite(parsed.updatedAt)
117
+ ? parsed.updatedAt
118
+ : Date.now(),
119
+ state: parsed.state === "active" || parsed.state === "sleeping" || parsed.state === "dead"
120
+ ? parsed.state
121
+ : parsed.sleeping
122
+ ? "sleeping"
123
+ : "active"
124
+ };
125
+ }
126
+ catch {
127
+ return null;
128
+ }
129
+ }
130
+ function legacyHistoryRead(filePath) {
131
+ if (!existsSync(filePath)) {
132
+ return [];
133
+ }
134
+ const records = [];
135
+ const lines = readFileSync(filePath, "utf8").split("\n");
136
+ for (const line of lines) {
137
+ const trimmed = line.trim();
138
+ if (!trimmed) {
139
+ continue;
140
+ }
141
+ try {
142
+ const parsed = JSON.parse(trimmed);
143
+ records.push(parsed);
144
+ }
145
+ catch {
146
+ continue;
147
+ }
148
+ }
149
+ return records;
150
+ }
151
+ function legacySessionsBuild(records, state) {
152
+ if (records.length === 0) {
153
+ return [
154
+ {
155
+ id: createId(),
156
+ inferenceSessionId: state.inferenceSessionId ?? null,
157
+ createdAt: state.createdAt,
158
+ resetMessage: null,
159
+ records: []
160
+ }
161
+ ];
162
+ }
163
+ const sessions = [];
164
+ let current = null;
165
+ const sessionEnsure = (createdAt, resetMessage) => {
166
+ const session = {
167
+ id: createId(),
168
+ inferenceSessionId: null,
169
+ createdAt,
170
+ resetMessage,
171
+ records: []
172
+ };
173
+ sessions.push(session);
174
+ current = session;
175
+ return session;
176
+ };
177
+ for (const record of records) {
178
+ if (record.type === "start") {
179
+ sessionEnsure(record.at, null);
180
+ continue;
181
+ }
182
+ if (record.type === "reset") {
183
+ sessionEnsure(record.at, record.message ?? null);
184
+ continue;
185
+ }
186
+ const target = current ?? sessionEnsure(record.at, null);
187
+ target.records.push(record);
188
+ }
189
+ const last = sessions[sessions.length - 1];
190
+ if (last) {
191
+ last.inferenceSessionId = state.inferenceSessionId ?? null;
192
+ }
193
+ return sessions.length > 0
194
+ ? sessions
195
+ : [
196
+ {
197
+ id: createId(),
198
+ inferenceSessionId: state.inferenceSessionId ?? null,
199
+ createdAt: state.createdAt,
200
+ resetMessage: null,
201
+ records: []
202
+ }
203
+ ];
204
+ }
205
+ //# sourceMappingURL=20260219_import_files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20260219_import_files.js","sourceRoot":"","sources":["../../../sources/storage/migrations/20260219_import_files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Migration } from "./migrationTypes.js";
2
+ export declare const migration20260219Initial: Migration;
3
+ //# sourceMappingURL=20260219_initial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20260219_initial.d.ts","sourceRoot":"","sources":["../../../sources/storage/migrations/20260219_initial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,eAAO,MAAM,wBAAwB,EAAE,SAwCtC,CAAC"}
@@ -0,0 +1,42 @@
1
+ export const migration20260219Initial = {
2
+ name: "20260219_initial",
3
+ up(db) {
4
+ db.exec(`
5
+ CREATE TABLE IF NOT EXISTS agents (
6
+ id TEXT PRIMARY KEY,
7
+ type TEXT NOT NULL,
8
+ descriptor TEXT NOT NULL,
9
+ active_session_id TEXT,
10
+ permissions TEXT NOT NULL,
11
+ tokens TEXT,
12
+ stats TEXT NOT NULL DEFAULT '{}',
13
+ lifecycle TEXT NOT NULL DEFAULT 'active',
14
+ created_at INTEGER NOT NULL,
15
+ updated_at INTEGER NOT NULL
16
+ );
17
+
18
+ CREATE TABLE IF NOT EXISTS sessions (
19
+ id TEXT PRIMARY KEY,
20
+ agent_id TEXT NOT NULL,
21
+ inference_session_id TEXT,
22
+ created_at INTEGER NOT NULL,
23
+ reset_message TEXT,
24
+ FOREIGN KEY (agent_id) REFERENCES agents(id) ON DELETE CASCADE
25
+ );
26
+
27
+ CREATE INDEX IF NOT EXISTS idx_sessions_agent_id ON sessions(agent_id);
28
+
29
+ CREATE TABLE IF NOT EXISTS session_history (
30
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
31
+ session_id TEXT NOT NULL,
32
+ type TEXT NOT NULL,
33
+ at INTEGER NOT NULL,
34
+ data TEXT NOT NULL,
35
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
36
+ );
37
+
38
+ CREATE INDEX IF NOT EXISTS idx_session_history_session ON session_history(session_id);
39
+ `);
40
+ }
41
+ };
42
+ //# sourceMappingURL=20260219_initial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20260219_initial.js","sourceRoot":"","sources":["../../../sources/storage/migrations/20260219_initial.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,wBAAwB,GAAc;IACjD,IAAI,EAAE,kBAAkB;IACxB,EAAE,CAAC,EAAE;QACH,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmCP,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Migration } from "./migrationTypes.js";
2
+ /**
3
+ * Creates users and user_connector_keys tables plus owner uniqueness constraints.
4
+ * Expects: db is a valid SQLite handle with exec(); repeated runs are safe via IF NOT EXISTS.
5
+ */
6
+ export declare const migration20260220AddUsers: Migration;
7
+ //# sourceMappingURL=20260220_add_users.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20260220_add_users.d.ts","sourceRoot":"","sources":["../../../sources/storage/migrations/20260220_add_users.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAyBvC,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Creates users and user_connector_keys tables plus owner uniqueness constraints.
3
+ * Expects: db is a valid SQLite handle with exec(); repeated runs are safe via IF NOT EXISTS.
4
+ */
5
+ export const migration20260220AddUsers = {
6
+ name: "20260220_add_users",
7
+ up(db) {
8
+ db.exec(`
9
+ CREATE TABLE IF NOT EXISTS users (
10
+ id TEXT PRIMARY KEY,
11
+ is_owner INTEGER NOT NULL DEFAULT 0,
12
+ created_at INTEGER NOT NULL,
13
+ updated_at INTEGER NOT NULL
14
+ );
15
+
16
+ CREATE TABLE IF NOT EXISTS user_connector_keys (
17
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
18
+ user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
19
+ connector_key TEXT NOT NULL UNIQUE
20
+ );
21
+
22
+ CREATE INDEX IF NOT EXISTS idx_user_connector_keys_user_id
23
+ ON user_connector_keys(user_id);
24
+
25
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_users_single_owner
26
+ ON users(is_owner)
27
+ WHERE is_owner = 1;
28
+ `);
29
+ }
30
+ };
31
+ //# sourceMappingURL=20260220_add_users.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20260220_add_users.js","sourceRoot":"","sources":["../../../sources/storage/migrations/20260220_add_users.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAc;IAClD,IAAI,EAAE,oBAAoB;IAC1B,EAAE,CAAC,EAAE;QACH,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;KAoBP,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=20260220_add_users.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20260220_add_users.spec.d.ts","sourceRoot":"","sources":["../../../sources/storage/migrations/20260220_add_users.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,61 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { databaseOpen } from "../databaseOpen.js";
3
+ import { migration20260220AddUsers } from "./20260220_add_users.js";
4
+ describe("migration20260220AddUsers", () => {
5
+ it("creates users and user_connector_keys tables with expected columns", () => {
6
+ const db = databaseOpen(":memory:");
7
+ try {
8
+ migration20260220AddUsers.up(db);
9
+ const usersColumns = db
10
+ .prepare("PRAGMA table_info(users)")
11
+ .all();
12
+ const connectorColumns = db
13
+ .prepare("PRAGMA table_info(user_connector_keys)")
14
+ .all();
15
+ expect(usersColumns.map((column) => column.name)).toEqual([
16
+ "id",
17
+ "is_owner",
18
+ "created_at",
19
+ "updated_at"
20
+ ]);
21
+ expect(connectorColumns.map((column) => column.name)).toEqual([
22
+ "id",
23
+ "user_id",
24
+ "connector_key"
25
+ ]);
26
+ }
27
+ finally {
28
+ db.close();
29
+ }
30
+ });
31
+ it("enforces connector_key uniqueness", () => {
32
+ const db = databaseOpen(":memory:");
33
+ try {
34
+ migration20260220AddUsers.up(db);
35
+ db.prepare("INSERT INTO users (id, is_owner, created_at, updated_at) VALUES (?, ?, ?, ?)").run("user-1", 1, 1, 1);
36
+ db.prepare("INSERT INTO users (id, is_owner, created_at, updated_at) VALUES (?, ?, ?, ?)").run("user-2", 0, 1, 1);
37
+ db.prepare("INSERT INTO user_connector_keys (user_id, connector_key) VALUES (?, ?)").run("user-1", "telegram:123");
38
+ expect(() => {
39
+ db.prepare("INSERT INTO user_connector_keys (user_id, connector_key) VALUES (?, ?)").run("user-2", "telegram:123");
40
+ }).toThrow();
41
+ }
42
+ finally {
43
+ db.close();
44
+ }
45
+ });
46
+ it("allows only one owner user", () => {
47
+ const db = databaseOpen(":memory:");
48
+ try {
49
+ migration20260220AddUsers.up(db);
50
+ db.prepare("INSERT INTO users (id, is_owner, created_at, updated_at) VALUES (?, ?, ?, ?)").run("owner-1", 1, 1, 1);
51
+ db.prepare("INSERT INTO users (id, is_owner, created_at, updated_at) VALUES (?, ?, ?, ?)").run("user-2", 0, 1, 1);
52
+ expect(() => {
53
+ db.prepare("INSERT INTO users (id, is_owner, created_at, updated_at) VALUES (?, ?, ?, ?)").run("owner-2", 1, 1, 1);
54
+ }).toThrow();
55
+ }
56
+ finally {
57
+ db.close();
58
+ }
59
+ });
60
+ });
61
+ //# sourceMappingURL=20260220_add_users.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20260220_add_users.spec.js","sourceRoot":"","sources":["../../../sources/storage/migrations/20260220_add_users.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAEjC,MAAM,YAAY,GAAG,EAAE;iBACpB,OAAO,CAAC,0BAA0B,CAAC;iBACnC,GAAG,EAA6B,CAAC;YACpC,MAAM,gBAAgB,GAAG,EAAE;iBACxB,OAAO,CAAC,wCAAwC,CAAC;iBACjD,GAAG,EAA6B,CAAC;YAEpC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;gBACxD,IAAI;gBACJ,UAAU;gBACV,YAAY;gBACZ,YAAY;aACb,CAAC,CAAC;YACH,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC5D,IAAI;gBACJ,SAAS;gBACT,eAAe;aAChB,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACjC,EAAE,CAAC,OAAO,CACR,8EAA8E,CAC/E,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,EAAE,CAAC,OAAO,CACR,8EAA8E,CAC/E,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAEzB,EAAE,CAAC,OAAO,CACR,wEAAwE,CACzE,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAEhC,MAAM,CAAC,GAAG,EAAE;gBACV,EAAE,CAAC,OAAO,CACR,wEAAwE,CACzE,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACjC,EAAE,CAAC,OAAO,CACR,8EAA8E,CAC/E,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,EAAE,CAAC,OAAO,CACR,8EAA8E,CAC/E,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAEzB,MAAM,CAAC,GAAG,EAAE;gBACV,EAAE,CAAC,OAAO,CACR,8EAA8E,CAC/E,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Migration } from "./migrationTypes.js";
2
+ export declare const migration20260220UsersBootstrap: Migration;
3
+ //# sourceMappingURL=20260220_users_bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20260220_users_bootstrap.d.ts","sourceRoot":"","sources":["../../../sources/storage/migrations/20260220_users_bootstrap.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAcrD,eAAO,MAAM,+BAA+B,EAAE,SA2G7C,CAAC"}
@@ -0,0 +1,114 @@
1
+ import { createId } from "@paralleldrive/cuid2";
2
+ import { userConnectorKeyCreate } from "../userConnectorKeyCreate.js";
3
+ export const migration20260220UsersBootstrap = {
4
+ name: "20260220_users_bootstrap",
5
+ up(db) {
6
+ // 1) Collect existing user agents in creation order.
7
+ const userAgents = db
8
+ .prepare(`
9
+ SELECT id, descriptor, created_at
10
+ FROM agents
11
+ WHERE type = 'user'
12
+ ORDER BY created_at ASC
13
+ `)
14
+ .all();
15
+ // 2) Build connector key map and unique ordered connector keys.
16
+ const connectorKeyByAgentId = new Map();
17
+ const connectorKeysInOrder = [];
18
+ for (const row of userAgents) {
19
+ const parsed = userDescriptorParse(row.descriptor);
20
+ if (!parsed) {
21
+ continue;
22
+ }
23
+ const connectorKey = userConnectorKeyCreate(parsed.connector, parsed.userId);
24
+ connectorKeyByAgentId.set(row.id, connectorKey);
25
+ if (!connectorKeysInOrder.includes(connectorKey)) {
26
+ connectorKeysInOrder.push(connectorKey);
27
+ }
28
+ }
29
+ // 3) Create users and connector keys; first connector identity becomes owner.
30
+ let ownerUserId = "";
31
+ const userIdByConnectorKey = new Map();
32
+ const now = Date.now();
33
+ if (connectorKeysInOrder.length === 0) {
34
+ ownerUserId = createId();
35
+ db.prepare(`
36
+ INSERT INTO users (id, is_owner, created_at, updated_at)
37
+ VALUES (?, 1, ?, ?)
38
+ `).run(ownerUserId, now, now);
39
+ }
40
+ else {
41
+ for (let index = 0; index < connectorKeysInOrder.length; index += 1) {
42
+ const connectorKey = connectorKeysInOrder[index];
43
+ if (!connectorKey) {
44
+ continue;
45
+ }
46
+ const userId = createId();
47
+ const isOwner = index === 0 ? 1 : 0;
48
+ db.prepare(`
49
+ INSERT INTO users (id, is_owner, created_at, updated_at)
50
+ VALUES (?, ?, ?, ?)
51
+ `).run(userId, isOwner, now, now);
52
+ db.prepare(`
53
+ INSERT INTO user_connector_keys (user_id, connector_key)
54
+ VALUES (?, ?)
55
+ `).run(userId, connectorKey);
56
+ userIdByConnectorKey.set(connectorKey, userId);
57
+ if (isOwner === 1) {
58
+ ownerUserId = userId;
59
+ }
60
+ }
61
+ }
62
+ // 4) Ensure an owner user always exists.
63
+ const owner = db
64
+ .prepare("SELECT id FROM users WHERE is_owner = 1 LIMIT 1")
65
+ .get();
66
+ ownerUserId = owner?.id ?? ownerUserId;
67
+ if (!ownerUserId) {
68
+ ownerUserId = createId();
69
+ db.prepare(`
70
+ INSERT INTO users (id, is_owner, created_at, updated_at)
71
+ VALUES (?, 1, ?, ?)
72
+ `).run(ownerUserId, now, now);
73
+ }
74
+ // 5) Add agents.user_id when missing, defaulting to owner.
75
+ const columns = db
76
+ .prepare("PRAGMA table_info(agents)")
77
+ .all();
78
+ const hasUserId = columns.some((column) => column.name === "user_id");
79
+ if (!hasUserId) {
80
+ db.exec(`ALTER TABLE agents ADD COLUMN user_id TEXT NOT NULL DEFAULT '${sqlStringLiteral(ownerUserId)}'`);
81
+ }
82
+ // 6) Backfill user_id by connector mapping and index for lookups.
83
+ for (const [agentId, connectorKey] of connectorKeyByAgentId.entries()) {
84
+ const userId = userIdByConnectorKey.get(connectorKey);
85
+ if (!userId) {
86
+ continue;
87
+ }
88
+ db.prepare("UPDATE agents SET user_id = ? WHERE id = ?").run(userId, agentId);
89
+ }
90
+ db.prepare("UPDATE agents SET user_id = ? WHERE user_id IS NULL").run(ownerUserId);
91
+ db.exec("CREATE INDEX IF NOT EXISTS idx_agents_user_id ON agents(user_id)");
92
+ }
93
+ };
94
+ function userDescriptorParse(raw) {
95
+ try {
96
+ const parsed = JSON.parse(raw);
97
+ if (typeof parsed.connector !== "string" || typeof parsed.userId !== "string") {
98
+ return null;
99
+ }
100
+ const connector = parsed.connector.trim();
101
+ const userId = parsed.userId.trim();
102
+ if (!connector || !userId) {
103
+ return null;
104
+ }
105
+ return { connector, userId };
106
+ }
107
+ catch {
108
+ return null;
109
+ }
110
+ }
111
+ function sqlStringLiteral(value) {
112
+ return value.replaceAll("'", "''");
113
+ }
114
+ //# sourceMappingURL=20260220_users_bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20260220_users_bootstrap.js","sourceRoot":"","sources":["../../../sources/storage/migrations/20260220_users_bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=20260220_users_bootstrap.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20260220_users_bootstrap.spec.d.ts","sourceRoot":"","sources":["../../../sources/storage/migrations/20260220_users_bootstrap.spec.ts"],"names":[],"mappings":""}