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
@@ -0,0 +1,35 @@
1
+ import { HyperliquidError } from "../errors.js";
2
+ import { exchangeOid } from "./order-prepare.js";
3
+ import { compare, positionSize } from "./order-math.js";
4
+ export async function verifyProtection(info, account, positions, orders, quotes, signal) {
5
+ if (orders.length > 100 || positions.length > 100)
6
+ throw new HyperliquidError("Protection inspection exceeds the 100-order/position budget", 409);
7
+ const verified = [], statuses = new Map();
8
+ for (const order of orders)
9
+ if (order.isTrigger && order.reduceOnly) {
10
+ const oid = exchangeOid(String(order.oid));
11
+ const response = await info.orderStatus({ user: account, oid }, signal);
12
+ if (response.status === "order" && response.order.order.oid === oid && response.order.order.coin === order.coin) {
13
+ // Re-read size/side/type/trigger from the individual response too: an old
14
+ // frontendOpenOrders quantity must not mask a subsequent partial fill.
15
+ verified.push(response.order.order);
16
+ statuses.set(oid, response.order.status);
17
+ }
18
+ }
19
+ return inspectProtection(positions, verified, statuses, quotes);
20
+ }
21
+ /** Only top-level live triggers with individually verified statuses count.
22
+ * Parent.children/waitingForFill are deliberately NOT active position protection. */
23
+ export function inspectProtection(positions, orders, statuses, quotes = {}) {
24
+ return positions.flatMap((position) => {
25
+ const exposure = positionSize(position.size);
26
+ if (exposure.side === "flat")
27
+ return [];
28
+ const side = exposure.side === "long" ? "A" : "B";
29
+ const candidates = orders.filter((order) => order.coin === position.coin && order.side === side && order.reduceOnly && order.isTrigger && ["open", "waitingForTrigger"].includes(statuses.get(order.oid) ?? "") && positionSize(order.sz).side !== "flat" && compare(order.sz, exposure.size) >= 0);
30
+ const quote = quotes[position.coin];
31
+ const tp = candidates.filter((order) => (order.orderType === "Take Profit Market" || order.orderType === "Take Profit Limit") && quote !== undefined && (exposure.side === "long" ? compare(order.triggerPx, quote) > 0 : compare(order.triggerPx, quote) < 0));
32
+ const sl = candidates.filter((order) => order.orderType === "Stop Market" && quote !== undefined && (exposure.side === "long" ? compare(order.triggerPx, quote) < 0 : compare(order.triggerPx, quote) > 0));
33
+ return [{ instrument: position.coin, side: exposure.side, size: exposure.size, takeProfitOids: tp.map((order) => String(order.oid)), stopLossOids: sl.map((order) => String(order.oid)), covered: tp.length > 0 && sl.length > 0, warning: "Observed per-leg state only, not a perpetual coverage guarantee. Stop-limit legs are not treated as reliable full-size loss protection. Inspect partial fills and uncertain/rejected legs; repair with standalone reduce-only orders, never blind cancel-all." }];
34
+ });
35
+ }
@@ -0,0 +1,44 @@
1
+ import { AgentError } from "../../agents/agent-input.js";
2
+ import { instrument } from "../../memory/memory-contracts.js";
3
+ import { array, fields, object, positiveDecimal, unique } from "../../memory/validation.js";
4
+ /** Operator-supplied settings are validated here; models never write them. */
5
+ export function riskSettingsInput(value) {
6
+ const row = fields(object(value), ["tradingEnabled", "allowedInstruments", "maxOrderNotional", "maxTotalNotional"]);
7
+ if (typeof row.tradingEnabled !== "boolean")
8
+ throw new AgentError("Invalid trading enablement");
9
+ const allowed = row.allowedInstruments == null ? null : unique(array(row.allowedInstruments, 50, instrument));
10
+ if (allowed && !allowed.length)
11
+ throw new AgentError("Select at least one allowed instrument, or clear the list for no limit");
12
+ const notional = (candidate) => candidate == null || candidate === "" ? null : positiveDecimal(candidate);
13
+ return { tradingEnabled: row.tradingEnabled, allowedInstruments: allowed, maxOrderNotional: notional(row.maxOrderNotional), maxTotalNotional: notional(row.maxTotalNotional) };
14
+ }
15
+ const columns = "trading_enabled,allowed_instruments,max_order_notional,max_total_notional";
16
+ function settings(row) {
17
+ return row ? { tradingEnabled: row.trading_enabled === 1, allowedInstruments: row.allowed_instruments == null ? null : JSON.parse(row.allowed_instruments), maxOrderNotional: row.max_order_notional, maxTotalNotional: row.max_total_notional }
18
+ : { tradingEnabled: false, allowedInstruments: null, maxOrderNotional: null, maxTotalNotional: null };
19
+ }
20
+ export class RiskSettingsService {
21
+ db;
22
+ changed;
23
+ constructor(db, changed) {
24
+ this.db = db;
25
+ this.changed = changed;
26
+ }
27
+ async get(agentId) {
28
+ return settings(await this.db.get(`SELECT ${columns} FROM hv_risk_settings WHERE agent_id=?`, agentId));
29
+ }
30
+ async save(agentId, value) {
31
+ const input = riskSettingsInput(value), now = Date.now();
32
+ const saved = settings(await this.db.transaction(async (tx) => {
33
+ const agent = await tx.get("SELECT state FROM hv_agents WHERE id=?", agentId);
34
+ if (!agent)
35
+ throw new AgentError("Agent not found", 404);
36
+ if (agent.state === "stopping" || agent.state === "stopped")
37
+ throw new AgentError("Agent is being deleted", 409);
38
+ await tx.run("INSERT INTO hv_risk_settings(agent_id,trading_enabled,allowed_instruments,max_order_notional,max_total_notional,updated_at) VALUES (?,?,?,?,?,?) ON CONFLICT(agent_id) DO UPDATE SET trading_enabled=excluded.trading_enabled,allowed_instruments=excluded.allowed_instruments,max_order_notional=excluded.max_order_notional,max_total_notional=excluded.max_total_notional,updated_at=excluded.updated_at", agentId, input.tradingEnabled ? 1 : 0, input.allowedInstruments && JSON.stringify(input.allowedInstruments), input.maxOrderNotional, input.maxTotalNotional, now);
39
+ return await tx.get(`SELECT ${columns} FROM hv_risk_settings WHERE agent_id=?`, agentId);
40
+ }));
41
+ this.changed?.(agentId);
42
+ return saved;
43
+ }
44
+ }
@@ -0,0 +1,117 @@
1
+ import { assertActiveActor } from "../../memory/operations.js";
2
+ import { HyperliquidError } from "../errors.js";
3
+ import { RiskSettingsService } from "./risk-settings.js";
4
+ import { compare, decimal, notional, notionalAtLeast, positionSize, sumDecimals } from "./order-math.js";
5
+ /** Identity/tool permissions plus risk limits, never strategy or research policy. */
6
+ export class TradeAdmissionService {
7
+ db;
8
+ execution;
9
+ handles = new WeakMap();
10
+ risk;
11
+ constructor(db, execution) {
12
+ this.db = db;
13
+ this.execution = execution;
14
+ this.risk = new RiskSettingsService(db);
15
+ }
16
+ async handle(agentId, api, context) {
17
+ const { actor, config } = await this.execution.resolve(agentId, api, context);
18
+ const handle = Object.freeze({});
19
+ this.handles.set(handle, { actor, tools: config.tools });
20
+ return handle;
21
+ }
22
+ authority(agentId, handle) {
23
+ const value = handle && this.handles.get(handle);
24
+ if (!value || value.actor.agentId !== agentId)
25
+ throw new HyperliquidError("A verified model execution handle is required for model order mutations", 403);
26
+ return value;
27
+ }
28
+ /** Only the trusted handle can supply request provenance, never model arguments. */
29
+ origin(agentId, handle, capability) {
30
+ const { actor, tools } = this.authority(agentId, handle);
31
+ if (!tools.includes(capability))
32
+ throw new HyperliquidError("Order mutation permission not selected", 403);
33
+ return actor;
34
+ }
35
+ /** Read-only planners need identity, not submit_orders permission. */
36
+ planning(agentId, handle) { this.authority(agentId, handle); }
37
+ /** Called under the existing per-Agent mutation lock, including before a retry sends. */
38
+ async validate(agentId, info, account, signal, actions, handle) {
39
+ const { actor, tools } = this.authority(agentId, handle);
40
+ if (!tools.includes("submit_orders"))
41
+ throw new HyperliquidError("Order mutation permission not selected", 403);
42
+ await this.db.transaction((tx) => assertActiveActor(tx, actor));
43
+ const entries = actions.flatMap((action) => action.items).filter((view) => !view.reduceOnly);
44
+ // Reduce-only orders cannot increase exposure. The exchange remains authoritative
45
+ // for position quantity/side; disabling entries never blocks protective management.
46
+ if (!entries.length)
47
+ return;
48
+ const settings = await this.risk.get(agentId);
49
+ if (!settings.tradingEnabled)
50
+ throw new HyperliquidError("Trading is disabled in this Agent's risk settings. Enable trading in the Agent's risk settings before opening exposure; enabling a worker does not bypass this shared gate.", 409);
51
+ const mids = settings.maxOrderNotional || settings.maxTotalNotional ? await info.allMids({ dex: "" }, signal) : {};
52
+ const quote = (coin) => {
53
+ const value = mids[coin];
54
+ if (typeof value !== "string")
55
+ throw new HyperliquidError(`Current market quote for ${coin} unavailable`, 503);
56
+ decimal(value);
57
+ return value;
58
+ };
59
+ for (const entry of entries) {
60
+ if (settings.allowedInstruments && !settings.allowedInstruments.includes(entry.symbol))
61
+ throw new HyperliquidError(`Instrument ${entry.symbol} is not in this Agent's allowed instruments`, 409);
62
+ if (!entry.size || !entry.price)
63
+ throw new HyperliquidError("Prepared entry size/price unavailable");
64
+ if (!notionalAtLeast(entry.size, entry.price, "10"))
65
+ throw new HyperliquidError("Opening notional is below the $10 venue minimum; never silently increase size");
66
+ if (settings.maxOrderNotional && compare(notional(entry.size, higher(quote(entry.symbol), entry.price)), settings.maxOrderNotional) > 0)
67
+ throw new HyperliquidError("Opening notional exceeds the configured maximum order notional", 409);
68
+ }
69
+ if (!settings.maxTotalNotional)
70
+ return;
71
+ const [state, live, local] = await Promise.all([
72
+ info.clearinghouseState({ user: account, dex: "" }, signal),
73
+ info.frontendOpenOrders({ user: account, dex: "" }, signal),
74
+ this.db.all(`SELECT i.view FROM hv_order_items i
75
+ JOIN hv_order_actions a ON a.id=i.action_id JOIN hv_order_requests r ON r.id=a.request_id
76
+ WHERE r.agent_id=? AND r.account=? AND i.id NOT IN (SELECT value FROM json_each(?)) AND r.kind='submit'
77
+ AND json_extract(i.view,'$.reduceOnly')=0 AND
78
+ (a.state IN ('prepared','submitting','unknown') OR i.active=1 OR
79
+ (json_extract(i.view,'$.orderStatus')='filled' AND i.updated_at>?)) LIMIT 1001`, agentId, account, JSON.stringify(actions.flatMap((action) => action.items.map((item) => item.id))), Date.now() - 30000),
80
+ ]);
81
+ if (!Array.isArray(state.assetPositions) || !Array.isArray(live))
82
+ throw new HyperliquidError("Current exposure data unavailable", 503);
83
+ if (local.length > 1000)
84
+ throw new HyperliquidError("Pending exposure exceeds the risk inspection budget", 409);
85
+ const amounts = state.assetPositions.flatMap(({ position }) => {
86
+ const exposure = positionSize(position.szi);
87
+ return exposure.side === "flat" ? [] : [notional(exposure.size, quote(position.coin))];
88
+ });
89
+ const pending = [...entries];
90
+ // Do not double-count an open order reported by both local storage and the venue.
91
+ const cloids = new Set(), oids = new Set();
92
+ for (const order of live) {
93
+ if (order.reduceOnly)
94
+ continue;
95
+ if (order.cloid)
96
+ cloids.add(order.cloid);
97
+ oids.add(String(order.oid));
98
+ amounts.push(notional(order.sz, higher(quote(order.coin), order.limitPx)));
99
+ }
100
+ for (const { view } of local) {
101
+ const order = JSON.parse(view);
102
+ if (order.cloid && cloids.has(order.cloid) || order.exchangeOid && oids.has(order.exchangeOid))
103
+ continue;
104
+ // Unknown/pending submissions and very recent fills reserve capacity while
105
+ // account snapshots catch up. Recent fills may briefly be counted twice.
106
+ pending.push(order);
107
+ }
108
+ for (const order of pending) {
109
+ if (!order.size || !order.price)
110
+ throw new HyperliquidError("Pending exposure size/price unavailable", 503);
111
+ amounts.push(notional(order.size, higher(quote(order.symbol), order.price)));
112
+ }
113
+ if (compare(sumDecimals(amounts), settings.maxTotalNotional) > 0)
114
+ throw new HyperliquidError("Projected total open notional (positions plus pending entries) exceeds the configured maximum total notional", 409);
115
+ }
116
+ }
117
+ function higher(a, b) { return compare(a, b) >= 0 ? a : b; }
@@ -0,0 +1,60 @@
1
+ import { HyperliquidError } from "../errors.js";
2
+ import { compare, decimal, guardPrice, notionalAtLeast, positionSize, price, size } from "./order-math.js";
3
+ import { instrument, instruments } from "./order-prepare.js";
4
+ /** Run before schema validation as well, so callers see the allowed values. */
5
+ export function assertEntryStyle(value) {
6
+ if (value !== "guarded_ioc" && value !== "limit")
7
+ throw new HyperliquidError(`entry_style must be "guarded_ioc" or "limit"; received ${JSON.stringify(value) ?? "missing"}. Use "guarded_ioc" for a market-like 0.5%-guarded IOC entry, not "market". Use "limit" with an explicit limit_price for GTC.`);
8
+ }
9
+ /**
10
+ * Read-only protected-entry planner. Strategy, sizing and protection levels
11
+ * are model/worker decisions from instructions and insights; this only
12
+ * enforces exact venue arithmetic and side sanity, never policy.
13
+ */
14
+ export async function prepareProtectedEntry(info, input, signal) {
15
+ assertEntryStyle(input.entry_style);
16
+ if (!["buy", "sell"].includes(input.side))
17
+ throw new HyperliquidError('side must be "buy" or "sell"');
18
+ if (input.entry_style === "guarded_ioc" && input.limit_price !== undefined)
19
+ throw new HyperliquidError("Omit limit_price for guarded IOC planning");
20
+ if (input.entry_style === "limit" && input.limit_price === undefined)
21
+ throw new HyperliquidError("Explicit limit_price is required for limit planning");
22
+ const entry = instrument(await instruments(info, signal), input.instrument);
23
+ const observedAt = Date.now();
24
+ const quote = (await info.allMids({ dex: "" }, signal))[input.instrument];
25
+ if (typeof quote !== "string" || !quote)
26
+ throw new HyperliquidError("Current string-valued market quote unavailable", 503);
27
+ decimal(quote);
28
+ const buy = input.side === "buy";
29
+ const px = input.entry_style === "limit" ? price(input.limit_price, entry.szDecimals) : guardPrice(quote, buy, entry.szDecimals);
30
+ const qty = size(input.size, entry.szDecimals);
31
+ if (!notionalAtLeast(qty, px, "10"))
32
+ throw new HyperliquidError("Draft is below the $10 minimum entry notional; do not silently increase size");
33
+ const tp = price(input.take_profit_price, entry.szDecimals), sl = price(input.stop_loss_price, entry.szDecimals);
34
+ if (buy ? compare(tp, px) <= 0 || compare(sl, px) >= 0 : compare(tp, px) >= 0 || compare(sl, px) <= 0)
35
+ throw new HyperliquidError("TP/SL is on the wrong side of the guarded/explicit entry");
36
+ const order = { symbol: input.instrument, side: input.side, order_type: "limit", size: qty, price: px, time_in_force: input.entry_style === "guarded_ioc" ? "ioc" : "gtc", take_profits: [{ trigger_price: tp, size: qty }], stop_losses: [{ trigger_price: sl, size: qty }] };
37
+ return { orders: [order], quote, quoteSource: "Hyperliquid main-DEX allMids HTTP (host observation, not venue timestamp)", observedAt, validUntil: observedAt + 15000, calculationBasis: input.entry_style === "guarded_ioc" ? "0.5% guarded IOC limit" : "Explicit exact-decimal limit price", warning: "Draft only; no authority or protection guarantee. Submit revalidates prices and current state. Entry size and TP/SL levels are your strategy decisions within the Agent's risk settings; never silently increase size." };
38
+ }
39
+ /** Read-only planner for standalone reduce-only protection of an existing position. */
40
+ export async function preparePositionProtection(info, input, account, signal) {
41
+ const observedAt = Date.now();
42
+ const [meta, state, mids] = await Promise.all([instruments(info, signal), info.clearinghouseState({ user: account, dex: "" }, signal), info.allMids({ dex: "" }, signal)]);
43
+ const asset = instrument(meta, input.instrument), position = state.assetPositions.find(({ position }) => position.coin === input.instrument)?.position;
44
+ const exposure = positionSize(position?.szi ?? "0");
45
+ if (exposure.side === "flat")
46
+ throw new HyperliquidError("No current position exists for protective planning");
47
+ const quote = mids[input.instrument];
48
+ if (typeof quote !== "string")
49
+ throw new HyperliquidError("Current string-valued quote unavailable", 503);
50
+ decimal(quote);
51
+ const long = exposure.side === "long", quantity = size(exposure.size, asset.szDecimals);
52
+ const tp = price(input.take_profit_price, asset.szDecimals), sl = price(input.stop_loss_price, asset.szDecimals);
53
+ if (long ? compare(tp, quote) <= 0 || compare(sl, quote) >= 0 : compare(tp, quote) >= 0 || compare(sl, quote) <= 0)
54
+ throw new HyperliquidError("Protection levels have crossed the current market; explicit review is required, not unapproved flattening or invented replacement prices");
55
+ const orders = [
56
+ { symbol: input.instrument, side: long ? "sell" : "buy", size: quantity, order_type: "take_profit", trigger_price: tp, reduce_only: true },
57
+ { symbol: input.instrument, side: long ? "sell" : "buy", size: quantity, order_type: "stop_loss", trigger_price: sl, reduce_only: true },
58
+ ];
59
+ return { orders, quote, quoteSource: "Hyperliquid main-DEX allMids and clearinghouseState HTTP (host observation, not venue timestamp)", observedAt, validUntil: observedAt + 15000, calculationBasis: "Actual current signed position quantity; no new exposure or sizing increase", warning: "Draft only. Inspect known protective orders first and submit ONLY missing/appropriate legs; never duplicate or cancel live protection blindly. No perpetual coverage guarantee." };
60
+ }