@senpi/runtime 1.0.95-dev.feat-dsl-backend-int.20260415201130 → 1.0.95-dev.runtime-phase-2.20260416163440

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 (275) hide show
  1. package/README.md +46 -0
  2. package/dist/actions/action-runtime-module.d.ts +55 -0
  3. package/dist/actions/action-runtime-module.d.ts.map +1 -0
  4. package/dist/actions/action-runtime-module.js +444 -0
  5. package/dist/actions/action-runtime-module.js.map +1 -0
  6. package/dist/actions/close-position/close-position.action.d.ts +1 -0
  7. package/dist/actions/close-position/close-position.action.d.ts.map +1 -1
  8. package/dist/actions/close-position/close-position.action.js +55 -20
  9. package/dist/actions/close-position/close-position.action.js.map +1 -1
  10. package/dist/actions/decision-engine.d.ts.map +1 -1
  11. package/dist/actions/decision-engine.js +5 -0
  12. package/dist/actions/decision-engine.js.map +1 -1
  13. package/dist/actions/llm-decision/shared.d.ts +1 -1
  14. package/dist/actions/llm-decision/shared.d.ts.map +1 -1
  15. package/dist/actions/llm-decision/shared.js +1 -1
  16. package/dist/actions/llm-decision/shared.js.map +1 -1
  17. package/dist/actions/notifications/formatter.d.ts +39 -0
  18. package/dist/actions/notifications/formatter.d.ts.map +1 -0
  19. package/dist/actions/notifications/formatter.js +68 -0
  20. package/dist/actions/notifications/formatter.js.map +1 -0
  21. package/dist/actions/notifications/index.d.ts +37 -0
  22. package/dist/actions/notifications/index.d.ts.map +1 -0
  23. package/dist/actions/notifications/index.js +89 -0
  24. package/dist/actions/notifications/index.js.map +1 -0
  25. package/dist/actions/open-position/open-position.action.d.ts +1 -0
  26. package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
  27. package/dist/actions/open-position/open-position.action.js +132 -27
  28. package/dist/actions/open-position/open-position.action.js.map +1 -1
  29. package/dist/actions/open-position/resolve-margin.d.ts +22 -0
  30. package/dist/actions/open-position/resolve-margin.d.ts.map +1 -0
  31. package/dist/actions/open-position/resolve-margin.js +30 -0
  32. package/dist/actions/open-position/resolve-margin.js.map +1 -0
  33. package/dist/actions/position-tracker/position-tracker.action.d.ts.map +1 -1
  34. package/dist/actions/position-tracker/position-tracker.action.js +4 -1
  35. package/dist/actions/position-tracker/position-tracker.action.js.map +1 -1
  36. package/dist/actions/store/action-store.d.ts +45 -0
  37. package/dist/actions/store/action-store.d.ts.map +1 -0
  38. package/dist/actions/store/action-store.js +127 -0
  39. package/dist/actions/store/action-store.js.map +1 -0
  40. package/dist/actions/store/index.d.ts +11 -0
  41. package/dist/actions/store/index.d.ts.map +1 -0
  42. package/dist/actions/store/index.js +9 -0
  43. package/dist/actions/store/index.js.map +1 -0
  44. package/dist/actions/store/paths.d.ts +15 -0
  45. package/dist/actions/store/paths.d.ts.map +1 -0
  46. package/dist/actions/store/paths.js +29 -0
  47. package/dist/actions/store/paths.js.map +1 -0
  48. package/dist/actions/store/types.d.ts +114 -0
  49. package/dist/actions/store/types.d.ts.map +1 -0
  50. package/dist/actions/store/types.js +48 -0
  51. package/dist/actions/store/types.js.map +1 -0
  52. package/dist/actions/tracking-helpers.d.ts +13 -0
  53. package/dist/actions/tracking-helpers.d.ts.map +1 -0
  54. package/dist/actions/tracking-helpers.js +47 -0
  55. package/dist/actions/tracking-helpers.js.map +1 -0
  56. package/dist/actions/types.d.ts +8 -0
  57. package/dist/actions/types.d.ts.map +1 -1
  58. package/dist/cli/guide-commands.d.ts.map +1 -1
  59. package/dist/cli/guide-commands.js +105 -3
  60. package/dist/cli/guide-commands.js.map +1 -1
  61. package/dist/cli/senpi-commands.d.ts.map +1 -1
  62. package/dist/cli/senpi-commands.js +426 -0
  63. package/dist/cli/senpi-commands.js.map +1 -1
  64. package/dist/constants/order-types.d.ts +7 -0
  65. package/dist/constants/order-types.d.ts.map +1 -0
  66. package/dist/constants/order-types.js +6 -0
  67. package/dist/constants/order-types.js.map +1 -0
  68. package/dist/context/interpolate.d.ts +6 -2
  69. package/dist/context/interpolate.d.ts.map +1 -1
  70. package/dist/context/interpolate.js +6 -2
  71. package/dist/context/interpolate.js.map +1 -1
  72. package/dist/context/types.d.ts +8 -1
  73. package/dist/context/types.d.ts.map +1 -1
  74. package/dist/context/types.js +8 -1
  75. package/dist/context/types.js.map +1 -1
  76. package/dist/dsl/config/exit-block.d.ts +7 -0
  77. package/dist/dsl/config/exit-block.d.ts.map +1 -1
  78. package/dist/dsl/config/parse-plugin-config.d.ts.map +1 -1
  79. package/dist/dsl/config/parse-plugin-config.js +27 -1
  80. package/dist/dsl/config/parse-plugin-config.js.map +1 -1
  81. package/dist/dsl/config/unknown-keys.d.ts.map +1 -1
  82. package/dist/dsl/config/unknown-keys.js +3 -1
  83. package/dist/dsl/config/unknown-keys.js.map +1 -1
  84. package/dist/dsl/monitor/create-monitor.d.ts +4 -0
  85. package/dist/dsl/monitor/create-monitor.d.ts.map +1 -1
  86. package/dist/dsl/monitor/create-monitor.js +3 -1
  87. package/dist/dsl/monitor/create-monitor.js.map +1 -1
  88. package/dist/dsl/monitor/process-one-position.d.ts +4 -0
  89. package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
  90. package/dist/dsl/monitor/process-one-position.js +51 -7
  91. package/dist/dsl/monitor/process-one-position.js.map +1 -1
  92. package/dist/dsl/plugin/index.d.ts.map +1 -1
  93. package/dist/dsl/plugin/index.js +3 -1
  94. package/dist/dsl/plugin/index.js.map +1 -1
  95. package/dist/health/index.d.ts +5 -2
  96. package/dist/health/index.d.ts.map +1 -1
  97. package/dist/health/index.js +103 -6
  98. package/dist/health/index.js.map +1 -1
  99. package/dist/health/types.d.ts +99 -0
  100. package/dist/health/types.d.ts.map +1 -1
  101. package/dist/health/types.js +7 -1
  102. package/dist/health/types.js.map +1 -1
  103. package/dist/index.d.ts +1 -1
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +90 -0
  106. package/dist/index.js.map +1 -1
  107. package/dist/risk/guardrail.types.d.ts +53 -0
  108. package/dist/risk/guardrail.types.d.ts.map +1 -0
  109. package/dist/risk/guardrail.types.js +5 -0
  110. package/dist/risk/guardrail.types.js.map +1 -0
  111. package/dist/risk/index.d.ts +2 -4
  112. package/dist/risk/index.d.ts.map +1 -1
  113. package/dist/risk/index.js +2 -6
  114. package/dist/risk/index.js.map +1 -1
  115. package/dist/risk/risk-audit-log.d.ts +25 -0
  116. package/dist/risk/risk-audit-log.d.ts.map +1 -0
  117. package/dist/risk/risk-audit-log.js +30 -0
  118. package/dist/risk/risk-audit-log.js.map +1 -0
  119. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.d.ts +162 -0
  120. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.d.ts.map +1 -0
  121. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.js +285 -0
  122. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.js.map +1 -0
  123. package/dist/runtime/create-actions.d.ts +6 -2
  124. package/dist/runtime/create-actions.d.ts.map +1 -1
  125. package/dist/runtime/create-actions.js +18 -7
  126. package/dist/runtime/create-actions.js.map +1 -1
  127. package/dist/runtime/create-scanner-module.d.ts +5 -0
  128. package/dist/runtime/create-scanner-module.d.ts.map +1 -1
  129. package/dist/runtime/create-scanner-module.js +12 -1
  130. package/dist/runtime/create-scanner-module.js.map +1 -1
  131. package/dist/runtime/load-runtime-config.d.ts +1 -1
  132. package/dist/runtime/load-runtime-config.d.ts.map +1 -1
  133. package/dist/runtime/load-runtime-config.js +37 -1
  134. package/dist/runtime/load-runtime-config.js.map +1 -1
  135. package/dist/runtime/map-strategies.d.ts +1 -1
  136. package/dist/runtime/map-strategies.d.ts.map +1 -1
  137. package/dist/runtime/map-strategies.js +38 -1
  138. package/dist/runtime/map-strategies.js.map +1 -1
  139. package/dist/runtime/risk-guard.d.ts +23 -2
  140. package/dist/runtime/risk-guard.d.ts.map +1 -1
  141. package/dist/runtime/risk-guard.js +441 -5
  142. package/dist/runtime/risk-guard.js.map +1 -1
  143. package/dist/runtime/run.d.ts +7 -0
  144. package/dist/runtime/run.d.ts.map +1 -1
  145. package/dist/runtime/run.js +3 -0
  146. package/dist/runtime/run.js.map +1 -1
  147. package/dist/runtime/runtime-schema.d.ts +1169 -24
  148. package/dist/runtime/runtime-schema.d.ts.map +1 -1
  149. package/dist/runtime/runtime-schema.js +105 -2
  150. package/dist/runtime/runtime-schema.js.map +1 -1
  151. package/dist/runtime/runtime.d.ts +26 -0
  152. package/dist/runtime/runtime.d.ts.map +1 -1
  153. package/dist/runtime/runtime.js +192 -6
  154. package/dist/runtime/runtime.js.map +1 -1
  155. package/dist/runtime/scanner-composition.d.ts +10 -0
  156. package/dist/runtime/scanner-composition.d.ts.map +1 -1
  157. package/dist/runtime/scanner-composition.js +10 -0
  158. package/dist/runtime/scanner-composition.js.map +1 -1
  159. package/dist/runtime/scanner-registry.d.ts +39 -1
  160. package/dist/runtime/scanner-registry.d.ts.map +1 -1
  161. package/dist/runtime/scanner-registry.js +105 -2
  162. package/dist/runtime/scanner-registry.js.map +1 -1
  163. package/dist/runtime/state-layout.d.ts +2 -0
  164. package/dist/runtime/state-layout.d.ts.map +1 -1
  165. package/dist/runtime/state-layout.js +1 -0
  166. package/dist/runtime/state-layout.js.map +1 -1
  167. package/dist/runtime/validate-action-prompts.d.ts +30 -0
  168. package/dist/runtime/validate-action-prompts.d.ts.map +1 -0
  169. package/dist/runtime/validate-action-prompts.js +110 -0
  170. package/dist/runtime/validate-action-prompts.js.map +1 -0
  171. package/dist/scanners/__tests__/test-helpers.d.ts +10 -0
  172. package/dist/scanners/__tests__/test-helpers.d.ts.map +1 -1
  173. package/dist/scanners/__tests__/test-helpers.js +52 -0
  174. package/dist/scanners/__tests__/test-helpers.js.map +1 -1
  175. package/dist/scanners/engine/engine.d.ts +37 -0
  176. package/dist/scanners/engine/engine.d.ts.map +1 -1
  177. package/dist/scanners/engine/engine.js +130 -12
  178. package/dist/scanners/engine/engine.js.map +1 -1
  179. package/dist/scanners/engine/result-builder.d.ts +16 -0
  180. package/dist/scanners/engine/result-builder.d.ts.map +1 -1
  181. package/dist/scanners/engine/result-builder.js +22 -0
  182. package/dist/scanners/engine/result-builder.js.map +1 -1
  183. package/dist/scanners/engine/strategy-registry.d.ts +2 -0
  184. package/dist/scanners/engine/strategy-registry.d.ts.map +1 -1
  185. package/dist/scanners/engine/strategy-registry.js +5 -1
  186. package/dist/scanners/engine/strategy-registry.js.map +1 -1
  187. package/dist/scanners/external-scanner-receiver.d.ts +118 -0
  188. package/dist/scanners/external-scanner-receiver.d.ts.map +1 -0
  189. package/dist/scanners/external-scanner-receiver.js +266 -0
  190. package/dist/scanners/external-scanner-receiver.js.map +1 -0
  191. package/dist/scanners/implementations/external-scanner.d.ts +17 -0
  192. package/dist/scanners/implementations/external-scanner.d.ts.map +1 -0
  193. package/dist/scanners/implementations/external-scanner.js +51 -0
  194. package/dist/scanners/implementations/external-scanner.js.map +1 -0
  195. package/dist/scanners/implementations/index.d.ts +1 -0
  196. package/dist/scanners/implementations/index.d.ts.map +1 -1
  197. package/dist/scanners/implementations/index.js +1 -0
  198. package/dist/scanners/implementations/index.js.map +1 -1
  199. package/dist/scanners/index.d.ts +4 -1
  200. package/dist/scanners/index.d.ts.map +1 -1
  201. package/dist/scanners/index.js +2 -0
  202. package/dist/scanners/index.js.map +1 -1
  203. package/dist/scanners/protocol/scanner.d.ts +3 -1
  204. package/dist/scanners/protocol/scanner.d.ts.map +1 -1
  205. package/dist/scanners/runtime-module.d.ts +10 -0
  206. package/dist/scanners/runtime-module.d.ts.map +1 -1
  207. package/dist/scanners/runtime-module.js +19 -3
  208. package/dist/scanners/runtime-module.js.map +1 -1
  209. package/dist/scanners/scanner-definition.d.ts +12 -1
  210. package/dist/scanners/scanner-definition.d.ts.map +1 -1
  211. package/dist/scanners/types.d.ts +3 -0
  212. package/dist/scanners/types.d.ts.map +1 -1
  213. package/dist/scanners/types.js.map +1 -1
  214. package/dist/scripts/run-dsl-standalone-live.js +1 -1
  215. package/dist/scripts/run-dsl-standalone-live.js.map +1 -1
  216. package/dist/scripts/run-dsl-standalone-mock.js +1 -1
  217. package/dist/scripts/run-dsl-standalone-mock.js.map +1 -1
  218. package/dist/senpi/client.d.ts +27 -2
  219. package/dist/senpi/client.d.ts.map +1 -1
  220. package/dist/senpi/client.js +74 -1
  221. package/dist/senpi/client.js.map +1 -1
  222. package/dist/senpi/index.d.ts +1 -1
  223. package/dist/senpi/index.d.ts.map +1 -1
  224. package/dist/senpi/types.d.ts +68 -0
  225. package/dist/senpi/types.d.ts.map +1 -1
  226. package/dist/strategy/strategy-state.d.ts +4 -1
  227. package/dist/strategy/strategy-state.d.ts.map +1 -1
  228. package/dist/strategy/strategy-state.js +7 -2
  229. package/dist/strategy/strategy-state.js.map +1 -1
  230. package/dist/tracking/constants.d.ts +24 -0
  231. package/dist/tracking/constants.d.ts.map +1 -0
  232. package/dist/tracking/constants.js +46 -0
  233. package/dist/tracking/constants.js.map +1 -0
  234. package/dist/tracking/index.d.ts +12 -0
  235. package/dist/tracking/index.d.ts.map +1 -0
  236. package/dist/tracking/index.js +8 -0
  237. package/dist/tracking/index.js.map +1 -0
  238. package/dist/tracking/tracker.d.ts +22 -0
  239. package/dist/tracking/tracker.d.ts.map +1 -0
  240. package/dist/tracking/tracker.js +44 -0
  241. package/dist/tracking/tracker.js.map +1 -0
  242. package/dist/tracking/tracking-handler.d.ts +12 -0
  243. package/dist/tracking/tracking-handler.d.ts.map +1 -0
  244. package/dist/tracking/tracking-handler.js +148 -0
  245. package/dist/tracking/tracking-handler.js.map +1 -0
  246. package/dist/tracking/transport.d.ts +35 -0
  247. package/dist/tracking/transport.d.ts.map +1 -0
  248. package/dist/tracking/transport.js +117 -0
  249. package/dist/tracking/transport.js.map +1 -0
  250. package/dist/tracking/types.d.ts +21 -0
  251. package/dist/tracking/types.d.ts.map +1 -0
  252. package/dist/tracking/types.js +6 -0
  253. package/dist/tracking/types.js.map +1 -0
  254. package/dist/types/action.d.ts +13 -2
  255. package/dist/types/action.d.ts.map +1 -1
  256. package/dist/types/dsl/index.d.ts +4 -1
  257. package/dist/types/dsl/index.d.ts.map +1 -1
  258. package/dist/types/strategy.d.ts +9 -3
  259. package/dist/types/strategy.d.ts.map +1 -1
  260. package/dist/utils/resolve-order-type.d.ts +5 -0
  261. package/dist/utils/resolve-order-type.d.ts.map +1 -0
  262. package/dist/utils/resolve-order-type.js +29 -0
  263. package/dist/utils/resolve-order-type.js.map +1 -0
  264. package/examples/strategies/dsl-showcase.yaml +7 -2
  265. package/examples/strategies/dsl.yaml +5 -1
  266. package/examples/strategies/fox-minimal-loosened.yaml +18 -3
  267. package/examples/strategies/fox-minimal.yaml +25 -3
  268. package/examples/strategies/minimal.yaml +4 -2
  269. package/examples/strategies/momentum/how-it-works.md +47 -0
  270. package/examples/strategies/momentum/momentum-guarded.yaml +161 -0
  271. package/examples/strategies/risk-showcase.yaml +93 -0
  272. package/examples/strategies/viper.yaml +11 -3
  273. package/examples/strategies/wolf.yaml +11 -3
  274. package/examples/yamls/sample-with-dsl-and-emerging-movers.yaml +12 -4
  275. package/package.json +4 -4
