@senpi/runtime 1.0.95-dev.20260408174401

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 (755) hide show
  1. package/README.md +155 -0
  2. package/dist/actions/close-position/close-position.action.d.ts +16 -0
  3. package/dist/actions/close-position/close-position.action.d.ts.map +1 -0
  4. package/dist/actions/close-position/close-position.action.js +220 -0
  5. package/dist/actions/close-position/close-position.action.js.map +1 -0
  6. package/dist/actions/decision-engine.d.ts +32 -0
  7. package/dist/actions/decision-engine.d.ts.map +1 -0
  8. package/dist/actions/decision-engine.js +103 -0
  9. package/dist/actions/decision-engine.js.map +1 -0
  10. package/dist/actions/llm-decision/anthropic-llm-decision.d.ts +12 -0
  11. package/dist/actions/llm-decision/anthropic-llm-decision.d.ts.map +1 -0
  12. package/dist/actions/llm-decision/anthropic-llm-decision.js +74 -0
  13. package/dist/actions/llm-decision/anthropic-llm-decision.js.map +1 -0
  14. package/dist/actions/llm-decision/factory.d.ts +17 -0
  15. package/dist/actions/llm-decision/factory.d.ts.map +1 -0
  16. package/dist/actions/llm-decision/factory.js +29 -0
  17. package/dist/actions/llm-decision/factory.js.map +1 -0
  18. package/dist/actions/llm-decision/index.d.ts +8 -0
  19. package/dist/actions/llm-decision/index.d.ts.map +1 -0
  20. package/dist/actions/llm-decision/index.js +5 -0
  21. package/dist/actions/llm-decision/index.js.map +1 -0
  22. package/dist/actions/llm-decision/openclaw-llm-decision.d.ts +14 -0
  23. package/dist/actions/llm-decision/openclaw-llm-decision.d.ts.map +1 -0
  24. package/dist/actions/llm-decision/openclaw-llm-decision.js +58 -0
  25. package/dist/actions/llm-decision/openclaw-llm-decision.js.map +1 -0
  26. package/dist/actions/llm-decision/shared.d.ts +41 -0
  27. package/dist/actions/llm-decision/shared.d.ts.map +1 -0
  28. package/dist/actions/llm-decision/shared.js +117 -0
  29. package/dist/actions/llm-decision/shared.js.map +1 -0
  30. package/dist/actions/open-position/open-position.action.d.ts +16 -0
  31. package/dist/actions/open-position/open-position.action.d.ts.map +1 -0
  32. package/dist/actions/open-position/open-position.action.js +278 -0
  33. package/dist/actions/open-position/open-position.action.js.map +1 -0
  34. package/dist/actions/position-tracker/position-tracker.action.d.ts +14 -0
  35. package/dist/actions/position-tracker/position-tracker.action.d.ts.map +1 -0
  36. package/dist/actions/position-tracker/position-tracker.action.js +201 -0
  37. package/dist/actions/position-tracker/position-tracker.action.js.map +1 -0
  38. package/dist/actions/types.d.ts +123 -0
  39. package/dist/actions/types.d.ts.map +1 -0
  40. package/dist/actions/types.js +3 -0
  41. package/dist/actions/types.js.map +1 -0
  42. package/dist/cli/guide-commands.d.ts +27 -0
  43. package/dist/cli/guide-commands.d.ts.map +1 -0
  44. package/dist/cli/guide-commands.js +481 -0
  45. package/dist/cli/guide-commands.js.map +1 -0
  46. package/dist/cli/senpi-cli-config.d.ts +33 -0
  47. package/dist/cli/senpi-cli-config.d.ts.map +1 -0
  48. package/dist/cli/senpi-cli-config.js +130 -0
  49. package/dist/cli/senpi-cli-config.js.map +1 -0
  50. package/dist/cli/senpi-commands.d.ts +21 -0
  51. package/dist/cli/senpi-commands.d.ts.map +1 -0
  52. package/dist/cli/senpi-commands.js +471 -0
  53. package/dist/cli/senpi-commands.js.map +1 -0
  54. package/dist/cli/senpi-config-commands.d.ts +11 -0
  55. package/dist/cli/senpi-config-commands.d.ts.map +1 -0
  56. package/dist/cli/senpi-config-commands.js +113 -0
  57. package/dist/cli/senpi-config-commands.js.map +1 -0
  58. package/dist/constants/dsl/index.d.ts +62 -0
  59. package/dist/constants/dsl/index.d.ts.map +1 -0
  60. package/dist/constants/dsl/index.js +62 -0
  61. package/dist/constants/dsl/index.js.map +1 -0
  62. package/dist/context/context-builder.d.ts +14 -0
  63. package/dist/context/context-builder.d.ts.map +1 -0
  64. package/dist/context/context-builder.js +38 -0
  65. package/dist/context/context-builder.js.map +1 -0
  66. package/dist/context/index.d.ts +5 -0
  67. package/dist/context/index.d.ts.map +1 -0
  68. package/dist/context/index.js +5 -0
  69. package/dist/context/index.js.map +1 -0
  70. package/dist/context/interpolate.d.ts +6 -0
  71. package/dist/context/interpolate.d.ts.map +1 -0
  72. package/dist/context/interpolate.js +15 -0
  73. package/dist/context/interpolate.js.map +1 -0
  74. package/dist/context/providers/asset-trend.provider.d.ts +42 -0
  75. package/dist/context/providers/asset-trend.provider.d.ts.map +1 -0
  76. package/dist/context/providers/asset-trend.provider.js +90 -0
  77. package/dist/context/providers/asset-trend.provider.js.map +1 -0
  78. package/dist/context/providers/index.d.ts +5 -0
  79. package/dist/context/providers/index.d.ts.map +1 -0
  80. package/dist/context/providers/index.js +5 -0
  81. package/dist/context/providers/index.js.map +1 -0
  82. package/dist/context/providers/scanner-context.provider.d.ts +10 -0
  83. package/dist/context/providers/scanner-context.provider.d.ts.map +1 -0
  84. package/dist/context/providers/scanner-context.provider.js +20 -0
  85. package/dist/context/providers/scanner-context.provider.js.map +1 -0
  86. package/dist/context/providers/signal.provider.d.ts +11 -0
  87. package/dist/context/providers/signal.provider.d.ts.map +1 -0
  88. package/dist/context/providers/signal.provider.js +30 -0
  89. package/dist/context/providers/signal.provider.js.map +1 -0
  90. package/dist/context/providers/strategy.provider.d.ts +14 -0
  91. package/dist/context/providers/strategy.provider.d.ts.map +1 -0
  92. package/dist/context/providers/strategy.provider.js +71 -0
  93. package/dist/context/providers/strategy.provider.js.map +1 -0
  94. package/dist/context/types.d.ts +45 -0
  95. package/dist/context/types.d.ts.map +1 -0
  96. package/dist/context/types.js +18 -0
  97. package/dist/context/types.js.map +1 -0
  98. package/dist/debug.d.ts +2 -0
  99. package/dist/debug.d.ts.map +1 -0
  100. package/dist/debug.js +591 -0
  101. package/dist/debug.js.map +1 -0
  102. package/dist/dsl/config/exit-block.d.ts +11 -0
  103. package/dist/dsl/config/exit-block.d.ts.map +1 -0
  104. package/dist/dsl/config/exit-block.js +5 -0
  105. package/dist/dsl/config/exit-block.js.map +1 -0
  106. package/dist/dsl/config/index.d.ts +8 -0
  107. package/dist/dsl/config/index.d.ts.map +1 -0
  108. package/dist/dsl/config/index.js +6 -0
  109. package/dist/dsl/config/index.js.map +1 -0
  110. package/dist/dsl/config/parse-phase.d.ts +14 -0
  111. package/dist/dsl/config/parse-phase.d.ts.map +1 -0
  112. package/dist/dsl/config/parse-phase.js +78 -0
  113. package/dist/dsl/config/parse-phase.js.map +1 -0
  114. package/dist/dsl/config/parse-plugin-config.d.ts +8 -0
  115. package/dist/dsl/config/parse-plugin-config.d.ts.map +1 -0
  116. package/dist/dsl/config/parse-plugin-config.js +27 -0
  117. package/dist/dsl/config/parse-plugin-config.js.map +1 -0
  118. package/dist/dsl/config/parse-preset.d.ts +7 -0
  119. package/dist/dsl/config/parse-preset.d.ts.map +1 -0
  120. package/dist/dsl/config/parse-preset.js +99 -0
  121. package/dist/dsl/config/parse-preset.js.map +1 -0
  122. package/dist/dsl/config/parse-tiers.d.ts +7 -0
  123. package/dist/dsl/config/parse-tiers.d.ts.map +1 -0
  124. package/dist/dsl/config/parse-tiers.js +31 -0
  125. package/dist/dsl/config/parse-tiers.js.map +1 -0
  126. package/dist/dsl/config/parse-timeouts.d.ts +16 -0
  127. package/dist/dsl/config/parse-timeouts.d.ts.map +1 -0
  128. package/dist/dsl/config/parse-timeouts.js +75 -0
  129. package/dist/dsl/config/parse-timeouts.js.map +1 -0
  130. package/dist/dsl/config/raw-types.d.ts +45 -0
  131. package/dist/dsl/config/raw-types.d.ts.map +1 -0
  132. package/dist/dsl/config/raw-types.js +5 -0
  133. package/dist/dsl/config/raw-types.js.map +1 -0
  134. package/dist/dsl/config/unknown-keys.d.ts +7 -0
  135. package/dist/dsl/config/unknown-keys.d.ts.map +1 -0
  136. package/dist/dsl/config/unknown-keys.js +119 -0
  137. package/dist/dsl/config/unknown-keys.js.map +1 -0
  138. package/dist/dsl/config/validation.d.ts +21 -0
  139. package/dist/dsl/config/validation.d.ts.map +1 -0
  140. package/dist/dsl/config/validation.js +45 -0
  141. package/dist/dsl/config/validation.js.map +1 -0
  142. package/dist/dsl/constants/index.d.ts +3 -0
  143. package/dist/dsl/constants/index.d.ts.map +1 -0
  144. package/dist/dsl/constants/index.js +3 -0
  145. package/dist/dsl/constants/index.js.map +1 -0
  146. package/dist/dsl/engine/exchange-stop.d.ts +16 -0
  147. package/dist/dsl/engine/exchange-stop.d.ts.map +1 -0
  148. package/dist/dsl/engine/exchange-stop.js +20 -0
  149. package/dist/dsl/engine/exchange-stop.js.map +1 -0
  150. package/dist/dsl/engine/floors.d.ts +32 -0
  151. package/dist/dsl/engine/floors.d.ts.map +1 -0
  152. package/dist/dsl/engine/floors.js +115 -0
  153. package/dist/dsl/engine/floors.js.map +1 -0
  154. package/dist/dsl/engine/index.d.ts +7 -0
  155. package/dist/dsl/engine/index.d.ts.map +1 -0
  156. package/dist/dsl/engine/index.js +7 -0
  157. package/dist/dsl/engine/index.js.map +1 -0
  158. package/dist/dsl/engine/round.d.ts +5 -0
  159. package/dist/dsl/engine/round.d.ts.map +1 -0
  160. package/dist/dsl/engine/round.js +9 -0
  161. package/dist/dsl/engine/round.js.map +1 -0
  162. package/dist/dsl/engine/state-updates.d.ts +8 -0
  163. package/dist/dsl/engine/state-updates.d.ts.map +1 -0
  164. package/dist/dsl/engine/state-updates.js +60 -0
  165. package/dist/dsl/engine/state-updates.js.map +1 -0
  166. package/dist/dsl/engine/tick.d.ts +6 -0
  167. package/dist/dsl/engine/tick.d.ts.map +1 -0
  168. package/dist/dsl/engine/tick.js +174 -0
  169. package/dist/dsl/engine/tick.js.map +1 -0
  170. package/dist/dsl/events/bus-types.d.ts +7 -0
  171. package/dist/dsl/events/bus-types.d.ts.map +1 -0
  172. package/dist/dsl/events/bus-types.js +6 -0
  173. package/dist/dsl/events/bus-types.js.map +1 -0
  174. package/dist/dsl/events/guards.d.ts +17 -0
  175. package/dist/dsl/events/guards.d.ts.map +1 -0
  176. package/dist/dsl/events/guards.js +116 -0
  177. package/dist/dsl/events/guards.js.map +1 -0
  178. package/dist/dsl/events/handlers.d.ts +19 -0
  179. package/dist/dsl/events/handlers.d.ts.map +1 -0
  180. package/dist/dsl/events/handlers.js +387 -0
  181. package/dist/dsl/events/handlers.js.map +1 -0
  182. package/dist/dsl/events/index.d.ts +4 -0
  183. package/dist/dsl/events/index.d.ts.map +1 -0
  184. package/dist/dsl/events/index.js +4 -0
  185. package/dist/dsl/events/index.js.map +1 -0
  186. package/dist/dsl/events/initial-state.d.ts +7 -0
  187. package/dist/dsl/events/initial-state.d.ts.map +1 -0
  188. package/dist/dsl/events/initial-state.js +96 -0
  189. package/dist/dsl/events/initial-state.js.map +1 -0
  190. package/dist/dsl/events/normalize-position-opened.d.ts +10 -0
  191. package/dist/dsl/events/normalize-position-opened.d.ts.map +1 -0
  192. package/dist/dsl/events/normalize-position-opened.js +13 -0
  193. package/dist/dsl/events/normalize-position-opened.js.map +1 -0
  194. package/dist/dsl/index.d.ts +13 -0
  195. package/dist/dsl/index.d.ts.map +1 -0
  196. package/dist/dsl/index.js +37 -0
  197. package/dist/dsl/index.js.map +1 -0
  198. package/dist/dsl/monitor/create-monitor.d.ts +24 -0
  199. package/dist/dsl/monitor/create-monitor.d.ts.map +1 -0
  200. package/dist/dsl/monitor/create-monitor.js +162 -0
  201. package/dist/dsl/monitor/create-monitor.js.map +1 -0
  202. package/dist/dsl/monitor/effective-dex.d.ts +7 -0
  203. package/dist/dsl/monitor/effective-dex.d.ts.map +1 -0
  204. package/dist/dsl/monitor/effective-dex.js +11 -0
  205. package/dist/dsl/monitor/effective-dex.js.map +1 -0
  206. package/dist/dsl/monitor/exchange-sync.d.ts +16 -0
  207. package/dist/dsl/monitor/exchange-sync.d.ts.map +1 -0
  208. package/dist/dsl/monitor/exchange-sync.js +37 -0
  209. package/dist/dsl/monitor/exchange-sync.js.map +1 -0
  210. package/dist/dsl/monitor/index.d.ts +6 -0
  211. package/dist/dsl/monitor/index.d.ts.map +1 -0
  212. package/dist/dsl/monitor/index.js +5 -0
  213. package/dist/dsl/monitor/index.js.map +1 -0
  214. package/dist/dsl/monitor/market-price.d.ts +5 -0
  215. package/dist/dsl/monitor/market-price.d.ts.map +1 -0
  216. package/dist/dsl/monitor/market-price.js +24 -0
  217. package/dist/dsl/monitor/market-price.js.map +1 -0
  218. package/dist/dsl/monitor/process-one-position.d.ts +19 -0
  219. package/dist/dsl/monitor/process-one-position.d.ts.map +1 -0
  220. package/dist/dsl/monitor/process-one-position.js +438 -0
  221. package/dist/dsl/monitor/process-one-position.js.map +1 -0
  222. package/dist/dsl/notifications/formatter.d.ts +18 -0
  223. package/dist/dsl/notifications/formatter.d.ts.map +1 -0
  224. package/dist/dsl/notifications/formatter.js +69 -0
  225. package/dist/dsl/notifications/formatter.js.map +1 -0
  226. package/dist/dsl/notifications/index.d.ts +19 -0
  227. package/dist/dsl/notifications/index.d.ts.map +1 -0
  228. package/dist/dsl/notifications/index.js +90 -0
  229. package/dist/dsl/notifications/index.js.map +1 -0
  230. package/dist/dsl/plugin/index.d.ts +66 -0
  231. package/dist/dsl/plugin/index.d.ts.map +1 -0
  232. package/dist/dsl/plugin/index.js +398 -0
  233. package/dist/dsl/plugin/index.js.map +1 -0
  234. package/dist/dsl/plugin/options.d.ts +40 -0
  235. package/dist/dsl/plugin/options.d.ts.map +1 -0
  236. package/dist/dsl/plugin/options.js +5 -0
  237. package/dist/dsl/plugin/options.js.map +1 -0
  238. package/dist/dsl/types/index.d.ts +3 -0
  239. package/dist/dsl/types/index.d.ts.map +1 -0
  240. package/dist/dsl/types/index.js +3 -0
  241. package/dist/dsl/types/index.js.map +1 -0
  242. package/dist/health/index.d.ts +29 -0
  243. package/dist/health/index.d.ts.map +1 -0
  244. package/dist/health/index.js +191 -0
  245. package/dist/health/index.js.map +1 -0
  246. package/dist/health/types.d.ts +114 -0
  247. package/dist/health/types.d.ts.map +1 -0
  248. package/dist/health/types.js +2 -0
  249. package/dist/health/types.js.map +1 -0
  250. package/dist/index.d.ts +102 -0
  251. package/dist/index.d.ts.map +1 -0
  252. package/dist/index.js +772 -0
  253. package/dist/index.js.map +1 -0
  254. package/dist/leverage/max-leverage-cache.d.ts +10 -0
  255. package/dist/leverage/max-leverage-cache.d.ts.map +1 -0
  256. package/dist/leverage/max-leverage-cache.js +51 -0
  257. package/dist/leverage/max-leverage-cache.js.map +1 -0
  258. package/dist/leverage/resolve-leverage.d.ts +9 -0
  259. package/dist/leverage/resolve-leverage.d.ts.map +1 -0
  260. package/dist/leverage/resolve-leverage.js +15 -0
  261. package/dist/leverage/resolve-leverage.js.map +1 -0
  262. package/dist/risk/index.d.ts +9 -0
  263. package/dist/risk/index.d.ts.map +1 -0
  264. package/dist/risk/index.js +9 -0
  265. package/dist/risk/index.js.map +1 -0
  266. package/dist/runtime/action-registry.d.ts +12 -0
  267. package/dist/runtime/action-registry.d.ts.map +1 -0
  268. package/dist/runtime/action-registry.js +22 -0
  269. package/dist/runtime/action-registry.js.map +1 -0
  270. package/dist/runtime/auto-update/command-runner.d.ts +20 -0
  271. package/dist/runtime/auto-update/command-runner.d.ts.map +1 -0
  272. package/dist/runtime/auto-update/command-runner.js +54 -0
  273. package/dist/runtime/auto-update/command-runner.js.map +1 -0
  274. package/dist/runtime/auto-update/coordinator.d.ts +90 -0
  275. package/dist/runtime/auto-update/coordinator.d.ts.map +1 -0
  276. package/dist/runtime/auto-update/coordinator.js +336 -0
  277. package/dist/runtime/auto-update/coordinator.js.map +1 -0
  278. package/dist/runtime/auto-update/gateway-restart.d.ts +49 -0
  279. package/dist/runtime/auto-update/gateway-restart.d.ts.map +1 -0
  280. package/dist/runtime/auto-update/gateway-restart.js +105 -0
  281. package/dist/runtime/auto-update/gateway-restart.js.map +1 -0
  282. package/dist/runtime/auto-update/policy.d.ts +24 -0
  283. package/dist/runtime/auto-update/policy.d.ts.map +1 -0
  284. package/dist/runtime/auto-update/policy.js +42 -0
  285. package/dist/runtime/auto-update/policy.js.map +1 -0
  286. package/dist/runtime/auto-update/preflight.d.ts +16 -0
  287. package/dist/runtime/auto-update/preflight.d.ts.map +1 -0
  288. package/dist/runtime/auto-update/preflight.js +20 -0
  289. package/dist/runtime/auto-update/preflight.js.map +1 -0
  290. package/dist/runtime/auto-update/state-store.d.ts +29 -0
  291. package/dist/runtime/auto-update/state-store.d.ts.map +1 -0
  292. package/dist/runtime/auto-update/state-store.js +51 -0
  293. package/dist/runtime/auto-update/state-store.js.map +1 -0
  294. package/dist/runtime/auto-update/types.d.ts +105 -0
  295. package/dist/runtime/auto-update/types.d.ts.map +1 -0
  296. package/dist/runtime/auto-update/types.js +56 -0
  297. package/dist/runtime/auto-update/types.js.map +1 -0
  298. package/dist/runtime/auto-update/version-source.d.ts +23 -0
  299. package/dist/runtime/auto-update/version-source.d.ts.map +1 -0
  300. package/dist/runtime/auto-update/version-source.js +25 -0
  301. package/dist/runtime/auto-update/version-source.js.map +1 -0
  302. package/dist/runtime/build-action-scan-payload.d.ts +20 -0
  303. package/dist/runtime/build-action-scan-payload.d.ts.map +1 -0
  304. package/dist/runtime/build-action-scan-payload.js +36 -0
  305. package/dist/runtime/build-action-scan-payload.js.map +1 -0
  306. package/dist/runtime/bus.d.ts +6 -0
  307. package/dist/runtime/bus.d.ts.map +1 -0
  308. package/dist/runtime/bus.js +22 -0
  309. package/dist/runtime/bus.js.map +1 -0
  310. package/dist/runtime/create-action-context.d.ts +34 -0
  311. package/dist/runtime/create-action-context.d.ts.map +1 -0
  312. package/dist/runtime/create-action-context.js +22 -0
  313. package/dist/runtime/create-action-context.js.map +1 -0
  314. package/dist/runtime/create-actions.d.ts +30 -0
  315. package/dist/runtime/create-actions.d.ts.map +1 -0
  316. package/dist/runtime/create-actions.js +70 -0
  317. package/dist/runtime/create-actions.js.map +1 -0
  318. package/dist/runtime/create-runtime-context.d.ts +35 -0
  319. package/dist/runtime/create-runtime-context.d.ts.map +1 -0
  320. package/dist/runtime/create-runtime-context.js +35 -0
  321. package/dist/runtime/create-runtime-context.js.map +1 -0
  322. package/dist/runtime/create-scanner-module.d.ts +14 -0
  323. package/dist/runtime/create-scanner-module.d.ts.map +1 -0
  324. package/dist/runtime/create-scanner-module.js +31 -0
  325. package/dist/runtime/create-scanner-module.js.map +1 -0
  326. package/dist/runtime/create-scanner-providers-for-run.d.ts +20 -0
  327. package/dist/runtime/create-scanner-providers-for-run.d.ts.map +1 -0
  328. package/dist/runtime/create-scanner-providers-for-run.js +34 -0
  329. package/dist/runtime/create-scanner-providers-for-run.js.map +1 -0
  330. package/dist/runtime/default-state-dir.d.ts +10 -0
  331. package/dist/runtime/default-state-dir.d.ts.map +1 -0
  332. package/dist/runtime/default-state-dir.js +22 -0
  333. package/dist/runtime/default-state-dir.js.map +1 -0
  334. package/dist/runtime/env-resolve.d.ts +17 -0
  335. package/dist/runtime/env-resolve.d.ts.map +1 -0
  336. package/dist/runtime/env-resolve.js +45 -0
  337. package/dist/runtime/env-resolve.js.map +1 -0
  338. package/dist/runtime/hook-system.d.ts +7 -0
  339. package/dist/runtime/hook-system.d.ts.map +1 -0
  340. package/dist/runtime/hook-system.js +16 -0
  341. package/dist/runtime/hook-system.js.map +1 -0
  342. package/dist/runtime/index.d.ts +37 -0
  343. package/dist/runtime/index.d.ts.map +1 -0
  344. package/dist/runtime/index.js +26 -0
  345. package/dist/runtime/index.js.map +1 -0
  346. package/dist/runtime/load-runtime-config.d.ts +23 -0
  347. package/dist/runtime/load-runtime-config.d.ts.map +1 -0
  348. package/dist/runtime/load-runtime-config.js +176 -0
  349. package/dist/runtime/load-runtime-config.js.map +1 -0
  350. package/dist/runtime/map-exit-config.d.ts +11 -0
  351. package/dist/runtime/map-exit-config.d.ts.map +1 -0
  352. package/dist/runtime/map-exit-config.js +86 -0
  353. package/dist/runtime/map-exit-config.js.map +1 -0
  354. package/dist/runtime/map-strategies-registration.d.ts +14 -0
  355. package/dist/runtime/map-strategies-registration.d.ts.map +1 -0
  356. package/dist/runtime/map-strategies-registration.js +44 -0
  357. package/dist/runtime/map-strategies-registration.js.map +1 -0
  358. package/dist/runtime/map-strategies.d.ts +14 -0
  359. package/dist/runtime/map-strategies.d.ts.map +1 -0
  360. package/dist/runtime/map-strategies.js +64 -0
  361. package/dist/runtime/map-strategies.js.map +1 -0
  362. package/dist/runtime/notifications.d.ts +19 -0
  363. package/dist/runtime/notifications.d.ts.map +1 -0
  364. package/dist/runtime/notifications.js +88 -0
  365. package/dist/runtime/notifications.js.map +1 -0
  366. package/dist/runtime/parse-interval.d.ts +11 -0
  367. package/dist/runtime/parse-interval.d.ts.map +1 -0
  368. package/dist/runtime/parse-interval.js +35 -0
  369. package/dist/runtime/parse-interval.js.map +1 -0
  370. package/dist/runtime/recipe-version.d.ts +3 -0
  371. package/dist/runtime/recipe-version.d.ts.map +1 -0
  372. package/dist/runtime/recipe-version.js +3 -0
  373. package/dist/runtime/recipe-version.js.map +1 -0
  374. package/dist/runtime/reconcile-state.d.ts +37 -0
  375. package/dist/runtime/reconcile-state.d.ts.map +1 -0
  376. package/dist/runtime/reconcile-state.js +179 -0
  377. package/dist/runtime/reconcile-state.js.map +1 -0
  378. package/dist/runtime/risk-guard.d.ts +6 -0
  379. package/dist/runtime/risk-guard.d.ts.map +1 -0
  380. package/dist/runtime/risk-guard.js +14 -0
  381. package/dist/runtime/risk-guard.js.map +1 -0
  382. package/dist/runtime/run.d.ts +30 -0
  383. package/dist/runtime/run.d.ts.map +1 -0
  384. package/dist/runtime/run.js +46 -0
  385. package/dist/runtime/run.js.map +1 -0
  386. package/dist/runtime/runtime-config.d.ts +6 -0
  387. package/dist/runtime/runtime-config.d.ts.map +1 -0
  388. package/dist/runtime/runtime-config.js +5 -0
  389. package/dist/runtime/runtime-config.js.map +1 -0
  390. package/dist/runtime/runtime-schema.d.ts +1859 -0
  391. package/dist/runtime/runtime-schema.d.ts.map +1 -0
  392. package/dist/runtime/runtime-schema.js +110 -0
  393. package/dist/runtime/runtime-schema.js.map +1 -0
  394. package/dist/runtime/runtime-version.d.ts +19 -0
  395. package/dist/runtime/runtime-version.d.ts.map +1 -0
  396. package/dist/runtime/runtime-version.js +29 -0
  397. package/dist/runtime/runtime-version.js.map +1 -0
  398. package/dist/runtime/runtime.d.ts +53 -0
  399. package/dist/runtime/runtime.d.ts.map +1 -0
  400. package/dist/runtime/runtime.js +335 -0
  401. package/dist/runtime/runtime.js.map +1 -0
  402. package/dist/runtime/scanner-composition.d.ts +23 -0
  403. package/dist/runtime/scanner-composition.d.ts.map +1 -0
  404. package/dist/runtime/scanner-composition.js +168 -0
  405. package/dist/runtime/scanner-composition.js.map +1 -0
  406. package/dist/runtime/scanner-registry.d.ts +28 -0
  407. package/dist/runtime/scanner-registry.d.ts.map +1 -0
  408. package/dist/runtime/scanner-registry.js +114 -0
  409. package/dist/runtime/scanner-registry.js.map +1 -0
  410. package/dist/runtime/state-layout.d.ts +50 -0
  411. package/dist/runtime/state-layout.d.ts.map +1 -0
  412. package/dist/runtime/state-layout.js +89 -0
  413. package/dist/runtime/state-layout.js.map +1 -0
  414. package/dist/runtime/strategy-registry.d.ts +79 -0
  415. package/dist/runtime/strategy-registry.d.ts.map +1 -0
  416. package/dist/runtime/strategy-registry.js +265 -0
  417. package/dist/runtime/strategy-registry.js.map +1 -0
  418. package/dist/runtime/validate-dsl-position-tracking.d.ts +3 -0
  419. package/dist/runtime/validate-dsl-position-tracking.d.ts.map +1 -0
  420. package/dist/runtime/validate-dsl-position-tracking.js +27 -0
  421. package/dist/runtime/validate-dsl-position-tracking.js.map +1 -0
  422. package/dist/scanners/__tests__/default-engine-test-composition.d.ts +9 -0
  423. package/dist/scanners/__tests__/default-engine-test-composition.d.ts.map +1 -0
  424. package/dist/scanners/__tests__/default-engine-test-composition.js +84 -0
  425. package/dist/scanners/__tests__/default-engine-test-composition.js.map +1 -0
  426. package/dist/scanners/__tests__/fixtures/index.d.ts +3 -0
  427. package/dist/scanners/__tests__/fixtures/index.d.ts.map +1 -0
  428. package/dist/scanners/__tests__/fixtures/index.js +3 -0
  429. package/dist/scanners/__tests__/fixtures/index.js.map +1 -0
  430. package/dist/scanners/__tests__/fixtures/position-tracker-scenarios.d.ts +21 -0
  431. package/dist/scanners/__tests__/fixtures/position-tracker-scenarios.d.ts.map +1 -0
  432. package/dist/scanners/__tests__/fixtures/position-tracker-scenarios.js +199 -0
  433. package/dist/scanners/__tests__/fixtures/position-tracker-scenarios.js.map +1 -0
  434. package/dist/scanners/__tests__/fixtures/scan-results.d.ts +23 -0
  435. package/dist/scanners/__tests__/fixtures/scan-results.d.ts.map +1 -0
  436. package/dist/scanners/__tests__/fixtures/scan-results.js +128 -0
  437. package/dist/scanners/__tests__/fixtures/scan-results.js.map +1 -0
  438. package/dist/scanners/__tests__/fixtures/signals.d.ts +18 -0
  439. package/dist/scanners/__tests__/fixtures/signals.d.ts.map +1 -0
  440. package/dist/scanners/__tests__/fixtures/signals.js +84 -0
  441. package/dist/scanners/__tests__/fixtures/signals.js.map +1 -0
  442. package/dist/scanners/__tests__/test-helpers.d.ts +4 -0
  443. package/dist/scanners/__tests__/test-helpers.d.ts.map +1 -0
  444. package/dist/scanners/__tests__/test-helpers.js +23 -0
  445. package/dist/scanners/__tests__/test-helpers.js.map +1 -0
  446. package/dist/scanners/artifacts.d.ts +131 -0
  447. package/dist/scanners/artifacts.d.ts.map +1 -0
  448. package/dist/scanners/artifacts.js +72 -0
  449. package/dist/scanners/artifacts.js.map +1 -0
  450. package/dist/scanners/context-source-mapping.d.ts +4 -0
  451. package/dist/scanners/context-source-mapping.d.ts.map +1 -0
  452. package/dist/scanners/context-source-mapping.js +10 -0
  453. package/dist/scanners/context-source-mapping.js.map +1 -0
  454. package/dist/scanners/create-scanner.d.ts +13 -0
  455. package/dist/scanners/create-scanner.d.ts.map +1 -0
  456. package/dist/scanners/create-scanner.js +11 -0
  457. package/dist/scanners/create-scanner.js.map +1 -0
  458. package/dist/scanners/engine/config-validator.d.ts +7 -0
  459. package/dist/scanners/engine/config-validator.d.ts.map +1 -0
  460. package/dist/scanners/engine/config-validator.js +16 -0
  461. package/dist/scanners/engine/config-validator.js.map +1 -0
  462. package/dist/scanners/engine/data-providers.d.ts +48 -0
  463. package/dist/scanners/engine/data-providers.d.ts.map +1 -0
  464. package/dist/scanners/engine/data-providers.js +28 -0
  465. package/dist/scanners/engine/data-providers.js.map +1 -0
  466. package/dist/scanners/engine/engine.d.ts +92 -0
  467. package/dist/scanners/engine/engine.d.ts.map +1 -0
  468. package/dist/scanners/engine/engine.js +478 -0
  469. package/dist/scanners/engine/engine.js.map +1 -0
  470. package/dist/scanners/engine/index.d.ts +9 -0
  471. package/dist/scanners/engine/index.d.ts.map +1 -0
  472. package/dist/scanners/engine/index.js +7 -0
  473. package/dist/scanners/engine/index.js.map +1 -0
  474. package/dist/scanners/engine/input-resolver.d.ts +33 -0
  475. package/dist/scanners/engine/input-resolver.d.ts.map +1 -0
  476. package/dist/scanners/engine/input-resolver.js +216 -0
  477. package/dist/scanners/engine/input-resolver.js.map +1 -0
  478. package/dist/scanners/engine/lifecycle.d.ts +21 -0
  479. package/dist/scanners/engine/lifecycle.d.ts.map +1 -0
  480. package/dist/scanners/engine/lifecycle.js +2 -0
  481. package/dist/scanners/engine/lifecycle.js.map +1 -0
  482. package/dist/scanners/engine/result-builder.d.ts +30 -0
  483. package/dist/scanners/engine/result-builder.d.ts.map +1 -0
  484. package/dist/scanners/engine/result-builder.js +129 -0
  485. package/dist/scanners/engine/result-builder.js.map +1 -0
  486. package/dist/scanners/engine/strategy-registry.d.ts +48 -0
  487. package/dist/scanners/engine/strategy-registry.d.ts.map +1 -0
  488. package/dist/scanners/engine/strategy-registry.js +103 -0
  489. package/dist/scanners/engine/strategy-registry.js.map +1 -0
  490. package/dist/scanners/events.d.ts +41 -0
  491. package/dist/scanners/events.d.ts.map +1 -0
  492. package/dist/scanners/events.js +33 -0
  493. package/dist/scanners/events.js.map +1 -0
  494. package/dist/scanners/implementations/emerging-movers.d.ts +215 -0
  495. package/dist/scanners/implementations/emerging-movers.d.ts.map +1 -0
  496. package/dist/scanners/implementations/emerging-movers.js +713 -0
  497. package/dist/scanners/implementations/emerging-movers.js.map +1 -0
  498. package/dist/scanners/implementations/index.d.ts +9 -0
  499. package/dist/scanners/implementations/index.d.ts.map +1 -0
  500. package/dist/scanners/implementations/index.js +9 -0
  501. package/dist/scanners/implementations/index.js.map +1 -0
  502. package/dist/scanners/implementations/indicators.d.ts +40 -0
  503. package/dist/scanners/implementations/indicators.d.ts.map +1 -0
  504. package/dist/scanners/implementations/indicators.js +114 -0
  505. package/dist/scanners/implementations/indicators.js.map +1 -0
  506. package/dist/scanners/implementations/liquidation-watchdog.d.ts +66 -0
  507. package/dist/scanners/implementations/liquidation-watchdog.d.ts.map +1 -0
  508. package/dist/scanners/implementations/liquidation-watchdog.js +293 -0
  509. package/dist/scanners/implementations/liquidation-watchdog.js.map +1 -0
  510. package/dist/scanners/implementations/market-regime.d.ts +52 -0
  511. package/dist/scanners/implementations/market-regime.d.ts.map +1 -0
  512. package/dist/scanners/implementations/market-regime.js +205 -0
  513. package/dist/scanners/implementations/market-regime.js.map +1 -0
  514. package/dist/scanners/implementations/momentum.d.ts +21 -0
  515. package/dist/scanners/implementations/momentum.d.ts.map +1 -0
  516. package/dist/scanners/implementations/momentum.js +132 -0
  517. package/dist/scanners/implementations/momentum.js.map +1 -0
  518. package/dist/scanners/implementations/oi-tracker.d.ts +13 -0
  519. package/dist/scanners/implementations/oi-tracker.d.ts.map +1 -0
  520. package/dist/scanners/implementations/oi-tracker.js +71 -0
  521. package/dist/scanners/implementations/oi-tracker.js.map +1 -0
  522. package/dist/scanners/implementations/opportunity.d.ts +104 -0
  523. package/dist/scanners/implementations/opportunity.d.ts.map +1 -0
  524. package/dist/scanners/implementations/opportunity.js +445 -0
  525. package/dist/scanners/implementations/opportunity.js.map +1 -0
  526. package/dist/scanners/implementations/position-tracker.d.ts +120 -0
  527. package/dist/scanners/implementations/position-tracker.d.ts.map +1 -0
  528. package/dist/scanners/implementations/position-tracker.js +360 -0
  529. package/dist/scanners/implementations/position-tracker.js.map +1 -0
  530. package/dist/scanners/implementations/prescreener.d.ts +20 -0
  531. package/dist/scanners/implementations/prescreener.d.ts.map +1 -0
  532. package/dist/scanners/implementations/prescreener.js +101 -0
  533. package/dist/scanners/implementations/prescreener.js.map +1 -0
  534. package/dist/scanners/implementations/sm-flip.d.ts +43 -0
  535. package/dist/scanners/implementations/sm-flip.d.ts.map +1 -0
  536. package/dist/scanners/implementations/sm-flip.js +205 -0
  537. package/dist/scanners/implementations/sm-flip.js.map +1 -0
  538. package/dist/scanners/index.d.ts +26 -0
  539. package/dist/scanners/index.d.ts.map +1 -0
  540. package/dist/scanners/index.js +19 -0
  541. package/dist/scanners/index.js.map +1 -0
  542. package/dist/scanners/input-descriptors.d.ts +61 -0
  543. package/dist/scanners/input-descriptors.d.ts.map +1 -0
  544. package/dist/scanners/input-descriptors.js +43 -0
  545. package/dist/scanners/input-descriptors.js.map +1 -0
  546. package/dist/scanners/prepare-scanner-inputs.d.ts +12 -0
  547. package/dist/scanners/prepare-scanner-inputs.d.ts.map +1 -0
  548. package/dist/scanners/prepare-scanner-inputs.js +21 -0
  549. package/dist/scanners/prepare-scanner-inputs.js.map +1 -0
  550. package/dist/scanners/protocol/context.d.ts +95 -0
  551. package/dist/scanners/protocol/context.d.ts.map +1 -0
  552. package/dist/scanners/protocol/context.js +2 -0
  553. package/dist/scanners/protocol/context.js.map +1 -0
  554. package/dist/scanners/protocol/hooks.d.ts +18 -0
  555. package/dist/scanners/protocol/hooks.d.ts.map +1 -0
  556. package/dist/scanners/protocol/hooks.js +12 -0
  557. package/dist/scanners/protocol/hooks.js.map +1 -0
  558. package/dist/scanners/protocol/index.d.ts +5 -0
  559. package/dist/scanners/protocol/index.d.ts.map +1 -0
  560. package/dist/scanners/protocol/index.js +2 -0
  561. package/dist/scanners/protocol/index.js.map +1 -0
  562. package/dist/scanners/protocol/scanner.d.ts +47 -0
  563. package/dist/scanners/protocol/scanner.d.ts.map +1 -0
  564. package/dist/scanners/protocol/scanner.js +2 -0
  565. package/dist/scanners/protocol/scanner.js.map +1 -0
  566. package/dist/scanners/providers/adapter.d.ts +23 -0
  567. package/dist/scanners/providers/adapter.d.ts.map +1 -0
  568. package/dist/scanners/providers/adapter.js +227 -0
  569. package/dist/scanners/providers/adapter.js.map +1 -0
  570. package/dist/scanners/providers/cache.d.ts +20 -0
  571. package/dist/scanners/providers/cache.d.ts.map +1 -0
  572. package/dist/scanners/providers/cache.js +61 -0
  573. package/dist/scanners/providers/cache.js.map +1 -0
  574. package/dist/scanners/providers/client.d.ts +53 -0
  575. package/dist/scanners/providers/client.d.ts.map +1 -0
  576. package/dist/scanners/providers/client.js +174 -0
  577. package/dist/scanners/providers/client.js.map +1 -0
  578. package/dist/scanners/providers/factory.d.ts +43 -0
  579. package/dist/scanners/providers/factory.d.ts.map +1 -0
  580. package/dist/scanners/providers/factory.js +297 -0
  581. package/dist/scanners/providers/factory.js.map +1 -0
  582. package/dist/scanners/providers/types.d.ts +61 -0
  583. package/dist/scanners/providers/types.d.ts.map +1 -0
  584. package/dist/scanners/providers/types.js +6 -0
  585. package/dist/scanners/providers/types.js.map +1 -0
  586. package/dist/scanners/runtime-module.d.ts +79 -0
  587. package/dist/scanners/runtime-module.d.ts.map +1 -0
  588. package/dist/scanners/runtime-module.js +362 -0
  589. package/dist/scanners/runtime-module.js.map +1 -0
  590. package/dist/scanners/scanner-definition.d.ts +81 -0
  591. package/dist/scanners/scanner-definition.d.ts.map +1 -0
  592. package/dist/scanners/scanner-definition.js +19 -0
  593. package/dist/scanners/scanner-definition.js.map +1 -0
  594. package/dist/scanners/schema-utils.d.ts +6 -0
  595. package/dist/scanners/schema-utils.d.ts.map +1 -0
  596. package/dist/scanners/schema-utils.js +14 -0
  597. package/dist/scanners/schema-utils.js.map +1 -0
  598. package/dist/scanners/score-utils.d.ts +19 -0
  599. package/dist/scanners/score-utils.d.ts.map +1 -0
  600. package/dist/scanners/score-utils.js +47 -0
  601. package/dist/scanners/score-utils.js.map +1 -0
  602. package/dist/scanners/store/fs-utils.d.ts +12 -0
  603. package/dist/scanners/store/fs-utils.d.ts.map +1 -0
  604. package/dist/scanners/store/fs-utils.js +47 -0
  605. package/dist/scanners/store/fs-utils.js.map +1 -0
  606. package/dist/scanners/store/index.d.ts +5 -0
  607. package/dist/scanners/store/index.d.ts.map +1 -0
  608. package/dist/scanners/store/index.js +5 -0
  609. package/dist/scanners/store/index.js.map +1 -0
  610. package/dist/scanners/store/runtime-store.d.ts +50 -0
  611. package/dist/scanners/store/runtime-store.d.ts.map +1 -0
  612. package/dist/scanners/store/runtime-store.js +91 -0
  613. package/dist/scanners/store/runtime-store.js.map +1 -0
  614. package/dist/scanners/store/shared-artifact-store.d.ts +35 -0
  615. package/dist/scanners/store/shared-artifact-store.d.ts.map +1 -0
  616. package/dist/scanners/store/shared-artifact-store.js +89 -0
  617. package/dist/scanners/store/shared-artifact-store.js.map +1 -0
  618. package/dist/scanners/store/signal-store.d.ts +36 -0
  619. package/dist/scanners/store/signal-store.d.ts.map +1 -0
  620. package/dist/scanners/store/signal-store.js +135 -0
  621. package/dist/scanners/store/signal-store.js.map +1 -0
  622. package/dist/scanners/types.d.ts +115 -0
  623. package/dist/scanners/types.d.ts.map +1 -0
  624. package/dist/scanners/types.js +3 -0
  625. package/dist/scanners/types.js.map +1 -0
  626. package/dist/scripts/run-dsl-standalone-live.d.ts +48 -0
  627. package/dist/scripts/run-dsl-standalone-live.d.ts.map +1 -0
  628. package/dist/scripts/run-dsl-standalone-live.js +531 -0
  629. package/dist/scripts/run-dsl-standalone-live.js.map +1 -0
  630. package/dist/scripts/run-dsl-standalone-mock.d.ts +13 -0
  631. package/dist/scripts/run-dsl-standalone-mock.d.ts.map +1 -0
  632. package/dist/scripts/run-dsl-standalone-mock.js +264 -0
  633. package/dist/scripts/run-dsl-standalone-mock.js.map +1 -0
  634. package/dist/senpi/client.d.ts +99 -0
  635. package/dist/senpi/client.d.ts.map +1 -0
  636. package/dist/senpi/client.js +779 -0
  637. package/dist/senpi/client.js.map +1 -0
  638. package/dist/senpi/constants.d.ts +7 -0
  639. package/dist/senpi/constants.d.ts.map +1 -0
  640. package/dist/senpi/constants.js +7 -0
  641. package/dist/senpi/constants.js.map +1 -0
  642. package/dist/senpi/index.d.ts +3 -0
  643. package/dist/senpi/index.d.ts.map +1 -0
  644. package/dist/senpi/index.js +2 -0
  645. package/dist/senpi/index.js.map +1 -0
  646. package/dist/senpi/types.d.ts +162 -0
  647. package/dist/senpi/types.d.ts.map +1 -0
  648. package/dist/senpi/types.js +3 -0
  649. package/dist/senpi/types.js.map +1 -0
  650. package/dist/state/index.d.ts +3 -0
  651. package/dist/state/index.d.ts.map +1 -0
  652. package/dist/state/index.js +3 -0
  653. package/dist/state/index.js.map +1 -0
  654. package/dist/state/paths.d.ts +18 -0
  655. package/dist/state/paths.d.ts.map +1 -0
  656. package/dist/state/paths.js +51 -0
  657. package/dist/state/paths.js.map +1 -0
  658. package/dist/state/state-manager.d.ts +83 -0
  659. package/dist/state/state-manager.d.ts.map +1 -0
  660. package/dist/state/state-manager.js +380 -0
  661. package/dist/state/state-manager.js.map +1 -0
  662. package/dist/strategy/index.d.ts +2 -0
  663. package/dist/strategy/index.d.ts.map +1 -0
  664. package/dist/strategy/index.js +2 -0
  665. package/dist/strategy/index.js.map +1 -0
  666. package/dist/strategy/strategy-state.d.ts +51 -0
  667. package/dist/strategy/strategy-state.d.ts.map +1 -0
  668. package/dist/strategy/strategy-state.js +218 -0
  669. package/dist/strategy/strategy-state.js.map +1 -0
  670. package/dist/types/action.d.ts +15 -0
  671. package/dist/types/action.d.ts.map +1 -0
  672. package/dist/types/action.js +2 -0
  673. package/dist/types/action.js.map +1 -0
  674. package/dist/types/dsl/index.d.ts +286 -0
  675. package/dist/types/dsl/index.d.ts.map +1 -0
  676. package/dist/types/dsl/index.js +5 -0
  677. package/dist/types/dsl/index.js.map +1 -0
  678. package/dist/types/event-bus.d.ts +13 -0
  679. package/dist/types/event-bus.d.ts.map +1 -0
  680. package/dist/types/event-bus.js +6 -0
  681. package/dist/types/event-bus.js.map +1 -0
  682. package/dist/types/hooks.d.ts +30 -0
  683. package/dist/types/hooks.d.ts.map +1 -0
  684. package/dist/types/hooks.js +18 -0
  685. package/dist/types/hooks.js.map +1 -0
  686. package/dist/types/index.d.ts +6 -0
  687. package/dist/types/index.d.ts.map +1 -0
  688. package/dist/types/index.js +6 -0
  689. package/dist/types/index.js.map +1 -0
  690. package/dist/types/notification.d.ts +4 -0
  691. package/dist/types/notification.d.ts.map +1 -0
  692. package/dist/types/notification.js +3 -0
  693. package/dist/types/notification.js.map +1 -0
  694. package/dist/types/runtime.d.ts +18 -0
  695. package/dist/types/runtime.d.ts.map +1 -0
  696. package/dist/types/runtime.js +2 -0
  697. package/dist/types/runtime.js.map +1 -0
  698. package/dist/types/scanner.d.ts +59 -0
  699. package/dist/types/scanner.d.ts.map +1 -0
  700. package/dist/types/scanner.js +13 -0
  701. package/dist/types/scanner.js.map +1 -0
  702. package/dist/types/strategy.d.ts +106 -0
  703. package/dist/types/strategy.d.ts.map +1 -0
  704. package/dist/types/strategy.js +2 -0
  705. package/dist/types/strategy.js.map +1 -0
  706. package/dist/utils/clearing-house-staleness.d.ts +47 -0
  707. package/dist/utils/clearing-house-staleness.d.ts.map +1 -0
  708. package/dist/utils/clearing-house-staleness.js +73 -0
  709. package/dist/utils/clearing-house-staleness.js.map +1 -0
  710. package/dist/utils/logger/dsl.d.ts +8 -0
  711. package/dist/utils/logger/dsl.d.ts.map +1 -0
  712. package/dist/utils/logger/dsl.js +7 -0
  713. package/dist/utils/logger/dsl.js.map +1 -0
  714. package/dist/utils/logger.d.ts +23 -0
  715. package/dist/utils/logger.d.ts.map +1 -0
  716. package/dist/utils/logger.js +97 -0
  717. package/dist/utils/logger.js.map +1 -0
  718. package/dist/utils/perp-coin.d.ts +19 -0
  719. package/dist/utils/perp-coin.d.ts.map +1 -0
  720. package/dist/utils/perp-coin.js +40 -0
  721. package/dist/utils/perp-coin.js.map +1 -0
  722. package/dist/utils/response.d.ts +14 -0
  723. package/dist/utils/response.d.ts.map +1 -0
  724. package/dist/utils/response.js +44 -0
  725. package/dist/utils/response.js.map +1 -0
  726. package/dist/utils/retry.d.ts +19 -0
  727. package/dist/utils/retry.d.ts.map +1 -0
  728. package/dist/utils/retry.js +32 -0
  729. package/dist/utils/retry.js.map +1 -0
  730. package/dist/version.d.ts +6 -0
  731. package/dist/version.d.ts.map +1 -0
  732. package/dist/version.js +21 -0
  733. package/dist/version.js.map +1 -0
  734. package/examples/.env.example +25 -0
  735. package/examples/README.md +89 -0
  736. package/examples/scanners-consumer-quickstart.mjs +134 -0
  737. package/examples/scanners-emerging-movers-v4.mjs +287 -0
  738. package/examples/scanners-liquidation-watchdog.mjs +341 -0
  739. package/examples/scanners-live-mcp.mjs +208 -0
  740. package/examples/scanners-multi-strategy.mjs +165 -0
  741. package/examples/scanners-position-tracker-e2e.mjs +225 -0
  742. package/examples/scanners-scheduled-events.mjs +96 -0
  743. package/examples/scanners-senpi-provider-client.mjs +182 -0
  744. package/examples/scanners-single-strategy.mjs +198 -0
  745. package/examples/strategies/README.md +45 -0
  746. package/examples/strategies/dsl-showcase.yaml +63 -0
  747. package/examples/strategies/dsl.yaml +47 -0
  748. package/examples/strategies/fox-minimal-loosened.yaml +225 -0
  749. package/examples/strategies/fox-minimal.yaml +220 -0
  750. package/examples/strategies/minimal.yaml +44 -0
  751. package/examples/strategies/viper.yaml +59 -0
  752. package/examples/strategies/wolf.yaml +64 -0
  753. package/examples/yamls/sample-with-dsl-and-emerging-movers.yaml +115 -0
  754. package/openclaw.plugin.json +67 -0
  755. package/package.json +53 -0
