jcc_hyper_tool 0.1.4 → 0.1.6

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 (179) hide show
  1. package/README.md +159 -21
  2. package/dist/advisor/actionRunner.d.ts +35 -0
  3. package/dist/advisor/actionRunner.d.ts.map +1 -0
  4. package/dist/advisor/actionRunner.js +194 -0
  5. package/dist/advisor/actionRunner.js.map +1 -0
  6. package/dist/advisor/actionSchema.d.ts +1551 -0
  7. package/dist/advisor/actionSchema.d.ts.map +1 -0
  8. package/dist/advisor/actionSchema.js +202 -0
  9. package/dist/advisor/actionSchema.js.map +1 -0
  10. package/dist/advisor/adviseDisplay.d.ts +26 -0
  11. package/dist/advisor/adviseDisplay.d.ts.map +1 -0
  12. package/dist/advisor/adviseDisplay.js +174 -0
  13. package/dist/advisor/adviseDisplay.js.map +1 -0
  14. package/dist/advisor/adviseEngine.d.ts +53 -0
  15. package/dist/advisor/adviseEngine.d.ts.map +1 -0
  16. package/dist/advisor/adviseEngine.js +172 -0
  17. package/dist/advisor/adviseEngine.js.map +1 -0
  18. package/dist/advisor/ambushPolicy.d.ts +47 -0
  19. package/dist/advisor/ambushPolicy.d.ts.map +1 -0
  20. package/dist/advisor/ambushPolicy.js +161 -0
  21. package/dist/advisor/ambushPolicy.js.map +1 -0
  22. package/dist/advisor/contextBuilder.d.ts +51 -0
  23. package/dist/advisor/contextBuilder.d.ts.map +1 -0
  24. package/dist/advisor/contextBuilder.js +153 -0
  25. package/dist/advisor/contextBuilder.js.map +1 -0
  26. package/dist/advisor/deepseekClient.d.ts +26 -0
  27. package/dist/advisor/deepseekClient.d.ts.map +1 -0
  28. package/dist/advisor/deepseekClient.js +96 -0
  29. package/dist/advisor/deepseekClient.js.map +1 -0
  30. package/dist/advisor/executionPolicy.d.ts +92 -0
  31. package/dist/advisor/executionPolicy.d.ts.map +1 -0
  32. package/dist/advisor/executionPolicy.js +273 -0
  33. package/dist/advisor/executionPolicy.js.map +1 -0
  34. package/dist/advisor/guards.d.ts +31 -0
  35. package/dist/advisor/guards.d.ts.map +1 -0
  36. package/dist/advisor/guards.js +198 -0
  37. package/dist/advisor/guards.js.map +1 -0
  38. package/dist/advisor/indicatorCompute.d.ts +45 -0
  39. package/dist/advisor/indicatorCompute.d.ts.map +1 -0
  40. package/dist/advisor/indicatorCompute.js +259 -0
  41. package/dist/advisor/indicatorCompute.js.map +1 -0
  42. package/dist/advisor/positionPlan.d.ts +33 -0
  43. package/dist/advisor/positionPlan.d.ts.map +1 -0
  44. package/dist/advisor/positionPlan.js +118 -0
  45. package/dist/advisor/positionPlan.js.map +1 -0
  46. package/dist/advisor/promptTemplate.d.ts +11 -0
  47. package/dist/advisor/promptTemplate.d.ts.map +1 -0
  48. package/dist/advisor/promptTemplate.js +230 -0
  49. package/dist/advisor/promptTemplate.js.map +1 -0
  50. package/dist/advisor/sessionLog.d.ts +41 -0
  51. package/dist/advisor/sessionLog.d.ts.map +1 -0
  52. package/dist/advisor/sessionLog.js +7 -0
  53. package/dist/advisor/sessionLog.js.map +1 -0
  54. package/dist/advisor/touchProbability.d.ts +54 -0
  55. package/dist/advisor/touchProbability.d.ts.map +1 -0
  56. package/dist/advisor/touchProbability.js +215 -0
  57. package/dist/advisor/touchProbability.js.map +1 -0
  58. package/dist/advisor/tpslPolicy.d.ts +22 -0
  59. package/dist/advisor/tpslPolicy.d.ts.map +1 -0
  60. package/dist/advisor/tpslPolicy.js +120 -0
  61. package/dist/advisor/tpslPolicy.js.map +1 -0
  62. package/dist/cli/advisorCli.d.ts +3 -0
  63. package/dist/cli/advisorCli.d.ts.map +1 -0
  64. package/dist/cli/advisorCli.js +706 -0
  65. package/dist/cli/advisorCli.js.map +1 -0
  66. package/dist/cli/index.js +6 -2
  67. package/dist/cli/index.js.map +1 -1
  68. package/dist/cli/riskCli.d.ts +3 -0
  69. package/dist/cli/riskCli.d.ts.map +1 -0
  70. package/dist/cli/riskCli.js +120 -0
  71. package/dist/cli/riskCli.js.map +1 -0
  72. package/dist/cli/strategyCli.d.ts.map +1 -1
  73. package/dist/cli/strategyCli.js +4 -2
  74. package/dist/cli/strategyCli.js.map +1 -1
  75. package/dist/cli/tradingCli.d.ts.map +1 -1
  76. package/dist/cli/tradingCli.js +34 -2
  77. package/dist/cli/tradingCli.js.map +1 -1
  78. package/dist/core/cliBin.d.ts +8 -0
  79. package/dist/core/cliBin.d.ts.map +1 -0
  80. package/dist/core/cliBin.js +15 -0
  81. package/dist/core/cliBin.js.map +1 -0
  82. package/dist/core/errorFormat.d.ts +7 -0
  83. package/dist/core/errorFormat.d.ts.map +1 -0
  84. package/dist/core/errorFormat.js +59 -0
  85. package/dist/core/errorFormat.js.map +1 -0
  86. package/dist/core/errors.d.ts +2 -1
  87. package/dist/core/errors.d.ts.map +1 -1
  88. package/dist/core/errors.js +3 -1
  89. package/dist/core/errors.js.map +1 -1
  90. package/dist/core/hyperliquid/asset.d.ts +2 -0
  91. package/dist/core/hyperliquid/asset.d.ts.map +1 -1
  92. package/dist/core/hyperliquid/asset.js +25 -0
  93. package/dist/core/hyperliquid/asset.js.map +1 -1
  94. package/dist/core/hyperliquid/client.d.ts +3 -0
  95. package/dist/core/hyperliquid/client.d.ts.map +1 -1
  96. package/dist/core/hyperliquid/client.js +31 -21
  97. package/dist/core/hyperliquid/client.js.map +1 -1
  98. package/dist/core/hyperliquid/exchange.d.ts +3 -0
  99. package/dist/core/hyperliquid/exchange.d.ts.map +1 -1
  100. package/dist/core/hyperliquid/exchange.js +31 -21
  101. package/dist/core/hyperliquid/exchange.js.map +1 -1
  102. package/dist/core/hyperliquid/exchangeParse.d.ts +3 -0
  103. package/dist/core/hyperliquid/exchangeParse.d.ts.map +1 -1
  104. package/dist/core/hyperliquid/exchangeParse.js +62 -0
  105. package/dist/core/hyperliquid/exchangeParse.js.map +1 -1
  106. package/dist/core/hyperliquid/httpRequest.d.ts +36 -0
  107. package/dist/core/hyperliquid/httpRequest.d.ts.map +1 -0
  108. package/dist/core/hyperliquid/httpRequest.js +171 -0
  109. package/dist/core/hyperliquid/httpRequest.js.map +1 -0
  110. package/dist/core/hyperliquid/orders.d.ts +5 -0
  111. package/dist/core/hyperliquid/orders.d.ts.map +1 -1
  112. package/dist/core/hyperliquid/orders.js +15 -5
  113. package/dist/core/hyperliquid/orders.js.map +1 -1
  114. package/dist/core/hyperliquid/rounding.d.ts +23 -0
  115. package/dist/core/hyperliquid/rounding.d.ts.map +1 -0
  116. package/dist/core/hyperliquid/rounding.js +53 -0
  117. package/dist/core/hyperliquid/rounding.js.map +1 -0
  118. package/dist/core/risk/isolatedTopUp.d.ts +112 -0
  119. package/dist/core/risk/isolatedTopUp.d.ts.map +1 -0
  120. package/dist/core/risk/isolatedTopUp.js +209 -0
  121. package/dist/core/risk/isolatedTopUp.js.map +1 -0
  122. package/dist/core/risk/isolatedTopUpHistory.d.ts +7 -0
  123. package/dist/core/risk/isolatedTopUpHistory.d.ts.map +1 -0
  124. package/dist/core/risk/isolatedTopUpHistory.js +26 -0
  125. package/dist/core/risk/isolatedTopUpHistory.js.map +1 -0
  126. package/dist/core/risk/isolatedTopUpParse.d.ts +16 -0
  127. package/dist/core/risk/isolatedTopUpParse.d.ts.map +1 -0
  128. package/dist/core/risk/isolatedTopUpParse.js +78 -0
  129. package/dist/core/risk/isolatedTopUpParse.js.map +1 -0
  130. package/dist/core/risk/runIsolatedTopUpReconcile.d.ts +28 -0
  131. package/dist/core/risk/runIsolatedTopUpReconcile.d.ts.map +1 -0
  132. package/dist/core/risk/runIsolatedTopUpReconcile.js +184 -0
  133. package/dist/core/risk/runIsolatedTopUpReconcile.js.map +1 -0
  134. package/dist/core/state/gcTradeState.js +1 -1
  135. package/dist/core/state/gcTradeState.js.map +1 -1
  136. package/dist/core/state/gridReconcile.d.ts +2 -0
  137. package/dist/core/state/gridReconcile.d.ts.map +1 -1
  138. package/dist/core/state/gridReconcile.js +42 -2
  139. package/dist/core/state/gridReconcile.js.map +1 -1
  140. package/dist/core/state/intentFactory.d.ts +1 -0
  141. package/dist/core/state/intentFactory.d.ts.map +1 -1
  142. package/dist/core/state/intentFactory.js +1 -0
  143. package/dist/core/state/intentFactory.js.map +1 -1
  144. package/dist/core/state/profileStore.d.ts +6 -0
  145. package/dist/core/state/profileStore.d.ts.map +1 -0
  146. package/dist/core/state/profileStore.js +26 -0
  147. package/dist/core/state/profileStore.js.map +1 -0
  148. package/dist/core/state/runReconcile.d.ts.map +1 -1
  149. package/dist/core/state/runReconcile.js +92 -30
  150. package/dist/core/state/runReconcile.js.map +1 -1
  151. package/dist/core/state/schema.d.ts +565 -124
  152. package/dist/core/state/schema.d.ts.map +1 -1
  153. package/dist/core/state/schema.js +62 -0
  154. package/dist/core/state/schema.js.map +1 -1
  155. package/dist/core/state/snapshot.d.ts +13 -0
  156. package/dist/core/state/snapshot.d.ts.map +1 -1
  157. package/dist/core/state/snapshot.js +36 -0
  158. package/dist/core/state/snapshot.js.map +1 -1
  159. package/dist/core/state/statePaths.d.ts +1 -0
  160. package/dist/core/state/statePaths.d.ts.map +1 -1
  161. package/dist/core/state/statePaths.js +4 -0
  162. package/dist/core/state/statePaths.js.map +1 -1
  163. package/dist/core/state/store.d.ts +21 -3
  164. package/dist/core/state/store.d.ts.map +1 -1
  165. package/dist/core/state/store.js +123 -14
  166. package/dist/core/state/store.js.map +1 -1
  167. package/dist/core/state/types.d.ts +13 -0
  168. package/dist/core/state/types.d.ts.map +1 -1
  169. package/dist/daemon/index.js +50 -5
  170. package/dist/daemon/index.js.map +1 -1
  171. package/dist/daemon/validateChild.d.ts +13 -0
  172. package/dist/daemon/validateChild.d.ts.map +1 -0
  173. package/dist/daemon/validateChild.js +77 -0
  174. package/dist/daemon/validateChild.js.map +1 -0
  175. package/dist/strategies/grid.d.ts +1 -0
  176. package/dist/strategies/grid.d.ts.map +1 -1
  177. package/dist/strategies/grid.js +1 -0
  178. package/dist/strategies/grid.js.map +1 -1
  179. package/package.json +3 -1