@@ -5,9 +5,9 @@
5
5
  import { z } from "zod";
6
6
  declare const strategyEntrySchema: z.ZodObject<{
7
7
  wallet: z.ZodString;
8
- budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
9
8
  slots: z.ZodOptional<z.ZodNumber>;
10
9
  margin_per_slot: z.ZodOptional<z.ZodNumber>;
10
+ margin_pct: z.ZodOptional<z.ZodNumber>;
11
11
  trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
12
12
  default_leverage: z.ZodOptional<z.ZodNumber>;
13
13
  leverage_multipliers: z.ZodOptional<z.ZodObject<{
@@ -26,9 +26,9 @@ declare const strategyEntrySchema: z.ZodObject<{
26
26
  enabled: z.ZodOptional<z.ZodBoolean>;
27
27
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
28
28
  wallet: z.ZodString;
29
- budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
30
29
  slots: z.ZodOptional<z.ZodNumber>;
31
30
  margin_per_slot: z.ZodOptional<z.ZodNumber>;
31
+ margin_pct: z.ZodOptional<z.ZodNumber>;
32
32
  trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
33
33
  default_leverage: z.ZodOptional<z.ZodNumber>;
34
34
  leverage_multipliers: z.ZodOptional<z.ZodObject<{
@@ -47,9 +47,9 @@ declare const strategyEntrySchema: z.ZodObject<{
47
47
  enabled: z.ZodOptional<z.ZodBoolean>;
48
48
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
49
49
  wallet: z.ZodString;
50
- budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
51
50
  slots: z.ZodOptional<z.ZodNumber>;
52
51
  margin_per_slot: z.ZodOptional<z.ZodNumber>;
52
+ margin_pct: z.ZodOptional<z.ZodNumber>;
53
53
  trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
54
54
  default_leverage: z.ZodOptional<z.ZodNumber>;
55
55
  leverage_multipliers: z.ZodOptional<z.ZodObject<{
@@ -67,7 +67,7 @@ declare const strategyEntrySchema: z.ZodObject<{
67
67
  }>>;
68
68
  enabled: z.ZodOptional<z.ZodBoolean>;
69
69
  }, z.ZodTypeAny, "passthrough">>;
70
- declare const scannerEntrySchema: z.ZodObject<{
70
+ declare const scannerEntrySchema: z.ZodEffects<z.ZodObject<{
71
71
  name: z.ZodString;
72
72
  type: z.ZodString;
73
73
  interval: z.ZodOptional<z.ZodString>;
@@ -91,6 +91,18 @@ declare const scannerEntrySchema: z.ZodObject<{
91
91
  on_stale?: "fail" | "skip" | "degrade" | undefined;
92
92
  }>, "many">>;
93
93
  blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
94
+ outputs: z.ZodOptional<z.ZodObject<{
95
+ signals: z.ZodBoolean;
96
+ context: z.ZodBoolean;
97
+ }, "strip", z.ZodTypeAny, {
98
+ context: boolean;
99
+ signals: boolean;
100
+ }, {
101
+ context: boolean;
102
+ signals: boolean;
103
+ }>>;
104
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
105
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
94
106
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
95
107
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
96
108
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
@@ -117,6 +129,18 @@ declare const scannerEntrySchema: z.ZodObject<{
117
129
  on_stale?: "fail" | "skip" | "degrade" | undefined;
118
130
  }>, "many">>;
119
131
  blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
132
+ outputs: z.ZodOptional<z.ZodObject<{
133
+ signals: z.ZodBoolean;
134
+ context: z.ZodBoolean;
135
+ }, "strip", z.ZodTypeAny, {
136
+ context: boolean;
137
+ signals: boolean;
138
+ }, {
139
+ context: boolean;
140
+ signals: boolean;
141
+ }>>;
142
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
143
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
120
144
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
121
145
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
122
146
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
@@ -143,6 +167,94 @@ declare const scannerEntrySchema: z.ZodObject<{
143
167
  on_stale?: "fail" | "skip" | "degrade" | undefined;
144
168
  }>, "many">>;
145
169
  blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
170
+ outputs: z.ZodOptional<z.ZodObject<{
171
+ signals: z.ZodBoolean;
172
+ context: z.ZodBoolean;
173
+ }, "strip", z.ZodTypeAny, {
174
+ context: boolean;
175
+ signals: boolean;
176
+ }, {
177
+ context: boolean;
178
+ signals: boolean;
179
+ }>>;
180
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
181
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
182
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
183
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
184
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
185
+ name: z.ZodString;
186
+ type: z.ZodString;
187
+ interval: z.ZodOptional<z.ZodString>;
188
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
189
+ scanner: z.ZodString;
190
+ required: z.ZodOptional<z.ZodBoolean>;
191
+ max_age: z.ZodOptional<z.ZodString>;
192
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
193
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
194
+ }, "strip", z.ZodTypeAny, {
195
+ scanner: string;
196
+ required?: boolean | undefined;
197
+ max_age?: string | undefined;
198
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
199
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
200
+ }, {
201
+ scanner: string;
202
+ required?: boolean | undefined;
203
+ max_age?: string | undefined;
204
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
205
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
206
+ }>, "many">>;
207
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
208
+ outputs: z.ZodOptional<z.ZodObject<{
209
+ signals: z.ZodBoolean;
210
+ context: z.ZodBoolean;
211
+ }, "strip", z.ZodTypeAny, {
212
+ context: boolean;
213
+ signals: boolean;
214
+ }, {
215
+ context: boolean;
216
+ signals: boolean;
217
+ }>>;
218
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
219
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
220
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
221
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
222
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
223
+ name: z.ZodString;
224
+ type: z.ZodString;
225
+ interval: z.ZodOptional<z.ZodString>;
226
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
227
+ scanner: z.ZodString;
228
+ required: z.ZodOptional<z.ZodBoolean>;
229
+ max_age: z.ZodOptional<z.ZodString>;
230
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
231
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
232
+ }, "strip", z.ZodTypeAny, {
233
+ scanner: string;
234
+ required?: boolean | undefined;
235
+ max_age?: string | undefined;
236
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
237
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
238
+ }, {
239
+ scanner: string;
240
+ required?: boolean | undefined;
241
+ max_age?: string | undefined;
242
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
243
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
244
+ }>, "many">>;
245
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
246
+ outputs: z.ZodOptional<z.ZodObject<{
247
+ signals: z.ZodBoolean;
248
+ context: z.ZodBoolean;
249
+ }, "strip", z.ZodTypeAny, {
250
+ context: boolean;
251
+ signals: boolean;
252
+ }, {
253
+ context: boolean;
254
+ signals: boolean;
255
+ }>>;
256
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
257
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
146
258
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
147
259
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
148
260
  }, z.ZodTypeAny, "passthrough">>;
@@ -291,18 +403,51 @@ declare const exitBlockSchema: z.ZodObject<{
291
403
  /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
292
404
  dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
293
405
  sm_flip: z.ZodOptional<z.ZodUnknown>;
406
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
407
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
408
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
409
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
410
+ }, "strip", z.ZodTypeAny, {
411
+ ensure_execution_as_taker?: boolean | undefined;
412
+ execution_timeout_seconds?: number | undefined;
413
+ }, {
414
+ ensure_execution_as_taker?: boolean | undefined;
415
+ execution_timeout_seconds?: number | undefined;
416
+ }>>;
294
417
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
295
418
  engine: z.ZodOptional<z.ZodString>;
296
419
  interval_seconds: z.ZodOptional<z.ZodNumber>;
297
420
  /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
298
421
  dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
299
422
  sm_flip: z.ZodOptional<z.ZodUnknown>;
423
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
424
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
425
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
426
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
427
+ }, "strip", z.ZodTypeAny, {
428
+ ensure_execution_as_taker?: boolean | undefined;
429
+ execution_timeout_seconds?: number | undefined;
430
+ }, {
431
+ ensure_execution_as_taker?: boolean | undefined;
432
+ execution_timeout_seconds?: number | undefined;
433
+ }>>;
300
434
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
301
435
  engine: z.ZodOptional<z.ZodString>;
302
436
  interval_seconds: z.ZodOptional<z.ZodNumber>;
303
437
  /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
304
438
  dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
305
439
  sm_flip: z.ZodOptional<z.ZodUnknown>;
440
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
441
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
442
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
443
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
444
+ }, "strip", z.ZodTypeAny, {
445
+ ensure_execution_as_taker?: boolean | undefined;
446
+ execution_timeout_seconds?: number | undefined;
447
+ }, {
448
+ ensure_execution_as_taker?: boolean | undefined;
449
+ execution_timeout_seconds?: number | undefined;
450
+ }>>;
306
451
  }, z.ZodTypeAny, "passthrough">>;
307
452
  export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
308
453
  name: z.ZodString;
@@ -310,9 +455,9 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
310
455
  description: z.ZodOptional<z.ZodString>;
311
456
  strategy: z.ZodObject<{
312
457
  wallet: z.ZodString;
313
- budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
314
458
  slots: z.ZodOptional<z.ZodNumber>;
315
459
  margin_per_slot: z.ZodOptional<z.ZodNumber>;
460
+ margin_pct: z.ZodOptional<z.ZodNumber>;
316
461
  trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
317
462
  default_leverage: z.ZodOptional<z.ZodNumber>;
318
463
  leverage_multipliers: z.ZodOptional<z.ZodObject<{
@@ -331,9 +476,9 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
331
476
  enabled: z.ZodOptional<z.ZodBoolean>;
332
477
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
333
478
  wallet: z.ZodString;
334
- budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
335
479
  slots: z.ZodOptional<z.ZodNumber>;
336
480
  margin_per_slot: z.ZodOptional<z.ZodNumber>;
481
+ margin_pct: z.ZodOptional<z.ZodNumber>;
337
482
  trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
338
483
  default_leverage: z.ZodOptional<z.ZodNumber>;
339
484
  leverage_multipliers: z.ZodOptional<z.ZodObject<{
@@ -352,9 +497,9 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
352
497
  enabled: z.ZodOptional<z.ZodBoolean>;
353
498
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
354
499
  wallet: z.ZodString;
355
- budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
356
500
  slots: z.ZodOptional<z.ZodNumber>;
357
501
  margin_per_slot: z.ZodOptional<z.ZodNumber>;
502
+ margin_pct: z.ZodOptional<z.ZodNumber>;
358
503
  trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
359
504
  default_leverage: z.ZodOptional<z.ZodNumber>;
360
505
  leverage_multipliers: z.ZodOptional<z.ZodObject<{
@@ -372,7 +517,7 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
372
517
  }>>;
373
518
  enabled: z.ZodOptional<z.ZodBoolean>;
374
519
  }, z.ZodTypeAny, "passthrough">>;
375
- scanners: z.ZodOptional<z.ZodArray<z.ZodObject<{
520
+ scanners: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
376
521
  name: z.ZodString;
377
522
  type: z.ZodString;
378
523
  interval: z.ZodOptional<z.ZodString>;
@@ -396,6 +541,18 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
396
541
  on_stale?: "fail" | "skip" | "degrade" | undefined;
397
542
  }>, "many">>;
398
543
  blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
544
+ outputs: z.ZodOptional<z.ZodObject<{
545
+ signals: z.ZodBoolean;
546
+ context: z.ZodBoolean;
547
+ }, "strip", z.ZodTypeAny, {
548
+ context: boolean;
549
+ signals: boolean;
550
+ }, {
551
+ context: boolean;
552
+ signals: boolean;
553
+ }>>;
554
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
555
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
399
556
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
400
557
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
401
558
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
@@ -422,6 +579,18 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
422
579
  on_stale?: "fail" | "skip" | "degrade" | undefined;
423
580
  }>, "many">>;
424
581
  blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
582
+ outputs: z.ZodOptional<z.ZodObject<{
583
+ signals: z.ZodBoolean;
584
+ context: z.ZodBoolean;
585
+ }, "strip", z.ZodTypeAny, {
586
+ context: boolean;
587
+ signals: boolean;
588
+ }, {
589
+ context: boolean;
590
+ signals: boolean;
591
+ }>>;
592
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
593
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
425
594
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
426
595
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
427
596
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
@@ -448,6 +617,94 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
448
617
  on_stale?: "fail" | "skip" | "degrade" | undefined;
449
618
  }>, "many">>;
450
619
  blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
620
+ outputs: z.ZodOptional<z.ZodObject<{
621
+ signals: z.ZodBoolean;
622
+ context: z.ZodBoolean;
623
+ }, "strip", z.ZodTypeAny, {
624
+ context: boolean;
625
+ signals: boolean;
626
+ }, {
627
+ context: boolean;
628
+ signals: boolean;
629
+ }>>;
630
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
631
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
632
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
633
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
634
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
635
+ name: z.ZodString;
636
+ type: z.ZodString;
637
+ interval: z.ZodOptional<z.ZodString>;
638
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
639
+ scanner: z.ZodString;
640
+ required: z.ZodOptional<z.ZodBoolean>;
641
+ max_age: z.ZodOptional<z.ZodString>;
642
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
643
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
644
+ }, "strip", z.ZodTypeAny, {
645
+ scanner: string;
646
+ required?: boolean | undefined;
647
+ max_age?: string | undefined;
648
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
649
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
650
+ }, {
651
+ scanner: string;
652
+ required?: boolean | undefined;
653
+ max_age?: string | undefined;
654
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
655
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
656
+ }>, "many">>;
657
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
658
+ outputs: z.ZodOptional<z.ZodObject<{
659
+ signals: z.ZodBoolean;
660
+ context: z.ZodBoolean;
661
+ }, "strip", z.ZodTypeAny, {
662
+ context: boolean;
663
+ signals: boolean;
664
+ }, {
665
+ context: boolean;
666
+ signals: boolean;
667
+ }>>;
668
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
669
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
670
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
671
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
672
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
673
+ name: z.ZodString;
674
+ type: z.ZodString;
675
+ interval: z.ZodOptional<z.ZodString>;
676
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
677
+ scanner: z.ZodString;
678
+ required: z.ZodOptional<z.ZodBoolean>;
679
+ max_age: z.ZodOptional<z.ZodString>;
680
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
681
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
682
+ }, "strip", z.ZodTypeAny, {
683
+ scanner: string;
684
+ required?: boolean | undefined;
685
+ max_age?: string | undefined;
686
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
687
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
688
+ }, {
689
+ scanner: string;
690
+ required?: boolean | undefined;
691
+ max_age?: string | undefined;
692
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
693
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
694
+ }>, "many">>;
695
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
696
+ outputs: z.ZodOptional<z.ZodObject<{
697
+ signals: z.ZodBoolean;
698
+ context: z.ZodBoolean;
699
+ }, "strip", z.ZodTypeAny, {
700
+ context: boolean;
701
+ signals: boolean;
702
+ }, {
703
+ context: boolean;
704
+ signals: boolean;
705
+ }>>;
706
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
707
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
451
708
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
452
709
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
453
710
  }, z.ZodTypeAny, "passthrough">>, "many">>;
