daycare-cli 2026.2.6 → 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 (259) hide show
  1. package/dist/engine/agents/agent.d.ts +3 -2
  2. package/dist/engine/agents/agent.d.ts.map +1 -1
  3. package/dist/engine/agents/agent.js +11 -6
  4. package/dist/engine/agents/agent.js.map +1 -1
  5. package/dist/engine/agents/agent.spec.js +51 -9
  6. package/dist/engine/agents/agent.spec.js.map +1 -1
  7. package/dist/engine/agents/agentContext.d.ts +10 -0
  8. package/dist/engine/agents/agentContext.d.ts.map +1 -0
  9. package/dist/engine/agents/agentContext.js +13 -0
  10. package/dist/engine/agents/agentContext.js.map +1 -0
  11. package/dist/engine/agents/agentContext.spec.d.ts +2 -0
  12. package/dist/engine/agents/agentContext.spec.d.ts.map +1 -0
  13. package/dist/engine/agents/agentContext.spec.js +21 -0
  14. package/dist/engine/agents/agentContext.spec.js.map +1 -0
  15. package/dist/engine/agents/agentSystem.d.ts +9 -0
  16. package/dist/engine/agents/agentSystem.d.ts.map +1 -1
  17. package/dist/engine/agents/agentSystem.js +129 -9
  18. package/dist/engine/agents/agentSystem.js.map +1 -1
  19. package/dist/engine/agents/agentSystem.spec.js +88 -0
  20. package/dist/engine/agents/agentSystem.spec.js.map +1 -1
  21. package/dist/engine/agents/ops/agentDescriptorWrite.d.ts +2 -1
  22. package/dist/engine/agents/ops/agentDescriptorWrite.d.ts.map +1 -1
  23. package/dist/engine/agents/ops/agentDescriptorWrite.js +25 -1
  24. package/dist/engine/agents/ops/agentDescriptorWrite.js.map +1 -1
  25. package/dist/engine/agents/ops/agentLoopRun.d.ts.map +1 -1
  26. package/dist/engine/agents/ops/agentLoopRun.js +3 -0
  27. package/dist/engine/agents/ops/agentLoopRun.js.map +1 -1
  28. package/dist/engine/agents/ops/agentLoopRun.spec.js +5 -0
  29. package/dist/engine/agents/ops/agentLoopRun.spec.js.map +1 -1
  30. package/dist/engine/agents/ops/agentStateWrite.d.ts.map +1 -1
  31. package/dist/engine/agents/ops/agentStateWrite.js +1 -0
  32. package/dist/engine/agents/ops/agentStateWrite.js.map +1 -1
  33. package/dist/engine/apps/appExecute.spec.js +4 -0
  34. package/dist/engine/apps/appExecute.spec.js.map +1 -1
  35. package/dist/engine/apps/appInstallToolBuild.spec.js +1 -0
  36. package/dist/engine/apps/appInstallToolBuild.spec.js.map +1 -1
  37. package/dist/engine/apps/appRuleToolBuild.spec.js +1 -0
  38. package/dist/engine/apps/appRuleToolBuild.spec.js.map +1 -1
  39. package/dist/engine/apps/appToolExecutorBuild.spec.js +1 -0
  40. package/dist/engine/apps/appToolExecutorBuild.spec.js.map +1 -1
  41. package/dist/engine/channels/channels.d.ts +1 -1
  42. package/dist/engine/channels/channels.d.ts.map +1 -1
  43. package/dist/engine/channels/channels.js +20 -0
  44. package/dist/engine/channels/channels.js.map +1 -1
  45. package/dist/engine/channels/channels.spec.js +19 -0
  46. package/dist/engine/channels/channels.spec.js.map +1 -1
  47. package/dist/engine/cron/cronTypes.d.ts +2 -0
  48. package/dist/engine/cron/cronTypes.d.ts.map +1 -1
  49. package/dist/engine/cron/crons.d.ts.map +1 -1
  50. package/dist/engine/cron/crons.js +11 -1
  51. package/dist/engine/cron/crons.js.map +1 -1
  52. package/dist/engine/cron/ops/cronScheduler.d.ts.map +1 -1
  53. package/dist/engine/cron/ops/cronScheduler.js +5 -2
  54. package/dist/engine/cron/ops/cronScheduler.js.map +1 -1
  55. package/dist/engine/cron/ops/cronScheduler.spec.js +3 -1
  56. package/dist/engine/cron/ops/cronScheduler.spec.js.map +1 -1
  57. package/dist/engine/cron/ops/cronStore.d.ts.map +1 -1
  58. package/dist/engine/cron/ops/cronStore.js +17 -0
  59. package/dist/engine/cron/ops/cronStore.js.map +1 -1
  60. package/dist/engine/cron/ops/cronStore.spec.js +3 -0
  61. package/dist/engine/cron/ops/cronStore.spec.js.map +1 -1
  62. package/dist/engine/engine.js +2 -2
  63. package/dist/engine/engine.js.map +1 -1
  64. package/dist/engine/heartbeat/heartbeats.d.ts.map +1 -1
  65. package/dist/engine/heartbeat/heartbeats.js +11 -1
  66. package/dist/engine/heartbeat/heartbeats.js.map +1 -1
  67. package/dist/engine/modules/monty/montyPythonTypeFromSchemaRuntime.spec.js +1 -0
  68. package/dist/engine/modules/monty/montyPythonTypeFromSchemaRuntime.spec.js.map +1 -1
  69. package/dist/engine/modules/rlm/rlmExecute.spec.js +1 -0
  70. package/dist/engine/modules/rlm/rlmExecute.spec.js.map +1 -1
  71. package/dist/engine/modules/rlm/rlmRestore.spec.js +1 -0
  72. package/dist/engine/modules/rlm/rlmRestore.spec.js.map +1 -1
  73. package/dist/engine/modules/rlm/rlmTool.spec.js +10 -1
  74. package/dist/engine/modules/rlm/rlmTool.spec.js.map +1 -1
  75. package/dist/engine/modules/toolResolver.spec.js +8 -7
  76. package/dist/engine/modules/toolResolver.spec.js.map +1 -1
  77. package/dist/engine/modules/tools/agentCompactTool.spec.js +1 -0
  78. package/dist/engine/modules/tools/agentCompactTool.spec.js.map +1 -1
  79. package/dist/engine/modules/tools/agentResetTool.spec.js +1 -0
  80. package/dist/engine/modules/tools/agentResetTool.spec.js.map +1 -1
  81. package/dist/engine/modules/tools/background.spec.js +1 -0
  82. package/dist/engine/modules/tools/background.spec.js.map +1 -1
  83. package/dist/engine/modules/tools/channelCreateTool.spec.js +1 -0
  84. package/dist/engine/modules/tools/channelCreateTool.spec.js.map +1 -1
  85. package/dist/engine/modules/tools/channelHistoryTool.spec.js +1 -0
  86. package/dist/engine/modules/tools/channelHistoryTool.spec.js.map +1 -1
  87. package/dist/engine/modules/tools/channelMemberTool.spec.js +1 -0
  88. package/dist/engine/modules/tools/channelMemberTool.spec.js.map +1 -1
  89. package/dist/engine/modules/tools/channelSendTool.spec.js +1 -0
  90. package/dist/engine/modules/tools/channelSendTool.spec.js.map +1 -1
  91. package/dist/engine/modules/tools/cron.d.ts.map +1 -1
  92. package/dist/engine/modules/tools/cron.js +1 -0
  93. package/dist/engine/modules/tools/cron.js.map +1 -1
  94. package/dist/engine/modules/tools/image-generation.spec.js +1 -0
  95. package/dist/engine/modules/tools/image-generation.spec.js.map +1 -1
  96. package/dist/engine/modules/tools/mermaid-png.spec.js +1 -0
  97. package/dist/engine/modules/tools/mermaid-png.spec.js.map +1 -1
  98. package/dist/engine/modules/tools/permanentAgentToolBuild.d.ts.map +1 -1
  99. package/dist/engine/modules/tools/permanentAgentToolBuild.js +6 -2
  100. package/dist/engine/modules/tools/permanentAgentToolBuild.js.map +1 -1
  101. package/dist/engine/modules/tools/permanentAgentToolBuild.spec.js +4 -0
  102. package/dist/engine/modules/tools/permanentAgentToolBuild.spec.js.map +1 -1
  103. package/dist/engine/modules/tools/permissions.spec.js +1 -0
  104. package/dist/engine/modules/tools/permissions.spec.js.map +1 -1
  105. package/dist/engine/modules/tools/sendUserMessageTool.spec.js +1 -0
  106. package/dist/engine/modules/tools/sendUserMessageTool.spec.js.map +1 -1
  107. package/dist/engine/modules/tools/sessionHistoryToolBuild.spec.js +1 -0
  108. package/dist/engine/modules/tools/sessionHistoryToolBuild.spec.js.map +1 -1
  109. package/dist/engine/modules/tools/signal.d.ts.map +1 -1
  110. package/dist/engine/modules/tools/signal.js +7 -2
  111. package/dist/engine/modules/tools/signal.js.map +1 -1
  112. package/dist/engine/modules/tools/signal.spec.js +11 -3
  113. package/dist/engine/modules/tools/signal.spec.js.map +1 -1
  114. package/dist/engine/modules/tools/signalEventsCsvToolBuild.spec.js +1 -0
  115. package/dist/engine/modules/tools/signalEventsCsvToolBuild.spec.js.map +1 -1
  116. package/dist/engine/modules/tools/signalSubscribeToolBuild.d.ts.map +1 -1
  117. package/dist/engine/modules/tools/signalSubscribeToolBuild.js +3 -2
  118. package/dist/engine/modules/tools/signalSubscribeToolBuild.js.map +1 -1
  119. package/dist/engine/modules/tools/signalSubscribeToolBuild.spec.js +14 -4
  120. package/dist/engine/modules/tools/signalSubscribeToolBuild.spec.js.map +1 -1
  121. package/dist/engine/modules/tools/signalUnsubscribeToolBuild.d.ts.map +1 -1
  122. package/dist/engine/modules/tools/signalUnsubscribeToolBuild.js +3 -2
  123. package/dist/engine/modules/tools/signalUnsubscribeToolBuild.js.map +1 -1
  124. package/dist/engine/modules/tools/signalUnsubscribeToolBuild.spec.js +16 -2
  125. package/dist/engine/modules/tools/signalUnsubscribeToolBuild.spec.js.map +1 -1
  126. package/dist/engine/modules/tools/skillToolBuild.spec.js +1 -0
  127. package/dist/engine/modules/tools/skillToolBuild.spec.js.map +1 -1
  128. package/dist/engine/modules/tools/topologyToolBuild.d.ts +1 -1
  129. package/dist/engine/modules/tools/topologyToolBuild.d.ts.map +1 -1
  130. package/dist/engine/modules/tools/topologyToolBuild.js +11 -4
  131. package/dist/engine/modules/tools/topologyToolBuild.js.map +1 -1
  132. package/dist/engine/modules/tools/topologyToolBuild.spec.js +24 -6
  133. package/dist/engine/modules/tools/topologyToolBuild.spec.js.map +1 -1
  134. package/dist/engine/modules/tools/types.d.ts +2 -2
  135. package/dist/engine/modules/tools/types.d.ts.map +1 -1
  136. package/dist/engine/signals/signalTypes.d.ts +7 -0
  137. package/dist/engine/signals/signalTypes.d.ts.map +1 -1
  138. package/dist/engine/signals/signals.d.ts.map +1 -1
  139. package/dist/engine/signals/signals.js +38 -14
  140. package/dist/engine/signals/signals.js.map +1 -1
  141. package/dist/engine/signals/signals.spec.js +45 -8
  142. package/dist/engine/signals/signals.spec.js.map +1 -1
  143. package/dist/plugins/dashboard/site/404.html +1 -1
  144. package/dist/plugins/dashboard/site/agent.html +1 -1
  145. package/dist/plugins/dashboard/site/agent.txt +1 -1
  146. package/dist/plugins/dashboard/site/agents.html +1 -1
  147. package/dist/plugins/dashboard/site/agents.txt +1 -1
  148. package/dist/plugins/dashboard/site/automations.html +1 -1
  149. package/dist/plugins/dashboard/site/automations.txt +1 -1
  150. package/dist/plugins/dashboard/site/connectors.html +1 -1
  151. package/dist/plugins/dashboard/site/connectors.txt +1 -1
  152. package/dist/plugins/dashboard/site/index.html +1 -1
  153. package/dist/plugins/dashboard/site/index.txt +1 -1
  154. package/dist/plugins/dashboard/site/processes.html +1 -1
  155. package/dist/plugins/dashboard/site/processes.txt +1 -1
  156. package/dist/plugins/dashboard/site/providers.html +1 -1
  157. package/dist/plugins/dashboard/site/providers.txt +1 -1
  158. package/dist/plugins/dashboard/site/signals.html +1 -1
  159. package/dist/plugins/dashboard/site/signals.txt +1 -1
  160. package/dist/plugins/dashboard/site/telemetry.html +1 -1
  161. package/dist/plugins/dashboard/site/telemetry.txt +1 -1
  162. package/dist/plugins/dashboard/site/tools.html +1 -1
  163. package/dist/plugins/dashboard/site/tools.txt +1 -1
  164. package/dist/plugins/database/__tests__/plugin.spec.js +3 -1
  165. package/dist/plugins/database/__tests__/plugin.spec.js.map +1 -1
  166. package/dist/plugins/monty-python/tool.spec.js +2 -1
  167. package/dist/plugins/monty-python/tool.spec.js.map +1 -1
  168. package/dist/plugins/shell/processTools.spec.js +1 -0
  169. package/dist/plugins/shell/processTools.spec.js.map +1 -1
  170. package/dist/plugins/shell/tool.spec.js +2 -1
  171. package/dist/plugins/shell/tool.spec.js.map +1 -1
  172. package/dist/storage/agentDb.spec.js +4 -0
  173. package/dist/storage/agentDb.spec.js.map +1 -1
  174. package/dist/storage/agentDbParse.d.ts.map +1 -1
  175. package/dist/storage/agentDbParse.js +1 -0
  176. package/dist/storage/agentDbParse.js.map +1 -1
  177. package/dist/storage/agentDbParse.spec.d.ts +2 -0
  178. package/dist/storage/agentDbParse.spec.d.ts.map +1 -0
  179. package/dist/storage/agentDbParse.spec.js +27 -0
  180. package/dist/storage/agentDbParse.spec.js.map +1 -0
  181. package/dist/storage/agentDbWrite.d.ts.map +1 -1
  182. package/dist/storage/agentDbWrite.js +4 -2
  183. package/dist/storage/agentDbWrite.js.map +1 -1
  184. package/dist/storage/databaseTypes.d.ts +27 -0
  185. package/dist/storage/databaseTypes.d.ts.map +1 -1
  186. package/dist/storage/migrations/20260220_add_users.d.ts +7 -0
  187. package/dist/storage/migrations/20260220_add_users.d.ts.map +1 -0
  188. package/dist/storage/migrations/20260220_add_users.js +31 -0
  189. package/dist/storage/migrations/20260220_add_users.js.map +1 -0
  190. package/dist/storage/migrations/20260220_add_users.spec.d.ts +2 -0
  191. package/dist/storage/migrations/20260220_add_users.spec.d.ts.map +1 -0
  192. package/dist/storage/migrations/20260220_add_users.spec.js +61 -0
  193. package/dist/storage/migrations/20260220_add_users.spec.js.map +1 -0
  194. package/dist/storage/migrations/20260220_users_bootstrap.d.ts +3 -0
  195. package/dist/storage/migrations/20260220_users_bootstrap.d.ts.map +1 -0
  196. package/dist/storage/migrations/20260220_users_bootstrap.js +114 -0
  197. package/dist/storage/migrations/20260220_users_bootstrap.js.map +1 -0
  198. package/dist/storage/migrations/20260220_users_bootstrap.spec.d.ts +2 -0
  199. package/dist/storage/migrations/20260220_users_bootstrap.spec.d.ts.map +1 -0
  200. package/dist/storage/migrations/20260220_users_bootstrap.spec.js +200 -0
  201. package/dist/storage/migrations/20260220_users_bootstrap.spec.js.map +1 -0
  202. package/dist/storage/migrations/_migrations.d.ts.map +1 -1
  203. package/dist/storage/migrations/_migrations.js +5 -1
  204. package/dist/storage/migrations/_migrations.js.map +1 -1
  205. package/dist/storage/sessionDb.spec.js +2 -0
  206. package/dist/storage/sessionDb.spec.js.map +1 -1
  207. package/dist/storage/sessionHistoryDb.spec.js +2 -0
  208. package/dist/storage/sessionHistoryDb.spec.js.map +1 -1
  209. package/dist/storage/userConnectorKeyCreate.d.ts +6 -0
  210. package/dist/storage/userConnectorKeyCreate.d.ts.map +1 -0
  211. package/dist/storage/userConnectorKeyCreate.js +16 -0
  212. package/dist/storage/userConnectorKeyCreate.js.map +1 -0
  213. package/dist/storage/userConnectorKeyCreate.spec.d.ts +2 -0
  214. package/dist/storage/userConnectorKeyCreate.spec.d.ts.map +1 -0
  215. package/dist/storage/userConnectorKeyCreate.spec.js +17 -0
  216. package/dist/storage/userConnectorKeyCreate.spec.js.map +1 -0
  217. package/dist/storage/userDb.spec.d.ts +2 -0
  218. package/dist/storage/userDb.spec.d.ts.map +1 -0
  219. package/dist/storage/userDb.spec.js +148 -0
  220. package/dist/storage/userDb.spec.js.map +1 -0
  221. package/dist/storage/userDbConnectorKeyAdd.d.ts +7 -0
  222. package/dist/storage/userDbConnectorKeyAdd.d.ts.map +1 -0
  223. package/dist/storage/userDbConnectorKeyAdd.js +18 -0
  224. package/dist/storage/userDbConnectorKeyAdd.js.map +1 -0
  225. package/dist/storage/userDbDelete.d.ts +7 -0
  226. package/dist/storage/userDbDelete.d.ts.map +1 -0
  227. package/dist/storage/userDbDelete.js +15 -0
  228. package/dist/storage/userDbDelete.js.map +1 -0
  229. package/dist/storage/userDbList.d.ts +8 -0
  230. package/dist/storage/userDbList.d.ts.map +1 -0
  231. package/dist/storage/userDbList.js +39 -0
  232. package/dist/storage/userDbList.js.map +1 -0
  233. package/dist/storage/userDbParse.d.ts +7 -0
  234. package/dist/storage/userDbParse.d.ts.map +1 -0
  235. package/dist/storage/userDbParse.js +13 -0
  236. package/dist/storage/userDbParse.js.map +1 -0
  237. package/dist/storage/userDbParse.spec.d.ts +2 -0
  238. package/dist/storage/userDbParse.spec.d.ts.map +1 -0
  239. package/dist/storage/userDbParse.spec.js +23 -0
  240. package/dist/storage/userDbParse.spec.js.map +1 -0
  241. package/dist/storage/userDbRead.d.ts +8 -0
  242. package/dist/storage/userDbRead.d.ts.map +1 -0
  243. package/dist/storage/userDbRead.js +37 -0
  244. package/dist/storage/userDbRead.js.map +1 -0
  245. package/dist/storage/userDbReadByConnectorKey.d.ts +8 -0
  246. package/dist/storage/userDbReadByConnectorKey.d.ts.map +1 -0
  247. package/dist/storage/userDbReadByConnectorKey.js +29 -0
  248. package/dist/storage/userDbReadByConnectorKey.js.map +1 -0
  249. package/dist/storage/userDbWrite.d.ts +8 -0
  250. package/dist/storage/userDbWrite.d.ts.map +1 -0
  251. package/dist/storage/userDbWrite.js +22 -0
  252. package/dist/storage/userDbWrite.js.map +1 -0
  253. package/dist/types.d.ts +2 -0
  254. package/dist/types.d.ts.map +1 -1
  255. package/dist/types.js +1 -1
  256. package/dist/types.js.map +1 -1
  257. package/package.json +1 -1
  258. /package/dist/plugins/dashboard/site/_next/static/{QaLNk-eKmEa2hNSDaTRmr → nCD5T59E21TItg4yHI2OX}/_buildManifest.js +0 -0
  259. /package/dist/plugins/dashboard/site/_next/static/{QaLNk-eKmEa2hNSDaTRmr → nCD5T59E21TItg4yHI2OX}/_ssgManifest.js +0 -0
