hypervibes 0.0.0-stage → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (362) hide show
  1. package/.build/client/assets/_authenticated-C87LKvH0.js +1 -0
  2. package/.build/client/assets/_authenticated.account-D-nTh_fC.js +1 -0
  3. package/.build/client/assets/_authenticated.agents-HwcveLyB.js +1 -0
  4. package/.build/client/assets/_authenticated.agents._agentId-DuE8Lv62.js +1 -0
  5. package/.build/client/assets/_authenticated.agents._agentId.chart-Bb_XkvQx.js +4 -0
  6. package/.build/client/assets/_authenticated.agents._agentId.chat-ClMMKw_N.js +1 -0
  7. package/.build/client/assets/_authenticated.agents._agentId.index-DNJwBwn9.js +1 -0
  8. package/.build/client/assets/_authenticated.agents._agentId.indicators-BmVjLtRI.js +1 -0
  9. package/.build/client/assets/_authenticated.agents._agentId.indicators_._indicatorId-CMqaaFQf.js +2 -0
  10. package/.build/client/assets/_authenticated.agents._agentId.indicators_._indicatorId-DtgkoNV5.js +6 -0
  11. package/.build/client/assets/_authenticated.agents._agentId.memories-O-4f6a4G.js +1 -0
  12. package/.build/client/assets/_authenticated.agents._agentId.memories_._memoryRef-BUPtUcj3.js +1 -0
  13. package/.build/client/assets/_authenticated.agents._agentId.notifications-2lyhXCSk.js +1 -0
  14. package/.build/client/assets/_authenticated.agents._agentId.notifications_._notificationId-Da3ZVT4v.js +1 -0
  15. package/.build/client/assets/_authenticated.agents._agentId.settings-C5cWHoYw.js +1 -0
  16. package/.build/client/assets/_authenticated.agents._agentId.sub-agents-HwcveLyB.js +1 -0
  17. package/.build/client/assets/_authenticated.agents._agentId.sub-agents._subagentId-CZ4MeRy4.js +1 -0
  18. package/.build/client/assets/_authenticated.agents._agentId.sub-agents._subagentId_.runs._runId-dVbo5kMU.js +3 -0
  19. package/.build/client/assets/_authenticated.agents._agentId.sub-agents.index-DeWTOYJD.js +1 -0
  20. package/.build/client/assets/_authenticated.agents._agentId.sub-agents.new-D02TflCE.js +37 -0
  21. package/.build/client/assets/_authenticated.agents._agentId.transactions-D3a8Glgj.js +1 -0
  22. package/.build/client/assets/_authenticated.agents.index-CEqeDEgP.js +1 -0
  23. package/.build/client/assets/_authenticated.agents.new-DLRWK5Uk.js +1 -0
  24. package/.build/client/assets/_authenticated.providers-D0iPLXra.js +1 -0
  25. package/.build/client/assets/agent-chat-page-C5eYFgxw.js +1 -0
  26. package/.build/client/assets/agent-enablement-control-CUzOp9ce.js +1 -0
  27. package/.build/client/assets/agent-events-DC8eDZf3.js +1 -0
  28. package/.build/client/assets/agent-input-aolvZ47U.js +1 -0
  29. package/.build/client/assets/agent-notifications-page-B0mr-Zz8.js +1 -0
  30. package/.build/client/assets/agent-queries-CNMBImun.js +1 -0
  31. package/.build/client/assets/app-DjmsvbUC.css +2 -0
  32. package/.build/client/assets/artifact-content-COO4VTSZ.js +1 -0
  33. package/.build/client/assets/auth-client-K13li9H1.js +3 -0
  34. package/.build/client/assets/call-DxlGie4_.js +31 -0
  35. package/.build/client/assets/ccip-BgPlVPYP.js +1 -0
  36. package/.build/client/assets/chart-contracts-Cr5SFCbE.js +1 -0
  37. package/.build/client/assets/chart-queries-Bpvrgd0-.js +1 -0
  38. package/.build/client/assets/chat-bubble-CAJkT-vL.js +1 -0
  39. package/.build/client/assets/config-dialog-C9x9gKW9.js +1 -0
  40. package/.build/client/assets/contracts-HhAL7Tt7.js +1 -0
  41. package/.build/client/assets/createServerFn-DfZIp2Fu.js +3 -0
  42. package/.build/client/assets/custom-BeqXuIIS.js +5 -0
  43. package/.build/client/assets/decimal-B0DEG-1V.js +1 -0
  44. package/.build/client/assets/esm-BTb2nBdW.js +1 -0
  45. package/.build/client/assets/identicon-Lb9pS4O1.js +1 -0
  46. package/.build/client/assets/index-B4hvjMmI.js +10 -0
  47. package/.build/client/assets/indicator-input-fields-CtmrfVfS.js +1 -0
  48. package/.build/client/assets/indicator-queries-CzZ6u1Mh.js +1 -0
  49. package/.build/client/assets/indicator-renderer-CfccsIt2.js +1 -0
  50. package/.build/client/assets/instrument-label-BZYlWXR5.js +1 -0
  51. package/.build/client/assets/instrument-picker-DLPpryOm.js +1 -0
  52. package/.build/client/assets/journal-decimal-DBvd_Ibi.js +1 -0
  53. package/.build/client/assets/jsx-runtime-CIazjfqY.js +1 -0
  54. package/.build/client/assets/lazyRouteComponent-CJgUa7_r.js +1 -0
  55. package/.build/client/assets/lightweight-charts.production-BiBiFZSH.js +1 -0
  56. package/.build/client/assets/login-MNgYxCOY.js +3 -0
  57. package/.build/client/assets/memory-badge-BbN-DJQi.js +1 -0
  58. package/.build/client/assets/memory-contracts-Doi_Q1XJ.js +1 -0
  59. package/.build/client/assets/memory-queries-BttL580R.js +1 -0
  60. package/.build/client/assets/model-picker-YCQNNmyw.js +1 -0
  61. package/.build/client/assets/notification-queries-B12DG3aS.js +1 -0
  62. package/.build/client/assets/preload-helper-Czpn1I53.js +1 -0
  63. package/.build/client/assets/provider-logo-Ddb77aBD.js +1 -0
  64. package/.build/client/assets/provider-queries-DxPwhDOU.js +1 -0
  65. package/.build/client/assets/query-nvK_95Jo.js +1 -0
  66. package/.build/client/assets/random-uuid-DJR3ygJS.js +1 -0
  67. package/.build/client/assets/react-dom-C6bOPxes.js +1 -0
  68. package/.build/client/assets/risk-queries-D_6PHwus.js +1 -0
  69. package/.build/client/assets/run-subagent-dialog-B4yQe9T9.js +1 -0
  70. package/.build/client/assets/secp256k1-BbZnIgDP.js +1 -0
  71. package/.build/client/assets/setup-checklist-CUW-K484.js +1 -0
  72. package/.build/client/assets/sha2-hT-Q4pur.js +1 -0
  73. package/.build/client/assets/subagent-enabled-toggle-Bk5wfScg.js +1 -0
  74. package/.build/client/assets/subagent-input-TQke90I1.js +1 -0
  75. package/.build/client/assets/subagent-mutations-DfsDbmFu.js +1 -0
  76. package/.build/client/assets/subagent-queries-DVv5JCfs.js +1 -0
  77. package/.build/client/assets/subagent-run-history-D55Uh5VK.js +1 -0
  78. package/.build/client/assets/toggle-timestamp-B50FTPmA.js +1 -0
  79. package/.build/client/assets/useBaseQuery-Bxruo_mV.js +1 -0
  80. package/.build/client/assets/useMutation-DrF53EQG.js +1 -0
  81. package/.build/client/assets/useQuery-BMSU16jY.js +1 -0
  82. package/.build/client/assets/useRouter-c0I1aURm.js +1 -0
  83. package/.build/client/assets/useSelector-ERD9RroG.js +2 -0
  84. package/.build/client/assets/useSuspenseQuery-vODFwDb8.js +1 -0
  85. package/.build/client/assets/utils-Bpv4vmSW.js +1 -0
  86. package/.build/client/assets/worker-triggers-DtXyn40O.js +1 -0
  87. package/.build/server/assets/_authenticated-Bch0_2QH.js +264 -0
  88. package/.build/server/assets/_authenticated-DGV5cZYE.js +22 -0
  89. package/.build/server/assets/_authenticated.account-6qu6oQ1y.js +685 -0
  90. package/.build/server/assets/_authenticated.agents-DYDnQxli.js +5 -0
  91. package/.build/server/assets/_authenticated.agents._agentId-4HvB3mhd.js +17 -0
  92. package/.build/server/assets/_authenticated.agents._agentId-Cl608F1T.js +260 -0
  93. package/.build/server/assets/_authenticated.agents._agentId-G2jAHjma.js +15 -0
  94. package/.build/server/assets/_authenticated.agents._agentId.chart-BIA8wy73.js +2644 -0
  95. package/.build/server/assets/_authenticated.agents._agentId.chart-D4aj8Qy9.js +22 -0
  96. package/.build/server/assets/_authenticated.agents._agentId.chat-ClsVle4g.js +13 -0
  97. package/.build/server/assets/_authenticated.agents._agentId.chat-JV3FDsTp.js +18 -0
  98. package/.build/server/assets/_authenticated.agents._agentId.index-Ct4kbu2f.js +1044 -0
  99. package/.build/server/assets/_authenticated.agents._agentId.index-DJgrupvW.js +18 -0
  100. package/.build/server/assets/_authenticated.agents._agentId.indicators-DrKd0aP5.js +184 -0
  101. package/.build/server/assets/_authenticated.agents._agentId.indicators-wiVaY8fW.js +18 -0
  102. package/.build/server/assets/_authenticated.agents._agentId.indicators_._indicatorId-C4Ox2R-a.js +25 -0
  103. package/.build/server/assets/_authenticated.agents._agentId.indicators_._indicatorId-D8Q0hCW0.js +489 -0
  104. package/.build/server/assets/_authenticated.agents._agentId.memories-BUTyVLYy.js +42 -0
  105. package/.build/server/assets/_authenticated.agents._agentId.memories-E8-nSEMT.js +362 -0
  106. package/.build/server/assets/_authenticated.agents._agentId.memories_._memoryRef-C-SC6wzq.js +14 -0
  107. package/.build/server/assets/_authenticated.agents._agentId.memories_._memoryRef-ZCrdrc8C.js +490 -0
  108. package/.build/server/assets/_authenticated.agents._agentId.notifications-DQeQqTzh.js +14 -0
  109. package/.build/server/assets/_authenticated.agents._agentId.notifications-DlFyYyHh.js +16 -0
  110. package/.build/server/assets/_authenticated.agents._agentId.notifications_._notificationId-B0RosY_R.js +15 -0
  111. package/.build/server/assets/_authenticated.agents._agentId.notifications_._notificationId-C1NikQ9e.js +13 -0
  112. package/.build/server/assets/_authenticated.agents._agentId.settings-DDwjT3Ui.js +42 -0
  113. package/.build/server/assets/_authenticated.agents._agentId.settings-PEzEvOfo.js +751 -0
  114. package/.build/server/assets/_authenticated.agents._agentId.sub-agents-z34-J3Tu.js +5 -0
  115. package/.build/server/assets/_authenticated.agents._agentId.sub-agents._subagentId-D-6TOi1U.js +1371 -0
  116. package/.build/server/assets/_authenticated.agents._agentId.sub-agents._subagentId-DipzVdnr.js +13 -0
  117. package/.build/server/assets/_authenticated.agents._agentId.sub-agents._subagentId_.runs._runId-BZR3VLV7.js +610 -0
  118. package/.build/server/assets/_authenticated.agents._agentId.sub-agents._subagentId_.runs._runId-DsYJKfGm.js +12 -0
  119. package/.build/server/assets/_authenticated.agents._agentId.sub-agents.index-BF8Cuzcr.js +231 -0
  120. package/.build/server/assets/_authenticated.agents._agentId.sub-agents.index-D2x0qCnt.js +12 -0
  121. package/.build/server/assets/_authenticated.agents._agentId.sub-agents.new-CYm_vuDD.js +13 -0
  122. package/.build/server/assets/_authenticated.agents._agentId.sub-agents.new-CiVShIka.js +497 -0
  123. package/.build/server/assets/_authenticated.agents._agentId.transactions-BC_XfGqw.js +95 -0
  124. package/.build/server/assets/_authenticated.agents._agentId.transactions-WtBW3xmh.js +495 -0
  125. package/.build/server/assets/_authenticated.agents.index-C8zmu8T8.js +78 -0
  126. package/.build/server/assets/_authenticated.agents.new-Bt-tBR47.js +302 -0
  127. package/.build/server/assets/_authenticated.providers-C0pb-ujV.js +672 -0
  128. package/.build/server/assets/_tanstack-start-manifest_v-Baw5u9sk.js +354 -0
  129. package/.build/server/assets/account-XvMwzRXh.js +66 -0
  130. package/.build/server/assets/account-queries-AJJVkLAV.js +32 -0
  131. package/.build/server/assets/agent-chat-page-DChiz8KQ.js +686 -0
  132. package/.build/server/assets/agent-enablement-control-C90f0uIb.js +143 -0
  133. package/.build/server/assets/agent-events-DK9Yz5__.js +217 -0
  134. package/.build/server/assets/agent-notifications-page-BdyKAyds.js +276 -0
  135. package/.build/server/assets/agent-queries-Cmx8RiUx.js +51 -0
  136. package/.build/server/assets/agents-CZq-0mna.js +106 -0
  137. package/.build/server/assets/agents-CfjmtW7A.js +278 -0
  138. package/.build/server/assets/artifact-content-B6uHmPz7.js +35 -0
  139. package/.build/server/assets/artifacts-HtLwHs8q.js +42 -0
  140. package/.build/server/assets/auth-DTikZAVz.js +12 -0
  141. package/.build/server/assets/auth-client-Vb3O0v7P.js +1897 -0
  142. package/.build/server/assets/auth-user-DkLo8ojH.js +108 -0
  143. package/.build/server/assets/chart-queries-Bc3AfsEb.js +109 -0
  144. package/.build/server/assets/charts-C4dKuwTJ.js +130 -0
  145. package/.build/server/assets/chat-bubble-ik3itVbx.js +109 -0
  146. package/.build/server/assets/config-dialog-9gSAjwwT.js +55 -0
  147. package/.build/server/assets/contracts-CG-nZuYJ.js +155 -0
  148. package/.build/server/assets/createServerRpc-DNqhdU4z.js +12 -0
  149. package/.build/server/assets/decimal-BthtZ77w.js +97 -0
  150. package/.build/server/assets/empty-plugin-adapters-MOWBbCMw.js +5 -0
  151. package/.build/server/assets/errors-DaZqUftX.js +151 -0
  152. package/.build/server/assets/gateway-CHkruO_a.js +193 -0
  153. package/.build/server/assets/identicon-CyawcVnx.js +41 -0
  154. package/.build/server/assets/indicator-input-fields-bzuhIh6t.js +75 -0
  155. package/.build/server/assets/indicator-queries-4dY1-LXx.js +171 -0
  156. package/.build/server/assets/indicator-renderer-B2muPS-8.js +395 -0
  157. package/.build/server/assets/indicators-ENxAHN42.js +192 -0
  158. package/.build/server/assets/insight-contracts-B5rmUDfO.js +14 -0
  159. package/.build/server/assets/instrument-label-C-tTGGsD.js +40 -0
  160. package/.build/server/assets/instrument-picker-CRroLwVq.js +381 -0
  161. package/.build/server/assets/journal-9aE-um9f.js +107 -0
  162. package/.build/server/assets/journal-decimal-Bh9EL029.js +66 -0
  163. package/.build/server/assets/login-BsEFUvTX.js +125 -0
  164. package/.build/server/assets/memories-2WF2fW1G.js +100 -0
  165. package/.build/server/assets/memory-badge-DVYLTtRR.js +53 -0
  166. package/.build/server/assets/memory-contracts-DQGN2IKV.js +22 -0
  167. package/.build/server/assets/memory-queries--4RbPRrk.js +92 -0
  168. package/.build/server/assets/model-picker-CA1uYb--.js +225 -0
  169. package/.build/server/assets/notification-queries-0CJUkBt9.js +52 -0
  170. package/.build/server/assets/notifications-Cn7BiCyw.js +72 -0
  171. package/.build/server/assets/provider-logo-BRdbOr9I.js +32 -0
  172. package/.build/server/assets/provider-queries-BaZWLw8J.js +78 -0
  173. package/.build/server/assets/providers-CyoN_jgW.js +89 -0
  174. package/.build/server/assets/risk-Bqrb6hKQ.js +34 -0
  175. package/.build/server/assets/risk-queries-JQpByHT2.js +18 -0
  176. package/.build/server/assets/router-Hkr5TH_I.js +419 -0
  177. package/.build/server/assets/run-subagent-dialog-C7iUOZa-.js +59 -0
  178. package/.build/server/assets/setup-DqMlwgNr.js +30 -0
  179. package/.build/server/assets/setup-checklist-BICTmBo2.js +60 -0
  180. package/.build/server/assets/start-C-GPoWRt.js +4 -0
  181. package/.build/server/assets/subagent-enabled-toggle-Djte00oo.js +22 -0
  182. package/.build/server/assets/subagent-input-BHQKs2cW.js +57 -0
  183. package/.build/server/assets/subagent-mutations-dUo3B_SG.js +32 -0
  184. package/.build/server/assets/subagent-queries-sAwBjFxC.js +146 -0
  185. package/.build/server/assets/subagent-run-history-C_xmucO-.js +186 -0
  186. package/.build/server/assets/subagents-CIoilC66.js +180 -0
  187. package/.build/server/assets/toggle-timestamp-CToUVn67.js +28 -0
  188. package/.build/server/assets/trading-contracts-zWq1Hxnb.js +26 -0
  189. package/.build/server/assets/validation-BX-krL0i.js +33 -0
  190. package/.build/server/assets/worker-triggers-CJF5HWzR.js +51 -0
  191. package/.build/server/server.js +7501 -0
  192. package/LICENSE +661 -0
  193. package/README.md +145 -2
  194. package/bin/hypervibes.js +24 -0
  195. package/dist/agents/agent-enablement.js +10 -0
  196. package/dist/agents/agent-input.js +38 -0
  197. package/dist/agents/agent-service.js +1004 -0
  198. package/dist/agents/cancel-task-scope.js +52 -0
  199. package/dist/agents/candle-intervals.js +1 -0
  200. package/dist/agents/default-subagents.js +36 -0
  201. package/dist/agents/execution-context-contracts.js +1 -0
  202. package/dist/agents/execution-context.js +206 -0
  203. package/dist/agents/execution-warnings.js +33 -0
  204. package/dist/agents/orchestrator-insights.js +14 -0
  205. package/dist/agents/run-inspection.js +99 -0
  206. package/dist/agents/subagent-dashboard.js +1 -0
  207. package/dist/agents/subagent-extension.js +156 -0
  208. package/dist/agents/subagent-history.js +5 -0
  209. package/dist/agents/subagent-input.js +73 -0
  210. package/dist/agents/subagent-service.js +1177 -0
  211. package/dist/agents/subagent-templates.js +20 -0
  212. package/dist/agents/template-manifest.js +34 -0
  213. package/dist/agents/templates/basic-analysis.json +40 -0
  214. package/dist/agents/templates/basic-review.json +48 -0
  215. package/dist/agents/templates/basic-trading.json +45 -0
  216. package/dist/agents/templates/indicator-developer.json +16 -0
  217. package/dist/agents/time-guidance.js +29 -0
  218. package/dist/agents/worker-events.js +18 -0
  219. package/dist/agents/worker-inbox.js +28 -0
  220. package/dist/agents/worker-triggers.js +23 -0
  221. package/dist/auth-options.js +98 -0
  222. package/dist/auth-user.js +15 -0
  223. package/dist/auth.js +28 -0
  224. package/dist/cache/svg-logo-cache.js +155 -0
  225. package/dist/canonical.js +13 -0
  226. package/dist/charts/chart-service.js +236 -0
  227. package/dist/charts/contracts.js +118 -0
  228. package/dist/charts/durable-extension.js +27 -0
  229. package/dist/charts/trading-contracts.js +14 -0
  230. package/dist/config.js +85 -0
  231. package/dist/db/agent-schema.js +26 -0
  232. package/dist/db/auth-schema.js +122 -0
  233. package/dist/db/database.js +31 -0
  234. package/dist/db/exchange-schema.js +23 -0
  235. package/dist/db/gateway-schema.js +24 -0
  236. package/dist/db/indicator-schema.js +19 -0
  237. package/dist/db/migrations/20261015221717_auth/migration.sql +62 -0
  238. package/dist/db/migrations/20261015231224_agents/migration.sql +35 -0
  239. package/dist/db/migrations/20261016040641_provider_connections/migration.sql +19 -0
  240. package/dist/db/migrations/20261016061831_trade_journal/migration.sql +48 -0
  241. package/dist/db/migrations/20261016080320_order_execution/migration.sql +62 -0
  242. package/dist/db/migrations/20261016181110_subagents/migration.sql +51 -0
  243. package/dist/db/migrations/20261017222959_research_artifacts/migration.sql +37 -0
  244. package/dist/db/migrations/20261018061531_memories_and_insights/migration.sql +162 -0
  245. package/dist/db/migrations/20261020091156_worker_event_inbox/migration.sql +54 -0
  246. package/dist/db/migrations/20261021051229_chart_workspace/migration.sql +33 -0
  247. package/dist/db/migrations/20261021222116_gateways/migration.sql +15 -0
  248. package/dist/db/migrations/20261022015813_pine_indicators/migration.sql +43 -0
  249. package/dist/db/migrations/20261022101559_notifications/migration.sql +51 -0
  250. package/dist/db/migrations.js +12 -0
  251. package/dist/db/order-provenance-schema.js +17 -0
  252. package/dist/db/order-schema.js +32 -0
  253. package/dist/db/profile-lock.js +12 -0
  254. package/dist/db/provider-schema.js +16 -0
  255. package/dist/db/shared-database.js +128 -0
  256. package/dist/db/subagent-schema.js +79 -0
  257. package/dist/gateway/bridge-service.js +223 -0
  258. package/dist/gateway/gateway-store.js +77 -0
  259. package/dist/gateway/handlers.js +122 -0
  260. package/dist/gateway/telegram/connector.js +115 -0
  261. package/dist/gateway/telegram/transport.js +96 -0
  262. package/dist/hyperliquid/account-info.js +117 -0
  263. package/dist/hyperliquid/account-status.js +64 -0
  264. package/dist/hyperliquid/agent-dashboard.js +56 -0
  265. package/dist/hyperliquid/chart-contracts.js +9 -0
  266. package/dist/hyperliquid/constants.js +25 -0
  267. package/dist/hyperliquid/crypto.js +29 -0
  268. package/dist/hyperliquid/currency-logo.js +7 -0
  269. package/dist/hyperliquid/decimal.js +98 -0
  270. package/dist/hyperliquid/durable-extension.js +39 -0
  271. package/dist/hyperliquid/errors.js +8 -0
  272. package/dist/hyperliquid/exchange.js +118 -0
  273. package/dist/hyperliquid/journal-decimal.js +48 -0
  274. package/dist/hyperliquid/journal-model.js +167 -0
  275. package/dist/hyperliquid/journal-service.js +648 -0
  276. package/dist/hyperliquid/live-dashboard.js +245 -0
  277. package/dist/hyperliquid/logo-cache.js +27 -0
  278. package/dist/hyperliquid/market-charts.js +242 -0
  279. package/dist/hyperliquid/market-snapshot.js +45 -0
  280. package/dist/hyperliquid/orders/order-contracts.js +42 -0
  281. package/dist/hyperliquid/orders/order-math.js +89 -0
  282. package/dist/hyperliquid/orders/order-outcomes.js +74 -0
  283. package/dist/hyperliquid/orders/order-prepare.js +109 -0
  284. package/dist/hyperliquid/orders/order-service.js +432 -0
  285. package/dist/hyperliquid/orders/order-store.js +134 -0
  286. package/dist/hyperliquid/orders/order-tools.js +40 -0
  287. package/dist/hyperliquid/orders/protection.js +35 -0
  288. package/dist/hyperliquid/orders/risk-settings.js +44 -0
  289. package/dist/hyperliquid/orders/trade-admission.js +117 -0
  290. package/dist/hyperliquid/orders/trade-planning.js +60 -0
  291. package/dist/hyperliquid/service.js +529 -0
  292. package/dist/hyperliquid/shared-feeds.js +40 -0
  293. package/dist/hyperliquid/signing.js +89 -0
  294. package/dist/indicators/builtin-catalog.js +59 -0
  295. package/dist/indicators/builtins/adx.pine +22 -0
  296. package/dist/indicators/builtins/atr.pine +11 -0
  297. package/dist/indicators/builtins/bollinger.pine +10 -0
  298. package/dist/indicators/builtins/ema.pine +5 -0
  299. package/dist/indicators/builtins/macd.pine +18 -0
  300. package/dist/indicators/builtins/rsi.pine +18 -0
  301. package/dist/indicators/builtins/sma.pine +5 -0
  302. package/dist/indicators/candle-window.js +36 -0
  303. package/dist/indicators/chart-contracts.js +64 -0
  304. package/dist/indicators/contracts.js +14 -0
  305. package/dist/indicators/durable-extension.js +32 -0
  306. package/dist/indicators/indicator-service.js +300 -0
  307. package/dist/indicators/indicator-store.js +137 -0
  308. package/dist/indicators/normalize.js +149 -0
  309. package/dist/indicators/result-schema.js +79 -0
  310. package/dist/indicators/runtime-wrapper.js +52 -0
  311. package/dist/indicators/runtime.js +201 -0
  312. package/dist/indicators/validation.js +124 -0
  313. package/dist/indicators/worker-queue.js +48 -0
  314. package/dist/initialize-config.js +160 -0
  315. package/dist/main.js +59 -0
  316. package/dist/memory/decision-audit.js +47 -0
  317. package/dist/memory/durable-extension.js +40 -0
  318. package/dist/memory/execution-audit.js +83 -0
  319. package/dist/memory/insight-contracts.js +33 -0
  320. package/dist/memory/insight-service.js +117 -0
  321. package/dist/memory/memory-contracts.js +113 -0
  322. package/dist/memory/memory-service.js +179 -0
  323. package/dist/memory/operations.js +46 -0
  324. package/dist/memory/tool-schemas.js +44 -0
  325. package/dist/memory/validation.js +42 -0
  326. package/dist/notifications/contracts.js +1 -0
  327. package/dist/notifications/delivery.js +11 -0
  328. package/dist/notifications/durable-extension.js +20 -0
  329. package/dist/notifications/notification-service.js +324 -0
  330. package/dist/providers/credential-store.js +86 -0
  331. package/dist/providers/ollama-cloud.js +148 -0
  332. package/dist/providers/provider-logo-url.js +18 -0
  333. package/dist/providers/provider-logo.js +31 -0
  334. package/dist/providers/provider-service.js +295 -0
  335. package/dist/research/artifacts.js +151 -0
  336. package/dist/research/call-queue.js +43 -0
  337. package/dist/research/contracts.js +37 -0
  338. package/dist/research/evidence.js +43 -0
  339. package/dist/research/journal.js +30 -0
  340. package/dist/research/research-service.js +191 -0
  341. package/dist/research/tool-activity.js +49 -0
  342. package/dist/research/tool-response.js +25 -0
  343. package/dist/runtime.js +145 -0
  344. package/dist/web/agent-events.js +418 -0
  345. package/dist/web/app.js +206 -0
  346. package/dist/web/artifact-downloads.js +23 -0
  347. package/dist/web/middleware.js +25 -0
  348. package/dist/web/random-uuid.js +14 -0
  349. package/dist/web/start.js +56 -0
  350. package/package.json +93 -3
  351. package/scripts/check-node.mjs +24 -0
  352. package/static/android-chrome-192x192.png +0 -0
  353. package/static/android-chrome-512x512.png +0 -0
  354. package/static/apple-touch-icon.png +0 -0
  355. package/static/favicon-16x16.png +0 -0
  356. package/static/favicon-32x32.png +0 -0
  357. package/static/favicon.ico +0 -0
  358. package/static/github.svg +3 -0
  359. package/static/hypervibes.png +0 -0
  360. package/static/logo.png +0 -0
  361. package/static/site.webmanifest +1 -0
  362. package/static/telegram.svg +1 -0