@@ -596,22 +853,110 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
596
853
  /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
597
854
  dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
598
855
  sm_flip: z.ZodOptional<z.ZodUnknown>;
856
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
857
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
858
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
859
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
860
+ }, "strip", z.ZodTypeAny, {
861
+ ensure_execution_as_taker?: boolean | undefined;
862
+ execution_timeout_seconds?: number | undefined;
863
+ }, {
864
+ ensure_execution_as_taker?: boolean | undefined;
865
+ execution_timeout_seconds?: number | undefined;
866
+ }>>;
599
867
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
600
868
  engine: z.ZodOptional<z.ZodString>;
601
869
  interval_seconds: z.ZodOptional<z.ZodNumber>;
602
870
  /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
603
871
  dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
604
872
  sm_flip: z.ZodOptional<z.ZodUnknown>;
873
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
874
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
875
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
876
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
877
+ }, "strip", z.ZodTypeAny, {
878
+ ensure_execution_as_taker?: boolean | undefined;
879
+ execution_timeout_seconds?: number | undefined;
880
+ }, {
881
+ ensure_execution_as_taker?: boolean | undefined;
882
+ execution_timeout_seconds?: number | undefined;
883
+ }>>;
605
884
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
606
885
  engine: z.ZodOptional<z.ZodString>;
