@senpi/runtime 1.1.0-dev.runtime-phase-2.20260514144638 → 1.1.0-dev.runtime-phase-2.20260519120952

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 (75) hide show
  1. package/dist/actions/llm-decision/anthropic-llm-decision.d.ts +9 -0
  2. package/dist/actions/llm-decision/anthropic-llm-decision.d.ts.map +1 -1
  3. package/dist/actions/llm-decision/anthropic-llm-decision.js +74 -3
  4. package/dist/actions/llm-decision/anthropic-llm-decision.js.map +1 -1
  5. package/dist/actions/llm-decision/factory.d.ts +6 -0
  6. package/dist/actions/llm-decision/factory.d.ts.map +1 -1
  7. package/dist/actions/llm-decision/factory.js +2 -0
  8. package/dist/actions/llm-decision/factory.js.map +1 -1
  9. package/dist/actions/llm-decision/openclaw-llm-decision.d.ts.map +1 -1
  10. package/dist/actions/llm-decision/openclaw-llm-decision.js +28 -0
  11. package/dist/actions/llm-decision/openclaw-llm-decision.js.map +1 -1
  12. package/dist/cli/senpi-commands.d.ts.map +1 -1
  13. package/dist/cli/senpi-commands.js +73 -6
  14. package/dist/cli/senpi-commands.js.map +1 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +18 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/runtime/run.d.ts +6 -0
  19. package/dist/runtime/run.d.ts.map +1 -1
  20. package/dist/runtime/run.js +1 -0
  21. package/dist/runtime/run.js.map +1 -1
  22. package/dist/runtime/runtime-schema.d.ts +1019 -1
  23. package/dist/runtime/runtime-schema.d.ts.map +1 -1
  24. package/dist/runtime/runtime-schema.js +34 -0
  25. package/dist/runtime/runtime-schema.js.map +1 -1
  26. package/dist/runtime/runtime.d.ts +8 -0
  27. package/dist/runtime/runtime.d.ts.map +1 -1
  28. package/dist/runtime/runtime.js +57 -37
  29. package/dist/runtime/runtime.js.map +1 -1
  30. package/dist/skills-manager/constants.d.ts +34 -0
  31. package/dist/skills-manager/constants.d.ts.map +1 -1
  32. package/dist/skills-manager/constants.js +51 -0
  33. package/dist/skills-manager/constants.js.map +1 -1
  34. package/dist/skills-manager/coordinator.d.ts.map +1 -1
  35. package/dist/skills-manager/coordinator.js +92 -15
  36. package/dist/skills-manager/coordinator.js.map +1 -1
  37. package/dist/skills-manager/types.d.ts +12 -0
  38. package/dist/skills-manager/types.d.ts.map +1 -1
  39. package/dist/skills-manager/utils.d.ts +18 -0
  40. package/dist/skills-manager/utils.d.ts.map +1 -1
  41. package/dist/skills-manager/utils.js +24 -0
  42. package/dist/skills-manager/utils.js.map +1 -1
  43. package/dist/tracking/context.d.ts +31 -0
  44. package/dist/tracking/context.d.ts.map +1 -0
  45. package/dist/tracking/context.js +20 -0
  46. package/dist/tracking/context.js.map +1 -0
  47. package/dist/tracking/spans/constants.d.ts +15 -0
  48. package/dist/tracking/spans/constants.d.ts.map +1 -0
  49. package/dist/tracking/spans/constants.js +18 -0
  50. package/dist/tracking/spans/constants.js.map +1 -0
  51. package/dist/tracking/spans/index.d.ts +13 -0
  52. package/dist/tracking/spans/index.d.ts.map +1 -0
  53. package/dist/tracking/spans/index.js +16 -0
  54. package/dist/tracking/spans/index.js.map +1 -0
  55. package/dist/tracking/spans/plugin-span-tracker.d.ts +3 -0
  56. package/dist/tracking/spans/plugin-span-tracker.d.ts.map +1 -0
  57. package/dist/tracking/spans/plugin-span-tracker.js +24 -0
  58. package/dist/tracking/spans/plugin-span-tracker.js.map +1 -0
  59. package/dist/tracking/spans/span-hooks.d.ts +26 -0
  60. package/dist/tracking/spans/span-hooks.d.ts.map +1 -0
  61. package/dist/tracking/spans/span-hooks.js +365 -0
  62. package/dist/tracking/spans/span-hooks.js.map +1 -0
  63. package/dist/tracking/spans/span-tracker.d.ts +120 -0
  64. package/dist/tracking/spans/span-tracker.d.ts.map +1 -0
  65. package/dist/tracking/spans/span-tracker.js +604 -0
  66. package/dist/tracking/spans/span-tracker.js.map +1 -0
  67. package/dist/tracking/spans/span-transport.d.ts +34 -0
  68. package/dist/tracking/spans/span-transport.d.ts.map +1 -0
  69. package/dist/tracking/spans/span-transport.js +121 -0
  70. package/dist/tracking/spans/span-transport.js.map +1 -0
  71. package/dist/tracking/spans/types.d.ts +78 -0
  72. package/dist/tracking/spans/types.d.ts.map +1 -0
  73. package/dist/tracking/spans/types.js +6 -0
  74. package/dist/tracking/spans/types.js.map +1 -0
  75. package/package.json +1 -1
@@ -449,7 +449,7 @@ declare const exitBlockSchema: z.ZodObject<{
449
449
  execution_timeout_seconds?: number | undefined;
450
450
  }>>;