@@ -23,6 +23,7 @@ describe("sessionDb", () => {
23
23
  };
24
24
  await agentDbWrite(config, {
25
25
  id: agentId,
26
+ userId: createId(),
26
27
  type: descriptor.type,
27
28
  descriptor,
28
29
  activeSessionId: null,
@@ -67,6 +68,7 @@ describe("sessionDb", () => {
67
68
  };
68
69
  await agentDbWrite(config, {
69
70
  id: agentId,
71
+ userId: createId(),
70
72
  type: descriptor.type,
71
73
  descriptor,
72
74
  activeSessionId: null,
@@ -1 +1 @@
1
- {"version":3,"file":"sessionDb.spec.js","sourceRoot":"","sources":["../../sources/storage/sessionDb.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionDb.spec.js","sourceRoot":"","sources":["../../sources/storage/sessionDb.spec.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ describe("sessionHistoryDb", () => {
24
24
  };
25
25
  await agentDbWrite(config, {
26
26
  id: agentId,
27
+ userId: createId(),
27
28
  type: descriptor.type,
28
29
  descriptor,
29
30
  activeSessionId: null,
@@ -66,6 +67,7 @@ describe("sessionHistoryDb", () => {
66
67
  };
67
68
  await agentDbWrite(config, {
68
69
  id: agentId,
70
+ userId: createId(),
69
71
  type: descriptor.type,
70
72
  descriptor,
71
73
  activeSessionId: null,
@@ -1 +1 @@
1
- {"version":3,"file":"sessionHistoryDb.spec.js","sourceRoot":"","sources":["../../sources/storage/sessionHistoryDb.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,aAAa,CAC1B,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,EAC9D,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAChC,CAAC;YACF,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YAE7B,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAoB;gBAClC,IAAI,EAAE,MAAM;gBACZ,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,MAAM;aACb,CAAC;YACF,MAAM,YAAY,CAAC,MAAM,EAAE;gBACzB,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,UAAU;gBACV,eAAe,EAAE,IAAI;gBACrB,WAAW,EAAE,MAAM,CAAC,kBAAkB;gBACtC,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,EAAE;gBACT,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,CAAC;aACb,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5E,MAAM,sBAAsB,CAAC,MAAM,EAAE;gBACnC,SAAS;gBACT,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;aACnE,CAAC,CAAC;YACH,MAAM,sBAAsB,CAAC,MAAM,EAAE;gBACnC,SAAS;gBACT,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;aAC/C,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC9D,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;gBACtB,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC1D,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;aACvC,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,aAAa,CAC1B,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,EAC9D,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAChC,CAAC;YACF,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YAE7B,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAoB;gBAClC,IAAI,EAAE,MAAM;gBACZ,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,MAAM;aACb,CAAC;YACF,MAAM,YAAY,CAAC,MAAM,EAAE;gBACzB,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,UAAU;gBACV,eAAe,EAAE,IAAI;gBACrB,WAAW,EAAE,MAAM,CAAC,kBAAkB;gBACtC,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,EAAE;gBACT,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,CAAC;aACb,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3E,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3E,MAAM,sBAAsB,CAAC,MAAM,EAAE;gBACnC,SAAS,EAAE,QAAQ;gBACnB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;aAC7C,CAAC,CAAC;YACH,MAAM,sBAAsB,CAAC,MAAM,EAAE;gBACnC,SAAS,EAAE,QAAQ;gBACnB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;aAC7C,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,MAAM,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC3D,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;gBAClB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;gBACpC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;aACrC,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"sessionHistoryDb.spec.js","sourceRoot":"","sources":["../../sources/storage/sessionHistoryDb.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Creates a stable connector identity key from connector + connector user id.
3
+ * Expects: connector and userId are non-empty strings after trim.
4
+ */
5
+ export declare function userConnectorKeyCreate(connector: string, userId: string): string;
6
+ //# sourceMappingURL=userConnectorKeyCreate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userConnectorKeyCreate.d.ts","sourceRoot":"","sources":["../../sources/storage/userConnectorKeyCreate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAUhF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Creates a stable connector identity key from connector + connector user id.
3
+ * Expects: connector and userId are non-empty strings after trim.
4
+ */
5
+ export function userConnectorKeyCreate(connector, userId) {
6
+ const normalizedConnector = connector.trim();
7
+ const normalizedUserId = userId.trim();
8
+ if (!normalizedConnector) {
9
+ throw new Error("Connector is required");
10
+ }
11
+ if (!normalizedUserId) {
12
+ throw new Error("Connector userId is required");
13
+ }
14
+ return `${normalizedConnector}:${normalizedUserId}`;
15
+ }
16
+ //# sourceMappingURL=userConnectorKeyCreate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userConnectorKeyCreate.js","sourceRoot":"","sources":["../../sources/storage/userConnectorKeyCreate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAiB,EAAE,MAAc;IACtE,MAAM,mBAAmB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IAC7C,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,mBAAmB,IAAI,gBAAgB,EAAE,CAAC;AACtD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=userConnectorKeyCreate.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userConnectorKeyCreate.spec.d.ts","sourceRoot":"","sources":["../../sources/storage/userConnectorKeyCreate.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { userConnectorKeyCreate } from "./userConnectorKeyCreate.js";
3
+ describe("userConnectorKeyCreate", () => {
4
+ it("builds connector keys from connector and userId", () => {
5
+ expect(userConnectorKeyCreate("telegram", "123")).toBe("telegram:123");
6
+ });
7
+ it("trims inputs", () => {
8
+ expect(userConnectorKeyCreate(" telegram ", " 123 ")).toBe("telegram:123");
9
+ });
10
+ it("throws for empty connector", () => {
11
+ expect(() => userConnectorKeyCreate("", "123")).toThrow("Connector is required");
12
+ });
13
+ it("throws for empty userId", () => {
14
+ expect(() => userConnectorKeyCreate("telegram", " ")).toThrow("Connector userId is required");
15
+ });
16
+ });
17
+ //# sourceMappingURL=userConnectorKeyCreate.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userConnectorKeyCreate.spec.js","sourceRoot":"","sources":["../../sources/storage/userConnectorKeyCreate.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;QACtB,MAAM,CAAC,sBAAsB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAC7D,8BAA8B,CAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=userDb.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userDb.spec.d.ts","sourceRoot":"","sources":["../../sources/storage/userDb.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,148 @@
1
+ import { mkdtemp, rm } from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { describe, expect, it } from "vitest";
5
+ import { createId } from "@paralleldrive/cuid2";
6
+ import { configResolve } from "../config/configResolve.js";
7
+ import { storageUpgrade } from "./storageUpgrade.js";
8
+ import { userDbConnectorKeyAdd } from "./userDbConnectorKeyAdd.js";
9
+ import { userDbDelete } from "./userDbDelete.js";
10
+ import { userDbList } from "./userDbList.js";
11
+ import { userDbRead } from "./userDbRead.js";
12
+ import { userDbReadByConnectorKey } from "./userDbReadByConnectorKey.js";
13
+ import { userDbWrite } from "./userDbWrite.js";
14
+ describe("userDb", () => {
15
+ it("roundtrips one user with connector keys", async () => {
16
+ const dir = await mkdtemp(path.join(os.tmpdir(), "daycare-user-db-"));
17
+ try {
18
+ const config = configResolve({ engine: { dataDir: dir }, assistant: { workspaceDir: dir } }, path.join(dir, "settings.json"));
19
+ await storageUpgrade(config);
20
+ const userId = createId();
21
+ await userDbWrite(config, {
22
+ id: userId,
23
+ isOwner: false,
24
+ createdAt: 1,
25
+ updatedAt: 2
26
+ });
27
+ await userDbConnectorKeyAdd(config, userId, "telegram:123");
28
+ const user = await userDbRead(config, userId);
29
+ expect(user).toEqual({
30
+ id: userId,
31
+ isOwner: false,
32
+ createdAt: 1,
33
+ updatedAt: 2,
34
+ connectorKeys: [
35
+ {
36
+ id: 1,
37
+ userId,
38
+ connectorKey: "telegram:123"
39
+ }
40
+ ]
41
+ });
42
+ }
43
+ finally {
44
+ await rm(dir, { recursive: true, force: true });
45
+ }
46
+ });
47
+ it("lists multiple users", async () => {
48
+ const dir = await mkdtemp(path.join(os.tmpdir(), "daycare-user-db-"));
49
+ try {
50
+ const config = configResolve({ engine: { dataDir: dir }, assistant: { workspaceDir: dir } }, path.join(dir, "settings.json"));
51
+ await storageUpgrade(config);
52
+ const first = createId();
53
+ const second = createId();
54
+ await userDbWrite(config, {
55
+ id: first,
56
+ isOwner: false,
57
+ createdAt: 1,
58
+ updatedAt: 1
59
+ });
60
+ await userDbWrite(config, {
61
+ id: second,
62
+ isOwner: false,
63
+ createdAt: 2,
64
+ updatedAt: 2
65
+ });
66
+ await userDbConnectorKeyAdd(config, first, "telegram:111");
67
+ await userDbConnectorKeyAdd(config, second, "telegram:222");
68
+ const users = await userDbList(config);
69
+ expect(users.length).toBeGreaterThanOrEqual(2);
70
+ expect(users[0]?.id).toBe(first);
71
+ expect(users[1]?.id).toBe(second);
72
+ }
73
+ finally {
74
+ await rm(dir, { recursive: true, force: true });
75
+ }
76
+ });
77
+ it("reads users by connector key", async () => {
78
+ const dir = await mkdtemp(path.join(os.tmpdir(), "daycare-user-db-"));
79
+ try {
80
+ const config = configResolve({ engine: { dataDir: dir }, assistant: { workspaceDir: dir } }, path.join(dir, "settings.json"));
81
+ await storageUpgrade(config);
82
+ const userId = createId();
83
+ await userDbWrite(config, {
84
+ id: userId,
85
+ isOwner: false,
86
+ createdAt: 1,
87
+ updatedAt: 1
88
+ });
89
+ await userDbConnectorKeyAdd(config, userId, "telegram:777");
90
+ const user = await userDbReadByConnectorKey(config, "telegram:777");
91
+ expect(user?.id).toBe(userId);
92
+ expect(user?.connectorKeys.map((entry) => entry.connectorKey)).toEqual(["telegram:777"]);
93
+ }
94
+ finally {
95
+ await rm(dir, { recursive: true, force: true });
96
+ }
97
+ });
98
+ it("rejects duplicate connector keys", async () => {
99
+ const dir = await mkdtemp(path.join(os.tmpdir(), "daycare-user-db-"));
100
+ try {
101
+ const config = configResolve({ engine: { dataDir: dir }, assistant: { workspaceDir: dir } }, path.join(dir, "settings.json"));
102
+ await storageUpgrade(config);
103
+ const first = createId();
104
+ const second = createId();
105
+ await userDbWrite(config, {
106
+ id: first,
107
+ isOwner: false,
108
+ createdAt: 1,
109
+ updatedAt: 1
110
+ });
111
+ await userDbWrite(config, {
112
+ id: second,
113
+ isOwner: false,
114
+ createdAt: 2,
115
+ updatedAt: 2
116
+ });
117
+ await userDbConnectorKeyAdd(config, first, "telegram:1");
118
+ await expect(userDbConnectorKeyAdd(config, second, "telegram:1")).rejects.toThrow();
119
+ }
120
+ finally {
121
+ await rm(dir, { recursive: true, force: true });
122
+ }
123
+ });
124
+ it("deletes user and cascades connector keys", async () => {
125
+ const dir = await mkdtemp(path.join(os.tmpdir(), "daycare-user-db-"));
126
+ try {
127
+ const config = configResolve({ engine: { dataDir: dir }, assistant: { workspaceDir: dir } }, path.join(dir, "settings.json"));
128
+ await storageUpgrade(config);
129
+ const userId = createId();
130
+ await userDbWrite(config, {
131
+ id: userId,
132
+ isOwner: false,
133
+ createdAt: 1,
134
+ updatedAt: 1
135
+ });
136
+ await userDbConnectorKeyAdd(config, userId, "telegram:700");
137
+ await userDbDelete(config, userId);
138
+ const byId = await userDbRead(config, userId);
139
+ const byKey = await userDbReadByConnectorKey(config, "telegram:700");
140
+ expect(byId).toBeNull();
141
+ expect(byKey).toBeNull();
142
+ }
143
+ finally {
144
+ await rm(dir, { recursive: true, force: true });
145
+ }
146
+ });
147
+ });
148
+ //# sourceMappingURL=userDb.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userDb.spec.js","sourceRoot":"","sources":["../../sources/storage/userDb.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Config } from "@/types";
2
+ /**
3
+ * Adds one connector key to a user.
4
+ * Expects: userId exists and connectorKey is globally unique.
5
+ */
6
+ export declare function userDbConnectorKeyAdd(config: Config, userId: string, connectorKey: string): Promise<void>;
7
+ //# sourceMappingURL=userDbConnectorKeyAdd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userDbConnectorKeyAdd.d.ts","sourceRoot":"","sources":["../../sources/storage/userDbConnectorKeyAdd.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGtC;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAYf"}
@@ -0,0 +1,18 @@
1
+ import { databaseOpenEnsured } from "./databaseOpenEnsured.js";
2
+ /**
3
+ * Adds one connector key to a user.
4
+ * Expects: userId exists and connectorKey is globally unique.
5
+ */
6
+ export async function userDbConnectorKeyAdd(config, userId, connectorKey) {
7
+ const db = databaseOpenEnsured(config.dbPath);
8
+ try {
9
+ db.prepare(`
10
+ INSERT INTO user_connector_keys (user_id, connector_key)
11
+ VALUES (?, ?)
12
+ `).run(userId, connectorKey);
13
+ }
14
+ finally {
15
+ db.close();
16
+ }
17
+ }
18
+ //# sourceMappingURL=userDbConnectorKeyAdd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userDbConnectorKeyAdd.js","sourceRoot":"","sources":["../../sources/storage/userDbConnectorKeyAdd.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,MAAc,EACd,YAAoB;IAEpB,MAAM,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,EAAE,CAAC,OAAO,CACR;;;OAGC,CACF,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC9B,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Config } from "@/types";
2
+ /**
3
+ * Deletes one user row by id.
4
+ * Expects: caller handles referential effects (connector keys cascade on delete).
5
+ */
6
+ export declare function userDbDelete(config: Config, userId: string): Promise<void>;
7
+ //# sourceMappingURL=userDbDelete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userDbDelete.d.ts","sourceRoot":"","sources":["../../sources/storage/userDbDelete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGtC;;;GAGG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhF"}
@@ -0,0 +1,15 @@
1
+ import { databaseOpenEnsured } from "./databaseOpenEnsured.js";
2
+ /**
3
+ * Deletes one user row by id.
4
+ * Expects: caller handles referential effects (connector keys cascade on delete).
5
+ */
6
+ export async function userDbDelete(config, userId) {
7
+ const db = databaseOpenEnsured(config.dbPath);
8
+ try {
9
+ db.prepare("DELETE FROM users WHERE id = ?").run(userId);
10
+ }
11
+ finally {
12
+ db.close();
13
+ }
14
+ }
15
+ //# sourceMappingURL=userDbDelete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userDbDelete.js","sourceRoot":"","sources":["../../sources/storage/userDbDelete.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,MAAc;IAC/D,MAAM,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Config } from "@/types";
2
+ import type { UserWithConnectorKeysDbRecord } from "./databaseTypes.js";
3
+ /**
4
+ * Lists all users with their connector keys.
5
+ * Expects: db schema is migrated before access.
6
+ */
7
+ export declare function userDbList(config: Config): Promise<UserWithConnectorKeysDbRecord[]>;
8
+ //# sourceMappingURL=userDbList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userDbList.d.ts","sourceRoot":"","sources":["../../sources/storage/userDbList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,KAAK,EAGV,6BAA6B,EAC9B,MAAM,oBAAoB,CAAC;AAG5B;;;GAGG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAkCzF"}
@@ -0,0 +1,39 @@
1
+ import { databaseOpenEnsured } from "./databaseOpenEnsured.js";
2
+ import { userDbParse } from "./userDbParse.js";
3
+ /**
4
+ * Lists all users with their connector keys.
5
+ * Expects: db schema is migrated before access.
6
+ */
7
+ export async function userDbList(config) {
8
+ const db = databaseOpenEnsured(config.dbPath);
9
+ try {
10
+ const userRows = db
11
+ .prepare("SELECT * FROM users ORDER BY created_at ASC, id ASC")
12
+ .all();
13
+ const keyRows = db
14
+ .prepare(`
15
+ SELECT id, user_id, connector_key
16
+ FROM user_connector_keys
17
+ ORDER BY id ASC
18
+ `)
19
+ .all();
20
+ const keysByUserId = new Map();
21
+ for (const keyRow of keyRows) {
22
+ const rows = keysByUserId.get(keyRow.user_id) ?? [];
23
+ rows.push(keyRow);
24
+ keysByUserId.set(keyRow.user_id, rows);
25
+ }
26
+ return userRows.map((userRow) => ({
27
+ ...userDbParse(userRow),
28
+ connectorKeys: (keysByUserId.get(userRow.id) ?? []).map((keyRow) => ({
29
+ id: keyRow.id,
30
+ userId: keyRow.user_id,
31
+ connectorKey: keyRow.connector_key
32
+ }))
33
+ }));
34
+ }
35
+ finally {
36
+ db.close();
37
+ }
38
+ }
39
+ //# sourceMappingURL=userDbList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userDbList.js","sourceRoot":"","sources":["../../sources/storage/userDbList.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAM/D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc;IAC7C,MAAM,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,EAAE;aAChB,OAAO,CAAC,qDAAqD,CAAC;aAC9D,GAAG,EAAuB,CAAC;QAC9B,MAAM,OAAO,GAAG,EAAE;aACf,OAAO,CACN;;;;SAIC,CACF;aACA,GAAG,EAAmC,CAAC;QAE1C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyC,CAAC;QACtE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClB,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAChC,GAAG,WAAW,CAAC,OAAO,CAAC;YACvB,aAAa,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACnE,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,MAAM,EAAE,MAAM,CAAC,OAAO;gBACtB,YAAY,EAAE,MAAM,CAAC,aAAa;aACnC,CAAC,CAAC;SACJ,CAAC,CAAC,CAAC;IACN,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { DatabaseUserRow, UserDbRecord } from "./databaseTypes.js";
2
+ /**
3
+ * Parses a raw users table row into a typed user record.
4
+ * Expects: integer boolean flags are encoded as 0/1 in SQLite.
5
+ */
6
+ export declare function userDbParse(row: DatabaseUserRow): UserDbRecord;
7
+ //# sourceMappingURL=userDbParse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userDbParse.d.ts","sourceRoot":"","sources":["../../sources/storage/userDbParse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAExE;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,YAAY,CAO9D"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Parses a raw users table row into a typed user record.
3
+ * Expects: integer boolean flags are encoded as 0/1 in SQLite.
4
+ */
5
+ export function userDbParse(row) {
6
+ return {
7
+ id: row.id,
8
+ isOwner: row.is_owner === 1,
9
+ createdAt: row.created_at,
10
+ updatedAt: row.updated_at
11
+ };
12
+ }
13
+ //# sourceMappingURL=userDbParse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userDbParse.js","sourceRoot":"","sources":["../../sources/storage/userDbParse.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,GAAoB;IAC9C,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,OAAO,EAAE,GAAG,CAAC,QAAQ,KAAK,CAAC;QAC3B,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=userDbParse.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userDbParse.spec.d.ts","sourceRoot":"","sources":["../../sources/storage/userDbParse.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { userDbParse } from "./userDbParse.js";
3
+ describe("userDbParse", () => {
4
+ it("maps is_owner 1 to isOwner=true", () => {
5
+ const parsed = userDbParse({
6
+ id: "u1",
7
+ is_owner: 1,
8
+ created_at: 10,
9
+ updated_at: 20
10
+ });
11
+ expect(parsed.isOwner).toBe(true);
12
+ });
13
+ it("maps is_owner 0 to isOwner=false", () => {
14
+ const parsed = userDbParse({
15
+ id: "u1",
16
+ is_owner: 0,
17
+ created_at: 10,
18
+ updated_at: 20
19
+ });
20
+ expect(parsed.isOwner).toBe(false);
21
+ });
22
+ });
23
+ //# sourceMappingURL=userDbParse.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userDbParse.spec.js","sourceRoot":"","sources":["../../sources/storage/userDbParse.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,MAAM,GAAG,WAAW,CAAC;YACzB,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,WAAW,CAAC;YACzB,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Config } from "@/types";
2
+ import type { UserWithConnectorKeysDbRecord } from "./databaseTypes.js";
3
+ /**
4
+ * Reads one user row and its connector keys by id.
5
+ * Expects: db schema is migrated before access.
6
+ */
7
+ export declare function userDbRead(config: Config, userId: string): Promise<UserWithConnectorKeysDbRecord | null>;
8
+ //# sourceMappingURL=userDbRead.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userDbRead.d.ts","sourceRoot":"","sources":["../../sources/storage/userDbRead.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,KAAK,EAGV,6BAA6B,EAC9B,MAAM,oBAAoB,CAAC;AAG5B;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CA8B/C"}
@@ -0,0 +1,37 @@
1
+ import { databaseOpenEnsured } from "./databaseOpenEnsured.js";
2
+ import { userDbParse } from "./userDbParse.js";
3
+ /**
4
+ * Reads one user row and its connector keys by id.
5
+ * Expects: db schema is migrated before access.
6
+ */
7
+ export async function userDbRead(config, userId) {
8
+ const db = databaseOpenEnsured(config.dbPath);
9
+ try {
10
+ const userRow = db
11
+ .prepare("SELECT * FROM users WHERE id = ? LIMIT 1")
12
+ .get(userId);
13
+ if (!userRow) {
14
+ return null;
15
+ }
16
+ const keyRows = db
17
+ .prepare(`
18
+ SELECT id, user_id, connector_key
19
+ FROM user_connector_keys
20
+ WHERE user_id = ?
21
+ ORDER BY id ASC
22
+ `)
23
+ .all(userId);
24
+ return {
25
+ ...userDbParse(userRow),
26
+ connectorKeys: keyRows.map((row) => ({
27
+ id: row.id,
28
+ userId: row.user_id,
29
+ connectorKey: row.connector_key
30
+ }))
31
+ };
32
+ }
33
+ finally {
34
+ db.close();
35
+ }
36
+ }
37
+ //# sourceMappingURL=userDbRead.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userDbRead.js","sourceRoot":"","sources":["../../sources/storage/userDbRead.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAM/D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAc,EACd,MAAc;IAEd,MAAM,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE;aACf,OAAO,CAAC,0CAA0C,CAAC;aACnD,GAAG,CAAC,MAAM,CAAgC,CAAC;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,EAAE;aACf,OAAO,CACN;;;;;SAKC,CACF;aACA,GAAG,CAAC,MAAM,CAAkC,CAAC;QAChD,OAAO;YACL,GAAG,WAAW,CAAC,OAAO,CAAC;YACvB,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACnC,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,MAAM,EAAE,GAAG,CAAC,OAAO;gBACnB,YAAY,EAAE,GAAG,CAAC,aAAa;aAChC,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Config } from "@/types";
2
+ import { userDbRead } from "./userDbRead.js";
3
+ /**
4
+ * Reads one user by an exact connector key.
5
+ * Returns: null when no user has the connector key.
6
+ */
7
+ export declare function userDbReadByConnectorKey(config: Config, connectorKey: string): Promise<Awaited<ReturnType<typeof userDbRead>>>;
8
+ //# sourceMappingURL=userDbReadByConnectorKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userDbReadByConnectorKey.d.ts","sourceRoot":"","sources":["../../sources/storage/userDbReadByConnectorKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAsBjD"}
@@ -0,0 +1,29 @@
1
+ import { databaseOpenEnsured } from "./databaseOpenEnsured.js";
2
+ import { userDbRead } from "./userDbRead.js";
3
+ /**
4
+ * Reads one user by an exact connector key.
5
+ * Returns: null when no user has the connector key.
6
+ */
7
+ export async function userDbReadByConnectorKey(config, connectorKey) {
8
+ const db = databaseOpenEnsured(config.dbPath);
9
+ let userId = null;
10
+ try {
11
+ const row = db
12
+ .prepare(`
13
+ SELECT user_id
14
+ FROM user_connector_keys
15
+ WHERE connector_key = ?
16
+ LIMIT 1
17
+ `)
18
+ .get(connectorKey);
19
+ userId = row?.user_id ?? null;
20
+ }
21
+ finally {
22
+ db.close();
23
+ }
24
+ if (!userId) {
25
+ return null;
26
+ }
27
+ return userDbRead(config, userId);
28
+ }
29
+ //# sourceMappingURL=userDbReadByConnectorKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userDbReadByConnectorKey.js","sourceRoot":"","sources":["../../sources/storage/userDbReadByConnectorKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAc,EACd,YAAoB;IAEpB,MAAM,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE;aACX,OAAO,CACN;;;;;SAKC,CACF;aACA,GAAG,CAAC,YAAY,CAAqC,CAAC;QACzD,MAAM,GAAG,GAAG,EAAE,OAAO,IAAI,IAAI,CAAC;IAChC,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Config } from "@/types";
2
+ import type { UserDbRecord } from "./databaseTypes.js";
3
+ /**
4
+ * Upserts one user row in SQLite storage.
5
+ * Expects: id is stable for the same logical user.
6
+ */
7
+ export declare function userDbWrite(config: Config, record: UserDbRecord): Promise<void>;
8
+ //# sourceMappingURL=userDbWrite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userDbWrite.d.ts","sourceRoot":"","sources":["../../sources/storage/userDbWrite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD;;;GAGG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBrF"}