@one_deploy/sdk 1.0.3 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/{engine-CrlhH0nw.d.mts → engine-BeVuHpVx.d.mts} +163 -0
  2. package/dist/{engine-5ndtBaCr.d.ts → engine-DSc1Em4V.d.ts} +163 -0
  3. package/dist/hooks/index.d.mts +132 -3
  4. package/dist/hooks/index.d.ts +132 -3
  5. package/dist/hooks/index.js +351 -0
  6. package/dist/hooks/index.js.map +1 -1
  7. package/dist/hooks/index.mjs +345 -2
  8. package/dist/hooks/index.mjs.map +1 -1
  9. package/dist/index.d.mts +3 -3
  10. package/dist/index.d.ts +3 -3
  11. package/dist/index.js +352 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/index.mjs +345 -2
  14. package/dist/index.mjs.map +1 -1
  15. package/dist/providers/index.d.mts +1 -1
  16. package/dist/providers/index.d.ts +1 -1
  17. package/dist/providers/index.js +98 -0
  18. package/dist/providers/index.js.map +1 -1
  19. package/dist/providers/index.mjs +98 -0
  20. package/dist/providers/index.mjs.map +1 -1
  21. package/dist/react-native.d.mts +140 -3
  22. package/dist/react-native.d.ts +140 -3
  23. package/dist/react-native.js +642 -0
  24. package/dist/react-native.js.map +1 -1
  25. package/dist/react-native.mjs +636 -1
  26. package/dist/react-native.mjs.map +1 -1
  27. package/dist/services/index.d.mts +99 -79
  28. package/dist/services/index.d.ts +99 -79
  29. package/dist/services/index.js +254 -0
  30. package/dist/services/index.js.map +1 -1
  31. package/dist/services/index.mjs +252 -1
  32. package/dist/services/index.mjs.map +1 -1
  33. package/dist/supabase-BT0c7q9e.d.mts +82 -0
  34. package/dist/supabase-BT0c7q9e.d.ts +82 -0
  35. package/package.json +5 -1
  36. package/src/components/OneSwapWidget.tsx +1 -1
  37. package/src/components/ai/OneChainSelector.tsx +183 -0
  38. package/src/components/ai/OneCycleSelector.tsx +187 -0
  39. package/src/components/ai/OnePairSelector.tsx +181 -0
  40. package/src/components/ai/OneTierSelector.tsx +187 -0
  41. package/src/components/ai/index.ts +17 -0
  42. package/src/components/index.ts +3 -0
  43. package/src/hooks/index.ts +20 -0
  44. package/src/hooks/useAITrading.ts +444 -0
  45. package/src/index.ts +20 -0
  46. package/src/react-native.ts +23 -0
  47. package/src/services/engine.ts +184 -0
  48. package/src/services/index.ts +16 -0
  49. package/src/services/usage.ts +249 -0
  50. package/.turbo/turbo-build.log +0 -0
  51. package/.turbo/turbo-type-check.log +0 -0
  52. package/tsconfig.json +0 -22
  53. package/tsup.config.ts +0 -25