607
886
  interval_seconds: z.ZodOptional<z.ZodNumber>;
608
887
  /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
609
888
  dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
610
889
  sm_flip: z.ZodOptional<z.ZodUnknown>;
890
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
891
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
892
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
893
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
894
+ }, "strip", z.ZodTypeAny, {
895
+ ensure_execution_as_taker?: boolean | undefined;
896
+ execution_timeout_seconds?: number | undefined;
897
+ }, {
898
+ ensure_execution_as_taker?: boolean | undefined;
899
+ execution_timeout_seconds?: number | undefined;
900
+ }>>;
611
901
  }, z.ZodTypeAny, "passthrough">>>;
612
902
  health: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
613
903
  hooks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
614
904
  notifications: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
905
+ risk: z.ZodOptional<z.ZodObject<{
906
+ data_retention_hours: z.ZodOptional<z.ZodNumber>;
907
+ guard_rails: z.ZodOptional<z.ZodObject<{
908
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
909
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
910
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
911
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
912
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
913
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
914
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
915
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
916
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
917
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
918
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
919
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
920
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
921
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
922
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
923
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
924
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
925
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
926
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
927
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
928
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
929
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
930
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
931
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
932
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
933
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
934
+ }, z.ZodTypeAny, "passthrough">>>;
935
+ }, "strip", z.ZodTypeAny, {
936
+ data_retention_hours?: number | undefined;
937
+ guard_rails?: z.objectOutputType<{
938
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
939
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
940
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
941
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
942
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
943
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
944
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
945
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
946
+ }, z.ZodTypeAny, "passthrough"> | undefined;
947
+ }, {
948
+ data_retention_hours?: number | undefined;
949
+ guard_rails?: z.objectInputType<{
950
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
951
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
952
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
953
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
954
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
955
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
956
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
957
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
958
+ }, z.ZodTypeAny, "passthrough"> | undefined;
959
+ }>>;
615
960
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
616
961
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
617
962
  name: z.ZodString;
@@ -619,9 +964,9 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
619
964
  description: z.ZodOptional<z.ZodString>;
