hypervibes 0.0.0-stage → 0.4.0-beta
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.
- package/.build/client/assets/_authenticated-Cv9zLaQf.js +1 -0
- package/.build/client/assets/_authenticated.account-BUQIEX6U.js +1 -0
- package/.build/client/assets/_authenticated.agents-dJY4sHg9.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId-M6WEcZ08.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.chart-C7d7IrdC.js +4 -0
- package/.build/client/assets/_authenticated.agents._agentId.chat-ByZuIqSb.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.index-BWIZd3vd.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.indicators-CjCgrxqH.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.indicators_._indicatorId-B45wotiz.js +2 -0
- package/.build/client/assets/_authenticated.agents._agentId.indicators_._indicatorId-Beoq1vKK.js +6 -0
- package/.build/client/assets/_authenticated.agents._agentId.memories-BmofNWcJ.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.memories_._memoryRef-CGnpq7sv.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.notifications-Z1TVoGbh.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.notifications_._notificationId-BU2I1Fui.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.settings-CUai-n8m.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.sub-agents-dJY4sHg9.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.sub-agents._subagentId-CEYRqW8Q.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.sub-agents._subagentId_.runs._runId-Cr7yrAJz.js +3 -0
- package/.build/client/assets/_authenticated.agents._agentId.sub-agents.index-xTEjRPdW.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.sub-agents.new-B9ZR8zIn.js +37 -0
- package/.build/client/assets/_authenticated.agents._agentId.transactions-a1xzSbFO.js +1 -0
- package/.build/client/assets/_authenticated.agents.index-CEqeDEgP.js +1 -0
- package/.build/client/assets/_authenticated.agents.new-COOjMCtg.js +1 -0
- package/.build/client/assets/_authenticated.providers-8wsMG9f-.js +1 -0
- package/.build/client/assets/agent-chat-page-vKrkXdzr.js +1 -0
- package/.build/client/assets/agent-enablement-control-BMJ6jULr.js +1 -0
- package/.build/client/assets/agent-events-DC8eDZf3.js +1 -0
- package/.build/client/assets/agent-input-aolvZ47U.js +1 -0
- package/.build/client/assets/agent-notifications-page-B0mr-Zz8.js +1 -0
- package/.build/client/assets/agent-queries-CNMBImun.js +1 -0
- package/.build/client/assets/app-DcRTuyby.css +2 -0
- package/.build/client/assets/artifact-content-COO4VTSZ.js +1 -0
- package/.build/client/assets/auth-client-K13li9H1.js +3 -0
- package/.build/client/assets/call-DxlGie4_.js +31 -0
- package/.build/client/assets/ccip-BgPlVPYP.js +1 -0
- package/.build/client/assets/chart-contracts-Cr5SFCbE.js +1 -0
- package/.build/client/assets/chart-queries-Bpvrgd0-.js +1 -0
- package/.build/client/assets/chat-bubble-CAJkT-vL.js +1 -0
- package/.build/client/assets/config-dialog-C9x9gKW9.js +1 -0
- package/.build/client/assets/contracts-HhAL7Tt7.js +1 -0
- package/.build/client/assets/createServerFn-DfZIp2Fu.js +3 -0
- package/.build/client/assets/custom-BeqXuIIS.js +5 -0
- package/.build/client/assets/decimal-B0DEG-1V.js +1 -0
- package/.build/client/assets/esm-BTb2nBdW.js +1 -0
- package/.build/client/assets/identicon-Lb9pS4O1.js +1 -0
- package/.build/client/assets/index-fu66g8fn.js +10 -0
- package/.build/client/assets/indicator-input-fields-CtmrfVfS.js +1 -0
- package/.build/client/assets/indicator-queries-CzZ6u1Mh.js +1 -0
- package/.build/client/assets/indicator-renderer-CfccsIt2.js +1 -0
- package/.build/client/assets/instrument-label-BZYlWXR5.js +1 -0
- package/.build/client/assets/instrument-picker-DLPpryOm.js +1 -0
- package/.build/client/assets/journal-decimal-DBvd_Ibi.js +1 -0
- package/.build/client/assets/jsx-runtime-CIazjfqY.js +1 -0
- package/.build/client/assets/lazyRouteComponent-CJgUa7_r.js +1 -0
- package/.build/client/assets/lightweight-charts.production-BiBiFZSH.js +1 -0
- package/.build/client/assets/login-MNgYxCOY.js +3 -0
- package/.build/client/assets/memory-badge-BbN-DJQi.js +1 -0
- package/.build/client/assets/memory-contracts-Doi_Q1XJ.js +1 -0
- package/.build/client/assets/memory-queries-BttL580R.js +1 -0
- package/.build/client/assets/model-picker-YCQNNmyw.js +1 -0
- package/.build/client/assets/notification-queries-B12DG3aS.js +1 -0
- package/.build/client/assets/preload-helper-Czpn1I53.js +1 -0
- package/.build/client/assets/provider-logo-Ddb77aBD.js +1 -0
- package/.build/client/assets/provider-queries-DxPwhDOU.js +1 -0
- package/.build/client/assets/query-nvK_95Jo.js +1 -0
- package/.build/client/assets/random-uuid-DJR3ygJS.js +1 -0
- package/.build/client/assets/react-dom-C6bOPxes.js +1 -0
- package/.build/client/assets/risk-queries-D_6PHwus.js +1 -0
- package/.build/client/assets/run-subagent-dialog-B4yQe9T9.js +1 -0
- package/.build/client/assets/secp256k1-BbZnIgDP.js +1 -0
- package/.build/client/assets/setup-checklist-CUW-K484.js +1 -0
- package/.build/client/assets/sha2-hT-Q4pur.js +1 -0
- package/.build/client/assets/subagent-enabled-toggle-Bk5wfScg.js +1 -0
- package/.build/client/assets/subagent-input-TQke90I1.js +1 -0
- package/.build/client/assets/subagent-mutations-DfsDbmFu.js +1 -0
- package/.build/client/assets/subagent-queries-DVv5JCfs.js +1 -0
- package/.build/client/assets/subagent-run-history-D55Uh5VK.js +1 -0
- package/.build/client/assets/toggle-timestamp-B50FTPmA.js +1 -0
- package/.build/client/assets/useBaseQuery-Bxruo_mV.js +1 -0
- package/.build/client/assets/useMutation-Dni_73Pp.js +1 -0
- package/.build/client/assets/useQuery-BMSU16jY.js +1 -0
- package/.build/client/assets/useRouter-c0I1aURm.js +1 -0
- package/.build/client/assets/useSelector-ERD9RroG.js +2 -0
- package/.build/client/assets/useSuspenseQuery-vODFwDb8.js +1 -0
- package/.build/client/assets/utils-Bpv4vmSW.js +1 -0
- package/.build/client/assets/worker-triggers-DtXyn40O.js +1 -0
- package/.build/server/assets/_authenticated-Bch0_2QH.js +264 -0
- package/.build/server/assets/_authenticated-DGV5cZYE.js +22 -0
- package/.build/server/assets/_authenticated.account-6qu6oQ1y.js +685 -0
- package/.build/server/assets/_authenticated.agents-DYDnQxli.js +5 -0
- package/.build/server/assets/_authenticated.agents._agentId-4HvB3mhd.js +17 -0
- package/.build/server/assets/_authenticated.agents._agentId-Cl608F1T.js +260 -0
- package/.build/server/assets/_authenticated.agents._agentId-G2jAHjma.js +15 -0
- package/.build/server/assets/_authenticated.agents._agentId.chart-BIA8wy73.js +2644 -0
- package/.build/server/assets/_authenticated.agents._agentId.chart-D4aj8Qy9.js +22 -0
- package/.build/server/assets/_authenticated.agents._agentId.chat-ClsVle4g.js +13 -0
- package/.build/server/assets/_authenticated.agents._agentId.chat-JV3FDsTp.js +18 -0
- package/.build/server/assets/_authenticated.agents._agentId.index-Ct4kbu2f.js +1044 -0
- package/.build/server/assets/_authenticated.agents._agentId.index-DJgrupvW.js +18 -0
- package/.build/server/assets/_authenticated.agents._agentId.indicators-DrKd0aP5.js +184 -0
- package/.build/server/assets/_authenticated.agents._agentId.indicators-wiVaY8fW.js +18 -0
- package/.build/server/assets/_authenticated.agents._agentId.indicators_._indicatorId-C4Ox2R-a.js +25 -0
- package/.build/server/assets/_authenticated.agents._agentId.indicators_._indicatorId-D8Q0hCW0.js +489 -0
- package/.build/server/assets/_authenticated.agents._agentId.memories-BUTyVLYy.js +42 -0
- package/.build/server/assets/_authenticated.agents._agentId.memories-E8-nSEMT.js +362 -0
- package/.build/server/assets/_authenticated.agents._agentId.memories_._memoryRef-C-SC6wzq.js +14 -0
- package/.build/server/assets/_authenticated.agents._agentId.memories_._memoryRef-ZCrdrc8C.js +490 -0
- package/.build/server/assets/_authenticated.agents._agentId.notifications-DQeQqTzh.js +14 -0
- package/.build/server/assets/_authenticated.agents._agentId.notifications-DlFyYyHh.js +16 -0
- package/.build/server/assets/_authenticated.agents._agentId.notifications_._notificationId-B0RosY_R.js +15 -0
- package/.build/server/assets/_authenticated.agents._agentId.notifications_._notificationId-C1NikQ9e.js +13 -0
- package/.build/server/assets/_authenticated.agents._agentId.settings-DDwjT3Ui.js +42 -0
- package/.build/server/assets/_authenticated.agents._agentId.settings-PEzEvOfo.js +751 -0
- package/.build/server/assets/_authenticated.agents._agentId.sub-agents-z34-J3Tu.js +5 -0
- package/.build/server/assets/_authenticated.agents._agentId.sub-agents._subagentId-D-6TOi1U.js +1371 -0
- package/.build/server/assets/_authenticated.agents._agentId.sub-agents._subagentId-DipzVdnr.js +13 -0
- package/.build/server/assets/_authenticated.agents._agentId.sub-agents._subagentId_.runs._runId-BZR3VLV7.js +610 -0
- package/.build/server/assets/_authenticated.agents._agentId.sub-agents._subagentId_.runs._runId-DsYJKfGm.js +12 -0
- package/.build/server/assets/_authenticated.agents._agentId.sub-agents.index-BF8Cuzcr.js +231 -0
- package/.build/server/assets/_authenticated.agents._agentId.sub-agents.index-D2x0qCnt.js +12 -0
- package/.build/server/assets/_authenticated.agents._agentId.sub-agents.new-CYm_vuDD.js +13 -0
- package/.build/server/assets/_authenticated.agents._agentId.sub-agents.new-CiVShIka.js +497 -0
- package/.build/server/assets/_authenticated.agents._agentId.transactions-BC_XfGqw.js +95 -0
- package/.build/server/assets/_authenticated.agents._agentId.transactions-WtBW3xmh.js +495 -0
- package/.build/server/assets/_authenticated.agents.index-C8zmu8T8.js +78 -0
- package/.build/server/assets/_authenticated.agents.new-Bt-tBR47.js +302 -0
- package/.build/server/assets/_authenticated.providers-C0pb-ujV.js +672 -0
- package/.build/server/assets/_tanstack-start-manifest_v-BAHfxLOo.js +354 -0
- package/.build/server/assets/account-XvMwzRXh.js +66 -0
- package/.build/server/assets/account-queries-AJJVkLAV.js +32 -0
- package/.build/server/assets/agent-chat-page-DChiz8KQ.js +686 -0
- package/.build/server/assets/agent-enablement-control-C90f0uIb.js +143 -0
- package/.build/server/assets/agent-events-DK9Yz5__.js +217 -0
- package/.build/server/assets/agent-notifications-page-BdyKAyds.js +276 -0
- package/.build/server/assets/agent-queries-Cmx8RiUx.js +51 -0
- package/.build/server/assets/agents-CZq-0mna.js +106 -0
- package/.build/server/assets/agents-CfjmtW7A.js +278 -0
- package/.build/server/assets/artifact-content-B6uHmPz7.js +35 -0
- package/.build/server/assets/artifacts-HtLwHs8q.js +42 -0
- package/.build/server/assets/auth-DTikZAVz.js +12 -0
- package/.build/server/assets/auth-client-Vb3O0v7P.js +1897 -0
- package/.build/server/assets/auth-user-DkLo8ojH.js +108 -0
- package/.build/server/assets/chart-queries-Bc3AfsEb.js +109 -0
- package/.build/server/assets/charts-C4dKuwTJ.js +130 -0
- package/.build/server/assets/chat-bubble-ik3itVbx.js +109 -0
- package/.build/server/assets/config-dialog-9gSAjwwT.js +55 -0
- package/.build/server/assets/contracts-CG-nZuYJ.js +155 -0
- package/.build/server/assets/createServerRpc-DNqhdU4z.js +12 -0
- package/.build/server/assets/decimal-BthtZ77w.js +97 -0
- package/.build/server/assets/empty-plugin-adapters-MOWBbCMw.js +5 -0
- package/.build/server/assets/errors-DaZqUftX.js +151 -0
- package/.build/server/assets/gateway-CHkruO_a.js +193 -0
- package/.build/server/assets/identicon-CyawcVnx.js +41 -0
- package/.build/server/assets/indicator-input-fields-bzuhIh6t.js +75 -0
- package/.build/server/assets/indicator-queries-4dY1-LXx.js +171 -0
- package/.build/server/assets/indicator-renderer-B2muPS-8.js +395 -0
- package/.build/server/assets/indicators-ENxAHN42.js +192 -0
- package/.build/server/assets/insight-contracts-B5rmUDfO.js +14 -0
- package/.build/server/assets/instrument-label-C-tTGGsD.js +40 -0
- package/.build/server/assets/instrument-picker-CRroLwVq.js +381 -0
- package/.build/server/assets/journal-9aE-um9f.js +107 -0
- package/.build/server/assets/journal-decimal-Bh9EL029.js +66 -0
- package/.build/server/assets/login-BsEFUvTX.js +125 -0
- package/.build/server/assets/memories-2WF2fW1G.js +100 -0
- package/.build/server/assets/memory-badge-DVYLTtRR.js +53 -0
- package/.build/server/assets/memory-contracts-DQGN2IKV.js +22 -0
- package/.build/server/assets/memory-queries--4RbPRrk.js +92 -0
- package/.build/server/assets/model-picker-CA1uYb--.js +225 -0
- package/.build/server/assets/notification-queries-0CJUkBt9.js +52 -0
- package/.build/server/assets/notifications-Cn7BiCyw.js +72 -0
- package/.build/server/assets/provider-logo-BRdbOr9I.js +32 -0
- package/.build/server/assets/provider-queries-BaZWLw8J.js +78 -0
- package/.build/server/assets/providers-CyoN_jgW.js +89 -0
- package/.build/server/assets/risk-Bqrb6hKQ.js +34 -0
- package/.build/server/assets/risk-queries-JQpByHT2.js +18 -0
- package/.build/server/assets/router-CpYyLRfb.js +419 -0
- package/.build/server/assets/run-subagent-dialog-C7iUOZa-.js +59 -0
- package/.build/server/assets/setup-DqMlwgNr.js +30 -0
- package/.build/server/assets/setup-checklist-BICTmBo2.js +60 -0
- package/.build/server/assets/start-C-GPoWRt.js +4 -0
- package/.build/server/assets/subagent-enabled-toggle-Djte00oo.js +22 -0
- package/.build/server/assets/subagent-input-BHQKs2cW.js +57 -0
- package/.build/server/assets/subagent-mutations-dUo3B_SG.js +32 -0
- package/.build/server/assets/subagent-queries-sAwBjFxC.js +146 -0
- package/.build/server/assets/subagent-run-history-C_xmucO-.js +186 -0
- package/.build/server/assets/subagents-CIoilC66.js +180 -0
- package/.build/server/assets/toggle-timestamp-CToUVn67.js +28 -0
- package/.build/server/assets/trading-contracts-zWq1Hxnb.js +26 -0
- package/.build/server/assets/validation-BX-krL0i.js +33 -0
- package/.build/server/assets/worker-triggers-CJF5HWzR.js +51 -0
- package/.build/server/server.js +7501 -0
- package/LICENSE +661 -0
- package/README.md +147 -2
- package/bin/hypervibes.js +24 -0
- package/dist/agents/agent-enablement.js +10 -0
- package/dist/agents/agent-input.js +38 -0
- package/dist/agents/agent-service.js +1002 -0
- package/dist/agents/cancel-task-scope.js +52 -0
- package/dist/agents/candle-intervals.js +1 -0
- package/dist/agents/default-subagents.js +36 -0
- package/dist/agents/execution-context-contracts.js +1 -0
- package/dist/agents/execution-context.js +206 -0
- package/dist/agents/execution-warnings.js +33 -0
- package/dist/agents/orchestrator-insights.js +14 -0
- package/dist/agents/run-inspection.js +97 -0
- package/dist/agents/subagent-dashboard.js +1 -0
- package/dist/agents/subagent-extension.js +155 -0
- package/dist/agents/subagent-history.js +5 -0
- package/dist/agents/subagent-input.js +73 -0
- package/dist/agents/subagent-service.js +1176 -0
- package/dist/agents/subagent-templates.js +20 -0
- package/dist/agents/template-manifest.js +34 -0
- package/dist/agents/templates/basic-analysis.json +40 -0
- package/dist/agents/templates/basic-review.json +48 -0
- package/dist/agents/templates/basic-trading.json +45 -0
- package/dist/agents/templates/indicator-developer.json +16 -0
- package/dist/agents/worker-events.js +18 -0
- package/dist/agents/worker-inbox.js +28 -0
- package/dist/agents/worker-triggers.js +23 -0
- package/dist/auth-options.js +98 -0
- package/dist/auth-user.js +15 -0
- package/dist/auth.js +28 -0
- package/dist/cache/svg-logo-cache.js +155 -0
- package/dist/canonical.js +13 -0
- package/dist/charts/chart-service.js +236 -0
- package/dist/charts/contracts.js +118 -0
- package/dist/charts/durable-extension.js +27 -0
- package/dist/charts/trading-contracts.js +14 -0
- package/dist/config.js +85 -0
- package/dist/db/agent-schema.js +26 -0
- package/dist/db/auth-schema.js +122 -0
- package/dist/db/database.js +31 -0
- package/dist/db/exchange-schema.js +23 -0
- package/dist/db/gateway-schema.js +24 -0
- package/dist/db/indicator-schema.js +19 -0
- package/dist/db/migrations/20261015221717_auth/migration.sql +62 -0
- package/dist/db/migrations/20261015231224_agents/migration.sql +35 -0
- package/dist/db/migrations/20261016040641_provider_connections/migration.sql +19 -0
- package/dist/db/migrations/20261016061831_trade_journal/migration.sql +48 -0
- package/dist/db/migrations/20261016080320_order_execution/migration.sql +62 -0
- package/dist/db/migrations/20261016181110_subagents/migration.sql +51 -0
- package/dist/db/migrations/20261017222959_research_artifacts/migration.sql +37 -0
- package/dist/db/migrations/20261018061531_memories_and_insights/migration.sql +162 -0
- package/dist/db/migrations/20261020091156_worker_event_inbox/migration.sql +54 -0
- package/dist/db/migrations/20261021051229_chart_workspace/migration.sql +33 -0
- package/dist/db/migrations/20261021222116_gateways/migration.sql +15 -0
- package/dist/db/migrations/20261022015813_pine_indicators/migration.sql +43 -0
- package/dist/db/migrations/20261022101559_notifications/migration.sql +51 -0
- package/dist/db/migrations.js +12 -0
- package/dist/db/order-provenance-schema.js +17 -0
- package/dist/db/order-schema.js +32 -0
- package/dist/db/profile-lock.js +12 -0
- package/dist/db/provider-schema.js +16 -0
- package/dist/db/shared-database.js +128 -0
- package/dist/db/subagent-schema.js +79 -0
- package/dist/gateway/bridge-service.js +223 -0
- package/dist/gateway/gateway-store.js +77 -0
- package/dist/gateway/handlers.js +122 -0
- package/dist/gateway/telegram/connector.js +115 -0
- package/dist/gateway/telegram/transport.js +96 -0
- package/dist/hyperliquid/account-info.js +117 -0
- package/dist/hyperliquid/account-status.js +64 -0
- package/dist/hyperliquid/agent-dashboard.js +56 -0
- package/dist/hyperliquid/chart-contracts.js +9 -0
- package/dist/hyperliquid/constants.js +25 -0
- package/dist/hyperliquid/crypto.js +29 -0
- package/dist/hyperliquid/currency-logo.js +7 -0
- package/dist/hyperliquid/decimal.js +98 -0
- package/dist/hyperliquid/durable-extension.js +39 -0
- package/dist/hyperliquid/errors.js +8 -0
- package/dist/hyperliquid/exchange.js +118 -0
- package/dist/hyperliquid/journal-decimal.js +48 -0
- package/dist/hyperliquid/journal-model.js +167 -0
- package/dist/hyperliquid/journal-service.js +648 -0
- package/dist/hyperliquid/live-dashboard.js +245 -0
- package/dist/hyperliquid/logo-cache.js +27 -0
- package/dist/hyperliquid/market-charts.js +242 -0
- package/dist/hyperliquid/market-snapshot.js +45 -0
- package/dist/hyperliquid/orders/order-contracts.js +42 -0
- package/dist/hyperliquid/orders/order-math.js +89 -0
- package/dist/hyperliquid/orders/order-outcomes.js +74 -0
- package/dist/hyperliquid/orders/order-prepare.js +109 -0
- package/dist/hyperliquid/orders/order-service.js +432 -0
- package/dist/hyperliquid/orders/order-store.js +134 -0
- package/dist/hyperliquid/orders/order-tools.js +40 -0
- package/dist/hyperliquid/orders/protection.js +35 -0
- package/dist/hyperliquid/orders/risk-settings.js +44 -0
- package/dist/hyperliquid/orders/trade-admission.js +117 -0
- package/dist/hyperliquid/orders/trade-planning.js +60 -0
- package/dist/hyperliquid/service.js +529 -0
- package/dist/hyperliquid/shared-feeds.js +40 -0
- package/dist/hyperliquid/signing.js +89 -0
- package/dist/indicators/builtin-catalog.js +59 -0
- package/dist/indicators/builtins/adx.pine +22 -0
- package/dist/indicators/builtins/atr.pine +11 -0
- package/dist/indicators/builtins/bollinger.pine +10 -0
- package/dist/indicators/builtins/ema.pine +5 -0
- package/dist/indicators/builtins/macd.pine +18 -0
- package/dist/indicators/builtins/rsi.pine +18 -0
- package/dist/indicators/builtins/sma.pine +5 -0
- package/dist/indicators/candle-window.js +36 -0
- package/dist/indicators/chart-contracts.js +64 -0
- package/dist/indicators/contracts.js +14 -0
- package/dist/indicators/durable-extension.js +32 -0
- package/dist/indicators/indicator-service.js +300 -0
- package/dist/indicators/indicator-store.js +137 -0
- package/dist/indicators/normalize.js +149 -0
- package/dist/indicators/result-schema.js +76 -0
- package/dist/indicators/runtime-wrapper.js +52 -0
- package/dist/indicators/runtime.js +201 -0
- package/dist/indicators/validation.js +124 -0
- package/dist/indicators/worker-queue.js +48 -0
- package/dist/initialize-config.js +160 -0
- package/dist/main.js +59 -0
- package/dist/memory/decision-audit.js +47 -0
- package/dist/memory/durable-extension.js +40 -0
- package/dist/memory/execution-audit.js +83 -0
- package/dist/memory/insight-contracts.js +33 -0
- package/dist/memory/insight-service.js +117 -0
- package/dist/memory/memory-contracts.js +113 -0
- package/dist/memory/memory-service.js +179 -0
- package/dist/memory/operations.js +46 -0
- package/dist/memory/tool-schemas.js +44 -0
- package/dist/memory/validation.js +42 -0
- package/dist/notifications/contracts.js +1 -0
- package/dist/notifications/delivery.js +11 -0
- package/dist/notifications/durable-extension.js +20 -0
- package/dist/notifications/notification-service.js +324 -0
- package/dist/providers/credential-store.js +86 -0
- package/dist/providers/ollama-cloud.js +148 -0
- package/dist/providers/provider-logo-url.js +18 -0
- package/dist/providers/provider-logo.js +31 -0
- package/dist/providers/provider-service.js +295 -0
- package/dist/research/artifacts.js +151 -0
- package/dist/research/call-queue.js +43 -0
- package/dist/research/contracts.js +33 -0
- package/dist/research/evidence.js +43 -0
- package/dist/research/journal.js +30 -0
- package/dist/research/research-service.js +191 -0
- package/dist/research/tool-activity.js +49 -0
- package/dist/research/tool-response.js +25 -0
- package/dist/runtime.js +145 -0
- package/dist/web/agent-events.js +418 -0
- package/dist/web/app.js +206 -0
- package/dist/web/artifact-downloads.js +23 -0
- package/dist/web/middleware.js +25 -0
- package/dist/web/random-uuid.js +14 -0
- package/dist/web/start.js +56 -0
- package/package.json +91 -4
- package/scripts/check-node.mjs +24 -0
- package/static/android-chrome-192x192.png +0 -0
- package/static/android-chrome-512x512.png +0 -0
- package/static/apple-touch-icon.png +0 -0
- package/static/favicon-16x16.png +0 -0
- package/static/favicon-32x32.png +0 -0
- package/static/favicon.ico +0 -0
- package/static/github.svg +3 -0
- package/static/hypervibes.png +0 -0
- package/static/logo.png +0 -0
- package/static/site.webmanifest +1 -0
- package/static/telegram.svg +1 -0
|
@@ -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`);
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
CREATE TABLE `hv_memories` (
|
|
2
|
+
`agent_id` text NOT NULL,
|
|
3
|
+
`number` integer NOT NULL,
|
|
4
|
+
`kind` text NOT NULL,
|
|
5
|
+
`topic` text NOT NULL,
|
|
6
|
+
`instrument` text,
|
|
7
|
+
`interval` text,
|
|
8
|
+
`summary` text NOT NULL,
|
|
9
|
+
`content` text NOT NULL,
|
|
10
|
+
`payload` text NOT NULL,
|
|
11
|
+
`created_at` integer NOT NULL,
|
|
12
|
+
`evidence_as_of` integer,
|
|
13
|
+
`valid_until` integer,
|
|
14
|
+
`producer_subagent_id` text,
|
|
15
|
+
`source_run_id` text,
|
|
16
|
+
`conversation_id` integer,
|
|
17
|
+
`tool_task_id` integer,
|
|
18
|
+
`retracted_at` integer,
|
|
19
|
+
`retraction_reason` text,
|
|
20
|
+
CONSTRAINT `hv_memories_pk` PRIMARY KEY(`agent_id`, `number`),
|
|
21
|
+
CONSTRAINT `fk_hv_memories_agent_id_hv_agents_id_fk` FOREIGN KEY (`agent_id`) REFERENCES `hv_agents`(`id`) ON DELETE CASCADE,
|
|
22
|
+
CONSTRAINT `fk_hv_memories_agent_id_producer_subagent_id_hv_subagents_agent_id_id_fk` FOREIGN KEY (`agent_id`,`producer_subagent_id`) REFERENCES `hv_subagents`(`agent_id`,`id`),
|
|
23
|
+
CONSTRAINT `fk_hv_memories_agent_id_source_run_id_producer_subagent_id_hv_subagent_runs_agent_id_id_subagent_id_fk` FOREIGN KEY (`agent_id`,`source_run_id`,`producer_subagent_id`) REFERENCES `hv_subagent_runs`(`agent_id`,`id`,`subagent_id`),
|
|
24
|
+
CONSTRAINT "hv_memory_number_positive" CHECK("number" BETWEEN 1 AND 9007199254740990),
|
|
25
|
+
CONSTRAINT "hv_memory_kind" CHECK("kind" IN ('research','decision','review')),
|
|
26
|
+
CONSTRAINT "hv_memory_text_bounds" CHECK(length("summary") BETWEEN 1 AND 500 AND length("content") BETWEEN 1 AND 16000 AND length(CAST("payload" AS BLOB)) <= 16384 AND json_valid("payload")),
|
|
27
|
+
CONSTRAINT "hv_memory_research_deadline" CHECK("kind" != 'research' OR ("evidence_as_of" IS NOT NULL AND "valid_until" IS NOT NULL AND "valid_until" > "evidence_as_of" AND "instrument" IS NOT NULL AND "interval" IS NOT NULL)),
|
|
28
|
+
CONSTRAINT "hv_memory_run_producer" CHECK("source_run_id" IS NULL OR "producer_subagent_id" IS NOT NULL),
|
|
29
|
+
CONSTRAINT "hv_memory_retraction" CHECK(("retracted_at" IS NULL) = ("retraction_reason" IS NULL))
|
|
30
|
+
);
|
|
31
|
+
--> statement-breakpoint
|
|
32
|
+
CREATE TABLE `hv_memory_artifacts` (
|
|
33
|
+
`agent_id` text NOT NULL,
|
|
34
|
+
`memory_number` integer NOT NULL,
|
|
35
|
+
`artifact_id` text NOT NULL,
|
|
36
|
+
CONSTRAINT `hv_memory_artifacts_pk` PRIMARY KEY(`agent_id`, `memory_number`, `artifact_id`),
|
|
37
|
+
CONSTRAINT `fk_hv_memory_artifacts_agent_id_memory_number_hv_memories_agent_id_number_fk` FOREIGN KEY (`agent_id`,`memory_number`) REFERENCES `hv_memories`(`agent_id`,`number`) ON DELETE CASCADE,
|
|
38
|
+
CONSTRAINT `fk_hv_memory_artifacts_agent_id_artifact_id_hv_artifacts_agent_id_id_fk` FOREIGN KEY (`agent_id`,`artifact_id`) REFERENCES `hv_artifacts`(`agent_id`,`id`)
|
|
39
|
+
);
|
|
40
|
+
--> statement-breakpoint
|
|
41
|
+
CREATE TABLE `hv_memory_counters` (
|
|
42
|
+
`agent_id` text PRIMARY KEY,
|
|
43
|
+
`next_number` integer DEFAULT 1 NOT NULL,
|
|
44
|
+
CONSTRAINT `fk_hv_memory_counters_agent_id_hv_agents_id_fk` FOREIGN KEY (`agent_id`) REFERENCES `hv_agents`(`id`) ON DELETE CASCADE,
|
|
45
|
+
CONSTRAINT "hv_memory_counter_positive" CHECK("next_number" BETWEEN 1 AND 9007199254740991)
|
|
46
|
+
);
|
|
47
|
+
--> statement-breakpoint
|
|
48
|
+
CREATE TABLE `hv_memory_links` (
|
|
49
|
+
`agent_id` text NOT NULL,
|
|
50
|
+
`source_number` integer NOT NULL,
|
|
51
|
+
`target_number` integer NOT NULL,
|
|
52
|
+
`relation` text NOT NULL,
|
|
53
|
+
CONSTRAINT `hv_memory_links_pk` PRIMARY KEY(`agent_id`, `source_number`, `target_number`, `relation`),
|
|
54
|
+
CONSTRAINT `fk_hv_memory_links_agent_id_source_number_hv_memories_agent_id_number_fk` FOREIGN KEY (`agent_id`,`source_number`) REFERENCES `hv_memories`(`agent_id`,`number`) ON DELETE CASCADE,
|
|
55
|
+
CONSTRAINT `fk_hv_memory_links_agent_id_target_number_hv_memories_agent_id_number_fk` FOREIGN KEY (`agent_id`,`target_number`) REFERENCES `hv_memories`(`agent_id`,`number`),
|
|
56
|
+
CONSTRAINT "hv_memory_link_backward" CHECK("target_number" < "source_number"),
|
|
57
|
+
CONSTRAINT "hv_memory_link_relation" CHECK("relation" IN ('based_on','corrects','supersedes','reviews'))
|
|
58
|
+
);
|
|
59
|
+
--> statement-breakpoint
|
|
60
|
+
CREATE TABLE `hv_memory_operations` (
|
|
61
|
+
`agent_id` text NOT NULL,
|
|
62
|
+
`operation_key` text NOT NULL,
|
|
63
|
+
`operation_kind` text NOT NULL,
|
|
64
|
+
`request_hash` text NOT NULL,
|
|
65
|
+
`result` text NOT NULL,
|
|
66
|
+
`created_at` integer NOT NULL,
|
|
67
|
+
CONSTRAINT `hv_memory_operations_pk` PRIMARY KEY(`agent_id`, `operation_key`),
|
|
68
|
+
CONSTRAINT `fk_hv_memory_operations_agent_id_hv_agents_id_fk` FOREIGN KEY (`agent_id`) REFERENCES `hv_agents`(`id`) ON DELETE CASCADE
|
|
69
|
+
);
|
|
70
|
+
--> statement-breakpoint
|
|
71
|
+
CREATE TABLE `hv_insight_revision_memories` (
|
|
72
|
+
`agent_id` text NOT NULL,
|
|
73
|
+
`set_id` text NOT NULL,
|
|
74
|
+
`version` integer NOT NULL,
|
|
75
|
+
`memory_number` integer NOT NULL,
|
|
76
|
+
CONSTRAINT `hv_insight_revision_memories_pk` PRIMARY KEY(`agent_id`, `set_id`, `version`, `memory_number`),
|
|
77
|
+
CONSTRAINT `fk_hv_insight_revision_memories_agent_id_set_id_version_hv_insight_revisions_agent_id_set_id_version_fk` FOREIGN KEY (`agent_id`,`set_id`,`version`) REFERENCES `hv_insight_revisions`(`agent_id`,`set_id`,`version`) ON DELETE CASCADE,
|
|
78
|
+
CONSTRAINT `fk_hv_insight_revision_memories_agent_id_memory_number_hv_memories_agent_id_number_fk` FOREIGN KEY (`agent_id`,`memory_number`) REFERENCES `hv_memories`(`agent_id`,`number`)
|
|
79
|
+
);
|
|
80
|
+
--> statement-breakpoint
|
|
81
|
+
CREATE TABLE `hv_insight_revisions` (
|
|
82
|
+
`agent_id` text NOT NULL,
|
|
83
|
+
`set_id` text NOT NULL,
|
|
84
|
+
`version` integer NOT NULL,
|
|
85
|
+
`content` text NOT NULL,
|
|
86
|
+
`operation` text NOT NULL,
|
|
87
|
+
`reason` text NOT NULL,
|
|
88
|
+
`created_at` integer NOT NULL,
|
|
89
|
+
`actor_user_id` text,
|
|
90
|
+
`producer_subagent_id` text,
|
|
91
|
+
`source_run_id` text,
|
|
92
|
+
`conversation_id` integer,
|
|
93
|
+
`tool_task_id` integer,
|
|
94
|
+
CONSTRAINT `hv_insight_revisions_pk` PRIMARY KEY(`set_id`, `version`),
|
|
95
|
+
CONSTRAINT `fk_hv_insight_revisions_agent_id_set_id_hv_insight_sets_agent_id_id_fk` FOREIGN KEY (`agent_id`,`set_id`) REFERENCES `hv_insight_sets`(`agent_id`,`id`) ON DELETE CASCADE,
|
|
96
|
+
CONSTRAINT `fk_hv_insight_revisions_agent_id_producer_subagent_id_hv_subagents_agent_id_id_fk` FOREIGN KEY (`agent_id`,`producer_subagent_id`) REFERENCES `hv_subagents`(`agent_id`,`id`),
|
|
97
|
+
CONSTRAINT `fk_hv_insight_revisions_agent_id_source_run_id_producer_subagent_id_hv_subagent_runs_agent_id_id_subagent_id_fk` FOREIGN KEY (`agent_id`,`source_run_id`,`producer_subagent_id`) REFERENCES `hv_subagent_runs`(`agent_id`,`id`,`subagent_id`),
|
|
98
|
+
CONSTRAINT "hv_insight_revision_version" CHECK("version" BETWEEN 1 AND 9007199254740990),
|
|
99
|
+
CONSTRAINT "hv_insight_content_bound" CHECK(length("content") <= 8000),
|
|
100
|
+
CONSTRAINT "hv_insight_operation" CHECK("operation" IN ('append','replace')),
|
|
101
|
+
CONSTRAINT "hv_insight_revision_actor" CHECK(("actor_user_id" IS NOT NULL AND "source_run_id" IS NULL) OR ("actor_user_id" IS NULL AND "producer_subagent_id" IS NOT NULL))
|
|
102
|
+
);
|
|
103
|
+
--> statement-breakpoint
|
|
104
|
+
CREATE TABLE `hv_insight_sets` (
|
|
105
|
+
`id` text PRIMARY KEY,
|
|
106
|
+
`agent_id` text NOT NULL,
|
|
107
|
+
`scope_kind` text NOT NULL,
|
|
108
|
+
`subagent_id` text,
|
|
109
|
+
`current_version` integer DEFAULT 0 NOT NULL,
|
|
110
|
+
`updated_at` integer NOT NULL,
|
|
111
|
+
CONSTRAINT `fk_hv_insight_sets_agent_id_hv_agents_id_fk` FOREIGN KEY (`agent_id`) REFERENCES `hv_agents`(`id`) ON DELETE CASCADE,
|
|
112
|
+
CONSTRAINT `fk_hv_insight_sets_agent_id_subagent_id_hv_subagents_agent_id_id_fk` FOREIGN KEY (`agent_id`,`subagent_id`) REFERENCES `hv_subagents`(`agent_id`,`id`),
|
|
113
|
+
CONSTRAINT "hv_insight_scope" CHECK(("scope_kind" = 'agent' AND "subagent_id" IS NULL) OR ("scope_kind" = 'worker' AND "subagent_id" IS NOT NULL)),
|
|
114
|
+
CONSTRAINT "hv_insight_head" CHECK("current_version" BETWEEN 0 AND 9007199254740990)
|
|
115
|
+
);
|
|
116
|
+
--> statement-breakpoint
|
|
117
|
+
CREATE TABLE `hv_subagent_run_contexts` (
|
|
118
|
+
`agent_id` text NOT NULL,
|
|
119
|
+
`run_id` text PRIMARY KEY,
|
|
120
|
+
`context` text NOT NULL,
|
|
121
|
+
CONSTRAINT `fk_hv_subagent_run_contexts_agent_id_run_id_hv_subagent_runs_agent_id_id_fk` FOREIGN KEY (`agent_id`,`run_id`) REFERENCES `hv_subagent_runs`(`agent_id`,`id`) ON DELETE CASCADE,
|
|
122
|
+
CONSTRAINT "hv_run_context_bound" CHECK(length("context") <= 120000)
|
|
123
|
+
);
|
|
124
|
+
--> statement-breakpoint
|
|
125
|
+
CREATE TABLE `hv_risk_settings` (
|
|
126
|
+
`agent_id` text PRIMARY KEY,
|
|
127
|
+
`trading_enabled` integer DEFAULT false NOT NULL,
|
|
128
|
+
`allowed_instruments` text,
|
|
129
|
+
`max_order_notional` text,
|
|
130
|
+
`max_total_notional` text,
|
|
131
|
+
`updated_at` integer NOT NULL,
|
|
132
|
+
CONSTRAINT `fk_hv_risk_settings_agent_id_hv_agents_id_fk` FOREIGN KEY (`agent_id`) REFERENCES `hv_agents`(`id`) ON DELETE CASCADE,
|
|
133
|
+
CONSTRAINT "hv_risk_instruments_bound" CHECK(length(coalesce("allowed_instruments", '[]')) <= 4000 AND json_valid(coalesce("allowed_instruments", '[]')))
|
|
134
|
+
);
|
|
135
|
+
--> statement-breakpoint
|
|
136
|
+
ALTER TABLE `hv_subagents` ADD `template_origin` text;--> statement-breakpoint
|
|
137
|
+
CREATE UNIQUE INDEX `hv_order_request_identity` ON `hv_order_requests` (`agent_id`,`id`);--> statement-breakpoint
|
|
138
|
+
CREATE UNIQUE INDEX `hv_subagent_runs_producer_idx` ON `hv_subagent_runs` (`agent_id`,`id`,`subagent_id`);--> statement-breakpoint
|
|
139
|
+
CREATE UNIQUE INDEX `hv_subagent_runs_identity_idx` ON `hv_subagent_runs` (`agent_id`,`id`);--> statement-breakpoint
|
|
140
|
+
CREATE UNIQUE INDEX `hv_subagents_identity_idx` ON `hv_subagents` (`agent_id`,`id`);--> statement-breakpoint
|
|
141
|
+
CREATE UNIQUE INDEX `hv_artifacts_identity_idx` ON `hv_artifacts` (`agent_id`,`id`);--> statement-breakpoint
|
|
142
|
+
CREATE INDEX `hv_memories_history_idx` ON `hv_memories` (`agent_id`,`created_at`,`number`);--> statement-breakpoint
|
|
143
|
+
CREATE INDEX `hv_memories_stream_idx` ON `hv_memories` (`agent_id`,`kind`,`instrument`,`topic`,`interval`,`producer_subagent_id`,`number`);--> statement-breakpoint
|
|
144
|
+
CREATE INDEX `hv_memories_run_idx` ON `hv_memories` (`agent_id`,`source_run_id`);--> statement-breakpoint
|
|
145
|
+
CREATE INDEX `hv_memory_artifacts_evidence_idx` ON `hv_memory_artifacts` (`agent_id`,`artifact_id`);--> statement-breakpoint
|
|
146
|
+
CREATE UNIQUE INDEX `hv_insight_revision_identity_idx` ON `hv_insight_revisions` (`agent_id`,`set_id`,`version`);--> statement-breakpoint
|
|
147
|
+
CREATE UNIQUE INDEX `hv_insight_sets_identity_idx` ON `hv_insight_sets` (`agent_id`,`id`);--> statement-breakpoint
|
|
148
|
+
CREATE UNIQUE INDEX `hv_insight_sets_agent_idx` ON `hv_insight_sets` (`agent_id`) WHERE "hv_insight_sets"."scope_kind" = 'agent';--> statement-breakpoint
|
|
149
|
+
CREATE UNIQUE INDEX `hv_insight_sets_worker_idx` ON `hv_insight_sets` (`agent_id`,`subagent_id`) WHERE "hv_insight_sets"."scope_kind" = 'worker';--> statement-breakpoint
|
|
150
|
+
CREATE TABLE `hv_order_request_provenance` (
|
|
151
|
+
`request_id` text PRIMARY KEY,
|
|
152
|
+
`agent_id` text NOT NULL,
|
|
153
|
+
`producer_subagent_id` text NOT NULL,
|
|
154
|
+
`source_run_id` text,
|
|
155
|
+
`conversation_id` integer NOT NULL,
|
|
156
|
+
`tool_task_id` integer NOT NULL,
|
|
157
|
+
CONSTRAINT `fk_hv_order_request_provenance_agent_id_request_id_hv_order_requests_agent_id_id_fk` FOREIGN KEY (`agent_id`,`request_id`) REFERENCES `hv_order_requests`(`agent_id`,`id`) ON DELETE CASCADE,
|
|
158
|
+
CONSTRAINT `fk_hv_order_request_provenance_agent_id_producer_subagent_id_hv_subagents_agent_id_id_fk` FOREIGN KEY (`agent_id`,`producer_subagent_id`) REFERENCES `hv_subagents`(`agent_id`,`id`),
|
|
159
|
+
CONSTRAINT `fk_hv_order_request_provenance_agent_id_source_run_id_producer_subagent_id_hv_subagent_runs_agent_id_id_subagent_id_fk` FOREIGN KEY (`agent_id`,`source_run_id`,`producer_subagent_id`) REFERENCES `hv_subagent_runs`(`agent_id`,`id`,`subagent_id`)
|
|
160
|
+
);
|
|
161
|
+
--> statement-breakpoint
|
|
162
|
+
CREATE INDEX `hv_order_provenance_run_idx` ON `hv_order_request_provenance` (`agent_id`,`source_run_id`);
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
ALTER TABLE `hv_subagents` ADD `triggers` text DEFAULT '{"inboxEnabled":false,"workerDelegates":[],"researchSources":[],"fills":false,"orderChanges":false}' NOT NULL;
|
|
2
|
+
--> statement-breakpoint
|
|
3
|
+
CREATE TABLE `hv_worker_requests` (
|
|
4
|
+
`id` text PRIMARY KEY,
|
|
5
|
+
`agent_id` text NOT NULL REFERENCES `hv_agents` (`id`) ON DELETE CASCADE,
|
|
6
|
+
`subagent_id` text NOT NULL,
|
|
7
|
+
`event_key` text NOT NULL,
|
|
8
|
+
`payload` text NOT NULL,
|
|
9
|
+
`created_at` integer NOT NULL,
|
|
10
|
+
`run_id` text,
|
|
11
|
+
`discarded_reason` text,
|
|
12
|
+
FOREIGN KEY (`agent_id`, `subagent_id`) REFERENCES `hv_subagents` (`agent_id`, `id`),
|
|
13
|
+
FOREIGN KEY (`agent_id`, `run_id`, `subagent_id`) REFERENCES `hv_subagent_runs` (`agent_id`, `id`, `subagent_id`)
|
|
14
|
+
);
|
|
15
|
+
--> statement-breakpoint
|
|
16
|
+
CREATE UNIQUE INDEX `hv_worker_requests_event_idx` ON `hv_worker_requests` (`agent_id`, `subagent_id`, `event_key`);
|
|
17
|
+
--> statement-breakpoint
|
|
18
|
+
CREATE INDEX `hv_worker_requests_pending_idx` ON `hv_worker_requests` (`subagent_id`, `created_at`) WHERE `run_id` IS NULL AND `discarded_reason` IS NULL;
|
|
19
|
+
|
|
20
|
+
--> statement-breakpoint
|
|
21
|
+
CREATE TABLE hv_worker_subscriptions (
|
|
22
|
+
subagent_id text NOT NULL REFERENCES hv_subagents(id) ON DELETE CASCADE,
|
|
23
|
+
event_type text NOT NULL,
|
|
24
|
+
source_id text NOT NULL,
|
|
25
|
+
activated_at integer NOT NULL,
|
|
26
|
+
PRIMARY KEY (subagent_id, event_type, source_id)
|
|
27
|
+
);
|
|
28
|
+
--> statement-breakpoint
|
|
29
|
+
CREATE VIEW hv_enabled_worker_subscriptions AS
|
|
30
|
+
SELECT s.id AS subagent_id, 'research' AS event_type, j.value AS source_id, s.updated_at AS activated_at
|
|
31
|
+
FROM hv_subagents s, json_each(s.triggers, '$.researchSources') j
|
|
32
|
+
WHERE s.enabled=1 AND s.archived=0 AND json_extract(s.triggers,'$.inboxEnabled')=1
|
|
33
|
+
UNION ALL
|
|
34
|
+
SELECT id, 'fill', '', updated_at FROM hv_subagents
|
|
35
|
+
WHERE enabled=1 AND archived=0 AND json_extract(triggers,'$.inboxEnabled')=1 AND json_extract(triggers,'$.fills')=1
|
|
36
|
+
UNION ALL
|
|
37
|
+
SELECT id, 'order_status', '', updated_at FROM hv_subagents
|
|
38
|
+
WHERE enabled=1 AND archived=0 AND json_extract(triggers,'$.inboxEnabled')=1 AND json_extract(triggers,'$.orderChanges')=1;
|
|
39
|
+
--> statement-breakpoint
|
|
40
|
+
INSERT INTO hv_worker_subscriptions SELECT * FROM hv_enabled_worker_subscriptions;
|
|
41
|
+
--> statement-breakpoint
|
|
42
|
+
CREATE TRIGGER hv_worker_subscriptions_insert AFTER INSERT ON hv_subagents BEGIN
|
|
43
|
+
INSERT INTO hv_worker_subscriptions SELECT * FROM hv_enabled_worker_subscriptions WHERE subagent_id=NEW.id;
|
|
44
|
+
END;
|
|
45
|
+
--> statement-breakpoint
|
|
46
|
+
CREATE TRIGGER hv_worker_subscriptions_update AFTER UPDATE OF triggers, enabled, archived ON hv_subagents BEGIN
|
|
47
|
+
DELETE FROM hv_worker_subscriptions WHERE subagent_id=NEW.id AND NOT EXISTS (
|
|
48
|
+
SELECT 1 FROM hv_enabled_worker_subscriptions v WHERE v.subagent_id=NEW.id
|
|
49
|
+
AND v.event_type=hv_worker_subscriptions.event_type AND v.source_id=hv_worker_subscriptions.source_id
|
|
50
|
+
);
|
|
51
|
+
INSERT INTO hv_worker_subscriptions SELECT * FROM hv_enabled_worker_subscriptions WHERE subagent_id=NEW.id
|
|
52
|
+
AND NOT EXISTS (SELECT 1 FROM hv_worker_subscriptions old WHERE old.subagent_id=NEW.id
|
|
53
|
+
AND old.event_type=hv_enabled_worker_subscriptions.event_type AND old.source_id=hv_enabled_worker_subscriptions.source_id);
|
|
54
|
+
END;
|