@@ -1046,6 +1046,43 @@ var OneEngineClient = class {
1046
1046
  async adminClearRateLimits(identifier) {
1047
1047
  return this.request(`/api/v1/admin/rate-limits/${identifier}`, { method: "DELETE" });
1048
1048
  }
1049
+ // ========== AI Agent Configuration ==========
1050
+ /**
1051
+ * Get all AI agent configurations
1052
+ * This returns the full agent setup including tiers, cycles, and trading parameters
1053
+ */
1054
+ async getAgentConfigs(options) {
1055
+ const params = new URLSearchParams();
1056
+ if (options?.includeInactive) params.set("includeInactive", "true");
1057
+ if (options?.agentId) params.set("agentId", options.agentId);
1058
+ const query = params.toString();
1059
+ return this.request(`/api/v1/agents${query ? `?${query}` : ""}`, { method: "GET" });
1060
+ }
1061
+ /**
1062
+ * Calculate subscription parameters for an agent
1063
+ */
1064
+ async calculateAgentParams(params) {
1065
+ return this.request("/api/v1/agents/calculate", {
1066
+ method: "POST",
1067
+ body: JSON.stringify(params)
1068
+ });
1069
+ }
1070
+ /**
1071
+ * Get supported trading pairs from agents
1072
+ */
1073
+ async getTradingPairs() {
1074
+ const result = await this.getAgentConfigs();
1075
+ if (result.success && result.data?.agents) {
1076
+ const allPairs = /* @__PURE__ */ new Set();
1077
+ const byAgent = {};
1078
+ for (const agent of result.data.agents) {
1079
+ byAgent[agent.id] = agent.supported_pairs;
1080
+ agent.supported_pairs.forEach((p) => allPairs.add(p));
1081
+ }
1082
+ return { success: true, data: { pairs: Array.from(allPairs), byAgent } };
1083
+ }
1084
+ return { success: false, error: result.error };
1085
+ }
1049
1086
  // ========== AI Quant Trading ==========
1050
1087
  /**
1051
1088
  * Get all AI trading strategies
@@ -1184,6 +1221,67 @@ var OneEngineClient = class {
1184
1221
  async getCryptoMarketOverview() {
1185
1222
  return this.request("/api/v1/prices?type=overview", { method: "GET" });
1186
1223
  }
1224
+ // ========== Project Management ==========
1225
+ /**
1226
+ * Get user's projects
1227
+ */
1228
+ async getProjects(options) {
1229
+ const params = new URLSearchParams();
1230
+ if (options?.isActive !== void 0) params.set("isActive", String(options.isActive));
1231
+ const query = params.toString();
1232
+ return this.request(`/api/v1/projects${query ? `?${query}` : ""}`, { method: "GET" });
1233
+ }
1234
+ /**
1235
+ * Create a new project for ecosystem partners
1236
+ */
1237
+ async createProject(params) {
1238
+ return this.request("/api/v1/projects", {
1239
+ method: "POST",
1240
+ body: JSON.stringify(params)
1241
+ });
1242
+ }
1243
+ /**
1244
+ * Get project details
1245
+ */
1246
+ async getProject(projectId) {
1247
+ return this.request(`/api/v1/projects/${projectId}`, { method: "GET" });
1248
+ }
1249
+ /**
1250
+ * Update project settings
1251
+ */
1252
+ async updateProject(projectId, updates) {
1253
+ return this.request(`/api/v1/projects/${projectId}`, {
1254
+ method: "PATCH",
1255
+ body: JSON.stringify(updates)
1256
+ });
1257
+ }
1258
+ /**
1259
+ * Get project features status
1260
+ */
1261
+ async getProjectFeatures(projectId) {
1262
+ return this.request(`/api/v1/projects/${projectId}/features`, { method: "GET" });
1263
+ }
1264
+ /**
1265
+ * Enable/disable features for a project
1266
+ */
1267
+ async updateProjectFeatures(projectId, features) {
1268
+ return this.request(`/api/v1/projects/${projectId}/features`, {
1269
+ method: "PATCH",
1270
+ body: JSON.stringify(features)
1271
+ });
1272
+ }
1273
+ /**
1274
+ * Regenerate project API key
1275
+ */
1276
+ async regenerateProjectApiKey(projectId) {
1277
+ return this.request(`/api/v1/projects/${projectId}/api-key`, { method: "POST" });
1278
+ }
1279
+ /**
1280
+ * Delete project
1281
+ */
1282
+ async deleteProject(projectId) {
1283
+ return this.request(`/api/v1/projects/${projectId}`, { method: "DELETE" });
1284
+ }
1187
1285
  };
1188
1286
  function createOneEngineClient(options) {
1189
1287
  return new OneEngineClient(options);
@@ -1352,7 +1450,260 @@ function useTokenPrices(symbols, options = {}) {
1352
1450
  refetch: fetchPrices
1353
1451
  };
1354
1452
  }