620
965
  strategy: z.ZodObject<{
621
966
  wallet: z.ZodString;
622
- budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
623
967
  slots: z.ZodOptional<z.ZodNumber>;
624
968
  margin_per_slot: z.ZodOptional<z.ZodNumber>;
969
+ margin_pct: z.ZodOptional<z.ZodNumber>;
625
970
  trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
626
971
  default_leverage: z.ZodOptional<z.ZodNumber>;
627
972
  leverage_multipliers: z.ZodOptional<z.ZodObject<{
@@ -640,9 +985,9 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
640
985
  enabled: z.ZodOptional<z.ZodBoolean>;
641
986
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
642
987
  wallet: z.ZodString;
643
- budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
644
988
  slots: z.ZodOptional<z.ZodNumber>;
645
989
  margin_per_slot: z.ZodOptional<z.ZodNumber>;
990
+ margin_pct: z.ZodOptional<z.ZodNumber>;
646
991
  trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
647
992
  default_leverage: z.ZodOptional<z.ZodNumber>;
648
993
  leverage_multipliers: z.ZodOptional<z.ZodObject<{
@@ -661,9 +1006,9 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
661
1006
  enabled: z.ZodOptional<z.ZodBoolean>;
662
1007
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
663
1008
  wallet: z.ZodString;
664
- budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
665
1009
  slots: z.ZodOptional<z.ZodNumber>;
666
1010
  margin_per_slot: z.ZodOptional<z.ZodNumber>;
1011
+ margin_pct: z.ZodOptional<z.ZodNumber>;
667
1012
  trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
668
1013
  default_leverage: z.ZodOptional<z.ZodNumber>;
669
1014
  leverage_multipliers: z.ZodOptional<z.ZodObject<{
@@ -681,7 +1026,7 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
681
1026
  }>>;
682
1027
  enabled: z.ZodOptional<z.ZodBoolean>;
683
1028
  }, z.ZodTypeAny, "passthrough">>;
684
- scanners: z.ZodOptional<z.ZodArray<z.ZodObject<{
1029
+ scanners: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
685
1030
  name: z.ZodString;
686
1031
  type: z.ZodString;
687
1032
  interval: z.ZodOptional<z.ZodString>;
@@ -705,6 +1050,18 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
705
1050
  on_stale?: "fail" | "skip" | "degrade" | undefined;
706
1051
  }>, "many">>;
707
1052
  blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1053
+ outputs: z.ZodOptional<z.ZodObject<{
1054
+ signals: z.ZodBoolean;
1055
+ context: z.ZodBoolean;
1056
+ }, "strip", z.ZodTypeAny, {
1057
+ context: boolean;
1058
+ signals: boolean;
1059
+ }, {
1060
+ context: boolean;
1061
+ signals: boolean;
1062
+ }>>;
1063
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
1064
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
708
1065
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
709
1066
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
710
1067
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
@@ -731,6 +1088,94 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
731
1088
  on_stale?: "fail" | "skip" | "degrade" | undefined;
732
1089
  }>, "many">>;
733
1090
  blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1091
+ outputs: z.ZodOptional<z.ZodObject<{
1092
+ signals: z.ZodBoolean;
1093
+ context: z.ZodBoolean;
1094
+ }, "strip", z.ZodTypeAny, {
1095
+ context: boolean;
1096
+ signals: boolean;
1097
+ }, {
1098
+ context: boolean;
1099
+ signals: boolean;
1100
+ }>>;
1101
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
1102
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
1103
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1104
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1105
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1106
+ name: z.ZodString;
1107
+ type: z.ZodString;
1108
+ interval: z.ZodOptional<z.ZodString>;
1109
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
1110
+ scanner: z.ZodString;
1111
+ required: z.ZodOptional<z.ZodBoolean>;
1112
+ max_age: z.ZodOptional<z.ZodString>;
1113
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1114
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1115
+ }, "strip", z.ZodTypeAny, {
1116
+ scanner: string;
1117
+ required?: boolean | undefined;
1118
+ max_age?: string | undefined;
1119
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1120
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1121
+ }, {
1122
+ scanner: string;
1123
+ required?: boolean | undefined;
1124
+ max_age?: string | undefined;
1125
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1126
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1127
+ }>, "many">>;
1128
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1129
+ outputs: z.ZodOptional<z.ZodObject<{
1130
+ signals: z.ZodBoolean;
1131
+ context: z.ZodBoolean;
1132
+ }, "strip", z.ZodTypeAny, {
1133
+ context: boolean;
1134
+ signals: boolean;
1135
+ }, {
1136
+ context: boolean;
1137
+ signals: boolean;
1138
+ }>>;
1139
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
1140
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
1141
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1142
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1143
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
1144
+ name: z.ZodString;
1145
+ type: z.ZodString;
1146
+ interval: z.ZodOptional<z.ZodString>;
1147
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
1148
+ scanner: z.ZodString;
1149
+ required: z.ZodOptional<z.ZodBoolean>;
1150
+ max_age: z.ZodOptional<z.ZodString>;
1151
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1152
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1153
+ }, "strip", z.ZodTypeAny, {
1154
+ scanner: string;
1155
+ required?: boolean | undefined;
1156
+ max_age?: string | undefined;
1157
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1158
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1159
+ }, {
1160
+ scanner: string;
1161
+ required?: boolean | undefined;
1162
+ max_age?: string | undefined;
1163
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1164
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1165
+ }>, "many">>;
1166
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1167
+ outputs: z.ZodOptional<z.ZodObject<{
1168
+ signals: z.ZodBoolean;
1169
+ context: z.ZodBoolean;
1170
+ }, "strip", z.ZodTypeAny, {
1171
+ context: boolean;
1172
+ signals: boolean;
1173
+ }, {
1174
+ context: boolean;
1175
+ signals: boolean;
1176
+ }>>;
1177
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
1178
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
734
1179
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
735
1180
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
736
1181
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
@@ -757,6 +1202,18 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
757
1202
  on_stale?: "fail" | "skip" | "degrade" | undefined;
758
1203
  }>, "many">>;
759
1204
  blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1205
+ outputs: z.ZodOptional<z.ZodObject<{
1206
+ signals: z.ZodBoolean;
1207
+ context: z.ZodBoolean;
1208
+ }, "strip", z.ZodTypeAny, {
1209
+ context: boolean;
1210
+ signals: boolean;
1211
+ }, {
1212
+ context: boolean;
1213
+ signals: boolean;
1214
+ }>>;
1215
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
1216
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
760
1217
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
761
1218
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
762
1219
  }, z.ZodTypeAny, "passthrough">>, "many">>;
@@ -905,22 +1362,110 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
905
1362
  /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
906
1363
  dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
907
1364
  sm_flip: z.ZodOptional<z.ZodUnknown>;
1365
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
1366
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
1367
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
1368
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
1369
+ }, "strip", z.ZodTypeAny, {
1370
+ ensure_execution_as_taker?: boolean | undefined;
1371
+ execution_timeout_seconds?: number | undefined;
1372
+ }, {
1373
+ ensure_execution_as_taker?: boolean | undefined;
1374
+ execution_timeout_seconds?: number | undefined;
1375
+ }>>;
908
1376
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
909
1377
  engine: z.ZodOptional<z.ZodString>;
910
1378
  interval_seconds: z.ZodOptional<z.ZodNumber>;
911
1379
  /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
912
1380
  dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
913
1381
  sm_flip: z.ZodOptional<z.ZodUnknown>;
1382
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
1383
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
1384
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
1385
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
1386
+ }, "strip", z.ZodTypeAny, {
1387
+ ensure_execution_as_taker?: boolean | undefined;
1388
+ execution_timeout_seconds?: number | undefined;
1389
+ }, {
1390
+ ensure_execution_as_taker?: boolean | undefined;
1391
+ execution_timeout_seconds?: number | undefined;
1392
+ }>>;
914
1393
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
915
1394
  engine: z.ZodOptional<z.ZodString>;
916
1395
  interval_seconds: z.ZodOptional<z.ZodNumber>;
917
1396
  /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
918
1397
  dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
919
1398
  sm_flip: z.ZodOptional<z.ZodUnknown>;
1399
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
1400
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
1401
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
1402
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
1403
+ }, "strip", z.ZodTypeAny, {
1404
+ ensure_execution_as_taker?: boolean | undefined;
1405
+ execution_timeout_seconds?: number | undefined;
1406
+ }, {
1407
+ ensure_execution_as_taker?: boolean | undefined;
1408
+ execution_timeout_seconds?: number | undefined;
1409
+ }>>;
920
1410
  }, z.ZodTypeAny, "passthrough">>>;
921
1411
  health: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
922
1412
  hooks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
923
1413
  notifications: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1414
