@senpi/trading-recipe 1.0.41 → 1.0.43
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.
- package/dist/cli/guide-commands.d.ts.map +1 -1
- package/dist/cli/guide-commands.js +75 -62
- package/dist/cli/guide-commands.js.map +1 -1
- package/dist/cli/senpi-commands.d.ts +2 -1
- package/dist/cli/senpi-commands.d.ts.map +1 -1
- package/dist/cli/senpi-commands.js +203 -1
- package/dist/cli/senpi-commands.js.map +1 -1
- package/dist/constants/dsl/index.d.ts +11 -7
- package/dist/constants/dsl/index.d.ts.map +1 -1
- package/dist/constants/dsl/index.js +11 -7
- package/dist/constants/dsl/index.js.map +1 -1
- package/dist/dsl/config/exit-block.d.ts +2 -0
- package/dist/dsl/config/exit-block.d.ts.map +1 -1
- package/dist/dsl/config/parse-phase.d.ts +0 -3
- package/dist/dsl/config/parse-phase.d.ts.map +1 -1
- package/dist/dsl/config/parse-phase.js +12 -45
- package/dist/dsl/config/parse-phase.js.map +1 -1
- package/dist/dsl/config/parse-plugin-config.d.ts.map +1 -1
- package/dist/dsl/config/parse-plugin-config.js +28 -4
- package/dist/dsl/config/parse-plugin-config.js.map +1 -1
- package/dist/dsl/config/parse-preset.d.ts.map +1 -1
- package/dist/dsl/config/parse-preset.js +36 -22
- package/dist/dsl/config/parse-preset.js.map +1 -1
- package/dist/dsl/config/parse-tiers.d.ts.map +1 -1
- package/dist/dsl/config/parse-tiers.js +11 -10
- package/dist/dsl/config/parse-tiers.js.map +1 -1
- package/dist/dsl/config/parse-timeouts.d.ts +11 -6
- package/dist/dsl/config/parse-timeouts.d.ts.map +1 -1
- package/dist/dsl/config/parse-timeouts.js +4 -4
- package/dist/dsl/config/parse-timeouts.js.map +1 -1
- package/dist/dsl/config/raw-types.d.ts +14 -18
- package/dist/dsl/config/raw-types.d.ts.map +1 -1
- package/dist/dsl/config/unknown-keys.d.ts +1 -5
- package/dist/dsl/config/unknown-keys.d.ts.map +1 -1
- package/dist/dsl/config/unknown-keys.js +42 -26
- package/dist/dsl/config/unknown-keys.js.map +1 -1
- package/dist/dsl/config/validation.d.ts +1 -1
- package/dist/dsl/config/validation.d.ts.map +1 -1
- package/dist/dsl/config/validation.js.map +1 -1
- package/dist/dsl/engine/exchange-stop.d.ts +2 -3
- package/dist/dsl/engine/exchange-stop.d.ts.map +1 -1
- package/dist/dsl/engine/exchange-stop.js +2 -3
- package/dist/dsl/engine/exchange-stop.js.map +1 -1
- package/dist/dsl/engine/floors.d.ts +3 -5
- package/dist/dsl/engine/floors.d.ts.map +1 -1
- package/dist/dsl/engine/floors.js +14 -31
- package/dist/dsl/engine/floors.js.map +1 -1
- package/dist/dsl/engine/state-updates.d.ts.map +1 -1
- package/dist/dsl/engine/state-updates.js +2 -2
- package/dist/dsl/engine/state-updates.js.map +1 -1
- package/dist/dsl/engine/tick.d.ts.map +1 -1
- package/dist/dsl/engine/tick.js +66 -52
- package/dist/dsl/engine/tick.js.map +1 -1
- package/dist/dsl/events/handlers.d.ts +5 -2
- package/dist/dsl/events/handlers.d.ts.map +1 -1
- package/dist/dsl/events/handlers.js +117 -9
- package/dist/dsl/events/handlers.js.map +1 -1
- package/dist/dsl/events/initial-state.d.ts +0 -2
- package/dist/dsl/events/initial-state.d.ts.map +1 -1
- package/dist/dsl/events/initial-state.js +8 -20
- package/dist/dsl/events/initial-state.js.map +1 -1
- package/dist/dsl/index.d.ts +1 -1
- package/dist/dsl/index.d.ts.map +1 -1
- package/dist/dsl/index.js.map +1 -1
- package/dist/dsl/monitor/create-monitor.d.ts.map +1 -1
- package/dist/dsl/monitor/create-monitor.js +11 -13
- package/dist/dsl/monitor/create-monitor.js.map +1 -1
- package/dist/dsl/monitor/exchange-sync.js +2 -2
- package/dist/dsl/monitor/exchange-sync.js.map +1 -1
- package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
- package/dist/dsl/monitor/process-one-position.js +20 -10
- package/dist/dsl/monitor/process-one-position.js.map +1 -1
- package/dist/dsl/plugin/index.d.ts +24 -2
- package/dist/dsl/plugin/index.d.ts.map +1 -1
- package/dist/dsl/plugin/index.js +158 -118
- package/dist/dsl/plugin/index.js.map +1 -1
- package/dist/dsl/plugin/options.d.ts +0 -2
- package/dist/dsl/plugin/options.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +92 -0
- package/dist/index.js.map +1 -1
- package/dist/runtime/create-runtime-context.d.ts +1 -1
- package/dist/runtime/create-runtime-context.d.ts.map +1 -1
- package/dist/runtime/load-trading-recipe.js +1 -1
- package/dist/runtime/load-trading-recipe.js.map +1 -1
- package/dist/runtime/map-exit-config.d.ts +2 -2
- package/dist/runtime/map-exit-config.d.ts.map +1 -1
- package/dist/runtime/map-exit-config.js +28 -19
- package/dist/runtime/map-exit-config.js.map +1 -1
- package/dist/runtime/reconcile-state.d.ts.map +1 -1
- package/dist/runtime/reconcile-state.js +36 -33
- package/dist/runtime/reconcile-state.js.map +1 -1
- package/dist/runtime/run.d.ts +2 -0
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js +1 -0
- package/dist/runtime/run.js.map +1 -1
- package/dist/runtime/runtime.d.ts +2 -0
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +4 -1
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/trading-recipe-schema.d.ts +5825 -5873
- package/dist/runtime/trading-recipe-schema.d.ts.map +1 -1
- package/dist/runtime/trading-recipe-schema.js +14 -8
- package/dist/runtime/trading-recipe-schema.js.map +1 -1
- package/dist/scripts/run-dsl-standalone-live.js +10 -17
- package/dist/scripts/run-dsl-standalone-live.js.map +1 -1
- package/dist/scripts/run-dsl-standalone-mock.js +10 -17
- package/dist/scripts/run-dsl-standalone-mock.js.map +1 -1
- package/dist/state/state-manager.d.ts +33 -15
- package/dist/state/state-manager.d.ts.map +1 -1
- package/dist/state/state-manager.js +196 -99
- package/dist/state/state-manager.js.map +1 -1
- package/dist/types/action.d.ts +1 -1
- package/dist/types/action.d.ts.map +1 -1
- package/dist/types/dsl/index.d.ts +77 -27
- package/dist/types/dsl/index.d.ts.map +1 -1
- package/examples/strategies/dsl-showcase.yaml +25 -26
- package/examples/strategies/dsl.yaml +13 -17
- package/examples/strategies/fox-minimal-loosened.yaml +23 -17
- package/examples/strategies/fox-minimal.yaml +13 -17
- package/examples/strategies/minimal.yaml +13 -17
- package/examples/strategies/viper.yaml +13 -17
- package/examples/strategies/wolf.yaml +22 -20
- package/examples/yamls/sample-with-dsl-and-emerging-movers.yaml +15 -19
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guide-commands.d.ts","sourceRoot":"","sources":["../../src/cli/guide-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"guide-commands.d.ts","sourceRoot":"","sources":["../../src/cli/guide-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA+UH,kFAAkF;AAClF,UAAU,gBAAgB;IACxB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACvD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC5C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC9D,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC;CACxF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,MAAM,GACd,IAAI,CA2CN"}
|
|
@@ -23,6 +23,9 @@ Quick commands:
|
|
|
23
23
|
senpi guide scanners Scanner types and config fields
|
|
24
24
|
senpi guide actions Action types and decision modes
|
|
25
25
|
senpi guide dsl DSL exit: phases, lock modes, tiers, time-based cuts
|
|
26
|
+
senpi dsl positions Active DSL positions (CLI inspection)
|
|
27
|
+
senpi dsl inspect Full DSL state for one asset
|
|
28
|
+
senpi dsl closes Archived closes with reason
|
|
26
29
|
senpi guide examples Print minimal strategy YAML
|
|
27
30
|
senpi guide schema Full YAML schema field reference
|
|
28
31
|
senpi guide version Plugin version and changelog URL
|
|
@@ -142,70 +145,83 @@ Decision modes:
|
|
|
142
145
|
No LLM call. Use with tight DSL stops to manage risk.
|
|
143
146
|
`.trim();
|
|
144
147
|
const DSL_TEXT = `
|
|
145
|
-
DSL exit engine — two-phase trailing stop-loss
|
|
148
|
+
DSL exit engine — two-phase trailing stop-loss (DSL v2)
|
|
146
149
|
─────────────────────────────────────────────────────────────────────────────
|
|
147
150
|
|
|
148
151
|
The DSL monitors open positions on a configurable interval and closes them
|
|
149
|
-
when price breaches the computed floor
|
|
150
|
-
|
|
151
|
-
|
|
152
|
+
when price breaches the computed floor or when preset time cuts fire.
|
|
153
|
+
Phase 1: max_loss absolute floor + phase1 retrace from high-water; consecutive
|
|
154
|
+
breach counting applies only in phase 1. Phase 2: tier floors from lock_hw_pct
|
|
155
|
+
(% of current high-water ROE); phase 2 begins when price crosses the first
|
|
156
|
+
tier (no phase2_trigger_tier). Optional hard_timeout, weak_peak_cut, and
|
|
157
|
+
dead_weight_cut live on the preset (not nested under phase1). hard_timeout
|
|
158
|
+
applies only in phase 1: entering phase 2 before the interval elapses cancels it;
|
|
159
|
+
same tick as first tier (phase 2) skips hard_timeout in favor of tier advance.
|
|
152
160
|
|
|
153
161
|
exit:
|
|
154
162
|
engine: dsl
|
|
155
|
-
interval_seconds: 30
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
163
|
+
interval_seconds: 30
|
|
164
|
+
|
|
165
|
+
# Recommended: one flat preset (no nested map name).
|
|
166
|
+
dsl_preset:
|
|
167
|
+
hard_timeout: ... # optional; same level as phase1 / phase2
|
|
168
|
+
weak_peak_cut: ...
|
|
169
|
+
dead_weight_cut: ...
|
|
170
|
+
phase1: ...
|
|
171
|
+
phase2: ...
|
|
172
|
+
|
|
173
|
+
# Alternative: multiple named presets (set exit.preset when 2+ keys).
|
|
174
|
+
# dsl_presets:
|
|
175
|
+
# dsl: { phase1: ..., phase2: ... }
|
|
176
|
+
# aggressive: { ... }
|
|
177
|
+
# preset: dsl
|
|
162
178
|
|
|
163
179
|
──────────────────────────────────────────────────────────────────────────────
|
|
164
|
-
Phase 1 — Fixed floor + high-water trailing
|
|
165
|
-
Active from entry until the tier at phase2_trigger_tier is crossed.
|
|
180
|
+
Phase 1 — Fixed floor + high-water trailing
|
|
166
181
|
Floor = max(absolute_floor, trailing_floor). Absolute floor from max_loss_pct
|
|
167
182
|
(entry × (1 − max_loss_pct/100/leverage) for LONG). Trailing uses phase1
|
|
168
|
-
retrace_threshold (ROE %) from high-water
|
|
183
|
+
retrace_threshold (ROE %) from high-water.
|
|
169
184
|
|
|
170
185
|
phase1:
|
|
171
|
-
# enabled: false # optional; default true — false = skip Phase 1
|
|
186
|
+
# enabled: false # optional; default true — false = skip Phase 1 logic; tiers can still advance
|
|
172
187
|
max_loss_pct: 3.0 # e.g. 3% max loss at 1×
|
|
173
188
|
retrace_threshold: 10 # ROE % retrace from HWM in phase 1 (required when enabled)
|
|
174
|
-
consecutive_breaches_required: 3 # ticks below floor before exit (required when enabled)
|
|
175
|
-
# Exchange SL in Phase 1
|
|
176
|
-
# Optional time-based cuts (each: enabled, interval_in_minutes):
|
|
177
|
-
# hard_timeout, weak_peak_cut (min_value ROE %), dead_weight_cut
|
|
189
|
+
consecutive_breaches_required: 3 # ticks below floor before exit in phase 1 only (required when enabled)
|
|
190
|
+
# Exchange SL in Phase 1: max_loss absolute floor only; tighter engine floors use closePosition.
|
|
178
191
|
|
|
179
192
|
──────────────────────────────────────────────────────────────────────────────
|
|
180
|
-
Phase 2 —
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
Exchange SL: full effective floor is kept on the exchange (editPosition syncs tier/phase
|
|
185
|
-
and floor moves). This absolute-only Phase 1 rule does not apply in Phase 2.
|
|
186
|
-
|
|
187
|
-
phase2_trigger_tier: 0
|
|
193
|
+
Phase 2 — Tier floors (no per-tier breaches or retrace YAML)
|
|
194
|
+
Floor = tier floor from lock_hw_pct once the tier is active. Price below
|
|
195
|
+
effective floor closes immediately (no consecutive breach counter in phase 2).
|
|
196
|
+
Exchange SL tracks the full effective floor (editPosition on tier/phase and moves).
|
|
188
197
|
|
|
189
198
|
phase2:
|
|
190
|
-
# enabled: false # optional; default true — false = never
|
|
191
|
-
retrace_threshold: 1.5 # default ROE % retrace from HWM (required when phase 2 used)
|
|
192
|
-
consecutive_breaches_required: 1 # required (per-tier breaches still required on each tier)
|
|
193
|
-
|
|
199
|
+
# enabled: false # optional; default true — false = never enter phase 2
|
|
194
200
|
tiers:
|
|
195
|
-
# trigger_pct = ROE % from entry that activates this tier
|
|
196
|
-
# lock_hw_pct = required; % of current high-water ROE to lock (0–100)
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
- { trigger_pct: 50, lock_hw_pct: 80, retrace: 1.0, breaches: 1 }
|
|
201
|
+
# trigger_pct = ROE % from entry that activates this tier (strictly increasing list)
|
|
202
|
+
# lock_hw_pct = required; % of current high-water ROE to lock (0–100)
|
|
203
|
+
- { trigger_pct: 10, lock_hw_pct: 50 }
|
|
204
|
+
- { trigger_pct: 20, lock_hw_pct: 70 }
|
|
205
|
+
|
|
206
|
+
Legacy keys removed: phase2_trigger_tier; phase2.retrace_threshold / consecutive_breaches_required;
|
|
207
|
+
tier breaches / retrace; phase1-nested time cuts (use preset hard_timeout / weak_peak_cut / dead_weight_cut).
|
|
203
208
|
|
|
204
209
|
──────────────────────────────────────────────────────────────────────────────
|
|
205
210
|
State and events
|
|
206
|
-
Per-position state
|
|
207
|
-
|
|
208
|
-
|
|
211
|
+
Per-position state under stateDir; on-disk version must match the runtime.
|
|
212
|
+
Close reasons include exchange_sl_hit, hard_timeout, weak_peak_cut, dead_weight_cut, dsl_breach, etc.
|
|
213
|
+
Close reason is preserved on pendingClose retry. DSL bus events: dsl.created, dsl.tier_advanced,
|
|
214
|
+
dsl.sl_updated, dsl.phase_changed, dsl.closed, dsl.deleted, and hook position.closed /
|
|
215
|
+
position.increased / position.decreased.
|
|
216
|
+
|
|
217
|
+
──────────────────────────────────────────────────────────────────────────────
|
|
218
|
+
Commands
|
|
219
|
+
senpi dsl positions List active DSL-tracked positions
|
|
220
|
+
senpi dsl positions --json Output as JSON
|
|
221
|
+
senpi dsl inspect <asset> Full state for one position (e.g. SOL, xyz:GOLD)
|
|
222
|
+
senpi dsl inspect <asset> --json Output full DslState as JSON
|
|
223
|
+
senpi dsl closes List archived closes with reason and PnL
|
|
224
|
+
senpi dsl closes --limit 20 Limit output
|
|
209
225
|
`.trim();
|
|
210
226
|
const SCHEMA_TEXT = `
|
|
211
227
|
YAML schema — top-level keys
|
|
@@ -254,17 +270,18 @@ actions[]
|
|
|
254
270
|
exit
|
|
255
271
|
engine string No dsl
|
|
256
272
|
interval_seconds number No Default 30; integer 5–3600 (Zod + DSL parse)
|
|
257
|
-
|
|
258
|
-
|
|
273
|
+
dsl_preset object No Single exit profile (preferred). Mutually exclusive with dsl_presets / dsl
|
|
274
|
+
preset string No Required when dsl_presets has 2+ keys; with dsl_preset defaults to dsl
|
|
275
|
+
dsl_presets object No Named preset map (advanced; use exit.preset to choose)
|
|
259
276
|
dsl object No Legacy alias for dsl_presets
|
|
260
277
|
sm_flip any No Non-DSL exit hook data (allowed; ignored by DSL parse)
|
|
261
278
|
|
|
262
|
-
Preset:
|
|
263
|
-
|
|
264
|
-
(
|
|
265
|
-
|
|
266
|
-
cannot both be false. Each tier
|
|
267
|
-
|
|
279
|
+
Preset: max_loss_pct (or phase1.max_loss_pct), phase1 (optional enabled;
|
|
280
|
+
max_loss_pct, retrace_threshold ROE %, consecutive_breaches_required),
|
|
281
|
+
phase2 (optional enabled; tiers only — trigger_pct, lock_hw_pct per row),
|
|
282
|
+
optional hard_timeout / weak_peak_cut / dead_weight_cut at preset root.
|
|
283
|
+
phase1.enabled and phase2.enabled cannot both be false. Each tier row:
|
|
284
|
+
lock_hw_pct [0,100]. Unknown keys under exit / presets / phase1 / phase2 / tiers throw
|
|
268
285
|
DslConfigValidationError (UNKNOWN_DSL_CONFIG_KEY) at load. DSL parse also
|
|
269
286
|
enforces strictly increasing trigger_pct per tier list, bounds on
|
|
270
287
|
interval/max_loss/trigger/lock_hw, and integer breach counts; see dsl-reference
|
|
@@ -305,18 +322,14 @@ actions:
|
|
|
305
322
|
exit:
|
|
306
323
|
engine: dsl
|
|
307
324
|
interval_seconds: 60
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
retrace_threshold: 1.5
|
|
317
|
-
consecutive_breaches_required: 1
|
|
318
|
-
tiers:
|
|
319
|
-
- { trigger_pct: 1, lock_hw_pct: 50, breaches: 1 }
|
|
325
|
+
dsl_preset:
|
|
326
|
+
phase1:
|
|
327
|
+
consecutive_breaches_required: 3
|
|
328
|
+
max_loss_pct: 5.0
|
|
329
|
+
retrace_threshold: 10
|
|
330
|
+
phase2:
|
|
331
|
+
tiers:
|
|
332
|
+
- { trigger_pct: 1, lock_hw_pct: 50 }
|
|
320
333
|
`.trim();
|
|
321
334
|
/**
|
|
322
335
|
* Register `senpi guide [subcommand]` on the senpi Commander subprogram.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guide-commands.js","sourceRoot":"","sources":["../../src/cli/guide-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,aAAa,GACjB,0EAA0E,CAAC;AAE7E,+EAA+E;AAE/E,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC;yBAClB,OAAO
|
|
1
|
+
{"version":3,"file":"guide-commands.js","sourceRoot":"","sources":["../../src/cli/guide-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,9 +12,10 @@ export declare function registerSenpiCli(program: {
|
|
|
12
12
|
interface CommanderCommand {
|
|
13
13
|
command(name: string, desc?: string): CommanderCommand;
|
|
14
14
|
description(desc: string): CommanderCommand;
|
|
15
|
+
argument(name: string, description?: string): CommanderCommand;
|
|
15
16
|
option(flags: string, description?: string): CommanderCommand;
|
|
16
17
|
requiredOption(flags: string, description?: string): CommanderCommand;
|
|
17
|
-
action(fn: (opts: Record<string, unknown>) => void | Promise<void>): CommanderCommand;
|
|
18
|
+
action(fn: ((opts: Record<string, unknown>) => void | Promise<void>) | ((arg: string, opts: Record<string, unknown>) => void | Promise<void>)): CommanderCommand;
|
|
18
19
|
}
|
|
19
20
|
export {};
|
|
20
21
|
//# sourceMappingURL=senpi-commands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"senpi-commands.d.ts","sourceRoot":"","sources":["../../src/cli/senpi-commands.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"senpi-commands.d.ts","sourceRoot":"","sources":["../../src/cli/senpi-commands.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE;IAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,gBAAgB,GAAG,OAAO,CAAA;CAAE,GAChF,IAAI,CAkXN;AAkBD,kEAAkE;AAClE,UAAU,gBAAgB;IACxB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACvD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC/D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC9D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACtE,MAAM,CACJ,EAAE,EACE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GACzD,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GACzE,gBAAgB,CAAC;CACrB"}
|
|
@@ -13,7 +13,7 @@ import { VERSION } from "../version.js";
|
|
|
13
13
|
*/
|
|
14
14
|
export function registerSenpiCli(program) {
|
|
15
15
|
const senpi = program.command("senpi");
|
|
16
|
-
senpi.description("Senpi trading recipe: trading-recipe create
|
|
16
|
+
senpi.description("Senpi trading recipe: trading-recipe create/list/delete; dsl positions/inspect/closes; config");
|
|
17
17
|
registerSenpiConfigCommands(senpi);
|
|
18
18
|
const tradingRecipe = senpi.command("trading-recipe");
|
|
19
19
|
tradingRecipe.description("Manage trading recipes");
|
|
@@ -112,6 +112,208 @@ export function registerSenpiCli(program) {
|
|
|
112
112
|
console.log(`${r.id}\t\t${r.source ?? "(inline)"}\t\t${r.status ?? "—"}`);
|
|
113
113
|
}
|
|
114
114
|
});
|
|
115
|
+
const dsl = senpi.command("dsl");
|
|
116
|
+
dsl.description("Inspect DSL exit engine state (active positions, inspect, archives)");
|
|
117
|
+
dsl
|
|
118
|
+
.command("positions")
|
|
119
|
+
.description("List active DSL-tracked positions across running recipes")
|
|
120
|
+
.option("-r, --recipe <id>", "Filter by recipe id")
|
|
121
|
+
.option("-a, --address <addr>", "Filter by strategy address")
|
|
122
|
+
.option("--json", "Print raw JSON from the gateway")
|
|
123
|
+
.action(async (opts) => {
|
|
124
|
+
const params = {};
|
|
125
|
+
if (typeof opts.recipe === "string" && opts.recipe.length > 0)
|
|
126
|
+
params.recipeId = opts.recipe;
|
|
127
|
+
if (typeof opts.address === "string" && opts.address.length > 0)
|
|
128
|
+
params.address = opts.address;
|
|
129
|
+
const result = spawnSync(process.argv[0], [process.argv[1], "gateway", "call", "senpi.listDslPositions", "--json", "--params", JSON.stringify(params)], { stdio: ["inherit", "pipe", "inherit"], cwd: process.cwd(), encoding: "utf8" });
|
|
130
|
+
if (result.status !== 0) {
|
|
131
|
+
process.exitCode = result.status ?? 1;
|
|
132
|
+
console.error("\nTip: If the gateway is not running, start it with: openclaw gateway run");
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
let data;
|
|
136
|
+
try {
|
|
137
|
+
data = JSON.parse(result.stdout ?? "{}");
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
process.stdout.write(result.stdout ?? "");
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const inner = (data.payload ?? data);
|
|
144
|
+
const positions = (inner.positions ?? []);
|
|
145
|
+
if (opts.json) {
|
|
146
|
+
console.log(JSON.stringify({ ok: data.ok, positions }, null, 2));
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (positions.length === 0) {
|
|
150
|
+
console.log("No active DSL positions.");
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
console.log("Recipe\tAddress\tAsset\tDir\tEntry\tLast\tROE%\tPhase\tTier\tFloor\tBreaches\tElapsed");
|
|
154
|
+
for (const p of positions) {
|
|
155
|
+
const addr = truncateAddr(p.address);
|
|
156
|
+
const tier = p.currentTierIndex === null || p.currentTierIndex === undefined ? "-" : String(p.currentTierIndex);
|
|
157
|
+
const roe = typeof p.currentROE === "number" && Number.isFinite(p.currentROE)
|
|
158
|
+
? `${p.currentROE.toFixed(1)}%`
|
|
159
|
+
: "—";
|
|
160
|
+
const elapsed = typeof p.elapsedMinutes === "number" && Number.isFinite(p.elapsedMinutes)
|
|
161
|
+
? `${Math.round(p.elapsedMinutes)}m`
|
|
162
|
+
: "—";
|
|
163
|
+
console.log([
|
|
164
|
+
p.recipeId,
|
|
165
|
+
addr,
|
|
166
|
+
p.asset,
|
|
167
|
+
p.direction,
|
|
168
|
+
String(p.entryPrice),
|
|
169
|
+
String(p.lastPrice),
|
|
170
|
+
roe,
|
|
171
|
+
String(p.phase),
|
|
172
|
+
tier,
|
|
173
|
+
String(p.floorPrice),
|
|
174
|
+
`${p.currentBreachCount}/${p.breachesRequired}`,
|
|
175
|
+
elapsed,
|
|
176
|
+
].join("\t"));
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
dsl
|
|
180
|
+
.command("inspect")
|
|
181
|
+
.description("Show full DSL state for an open position by asset symbol")
|
|
182
|
+
.argument("<asset>", "Asset (e.g. SOL, BTC, xyz:GOLD)")
|
|
183
|
+
.option("-r, --recipe <id>", "Filter by recipe id")
|
|
184
|
+
.option("-a, --address <addr>", "Filter by strategy address")
|
|
185
|
+
.option("--json", "Print raw JSON from the gateway")
|
|
186
|
+
.action(async (asset, opts) => {
|
|
187
|
+
const params = { asset };
|
|
188
|
+
if (typeof opts.recipe === "string" && opts.recipe.length > 0)
|
|
189
|
+
params.recipeId = opts.recipe;
|
|
190
|
+
if (typeof opts.address === "string" && opts.address.length > 0)
|
|
191
|
+
params.address = opts.address;
|
|
192
|
+
const result = spawnSync(process.argv[0], [process.argv[1], "gateway", "call", "senpi.getDslPositionState", "--json", "--params", JSON.stringify(params)], { stdio: ["inherit", "pipe", "inherit"], cwd: process.cwd(), encoding: "utf8" });
|
|
193
|
+
if (result.status !== 0) {
|
|
194
|
+
process.exitCode = result.status ?? 1;
|
|
195
|
+
console.error("\nTip: If the gateway is not running, start it with: openclaw gateway run");
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
let data;
|
|
199
|
+
try {
|
|
200
|
+
data = JSON.parse(result.stdout ?? "{}");
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
process.stdout.write(result.stdout ?? "");
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
if (data.ok === false) {
|
|
207
|
+
const err = data.error;
|
|
208
|
+
console.error(err?.message ?? "Request failed.");
|
|
209
|
+
process.exitCode = 1;
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
const inner = (data.payload ?? data);
|
|
213
|
+
const rows = (inner.positions ?? []);
|
|
214
|
+
if (opts.json) {
|
|
215
|
+
console.log(JSON.stringify({ ok: true, positions: rows }, null, 2));
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
for (const row of rows) {
|
|
219
|
+
const s = row.state;
|
|
220
|
+
const w = truncateAddr(s.wallet);
|
|
221
|
+
console.log(`Position: ${s.asset} ${s.direction} (recipe: ${row.recipeId}, wallet: ${w})`);
|
|
222
|
+
console.log(`Entry: ${s.entryPrice} | Last: ${s.lastPrice} | Size: ${s.size} | Leverage: ${s.leverage}x`);
|
|
223
|
+
console.log(`High Water: ${s.highWaterPrice} (${s.hwTimestamp}) | HW ROE: ${fmtPct(s.highWaterRoe)}`);
|
|
224
|
+
console.log(`Phase: ${s.phase} (since ${s.phaseSince}) | Tier: ${s.currentTierIndex ?? "—"} of ${s.tiers.length} (since ${s.tierSince ?? "—"})`);
|
|
225
|
+
console.log(`Floor: ${s.floorPrice} | Tier Floor: ${s.tierFloorPrice} | Trailing Floor: ${s.trailingFloor}`);
|
|
226
|
+
console.log(`Current ROE: ${fmtPct(s.currentROE)} | Peak ROE: ${fmtPct(s.peakROE)} | Retrace: ${fmtPct(s.retracePct)}`);
|
|
227
|
+
console.log(`Breaches: ${s.currentBreachCount}/${s.breachesRequired} | Distance to Floor: ${fmtPct(s.distancePct)} | Next tier ROE: ${s.distanceToNextTierPct == null ? "—" : fmtPct(s.distanceToNextTierPct)}`);
|
|
228
|
+
console.log(`Exchange SL: ${s.lastSyncedFloorPrice ?? "—"} (synced ${s.slOrderIdUpdatedAt ?? "—"}) | SL Order: ${s.slOrderId ?? "—"}`);
|
|
229
|
+
console.log(`Ticks: ${s.tickCount} | Elapsed: ${s.elapsedMinutes}m | Created: ${s.createdAt}`);
|
|
230
|
+
if (rows.length > 1)
|
|
231
|
+
console.log("");
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
dsl
|
|
235
|
+
.command("closes")
|
|
236
|
+
.description("List archived (closed) DSL positions with reason and ROE")
|
|
237
|
+
.option("-r, --recipe <id>", "Filter by recipe id")
|
|
238
|
+
.option("-a, --address <addr>", "Filter by strategy address")
|
|
239
|
+
.option("-l, --limit <n>", "Max rows after merge")
|
|
240
|
+
.option("--json", "Print raw JSON from the gateway")
|
|
241
|
+
.action(async (opts) => {
|
|
242
|
+
const params = {};
|
|
243
|
+
if (typeof opts.recipe === "string" && opts.recipe.length > 0)
|
|
244
|
+
params.recipeId = opts.recipe;
|
|
245
|
+
if (typeof opts.address === "string" && opts.address.length > 0)
|
|
246
|
+
params.address = opts.address;
|
|
247
|
+
if (typeof opts.limit === "string" && opts.limit.length > 0) {
|
|
248
|
+
const n = Number.parseInt(opts.limit, 10);
|
|
249
|
+
if (Number.isFinite(n))
|
|
250
|
+
params.limit = n;
|
|
251
|
+
}
|
|
252
|
+
const result = spawnSync(process.argv[0], [process.argv[1], "gateway", "call", "senpi.listDslArchives", "--json", "--params", JSON.stringify(params)], { stdio: ["inherit", "pipe", "inherit"], cwd: process.cwd(), encoding: "utf8" });
|
|
253
|
+
if (result.status !== 0) {
|
|
254
|
+
process.exitCode = result.status ?? 1;
|
|
255
|
+
console.error("\nTip: If the gateway is not running, start it with: openclaw gateway run");
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
let data;
|
|
259
|
+
try {
|
|
260
|
+
data = JSON.parse(result.stdout ?? "{}");
|
|
261
|
+
}
|
|
262
|
+
catch {
|
|
263
|
+
process.stdout.write(result.stdout ?? "");
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
const inner = (data.payload ?? data);
|
|
267
|
+
const closes = (inner.closes ?? []);
|
|
268
|
+
if (opts.json) {
|
|
269
|
+
console.log(JSON.stringify({ ok: data.ok, closes }, null, 2));
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
if (closes.length === 0) {
|
|
273
|
+
console.log("No archived DSL closes.");
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
console.log("Recipe\tAddress\tAsset\tDir\tEntry\tLast\tROE%\tReason\tPhase\tTier\tClosed At\tElapsed");
|
|
277
|
+
for (const c of closes) {
|
|
278
|
+
const addr = truncateAddr(c.address);
|
|
279
|
+
const roe = typeof c.currentROE === "number" && Number.isFinite(c.currentROE)
|
|
280
|
+
? `${c.currentROE.toFixed(1)}%`
|
|
281
|
+
: "—";
|
|
282
|
+
const tier = c.currentTierIndex === null || c.currentTierIndex === undefined ? "-" : String(c.currentTierIndex);
|
|
283
|
+
const elapsed = typeof c.elapsedMinutes === "number" && Number.isFinite(c.elapsedMinutes)
|
|
284
|
+
? `${Math.round(c.elapsedMinutes)}m`
|
|
285
|
+
: "—";
|
|
286
|
+
console.log([
|
|
287
|
+
c.recipeId,
|
|
288
|
+
addr,
|
|
289
|
+
c.asset,
|
|
290
|
+
c.direction,
|
|
291
|
+
String(c.entryPrice),
|
|
292
|
+
String(c.lastPrice),
|
|
293
|
+
roe,
|
|
294
|
+
c.closeReason,
|
|
295
|
+
String(c.phase),
|
|
296
|
+
tier,
|
|
297
|
+
c.closedAt,
|
|
298
|
+
elapsed,
|
|
299
|
+
].join("\t"));
|
|
300
|
+
}
|
|
301
|
+
});
|
|
115
302
|
registerGuideCommands(senpi, VERSION);
|
|
116
303
|
}
|
|
304
|
+
function truncateAddr(addr) {
|
|
305
|
+
const trimmed = addr.trim();
|
|
306
|
+
if (!trimmed) {
|
|
307
|
+
return "";
|
|
308
|
+
}
|
|
309
|
+
if (trimmed.length <= 14) {
|
|
310
|
+
return trimmed;
|
|
311
|
+
}
|
|
312
|
+
return `${trimmed.slice(0, 6)}...${trimmed.slice(-4)}`;
|
|
313
|
+
}
|
|
314
|
+
function fmtPct(n) {
|
|
315
|
+
if (n == null || !Number.isFinite(n))
|
|
316
|
+
return "—";
|
|
317
|
+
return `${n.toFixed(2)}%`;
|
|
318
|
+
}
|
|
117
319
|
//# sourceMappingURL=senpi-commands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"senpi-commands.js","sourceRoot":"","sources":["../../src/cli/senpi-commands.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"senpi-commands.js","sourceRoot":"","sources":["../../src/cli/senpi-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
* Centralized constants for the DSL feature.
|
|
3
3
|
*/
|
|
4
4
|
export declare const COMPONENT_TYPE_EXIT_DSL: "exit/dsl";
|
|
5
|
-
/** DSL subscribes to the same hook event names as the rest of the runtime. */
|
|
5
|
+
/** DSL subscribes to the same hook event names as the rest of the runtime, plus size-change events. */
|
|
6
6
|
export declare const EVENTS: {
|
|
7
7
|
readonly POSITION_OPENED: "on_position_opened";
|
|
8
8
|
readonly POSITION_CLOSED: "on_position_closed";
|
|
9
9
|
readonly POSITION_FLIPPED: "on_position_flipped";
|
|
10
|
+
readonly POSITION_INCREASED: "position.increased";
|
|
11
|
+
readonly POSITION_DECREASED: "position.decreased";
|
|
10
12
|
};
|
|
11
13
|
export declare const DSL_EVENTS: {
|
|
12
14
|
readonly CREATED: "dsl.created";
|
|
@@ -16,23 +18,25 @@ export declare const DSL_EVENTS: {
|
|
|
16
18
|
readonly CLOSED: "dsl.closed";
|
|
17
19
|
readonly CLOSE_PENDING: "dsl.close_pending";
|
|
18
20
|
readonly SETTINGS_UPDATED: "dsl.settings_updated";
|
|
21
|
+
readonly DELETED: "dsl.deleted";
|
|
19
22
|
};
|
|
20
23
|
export declare const DEFAULT_STATE_DIR = ".dsl-state";
|
|
21
|
-
|
|
24
|
+
/** On-disk DSL state schema version (v1 = DSL engine v2; no migration from older files). */
|
|
25
|
+
export declare const DSL_STATE_VERSION = 1;
|
|
22
26
|
/** Close reasons for DSL state (closeReason) and position.closed (reason). */
|
|
23
27
|
export declare const CLOSE_REASON: {
|
|
24
28
|
readonly MANUAL_CLOSE: "manual_close";
|
|
25
29
|
readonly CLOSED_EXTERNALLY: "closed_externally";
|
|
26
|
-
readonly
|
|
30
|
+
readonly EXCHANGE_SL_HIT: "exchange_sl_hit";
|
|
27
31
|
readonly DSL_BREACH: "dsl_breach";
|
|
28
32
|
readonly FLIPPED: "flipped";
|
|
29
33
|
readonly CLOSE_POSITION_FAILED: "close_position_failed";
|
|
30
|
-
|
|
31
|
-
readonly PHASE1_TIMEOUT: "phase1_timeout";
|
|
32
|
-
/** Phase 1 weak peak cut (peak ROE below minValue and current < peak). */
|
|
34
|
+
readonly HARD_TIMEOUT: "hard_timeout";
|
|
33
35
|
readonly WEAK_PEAK_CUT: "weak_peak_cut";
|
|
34
|
-
/** Phase 1 dead weight cut (never gone positive after interval). */
|
|
35
36
|
readonly DEAD_WEIGHT_CUT: "dead_weight_cut";
|
|
37
|
+
readonly POSITION_INCREASED: "position_increased";
|
|
38
|
+
readonly POSITION_DECREASED: "position_decreased";
|
|
39
|
+
readonly DSL_DELETED: "dsl_deleted";
|
|
36
40
|
};
|
|
37
41
|
export type CloseReason = (typeof CLOSE_REASON)[keyof typeof CLOSE_REASON];
|
|
38
42
|
export declare const MIN_INTERVAL_SECONDS = 5;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/dsl/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,eAAO,MAAM,uBAAuB,EAAG,UAAmB,CAAC;AAE3D,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/dsl/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,eAAO,MAAM,uBAAuB,EAAG,UAAmB,CAAC;AAE3D,uGAAuG;AACvG,eAAO,MAAM,MAAM;;;;;;CAMT,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;CASb,CAAC;AAEX,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAC9C,4FAA4F;AAC5F,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC,8EAA8E;AAC9E,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAaf,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAC3E,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAC1C,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,mFAAmF;AACnF,eAAO,MAAM,sCAAsC,IAAI,CAAC;AACxD,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,6DAA6D;AAC7D,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAC/C,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,cAAc,IAAI,CAAC"}
|
|
@@ -3,11 +3,13 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { HOOK_EVENT } from "../../types/hooks.js";
|
|
5
5
|
export const COMPONENT_TYPE_EXIT_DSL = "exit/dsl";
|
|
6
|
-
/** DSL subscribes to the same hook event names as the rest of the runtime. */
|
|
6
|
+
/** DSL subscribes to the same hook event names as the rest of the runtime, plus size-change events. */
|
|
7
7
|
export const EVENTS = {
|
|
8
8
|
POSITION_OPENED: HOOK_EVENT.ON_POSITION_OPENED,
|
|
9
9
|
POSITION_CLOSED: HOOK_EVENT.ON_POSITION_CLOSED,
|
|
10
10
|
POSITION_FLIPPED: HOOK_EVENT.ON_POSITION_FLIPPED,
|
|
11
|
+
POSITION_INCREASED: "position.increased",
|
|
12
|
+
POSITION_DECREASED: "position.decreased",
|
|
11
13
|
};
|
|
12
14
|
export const DSL_EVENTS = {
|
|
13
15
|
CREATED: "dsl.created",
|
|
@@ -17,23 +19,25 @@ export const DSL_EVENTS = {
|
|
|
17
19
|
CLOSED: "dsl.closed",
|
|
18
20
|
CLOSE_PENDING: "dsl.close_pending",
|
|
19
21
|
SETTINGS_UPDATED: "dsl.settings_updated",
|
|
22
|
+
DELETED: "dsl.deleted",
|
|
20
23
|
};
|
|
21
24
|
export const DEFAULT_STATE_DIR = ".dsl-state";
|
|
22
|
-
|
|
25
|
+
/** On-disk DSL state schema version (v1 = DSL engine v2; no migration from older files). */
|
|
26
|
+
export const DSL_STATE_VERSION = 1;
|
|
23
27
|
/** Close reasons for DSL state (closeReason) and position.closed (reason). */
|
|
24
28
|
export const CLOSE_REASON = {
|
|
25
29
|
MANUAL_CLOSE: "manual_close",
|
|
26
30
|
CLOSED_EXTERNALLY: "closed_externally",
|
|
27
|
-
|
|
31
|
+
EXCHANGE_SL_HIT: "exchange_sl_hit",
|
|
28
32
|
DSL_BREACH: "dsl_breach",
|
|
29
33
|
FLIPPED: "flipped",
|
|
30
34
|
CLOSE_POSITION_FAILED: "close_position_failed",
|
|
31
|
-
|
|
32
|
-
PHASE1_TIMEOUT: "phase1_timeout",
|
|
33
|
-
/** Phase 1 weak peak cut (peak ROE below minValue and current < peak). */
|
|
35
|
+
HARD_TIMEOUT: "hard_timeout",
|
|
34
36
|
WEAK_PEAK_CUT: "weak_peak_cut",
|
|
35
|
-
/** Phase 1 dead weight cut (never gone positive after interval). */
|
|
36
37
|
DEAD_WEIGHT_CUT: "dead_weight_cut",
|
|
38
|
+
POSITION_INCREASED: "position_increased",
|
|
39
|
+
POSITION_DECREASED: "position_decreased",
|
|
40
|
+
DSL_DELETED: "dsl_deleted",
|
|
37
41
|
};
|
|
38
42
|
export const MIN_INTERVAL_SECONDS = 5;
|
|
39
43
|
/** Upper bound for `exit.interval_seconds` (validation spec). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/dsl/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAmB,CAAC;AAE3D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/dsl/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAmB,CAAC;AAE3D,uGAAuG;AACvG,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,eAAe,EAAE,UAAU,CAAC,kBAAkB;IAC9C,eAAe,EAAE,UAAU,CAAC,kBAAkB;IAC9C,gBAAgB,EAAE,UAAU,CAAC,mBAAmB;IAChD,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAEX,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,OAAO,EAAE,aAAa;IACtB,aAAa,EAAE,mBAAmB;IAClC,aAAa,EAAE,mBAAmB;IAClC,UAAU,EAAE,gBAAgB;IAC5B,MAAM,EAAE,YAAY;IACpB,aAAa,EAAE,mBAAmB;IAClC,gBAAgB,EAAE,sBAAsB;IACxC,OAAO,EAAE,aAAa;CACd,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAC9C,4FAA4F;AAC5F,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,YAAY,EAAE,cAAc;IAC5B,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;IAClC,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;IAClB,qBAAqB,EAAE,uBAAuB;IAC9C,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,eAAe,EAAE,iBAAiB;IAClC,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,WAAW,EAAE,aAAa;CAClB,CAAC;AAGX,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AACtC,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AACzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAC1C,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAChD,mFAAmF;AACnF,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,CAAC;AACxD,kFAAkF;AAClF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AACtC,6DAA6D;AAC7D,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;AACxC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC"}
|
|
@@ -6,6 +6,8 @@ export interface ExitBlockConfig {
|
|
|
6
6
|
engine?: string;
|
|
7
7
|
interval_seconds?: number;
|
|
8
8
|
preset?: string;
|
|
9
|
+
/** Single preset; normalized to dsl_presets.dsl before parse (mutually exclusive with non-empty dsl_presets). */
|
|
10
|
+
dsl_preset?: RawPreset;
|
|
9
11
|
dsl_presets?: Record<string, RawPreset>;
|
|
10
12
|
}
|
|
11
13
|
//# sourceMappingURL=exit-block.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exit-block.d.ts","sourceRoot":"","sources":["../../../src/dsl/config/exit-block.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACzC"}
|
|
1
|
+
{"version":3,"file":"exit-block.d.ts","sourceRoot":"","sources":["../../../src/dsl/config/exit-block.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iHAAiH;IACjH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACzC"}
|