451
451
  }, z.ZodTypeAny, "passthrough">>;
452
- export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
452
+ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
453
453
  name: z.ZodString;
454
454
  version: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
455
455
  description: z.ZodOptional<z.ZodString>;
@@ -2994,6 +2994,1024 @@ export declare const runtimeConfigSchema: z.ZodEffects<z.ZodObject<{
2994
2994
  }, z.ZodTypeAny, "passthrough"> | undefined;
2995
2995
  }>>;
2996
2996
  advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2997
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
2998
+ name: z.ZodString;
2999
+ version: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
3000
+ description: z.ZodOptional<z.ZodString>;
3001
+ strategy: z.ZodObject<{
3002
+ wallet: z.ZodString;
3003
+ slots: z.ZodOptional<z.ZodNumber>;
3004
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
3005
+ margin_pct: z.ZodOptional<z.ZodNumber>;
3006
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
3007
+ default_leverage: z.ZodOptional<z.ZodNumber>;
3008
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
3009
+ conservative: z.ZodOptional<z.ZodNumber>;
3010
+ moderate: z.ZodOptional<z.ZodNumber>;
3011
+ aggressive: z.ZodOptional<z.ZodNumber>;
3012
+ }, "strip", z.ZodTypeAny, {
3013
+ conservative?: number | undefined;
3014
+ moderate?: number | undefined;
3015
+ aggressive?: number | undefined;
3016
+ }, {
3017
+ conservative?: number | undefined;
3018
+ moderate?: number | undefined;
3019
+ aggressive?: number | undefined;
3020
+ }>>;
3021
+ enabled: z.ZodOptional<z.ZodBoolean>;
3022
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
3023
+ wallet: z.ZodString;
3024
+ slots: z.ZodOptional<z.ZodNumber>;
3025
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
3026
+ margin_pct: z.ZodOptional<z.ZodNumber>;
3027
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
3028
+ default_leverage: z.ZodOptional<z.ZodNumber>;
3029
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
3030
+ conservative: z.ZodOptional<z.ZodNumber>;
3031
+ moderate: z.ZodOptional<z.ZodNumber>;
3032
+ aggressive: z.ZodOptional<z.ZodNumber>;
3033
+ }, "strip", z.ZodTypeAny, {
3034
+ conservative?: number | undefined;
3035
+ moderate?: number | undefined;
3036
+ aggressive?: number | undefined;
3037
+ }, {
3038
+ conservative?: number | undefined;
3039
+ moderate?: number | undefined;
3040
+ aggressive?: number | undefined;
3041
+ }>>;
3042
+ enabled: z.ZodOptional<z.ZodBoolean>;
3043
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3044
+ wallet: z.ZodString;
3045
+ slots: z.ZodOptional<z.ZodNumber>;
3046
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
3047
+ margin_pct: z.ZodOptional<z.ZodNumber>;
3048
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
3049
+ default_leverage: z.ZodOptional<z.ZodNumber>;
3050
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
3051
+ conservative: z.ZodOptional<z.ZodNumber>;
3052
+ moderate: z.ZodOptional<z.ZodNumber>;
3053
+ aggressive: z.ZodOptional<z.ZodNumber>;
3054
+ }, "strip", z.ZodTypeAny, {
3055
+ conservative?: number | undefined;
3056
+ moderate?: number | undefined;
3057
+ aggressive?: number | undefined;
3058
+ }, {
3059
+ conservative?: number | undefined;
3060
+ moderate?: number | undefined;
3061
+ aggressive?: number | undefined;
3062
+ }>>;
3063
+ enabled: z.ZodOptional<z.ZodBoolean>;
3064
+ }, z.ZodTypeAny, "passthrough">>;
3065
+ scanners: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
3066
+ name: z.ZodString;
3067
+ type: z.ZodString;
3068
+ interval: z.ZodOptional<z.ZodString>;
3069
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
3070
+ scanner: z.ZodString;
3071
+ required: z.ZodOptional<z.ZodBoolean>;
3072
+ max_age: z.ZodOptional<z.ZodString>;
3073
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3074
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3075
+ }, "strip", z.ZodTypeAny, {
3076
+ scanner: string;
3077
+ required?: boolean | undefined;
3078
+ max_age?: string | undefined;
3079
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3080
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3081
+ }, {
3082
+ scanner: string;
3083
+ required?: boolean | undefined;
3084
+ max_age?: string | undefined;
3085
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3086
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3087
+ }>, "many">>;
3088
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3089
+ outputs: z.ZodOptional<z.ZodObject<{
3090
+ signals: z.ZodBoolean;
3091
+ context: z.ZodBoolean;
3092
+ }, "strip", z.ZodTypeAny, {
3093
+ context: boolean;
3094
+ signals: boolean;
3095
+ }, {
3096
+ context: boolean;
3097
+ signals: boolean;
3098
+ }>>;
3099
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
3100
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
3101
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3102
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3103
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
3104
+ name: z.ZodString;
3105
+ type: z.ZodString;
3106
+ interval: z.ZodOptional<z.ZodString>;
3107
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
3108
+ scanner: z.ZodString;
3109
+ required: z.ZodOptional<z.ZodBoolean>;
3110
+ max_age: z.ZodOptional<z.ZodString>;
3111
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3112
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3113
+ }, "strip", z.ZodTypeAny, {
3114
+ scanner: string;
3115
+ required?: boolean | undefined;
3116
+ max_age?: string | undefined;
3117
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3118
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3119
+ }, {
3120
+ scanner: string;
3121
+ required?: boolean | undefined;
3122
+ max_age?: string | undefined;
3123
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3124
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3125
+ }>, "many">>;
3126
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3127
+ outputs: z.ZodOptional<z.ZodObject<{
3128
+ signals: z.ZodBoolean;
3129
+ context: z.ZodBoolean;
3130
+ }, "strip", z.ZodTypeAny, {
3131
+ context: boolean;
3132
+ signals: boolean;
3133
+ }, {
3134
+ context: boolean;
3135
+ signals: boolean;
3136
+ }>>;
3137
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
3138
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
3139
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3140
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3141
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3142
+ name: z.ZodString;
3143
+ type: z.ZodString;
3144
+ interval: z.ZodOptional<z.ZodString>;
3145
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
3146
+ scanner: z.ZodString;
3147
+ required: z.ZodOptional<z.ZodBoolean>;
3148
+ max_age: z.ZodOptional<z.ZodString>;
3149
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3150
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3151
+ }, "strip", z.ZodTypeAny, {
3152
+ scanner: string;
3153
+ required?: boolean | undefined;
3154
+ max_age?: string | undefined;
3155
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3156
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3157
+ }, {
3158
+ scanner: string;
3159
+ required?: boolean | undefined;
3160
+ max_age?: string | undefined;
3161
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3162
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3163
+ }>, "many">>;
3164
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3165
+ outputs: z.ZodOptional<z.ZodObject<{
3166
+ signals: z.ZodBoolean;
3167
+ context: z.ZodBoolean;
3168
+ }, "strip", z.ZodTypeAny, {
3169
+ context: boolean;
3170
+ signals: boolean;
3171
+ }, {
3172
+ context: boolean;
3173
+ signals: boolean;
3174
+ }>>;
3175
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
3176
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
3177
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3178
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3179
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
3180
+ name: z.ZodString;
3181
+ type: z.ZodString;
3182
+ interval: z.ZodOptional<z.ZodString>;
3183
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
3184
+ scanner: z.ZodString;
3185
+ required: z.ZodOptional<z.ZodBoolean>;
3186
+ max_age: z.ZodOptional<z.ZodString>;
3187
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3188
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3189
+ }, "strip", z.ZodTypeAny, {
3190
+ scanner: string;
3191
+ required?: boolean | undefined;
3192
+ max_age?: string | undefined;
3193
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3194
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3195
+ }, {
3196
+ scanner: string;
3197
+ required?: boolean | undefined;
3198
+ max_age?: string | undefined;
3199
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3200
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3201
+ }>, "many">>;
3202
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3203
+ outputs: z.ZodOptional<z.ZodObject<{
3204
+ signals: z.ZodBoolean;
3205
+ context: z.ZodBoolean;
3206
+ }, "strip", z.ZodTypeAny, {
3207
+ context: boolean;
3208
+ signals: boolean;
3209
+ }, {
3210
+ context: boolean;
3211
+ signals: boolean;
3212
+ }>>;
3213
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
3214
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
3215
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3216
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3217
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3218
+ name: z.ZodString;
3219
+ type: z.ZodString;
3220
+ interval: z.ZodOptional<z.ZodString>;
3221
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
3222
+ scanner: z.ZodString;
3223
+ required: z.ZodOptional<z.ZodBoolean>;
3224
+ max_age: z.ZodOptional<z.ZodString>;
3225
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3226
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3227
+ }, "strip", z.ZodTypeAny, {
3228
+ scanner: string;
3229
+ required?: boolean | undefined;
3230
+ max_age?: string | undefined;
3231
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3232
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3233
+ }, {
3234
+ scanner: string;
3235
+ required?: boolean | undefined;
3236
+ max_age?: string | undefined;
3237
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3238
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3239
+ }>, "many">>;
3240
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3241
+ outputs: z.ZodOptional<z.ZodObject<{
3242
+ signals: z.ZodBoolean;
3243
+ context: z.ZodBoolean;
3244
+ }, "strip", z.ZodTypeAny, {
3245
+ context: boolean;
3246
+ signals: boolean;
3247
+ }, {
3248
+ context: boolean;
3249
+ signals: boolean;
3250
+ }>>;
3251
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
3252
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
3253
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3254
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3255
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
3256
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
3257
+ name: z.ZodString;
3258
+ action_type: z.ZodString;
3259
+ decision_mode: z.ZodOptional<z.ZodString>;
3260
+ decision_model: z.ZodOptional<z.ZodString>;
3261
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3262
+ min_confidence: z.ZodOptional<z.ZodNumber>;
3263
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
3264
+ type: z.ZodLiteral<"signal">;
3265
+ scanner: z.ZodString;
3266
+ }, "strip", z.ZodTypeAny, {
3267
+ type: "signal";
3268
+ scanner: string;
3269
+ }, {
3270
+ type: "signal";
3271
+ scanner: string;
3272
+ }>, z.ZodObject<{
3273
+ type: z.ZodLiteral<"context">;
3274
+ scanner: z.ZodString;
3275
+ }, "strip", z.ZodTypeAny, {
3276
+ type: "context";
3277
+ scanner: string;
3278
+ }, {
3279
+ type: "context";
3280
+ scanner: string;
3281
+ }>, z.ZodObject<{
3282
+ type: z.ZodLiteral<"strategy">;
3283
+ value: z.ZodString;
3284
+ }, "strip", z.ZodTypeAny, {
3285
+ type: "strategy";
3286
+ value: string;
3287
+ }, {
3288
+ type: "strategy";
3289
+ value: string;
3290
+ }>, z.ZodObject<{
3291
+ type: z.ZodLiteral<"asset-trend">;
3292
+ value: z.ZodString;
3293
+ }, "strip", z.ZodTypeAny, {
3294
+ type: "asset-trend";
3295
+ value: string;
3296
+ }, {
3297
+ type: "asset-trend";
3298
+ value: string;
3299
+ }>]>, "many">>;
3300
+ decision_prompt: z.ZodOptional<z.ZodString>;
3301
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3302
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
3303
+ name: z.ZodString;
3304
+ action_type: z.ZodString;
3305
+ decision_mode: z.ZodOptional<z.ZodString>;
3306
+ decision_model: z.ZodOptional<z.ZodString>;
3307
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3308
+ min_confidence: z.ZodOptional<z.ZodNumber>;
3309
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
3310
+ type: z.ZodLiteral<"signal">;
3311
+ scanner: z.ZodString;
3312
+ }, "strip", z.ZodTypeAny, {
3313
+ type: "signal";
3314
+ scanner: string;
3315
+ }, {
3316
+ type: "signal";
3317
+ scanner: string;
3318
+ }>, z.ZodObject<{
3319
+ type: z.ZodLiteral<"context">;
3320
+ scanner: z.ZodString;
3321
+ }, "strip", z.ZodTypeAny, {
3322
+ type: "context";
3323
+ scanner: string;
3324
+ }, {
3325
+ type: "context";
3326
+ scanner: string;
3327
+ }>, z.ZodObject<{
3328
+ type: z.ZodLiteral<"strategy">;
3329
+ value: z.ZodString;
3330
+ }, "strip", z.ZodTypeAny, {
3331
+ type: "strategy";
3332
+ value: string;
3333
+ }, {
3334
+ type: "strategy";
3335
+ value: string;
3336
+ }>, z.ZodObject<{
3337
+ type: z.ZodLiteral<"asset-trend">;
3338
+ value: z.ZodString;
3339
+ }, "strip", z.ZodTypeAny, {
3340
+ type: "asset-trend";
3341
+ value: string;
3342
+ }, {
3343
+ type: "asset-trend";
3344
+ value: string;
3345
+ }>]>, "many">>;
3346
+ decision_prompt: z.ZodOptional<z.ZodString>;
3347
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3348
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3349
+ name: z.ZodString;
3350
+ action_type: z.ZodString;
3351
+ decision_mode: z.ZodOptional<z.ZodString>;
3352
+ decision_model: z.ZodOptional<z.ZodString>;
3353
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3354
+ min_confidence: z.ZodOptional<z.ZodNumber>;
3355
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
3356
+ type: z.ZodLiteral<"signal">;
3357
+ scanner: z.ZodString;
3358
+ }, "strip", z.ZodTypeAny, {
3359
+ type: "signal";
3360
+ scanner: string;
3361
+ }, {
3362
+ type: "signal";
3363
+ scanner: string;
3364
+ }>, z.ZodObject<{
3365
+ type: z.ZodLiteral<"context">;
3366
+ scanner: z.ZodString;
3367
+ }, "strip", z.ZodTypeAny, {
3368
+ type: "context";
3369
+ scanner: string;
3370
+ }, {
3371
+ type: "context";
3372
+ scanner: string;
3373
+ }>, z.ZodObject<{
3374
+ type: z.ZodLiteral<"strategy">;
3375
+ value: z.ZodString;
3376
+ }, "strip", z.ZodTypeAny, {
3377
+ type: "strategy";
3378
+ value: string;
3379
+ }, {
3380
+ type: "strategy";
3381
+ value: string;
3382
+ }>, z.ZodObject<{
3383
+ type: z.ZodLiteral<"asset-trend">;
3384
+ value: z.ZodString;
3385
+ }, "strip", z.ZodTypeAny, {
3386
+ type: "asset-trend";
3387
+ value: string;
3388
+ }, {
3389
+ type: "asset-trend";
3390
+ value: string;
3391
+ }>]>, "many">>;
3392
+ decision_prompt: z.ZodOptional<z.ZodString>;
3393
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3394
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
3395
+ exit: z.ZodOptional<z.ZodObject<{
3396
+ engine: z.ZodOptional<z.ZodString>;
3397
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
3398
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
3399
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3400
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
3401
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
3402
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
3403
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
3404
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
3405
+ }, "strip", z.ZodTypeAny, {
3406
+ ensure_execution_as_taker?: boolean | undefined;
3407
+ execution_timeout_seconds?: number | undefined;
3408
+ }, {
3409
+ ensure_execution_as_taker?: boolean | undefined;
3410
+ execution_timeout_seconds?: number | undefined;
3411
+ }>>;
3412
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
3413
+ engine: z.ZodOptional<z.ZodString>;
3414
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
3415
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
3416
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3417
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
3418
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
3419
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
3420
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
3421
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
3422
+ }, "strip", z.ZodTypeAny, {
3423
+ ensure_execution_as_taker?: boolean | undefined;
3424
+ execution_timeout_seconds?: number | undefined;
3425
+ }, {
3426
+ ensure_execution_as_taker?: boolean | undefined;
3427
+ execution_timeout_seconds?: number | undefined;
3428
+ }>>;
3429
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3430
+ engine: z.ZodOptional<z.ZodString>;
3431
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
3432
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
3433
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3434
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
3435
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
3436
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
3437
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
3438
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
3439
+ }, "strip", z.ZodTypeAny, {
3440
+ ensure_execution_as_taker?: boolean | undefined;
3441
+ execution_timeout_seconds?: number | undefined;
3442
+ }, {
3443
+ ensure_execution_as_taker?: boolean | undefined;
3444
+ execution_timeout_seconds?: number | undefined;
3445
+ }>>;
3446
+ }, z.ZodTypeAny, "passthrough">>>;
3447
+ health: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3448
+ hooks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
3449
+ notifications: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3450
+ risk: z.ZodOptional<z.ZodObject<{
3451
+ data_retention_hours: z.ZodOptional<z.ZodNumber>;
3452
+ guard_rails: z.ZodOptional<z.ZodObject<{
3453
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
3454
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
3455
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
3456
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
3457
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
3458
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
3459
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
3460
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
3461
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
3462
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
3463
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
3464
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
3465
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
3466
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
3467
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
3468
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
3469
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
3470
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3471
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
3472
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
3473
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
3474
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
3475
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
3476
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
3477
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
3478
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
3479
+ }, z.ZodTypeAny, "passthrough">>>;
3480
+ }, "strip", z.ZodTypeAny, {
3481
+ data_retention_hours?: number | undefined;
3482
+ guard_rails?: z.objectOutputType<{
3483
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
3484
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
3485
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
3486
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
3487
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
3488
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
3489
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
3490
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
3491
+ }, z.ZodTypeAny, "passthrough"> | undefined;
3492
+ }, {
3493
+ data_retention_hours?: number | undefined;
3494
+ guard_rails?: z.objectInputType<{
3495
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
3496
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
3497
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
3498
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
3499
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
3500
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
3501
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
3502
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
3503
+ }, z.ZodTypeAny, "passthrough"> | undefined;
3504
+ }>>;
3505
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3506
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3507
+ name: z.ZodString;
3508
+ version: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
3509
+ description: z.ZodOptional<z.ZodString>;
3510
+ strategy: z.ZodObject<{
3511
+ wallet: z.ZodString;
3512
+ slots: z.ZodOptional<z.ZodNumber>;
3513
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
3514
+ margin_pct: z.ZodOptional<z.ZodNumber>;
3515
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
3516
+ default_leverage: z.ZodOptional<z.ZodNumber>;
3517
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
3518
+ conservative: z.ZodOptional<z.ZodNumber>;
3519
+ moderate: z.ZodOptional<z.ZodNumber>;
3520
+ aggressive: z.ZodOptional<z.ZodNumber>;
3521
+ }, "strip", z.ZodTypeAny, {
3522
+ conservative?: number | undefined;
3523
+ moderate?: number | undefined;
3524
+ aggressive?: number | undefined;
3525
+ }, {
3526
+ conservative?: number | undefined;
3527
+ moderate?: number | undefined;
3528
+ aggressive?: number | undefined;
3529
+ }>>;
3530
+ enabled: z.ZodOptional<z.ZodBoolean>;
3531
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
3532
+ wallet: z.ZodString;
3533
+ slots: z.ZodOptional<z.ZodNumber>;
3534
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
3535
+ margin_pct: z.ZodOptional<z.ZodNumber>;
3536
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
3537
+ default_leverage: z.ZodOptional<z.ZodNumber>;
3538
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
3539
+ conservative: z.ZodOptional<z.ZodNumber>;
3540
+ moderate: z.ZodOptional<z.ZodNumber>;
3541
+ aggressive: z.ZodOptional<z.ZodNumber>;
3542
+ }, "strip", z.ZodTypeAny, {
3543
+ conservative?: number | undefined;
3544
+ moderate?: number | undefined;
3545
+ aggressive?: number | undefined;
3546
+ }, {
3547
+ conservative?: number | undefined;
3548
+ moderate?: number | undefined;
3549
+ aggressive?: number | undefined;
3550
+ }>>;
3551
+ enabled: z.ZodOptional<z.ZodBoolean>;
3552
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3553
+ wallet: z.ZodString;
3554
+ slots: z.ZodOptional<z.ZodNumber>;
3555
+ margin_per_slot: z.ZodOptional<z.ZodNumber>;
3556
+ margin_pct: z.ZodOptional<z.ZodNumber>;
3557
+ trading_risk: z.ZodOptional<z.ZodEnum<["conservative", "moderate", "aggressive"]>>;
3558
+ default_leverage: z.ZodOptional<z.ZodNumber>;
3559
+ leverage_multipliers: z.ZodOptional<z.ZodObject<{
3560
+ conservative: z.ZodOptional<z.ZodNumber>;
3561
+ moderate: z.ZodOptional<z.ZodNumber>;
3562
+ aggressive: z.ZodOptional<z.ZodNumber>;
3563
+ }, "strip", z.ZodTypeAny, {
3564
+ conservative?: number | undefined;
3565
+ moderate?: number | undefined;
3566
+ aggressive?: number | undefined;
3567
+ }, {
3568
+ conservative?: number | undefined;
3569
+ moderate?: number | undefined;
3570
+ aggressive?: number | undefined;
3571
+ }>>;
3572
+ enabled: z.ZodOptional<z.ZodBoolean>;
3573
+ }, z.ZodTypeAny, "passthrough">>;
3574
+ scanners: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
3575
+ name: z.ZodString;
3576
+ type: z.ZodString;
3577
+ interval: z.ZodOptional<z.ZodString>;
3578
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
3579
+ scanner: z.ZodString;
3580
+ required: z.ZodOptional<z.ZodBoolean>;
3581
+ max_age: z.ZodOptional<z.ZodString>;
3582
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3583
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3584
+ }, "strip", z.ZodTypeAny, {
3585
+ scanner: string;
3586
+ required?: boolean | undefined;
3587
+ max_age?: string | undefined;
3588
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3589
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3590
+ }, {
3591
+ scanner: string;
3592
+ required?: boolean | undefined;
3593
+ max_age?: string | undefined;
3594
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3595
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3596
+ }>, "many">>;
3597
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3598
+ outputs: z.ZodOptional<z.ZodObject<{
3599
+ signals: z.ZodBoolean;
3600
+ context: z.ZodBoolean;
3601
+ }, "strip", z.ZodTypeAny, {
3602
+ context: boolean;
3603
+ signals: boolean;
3604
+ }, {
3605
+ context: boolean;
3606
+ signals: boolean;
3607
+ }>>;
3608
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
3609
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
3610
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3611
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3612
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
3613
+ name: z.ZodString;
3614
+ type: z.ZodString;
3615
+ interval: z.ZodOptional<z.ZodString>;
3616
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
3617
+ scanner: z.ZodString;
3618
+ required: z.ZodOptional<z.ZodBoolean>;
3619
+ max_age: z.ZodOptional<z.ZodString>;
3620
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3621
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3622
+ }, "strip", z.ZodTypeAny, {
3623
+ scanner: string;
3624
+ required?: boolean | undefined;
3625
+ max_age?: string | undefined;
3626
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3627
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3628
+ }, {
3629
+ scanner: string;
3630
+ required?: boolean | undefined;
3631
+ max_age?: string | undefined;
3632
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3633
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3634
+ }>, "many">>;
3635
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3636
+ outputs: z.ZodOptional<z.ZodObject<{
3637
+ signals: z.ZodBoolean;
3638
+ context: z.ZodBoolean;
3639
+ }, "strip", z.ZodTypeAny, {
3640
+ context: boolean;
3641
+ signals: boolean;
3642
+ }, {
3643
+ context: boolean;
3644
+ signals: boolean;
3645
+ }>>;
3646
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
3647
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
3648
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3649
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3650
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3651
+ name: z.ZodString;
3652
+ type: z.ZodString;
3653
+ interval: z.ZodOptional<z.ZodString>;
3654
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
3655
+ scanner: z.ZodString;
3656
+ required: z.ZodOptional<z.ZodBoolean>;
3657
+ max_age: z.ZodOptional<z.ZodString>;
3658
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3659
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3660
+ }, "strip", z.ZodTypeAny, {
3661
+ scanner: string;
3662
+ required?: boolean | undefined;
3663
+ max_age?: string | undefined;
3664
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3665
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3666
+ }, {
3667
+ scanner: string;
3668
+ required?: boolean | undefined;
3669
+ max_age?: string | undefined;
3670
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3671
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3672
+ }>, "many">>;
3673
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3674
+ outputs: z.ZodOptional<z.ZodObject<{
3675
+ signals: z.ZodBoolean;
3676
+ context: z.ZodBoolean;
3677
+ }, "strip", z.ZodTypeAny, {
3678
+ context: boolean;
3679
+ signals: boolean;
3680
+ }, {
3681
+ context: boolean;
3682
+ signals: boolean;
3683
+ }>>;
3684
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
3685
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
3686
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3687
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3688
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
3689
+ name: z.ZodString;
3690
+ type: z.ZodString;
3691
+ interval: z.ZodOptional<z.ZodString>;
3692
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
3693
+ scanner: z.ZodString;
3694
+ required: z.ZodOptional<z.ZodBoolean>;
3695
+ max_age: z.ZodOptional<z.ZodString>;
3696
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3697
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3698
+ }, "strip", z.ZodTypeAny, {
3699
+ scanner: string;
3700
+ required?: boolean | undefined;
3701
+ max_age?: string | undefined;
3702
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3703
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3704
+ }, {
3705
+ scanner: string;
3706
+ required?: boolean | undefined;
3707
+ max_age?: string | undefined;
3708
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3709
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3710
+ }>, "many">>;
3711
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3712
+ outputs: z.ZodOptional<z.ZodObject<{
3713
+ signals: z.ZodBoolean;
3714
+ context: z.ZodBoolean;
3715
+ }, "strip", z.ZodTypeAny, {
3716
+ context: boolean;
3717
+ signals: boolean;
3718
+ }, {
3719
+ context: boolean;
3720
+ signals: boolean;
3721
+ }>>;
3722
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
3723
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
3724
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3725
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3726
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3727
+ name: z.ZodString;
3728
+ type: z.ZodString;
3729
+ interval: z.ZodOptional<z.ZodString>;
3730
+ depends_on: z.ZodOptional<z.ZodArray<z.ZodObject<{
3731
+ scanner: z.ZodString;
3732
+ required: z.ZodOptional<z.ZodBoolean>;
3733
+ max_age: z.ZodOptional<z.ZodString>;
3734
+ on_missing: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3735
+ on_stale: z.ZodOptional<z.ZodEnum<["fail", "skip", "degrade"]>>;
3736
+ }, "strip", z.ZodTypeAny, {
3737
+ scanner: string;
3738
+ required?: boolean | undefined;
3739
+ max_age?: string | undefined;
3740
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3741
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3742
+ }, {
3743
+ scanner: string;
3744
+ required?: boolean | undefined;
3745
+ max_age?: string | undefined;
3746
+ on_missing?: "fail" | "skip" | "degrade" | undefined;
3747
+ on_stale?: "fail" | "skip" | "degrade" | undefined;
3748
+ }>, "many">>;
3749
+ blocked_assets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3750
+ outputs: z.ZodOptional<z.ZodObject<{
3751
+ signals: z.ZodBoolean;
3752
+ context: z.ZodBoolean;
3753
+ }, "strip", z.ZodTypeAny, {
3754
+ context: boolean;
3755
+ signals: boolean;
3756
+ }, {
3757
+ context: boolean;
3758
+ signals: boolean;
3759
+ }>>;
3760
+ retention: z.ZodOptional<z.ZodEnum<["last_only", "rolling_window"]>>;
3761
+ retention_max_runs: z.ZodOptional<z.ZodNumber>;
3762
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3763
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3764
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
3765
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
3766
+ name: z.ZodString;
3767
+ action_type: z.ZodString;
3768
+ decision_mode: z.ZodOptional<z.ZodString>;
3769
+ decision_model: z.ZodOptional<z.ZodString>;
3770
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3771
+ min_confidence: z.ZodOptional<z.ZodNumber>;
3772
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
3773
+ type: z.ZodLiteral<"signal">;
3774
+ scanner: z.ZodString;
3775
+ }, "strip", z.ZodTypeAny, {
3776
+ type: "signal";
3777
+ scanner: string;
3778
+ }, {
3779
+ type: "signal";
3780
+ scanner: string;
3781
+ }>, z.ZodObject<{
3782
+ type: z.ZodLiteral<"context">;
3783
+ scanner: z.ZodString;
3784
+ }, "strip", z.ZodTypeAny, {
3785
+ type: "context";
3786
+ scanner: string;
3787
+ }, {
3788
+ type: "context";
3789
+ scanner: string;
3790
+ }>, z.ZodObject<{
3791
+ type: z.ZodLiteral<"strategy">;
3792
+ value: z.ZodString;
3793
+ }, "strip", z.ZodTypeAny, {
3794
+ type: "strategy";
3795
+ value: string;
3796
+ }, {
3797
+ type: "strategy";
3798
+ value: string;
3799
+ }>, z.ZodObject<{
3800
+ type: z.ZodLiteral<"asset-trend">;
3801
+ value: z.ZodString;
3802
+ }, "strip", z.ZodTypeAny, {
3803
+ type: "asset-trend";
3804
+ value: string;
3805
+ }, {
3806
+ type: "asset-trend";
3807
+ value: string;
3808
+ }>]>, "many">>;
3809
+ decision_prompt: z.ZodOptional<z.ZodString>;
3810
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3811
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
3812
+ name: z.ZodString;
3813
+ action_type: z.ZodString;
3814
+ decision_mode: z.ZodOptional<z.ZodString>;
3815
+ decision_model: z.ZodOptional<z.ZodString>;
3816
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3817
+ min_confidence: z.ZodOptional<z.ZodNumber>;
3818
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
3819
+ type: z.ZodLiteral<"signal">;
3820
+ scanner: z.ZodString;
3821
+ }, "strip", z.ZodTypeAny, {
3822
+ type: "signal";
3823
+ scanner: string;
3824
+ }, {
3825
+ type: "signal";
3826
+ scanner: string;
3827
+ }>, z.ZodObject<{
3828
+ type: z.ZodLiteral<"context">;
3829
+ scanner: z.ZodString;
3830
+ }, "strip", z.ZodTypeAny, {
3831
+ type: "context";
3832
+ scanner: string;
3833
+ }, {
3834
+ type: "context";
3835
+ scanner: string;
3836
+ }>, z.ZodObject<{
3837
+ type: z.ZodLiteral<"strategy">;
3838
+ value: z.ZodString;
3839
+ }, "strip", z.ZodTypeAny, {
3840
+ type: "strategy";
3841
+ value: string;
3842
+ }, {
3843
+ type: "strategy";
3844
+ value: string;
3845
+ }>, z.ZodObject<{
3846
+ type: z.ZodLiteral<"asset-trend">;
3847
+ value: z.ZodString;
3848
+ }, "strip", z.ZodTypeAny, {
3849
+ type: "asset-trend";
3850
+ value: string;
3851
+ }, {
3852
+ type: "asset-trend";
3853
+ value: string;
3854
+ }>]>, "many">>;
3855
+ decision_prompt: z.ZodOptional<z.ZodString>;
3856
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3857
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3858
+ name: z.ZodString;
3859
+ action_type: z.ZodString;
3860
+ decision_mode: z.ZodOptional<z.ZodString>;
3861
+ decision_model: z.ZodOptional<z.ZodString>;
3862
+ scanners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3863
+ min_confidence: z.ZodOptional<z.ZodNumber>;
3864
+ context: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
3865
+ type: z.ZodLiteral<"signal">;
3866
+ scanner: z.ZodString;
3867
+ }, "strip", z.ZodTypeAny, {
3868
+ type: "signal";
3869
+ scanner: string;
3870
+ }, {
3871
+ type: "signal";
3872
+ scanner: string;
3873
+ }>, z.ZodObject<{
3874
+ type: z.ZodLiteral<"context">;
3875
+ scanner: z.ZodString;
3876
+ }, "strip", z.ZodTypeAny, {
3877
+ type: "context";
3878
+ scanner: string;
3879
+ }, {
3880
+ type: "context";
3881
+ scanner: string;
3882
+ }>, z.ZodObject<{
3883
+ type: z.ZodLiteral<"strategy">;
3884
+ value: z.ZodString;
3885
+ }, "strip", z.ZodTypeAny, {
3886
+ type: "strategy";
3887
+ value: string;
3888
+ }, {
3889
+ type: "strategy";
3890
+ value: string;
3891
+ }>, z.ZodObject<{
3892
+ type: z.ZodLiteral<"asset-trend">;
3893
+ value: z.ZodString;
3894
+ }, "strip", z.ZodTypeAny, {
3895
+ type: "asset-trend";
3896
+ value: string;
3897
+ }, {
3898
+ type: "asset-trend";
3899
+ value: string;
3900
+ }>]>, "many">>;
3901
+ decision_prompt: z.ZodOptional<z.ZodString>;
3902
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3903
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
3904
+ exit: z.ZodOptional<z.ZodObject<{
3905
+ engine: z.ZodOptional<z.ZodString>;
3906
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
3907
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
3908
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3909
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
3910
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
3911
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
3912
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
3913
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
3914
+ }, "strip", z.ZodTypeAny, {
3915
+ ensure_execution_as_taker?: boolean | undefined;
3916
+ execution_timeout_seconds?: number | undefined;
3917
+ }, {
3918
+ ensure_execution_as_taker?: boolean | undefined;
3919
+ execution_timeout_seconds?: number | undefined;
3920
+ }>>;
3921
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
3922
+ engine: z.ZodOptional<z.ZodString>;
3923
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
3924
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
3925
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3926
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
3927
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
3928
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
3929
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
3930
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
3931
+ }, "strip", z.ZodTypeAny, {
3932
+ ensure_execution_as_taker?: boolean | undefined;
3933
+ execution_timeout_seconds?: number | undefined;
3934
+ }, {
3935
+ ensure_execution_as_taker?: boolean | undefined;
3936
+ execution_timeout_seconds?: number | undefined;
3937
+ }>>;
3938
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3939
+ engine: z.ZodOptional<z.ZodString>;
3940
+ interval_seconds: z.ZodOptional<z.ZodNumber>;
3941
+ /** Single DSL exit profile. Shape validated again in DSL parse / unknown-keys. */
3942
+ dsl_preset: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3943
+ sm_flip: z.ZodOptional<z.ZodUnknown>;
3944
+ order_type: z.ZodOptional<z.ZodEnum<["MARKET", "FEE_OPTIMIZED_LIMIT"]>>;
3945
+ fee_optimized_limit_options: z.ZodOptional<z.ZodObject<{
3946
+ ensure_execution_as_taker: z.ZodOptional<z.ZodBoolean>;
3947
+ execution_timeout_seconds: z.ZodOptional<z.ZodNumber>;
3948
+ }, "strip", z.ZodTypeAny, {
3949
+ ensure_execution_as_taker?: boolean | undefined;
3950
+ execution_timeout_seconds?: number | undefined;
3951
+ }, {
3952
+ ensure_execution_as_taker?: boolean | undefined;
3953
+ execution_timeout_seconds?: number | undefined;
3954
+ }>>;
3955
+ }, z.ZodTypeAny, "passthrough">>>;
3956
+ health: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3957
+ hooks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
3958
+ notifications: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3959
+ risk: z.ZodOptional<z.ZodObject<{
3960
+ data_retention_hours: z.ZodOptional<z.ZodNumber>;
3961
+ guard_rails: z.ZodOptional<z.ZodObject<{
3962
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
3963
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
3964
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
3965
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
3966
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
3967
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
3968
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
3969
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
3970
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
3971
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
3972
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
3973
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
3974
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
3975
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
3976
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
3977
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
3978
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
3979
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3980
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
3981
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
3982
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
3983
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
3984
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
3985
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
3986
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
3987
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
3988
+ }, z.ZodTypeAny, "passthrough">>>;
3989
+ }, "strip", z.ZodTypeAny, {
3990
+ data_retention_hours?: number | undefined;
3991
+ guard_rails?: z.objectOutputType<{
3992
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
3993
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
3994
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
3995
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
3996
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
3997
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
3998
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
3999
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
4000
+ }, z.ZodTypeAny, "passthrough"> | undefined;
4001
+ }, {
4002
+ data_retention_hours?: number | undefined;
4003
+ guard_rails?: z.objectInputType<{
4004
+ daily_loss_limit_pct: z.ZodOptional<z.ZodNumber>;
4005
+ max_entries_per_day: z.ZodOptional<z.ZodNumber>;
4006
+ bypass_max_entries_per_day_on_profit: z.ZodOptional<z.ZodBoolean>;
4007
+ max_consecutive_losses: z.ZodOptional<z.ZodNumber>;
4008
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
4009
+ drawdown_halt_pct: z.ZodOptional<z.ZodNumber>;
4010
+ drawdown_reset_on_day_rollover: z.ZodOptional<z.ZodBoolean>;
4011
+ per_asset_cooldown_minutes: z.ZodOptional<z.ZodNumber>;
4012
+ }, z.ZodTypeAny, "passthrough"> | undefined;
4013
+ }>>;
4014
+ advanced: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2997
4015
  }, z.ZodTypeAny, "passthrough">>;
2998
4016
  export type RuntimeConfig = z.infer<typeof runtimeConfigSchema>;
2999
4017
  export type RuntimeStrategy = z.infer<typeof strategyEntrySchema>;