+ risk: z.ZodOptional<z.ZodObject<{
1415
+ data_retention_hours: z.ZodOptional<z.ZodNumber>;
1416
+ guard_rails: z.ZodOptional<z.ZodObject<{
1417
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
1418
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
1419
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
1420
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
1421
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1422
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
1423
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
1424
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1425
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1426
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
1427
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
1428
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
1429
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
1430
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1431
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
1432
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
1433
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1434
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1435
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
1436
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
1437
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
1438
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
1439
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1440
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
1441
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
1442
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1443
+ }, z.ZodTypeAny, "passthrough">>>;
1444
+ }, "strip", z.ZodTypeAny, {
1445
+ data_retention_hours?: number | undefined;
1446
+ guard_rails?: z.objectOutputType<{
1447
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
1448
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
1449
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
1450
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
1451
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1452
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
1453
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
1454
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1455
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1456
+ }, {
1457
+ data_retention_hours?: number | undefined;
1458
+ guard_rails?: z.objectInputType<{
1459
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
1460
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
1461
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
1462
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
1463
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1464
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
1465
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
1466
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1467
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1468
+ }>>;
924
1469
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
925
1470
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
926
1471
  name: z.ZodString;
@@ -928,9 +1473,9 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
928
1473
  description: z.ZodOptional<z.ZodString>;
929
1474
  strategy: z.ZodObject<{
930
1475
  wallet: z.ZodString;
931
- budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
932
1476
  slots: z.ZodOptional<z.ZodNumber>;
933
1477
  margin_per_slot: z.ZodOptional<z.ZodNumber>;
1478
+ margin_pct: z.ZodOptional<z.ZodNumber>;
934
1479
  trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
935
1480
  default_leverage: z.ZodOptional<z.ZodNumber>;
936
1481
  leverage_multipliers: z.ZodOptional<z.ZodObject<{
@@ -949,9 +1494,9 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
949
1494
  enabled: z.ZodOptional<z.ZodBoolean>;
950
1495
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
951
1496
  wallet: z.ZodString;
952
- budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
953
1497
  slots: z.ZodOptional<z.ZodNumber>;
954
1498
  margin_per_slot: z.ZodOptional<z.ZodNumber>;
1499
+ margin_pct: z.ZodOptional<z.ZodNumber>;
955
1500
  trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
956
1501
  default_leverage: z.ZodOptional<z.ZodNumber>;
957
1502
  leverage_multipliers: z.ZodOptional<z.ZodObject<{
@@ -970,9 +1515,9 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
970
1515
  enabled: z.ZodOptional<z.ZodBoolean>;
971
1516
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
972
1517
  wallet: z.ZodString;
973
- budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
974
1518
  slots: z.ZodOptional<z.ZodNumber>;
975
1519
  margin_per_slot: z.ZodOptional<z.ZodNumber>;
1520
+ margin_pct: z.ZodOptional<z.ZodNumber>;
976
1521
  trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
977
1522
  default_leverage: z.ZodOptional<z.ZodNumber>;
978
1523
  leverage_multipliers: z.ZodOptional<z.ZodObject<{
@@ -990,7 +1535,7 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
990
1535
  }>>;
991
1536
  enabled: z.ZodOptional<z.ZodBoolean>;
992
1537
  }, z.ZodTypeAny, "passthrough">>;
993
- scanners: z.ZodOptional<z.ZodArray<z.ZodObject<{
1538
+ scanners: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
994
1539
  name: z.ZodString;
995
1540
  type: z.ZodString;
996
1541
  interval: z.ZodOptional<z.ZodString>;
@@ -1014,6 +1559,18 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1014
1559
  on_stale?: "fail" | "skip" | "degrade" | undefined;
1015
1560
  }>, "many">>;
1016
1561
  blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1562
+ outputs: z.ZodOptional<z.ZodObject<{
1563
+ signals: z.ZodBoolean;
1564
+ context: z.ZodBoolean;
1565
+ }, "strip", z.ZodTypeAny, {
1566
+ context: boolean;
1567
+ signals: boolean;
1568
+ }, {
1569
+ context: boolean;
1570
+ signals: boolean;
1571
+ }>>;
1572
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
1573
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
1017
1574
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1018
1575
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1019
1576
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
@@ -1040,6 +1597,18 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1040
1597
  on_stale?: "fail" | "skip" | "degrade" | undefined;
1041
1598
  }>, "many">>;
1042
1599
  blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1600
+ outputs: z.ZodOptional<z.ZodObject<{
1601
+ signals: z.ZodBoolean;
1602
+ context: z.ZodBoolean;
1603
+ }, "strip", z.ZodTypeAny, {
1604
+ context: boolean;
1605
+ signals: boolean;
1606
+ }, {
1607
+ context: boolean;
1608
+ signals: boolean;
1609
+ }>>;
1610
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
1611
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
1043
1612
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1044
1613
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1045
1614
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
@@ -1066,6 +1635,94 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1066
1635
  on_stale?: "fail" | "skip" | "degrade" | undefined;
1067
1636
  }>, "many">>;
1068
1637
  blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1638
+ outputs: z.ZodOptional<z.ZodObject<{
1639
+ signals: z.ZodBoolean;
1640
+ context: z.ZodBoolean;
1641
+ }, "strip", z.ZodTypeAny, {
1642
+ context: boolean;
1643
+ signals: boolean;
1644
+ }, {
1645
+ context: boolean;
1646
+ signals: boolean;
1647
+ }>>;
1648
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
1649
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
1650
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1651
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1652
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
1653
+ name: z.ZodString;
1654
+ type: z.ZodString;
1655
+ interval: z.ZodOptional<z.ZodString>;
1656
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
1657
+ scanner: z.ZodString;
1658
+ required: z.ZodOptional<z.ZodBoolean>;
1659
+ max_age: z.ZodOptional<z.ZodString>;
1660
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1661
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1662
+ }, "strip", z.ZodTypeAny, {
1663
+ scanner: string;
1664
+ required?: boolean | undefined;
1665
+ max_age?: string | undefined;
1666
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1667
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1668
+ }, {
1669
+ scanner: string;
1670
+ required?: boolean | undefined;
1671
+ max_age?: string | undefined;
1672
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1673
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1674
+ }>, "many">>;
1675
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1676
+ outputs: z.ZodOptional<z.ZodObject<{
1677
+ signals: z.ZodBoolean;
1678
+ context: z.ZodBoolean;
1679
+ }, "strip", z.ZodTypeAny, {
1680
+ context: boolean;
1681
+ signals: boolean;
1682
+ }, {
1683
+ context: boolean;
1684
+ signals: boolean;
1685
+ }>>;
1686
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
1687
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
1688
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1689
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1690
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1691
+ name: z.ZodString;
1692
+ type: z.ZodString;
1693
+ interval: z.ZodOptional<z.ZodString>;
1694
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
1695
+ scanner: z.ZodString;
1696
+ required: z.ZodOptional<z.ZodBoolean>;
1697
+ max_age: z.ZodOptional<z.ZodString>;
1698
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1699
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1700
+ }, "strip", z.ZodTypeAny, {
1701
+ scanner: string;
1702
+ required?: boolean | undefined;
1703
+ max_age?: string | undefined;
1704
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1705
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1706
+ }, {
1707
+ scanner: string;
1708
+ required?: boolean | undefined;
1709
+ max_age?: string | undefined;
1710
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1711
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1712
+ }>, "many">>;
1713
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1714
+ outputs: z.ZodOptional<z.ZodObject<{
1715
+ signals: z.ZodBoolean;
1716
+ context: z.ZodBoolean;
1717
+ }, "strip", z.ZodTypeAny, {
1718
+ context: boolean;
1719
+ signals: boolean;
1720
+ }, {
1721
+ context: boolean;
1722
+ signals: boolean;
1723
+ }>>;
1724
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
1725
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
1069
1726
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1070
1727
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1071
1728
  }, z.ZodTypeAny, "passthrough">>, "many">>;
@@ -1214,22 +1871,110 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1214
1871
  /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
1215
1872
  dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1216
1873
  sm_flip: z.ZodOptional<z.ZodUnknown>;
1874
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
1875
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
1876
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
1877
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
1878
+ }, "strip", z.ZodTypeAny, {
1879
+ ensure_execution_as_taker?: boolean | undefined;
1880
+ execution_timeout_seconds?: number | undefined;
1881
+ }, {
1882
+ ensure_execution_as_taker?: boolean | undefined;
1883
+ execution_timeout_seconds?: number | undefined;
1884
+ }>>;
1217
1885
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1218
1886
  engine: z.ZodOptional<z.ZodString>;
1219
1887
  interval_seconds: z.ZodOptional<z.ZodNumber>;
1220
1888
  /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
1221
1889
  dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1222
1890
  sm_flip: z.ZodOptional<z.ZodUnknown>;
1891
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
1892
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
1893
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
1894
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
1895
+ }, "strip", z.ZodTypeAny, {
1896
+ ensure_execution_as_taker?: boolean | undefined;
1897
+ execution_timeout_seconds?: number | undefined;
1898
+ }, {
1899
+ ensure_execution_as_taker?: boolean | undefined;
1900
+ execution_timeout_seconds?: number | undefined;
1901
+ }>>;
1223
1902
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1224
1903
  engine: z.ZodOptional<z.ZodString>;
1225
1904
  interval_seconds: z.ZodOptional<z.ZodNumber>;
1226
1905
  /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
1227
1906
  dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1228
1907
  sm_flip: z.ZodOptional<z.ZodUnknown>;
1908
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
1909
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
1910
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
1911
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
1912
+ }, "strip", z.ZodTypeAny, {
1913
+ ensure_execution_as_taker?: boolean | undefined;
1914
+ execution_timeout_seconds?: number | undefined;
1915
+ }, {
1916
+ ensure_execution_as_taker?: boolean | undefined;
1917
+ execution_timeout_seconds?: number | undefined;
1918
+ }>>;
1229
1919
  }, z.ZodTypeAny, "passthrough">>>;
1230
1920
  health: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1231
1921
  hooks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
1232
1922
  notifications: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1923