1453
+ var clientInstance = null;
1454
+ function getClient() {
1455
+ if (!clientInstance) {
1456
+ clientInstance = createOneEngineClient();
1457
+ }
1458
+ return clientInstance;
1459
+ }
1460
+ function setAITradingAccessToken(token) {
1461
+ getClient().setAccessToken(token);
1462
+ }
1463
+ function clearAITradingAccessToken() {
1464
+ getClient().clearAccessToken();
1465
+ }
1466
+ function useAIStrategies(options = {}) {
1467
+ const [strategies, setStrategies] = react.useState([]);
1468
+ const [isLoading, setIsLoading] = react.useState(true);
1469
+ const [error, setError] = react.useState(null);
1470
+ const { category, riskLevel, minTvl, isActive, autoRefresh = false, refreshInterval = 6e4 } = options;
1471
+ const fetchStrategies = react.useCallback(async () => {
1472
+ setIsLoading(true);
1473
+ setError(null);
1474
+ try {
1475
+ const result = await getClient().getAIStrategies({ category, riskLevel, minTvl, isActive });
1476
+ if (result.success && result.data?.strategies) {
1477
+ setStrategies(result.data.strategies);
1478
+ } else {
1479
+ setError(result.error?.message || "Failed to fetch strategies");
1480
+ }
1481
+ } catch (err) {
1482
+ setError(err instanceof Error ? err.message : "Unknown error");
1483
+ } finally {
1484
+ setIsLoading(false);
1485
+ }
1486
+ }, [category, riskLevel, minTvl, isActive]);
1487
+ react.useEffect(() => {
1488
+ fetchStrategies();
1489
+ }, [fetchStrategies]);
1490
+ react.useEffect(() => {
1491
+ if (autoRefresh && refreshInterval > 0) {
1492
+ const interval = setInterval(fetchStrategies, refreshInterval);
1493
+ return () => clearInterval(interval);
1494
+ }
1495
+ }, [autoRefresh, refreshInterval, fetchStrategies]);
1496
+ return { strategies, isLoading, error, refresh: fetchStrategies };
1497
+ }
1498
+ function useAIStrategy(strategyId, include = ["performance", "market"]) {
1499
+ const [strategy, setStrategy] = react.useState(null);
1500
+ const [performance, setPerformance] = react.useState([]);
1501
+ const [marketData, setMarketData] = react.useState([]);
1502
+ const [isLoading, setIsLoading] = react.useState(true);
1503
+ const [error, setError] = react.useState(null);
1504
+ const fetchStrategy = react.useCallback(async () => {
1505
+ if (!strategyId) {
1506
+ setIsLoading(false);
1507
+ return;
1508
+ }
1509
+ setIsLoading(true);
1510
+ setError(null);
1511
+ try {
1512
+ const result = await getClient().getAIStrategy(strategyId, include);
1513
+ if (result.success && result.data) {
1514
+ setStrategy(result.data.strategy);
1515
+ setPerformance(result.data.performance || []);
1516
+ setMarketData(result.data.marketData || []);
1517
+ } else {
1518
+ setError(result.error?.message || "Failed to fetch strategy");
1519
+ }
1520
+ } catch (err) {
1521
+ setError(err instanceof Error ? err.message : "Unknown error");
1522
+ } finally {
1523
+ setIsLoading(false);
1524
+ }
1525
+ }, [strategyId, include.join(",")]);
1526
+ react.useEffect(() => {
1527
+ fetchStrategy();
1528
+ }, [fetchStrategy]);
1529
+ return { strategy, performance, marketData, isLoading, error, refresh: fetchStrategy };
1530
+ }
1531
+ function useAIOrders(options = {}) {
1532
+ const [orders, setOrders] = react.useState([]);
1533
+ const [isLoading, setIsLoading] = react.useState(true);
1534
+ const [error, setError] = react.useState(null);
1535
+ const { strategyId, status, autoRefresh = true, refreshInterval = 3e4 } = options;
1536
+ const fetchOrders = react.useCallback(async () => {
1537
+ setIsLoading(true);
1538
+ setError(null);
1539
+ try {
1540
+ const result = await getClient().getAIOrders({ strategyId, status });
1541
+ if (result.success && result.data?.orders) {
1542
+ setOrders(result.data.orders);
1543
+ } else {
1544
+ setError(result.error?.message || "Failed to fetch orders");
1545
+ }
1546
+ } catch (err) {
1547
+ setError(err instanceof Error ? err.message : "Unknown error");
1548
+ } finally {
1549
+ setIsLoading(false);
1550
+ }
1551
+ }, [strategyId, status]);
1552
+ react.useEffect(() => {
1553
+ fetchOrders();
1554
+ }, [fetchOrders]);
1555
+ react.useEffect(() => {
1556
+ if (autoRefresh && refreshInterval > 0) {
1557
+ const interval = setInterval(fetchOrders, refreshInterval);
1558
+ return () => clearInterval(interval);
1559
+ }
1560
+ }, [autoRefresh, refreshInterval, fetchOrders]);
1561
+ const createOrder = react.useCallback(async (request) => {
1562
+ const result = await getClient().createAIOrder(request);
1563
+ if (result.success) {
1564
+ await fetchOrders();
1565
+ }
1566
+ return result;
1567
+ }, [fetchOrders]);
1568
+ const pauseOrder = react.useCallback(async (orderId) => {
1569
+ const result = await getClient().pauseAIOrder(orderId);
1570
+ if (result.success) {
1571
+ await fetchOrders();
1572
+ }
1573
+ return result;
1574
+ }, [fetchOrders]);
1575
+ const resumeOrder = react.useCallback(async (orderId) => {
1576
+ const result = await getClient().resumeAIOrder(orderId);
1577
+ if (result.success) {
1578
+ await fetchOrders();
1579
+ }
1580
+ return result;
1581
+ }, [fetchOrders]);
1582
+ const redeemOrder = react.useCallback(async (orderId) => {
1583
+ const result = await getClient().redeemAIOrder(orderId);
1584
+ if (result.success) {
1585
+ await fetchOrders();
1586
+ }
1587
+ return result;
1588
+ }, [fetchOrders]);
1589
+ return {
1590
+ orders,
1591
+ isLoading,
1592
+ error,
1593
+ refresh: fetchOrders,
1594
+ createOrder,
1595
+ pauseOrder,
1596
+ resumeOrder,
1597
+ redeemOrder
1598
+ };
1599
+ }
1600
+ function useAIPortfolio(autoRefresh = true) {
1601
+ const [portfolio, setPortfolio] = react.useState(null);
1602
+ const [allocations, setAllocations] = react.useState([]);
1603
+ const [activeOrders, setActiveOrders] = react.useState([]);
1604
+ const [isLoading, setIsLoading] = react.useState(true);
1605
+ const [error, setError] = react.useState(null);
1606
+ const fetchPortfolio = react.useCallback(async () => {
1607
+ setIsLoading(true);
1608
+ setError(null);
1609
+ try {
1610
+ const result = await getClient().getAIPortfolio(["allocations", "orders"]);
1611
+ if (result.success && result.data) {
1612
+ setPortfolio(result.data.portfolio);
1613
+ setAllocations(result.data.allocations || []);
1614
+ setActiveOrders(result.data.orders || []);
1615
+ } else {
1616
+ setError(result.error?.message || "Failed to fetch portfolio");
1617
+ }
1618
+ } catch (err) {
1619
+ setError(err instanceof Error ? err.message : "Unknown error");
1620
+ } finally {
1621
+ setIsLoading(false);
1622
+ }
1623
+ }, []);
1624
+ react.useEffect(() => {
1625
+ fetchPortfolio();
1626
+ }, [fetchPortfolio]);
1627
+ react.useEffect(() => {
1628
+ if (autoRefresh) {
1629
+ const interval = setInterval(fetchPortfolio, 3e4);
1630
+ return () => clearInterval(interval);
1631
+ }
1632
+ }, [autoRefresh, fetchPortfolio]);
1633
+ return { portfolio, allocations, activeOrders, isLoading, error, refresh: fetchPortfolio };
1634
+ }
1635
+ function useAIMarketData(symbols = ["BTC", "ETH", "BNB", "SOL", "XRP", "DOGE", "ADA", "AVAX"], autoRefresh = true) {
1636
+ const [prices, setPrices] = react.useState({});
1637
+ const [isLoading, setIsLoading] = react.useState(true);
1638
+ const [error, setError] = react.useState(null);
1639
+ const fetchPrices = react.useCallback(async () => {
1640
+ setIsLoading(true);
1641
+ setError(null);
1642
+ try {
1643
+ const result = await getClient().getTokenPrices(symbols);
1644
+ if (result.success && result.data) {
1645
+ setPrices(result.data);
1646
+ } else {
1647
+ setError(result.error?.message || "Failed to fetch prices");
1648
+ }
1649
+ } catch (err) {
1650
+ setError(err instanceof Error ? err.message : "Unknown error");
1651
+ } finally {
1652
+ setIsLoading(false);
1653
+ }
1654
+ }, [symbols.join(",")]);
1655
+ react.useEffect(() => {
1656
+ fetchPrices();
1657
+ }, [fetchPrices]);
1658
+ react.useEffect(() => {
1659
+ if (autoRefresh) {
1660
+ const interval = setInterval(fetchPrices, 15e3);
1661
+ return () => clearInterval(interval);
1662
+ }
1663
+ }, [autoRefresh, fetchPrices]);
1664
+ return { prices, isLoading, error, refresh: fetchPrices };
1665
+ }
1666
+ function useAITrading() {
1667
+ const strategiesResult = useAIStrategies({ autoRefresh: true });
1668
+ const ordersResult = useAIOrders({ autoRefresh: true });
1669
+ const portfolioResult = useAIPortfolio(true);
1670
+ const marketResult = useAIMarketData();
1671
+ const refreshAll = react.useCallback(async () => {
1672
+ await Promise.all([
1673
+ strategiesResult.refresh(),
1674
+ ordersResult.refresh(),
1675
+ portfolioResult.refresh(),
1676
+ marketResult.refresh()
1677
+ ]);
1678
+ }, [strategiesResult.refresh, ordersResult.refresh, portfolioResult.refresh, marketResult.refresh]);
1679
+ const error = react.useMemo(() => {
1680
+ return strategiesResult.error || ordersResult.error || portfolioResult.error || marketResult.error;
1681
+ }, [strategiesResult.error, ordersResult.error, portfolioResult.error, marketResult.error]);
1682
+ return {
1683
+ strategies: strategiesResult.strategies,
1684
+ strategiesLoading: strategiesResult.isLoading,
1685
+ orders: ordersResult.orders,
1686
+ ordersLoading: ordersResult.isLoading,
1687
+ portfolio: portfolioResult.portfolio,
1688
+ portfolioLoading: portfolioResult.isLoading,
1689
+ prices: marketResult.prices,
1690
+ createOrder: ordersResult.createOrder,
1691
+ pauseOrder: ordersResult.pauseOrder,
1692
+ resumeOrder: ordersResult.resumeOrder,
1693
+ redeemOrder: ordersResult.redeemOrder,
1694
+ refreshAll,
1695
+ error
1696
+ };
1697
+ }
1355
1698
 
1699
+ exports.clearAITradingAccessToken = clearAITradingAccessToken;
1700
+ exports.setAITradingAccessToken = setAITradingAccessToken;
1701
+ exports.useAIMarketData = useAIMarketData;
1702
+ exports.useAIOrders = useAIOrders;
1703
+ exports.useAIPortfolio = useAIPortfolio;
1704
+ exports.useAIStrategies = useAIStrategies;
1705
+ exports.useAIStrategy = useAIStrategy;
1706
+ exports.useAITrading = useAITrading;
1356
1707
  exports.useTokenPrice = useTokenPrice;
1357
1708
  exports.useTokenPrices = useTokenPrices;
1358
1709
  exports.useWalletBalance = useWalletBalance;