@pear-protocol/types 2.22.1 → 2.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/bundle.d.ts +1 -0
  2. package/dist/common/transaction-hash.d.ts +7 -0
  3. package/dist/copy/entities.d.ts +160 -10
  4. package/dist/copy/responses.d.ts +95 -11
  5. package/dist/execution/entities.d.ts +43 -43
  6. package/dist/execution/queries.d.ts +3 -2
  7. package/dist/execution/responses.d.ts +24 -24
  8. package/dist/fill/entities.d.ts +60 -1
  9. package/dist/fill/queries.d.ts +1 -0
  10. package/dist/fill/responses.d.ts +34 -4
  11. package/dist/index.js +668 -410
  12. package/dist/ladder/entities.d.ts +141 -24
  13. package/dist/ladder/payloads.d.ts +60 -24
  14. package/dist/ladder/queries.d.ts +2 -2
  15. package/dist/ladder/responses.d.ts +420 -69
  16. package/dist/notification/entities.d.ts +53 -6
  17. package/dist/notification/responses.d.ts +24 -2
  18. package/dist/order/entities.d.ts +3 -3
  19. package/dist/position/entities.d.ts +5 -5
  20. package/dist/position/responses.d.ts +4 -4
  21. package/dist/realtime/frames.d.ts +38 -6
  22. package/dist/realtime/public-events.d.ts +19 -3
  23. package/dist/rewards/entities.d.ts +18 -0
  24. package/dist/rewards/index.d.ts +1 -0
  25. package/dist/rewards/queries.d.ts +7 -0
  26. package/dist/rewards/responses.d.ts +54 -0
  27. package/dist/schedule/entities.d.ts +155 -19
  28. package/dist/schedule/index.d.ts +1 -0
  29. package/dist/schedule/queries.d.ts +3 -2
  30. package/dist/schedule/responses.d.ts +142 -19
  31. package/dist/sync/payloads.d.ts +56 -88
  32. package/dist/tca/responses.d.ts +12 -12
  33. package/dist/trade/payloads.d.ts +60 -24
  34. package/dist/trade/responses.d.ts +60 -60
  35. package/dist/traders/performance.d.ts +4 -0
  36. package/dist/traders/public.d.ts +537 -285
  37. package/dist/trigger/common/index.d.ts +8 -2
  38. package/dist/trigger/entities/conditions.d.ts +40 -0
  39. package/dist/trigger/entities/index.d.ts +339 -32
  40. package/dist/trigger/payloads/conditions.d.ts +70 -38
  41. package/dist/trigger/payloads/index.d.ts +408 -216
  42. package/dist/trigger/queries.d.ts +2 -2
  43. package/dist/trigger/responses.d.ts +218 -20
  44. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -22,6 +22,7 @@ __export(bundle_exports, {
22
22
  ApiKeyScope: () => ApiKeyScope,
23
23
  ApiKeySummary: () => ApiKeySummary,
24
24
  ApplicableFill: () => ApplicableFill,
25
+ ApplicableFillAssignment: () => ApplicableFillAssignment,
25
26
  ApplicableMetadata: () => ApplicableMetadata,
26
27
  ApplicablePosition: () => ApplicablePosition,
27
28
  AppliedFeeDiscount: () => AppliedFeeDiscount,
@@ -69,7 +70,11 @@ __export(bundle_exports, {
69
70
  CopyActivityListResponse: () => CopyActivityListResponse,
70
71
  CopyActivityOutcome: () => CopyActivityOutcome,
71
72
  CopyActivityState: () => CopyActivityState,
73
+ CopyActivityTWAP: () => CopyActivityTWAP,
74
+ CopyActivityTWAPReduction: () => CopyActivityTWAPReduction,
72
75
  CopyCaptureTiming: () => CopyCaptureTiming,
76
+ CopyControlTransferReason: () => CopyControlTransferReason,
77
+ CopyCoverage: () => CopyCoverage,
73
78
  CopyEndCapture: () => CopyEndCapture,
74
79
  CopyEndCaptureStatus: () => CopyEndCaptureStatus,
75
80
  CopyEndedSubscriptionWithVolume: () => CopyEndedSubscriptionWithVolume,
@@ -80,6 +85,7 @@ __export(bundle_exports, {
80
85
  CopyHealthResponse: () => CopyHealthResponse,
81
86
  CopyJoinResult: () => CopyJoinResult,
82
87
  CopyLeaderAction: () => CopyLeaderAction,
88
+ CopyManagedPosition: () => CopyManagedPosition,
83
89
  CopyPerformance: () => CopyPerformance,
84
90
  CopyPnlBreakdown: () => CopyPnlBreakdown,
85
91
  CopySizing: () => CopySizing,
@@ -97,6 +103,8 @@ __export(bundle_exports, {
97
103
  CopySubscriptionResponse: () => CopySubscriptionResponse,
98
104
  CopySubscriptionStatus: () => CopySubscriptionStatus,
99
105
  CopySubscriptionWithMetrics: () => CopySubscriptionWithMetrics,
106
+ CopyUnmanagedFollowerPositionReason: () => CopyUnmanagedFollowerPositionReason,
107
+ CopyUnmanagedPosition: () => CopyUnmanagedPosition,
100
108
  CreateApiKeyInput: () => CreateApiKeyInput,
101
109
  CreateApiKeyOutput: () => CreateApiKeyOutput,
102
110
  CreateApiKeyWithMessageResult: () => CreateApiKeyWithMessageResult,
@@ -170,6 +178,7 @@ __export(bundle_exports, {
170
178
  EmailRegisterRequest: () => EmailRegisterRequest,
171
179
  EndCopySubscriptionResponse: () => EndCopySubscriptionResponse,
172
180
  EthereumAddress: () => EthereumAddress2,
181
+ EthereumTransactionHash: () => EthereumTransactionHash,
173
182
  ExchangeCredentialsResponse: () => ExchangeCredentialsResponse,
174
183
  ExchangeXLoginRequest: () => ExchangeXLoginRequest,
175
184
  Execution: () => Execution,
@@ -183,6 +192,7 @@ __export(bundle_exports, {
183
192
  ExternalPosition: () => ExternalPosition,
184
193
  ExternalTrigger: () => ExternalTrigger,
185
194
  ExternalTriggerSource: () => ExternalTriggerSource,
195
+ FINAL_TWAP_SLICE_START_HEADROOM_SEC: () => FINAL_TWAP_SLICE_START_HEADROOM_SEC,
186
196
  FeeBps: () => FeeBps,
187
197
  FeeConnector: () => FeeConnector,
188
198
  FeeDiscountScope: () => FeeDiscountScope,
@@ -191,6 +201,7 @@ __export(bundle_exports, {
191
201
  FeeResponse: () => FeeResponse,
192
202
  FeeRole: () => FeeRole,
193
203
  Fill: () => Fill,
204
+ FillAssignment: () => FillAssignment,
194
205
  FillListParams: () => FillListParams,
195
206
  FillListResponse: () => FillListResponse,
196
207
  FillOrderBy: () => FillOrderBy,
@@ -251,6 +262,7 @@ __export(bundle_exports, {
251
262
  ListApiKeysOutput: () => ListApiKeysOutput,
252
263
  ListLighterUdaDepositsParams: () => ListLighterUdaDepositsParams,
253
264
  ListLighterUdaDepositsResult: () => ListLighterUdaDepositsResult,
265
+ ListRewardClaimsQuery: () => ListRewardClaimsQuery,
254
266
  LoginMethod: () => LoginMethod,
255
267
  LoginRequest: () => LoginRequest,
256
268
  LoginResponse: () => LoginResponse,
@@ -258,7 +270,9 @@ __export(bundle_exports, {
258
270
  LogoutResponse: () => LogoutResponse,
259
271
  MARKET_BASKET_POSITION_COUNTS_MAX_BASKETS: () => MARKET_BASKET_POSITION_COUNTS_MAX_BASKETS,
260
272
  MAX_FEE_BPS: () => MAX_FEE_BPS,
273
+ MAX_TWAP_DURATION_SEC: () => MAX_TWAP_DURATION_SEC,
261
274
  MAX_VAULTS_PER_CONNECTION: () => MAX_VAULTS_PER_CONNECTION,
275
+ MIN_TWAP_SLICE_INTERVAL_SEC: () => MIN_TWAP_SLICE_INTERVAL_SEC,
262
276
  ManagementVaultDataset: () => ManagementVaultDataset,
263
277
  ManagementVaultInvalidatedData: () => ManagementVaultInvalidatedData,
264
278
  MarginMode: () => MarginMode,
@@ -342,6 +356,7 @@ __export(bundle_exports, {
342
356
  PositionClosedReason: () => PositionClosedReason,
343
357
  PositionEntryPrices: () => PositionEntryPrices,
344
358
  PositionExposure: () => PositionExposure,
359
+ PositionFill: () => PositionFill,
345
360
  PositionFillListResponse: () => PositionFillListResponse,
346
361
  PositionInitialExposureUSD: () => PositionInitialExposureUSD,
347
362
  PositionListParams: () => PositionListParams,
@@ -406,13 +421,16 @@ __export(bundle_exports, {
406
421
  ResendVerificationResponse: () => ResendVerificationResponse,
407
422
  ResetPasswordRequest: () => ResetPasswordRequest,
408
423
  ResetPasswordResponse: () => ResetPasswordResponse,
424
+ ResizeBehavior: () => ResizeBehavior,
409
425
  RewardAccrual: () => RewardAccrual,
410
426
  RewardAccrualResponse: () => RewardAccrualResponse,
411
427
  RewardClaimId: () => RewardClaimId,
428
+ RewardClaimListResponse: () => RewardClaimListResponse,
412
429
  RewardClaimResponse: () => RewardClaimResponse,
413
430
  RewardClaimStatus: () => RewardClaimStatus,
414
431
  RewardClaimStatusResponse: () => RewardClaimStatusResponse,
415
432
  RewardPayoutAvailability: () => RewardPayoutAvailability,
433
+ RewardSourceAccrual: () => RewardSourceAccrual,
416
434
  RewardSummaryResponse: () => RewardSummaryResponse,
417
435
  SavedBasket: () => SavedBasket,
418
436
  SavedBasketLeg: () => SavedBasketLeg,
@@ -422,6 +440,8 @@ __export(bundle_exports, {
422
440
  ScheduleDetailParams: () => ScheduleDetailParams,
423
441
  ScheduleDetailResponse: () => ScheduleDetailResponse,
424
442
  ScheduleExecutionType: () => ScheduleExecutionType,
443
+ ScheduleFailedReason: () => ScheduleFailedReason,
444
+ ScheduleFailure: () => ScheduleFailure,
425
445
  ScheduleIntent: () => ScheduleIntent,
426
446
  ScheduleListParams: () => ScheduleListParams,
427
447
  ScheduleListResponse: () => ScheduleListResponse,
@@ -1185,6 +1205,401 @@ var TradeLegWithMaxImpactPrice = TradeLegShape.extend(TradeLegMaxImpactPrice).st
1185
1205
  var TradeLegPostOnlyWithMaxImpactPrice = TradeLegShape.omit({
1186
1206
  reduceOnly: true
1187
1207
  }).extend(TradeLegMaxImpactPrice).strict().superRefine(RefineLegIdMatchesSymbol);
1208
+ var EthereumTransactionHash = z.string().regex(/^0x[a-fA-F0-9]{64}$/).transform((val) => val);
1209
+ var FillStatus = z.enum([
1210
+ "PROVISIONAL",
1211
+ "CONFIRMED",
1212
+ "RECONCILED"
1213
+ ]);
1214
+ var FillAssignment = z.object({
1215
+ /** Position UUID receiving this allocation. */
1216
+ positionId: z.uuid(),
1217
+ quantity: z.string(),
1218
+ usd: z.string(),
1219
+ tradeFee: z.string().optional(),
1220
+ pearFee: z.string().optional()
1221
+ });
1222
+ var FillFields = z.object({
1223
+ /**
1224
+ * Fill UUID
1225
+ */
1226
+ id: z.uuid(),
1227
+ /** Client order ID (abbreviated as cloid) */
1228
+ cloid: z.string().optional(),
1229
+ /** Exchange-native fill ID (tradeId / tid / etc) */
1230
+ exchangeFillId: z.string().optional(),
1231
+ /**
1232
+ * Fill lifecycle status
1233
+ */
1234
+ status: FillStatus,
1235
+ /**
1236
+ * Trade account UUID
1237
+ */
1238
+ tradeAccountId: z.uuid(),
1239
+ /**
1240
+ * Instrument ID
1241
+ */
1242
+ symbol: InstrumentId,
1243
+ /**
1244
+ * Parent execution UUID when the fill came from an execution
1245
+ */
1246
+ executionId: z.uuid().optional(),
1247
+ /**
1248
+ * Parent schedule UUID for schedule-spawned fills
1249
+ */
1250
+ scheduleId: z.uuid().optional(),
1251
+ /**
1252
+ * Parent trigger UUID for trigger-fired fills
1253
+ */
1254
+ triggerId: z.uuid().optional(),
1255
+ /**
1256
+ * Connector
1257
+ */
1258
+ connector: Connector,
1259
+ /**
1260
+ * Side
1261
+ */
1262
+ side: Side,
1263
+ /**
1264
+ * Reduce only flag
1265
+ */
1266
+ reduceOnly: z.boolean(),
1267
+ /** True when the fill was created from external sync. */
1268
+ isExternal: z.boolean(),
1269
+ /**
1270
+ * True when the fill is a synthetic bridge fill (gap/gone reconstruction).
1271
+ * Unpriceable gone-close synthetics carry "0" price/usd and should be displayed distinctly.
1272
+ */
1273
+ synthetic: z.boolean(),
1274
+ quantity: z.string(),
1275
+ /** Filled price — "0" on an unpriceable gone-close synthetic (no price guessing). */
1276
+ price: z.string(),
1277
+ /** USD value — "0" on an unpriceable gone-close synthetic (cannot compute without price). */
1278
+ usd: z.string(),
1279
+ /**
1280
+ * Trade fee paid
1281
+ */
1282
+ tradeFee: z.string().optional(),
1283
+ /**
1284
+ * Pear fee paid
1285
+ */
1286
+ pearFee: z.string().optional(),
1287
+ /**
1288
+ * Timestamp
1289
+ */
1290
+ timestamp: z.string(),
1291
+ /**
1292
+ * A fill spanning multiple positions gets a synthetic exchange fill id.
1293
+ * This `original` field contains the root exchange fill id and quantity.
1294
+ */
1295
+ original: z.object({
1296
+ exchangeFillId: z.string(),
1297
+ quantity: z.string()
1298
+ }).optional()
1299
+ });
1300
+ var Fill = FillFields.extend({
1301
+ /** Allocated quantities and fees for each affected position. */
1302
+ assignments: z.array(FillAssignment)
1303
+ });
1304
+ var PositionFill = FillFields.extend({
1305
+ /** Position UUID receiving the quantity, USD value and fees in this view. */
1306
+ positionId: z.uuid()
1307
+ });
1308
+ var MAX_JITTER_BPS = 5e3;
1309
+ var DEFAULT_TWAP_RANDOMIZATION = {
1310
+ timingJitterBps: 0,
1311
+ sizeJitterBps: 0
1312
+ };
1313
+ var TWAPRandomization = z.object({
1314
+ /** Maximum symmetric timing variation in basis points, capped at ±50%. */
1315
+ timingJitterBps: z.int().min(0).max(MAX_JITTER_BPS),
1316
+ /** Maximum symmetric basket-size variation in basis points, capped at ±50%. */
1317
+ sizeJitterBps: z.int().min(0).max(MAX_JITTER_BPS)
1318
+ });
1319
+
1320
+ // src/schedule/entities.ts
1321
+ var ScheduleStrategy = z.enum([
1322
+ "TWAP",
1323
+ "VWAP"
1324
+ ]);
1325
+ var ScheduleStatus = z.enum([
1326
+ "ACTIVE",
1327
+ "COMPLETED",
1328
+ "FAILED",
1329
+ "CANCELLED"
1330
+ ]);
1331
+ var ScheduleIntent = z.enum([
1332
+ "OPEN",
1333
+ "CLOSE"
1334
+ ]);
1335
+ var ScheduleExecutionType = z.enum([
1336
+ "MARKET"
1337
+ ]);
1338
+ var ScheduleCancelledReason = z.enum([
1339
+ "POSITION_CLOSED",
1340
+ "USER",
1341
+ "SYSTEM",
1342
+ "POSITION_NETTED",
1343
+ "POSITION_LIQUIDATED",
1344
+ "POSITION_REVERSED"
1345
+ ]);
1346
+ var ScheduleFailedReason = z.enum([
1347
+ "EXPIRED",
1348
+ "INVALID_SCHEDULE",
1349
+ "POSITION_UNAVAILABLE",
1350
+ "MARKET_DATA_UNAVAILABLE",
1351
+ "NO_PLACEABLE_LEG",
1352
+ "LEG_BELOW_VENUE_MINIMUM",
1353
+ "SLICE_ERRORED",
1354
+ "LEG_FAILED",
1355
+ "REMAINDER_UNFILLED",
1356
+ "REPEATED_SLICE_FAILURES"
1357
+ ]);
1358
+ var ScheduleFailureBeforeSlice = z.object({
1359
+ /**
1360
+ * Why the schedule stopped
1361
+ */
1362
+ reason: ScheduleFailedReason.extract([
1363
+ "EXPIRED",
1364
+ "INVALID_SCHEDULE",
1365
+ "POSITION_UNAVAILABLE",
1366
+ "MARKET_DATA_UNAVAILABLE",
1367
+ "NO_PLACEABLE_LEG",
1368
+ "LEG_BELOW_VENUE_MINIMUM"
1369
+ ])
1370
+ });
1371
+ var ScheduleFailureAfterSlice = z.object({
1372
+ /**
1373
+ * Why the schedule stopped
1374
+ */
1375
+ reason: ScheduleFailedReason.extract([
1376
+ "SLICE_ERRORED",
1377
+ "LEG_FAILED",
1378
+ "REMAINDER_UNFILLED",
1379
+ "REPEATED_SLICE_FAILURES"
1380
+ ]),
1381
+ /**
1382
+ * The stopping slice's execution, for `GET /executions/:id`; absent only when that execution was deleted
1383
+ */
1384
+ executionId: z.uuid().optional()
1385
+ });
1386
+ var ScheduleFailure = z.discriminatedUnion("reason", [
1387
+ ScheduleFailureBeforeSlice,
1388
+ ScheduleFailureAfterSlice
1389
+ ]);
1390
+ var TWAPOpenLeg = z.object({
1391
+ /** SYMBOL-MIGRATION switch-to-id: mirrors `symbol` today; becomes required once requests always carry `id`. */
1392
+ id: InstrumentId.optional(),
1393
+ /**
1394
+ * Instrument ID
1395
+ */
1396
+ symbol: InstrumentId,
1397
+ /**
1398
+ * Side
1399
+ */
1400
+ side: Side,
1401
+ /**
1402
+ * Share of the parent target notional allocated to this leg
1403
+ */
1404
+ weight: AssetWeight
1405
+ });
1406
+ var BaseSchedule = z.object({
1407
+ /**
1408
+ * Schedule UUID
1409
+ */
1410
+ id: z.uuid(),
1411
+ /**
1412
+ * Connector
1413
+ */
1414
+ connector: Connector,
1415
+ /**
1416
+ * Schedule strategy
1417
+ */
1418
+ strategy: ScheduleStrategy,
1419
+ /**
1420
+ * Schedule status
1421
+ */
1422
+ status: ScheduleStatus,
1423
+ /**
1424
+ * Intent
1425
+ */
1426
+ intent: ScheduleIntent,
1427
+ /**
1428
+ * Position key
1429
+ */
1430
+ positionKey: z.string(),
1431
+ /**
1432
+ * Execution type
1433
+ */
1434
+ executionType: ScheduleExecutionType,
1435
+ /**
1436
+ * Last slice at timestamp
1437
+ */
1438
+ lastSliceAt: z.string().optional(),
1439
+ /**
1440
+ * Start at timestamp
1441
+ */
1442
+ startAt: z.string(),
1443
+ /**
1444
+ * End at timestamp
1445
+ */
1446
+ endAt: z.string(),
1447
+ /**
1448
+ * When the schedule was cancelled
1449
+ */
1450
+ cancelledAt: z.string().optional(),
1451
+ /**
1452
+ * Reason for the schedule being cancelled
1453
+ */
1454
+ cancelledReason: ScheduleCancelledReason.optional(),
1455
+ /**
1456
+ * Why a slice stopped the schedule; present on a FAILED schedule whose stop was recorded
1457
+ */
1458
+ failure: ScheduleFailure.optional(),
1459
+ /**
1460
+ * When a slice stopped the schedule as FAILED; present on every FAILED schedule, including those stopped before `failure` existed
1461
+ */
1462
+ failedAt: z.string().optional(),
1463
+ /**
1464
+ * Created at timestamp
1465
+ */
1466
+ createdAt: z.string(),
1467
+ /**
1468
+ * Updated at timestamp
1469
+ */
1470
+ updatedAt: z.string(),
1471
+ /**
1472
+ * Slices that produced live fills
1473
+ */
1474
+ executedSliceCount: z.number().int().nonnegative(),
1475
+ /**
1476
+ * Absolute USD filled across every slice
1477
+ */
1478
+ filledUsd: UnsignedDecimalString,
1479
+ /**
1480
+ * Absolute base quantity filled, per instrument
1481
+ */
1482
+ filledQuantities: z.record(InstrumentId, UnsignedDecimalString),
1483
+ /**
1484
+ * Overall progress from 0 to 1: notional filled for OPEN, the slowest leg for CLOSE
1485
+ */
1486
+ progress: z.number().min(0).max(1),
1487
+ /**
1488
+ * Progress of each leg from 0 to 1, capped at 1 when a leg overfills
1489
+ */
1490
+ legProgress: z.record(InstrumentId, z.number().min(0).max(1))
1491
+ });
1492
+ var TWAPOpen = BaseSchedule.extend({
1493
+ /**
1494
+ * Strategy
1495
+ */
1496
+ strategy: z.literal("TWAP"),
1497
+ /**
1498
+ * Intent
1499
+ */
1500
+ intent: z.literal("OPEN"),
1501
+ /**
1502
+ * Slice interval in seconds
1503
+ */
1504
+ sliceIntervalSec: z.number(),
1505
+ /**
1506
+ * Number of slices planned inside the execution window
1507
+ */
1508
+ sliceCount: z.number().int().positive(),
1509
+ /**
1510
+ * Bounded timing and basket-size randomization
1511
+ */
1512
+ randomization: TWAPRandomization,
1513
+ /**
1514
+ * Parent-order leg allocation
1515
+ */
1516
+ legs: z.array(TWAPOpenLeg),
1517
+ /**
1518
+ * Target notional
1519
+ */
1520
+ targetNotional: UnsignedDecimalString,
1521
+ /**
1522
+ * Remaining notional
1523
+ */
1524
+ remainingNotional: UnsignedDecimalString
1525
+ });
1526
+ var TWAPClose = BaseSchedule.extend({
1527
+ /**
1528
+ * Strategy
1529
+ */
1530
+ strategy: z.literal("TWAP"),
1531
+ /**
1532
+ * Intent
1533
+ */
1534
+ intent: z.literal("CLOSE"),
1535
+ /**
1536
+ * Slice interval in seconds
1537
+ */
1538
+ sliceIntervalSec: z.number(),
1539
+ /**
1540
+ * Number of slices planned inside the execution window
1541
+ */
1542
+ sliceCount: z.number().int().positive(),
1543
+ /**
1544
+ * Bounded timing and basket-size randomization
1545
+ */
1546
+ randomization: TWAPRandomization,
1547
+ /**
1548
+ * Position UUID
1549
+ */
1550
+ positionId: z.uuid(),
1551
+ /**
1552
+ * Initial exposure
1553
+ */
1554
+ initialExposure: z.record(InstrumentId, SignedDecimalString)
1555
+ });
1556
+ var Schedule = z.discriminatedUnion("intent", [
1557
+ TWAPOpen,
1558
+ TWAPClose
1559
+ ]);
1560
+ var ScheduleSlicePosition = z.object({
1561
+ /**
1562
+ * Grid index of the slice inside the execution window
1563
+ */
1564
+ index: z.number().int().nonnegative(),
1565
+ /**
1566
+ * Grid time the slice is planned around, before timing jitter
1567
+ */
1568
+ scheduledAt: z.string()
1569
+ });
1570
+ var ScheduleSlice = z.discriminatedUnion("status", [
1571
+ ScheduleSlicePosition.extend({
1572
+ status: z.literal("EXECUTED"),
1573
+ /**
1574
+ * Absolute USD filled by the slice
1575
+ */
1576
+ usd: UnsignedDecimalString,
1577
+ /**
1578
+ * Absolute base quantity filled by the slice, per instrument
1579
+ */
1580
+ quantities: z.record(InstrumentId, UnsignedDecimalString),
1581
+ /**
1582
+ * Timestamp of the slice's latest fill
1583
+ */
1584
+ lastFilledAt: z.string(),
1585
+ /**
1586
+ * The slice's live fills in time order, present when requested with include=fills
1587
+ */
1588
+ fills: z.array(Fill).optional()
1589
+ }),
1590
+ ScheduleSlicePosition.extend({
1591
+ /**
1592
+ * Not yet reached on an active schedule
1593
+ */
1594
+ status: z.literal("PENDING")
1595
+ }),
1596
+ ScheduleSlicePosition.extend({
1597
+ /**
1598
+ * Passed without fills: skipped by catch-up, or before a finished schedule's last executed slice
1599
+ */
1600
+ status: z.literal("MISSED")
1601
+ })
1602
+ ]);
1188
1603
  var Decimal = z.string().regex(/^[+-]?\d+(?:\.\d+)?$/);
1189
1604
  var CopyPnlBreakdown = z.object({
1190
1605
  grossRealizedPnl: SignedDecimalString,
@@ -1335,13 +1750,19 @@ var CopySkipReason = z.enum([
1335
1750
  "LEADER_EQUITY_UNREADABLE",
1336
1751
  "FOLLOWER_EQUITY_UNREADABLE",
1337
1752
  "PRICE_UNAVAILABLE",
1338
- "LEVERAGE_NOT_APPLIED"
1753
+ "LEVERAGE_NOT_APPLIED",
1754
+ "FOLLOWER_TWAP_NOT_ACTIVE",
1755
+ "FOLLOWER_TWAP_ALREADY_ACTIVE",
1756
+ "TRUE_UP_STALE",
1757
+ "ASSET_CONFLICT"
1339
1758
  ]);
1340
1759
  var CopyLeaderAction = z.enum([
1341
1760
  "OPEN",
1342
1761
  "ADJUST",
1343
1762
  "CLOSE",
1344
- "REVERSE"
1763
+ "REVERSE",
1764
+ "TWAP",
1765
+ "TWAP_END"
1345
1766
  ]);
1346
1767
  var CopyExecutionSource = z.discriminatedUnion("origin", [
1347
1768
  z.object({
@@ -1367,6 +1788,34 @@ var CopyExecutionSource = z.discriminatedUnion("origin", [
1367
1788
  configId: z.string()
1368
1789
  })
1369
1790
  ]);
1791
+ var CopyActivityTWAPReduction = z.discriminatedUnion("kind", [
1792
+ z.object({
1793
+ kind: z.literal("NONE")
1794
+ }),
1795
+ z.object({
1796
+ kind: z.literal("MINIMUM"),
1797
+ limitingLegs: z.array(z.object({
1798
+ symbol: InstrumentId,
1799
+ minimumNotional: UnsignedDecimalString
1800
+ })).describe("Legs whose venue minimum (USD) forced fewer, larger slices")
1801
+ })
1802
+ ]);
1803
+ var CopyActivityTWAP = z.object({
1804
+ intent: ScheduleIntent,
1805
+ totalNotional: UnsignedDecimalString.describe("Follower USD notional: the parent order for an open, the starting exposure for a close"),
1806
+ startAt: z.string().describe("ISO 8601"),
1807
+ endAt: z.string().describe("ISO 8601"),
1808
+ sliceCount: z.number().int().positive(),
1809
+ sliceIntervalSec: z.number().int().positive(),
1810
+ leaderSliceCount: z.number().int().positive(),
1811
+ reduction: CopyActivityTWAPReduction,
1812
+ progress: z.object({
1813
+ status: ScheduleStatus,
1814
+ filledNotional: UnsignedDecimalString.describe("Follower USD filled so far across all slices"),
1815
+ executedSliceCount: z.number().int().nonnegative(),
1816
+ partiallyFilled: z.boolean().describe("The TWAP ended early (cancelled or failed) short of its size; an ended TWAP with no fills also reports true, and an ended close always does")
1817
+ }).optional().describe("Live follower TWAP progress; absent until the follower TWAP exists")
1818
+ });
1370
1819
  var CopyActivity = z.object({
1371
1820
  id: z.uuid(),
1372
1821
  leaderAction: CopyLeaderAction.describe("What the leader did"),
@@ -1377,8 +1826,47 @@ var CopyActivity = z.object({
1377
1826
  failureReason: z.string().optional().describe("Why execution stopped; set when the outcome is FAILED or PARTIAL"),
1378
1827
  followerLegs: z.array(CopyActivityLeg).describe("Actual fills received by the follower"),
1379
1828
  leaderEquityFraction: z.string().optional().describe("The leader position notional over their equity at that moment; absent when unvaluable"),
1829
+ twap: CopyActivityTWAP.optional().describe("Set on a copied leader TWAP row once its follower TWAP is planned"),
1380
1830
  createdAt: z.string().describe("ISO 8601")
1381
1831
  });
1832
+ var CopyCoverage = z.enum([
1833
+ "FULLY_COPY",
1834
+ "PARTIALLY_COPY"
1835
+ ]);
1836
+ var CopyControlTransferReason = z.enum([
1837
+ "FOLLOWER_INTERVENTION",
1838
+ "EXTERNAL_SYNC",
1839
+ "LIQUIDATED",
1840
+ "ASSET_CONFLICT",
1841
+ "LEADER_EXTERNAL_ACTIVITY"
1842
+ ]);
1843
+ var CopyUnmanagedFollowerPositionReason = z.enum([
1844
+ ...CopyControlTransferReason.options,
1845
+ "EXISTING_AT_ADMISSION",
1846
+ "MANUAL_POSITION"
1847
+ ]);
1848
+ var CopyUnmanagedPosition = z.discriminatedUnion("kind", [
1849
+ z.object({
1850
+ /** The follower's own position; the follower manages it, and leader closes do not close it. */
1851
+ kind: z.literal("FOLLOWER_POSITION"),
1852
+ positionId: z.uuid(),
1853
+ reason: CopyUnmanagedFollowerPositionReason,
1854
+ detectedAt: z.string().datetime().describe("ISO 8601; when the position left or started outside copy management"),
1855
+ instrumentIds: z.array(InstrumentId).describe("Instruments the position still holds")
1856
+ }),
1857
+ z.object({
1858
+ /** A still-open leader position whose later actions this subscription no longer copies. */
1859
+ kind: z.literal("LEADER_POSITION"),
1860
+ positionId: z.uuid(),
1861
+ reason: CopyControlTransferReason,
1862
+ detectedAt: z.string().datetime().describe("ISO 8601; when copying of this leader position stopped"),
1863
+ instrumentIds: z.array(InstrumentId).describe("Instruments the leader position still holds")
1864
+ })
1865
+ ]);
1866
+ var CopyManagedPosition = z.object({
1867
+ positionId: z.uuid(),
1868
+ instrumentIds: z.array(InstrumentId).describe("Instruments the position still holds")
1869
+ });
1382
1870
  var CopyFollower = z.object({
1383
1871
  tradeAccountId: z.uuid(),
1384
1872
  status: z.literal("ACTIVE"),
@@ -1413,7 +1901,10 @@ var CopyStateResponse = z.discriminatedUnion("state", [
1413
1901
  }),
1414
1902
  z.object({
1415
1903
  state: z.literal("ACTIVE"),
1416
- subscription: CopySubscriptionWithMetrics
1904
+ subscription: CopySubscriptionWithMetrics,
1905
+ coverage: CopyCoverage.describe("PARTIALLY_COPY while any listed unmanaged position remains open; full coverage does not guarantee identical performance"),
1906
+ unmanagedPositions: z.array(CopyUnmanagedPosition).describe("Open positions outside copy management that explain divergence and who manages their closes"),
1907
+ managedPositions: z.array(CopyManagedPosition).describe("Open follower positions copy manages")
1417
1908
  })
1418
1909
  ]);
1419
1910
  var CopyFollowersResponse = z.object({
@@ -1481,13 +1972,15 @@ var CopyFollowerStats = CopyFollower.pick({
1481
1972
  }).extend({
1482
1973
  status: CopySubscriptionStatus,
1483
1974
  copiedTrades: z.number().int().nonnegative(),
1484
- copiedVolumeUsd: UnsignedDecimalString
1975
+ copiedVolumeUsd: UnsignedDecimalString,
1976
+ rewardsEarnedUsd: UnsignedDecimalString
1485
1977
  });
1486
1978
  var CopyStatsResponse = z.object({
1487
1979
  currentFollowerCount: z.number().int().nonnegative(),
1488
1980
  lifetimeFollowerCount: z.number().int().nonnegative(),
1489
1981
  copiedTrades: z.number().int().nonnegative(),
1490
1982
  copiedVolumeUsd: UnsignedDecimalString,
1983
+ rewardsEarnedUsd: UnsignedDecimalString,
1491
1984
  followers: z.array(CopyFollowerStats)
1492
1985
  });
1493
1986
  var OrderStatus = z.enum([
@@ -1614,6 +2107,8 @@ var Position = z.object({
1614
2107
  exposure: PositionExposure,
1615
2108
  /**
1616
2109
  * Whether a backfilled fill invalidated historical metrics derived from this position.
2110
+ *
2111
+ * @deprecated Always `false`: fill-position assignments never replay history. Will be removed in a future major.
1617
2112
  */
1618
2113
  unstableHistoricalData: z.boolean(),
1619
2114
  totalFundingPayment: PositionTotalFundingPayment,
@@ -1791,7 +2286,11 @@ var ClosedPosition = z.object({
1791
2286
  hasSyntheticFills: z.boolean(),
1792
2287
  /** Whether any fill is still PROVISIONAL, so fees and net PnL may still settle. */
1793
2288
  hasProvisionalFills: z.boolean(),
1794
- /** Whether a backfilled fill made this position's historical metrics unreliable. */
2289
+ /**
2290
+ * Whether a backfilled fill made this position's historical metrics unreliable.
2291
+ *
2292
+ * @deprecated Always `false`: fill-position assignments never replay history. Will be removed in a future major.
2293
+ */
1795
2294
  unstableHistoricalData: z.boolean(),
1796
2295
  longAssets: z.array(InstrumentId),
1797
2296
  shortAssets: z.array(InstrumentId),
@@ -1931,7 +2430,11 @@ var OpenPosition = z.object({
1931
2430
  * Independent of hasSyntheticFills: a row can have either, both or neither.
1932
2431
  */
1933
2432
  hasProvisionalFills: z.boolean(),
1934
- /** Whether a backfilled fill made this position's historical metrics unreliable. */
2433
+ /**
2434
+ * Whether a backfilled fill made this position's historical metrics unreliable.
2435
+ *
2436
+ * @deprecated Always `false`: fill-position assignments never replay history. Will be removed in a future major.
2437
+ */
1935
2438
  unstableHistoricalData: z.boolean(),
1936
2439
  /**
1937
2440
  * Every asset the ledger recorded, each carrying its own side.
@@ -2375,10 +2878,8 @@ var MarketExecution = z.discriminatedUnion("intent", [
2375
2878
  var Execution = z.discriminatedUnion("orderType", [
2376
2879
  MarketExecution
2377
2880
  ]);
2378
- var StatusEnum2 = z.enum([
2379
- "ACTIVE",
2380
- "COMPLETED",
2381
- "CANCELLED"
2881
+ var StatusEnum2 = ExecutionStatus.exclude([
2882
+ "IDLE"
2382
2883
  ]);
2383
2884
  var StatusArray2 = z.preprocess((arg) => normalizeArray(arg), z.array(StatusEnum2));
2384
2885
  var ExecutionListParams = CursorFindParams.extend({
@@ -2472,81 +2973,6 @@ var FeeRecipientResponse = z.object({
2472
2973
  // Connector-native recipient identifier (Hyperliquid builder address, Lighter integrator account index)
2473
2974
  recipient: z.string().optional()
2474
2975
  }).describe("Connector-native fee recipient to approve for the caller's role");
2475
- var FillStatus = z.enum([
2476
- "PROVISIONAL",
2477
- "CONFIRMED",
2478
- "RECONCILED"
2479
- ]);
2480
- var Fill = z.object({
2481
- /**
2482
- * Fill UUID
2483
- */
2484
- id: z.uuid(),
2485
- /** Client order ID (abbreviated as cloid) */
2486
- cloid: z.string().optional(),
2487
- /** Exchange-native fill ID (tradeId / tid / etc) */
2488
- exchangeFillId: z.string().optional(),
2489
- /**
2490
- * Fill lifecycle status
2491
- */
2492
- status: FillStatus,
2493
- /**
2494
- * Trade account UUID
2495
- */
2496
- tradeAccountId: z.uuid(),
2497
- /**
2498
- * Instrument ID
2499
- */
2500
- symbol: InstrumentId,
2501
- /**
2502
- * Position UUID
2503
- */
2504
- positionId: z.uuid(),
2505
- /**
2506
- * Connector
2507
- */
2508
- connector: Connector,
2509
- /**
2510
- * Side
2511
- */
2512
- side: Side,
2513
- /**
2514
- * Reduce only flag
2515
- */
2516
- reduceOnly: z.boolean(),
2517
- /** True when the fill was created from external sync. */
2518
- isExternal: z.boolean(),
2519
- /**
2520
- * True when the fill is a synthetic bridge fill (gap/gone reconstruction).
2521
- * Unpriceable gone-close synthetics carry "0" price/usd and should be displayed distinctly.
2522
- */
2523
- synthetic: z.boolean(),
2524
- quantity: z.string(),
2525
- /** Filled price — "0" on an unpriceable gone-close synthetic (no price guessing). */
2526
- price: z.string(),
2527
- /** USD value — "0" on an unpriceable gone-close synthetic (cannot compute without price). */
2528
- usd: z.string(),
2529
- /**
2530
- * Trade fee paid
2531
- */
2532
- tradeFee: z.string().optional(),
2533
- /**
2534
- * Pear fee paid
2535
- */
2536
- pearFee: z.string().optional(),
2537
- /**
2538
- * Timestamp
2539
- */
2540
- timestamp: z.string(),
2541
- /**
2542
- * A fill spanning multiple positions gets a synthetic exchange fill id.
2543
- * This `original` field contains the root exchange fill id and quantity.
2544
- */
2545
- original: z.object({
2546
- exchangeFillId: z.string(),
2547
- quantity: z.string()
2548
- }).optional()
2549
- });
2550
2976
  var FillOrderBy = z.union([
2551
2977
  z.literal("timestamp"),
2552
2978
  z.literal("-timestamp")
@@ -2559,11 +2985,13 @@ var FillListResponse = CursorResponse.extend({
2559
2985
  fills: z.array(Fill)
2560
2986
  });
2561
2987
  var PositionFillListResponse = z.object({
2562
- fills: z.array(Fill)
2988
+ fills: z.array(PositionFill)
2563
2989
  });
2564
2990
  var ProvisionalFill = z.object({
2565
2991
  id: z.uuid(),
2566
- positionId: z.uuid(),
2992
+ tradeAccountId: z.uuid(),
2993
+ connector: Connector,
2994
+ executionId: z.uuid().optional(),
2567
2995
  symbol: InstrumentId,
2568
2996
  cloid: z.string().optional(),
2569
2997
  status: z.literal("PROVISIONAL")
@@ -2607,7 +3035,12 @@ var TriggerCancelledReason = z.enum([
2607
3035
  "SYSTEM",
2608
3036
  "POSITION_NETTED",
2609
3037
  "POSITION_LIQUIDATED",
2610
- "POSITION_REVERSED"
3038
+ "POSITION_REVERSED",
3039
+ "POSITION_RESIZED"
3040
+ ]);
3041
+ var ResizeBehavior = z.enum([
3042
+ "cancel",
3043
+ "keep"
2611
3044
  ]);
2612
3045
  var BracketType = z.enum([
2613
3046
  "STOP_LOSS",
@@ -2626,17 +3059,6 @@ var TrailingMode = z.enum([
2626
3059
  "RELATIVE_BPS",
2627
3060
  "ABSOLUTE_POINTS"
2628
3061
  ]);
2629
- var MAX_JITTER_BPS = 5e3;
2630
- var DEFAULT_TWAP_RANDOMIZATION = {
2631
- timingJitterBps: 0,
2632
- sizeJitterBps: 0
2633
- };
2634
- var TWAPRandomization = z.object({
2635
- /** Maximum symmetric timing variation in basis points, capped at ±50%. */
2636
- timingJitterBps: z.int().min(0).max(MAX_JITTER_BPS),
2637
- /** Maximum symmetric basket-size variation in basis points, capped at ±50%. */
2638
- sizeJitterBps: z.int().min(0).max(MAX_JITTER_BPS)
2639
- });
2640
3062
  var MAX_TWAP_DURATION_SEC = 60 * 60 * 24 * 31;
2641
3063
  var MIN_TWAP_SLICE_INTERVAL_SEC = 15;
2642
3064
  var FINAL_TWAP_SLICE_START_HEADROOM_SEC = 15;
@@ -2644,7 +3066,7 @@ var TWAPSliceIntervalSec = z.int().min(MIN_TWAP_SLICE_INTERVAL_SEC).max(MAX_TWAP
2644
3066
  var TWAPTargetNotional = UnsignedDecimalString.refine((value) => /[1-9]/.test(value), {
2645
3067
  message: "Target notional must be greater than zero"
2646
3068
  });
2647
- var TWAPOpenLeg = z.object({
3069
+ var TWAPOpenLeg2 = z.object({
2648
3070
  /** SYMBOL-MIGRATION switch-to-id: mirrors `symbol` today; becomes required once requests always carry `id`. */
2649
3071
  id: InstrumentId.optional(),
2650
3072
  /** Instrument ID. */
@@ -2654,8 +3076,8 @@ var TWAPOpenLeg = z.object({
2654
3076
  /** Share of the parent target notional allocated to this leg. */
2655
3077
  weight: AssetWeight
2656
3078
  }).superRefine(RefineLegIdMatchesSymbol);
2657
- var TWAPOpenLegs = z.array(TWAPOpenLeg).superRefine(RefineMinimumOneSymbol).superRefine(RefineUniqueSymbols).superRefine(RefineWeightingSum);
2658
- var TriggerTWAPOpenLeg = TWAPOpenLeg.strict();
3079
+ var TWAPOpenLegs = z.array(TWAPOpenLeg2).superRefine(RefineMinimumOneSymbol).superRefine(RefineUniqueSymbols).superRefine(RefineWeightingSum);
3080
+ var TriggerTWAPOpenLeg = TWAPOpenLeg2.strict();
2659
3081
  var TriggerTWAPOpenLegs = z.tuple([
2660
3082
  TriggerTWAPOpenLeg
2661
3083
  ]).rest(TriggerTWAPOpenLeg).superRefine(RefineUniqueSymbols).superRefine(RefineWeightingSum);
@@ -2716,7 +3138,8 @@ var Notional = z.object({
2716
3138
  data: z.object({
2717
3139
  priceSource: PriceSource,
2718
3140
  track: MetricTrack,
2719
- threshold: z.number()
3141
+ threshold: z.number(),
3142
+ onPositionResize: ResizeBehavior
2720
3143
  })
2721
3144
  });
2722
3145
  var Upnl = z.object({
@@ -2724,7 +3147,8 @@ var Upnl = z.object({
2724
3147
  data: z.object({
2725
3148
  priceSource: PriceSource,
2726
3149
  track: MetricTrack,
2727
- threshold: z.number()
3150
+ threshold: z.number(),
3151
+ onPositionResize: ResizeBehavior
2728
3152
  })
2729
3153
  });
2730
3154
  var UpnlBps = z.object({
@@ -2793,13 +3217,15 @@ var WeightedRatioTrailing = z.object({
2793
3217
  var NotionalTrailing = z.object({
2794
3218
  type: z.literal("notional_trailing"),
2795
3219
  data: z.object({
2796
- priceSource: PriceSource
3220
+ priceSource: PriceSource,
3221
+ onPositionResize: ResizeBehavior
2797
3222
  })
2798
3223
  });
2799
3224
  var UpnlTrailing = z.object({
2800
3225
  type: z.literal("upnl_trailing"),
2801
3226
  data: z.object({
2802
- priceSource: PriceSource
3227
+ priceSource: PriceSource,
3228
+ onPositionResize: ResizeBehavior
2803
3229
  })
2804
3230
  });
2805
3231
  var UpnlBpsTrailing = z.object({
@@ -3017,6 +3443,10 @@ var TriggerMarketClose = BaseTrigger.extend({
3017
3443
  */
3018
3444
  condition: TriggerConditionClose,
3019
3445
  /**
3446
+ * Fraction of the position to close when the trigger fires; absent means a full close.
3447
+ */
3448
+ closePercent: z.number().optional(),
3449
+ /**
3020
3450
  * Context
3021
3451
  */
3022
3452
  context: z.object({
@@ -3316,45 +3746,47 @@ var RatioCloseStatic = z.object({
3316
3746
  symbol_a: InstrumentId,
3317
3747
  symbol_b: InstrumentId,
3318
3748
  threshold: TriggerThreshold
3319
- }).superRefine(RefineTwoUniqueSymbols)
3320
- });
3749
+ }).strict().superRefine(RefineTwoUniqueSymbols)
3750
+ }).strict();
3321
3751
  var PriceCloseStatic = z.object({
3322
3752
  type: z.literal("price"),
3323
3753
  data: z.object({
3324
3754
  priceSource: PriceSource2,
3325
3755
  symbol: InstrumentId,
3326
3756
  threshold: TriggerThreshold
3327
- })
3328
- });
3757
+ }).strict()
3758
+ }).strict();
3329
3759
  var WeightedRatioCloseStatic = z.object({
3330
3760
  type: z.literal("weighted_ratio"),
3331
3761
  data: z.object({
3332
3762
  priceSource: PriceSource2,
3333
3763
  basket: WeightedRatioBasket,
3334
3764
  threshold: TriggerThreshold
3335
- })
3336
- });
3765
+ }).strict()
3766
+ }).strict();
3337
3767
  var NotionalCloseStatic = z.object({
3338
3768
  type: z.literal("notional"),
3339
3769
  data: z.object({
3340
3770
  priceSource: PriceSource2,
3341
- threshold: TriggerThreshold
3342
- })
3343
- });
3771
+ threshold: TriggerThreshold,
3772
+ onPositionResize: ResizeBehavior.default("cancel")
3773
+ }).strict()
3774
+ }).strict();
3344
3775
  var UpnlCloseStatic = z.object({
3345
3776
  type: z.literal("upnl"),
3346
3777
  data: z.object({
3347
3778
  priceSource: PriceSource2,
3348
- threshold: z.number()
3349
- })
3350
- });
3779
+ threshold: z.number(),
3780
+ onPositionResize: ResizeBehavior.default("cancel")
3781
+ }).strict()
3782
+ }).strict();
3351
3783
  var UpnlBpsCloseStatic = z.object({
3352
3784
  type: z.literal("upnl_bps"),
3353
3785
  data: z.object({
3354
3786
  priceSource: PriceSource2,
3355
3787
  threshold: z.number()
3356
- })
3357
- });
3788
+ }).strict()
3789
+ }).strict();
3358
3790
  var PredictionMarketCloseStatic = z.object({
3359
3791
  type: z.literal("prediction_market"),
3360
3792
  data: z.object({
@@ -3364,48 +3796,50 @@ var PredictionMarketCloseStatic = z.object({
3364
3796
  ]),
3365
3797
  marketKey: z.string().min(1),
3366
3798
  threshold: TriggerThreshold
3367
- })
3368
- });
3799
+ }).strict()
3800
+ }).strict();
3369
3801
  var RatioCloseTrailing = z.object({
3370
3802
  type: z.literal("ratio_trailing"),
3371
3803
  data: z.object({
3372
3804
  priceSource: PriceSource2,
3373
3805
  symbol_a: InstrumentId,
3374
3806
  symbol_b: InstrumentId
3375
- }).superRefine(RefineTwoUniqueSymbols)
3376
- });
3807
+ }).strict().superRefine(RefineTwoUniqueSymbols)
3808
+ }).strict();
3377
3809
  var PriceCloseTrailing = z.object({
3378
3810
  type: z.literal("price_trailing"),
3379
3811
  data: z.object({
3380
3812
  priceSource: PriceSource2,
3381
3813
  symbol: InstrumentId
3382
- })
3383
- });
3814
+ }).strict()
3815
+ }).strict();
3384
3816
  var WeightedRatioCloseTrailing = z.object({
3385
3817
  type: z.literal("weighted_ratio_trailing"),
3386
3818
  data: z.object({
3387
3819
  priceSource: PriceSource2,
3388
3820
  basket: WeightedRatioBasket
3389
- })
3390
- });
3821
+ }).strict()
3822
+ }).strict();
3391
3823
  var NotionalCloseTrailing = z.object({
3392
3824
  type: z.literal("notional_trailing"),
3393
3825
  data: z.object({
3394
- priceSource: PriceSource2
3395
- })
3396
- });
3826
+ priceSource: PriceSource2,
3827
+ onPositionResize: ResizeBehavior.default("cancel")
3828
+ }).strict()
3829
+ }).strict();
3397
3830
  var UpnlCloseTrailing = z.object({
3398
3831
  type: z.literal("upnl_trailing"),
3399
3832
  data: z.object({
3400
- priceSource: PriceSource2
3401
- })
3402
- });
3833
+ priceSource: PriceSource2,
3834
+ onPositionResize: ResizeBehavior.default("cancel")
3835
+ }).strict()
3836
+ }).strict();
3403
3837
  var UpnlBpsCloseTrailing = z.object({
3404
3838
  type: z.literal("upnl_bps_trailing"),
3405
3839
  data: z.object({
3406
3840
  priceSource: PriceSource2
3407
- })
3408
- });
3841
+ }).strict()
3842
+ }).strict();
3409
3843
  var CreateTriggerConditionOpen = z.discriminatedUnion("type", [
3410
3844
  RatioOpen,
3411
3845
  PriceOpen,
@@ -3446,6 +3880,13 @@ var CreateTriggerConditionAttachTrailing = z.discriminatedUnion("type", [
3446
3880
  var MAX_ATTACH_TRIGGERS = 5;
3447
3881
 
3448
3882
  // src/trigger/payloads/index.ts
3883
+ var ClosePercent = z.number().min(1, {
3884
+ message: "closePercent must be at least 1"
3885
+ }).max(100, {
3886
+ message: "closePercent must be at most 100"
3887
+ }).refine((value) => Math.round(value * 100) / 100 === value, {
3888
+ message: "closePercent allows at most 2 decimals"
3889
+ });
3449
3890
  var CreateTriggerMarketPayload = z.object({
3450
3891
  type: z.literal("MARKET"),
3451
3892
  legs: z.tuple([
@@ -3476,11 +3917,13 @@ var AttachTriggerMarketCloseStatic = z.object({
3476
3917
  intent: z.literal("CLOSE"),
3477
3918
  type: z.literal("MARKET"),
3478
3919
  bracketType: TpSlBracketType,
3920
+ closePercent: ClosePercent.optional(),
3479
3921
  condition: CreateTriggerConditionAttachStatic
3480
3922
  }).superRefine(RefineStaticLogicalRules);
3481
3923
  var AttachTriggerMarketCloseTrailing = z.object({
3482
3924
  intent: z.literal("CLOSE"),
3483
3925
  type: z.literal("MARKET"),
3926
+ closePercent: ClosePercent.optional(),
3484
3927
  condition: CreateTriggerConditionAttachTrailing,
3485
3928
  trailing: TrailingConfig
3486
3929
  }).superRefine(RefineTrailingLogicalRules);
@@ -3538,6 +3981,7 @@ var CreateTriggerMarketCloseStatic = z.object({
3538
3981
  // User intent when bracketType is a side-dependent price-crossing encoding.
3539
3982
  // Optional so older clients remain wire-compatible during rollout.
3540
3983
  semanticBracketType: TpSlBracketType.optional(),
3984
+ closePercent: ClosePercent.optional(),
3541
3985
  condition: CreateTriggerConditionCloseStatic,
3542
3986
  /**
3543
3987
  * Attribution route code (client_ids.code)
@@ -3548,6 +3992,7 @@ var CreateTriggerMarketCloseTrailing = z.object({
3548
3992
  intent: z.literal("CLOSE"),
3549
3993
  type: z.literal("MARKET"),
3550
3994
  positionId: z.uuid(),
3995
+ closePercent: ClosePercent.optional(),
3551
3996
  condition: CreateTriggerConditionCloseTrailing,
3552
3997
  trailing: TrailingConfig,
3553
3998
  /**
@@ -3854,29 +4299,29 @@ var MarketBasketPositionCountsResponse = z.object({
3854
4299
  counts: z.array(MarketBasketPositionCounts)
3855
4300
  });
3856
4301
  var CreateLighterApiKeyParams = z.object({
3857
- accountIndex: z.number(),
3858
- apiKeyIndex: z.number()
4302
+ accountIndex: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),
4303
+ apiKeyIndex: z.number().int().nonnegative().max(254)
3859
4304
  });
3860
4305
  var SubmitChangePubKeyParams = z.object({
3861
4306
  l1Signature: z.string(),
3862
4307
  txInfo: z.string(),
3863
- accountIndex: z.number(),
3864
- apiKeyIndex: z.number()
4308
+ accountIndex: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),
4309
+ apiKeyIndex: z.number().int().nonnegative().max(254)
3865
4310
  });
3866
4311
  var PrepareApproveIntegratorParams = z.object({
3867
- accountIndex: z.number(),
3868
- apiKeyIndex: z.number(),
4312
+ accountIndex: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),
4313
+ apiKeyIndex: z.number().int().nonnegative().max(254),
3869
4314
  apiPrivateKey: z.string()
3870
4315
  });
3871
4316
  var SubmitApproveIntegratorParams = z.object({
3872
4317
  l1Signature: z.string(),
3873
4318
  txInfo: z.string(),
3874
- accountIndex: z.number(),
3875
- apiKeyIndex: z.number()
4319
+ accountIndex: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),
4320
+ apiKeyIndex: z.number().int().nonnegative().max(254)
3876
4321
  });
3877
4322
  var CreateAuthTokenParams = z.object({
3878
- accountIndex: z.number(),
3879
- apiKeyIndex: z.number(),
4323
+ accountIndex: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),
4324
+ apiKeyIndex: z.number().int().nonnegative().max(254),
3880
4325
  apiPrivateKey: z.string(),
3881
4326
  ttlSeconds: z.number().optional()
3882
4327
  });
@@ -4047,7 +4492,8 @@ var NotificationCategory = z.enum([
4047
4492
  "COPY_FAILED",
4048
4493
  "COPY_SUBSCRIPTION_STOPPED",
4049
4494
  "COPY_LEVERAGE_NOT_APPLIED",
4050
- "POSITION_LIQUIDATION"
4495
+ "POSITION_LIQUIDATION",
4496
+ "TRIGGER_CANCELLED_POSITION_RESIZED"
4051
4497
  ]);
4052
4498
  var NotificationMetric = z.enum([
4053
4499
  "ratio",
@@ -4179,6 +4625,18 @@ var TriggerCancelledMisScaledNotificationParameters = z.object({
4179
4625
  storedBps: z.number(),
4180
4626
  readingMarginPct: z.number()
4181
4627
  });
4628
+ var TriggerCancelledPositionResizedNotificationParameters = z.object({
4629
+ type: z.literal("trigger_cancelled_position_resized"),
4630
+ triggerId: z.uuid(),
4631
+ positionId: z.uuid(),
4632
+ connector: Connector,
4633
+ metric: z.enum([
4634
+ "notional",
4635
+ "upnl",
4636
+ "notional_trailing",
4637
+ "upnl_trailing"
4638
+ ])
4639
+ });
4182
4640
  var TriggerTWAPNotificationAnchor = PositionLegParameters.safeExtend({
4183
4641
  triggerId: z.uuid(),
4184
4642
  positionId: z.uuid(),
@@ -4206,10 +4664,16 @@ var CopyPlacedNotificationParameters = z.object({
4206
4664
  type: z.literal("copy_placed"),
4207
4665
  subscriptionId: z.uuid(),
4208
4666
  activityId: z.uuid(),
4209
- resource: z.object({
4210
- kind: z.literal("POSITION"),
4211
- id: z.uuid()
4212
- }),
4667
+ resource: z.discriminatedUnion("kind", [
4668
+ z.object({
4669
+ kind: z.literal("POSITION"),
4670
+ id: z.uuid()
4671
+ }),
4672
+ z.object({
4673
+ kind: z.literal("SCHEDULE"),
4674
+ id: z.uuid()
4675
+ })
4676
+ ]),
4213
4677
  leaderTradeAccountId: z.uuid()
4214
4678
  });
4215
4679
  var CopyFailedNotificationParameters = z.object({
@@ -4266,7 +4730,8 @@ var NotificationParameters = z.discriminatedUnion("type", [
4266
4730
  CopyPlacedNotificationParameters,
4267
4731
  CopyFailedNotificationParameters,
4268
4732
  CopySubscriptionStoppedNotificationParameters,
4269
- CopyLeverageNotAppliedNotificationParameters
4733
+ CopyLeverageNotAppliedNotificationParameters,
4734
+ TriggerCancelledPositionResizedNotificationParameters
4270
4735
  ]);
4271
4736
  var Notification = z.object({
4272
4737
  /**
@@ -5047,12 +5512,21 @@ var CreateAutoRebalanceResponse = z.object({
5047
5512
  var RebalanceEventListResponse = CursorResponse.extend({
5048
5513
  items: z.array(RebalanceEvent)
5049
5514
  });
5515
+ var RewardSourceAccrual = z.object({
5516
+ earned: UnsignedDecimalString,
5517
+ pendingMaturity: UnsignedDecimalString,
5518
+ pendingFunding: UnsignedDecimalString
5519
+ });
5050
5520
  var RewardAccrual = z.object({
5051
5521
  earned: UnsignedDecimalString,
5052
5522
  pendingMaturity: UnsignedDecimalString,
5053
5523
  pendingFunding: UnsignedDecimalString,
5054
5524
  claimable: UnsignedDecimalString,
5055
- paid: UnsignedDecimalString
5525
+ paid: UnsignedDecimalString,
5526
+ sources: z.object({
5527
+ referral: RewardSourceAccrual,
5528
+ copy: RewardSourceAccrual
5529
+ })
5056
5530
  });
5057
5531
  var RewardClaimStatus = z.enum([
5058
5532
  "TRANSFER_INTENT_READY",
@@ -5078,6 +5552,10 @@ var RewardClaimId = z.uuid();
5078
5552
  var CreateRewardClaim = z.object({
5079
5553
  destination: z.string().trim().regex(/^0x[0-9a-fA-F]{40}$/)
5080
5554
  });
5555
+ var ListRewardClaimsQuery = z.object({
5556
+ cursor: z.string().optional(),
5557
+ limit: z.coerce.number().int().min(1).max(100).default(20)
5558
+ });
5081
5559
  var RewardAccrualResponse = z.discriminatedUnion("status", [
5082
5560
  z.object({
5083
5561
  status: z.literal("DISABLED")
@@ -5100,242 +5578,21 @@ var RewardClaimStatusResponse = z.object({
5100
5578
  transferIntentCreatedAt: z.iso.datetime().optional(),
5101
5579
  verifiedAt: z.iso.datetime().optional(),
5102
5580
  createdAt: z.iso.datetime(),
5103
- updatedAt: z.iso.datetime()
5581
+ updatedAt: z.iso.datetime(),
5582
+ // The Arbitrum transaction paying the claim, present from the moment it is sent, before it is final. Only status
5583
+ // PAID means the USDC arrived: a sent transfer can still revert, which ends the claim RELEASED.
5584
+ transactionHash: EthereumTransactionHash.optional()
5585
+ });
5586
+ var RewardClaimListResponse = CursorResponse.extend({
5587
+ items: z.array(RewardClaimStatusResponse)
5104
5588
  });
5105
5589
  var RewardClaimResponse = z.object({
5106
5590
  claimId: z.uuid().optional(),
5107
- status: RewardClaimStatus
5108
- });
5109
- var ScheduleStrategy = z.enum([
5110
- "TWAP",
5111
- "VWAP"
5112
- ]);
5113
- var ScheduleStatus = z.enum([
5114
- "ACTIVE",
5115
- "COMPLETED",
5116
- "FAILED",
5117
- "CANCELLED"
5118
- ]);
5119
- var ScheduleIntent = z.enum([
5120
- "OPEN",
5121
- "CLOSE"
5122
- ]);
5123
- var ScheduleExecutionType = z.enum([
5124
- "MARKET"
5125
- ]);
5126
- var ScheduleCancelledReason = z.enum([
5127
- "POSITION_CLOSED",
5128
- "USER",
5129
- "SYSTEM",
5130
- "POSITION_NETTED",
5131
- "POSITION_LIQUIDATED",
5132
- "POSITION_REVERSED"
5133
- ]);
5134
- var TWAPOpenLeg2 = z.object({
5135
- /** SYMBOL-MIGRATION switch-to-id: mirrors `symbol` today; becomes required once requests always carry `id`. */
5136
- id: InstrumentId.optional(),
5137
- /**
5138
- * Instrument ID
5139
- */
5140
- symbol: InstrumentId,
5141
- /**
5142
- * Side
5143
- */
5144
- side: Side,
5145
- /**
5146
- * Share of the parent target notional allocated to this leg
5147
- */
5148
- weight: AssetWeight
5149
- });
5150
- var BaseSchedule = z.object({
5151
- /**
5152
- * Schedule UUID
5153
- */
5154
- id: z.uuid(),
5155
- /**
5156
- * Connector
5157
- */
5158
- connector: Connector,
5159
- /**
5160
- * Schedule strategy
5161
- */
5162
- strategy: ScheduleStrategy,
5163
- /**
5164
- * Schedule status
5165
- */
5166
- status: ScheduleStatus,
5167
- /**
5168
- * Intent
5169
- */
5170
- intent: ScheduleIntent,
5171
- /**
5172
- * Position key
5173
- */
5174
- positionKey: z.string(),
5175
- /**
5176
- * Execution type
5177
- */
5178
- executionType: ScheduleExecutionType,
5179
- /**
5180
- * Last slice at timestamp
5181
- */
5182
- lastSliceAt: z.string().optional(),
5183
- /**
5184
- * Start at timestamp
5185
- */
5186
- startAt: z.string(),
5187
- /**
5188
- * End at timestamp
5189
- */
5190
- endAt: z.string(),
5191
- /**
5192
- * When the schedule was cancelled
5193
- */
5194
- cancelledAt: z.string().optional(),
5195
- /**
5196
- * Reason for the schedule being cancelled
5197
- */
5198
- cancelledReason: ScheduleCancelledReason.optional(),
5199
- /**
5200
- * Created at timestamp
5201
- */
5202
- createdAt: z.string(),
5203
- /**
5204
- * Updated at timestamp
5205
- */
5206
- updatedAt: z.string(),
5207
- /**
5208
- * Slices that produced live fills
5209
- */
5210
- executedSliceCount: z.number().int().nonnegative(),
5211
- /**
5212
- * Absolute USD filled across every slice
5213
- */
5214
- filledUsd: UnsignedDecimalString,
5215
- /**
5216
- * Absolute base quantity filled, per instrument
5217
- */
5218
- filledQuantities: z.record(InstrumentId, UnsignedDecimalString),
5219
- /**
5220
- * Overall progress from 0 to 1: notional filled for OPEN, the slowest leg for CLOSE
5221
- */
5222
- progress: z.number().min(0).max(1),
5223
- /**
5224
- * Progress of each leg from 0 to 1, capped at 1 when a leg overfills
5225
- */
5226
- legProgress: z.record(InstrumentId, z.number().min(0).max(1))
5227
- });
5228
- var TWAPOpen = BaseSchedule.extend({
5229
- /**
5230
- * Strategy
5231
- */
5232
- strategy: z.literal("TWAP"),
5233
- /**
5234
- * Intent
5235
- */
5236
- intent: z.literal("OPEN"),
5237
- /**
5238
- * Slice interval in seconds
5239
- */
5240
- sliceIntervalSec: z.number(),
5241
- /**
5242
- * Number of slices planned inside the execution window
5243
- */
5244
- sliceCount: z.number().int().positive(),
5245
- /**
5246
- * Bounded timing and basket-size randomization
5247
- */
5248
- randomization: TWAPRandomization,
5249
- /**
5250
- * Parent-order leg allocation
5251
- */
5252
- legs: z.array(TWAPOpenLeg2),
5253
- /**
5254
- * Target notional
5255
- */
5256
- targetNotional: UnsignedDecimalString,
5257
- /**
5258
- * Remaining notional
5259
- */
5260
- remainingNotional: UnsignedDecimalString
5261
- });
5262
- var TWAPClose = BaseSchedule.extend({
5263
- /**
5264
- * Strategy
5265
- */
5266
- strategy: z.literal("TWAP"),
5267
- /**
5268
- * Intent
5269
- */
5270
- intent: z.literal("CLOSE"),
5271
- /**
5272
- * Slice interval in seconds
5273
- */
5274
- sliceIntervalSec: z.number(),
5275
- /**
5276
- * Number of slices planned inside the execution window
5277
- */
5278
- sliceCount: z.number().int().positive(),
5279
- /**
5280
- * Bounded timing and basket-size randomization
5281
- */
5282
- randomization: TWAPRandomization,
5283
- /**
5284
- * Position UUID
5285
- */
5286
- positionId: z.uuid(),
5287
- /**
5288
- * Initial exposure
5289
- */
5290
- initialExposure: z.record(InstrumentId, SignedDecimalString)
5291
- });
5292
- var Schedule = z.discriminatedUnion("intent", [
5293
- TWAPOpen,
5294
- TWAPClose
5295
- ]);
5296
- var ScheduleSlicePosition = z.object({
5297
- /**
5298
- * Grid index of the slice inside the execution window
5299
- */
5300
- index: z.number().int().nonnegative(),
5301
- /**
5302
- * Grid time the slice is planned around, before timing jitter
5303
- */
5304
- scheduledAt: z.string()
5591
+ status: RewardClaimStatus,
5592
+ // The Arbitrum transaction paying the claim, present from the moment it is sent, before it is final. Only status
5593
+ // PAID means the USDC arrived: a sent transfer can still revert, which ends the claim RELEASED.
5594
+ transactionHash: EthereumTransactionHash.optional()
5305
5595
  });
5306
- var ScheduleSlice = z.discriminatedUnion("status", [
5307
- ScheduleSlicePosition.extend({
5308
- status: z.literal("EXECUTED"),
5309
- /**
5310
- * Absolute USD filled by the slice
5311
- */
5312
- usd: UnsignedDecimalString,
5313
- /**
5314
- * Absolute base quantity filled by the slice, per instrument
5315
- */
5316
- quantities: z.record(InstrumentId, UnsignedDecimalString),
5317
- /**
5318
- * Timestamp of the slice's latest fill
5319
- */
5320
- lastFilledAt: z.string(),
5321
- /**
5322
- * The slice's live fills in time order, present when requested with include=fills
5323
- */
5324
- fills: z.array(Fill).optional()
5325
- }),
5326
- ScheduleSlicePosition.extend({
5327
- /**
5328
- * Not yet reached on an active schedule
5329
- */
5330
- status: z.literal("PENDING")
5331
- }),
5332
- ScheduleSlicePosition.extend({
5333
- /**
5334
- * Passed without fills: skipped by catch-up, or before a finished schedule's last executed slice
5335
- */
5336
- status: z.literal("MISSED")
5337
- })
5338
- ]);
5339
5596
  var BaseSchedule2 = z.object({
5340
5597
  /**
5341
5598
  * Start at date
@@ -5414,12 +5671,7 @@ var CreateSchedule = z.discriminatedUnion("intent", [
5414
5671
  CreateTWAPOpen,
5415
5672
  CreateTWAPClose
5416
5673
  ]);
5417
- var StatusEnum4 = z.enum([
5418
- "ACTIVE",
5419
- "COMPLETED",
5420
- "CANCELLED"
5421
- ]);
5422
- var StatusArray6 = z.preprocess((arg) => normalizeArray(arg), z.array(StatusEnum4));
5674
+ var StatusArray6 = z.preprocess((arg) => normalizeArray(arg), z.array(ScheduleStatus));
5423
5675
  var ScheduleListParams = CursorFindParams.extend({
5424
5676
  connector: Connector.optional(),
5425
5677
  status: StatusArray6.optional()
@@ -5725,10 +5977,6 @@ var LiquidationMark = z.object({
5725
5977
  mark: UnsignedDecimalString
5726
5978
  }).nullable();
5727
5979
  var TradeFee = DecimalString;
5728
- var OriginalFillRef = z.object({
5729
- exchangeFillId: ExchangeFillId,
5730
- quantity: UnsignedDecimalString
5731
- });
5732
5980
  var UnknownExternalFill = z.object({
5733
5981
  exchangeFillId: ExchangeFillId,
5734
5982
  cloid: z.string().nullable(),
@@ -5757,8 +6005,9 @@ var ExternalPosition = z.object({
5757
6005
  markPrice: UnsignedDecimalString
5758
6006
  });
5759
6007
  var ApplicableFill = z.object({
5760
- // Deterministic synthetic id (`synthetic-{positionKey}-{symbol}-{side}`) for synthetic fills,
5761
- // exchange-native id for real fills.
6008
+ // Deterministic synthetic id (`synthetic-{positionKey}-{lifecycleStartMs}-{symbol}-{side}`, or
6009
+ // `synthetic-{positionKey}-{symbol}-{side}` when no stable lifecycle start exists) for synthetic
6010
+ // fills, exchange-native id for real fills.
5762
6011
  exchangeFillId: ExchangeFillId,
5763
6012
  cloid: z.string().nullable(),
5764
6013
  connector: Connector,
@@ -5773,14 +6022,16 @@ var ApplicableFill = z.object({
5773
6022
  isExternal: z.boolean(),
5774
6023
  tradeFee: TradeFee,
5775
6024
  builderFee: UnsignedDecimalString,
5776
- closedReason: PositionClosedReason.optional().describe("e.g. NETTED for a synthetic close fill"),
5777
- liquidation: LiquidationMark.unwrap().extend({
5778
- outcome: z.enum([
5779
- "CLOSED",
5780
- "REDUCED"
5781
- ]).optional().describe("Position outcome after this reducing slice")
5782
- }).nullable().optional(),
5783
- original: OriginalFillRef.optional()
6025
+ closedReason: PositionClosedReason.optional().describe("e.g. USER for a synthetic close fill"),
6026
+ liquidation: LiquidationMark.optional()
6027
+ });
6028
+ var ApplicableFillAssignment = z.object({
6029
+ exchangeFillId: ExchangeFillId,
6030
+ quantity: UnsignedDecimalString.refine((quantity) => /[1-9]/.test(quantity), "Assignment quantity must be positive"),
6031
+ liquidationOutcome: z.enum([
6032
+ "CLOSED",
6033
+ "REDUCED"
6034
+ ]).optional()
5784
6035
  });
5785
6036
  var ApplicableMetadata = z.object({
5786
6037
  initialExposureUSD: z.record(InstrumentId, SignedDecimalString).describe("opening cost basis from this position\u2019s own real fills; partial map allowed")
@@ -5790,8 +6041,8 @@ var ApplicablePosition = z.object({
5790
6041
  exposure: z.record(InstrumentId, SignedDecimalString).describe("final position exposure (signed, BASE units)"),
5791
6042
  origin: PositionOrigin,
5792
6043
  status: PositionStatus,
5793
- closedReason: PositionClosedReason.optional().describe("set when status is CLOSED, e.g. NETTED"),
5794
- fills: z.array(ApplicableFill).min(1, "Applicable must carry at least one fill"),
6044
+ closedReason: PositionClosedReason.optional().describe("set when status is CLOSED, e.g. USER"),
6045
+ assignments: z.array(ApplicableFillAssignment).min(1, "Applicable must carry at least one assignment"),
5795
6046
  metadata: ApplicableMetadata
5796
6047
  });
5797
6048
  var WATERMARK_FUTURE_SKEW_MS = 3e5;
@@ -5807,6 +6058,7 @@ var CreateApplicablesBulkFields = z.object({
5807
6058
  executionsUpdatedAtEpochMs: z.string().regex(/^\d+$/, "Must be a non-negative integer millisecond value").transform(Number).describe("mirror of meta.executionsUpdatedAtEpochMs, readable without decompressing the payload")
5808
6059
  });
5809
6060
  var CreateApplicablesRequest = z.object({
6061
+ fills: z.array(ApplicableFill),
5810
6062
  applicables: z.array(ApplicablePosition),
5811
6063
  exchangePositions: z.array(ExternalPosition),
5812
6064
  meta: CreateApplicablesMeta
@@ -6460,14 +6712,19 @@ var TraderPerformanceQuery = z.object({
6460
6712
  range: z.enum([
6461
6713
  "24h",
6462
6714
  "7d",
6463
- "30d"
6715
+ "30d",
6716
+ "1y",
6717
+ "all"
6464
6718
  ]).default("24h")
6465
6719
  }).strict();
6466
6720
  var TraderPerformancePoint = z.object({
6467
6721
  at: z.string().datetime(),
6468
6722
  equityUsd: SignedDecimalString.optional(),
6469
6723
  pnlUsd: SignedDecimalString.optional(),
6470
- roiPercent: SignedDecimalString.optional()
6724
+ // Return on starting equity: profit since the first point with positive equity, over that equity. Deposits never move the denominator, and that anchor can be later than pnlUsd's baseline.
6725
+ roiPercent: SignedDecimalString.optional(),
6726
+ // True once any earlier or current capture excluded a value it could not measure; it never clears within a series.
6727
+ hasGap: z.boolean()
6471
6728
  });
6472
6729
  var TraderPerformanceResponse = z.object({
6473
6730
  points: z.array(TraderPerformancePoint)
@@ -6609,6 +6866,7 @@ var scheduleFields = {
6609
6866
  randomization: true,
6610
6867
  cancelledAt: true,
6611
6868
  cancelledReason: true,
6869
+ failedAt: true,
6612
6870
  createdAt: true,
6613
6871
  updatedAt: true
6614
6872
  };
@@ -7352,4 +7610,4 @@ var VaultServiceError = z.discriminatedUnion("error", [
7352
7610
  })
7353
7611
  ]);
7354
7612
 
7355
- export { Activity, ActivityItemResponse, ActivityResponse, AdjustIsolatedMargin, AdjustIsolatedMarginResponse, AgentApprove, AgentApproveResponse, AgentApproveResult, ApiKeyMeResponse, ApiKeyScope, ApiKeySummary, ApplicableFill, ApplicableMetadata, ApplicablePosition, AppliedFeeDiscount, AttachTriggerMarketClose, AttachTriggerMarketCloseList, AttachTriggerMarketCloseStatic, AttachTriggerMarketCloseTrailing, AuthenticatedUser, AutoRebalanceBetaState, AutoRebalanceConfig, AutoRebalanceListParams, AutoRebalanceListResponse, AutoRebalancePausedReason, AutoRebalanceStatus, AutoRebalanceTimeframe, AutoRebalanceWeightSource, BaseExecution, BasketMarket, BindReferralCode, BoundReferralReferee, BracketType, BuilderFeeApproval, BulkSnapshotPoint, BulkSnapshotsResponse, CancelAllSchedulesResponse, CancelAllTriggersResponse, CancelLadderResponse, CancelScheduleResponse, CancelTriggerResponse, ChangeLighterAccountTierParams, ChangeLighterAccountTierResult, ChangePasswordRequest, ChangePasswordResponse, ClosedPosition, ClosedPositionLeg, ClosedPositionLegSide, ClosedPositionListParams, ClosedPositionListResponse, ConnectedIdentity, Connector, CopyAccountPerformance, CopyActivity, CopyActivityLeg, CopyActivityListParams, CopyActivityListResponse, CopyActivityOutcome, CopyActivityState, CopyCaptureTiming, CopyEndCapture, CopyEndCaptureStatus, CopyEndedSubscriptionWithVolume, CopyExecutionSource, CopyFollower, CopyFollowerStats, CopyFollowersResponse, CopyHealthResponse, CopyJoinResult, CopyLeaderAction, CopyPerformance, CopyPnlBreakdown, CopySizing, CopySkipReason, CopyStartSnapshot, CopyStartingAccount, CopyStateResponse, CopyStatsParams, CopyStatsResponse, CopySubscription, CopySubscriptionListQuery, CopySubscriptionListResponse, CopySubscriptionMetrics, CopySubscriptionRead, CopySubscriptionResponse, CopySubscriptionStatus, CopySubscriptionWithMetrics, CreateApiKeyInput, CreateApiKeyOutput, CreateApiKeyWithMessageResult, CreateApplicablesBulkFields, CreateApplicablesMeta, CreateApplicablesRequest, CreateAuthTokenParams, CreateAuthTokenResult, CreateAutoRebalanceConfig, CreateAutoRebalanceResponse, CreateCopySubscription, CreateCopySubscriptionResponse, CreateFundingPaymentsRequest, CreateLadder, CreateLadderMarketOpen, CreateLadderResponse, CreateLighterApiKeyParams, CreateLighterSubAccountParams, CreateLighterSubAccountResult, CreateLighterUdaParams, CreateLighterUdaResult, CreateMarketAdjust, CreateMarketClose, CreateMarketCloseAll, CreateMarketOpen, CreateMarketReverse, CreateReferralCode, CreateRewardClaim, CreateSavedBasketPayload, CreateSavedBasketResponse, CreateSchedule, CreateScheduleResponse, CreateTWAPClose, CreateTWAPOpen, CreateTradeAccount, CreateTradeAdjust, CreateTradeAdjustResponse, CreateTradeClose, CreateTradeCloseAll, CreateTradeCloseAllResponse, CreateTradeCloseResponse, CreateTradeOpen, CreateTradeOpenResponse, CreateTradeReverse, CreateTradeReverseResponse, CreateTriggerClose, CreateTriggerConditionAttachStatic, CreateTriggerConditionAttachTrailing, CreateTriggerConditionCloseStatic, CreateTriggerConditionCloseTrailing, CreateTriggerConditionOpen, CreateTriggerMarketAdjust, CreateTriggerMarketClose, CreateTriggerMarketCloseStatic, CreateTriggerMarketCloseTrailing, CreateTriggerMarketOpen, CreateTriggerOpen, CreateTriggerResponse, CreateTriggerTWAPAdjust, CreateTriggerTWAPClose, CreateTriggerTWAPCloseStatic, CreateTriggerTWAPCloseTrailing, CreateVault, CreateVaultTradeAccount, CreatedVaultResponse, CreatedVaultResult, DEFAULT_TWAP_RANDOMIZATION, DisconnectXResponse, DiscountRate, EmailLoginRequest, EmailRegisterRequest, EndCopySubscriptionResponse, EthereumAddress2 as EthereumAddress, ExchangeCredentialsResponse, ExchangeXLoginRequest, Execution, ExecutionFulfillment, ExecutionIntent, ExecutionLegMode, ExecutionListParams, ExecutionListResponse, ExecutionOrderType, ExecutionStatus, ExternalPosition, ExternalTrigger, ExternalTriggerSource, FeeBps, FeeConnector, FeeDiscountScope, FeeOverrideScope, FeeRecipientResponse, FeeResponse, FeeRole, Fill, FillListParams, FillListResponse, FillOrderBy, FillStatus, ForgotPasswordRequest, ForgotPasswordResponse, FundingInfo, FundingPaymentEntry, FundingQueryParams, FundingResponse, FundingUpdatedData, GetExecutionResponse, GetFeeRecipientParams, bundle_exports as HttpTypes, Instrument, InstrumentFundingMap, InstrumentId, InstrumentListLiteResponse, InstrumentListParams, InstrumentListResponse, InstrumentLite, InstrumentMarginMode, InstrumentPrecision, InstrumentPriceMap, InstrumentScope, InstrumentSymbolToIdMapResponse, InstrumentTradeability, InstrumentTradeabilityReason, InstrumentTradeabilityStatus, InstrumentType, LEADERBOARD_MAX_LIMIT, Ladder, LadderConditionOpen, LadderConfig, LadderListParams, LadderListResponse, LadderResponse, LadderStatus, LeaderSignedAction, LeaderboardArchiveListResponse, LeaderboardArchiveParams, LeaderboardArchivePeriodParams, LeaderboardArchiveResponse, LeaderboardQueryParams, LeaderboardResponse, LeaderboardRow, LeaderboardSnapshotParams, LeaderboardSnapshotQueryParams, LeaderboardSnapshotResponse, LeaderboardSortBy, LeaderboardStatus, LighterAccountTier, LighterUdaResolution, LighterUdaTransaction, LinkEmailRequest, LinkEmailResponse, LinkWalletRequest, LinkWalletResponse, ListApiKeysOutput, ListLighterUdaDepositsParams, ListLighterUdaDepositsResult, LoginMethod, LoginRequest, LoginResponse, LogoutRequest, LogoutResponse, MARKET_BASKET_POSITION_COUNTS_MAX_BASKETS, MAX_FEE_BPS, MAX_VAULTS_PER_CONNECTION, ManagementVaultDataset, ManagementVaultInvalidatedData, MarginMode, MarkNotificationUnreadPayload, MarkNotificationUnreadResponse, MarkNotificationsReadPayload, MarkNotificationsReadResponse, Market, MarketAdjustExecution, MarketBasketPositionCounts, MarketBasketPositionCountsPayload, MarketBasketPositionCountsResponse, MarketBasketsQueryParams, MarketBasketsResponse, MarketCloseExecution, MarketExecution, MarketOpenExecution, MarketOrder, MarketReverseExecution, MarketTotals, MarketsQueryParams, MarketsResponse, MeResponse, MetricTrack, NavBucket, NavBucketPoint, NavRangeQueryParams, NavRangeResponse, NavResolution, NavSnapshot, NavSnapshotResponse, NavStatsQueryParams, NavStatsResponse, NavStatsWindow, Notification, NotificationCategory, NotificationListParams, NotificationListResponse, NotificationMetric, NotificationParameters, NullableNumber, ORDERED_VALIDITY_WINDOW_MESSAGE, OauthGrant, OauthGrantsResponse, OauthInteractionClient, OauthInteractionConfirmRequest, OauthInteractionDetailsResponse, OauthInteractionRedirectResponse, OiStatistics, OiStatisticsQueryParams, OiStatisticsResponse, OpenPosition, OpenPositionLeg, OpenPositionListParams, OpenPositionListResponse, OpenPositionLite, OpenPositionLiteListResponse, OracleTrigger, OracleUnit, OracleValue, Order, OrderStatus, PendingReferralReferee, PortfolioAnalyticsConfig, PortfolioAnalyticsInterval, PortfolioAnalyticsQuery, PortfolioAnalyticsResponse, PortfolioCashflowAmounts, PortfolioCashflowIntervals, PortfolioCashflowSeriesPoint, PortfolioClosedPositionStats, PortfolioOpenSnapshot, PortfolioPairBreakdown, PortfolioQuery, PortfolioResponse, PortfolioSource, PortfolioVolumeAmounts, PortfolioVolumeIntervals, PortfolioVolumeSeriesPoint, Position, PositionClosedReason, PositionEntryPrices, PositionExposure, PositionFillListResponse, PositionInitialExposureUSD, PositionListParams, PositionListResponse, PositionOrigin, PositionStatus, PositionStep, PositionStepLeg, PositionTotalFundingPayment, PositiveAmount, PrepareApproveIntegratorParams, PrepareApproveIntegratorResult, PrepareLighterFastWithdrawParams, PrepareLighterFastWithdrawResult, PriceSource, PriceUpdatedData, PricesQueryParams, PricesResponse, ProfileResponse, ProvisionalFill, ProvisionalFillListResponse, PublicClosedPosition, PublicLadder, PublicOpenPosition, PublicSchedule, PublicTradeLeg, PublicTraderClosedPositionsParams, PublicTraderClosedPositionsResponse, PublicTraderParams, PublicTraderQuery, PublicTraderResponse, PublicTrigger, PublicVaultDataset, PublicVaultInvalidatedData, QuoteFeeParams, RealtimeFunding, RealtimePrice, RebalanceEvent, RebalanceEventListParams, RebalanceEventListResponse, RebalanceEventStatus, RebalanceManual, RebalanceManualResponse, RecommendedBasket, RecommendedBasketLeg, RecommendedBasketListResponse, ReferralReferee, ReferralRefereeListParams, ReferralRefereeListResponse, ReferralStatusResponse, RefineStaticLogicalRules, RefineTrailingConfig, RefineTrailingLogicalRules, RefreshSessionResponse, RefreshTokenRequest, RefreshTokenResponse, RegisterEmailResponse, ReplaceAutoRebalanceConfig, RequestNonceRequest, RequestNonceResponse, ResendVerificationForRegisterRequest, ResendVerificationResponse, ResetPasswordRequest, ResetPasswordResponse, RewardAccrual, RewardAccrualResponse, RewardClaimId, RewardClaimResponse, RewardClaimStatus, RewardClaimStatusResponse, RewardPayoutAvailability, RewardSummaryResponse, SavedBasket, SavedBasketLeg, SavedBasketListResponse, Schedule, ScheduleCancelledReason, ScheduleDetailParams, ScheduleDetailResponse, ScheduleExecutionType, ScheduleIntent, ScheduleListParams, ScheduleListResponse, ScheduleSlice, ScheduleStatus, ScheduleStrategy, SearchTriggersParams, SearchTriggersResponse, SetLeverage, SetLeverageResponse, SetLighterSubAccountMetadataParams, SetTrader, SetTraderResponse, SetTraderResult, SetUnifiedAccount, SetXVisibilityRequest, SetXVisibilityResponse, SnapshotsBulk, SparklinePoint, SparklineRange, StartXLinkRequest, StartXLinkResponse, StartXLoginRequest, StartXLoginResponse, StatisticsTotals, StatisticsTotalsQueryParams, StatisticsTotalsResponse, StpearFeePricing, SubmitApproveIntegratorParams, SubmitApproveIntegratorResult, SubmitChangePubKeyParams, SubmitChangePubKeyResult, SubmitLighterFastWithdrawParams, SubmitLighterFastWithdrawResult, SyncFillsResponse, SyncFillsSinceRequest, SyncFillsSinceResponse, SyncFundingSinceRequest, SyncFundingSinceResponse, SyncMeta, TWAPClose, TWAPOpen, TWAPRandomization, TcaBenchmarkResponse, TcaExecutionResponse, TcaExecutionSummaryContextResponse, TcaExecutionSummaryLegResponse, TcaExecutionSummaryResponse, TcaFillMetricResponse, TcaMetricStatus, TcaPositionQueryParams, TcaPositionResponse, TcaSummaryQueryParams, TcaSummaryResponse, TcaSummaryTotalsResponse, TcaTimingGranularity, TpSlBracketType, TradeAccount, TradeAccountListParams, TradeAccountListResponse, TradeAccountResponse, TradeExecutedData, TradeFill, TradeGroup, TradeLeg, TradeLegPostOnly, TradeLegPostOnlyWithMaxImpactPrice, TradeLegWithMaxImpactPrice, TradeListParams, TradeListResponse, TradePositionEffect, TradePositionState, TradeRealization, TraderPerformancePoint, TraderPerformanceQuery, TraderPerformanceResponse, Trailing, TrailingConfig, TrailingMode, TransferLighterSubAccountParams, TransferLighterSubAccountResult, Trigger, TriggerCancelledReason, TriggerConditionAdjust, TriggerConditionClose, TriggerConditionOpen, TriggerIntent, TriggerListParams, TriggerListResponse, TriggerMarket, TriggerMarketAdjust, TriggerMarketClose, TriggerMarketOpen, TriggerMarketOpenAttachedTrigger, TriggerOutcome, TriggerStatus, TriggerTWAP, TriggerTWAPAdjust, TriggerTWAPClose, TriggerTriggeredPublicData, TypedDataPayload, UnifiedAccountResponse, UnknownExternalFill, UpdateAutoRebalanceConfig, UpdateSavedBasketPayload, UpdateSavedBasketResponse, UpdateTradeAccount, UpdateUserDisplayName, UpdateUserDisplayNameResponse, UpdateUserPreferences, UpdateUserPreferencesResponse, UpdateVaultMetadata, UpdateVaultMetadataResponse, UpdateVaultMetadataResult, UserEventData, UserEventTopic, UserPreferences, UserProfile, Vault, VaultClosedPosition, VaultClosedPositionLeg, VaultClosedPositionListParams, VaultClosedPositionListResponse, VaultDataset, VaultEvent, VaultEventListParams, VaultEventListResponse, VaultInvalidatedData, VaultInvestmentsQueryParams, VaultInvestmentsResponse, VaultListParams, VaultListResponse, VaultOpenPosition, VaultOpenPositionLeg, VaultOpenPositionListParams, VaultOpenPositionListResponse, VaultOverviewResponse, VaultRequestIssue, VaultResponse, VaultServiceError, VaultStatsQueryParams, VaultStatsResponse, VaultStatus, VaultTradeAccountStatus, VaultTradeAccountStatusResponse, VaultsOverviewQueryParams, VerifyEmailRequest, VerifyEmailResponse, ViewerCopyStatus, VolumeStatistics, VolumeStatisticsQueryParams, VolumeStatisticsResponse, WATERMARK_FUTURE_SKEW_MS, WalletLoginRequest, WebsocketAckFrame, WebsocketChannel, WebsocketControlMessage, WebsocketErrorCode, WebsocketErrorFrame, WebsocketEventFrame, WebsocketFrame, WebsocketPongFrame, WebsocketPublicChannel, WebsocketPublicParams, WebsocketRequestErrorCode, WebsocketRequestId, WebsocketTriggerEventsParams, WebsocketUserEventsParams, WebsocketVaultErrorCode, WebsocketVaultEventsParams, WebsocketWelcomeFrame, WeightMap, WithdrawToEvm, WithdrawToEvmResponse, WithdrawToEvmResult, getStaticLogicalIssues, getTrailingDeltaIssues, getTrailingLogicalIssues, hasOrderedValidityWindow, isAttachTriggerMarketCloseTrailing, isPublicVaultDataset };
7613
+ export { Activity, ActivityItemResponse, ActivityResponse, AdjustIsolatedMargin, AdjustIsolatedMarginResponse, AgentApprove, AgentApproveResponse, AgentApproveResult, ApiKeyMeResponse, ApiKeyScope, ApiKeySummary, ApplicableFill, ApplicableFillAssignment, ApplicableMetadata, ApplicablePosition, AppliedFeeDiscount, AttachTriggerMarketClose, AttachTriggerMarketCloseList, AttachTriggerMarketCloseStatic, AttachTriggerMarketCloseTrailing, AuthenticatedUser, AutoRebalanceBetaState, AutoRebalanceConfig, AutoRebalanceListParams, AutoRebalanceListResponse, AutoRebalancePausedReason, AutoRebalanceStatus, AutoRebalanceTimeframe, AutoRebalanceWeightSource, BaseExecution, BasketMarket, BindReferralCode, BoundReferralReferee, BracketType, BuilderFeeApproval, BulkSnapshotPoint, BulkSnapshotsResponse, CancelAllSchedulesResponse, CancelAllTriggersResponse, CancelLadderResponse, CancelScheduleResponse, CancelTriggerResponse, ChangeLighterAccountTierParams, ChangeLighterAccountTierResult, ChangePasswordRequest, ChangePasswordResponse, ClosedPosition, ClosedPositionLeg, ClosedPositionLegSide, ClosedPositionListParams, ClosedPositionListResponse, ConnectedIdentity, Connector, CopyAccountPerformance, CopyActivity, CopyActivityLeg, CopyActivityListParams, CopyActivityListResponse, CopyActivityOutcome, CopyActivityState, CopyActivityTWAP, CopyActivityTWAPReduction, CopyCaptureTiming, CopyControlTransferReason, CopyCoverage, CopyEndCapture, CopyEndCaptureStatus, CopyEndedSubscriptionWithVolume, CopyExecutionSource, CopyFollower, CopyFollowerStats, CopyFollowersResponse, CopyHealthResponse, CopyJoinResult, CopyLeaderAction, CopyManagedPosition, CopyPerformance, CopyPnlBreakdown, CopySizing, CopySkipReason, CopyStartSnapshot, CopyStartingAccount, CopyStateResponse, CopyStatsParams, CopyStatsResponse, CopySubscription, CopySubscriptionListQuery, CopySubscriptionListResponse, CopySubscriptionMetrics, CopySubscriptionRead, CopySubscriptionResponse, CopySubscriptionStatus, CopySubscriptionWithMetrics, CopyUnmanagedFollowerPositionReason, CopyUnmanagedPosition, CreateApiKeyInput, CreateApiKeyOutput, CreateApiKeyWithMessageResult, CreateApplicablesBulkFields, CreateApplicablesMeta, CreateApplicablesRequest, CreateAuthTokenParams, CreateAuthTokenResult, CreateAutoRebalanceConfig, CreateAutoRebalanceResponse, CreateCopySubscription, CreateCopySubscriptionResponse, CreateFundingPaymentsRequest, CreateLadder, CreateLadderMarketOpen, CreateLadderResponse, CreateLighterApiKeyParams, CreateLighterSubAccountParams, CreateLighterSubAccountResult, CreateLighterUdaParams, CreateLighterUdaResult, CreateMarketAdjust, CreateMarketClose, CreateMarketCloseAll, CreateMarketOpen, CreateMarketReverse, CreateReferralCode, CreateRewardClaim, CreateSavedBasketPayload, CreateSavedBasketResponse, CreateSchedule, CreateScheduleResponse, CreateTWAPClose, CreateTWAPOpen, CreateTradeAccount, CreateTradeAdjust, CreateTradeAdjustResponse, CreateTradeClose, CreateTradeCloseAll, CreateTradeCloseAllResponse, CreateTradeCloseResponse, CreateTradeOpen, CreateTradeOpenResponse, CreateTradeReverse, CreateTradeReverseResponse, CreateTriggerClose, CreateTriggerConditionAttachStatic, CreateTriggerConditionAttachTrailing, CreateTriggerConditionCloseStatic, CreateTriggerConditionCloseTrailing, CreateTriggerConditionOpen, CreateTriggerMarketAdjust, CreateTriggerMarketClose, CreateTriggerMarketCloseStatic, CreateTriggerMarketCloseTrailing, CreateTriggerMarketOpen, CreateTriggerOpen, CreateTriggerResponse, CreateTriggerTWAPAdjust, CreateTriggerTWAPClose, CreateTriggerTWAPCloseStatic, CreateTriggerTWAPCloseTrailing, CreateVault, CreateVaultTradeAccount, CreatedVaultResponse, CreatedVaultResult, DEFAULT_TWAP_RANDOMIZATION, DisconnectXResponse, DiscountRate, EmailLoginRequest, EmailRegisterRequest, EndCopySubscriptionResponse, EthereumAddress2 as EthereumAddress, EthereumTransactionHash, ExchangeCredentialsResponse, ExchangeXLoginRequest, Execution, ExecutionFulfillment, ExecutionIntent, ExecutionLegMode, ExecutionListParams, ExecutionListResponse, ExecutionOrderType, ExecutionStatus, ExternalPosition, ExternalTrigger, ExternalTriggerSource, FINAL_TWAP_SLICE_START_HEADROOM_SEC, FeeBps, FeeConnector, FeeDiscountScope, FeeOverrideScope, FeeRecipientResponse, FeeResponse, FeeRole, Fill, FillAssignment, FillListParams, FillListResponse, FillOrderBy, FillStatus, ForgotPasswordRequest, ForgotPasswordResponse, FundingInfo, FundingPaymentEntry, FundingQueryParams, FundingResponse, FundingUpdatedData, GetExecutionResponse, GetFeeRecipientParams, bundle_exports as HttpTypes, Instrument, InstrumentFundingMap, InstrumentId, InstrumentListLiteResponse, InstrumentListParams, InstrumentListResponse, InstrumentLite, InstrumentMarginMode, InstrumentPrecision, InstrumentPriceMap, InstrumentScope, InstrumentSymbolToIdMapResponse, InstrumentTradeability, InstrumentTradeabilityReason, InstrumentTradeabilityStatus, InstrumentType, LEADERBOARD_MAX_LIMIT, Ladder, LadderConditionOpen, LadderConfig, LadderListParams, LadderListResponse, LadderResponse, LadderStatus, LeaderSignedAction, LeaderboardArchiveListResponse, LeaderboardArchiveParams, LeaderboardArchivePeriodParams, LeaderboardArchiveResponse, LeaderboardQueryParams, LeaderboardResponse, LeaderboardRow, LeaderboardSnapshotParams, LeaderboardSnapshotQueryParams, LeaderboardSnapshotResponse, LeaderboardSortBy, LeaderboardStatus, LighterAccountTier, LighterUdaResolution, LighterUdaTransaction, LinkEmailRequest, LinkEmailResponse, LinkWalletRequest, LinkWalletResponse, ListApiKeysOutput, ListLighterUdaDepositsParams, ListLighterUdaDepositsResult, ListRewardClaimsQuery, LoginMethod, LoginRequest, LoginResponse, LogoutRequest, LogoutResponse, MARKET_BASKET_POSITION_COUNTS_MAX_BASKETS, MAX_FEE_BPS, MAX_TWAP_DURATION_SEC, MAX_VAULTS_PER_CONNECTION, MIN_TWAP_SLICE_INTERVAL_SEC, ManagementVaultDataset, ManagementVaultInvalidatedData, MarginMode, MarkNotificationUnreadPayload, MarkNotificationUnreadResponse, MarkNotificationsReadPayload, MarkNotificationsReadResponse, Market, MarketAdjustExecution, MarketBasketPositionCounts, MarketBasketPositionCountsPayload, MarketBasketPositionCountsResponse, MarketBasketsQueryParams, MarketBasketsResponse, MarketCloseExecution, MarketExecution, MarketOpenExecution, MarketOrder, MarketReverseExecution, MarketTotals, MarketsQueryParams, MarketsResponse, MeResponse, MetricTrack, NavBucket, NavBucketPoint, NavRangeQueryParams, NavRangeResponse, NavResolution, NavSnapshot, NavSnapshotResponse, NavStatsQueryParams, NavStatsResponse, NavStatsWindow, Notification, NotificationCategory, NotificationListParams, NotificationListResponse, NotificationMetric, NotificationParameters, NullableNumber, ORDERED_VALIDITY_WINDOW_MESSAGE, OauthGrant, OauthGrantsResponse, OauthInteractionClient, OauthInteractionConfirmRequest, OauthInteractionDetailsResponse, OauthInteractionRedirectResponse, OiStatistics, OiStatisticsQueryParams, OiStatisticsResponse, OpenPosition, OpenPositionLeg, OpenPositionListParams, OpenPositionListResponse, OpenPositionLite, OpenPositionLiteListResponse, OracleTrigger, OracleUnit, OracleValue, Order, OrderStatus, PendingReferralReferee, PortfolioAnalyticsConfig, PortfolioAnalyticsInterval, PortfolioAnalyticsQuery, PortfolioAnalyticsResponse, PortfolioCashflowAmounts, PortfolioCashflowIntervals, PortfolioCashflowSeriesPoint, PortfolioClosedPositionStats, PortfolioOpenSnapshot, PortfolioPairBreakdown, PortfolioQuery, PortfolioResponse, PortfolioSource, PortfolioVolumeAmounts, PortfolioVolumeIntervals, PortfolioVolumeSeriesPoint, Position, PositionClosedReason, PositionEntryPrices, PositionExposure, PositionFill, PositionFillListResponse, PositionInitialExposureUSD, PositionListParams, PositionListResponse, PositionOrigin, PositionStatus, PositionStep, PositionStepLeg, PositionTotalFundingPayment, PositiveAmount, PrepareApproveIntegratorParams, PrepareApproveIntegratorResult, PrepareLighterFastWithdrawParams, PrepareLighterFastWithdrawResult, PriceSource, PriceUpdatedData, PricesQueryParams, PricesResponse, ProfileResponse, ProvisionalFill, ProvisionalFillListResponse, PublicClosedPosition, PublicLadder, PublicOpenPosition, PublicSchedule, PublicTradeLeg, PublicTraderClosedPositionsParams, PublicTraderClosedPositionsResponse, PublicTraderParams, PublicTraderQuery, PublicTraderResponse, PublicTrigger, PublicVaultDataset, PublicVaultInvalidatedData, QuoteFeeParams, RealtimeFunding, RealtimePrice, RebalanceEvent, RebalanceEventListParams, RebalanceEventListResponse, RebalanceEventStatus, RebalanceManual, RebalanceManualResponse, RecommendedBasket, RecommendedBasketLeg, RecommendedBasketListResponse, ReferralReferee, ReferralRefereeListParams, ReferralRefereeListResponse, ReferralStatusResponse, RefineStaticLogicalRules, RefineTrailingConfig, RefineTrailingLogicalRules, RefreshSessionResponse, RefreshTokenRequest, RefreshTokenResponse, RegisterEmailResponse, ReplaceAutoRebalanceConfig, RequestNonceRequest, RequestNonceResponse, ResendVerificationForRegisterRequest, ResendVerificationResponse, ResetPasswordRequest, ResetPasswordResponse, ResizeBehavior, RewardAccrual, RewardAccrualResponse, RewardClaimId, RewardClaimListResponse, RewardClaimResponse, RewardClaimStatus, RewardClaimStatusResponse, RewardPayoutAvailability, RewardSourceAccrual, RewardSummaryResponse, SavedBasket, SavedBasketLeg, SavedBasketListResponse, Schedule, ScheduleCancelledReason, ScheduleDetailParams, ScheduleDetailResponse, ScheduleExecutionType, ScheduleFailedReason, ScheduleFailure, ScheduleIntent, ScheduleListParams, ScheduleListResponse, ScheduleSlice, ScheduleStatus, ScheduleStrategy, SearchTriggersParams, SearchTriggersResponse, SetLeverage, SetLeverageResponse, SetLighterSubAccountMetadataParams, SetTrader, SetTraderResponse, SetTraderResult, SetUnifiedAccount, SetXVisibilityRequest, SetXVisibilityResponse, SnapshotsBulk, SparklinePoint, SparklineRange, StartXLinkRequest, StartXLinkResponse, StartXLoginRequest, StartXLoginResponse, StatisticsTotals, StatisticsTotalsQueryParams, StatisticsTotalsResponse, StpearFeePricing, SubmitApproveIntegratorParams, SubmitApproveIntegratorResult, SubmitChangePubKeyParams, SubmitChangePubKeyResult, SubmitLighterFastWithdrawParams, SubmitLighterFastWithdrawResult, SyncFillsResponse, SyncFillsSinceRequest, SyncFillsSinceResponse, SyncFundingSinceRequest, SyncFundingSinceResponse, SyncMeta, TWAPClose, TWAPOpen, TWAPRandomization, TcaBenchmarkResponse, TcaExecutionResponse, TcaExecutionSummaryContextResponse, TcaExecutionSummaryLegResponse, TcaExecutionSummaryResponse, TcaFillMetricResponse, TcaMetricStatus, TcaPositionQueryParams, TcaPositionResponse, TcaSummaryQueryParams, TcaSummaryResponse, TcaSummaryTotalsResponse, TcaTimingGranularity, TpSlBracketType, TradeAccount, TradeAccountListParams, TradeAccountListResponse, TradeAccountResponse, TradeExecutedData, TradeFill, TradeGroup, TradeLeg, TradeLegPostOnly, TradeLegPostOnlyWithMaxImpactPrice, TradeLegWithMaxImpactPrice, TradeListParams, TradeListResponse, TradePositionEffect, TradePositionState, TradeRealization, TraderPerformancePoint, TraderPerformanceQuery, TraderPerformanceResponse, Trailing, TrailingConfig, TrailingMode, TransferLighterSubAccountParams, TransferLighterSubAccountResult, Trigger, TriggerCancelledReason, TriggerConditionAdjust, TriggerConditionClose, TriggerConditionOpen, TriggerIntent, TriggerListParams, TriggerListResponse, TriggerMarket, TriggerMarketAdjust, TriggerMarketClose, TriggerMarketOpen, TriggerMarketOpenAttachedTrigger, TriggerOutcome, TriggerStatus, TriggerTWAP, TriggerTWAPAdjust, TriggerTWAPClose, TriggerTriggeredPublicData, TypedDataPayload, UnifiedAccountResponse, UnknownExternalFill, UpdateAutoRebalanceConfig, UpdateSavedBasketPayload, UpdateSavedBasketResponse, UpdateTradeAccount, UpdateUserDisplayName, UpdateUserDisplayNameResponse, UpdateUserPreferences, UpdateUserPreferencesResponse, UpdateVaultMetadata, UpdateVaultMetadataResponse, UpdateVaultMetadataResult, UserEventData, UserEventTopic, UserPreferences, UserProfile, Vault, VaultClosedPosition, VaultClosedPositionLeg, VaultClosedPositionListParams, VaultClosedPositionListResponse, VaultDataset, VaultEvent, VaultEventListParams, VaultEventListResponse, VaultInvalidatedData, VaultInvestmentsQueryParams, VaultInvestmentsResponse, VaultListParams, VaultListResponse, VaultOpenPosition, VaultOpenPositionLeg, VaultOpenPositionListParams, VaultOpenPositionListResponse, VaultOverviewResponse, VaultRequestIssue, VaultResponse, VaultServiceError, VaultStatsQueryParams, VaultStatsResponse, VaultStatus, VaultTradeAccountStatus, VaultTradeAccountStatusResponse, VaultsOverviewQueryParams, VerifyEmailRequest, VerifyEmailResponse, ViewerCopyStatus, VolumeStatistics, VolumeStatisticsQueryParams, VolumeStatisticsResponse, WATERMARK_FUTURE_SKEW_MS, WalletLoginRequest, WebsocketAckFrame, WebsocketChannel, WebsocketControlMessage, WebsocketErrorCode, WebsocketErrorFrame, WebsocketEventFrame, WebsocketFrame, WebsocketPongFrame, WebsocketPublicChannel, WebsocketPublicParams, WebsocketRequestErrorCode, WebsocketRequestId, WebsocketTriggerEventsParams, WebsocketUserEventsParams, WebsocketVaultErrorCode, WebsocketVaultEventsParams, WebsocketWelcomeFrame, WeightMap, WithdrawToEvm, WithdrawToEvmResponse, WithdrawToEvmResult, getStaticLogicalIssues, getTrailingDeltaIssues, getTrailingLogicalIssues, hasOrderedValidityWindow, isAttachTriggerMarketCloseTrailing, isPublicVaultDataset };