+ risk: z.ZodOptional<z.ZodObject<{
1924
+ data_retention_hours: z.ZodOptional<z.ZodNumber>;
1925
+ guard_rails: z.ZodOptional<z.ZodObject<{
1926
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
1927
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
1928
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
1929
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
1930
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1931
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
1932
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
1933
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1934
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1935
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
1936
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
1937
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
1938
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
1939
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1940
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
1941
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
1942
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1943
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1944
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
1945
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
1946
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
1947
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
1948
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1949
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
1950
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
1951
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1952
+ }, z.ZodTypeAny, "passthrough">>>;
1953
+ }, "strip", z.ZodTypeAny, {
1954
+ data_retention_hours?: number | undefined;
1955
+ guard_rails?: z.objectOutputType<{
1956
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
1957
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
1958
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
1959
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
1960
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1961
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
1962
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
1963
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1964
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1965
+ }, {
1966
+ data_retention_hours?: number | undefined;
1967
+ guard_rails?: z.objectInputType<{
1968
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
1969
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
1970
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
1971
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
1972
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1973
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
1974
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
1975
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1976
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1977
+ }>>;
1233
1978
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1234
1979
  }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
1235
1980
  name: z.ZodString;
@@ -1237,9 +1982,9 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1237
1982
  description: z.ZodOptional<z.ZodString>;
1238
1983
  strategy: z.ZodObject<{
1239
1984
  wallet: z.ZodString;
1240
- budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1241
1985
  slots: z.ZodOptional<z.ZodNumber>;
1242
1986
  margin_per_slot: z.ZodOptional<z.ZodNumber>;
1987
+ margin_pct: z.ZodOptional<z.ZodNumber>;
1243
1988
  trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
1244
1989
  default_leverage: z.ZodOptional<z.ZodNumber>;
1245
1990
  leverage_multipliers: z.ZodOptional<z.ZodObject<{
@@ -1258,9 +2003,9 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1258
2003
  enabled: z.ZodOptional<z.ZodBoolean>;
1259
2004
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1260
2005
  wallet: z.ZodString;
1261
- budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1262
2006
  slots: z.ZodOptional<z.ZodNumber>;
1263
2007
  margin_per_slot: z.ZodOptional<z.ZodNumber>;
2008
+ margin_pct: z.ZodOptional<z.ZodNumber>;
1264
2009
  trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
1265
2010
  default_leverage: z.ZodOptional<z.ZodNumber>;
1266
2011
  leverage_multipliers: z.ZodOptional<z.ZodObject<{
@@ -1279,9 +2024,9 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1279
2024
  enabled: z.ZodOptional<z.ZodBoolean>;
1280
2025
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1281
2026
  wallet: z.ZodString;
1282
- budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1283
2027
  slots: z.ZodOptional<z.ZodNumber>;
1284
2028
  margin_per_slot: z.ZodOptional<z.ZodNumber>;
2029
+ margin_pct: z.ZodOptional<z.ZodNumber>;
1285
2030
  trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
1286
2031
  default_leverage: z.ZodOptional<z.ZodNumber>;
1287
2032
  leverage_multipliers: z.ZodOptional<z.ZodObject<{
@@ -1299,7 +2044,7 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1299
2044
  }>>;
1300
2045
  enabled: z.ZodOptional<z.ZodBoolean>;
1301
2046
  }, z.ZodTypeAny, "passthrough">>;
1302
- scanners: z.ZodOptional<z.ZodArray<z.ZodObject<{
2047
+ scanners: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
1303
2048
  name: z.ZodString;
1304
2049
  type: z.ZodString;
1305
2050
  interval: z.ZodOptional<z.ZodString>;
@@ -1323,6 +2068,18 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1323
2068
  on_stale?: "fail" | "skip" | "degrade" | undefined;
1324
2069
  }>, "many">>;
1325
2070
  blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2071
+ outputs: z.ZodOptional<z.ZodObject<{
2072
+ signals: z.ZodBoolean;
2073
+ context: z.ZodBoolean;
2074
+ }, "strip", z.ZodTypeAny, {
2075
+ context: boolean;
2076
+ signals: boolean;
2077
+ }, {
2078
+ context: boolean;
2079
+ signals: boolean;
2080
+ }>>;
2081
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
2082
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
1326
2083
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1327
2084
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1328
2085
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
@@ -1349,6 +2106,18 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1349
2106
  on_stale?: "fail" | "skip" | "degrade" | undefined;
1350
2107
  }>, "many">>;
1351
2108
  blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2109
+ outputs: z.ZodOptional<z.ZodObject<{
2110
+ signals: z.ZodBoolean;
2111
+ context: z.ZodBoolean;
2112
+ }, "strip", z.ZodTypeAny, {
2113
+ context: boolean;
2114
+ signals: boolean;
2115
+ }, {
2116
+ context: boolean;
2117
+ signals: boolean;
2118
+ }>>;
2119
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
2120
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
1352
2121
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1353
2122
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1354
2123
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
@@ -1375,6 +2144,94 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1375
2144
  on_stale?: "fail" | "skip" | "degrade" | undefined;
1376
2145
  }>, "many">>;
1377
2146
  blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2147
+ outputs: z.ZodOptional<z.ZodObject<{
2148
+ signals: z.ZodBoolean;
2149
+ context: z.ZodBoolean;
2150
+ }, "strip", z.ZodTypeAny, {
2151
+ context: boolean;
2152
+ signals: boolean;
2153
+ }, {
2154
+ context: boolean;
2155
+ signals: boolean;
2156
+ }>>;
2157
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
2158
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
2159
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2160
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2161
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
2162
+ name: z.ZodString;
2163
+ type: z.ZodString;
2164
+ interval: z.ZodOptional<z.ZodString>;
2165
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
2166
+ scanner: z.ZodString;
2167
+ required: z.ZodOptional<z.ZodBoolean>;
2168
+ max_age: z.ZodOptional<z.ZodString>;
2169
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
2170
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
2171
+ }, "strip", z.ZodTypeAny, {
2172
+ scanner: string;
2173
+ required?: boolean | undefined;
2174
+ max_age?: string | undefined;
2175
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
2176
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
2177
+ }, {
2178
+ scanner: string;
2179
+ required?: boolean | undefined;
2180
+ max_age?: string | undefined;
2181
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
2182
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
2183
+ }>, "many">>;
2184
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2185
+ outputs: z.ZodOptional<z.ZodObject<{
2186
+ signals: z.ZodBoolean;
2187
+ context: z.ZodBoolean;
2188
+ }, "strip", z.ZodTypeAny, {
2189
+ context: boolean;
2190
+ signals: boolean;
2191
+ }, {
2192
+ context: boolean;
2193
+ signals: boolean;
2194
+ }>>;
2195
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
2196
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
2197
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2198
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2199
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2200
+ name: z.ZodString;
2201
+ type: z.ZodString;
2202
+ interval: z.ZodOptional<z.ZodString>;
2203
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
2204
+ scanner: z.ZodString;
2205
+ required: z.ZodOptional<z.ZodBoolean>;
2206
+ max_age: z.ZodOptional<z.ZodString>;
2207
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
2208
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
2209
+ }, "strip", z.ZodTypeAny, {
2210
+ scanner: string;
2211
+ required?: boolean | undefined;
2212
+ max_age?: string | undefined;
2213
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
2214
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
2215
+ }, {
2216
+ scanner: string;
2217
+ required?: boolean | undefined;
2218
+ max_age?: string | undefined;
2219
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
2220
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
2221
+ }>, "many">>;
2222
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2223
+ outputs: z.ZodOptional<z.ZodObject<{
2224
+ signals: z.ZodBoolean;
2225
+ context: z.ZodBoolean;
2226
+ }, "strip", z.ZodTypeAny, {
2227
+ context: boolean;
2228
+ signals: boolean;
2229
+ }, {
2230
+ context: boolean;
2231
+ signals: boolean;
2232
+ }>>;
2233
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
2234
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
1378
2235
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1379
2236
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1380
2237
  }, z.ZodTypeAny, "passthrough">>, "many">>;
@@ -1523,22 +2380,110 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1523
2380
  /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
1524
2381
  dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1525
2382
  sm_flip: z.ZodOptional<z.ZodUnknown>;
2383
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
2384
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
2385
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
2386
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
2387
+ }, "strip", z.ZodTypeAny, {
2388
+ ensure_execution_as_taker?: boolean | undefined;
2389
+ execution_timeout_seconds?: number | undefined;
2390
+ }, {
2391
+ ensure_execution_as_taker?: boolean | undefined;
2392
+ execution_timeout_seconds?: number | undefined;
2393
+ }>>;
1526
2394
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1527
2395
  engine: z.ZodOptional<z.ZodString>;
1528
2396
  interval_seconds: z.ZodOptional<z.ZodNumber>;
1529
2397
  /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
1530
2398
  dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1531
2399
  sm_flip: z.ZodOptional<z.ZodUnknown>;
2400
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
2401
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
2402
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
2403
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
2404
+ }, "strip", z.ZodTypeAny, {
2405
+ ensure_execution_as_taker?: boolean | undefined;
2406
+ execution_timeout_seconds?: number | undefined;
2407
+ }, {
2408
+ ensure_execution_as_taker?: boolean | undefined;
2409
+ execution_timeout_seconds?: number | undefined;
2410
+ }>>;
1532
2411
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1533
2412
  engine: z.ZodOptional<z.ZodString>;
1534
2413
  interval_seconds: z.ZodOptional<z.ZodNumber>;
1535
2414
  /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
1536
2415
  dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1537
2416
  sm_flip: z.ZodOptional<z.ZodUnknown>;
2417
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
2418
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
2419
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
2420
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
2421
+ }, "strip", z.ZodTypeAny, {
2422
+ ensure_execution_as_taker?: boolean | undefined;
2423
+ execution_timeout_seconds?: number | undefined;
2424
+ }, {
2425
+ ensure_execution_as_taker?: boolean | undefined;
2426
+ execution_timeout_seconds?: number | undefined;
2427
+ }>>;
1538
2428
  }, z.ZodTypeAny, "passthrough">>>;
1539
2429
  health: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1540
2430
  hooks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
1541
2431
  notifications: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2432
+ risk: z.ZodOptional<z.ZodObject<{
2433
+ data_retention_hours: z.ZodOptional<z.ZodNumber>;
2434
+ guard_rails: z.ZodOptional<z.ZodObject<{
2435
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
2436
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
2437
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
2438
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
2439
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2440
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
2441
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
2442
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2443
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2444
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
2445
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
2446
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
2447
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
2448
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2449
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
2450
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
2451
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2452
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2453
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
2454
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
2455
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
2456
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
2457
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2458
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
2459
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
2460
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2461
+ }, z.ZodTypeAny, "passthrough">>>;
2462
+ }, "strip", z.ZodTypeAny, {
2463
+ data_retention_hours?: number | undefined;
2464
+ guard_rails?: z.objectOutputType<{
2465
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
2466
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
2467
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
2468
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
2469
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2470
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
2471
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
2472
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2473
+ }, z.ZodTypeAny, "passthrough"> | undefined;
2474
+ }, {
2475
+ data_retention_hours?: number | undefined;
2476
+ guard_rails?: z.objectInputType<{
2477
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
2478
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
2479
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
2480
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
2481
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2482
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
2483
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
2484
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2485
+ }, z.ZodTypeAny, "passthrough"> | undefined;
2486
+ }>>;
1542
2487
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1543
2488
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1544
2489
  name: z.ZodString;
@@ -1546,9 +2491,9 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1546
2491
  description: z.ZodOptional<z.ZodString>;
