@adaptic/utils 0.1.49 → 0.1.50

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 (137) hide show
  1. package/dist/index.cjs +58226 -229
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.mjs +58193 -229
  4. package/dist/index.mjs.map +1 -1
  5. package/dist/types/alpaca/client.d.ts +105 -0
  6. package/dist/types/alpaca/client.d.ts.map +1 -0
  7. package/dist/types/alpaca/crypto/data.d.ts +281 -0
  8. package/dist/types/alpaca/crypto/data.d.ts.map +1 -0
  9. package/dist/types/alpaca/crypto/index.d.ts +75 -0
  10. package/dist/types/alpaca/crypto/index.d.ts.map +1 -0
  11. package/dist/types/alpaca/crypto/orders.d.ts +221 -0
  12. package/dist/types/alpaca/crypto/orders.d.ts.map +1 -0
  13. package/dist/types/alpaca/index.d.ts +204 -0
  14. package/dist/types/alpaca/index.d.ts.map +1 -0
  15. package/dist/types/alpaca/market-data/bars.d.ts +142 -0
  16. package/dist/types/alpaca/market-data/bars.d.ts.map +1 -0
  17. package/dist/types/alpaca/market-data/index.d.ts +13 -0
  18. package/dist/types/alpaca/market-data/index.d.ts.map +1 -0
  19. package/dist/types/alpaca/market-data/news.d.ts +87 -0
  20. package/dist/types/alpaca/market-data/news.d.ts.map +1 -0
  21. package/dist/types/alpaca/market-data/quotes.d.ts +85 -0
  22. package/dist/types/alpaca/market-data/quotes.d.ts.map +1 -0
  23. package/dist/types/alpaca/market-data/trades.d.ts +98 -0
  24. package/dist/types/alpaca/market-data/trades.d.ts.map +1 -0
  25. package/dist/types/alpaca/options/contracts.d.ts +279 -0
  26. package/dist/types/alpaca/options/contracts.d.ts.map +1 -0
  27. package/dist/types/alpaca/options/data.d.ts +126 -0
  28. package/dist/types/alpaca/options/data.d.ts.map +1 -0
  29. package/dist/types/alpaca/options/index.d.ts +17 -0
  30. package/dist/types/alpaca/options/index.d.ts.map +1 -0
  31. package/dist/types/alpaca/options/orders.d.ts +366 -0
  32. package/dist/types/alpaca/options/orders.d.ts.map +1 -0
  33. package/dist/types/alpaca/options/strategies.d.ts +224 -0
  34. package/dist/types/alpaca/options/strategies.d.ts.map +1 -0
  35. package/dist/types/alpaca/streams/base-stream.d.ts +143 -0
  36. package/dist/types/alpaca/streams/base-stream.d.ts.map +1 -0
  37. package/dist/types/alpaca/streams/crypto-stream.d.ts +173 -0
  38. package/dist/types/alpaca/streams/crypto-stream.d.ts.map +1 -0
  39. package/dist/types/alpaca/streams/index.d.ts +54 -0
  40. package/dist/types/alpaca/streams/index.d.ts.map +1 -0
  41. package/dist/types/alpaca/streams/option-stream.d.ts +167 -0
  42. package/dist/types/alpaca/streams/option-stream.d.ts.map +1 -0
  43. package/dist/types/alpaca/streams/stock-stream.d.ts +176 -0
  44. package/dist/types/alpaca/streams/stock-stream.d.ts.map +1 -0
  45. package/dist/types/alpaca/streams/stream-manager.d.ts +277 -0
  46. package/dist/types/alpaca/streams/stream-manager.d.ts.map +1 -0
  47. package/dist/types/alpaca/streams/trading-stream.d.ts +186 -0
  48. package/dist/types/alpaca/streams/trading-stream.d.ts.map +1 -0
  49. package/dist/types/alpaca/trading/account.d.ts +198 -0
  50. package/dist/types/alpaca/trading/account.d.ts.map +1 -0
  51. package/dist/types/alpaca/trading/bracket-orders.d.ts +162 -0
  52. package/dist/types/alpaca/trading/bracket-orders.d.ts.map +1 -0
  53. package/dist/types/alpaca/trading/clock.d.ts +99 -0
  54. package/dist/types/alpaca/trading/clock.d.ts.map +1 -0
  55. package/dist/types/alpaca/trading/index.d.ts +15 -0
  56. package/dist/types/alpaca/trading/index.d.ts.map +1 -0
  57. package/dist/types/alpaca/trading/oco-orders.d.ts +203 -0
  58. package/dist/types/alpaca/trading/oco-orders.d.ts.map +1 -0
  59. package/dist/types/alpaca/trading/order-utils.d.ts +404 -0
  60. package/dist/types/alpaca/trading/order-utils.d.ts.map +1 -0
  61. package/dist/types/alpaca/trading/orders.d.ts +199 -0
  62. package/dist/types/alpaca/trading/orders.d.ts.map +1 -0
  63. package/dist/types/alpaca/trading/oto-orders.d.ts +282 -0
  64. package/dist/types/alpaca/trading/oto-orders.d.ts.map +1 -0
  65. package/dist/types/alpaca/trading/positions.d.ts +389 -0
  66. package/dist/types/alpaca/trading/positions.d.ts.map +1 -0
  67. package/dist/types/alpaca/trading/smart-orders.d.ts +301 -0
  68. package/dist/types/alpaca/trading/smart-orders.d.ts.map +1 -0
  69. package/dist/types/alpaca/trading/trailing-stops.d.ts +247 -0
  70. package/dist/types/alpaca/trading/trailing-stops.d.ts.map +1 -0
  71. package/dist/types/config/api-endpoints.d.ts +94 -0
  72. package/dist/types/config/api-endpoints.d.ts.map +1 -0
  73. package/dist/types/errors/index.d.ts +130 -0
  74. package/dist/types/errors/index.d.ts.map +1 -0
  75. package/dist/types/examples/rate-limiter-example.d.ts +7 -0
  76. package/dist/types/examples/rate-limiter-example.d.ts.map +1 -0
  77. package/dist/types/http-timeout.d.ts +37 -0
  78. package/dist/types/http-timeout.d.ts.map +1 -0
  79. package/dist/types/index.d.ts +9 -0
  80. package/dist/types/index.d.ts.map +1 -1
  81. package/dist/types/logger.d.ts +68 -0
  82. package/dist/types/logger.d.ts.map +1 -0
  83. package/dist/types/massive.d.ts +167 -0
  84. package/dist/types/massive.d.ts.map +1 -0
  85. package/dist/types/rate-limiter.d.ts +173 -0
  86. package/dist/types/rate-limiter.d.ts.map +1 -0
  87. package/dist/types/risk-free-rate.d.ts +153 -0
  88. package/dist/types/risk-free-rate.d.ts.map +1 -0
  89. package/dist/types/schemas/alpaca-schemas.d.ts +779 -0
  90. package/dist/types/schemas/alpaca-schemas.d.ts.map +1 -0
  91. package/dist/types/schemas/alphavantage-schemas.d.ts +255 -0
  92. package/dist/types/schemas/alphavantage-schemas.d.ts.map +1 -0
  93. package/dist/types/schemas/index.d.ts +21 -0
  94. package/dist/types/schemas/index.d.ts.map +1 -0
  95. package/dist/types/schemas/massive-schemas.d.ts +561 -0
  96. package/dist/types/schemas/massive-schemas.d.ts.map +1 -0
  97. package/dist/types/schemas/validate-response.d.ts +88 -0
  98. package/dist/types/schemas/validate-response.d.ts.map +1 -0
  99. package/dist/types/trading-policy/defaults/default-trading-policy.d.ts +29 -0
  100. package/dist/types/trading-policy/defaults/default-trading-policy.d.ts.map +1 -0
  101. package/dist/types/trading-policy/enums.d.ts +85 -0
  102. package/dist/types/trading-policy/enums.d.ts.map +1 -0
  103. package/dist/types/trading-policy/index.d.ts +13 -2
  104. package/dist/types/trading-policy/index.d.ts.map +1 -1
  105. package/dist/types/trading-policy/schemas/asset-universe-prefs.schema.d.ts +182 -0
  106. package/dist/types/trading-policy/schemas/asset-universe-prefs.schema.d.ts.map +1 -0
  107. package/dist/types/trading-policy/schemas/audit-notification-prefs.schema.d.ts +112 -0
  108. package/dist/types/trading-policy/schemas/audit-notification-prefs.schema.d.ts.map +1 -0
  109. package/dist/types/trading-policy/schemas/autonomy-prefs.schema.d.ts +369 -0
  110. package/dist/types/trading-policy/schemas/autonomy-prefs.schema.d.ts.map +1 -0
  111. package/dist/types/trading-policy/schemas/effective-policy.schema.d.ts +1703 -0
  112. package/dist/types/trading-policy/schemas/effective-policy.schema.d.ts.map +1 -0
  113. package/dist/types/trading-policy/schemas/execution-prefs.schema.d.ts +122 -0
  114. package/dist/types/trading-policy/schemas/execution-prefs.schema.d.ts.map +1 -0
  115. package/dist/types/trading-policy/schemas/index.d.ts +13 -0
  116. package/dist/types/trading-policy/schemas/index.d.ts.map +1 -0
  117. package/dist/types/trading-policy/schemas/model-prefs.schema.d.ts +249 -0
  118. package/dist/types/trading-policy/schemas/model-prefs.schema.d.ts.map +1 -0
  119. package/dist/types/trading-policy/schemas/overlay-response-prefs.schema.d.ts +217 -0
  120. package/dist/types/trading-policy/schemas/overlay-response-prefs.schema.d.ts.map +1 -0
  121. package/dist/types/trading-policy/schemas/policy-mutation.schema.d.ts +3031 -0
  122. package/dist/types/trading-policy/schemas/policy-mutation.schema.d.ts.map +1 -0
  123. package/dist/types/trading-policy/schemas/portfolio-construction-prefs.schema.d.ts +258 -0
  124. package/dist/types/trading-policy/schemas/portfolio-construction-prefs.schema.d.ts.map +1 -0
  125. package/dist/types/trading-policy/schemas/position-management-prefs.schema.d.ts +218 -0
  126. package/dist/types/trading-policy/schemas/position-management-prefs.schema.d.ts.map +1 -0
  127. package/dist/types/trading-policy/schemas/risk-budget-prefs.schema.d.ts +188 -0
  128. package/dist/types/trading-policy/schemas/risk-budget-prefs.schema.d.ts.map +1 -0
  129. package/dist/types/trading-policy/schemas/signal-consumption-prefs.schema.d.ts +274 -0
  130. package/dist/types/trading-policy/schemas/signal-consumption-prefs.schema.d.ts.map +1 -0
  131. package/dist/types/types/alpaca-types.d.ts +108 -17
  132. package/dist/types/types/alpaca-types.d.ts.map +1 -1
  133. package/dist/types/utils/paginator.d.ts +154 -0
  134. package/dist/types/utils/paginator.d.ts.map +1 -0
  135. package/dist/types/utils/retry.d.ts +83 -0
  136. package/dist/types/utils/retry.d.ts.map +1 -0
  137. package/package.json +5 -1