package/dist/config.js ADDED
@@ -0,0 +1,85 @@
1
+ import { isAbsolute, join, resolve, win32 } from "node:path";
2
+ import { homedir } from "node:os";
3
+ import { fileURLToPath } from "node:url";
4
+ /** OS-appropriate per-user data directory, so packaged hosts reuse one profile. */
5
+ export function defaultDatabasePath(env, platform = process.platform, home = homedir()) {
6
+ if (platform === "win32") {
7
+ const appData = env.APPDATA?.trim();
8
+ return win32.join(appData && win32.isAbsolute(appData) ? appData : win32.join(home, "AppData", "Roaming"), "HyperVibes", "hypervibes.sqlite");
9
+ }
10
+ if (platform === "darwin")
11
+ return join(home, "Library", "Application Support", "HyperVibes", "hypervibes.sqlite");
12
+ const dataHome = env.XDG_DATA_HOME?.trim();
13
+ return join(dataHome && isAbsolute(dataHome) ? dataHome : join(home, ".local", "share"), "hypervibes", "hypervibes.sqlite");
14
+ }
15
+ /** OS-appropriate per-user storage for disposable cached assets. */
16
+ export function defaultCacheDirectory(env, platform = process.platform, home = homedir()) {
17
+ if (platform === "win32") {
18
+ const localAppData = env.LOCALAPPDATA?.trim();
19
+ return win32.join(localAppData && win32.isAbsolute(localAppData) ? localAppData : win32.join(home, "AppData", "Local"), "HyperVibes", "Cache");
20
+ }
21
+ if (platform === "darwin")
22
+ return join(home, "Library", "Caches", "HyperVibes");
23
+ const cacheHome = env.XDG_CACHE_HOME?.trim();
24
+ return join(cacheHome && isAbsolute(cacheHome) ? cacheHome : join(home, ".cache"), "hypervibes");
25
+ }
26
+ function setting(env, name, fallback) {
27
+ const value = (env[name] ?? fallback).trim();
28
+ if (!value)
29
+ throw new Error(`${name} must not be empty`);
30
+ return value;
31
+ }
32
+ export function loadConfig(env = process.env) {
33
+ const port = setting(env, "APP_PORT", "3003");
34
+ if (!/^\d+$/.test(port) || Number(port) < 1 || Number(port) > 65535) {
35
+ throw new Error("APP_PORT must be an integer between 1 and 65535");
36
+ }
37
+ let origin;
38
+ try {
39
+ origin = new URL(setting(env, "APP_ORIGIN", `http://localhost:${port}`));
40
+ }
41
+ catch {
42
+ throw new Error("APP_ORIGIN must be a valid HTTP(S) origin");
43
+ }
44
+ if (origin.username || origin.password || origin.pathname !== "/" || origin.search || origin.hash
45
+ || !["http:", "https:"].includes(origin.protocol)) {
46
+ throw new Error("APP_ORIGIN must be an HTTP(S) origin without credentials, path, query or fragment");
47
+ }
48
+ const allowInsecureHttp = env.APP_ALLOW_INSECURE_HTTP?.trim() ?? "false";
49
+ if (!["true", "false"].includes(allowInsecureHttp)) {
50
+ throw new Error("APP_ALLOW_INSECURE_HTTP must be true or false");
51
+ }
52
+ if (origin.protocol !== "https:" && !["localhost", "127.0.0.1", "[::1]"].includes(origin.hostname)
53
+ && allowInsecureHttp !== "true") {
54
+ throw new Error("APP_ORIGIN requires HTTPS except on loopback; private LAN HTTP requires APP_ALLOW_INSECURE_HTTP=true");
55
+ }
56
+ const authSecret = setting(env, "BETTER_AUTH_SECRET", "");
57
+ if (authSecret.length < 32)
58
+ throw new Error("BETTER_AUTH_SECRET must contain at least 32 random characters");
59
+ const encryptionKey = encryptionKeySetting(env);
60
+ return {
61
+ authOrigin: origin.origin,
62
+ authSecret,
63
+ host: setting(env, "APP_HOST", "127.0.0.1"),
64
+ port: Number(port),
65
+ databasePath: resolve(setting(env, "APP_SQLITE_PATH", defaultDatabasePath(env))),
66
+ buildDir: resolve(setting(env, "APP_BUILD_DIR", fileURLToPath(new URL("../.build/", import.meta.url)))),
67
+ staticDir: resolve(setting(env, "APP_STATIC_DIR", fileURLToPath(new URL("../static/", import.meta.url)))),
68
+ cacheDir: resolve(setting(env, "APP_CACHE_DIR", defaultCacheDirectory(env))),
69
+ encryptionKey,
70
+ };
71
+ }
72
+ /** Parses the optional AGENTS_ENCRYPTION_KEY secret for stored credentials. */
73
+ function encryptionKeySetting(env) {
74
+ const keyHex = (env.AGENTS_ENCRYPTION_KEY ?? "").trim();
75
+ if (!keyHex)
76
+ return undefined;
77
+ if (!/^(?:[0-9a-fA-F]{2})+$/.test(keyHex))
78
+ throw new Error("AGENTS_ENCRYPTION_KEY must be a valid hexadecimal string");
79
+ const bytes = Buffer.from(keyHex, "hex");
80
+ if (bytes.length !== 32)
81
+ throw new Error(`AGENTS_ENCRYPTION_KEY must decode to exactly 32 bytes, got ${bytes.length}`);
82
+ // Rows record the ID that encrypted them, so a future key-rotation scheme can
83
+ // distinguish versions. Today there is exactly one version.
84
+ return { id: "primary", bytes: new Uint8Array(bytes) };
85
+ }
@@ -0,0 +1,26 @@
1
+ import { sql } from "drizzle-orm";
2
+ import { check, index, integer, sqliteTable, text, uniqueIndex } from "drizzle-orm/sqlite-core";
3
+ import { hvUsers } from "./auth-schema.js";
4
+ export const hvAgents = sqliteTable("hv_agents", {
5
+ id: text("id").primaryKey(),
6
+ userId: text("user_id").notNull().references(() => hvUsers.id, { onDelete: "restrict" }),
7
+ name: text("name").notNull(),
8
+ creationRequestId: text("creation_request_id").notNull(),
9
+ state: text("state", { enum: ["provisioning", "ready", "failed", "stopping", "stopped"] }).notNull().default("provisioning"),
10
+ enabled: integer("enabled", { mode: "boolean" }).notNull().default(true),
11
+ conversationId: integer("conversation_id"),
12
+ /** Creation intent only; current selection is owned by Durable's pi.agent. */
13
+ initialProvider: text("initial_provider"),
14
+ initialModelId: text("initial_model_id"),
15
+ error: text("error"),
16
+ /** Required for new agents by AgentService; nullable only for legacy development rows. */
17
+ tradingAccountAddress: text("trading_account_address"),
18
+ createdAt: integer("created_at").notNull(),
19
+ updatedAt: integer("updated_at").notNull(),
20
+ }, (table) => [
21
+ index("hv_agents_owner_idx").on(table.userId),
22
+ uniqueIndex("hv_agents_creation_request_idx").on(table.userId, table.creationRequestId),
23
+ uniqueIndex("hv_agents_trading_account_idx").on(table.tradingAccountAddress),
24
+ check("hv_agents_name_check", sql `length(trim(${table.name})) BETWEEN 1 AND 80`),
25
+ check("hv_agents_state_check", sql `${table.state} IN ('provisioning', 'ready', 'failed', 'stopping', 'stopped')`),
26
+ ]);
@@ -0,0 +1,122 @@
1
+ import { defineRelationsPart, sql } from "drizzle-orm";
2
+ import { sqliteTable, text, integer, index } from "drizzle-orm/sqlite-core";
3
+ export const hvUsers = sqliteTable("hv_users", {
4
+ id: text("id").primaryKey(),
5
+ name: text("name").notNull(),
6
+ email: text("email").notNull().unique(),
7
+ emailVerified: integer("email_verified", { mode: "boolean" })
8
+ .default(false)
9
+ .notNull(),
10
+ image: text("image"),
11
+ createdAt: integer("created_at", { mode: "timestamp_ms" })
12
+ .default(sql `(cast(unixepoch('subsecond') * 1000 as integer))`)
13
+ .notNull(),
14
+ updatedAt: integer("updated_at", { mode: "timestamp_ms" })
15
+ .default(sql `(cast(unixepoch('subsecond') * 1000 as integer))`)
16
+ .$onUpdate(() => /* @__PURE__ */ new Date())
17
+ .notNull(),
18
+ });
19
+ export const hvSessions = sqliteTable("hv_sessions", {
20
+ id: text("id").primaryKey(),
21
+ expiresAt: integer("expires_at", { mode: "timestamp_ms" }).notNull(),
22
+ token: text("token").notNull().unique(),
23
+ createdAt: integer("created_at", { mode: "timestamp_ms" })
24
+ .default(sql `(cast(unixepoch('subsecond') * 1000 as integer))`)
25
+ .notNull(),
26
+ updatedAt: integer("updated_at", { mode: "timestamp_ms" })
27
+ .$onUpdate(() => /* @__PURE__ */ new Date())
28
+ .notNull(),
29
+ ipAddress: text("ip_address"),
30
+ userAgent: text("user_agent"),
31
+ userId: text("user_id")
32
+ .notNull()
33
+ .references(() => hvUsers.id, { onDelete: "cascade" }),
34
+ }, (table) => [index("hvSessions_userId_idx").on(table.userId)]);
35
+ export const hvAuthAccounts = sqliteTable("hv_auth_accounts", {
36
+ id: text("id").primaryKey(),
37
+ accountId: text("account_id").notNull(),
38
+ providerId: text("provider_id").notNull(),
39
+ userId: text("user_id")
40
+ .notNull()
41
+ .references(() => hvUsers.id, { onDelete: "cascade" }),
42
+ accessToken: text("access_token"),
43
+ refreshToken: text("refresh_token"),
44
+ idToken: text("id_token"),
45
+ accessTokenExpiresAt: integer("access_token_expires_at", {
46
+ mode: "timestamp_ms",
47
+ }),
48
+ refreshTokenExpiresAt: integer("refresh_token_expires_at", {
49
+ mode: "timestamp_ms",
50
+ }),
51
+ scope: text("scope"),
52
+ password: text("password"),
53
+ createdAt: integer("created_at", { mode: "timestamp_ms" })
54
+ .default(sql `(cast(unixepoch('subsecond') * 1000 as integer))`)
55
+ .notNull(),
56
+ updatedAt: integer("updated_at", { mode: "timestamp_ms" })
57
+ .$onUpdate(() => /* @__PURE__ */ new Date())
58
+ .notNull(),
59
+ }, (table) => [index("hvAuthAccounts_userId_idx").on(table.userId)]);
60
+ export const hvAuthVerifications = sqliteTable("hv_auth_verifications", {
61
+ id: text("id").primaryKey(),
62
+ identifier: text("identifier").notNull(),
63
+ value: text("value").notNull(),
64
+ expiresAt: integer("expires_at", { mode: "timestamp_ms" }).notNull(),
65
+ createdAt: integer("created_at", { mode: "timestamp_ms" })
66
+ .default(sql `(cast(unixepoch('subsecond') * 1000 as integer))`)
67
+ .notNull(),
68
+ updatedAt: integer("updated_at", { mode: "timestamp_ms" })
69
+ .default(sql `(cast(unixepoch('subsecond') * 1000 as integer))`)
70
+ .$onUpdate(() => /* @__PURE__ */ new Date())
71
+ .notNull(),
72
+ }, (table) => [index("hvAuthVerifications_identifier_idx").on(table.identifier)]);
73
+ export const hvWalletAddresses = sqliteTable("hv_wallet_addresses", {
74
+ id: text("id").primaryKey(),
75
+ userId: text("user_id")
76
+ .notNull()
77
+ .references(() => hvUsers.id, { onDelete: "cascade" }),
78
+ address: text("address").notNull(),
79
+ chainId: integer("chain_id").notNull(),
80
+ isPrimary: integer("is_primary", { mode: "boolean" }).default(false),
81
+ createdAt: integer("created_at", { mode: "timestamp_ms" }).notNull(),
82
+ }, (table) => [index("hvWalletAddresses_userId_idx").on(table.userId)]);
83
+ export const authRelations = defineRelationsPart({
84
+ hvUsers,
85
+ hvSessions,
86
+ hvAuthAccounts,
87
+ hvAuthVerifications,
88
+ hvWalletAddresses,
89
+ }, (r) => ({
90
+ hvUsers: {
91
+ hvSessions: r.many.hvSessions({
92
+ from: r.hvUsers.id,
93
+ to: r.hvSessions.userId,
94
+ }),
95
+ hvAuthAccounts: r.many.hvAuthAccounts({
96
+ from: r.hvUsers.id,
97
+ to: r.hvAuthAccounts.userId,
98
+ }),
99
+ hvWalletAddresses: r.many.hvWalletAddresses({
100
+ from: r.hvUsers.id,
101
+ to: r.hvWalletAddresses.userId,
102
+ }),
103
+ },
104
+ hvSessions: {
105
+ hvUsers: r.one.hvUsers({
106
+ from: r.hvSessions.userId,
107
+ to: r.hvUsers.id,
108
+ }),
109
+ },
110
+ hvAuthAccounts: {
111
+ hvUsers: r.one.hvUsers({
112
+ from: r.hvAuthAccounts.userId,
113
+ to: r.hvUsers.id,
114
+ }),
115
+ },
116
+ hvWalletAddresses: {
117
+ hvUsers: r.one.hvUsers({
118
+ from: r.hvWalletAddresses.userId,
119
+ to: r.hvUsers.id,
120
+ }),
121
+ },
122
+ }));
@@ -0,0 +1,31 @@
1
+ import { mkdirSync } from "node:fs";
2
+ import { dirname } from "node:path";
3
+ import { DatabaseSync } from "node:sqlite";
4
+ /** Owns a fresh-app SQLite connection; does not create domain or Durable tables. */
5
+ export function openDatabase(path) {
6
+ mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
7
+ const database = new DatabaseSync(path);
8
+ try {
9
+ // Set pointer-map support only for fresh profiles. Existing NONE profiles
10
+ // require an explicitly planned VACUUM conversion, never a startup rebuild.
11
+ const schema = database.prepare("SELECT count(*) AS total FROM sqlite_schema WHERE type='table'").get();
12
+ if (schema?.total === 0)
13
+ database.exec("PRAGMA auto_vacuum = INCREMENTAL");
14
+ // Connection-local settings must also be applied to any future connections.
15
+ database.exec("PRAGMA busy_timeout = 5000");
16
+ const mode = database.prepare("PRAGMA journal_mode = WAL").get();
17
+ if (mode?.journal_mode !== "wal") {
18
+ throw new Error("The application database requires file-backed SQLite WAL mode");
19
+ }
20
+ database.exec(`
21
+ PRAGMA synchronous = FULL;
22
+ PRAGMA foreign_keys = ON;
23
+ PRAGMA wal_autocheckpoint = 1000;
24
+ `);
25
+ return database;
26
+ }
27
+ catch (error) {
28
+ database.close();
29
+ throw error;
30
+ }
31
+ }
@@ -0,0 +1,23 @@
1
+ import { check, integer, sqliteTable, text, blob } from "drizzle-orm/sqlite-core";
2
+ import { sql } from "drizzle-orm";
3
+ import { hvUsers } from "./auth-schema.js";
4
+ /**
5
+ * Per-user Hyperliquid settings: the single trading signer (API wallet) and
6
+ * builder-fee approval state. The private key is encrypted at rest and is
7
+ * loaded only by exchange-signing code.
8
+ */
9
+ export const hvHyperliquidSettings = sqliteTable("hv_hyperliquid_settings", {
10
+ userId: text("user_id").primaryKey().references(() => hvUsers.id, { onDelete: "restrict" }),
11
+ apiWalletAddress: text("api_wallet_address"),
12
+ privateKeyCiphertext: blob("private_key_ciphertext", { mode: "buffer" }),
13
+ privateKeyKeyId: text("private_key_key_id"),
14
+ apiWalletApprovedAt: integer("api_wallet_approved_at"),
15
+ apiWalletExpiresAt: integer("api_wallet_expires_at"),
16
+ apiWalletExpiryCheckedAt: integer("api_wallet_expiry_checked_at"),
17
+ builderFeeTenthsOfBp: integer("builder_fee_tenths_of_bp").notNull().default(0),
18
+ builderFeeApprovedAt: integer("builder_fee_approved_at"),
19
+ createdAt: integer("created_at").notNull(),
20
+ updatedAt: integer("updated_at").notNull(),
21
+ }, (table) => [
22
+ check("hv_hyperliquid_settings_builder_fee_check", sql `${table.builderFeeTenthsOfBp} BETWEEN 0 AND 100`),
23
+ ]);
@@ -0,0 +1,24 @@
1
+ import { blob, integer, primaryKey, sqliteTable, text, uniqueIndex } from "drizzle-orm/sqlite-core";
2
+ import { hvAgents } from "./agent-schema.js";
3
+ /** The gateway kinds the application understands; each is owned by its connector module. */
4
+ export const GATEWAY_TYPES = ["telegram"];
5
+ /** One external gateway per Agent and type: bridges a bound chat with the Agent's persistent main conversation. */
6
+ export const hvGateways = sqliteTable("hv_gateways", {
7
+ agentId: text("agent_id").notNull().references(() => hvAgents.id, { onDelete: "cascade" }),
8
+ type: text("type", { enum: GATEWAY_TYPES }).notNull(),
9
+ /** AES-256-GCM sealed bot token; never rendered, logged, or returned to clients. */
10
+ botTokenCiphertext: blob("bot_token_ciphertext", { mode: "buffer" }).notNull(),
11
+ /** SHA-256 of the plaintext token; a unique index stops two Agents sharing one bot. */
12
+ botTokenHash: text("bot_token_hash").notNull(),
13
+ /** Encryption key id that sealed the token, for future key rotation. */
14
+ keyId: text("key_id").notNull(),
15
+ /** The bot's own username on the gateway platform. */
16
+ botUsername: text("bot_username").notNull(),
17
+ /** The external chat that completed the link flow; null until linked. */
18
+ chatId: integer("chat_id"),
19
+ chatUsername: text("chat_username"),
20
+ updatedAt: integer("updated_at").notNull(),
21
+ }, (table) => [
22
+ primaryKey({ columns: [table.agentId, table.type] }),
23
+ uniqueIndex("hv_gateways_token_hash_idx").on(table.botTokenHash),
24
+ ]);
@@ -0,0 +1,19 @@
1
+ import { sql } from "drizzle-orm";
2
+ import { check, index, integer, primaryKey, sqliteTable, text } from "drizzle-orm/sqlite-core";
3
+ import { hvAgents } from "./agent-schema.js";
4
+ export const hvIndicators = sqliteTable("hv_indicators", {
5
+ id: text("id").primaryKey(), agentId: text("agent_id").notNull().references(() => hvAgents.id, { onDelete: "cascade" }),
6
+ name: text("name").notNull(), description: text("description").notNull(), interpretation: text("interpretation").notNull(),
7
+ currentVersion: integer("current_version").notNull(), createdAt: integer("created_at").notNull(), updatedAt: integer("updated_at").notNull(),
8
+ }, (t) => [index("hv_indicators_agent_idx").on(t.agentId, t.updatedAt), check("hv_indicators_version_positive", sql `${t.currentVersion} > 0`)]);
9
+ export const hvIndicatorVersions = sqliteTable("hv_indicator_versions", {
10
+ indicatorId: text("indicator_id").notNull().references(() => hvIndicators.id, { onDelete: "cascade" }), version: integer("version").notNull(),
11
+ source: text("source").notNull(), sourceHash: text("source_hash").notNull(), metadata: text("metadata").notNull(),
12
+ engineVersion: text("engine_version").notNull(), wrapperVersion: integer("wrapper_version").notNull(),
13
+ createdAt: integer("created_at").notNull(), actorKind: text("actor_kind", { enum: ["user", "agent"] }).notNull(),
14
+ userId: text("user_id"), subagentId: text("subagent_id"), runId: text("run_id"), conversationId: text("conversation_id"), taskId: text("task_id"),
15
+ }, (t) => [primaryKey({ columns: [t.indicatorId, t.version] }), check("hv_indicator_versions_positive", sql `${t.version} > 0`)]);
16
+ export const hvIndicatorOperations = sqliteTable("hv_indicator_operations", {
17
+ agentId: text("agent_id").notNull().references(() => hvAgents.id, { onDelete: "cascade" }),
18
+ key: text("key").notNull(), hash: text("hash").notNull(), result: text("result").notNull(),
19
+ }, (t) => [primaryKey({ columns: [t.agentId, t.key] })]);
@@ -0,0 +1,62 @@
1
+ CREATE TABLE `hv_auth_accounts` (
2
+ `id` text PRIMARY KEY,
3
+ `account_id` text NOT NULL,
4
+ `provider_id` text NOT NULL,
5
+ `user_id` text NOT NULL,
6
+ `access_token` text,
7
+ `refresh_token` text,
8
+ `id_token` text,
9
+ `access_token_expires_at` integer,
10
+ `refresh_token_expires_at` integer,
11
+ `scope` text,
12
+ `password` text,
13
+ `created_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL,
14
+ `updated_at` integer NOT NULL,
15
+ CONSTRAINT `fk_hv_auth_accounts_user_id_hv_users_id_fk` FOREIGN KEY (`user_id`) REFERENCES `hv_users`(`id`) ON DELETE CASCADE
16
+ );
17
+ --> statement-breakpoint
18
+ CREATE TABLE `hv_auth_verifications` (
19
+ `id` text PRIMARY KEY,
20
+ `identifier` text NOT NULL,
21
+ `value` text NOT NULL,
22
+ `expires_at` integer NOT NULL,
23
+ `created_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL,
24
+ `updated_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL
25
+ );
26
+ --> statement-breakpoint
27
+ CREATE TABLE `hv_sessions` (
28
+ `id` text PRIMARY KEY,
29
+ `expires_at` integer NOT NULL,
30
+ `token` text NOT NULL UNIQUE,
31
+ `created_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL,
32
+ `updated_at` integer NOT NULL,
33
+ `ip_address` text,
34
+ `user_agent` text,
35
+ `user_id` text NOT NULL,
36
+ CONSTRAINT `fk_hv_sessions_user_id_hv_users_id_fk` FOREIGN KEY (`user_id`) REFERENCES `hv_users`(`id`) ON DELETE CASCADE
37
+ );
38
+ --> statement-breakpoint
39
+ CREATE TABLE `hv_users` (
40
+ `id` text PRIMARY KEY,
41
+ `name` text NOT NULL,
42
+ `email` text NOT NULL UNIQUE,
43
+ `email_verified` integer DEFAULT false NOT NULL,
44
+ `image` text,
45
+ `created_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL,
46
+ `updated_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL
47
+ );
48
+ --> statement-breakpoint
49
+ CREATE TABLE `hv_wallet_addresses` (
50
+ `id` text PRIMARY KEY,
51
+ `user_id` text NOT NULL,
52
+ `address` text NOT NULL,
53
+ `chain_id` integer NOT NULL,
54
+ `is_primary` integer DEFAULT false,
55
+ `created_at` integer NOT NULL,
56
+ CONSTRAINT `fk_hv_wallet_addresses_user_id_hv_users_id_fk` FOREIGN KEY (`user_id`) REFERENCES `hv_users`(`id`) ON DELETE CASCADE
57
+ );
58
+ --> statement-breakpoint
59
+ CREATE INDEX `hvAuthAccounts_userId_idx` ON `hv_auth_accounts` (`user_id`);--> statement-breakpoint
60
+ CREATE INDEX `hvAuthVerifications_identifier_idx` ON `hv_auth_verifications` (`identifier`);--> statement-breakpoint
61
+ CREATE INDEX `hvSessions_userId_idx` ON `hv_sessions` (`user_id`);--> statement-breakpoint
62
+ CREATE INDEX `hvWalletAddresses_userId_idx` ON `hv_wallet_addresses` (`user_id`);
@@ -0,0 +1,35 @@
1
+ CREATE TABLE `hv_agents` (
2
+ `id` text PRIMARY KEY,
3
+ `user_id` text NOT NULL,
4
+ `name` text NOT NULL,
5
+ `creation_request_id` text NOT NULL,
6
+ `state` text DEFAULT 'provisioning' NOT NULL,
7
+ `enabled` integer DEFAULT true NOT NULL,
8
+ `conversation_id` integer,
9
+ `error` text,
10
+ `trading_account_address` text,
11
+ `created_at` integer NOT NULL,
12
+ `updated_at` integer NOT NULL,
13
+ CONSTRAINT `fk_hv_agents_user_id_hv_users_id_fk` FOREIGN KEY (`user_id`) REFERENCES `hv_users`(`id`) ON DELETE RESTRICT,
14
+ CONSTRAINT "hv_agents_name_check" CHECK(length(trim("name")) BETWEEN 1 AND 80),
15
+ CONSTRAINT "hv_agents_state_check" CHECK("state" IN ('provisioning', 'ready', 'failed', 'stopping', 'stopped'))
16
+ );
17
+ --> statement-breakpoint
18
+ CREATE INDEX `hv_agents_owner_idx` ON `hv_agents` (`user_id`);--> statement-breakpoint
19
+ CREATE UNIQUE INDEX `hv_agents_creation_request_idx` ON `hv_agents` (`user_id`,`creation_request_id`);--> statement-breakpoint
20
+ CREATE UNIQUE INDEX `hv_agents_trading_account_idx` ON `hv_agents` (`trading_account_address`);--> statement-breakpoint
21
+ CREATE TABLE `hv_hyperliquid_settings` (
22
+ `user_id` text PRIMARY KEY,
23
+ `api_wallet_address` text,
24
+ `private_key_ciphertext` blob,
25
+ `private_key_key_id` text,
26
+ `api_wallet_approved_at` integer,
27
+ `api_wallet_expires_at` integer,
28
+ `api_wallet_expiry_checked_at` integer,
29
+ `builder_fee_tenths_of_bp` integer DEFAULT 0 NOT NULL,
30
+ `builder_fee_approved_at` integer,
31
+ `created_at` integer NOT NULL,
32
+ `updated_at` integer NOT NULL,
33
+ CONSTRAINT `fk_hv_hyperliquid_settings_user_id_hv_users_id_fk` FOREIGN KEY (`user_id`) REFERENCES `hv_users`(`id`) ON DELETE RESTRICT,
34
+ CONSTRAINT "hv_hyperliquid_settings_builder_fee_check" CHECK("builder_fee_tenths_of_bp" BETWEEN 0 AND 100)
35
+ );
@@ -0,0 +1,19 @@
1
+ CREATE TABLE `hv_installation` (
2
+ `id` integer PRIMARY KEY,
3
+ `device_id` text NOT NULL
4
+ );
5
+ --> statement-breakpoint
6
+ CREATE TABLE `hv_provider_connections` (
7
+ `user_id` text NOT NULL,
8
+ `provider_id` text NOT NULL,
9
+ `auth_type` text NOT NULL,
10
+ `ciphertext` blob NOT NULL,
11
+ `key_id` text NOT NULL,
12
+ `catalog` text,
13
+ `updated_at` integer NOT NULL,
14
+ CONSTRAINT `hv_provider_connections_pk` PRIMARY KEY(`user_id`, `provider_id`),
15
+ CONSTRAINT `fk_hv_provider_connections_user_id_hv_users_id_fk` FOREIGN KEY (`user_id`) REFERENCES `hv_users`(`id`) ON DELETE CASCADE
16
+ );
17
+ --> statement-breakpoint
18
+ ALTER TABLE `hv_agents` ADD `initial_provider` text;--> statement-breakpoint
19
+ ALTER TABLE `hv_agents` ADD `initial_model_id` text;
@@ -0,0 +1,48 @@
1
+ CREATE TABLE `hv_journal_accounts` (
2
+ `account` text PRIMARY KEY,
3
+ `revision` integer DEFAULT 0 NOT NULL,
4
+ `projected_revision` integer DEFAULT -1 NOT NULL,
5
+ `history_limited` integer DEFAULT 0 NOT NULL,
6
+ CONSTRAINT "hv_journal_history_limited" CHECK("history_limited" IN (0, 1))
7
+ );
8
+ --> statement-breakpoint
9
+ CREATE TABLE `hv_journal_entries` (
10
+ `account` text NOT NULL,
11
+ `id` text NOT NULL,
12
+ `kind` text NOT NULL,
13
+ `time` integer NOT NULL,
14
+ `data` text NOT NULL,
15
+ `balance` text,
16
+ `active` integer DEFAULT 1 NOT NULL,
17
+ CONSTRAINT `hv_journal_entries_pk` PRIMARY KEY(`account`, `id`),
18
+ CONSTRAINT `fk_hv_journal_entries_account_hv_journal_accounts_account_fk` FOREIGN KEY (`account`) REFERENCES `hv_journal_accounts`(`account`),
19
+ CONSTRAINT "hv_journal_entry_kind" CHECK("kind" IN ('fill', 'funding', 'ledger', 'trade')),
20
+ CONSTRAINT "hv_journal_entry_active" CHECK("active" IN (0, 1))
21
+ );
22
+ --> statement-breakpoint
23
+ CREATE TABLE `hv_journal_notes` (
24
+ `id` text PRIMARY KEY,
25
+ `account` text NOT NULL,
26
+ `target` text NOT NULL,
27
+ `author_id` text NOT NULL,
28
+ `body` text NOT NULL,
29
+ `created_at` integer NOT NULL,
30
+ CONSTRAINT `fk_hv_journal_notes_author_id_hv_users_id_fk` FOREIGN KEY (`author_id`) REFERENCES `hv_users`(`id`),
31
+ CONSTRAINT `fk_hv_journal_notes_account_target_hv_journal_entries_account_id_fk` FOREIGN KEY (`account`,`target`) REFERENCES `hv_journal_entries`(`account`,`id`),
32
+ CONSTRAINT "hv_journal_note_body" CHECK(length(trim("body")) > 0 AND length("body") <= 4000)
33
+ );
34
+ --> statement-breakpoint
35
+ CREATE TABLE `hv_journal_sync` (
36
+ `account` text NOT NULL,
37
+ `stream` text NOT NULL,
38
+ `cursor` integer DEFAULT 0 NOT NULL,
39
+ `updated_at` integer,
40
+ `error` text,
41
+ CONSTRAINT `hv_journal_sync_pk` PRIMARY KEY(`account`, `stream`),
42
+ CONSTRAINT `fk_hv_journal_sync_account_hv_journal_accounts_account_fk` FOREIGN KEY (`account`) REFERENCES `hv_journal_accounts`(`account`),
43
+ CONSTRAINT "hv_journal_sync_stream" CHECK("stream" IN ('fill', 'funding', 'ledger'))
44
+ );
45
+ --> statement-breakpoint
46
+ CREATE INDEX `hv_journal_entries_page` ON `hv_journal_entries` (`account`,`kind`,`active`,`time`,`id`);--> statement-breakpoint
47
+ CREATE INDEX `hv_journal_entries_timeline` ON `hv_journal_entries` (`account`,`time`,`id`);--> statement-breakpoint
48
+ CREATE INDEX `hv_journal_notes_target` ON `hv_journal_notes` (`account`,`target`,`created_at`,`id`);
@@ -0,0 +1,62 @@
1
+ CREATE TABLE `hv_exchange_nonces` (
2
+ `signer` text PRIMARY KEY,
3
+ `nonce` integer NOT NULL
4
+ );
5
+ --> statement-breakpoint
6
+ CREATE TABLE `hv_order_actions` (
7
+ `id` text PRIMARY KEY,
8
+ `request_id` text NOT NULL,
9
+ `ordinal` integer NOT NULL,
10
+ `payload` text NOT NULL,
11
+ `state` text NOT NULL,
12
+ `nonce` integer,
13
+ `expires_at` integer NOT NULL,
14
+ `updated_at` integer NOT NULL,
15
+ CONSTRAINT `fk_hv_order_actions_request_id_hv_order_requests_id_fk` FOREIGN KEY (`request_id`) REFERENCES `hv_order_requests`(`id`) ON DELETE CASCADE,
16
+ CONSTRAINT "hv_order_action_state" CHECK("state" IN ('prepared', 'submitting', 'unknown', 'done', 'not_sent'))
17
+ );
18
+ --> statement-breakpoint
19
+ CREATE TABLE `hv_order_events` (
20
+ `id` integer PRIMARY KEY AUTOINCREMENT,
21
+ `item_id` text NOT NULL,
22
+ `source` text NOT NULL,
23
+ `time` integer NOT NULL,
24
+ `data` text NOT NULL,
25
+ CONSTRAINT `fk_hv_order_events_item_id_hv_order_items_id_fk` FOREIGN KEY (`item_id`) REFERENCES `hv_order_items`(`id`) ON DELETE CASCADE
26
+ );
27
+ --> statement-breakpoint
28
+ CREATE TABLE `hv_order_items` (
29
+ `id` text PRIMARY KEY,
30
+ `action_id` text NOT NULL,
31
+ `ordinal` integer NOT NULL,
32
+ `symbol` text NOT NULL,
33
+ `cloid` text,
34
+ `oid` text,
35
+ `active` integer NOT NULL,
36
+ `view` text NOT NULL,
37
+ `updated_at` integer NOT NULL,
38
+ CONSTRAINT `fk_hv_order_items_action_id_hv_order_actions_id_fk` FOREIGN KEY (`action_id`) REFERENCES `hv_order_actions`(`id`) ON DELETE CASCADE,
39
+ CONSTRAINT "hv_order_item_active" CHECK("active" IN (0, 1))
40
+ );
41
+ --> statement-breakpoint
42
+ CREATE TABLE `hv_order_requests` (
43
+ `id` text PRIMARY KEY,
44
+ `agent_id` text NOT NULL,
45
+ `account` text NOT NULL,
46
+ `request_key` text NOT NULL,
47
+ `kind` text NOT NULL,
48
+ `input` text NOT NULL,
49
+ `created_at` integer NOT NULL,
50
+ CONSTRAINT `fk_hv_order_requests_agent_id_hv_agents_id_fk` FOREIGN KEY (`agent_id`) REFERENCES `hv_agents`(`id`) ON DELETE CASCADE,
51
+ CONSTRAINT "hv_order_request_kind" CHECK("kind" IN ('submit', 'cancel', 'cancel_all', 'close_position'))
52
+ );
53
+ --> statement-breakpoint
54
+ CREATE UNIQUE INDEX `hv_order_action_ordinal` ON `hv_order_actions` (`request_id`,`ordinal`);--> statement-breakpoint
55
+ CREATE INDEX `hv_order_actions_state` ON `hv_order_actions` (`state`,`updated_at`);--> statement-breakpoint
56
+ CREATE INDEX `hv_order_events_item` ON `hv_order_events` (`item_id`,`id`);--> statement-breakpoint
57
+ CREATE UNIQUE INDEX `hv_order_item_ordinal` ON `hv_order_items` (`action_id`,`ordinal`);--> statement-breakpoint
58
+ CREATE UNIQUE INDEX `hv_order_item_cloid` ON `hv_order_items` (`cloid`);--> statement-breakpoint
59
+ CREATE INDEX `hv_order_items_active` ON `hv_order_items` (`active`,`updated_at`);--> statement-breakpoint
60
+ CREATE INDEX `hv_order_items_oid` ON `hv_order_items` (`oid`);--> statement-breakpoint
61
+ CREATE UNIQUE INDEX `hv_order_request_key` ON `hv_order_requests` (`agent_id`,`request_key`);--> statement-breakpoint
62
+ CREATE INDEX `hv_order_requests_agent` ON `hv_order_requests` (`agent_id`,`created_at`);
@@ -0,0 +1,51 @@
1
+ CREATE TABLE `hv_subagent_runs` (
2
+ `id` text PRIMARY KEY,
3
+ `agent_id` text NOT NULL,
4
+ `subagent_id` text NOT NULL,
5
+ `request_id` text NOT NULL,
6
+ `source` text NOT NULL,
7
+ `task` text NOT NULL,
8
+ `config` text NOT NULL,
9
+ `status` text DEFAULT 'queued' NOT NULL,
10
+ `task_id` integer,
11
+ `conversation_id` integer,
12
+ `result` text DEFAULT '' NOT NULL,
13
+ `created_at` integer NOT NULL,
14
+ `finished_at` integer,
15
+ `reported_at` integer,
16
+ CONSTRAINT `fk_hv_subagent_runs_agent_id_hv_agents_id_fk` FOREIGN KEY (`agent_id`) REFERENCES `hv_agents`(`id`) ON DELETE CASCADE,
17
+ CONSTRAINT `fk_hv_subagent_runs_subagent_id_hv_subagents_id_fk` FOREIGN KEY (`subagent_id`) REFERENCES `hv_subagents`(`id`) ON DELETE CASCADE
18
+ );
19
+ --> statement-breakpoint
20
+ CREATE TABLE `hv_subagents` (
21
+ `id` text PRIMARY KEY,
22
+ `agent_id` text NOT NULL,
23
+ `kind` text NOT NULL,
24
+ `name` text NOT NULL,
25
+ `description` text DEFAULT '' NOT NULL,
26
+ `instructions` text NOT NULL,
27
+ `provider` text NOT NULL,
28
+ `model_id` text NOT NULL,
29
+ `thinking_level` text DEFAULT '' NOT NULL,
30
+ `tools` text NOT NULL,
31
+ `enabled` integer DEFAULT true NOT NULL,
32
+ `archived` integer DEFAULT false NOT NULL,
33
+ `delegatable` integer DEFAULT true NOT NULL,
34
+ `persistent` integer DEFAULT false NOT NULL,
35
+ `conversation_id` integer,
36
+ `schedule` text DEFAULT '' NOT NULL,
37
+ `delay_seconds` integer DEFAULT 30 NOT NULL,
38
+ `next_run_at` integer,
39
+ `completion` text DEFAULT 'wake' NOT NULL,
40
+ `timeout_seconds` integer DEFAULT 900 NOT NULL,
41
+ `created_at` integer NOT NULL,
42
+ `updated_at` integer NOT NULL,
43
+ CONSTRAINT `fk_hv_subagents_agent_id_hv_agents_id_fk` FOREIGN KEY (`agent_id`) REFERENCES `hv_agents`(`id`) ON DELETE CASCADE,
44
+ CONSTRAINT "hv_subagents_main_protected" CHECK("kind" != 'orchestrator' OR ("enabled" = 1 AND "archived" = 0 AND "schedule" = ''))
45
+ );
46
+ --> statement-breakpoint
47
+ CREATE UNIQUE INDEX `hv_subagent_runs_request_idx` ON `hv_subagent_runs` (`agent_id`,`request_id`);--> statement-breakpoint
48
+ CREATE UNIQUE INDEX `hv_subagent_runs_active_idx` ON `hv_subagent_runs` (`subagent_id`) WHERE "hv_subagent_runs"."status" IN ('queued', 'running');--> statement-breakpoint
49
+ CREATE INDEX `hv_subagent_runs_history_idx` ON `hv_subagent_runs` (`subagent_id`,`created_at`);--> statement-breakpoint
50
+ CREATE INDEX `hv_subagents_agent_idx` ON `hv_subagents` (`agent_id`);--> statement-breakpoint
51
+ CREATE UNIQUE INDEX `hv_subagents_main_idx` ON `hv_subagents` (`agent_id`) WHERE "hv_subagents"."kind" = 'orchestrator';
@@ -0,0 +1,37 @@
1
+ CREATE TABLE `hv_artifact_links` (
2
+ `parent` text NOT NULL,
3
+ `child` text NOT NULL,
4
+ CONSTRAINT `fk_hv_artifact_links_parent_hv_artifacts_id_fk` FOREIGN KEY (`parent`) REFERENCES `hv_artifacts`(`id`) ON DELETE CASCADE,
5
+ CONSTRAINT `fk_hv_artifact_links_child_hv_artifacts_id_fk` FOREIGN KEY (`child`) REFERENCES `hv_artifacts`(`id`) ON DELETE CASCADE
6
+ );
7
+ --> statement-breakpoint
8
+ CREATE TABLE `hv_artifact_receipts` (
9
+ `agent_id` text NOT NULL,
10
+ `operation_key` text NOT NULL,
11
+ `request_hash` text NOT NULL,
12
+ `artifact_id` text NOT NULL,
13
+ CONSTRAINT `fk_hv_artifact_receipts_agent_id_hv_agents_id_fk` FOREIGN KEY (`agent_id`) REFERENCES `hv_agents`(`id`) ON DELETE CASCADE
14
+ );
15
+ --> statement-breakpoint
16
+ CREATE TABLE `hv_artifacts` (
17
+ `id` text PRIMARY KEY,
18
+ `agent_id` text NOT NULL,
19
+ `title` text NOT NULL,
20
+ `description` text NOT NULL,
21
+ `media_type` text NOT NULL,
22
+ `payload` blob NOT NULL,
23
+ `size` integer NOT NULL,
24
+ `tags` text NOT NULL,
25
+ `instrument` text NOT NULL,
26
+ `interval` text NOT NULL,
27
+ `conversation_id` integer,
28
+ `task_id` integer,
29
+ `created_at` integer NOT NULL,
30
+ `expires_at` integer,
31
+ CONSTRAINT `fk_hv_artifacts_agent_id_hv_agents_id_fk` FOREIGN KEY (`agent_id`) REFERENCES `hv_agents`(`id`) ON DELETE CASCADE
32
+ );
33
+ --> statement-breakpoint
34
+ CREATE UNIQUE INDEX `hv_artifact_links_pair_idx` ON `hv_artifact_links` (`parent`,`child`);--> statement-breakpoint
35
+ CREATE INDEX `hv_artifact_links_child_idx` ON `hv_artifact_links` (`child`);--> statement-breakpoint
36
+ CREATE UNIQUE INDEX `hv_artifact_receipts_operation_idx` ON `hv_artifact_receipts` (`agent_id`,`operation_key`);--> statement-breakpoint
37
+ CREATE INDEX `hv_artifacts_agent_idx` ON `hv_artifacts` (`agent_id`,`created_at`);