1547
2492
  strategy: z.ZodObject<{
1548
2493
  wallet: z.ZodString;
1549
- budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1550
2494
  slots: z.ZodOptional<z.ZodNumber>;
1551
2495
  margin_per_slot: z.ZodOptional<z.ZodNumber>;
2496
+ margin_pct: z.ZodOptional<z.ZodNumber>;
1552
2497
  trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
1553
2498
  default_leverage: z.ZodOptional<z.ZodNumber>;
1554
2499
  leverage_multipliers: z.ZodOptional<z.ZodObject<{
@@ -1567,9 +2512,9 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1567
2512
  enabled: z.ZodOptional<z.ZodBoolean>;
1568
2513
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1569
2514
  wallet: z.ZodString;
1570
- budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1571
2515
  slots: z.ZodOptional<z.ZodNumber>;
1572
2516
  margin_per_slot: z.ZodOptional<z.ZodNumber>;
2517
+ margin_pct: z.ZodOptional<z.ZodNumber>;
1573
2518
  trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
1574
2519
  default_leverage: z.ZodOptional<z.ZodNumber>;
1575
2520
  leverage_multipliers: z.ZodOptional<z.ZodObject<{
@@ -1588,9 +2533,9 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1588
2533
  enabled: z.ZodOptional<z.ZodBoolean>;
1589
2534
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1590
2535
  wallet: z.ZodString;
1591
- budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1592
2536
  slots: z.ZodOptional<z.ZodNumber>;
1593
2537
  margin_per_slot: z.ZodOptional<z.ZodNumber>;
2538
+ margin_pct: z.ZodOptional<z.ZodNumber>;
1594
2539
  trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
1595
2540
  default_leverage: z.ZodOptional<z.ZodNumber>;
1596
2541
  leverage_multipliers: z.ZodOptional<z.ZodObject<{
@@ -1608,7 +2553,7 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1608
2553
  }>>;
1609
2554
  enabled: z.ZodOptional<z.ZodBoolean>;
1610
2555
  }, z.ZodTypeAny, "passthrough">>;
1611
- scanners: z.ZodOptional<z.ZodArray<z.ZodObject<{
2556
+ scanners: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
1612
2557
  name: z.ZodString;
1613
2558
  type: z.ZodString;
1614
2559
  interval: z.ZodOptional<z.ZodString>;
@@ -1632,6 +2577,18 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1632
2577
  on_stale?: "fail" | "skip" | "degrade" | undefined;
1633
2578
  }>, "many">>;
1634
2579
  blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2580
+ outputs: z.ZodOptional<z.ZodObject<{
2581
+ signals: z.ZodBoolean;
2582
+ context: z.ZodBoolean;
2583
+ }, "strip", z.ZodTypeAny, {
2584
+ context: boolean;
2585
+ signals: boolean;
2586
+ }, {
2587
+ context: boolean;
2588
+ signals: boolean;
2589
+ }>>;
2590
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
2591
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
1635
2592
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1636
2593
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1637
2594
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
@@ -1658,6 +2615,94 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1658
2615
  on_stale?: "fail" | "skip" | "degrade" | undefined;
1659
2616
  }>, "many">>;
1660
2617
  blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2618
+ outputs: z.ZodOptional<z.ZodObject<{
2619
+ signals: z.ZodBoolean;
2620
+ context: z.ZodBoolean;
2621
+ }, "strip", z.ZodTypeAny, {
2622
+ context: boolean;
2623
+ signals: boolean;
2624
+ }, {
2625
+ context: boolean;
2626
+ signals: boolean;
2627
+ }>>;
2628
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
2629
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
2630
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2631
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2632
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2633
+ name: z.ZodString;
2634
+ type: z.ZodString;
2635
+ interval: z.ZodOptional<z.ZodString>;
2636
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
2637
+ scanner: z.ZodString;
2638
+ required: z.ZodOptional<z.ZodBoolean>;
2639
+ max_age: z.ZodOptional<z.ZodString>;
2640
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
2641
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
2642
+ }, "strip", z.ZodTypeAny, {
2643
+ scanner: string;
2644
+ required?: boolean | undefined;
2645
+ max_age?: string | undefined;
2646
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
2647
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
2648
+ }, {
2649
+ scanner: string;
2650
+ required?: boolean | undefined;
2651
+ max_age?: string | undefined;
2652
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
2653
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
2654
+ }>, "many">>;
2655
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2656
+ outputs: z.ZodOptional<z.ZodObject<{
2657
+ signals: z.ZodBoolean;
2658
+ context: z.ZodBoolean;
2659
+ }, "strip", z.ZodTypeAny, {
2660
+ context: boolean;
2661
+ signals: boolean;
2662
+ }, {
2663
+ context: boolean;
2664
+ signals: boolean;
2665
+ }>>;
2666
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
2667
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
2668
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2669
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2670
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
2671
+ name: z.ZodString;
2672
+ type: z.ZodString;
2673
+ interval: z.ZodOptional<z.ZodString>;
2674
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
2675
+ scanner: z.ZodString;
2676
+ required: z.ZodOptional<z.ZodBoolean>;
2677
+ max_age: z.ZodOptional<z.ZodString>;
2678
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
2679
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
2680
+ }, "strip", z.ZodTypeAny, {
2681
+ scanner: string;
2682
+ required?: boolean | undefined;
2683
+ max_age?: string | undefined;
2684
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
2685
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
2686
+ }, {
2687
+ scanner: string;
2688
+ required?: boolean | undefined;
2689
+ max_age?: string | undefined;
2690
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
2691
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
2692
+ }>, "many">>;
2693
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2694
+ outputs: z.ZodOptional<z.ZodObject<{
2695
+ signals: z.ZodBoolean;
2696
+ context: z.ZodBoolean;
2697
+ }, "strip", z.ZodTypeAny, {
2698
+ context: boolean;
2699
+ signals: boolean;
2700
+ }, {
2701
+ context: boolean;
2702
+ signals: boolean;
2703
+ }>>;
2704
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
2705
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
1661
2706
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1662
2707
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1663
2708
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
@@ -1684,6 +2729,18 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1684
2729
  on_stale?: "fail" | "skip" | "degrade" | undefined;
1685
2730
  }>, "many">>;
1686
2731
  blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2732
+ outputs: z.ZodOptional<z.ZodObject<{
2733
+ signals: z.ZodBoolean;
2734
+ context: z.ZodBoolean;
2735
+ }, "strip", z.ZodTypeAny, {
2736
+ context: boolean;
2737
+ signals: boolean;
2738
+ }, {
2739
+ context: boolean;
2740
+ signals: boolean;
2741
+ }>>;
2742
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
2743
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
1687
2744
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1688
2745
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1689
2746
  }, z.ZodTypeAny, "passthrough">>, "many">>;
@@ -1832,22 +2889,110 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
1832
2889
  /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
1833
2890
  dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1834
2891
  sm_flip: z.ZodOptional<z.ZodUnknown>;
2892
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
2893
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
2894
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
2895
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
2896
+ }, "strip", z.ZodTypeAny, {
2897
+ ensure_execution_as_taker?: boolean | undefined;
2898
+ execution_timeout_seconds?: number | undefined;
2899
+ }, {
2900
+ ensure_execution_as_taker?: boolean | undefined;
2901
+ execution_timeout_seconds?: number | undefined;
2902
+ }>>;
1835
2903
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1836
2904
  engine: z.ZodOptional<z.ZodString>;
1837
2905
  interval_seconds: z.ZodOptional<z.ZodNumber>;
1838
2906
  /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
1839
2907
  dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1840
2908
  sm_flip: z.ZodOptional<z.ZodUnknown>;
2909
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
2910
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
2911
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
2912
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
2913
+ }, "strip", z.ZodTypeAny, {
2914
+ ensure_execution_as_taker?: boolean | undefined;
2915
+ execution_timeout_seconds?: number | undefined;
2916
+ }, {
2917
+ ensure_execution_as_taker?: boolean | undefined;
2918
+ execution_timeout_seconds?: number | undefined;
2919
+ }>>;
1841
2920
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1842
2921
  engine: z.ZodOptional<z.ZodString>;
1843
2922
  interval_seconds: z.ZodOptional<z.ZodNumber>;
1844
2923
  /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
1845
2924
  dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1846
2925
  sm_flip: z.ZodOptional<z.ZodUnknown>;
2926
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
2927
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
2928
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
2929
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
2930
+ }, "strip", z.ZodTypeAny, {
2931
+ ensure_execution_as_taker?: boolean | undefined;
2932
+ execution_timeout_seconds?: number | undefined;
2933
+ }, {
2934
+ ensure_execution_as_taker?: boolean | undefined;
2935
+ execution_timeout_seconds?: number | undefined;
2936
+ }>>;
1847
2937
  }, z.ZodTypeAny, "passthrough">>>;
1848
2938
  health: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1849
2939
  hooks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
1850
2940
  notifications: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2941
+ risk: z.ZodOptional<z.ZodObject<{
2942
+ data_retention_hours: z.ZodOptional<z.ZodNumber>;
2943
+ guard_rails: z.ZodOptional<z.ZodObject<{
2944
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
2945
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
2946
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
2947
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
2948
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2949
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
2950
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
2951
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2952
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2953
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
2954
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
2955
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
2956
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
2957
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2958
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
2959
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
2960
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2961
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2962
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
2963
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
2964
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
2965
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
2966
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2967
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
2968
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
2969
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2970
+ }, z.ZodTypeAny, "passthrough">>>;
2971
+ }, "strip", z.ZodTypeAny, {
2972
+ data_retention_hours?: number | undefined;
2973
+ guard_rails?: z.objectOutputType<{
2974
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
2975
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
2976
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
2977
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
2978
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2979
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
2980
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
2981
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2982
+ }, z.ZodTypeAny, "passthrough"> | undefined;
2983
+ }, {
2984
+ data_retention_hours?: number | undefined;
2985
+ guard_rails?: z.objectInputType<{
2986
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
2987
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
2988
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
2989
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
2990
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2991
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
2992
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
2993
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
2994
+ }, z.ZodTypeAny, "passthrough"> | undefined;
2995
+ }>>;
1851
2996
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1852
2997
  }, z.ZodTypeAny, "passthrough">>;
1853
2998
  export type RuntimeConfig = z.infer<typeof runtimeConfigSchema>;