@@ -0,0 +1,1703 @@
1
+ import { z } from "zod";
2
+ import { AutonomyMode, LlmProvider } from "../enums";
3
+ /**
4
+ * Effective trading policy schema representing the fully-resolved policy
5
+ * with all required fields populated. This is the runtime contract for the
6
+ * trading engine -- every field is required (no optionals).
7
+ */
8
+ export declare const EffectiveTradingPolicySchema: z.ZodObject<{
9
+ autonomyMode: z.ZodNativeEnum<typeof AutonomyMode>;
10
+ realtimeTradingEnabled: z.ZodBoolean;
11
+ paperTradingOnly: z.ZodBoolean;
12
+ killSwitchEnabled: z.ZodBoolean;
13
+ equitiesEnabled: z.ZodBoolean;
14
+ etfsEnabled: z.ZodBoolean;
15
+ cryptoEnabled: z.ZodBoolean;
16
+ optionsEnabled: z.ZodBoolean;
17
+ futuresEnabled: z.ZodBoolean;
18
+ forexEnabled: z.ZodBoolean;
19
+ shortingEnabled: z.ZodBoolean;
20
+ marginEnabled: z.ZodBoolean;
21
+ fractionalSharesEnabled: z.ZodBoolean;
22
+ maxBuyingPowerUtilPct: z.ZodNumber;
23
+ cashFloorPct: z.ZodNumber;
24
+ maxGrossExposurePct: z.ZodNumber;
25
+ maxNetExposurePct: z.ZodNumber;
26
+ maxLeverage: z.ZodNumber;
27
+ maxSymbolConcentrationPct: z.ZodNumber;
28
+ maxSectorConcentrationPct: z.ZodNumber;
29
+ maxOpenPositions: z.ZodNumber;
30
+ maxOpenOrders: z.ZodNumber;
31
+ /** Percentage of account equity (with leverage) allocated per equities trade. Canonical replacement for legacy AlpacaAccount.tradeAllocationPct. */
32
+ perTradeEquityAllocationPct: z.ZodNumber;
33
+ /** Percentage of the crypto allocation slice of account equity allocated per crypto trade. Canonical replacement for legacy AlpacaAccount.cryptoTradeAllocationPct. */
34
+ perTradeCryptoAllocationPct: z.ZodNumber;
35
+ /**
36
+ * Wash-trade cooldown period in milliseconds for equities. Defines the
37
+ * minimum elapsed time between opposing-side fills on the same symbol per
38
+ * FINRA Rule 5210, mirroring the 30s default already enforced for crypto.
39
+ * Mirrors `TradingPolicy.equityWashTradeCooldownMs` in backend-legacy.
40
+ * Optional so that legacy snapshots that pre-date this field continue to
41
+ * parse cleanly; consumers should fall back to a 30_000ms static default
42
+ * when undefined.
43
+ */
44
+ equityWashTradeCooldownMs: z.ZodOptional<z.ZodNumber>;
45
+ /**
46
+ * Maximum daily portfolio loss as a fraction of account equity, evaluated
47
+ * intraday from the broker's `equity` vs `last_equity` delta. Breach
48
+ * activates a 24h `BLOCK_NEW_OPENS` halt per Reg-T daily-loss-limit
49
+ * controls. Optional so legacy snapshots parse cleanly; consumers
50
+ * should fall back to the static default in `defaultRiskConfig.dailyLossLimits.maxDailyLossPercent`
51
+ * (3%) when undefined. Range constrained to [0, 1) — a 100% daily-loss
52
+ * threshold would be nonsensical.
53
+ */
54
+ maxDailyLossPercent: z.ZodOptional<z.ZodNumber>;
55
+ macroOverlayEnabled: z.ZodBoolean;
56
+ sectorOverlayEnabled: z.ZodBoolean;
57
+ volatilityOverlayEnabled: z.ZodBoolean;
58
+ liquidityStressOverlayEnabled: z.ZodBoolean;
59
+ blackSwanProtectionEnabled: z.ZodBoolean;
60
+ drawdownGuardianEnabled: z.ZodBoolean;
61
+ correlationSpikeProtectionEnabled: z.ZodBoolean;
62
+ newsEventRiskOverlayEnabled: z.ZodBoolean;
63
+ exchangeHealthOverlayEnabled: z.ZodBoolean;
64
+ dataQualitySentinelEnabled: z.ZodBoolean;
65
+ miniModelProvider: z.ZodNullable<z.ZodNativeEnum<typeof LlmProvider>>;
66
+ miniModelId: z.ZodNullable<z.ZodString>;
67
+ normalModelProvider: z.ZodNullable<z.ZodNativeEnum<typeof LlmProvider>>;
68
+ normalModelId: z.ZodNullable<z.ZodString>;
69
+ advancedModelProvider: z.ZodNullable<z.ZodNativeEnum<typeof LlmProvider>>;
70
+ advancedModelId: z.ZodNullable<z.ZodString>;
71
+ autonomyPrefs: z.ZodDefault<z.ZodObject<{
72
+ requireHumanApprovalFor: z.ZodDefault<z.ZodObject<{
73
+ firstTradeInSymbol: z.ZodDefault<z.ZodBoolean>;
74
+ reversals: z.ZodDefault<z.ZodBoolean>;
75
+ shortSales: z.ZodDefault<z.ZodBoolean>;
76
+ leverageIncreases: z.ZodDefault<z.ZodBoolean>;
77
+ overnightHolds: z.ZodDefault<z.ZodBoolean>;
78
+ afterHoursTrades: z.ZodDefault<z.ZodBoolean>;
79
+ cryptoTrades: z.ZodDefault<z.ZodBoolean>;
80
+ concentratedPositions: z.ZodDefault<z.ZodBoolean>;
81
+ largeNotionalOrders: z.ZodDefault<z.ZodBoolean>;
82
+ largeNotionalThreshold: z.ZodDefault<z.ZodNumber>;
83
+ portfolioLiquidation: z.ZodDefault<z.ZodBoolean>;
84
+ closeAllOrdersAndPositions: z.ZodDefault<z.ZodBoolean>;
85
+ policyMutations: z.ZodDefault<z.ZodBoolean>;
86
+ advancedModelEscalations: z.ZodDefault<z.ZodBoolean>;
87
+ }, "strip", z.ZodTypeAny, {
88
+ firstTradeInSymbol: boolean;
89
+ reversals: boolean;
90
+ shortSales: boolean;
91
+ leverageIncreases: boolean;
92
+ overnightHolds: boolean;
93
+ afterHoursTrades: boolean;
94
+ cryptoTrades: boolean;
95
+ concentratedPositions: boolean;
96
+ largeNotionalOrders: boolean;
97
+ largeNotionalThreshold: number;
98
+ portfolioLiquidation: boolean;
99
+ closeAllOrdersAndPositions: boolean;
100
+ policyMutations: boolean;
101
+ advancedModelEscalations: boolean;
102
+ }, {
103
+ firstTradeInSymbol?: boolean | undefined;
104
+ reversals?: boolean | undefined;
105
+ shortSales?: boolean | undefined;
106
+ leverageIncreases?: boolean | undefined;
107
+ overnightHolds?: boolean | undefined;
108
+ afterHoursTrades?: boolean | undefined;
109
+ cryptoTrades?: boolean | undefined;
110
+ concentratedPositions?: boolean | undefined;
111
+ largeNotionalOrders?: boolean | undefined;
112
+ largeNotionalThreshold?: number | undefined;
113
+ portfolioLiquidation?: boolean | undefined;
114
+ closeAllOrdersAndPositions?: boolean | undefined;
115
+ policyMutations?: boolean | undefined;
116
+ advancedModelEscalations?: boolean | undefined;
117
+ }>>;
118
+ autoPauseOnIncident: z.ZodDefault<z.ZodBoolean>;
119
+ autoPauseOnBlackSwan: z.ZodDefault<z.ZodBoolean>;
120
+ autoPauseOnBrokerDegradation: z.ZodDefault<z.ZodBoolean>;
121
+ autoPauseOnDataQualityIssues: z.ZodDefault<z.ZodBoolean>;
122
+ autoPauseOnExcessSlippage: z.ZodDefault<z.ZodBoolean>;
123
+ excessSlippageThresholdPct: z.ZodDefault<z.ZodNumber>;
124
+ autoPauseOnDrawdownBreach: z.ZodDefault<z.ZodBoolean>;
125
+ autoPauseOnModelConfidenceCollapse: z.ZodDefault<z.ZodBoolean>;
126
+ modelConfidenceCollapseThreshold: z.ZodDefault<z.ZodNumber>;
127
+ allowedSessions: z.ZodDefault<z.ZodObject<{
128
+ premarket: z.ZodDefault<z.ZodBoolean>;
129
+ regular: z.ZodDefault<z.ZodBoolean>;
130
+ afterHours: z.ZodDefault<z.ZodBoolean>;
131
+ overnight: z.ZodDefault<z.ZodBoolean>;
132
+ weekends: z.ZodDefault<z.ZodBoolean>;
133
+ }, "strip", z.ZodTypeAny, {
134
+ premarket: boolean;
135
+ regular: boolean;
136
+ afterHours: boolean;
137
+ overnight: boolean;
138
+ weekends: boolean;
139
+ }, {
140
+ premarket?: boolean | undefined;
141
+ regular?: boolean | undefined;
142
+ afterHours?: boolean | undefined;
143
+ overnight?: boolean | undefined;
144
+ weekends?: boolean | undefined;
145
+ }>>;
146
+ }, "strip", z.ZodTypeAny, {
147
+ requireHumanApprovalFor: {
148
+ firstTradeInSymbol: boolean;
149
+ reversals: boolean;
150
+ shortSales: boolean;
151
+ leverageIncreases: boolean;
152
+ overnightHolds: boolean;
153
+ afterHoursTrades: boolean;
154
+ cryptoTrades: boolean;
155
+ concentratedPositions: boolean;
156
+ largeNotionalOrders: boolean;
157
+ largeNotionalThreshold: number;
158
+ portfolioLiquidation: boolean;
159
+ closeAllOrdersAndPositions: boolean;
160
+ policyMutations: boolean;
161
+ advancedModelEscalations: boolean;
162
+ };
163
+ autoPauseOnIncident: boolean;
164
+ autoPauseOnBlackSwan: boolean;
165
+ autoPauseOnBrokerDegradation: boolean;
166
+ autoPauseOnDataQualityIssues: boolean;
167
+ autoPauseOnExcessSlippage: boolean;
168
+ excessSlippageThresholdPct: number;
169
+ autoPauseOnDrawdownBreach: boolean;
170
+ autoPauseOnModelConfidenceCollapse: boolean;
171
+ modelConfidenceCollapseThreshold: number;
172
+ allowedSessions: {
173
+ premarket: boolean;
174
+ regular: boolean;
175
+ afterHours: boolean;
176
+ overnight: boolean;
177
+ weekends: boolean;
178
+ };
179
+ }, {
180
+ requireHumanApprovalFor?: {
181
+ firstTradeInSymbol?: boolean | undefined;
182
+ reversals?: boolean | undefined;
183
+ shortSales?: boolean | undefined;
184
+ leverageIncreases?: boolean | undefined;
185
+ overnightHolds?: boolean | undefined;
186
+ afterHoursTrades?: boolean | undefined;
187
+ cryptoTrades?: boolean | undefined;
188
+ concentratedPositions?: boolean | undefined;
189
+ largeNotionalOrders?: boolean | undefined;
190
+ largeNotionalThreshold?: number | undefined;
191
+ portfolioLiquidation?: boolean | undefined;
192
+ closeAllOrdersAndPositions?: boolean | undefined;
193
+ policyMutations?: boolean | undefined;
194
+ advancedModelEscalations?: boolean | undefined;
195
+ } | undefined;
196
+ autoPauseOnIncident?: boolean | undefined;
197
+ autoPauseOnBlackSwan?: boolean | undefined;
198
+ autoPauseOnBrokerDegradation?: boolean | undefined;
199
+ autoPauseOnDataQualityIssues?: boolean | undefined;
200
+ autoPauseOnExcessSlippage?: boolean | undefined;
201
+ excessSlippageThresholdPct?: number | undefined;
202
+ autoPauseOnDrawdownBreach?: boolean | undefined;
203
+ autoPauseOnModelConfidenceCollapse?: boolean | undefined;
204
+ modelConfidenceCollapseThreshold?: number | undefined;
205
+ allowedSessions?: {
206
+ premarket?: boolean | undefined;
207
+ regular?: boolean | undefined;
208
+ afterHours?: boolean | undefined;
209
+ overnight?: boolean | undefined;
210
+ weekends?: boolean | undefined;
211
+ } | undefined;
212
+ }>>;
213
+ assetUniversePrefs: z.ZodDefault<z.ZodObject<{
214
+ equitiesDirection: z.ZodDefault<z.ZodEnum<["long_only", "long_short", "market_neutral"]>>;
215
+ etfsDirection: z.ZodDefault<z.ZodEnum<["long_only", "long_short"]>>;
216
+ cryptoDirection: z.ZodDefault<z.ZodEnum<["long_only", "long_short"]>>;
217
+ optionsDirection: z.ZodDefault<z.ZodEnum<["long_only", "long_short"]>>;
218
+ allowedExchanges: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
219
+ deniedExchanges: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
220
+ allowedCountries: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
221
+ deniedCountries: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
222
+ allowedSectors: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
223
+ deniedSectors: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
224
+ allowedSymbols: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
225
+ deniedSymbols: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
226
+ cryptoSpotOnly: z.ZodDefault<z.ZodBoolean>;
227
+ allowedCryptoPairs: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
228
+ deniedCryptoPairs: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
229
+ minMarketCapMillions: z.ZodDefault<z.ZodNumber>;
230
+ minAvgDailyVolume: z.ZodDefault<z.ZodNumber>;
231
+ minPrice: z.ZodDefault<z.ZodNumber>;
232
+ maxPrice: z.ZodDefault<z.ZodNumber>;
233
+ maxSpreadPct: z.ZodDefault<z.ZodNumber>;
234
+ minLiquidityScore: z.ZodDefault<z.ZodNumber>;
235
+ leveragedEtfsEnabled: z.ZodDefault<z.ZodBoolean>;
236
+ inverseEtfsEnabled: z.ZodDefault<z.ZodBoolean>;
237
+ memeStocksEnabled: z.ZodDefault<z.ZodBoolean>;
238
+ ipoParticipationEnabled: z.ZodDefault<z.ZodBoolean>;
239
+ borrowAvailabilityRequired: z.ZodDefault<z.ZodBoolean>;
240
+ maxBorrowFeePct: z.ZodDefault<z.ZodNumber>;
241
+ }, "strip", z.ZodTypeAny, {
242
+ equitiesDirection: "long_only" | "long_short" | "market_neutral";
243
+ etfsDirection: "long_only" | "long_short";
244
+ cryptoDirection: "long_only" | "long_short";
245
+ optionsDirection: "long_only" | "long_short";
246
+ allowedExchanges: string[];
247
+ deniedExchanges: string[];
248
+ allowedCountries: string[];
249
+ deniedCountries: string[];
250
+ allowedSectors: string[];
251
+ deniedSectors: string[];
252
+ allowedSymbols: string[];
253
+ deniedSymbols: string[];
254
+ cryptoSpotOnly: boolean;
255
+ allowedCryptoPairs: string[];
256
+ deniedCryptoPairs: string[];
257
+ minMarketCapMillions: number;
258
+ minAvgDailyVolume: number;
259
+ minPrice: number;
260
+ maxPrice: number;
261
+ maxSpreadPct: number;
262
+ minLiquidityScore: number;
263
+ leveragedEtfsEnabled: boolean;
264
+ inverseEtfsEnabled: boolean;
265
+ memeStocksEnabled: boolean;
266
+ ipoParticipationEnabled: boolean;
267
+ borrowAvailabilityRequired: boolean;
268
+ maxBorrowFeePct: number;
269
+ }, {
270
+ equitiesDirection?: "long_only" | "long_short" | "market_neutral" | undefined;
271
+ etfsDirection?: "long_only" | "long_short" | undefined;
272
+ cryptoDirection?: "long_only" | "long_short" | undefined;
273
+ optionsDirection?: "long_only" | "long_short" | undefined;
274
+ allowedExchanges?: string[] | undefined;
275
+ deniedExchanges?: string[] | undefined;
276
+ allowedCountries?: string[] | undefined;
277
+ deniedCountries?: string[] | undefined;
278
+ allowedSectors?: string[] | undefined;
279
+ deniedSectors?: string[] | undefined;
280
+ allowedSymbols?: string[] | undefined;
281
+ deniedSymbols?: string[] | undefined;
282
+ cryptoSpotOnly?: boolean | undefined;
283
+ allowedCryptoPairs?: string[] | undefined;
284
+ deniedCryptoPairs?: string[] | undefined;
285
+ minMarketCapMillions?: number | undefined;
286
+ minAvgDailyVolume?: number | undefined;
287
+ minPrice?: number | undefined;
288
+ maxPrice?: number | undefined;
289
+ maxSpreadPct?: number | undefined;
290
+ minLiquidityScore?: number | undefined;
291
+ leveragedEtfsEnabled?: boolean | undefined;
292
+ inverseEtfsEnabled?: boolean | undefined;
293
+ memeStocksEnabled?: boolean | undefined;
294
+ ipoParticipationEnabled?: boolean | undefined;
295
+ borrowAvailabilityRequired?: boolean | undefined;
296
+ maxBorrowFeePct?: number | undefined;
297
+ }>>;
298
+ riskBudgetPrefs: z.ZodDefault<z.ZodObject<{
299
+ maxMarginUtilPct: z.ZodDefault<z.ZodNumber>;
300
+ maxIssuerConcentrationPct: z.ZodDefault<z.ZodNumber>;
301
+ maxThemeConcentrationPct: z.ZodDefault<z.ZodNumber>;
302
+ maxAssetClassConcentrationPct: z.ZodDefault<z.ZodNumber>;
303
+ maxCountryConcentrationPct: z.ZodDefault<z.ZodNumber>;
304
+ maxCurrencyExposurePct: z.ZodDefault<z.ZodNumber>;
305
+ maxCorrelatedExposurePct: z.ZodDefault<z.ZodNumber>;
306
+ betaTarget: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
307
+ maxBeta: z.ZodDefault<z.ZodNumber>;
308
+ maxRiskPerTradePct: z.ZodDefault<z.ZodNumber>;
309
+ maxLossPerDayPct: z.ZodDefault<z.ZodNumber>;
310
+ maxLossPerWeekPct: z.ZodDefault<z.ZodNumber>;
311
+ maxLossPerMonthPct: z.ZodDefault<z.ZodNumber>;
312
+ maxDrawdownFromPeakPct: z.ZodDefault<z.ZodNumber>;
313
+ maxSimultaneousSignalsPerStrategy: z.ZodDefault<z.ZodNumber>;
314
+ maxAggregateHeatPct: z.ZodDefault<z.ZodNumber>;
315
+ overnightExposureCapPct: z.ZodDefault<z.ZodNumber>;
316
+ weekendExposureCapPct: z.ZodDefault<z.ZodNumber>;
317
+ eventRiskExposureCapPct: z.ZodDefault<z.ZodNumber>;
318
+ gapRiskSensitivity: z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>;
319
+ perTradeAllocationPct: z.ZodDefault<z.ZodNumber>;
320
+ perTradeCryptoAllocationPct: z.ZodDefault<z.ZodNumber>;
321
+ dtbpCheck: z.ZodDefault<z.ZodEnum<["both", "entry", "exit"]>>;
322
+ pdtCheck: z.ZodDefault<z.ZodEnum<["both", "entry", "exit"]>>;
323
+ ptpNoExceptionEntry: z.ZodDefault<z.ZodBoolean>;
324
+ }, "strip", z.ZodTypeAny, {
325
+ maxMarginUtilPct: number;
326
+ maxIssuerConcentrationPct: number;
327
+ maxThemeConcentrationPct: number;
328
+ maxAssetClassConcentrationPct: number;
329
+ maxCountryConcentrationPct: number;
330
+ maxCurrencyExposurePct: number;
331
+ maxCorrelatedExposurePct: number;
332
+ betaTarget: number | null;
333
+ maxBeta: number;
334
+ maxRiskPerTradePct: number;
335
+ maxLossPerDayPct: number;
336
+ maxLossPerWeekPct: number;
337
+ maxLossPerMonthPct: number;
338
+ maxDrawdownFromPeakPct: number;
339
+ maxSimultaneousSignalsPerStrategy: number;
340
+ maxAggregateHeatPct: number;
341
+ overnightExposureCapPct: number;
342
+ weekendExposureCapPct: number;
343
+ eventRiskExposureCapPct: number;
344
+ gapRiskSensitivity: "low" | "medium" | "high";
345
+ perTradeAllocationPct: number;
346
+ perTradeCryptoAllocationPct: number;
347
+ dtbpCheck: "both" | "entry" | "exit";
348
+ pdtCheck: "both" | "entry" | "exit";
349
+ ptpNoExceptionEntry: boolean;
350
+ }, {
351
+ maxMarginUtilPct?: number | undefined;
352
+ maxIssuerConcentrationPct?: number | undefined;
353
+ maxThemeConcentrationPct?: number | undefined;
354
+ maxAssetClassConcentrationPct?: number | undefined;
355
+ maxCountryConcentrationPct?: number | undefined;
356
+ maxCurrencyExposurePct?: number | undefined;
357
+ maxCorrelatedExposurePct?: number | undefined;
358
+ betaTarget?: number | null | undefined;
359
+ maxBeta?: number | undefined;
360
+ maxRiskPerTradePct?: number | undefined;
361
+ maxLossPerDayPct?: number | undefined;
362
+ maxLossPerWeekPct?: number | undefined;
363
+ maxLossPerMonthPct?: number | undefined;
364
+ maxDrawdownFromPeakPct?: number | undefined;
365
+ maxSimultaneousSignalsPerStrategy?: number | undefined;
366
+ maxAggregateHeatPct?: number | undefined;
367
+ overnightExposureCapPct?: number | undefined;
368
+ weekendExposureCapPct?: number | undefined;
369
+ eventRiskExposureCapPct?: number | undefined;
370
+ gapRiskSensitivity?: "low" | "medium" | "high" | undefined;
371
+ perTradeAllocationPct?: number | undefined;
372
+ perTradeCryptoAllocationPct?: number | undefined;
373
+ dtbpCheck?: "both" | "entry" | "exit" | undefined;
374
+ pdtCheck?: "both" | "entry" | "exit" | undefined;
375
+ ptpNoExceptionEntry?: boolean | undefined;
376
+ }>>;
377
+ signalConsumptionPrefs: z.ZodDefault<z.ZodObject<{
378
+ enabledStrategies: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
379
+ disabledStrategies: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
380
+ minConfidenceByDefault: z.ZodDefault<z.ZodNumber>;
381
+ minConfidenceByAssetClass: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
382
+ minConfidenceByStrategy: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
383
+ minExpectedRewardRiskRatio: z.ZodDefault<z.ZodNumber>;
384
+ minExpectedEdgePct: z.ZodDefault<z.ZodNumber>;
385
+ maxSignalAgeSeconds: z.ZodDefault<z.ZodNumber>;
386
+ cooldownAfterEntrySeconds: z.ZodDefault<z.ZodNumber>;
387
+ cooldownAfterExitSeconds: z.ZodDefault<z.ZodNumber>;
388
+ cooldownAfterStopOutSeconds: z.ZodDefault<z.ZodNumber>;
389
+ cooldownAfterFailedTradeSeconds: z.ZodDefault<z.ZodNumber>;
390
+ duplicateSignalSuppressionWindowSeconds: z.ZodDefault<z.ZodNumber>;
391
+ reversalHandlingPolicy: z.ZodDefault<z.ZodEnum<["ignore_reversal", "close_only", "flatten_then_reverse", "allow_full_reversal"]>>;
392
+ conflictHandlingOpenOrders: z.ZodDefault<z.ZodEnum<["cancel_conflicting", "replace_existing", "keep_existing_skip", "escalate"]>>;
393
+ conflictHandlingOpposingPosition: z.ZodDefault<z.ZodEnum<["reduce", "close", "flatten_then_reverse", "hold"]>>;
394
+ minConvictionDeltaToModify: z.ZodDefault<z.ZodNumber>;
395
+ strategyPriorityRules: z.ZodDefault<z.ZodArray<z.ZodObject<{
396
+ strategy: z.ZodString;
397
+ priority: z.ZodNumber;
398
+ }, "strip", z.ZodTypeAny, {
399
+ strategy: string;
400
+ priority: number;
401
+ }, {
402
+ strategy: string;
403
+ priority: number;
404
+ }>, "many">>;
405
+ noTradeWindows: z.ZodDefault<z.ZodArray<z.ZodObject<{
406
+ name: z.ZodString;
407
+ startTime: z.ZodString;
408
+ endTime: z.ZodString;
409
+ daysOfWeek: z.ZodDefault<z.ZodArray<z.ZodNumber, "many">>;
410
+ enabled: z.ZodDefault<z.ZodBoolean>;
411
+ }, "strip", z.ZodTypeAny, {
412
+ name: string;
413
+ startTime: string;
414
+ endTime: string;
415
+ daysOfWeek: number[];
416
+ enabled: boolean;
417
+ }, {
418
+ name: string;
419
+ startTime: string;
420
+ endTime: string;
421
+ daysOfWeek?: number[] | undefined;
422
+ enabled?: boolean | undefined;
423
+ }>, "many">>;
424
+ earningsBlackoutEnabled: z.ZodDefault<z.ZodBoolean>;
425
+ earningsBlackoutHoursBefore: z.ZodDefault<z.ZodNumber>;
426
+ earningsBlackoutHoursAfter: z.ZodDefault<z.ZodNumber>;
427
+ minPercentageChange: z.ZodDefault<z.ZodNumber>;
428
+ volumeThreshold: z.ZodDefault<z.ZodNumber>;
429
+ }, "strip", z.ZodTypeAny, {
430
+ minPercentageChange: number;
431
+ volumeThreshold: number;
432
+ enabledStrategies: string[];
433
+ disabledStrategies: string[];
434
+ minConfidenceByDefault: number;
435
+ minConfidenceByAssetClass: Record<string, number>;
436
+ minConfidenceByStrategy: Record<string, number>;
437
+ minExpectedRewardRiskRatio: number;
438
+ minExpectedEdgePct: number;
439
+ maxSignalAgeSeconds: number;
440
+ cooldownAfterEntrySeconds: number;
441
+ cooldownAfterExitSeconds: number;
442
+ cooldownAfterStopOutSeconds: number;
443
+ cooldownAfterFailedTradeSeconds: number;
444
+ duplicateSignalSuppressionWindowSeconds: number;
445
+ reversalHandlingPolicy: "ignore_reversal" | "close_only" | "flatten_then_reverse" | "allow_full_reversal";
446
+ conflictHandlingOpenOrders: "cancel_conflicting" | "replace_existing" | "keep_existing_skip" | "escalate";
447
+ conflictHandlingOpposingPosition: "close" | "reduce" | "flatten_then_reverse" | "hold";
448
+ minConvictionDeltaToModify: number;
449
+ strategyPriorityRules: {
450
+ strategy: string;
451
+ priority: number;
452
+ }[];
453
+ noTradeWindows: {
454
+ name: string;
455
+ startTime: string;
456
+ endTime: string;
457
+ daysOfWeek: number[];
458
+ enabled: boolean;
459
+ }[];
460
+ earningsBlackoutEnabled: boolean;
461
+ earningsBlackoutHoursBefore: number;
462
+ earningsBlackoutHoursAfter: number;
463
+ }, {
464
+ minPercentageChange?: number | undefined;
465
+ volumeThreshold?: number | undefined;
466
+ enabledStrategies?: string[] | undefined;
467
+ disabledStrategies?: string[] | undefined;
468
+ minConfidenceByDefault?: number | undefined;
469
+ minConfidenceByAssetClass?: Record<string, number> | undefined;
470
+ minConfidenceByStrategy?: Record<string, number> | undefined;
471
+ minExpectedRewardRiskRatio?: number | undefined;
472
+ minExpectedEdgePct?: number | undefined;
473
+ maxSignalAgeSeconds?: number | undefined;
474
+ cooldownAfterEntrySeconds?: number | undefined;
475
+ cooldownAfterExitSeconds?: number | undefined;
476
+ cooldownAfterStopOutSeconds?: number | undefined;
477
+ cooldownAfterFailedTradeSeconds?: number | undefined;
478
+ duplicateSignalSuppressionWindowSeconds?: number | undefined;
479
+ reversalHandlingPolicy?: "ignore_reversal" | "close_only" | "flatten_then_reverse" | "allow_full_reversal" | undefined;
480
+ conflictHandlingOpenOrders?: "cancel_conflicting" | "replace_existing" | "keep_existing_skip" | "escalate" | undefined;
481
+ conflictHandlingOpposingPosition?: "close" | "reduce" | "flatten_then_reverse" | "hold" | undefined;
482
+ minConvictionDeltaToModify?: number | undefined;
483
+ strategyPriorityRules?: {
484
+ strategy: string;
485
+ priority: number;
486
+ }[] | undefined;
487
+ noTradeWindows?: {
488
+ name: string;
489
+ startTime: string;
490
+ endTime: string;
491
+ daysOfWeek?: number[] | undefined;
492
+ enabled?: boolean | undefined;
493
+ }[] | undefined;
494
+ earningsBlackoutEnabled?: boolean | undefined;
495
+ earningsBlackoutHoursBefore?: number | undefined;
496
+ earningsBlackoutHoursAfter?: number | undefined;
497
+ }>>;
498
+ executionPrefs: z.ZodDefault<z.ZodObject<{
499
+ allowedOrderTypes: z.ZodDefault<z.ZodArray<z.ZodEnum<["market", "limit", "stop", "stop_limit", "trailing_stop"]>, "many">>;
500
+ preferredOrderType: z.ZodDefault<z.ZodEnum<["market", "limit", "stop", "stop_limit", "trailing_stop"]>>;
501
+ preferredOrderTypeByAssetClass: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
502
+ defaultTimeInForce: z.ZodDefault<z.ZodEnum<["day", "gtc", "ioc", "fok"]>>;
503
+ executionBias: z.ZodDefault<z.ZodEnum<["passive", "neutral", "aggressive"]>>;
504
+ maxSlippageTolerancePct: z.ZodDefault<z.ZodNumber>;
505
+ priceCollarEnabled: z.ZodDefault<z.ZodBoolean>;
506
+ priceCollarPct: z.ZodDefault<z.ZodNumber>;
507
+ repriceEnabled: z.ZodDefault<z.ZodBoolean>;
508
+ repriceMaxAttempts: z.ZodDefault<z.ZodNumber>;
509
+ repriceIntervalSeconds: z.ZodDefault<z.ZodNumber>;
510
+ cancelReplaceTimeoutSeconds: z.ZodDefault<z.ZodNumber>;
511
+ partialFillPolicy: z.ZodDefault<z.ZodEnum<["accept_partial", "cancel_remainder", "replace_to_fill"]>>;
512
+ sizingMethod: z.ZodDefault<z.ZodEnum<["notional", "quantity"]>>;
513
+ lotRoundingBehavior: z.ZodDefault<z.ZodEnum<["round_down", "round_nearest", "round_up"]>>;
514
+ afterHoursExecutionBehavior: z.ZodDefault<z.ZodEnum<["limit_only", "no_execution", "normal"]>>;
515
+ failureBehavior: z.ZodDefault<z.ZodEnum<["fail_safe", "fail_open"]>>;
516
+ }, "strip", z.ZodTypeAny, {
517
+ allowedOrderTypes: ("limit" | "market" | "stop" | "stop_limit" | "trailing_stop")[];
518
+ preferredOrderType: "limit" | "market" | "stop" | "stop_limit" | "trailing_stop";
519
+ preferredOrderTypeByAssetClass: Record<string, string>;
520
+ defaultTimeInForce: "day" | "gtc" | "ioc" | "fok";
521
+ executionBias: "passive" | "neutral" | "aggressive";
522
+ maxSlippageTolerancePct: number;
523
+ priceCollarEnabled: boolean;
524
+ priceCollarPct: number;
525
+ repriceEnabled: boolean;
526
+ repriceMaxAttempts: number;
527
+ repriceIntervalSeconds: number;
528
+ cancelReplaceTimeoutSeconds: number;
529
+ partialFillPolicy: "accept_partial" | "cancel_remainder" | "replace_to_fill";
530
+ sizingMethod: "notional" | "quantity";
531
+ lotRoundingBehavior: "round_down" | "round_nearest" | "round_up";
532
+ afterHoursExecutionBehavior: "limit_only" | "no_execution" | "normal";
533
+ failureBehavior: "fail_safe" | "fail_open";
534
+ }, {
535
+ allowedOrderTypes?: ("limit" | "market" | "stop" | "stop_limit" | "trailing_stop")[] | undefined;
536
+ preferredOrderType?: "limit" | "market" | "stop" | "stop_limit" | "trailing_stop" | undefined;
537
+ preferredOrderTypeByAssetClass?: Record<string, string> | undefined;
538
+ defaultTimeInForce?: "day" | "gtc" | "ioc" | "fok" | undefined;
539
+ executionBias?: "passive" | "neutral" | "aggressive" | undefined;
540
+ maxSlippageTolerancePct?: number | undefined;
541
+ priceCollarEnabled?: boolean | undefined;
542
+ priceCollarPct?: number | undefined;
543
+ repriceEnabled?: boolean | undefined;
544
+ repriceMaxAttempts?: number | undefined;
545
+ repriceIntervalSeconds?: number | undefined;
546
+ cancelReplaceTimeoutSeconds?: number | undefined;
547
+ partialFillPolicy?: "accept_partial" | "cancel_remainder" | "replace_to_fill" | undefined;
548
+ sizingMethod?: "notional" | "quantity" | undefined;
549
+ lotRoundingBehavior?: "round_down" | "round_nearest" | "round_up" | undefined;
550
+ afterHoursExecutionBehavior?: "limit_only" | "no_execution" | "normal" | undefined;
551
+ failureBehavior?: "fail_safe" | "fail_open" | undefined;
552
+ }>>;
553
+ positionManagementPrefs: z.ZodDefault<z.ZodObject<{
554
+ defaultStopLossMethod: z.ZodDefault<z.ZodEnum<["fixed_percent", "atr_based", "structure_based", "trailing_stop"]>>;
555
+ defaultStopLossPct: z.ZodDefault<z.ZodNumber>;
556
+ atrStopMultiplier: z.ZodDefault<z.ZodNumber>;
557
+ defaultTakeProfitMethod: z.ZodDefault<z.ZodEnum<["fixed_percent", "atr_based", "risk_reward_ratio", "none"]>>;
558
+ defaultTakeProfitPct: z.ZodDefault<z.ZodNumber>;
559
+ defaultRiskRewardRatio: z.ZodDefault<z.ZodNumber>;
560
+ breakEvenStopEnabled: z.ZodDefault<z.ZodBoolean>;
561
+ breakEvenTriggerPct: z.ZodDefault<z.ZodNumber>;
562
+ scaleInEnabled: z.ZodDefault<z.ZodBoolean>;
563
+ scaleInMaxAdds: z.ZodDefault<z.ZodNumber>;
564
+ scaleOutEnabled: z.ZodDefault<z.ZodBoolean>;
565
+ scaleOutTrimPct: z.ZodDefault<z.ZodNumber>;
566
+ scaleOutTriggerPct: z.ZodDefault<z.ZodNumber>;
567
+ maxHoldingPeriodMinutes: z.ZodDefault<z.ZodNumber>;
568
+ maxHoldingPeriodByAssetClass: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
569
+ dayTradeOnly: z.ZodDefault<z.ZodBoolean>;
570
+ autoCloseBeforeEarnings: z.ZodDefault<z.ZodBoolean>;
571
+ autoCloseBeforeClose: z.ZodDefault<z.ZodBoolean>;
572
+ autoCloseBeforeCloseMinutes: z.ZodDefault<z.ZodNumber>;
573
+ autoCloseBeforeWeekend: z.ZodDefault<z.ZodBoolean>;
574
+ addToWinnersAllowed: z.ZodDefault<z.ZodBoolean>;
575
+ addToLosersAllowed: z.ZodDefault<z.ZodBoolean>;
576
+ stopWideningAllowed: z.ZodDefault<z.ZodBoolean>;
577
+ trailingStopTighteningEnabled: z.ZodDefault<z.ZodBoolean>;
578
+ trailingStopTighteningRules: z.ZodDefault<z.ZodArray<z.ZodObject<{
579
+ profitThresholdPct: z.ZodNumber;
580
+ newTrailPct: z.ZodNumber;
581
+ }, "strip", z.ZodTypeAny, {
582
+ profitThresholdPct: number;
583
+ newTrailPct: number;
584
+ }, {
585
+ profitThresholdPct: number;
586
+ newTrailPct: number;
587
+ }>, "many">>;
588
+ portfolioStopOverridesPositionStops: z.ZodDefault<z.ZodBoolean>;
589
+ doNotReenterAfterStopOutMinutes: z.ZodDefault<z.ZodNumber>;
590
+ doNotReenterAfterForcedCloseMinutes: z.ZodDefault<z.ZodNumber>;
591
+ }, "strip", z.ZodTypeAny, {
592
+ defaultStopLossMethod: "trailing_stop" | "fixed_percent" | "atr_based" | "structure_based";
593
+ defaultStopLossPct: number;
594
+ atrStopMultiplier: number;
595
+ defaultTakeProfitMethod: "none" | "fixed_percent" | "atr_based" | "risk_reward_ratio";
596
+ defaultTakeProfitPct: number;
597
+ defaultRiskRewardRatio: number;
598
+ breakEvenStopEnabled: boolean;
599
+ breakEvenTriggerPct: number;
600
+ scaleInEnabled: boolean;
601
+ scaleInMaxAdds: number;
602
+ scaleOutEnabled: boolean;
603
+ scaleOutTrimPct: number;
604
+ scaleOutTriggerPct: number;
605
+ maxHoldingPeriodMinutes: number;
606
+ maxHoldingPeriodByAssetClass: Record<string, number>;
607
+ dayTradeOnly: boolean;
608
+ autoCloseBeforeEarnings: boolean;
609
+ autoCloseBeforeClose: boolean;
610
+ autoCloseBeforeCloseMinutes: number;
611
+ autoCloseBeforeWeekend: boolean;
612
+ addToWinnersAllowed: boolean;
613
+ addToLosersAllowed: boolean;
614
+ stopWideningAllowed: boolean;
615
+ trailingStopTighteningEnabled: boolean;
616
+ trailingStopTighteningRules: {
617
+ profitThresholdPct: number;
618
+ newTrailPct: number;
619
+ }[];
620
+ portfolioStopOverridesPositionStops: boolean;
621
+ doNotReenterAfterStopOutMinutes: number;
622
+ doNotReenterAfterForcedCloseMinutes: number;
623
+ }, {
624
+ defaultStopLossMethod?: "trailing_stop" | "fixed_percent" | "atr_based" | "structure_based" | undefined;
625
+ defaultStopLossPct?: number | undefined;
626
+ atrStopMultiplier?: number | undefined;
627
+ defaultTakeProfitMethod?: "none" | "fixed_percent" | "atr_based" | "risk_reward_ratio" | undefined;
628
+ defaultTakeProfitPct?: number | undefined;
629
+ defaultRiskRewardRatio?: number | undefined;
630
+ breakEvenStopEnabled?: boolean | undefined;
631
+ breakEvenTriggerPct?: number | undefined;
632
+ scaleInEnabled?: boolean | undefined;
633
+ scaleInMaxAdds?: number | undefined;
634
+ scaleOutEnabled?: boolean | undefined;
635
+ scaleOutTrimPct?: number | undefined;
636
+ scaleOutTriggerPct?: number | undefined;
637
+ maxHoldingPeriodMinutes?: number | undefined;
638
+ maxHoldingPeriodByAssetClass?: Record<string, number> | undefined;
639
+ dayTradeOnly?: boolean | undefined;
640
+ autoCloseBeforeEarnings?: boolean | undefined;
641
+ autoCloseBeforeClose?: boolean | undefined;
642
+ autoCloseBeforeCloseMinutes?: number | undefined;
643
+ autoCloseBeforeWeekend?: boolean | undefined;
644
+ addToWinnersAllowed?: boolean | undefined;
645
+ addToLosersAllowed?: boolean | undefined;
646
+ stopWideningAllowed?: boolean | undefined;
647
+ trailingStopTighteningEnabled?: boolean | undefined;
648
+ trailingStopTighteningRules?: {
649
+ profitThresholdPct: number;
650
+ newTrailPct: number;
651
+ }[] | undefined;
652
+ portfolioStopOverridesPositionStops?: boolean | undefined;
653
+ doNotReenterAfterStopOutMinutes?: number | undefined;
654
+ doNotReenterAfterForcedCloseMinutes?: number | undefined;
655
+ }>>;
656
+ portfolioConstructionPrefs: z.ZodDefault<z.ZodObject<{
657
+ targetAllocationByAssetClass: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
658
+ tacticalAllocationBands: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
659
+ target: z.ZodNumber;
660
+ minPct: z.ZodNumber;
661
+ maxPct: z.ZodNumber;
662
+ }, "strip", z.ZodTypeAny, {
663
+ target: number;
664
+ minPct: number;
665
+ maxPct: number;
666
+ }, {
667
+ target: number;
668
+ minPct: number;
669
+ maxPct: number;
670
+ }>>>;
671
+ driftThresholdPct: z.ZodDefault<z.ZodNumber>;
672
+ rebalanceTrigger: z.ZodDefault<z.ZodEnum<["threshold", "calendar", "both"]>>;
673
+ rebalanceFrequencyDays: z.ZodDefault<z.ZodNumber>;
674
+ autonomousRebalancing: z.ZodDefault<z.ZodBoolean>;
675
+ rebalanceDuringRiskOff: z.ZodDefault<z.ZodBoolean>;
676
+ maxTurnoverPerRebalancePct: z.ZodDefault<z.ZodNumber>;
677
+ preferredWeighting: z.ZodDefault<z.ZodEnum<["equal_weight", "risk_based", "conviction_weighted", "target_allocation"]>>;
678
+ strategySleeveBudgets: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
679
+ maxAllocationPct: z.ZodNumber;
680
+ currentAllocationPct: z.ZodDefault<z.ZodNumber>;
681
+ }, "strip", z.ZodTypeAny, {
682
+ maxAllocationPct: number;
683
+ currentAllocationPct: number;
684
+ }, {
685
+ maxAllocationPct: number;
686
+ currentAllocationPct?: number | undefined;
687
+ }>>>;
688
+ cashTargetPct: z.ZodDefault<z.ZodNumber>;
689
+ defensiveCashEscalationEnabled: z.ZodDefault<z.ZodBoolean>;
690
+ defensiveCashEscalationRules: z.ZodDefault<z.ZodArray<z.ZodObject<{
691
+ triggerCondition: z.ZodString;
692
+ targetCashPct: z.ZodNumber;
693
+ }, "strip", z.ZodTypeAny, {
694
+ triggerCondition: string;
695
+ targetCashPct: number;
696
+ }, {
697
+ triggerCondition: string;
698
+ targetCashPct: number;
699
+ }>, "many">>;
700
+ hedgeOverlayEnabled: z.ZodDefault<z.ZodBoolean>;
701
+ autonomousPortfolioTrailingStop: z.ZodDefault<z.ZodBoolean>;
702
+ portfolioTrailingStopPct: z.ZodDefault<z.ZodNumber>;
703
+ portfolioCircuitBreakerEnabled: z.ZodDefault<z.ZodBoolean>;
704
+ portfolioCircuitBreakerDrawdownPct: z.ZodDefault<z.ZodNumber>;
705
+ equityCurveStopEnabled: z.ZodDefault<z.ZodBoolean>;
706
+ equityCurveStopLookbackDays: z.ZodDefault<z.ZodNumber>;
707
+ forcedDeleveragingEnabled: z.ZodDefault<z.ZodBoolean>;
708
+ forcedDeleveragingTriggerDrawdownPct: z.ZodDefault<z.ZodNumber>;
709
+ forcedDeleveragingTargetExposurePct: z.ZodDefault<z.ZodNumber>;
710
+ }, "strip", z.ZodTypeAny, {
711
+ targetAllocationByAssetClass: Record<string, number>;
712
+ tacticalAllocationBands: Record<string, {
713
+ target: number;
714
+ minPct: number;
715
+ maxPct: number;
716
+ }>;
717
+ driftThresholdPct: number;
718
+ rebalanceTrigger: "both" | "threshold" | "calendar";
719
+ rebalanceFrequencyDays: number;
720
+ autonomousRebalancing: boolean;
721
+ rebalanceDuringRiskOff: boolean;
722
+ maxTurnoverPerRebalancePct: number;
723
+ preferredWeighting: "equal_weight" | "risk_based" | "conviction_weighted" | "target_allocation";
724
+ strategySleeveBudgets: Record<string, {
725
+ maxAllocationPct: number;
726
+ currentAllocationPct: number;
727
+ }>;
728
+ cashTargetPct: number;
729
+ defensiveCashEscalationEnabled: boolean;
730
+ defensiveCashEscalationRules: {
731
+ triggerCondition: string;
732
+ targetCashPct: number;
733
+ }[];
734
+ hedgeOverlayEnabled: boolean;
735
+ autonomousPortfolioTrailingStop: boolean;
736
+ portfolioTrailingStopPct: number;
737
+ portfolioCircuitBreakerEnabled: boolean;
738
+ portfolioCircuitBreakerDrawdownPct: number;
739
+ equityCurveStopEnabled: boolean;
740
+ equityCurveStopLookbackDays: number;
741
+ forcedDeleveragingEnabled: boolean;
742
+ forcedDeleveragingTriggerDrawdownPct: number;
743
+ forcedDeleveragingTargetExposurePct: number;
744
+ }, {
745
+ targetAllocationByAssetClass?: Record<string, number> | undefined;
746
+ tacticalAllocationBands?: Record<string, {
747
+ target: number;
748
+ minPct: number;
749
+ maxPct: number;
750
+ }> | undefined;
751
+ driftThresholdPct?: number | undefined;
752
+ rebalanceTrigger?: "both" | "threshold" | "calendar" | undefined;
753
+ rebalanceFrequencyDays?: number | undefined;
754
+ autonomousRebalancing?: boolean | undefined;
755
+ rebalanceDuringRiskOff?: boolean | undefined;
756
+ maxTurnoverPerRebalancePct?: number | undefined;
757
+ preferredWeighting?: "equal_weight" | "risk_based" | "conviction_weighted" | "target_allocation" | undefined;
758
+ strategySleeveBudgets?: Record<string, {
759
+ maxAllocationPct: number;
760
+ currentAllocationPct?: number | undefined;
761
+ }> | undefined;
762
+ cashTargetPct?: number | undefined;
763
+ defensiveCashEscalationEnabled?: boolean | undefined;
764
+ defensiveCashEscalationRules?: {
765
+ triggerCondition: string;
766
+ targetCashPct: number;
767
+ }[] | undefined;
768
+ hedgeOverlayEnabled?: boolean | undefined;
769
+ autonomousPortfolioTrailingStop?: boolean | undefined;
770
+ portfolioTrailingStopPct?: number | undefined;
771
+ portfolioCircuitBreakerEnabled?: boolean | undefined;
772
+ portfolioCircuitBreakerDrawdownPct?: number | undefined;
773
+ equityCurveStopEnabled?: boolean | undefined;
774
+ equityCurveStopLookbackDays?: number | undefined;
775
+ forcedDeleveragingEnabled?: boolean | undefined;
776
+ forcedDeleveragingTriggerDrawdownPct?: number | undefined;
777
+ forcedDeleveragingTargetExposurePct?: number | undefined;
778
+ }>>;
779
+ overlayResponsePrefs: z.ZodDefault<z.ZodObject<{
780
+ overlayResponses: z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof import("../enums").OverlayType>, z.ZodObject<{
781
+ pauseRealtimeTrading: z.ZodDefault<z.ZodBoolean>;
782
+ pauseNewEntriesOnly: z.ZodDefault<z.ZodBoolean>;
783
+ cancelAllOpenOrders: z.ZodDefault<z.ZodBoolean>;
784
+ tightenStops: z.ZodDefault<z.ZodBoolean>;
785
+ tightenStopsByPct: z.ZodDefault<z.ZodNumber>;
786
+ reduceRiskBudgets: z.ZodDefault<z.ZodBoolean>;
787
+ reduceRiskBudgetsByPct: z.ZodDefault<z.ZodNumber>;
788
+ rebalanceToTargetAllocation: z.ZodDefault<z.ZodBoolean>;
789
+ raiseCash: z.ZodDefault<z.ZodBoolean>;
790
+ raiseCashTargetPct: z.ZodDefault<z.ZodNumber>;
791
+ unwindSpecificSectors: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
792
+ unwindSpecificAssetClasses: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
793
+ closeAllPositions: z.ZodDefault<z.ZodBoolean>;
794
+ switchToManualApproval: z.ZodDefault<z.ZodBoolean>;
795
+ downgradeExecutionAggressiveness: z.ZodDefault<z.ZodBoolean>;
796
+ switchModelTier: z.ZodDefault<z.ZodNullable<z.ZodString>>;
797
+ extendCooldowns: z.ZodDefault<z.ZodBoolean>;
798
+ extendCooldownMultiplier: z.ZodDefault<z.ZodNumber>;
799
+ }, "strip", z.ZodTypeAny, {
800
+ pauseRealtimeTrading: boolean;
801
+ pauseNewEntriesOnly: boolean;
802
+ cancelAllOpenOrders: boolean;
803
+ tightenStops: boolean;
804
+ tightenStopsByPct: number;
805
+ reduceRiskBudgets: boolean;
806
+ reduceRiskBudgetsByPct: number;
807
+ rebalanceToTargetAllocation: boolean;
808
+ raiseCash: boolean;
809
+ raiseCashTargetPct: number;
810
+ unwindSpecificSectors: string[];
811
+ unwindSpecificAssetClasses: string[];
812
+ closeAllPositions: boolean;
813
+ switchToManualApproval: boolean;
814
+ downgradeExecutionAggressiveness: boolean;
815
+ switchModelTier: string | null;
816
+ extendCooldowns: boolean;
817
+ extendCooldownMultiplier: number;
818
+ }, {
819
+ pauseRealtimeTrading?: boolean | undefined;
820
+ pauseNewEntriesOnly?: boolean | undefined;
821
+ cancelAllOpenOrders?: boolean | undefined;
822
+ tightenStops?: boolean | undefined;
823
+ tightenStopsByPct?: number | undefined;
824
+ reduceRiskBudgets?: boolean | undefined;
825
+ reduceRiskBudgetsByPct?: number | undefined;
826
+ rebalanceToTargetAllocation?: boolean | undefined;
827
+ raiseCash?: boolean | undefined;
828
+ raiseCashTargetPct?: number | undefined;
829
+ unwindSpecificSectors?: string[] | undefined;
830
+ unwindSpecificAssetClasses?: string[] | undefined;
831
+ closeAllPositions?: boolean | undefined;
832
+ switchToManualApproval?: boolean | undefined;
833
+ downgradeExecutionAggressiveness?: boolean | undefined;
834
+ switchModelTier?: string | null | undefined;
835
+ extendCooldowns?: boolean | undefined;
836
+ extendCooldownMultiplier?: number | undefined;
837
+ }>>>;
838
+ }, "strip", z.ZodTypeAny, {
839
+ overlayResponses: Partial<Record<import("../enums").OverlayType, {
840
+ pauseRealtimeTrading: boolean;
841
+ pauseNewEntriesOnly: boolean;
842
+ cancelAllOpenOrders: boolean;
843
+ tightenStops: boolean;
844
+ tightenStopsByPct: number;
845
+ reduceRiskBudgets: boolean;
846
+ reduceRiskBudgetsByPct: number;
847
+ rebalanceToTargetAllocation: boolean;
848
+ raiseCash: boolean;
849
+ raiseCashTargetPct: number;
850
+ unwindSpecificSectors: string[];
851
+ unwindSpecificAssetClasses: string[];
852
+ closeAllPositions: boolean;
853
+ switchToManualApproval: boolean;
854
+ downgradeExecutionAggressiveness: boolean;
855
+ switchModelTier: string | null;
856
+ extendCooldowns: boolean;
857
+ extendCooldownMultiplier: number;
858
+ }>>;
859
+ }, {
860
+ overlayResponses?: Partial<Record<import("../enums").OverlayType, {
861
+ pauseRealtimeTrading?: boolean | undefined;
862
+ pauseNewEntriesOnly?: boolean | undefined;
863
+ cancelAllOpenOrders?: boolean | undefined;
864
+ tightenStops?: boolean | undefined;
865
+ tightenStopsByPct?: number | undefined;
866
+ reduceRiskBudgets?: boolean | undefined;
867
+ reduceRiskBudgetsByPct?: number | undefined;
868
+ rebalanceToTargetAllocation?: boolean | undefined;
869
+ raiseCash?: boolean | undefined;
870
+ raiseCashTargetPct?: number | undefined;
871
+ unwindSpecificSectors?: string[] | undefined;
872
+ unwindSpecificAssetClasses?: string[] | undefined;
873
+ closeAllPositions?: boolean | undefined;
874
+ switchToManualApproval?: boolean | undefined;
875
+ downgradeExecutionAggressiveness?: boolean | undefined;
876
+ switchModelTier?: string | null | undefined;
877
+ extendCooldowns?: boolean | undefined;
878
+ extendCooldownMultiplier?: number | undefined;
879
+ }>> | undefined;
880
+ }>>;
881
+ modelPrefs: z.ZodDefault<z.ZodObject<{
882
+ miniFallbackChain: z.ZodDefault<z.ZodArray<z.ZodObject<{
883
+ provider: z.ZodNativeEnum<typeof LlmProvider>;
884
+ modelId: z.ZodString;
885
+ }, "strip", z.ZodTypeAny, {
886
+ provider: LlmProvider;
887
+ modelId: string;
888
+ }, {
889
+ provider: LlmProvider;
890
+ modelId: string;
891
+ }>, "many">>;
892
+ normalFallbackChain: z.ZodDefault<z.ZodArray<z.ZodObject<{
893
+ provider: z.ZodNativeEnum<typeof LlmProvider>;
894
+ modelId: z.ZodString;
895
+ }, "strip", z.ZodTypeAny, {
896
+ provider: LlmProvider;
897
+ modelId: string;
898
+ }, {
899
+ provider: LlmProvider;
900
+ modelId: string;
901
+ }>, "many">>;
902
+ advancedFallbackChain: z.ZodDefault<z.ZodArray<z.ZodObject<{
903
+ provider: z.ZodNativeEnum<typeof LlmProvider>;
904
+ modelId: z.ZodString;
905
+ }, "strip", z.ZodTypeAny, {
906
+ provider: LlmProvider;
907
+ modelId: string;
908
+ }, {
909
+ provider: LlmProvider;
910
+ modelId: string;
911
+ }>, "many">>;
912
+ escalateToAdvancedWhenConflicts: z.ZodDefault<z.ZodBoolean>;
913
+ escalateToAdvancedWhenHighExposure: z.ZodDefault<z.ZodBoolean>;
914
+ highExposureThresholdPct: z.ZodDefault<z.ZodNumber>;
915
+ escalateToAdvancedWhenMultipleOrders: z.ZodDefault<z.ZodBoolean>;
916
+ multipleOrdersThreshold: z.ZodDefault<z.ZodNumber>;
917
+ maxCostPerDayUsd: z.ZodDefault<z.ZodNumber>;
918
+ maxCostPerDecisionUsd: z.ZodDefault<z.ZodNumber>;
919
+ latencyTargetMs: z.ZodDefault<z.ZodNumber>;
920
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
921
+ maxRetries: z.ZodDefault<z.ZodNumber>;
922
+ toolUsePermissionsByTier: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
923
+ readTools: z.ZodDefault<z.ZodBoolean>;
924
+ writeTools: z.ZodDefault<z.ZodBoolean>;
925
+ }, "strip", z.ZodTypeAny, {
926
+ readTools: boolean;
927
+ writeTools: boolean;
928
+ }, {
929
+ readTools?: boolean | undefined;
930
+ writeTools?: boolean | undefined;
931
+ }>>>;
932
+ memorySummaryCadenceMinutes: z.ZodDefault<z.ZodNumber>;
933
+ maxMemorySummariesRetained: z.ZodDefault<z.ZodNumber>;
934
+ excludedProvidersForWorkflows: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
935
+ quantModelWeight: z.ZodDefault<z.ZodNumber>;
936
+ }, "strip", z.ZodTypeAny, {
937
+ miniFallbackChain: {
938
+ provider: LlmProvider;
939
+ modelId: string;
940
+ }[];
941
+ normalFallbackChain: {
942
+ provider: LlmProvider;
943
+ modelId: string;
944
+ }[];
945
+ advancedFallbackChain: {
946
+ provider: LlmProvider;
947
+ modelId: string;
948
+ }[];
949
+ escalateToAdvancedWhenConflicts: boolean;
950
+ escalateToAdvancedWhenHighExposure: boolean;
951
+ highExposureThresholdPct: number;
952
+ escalateToAdvancedWhenMultipleOrders: boolean;
953
+ multipleOrdersThreshold: number;
954
+ maxCostPerDayUsd: number;
955
+ maxCostPerDecisionUsd: number;
956
+ latencyTargetMs: number;
957
+ timeoutMs: number;
958
+ maxRetries: number;
959
+ toolUsePermissionsByTier: Record<string, {
960
+ readTools: boolean;
961
+ writeTools: boolean;
962
+ }>;
963
+ memorySummaryCadenceMinutes: number;
964
+ maxMemorySummariesRetained: number;
965
+ excludedProvidersForWorkflows: Record<string, string[]>;
966
+ quantModelWeight: number;
967
+ }, {
968
+ miniFallbackChain?: {
969
+ provider: LlmProvider;
970
+ modelId: string;
971
+ }[] | undefined;
972
+ normalFallbackChain?: {
973
+ provider: LlmProvider;
974
+ modelId: string;
975
+ }[] | undefined;
976
+ advancedFallbackChain?: {
977
+ provider: LlmProvider;
978
+ modelId: string;
979
+ }[] | undefined;
980
+ escalateToAdvancedWhenConflicts?: boolean | undefined;
981
+ escalateToAdvancedWhenHighExposure?: boolean | undefined;
982
+ highExposureThresholdPct?: number | undefined;
983
+ escalateToAdvancedWhenMultipleOrders?: boolean | undefined;
984
+ multipleOrdersThreshold?: number | undefined;
985
+ maxCostPerDayUsd?: number | undefined;
986
+ maxCostPerDecisionUsd?: number | undefined;
987
+ latencyTargetMs?: number | undefined;
988
+ timeoutMs?: number | undefined;
989
+ maxRetries?: number | undefined;
990
+ toolUsePermissionsByTier?: Record<string, {
991
+ readTools?: boolean | undefined;
992
+ writeTools?: boolean | undefined;
993
+ }> | undefined;
994
+ memorySummaryCadenceMinutes?: number | undefined;
995
+ maxMemorySummariesRetained?: number | undefined;
996
+ excludedProvidersForWorkflows?: Record<string, string[]> | undefined;
997
+ quantModelWeight?: number | undefined;
998
+ }>>;
999
+ auditNotificationPrefs: z.ZodDefault<z.ZodObject<{
1000
+ notifyOnAutonomousActions: z.ZodDefault<z.ZodBoolean>;
1001
+ notifyOnBlockedTrades: z.ZodDefault<z.ZodBoolean>;
1002
+ notifyOnOverlayActivation: z.ZodDefault<z.ZodBoolean>;
1003
+ notifyOnPolicyMutation: z.ZodDefault<z.ZodBoolean>;
1004
+ dailySummaryEnabled: z.ZodDefault<z.ZodBoolean>;
1005
+ eventSummaryEnabled: z.ZodDefault<z.ZodBoolean>;
1006
+ auditDetailLevel: z.ZodDefault<z.ZodEnum<["minimal", "standard", "verbose"]>>;
1007
+ saveRationaleSummaries: z.ZodDefault<z.ZodBoolean>;
1008
+ saveToolCallTraces: z.ZodDefault<z.ZodBoolean>;
1009
+ saveContextSnapshots: z.ZodDefault<z.ZodBoolean>;
1010
+ incidentAlertChannel: z.ZodDefault<z.ZodEnum<["email", "slack", "discord", "webhook", "none"]>>;
1011
+ incidentAlertEndpoint: z.ZodDefault<z.ZodString>;
1012
+ requirePostActionExplanation: z.ZodDefault<z.ZodBoolean>;
1013
+ retainDecisionArtifactsDays: z.ZodDefault<z.ZodNumber>;
1014
+ tradeConfirmEmail: z.ZodDefault<z.ZodEnum<["all", "none"]>>;
1015
+ }, "strip", z.ZodTypeAny, {
1016
+ notifyOnAutonomousActions: boolean;
1017
+ notifyOnBlockedTrades: boolean;
1018
+ notifyOnOverlayActivation: boolean;
1019
+ notifyOnPolicyMutation: boolean;
1020
+ dailySummaryEnabled: boolean;
1021
+ eventSummaryEnabled: boolean;
1022
+ auditDetailLevel: "minimal" | "standard" | "verbose";
1023
+ saveRationaleSummaries: boolean;
1024
+ saveToolCallTraces: boolean;
1025
+ saveContextSnapshots: boolean;
1026
+ incidentAlertChannel: "none" | "email" | "slack" | "discord" | "webhook";
1027
+ incidentAlertEndpoint: string;
1028
+ requirePostActionExplanation: boolean;
1029
+ retainDecisionArtifactsDays: number;
1030
+ tradeConfirmEmail: "all" | "none";
1031
+ }, {
1032
+ notifyOnAutonomousActions?: boolean | undefined;
1033
+ notifyOnBlockedTrades?: boolean | undefined;
1034
+ notifyOnOverlayActivation?: boolean | undefined;
1035
+ notifyOnPolicyMutation?: boolean | undefined;
1036
+ dailySummaryEnabled?: boolean | undefined;
1037
+ eventSummaryEnabled?: boolean | undefined;
1038
+ auditDetailLevel?: "minimal" | "standard" | "verbose" | undefined;
1039
+ saveRationaleSummaries?: boolean | undefined;
1040
+ saveToolCallTraces?: boolean | undefined;
1041
+ saveContextSnapshots?: boolean | undefined;
1042
+ incidentAlertChannel?: "none" | "email" | "slack" | "discord" | "webhook" | undefined;
1043
+ incidentAlertEndpoint?: string | undefined;
1044
+ requirePostActionExplanation?: boolean | undefined;
1045
+ retainDecisionArtifactsDays?: number | undefined;
1046
+ tradeConfirmEmail?: "all" | "none" | undefined;
1047
+ }>>;
1048
+ }, "strip", z.ZodTypeAny, {
1049
+ maxLeverage: number;
1050
+ perTradeCryptoAllocationPct: number;
1051
+ autonomyMode: AutonomyMode;
1052
+ realtimeTradingEnabled: boolean;
1053
+ paperTradingOnly: boolean;
1054
+ killSwitchEnabled: boolean;
1055
+ equitiesEnabled: boolean;
1056
+ etfsEnabled: boolean;
1057
+ cryptoEnabled: boolean;
1058
+ optionsEnabled: boolean;
1059
+ futuresEnabled: boolean;
1060
+ forexEnabled: boolean;
1061
+ shortingEnabled: boolean;
1062
+ marginEnabled: boolean;
1063
+ fractionalSharesEnabled: boolean;
1064
+ maxBuyingPowerUtilPct: number;
1065
+ cashFloorPct: number;
1066
+ maxGrossExposurePct: number;
1067
+ maxNetExposurePct: number;
1068
+ maxSymbolConcentrationPct: number;
1069
+ maxSectorConcentrationPct: number;
1070
+ maxOpenPositions: number;
1071
+ maxOpenOrders: number;
1072
+ miniModelProvider: LlmProvider | null;
1073
+ miniModelId: string | null;
1074
+ normalModelProvider: LlmProvider | null;
1075
+ normalModelId: string | null;
1076
+ advancedModelProvider: LlmProvider | null;
1077
+ advancedModelId: string | null;
1078
+ autonomyPrefs: {
1079
+ requireHumanApprovalFor: {
1080
+ firstTradeInSymbol: boolean;
1081
+ reversals: boolean;
1082
+ shortSales: boolean;
1083
+ leverageIncreases: boolean;
1084
+ overnightHolds: boolean;
1085
+ afterHoursTrades: boolean;
1086
+ cryptoTrades: boolean;
1087
+ concentratedPositions: boolean;
1088
+ largeNotionalOrders: boolean;
1089
+ largeNotionalThreshold: number;
1090
+ portfolioLiquidation: boolean;
1091
+ closeAllOrdersAndPositions: boolean;
1092
+ policyMutations: boolean;
1093
+ advancedModelEscalations: boolean;
1094
+ };
1095
+ autoPauseOnIncident: boolean;
1096
+ autoPauseOnBlackSwan: boolean;
1097
+ autoPauseOnBrokerDegradation: boolean;
1098
+ autoPauseOnDataQualityIssues: boolean;
1099
+ autoPauseOnExcessSlippage: boolean;
1100
+ excessSlippageThresholdPct: number;
1101
+ autoPauseOnDrawdownBreach: boolean;
1102
+ autoPauseOnModelConfidenceCollapse: boolean;
1103
+ modelConfidenceCollapseThreshold: number;
1104
+ allowedSessions: {
1105
+ premarket: boolean;
1106
+ regular: boolean;
1107
+ afterHours: boolean;
1108
+ overnight: boolean;
1109
+ weekends: boolean;
1110
+ };
1111
+ };
1112
+ assetUniversePrefs: {
1113
+ equitiesDirection: "long_only" | "long_short" | "market_neutral";
1114
+ etfsDirection: "long_only" | "long_short";
1115
+ cryptoDirection: "long_only" | "long_short";
1116
+ optionsDirection: "long_only" | "long_short";
1117
+ allowedExchanges: string[];
1118
+ deniedExchanges: string[];
1119
+ allowedCountries: string[];
1120
+ deniedCountries: string[];
1121
+ allowedSectors: string[];
1122
+ deniedSectors: string[];
1123
+ allowedSymbols: string[];
1124
+ deniedSymbols: string[];
1125
+ cryptoSpotOnly: boolean;
1126
+ allowedCryptoPairs: string[];
1127
+ deniedCryptoPairs: string[];
1128
+ minMarketCapMillions: number;
1129
+ minAvgDailyVolume: number;
1130
+ minPrice: number;
1131
+ maxPrice: number;
1132
+ maxSpreadPct: number;
1133
+ minLiquidityScore: number;
1134
+ leveragedEtfsEnabled: boolean;
1135
+ inverseEtfsEnabled: boolean;
1136
+ memeStocksEnabled: boolean;
1137
+ ipoParticipationEnabled: boolean;
1138
+ borrowAvailabilityRequired: boolean;
1139
+ maxBorrowFeePct: number;
1140
+ };
1141
+ riskBudgetPrefs: {
1142
+ maxMarginUtilPct: number;
1143
+ maxIssuerConcentrationPct: number;
1144
+ maxThemeConcentrationPct: number;
1145
+ maxAssetClassConcentrationPct: number;
1146
+ maxCountryConcentrationPct: number;
1147
+ maxCurrencyExposurePct: number;
1148
+ maxCorrelatedExposurePct: number;
1149
+ betaTarget: number | null;
1150
+ maxBeta: number;
1151
+ maxRiskPerTradePct: number;
1152
+ maxLossPerDayPct: number;
1153
+ maxLossPerWeekPct: number;
1154
+ maxLossPerMonthPct: number;
1155
+ maxDrawdownFromPeakPct: number;
1156
+ maxSimultaneousSignalsPerStrategy: number;
1157
+ maxAggregateHeatPct: number;
1158
+ overnightExposureCapPct: number;
1159
+ weekendExposureCapPct: number;
1160
+ eventRiskExposureCapPct: number;
1161
+ gapRiskSensitivity: "low" | "medium" | "high";
1162
+ perTradeAllocationPct: number;
1163
+ perTradeCryptoAllocationPct: number;
1164
+ dtbpCheck: "both" | "entry" | "exit";
1165
+ pdtCheck: "both" | "entry" | "exit";
1166
+ ptpNoExceptionEntry: boolean;
1167
+ };
1168
+ signalConsumptionPrefs: {
1169
+ minPercentageChange: number;
1170
+ volumeThreshold: number;
1171
+ enabledStrategies: string[];
1172
+ disabledStrategies: string[];
1173
+ minConfidenceByDefault: number;
1174
+ minConfidenceByAssetClass: Record<string, number>;
1175
+ minConfidenceByStrategy: Record<string, number>;
1176
+ minExpectedRewardRiskRatio: number;
1177
+ minExpectedEdgePct: number;
1178
+ maxSignalAgeSeconds: number;
1179
+ cooldownAfterEntrySeconds: number;
1180
+ cooldownAfterExitSeconds: number;
1181
+ cooldownAfterStopOutSeconds: number;
1182
+ cooldownAfterFailedTradeSeconds: number;
1183
+ duplicateSignalSuppressionWindowSeconds: number;
1184
+ reversalHandlingPolicy: "ignore_reversal" | "close_only" | "flatten_then_reverse" | "allow_full_reversal";
1185
+ conflictHandlingOpenOrders: "cancel_conflicting" | "replace_existing" | "keep_existing_skip" | "escalate";
1186
+ conflictHandlingOpposingPosition: "close" | "reduce" | "flatten_then_reverse" | "hold";
1187
+ minConvictionDeltaToModify: number;
1188
+ strategyPriorityRules: {
1189
+ strategy: string;
1190
+ priority: number;
1191
+ }[];
1192
+ noTradeWindows: {
1193
+ name: string;
1194
+ startTime: string;
1195
+ endTime: string;
1196
+ daysOfWeek: number[];
1197
+ enabled: boolean;
1198
+ }[];
1199
+ earningsBlackoutEnabled: boolean;
1200
+ earningsBlackoutHoursBefore: number;
1201
+ earningsBlackoutHoursAfter: number;
1202
+ };
1203
+ executionPrefs: {
1204
+ allowedOrderTypes: ("limit" | "market" | "stop" | "stop_limit" | "trailing_stop")[];
1205
+ preferredOrderType: "limit" | "market" | "stop" | "stop_limit" | "trailing_stop";
1206
+ preferredOrderTypeByAssetClass: Record<string, string>;
1207
+ defaultTimeInForce: "day" | "gtc" | "ioc" | "fok";
1208
+ executionBias: "passive" | "neutral" | "aggressive";
1209
+ maxSlippageTolerancePct: number;
1210
+ priceCollarEnabled: boolean;
1211
+ priceCollarPct: number;
1212
+ repriceEnabled: boolean;
1213
+ repriceMaxAttempts: number;
1214
+ repriceIntervalSeconds: number;
1215
+ cancelReplaceTimeoutSeconds: number;
1216
+ partialFillPolicy: "accept_partial" | "cancel_remainder" | "replace_to_fill";
1217
+ sizingMethod: "notional" | "quantity";
1218
+ lotRoundingBehavior: "round_down" | "round_nearest" | "round_up";
1219
+ afterHoursExecutionBehavior: "limit_only" | "no_execution" | "normal";
1220
+ failureBehavior: "fail_safe" | "fail_open";
1221
+ };
1222
+ positionManagementPrefs: {
1223
+ defaultStopLossMethod: "trailing_stop" | "fixed_percent" | "atr_based" | "structure_based";
1224
+ defaultStopLossPct: number;
1225
+ atrStopMultiplier: number;
1226
+ defaultTakeProfitMethod: "none" | "fixed_percent" | "atr_based" | "risk_reward_ratio";
1227
+ defaultTakeProfitPct: number;
1228
+ defaultRiskRewardRatio: number;
1229
+ breakEvenStopEnabled: boolean;
1230
+ breakEvenTriggerPct: number;
1231
+ scaleInEnabled: boolean;
1232
+ scaleInMaxAdds: number;
1233
+ scaleOutEnabled: boolean;
1234
+ scaleOutTrimPct: number;
1235
+ scaleOutTriggerPct: number;
1236
+ maxHoldingPeriodMinutes: number;
1237
+ maxHoldingPeriodByAssetClass: Record<string, number>;
1238
+ dayTradeOnly: boolean;
1239
+ autoCloseBeforeEarnings: boolean;
1240
+ autoCloseBeforeClose: boolean;
1241
+ autoCloseBeforeCloseMinutes: number;
1242
+ autoCloseBeforeWeekend: boolean;
1243
+ addToWinnersAllowed: boolean;
1244
+ addToLosersAllowed: boolean;
1245
+ stopWideningAllowed: boolean;
1246
+ trailingStopTighteningEnabled: boolean;
1247
+ trailingStopTighteningRules: {
1248
+ profitThresholdPct: number;
1249
+ newTrailPct: number;
1250
+ }[];
1251
+ portfolioStopOverridesPositionStops: boolean;
1252
+ doNotReenterAfterStopOutMinutes: number;
1253
+ doNotReenterAfterForcedCloseMinutes: number;
1254
+ };
1255
+ portfolioConstructionPrefs: {
1256
+ targetAllocationByAssetClass: Record<string, number>;
1257
+ tacticalAllocationBands: Record<string, {
1258
+ target: number;
1259
+ minPct: number;
1260
+ maxPct: number;
1261
+ }>;
1262
+ driftThresholdPct: number;
1263
+ rebalanceTrigger: "both" | "threshold" | "calendar";
1264
+ rebalanceFrequencyDays: number;
1265
+ autonomousRebalancing: boolean;
1266
+ rebalanceDuringRiskOff: boolean;
1267
+ maxTurnoverPerRebalancePct: number;
1268
+ preferredWeighting: "equal_weight" | "risk_based" | "conviction_weighted" | "target_allocation";
1269
+ strategySleeveBudgets: Record<string, {
1270
+ maxAllocationPct: number;
1271
+ currentAllocationPct: number;
1272
+ }>;
1273
+ cashTargetPct: number;
1274
+ defensiveCashEscalationEnabled: boolean;
1275
+ defensiveCashEscalationRules: {
1276
+ triggerCondition: string;
1277
+ targetCashPct: number;
1278
+ }[];
1279
+ hedgeOverlayEnabled: boolean;
1280
+ autonomousPortfolioTrailingStop: boolean;
1281
+ portfolioTrailingStopPct: number;
1282
+ portfolioCircuitBreakerEnabled: boolean;
1283
+ portfolioCircuitBreakerDrawdownPct: number;
1284
+ equityCurveStopEnabled: boolean;
1285
+ equityCurveStopLookbackDays: number;
1286
+ forcedDeleveragingEnabled: boolean;
1287
+ forcedDeleveragingTriggerDrawdownPct: number;
1288
+ forcedDeleveragingTargetExposurePct: number;
1289
+ };
1290
+ overlayResponsePrefs: {
1291
+ overlayResponses: Partial<Record<import("../enums").OverlayType, {
1292
+ pauseRealtimeTrading: boolean;
1293
+ pauseNewEntriesOnly: boolean;
1294
+ cancelAllOpenOrders: boolean;
1295
+ tightenStops: boolean;
1296
+ tightenStopsByPct: number;
1297
+ reduceRiskBudgets: boolean;
1298
+ reduceRiskBudgetsByPct: number;
1299
+ rebalanceToTargetAllocation: boolean;
1300
+ raiseCash: boolean;
1301
+ raiseCashTargetPct: number;
1302
+ unwindSpecificSectors: string[];
1303
+ unwindSpecificAssetClasses: string[];
1304
+ closeAllPositions: boolean;
1305
+ switchToManualApproval: boolean;
1306
+ downgradeExecutionAggressiveness: boolean;
1307
+ switchModelTier: string | null;
1308
+ extendCooldowns: boolean;
1309
+ extendCooldownMultiplier: number;
1310
+ }>>;
1311
+ };
1312
+ modelPrefs: {
1313
+ miniFallbackChain: {
1314
+ provider: LlmProvider;
1315
+ modelId: string;
1316
+ }[];
1317
+ normalFallbackChain: {
1318
+ provider: LlmProvider;
1319
+ modelId: string;
1320
+ }[];
1321
+ advancedFallbackChain: {
1322
+ provider: LlmProvider;
1323
+ modelId: string;
1324
+ }[];
1325
+ escalateToAdvancedWhenConflicts: boolean;
1326
+ escalateToAdvancedWhenHighExposure: boolean;
1327
+ highExposureThresholdPct: number;
1328
+ escalateToAdvancedWhenMultipleOrders: boolean;
1329
+ multipleOrdersThreshold: number;
1330
+ maxCostPerDayUsd: number;
1331
+ maxCostPerDecisionUsd: number;
1332
+ latencyTargetMs: number;
1333
+ timeoutMs: number;
1334
+ maxRetries: number;
1335
+ toolUsePermissionsByTier: Record<string, {
1336
+ readTools: boolean;
1337
+ writeTools: boolean;
1338
+ }>;
1339
+ memorySummaryCadenceMinutes: number;
1340
+ maxMemorySummariesRetained: number;
1341
+ excludedProvidersForWorkflows: Record<string, string[]>;
1342
+ quantModelWeight: number;
1343
+ };
1344
+ auditNotificationPrefs: {
1345
+ notifyOnAutonomousActions: boolean;
1346
+ notifyOnBlockedTrades: boolean;
1347
+ notifyOnOverlayActivation: boolean;
1348
+ notifyOnPolicyMutation: boolean;
1349
+ dailySummaryEnabled: boolean;
1350
+ eventSummaryEnabled: boolean;
1351
+ auditDetailLevel: "minimal" | "standard" | "verbose";
1352
+ saveRationaleSummaries: boolean;
1353
+ saveToolCallTraces: boolean;
1354
+ saveContextSnapshots: boolean;
1355
+ incidentAlertChannel: "none" | "email" | "slack" | "discord" | "webhook";
1356
+ incidentAlertEndpoint: string;
1357
+ requirePostActionExplanation: boolean;
1358
+ retainDecisionArtifactsDays: number;
1359
+ tradeConfirmEmail: "all" | "none";
1360
+ };
1361
+ perTradeEquityAllocationPct: number;
1362
+ macroOverlayEnabled: boolean;
1363
+ sectorOverlayEnabled: boolean;
1364
+ volatilityOverlayEnabled: boolean;
1365
+ liquidityStressOverlayEnabled: boolean;
1366
+ blackSwanProtectionEnabled: boolean;
1367
+ drawdownGuardianEnabled: boolean;
1368
+ correlationSpikeProtectionEnabled: boolean;
1369
+ newsEventRiskOverlayEnabled: boolean;
1370
+ exchangeHealthOverlayEnabled: boolean;
1371
+ dataQualitySentinelEnabled: boolean;
1372
+ equityWashTradeCooldownMs?: number | undefined;
1373
+ maxDailyLossPercent?: number | undefined;
1374
+ }, {
1375
+ maxLeverage: number;
1376
+ perTradeCryptoAllocationPct: number;
1377
+ autonomyMode: AutonomyMode;
1378
+ realtimeTradingEnabled: boolean;
1379
+ paperTradingOnly: boolean;
1380
+ killSwitchEnabled: boolean;
1381
+ equitiesEnabled: boolean;
1382
+ etfsEnabled: boolean;
1383
+ cryptoEnabled: boolean;
1384
+ optionsEnabled: boolean;
1385
+ futuresEnabled: boolean;
1386
+ forexEnabled: boolean;
1387
+ shortingEnabled: boolean;
1388
+ marginEnabled: boolean;
1389
+ fractionalSharesEnabled: boolean;
1390
+ maxBuyingPowerUtilPct: number;
1391
+ cashFloorPct: number;
1392
+ maxGrossExposurePct: number;
1393
+ maxNetExposurePct: number;
1394
+ maxSymbolConcentrationPct: number;
1395
+ maxSectorConcentrationPct: number;
1396
+ maxOpenPositions: number;
1397
+ maxOpenOrders: number;
1398
+ miniModelProvider: LlmProvider | null;
1399
+ miniModelId: string | null;
1400
+ normalModelProvider: LlmProvider | null;
1401
+ normalModelId: string | null;
1402
+ advancedModelProvider: LlmProvider | null;
1403
+ advancedModelId: string | null;
1404
+ perTradeEquityAllocationPct: number;
1405
+ macroOverlayEnabled: boolean;
1406
+ sectorOverlayEnabled: boolean;
1407
+ volatilityOverlayEnabled: boolean;
1408
+ liquidityStressOverlayEnabled: boolean;
1409
+ blackSwanProtectionEnabled: boolean;
1410
+ drawdownGuardianEnabled: boolean;
1411
+ correlationSpikeProtectionEnabled: boolean;
1412
+ newsEventRiskOverlayEnabled: boolean;
1413
+ exchangeHealthOverlayEnabled: boolean;
1414
+ dataQualitySentinelEnabled: boolean;
1415
+ equityWashTradeCooldownMs?: number | undefined;
1416
+ autonomyPrefs?: {
1417
+ requireHumanApprovalFor?: {
1418
+ firstTradeInSymbol?: boolean | undefined;
1419
+ reversals?: boolean | undefined;
1420
+ shortSales?: boolean | undefined;
1421
+ leverageIncreases?: boolean | undefined;
1422
+ overnightHolds?: boolean | undefined;
1423
+ afterHoursTrades?: boolean | undefined;
1424
+ cryptoTrades?: boolean | undefined;
1425
+ concentratedPositions?: boolean | undefined;
1426
+ largeNotionalOrders?: boolean | undefined;
1427
+ largeNotionalThreshold?: number | undefined;
1428
+ portfolioLiquidation?: boolean | undefined;
1429
+ closeAllOrdersAndPositions?: boolean | undefined;
1430
+ policyMutations?: boolean | undefined;
1431
+ advancedModelEscalations?: boolean | undefined;
1432
+ } | undefined;
1433
+ autoPauseOnIncident?: boolean | undefined;
1434
+ autoPauseOnBlackSwan?: boolean | undefined;
1435
+ autoPauseOnBrokerDegradation?: boolean | undefined;
1436
+ autoPauseOnDataQualityIssues?: boolean | undefined;
1437
+ autoPauseOnExcessSlippage?: boolean | undefined;
1438
+ excessSlippageThresholdPct?: number | undefined;
1439
+ autoPauseOnDrawdownBreach?: boolean | undefined;
1440
+ autoPauseOnModelConfidenceCollapse?: boolean | undefined;
1441
+ modelConfidenceCollapseThreshold?: number | undefined;
1442
+ allowedSessions?: {
1443
+ premarket?: boolean | undefined;
1444
+ regular?: boolean | undefined;
1445
+ afterHours?: boolean | undefined;
1446
+ overnight?: boolean | undefined;
1447
+ weekends?: boolean | undefined;
1448
+ } | undefined;
1449
+ } | undefined;
1450
+ assetUniversePrefs?: {
1451
+ equitiesDirection?: "long_only" | "long_short" | "market_neutral" | undefined;
1452
+ etfsDirection?: "long_only" | "long_short" | undefined;
1453
+ cryptoDirection?: "long_only" | "long_short" | undefined;
1454
+ optionsDirection?: "long_only" | "long_short" | undefined;
1455
+ allowedExchanges?: string[] | undefined;
1456
+ deniedExchanges?: string[] | undefined;
1457
+ allowedCountries?: string[] | undefined;
1458
+ deniedCountries?: string[] | undefined;
1459
+ allowedSectors?: string[] | undefined;
1460
+ deniedSectors?: string[] | undefined;
1461
+ allowedSymbols?: string[] | undefined;
1462
+ deniedSymbols?: string[] | undefined;
1463
+ cryptoSpotOnly?: boolean | undefined;
1464
+ allowedCryptoPairs?: string[] | undefined;
1465
+ deniedCryptoPairs?: string[] | undefined;
1466
+ minMarketCapMillions?: number | undefined;
1467
+ minAvgDailyVolume?: number | undefined;
1468
+ minPrice?: number | undefined;
1469
+ maxPrice?: number | undefined;
1470
+ maxSpreadPct?: number | undefined;
1471
+ minLiquidityScore?: number | undefined;
1472
+ leveragedEtfsEnabled?: boolean | undefined;
1473
+ inverseEtfsEnabled?: boolean | undefined;
1474
+ memeStocksEnabled?: boolean | undefined;
1475
+ ipoParticipationEnabled?: boolean | undefined;
1476
+ borrowAvailabilityRequired?: boolean | undefined;
1477
+ maxBorrowFeePct?: number | undefined;
1478
+ } | undefined;
1479
+ riskBudgetPrefs?: {
1480
+ maxMarginUtilPct?: number | undefined;
1481
+ maxIssuerConcentrationPct?: number | undefined;
1482
+ maxThemeConcentrationPct?: number | undefined;
1483
+ maxAssetClassConcentrationPct?: number | undefined;
1484
+ maxCountryConcentrationPct?: number | undefined;
1485
+ maxCurrencyExposurePct?: number | undefined;
1486
+ maxCorrelatedExposurePct?: number | undefined;
1487
+ betaTarget?: number | null | undefined;
1488
+ maxBeta?: number | undefined;
1489
+ maxRiskPerTradePct?: number | undefined;
1490
+ maxLossPerDayPct?: number | undefined;
1491
+ maxLossPerWeekPct?: number | undefined;
1492
+ maxLossPerMonthPct?: number | undefined;
1493
+ maxDrawdownFromPeakPct?: number | undefined;
1494
+ maxSimultaneousSignalsPerStrategy?: number | undefined;
1495
+ maxAggregateHeatPct?: number | undefined;
1496
+ overnightExposureCapPct?: number | undefined;
1497
+ weekendExposureCapPct?: number | undefined;
1498
+ eventRiskExposureCapPct?: number | undefined;
1499
+ gapRiskSensitivity?: "low" | "medium" | "high" | undefined;
1500
+ perTradeAllocationPct?: number | undefined;
1501
+ perTradeCryptoAllocationPct?: number | undefined;
1502
+ dtbpCheck?: "both" | "entry" | "exit" | undefined;
1503
+ pdtCheck?: "both" | "entry" | "exit" | undefined;
1504
+ ptpNoExceptionEntry?: boolean | undefined;
1505
+ } | undefined;
1506
+ signalConsumptionPrefs?: {
1507
+ minPercentageChange?: number | undefined;
1508
+ volumeThreshold?: number | undefined;
1509
+ enabledStrategies?: string[] | undefined;
1510
+ disabledStrategies?: string[] | undefined;
1511
+ minConfidenceByDefault?: number | undefined;
1512
+ minConfidenceByAssetClass?: Record<string, number> | undefined;
1513
+ minConfidenceByStrategy?: Record<string, number> | undefined;
1514
+ minExpectedRewardRiskRatio?: number | undefined;
1515
+ minExpectedEdgePct?: number | undefined;
1516
+ maxSignalAgeSeconds?: number | undefined;
1517
+ cooldownAfterEntrySeconds?: number | undefined;
1518
+ cooldownAfterExitSeconds?: number | undefined;
1519
+ cooldownAfterStopOutSeconds?: number | undefined;
1520
+ cooldownAfterFailedTradeSeconds?: number | undefined;
1521
+ duplicateSignalSuppressionWindowSeconds?: number | undefined;
1522
+ reversalHandlingPolicy?: "ignore_reversal" | "close_only" | "flatten_then_reverse" | "allow_full_reversal" | undefined;
1523
+ conflictHandlingOpenOrders?: "cancel_conflicting" | "replace_existing" | "keep_existing_skip" | "escalate" | undefined;
1524
+ conflictHandlingOpposingPosition?: "close" | "reduce" | "flatten_then_reverse" | "hold" | undefined;
1525
+ minConvictionDeltaToModify?: number | undefined;
1526
+ strategyPriorityRules?: {
1527
+ strategy: string;
1528
+ priority: number;
1529
+ }[] | undefined;
1530
+ noTradeWindows?: {
1531
+ name: string;
1532
+ startTime: string;
1533
+ endTime: string;
1534
+ daysOfWeek?: number[] | undefined;
1535
+ enabled?: boolean | undefined;
1536
+ }[] | undefined;
1537
+ earningsBlackoutEnabled?: boolean | undefined;
1538
+ earningsBlackoutHoursBefore?: number | undefined;
1539
+ earningsBlackoutHoursAfter?: number | undefined;
1540
+ } | undefined;
1541
+ executionPrefs?: {
1542
+ allowedOrderTypes?: ("limit" | "market" | "stop" | "stop_limit" | "trailing_stop")[] | undefined;
1543
+ preferredOrderType?: "limit" | "market" | "stop" | "stop_limit" | "trailing_stop" | undefined;
1544
+ preferredOrderTypeByAssetClass?: Record<string, string> | undefined;
1545
+ defaultTimeInForce?: "day" | "gtc" | "ioc" | "fok" | undefined;
1546
+ executionBias?: "passive" | "neutral" | "aggressive" | undefined;
1547
+ maxSlippageTolerancePct?: number | undefined;
1548
+ priceCollarEnabled?: boolean | undefined;
1549
+ priceCollarPct?: number | undefined;
1550
+ repriceEnabled?: boolean | undefined;
1551
+ repriceMaxAttempts?: number | undefined;
1552
+ repriceIntervalSeconds?: number | undefined;
1553
+ cancelReplaceTimeoutSeconds?: number | undefined;
1554
+ partialFillPolicy?: "accept_partial" | "cancel_remainder" | "replace_to_fill" | undefined;
1555
+ sizingMethod?: "notional" | "quantity" | undefined;
1556
+ lotRoundingBehavior?: "round_down" | "round_nearest" | "round_up" | undefined;
1557
+ afterHoursExecutionBehavior?: "limit_only" | "no_execution" | "normal" | undefined;
1558
+ failureBehavior?: "fail_safe" | "fail_open" | undefined;
1559
+ } | undefined;
1560
+ positionManagementPrefs?: {
1561
+ defaultStopLossMethod?: "trailing_stop" | "fixed_percent" | "atr_based" | "structure_based" | undefined;
1562
+ defaultStopLossPct?: number | undefined;
1563
+ atrStopMultiplier?: number | undefined;
1564
+ defaultTakeProfitMethod?: "none" | "fixed_percent" | "atr_based" | "risk_reward_ratio" | undefined;
1565
+ defaultTakeProfitPct?: number | undefined;
1566
+ defaultRiskRewardRatio?: number | undefined;
1567
+ breakEvenStopEnabled?: boolean | undefined;
1568
+ breakEvenTriggerPct?: number | undefined;
1569
+ scaleInEnabled?: boolean | undefined;
1570
+ scaleInMaxAdds?: number | undefined;
1571
+ scaleOutEnabled?: boolean | undefined;
1572
+ scaleOutTrimPct?: number | undefined;
1573
+ scaleOutTriggerPct?: number | undefined;
1574
+ maxHoldingPeriodMinutes?: number | undefined;
1575
+ maxHoldingPeriodByAssetClass?: Record<string, number> | undefined;
1576
+ dayTradeOnly?: boolean | undefined;
1577
+ autoCloseBeforeEarnings?: boolean | undefined;
1578
+ autoCloseBeforeClose?: boolean | undefined;
1579
+ autoCloseBeforeCloseMinutes?: number | undefined;
1580
+ autoCloseBeforeWeekend?: boolean | undefined;
1581
+ addToWinnersAllowed?: boolean | undefined;
1582
+ addToLosersAllowed?: boolean | undefined;
1583
+ stopWideningAllowed?: boolean | undefined;
1584
+ trailingStopTighteningEnabled?: boolean | undefined;
1585
+ trailingStopTighteningRules?: {
1586
+ profitThresholdPct: number;
1587
+ newTrailPct: number;
1588
+ }[] | undefined;
1589
+ portfolioStopOverridesPositionStops?: boolean | undefined;
1590
+ doNotReenterAfterStopOutMinutes?: number | undefined;
1591
+ doNotReenterAfterForcedCloseMinutes?: number | undefined;
1592
+ } | undefined;
1593
+ portfolioConstructionPrefs?: {
1594
+ targetAllocationByAssetClass?: Record<string, number> | undefined;
1595
+ tacticalAllocationBands?: Record<string, {
1596
+ target: number;
1597
+ minPct: number;
1598
+ maxPct: number;
1599
+ }> | undefined;
1600
+ driftThresholdPct?: number | undefined;
1601
+ rebalanceTrigger?: "both" | "threshold" | "calendar" | undefined;
1602
+ rebalanceFrequencyDays?: number | undefined;
1603
+ autonomousRebalancing?: boolean | undefined;
1604
+ rebalanceDuringRiskOff?: boolean | undefined;
1605
+ maxTurnoverPerRebalancePct?: number | undefined;
1606
+ preferredWeighting?: "equal_weight" | "risk_based" | "conviction_weighted" | "target_allocation" | undefined;
1607
+ strategySleeveBudgets?: Record<string, {
1608
+ maxAllocationPct: number;
1609
+ currentAllocationPct?: number | undefined;
1610
+ }> | undefined;
1611
+ cashTargetPct?: number | undefined;
1612
+ defensiveCashEscalationEnabled?: boolean | undefined;
1613
+ defensiveCashEscalationRules?: {
1614
+ triggerCondition: string;
1615
+ targetCashPct: number;
1616
+ }[] | undefined;
1617
+ hedgeOverlayEnabled?: boolean | undefined;
1618
+ autonomousPortfolioTrailingStop?: boolean | undefined;
1619
+ portfolioTrailingStopPct?: number | undefined;
1620
+ portfolioCircuitBreakerEnabled?: boolean | undefined;
1621
+ portfolioCircuitBreakerDrawdownPct?: number | undefined;
1622
+ equityCurveStopEnabled?: boolean | undefined;
1623
+ equityCurveStopLookbackDays?: number | undefined;
1624
+ forcedDeleveragingEnabled?: boolean | undefined;
1625
+ forcedDeleveragingTriggerDrawdownPct?: number | undefined;
1626
+ forcedDeleveragingTargetExposurePct?: number | undefined;
1627
+ } | undefined;
1628
+ overlayResponsePrefs?: {
1629
+ overlayResponses?: Partial<Record<import("../enums").OverlayType, {
1630
+ pauseRealtimeTrading?: boolean | undefined;
1631
+ pauseNewEntriesOnly?: boolean | undefined;
1632
+ cancelAllOpenOrders?: boolean | undefined;
1633
+ tightenStops?: boolean | undefined;
1634
+ tightenStopsByPct?: number | undefined;
1635
+ reduceRiskBudgets?: boolean | undefined;
1636
+ reduceRiskBudgetsByPct?: number | undefined;
1637
+ rebalanceToTargetAllocation?: boolean | undefined;
1638
+ raiseCash?: boolean | undefined;
1639
+ raiseCashTargetPct?: number | undefined;
1640
+ unwindSpecificSectors?: string[] | undefined;
1641
+ unwindSpecificAssetClasses?: string[] | undefined;
1642
+ closeAllPositions?: boolean | undefined;
1643
+ switchToManualApproval?: boolean | undefined;
1644
+ downgradeExecutionAggressiveness?: boolean | undefined;
1645
+ switchModelTier?: string | null | undefined;
1646
+ extendCooldowns?: boolean | undefined;
1647
+ extendCooldownMultiplier?: number | undefined;
1648
+ }>> | undefined;
1649
+ } | undefined;
1650
+ modelPrefs?: {
1651
+ miniFallbackChain?: {
1652
+ provider: LlmProvider;
1653
+ modelId: string;
1654
+ }[] | undefined;
1655
+ normalFallbackChain?: {
1656
+ provider: LlmProvider;
1657
+ modelId: string;
1658
+ }[] | undefined;
1659
+ advancedFallbackChain?: {
1660
+ provider: LlmProvider;
1661
+ modelId: string;
1662
+ }[] | undefined;
1663
+ escalateToAdvancedWhenConflicts?: boolean | undefined;
1664
+ escalateToAdvancedWhenHighExposure?: boolean | undefined;
1665
+ highExposureThresholdPct?: number | undefined;
1666
+ escalateToAdvancedWhenMultipleOrders?: boolean | undefined;
1667
+ multipleOrdersThreshold?: number | undefined;
1668
+ maxCostPerDayUsd?: number | undefined;
1669
+ maxCostPerDecisionUsd?: number | undefined;
1670
+ latencyTargetMs?: number | undefined;
1671
+ timeoutMs?: number | undefined;
1672
+ maxRetries?: number | undefined;
1673
+ toolUsePermissionsByTier?: Record<string, {
1674
+ readTools?: boolean | undefined;
1675
+ writeTools?: boolean | undefined;
1676
+ }> | undefined;
1677
+ memorySummaryCadenceMinutes?: number | undefined;
1678
+ maxMemorySummariesRetained?: number | undefined;
1679
+ excludedProvidersForWorkflows?: Record<string, string[]> | undefined;
1680
+ quantModelWeight?: number | undefined;
1681
+ } | undefined;
1682
+ auditNotificationPrefs?: {
1683
+ notifyOnAutonomousActions?: boolean | undefined;
1684
+ notifyOnBlockedTrades?: boolean | undefined;
1685
+ notifyOnOverlayActivation?: boolean | undefined;
1686
+ notifyOnPolicyMutation?: boolean | undefined;
1687
+ dailySummaryEnabled?: boolean | undefined;
1688
+ eventSummaryEnabled?: boolean | undefined;
1689
+ auditDetailLevel?: "minimal" | "standard" | "verbose" | undefined;
1690
+ saveRationaleSummaries?: boolean | undefined;
1691
+ saveToolCallTraces?: boolean | undefined;
1692
+ saveContextSnapshots?: boolean | undefined;
1693
+ incidentAlertChannel?: "none" | "email" | "slack" | "discord" | "webhook" | undefined;
1694
+ incidentAlertEndpoint?: string | undefined;
1695
+ requirePostActionExplanation?: boolean | undefined;
1696
+ retainDecisionArtifactsDays?: number | undefined;
1697
+ tradeConfirmEmail?: "all" | "none" | undefined;
1698
+ } | undefined;
1699
+ maxDailyLossPercent?: number | undefined;
1700
+ }>;
1701
+ /** Inferred TypeScript type for a fully-resolved effective trading policy. */
1702
+ export type EffectiveTradingPolicy = z.infer<typeof EffectiveTradingPolicySchema>;
1703
+ //# sourceMappingURL=effective-policy.schema.d.ts.map