@@ -0,0 +1,1859 @@
1
+ /**
2
+ * Zod schema for the parsed runtime YAML.
3
+ * Single source of truth for validation and RuntimeConfig type.
4
+ */
5
+ import { z } from "zod";
6
+ declare const strategyEntrySchema: z.ZodObject<{
7
+ wallet: z.ZodString;
8
+ budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
9
+ slots: z.ZodOptional<z.ZodNumber>;
10
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
11
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
12
+ default_leverage: z.ZodOptional<z.ZodNumber>;
13
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
14
+ conservative: z.ZodOptional<z.ZodNumber>;
15
+ moderate: z.ZodOptional<z.ZodNumber>;
16
+ aggressive: z.ZodOptional<z.ZodNumber>;
17
+ }, "strip", z.ZodTypeAny, {
18
+ conservative?: number | undefined;
19
+ moderate?: number | undefined;
20
+ aggressive?: number | undefined;
21
+ }, {
22
+ conservative?: number | undefined;
23
+ moderate?: number | undefined;
24
+ aggressive?: number | undefined;
25
+ }>>;
26
+ enabled: z.ZodOptional<z.ZodBoolean>;
27
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
28
+ wallet: z.ZodString;
29
+ budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
30
+ slots: z.ZodOptional<z.ZodNumber>;
31
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
32
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
33
+ default_leverage: z.ZodOptional<z.ZodNumber>;
34
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
35
+ conservative: z.ZodOptional<z.ZodNumber>;
36
+ moderate: z.ZodOptional<z.ZodNumber>;
37
+ aggressive: z.ZodOptional<z.ZodNumber>;
38
+ }, "strip", z.ZodTypeAny, {
39
+ conservative?: number | undefined;
40
+ moderate?: number | undefined;
41
+ aggressive?: number | undefined;
42
+ }, {
43
+ conservative?: number | undefined;
44
+ moderate?: number | undefined;
45
+ aggressive?: number | undefined;
46
+ }>>;
47
+ enabled: z.ZodOptional<z.ZodBoolean>;
48
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
49
+ wallet: z.ZodString;
50
+ budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
51
+ slots: z.ZodOptional<z.ZodNumber>;
52
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
53
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
54
+ default_leverage: z.ZodOptional<z.ZodNumber>;
55
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
56
+ conservative: z.ZodOptional<z.ZodNumber>;
57
+ moderate: z.ZodOptional<z.ZodNumber>;
58
+ aggressive: z.ZodOptional<z.ZodNumber>;
59
+ }, "strip", z.ZodTypeAny, {
60
+ conservative?: number | undefined;
61
+ moderate?: number | undefined;
62
+ aggressive?: number | undefined;
63
+ }, {
64
+ conservative?: number | undefined;
65
+ moderate?: number | undefined;
66
+ aggressive?: number | undefined;
67
+ }>>;
68
+ enabled: z.ZodOptional<z.ZodBoolean>;
69
+ }, z.ZodTypeAny, "passthrough">>;
70
+ declare const scannerEntrySchema: z.ZodObject<{
71
+ name: z.ZodString;
72
+ type: z.ZodString;
73
+ interval: z.ZodOptional<z.ZodString>;
74
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
75
+ scanner: z.ZodString;
76
+ required: z.ZodOptional<z.ZodBoolean>;
77
+ max_age: z.ZodOptional<z.ZodString>;
78
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
79
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
80
+ }, "strip", z.ZodTypeAny, {
81
+ scanner: string;
82
+ required?: boolean | undefined;
83
+ max_age?: string | undefined;
84
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
85
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
86
+ }, {
87
+ scanner: string;
88
+ required?: boolean | undefined;
89
+ max_age?: string | undefined;
90
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
91
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
92
+ }>, "many">>;
93
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
94
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
95
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
96
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
97
+ name: z.ZodString;
98
+ type: z.ZodString;
99
+ interval: z.ZodOptional<z.ZodString>;
100
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
101
+ scanner: z.ZodString;
102
+ required: z.ZodOptional<z.ZodBoolean>;
103
+ max_age: z.ZodOptional<z.ZodString>;
104
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
105
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
106
+ }, "strip", z.ZodTypeAny, {
107
+ scanner: string;
108
+ required?: boolean | undefined;
109
+ max_age?: string | undefined;
110
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
111
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
112
+ }, {
113
+ scanner: string;
114
+ required?: boolean | undefined;
115
+ max_age?: string | undefined;
116
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
117
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
118
+ }>, "many">>;
119
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
120
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
121
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
122
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
123
+ name: z.ZodString;
124
+ type: z.ZodString;
125
+ interval: z.ZodOptional<z.ZodString>;
126
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
127
+ scanner: z.ZodString;
128
+ required: z.ZodOptional<z.ZodBoolean>;
129
+ max_age: z.ZodOptional<z.ZodString>;
130
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
131
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
132
+ }, "strip", z.ZodTypeAny, {
133
+ scanner: string;
134
+ required?: boolean | undefined;
135
+ max_age?: string | undefined;
136
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
137
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
138
+ }, {
139
+ scanner: string;
140
+ required?: boolean | undefined;
141
+ max_age?: string | undefined;
142
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
143
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
144
+ }>, "many">>;
145
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
146
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
147
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
148
+ }, z.ZodTypeAny, "passthrough">>;
149
+ declare const actionEntrySchema: z.ZodObject<{
150
+ name: z.ZodString;
151
+ action_type: z.ZodString;
152
+ decision_mode: z.ZodOptional<z.ZodString>;
153
+ decision_model: z.ZodOptional<z.ZodString>;
154
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
155
+ min_confidence: z.ZodOptional<z.ZodNumber>;
156
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
157
+ type: z.ZodLiteral<"signal">;
158
+ scanner: z.ZodString;
159
+ }, "strip", z.ZodTypeAny, {
160
+ type: "signal";
161
+ scanner: string;
162
+ }, {
163
+ type: "signal";
164
+ scanner: string;
165
+ }>, z.ZodObject<{
166
+ type: z.ZodLiteral<"context">;
167
+ scanner: z.ZodString;
168
+ }, "strip", z.ZodTypeAny, {
169
+ type: "context";
170
+ scanner: string;
171
+ }, {
172
+ type: "context";
173
+ scanner: string;
174
+ }>, z.ZodObject<{
175
+ type: z.ZodLiteral<"strategy">;
176
+ value: z.ZodString;
177
+ }, "strip", z.ZodTypeAny, {
178
+ type: "strategy";
179
+ value: string;
180
+ }, {
181
+ type: "strategy";
182
+ value: string;
183
+ }>, z.ZodObject<{
184
+ type: z.ZodLiteral<"asset-trend">;
185
+ value: z.ZodString;
186
+ }, "strip", z.ZodTypeAny, {
187
+ type: "asset-trend";
188
+ value: string;
189
+ }, {
190
+ type: "asset-trend";
191
+ value: string;
192
+ }>]>, "many">>;
193
+ decision_prompt: z.ZodOptional<z.ZodString>;
194
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
195
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
196
+ name: z.ZodString;
197
+ action_type: z.ZodString;
198
+ decision_mode: z.ZodOptional<z.ZodString>;
199
+ decision_model: z.ZodOptional<z.ZodString>;
200
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
201
+ min_confidence: z.ZodOptional<z.ZodNumber>;
202
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
203
+ type: z.ZodLiteral<"signal">;
204
+ scanner: z.ZodString;
205
+ }, "strip", z.ZodTypeAny, {
206
+ type: "signal";
207
+ scanner: string;
208
+ }, {
209
+ type: "signal";
210
+ scanner: string;
211
+ }>, z.ZodObject<{
212
+ type: z.ZodLiteral<"context">;
213
+ scanner: z.ZodString;
214
+ }, "strip", z.ZodTypeAny, {
215
+ type: "context";
216
+ scanner: string;
217
+ }, {
218
+ type: "context";
219
+ scanner: string;
220
+ }>, z.ZodObject<{
221
+ type: z.ZodLiteral<"strategy">;
222
+ value: z.ZodString;
223
+ }, "strip", z.ZodTypeAny, {
224
+ type: "strategy";
225
+ value: string;
226
+ }, {
227
+ type: "strategy";
228
+ value: string;
229
+ }>, z.ZodObject<{
230
+ type: z.ZodLiteral<"asset-trend">;
231
+ value: z.ZodString;
232
+ }, "strip", z.ZodTypeAny, {
233
+ type: "asset-trend";
234
+ value: string;
235
+ }, {
236
+ type: "asset-trend";
237
+ value: string;
238
+ }>]>, "many">>;
239
+ decision_prompt: z.ZodOptional<z.ZodString>;
240
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
241
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
242
+ name: z.ZodString;
243
+ action_type: z.ZodString;
244
+ decision_mode: z.ZodOptional<z.ZodString>;
245
+ decision_model: z.ZodOptional<z.ZodString>;
246
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
247
+ min_confidence: z.ZodOptional<z.ZodNumber>;
248
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
249
+ type: z.ZodLiteral<"signal">;
250
+ scanner: z.ZodString;
251
+ }, "strip", z.ZodTypeAny, {
252
+ type: "signal";
253
+ scanner: string;
254
+ }, {
255
+ type: "signal";
256
+ scanner: string;
257
+ }>, z.ZodObject<{
258
+ type: z.ZodLiteral<"context">;
259
+ scanner: z.ZodString;
260
+ }, "strip", z.ZodTypeAny, {
261
+ type: "context";
262
+ scanner: string;
263
+ }, {
264
+ type: "context";
265
+ scanner: string;
266
+ }>, z.ZodObject<{
267
+ type: z.ZodLiteral<"strategy">;
268
+ value: z.ZodString;
269
+ }, "strip", z.ZodTypeAny, {
270
+ type: "strategy";
271
+ value: string;
272
+ }, {
273
+ type: "strategy";
274
+ value: string;
275
+ }>, z.ZodObject<{
276
+ type: z.ZodLiteral<"asset-trend">;
277
+ value: z.ZodString;
278
+ }, "strip", z.ZodTypeAny, {
279
+ type: "asset-trend";
280
+ value: string;
281
+ }, {
282
+ type: "asset-trend";
283
+ value: string;
284
+ }>]>, "many">>;
285
+ decision_prompt: z.ZodOptional<z.ZodString>;
286
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
287
+ }, z.ZodTypeAny, "passthrough">>;
288
+ declare const exitBlockSchema: z.ZodObject<{
289
+ engine: z.ZodOptional<z.ZodString>;
290
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
291
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
292
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
293
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
294
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
295
+ engine: z.ZodOptional<z.ZodString>;
296
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
297
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
298
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
299
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
300
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
301
+ engine: z.ZodOptional<z.ZodString>;
302
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
303
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
304
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
305
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
306
+ }, z.ZodTypeAny, "passthrough">>;
307
+ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
308
+ name: z.ZodString;
309
+ version: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
310
+ description: z.ZodOptional<z.ZodString>;
311
+ strategy: z.ZodObject<{
312
+ wallet: z.ZodString;
313
+ budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
314
+ slots: z.ZodOptional<z.ZodNumber>;
315
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
316
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
317
+ default_leverage: z.ZodOptional<z.ZodNumber>;
318
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
319
+ conservative: z.ZodOptional<z.ZodNumber>;
320
+ moderate: z.ZodOptional<z.ZodNumber>;
321
+ aggressive: z.ZodOptional<z.ZodNumber>;
322
+ }, "strip", z.ZodTypeAny, {
323
+ conservative?: number | undefined;
324
+ moderate?: number | undefined;
325
+ aggressive?: number | undefined;
326
+ }, {
327
+ conservative?: number | undefined;
328
+ moderate?: number | undefined;
329
+ aggressive?: number | undefined;
330
+ }>>;
331
+ enabled: z.ZodOptional<z.ZodBoolean>;
332
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
333
+ wallet: z.ZodString;
334
+ budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
335
+ slots: z.ZodOptional<z.ZodNumber>;
336
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
337
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
338
+ default_leverage: z.ZodOptional<z.ZodNumber>;
339
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
340
+ conservative: z.ZodOptional<z.ZodNumber>;
341
+ moderate: z.ZodOptional<z.ZodNumber>;
342
+ aggressive: z.ZodOptional<z.ZodNumber>;
343
+ }, "strip", z.ZodTypeAny, {
344
+ conservative?: number | undefined;
345
+ moderate?: number | undefined;
346
+ aggressive?: number | undefined;
347
+ }, {
348
+ conservative?: number | undefined;
349
+ moderate?: number | undefined;
350
+ aggressive?: number | undefined;
351
+ }>>;
352
+ enabled: z.ZodOptional<z.ZodBoolean>;
353
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
354
+ wallet: z.ZodString;
355
+ budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
356
+ slots: z.ZodOptional<z.ZodNumber>;
357
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
358
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
359
+ default_leverage: z.ZodOptional<z.ZodNumber>;
360
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
361
+ conservative: z.ZodOptional<z.ZodNumber>;
362
+ moderate: z.ZodOptional<z.ZodNumber>;
363
+ aggressive: z.ZodOptional<z.ZodNumber>;
364
+ }, "strip", z.ZodTypeAny, {
365
+ conservative?: number | undefined;
366
+ moderate?: number | undefined;
367
+ aggressive?: number | undefined;
368
+ }, {
369
+ conservative?: number | undefined;
370
+ moderate?: number | undefined;
371
+ aggressive?: number | undefined;
372
+ }>>;
373
+ enabled: z.ZodOptional<z.ZodBoolean>;
374
+ }, z.ZodTypeAny, "passthrough">>;
375
+ scanners: z.ZodOptional<z.ZodArray<z.ZodObject<{
376
+ name: z.ZodString;
377
+ type: z.ZodString;
378
+ interval: z.ZodOptional<z.ZodString>;
379
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
380
+ scanner: z.ZodString;
381
+ required: z.ZodOptional<z.ZodBoolean>;
382
+ max_age: z.ZodOptional<z.ZodString>;
383
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
384
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
385
+ }, "strip", z.ZodTypeAny, {
386
+ scanner: string;
387
+ required?: boolean | undefined;
388
+ max_age?: string | undefined;
389
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
390
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
391
+ }, {
392
+ scanner: string;
393
+ required?: boolean | undefined;
394
+ max_age?: string | undefined;
395
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
396
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
397
+ }>, "many">>;
398
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
399
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
400
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
401
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
402
+ name: z.ZodString;
403
+ type: z.ZodString;
404
+ interval: z.ZodOptional<z.ZodString>;
405
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
406
+ scanner: z.ZodString;
407
+ required: z.ZodOptional<z.ZodBoolean>;
408
+ max_age: z.ZodOptional<z.ZodString>;
409
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
410
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
411
+ }, "strip", z.ZodTypeAny, {
412
+ scanner: string;
413
+ required?: boolean | undefined;
414
+ max_age?: string | undefined;
415
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
416
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
417
+ }, {
418
+ scanner: string;
419
+ required?: boolean | undefined;
420
+ max_age?: string | undefined;
421
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
422
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
423
+ }>, "many">>;
424
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
425
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
426
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
427
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
428
+ name: z.ZodString;
429
+ type: z.ZodString;
430
+ interval: z.ZodOptional<z.ZodString>;
431
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
432
+ scanner: z.ZodString;
433
+ required: z.ZodOptional<z.ZodBoolean>;
434
+ max_age: z.ZodOptional<z.ZodString>;
435
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
436
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
437
+ }, "strip", z.ZodTypeAny, {
438
+ scanner: string;
439
+ required?: boolean | undefined;
440
+ max_age?: string | undefined;
441
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
442
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
443
+ }, {
444
+ scanner: string;
445
+ required?: boolean | undefined;
446
+ max_age?: string | undefined;
447
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
448
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
449
+ }>, "many">>;
450
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
451
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
452
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
453
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
454
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
455
+ name: z.ZodString;
456
+ action_type: z.ZodString;
457
+ decision_mode: z.ZodOptional<z.ZodString>;
458
+ decision_model: z.ZodOptional<z.ZodString>;
459
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
460
+ min_confidence: z.ZodOptional<z.ZodNumber>;
461
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
462
+ type: z.ZodLiteral<"signal">;
463
+ scanner: z.ZodString;
464
+ }, "strip", z.ZodTypeAny, {
465
+ type: "signal";
466
+ scanner: string;
467
+ }, {
468
+ type: "signal";
469
+ scanner: string;
470
+ }>, z.ZodObject<{
471
+ type: z.ZodLiteral<"context">;
472
+ scanner: z.ZodString;
473
+ }, "strip", z.ZodTypeAny, {
474
+ type: "context";
475
+ scanner: string;
476
+ }, {
477
+ type: "context";
478
+ scanner: string;
479
+ }>, z.ZodObject<{
480
+ type: z.ZodLiteral<"strategy">;
481
+ value: z.ZodString;
482
+ }, "strip", z.ZodTypeAny, {
483
+ type: "strategy";
484
+ value: string;
485
+ }, {
486
+ type: "strategy";
487
+ value: string;
488
+ }>, z.ZodObject<{
489
+ type: z.ZodLiteral<"asset-trend">;
490
+ value: z.ZodString;
491
+ }, "strip", z.ZodTypeAny, {
492
+ type: "asset-trend";
493
+ value: string;
494
+ }, {
495
+ type: "asset-trend";
496
+ value: string;
497
+ }>]>, "many">>;
498
+ decision_prompt: z.ZodOptional<z.ZodString>;
499
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
500
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
501
+ name: z.ZodString;
502
+ action_type: z.ZodString;
503
+ decision_mode: z.ZodOptional<z.ZodString>;
504
+ decision_model: z.ZodOptional<z.ZodString>;
505
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
506
+ min_confidence: z.ZodOptional<z.ZodNumber>;
507
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
508
+ type: z.ZodLiteral<"signal">;
509
+ scanner: z.ZodString;
510
+ }, "strip", z.ZodTypeAny, {
511
+ type: "signal";
512
+ scanner: string;
513
+ }, {
514
+ type: "signal";
515
+ scanner: string;
516
+ }>, z.ZodObject<{
517
+ type: z.ZodLiteral<"context">;
518
+ scanner: z.ZodString;
519
+ }, "strip", z.ZodTypeAny, {
520
+ type: "context";
521
+ scanner: string;
522
+ }, {
523
+ type: "context";
524
+ scanner: string;
525
+ }>, z.ZodObject<{
526
+ type: z.ZodLiteral<"strategy">;
527
+ value: z.ZodString;
528
+ }, "strip", z.ZodTypeAny, {
529
+ type: "strategy";
530
+ value: string;
531
+ }, {
532
+ type: "strategy";
533
+ value: string;
534
+ }>, z.ZodObject<{
535
+ type: z.ZodLiteral<"asset-trend">;
536
+ value: z.ZodString;
537
+ }, "strip", z.ZodTypeAny, {
538
+ type: "asset-trend";
539
+ value: string;
540
+ }, {
541
+ type: "asset-trend";
542
+ value: string;
543
+ }>]>, "many">>;
544
+ decision_prompt: z.ZodOptional<z.ZodString>;
545
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
546
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
547
+ name: z.ZodString;
548
+ action_type: z.ZodString;
549
+ decision_mode: z.ZodOptional<z.ZodString>;
550
+ decision_model: z.ZodOptional<z.ZodString>;
551
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
552
+ min_confidence: z.ZodOptional<z.ZodNumber>;
553
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
554
+ type: z.ZodLiteral<"signal">;
555
+ scanner: z.ZodString;
556
+ }, "strip", z.ZodTypeAny, {
557
+ type: "signal";
558
+ scanner: string;
559
+ }, {
560
+ type: "signal";
561
+ scanner: string;
562
+ }>, z.ZodObject<{
563
+ type: z.ZodLiteral<"context">;
564
+ scanner: z.ZodString;
565
+ }, "strip", z.ZodTypeAny, {
566
+ type: "context";
567
+ scanner: string;
568
+ }, {
569
+ type: "context";
570
+ scanner: string;
571
+ }>, z.ZodObject<{
572
+ type: z.ZodLiteral<"strategy">;
573
+ value: z.ZodString;
574
+ }, "strip", z.ZodTypeAny, {
575
+ type: "strategy";
576
+ value: string;
577
+ }, {
578
+ type: "strategy";
579
+ value: string;
580
+ }>, z.ZodObject<{
581
+ type: z.ZodLiteral<"asset-trend">;
582
+ value: z.ZodString;
583
+ }, "strip", z.ZodTypeAny, {
584
+ type: "asset-trend";
585
+ value: string;
586
+ }, {
587
+ type: "asset-trend";
588
+ value: string;
589
+ }>]>, "many">>;
590
+ decision_prompt: z.ZodOptional<z.ZodString>;
591
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
592
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
593
+ exit: z.ZodOptional<z.ZodObject<{
594
+ engine: z.ZodOptional<z.ZodString>;
595
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
596
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
597
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
598
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
599
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
600
+ engine: z.ZodOptional<z.ZodString>;
601
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
602
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
603
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
604
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
605
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
606
+ engine: z.ZodOptional<z.ZodString>;
607
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
608
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
609
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
610
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
611
+ }, z.ZodTypeAny, "passthrough">>>;
612
+ health: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
613
+ hooks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
614
+ notifications: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
615
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
616
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
617
+ name: z.ZodString;
618
+ version: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
619
+ description: z.ZodOptional<z.ZodString>;
620
+ strategy: z.ZodObject<{
621
+ wallet: z.ZodString;
622
+ budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
623
+ slots: z.ZodOptional<z.ZodNumber>;
624
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
625
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
626
+ default_leverage: z.ZodOptional<z.ZodNumber>;
627
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
628
+ conservative: z.ZodOptional<z.ZodNumber>;
629
+ moderate: z.ZodOptional<z.ZodNumber>;
630
+ aggressive: z.ZodOptional<z.ZodNumber>;
631
+ }, "strip", z.ZodTypeAny, {
632
+ conservative?: number | undefined;
633
+ moderate?: number | undefined;
634
+ aggressive?: number | undefined;
635
+ }, {
636
+ conservative?: number | undefined;
637
+ moderate?: number | undefined;
638
+ aggressive?: number | undefined;
639
+ }>>;
640
+ enabled: z.ZodOptional<z.ZodBoolean>;
641
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
642
+ wallet: z.ZodString;
643
+ budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
644
+ slots: z.ZodOptional<z.ZodNumber>;
645
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
646
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
647
+ default_leverage: z.ZodOptional<z.ZodNumber>;
648
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
649
+ conservative: z.ZodOptional<z.ZodNumber>;
650
+ moderate: z.ZodOptional<z.ZodNumber>;
651
+ aggressive: z.ZodOptional<z.ZodNumber>;
652
+ }, "strip", z.ZodTypeAny, {
653
+ conservative?: number | undefined;
654
+ moderate?: number | undefined;
655
+ aggressive?: number | undefined;
656
+ }, {
657
+ conservative?: number | undefined;
658
+ moderate?: number | undefined;
659
+ aggressive?: number | undefined;
660
+ }>>;
661
+ enabled: z.ZodOptional<z.ZodBoolean>;
662
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
663
+ wallet: z.ZodString;
664
+ budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
665
+ slots: z.ZodOptional<z.ZodNumber>;
666
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
667
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
668
+ default_leverage: z.ZodOptional<z.ZodNumber>;
669
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
670
+ conservative: z.ZodOptional<z.ZodNumber>;
671
+ moderate: z.ZodOptional<z.ZodNumber>;
672
+ aggressive: z.ZodOptional<z.ZodNumber>;
673
+ }, "strip", z.ZodTypeAny, {
674
+ conservative?: number | undefined;
675
+ moderate?: number | undefined;
676
+ aggressive?: number | undefined;
677
+ }, {
678
+ conservative?: number | undefined;
679
+ moderate?: number | undefined;
680
+ aggressive?: number | undefined;
681
+ }>>;
682
+ enabled: z.ZodOptional<z.ZodBoolean>;
683
+ }, z.ZodTypeAny, "passthrough">>;
684
+ scanners: z.ZodOptional<z.ZodArray<z.ZodObject<{
685
+ name: z.ZodString;
686
+ type: z.ZodString;
687
+ interval: z.ZodOptional<z.ZodString>;
688
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
689
+ scanner: z.ZodString;
690
+ required: z.ZodOptional<z.ZodBoolean>;
691
+ max_age: z.ZodOptional<z.ZodString>;
692
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
693
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
694
+ }, "strip", z.ZodTypeAny, {
695
+ scanner: string;
696
+ required?: boolean | undefined;
697
+ max_age?: string | undefined;
698
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
699
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
700
+ }, {
701
+ scanner: string;
702
+ required?: boolean | undefined;
703
+ max_age?: string | undefined;
704
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
705
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
706
+ }>, "many">>;
707
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
708
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
709
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
710
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
711
+ name: z.ZodString;
712
+ type: z.ZodString;
713
+ interval: z.ZodOptional<z.ZodString>;
714
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
715
+ scanner: z.ZodString;
716
+ required: z.ZodOptional<z.ZodBoolean>;
717
+ max_age: z.ZodOptional<z.ZodString>;
718
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
719
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
720
+ }, "strip", z.ZodTypeAny, {
721
+ scanner: string;
722
+ required?: boolean | undefined;
723
+ max_age?: string | undefined;
724
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
725
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
726
+ }, {
727
+ scanner: string;
728
+ required?: boolean | undefined;
729
+ max_age?: string | undefined;
730
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
731
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
732
+ }>, "many">>;
733
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
734
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
735
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
736
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
737
+ name: z.ZodString;
738
+ type: z.ZodString;
739
+ interval: z.ZodOptional<z.ZodString>;
740
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
741
+ scanner: z.ZodString;
742
+ required: z.ZodOptional<z.ZodBoolean>;
743
+ max_age: z.ZodOptional<z.ZodString>;
744
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
745
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
746
+ }, "strip", z.ZodTypeAny, {
747
+ scanner: string;
748
+ required?: boolean | undefined;
749
+ max_age?: string | undefined;
750
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
751
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
752
+ }, {
753
+ scanner: string;
754
+ required?: boolean | undefined;
755
+ max_age?: string | undefined;
756
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
757
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
758
+ }>, "many">>;
759
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
760
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
761
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
762
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
763
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
764
+ name: z.ZodString;
765
+ action_type: z.ZodString;
766
+ decision_mode: z.ZodOptional<z.ZodString>;
767
+ decision_model: z.ZodOptional<z.ZodString>;
768
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
769
+ min_confidence: z.ZodOptional<z.ZodNumber>;
770
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
771
+ type: z.ZodLiteral<"signal">;
772
+ scanner: z.ZodString;
773
+ }, "strip", z.ZodTypeAny, {
774
+ type: "signal";
775
+ scanner: string;
776
+ }, {
777
+ type: "signal";
778
+ scanner: string;
779
+ }>, z.ZodObject<{
780
+ type: z.ZodLiteral<"context">;
781
+ scanner: z.ZodString;
782
+ }, "strip", z.ZodTypeAny, {
783
+ type: "context";
784
+ scanner: string;
785
+ }, {
786
+ type: "context";
787
+ scanner: string;
788
+ }>, z.ZodObject<{
789
+ type: z.ZodLiteral<"strategy">;
790
+ value: z.ZodString;
791
+ }, "strip", z.ZodTypeAny, {
792
+ type: "strategy";
793
+ value: string;
794
+ }, {
795
+ type: "strategy";
796
+ value: string;
797
+ }>, z.ZodObject<{
798
+ type: z.ZodLiteral<"asset-trend">;
799
+ value: z.ZodString;
800
+ }, "strip", z.ZodTypeAny, {
801
+ type: "asset-trend";
802
+ value: string;
803
+ }, {
804
+ type: "asset-trend";
805
+ value: string;
806
+ }>]>, "many">>;
807
+ decision_prompt: z.ZodOptional<z.ZodString>;
808
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
809
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
810
+ name: z.ZodString;
811
+ action_type: z.ZodString;
812
+ decision_mode: z.ZodOptional<z.ZodString>;
813
+ decision_model: z.ZodOptional<z.ZodString>;
814
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
815
+ min_confidence: z.ZodOptional<z.ZodNumber>;
816
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
817
+ type: z.ZodLiteral<"signal">;
818
+ scanner: z.ZodString;
819
+ }, "strip", z.ZodTypeAny, {
820
+ type: "signal";
821
+ scanner: string;
822
+ }, {
823
+ type: "signal";
824
+ scanner: string;
825
+ }>, z.ZodObject<{
826
+ type: z.ZodLiteral<"context">;
827
+ scanner: z.ZodString;
828
+ }, "strip", z.ZodTypeAny, {
829
+ type: "context";
830
+ scanner: string;
831
+ }, {
832
+ type: "context";
833
+ scanner: string;
834
+ }>, z.ZodObject<{
835
+ type: z.ZodLiteral<"strategy">;
836
+ value: z.ZodString;
837
+ }, "strip", z.ZodTypeAny, {
838
+ type: "strategy";
839
+ value: string;
840
+ }, {
841
+ type: "strategy";
842
+ value: string;
843
+ }>, z.ZodObject<{
844
+ type: z.ZodLiteral<"asset-trend">;
845
+ value: z.ZodString;
846
+ }, "strip", z.ZodTypeAny, {
847
+ type: "asset-trend";
848
+ value: string;
849
+ }, {
850
+ type: "asset-trend";
851
+ value: string;
852
+ }>]>, "many">>;
853
+ decision_prompt: z.ZodOptional<z.ZodString>;
854
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
855
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
856
+ name: z.ZodString;
857
+ action_type: z.ZodString;
858
+ decision_mode: z.ZodOptional<z.ZodString>;
859
+ decision_model: z.ZodOptional<z.ZodString>;
860
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
861
+ min_confidence: z.ZodOptional<z.ZodNumber>;
862
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
863
+ type: z.ZodLiteral<"signal">;
864
+ scanner: z.ZodString;
865
+ }, "strip", z.ZodTypeAny, {
866
+ type: "signal";
867
+ scanner: string;
868
+ }, {
869
+ type: "signal";
870
+ scanner: string;
871
+ }>, z.ZodObject<{
872
+ type: z.ZodLiteral<"context">;
873
+ scanner: z.ZodString;
874
+ }, "strip", z.ZodTypeAny, {
875
+ type: "context";
876
+ scanner: string;
877
+ }, {
878
+ type: "context";
879
+ scanner: string;
880
+ }>, z.ZodObject<{
881
+ type: z.ZodLiteral<"strategy">;
882
+ value: z.ZodString;
883
+ }, "strip", z.ZodTypeAny, {
884
+ type: "strategy";
885
+ value: string;
886
+ }, {
887
+ type: "strategy";
888
+ value: string;
889
+ }>, z.ZodObject<{
890
+ type: z.ZodLiteral<"asset-trend">;
891
+ value: z.ZodString;
892
+ }, "strip", z.ZodTypeAny, {
893
+ type: "asset-trend";
894
+ value: string;
895
+ }, {
896
+ type: "asset-trend";
897
+ value: string;
898
+ }>]>, "many">>;
899
+ decision_prompt: z.ZodOptional<z.ZodString>;
900
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
901
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
902
+ exit: z.ZodOptional<z.ZodObject<{
903
+ engine: z.ZodOptional<z.ZodString>;
904
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
905
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
906
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
907
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
908
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
909
+ engine: z.ZodOptional<z.ZodString>;
910
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
911
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
912
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
913
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
914
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
915
+ engine: z.ZodOptional<z.ZodString>;
916
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
917
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
918
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
919
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
920
+ }, z.ZodTypeAny, "passthrough">>>;
921
+ health: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
922
+ hooks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
923
+ notifications: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
924
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
925
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
926
+ name: z.ZodString;
927
+ version: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
928
+ description: z.ZodOptional<z.ZodString>;
929
+ strategy: z.ZodObject<{
930
+ wallet: z.ZodString;
931
+ budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
932
+ slots: z.ZodOptional<z.ZodNumber>;
933
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
934
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
935
+ default_leverage: z.ZodOptional<z.ZodNumber>;
936
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
937
+ conservative: z.ZodOptional<z.ZodNumber>;
938
+ moderate: z.ZodOptional<z.ZodNumber>;
939
+ aggressive: z.ZodOptional<z.ZodNumber>;
940
+ }, "strip", z.ZodTypeAny, {
941
+ conservative?: number | undefined;
942
+ moderate?: number | undefined;
943
+ aggressive?: number | undefined;
944
+ }, {
945
+ conservative?: number | undefined;
946
+ moderate?: number | undefined;
947
+ aggressive?: number | undefined;
948
+ }>>;
949
+ enabled: z.ZodOptional<z.ZodBoolean>;
950
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
951
+ wallet: z.ZodString;
952
+ budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
953
+ slots: z.ZodOptional<z.ZodNumber>;
954
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
955
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
956
+ default_leverage: z.ZodOptional<z.ZodNumber>;
957
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
958
+ conservative: z.ZodOptional<z.ZodNumber>;
959
+ moderate: z.ZodOptional<z.ZodNumber>;
960
+ aggressive: z.ZodOptional<z.ZodNumber>;
961
+ }, "strip", z.ZodTypeAny, {
962
+ conservative?: number | undefined;
963
+ moderate?: number | undefined;
964
+ aggressive?: number | undefined;
965
+ }, {
966
+ conservative?: number | undefined;
967
+ moderate?: number | undefined;
968
+ aggressive?: number | undefined;
969
+ }>>;
970
+ enabled: z.ZodOptional<z.ZodBoolean>;
971
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
972
+ wallet: z.ZodString;
973
+ budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
974
+ slots: z.ZodOptional<z.ZodNumber>;
975
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
976
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
977
+ default_leverage: z.ZodOptional<z.ZodNumber>;
978
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
979
+ conservative: z.ZodOptional<z.ZodNumber>;
980
+ moderate: z.ZodOptional<z.ZodNumber>;
981
+ aggressive: z.ZodOptional<z.ZodNumber>;
982
+ }, "strip", z.ZodTypeAny, {
983
+ conservative?: number | undefined;
984
+ moderate?: number | undefined;
985
+ aggressive?: number | undefined;
986
+ }, {
987
+ conservative?: number | undefined;
988
+ moderate?: number | undefined;
989
+ aggressive?: number | undefined;
990
+ }>>;
991
+ enabled: z.ZodOptional<z.ZodBoolean>;
992
+ }, z.ZodTypeAny, "passthrough">>;
993
+ scanners: z.ZodOptional<z.ZodArray<z.ZodObject<{
994
+ name: z.ZodString;
995
+ type: z.ZodString;
996
+ interval: z.ZodOptional<z.ZodString>;
997
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
998
+ scanner: z.ZodString;
999
+ required: z.ZodOptional<z.ZodBoolean>;
1000
+ max_age: z.ZodOptional<z.ZodString>;
1001
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1002
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1003
+ }, "strip", z.ZodTypeAny, {
1004
+ scanner: string;
1005
+ required?: boolean | undefined;
1006
+ max_age?: string | undefined;
1007
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1008
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1009
+ }, {
1010
+ scanner: string;
1011
+ required?: boolean | undefined;
1012
+ max_age?: string | undefined;
1013
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1014
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1015
+ }>, "many">>;
1016
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1017
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1018
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1019
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1020
+ name: z.ZodString;
1021
+ type: z.ZodString;
1022
+ interval: z.ZodOptional<z.ZodString>;
1023
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
1024
+ scanner: z.ZodString;
1025
+ required: z.ZodOptional<z.ZodBoolean>;
1026
+ max_age: z.ZodOptional<z.ZodString>;
1027
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1028
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1029
+ }, "strip", z.ZodTypeAny, {
1030
+ scanner: string;
1031
+ required?: boolean | undefined;
1032
+ max_age?: string | undefined;
1033
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1034
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1035
+ }, {
1036
+ scanner: string;
1037
+ required?: boolean | undefined;
1038
+ max_age?: string | undefined;
1039
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1040
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1041
+ }>, "many">>;
1042
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1043
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1044
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1045
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1046
+ name: z.ZodString;
1047
+ type: z.ZodString;
1048
+ interval: z.ZodOptional<z.ZodString>;
1049
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
1050
+ scanner: z.ZodString;
1051
+ required: z.ZodOptional<z.ZodBoolean>;
1052
+ max_age: z.ZodOptional<z.ZodString>;
1053
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1054
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1055
+ }, "strip", z.ZodTypeAny, {
1056
+ scanner: string;
1057
+ required?: boolean | undefined;
1058
+ max_age?: string | undefined;
1059
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1060
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1061
+ }, {
1062
+ scanner: string;
1063
+ required?: boolean | undefined;
1064
+ max_age?: string | undefined;
1065
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1066
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1067
+ }>, "many">>;
1068
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1069
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1070
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1071
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
1072
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1073
+ name: z.ZodString;
1074
+ action_type: z.ZodString;
1075
+ decision_mode: z.ZodOptional<z.ZodString>;
1076
+ decision_model: z.ZodOptional<z.ZodString>;
1077
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1078
+ min_confidence: z.ZodOptional<z.ZodNumber>;
1079
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
1080
+ type: z.ZodLiteral<"signal">;
1081
+ scanner: z.ZodString;
1082
+ }, "strip", z.ZodTypeAny, {
1083
+ type: "signal";
1084
+ scanner: string;
1085
+ }, {
1086
+ type: "signal";
1087
+ scanner: string;
1088
+ }>, z.ZodObject<{
1089
+ type: z.ZodLiteral<"context">;
1090
+ scanner: z.ZodString;
1091
+ }, "strip", z.ZodTypeAny, {
1092
+ type: "context";
1093
+ scanner: string;
1094
+ }, {
1095
+ type: "context";
1096
+ scanner: string;
1097
+ }>, z.ZodObject<{
1098
+ type: z.ZodLiteral<"strategy">;
1099
+ value: z.ZodString;
1100
+ }, "strip", z.ZodTypeAny, {
1101
+ type: "strategy";
1102
+ value: string;
1103
+ }, {
1104
+ type: "strategy";
1105
+ value: string;
1106
+ }>, z.ZodObject<{
1107
+ type: z.ZodLiteral<"asset-trend">;
1108
+ value: z.ZodString;
1109
+ }, "strip", z.ZodTypeAny, {
1110
+ type: "asset-trend";
1111
+ value: string;
1112
+ }, {
1113
+ type: "asset-trend";
1114
+ value: string;
1115
+ }>]>, "many">>;
1116
+ decision_prompt: z.ZodOptional<z.ZodString>;
1117
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1118
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1119
+ name: z.ZodString;
1120
+ action_type: z.ZodString;
1121
+ decision_mode: z.ZodOptional<z.ZodString>;
1122
+ decision_model: z.ZodOptional<z.ZodString>;
1123
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1124
+ min_confidence: z.ZodOptional<z.ZodNumber>;
1125
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
1126
+ type: z.ZodLiteral<"signal">;
1127
+ scanner: z.ZodString;
1128
+ }, "strip", z.ZodTypeAny, {
1129
+ type: "signal";
1130
+ scanner: string;
1131
+ }, {
1132
+ type: "signal";
1133
+ scanner: string;
1134
+ }>, z.ZodObject<{
1135
+ type: z.ZodLiteral<"context">;
1136
+ scanner: z.ZodString;
1137
+ }, "strip", z.ZodTypeAny, {
1138
+ type: "context";
1139
+ scanner: string;
1140
+ }, {
1141
+ type: "context";
1142
+ scanner: string;
1143
+ }>, z.ZodObject<{
1144
+ type: z.ZodLiteral<"strategy">;
1145
+ value: z.ZodString;
1146
+ }, "strip", z.ZodTypeAny, {
1147
+ type: "strategy";
1148
+ value: string;
1149
+ }, {
1150
+ type: "strategy";
1151
+ value: string;
1152
+ }>, z.ZodObject<{
1153
+ type: z.ZodLiteral<"asset-trend">;
1154
+ value: z.ZodString;
1155
+ }, "strip", z.ZodTypeAny, {
1156
+ type: "asset-trend";
1157
+ value: string;
1158
+ }, {
1159
+ type: "asset-trend";
1160
+ value: string;
1161
+ }>]>, "many">>;
1162
+ decision_prompt: z.ZodOptional<z.ZodString>;
1163
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1164
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1165
+ name: z.ZodString;
1166
+ action_type: z.ZodString;
1167
+ decision_mode: z.ZodOptional<z.ZodString>;
1168
+ decision_model: z.ZodOptional<z.ZodString>;
1169
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1170
+ min_confidence: z.ZodOptional<z.ZodNumber>;
1171
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
1172
+ type: z.ZodLiteral<"signal">;
1173
+ scanner: z.ZodString;
1174
+ }, "strip", z.ZodTypeAny, {
1175
+ type: "signal";
1176
+ scanner: string;
1177
+ }, {
1178
+ type: "signal";
1179
+ scanner: string;
1180
+ }>, z.ZodObject<{
1181
+ type: z.ZodLiteral<"context">;
1182
+ scanner: z.ZodString;
1183
+ }, "strip", z.ZodTypeAny, {
1184
+ type: "context";
1185
+ scanner: string;
1186
+ }, {
1187
+ type: "context";
1188
+ scanner: string;
1189
+ }>, z.ZodObject<{
1190
+ type: z.ZodLiteral<"strategy">;
1191
+ value: z.ZodString;
1192
+ }, "strip", z.ZodTypeAny, {
1193
+ type: "strategy";
1194
+ value: string;
1195
+ }, {
1196
+ type: "strategy";
1197
+ value: string;
1198
+ }>, z.ZodObject<{
1199
+ type: z.ZodLiteral<"asset-trend">;
1200
+ value: z.ZodString;
1201
+ }, "strip", z.ZodTypeAny, {
1202
+ type: "asset-trend";
1203
+ value: string;
1204
+ }, {
1205
+ type: "asset-trend";
1206
+ value: string;
1207
+ }>]>, "many">>;
1208
+ decision_prompt: z.ZodOptional<z.ZodString>;
1209
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1210
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
1211
+ exit: z.ZodOptional<z.ZodObject<{
1212
+ engine: z.ZodOptional<z.ZodString>;
1213
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
1214
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
1215
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1216
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
1217
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1218
+ engine: z.ZodOptional<z.ZodString>;
1219
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
1220
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
1221
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1222
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
1223
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1224
+ engine: z.ZodOptional<z.ZodString>;
1225
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
1226
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
1227
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1228
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
1229
+ }, z.ZodTypeAny, "passthrough">>>;
1230
+ health: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1231
+ hooks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
1232
+ notifications: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1233
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1234
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
1235
+ name: z.ZodString;
1236
+ version: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1237
+ description: z.ZodOptional<z.ZodString>;
1238
+ strategy: z.ZodObject<{
1239
+ wallet: z.ZodString;
1240
+ budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1241
+ slots: z.ZodOptional<z.ZodNumber>;
1242
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
1243
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
1244
+ default_leverage: z.ZodOptional<z.ZodNumber>;
1245
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
1246
+ conservative: z.ZodOptional<z.ZodNumber>;
1247
+ moderate: z.ZodOptional<z.ZodNumber>;
1248
+ aggressive: z.ZodOptional<z.ZodNumber>;
1249
+ }, "strip", z.ZodTypeAny, {
1250
+ conservative?: number | undefined;
1251
+ moderate?: number | undefined;
1252
+ aggressive?: number | undefined;
1253
+ }, {
1254
+ conservative?: number | undefined;
1255
+ moderate?: number | undefined;
1256
+ aggressive?: number | undefined;
1257
+ }>>;
1258
+ enabled: z.ZodOptional<z.ZodBoolean>;
1259
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1260
+ wallet: z.ZodString;
1261
+ budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1262
+ slots: z.ZodOptional<z.ZodNumber>;
1263
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
1264
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
1265
+ default_leverage: z.ZodOptional<z.ZodNumber>;
1266
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
1267
+ conservative: z.ZodOptional<z.ZodNumber>;
1268
+ moderate: z.ZodOptional<z.ZodNumber>;
1269
+ aggressive: z.ZodOptional<z.ZodNumber>;
1270
+ }, "strip", z.ZodTypeAny, {
1271
+ conservative?: number | undefined;
1272
+ moderate?: number | undefined;
1273
+ aggressive?: number | undefined;
1274
+ }, {
1275
+ conservative?: number | undefined;
1276
+ moderate?: number | undefined;
1277
+ aggressive?: number | undefined;
1278
+ }>>;
1279
+ enabled: z.ZodOptional<z.ZodBoolean>;
1280
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1281
+ wallet: z.ZodString;
1282
+ budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1283
+ slots: z.ZodOptional<z.ZodNumber>;
1284
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
1285
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
1286
+ default_leverage: z.ZodOptional<z.ZodNumber>;
1287
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
1288
+ conservative: z.ZodOptional<z.ZodNumber>;
1289
+ moderate: z.ZodOptional<z.ZodNumber>;
1290
+ aggressive: z.ZodOptional<z.ZodNumber>;
1291
+ }, "strip", z.ZodTypeAny, {
1292
+ conservative?: number | undefined;
1293
+ moderate?: number | undefined;
1294
+ aggressive?: number | undefined;
1295
+ }, {
1296
+ conservative?: number | undefined;
1297
+ moderate?: number | undefined;
1298
+ aggressive?: number | undefined;
1299
+ }>>;
1300
+ enabled: z.ZodOptional<z.ZodBoolean>;
1301
+ }, z.ZodTypeAny, "passthrough">>;
1302
+ scanners: z.ZodOptional<z.ZodArray<z.ZodObject<{
1303
+ name: z.ZodString;
1304
+ type: z.ZodString;
1305
+ interval: z.ZodOptional<z.ZodString>;
1306
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
1307
+ scanner: z.ZodString;
1308
+ required: z.ZodOptional<z.ZodBoolean>;
1309
+ max_age: z.ZodOptional<z.ZodString>;
1310
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1311
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1312
+ }, "strip", z.ZodTypeAny, {
1313
+ scanner: string;
1314
+ required?: boolean | undefined;
1315
+ max_age?: string | undefined;
1316
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1317
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1318
+ }, {
1319
+ scanner: string;
1320
+ required?: boolean | undefined;
1321
+ max_age?: string | undefined;
1322
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1323
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1324
+ }>, "many">>;
1325
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1326
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1327
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1328
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1329
+ name: z.ZodString;
1330
+ type: z.ZodString;
1331
+ interval: z.ZodOptional<z.ZodString>;
1332
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
1333
+ scanner: z.ZodString;
1334
+ required: z.ZodOptional<z.ZodBoolean>;
1335
+ max_age: z.ZodOptional<z.ZodString>;
1336
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1337
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1338
+ }, "strip", z.ZodTypeAny, {
1339
+ scanner: string;
1340
+ required?: boolean | undefined;
1341
+ max_age?: string | undefined;
1342
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1343
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1344
+ }, {
1345
+ scanner: string;
1346
+ required?: boolean | undefined;
1347
+ max_age?: string | undefined;
1348
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1349
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1350
+ }>, "many">>;
1351
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1352
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1353
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1354
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1355
+ name: z.ZodString;
1356
+ type: z.ZodString;
1357
+ interval: z.ZodOptional<z.ZodString>;
1358
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
1359
+ scanner: z.ZodString;
1360
+ required: z.ZodOptional<z.ZodBoolean>;
1361
+ max_age: z.ZodOptional<z.ZodString>;
1362
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1363
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1364
+ }, "strip", z.ZodTypeAny, {
1365
+ scanner: string;
1366
+ required?: boolean | undefined;
1367
+ max_age?: string | undefined;
1368
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1369
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1370
+ }, {
1371
+ scanner: string;
1372
+ required?: boolean | undefined;
1373
+ max_age?: string | undefined;
1374
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1375
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1376
+ }>, "many">>;
1377
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1378
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1379
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1380
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
1381
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1382
+ name: z.ZodString;
1383
+ action_type: z.ZodString;
1384
+ decision_mode: z.ZodOptional<z.ZodString>;
1385
+ decision_model: z.ZodOptional<z.ZodString>;
1386
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1387
+ min_confidence: z.ZodOptional<z.ZodNumber>;
1388
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
1389
+ type: z.ZodLiteral<"signal">;
1390
+ scanner: z.ZodString;
1391
+ }, "strip", z.ZodTypeAny, {
1392
+ type: "signal";
1393
+ scanner: string;
1394
+ }, {
1395
+ type: "signal";
1396
+ scanner: string;
1397
+ }>, z.ZodObject<{
1398
+ type: z.ZodLiteral<"context">;
1399
+ scanner: z.ZodString;
1400
+ }, "strip", z.ZodTypeAny, {
1401
+ type: "context";
1402
+ scanner: string;
1403
+ }, {
1404
+ type: "context";
1405
+ scanner: string;
1406
+ }>, z.ZodObject<{
1407
+ type: z.ZodLiteral<"strategy">;
1408
+ value: z.ZodString;
1409
+ }, "strip", z.ZodTypeAny, {
1410
+ type: "strategy";
1411
+ value: string;
1412
+ }, {
1413
+ type: "strategy";
1414
+ value: string;
1415
+ }>, z.ZodObject<{
1416
+ type: z.ZodLiteral<"asset-trend">;
1417
+ value: z.ZodString;
1418
+ }, "strip", z.ZodTypeAny, {
1419
+ type: "asset-trend";
1420
+ value: string;
1421
+ }, {
1422
+ type: "asset-trend";
1423
+ value: string;
1424
+ }>]>, "many">>;
1425
+ decision_prompt: z.ZodOptional<z.ZodString>;
1426
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1427
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1428
+ name: z.ZodString;
1429
+ action_type: z.ZodString;
1430
+ decision_mode: z.ZodOptional<z.ZodString>;
1431
+ decision_model: z.ZodOptional<z.ZodString>;
1432
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1433
+ min_confidence: z.ZodOptional<z.ZodNumber>;
1434
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
1435
+ type: z.ZodLiteral<"signal">;
1436
+ scanner: z.ZodString;
1437
+ }, "strip", z.ZodTypeAny, {
1438
+ type: "signal";
1439
+ scanner: string;
1440
+ }, {
1441
+ type: "signal";
1442
+ scanner: string;
1443
+ }>, z.ZodObject<{
1444
+ type: z.ZodLiteral<"context">;
1445
+ scanner: z.ZodString;
1446
+ }, "strip", z.ZodTypeAny, {
1447
+ type: "context";
1448
+ scanner: string;
1449
+ }, {
1450
+ type: "context";
1451
+ scanner: string;
1452
+ }>, z.ZodObject<{
1453
+ type: z.ZodLiteral<"strategy">;
1454
+ value: z.ZodString;
1455
+ }, "strip", z.ZodTypeAny, {
1456
+ type: "strategy";
1457
+ value: string;
1458
+ }, {
1459
+ type: "strategy";
1460
+ value: string;
1461
+ }>, z.ZodObject<{
1462
+ type: z.ZodLiteral<"asset-trend">;
1463
+ value: z.ZodString;
1464
+ }, "strip", z.ZodTypeAny, {
1465
+ type: "asset-trend";
1466
+ value: string;
1467
+ }, {
1468
+ type: "asset-trend";
1469
+ value: string;
1470
+ }>]>, "many">>;
1471
+ decision_prompt: z.ZodOptional<z.ZodString>;
1472
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1473
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1474
+ name: z.ZodString;
1475
+ action_type: z.ZodString;
1476
+ decision_mode: z.ZodOptional<z.ZodString>;
1477
+ decision_model: z.ZodOptional<z.ZodString>;
1478
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1479
+ min_confidence: z.ZodOptional<z.ZodNumber>;
1480
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
1481
+ type: z.ZodLiteral<"signal">;
1482
+ scanner: z.ZodString;
1483
+ }, "strip", z.ZodTypeAny, {
1484
+ type: "signal";
1485
+ scanner: string;
1486
+ }, {
1487
+ type: "signal";
1488
+ scanner: string;
1489
+ }>, z.ZodObject<{
1490
+ type: z.ZodLiteral<"context">;
1491
+ scanner: z.ZodString;
1492
+ }, "strip", z.ZodTypeAny, {
1493
+ type: "context";
1494
+ scanner: string;
1495
+ }, {
1496
+ type: "context";
1497
+ scanner: string;
1498
+ }>, z.ZodObject<{
1499
+ type: z.ZodLiteral<"strategy">;
1500
+ value: z.ZodString;
1501
+ }, "strip", z.ZodTypeAny, {
1502
+ type: "strategy";
1503
+ value: string;
1504
+ }, {
1505
+ type: "strategy";
1506
+ value: string;
1507
+ }>, z.ZodObject<{
1508
+ type: z.ZodLiteral<"asset-trend">;
1509
+ value: z.ZodString;
1510
+ }, "strip", z.ZodTypeAny, {
1511
+ type: "asset-trend";
1512
+ value: string;
1513
+ }, {
1514
+ type: "asset-trend";
1515
+ value: string;
1516
+ }>]>, "many">>;
1517
+ decision_prompt: z.ZodOptional<z.ZodString>;
1518
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1519
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
1520
+ exit: z.ZodOptional<z.ZodObject<{
1521
+ engine: z.ZodOptional<z.ZodString>;
1522
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
1523
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
1524
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1525
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
1526
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1527
+ engine: z.ZodOptional<z.ZodString>;
1528
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
1529
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
1530
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1531
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
1532
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1533
+ engine: z.ZodOptional<z.ZodString>;
1534
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
1535
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
1536
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1537
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
1538
+ }, z.ZodTypeAny, "passthrough">>>;
1539
+ health: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1540
+ hooks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
1541
+ notifications: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1542
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1543
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1544
+ name: z.ZodString;
1545
+ version: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1546
+ description: z.ZodOptional<z.ZodString>;
1547
+ strategy: z.ZodObject<{
1548
+ wallet: z.ZodString;
1549
+ budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1550
+ slots: z.ZodOptional<z.ZodNumber>;
1551
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
1552
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
1553
+ default_leverage: z.ZodOptional<z.ZodNumber>;
1554
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
1555
+ conservative: z.ZodOptional<z.ZodNumber>;
1556
+ moderate: z.ZodOptional<z.ZodNumber>;
1557
+ aggressive: z.ZodOptional<z.ZodNumber>;
1558
+ }, "strip", z.ZodTypeAny, {
1559
+ conservative?: number | undefined;
1560
+ moderate?: number | undefined;
1561
+ aggressive?: number | undefined;
1562
+ }, {
1563
+ conservative?: number | undefined;
1564
+ moderate?: number | undefined;
1565
+ aggressive?: number | undefined;
1566
+ }>>;
1567
+ enabled: z.ZodOptional<z.ZodBoolean>;
1568
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1569
+ wallet: z.ZodString;
1570
+ budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1571
+ slots: z.ZodOptional<z.ZodNumber>;
1572
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
1573
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
1574
+ default_leverage: z.ZodOptional<z.ZodNumber>;
1575
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
1576
+ conservative: z.ZodOptional<z.ZodNumber>;
1577
+ moderate: z.ZodOptional<z.ZodNumber>;
1578
+ aggressive: z.ZodOptional<z.ZodNumber>;
1579
+ }, "strip", z.ZodTypeAny, {
1580
+ conservative?: number | undefined;
1581
+ moderate?: number | undefined;
1582
+ aggressive?: number | undefined;
1583
+ }, {
1584
+ conservative?: number | undefined;
1585
+ moderate?: number | undefined;
1586
+ aggressive?: number | undefined;
1587
+ }>>;
1588
+ enabled: z.ZodOptional<z.ZodBoolean>;
1589
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1590
+ wallet: z.ZodString;
1591
+ budget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1592
+ slots: z.ZodOptional<z.ZodNumber>;
1593
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
1594
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
1595
+ default_leverage: z.ZodOptional<z.ZodNumber>;
1596
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
1597
+ conservative: z.ZodOptional<z.ZodNumber>;
1598
+ moderate: z.ZodOptional<z.ZodNumber>;
1599
+ aggressive: z.ZodOptional<z.ZodNumber>;
1600
+ }, "strip", z.ZodTypeAny, {
1601
+ conservative?: number | undefined;
1602
+ moderate?: number | undefined;
1603
+ aggressive?: number | undefined;
1604
+ }, {
1605
+ conservative?: number | undefined;
1606
+ moderate?: number | undefined;
1607
+ aggressive?: number | undefined;
1608
+ }>>;
1609
+ enabled: z.ZodOptional<z.ZodBoolean>;
1610
+ }, z.ZodTypeAny, "passthrough">>;
1611
+ scanners: z.ZodOptional<z.ZodArray<z.ZodObject<{
1612
+ name: z.ZodString;
1613
+ type: z.ZodString;
1614
+ interval: z.ZodOptional<z.ZodString>;
1615
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
1616
+ scanner: z.ZodString;
1617
+ required: z.ZodOptional<z.ZodBoolean>;
1618
+ max_age: z.ZodOptional<z.ZodString>;
1619
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1620
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1621
+ }, "strip", z.ZodTypeAny, {
1622
+ scanner: string;
1623
+ required?: boolean | undefined;
1624
+ max_age?: string | undefined;
1625
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1626
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1627
+ }, {
1628
+ scanner: string;
1629
+ required?: boolean | undefined;
1630
+ max_age?: string | undefined;
1631
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1632
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1633
+ }>, "many">>;
1634
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1635
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1636
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1637
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1638
+ name: z.ZodString;
1639
+ type: z.ZodString;
1640
+ interval: z.ZodOptional<z.ZodString>;
1641
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
1642
+ scanner: z.ZodString;
1643
+ required: z.ZodOptional<z.ZodBoolean>;
1644
+ max_age: z.ZodOptional<z.ZodString>;
1645
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1646
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1647
+ }, "strip", z.ZodTypeAny, {
1648
+ scanner: string;
1649
+ required?: boolean | undefined;
1650
+ max_age?: string | undefined;
1651
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1652
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1653
+ }, {
1654
+ scanner: string;
1655
+ required?: boolean | undefined;
1656
+ max_age?: string | undefined;
1657
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1658
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1659
+ }>, "many">>;
1660
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1661
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1662
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1663
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1664
+ name: z.ZodString;
1665
+ type: z.ZodString;
1666
+ interval: z.ZodOptional<z.ZodString>;
1667
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
1668
+ scanner: z.ZodString;
1669
+ required: z.ZodOptional<z.ZodBoolean>;
1670
+ max_age: z.ZodOptional<z.ZodString>;
1671
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1672
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
1673
+ }, "strip", z.ZodTypeAny, {
1674
+ scanner: string;
1675
+ required?: boolean | undefined;
1676
+ max_age?: string | undefined;
1677
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1678
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1679
+ }, {
1680
+ scanner: string;
1681
+ required?: boolean | undefined;
1682
+ max_age?: string | undefined;
1683
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
1684
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
1685
+ }>, "many">>;
1686
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1687
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1688
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1689
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
1690
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1691
+ name: z.ZodString;
1692
+ action_type: z.ZodString;
1693
+ decision_mode: z.ZodOptional<z.ZodString>;
1694
+ decision_model: z.ZodOptional<z.ZodString>;
1695
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1696
+ min_confidence: z.ZodOptional<z.ZodNumber>;
1697
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
1698
+ type: z.ZodLiteral<"signal">;
1699
+ scanner: z.ZodString;
1700
+ }, "strip", z.ZodTypeAny, {
1701
+ type: "signal";
1702
+ scanner: string;
1703
+ }, {
1704
+ type: "signal";
1705
+ scanner: string;
1706
+ }>, z.ZodObject<{
1707
+ type: z.ZodLiteral<"context">;
1708
+ scanner: z.ZodString;
1709
+ }, "strip", z.ZodTypeAny, {
1710
+ type: "context";
1711
+ scanner: string;
1712
+ }, {
1713
+ type: "context";
1714
+ scanner: string;
1715
+ }>, z.ZodObject<{
1716
+ type: z.ZodLiteral<"strategy">;
1717
+ value: z.ZodString;
1718
+ }, "strip", z.ZodTypeAny, {
1719
+ type: "strategy";
1720
+ value: string;
1721
+ }, {
1722
+ type: "strategy";
1723
+ value: string;
1724
+ }>, z.ZodObject<{
1725
+ type: z.ZodLiteral<"asset-trend">;
1726
+ value: z.ZodString;
1727
+ }, "strip", z.ZodTypeAny, {
1728
+ type: "asset-trend";
1729
+ value: string;
1730
+ }, {
1731
+ type: "asset-trend";
1732
+ value: string;
1733
+ }>]>, "many">>;
1734
+ decision_prompt: z.ZodOptional<z.ZodString>;
1735
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1736
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1737
+ name: z.ZodString;
1738
+ action_type: z.ZodString;
1739
+ decision_mode: z.ZodOptional<z.ZodString>;
1740
+ decision_model: z.ZodOptional<z.ZodString>;
1741
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1742
+ min_confidence: z.ZodOptional<z.ZodNumber>;
1743
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
1744
+ type: z.ZodLiteral<"signal">;
1745
+ scanner: z.ZodString;
1746
+ }, "strip", z.ZodTypeAny, {
1747
+ type: "signal";
1748
+ scanner: string;
1749
+ }, {
1750
+ type: "signal";
1751
+ scanner: string;
1752
+ }>, z.ZodObject<{
1753
+ type: z.ZodLiteral<"context">;
1754
+ scanner: z.ZodString;
1755
+ }, "strip", z.ZodTypeAny, {
1756
+ type: "context";
1757
+ scanner: string;
1758
+ }, {
1759
+ type: "context";
1760
+ scanner: string;
1761
+ }>, z.ZodObject<{
1762
+ type: z.ZodLiteral<"strategy">;
1763
+ value: z.ZodString;
1764
+ }, "strip", z.ZodTypeAny, {
1765
+ type: "strategy";
1766
+ value: string;
1767
+ }, {
1768
+ type: "strategy";
1769
+ value: string;
1770
+ }>, z.ZodObject<{
1771
+ type: z.ZodLiteral<"asset-trend">;
1772
+ value: z.ZodString;
1773
+ }, "strip", z.ZodTypeAny, {
1774
+ type: "asset-trend";
1775
+ value: string;
1776
+ }, {
1777
+ type: "asset-trend";
1778
+ value: string;
1779
+ }>]>, "many">>;
1780
+ decision_prompt: z.ZodOptional<z.ZodString>;
1781
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1782
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1783
+ name: z.ZodString;
1784
+ action_type: z.ZodString;
1785
+ decision_mode: z.ZodOptional<z.ZodString>;
1786
+ decision_model: z.ZodOptional<z.ZodString>;
1787
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1788
+ min_confidence: z.ZodOptional<z.ZodNumber>;
1789
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
1790
+ type: z.ZodLiteral<"signal">;
1791
+ scanner: z.ZodString;
1792
+ }, "strip", z.ZodTypeAny, {
1793
+ type: "signal";
1794
+ scanner: string;
1795
+ }, {
1796
+ type: "signal";
1797
+ scanner: string;
1798
+ }>, z.ZodObject<{
1799
+ type: z.ZodLiteral<"context">;
1800
+ scanner: z.ZodString;
1801
+ }, "strip", z.ZodTypeAny, {
1802
+ type: "context";
1803
+ scanner: string;
1804
+ }, {
1805
+ type: "context";
1806
+ scanner: string;
1807
+ }>, z.ZodObject<{
1808
+ type: z.ZodLiteral<"strategy">;
1809
+ value: z.ZodString;
1810
+ }, "strip", z.ZodTypeAny, {
1811
+ type: "strategy";
1812
+ value: string;
1813
+ }, {
1814
+ type: "strategy";
1815
+ value: string;
1816
+ }>, z.ZodObject<{
1817
+ type: z.ZodLiteral<"asset-trend">;
1818
+ value: z.ZodString;
1819
+ }, "strip", z.ZodTypeAny, {
1820
+ type: "asset-trend";
1821
+ value: string;
1822
+ }, {
1823
+ type: "asset-trend";
1824
+ value: string;
1825
+ }>]>, "many">>;
1826
+ decision_prompt: z.ZodOptional<z.ZodString>;
1827
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1828
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
1829
+ exit: z.ZodOptional<z.ZodObject<{
1830
+ engine: z.ZodOptional<z.ZodString>;
1831
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
1832
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
1833
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1834
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
1835
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1836
+ engine: z.ZodOptional<z.ZodString>;
1837
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
1838
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
1839
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1840
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
1841
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1842
+ engine: z.ZodOptional<z.ZodString>;
1843
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
1844
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
1845
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1846
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
1847
+ }, z.ZodTypeAny, "passthrough">>>;
1848
+ health: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1849
+ hooks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
1850
+ notifications: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1851
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1852
+ }, z.ZodTypeAny, "passthrough">>;
1853
+ export type RuntimeConfig = z.infer<typeof runtimeConfigSchema>;
1854
+ export type RuntimeStrategy = z.infer<typeof strategyEntrySchema>;
1855
+ export type RuntimeScanner = z.infer<typeof scannerEntrySchema>;
1856
+ export type RuntimeAction = z.infer<typeof actionEntrySchema>;
1857
+ export type RuntimeExit = z.infer<typeof exitBlockSchema>;
1858
+ export {};
1859
+ //# sourceMappingURL=runtime-schema.d.ts.map