@@ -11,6 +11,8 @@ declare const BracketIntentSchema: z.ZodObject<{
11
11
  entryLimitPx: z.ZodNumber;
12
12
  entrySz: z.ZodNumber;
13
13
  tif: z.ZodEnum<["Gtc", "Ioc", "Alo"]>;
14
+ /** Trading strategy: ambush (limit entry, wider SL/TP) or scalp (market entry, tight SL/TP). */
15
+ strategy: z.ZodOptional<z.ZodEnum<["scalp", "ambush"]>>;
14
16
  entryReduceOnly: z.ZodOptional<z.ZodBoolean>;
15
17
  tpTriggerPx: z.ZodNumber;
16
18
  slTriggerPx: z.ZodNumber;
@@ -48,9 +50,10 @@ declare const BracketIntentSchema: z.ZodObject<{
48
50
  slTriggerPx: number;
49
51
  tpslIsMarket: boolean;
50
52
  protectionReduceOnly: boolean;
51
- phase: "cancelled" | "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "expired" | "error";
52
- network?: string | undefined;
53
+ phase: "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "cancelled" | "expired" | "error";
53
54
  dex?: string | undefined;
55
+ network?: string | undefined;
56
+ strategy?: "scalp" | "ambush" | undefined;
54
57
  entryReduceOnly?: boolean | undefined;
55
58
  tpslLimitPx?: number | undefined;
56
59
  entryOid?: number | undefined;
@@ -76,9 +79,10 @@ declare const BracketIntentSchema: z.ZodObject<{
76
79
  tpTriggerPx: number;
77
80
  slTriggerPx: number;
78
81
  tpslIsMarket: boolean;
79
- phase: "cancelled" | "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "expired" | "error";
80
- network?: string | undefined;
82
+ phase: "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "cancelled" | "expired" | "error";
81
83
  dex?: string | undefined;
84
+ network?: string | undefined;
85
+ strategy?: "scalp" | "ambush" | undefined;
82
86
  entryReduceOnly?: boolean | undefined;
83
87
  tpslLimitPx?: number | undefined;
84
88
  protectionReduceOnly?: boolean | undefined;
@@ -117,6 +121,8 @@ declare const GridIntentSchema: z.ZodObject<{
117
121
  replenishGapPx: z.ZodOptional<z.ZodNumber>;
118
122
  /** Idempotency for grid replenishment (plan:/done: prefixes, see mergeGridReplenishDedupe). */
119
123
  replenishDedupeKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
124
+ /** User set this to true to regenerate legs from current lower/upper/grids/bias on next reconcile. */
125
+ regenerateGrid: z.ZodOptional<z.ZodBoolean>;
120
126
  legs: z.ZodArray<z.ZodObject<{
121
127
  index: z.ZodNumber;
122
128
  px: z.ZodNumber;
@@ -138,10 +144,10 @@ declare const GridIntentSchema: z.ZodObject<{
138
144
  fillPx: number;
139
145
  }>>;
140
146
  }, "strip", z.ZodTypeAny, {
147
+ isBuy: boolean;
141
148
  index: number;
142
149
  px: number;
143
- isBuy: boolean;
144
- legPhase: "pending" | "open" | "partial" | "filled" | "cancelled";
150
+ legPhase: "partial" | "cancelled" | "pending" | "open" | "filled";
145
151
  oid?: number | undefined;
146
152
  lastSz?: number | undefined;
147
153
  lastOrigSz?: number | undefined;
@@ -150,10 +156,10 @@ declare const GridIntentSchema: z.ZodObject<{
150
156
  fillPx: number;
151
157
  } | undefined;
152
158
  }, {
159
+ isBuy: boolean;
153
160
  index: number;
154
161
  px: number;
155
- isBuy: boolean;
156
- legPhase: "pending" | "open" | "partial" | "filled" | "cancelled";
162
+ legPhase: "partial" | "cancelled" | "pending" | "open" | "filled";
157
163
  oid?: number | undefined;
158
164
  lastSz?: number | undefined;
159
165
  lastOrigSz?: number | undefined;
@@ -164,7 +170,6 @@ declare const GridIntentSchema: z.ZodObject<{
164
170
  }>, "many">;
165
171
  }, "strip", z.ZodTypeAny, {
166
172
  coin: string;
167
- reduceOnly: boolean;
168
173
  kind: "grid";
169
174
  id: string;
170
175
  createdAtMs: number;
@@ -175,11 +180,12 @@ declare const GridIntentSchema: z.ZodObject<{
175
180
  grids: number;
176
181
  orderSz: number;
177
182
  bias: "symmetric" | "long" | "short";
183
+ reduceOnly: boolean;
178
184
  legs: {
185
+ isBuy: boolean;
179
186
  index: number;
180
187
  px: number;
181
- isBuy: boolean;
182
- legPhase: "pending" | "open" | "partial" | "filled" | "cancelled";
188
+ legPhase: "partial" | "cancelled" | "pending" | "open" | "filled";
183
189
  oid?: number | undefined;
184
190
  lastSz?: number | undefined;
185
191
  lastOrigSz?: number | undefined;
@@ -188,14 +194,14 @@ declare const GridIntentSchema: z.ZodObject<{
188
194
  fillPx: number;
189
195
  } | undefined;
190
196
  }[];
191
- network?: string | undefined;
192
197
  dex?: string | undefined;
198
+ network?: string | undefined;
193
199
  maxOrders?: number | undefined;
194
200
  replenishGapPx?: number | undefined;
195
201
  replenishDedupeKeys?: string[] | undefined;
202
+ regenerateGrid?: boolean | undefined;
196
203
  }, {
197
204
  coin: string;
198
- reduceOnly: boolean;
199
205
  kind: "grid";
200
206
  id: string;
201
207
  createdAtMs: number;
@@ -206,11 +212,12 @@ declare const GridIntentSchema: z.ZodObject<{
206
212
  grids: number;
207
213
  orderSz: number;
208
214
  bias: "symmetric" | "long" | "short";
215
+ reduceOnly: boolean;
209
216
  legs: {
217
+ isBuy: boolean;
210
218
  index: number;
211
219
  px: number;
212
- isBuy: boolean;
213
- legPhase: "pending" | "open" | "partial" | "filled" | "cancelled";
220
+ legPhase: "partial" | "cancelled" | "pending" | "open" | "filled";
214
221
  oid?: number | undefined;
215
222
  lastSz?: number | undefined;
216
223
  lastOrigSz?: number | undefined;
@@ -219,11 +226,12 @@ declare const GridIntentSchema: z.ZodObject<{
219
226
  fillPx: number;
220
227
  } | undefined;
221
228
  }[];
222
- network?: string | undefined;
223
229
  dex?: string | undefined;
230
+ network?: string | undefined;
224
231
  maxOrders?: number | undefined;
225
232
  replenishGapPx?: number | undefined;
226
233
  replenishDedupeKeys?: string[] | undefined;
234
+ regenerateGrid?: boolean | undefined;
227
235
  }>;
228
236
  declare const SingleLimitIntentSchema: z.ZodObject<{
229
237
  kind: z.ZodLiteral<"single_limit">;
@@ -239,31 +247,31 @@ declare const SingleLimitIntentSchema: z.ZodObject<{
239
247
  reduceOnly: z.ZodBoolean;
240
248
  oid: z.ZodOptional<z.ZodNumber>;
241
249
  }, "strip", z.ZodTypeAny, {
242
- coin: string;
243
250
  sz: number;
244
- reduceOnly: boolean;
245
- limitPx: number;
251
+ coin: string;
246
252
  kind: "single_limit";
247
253
  id: string;
248
254
  createdAtMs: number;
249
255
  updatedAtMs: number;
250
256
  entrySide: "buy" | "sell";
251
257
  tif: "Gtc" | "Ioc" | "Alo";
252
- dex?: string | undefined;
258
+ reduceOnly: boolean;
259
+ limitPx: number;
253
260
  oid?: number | undefined;
261
+ dex?: string | undefined;
254
262
  }, {
255
- coin: string;
256
263
  sz: number;
257
- reduceOnly: boolean;
258
- limitPx: number;
264
+ coin: string;
259
265
  kind: "single_limit";
260
266
  id: string;
261
267
  createdAtMs: number;
262
268
  updatedAtMs: number;
263
269
  entrySide: "buy" | "sell";
264
270
  tif: "Gtc" | "Ioc" | "Alo";
265
- dex?: string | undefined;
271
+ reduceOnly: boolean;
272
+ limitPx: number;
266
273
  oid?: number | undefined;
274
+ dex?: string | undefined;
267
275
  }>;
268
276
  declare const StandaloneTpslIntentSchema: z.ZodObject<{
269
277
  kind: z.ZodLiteral<"standalone_tpsl">;
@@ -281,34 +289,34 @@ declare const StandaloneTpslIntentSchema: z.ZodObject<{
281
289
  reduceOnly: z.ZodBoolean;
282
290
  oid: z.ZodOptional<z.ZodNumber>;
283
291
  }, "strip", z.ZodTypeAny, {
284
- coin: string;
285
292
  side: "buy" | "sell";
286
293
  sz: number;
287
- reduceOnly: boolean;
288
- triggerPx: number;
294
+ coin: string;
289
295
  kind: "standalone_tpsl";
290
296
  id: string;
291
297
  createdAtMs: number;
292
298
  updatedAtMs: number;
299
+ reduceOnly: boolean;
300
+ triggerPx: number;
293
301
  tpsl: "tp" | "sl";
294
302
  isMarket: boolean;
295
- dex?: string | undefined;
296
303
  oid?: number | undefined;
304
+ dex?: string | undefined;
297
305
  limitPx?: number | undefined;
298
306
  }, {
299
- coin: string;
300
307
  side: "buy" | "sell";
301
308
  sz: number;
302
- reduceOnly: boolean;
303
- triggerPx: number;
309
+ coin: string;
304
310
  kind: "standalone_tpsl";
305
311
  id: string;
306
312
  createdAtMs: number;
307
313
  updatedAtMs: number;
314
+ reduceOnly: boolean;
315
+ triggerPx: number;
308
316
  tpsl: "tp" | "sl";
309
317
  isMarket: boolean;
310
- dex?: string | undefined;
311
318
  oid?: number | undefined;
319
+ dex?: string | undefined;
312
320
  limitPx?: number | undefined;
313
321
  }>;
314
322
  export declare const IntentRecordSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
@@ -323,6 +331,8 @@ export declare const IntentRecordSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodO
323
331
  entryLimitPx: z.ZodNumber;
324
332
  entrySz: z.ZodNumber;
325
333
  tif: z.ZodEnum<["Gtc", "Ioc", "Alo"]>;
334
+ /** Trading strategy: ambush (limit entry, wider SL/TP) or scalp (market entry, tight SL/TP). */
335
+ strategy: z.ZodOptional<z.ZodEnum<["scalp", "ambush"]>>;
326
336
  entryReduceOnly: z.ZodOptional<z.ZodBoolean>;
327
337
  tpTriggerPx: z.ZodNumber;
328
338
  slTriggerPx: z.ZodNumber;
@@ -360,9 +370,10 @@ export declare const IntentRecordSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodO
360
370
  slTriggerPx: number;
361
371
  tpslIsMarket: boolean;
362
372
  protectionReduceOnly: boolean;
363
- phase: "cancelled" | "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "expired" | "error";
364
- network?: string | undefined;
373
+ phase: "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "cancelled" | "expired" | "error";
365
374
  dex?: string | undefined;
375
+ network?: string | undefined;
376
+ strategy?: "scalp" | "ambush" | undefined;
366
377
  entryReduceOnly?: boolean | undefined;
367
378
  tpslLimitPx?: number | undefined;
368
379
  entryOid?: number | undefined;
@@ -388,9 +399,10 @@ export declare const IntentRecordSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodO
388
399
  tpTriggerPx: number;
389
400
  slTriggerPx: number;
390
401
  tpslIsMarket: boolean;
391
- phase: "cancelled" | "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "expired" | "error";
392
- network?: string | undefined;
402
+ phase: "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "cancelled" | "expired" | "error";
393
403
  dex?: string | undefined;
404
+ network?: string | undefined;
405
+ strategy?: "scalp" | "ambush" | undefined;
394
406
  entryReduceOnly?: boolean | undefined;
395
407
  tpslLimitPx?: number | undefined;
396
408
  protectionReduceOnly?: boolean | undefined;
@@ -428,6 +440,8 @@ export declare const IntentRecordSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodO
428
440
  replenishGapPx: z.ZodOptional<z.ZodNumber>;
429
441
  /** Idempotency for grid replenishment (plan:/done: prefixes, see mergeGridReplenishDedupe). */
430
442
  replenishDedupeKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
443
+ /** User set this to true to regenerate legs from current lower/upper/grids/bias on next reconcile. */
444
+ regenerateGrid: z.ZodOptional<z.ZodBoolean>;
431
445
  legs: z.ZodArray<z.ZodObject<{
432
446
  index: z.ZodNumber;
433
447
  px: z.ZodNumber;
@@ -449,10 +463,10 @@ export declare const IntentRecordSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodO
449
463
  fillPx: number;
450
464
  }>>;
451
465
  }, "strip", z.ZodTypeAny, {
466
+ isBuy: boolean;
452
467
  index: number;
453
468
  px: number;
454
- isBuy: boolean;
455
- legPhase: "pending" | "open" | "partial" | "filled" | "cancelled";
469
+ legPhase: "partial" | "cancelled" | "pending" | "open" | "filled";
456
470
  oid?: number | undefined;
457
471
  lastSz?: number | undefined;
458
472
  lastOrigSz?: number | undefined;
@@ -461,10 +475,10 @@ export declare const IntentRecordSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodO
461
475
  fillPx: number;
462
476
  } | undefined;
463
477
  }, {
478
+ isBuy: boolean;
464
479
  index: number;
465
480
  px: number;
466
- isBuy: boolean;
467
- legPhase: "pending" | "open" | "partial" | "filled" | "cancelled";
481
+ legPhase: "partial" | "cancelled" | "pending" | "open" | "filled";
468
482
  oid?: number | undefined;
469
483
  lastSz?: number | undefined;
470
484
  lastOrigSz?: number | undefined;
@@ -475,7 +489,6 @@ export declare const IntentRecordSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodO
475
489
  }>, "many">;
476
490
  }, "strip", z.ZodTypeAny, {
477
491
  coin: string;
478
- reduceOnly: boolean;
479
492
  kind: "grid";
480
493
  id: string;
481
494
  createdAtMs: number;
@@ -486,11 +499,12 @@ export declare const IntentRecordSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodO
486
499
  grids: number;
487
500
  orderSz: number;
488
501
  bias: "symmetric" | "long" | "short";
502
+ reduceOnly: boolean;
489
503
  legs: {
504
+ isBuy: boolean;
490
505
  index: number;
491
506
  px: number;
492
- isBuy: boolean;
493
- legPhase: "pending" | "open" | "partial" | "filled" | "cancelled";
507
+ legPhase: "partial" | "cancelled" | "pending" | "open" | "filled";
494
508
  oid?: number | undefined;
495
509
  lastSz?: number | undefined;
496
510
  lastOrigSz?: number | undefined;
@@ -499,14 +513,14 @@ export declare const IntentRecordSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodO
499
513
  fillPx: number;
500
514
  } | undefined;
501
515
  }[];
502
- network?: string | undefined;
503
516
  dex?: string | undefined;
517
+ network?: string | undefined;
504
518
  maxOrders?: number | undefined;
505
519
  replenishGapPx?: number | undefined;
506
520
  replenishDedupeKeys?: string[] | undefined;
521
+ regenerateGrid?: boolean | undefined;
507
522
  }, {
508
523
  coin: string;
509
- reduceOnly: boolean;
510
524
  kind: "grid";
511
525
  id: string;
512
526
  createdAtMs: number;
@@ -517,11 +531,12 @@ export declare const IntentRecordSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodO
517
531
  grids: number;
518
532
  orderSz: number;
519
533
  bias: "symmetric" | "long" | "short";
534
+ reduceOnly: boolean;
520
535
  legs: {
536
+ isBuy: boolean;
521
537
  index: number;
522
538
  px: number;
523
- isBuy: boolean;
524
- legPhase: "pending" | "open" | "partial" | "filled" | "cancelled";
539
+ legPhase: "partial" | "cancelled" | "pending" | "open" | "filled";
525
540
  oid?: number | undefined;
526
541
  lastSz?: number | undefined;
527
542
  lastOrigSz?: number | undefined;
@@ -530,11 +545,12 @@ export declare const IntentRecordSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodO
530
545
  fillPx: number;
531
546
  } | undefined;
532
547
  }[];
533
- network?: string | undefined;
534
548
  dex?: string | undefined;
549
+ network?: string | undefined;
535
550
  maxOrders?: number | undefined;
536
551
  replenishGapPx?: number | undefined;
537
552
  replenishDedupeKeys?: string[] | undefined;
553
+ regenerateGrid?: boolean | undefined;
538
554
  }>, z.ZodObject<{
539
555
  kind: z.ZodLiteral<"single_limit">;
540
556
  id: z.ZodString;
@@ -549,31 +565,31 @@ export declare const IntentRecordSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodO
549
565
  reduceOnly: z.ZodBoolean;
550
566
  oid: z.ZodOptional<z.ZodNumber>;
551
567
  }, "strip", z.ZodTypeAny, {
552
- coin: string;
553
568
  sz: number;
554
- reduceOnly: boolean;
555
- limitPx: number;
569
+ coin: string;
556
570
  kind: "single_limit";
557
571
  id: string;
558
572
  createdAtMs: number;
559
573
  updatedAtMs: number;
560
574
  entrySide: "buy" | "sell";
561
575
  tif: "Gtc" | "Ioc" | "Alo";
562
- dex?: string | undefined;
576
+ reduceOnly: boolean;
577
+ limitPx: number;
563
578
  oid?: number | undefined;
579
+ dex?: string | undefined;
564
580
  }, {
565
- coin: string;
566
581
  sz: number;
567
- reduceOnly: boolean;
568
- limitPx: number;
582
+ coin: string;
569
583
  kind: "single_limit";
570
584
  id: string;
571
585
  createdAtMs: number;
572
586
  updatedAtMs: number;
573
587
  entrySide: "buy" | "sell";
574
588
  tif: "Gtc" | "Ioc" | "Alo";
575
- dex?: string | undefined;
589
+ reduceOnly: boolean;
590
+ limitPx: number;
576
591
  oid?: number | undefined;
592
+ dex?: string | undefined;
577
593
  }>, z.ZodObject<{
578
594
  kind: z.ZodLiteral<"standalone_tpsl">;
579
595
  id: z.ZodString;
@@ -590,34 +606,34 @@ export declare const IntentRecordSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodO
590
606
  reduceOnly: z.ZodBoolean;
591
607
  oid: z.ZodOptional<z.ZodNumber>;
592
608
  }, "strip", z.ZodTypeAny, {
593
- coin: string;
594
609
  side: "buy" | "sell";
595
610
  sz: number;
596
- reduceOnly: boolean;
597
- triggerPx: number;
611
+ coin: string;
598
612
  kind: "standalone_tpsl";
599
613
  id: string;
600
614
  createdAtMs: number;
601
615
  updatedAtMs: number;
616
+ reduceOnly: boolean;
617
+ triggerPx: number;
602
618
  tpsl: "tp" | "sl";
603
619
  isMarket: boolean;
604
- dex?: string | undefined;
605
620
  oid?: number | undefined;
621
+ dex?: string | undefined;
606
622
  limitPx?: number | undefined;
607
623
  }, {
608
- coin: string;
609
624
  side: "buy" | "sell";
610
625
  sz: number;
611
- reduceOnly: boolean;
612
- triggerPx: number;
626
+ coin: string;
613
627
  kind: "standalone_tpsl";
614
628
  id: string;
615
629
  createdAtMs: number;
616
630
  updatedAtMs: number;
631
+ reduceOnly: boolean;
632
+ triggerPx: number;
617
633
  tpsl: "tp" | "sl";
618
634
  isMarket: boolean;
619
- dex?: string | undefined;
620
635
  oid?: number | undefined;
636
+ dex?: string | undefined;
621
637
  limitPx?: number | undefined;
622
638
  }>]>;
623
639
  export type IntentRecord = z.infer<typeof IntentRecordSchema>;
@@ -625,6 +641,171 @@ export type BracketIntentRecord = z.infer<typeof BracketIntentSchema>;
625
641
  export type GridIntentRecord = z.infer<typeof GridIntentSchema>;
626
642
  export type SingleLimitIntentRecord = z.infer<typeof SingleLimitIntentSchema>;
627
643
  export type StandaloneTpslIntentRecord = z.infer<typeof StandaloneTpslIntentSchema>;
644
+ /** Optional per-user trading preferences (advisor prompts, guards). Not touched by reconcile / cancel-open. */
645
+ export declare const UserProfileSchema: z.ZodObject<{
646
+ risk: z.ZodDefault<z.ZodEnum<["conservative", "balanced", "aggressive"]>>;
647
+ defaultMaxSz: z.ZodOptional<z.ZodNumber>;
648
+ maxSzByCoin: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
649
+ /** Advisor / bracket minimum sz floor (profile guard; HL $10 notional still applies). */
650
+ defaultMinSz: z.ZodOptional<z.ZodNumber>;
651
+ minSzByCoin: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
652
+ requireTpsl: z.ZodDefault<z.ZodBoolean>;
653
+ priceDeviationPctMax: z.ZodDefault<z.ZodNumber>;
654
+ tradingStyleNotes: z.ZodOptional<z.ZodString>;
655
+ updatedAtMs: z.ZodOptional<z.ZodNumber>;
656
+ /** Optional isolated-margin auto top-up during `state reconcile` (default disabled). */
657
+ isolatedTopUp: z.ZodOptional<z.ZodObject<{
658
+ enabled: z.ZodDefault<z.ZodBoolean>;
659
+ safeDistancePct: z.ZodDefault<z.ZodNumber>;
660
+ safetyFactor: z.ZodDefault<z.ZodNumber>;
661
+ reserveUsd: z.ZodDefault<z.ZodNumber>;
662
+ minTopUpUsd: z.ZodDefault<z.ZodNumber>;
663
+ minPartialUsd: z.ZodDefault<z.ZodNumber>;
664
+ maxSingleTopUpUsd: z.ZodDefault<z.ZodNumber>;
665
+ maxDailyTopUpUsd: z.ZodDefault<z.ZodNumber>;
666
+ cooldownSec: z.ZodDefault<z.ZodNumber>;
667
+ }, "strip", z.ZodTypeAny, {
668
+ enabled: boolean;
669
+ safeDistancePct: number;
670
+ safetyFactor: number;
671
+ reserveUsd: number;
672
+ minTopUpUsd: number;
673
+ minPartialUsd: number;
674
+ maxSingleTopUpUsd: number;
675
+ maxDailyTopUpUsd: number;
676
+ cooldownSec: number;
677
+ }, {
678
+ enabled?: boolean | undefined;
679
+ safeDistancePct?: number | undefined;
680
+ safetyFactor?: number | undefined;
681
+ reserveUsd?: number | undefined;
682
+ minTopUpUsd?: number | undefined;
683
+ minPartialUsd?: number | undefined;
684
+ maxSingleTopUpUsd?: number | undefined;
685
+ maxDailyTopUpUsd?: number | undefined;
686
+ cooldownSec?: number | undefined;
687
+ }>>;
688
+ /** Min model confidence (0–1) required before `advise` execute / `--auto`. 0 = disabled. */
689
+ minConfidenceToExecute: z.ZodOptional<z.ZodNumber>;
690
+ /** Random limit-price offset fraction (e.g. 0.002 = up to ±0.2%). 0 = disabled. */
691
+ limitPriceJitterPct: z.ZodOptional<z.ZodNumber>;
692
+ /** Min seconds between same coin+action executions (open_with_bracket also keyed by side). 0 = disabled. */
693
+ executeCooldownSec: z.ZodOptional<z.ZodNumber>;
694
+ /**
695
+ * Bracket entry shift toward model SL (0=off, 1=entry at SL, TP/SL translated equally).
696
+ * Limit-only: unfilled = no position.
697
+ */
698
+ bracketSlEntryShift: z.ZodOptional<z.ZodNumber>;
699
+ /** Relative limit deviation above which advise replaces a pending TTL ambush (default: priceDeviationPctMax). */
700
+ ambushReplaceDeviationPct: z.ZodOptional<z.ZodNumber>;
701
+ /** Min seconds after open before advise may close without TP/SL hit (0 = disabled). Applies to all bracket-linked positions. */
702
+ antiRushCloseMinSec: z.ZodOptional<z.ZodNumber>;
703
+ /** After entry fill, wait this long for reconcile to place TP/SL before allow close (default 360s ≈ one advise round). */
704
+ protectionGraceSec: z.ZodOptional<z.ZodNumber>;
705
+ /** Block close when |unrealized PnL| below this fraction of entry (e.g. 0.01 = 1%) unless tp_unreachable. */
706
+ minClosePnlPct: z.ZodOptional<z.ZodNumber>;
707
+ /** Min TP distance / SL distance from bracket entry (default by risk: conservative 2.5, balanced 2, aggressive 1.5). */
708
+ minRewardRiskRatio: z.ZodOptional<z.ZodNumber>;
709
+ /** Max SL distance from entry as fraction of entry px (default by risk: conservative 1.2%, balanced 2%, aggressive 3%). */
710
+ maxSlPctFromEntry: z.ZodOptional<z.ZodNumber>;
711
+ /** Block bracket when computed SL touch prob exceeds this (ATR barrier model). */
712
+ maxSlTouchProb: z.ZodOptional<z.ZodNumber>;
713
+ /** Block when SL touch prob × slSweepLiquidityMultiplier exceeds this (stop-hunt adjusted). */
714
+ maxSlSweepProb: z.ZodOptional<z.ZodNumber>;
715
+ /** Move SL away from structure by this × ATR₁h before execute (buy: down, sell: up). 0 = off. */
716
+ slAntiSweepAtrFactor: z.ZodOptional<z.ZodNumber>;
717
+ /** Multiplier on SL touch prob to approximate stop-hunt / AI sweep risk (default 2). */
718
+ slSweepLiquidityMultiplier: z.ZodOptional<z.ZodNumber>;
719
+ /** Default ambush TTL minutes when model omits expires_in_min (15–30 typical). */
720
+ defaultAmbushExpiresMin: z.ZodOptional<z.ZodNumber>;
721
+ /** Block cancel_all while unexpired TTL ambush entry is still pending (default true). */
722
+ forbidCancelAllWithActiveAmbush: z.ZodDefault<z.ZodBoolean>;
723
+ }, "strip", z.ZodTypeAny, {
724
+ risk: "conservative" | "balanced" | "aggressive";
725
+ requireTpsl: boolean;
726
+ priceDeviationPctMax: number;
727
+ forbidCancelAllWithActiveAmbush: boolean;
728
+ updatedAtMs?: number | undefined;
729
+ defaultMaxSz?: number | undefined;
730
+ maxSzByCoin?: Record<string, number> | undefined;
731
+ defaultMinSz?: number | undefined;
732
+ minSzByCoin?: Record<string, number> | undefined;
733
+ tradingStyleNotes?: string | undefined;
734
+ isolatedTopUp?: {
735
+ enabled: boolean;
736
+ safeDistancePct: number;
737
+ safetyFactor: number;
738
+ reserveUsd: number;
739
+ minTopUpUsd: number;
740
+ minPartialUsd: number;
741
+ maxSingleTopUpUsd: number;
742
+ maxDailyTopUpUsd: number;
743
+ cooldownSec: number;
744
+ } | undefined;
745
+ minConfidenceToExecute?: number | undefined;
746
+ limitPriceJitterPct?: number | undefined;
747
+ executeCooldownSec?: number | undefined;
748
+ bracketSlEntryShift?: number | undefined;
749
+ ambushReplaceDeviationPct?: number | undefined;
750
+ antiRushCloseMinSec?: number | undefined;
751
+ protectionGraceSec?: number | undefined;
752
+ minClosePnlPct?: number | undefined;
753
+ minRewardRiskRatio?: number | undefined;
754
+ maxSlPctFromEntry?: number | undefined;
755
+ maxSlTouchProb?: number | undefined;
756
+ maxSlSweepProb?: number | undefined;
757
+ slAntiSweepAtrFactor?: number | undefined;
758
+ slSweepLiquidityMultiplier?: number | undefined;
759
+ defaultAmbushExpiresMin?: number | undefined;
760
+ }, {
761
+ updatedAtMs?: number | undefined;
762
+ risk?: "conservative" | "balanced" | "aggressive" | undefined;
763
+ defaultMaxSz?: number | undefined;
764
+ maxSzByCoin?: Record<string, number> | undefined;
765
+ defaultMinSz?: number | undefined;
766
+ minSzByCoin?: Record<string, number> | undefined;
767
+ requireTpsl?: boolean | undefined;
768
+ priceDeviationPctMax?: number | undefined;
769
+ tradingStyleNotes?: string | undefined;
770
+ isolatedTopUp?: {
771
+ enabled?: boolean | undefined;
772
+ safeDistancePct?: number | undefined;
773
+ safetyFactor?: number | undefined;
774
+ reserveUsd?: number | undefined;
775
+ minTopUpUsd?: number | undefined;
776
+ minPartialUsd?: number | undefined;
777
+ maxSingleTopUpUsd?: number | undefined;
778
+ maxDailyTopUpUsd?: number | undefined;
779
+ cooldownSec?: number | undefined;
780
+ } | undefined;
781
+ minConfidenceToExecute?: number | undefined;
782
+ limitPriceJitterPct?: number | undefined;
783
+ executeCooldownSec?: number | undefined;
784
+ bracketSlEntryShift?: number | undefined;
785
+ ambushReplaceDeviationPct?: number | undefined;
786
+ antiRushCloseMinSec?: number | undefined;
787
+ protectionGraceSec?: number | undefined;
788
+ minClosePnlPct?: number | undefined;
789
+ minRewardRiskRatio?: number | undefined;
790
+ maxSlPctFromEntry?: number | undefined;
791
+ maxSlTouchProb?: number | undefined;
792
+ maxSlSweepProb?: number | undefined;
793
+ slAntiSweepAtrFactor?: number | undefined;
794
+ slSweepLiquidityMultiplier?: number | undefined;
795
+ defaultAmbushExpiresMin?: number | undefined;
796
+ forbidCancelAllWithActiveAmbush?: boolean | undefined;
797
+ }>;
798
+ export type UserProfile = z.infer<typeof UserProfileSchema>;
799
+ export declare const AdviseExecuteRecordSchema: z.ZodObject<{
800
+ action: z.ZodString;
801
+ atMs: z.ZodNumber;
802
+ }, "strip", z.ZodTypeAny, {
803
+ action: string;
804
+ atMs: number;
805
+ }, {
806
+ action: string;
807
+ atMs: number;
808
+ }>;
628
809
  export declare const TradeStateFileSchema: z.ZodObject<{
629
810
  version: z.ZodLiteral<1>;
630
811
  updatedAtMs: z.ZodNumber;
@@ -640,6 +821,8 @@ export declare const TradeStateFileSchema: z.ZodObject<{
640
821
  entryLimitPx: z.ZodNumber;
641
822
  entrySz: z.ZodNumber;
642
823
  tif: z.ZodEnum<["Gtc", "Ioc", "Alo"]>;
824
+ /** Trading strategy: ambush (limit entry, wider SL/TP) or scalp (market entry, tight SL/TP). */
825
+ strategy: z.ZodOptional<z.ZodEnum<["scalp", "ambush"]>>;
643
826
  entryReduceOnly: z.ZodOptional<z.ZodBoolean>;
644
827
  tpTriggerPx: z.ZodNumber;
645
828
  slTriggerPx: z.ZodNumber;
@@ -677,9 +860,10 @@ export declare const TradeStateFileSchema: z.ZodObject<{
677
860
  slTriggerPx: number;
678
861
  tpslIsMarket: boolean;
679
862
  protectionReduceOnly: boolean;
680
- phase: "cancelled" | "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "expired" | "error";
681
- network?: string | undefined;
863
+ phase: "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "cancelled" | "expired" | "error";
682
864
  dex?: string | undefined;
865
+ network?: string | undefined;
866
+ strategy?: "scalp" | "ambush" | undefined;
683
867
  entryReduceOnly?: boolean | undefined;
684
868
  tpslLimitPx?: number | undefined;
685
869
  entryOid?: number | undefined;
@@ -705,9 +889,10 @@ export declare const TradeStateFileSchema: z.ZodObject<{
705
889
  tpTriggerPx: number;
706
890
  slTriggerPx: number;
707
891
  tpslIsMarket: boolean;
708
- phase: "cancelled" | "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "expired" | "error";
709
- network?: string | undefined;
892
+ phase: "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "cancelled" | "expired" | "error";
710
893
  dex?: string | undefined;
894
+ network?: string | undefined;
895
+ strategy?: "scalp" | "ambush" | undefined;
711
896
  entryReduceOnly?: boolean | undefined;
712
897
  tpslLimitPx?: number | undefined;
713
898
  protectionReduceOnly?: boolean | undefined;
@@ -745,6 +930,8 @@ export declare const TradeStateFileSchema: z.ZodObject<{
745
930
  replenishGapPx: z.ZodOptional<z.ZodNumber>;
746
931
  /** Idempotency for grid replenishment (plan:/done: prefixes, see mergeGridReplenishDedupe). */
747
932
  replenishDedupeKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
933
+ /** User set this to true to regenerate legs from current lower/upper/grids/bias on next reconcile. */
934
+ regenerateGrid: z.ZodOptional<z.ZodBoolean>;
748
935
  legs: z.ZodArray<z.ZodObject<{
749
936
  index: z.ZodNumber;
750
937
  px: z.ZodNumber;
@@ -766,10 +953,10 @@ export declare const TradeStateFileSchema: z.ZodObject<{
766
953
  fillPx: number;
767
954
  }>>;
768
955
  }, "strip", z.ZodTypeAny, {
956
+ isBuy: boolean;
769
957
  index: number;
770
958
  px: number;
771
- isBuy: boolean;
772
- legPhase: "pending" | "open" | "partial" | "filled" | "cancelled";
959
+ legPhase: "partial" | "cancelled" | "pending" | "open" | "filled";
773
960
  oid?: number | undefined;
774
961
  lastSz?: number | undefined;
775
962
  lastOrigSz?: number | undefined;
@@ -778,10 +965,10 @@ export declare const TradeStateFileSchema: z.ZodObject<{
778
965
  fillPx: number;
779
966
  } | undefined;
780
967
  }, {
968
+ isBuy: boolean;
781
969
  index: number;
782
970
  px: number;
783
- isBuy: boolean;
784
- legPhase: "pending" | "open" | "partial" | "filled" | "cancelled";
971
+ legPhase: "partial" | "cancelled" | "pending" | "open" | "filled";
785
972
  oid?: number | undefined;
786
973
  lastSz?: number | undefined;
787
974
  lastOrigSz?: number | undefined;
@@ -792,7 +979,6 @@ export declare const TradeStateFileSchema: z.ZodObject<{
792
979
  }>, "many">;
793
980
  }, "strip", z.ZodTypeAny, {
794
981
  coin: string;
795
- reduceOnly: boolean;
796
982
  kind: "grid";
797
983
  id: string;
798
984
  createdAtMs: number;
@@ -803,11 +989,12 @@ export declare const TradeStateFileSchema: z.ZodObject<{
803
989
  grids: number;
804
990
  orderSz: number;
805
991
  bias: "symmetric" | "long" | "short";
992
+ reduceOnly: boolean;
806
993
  legs: {
994
+ isBuy: boolean;
807
995
  index: number;
808
996
  px: number;
809
- isBuy: boolean;
810
- legPhase: "pending" | "open" | "partial" | "filled" | "cancelled";
997
+ legPhase: "partial" | "cancelled" | "pending" | "open" | "filled";
811
998
  oid?: number | undefined;
812
999
  lastSz?: number | undefined;
813
1000
  lastOrigSz?: number | undefined;
@@ -816,14 +1003,14 @@ export declare const TradeStateFileSchema: z.ZodObject<{
816
1003
  fillPx: number;
817
1004
  } | undefined;
818
1005
  }[];
819
- network?: string | undefined;
820
1006
  dex?: string | undefined;
1007
+ network?: string | undefined;
821
1008
  maxOrders?: number | undefined;
822
1009
  replenishGapPx?: number | undefined;
823
1010
  replenishDedupeKeys?: string[] | undefined;
1011
+ regenerateGrid?: boolean | undefined;
824
1012
  }, {
825
1013
  coin: string;
826
- reduceOnly: boolean;
827
1014
  kind: "grid";
828
1015
  id: string;
829
1016
  createdAtMs: number;
@@ -834,11 +1021,12 @@ export declare const TradeStateFileSchema: z.ZodObject<{
834
1021
  grids: number;
835
1022
  orderSz: number;
836
1023
  bias: "symmetric" | "long" | "short";
1024
+ reduceOnly: boolean;
837
1025
  legs: {
1026
+ isBuy: boolean;
838
1027
  index: number;
839
1028
  px: number;
840
- isBuy: boolean;
841
- legPhase: "pending" | "open" | "partial" | "filled" | "cancelled";
1029
+ legPhase: "partial" | "cancelled" | "pending" | "open" | "filled";
842
1030
  oid?: number | undefined;
843
1031
  lastSz?: number | undefined;
844
1032
  lastOrigSz?: number | undefined;
@@ -847,11 +1035,12 @@ export declare const TradeStateFileSchema: z.ZodObject<{
847
1035
  fillPx: number;
848
1036
  } | undefined;
849
1037
  }[];
850
- network?: string | undefined;
851
1038
  dex?: string | undefined;
1039
+ network?: string | undefined;
852
1040
  maxOrders?: number | undefined;
853
1041
  replenishGapPx?: number | undefined;
854
1042
  replenishDedupeKeys?: string[] | undefined;
1043
+ regenerateGrid?: boolean | undefined;
855
1044
  }>, z.ZodObject<{
856
1045
  kind: z.ZodLiteral<"single_limit">;
857
1046
  id: z.ZodString;
@@ -866,31 +1055,31 @@ export declare const TradeStateFileSchema: z.ZodObject<{
866
1055
  reduceOnly: z.ZodBoolean;
867
1056
  oid: z.ZodOptional<z.ZodNumber>;
868
1057
  }, "strip", z.ZodTypeAny, {
869
- coin: string;
870
1058
  sz: number;
871
- reduceOnly: boolean;
872
- limitPx: number;
1059
+ coin: string;
873
1060
  kind: "single_limit";
874
1061
  id: string;
875
1062
  createdAtMs: number;
876
1063
  updatedAtMs: number;
877
1064
  entrySide: "buy" | "sell";
878
1065
  tif: "Gtc" | "Ioc" | "Alo";
879
- dex?: string | undefined;
1066
+ reduceOnly: boolean;
1067
+ limitPx: number;
880
1068
  oid?: number | undefined;
1069
+ dex?: string | undefined;
881
1070
  }, {
882
- coin: string;
883
1071
  sz: number;
884
- reduceOnly: boolean;
885
- limitPx: number;
1072
+ coin: string;
886
1073
  kind: "single_limit";
887
1074
  id: string;
888
1075
  createdAtMs: number;
889
1076
  updatedAtMs: number;
890
1077
  entrySide: "buy" | "sell";
891
1078
  tif: "Gtc" | "Ioc" | "Alo";
892
- dex?: string | undefined;
1079
+ reduceOnly: boolean;
1080
+ limitPx: number;
893
1081
  oid?: number | undefined;
1082
+ dex?: string | undefined;
894
1083
  }>, z.ZodObject<{
895
1084
  kind: z.ZodLiteral<"standalone_tpsl">;
896
1085
  id: z.ZodString;
@@ -907,34 +1096,34 @@ export declare const TradeStateFileSchema: z.ZodObject<{
907
1096
  reduceOnly: z.ZodBoolean;
908
1097
  oid: z.ZodOptional<z.ZodNumber>;
909
1098
  }, "strip", z.ZodTypeAny, {
910
- coin: string;
911
1099
  side: "buy" | "sell";
912
1100
  sz: number;
913
- reduceOnly: boolean;
914
- triggerPx: number;
1101
+ coin: string;
915
1102
  kind: "standalone_tpsl";
916
1103
  id: string;
917
1104
  createdAtMs: number;
918
1105
  updatedAtMs: number;
1106
+ reduceOnly: boolean;
1107
+ triggerPx: number;
919
1108
  tpsl: "tp" | "sl";
920
1109
  isMarket: boolean;
921
- dex?: string | undefined;
922
1110
  oid?: number | undefined;
1111
+ dex?: string | undefined;
923
1112
  limitPx?: number | undefined;
924
1113
  }, {
925
- coin: string;
926
1114
  side: "buy" | "sell";
927
1115
  sz: number;
928
- reduceOnly: boolean;
929
- triggerPx: number;
1116
+ coin: string;
930
1117
  kind: "standalone_tpsl";
931
1118
  id: string;
932
1119
  createdAtMs: number;
933
1120
  updatedAtMs: number;
1121
+ reduceOnly: boolean;
1122
+ triggerPx: number;
934
1123
  tpsl: "tp" | "sl";
935
1124
  isMarket: boolean;
936
- dex?: string | undefined;
937
1125
  oid?: number | undefined;
1126
+ dex?: string | undefined;
938
1127
  limitPx?: number | undefined;
939
1128
  }>]>>;
940
1129
  events: z.ZodArray<z.ZodObject<{
@@ -956,6 +1145,170 @@ export declare const TradeStateFileSchema: z.ZodObject<{
956
1145
  message?: string | undefined;
957
1146
  data?: Record<string, unknown> | undefined;
958
1147
  }>, "many">;
1148
+ userProfile: z.ZodOptional<z.ZodObject<{
1149
+ risk: z.ZodDefault<z.ZodEnum<["conservative", "balanced", "aggressive"]>>;
1150
+ defaultMaxSz: z.ZodOptional<z.ZodNumber>;
1151
+ maxSzByCoin: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1152
+ /** Advisor / bracket minimum sz floor (profile guard; HL $10 notional still applies). */
1153
+ defaultMinSz: z.ZodOptional<z.ZodNumber>;
1154
+ minSzByCoin: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1155
+ requireTpsl: z.ZodDefault<z.ZodBoolean>;
1156
+ priceDeviationPctMax: z.ZodDefault<z.ZodNumber>;
1157
+ tradingStyleNotes: z.ZodOptional<z.ZodString>;
1158
+ updatedAtMs: z.ZodOptional<z.ZodNumber>;
1159
+ /** Optional isolated-margin auto top-up during `state reconcile` (default disabled). */
1160
+ isolatedTopUp: z.ZodOptional<z.ZodObject<{
1161
+ enabled: z.ZodDefault<z.ZodBoolean>;
1162
+ safeDistancePct: z.ZodDefault<z.ZodNumber>;
1163
+ safetyFactor: z.ZodDefault<z.ZodNumber>;
1164
+ reserveUsd: z.ZodDefault<z.ZodNumber>;
1165
+ minTopUpUsd: z.ZodDefault<z.ZodNumber>;
1166
+ minPartialUsd: z.ZodDefault<z.ZodNumber>;
1167
+ maxSingleTopUpUsd: z.ZodDefault<z.ZodNumber>;
1168
+ maxDailyTopUpUsd: z.ZodDefault<z.ZodNumber>;
1169
+ cooldownSec: z.ZodDefault<z.ZodNumber>;
1170
+ }, "strip", z.ZodTypeAny, {
1171
+ enabled: boolean;
1172
+ safeDistancePct: number;
1173
+ safetyFactor: number;
1174
+ reserveUsd: number;
1175
+ minTopUpUsd: number;
1176
+ minPartialUsd: number;
1177
+ maxSingleTopUpUsd: number;
1178
+ maxDailyTopUpUsd: number;
1179
+ cooldownSec: number;
1180
+ }, {
1181
+ enabled?: boolean | undefined;
1182
+ safeDistancePct?: number | undefined;
1183
+ safetyFactor?: number | undefined;
1184
+ reserveUsd?: number | undefined;
1185
+ minTopUpUsd?: number | undefined;
1186
+ minPartialUsd?: number | undefined;
1187
+ maxSingleTopUpUsd?: number | undefined;
1188
+ maxDailyTopUpUsd?: number | undefined;
1189
+ cooldownSec?: number | undefined;
1190
+ }>>;
1191
+ /** Min model confidence (0–1) required before `advise` execute / `--auto`. 0 = disabled. */
1192
+ minConfidenceToExecute: z.ZodOptional<z.ZodNumber>;
1193
+ /** Random limit-price offset fraction (e.g. 0.002 = up to ±0.2%). 0 = disabled. */
1194
+ limitPriceJitterPct: z.ZodOptional<z.ZodNumber>;
1195
+ /** Min seconds between same coin+action executions (open_with_bracket also keyed by side). 0 = disabled. */
1196
+ executeCooldownSec: z.ZodOptional<z.ZodNumber>;
1197
+ /**
1198
+ * Bracket entry shift toward model SL (0=off, 1=entry at SL, TP/SL translated equally).
1199
+ * Limit-only: unfilled = no position.
1200
+ */
1201
+ bracketSlEntryShift: z.ZodOptional<z.ZodNumber>;
1202
+ /** Relative limit deviation above which advise replaces a pending TTL ambush (default: priceDeviationPctMax). */
1203
+ ambushReplaceDeviationPct: z.ZodOptional<z.ZodNumber>;
1204
+ /** Min seconds after open before advise may close without TP/SL hit (0 = disabled). Applies to all bracket-linked positions. */
1205
+ antiRushCloseMinSec: z.ZodOptional<z.ZodNumber>;
1206
+ /** After entry fill, wait this long for reconcile to place TP/SL before allow close (default 360s ≈ one advise round). */
1207
+ protectionGraceSec: z.ZodOptional<z.ZodNumber>;
1208
+ /** Block close when |unrealized PnL| below this fraction of entry (e.g. 0.01 = 1%) unless tp_unreachable. */
1209
+ minClosePnlPct: z.ZodOptional<z.ZodNumber>;
1210
+ /** Min TP distance / SL distance from bracket entry (default by risk: conservative 2.5, balanced 2, aggressive 1.5). */
1211
+ minRewardRiskRatio: z.ZodOptional<z.ZodNumber>;
1212
+ /** Max SL distance from entry as fraction of entry px (default by risk: conservative 1.2%, balanced 2%, aggressive 3%). */
1213
+ maxSlPctFromEntry: z.ZodOptional<z.ZodNumber>;
1214
+ /** Block bracket when computed SL touch prob exceeds this (ATR barrier model). */
1215
+ maxSlTouchProb: z.ZodOptional<z.ZodNumber>;
1216
+ /** Block when SL touch prob × slSweepLiquidityMultiplier exceeds this (stop-hunt adjusted). */
1217
+ maxSlSweepProb: z.ZodOptional<z.ZodNumber>;
1218
+ /** Move SL away from structure by this × ATR₁h before execute (buy: down, sell: up). 0 = off. */
1219
+ slAntiSweepAtrFactor: z.ZodOptional<z.ZodNumber>;
1220
+ /** Multiplier on SL touch prob to approximate stop-hunt / AI sweep risk (default 2). */
1221
+ slSweepLiquidityMultiplier: z.ZodOptional<z.ZodNumber>;
1222
+ /** Default ambush TTL minutes when model omits expires_in_min (15–30 typical). */
1223
+ defaultAmbushExpiresMin: z.ZodOptional<z.ZodNumber>;
1224
+ /** Block cancel_all while unexpired TTL ambush entry is still pending (default true). */
1225
+ forbidCancelAllWithActiveAmbush: z.ZodDefault<z.ZodBoolean>;
1226
+ }, "strip", z.ZodTypeAny, {
1227
+ risk: "conservative" | "balanced" | "aggressive";
1228
+ requireTpsl: boolean;
1229
+ priceDeviationPctMax: number;
1230
+ forbidCancelAllWithActiveAmbush: boolean;
1231
+ updatedAtMs?: number | undefined;
1232
+ defaultMaxSz?: number | undefined;
1233
+ maxSzByCoin?: Record<string, number> | undefined;
1234
+ defaultMinSz?: number | undefined;
1235
+ minSzByCoin?: Record<string, number> | undefined;
1236
+ tradingStyleNotes?: string | undefined;
1237
+ isolatedTopUp?: {
1238
+ enabled: boolean;
1239
+ safeDistancePct: number;
1240
+ safetyFactor: number;
1241
+ reserveUsd: number;
1242
+ minTopUpUsd: number;
1243
+ minPartialUsd: number;
1244
+ maxSingleTopUpUsd: number;
1245
+ maxDailyTopUpUsd: number;
1246
+ cooldownSec: number;
1247
+ } | undefined;
1248
+ minConfidenceToExecute?: number | undefined;
1249
+ limitPriceJitterPct?: number | undefined;
1250
+ executeCooldownSec?: number | undefined;
1251
+ bracketSlEntryShift?: number | undefined;
1252
+ ambushReplaceDeviationPct?: number | undefined;
1253
+ antiRushCloseMinSec?: number | undefined;
1254
+ protectionGraceSec?: number | undefined;
1255
+ minClosePnlPct?: number | undefined;
1256
+ minRewardRiskRatio?: number | undefined;
1257
+ maxSlPctFromEntry?: number | undefined;
1258
+ maxSlTouchProb?: number | undefined;
1259
+ maxSlSweepProb?: number | undefined;
1260
+ slAntiSweepAtrFactor?: number | undefined;
1261
+ slSweepLiquidityMultiplier?: number | undefined;
1262
+ defaultAmbushExpiresMin?: number | undefined;
1263
+ }, {
1264
+ updatedAtMs?: number | undefined;
1265
+ risk?: "conservative" | "balanced" | "aggressive" | undefined;
1266
+ defaultMaxSz?: number | undefined;
1267
+ maxSzByCoin?: Record<string, number> | undefined;
1268
+ defaultMinSz?: number | undefined;
1269
+ minSzByCoin?: Record<string, number> | undefined;
1270
+ requireTpsl?: boolean | undefined;
1271
+ priceDeviationPctMax?: number | undefined;
1272
+ tradingStyleNotes?: string | undefined;
1273
+ isolatedTopUp?: {
1274
+ enabled?: boolean | undefined;
1275
+ safeDistancePct?: number | undefined;
1276
+ safetyFactor?: number | undefined;
1277
+ reserveUsd?: number | undefined;
1278
+ minTopUpUsd?: number | undefined;
1279
+ minPartialUsd?: number | undefined;
1280
+ maxSingleTopUpUsd?: number | undefined;
1281
+ maxDailyTopUpUsd?: number | undefined;
1282
+ cooldownSec?: number | undefined;
1283
+ } | undefined;
1284
+ minConfidenceToExecute?: number | undefined;
1285
+ limitPriceJitterPct?: number | undefined;
1286
+ executeCooldownSec?: number | undefined;
1287
+ bracketSlEntryShift?: number | undefined;
1288
+ ambushReplaceDeviationPct?: number | undefined;
1289
+ antiRushCloseMinSec?: number | undefined;
1290
+ protectionGraceSec?: number | undefined;
1291
+ minClosePnlPct?: number | undefined;
1292
+ minRewardRiskRatio?: number | undefined;
1293
+ maxSlPctFromEntry?: number | undefined;
1294
+ maxSlTouchProb?: number | undefined;
1295
+ maxSlSweepProb?: number | undefined;
1296
+ slAntiSweepAtrFactor?: number | undefined;
1297
+ slSweepLiquidityMultiplier?: number | undefined;
1298
+ defaultAmbushExpiresMin?: number | undefined;
1299
+ forbidCancelAllWithActiveAmbush?: boolean | undefined;
1300
+ }>>;
1301
+ /** Last successful advise execute per `${coin}:${action}` (cooldown guard). */
1302
+ adviseExecuteHistory: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1303
+ action: z.ZodString;
1304
+ atMs: z.ZodNumber;
1305
+ }, "strip", z.ZodTypeAny, {
1306
+ action: string;
1307
+ atMs: number;
1308
+ }, {
1309
+ action: string;
1310
+ atMs: number;
1311
+ }>>>;
959
1312
  }, "strip", z.ZodTypeAny, {
960
1313
  updatedAtMs: number;
961
1314
  version: 1;
@@ -973,9 +1326,10 @@ export declare const TradeStateFileSchema: z.ZodObject<{
973
1326
  slTriggerPx: number;
974
1327
  tpslIsMarket: boolean;
975
1328
  protectionReduceOnly: boolean;
976
- phase: "cancelled" | "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "expired" | "error";
977
- network?: string | undefined;
1329
+ phase: "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "cancelled" | "expired" | "error";
978
1330
  dex?: string | undefined;
1331
+ network?: string | undefined;
1332
+ strategy?: "scalp" | "ambush" | undefined;
979
1333
  entryReduceOnly?: boolean | undefined;
980
1334
  tpslLimitPx?: number | undefined;
981
1335
  entryOid?: number | undefined;
@@ -990,7 +1344,6 @@ export declare const TradeStateFileSchema: z.ZodObject<{
990
1344
  dedupeKeys?: string[] | undefined;
991
1345
  } | {
992
1346
  coin: string;
993
- reduceOnly: boolean;
994
1347
  kind: "grid";
995
1348
  id: string;
996
1349
  createdAtMs: number;
@@ -1001,11 +1354,12 @@ export declare const TradeStateFileSchema: z.ZodObject<{
1001
1354
  grids: number;
1002
1355
  orderSz: number;
1003
1356
  bias: "symmetric" | "long" | "short";
1357
+ reduceOnly: boolean;
1004
1358
  legs: {
1359
+ isBuy: boolean;
1005
1360
  index: number;
1006
1361
  px: number;
1007
- isBuy: boolean;
1008
- legPhase: "pending" | "open" | "partial" | "filled" | "cancelled";
1362
+ legPhase: "partial" | "cancelled" | "pending" | "open" | "filled";
1009
1363
  oid?: number | undefined;
1010
1364
  lastSz?: number | undefined;
1011
1365
  lastOrigSz?: number | undefined;
@@ -1014,38 +1368,39 @@ export declare const TradeStateFileSchema: z.ZodObject<{
1014
1368
  fillPx: number;
1015
1369
  } | undefined;
1016
1370
  }[];
1017
- network?: string | undefined;
1018
1371
  dex?: string | undefined;
1372
+ network?: string | undefined;
1019
1373
  maxOrders?: number | undefined;
1020
1374
  replenishGapPx?: number | undefined;
1021
1375
  replenishDedupeKeys?: string[] | undefined;
1376
+ regenerateGrid?: boolean | undefined;
1022
1377
  } | {
1023
- coin: string;
1024
1378
  sz: number;
1025
- reduceOnly: boolean;
1026
- limitPx: number;
1379
+ coin: string;
1027
1380
  kind: "single_limit";
1028
1381
  id: string;
1029
1382
  createdAtMs: number;
1030
1383
  updatedAtMs: number;
1031
1384
  entrySide: "buy" | "sell";
1032
1385
  tif: "Gtc" | "Ioc" | "Alo";
1033
- dex?: string | undefined;
1386
+ reduceOnly: boolean;
1387
+ limitPx: number;
1034
1388
  oid?: number | undefined;
1389
+ dex?: string | undefined;
1035
1390
  } | {
1036
- coin: string;
1037
1391
  side: "buy" | "sell";
1038
1392
  sz: number;
1039
- reduceOnly: boolean;
1040
- triggerPx: number;
1393
+ coin: string;
1041
1394
  kind: "standalone_tpsl";
1042
1395
  id: string;
1043
1396
  createdAtMs: number;
1044
1397
  updatedAtMs: number;
1398
+ reduceOnly: boolean;
1399
+ triggerPx: number;
1045
1400
  tpsl: "tp" | "sl";
1046
1401
  isMarket: boolean;
1047
- dex?: string | undefined;
1048
1402
  oid?: number | undefined;
1403
+ dex?: string | undefined;
1049
1404
  limitPx?: number | undefined;
1050
1405
  }>;
1051
1406
  events: {
@@ -1055,6 +1410,48 @@ export declare const TradeStateFileSchema: z.ZodObject<{
1055
1410
  message?: string | undefined;
1056
1411
  data?: Record<string, unknown> | undefined;
1057
1412
  }[];
1413
+ userProfile?: {
1414
+ risk: "conservative" | "balanced" | "aggressive";
1415
+ requireTpsl: boolean;
1416
+ priceDeviationPctMax: number;
1417
+ forbidCancelAllWithActiveAmbush: boolean;
1418
+ updatedAtMs?: number | undefined;
1419
+ defaultMaxSz?: number | undefined;
1420
+ maxSzByCoin?: Record<string, number> | undefined;
1421
+ defaultMinSz?: number | undefined;
1422
+ minSzByCoin?: Record<string, number> | undefined;
1423
+ tradingStyleNotes?: string | undefined;
1424
+ isolatedTopUp?: {
1425
+ enabled: boolean;
1426
+ safeDistancePct: number;
1427
+ safetyFactor: number;
1428
+ reserveUsd: number;
1429
+ minTopUpUsd: number;
1430
+ minPartialUsd: number;
1431
+ maxSingleTopUpUsd: number;
1432
+ maxDailyTopUpUsd: number;
1433
+ cooldownSec: number;
1434
+ } | undefined;
1435
+ minConfidenceToExecute?: number | undefined;
1436
+ limitPriceJitterPct?: number | undefined;
1437
+ executeCooldownSec?: number | undefined;
1438
+ bracketSlEntryShift?: number | undefined;
1439
+ ambushReplaceDeviationPct?: number | undefined;
1440
+ antiRushCloseMinSec?: number | undefined;
1441
+ protectionGraceSec?: number | undefined;
1442
+ minClosePnlPct?: number | undefined;
1443
+ minRewardRiskRatio?: number | undefined;
1444
+ maxSlPctFromEntry?: number | undefined;
1445
+ maxSlTouchProb?: number | undefined;
1446
+ maxSlSweepProb?: number | undefined;
1447
+ slAntiSweepAtrFactor?: number | undefined;
1448
+ slSweepLiquidityMultiplier?: number | undefined;
1449
+ defaultAmbushExpiresMin?: number | undefined;
1450
+ } | undefined;
1451
+ adviseExecuteHistory?: Record<string, {
1452
+ action: string;
1453
+ atMs: number;
1454
+ }> | undefined;
1058
1455
  }, {
1059
1456
  updatedAtMs: number;
1060
1457
  version: 1;
@@ -1071,9 +1468,10 @@ export declare const TradeStateFileSchema: z.ZodObject<{
1071
1468
  tpTriggerPx: number;
1072
1469
  slTriggerPx: number;
1073
1470
  tpslIsMarket: boolean;
1074
- phase: "cancelled" | "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "expired" | "error";
1075
- network?: string | undefined;
1471
+ phase: "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "cancelled" | "expired" | "error";
1076
1472
  dex?: string | undefined;
1473
+ network?: string | undefined;
1474
+ strategy?: "scalp" | "ambush" | undefined;
1077
1475
  entryReduceOnly?: boolean | undefined;
1078
1476
  tpslLimitPx?: number | undefined;
1079
1477
  protectionReduceOnly?: boolean | undefined;
@@ -1089,7 +1487,6 @@ export declare const TradeStateFileSchema: z.ZodObject<{
1089
1487
  dedupeKeys?: string[] | undefined;
1090
1488
  } | {
1091
1489
  coin: string;
1092
- reduceOnly: boolean;
1093
1490
  kind: "grid";
1094
1491
  id: string;
1095
1492
  createdAtMs: number;
@@ -1100,11 +1497,12 @@ export declare const TradeStateFileSchema: z.ZodObject<{
1100
1497
  grids: number;
1101
1498
  orderSz: number;
1102
1499
  bias: "symmetric" | "long" | "short";
1500
+ reduceOnly: boolean;
1103
1501
  legs: {
1502
+ isBuy: boolean;
1104
1503
  index: number;
1105
1504
  px: number;
1106
- isBuy: boolean;
1107
- legPhase: "pending" | "open" | "partial" | "filled" | "cancelled";
1505
+ legPhase: "partial" | "cancelled" | "pending" | "open" | "filled";
1108
1506
  oid?: number | undefined;
1109
1507
  lastSz?: number | undefined;
1110
1508
  lastOrigSz?: number | undefined;
@@ -1113,38 +1511,39 @@ export declare const TradeStateFileSchema: z.ZodObject<{
1113
1511
  fillPx: number;
1114
1512
  } | undefined;
1115
1513
  }[];
1116
- network?: string | undefined;
1117
1514
  dex?: string | undefined;
1515
+ network?: string | undefined;
1118
1516
  maxOrders?: number | undefined;
1119
1517
  replenishGapPx?: number | undefined;
1120
1518
  replenishDedupeKeys?: string[] | undefined;
1519
+ regenerateGrid?: boolean | undefined;
1121
1520
  } | {
1122
- coin: string;
1123
1521
  sz: number;
1124
- reduceOnly: boolean;
1125
- limitPx: number;
1522
+ coin: string;
1126
1523
  kind: "single_limit";
1127
1524
  id: string;
1128
1525
  createdAtMs: number;
1129
1526
  updatedAtMs: number;
1130
1527
  entrySide: "buy" | "sell";
1131
1528
  tif: "Gtc" | "Ioc" | "Alo";
1132
- dex?: string | undefined;
1529
+ reduceOnly: boolean;
1530
+ limitPx: number;
1133
1531
  oid?: number | undefined;
1532
+ dex?: string | undefined;
1134
1533
  } | {
1135
- coin: string;
1136
1534
  side: "buy" | "sell";
1137
1535
  sz: number;
1138
- reduceOnly: boolean;
1139
- triggerPx: number;
1536
+ coin: string;
1140
1537
  kind: "standalone_tpsl";
1141
1538
  id: string;
1142
1539
  createdAtMs: number;
1143
1540
  updatedAtMs: number;
1541
+ reduceOnly: boolean;
1542
+ triggerPx: number;
1144
1543
  tpsl: "tp" | "sl";
1145
1544
  isMarket: boolean;
1146
- dex?: string | undefined;
1147
1545
  oid?: number | undefined;
1546
+ dex?: string | undefined;
1148
1547
  limitPx?: number | undefined;
1149
1548
  }>;
1150
1549
  events: {
@@ -1154,6 +1553,48 @@ export declare const TradeStateFileSchema: z.ZodObject<{
1154
1553
  message?: string | undefined;
1155
1554
  data?: Record<string, unknown> | undefined;
1156
1555
  }[];
1556
+ userProfile?: {
1557
+ updatedAtMs?: number | undefined;
1558
+ risk?: "conservative" | "balanced" | "aggressive" | undefined;
1559
+ defaultMaxSz?: number | undefined;
1560
+ maxSzByCoin?: Record<string, number> | undefined;
1561
+ defaultMinSz?: number | undefined;
1562
+ minSzByCoin?: Record<string, number> | undefined;
1563
+ requireTpsl?: boolean | undefined;
1564
+ priceDeviationPctMax?: number | undefined;
1565
+ tradingStyleNotes?: string | undefined;
1566
+ isolatedTopUp?: {
1567
+ enabled?: boolean | undefined;
1568
+ safeDistancePct?: number | undefined;
1569
+ safetyFactor?: number | undefined;
1570
+ reserveUsd?: number | undefined;
1571
+ minTopUpUsd?: number | undefined;
1572
+ minPartialUsd?: number | undefined;
1573
+ maxSingleTopUpUsd?: number | undefined;
1574
+ maxDailyTopUpUsd?: number | undefined;
1575
+ cooldownSec?: number | undefined;
1576
+ } | undefined;
1577
+ minConfidenceToExecute?: number | undefined;
1578
+ limitPriceJitterPct?: number | undefined;
1579
+ executeCooldownSec?: number | undefined;
1580
+ bracketSlEntryShift?: number | undefined;
1581
+ ambushReplaceDeviationPct?: number | undefined;
1582
+ antiRushCloseMinSec?: number | undefined;
1583
+ protectionGraceSec?: number | undefined;
1584
+ minClosePnlPct?: number | undefined;
1585
+ minRewardRiskRatio?: number | undefined;
1586
+ maxSlPctFromEntry?: number | undefined;
1587
+ maxSlTouchProb?: number | undefined;
1588
+ maxSlSweepProb?: number | undefined;
1589
+ slAntiSweepAtrFactor?: number | undefined;
1590
+ slSweepLiquidityMultiplier?: number | undefined;
1591
+ defaultAmbushExpiresMin?: number | undefined;
1592
+ forbidCancelAllWithActiveAmbush?: boolean | undefined;
1593
+ } | undefined;
1594
+ adviseExecuteHistory?: Record<string, {
1595
+ action: string;
1596
+ atMs: number;
1597
+ }> | undefined;
1157
1598
  }>;
1158
1599
  export type TradeStateFile = z.infer<typeof TradeStateFileSchema>;
1159
1600
  export declare function createEmptyTradeState(nowMs: number): TradeStateFile;