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.
- package/.build/client/assets/_authenticated-C87LKvH0.js +1 -0
- package/.build/client/assets/_authenticated.account-D-nTh_fC.js +1 -0
- package/.build/client/assets/_authenticated.agents-HwcveLyB.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId-DuE8Lv62.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.chart-Bb_XkvQx.js +4 -0
- package/.build/client/assets/_authenticated.agents._agentId.chat-ClMMKw_N.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.index-DNJwBwn9.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.indicators-BmVjLtRI.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.indicators_._indicatorId-CMqaaFQf.js +2 -0
- package/.build/client/assets/_authenticated.agents._agentId.indicators_._indicatorId-DtgkoNV5.js +6 -0
- package/.build/client/assets/_authenticated.agents._agentId.memories-O-4f6a4G.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.memories_._memoryRef-BUPtUcj3.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.notifications-2lyhXCSk.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.notifications_._notificationId-Da3ZVT4v.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.settings-C5cWHoYw.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.sub-agents-HwcveLyB.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.sub-agents._subagentId-CZ4MeRy4.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.sub-agents._subagentId_.runs._runId-dVbo5kMU.js +3 -0
- package/.build/client/assets/_authenticated.agents._agentId.sub-agents.index-DeWTOYJD.js +1 -0
- package/.build/client/assets/_authenticated.agents._agentId.sub-agents.new-D02TflCE.js +37 -0
- package/.build/client/assets/_authenticated.agents._agentId.transactions-D3a8Glgj.js +1 -0
- package/.build/client/assets/_authenticated.agents.index-CEqeDEgP.js +1 -0
- package/.build/client/assets/_authenticated.agents.new-DLRWK5Uk.js +1 -0
- package/.build/client/assets/_authenticated.providers-D0iPLXra.js +1 -0
- package/.build/client/assets/agent-chat-page-C5eYFgxw.js +1 -0
- package/.build/client/assets/agent-enablement-control-CUzOp9ce.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-DjmsvbUC.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-B4hvjMmI.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-DrF53EQG.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-Baw5u9sk.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-Hkr5TH_I.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 +145 -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 +1004 -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 +99 -0
- package/dist/agents/subagent-dashboard.js +1 -0
- package/dist/agents/subagent-extension.js +156 -0
- package/dist/agents/subagent-history.js +5 -0
- package/dist/agents/subagent-input.js +73 -0
- package/dist/agents/subagent-service.js +1177 -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/time-guidance.js +29 -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 +79 -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 +37 -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 +93 -3
- 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,107 @@
|
|
|
1
|
+
import { a as getRequestHeaders, t as createServerFn } from "../server.js";
|
|
2
|
+
import { n as agentUser, t as agentOperation, u as field } from "./agents-CZq-0mna.js";
|
|
3
|
+
import { o as AgentError } from "./errors-DaZqUftX.js";
|
|
4
|
+
import { t as createServerRpc } from "./createServerRpc-DNqhdU4z.js";
|
|
5
|
+
//#region src/memory/decision-audit.ts
|
|
6
|
+
var fillColumns = "f.id,f.time,CAST(json_extract(f.data,'$.raw.oid') AS TEXT) AS oid,json_extract(f.data,'$.raw.cloid') AS cloid";
|
|
7
|
+
async function account(tx, agentId) {
|
|
8
|
+
const agent = await tx.get("SELECT trading_account_address AS account FROM hv_agents WHERE id=?", agentId);
|
|
9
|
+
if (!agent?.account) throw new AgentError("Agent has no assigned trading account", 409);
|
|
10
|
+
return agent.account.toLowerCase();
|
|
11
|
+
}
|
|
12
|
+
async function attributeFills(tx, agentId, owner, rows) {
|
|
13
|
+
const results = [];
|
|
14
|
+
for (const row of rows) {
|
|
15
|
+
const cloid = row.cloid && /^0x[0-9a-fA-F]{32}$/.test(row.cloid) ? row.cloid : null;
|
|
16
|
+
const oid = row.oid && /^[1-9][0-9]{0,15}$/.test(row.oid) && Number.isSafeInteger(Number(row.oid)) ? row.oid : null;
|
|
17
|
+
const local = cloid || oid ? await tx.get("SELECT r.id,r.request_key, CASE WHEN m.number IS NOT NULL THEN 'm'||m.number ELSE NULL END AS decision_ref FROM hv_order_items i JOIN hv_order_actions a ON a.id=i.action_id JOIN hv_order_requests r ON r.id=a.request_id LEFT JOIN hv_memories m ON m.agent_id=r.agent_id AND 'm'||m.number=json_extract(r.input,'$.decision_ref') AND m.kind='decision' WHERE r.agent_id=? AND r.account=? AND r.kind IN ('submit','close_position') AND ((? IS NOT NULL AND i.cloid=?) OR (? IS NOT NULL AND i.oid=?)) ORDER BY CASE WHEN i.cloid=? THEN 0 ELSE 1 END,r.created_at DESC,r.id DESC LIMIT 1", agentId, owner, cloid, cloid, oid, oid, cloid) : null;
|
|
18
|
+
const origin = local ? await tx.get("SELECT producer_subagent_id AS producerSubagentId,source_run_id AS sourceRunId,conversation_id AS conversationId,tool_task_id AS toolTaskId FROM hv_order_request_provenance WHERE agent_id=? AND request_id=?", agentId, local.id) : null;
|
|
19
|
+
results.push({
|
|
20
|
+
fillId: row.id,
|
|
21
|
+
time: row.time,
|
|
22
|
+
exchangeOid: oid,
|
|
23
|
+
requestId: local?.request_key ?? null,
|
|
24
|
+
decisionRef: local?.decision_ref ?? null,
|
|
25
|
+
origin: origin ?? null
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return results;
|
|
29
|
+
}
|
|
30
|
+
var coverage = "Local order matches only, Agent/account-scoped. Decision refs are optional model-authored audit links, not verified approval. External/unmatched fills remain unattributed, not evidence of absent rationale.";
|
|
31
|
+
async function journalDecisionAudit(db, agentId, targetId) {
|
|
32
|
+
if (!targetId || targetId.length > 128) throw new AgentError("Invalid journal target");
|
|
33
|
+
return db.transaction(async (tx) => {
|
|
34
|
+
const owner = await account(tx, agentId);
|
|
35
|
+
const target = await tx.get("SELECT kind FROM hv_journal_entries WHERE account=? AND id=?", owner, targetId);
|
|
36
|
+
if (!target) throw new AgentError("Journal target not found in this Agent", 404);
|
|
37
|
+
const rows = target.kind === "fill" ? await tx.all(`SELECT ${fillColumns} FROM hv_journal_entries f WHERE f.account=? AND f.id=?`, owner, targetId) : target.kind === "trade" ? await tx.all(`SELECT DISTINCT ${fillColumns} FROM hv_journal_entries t JOIN json_each(t.data,'$.parts') p JOIN hv_journal_entries f ON f.account=t.account AND f.id=json_extract(p.value,'$.eventId') AND f.kind='fill' WHERE t.account=? AND t.id=? ORDER BY f.time,f.id LIMIT 51`, owner, targetId) : [];
|
|
38
|
+
return {
|
|
39
|
+
items: await attributeFills(tx, agentId, owner, rows.slice(0, 50)),
|
|
40
|
+
truncated: rows.length > 50,
|
|
41
|
+
coverage
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
//#endregion
|
|
46
|
+
//#region src/web/journal.ts?tss-serverfn-split
|
|
47
|
+
var getAgentJournal_createServerFn_handler = createServerRpc({
|
|
48
|
+
id: "8160cd2263d55a4b3c248001f0699c1e496ef7a9091cae95bac2a5f5b35b8060",
|
|
49
|
+
name: "getAgentJournal",
|
|
50
|
+
filename: "src/web/journal.ts"
|
|
51
|
+
}, (opts) => getAgentJournal.__executeServer(opts));
|
|
52
|
+
var getAgentJournal = createServerFn({ method: "GET" }).validator((data) => {
|
|
53
|
+
const view = field(data, "view");
|
|
54
|
+
const page = field(data, "page");
|
|
55
|
+
if (view !== "trades" && view !== "activity") throw new Error("Invalid journal view");
|
|
56
|
+
if (!/^\d{1,8}$/.test(page) || Number(page) < 1) throw new Error("Invalid journal page");
|
|
57
|
+
return {
|
|
58
|
+
id: field(data, "id"),
|
|
59
|
+
view,
|
|
60
|
+
page: Number(page)
|
|
61
|
+
};
|
|
62
|
+
}).handler(getAgentJournal_createServerFn_handler, async ({ context, data }) => {
|
|
63
|
+
const user = await agentUser(context.runtime, getRequestHeaders());
|
|
64
|
+
return agentOperation(() => context.runtime.hyperliquid.agentJournal(user.id, data.id, data.view, data.page));
|
|
65
|
+
});
|
|
66
|
+
var getJournalAudit_createServerFn_handler = createServerRpc({
|
|
67
|
+
id: "a731d205cb72c5414e4f5e757e865426587d9ceaef6556450fe6b4a643bcf78a",
|
|
68
|
+
name: "getJournalAudit",
|
|
69
|
+
filename: "src/web/journal.ts"
|
|
70
|
+
}, (opts) => getJournalAudit.__executeServer(opts));
|
|
71
|
+
var getJournalAudit = createServerFn({ method: "GET" }).validator((data) => ({
|
|
72
|
+
id: field(data, "id"),
|
|
73
|
+
target: field(data, "target")
|
|
74
|
+
})).handler(getJournalAudit_createServerFn_handler, async ({ context, data }) => {
|
|
75
|
+
const user = await agentUser(context.runtime, getRequestHeaders());
|
|
76
|
+
return agentOperation(async () => {
|
|
77
|
+
await context.runtime.agents.owned(user.id, data.id);
|
|
78
|
+
return journalDecisionAudit(context.runtime.database, data.id, data.target);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
var getJournalNotes_createServerFn_handler = createServerRpc({
|
|
82
|
+
id: "037e623730932ce36fcc50d03a5792043a387312b55d89ea698ed1b051ddc2cf",
|
|
83
|
+
name: "getJournalNotes",
|
|
84
|
+
filename: "src/web/journal.ts"
|
|
85
|
+
}, (opts) => getJournalNotes.__executeServer(opts));
|
|
86
|
+
var getJournalNotes = createServerFn({ method: "GET" }).validator((data) => ({
|
|
87
|
+
id: field(data, "id"),
|
|
88
|
+
target: field(data, "target")
|
|
89
|
+
})).handler(getJournalNotes_createServerFn_handler, async ({ context, data }) => {
|
|
90
|
+
const user = await agentUser(context.runtime, getRequestHeaders());
|
|
91
|
+
return agentOperation(() => context.runtime.hyperliquid.journalNotes(user.id, data.id, data.target));
|
|
92
|
+
});
|
|
93
|
+
var addJournalNote_createServerFn_handler = createServerRpc({
|
|
94
|
+
id: "7653f358d5887931aea28eed3fa0f95a74e4fa66937f97be90f36f3d42b01088",
|
|
95
|
+
name: "addJournalNote",
|
|
96
|
+
filename: "src/web/journal.ts"
|
|
97
|
+
}, (opts) => addJournalNote.__executeServer(opts));
|
|
98
|
+
var addJournalNote = createServerFn({ method: "POST" }).validator((data) => ({
|
|
99
|
+
id: field(data, "id"),
|
|
100
|
+
target: field(data, "target"),
|
|
101
|
+
body: field(data, "body")
|
|
102
|
+
})).handler(addJournalNote_createServerFn_handler, async ({ context, data }) => {
|
|
103
|
+
const user = await agentUser(context.runtime, getRequestHeaders(), true);
|
|
104
|
+
return agentOperation(() => context.runtime.hyperliquid.addJournalNote(user.id, data.id, data.target, data.body));
|
|
105
|
+
});
|
|
106
|
+
//#endregion
|
|
107
|
+
export { addJournalNote_createServerFn_handler, getAgentJournal_createServerFn_handler, getJournalAudit_createServerFn_handler, getJournalNotes_createServerFn_handler };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
var amount = class Amount {
|
|
2
|
+
units;
|
|
3
|
+
scale;
|
|
4
|
+
constructor(units, scale) {
|
|
5
|
+
this.units = units;
|
|
6
|
+
this.scale = scale;
|
|
7
|
+
}
|
|
8
|
+
static from(value) {
|
|
9
|
+
if (value.length > 200 || !/^-?\d+(?:\.\d+)?$/.test(value)) throw new Error("Invalid journal decimal");
|
|
10
|
+
const [whole, fraction = ""] = value.split(".");
|
|
11
|
+
return new Amount(BigInt(`${whole}${fraction}`), fraction.length);
|
|
12
|
+
}
|
|
13
|
+
align(other) {
|
|
14
|
+
const scale = Math.max(this.scale, other.scale);
|
|
15
|
+
return {
|
|
16
|
+
a: this.units * 10n ** BigInt(scale - this.scale),
|
|
17
|
+
b: other.units * 10n ** BigInt(scale - other.scale),
|
|
18
|
+
scale
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
add(other) {
|
|
22
|
+
const { a, b, scale } = this.align(other);
|
|
23
|
+
return new Amount(a + b, scale);
|
|
24
|
+
}
|
|
25
|
+
sub(other) {
|
|
26
|
+
return this.add(other.neg());
|
|
27
|
+
}
|
|
28
|
+
neg() {
|
|
29
|
+
return new Amount(-this.units, this.scale);
|
|
30
|
+
}
|
|
31
|
+
abs() {
|
|
32
|
+
return this.units < 0n ? this.neg() : this;
|
|
33
|
+
}
|
|
34
|
+
mul(other) {
|
|
35
|
+
return new Amount(this.units * other.units, this.scale + other.scale);
|
|
36
|
+
}
|
|
37
|
+
div(other) {
|
|
38
|
+
if (other.units === 0n) throw new Error("Division by zero");
|
|
39
|
+
const numerator = this.units * 10n ** BigInt(other.scale + 28);
|
|
40
|
+
const denominator = other.units * 10n ** BigInt(this.scale);
|
|
41
|
+
const negative = numerator < 0n !== denominator < 0n;
|
|
42
|
+
const n = numerator < 0n ? -numerator : numerator;
|
|
43
|
+
const d = denominator < 0n ? -denominator : denominator;
|
|
44
|
+
let result = n / d;
|
|
45
|
+
const remainder = n % d;
|
|
46
|
+
if (remainder * 2n > d || remainder * 2n === d && result % 2n !== 0n) result++;
|
|
47
|
+
return new Amount(negative ? -result : result, 28);
|
|
48
|
+
}
|
|
49
|
+
cmp(other) {
|
|
50
|
+
const { a, b } = this.align(other);
|
|
51
|
+
return a < b ? -1 : a > b ? 1 : 0;
|
|
52
|
+
}
|
|
53
|
+
get zero() {
|
|
54
|
+
return this.units === 0n;
|
|
55
|
+
}
|
|
56
|
+
get sign() {
|
|
57
|
+
return this.units < 0n ? -1 : this.units > 0n ? 1 : 0;
|
|
58
|
+
}
|
|
59
|
+
toString() {
|
|
60
|
+
const raw = (this.units < 0n ? -this.units : this.units).toString().padStart(this.scale + 1, "0");
|
|
61
|
+
const body = this.scale ? `${raw.slice(0, -this.scale)}.${raw.slice(-this.scale)}`.replace(/\.?0+$/, "") : raw;
|
|
62
|
+
return `${this.units < 0n ? "-" : ""}${body}`;
|
|
63
|
+
}
|
|
64
|
+
}.from;
|
|
65
|
+
//#endregion
|
|
66
|
+
export { amount as t };
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { n as loginDestinationQueryOptions } from "./provider-queries-BaZWLw8J.js";
|
|
2
|
+
import { t as authClient } from "./auth-client-Vb3O0v7P.js";
|
|
3
|
+
import { useRef, useState } from "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { useQueryClient } from "@tanstack/react-query";
|
|
6
|
+
import { createWalletClient, custom, getAddress, isAddress } from "viem";
|
|
7
|
+
import { createSiweMessage } from "viem/siwe";
|
|
8
|
+
//#region src/web/wallet-login.ts
|
|
9
|
+
async function walletLogin({ provider, origin, nonce, verify, onStatus }) {
|
|
10
|
+
if (!provider) throw new Error("No Ethereum wallet found. Open this page in a browser with a wallet extension.");
|
|
11
|
+
const wallet = createWalletClient({ transport: custom(provider) });
|
|
12
|
+
onStatus("Connecting wallet…");
|
|
13
|
+
const [selected] = await wallet.requestAddresses();
|
|
14
|
+
if (!selected || !isAddress(selected)) throw new Error("No Ethereum wallet account selected.");
|
|
15
|
+
const address = getAddress(selected);
|
|
16
|
+
onStatus("Preparing sign-in…");
|
|
17
|
+
const challenge = await nonce();
|
|
18
|
+
const issuedAt = /* @__PURE__ */ new Date();
|
|
19
|
+
const url = new URL(origin);
|
|
20
|
+
const message = createSiweMessage({
|
|
21
|
+
address,
|
|
22
|
+
chainId: 1,
|
|
23
|
+
domain: url.host,
|
|
24
|
+
uri: `${url.origin}/login`,
|
|
25
|
+
version: "1",
|
|
26
|
+
nonce: challenge,
|
|
27
|
+
issuedAt,
|
|
28
|
+
expirationTime: new Date(issuedAt.getTime() + 3e5),
|
|
29
|
+
statement: "Sign in to HyperVibes. This does not authorize trading."
|
|
30
|
+
});
|
|
31
|
+
onStatus("Sign message in your wallet…");
|
|
32
|
+
const signature = await wallet.signMessage({
|
|
33
|
+
account: address,
|
|
34
|
+
message
|
|
35
|
+
});
|
|
36
|
+
onStatus("Verifying sign-in…");
|
|
37
|
+
await verify(message, signature);
|
|
38
|
+
}
|
|
39
|
+
function loginError(reason) {
|
|
40
|
+
let error = reason;
|
|
41
|
+
for (let depth = 0; depth < 5 && error && typeof error === "object"; depth++) {
|
|
42
|
+
if ("code" in error && error.code === 4001) return "Sign-in cancelled. Please try again when you're ready.";
|
|
43
|
+
error = "cause" in error ? error.cause : void 0;
|
|
44
|
+
}
|
|
45
|
+
return reason instanceof Error ? reason.message : "Sign-in failed. Please try again.";
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
//#region src/components/login-page.tsx
|
|
49
|
+
function LoginPage() {
|
|
50
|
+
const client = useQueryClient();
|
|
51
|
+
const [status, setStatus] = useState("");
|
|
52
|
+
const [error, setError] = useState("");
|
|
53
|
+
const [pending, setPending] = useState(false);
|
|
54
|
+
const inFlight = useRef(false);
|
|
55
|
+
async function login() {
|
|
56
|
+
if (inFlight.current) return;
|
|
57
|
+
inFlight.current = true;
|
|
58
|
+
setPending(true);
|
|
59
|
+
setError("");
|
|
60
|
+
try {
|
|
61
|
+
await walletLogin({
|
|
62
|
+
provider: window.ethereum,
|
|
63
|
+
origin: window.location.origin,
|
|
64
|
+
onStatus: setStatus,
|
|
65
|
+
async nonce() {
|
|
66
|
+
const result = await authClient.siwe.nonce();
|
|
67
|
+
if (result.error || !result.data) throw new Error("Unable to start sign-in. Please try again.");
|
|
68
|
+
return result.data.nonce;
|
|
69
|
+
},
|
|
70
|
+
async verify(message, signature) {
|
|
71
|
+
if ((await authClient.siwe.verify({
|
|
72
|
+
message,
|
|
73
|
+
signature
|
|
74
|
+
})).error) throw new Error("Sign-in could not be verified. Please try again.");
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
window.location.assign(await client.fetchQuery(loginDestinationQueryOptions()));
|
|
78
|
+
} catch (reason) {
|
|
79
|
+
setError(loginError(reason));
|
|
80
|
+
setStatus("");
|
|
81
|
+
inFlight.current = false;
|
|
82
|
+
setPending(false);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return /* @__PURE__ */ jsx("main", {
|
|
86
|
+
className: "grid min-h-dvh place-items-center overflow-y-auto p-6",
|
|
87
|
+
children: /* @__PURE__ */ jsxs("section", {
|
|
88
|
+
className: "w-full max-w-md rounded-2xl border border-zinc-800 bg-[#0d0d10] p-8",
|
|
89
|
+
"aria-labelledby": "login-heading",
|
|
90
|
+
children: [
|
|
91
|
+
/* @__PURE__ */ jsxs("h1", {
|
|
92
|
+
id: "login-heading",
|
|
93
|
+
className: "flex items-center justify-center gap-3 text-2xl font-semibold tracking-wide",
|
|
94
|
+
children: [/* @__PURE__ */ jsx("img", {
|
|
95
|
+
src: "/static/logo.png",
|
|
96
|
+
alt: "",
|
|
97
|
+
className: "h-14 w-auto rounded-md object-contain"
|
|
98
|
+
}), /* @__PURE__ */ jsx("span", { children: "HyperVibes" })]
|
|
99
|
+
}),
|
|
100
|
+
/* @__PURE__ */ jsx("button", {
|
|
101
|
+
type: "button",
|
|
102
|
+
disabled: pending,
|
|
103
|
+
onClick: () => {
|
|
104
|
+
login();
|
|
105
|
+
},
|
|
106
|
+
className: "mt-6 w-full cursor-pointer rounded-full border border-violet-500 px-4 py-2 text-sm font-medium text-violet-300 hover:bg-violet-950 disabled:cursor-wait disabled:opacity-60",
|
|
107
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
108
|
+
role: "status",
|
|
109
|
+
children: pending ? status || "Signing in…" : "Login"
|
|
110
|
+
})
|
|
111
|
+
}),
|
|
112
|
+
/* @__PURE__ */ jsx("p", {
|
|
113
|
+
role: "alert",
|
|
114
|
+
className: "mt-2 text-sm text-red-300",
|
|
115
|
+
children: error
|
|
116
|
+
})
|
|
117
|
+
]
|
|
118
|
+
})
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
//#endregion
|
|
122
|
+
//#region src/routes/login.tsx?tsr-split=component
|
|
123
|
+
var SplitComponent = LoginPage;
|
|
124
|
+
//#endregion
|
|
125
|
+
export { SplitComponent as component };
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { a as getRequestHeaders, t as createServerFn } from "../server.js";
|
|
2
|
+
import { n as agentUser, t as agentOperation, u as field } from "./agents-CZq-0mna.js";
|
|
3
|
+
import { c as requestId } from "./errors-DaZqUftX.js";
|
|
4
|
+
import { i as integer, r as fields } from "./validation-BX-krL0i.js";
|
|
5
|
+
import { t as insightScope } from "./insight-contracts-B5rmUDfO.js";
|
|
6
|
+
import { t as createServerRpc } from "./createServerRpc-DNqhdU4z.js";
|
|
7
|
+
//#region src/web/memories.ts?tss-serverfn-split
|
|
8
|
+
var listMemories_createServerFn_handler = createServerRpc({
|
|
9
|
+
id: "1c78b77eaebe3f1d4c651b9fd39b00d485ae0ec80663d1a032fc0426b7e8acb8",
|
|
10
|
+
name: "listMemories",
|
|
11
|
+
filename: "src/web/memories.ts"
|
|
12
|
+
}, (opts) => listMemories.__executeServer(opts));
|
|
13
|
+
var listMemories = createServerFn({ method: "GET" }).validator((data) => {
|
|
14
|
+
const row = fields(data, ["agentId", "filters"]);
|
|
15
|
+
return {
|
|
16
|
+
agentId: field(data, "agentId"),
|
|
17
|
+
filters: row.filters ?? {}
|
|
18
|
+
};
|
|
19
|
+
}).handler(listMemories_createServerFn_handler, async ({ context, data }) => {
|
|
20
|
+
const user = await agentUser(context.runtime, getRequestHeaders());
|
|
21
|
+
return agentOperation(async () => {
|
|
22
|
+
await context.runtime.agents.owned(user.id, data.agentId);
|
|
23
|
+
return context.runtime.agents.execution.memories.list(data.agentId, data.filters);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
var getMemory_createServerFn_handler = createServerRpc({
|
|
27
|
+
id: "deb8282a8b1f9f01b41d9a4470f8cc2d674faf76f366da2d551fcd46f5d3bcbb",
|
|
28
|
+
name: "getMemory",
|
|
29
|
+
filename: "src/web/memories.ts"
|
|
30
|
+
}, (opts) => getMemory.__executeServer(opts));
|
|
31
|
+
var getMemory = createServerFn({ method: "GET" }).validator((data) => ({
|
|
32
|
+
agentId: field(data, "agentId"),
|
|
33
|
+
ref: field(data, "ref")
|
|
34
|
+
})).handler(getMemory_createServerFn_handler, async ({ context, data }) => {
|
|
35
|
+
const user = await agentUser(context.runtime, getRequestHeaders());
|
|
36
|
+
return agentOperation(async () => {
|
|
37
|
+
await context.runtime.agents.owned(user.id, data.agentId);
|
|
38
|
+
return context.runtime.agents.execution.memories.get(data.agentId, data.ref);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
var getInsights_createServerFn_handler = createServerRpc({
|
|
42
|
+
id: "b791cccd6cb78481dca5ea046cc2f32877984b326866661e62ae5e149c4829a6",
|
|
43
|
+
name: "getInsights",
|
|
44
|
+
filename: "src/web/memories.ts"
|
|
45
|
+
}, (opts) => getInsights.__executeServer(opts));
|
|
46
|
+
var getInsights = createServerFn({ method: "GET" }).validator((data) => {
|
|
47
|
+
const row = fields(data, [
|
|
48
|
+
"agentId",
|
|
49
|
+
"scope",
|
|
50
|
+
"version",
|
|
51
|
+
"history",
|
|
52
|
+
"beforeVersion"
|
|
53
|
+
]);
|
|
54
|
+
if (row.history !== void 0 && typeof row.history !== "boolean") throw new Error("Invalid history flag");
|
|
55
|
+
return {
|
|
56
|
+
agentId: field(data, "agentId"),
|
|
57
|
+
scope: insightScope(row.scope),
|
|
58
|
+
version: row.version == null ? null : integer(row.version, 1, Number.MAX_SAFE_INTEGER - 1, "revision version"),
|
|
59
|
+
history: row.history === true,
|
|
60
|
+
beforeVersion: row.beforeVersion == null ? null : integer(row.beforeVersion, 1, Number.MAX_SAFE_INTEGER, "history cursor")
|
|
61
|
+
};
|
|
62
|
+
}).handler(getInsights_createServerFn_handler, async ({ context, data }) => {
|
|
63
|
+
const user = await agentUser(context.runtime, getRequestHeaders());
|
|
64
|
+
return agentOperation(async () => {
|
|
65
|
+
await context.runtime.agents.owned(user.id, data.agentId);
|
|
66
|
+
const service = context.runtime.agents.execution.insights;
|
|
67
|
+
const current = await service.current(data.agentId, data.scope);
|
|
68
|
+
return {
|
|
69
|
+
current,
|
|
70
|
+
head: current.version === 0 ? null : await service.revision(data.agentId, data.scope, current.version),
|
|
71
|
+
revision: data.version == null ? null : await service.revision(data.agentId, data.scope, data.version),
|
|
72
|
+
history: data.history ? await service.history(data.agentId, data.scope, data.beforeVersion === null ? {} : { beforeVersion: data.beforeVersion }) : null
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
var replaceInsights_createServerFn_handler = createServerRpc({
|
|
77
|
+
id: "06aae184e09c946b2bc9e651a7ed34e71333e537ac54eadf083ab5af647eb225",
|
|
78
|
+
name: "replaceInsights",
|
|
79
|
+
filename: "src/web/memories.ts"
|
|
80
|
+
}, (opts) => replaceInsights.__executeServer(opts));
|
|
81
|
+
var replaceInsights = createServerFn({ method: "POST" }).validator((data) => {
|
|
82
|
+
const row = fields(data, [
|
|
83
|
+
"agentId",
|
|
84
|
+
"requestId",
|
|
85
|
+
"input"
|
|
86
|
+
]);
|
|
87
|
+
return {
|
|
88
|
+
agentId: field(data, "agentId"),
|
|
89
|
+
requestId: requestId(field(data, "requestId")),
|
|
90
|
+
input: row.input
|
|
91
|
+
};
|
|
92
|
+
}).handler(replaceInsights_createServerFn_handler, async ({ context, data }) => {
|
|
93
|
+
const user = await agentUser(context.runtime, getRequestHeaders(), true);
|
|
94
|
+
return agentOperation(async () => {
|
|
95
|
+
await context.runtime.agents.owned(user.id, data.agentId);
|
|
96
|
+
return context.runtime.agents.execution.insights.replace(context.runtime.agents.execution.operator(data.agentId, user.id), `ui:${data.requestId}`, data.input);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
//#endregion
|
|
100
|
+
export { getInsights_createServerFn_handler, getMemory_createServerFn_handler, listMemories_createServerFn_handler, replaceInsights_createServerFn_handler };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Link } from "@tanstack/react-router";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
//#region src/components/memory-status.tsx
|
|
4
|
+
var statusColors = {
|
|
5
|
+
fresh: "border-emerald-500/30 bg-emerald-500/10 text-emerald-300",
|
|
6
|
+
stale: "border-yellow-500/30 bg-yellow-500/10 text-yellow-300",
|
|
7
|
+
retracted: "border-zinc-600 bg-zinc-800/50 text-zinc-400",
|
|
8
|
+
invalid_evidence: "border-red-500/30 bg-red-500/10 text-red-300",
|
|
9
|
+
durable: "border-violet-500/30 bg-violet-500/10 text-violet-300"
|
|
10
|
+
};
|
|
11
|
+
function MemoryStatus({ status }) {
|
|
12
|
+
return /* @__PURE__ */ jsx("span", {
|
|
13
|
+
className: `inline-block rounded-full border px-2 py-0.5 text-xs ${statusColors[status] ?? "border-zinc-700 text-zinc-400"}`,
|
|
14
|
+
children: status
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
//#region src/components/memory-replacements.tsx
|
|
19
|
+
/** Replacement standing is separate from the evidence-age badge. */
|
|
20
|
+
function MemoryReplacements({ agentId, memory }) {
|
|
21
|
+
if (!memory.correctedBy && !memory.supersededBy) return null;
|
|
22
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
23
|
+
"aria-label": "Memory replacements",
|
|
24
|
+
className: "mt-2 flex flex-col gap-1 text-xs text-amber-300",
|
|
25
|
+
children: [memory.correctedBy && /* @__PURE__ */ jsxs(Link, {
|
|
26
|
+
to: "/agents/$agentId/memories/$memoryRef",
|
|
27
|
+
params: {
|
|
28
|
+
agentId,
|
|
29
|
+
memoryRef: memory.correctedBy
|
|
30
|
+
},
|
|
31
|
+
className: "cursor-pointer hover:underline",
|
|
32
|
+
children: ["Corrected by: ", memory.correctedBy]
|
|
33
|
+
}), memory.supersededBy && /* @__PURE__ */ jsxs(Link, {
|
|
34
|
+
to: "/agents/$agentId/memories/$memoryRef",
|
|
35
|
+
params: {
|
|
36
|
+
agentId,
|
|
37
|
+
memoryRef: memory.supersededBy
|
|
38
|
+
},
|
|
39
|
+
className: "cursor-pointer hover:underline",
|
|
40
|
+
children: ["Superseded by: ", memory.supersededBy]
|
|
41
|
+
})]
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
//#endregion
|
|
45
|
+
//#region src/components/memory-badge.tsx
|
|
46
|
+
function MemoryBadge({ value }) {
|
|
47
|
+
return /* @__PURE__ */ jsx("span", {
|
|
48
|
+
className: "inline-block max-w-full break-words rounded-full border border-zinc-700 bg-zinc-800/50 px-2 py-0.5 text-xs text-zinc-300",
|
|
49
|
+
children: value
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
export { MemoryReplacements as n, MemoryStatus as r, MemoryBadge as t };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { o as AgentError } from "./errors-DaZqUftX.js";
|
|
2
|
+
import { i as integer } from "./validation-BX-krL0i.js";
|
|
3
|
+
//#region src/memory/memory-contracts.ts
|
|
4
|
+
var memoryToolNames = [
|
|
5
|
+
"publish_research",
|
|
6
|
+
"record_trade_decision",
|
|
7
|
+
"publish_review",
|
|
8
|
+
"list_memories",
|
|
9
|
+
"get_memory",
|
|
10
|
+
"get_trading_context",
|
|
11
|
+
"get_insights",
|
|
12
|
+
"append_insight",
|
|
13
|
+
"replace_insights",
|
|
14
|
+
"research_decisions",
|
|
15
|
+
"research_execution_audit"
|
|
16
|
+
];
|
|
17
|
+
function parseMemoryRef(value) {
|
|
18
|
+
if (typeof value !== "string" || !/^m[1-9][0-9]*$/.test(value) || value.trim() !== value) throw new AgentError("Use an exact memory reference such as m42");
|
|
19
|
+
return integer(Number(value.slice(1)), 1, Number.MAX_SAFE_INTEGER, "memory reference");
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { parseMemoryRef as n, memoryToolNames as t };
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { t as createServerFn } from "../server.js";
|
|
2
|
+
import { C as createSsrRpc, u as field } from "./agents-CZq-0mna.js";
|
|
3
|
+
import { c as requestId } from "./errors-DaZqUftX.js";
|
|
4
|
+
import { i as integer, r as fields } from "./validation-BX-krL0i.js";
|
|
5
|
+
import { t as insightScope } from "./insight-contracts-B5rmUDfO.js";
|
|
6
|
+
import { queryOptions } from "@tanstack/react-query";
|
|
7
|
+
//#region src/web/memories.ts
|
|
8
|
+
var listMemories = createServerFn({ method: "GET" }).validator((data) => {
|
|
9
|
+
const row = fields(data, ["agentId", "filters"]);
|
|
10
|
+
return {
|
|
11
|
+
agentId: field(data, "agentId"),
|
|
12
|
+
filters: row.filters ?? {}
|
|
13
|
+
};
|
|
14
|
+
}).handler(createSsrRpc("1c78b77eaebe3f1d4c651b9fd39b00d485ae0ec80663d1a032fc0426b7e8acb8"));
|
|
15
|
+
var getMemory = createServerFn({ method: "GET" }).validator((data) => ({
|
|
16
|
+
agentId: field(data, "agentId"),
|
|
17
|
+
ref: field(data, "ref")
|
|
18
|
+
})).handler(createSsrRpc("deb8282a8b1f9f01b41d9a4470f8cc2d674faf76f366da2d551fcd46f5d3bcbb"));
|
|
19
|
+
var getInsights = createServerFn({ method: "GET" }).validator((data) => {
|
|
20
|
+
const row = fields(data, [
|
|
21
|
+
"agentId",
|
|
22
|
+
"scope",
|
|
23
|
+
"version",
|
|
24
|
+
"history",
|
|
25
|
+
"beforeVersion"
|
|
26
|
+
]);
|
|
27
|
+
if (row.history !== void 0 && typeof row.history !== "boolean") throw new Error("Invalid history flag");
|
|
28
|
+
return {
|
|
29
|
+
agentId: field(data, "agentId"),
|
|
30
|
+
scope: insightScope(row.scope),
|
|
31
|
+
version: row.version == null ? null : integer(row.version, 1, Number.MAX_SAFE_INTEGER - 1, "revision version"),
|
|
32
|
+
history: row.history === true,
|
|
33
|
+
beforeVersion: row.beforeVersion == null ? null : integer(row.beforeVersion, 1, Number.MAX_SAFE_INTEGER, "history cursor")
|
|
34
|
+
};
|
|
35
|
+
}).handler(createSsrRpc("b791cccd6cb78481dca5ea046cc2f32877984b326866661e62ae5e149c4829a6"));
|
|
36
|
+
createServerFn({ method: "POST" }).validator((data) => {
|
|
37
|
+
const row = fields(data, [
|
|
38
|
+
"agentId",
|
|
39
|
+
"requestId",
|
|
40
|
+
"input"
|
|
41
|
+
]);
|
|
42
|
+
return {
|
|
43
|
+
agentId: field(data, "agentId"),
|
|
44
|
+
requestId: requestId(field(data, "requestId")),
|
|
45
|
+
input: row.input
|
|
46
|
+
};
|
|
47
|
+
}).handler(createSsrRpc("06aae184e09c946b2bc9e651a7ed34e71333e537ac54eadf083ab5af647eb225"));
|
|
48
|
+
//#endregion
|
|
49
|
+
//#region src/web/memory-queries.ts
|
|
50
|
+
var memoriesQueryOptions = (agentId, filters = {}) => queryOptions({
|
|
51
|
+
queryKey: [
|
|
52
|
+
"memories",
|
|
53
|
+
agentId,
|
|
54
|
+
"list",
|
|
55
|
+
filters
|
|
56
|
+
],
|
|
57
|
+
queryFn: () => listMemories({ data: {
|
|
58
|
+
agentId,
|
|
59
|
+
filters
|
|
60
|
+
} })
|
|
61
|
+
});
|
|
62
|
+
var memoryQueryOptions = (agentId, ref) => queryOptions({
|
|
63
|
+
queryKey: [
|
|
64
|
+
"memories",
|
|
65
|
+
agentId,
|
|
66
|
+
"detail",
|
|
67
|
+
ref
|
|
68
|
+
],
|
|
69
|
+
queryFn: () => getMemory({ data: {
|
|
70
|
+
agentId,
|
|
71
|
+
ref
|
|
72
|
+
} })
|
|
73
|
+
});
|
|
74
|
+
var insightsQueryOptions = (agentId, scopeId = "", beforeVersion) => queryOptions({
|
|
75
|
+
queryKey: [
|
|
76
|
+
"insights",
|
|
77
|
+
agentId,
|
|
78
|
+
scopeId,
|
|
79
|
+
beforeVersion ?? null
|
|
80
|
+
],
|
|
81
|
+
queryFn: () => getInsights({ data: {
|
|
82
|
+
agentId,
|
|
83
|
+
scope: scopeId ? {
|
|
84
|
+
kind: "worker",
|
|
85
|
+
subagentId: scopeId
|
|
86
|
+
} : { kind: "agent" },
|
|
87
|
+
history: true,
|
|
88
|
+
...beforeVersion === void 0 ? {} : { beforeVersion }
|
|
89
|
+
} })
|
|
90
|
+
});
|
|
91
|
+
//#endregion
|
|
92
|
+
export { memoriesQueryOptions as n, memoryQueryOptions as r, insightsQueryOptions as t };
|