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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/README.md +46 -0
  2. package/dist/actions/action-runtime-module.d.ts +55 -0
  3. package/dist/actions/action-runtime-module.d.ts.map +1 -0
  4. package/dist/actions/action-runtime-module.js +444 -0
  5. package/dist/actions/action-runtime-module.js.map +1 -0
  6. package/dist/actions/close-position/close-position.action.d.ts +1 -0
  7. package/dist/actions/close-position/close-position.action.d.ts.map +1 -1
  8. package/dist/actions/close-position/close-position.action.js +55 -20
  9. package/dist/actions/close-position/close-position.action.js.map +1 -1
  10. package/dist/actions/decision-engine.d.ts.map +1 -1
  11. package/dist/actions/decision-engine.js +5 -0
  12. package/dist/actions/decision-engine.js.map +1 -1
  13. package/dist/actions/llm-decision/shared.d.ts +1 -1
  14. package/dist/actions/llm-decision/shared.d.ts.map +1 -1
  15. package/dist/actions/llm-decision/shared.js +1 -1
  16. package/dist/actions/llm-decision/shared.js.map +1 -1
  17. package/dist/actions/notifications/formatter.d.ts +39 -0
  18. package/dist/actions/notifications/formatter.d.ts.map +1 -0
  19. package/dist/actions/notifications/formatter.js +68 -0
  20. package/dist/actions/notifications/formatter.js.map +1 -0
  21. package/dist/actions/notifications/index.d.ts +37 -0
  22. package/dist/actions/notifications/index.d.ts.map +1 -0
  23. package/dist/actions/notifications/index.js +89 -0
  24. package/dist/actions/notifications/index.js.map +1 -0
  25. package/dist/actions/open-position/open-position.action.d.ts +1 -0
  26. package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
  27. package/dist/actions/open-position/open-position.action.js +132 -27
  28. package/dist/actions/open-position/open-position.action.js.map +1 -1
  29. package/dist/actions/open-position/resolve-margin.d.ts +22 -0
  30. package/dist/actions/open-position/resolve-margin.d.ts.map +1 -0
  31. package/dist/actions/open-position/resolve-margin.js +30 -0
  32. package/dist/actions/open-position/resolve-margin.js.map +1 -0
  33. package/dist/actions/position-tracker/position-tracker.action.d.ts.map +1 -1
  34. package/dist/actions/position-tracker/position-tracker.action.js +4 -1
  35. package/dist/actions/position-tracker/position-tracker.action.js.map +1 -1
  36. package/dist/actions/store/action-store.d.ts +45 -0
  37. package/dist/actions/store/action-store.d.ts.map +1 -0
  38. package/dist/actions/store/action-store.js +127 -0
  39. package/dist/actions/store/action-store.js.map +1 -0
  40. package/dist/actions/store/index.d.ts +11 -0
  41. package/dist/actions/store/index.d.ts.map +1 -0
  42. package/dist/actions/store/index.js +9 -0
  43. package/dist/actions/store/index.js.map +1 -0
  44. package/dist/actions/store/paths.d.ts +15 -0
  45. package/dist/actions/store/paths.d.ts.map +1 -0
  46. package/dist/actions/store/paths.js +29 -0
  47. package/dist/actions/store/paths.js.map +1 -0
  48. package/dist/actions/store/types.d.ts +114 -0
  49. package/dist/actions/store/types.d.ts.map +1 -0
  50. package/dist/actions/store/types.js +48 -0
  51. package/dist/actions/store/types.js.map +1 -0
  52. package/dist/actions/tracking-helpers.d.ts +13 -0
  53. package/dist/actions/tracking-helpers.d.ts.map +1 -0
  54. package/dist/actions/tracking-helpers.js +47 -0
  55. package/dist/actions/tracking-helpers.js.map +1 -0
  56. package/dist/actions/types.d.ts +8 -0
  57. package/dist/actions/types.d.ts.map +1 -1
  58. package/dist/cli/guide-commands.d.ts.map +1 -1
  59. package/dist/cli/guide-commands.js +105 -3
  60. package/dist/cli/guide-commands.js.map +1 -1
  61. package/dist/cli/senpi-commands.d.ts.map +1 -1
  62. package/dist/cli/senpi-commands.js +426 -0
  63. package/dist/cli/senpi-commands.js.map +1 -1
  64. package/dist/constants/order-types.d.ts +7 -0
  65. package/dist/constants/order-types.d.ts.map +1 -0
  66. package/dist/constants/order-types.js +6 -0
  67. package/dist/constants/order-types.js.map +1 -0
  68. package/dist/context/interpolate.d.ts +6 -2
  69. package/dist/context/interpolate.d.ts.map +1 -1
  70. package/dist/context/interpolate.js +6 -2
  71. package/dist/context/interpolate.js.map +1 -1
  72. package/dist/context/types.d.ts +8 -1
  73. package/dist/context/types.d.ts.map +1 -1
  74. package/dist/context/types.js +8 -1
  75. package/dist/context/types.js.map +1 -1
  76. package/dist/dsl/config/exit-block.d.ts +7 -0
  77. package/dist/dsl/config/exit-block.d.ts.map +1 -1
  78. package/dist/dsl/config/parse-plugin-config.d.ts.map +1 -1
  79. package/dist/dsl/config/parse-plugin-config.js +27 -1
  80. package/dist/dsl/config/parse-plugin-config.js.map +1 -1
  81. package/dist/dsl/config/unknown-keys.d.ts.map +1 -1
  82. package/dist/dsl/config/unknown-keys.js +3 -1
  83. package/dist/dsl/config/unknown-keys.js.map +1 -1
  84. package/dist/dsl/monitor/create-monitor.d.ts +4 -0
  85. package/dist/dsl/monitor/create-monitor.d.ts.map +1 -1
  86. package/dist/dsl/monitor/create-monitor.js +3 -1
  87. package/dist/dsl/monitor/create-monitor.js.map +1 -1
  88. package/dist/dsl/monitor/process-one-position.d.ts +4 -0
  89. package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
  90. package/dist/dsl/monitor/process-one-position.js +51 -7
  91. package/dist/dsl/monitor/process-one-position.js.map +1 -1
  92. package/dist/dsl/plugin/index.d.ts.map +1 -1
  93. package/dist/dsl/plugin/index.js +3 -1
  94. package/dist/dsl/plugin/index.js.map +1 -1
  95. package/dist/health/index.d.ts +5 -2
  96. package/dist/health/index.d.ts.map +1 -1
  97. package/dist/health/index.js +103 -6
  98. package/dist/health/index.js.map +1 -1
  99. package/dist/health/types.d.ts +99 -0
  100. package/dist/health/types.d.ts.map +1 -1
  101. package/dist/health/types.js +7 -1
  102. package/dist/health/types.js.map +1 -1
  103. package/dist/index.d.ts +1 -1
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +90 -0
  106. package/dist/index.js.map +1 -1
  107. package/dist/risk/guardrail.types.d.ts +53 -0
  108. package/dist/risk/guardrail.types.d.ts.map +1 -0
  109. package/dist/risk/guardrail.types.js +5 -0
  110. package/dist/risk/guardrail.types.js.map +1 -0
  111. package/dist/risk/index.d.ts +2 -4
  112. package/dist/risk/index.d.ts.map +1 -1
  113. package/dist/risk/index.js +2 -6
  114. package/dist/risk/index.js.map +1 -1
  115. package/dist/risk/risk-audit-log.d.ts +25 -0
  116. package/dist/risk/risk-audit-log.d.ts.map +1 -0
  117. package/dist/risk/risk-audit-log.js +30 -0
  118. package/dist/risk/risk-audit-log.js.map +1 -0
  119. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.d.ts +162 -0
  120. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.d.ts.map +1 -0
  121. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.js +285 -0
  122. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.js.map +1 -0
  123. package/dist/runtime/create-actions.d.ts +6 -2
  124. package/dist/runtime/create-actions.d.ts.map +1 -1
  125. package/dist/runtime/create-actions.js +18 -7
  126. package/dist/runtime/create-actions.js.map +1 -1
  127. package/dist/runtime/create-scanner-module.d.ts +5 -0
  128. package/dist/runtime/create-scanner-module.d.ts.map +1 -1
  129. package/dist/runtime/create-scanner-module.js +12 -1
  130. package/dist/runtime/create-scanner-module.js.map +1 -1
  131. package/dist/runtime/load-runtime-config.d.ts +1 -1
  132. package/dist/runtime/load-runtime-config.d.ts.map +1 -1
  133. package/dist/runtime/load-runtime-config.js +37 -1
  134. package/dist/runtime/load-runtime-config.js.map +1 -1
  135. package/dist/runtime/map-strategies.d.ts +1 -1
  136. package/dist/runtime/map-strategies.d.ts.map +1 -1
  137. package/dist/runtime/map-strategies.js +38 -1
  138. package/dist/runtime/map-strategies.js.map +1 -1
  139. package/dist/runtime/risk-guard.d.ts +23 -2
  140. package/dist/runtime/risk-guard.d.ts.map +1 -1
  141. package/dist/runtime/risk-guard.js +441 -5
  142. package/dist/runtime/risk-guard.js.map +1 -1
  143. package/dist/runtime/run.d.ts +7 -0
  144. package/dist/runtime/run.d.ts.map +1 -1
  145. package/dist/runtime/run.js +3 -0
  146. package/dist/runtime/run.js.map +1 -1
  147. package/dist/runtime/runtime-schema.d.ts +1169 -24
  148. package/dist/runtime/runtime-schema.d.ts.map +1 -1
  149. package/dist/runtime/runtime-schema.js +105 -2
  150. package/dist/runtime/runtime-schema.js.map +1 -1
  151. package/dist/runtime/runtime.d.ts +26 -0
  152. package/dist/runtime/runtime.d.ts.map +1 -1
  153. package/dist/runtime/runtime.js +192 -6
  154. package/dist/runtime/runtime.js.map +1 -1
  155. package/dist/runtime/scanner-composition.d.ts +10 -0
  156. package/dist/runtime/scanner-composition.d.ts.map +1 -1
  157. package/dist/runtime/scanner-composition.js +10 -0
  158. package/dist/runtime/scanner-composition.js.map +1 -1
  159. package/dist/runtime/scanner-registry.d.ts +39 -1
  160. package/dist/runtime/scanner-registry.d.ts.map +1 -1
  161. package/dist/runtime/scanner-registry.js +105 -2
  162. package/dist/runtime/scanner-registry.js.map +1 -1
  163. package/dist/runtime/state-layout.d.ts +2 -0
  164. package/dist/runtime/state-layout.d.ts.map +1 -1
  165. package/dist/runtime/state-layout.js +1 -0
  166. package/dist/runtime/state-layout.js.map +1 -1
  167. package/dist/runtime/validate-action-prompts.d.ts +30 -0
  168. package/dist/runtime/validate-action-prompts.d.ts.map +1 -0
  169. package/dist/runtime/validate-action-prompts.js +110 -0
  170. package/dist/runtime/validate-action-prompts.js.map +1 -0
  171. package/dist/scanners/__tests__/test-helpers.d.ts +10 -0
  172. package/dist/scanners/__tests__/test-helpers.d.ts.map +1 -1
  173. package/dist/scanners/__tests__/test-helpers.js +52 -0
  174. package/dist/scanners/__tests__/test-helpers.js.map +1 -1
  175. package/dist/scanners/engine/engine.d.ts +37 -0
  176. package/dist/scanners/engine/engine.d.ts.map +1 -1
  177. package/dist/scanners/engine/engine.js +130 -12
  178. package/dist/scanners/engine/engine.js.map +1 -1
  179. package/dist/scanners/engine/result-builder.d.ts +16 -0
  180. package/dist/scanners/engine/result-builder.d.ts.map +1 -1
  181. package/dist/scanners/engine/result-builder.js +22 -0
  182. package/dist/scanners/engine/result-builder.js.map +1 -1
  183. package/dist/scanners/engine/strategy-registry.d.ts +2 -0
  184. package/dist/scanners/engine/strategy-registry.d.ts.map +1 -1
  185. package/dist/scanners/engine/strategy-registry.js +5 -1
  186. package/dist/scanners/engine/strategy-registry.js.map +1 -1
  187. package/dist/scanners/external-scanner-receiver.d.ts +118 -0
  188. package/dist/scanners/external-scanner-receiver.d.ts.map +1 -0
  189. package/dist/scanners/external-scanner-receiver.js +266 -0
  190. package/dist/scanners/external-scanner-receiver.js.map +1 -0
  191. package/dist/scanners/implementations/external-scanner.d.ts +17 -0
  192. package/dist/scanners/implementations/external-scanner.d.ts.map +1 -0
  193. package/dist/scanners/implementations/external-scanner.js +51 -0
  194. package/dist/scanners/implementations/external-scanner.js.map +1 -0
  195. package/dist/scanners/implementations/index.d.ts +1 -0
  196. package/dist/scanners/implementations/index.d.ts.map +1 -1
  197. package/dist/scanners/implementations/index.js +1 -0
  198. package/dist/scanners/implementations/index.js.map +1 -1
  199. package/dist/scanners/index.d.ts +4 -1
  200. package/dist/scanners/index.d.ts.map +1 -1
  201. package/dist/scanners/index.js +2 -0
  202. package/dist/scanners/index.js.map +1 -1
  203. package/dist/scanners/protocol/scanner.d.ts +3 -1
  204. package/dist/scanners/protocol/scanner.d.ts.map +1 -1
  205. package/dist/scanners/runtime-module.d.ts +10 -0
  206. package/dist/scanners/runtime-module.d.ts.map +1 -1
  207. package/dist/scanners/runtime-module.js +19 -3
  208. package/dist/scanners/runtime-module.js.map +1 -1
  209. package/dist/scanners/scanner-definition.d.ts +12 -1
  210. package/dist/scanners/scanner-definition.d.ts.map +1 -1
  211. package/dist/scanners/types.d.ts +3 -0
  212. package/dist/scanners/types.d.ts.map +1 -1
  213. package/dist/scanners/types.js.map +1 -1
  214. package/dist/scripts/run-dsl-standalone-live.js +1 -1
  215. package/dist/scripts/run-dsl-standalone-live.js.map +1 -1
  216. package/dist/scripts/run-dsl-standalone-mock.js +1 -1
  217. package/dist/scripts/run-dsl-standalone-mock.js.map +1 -1
  218. package/dist/senpi/client.d.ts +27 -2
  219. package/dist/senpi/client.d.ts.map +1 -1
  220. package/dist/senpi/client.js +74 -1
  221. package/dist/senpi/client.js.map +1 -1
  222. package/dist/senpi/index.d.ts +1 -1
  223. package/dist/senpi/index.d.ts.map +1 -1
  224. package/dist/senpi/types.d.ts +68 -0
  225. package/dist/senpi/types.d.ts.map +1 -1
  226. package/dist/strategy/strategy-state.d.ts +4 -1
  227. package/dist/strategy/strategy-state.d.ts.map +1 -1
  228. package/dist/strategy/strategy-state.js +7 -2
  229. package/dist/strategy/strategy-state.js.map +1 -1
  230. package/dist/tracking/constants.d.ts +24 -0
  231. package/dist/tracking/constants.d.ts.map +1 -0
  232. package/dist/tracking/constants.js +46 -0
  233. package/dist/tracking/constants.js.map +1 -0
  234. package/dist/tracking/index.d.ts +12 -0
  235. package/dist/tracking/index.d.ts.map +1 -0
  236. package/dist/tracking/index.js +8 -0
  237. package/dist/tracking/index.js.map +1 -0
  238. package/dist/tracking/tracker.d.ts +22 -0
  239. package/dist/tracking/tracker.d.ts.map +1 -0
  240. package/dist/tracking/tracker.js +44 -0
  241. package/dist/tracking/tracker.js.map +1 -0
  242. package/dist/tracking/tracking-handler.d.ts +12 -0
  243. package/dist/tracking/tracking-handler.d.ts.map +1 -0
  244. package/dist/tracking/tracking-handler.js +148 -0
  245. package/dist/tracking/tracking-handler.js.map +1 -0
  246. package/dist/tracking/transport.d.ts +35 -0
  247. package/dist/tracking/transport.d.ts.map +1 -0
  248. package/dist/tracking/transport.js +117 -0
  249. package/dist/tracking/transport.js.map +1 -0
  250. package/dist/tracking/types.d.ts +21 -0
  251. package/dist/tracking/types.d.ts.map +1 -0
  252. package/dist/tracking/types.js +6 -0
  253. package/dist/tracking/types.js.map +1 -0
  254. package/dist/types/action.d.ts +13 -2
  255. package/dist/types/action.d.ts.map +1 -1
  256. package/dist/types/dsl/index.d.ts +4 -1
  257. package/dist/types/dsl/index.d.ts.map +1 -1
  258. package/dist/types/strategy.d.ts +9 -3
  259. package/dist/types/strategy.d.ts.map +1 -1
  260. package/dist/utils/resolve-order-type.d.ts +5 -0
  261. package/dist/utils/resolve-order-type.d.ts.map +1 -0
  262. package/dist/utils/resolve-order-type.js +29 -0
  263. package/dist/utils/resolve-order-type.js.map +1 -0
  264. package/examples/strategies/dsl-showcase.yaml +7 -2
  265. package/examples/strategies/dsl.yaml +5 -1
  266. package/examples/strategies/fox-minimal-loosened.yaml +18 -3
  267. package/examples/strategies/fox-minimal.yaml +25 -3
  268. package/examples/strategies/minimal.yaml +4 -2
  269. package/examples/strategies/momentum/how-it-works.md +47 -0
  270. package/examples/strategies/momentum/momentum-guarded.yaml +161 -0
  271. package/examples/strategies/risk-showcase.yaml +93 -0
  272. package/examples/strategies/viper.yaml +11 -3
  273. package/examples/strategies/wolf.yaml +11 -3
  274. package/examples/yamls/sample-with-dsl-and-emerging-movers.yaml +12 -4
  275. package/package.json +4 -4
@@ -1,8 +1,11 @@
1
- import type { ComponentHealth, DslComponentHealthStatus, DslSystemState, RuntimeHealthStatus, RuntimeSystemState, ScannerComponentHealthStatus, ScannerSystemState, StateStatusProvider } from "./types.js";
2
- export type { ComponentHealth, ComponentHealthStatus, ComponentSystemState, DslComponentHealthStatus, DslSystemState, RuntimeHealthStatus, RuntimeSystemState, ScannerComponentHealthStatus, ScannerRegistrationSystemState, ScannerSystemState, StateStatusProvider, } from "./types.js";
1
+ import type { ActionComponentHealthStatus, ActionSystemState, ComponentHealth, DslComponentHealthStatus, DslSystemState, RiskComponentHealthStatus, RiskSystemState, RuntimeHealthStatus, RuntimeSystemState, ScannerComponentHealthStatus, ScannerSystemState, StateStatusProvider } from "./types.js";
2
+ export type { ActionComponentHealthStatus, ActionRegistrationHealth, ActionRegistrationSystemState, ActionSystemState, ComponentHealth, ComponentHealthStatus, ComponentSystemState, DslComponentHealthStatus, DslSystemState, RiskComponentHealthStatus, RiskSystemState, RuntimeHealthStatus, RuntimeSystemState, ScannerComponentHealthStatus, ScannerRegistrationSystemState, ScannerSystemState, StateStatusProvider, } from "./types.js";
3
+ export { RISK_GATE_NAMES, } from "./types.js";
3
4
  type HealthProviderMap = {
4
5
  scanners: StateStatusProvider<ScannerComponentHealthStatus, ScannerSystemState>;
5
6
  dsl?: StateStatusProvider<DslComponentHealthStatus, DslSystemState>;
7
+ actions?: StateStatusProvider<ActionComponentHealthStatus, ActionSystemState>;
8
+ risk?: StateStatusProvider<RiskComponentHealthStatus, RiskSystemState>;
6
9
  };
7
10
  export interface CreateHealthStateModuleOptions {
8
11
  runtimeId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/health/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAGf,wBAAwB,EACxB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,EAE5B,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,EAC5B,8BAA8B,EAC9B,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,mBAAmB,CAAC,4BAA4B,EAAE,kBAAkB,CAAC,CAAC;IAChF,GAAG,CAAC,EAAE,mBAAmB,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC;CACrE,CAAC;AAEF,MAAM,WAAW,8BAA8B;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChD,cAAc,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9C,gBAAgB,CAAC,IAAI,SAAS,MAAM,iBAAiB,EACnD,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,iBAAiB,CAAC,IAAI,CAAC,GAChC,IAAI,CAAC;CACT;AAUD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,8BAA8B,GACtC,iBAAiB,CAmEnB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC,GAC1C,eAAe,CAgBjB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;CACnD,GAAG,IAAI,CAEP"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/health/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,EAGf,wBAAwB,EACxB,cAAc,EACd,yBAAyB,EACzB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,EAE5B,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,2BAA2B,EAC3B,wBAAwB,EACxB,6BAA6B,EAC7B,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,cAAc,EACd,yBAAyB,EACzB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,EAC5B,8BAA8B,EAC9B,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,mBAAmB,CAAC,4BAA4B,EAAE,kBAAkB,CAAC,CAAC;IAChF,GAAG,CAAC,EAAE,mBAAmB,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC;IACpE,OAAO,CAAC,EAAE,mBAAmB,CAAC,2BAA2B,EAAE,iBAAiB,CAAC,CAAC;IAC9E,IAAI,CAAC,EAAE,mBAAmB,CAAC,yBAAyB,EAAE,eAAe,CAAC,CAAC;CACxE,CAAC;AAEF,MAAM,WAAW,8BAA8B;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChD,cAAc,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9C,gBAAgB,CAAC,IAAI,SAAS,MAAM,iBAAiB,EACnD,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,iBAAiB,CAAC,IAAI,CAAC,GAChC,IAAI,CAAC;CACT;AAUD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,8BAA8B,GACtC,iBAAiB,CA2GnB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC,GAC1C,eAAe,CAgBjB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;CACnD,GAAG,IAAI,CAEP"}
@@ -1,3 +1,4 @@
1
+ export { RISK_GATE_NAMES, } from "./types.js";
1
2
  const HEALTH_ORDER = {
2
3
  healthy: 0,
3
4
  disabled: 0,
@@ -10,7 +11,7 @@ export function createHealthStateModule(options) {
10
11
  const providers = { ...options.providers };
11
12
  return {
12
13
  async getHealthStatus() {
13
- const [scanners, dsl] = await Promise.all([
14
+ const [scanners, dsl, risk] = await Promise.all([
14
15
  readProviderHealth({
15
16
  component: "scanners",
16
17
  provider: providers.scanners,
@@ -21,21 +22,40 @@ export function createHealthStateModule(options) {
21
22
  provider: providers.dsl,
22
23
  fallback: buildDslHealthFallback("DSL provider is not registered."),
23
24
  }),
25
+ readProviderHealth({
26
+ component: "risk",
27
+ provider: providers.risk,
28
+ fallback: buildRiskHealthFallback("Risk provider is not registered."),
29
+ }),
24
30
  ]);
31
+ const actions = providers.actions
32
+ ? await readProviderHealth({
33
+ component: "actions",
34
+ provider: providers.actions,
35
+ fallback: buildActionHealthFallback("Actions provider is not registered."),
36
+ })
37
+ : undefined;
25
38
  return {
26
- ...(options.runtimeId ? { recipeId: options.runtimeId } : {}),
39
+ ...(options.runtimeId ? { runtimeId: options.runtimeId } : {}),
27
40
  runtimeName: options.runtimeName,
28
41
  startedAt: new Date(startedAtMs).toISOString(),
29
42
  generatedAt: new Date().toISOString(),
30
- health: deriveRuntimeHealth([scanners.health, providers.dsl ? dsl.health : undefined]),
43
+ health: deriveRuntimeHealth([
44
+ scanners.health,
45
+ providers.dsl ? dsl.health : undefined,
46
+ providers.risk ? risk.health : undefined,
47
+ actions?.health,
48
+ ]),
31
49
  components: {
32
50
  scanners,
33
51
  ...(providers.dsl ? { dsl } : {}),
52
+ ...(providers.risk ? { risk } : {}),
53
+ ...(actions ? { actions } : {}),
34
54
  },
35
55
  };
36
56
  },
37
57
  async getSystemState() {
38
- const [scanners, dsl] = await Promise.all([
58
+ const [scanners, dsl, risk] = await Promise.all([
39
59
  readProviderState({
40
60
  component: "scanners",
41
61
  provider: providers.scanners,
@@ -46,17 +66,36 @@ export function createHealthStateModule(options) {
46
66
  provider: providers.dsl,
47
67
  fallback: buildDslStateFallback("DSL provider is not registered."),
48
68
  }),
69
+ readProviderState({
70
+ component: "risk",
71
+ provider: providers.risk,
72
+ fallback: buildRiskStateFallback("Risk provider is not registered."),
73
+ }),
49
74
  ]);
75
+ const actions = providers.actions
76
+ ? await readProviderState({
77
+ component: "actions",
78
+ provider: providers.actions,
79
+ fallback: buildActionStateFallback("Actions provider is not registered."),
80
+ })
81
+ : undefined;
50
82
  return {
51
- ...(options.runtimeId ? { recipeId: options.runtimeId } : {}),
83
+ ...(options.runtimeId ? { runtimeId: options.runtimeId } : {}),
52
84
  runtimeName: options.runtimeName,
53
85
  stateDir: options.stateDir,
54
86
  startedAt: new Date(startedAtMs).toISOString(),
55
87
  generatedAt: new Date().toISOString(),
56
- health: deriveRuntimeHealth([scanners.health, providers.dsl ? dsl.health : undefined]),
88
+ health: deriveRuntimeHealth([
89
+ scanners.health,
90
+ providers.dsl ? dsl.health : undefined,
91
+ providers.risk ? risk.health : undefined,
92
+ actions?.health,
93
+ ]),
57
94
  components: {
58
95
  scanners,
59
96
  ...(providers.dsl ? { dsl } : {}),
97
+ ...(providers.risk ? { risk } : {}),
98
+ ...(actions ? { actions } : {}),
60
99
  },
61
100
  };
62
101
  },
@@ -185,6 +224,64 @@ function buildDslStateFallback(error) {
185
224
  },
186
225
  };
187
226
  }
227
+ function buildActionHealthFallback(error) {
228
+ return {
229
+ component: "actions",
230
+ health: "unhealthy",
231
+ updatedAt: new Date().toISOString(),
232
+ summary: "Failed to query actions health.",
233
+ error,
234
+ totals: {
235
+ registered: 0,
236
+ enabled: 0,
237
+ inFlight: 0,
238
+ degraded: 0,
239
+ unhealthy: 1,
240
+ },
241
+ actions: [],
242
+ };
243
+ }
244
+ function buildActionStateFallback(error) {
245
+ return {
246
+ component: "actions",
247
+ health: "unhealthy",
248
+ updatedAt: new Date().toISOString(),
249
+ error,
250
+ state: {
251
+ totalRegistered: 0,
252
+ totalEnabled: 0,
253
+ actions: [],
254
+ },
255
+ };
256
+ }
257
+ function buildRiskHealthFallback(error) {
258
+ return {
259
+ component: "risk",
260
+ health: "disabled",
261
+ updatedAt: new Date().toISOString(),
262
+ summary: "Risk is not configured.",
263
+ error,
264
+ enabled: false,
265
+ eligibility: "OPEN",
266
+ totals: { gatesEvaluated: 0, open: 0, cooldown: 0, closed: 0, na: 0, fallbackCount: 0, failedCount: 0 },
267
+ gates: [],
268
+ };
269
+ }
270
+ function buildRiskStateFallback(error) {
271
+ return {
272
+ component: "risk",
273
+ health: "disabled",
274
+ updatedAt: new Date().toISOString(),
275
+ error,
276
+ state: {
277
+ enabled: false,
278
+ eligibility: "OPEN",
279
+ source: "runtime",
280
+ checkedAt: new Date().toISOString(),
281
+ gates: [],
282
+ },
283
+ };
284
+ }
188
285
  function formatProviderError(error) {
189
286
  return error instanceof Error ? error.message : String(error);
190
287
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/health/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/health/index.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@ export interface ScannerComponentHealthStatus extends ComponentHealthStatus {
36
36
  export interface ScannerRegistrationSystemState {
37
37
  address: string;
38
38
  scannerId: string;
39
+ scheduleMode: "interval" | "external";
39
40
  health: ComponentHealth;
40
41
  enabled: boolean;
41
42
  initialized: boolean;
@@ -88,6 +89,100 @@ export interface DslSystemState extends ComponentSystemState<{
88
89
  }> {
89
90
  component: "dsl";
90
91
  }
92
+ export type ActionType = import("../actions/types.js").ActionType;
93
+ export type DecisionMode = import("../actions/types.js").DecisionMode;
94
+ export interface ActionRegistrationHealth {
95
+ address: string;
96
+ actionName: string;
97
+ actionType: ActionType;
98
+ health: ComponentHealth;
99
+ }
100
+ export interface ActionComponentHealthStatus extends ComponentHealthStatus {
101
+ component: "actions";
102
+ totals: {
103
+ registered: number;
104
+ enabled: number;
105
+ inFlight: number;
106
+ degraded: number;
107
+ unhealthy: number;
108
+ };
109
+ actions: ActionRegistrationHealth[];
110
+ }
111
+ export interface ActionRegistrationSystemState {
112
+ address: string;
113
+ actionName: string;
114
+ actionType: ActionType;
115
+ decisionMode: DecisionMode;
116
+ health: ComponentHealth;
117
+ enabled: boolean;
118
+ inFlight: boolean;
119
+ lastRunStartedAt: number | null;
120
+ lastRunFinishedAt: number | null;
121
+ lastRunStatus: string | null;
122
+ lastSkipReason: string | null;
123
+ lastError: string | null;
124
+ lastErrorAt: number | null;
125
+ runCount: number;
126
+ successCount: number;
127
+ errorCount: number;
128
+ skipCount: number;
129
+ consecutiveErrorCount: number;
130
+ lastDecisionExecute: boolean | null;
131
+ lastDecisionConfidence: number | null;
132
+ totalDecisionsExecute: number;
133
+ totalDecisionsNoExecute: number;
134
+ totalTokensUsed: number;
135
+ lastExecutedAssets: string[];
136
+ config: unknown;
137
+ }
138
+ export interface ActionSystemState extends ComponentSystemState<{
139
+ totalRegistered: number;
140
+ totalEnabled: number;
141
+ actions: ActionRegistrationSystemState[];
142
+ }> {
143
+ component: "actions";
144
+ }
145
+ export type RiskGateStatus = "OPEN" | "COOLDOWN" | "CLOSED" | "N_A";
146
+ export type RiskFailureKind = "none" | "timeout" | "transport" | "auth" | "schema" | "empty_data" | "unexpected";
147
+ export type RiskSource = "runtime" | "cli";
148
+ export type RiskGateId = "daily_loss_halt" | "drawdown_halt" | "consecutive_loss" | "per_asset_cooldown" | "max_entries_day";
149
+ export declare const RISK_GATE_NAMES: Record<RiskGateId, string>;
150
+ /** Per-gate evaluation result with reliability metadata. */
151
+ export interface RiskGateEvaluation {
152
+ gateId: RiskGateId;
153
+ gateName: string;
154
+ status: RiskGateStatus;
155
+ reason?: string;
156
+ evaluationOk: boolean;
157
+ fallbackApplied: boolean;
158
+ failureKind: RiskFailureKind;
159
+ source: RiskSource;
160
+ metrics?: Record<string, unknown>;
161
+ }
162
+ export interface RiskComponentHealthStatus extends ComponentHealthStatus {
163
+ component: "risk";
164
+ enabled: boolean;
165
+ eligibility: Exclude<RiskGateStatus, "N_A">;
166
+ totals: {
167
+ gatesEvaluated: number;
168
+ open: number;
169
+ cooldown: number;
170
+ closed: number;
171
+ na: number;
172
+ fallbackCount: number;
173
+ failedCount: number;
174
+ };
175
+ gates: RiskGateEvaluation[];
176
+ }
177
+ export interface RiskSystemState extends ComponentSystemState<{
178
+ enabled: boolean;
179
+ eligibility: Exclude<RiskGateStatus, "N_A">;
180
+ source: RiskSource;
181
+ checkedAt: string;
182
+ gates: RiskGateEvaluation[];
183
+ }> {
184
+ component: "risk";
185
+ }
91
186
  export interface RuntimeHealthStatus {
92
187
  runtimeId?: string;
93
188
  runtimeName: string;
@@ -97,6 +192,8 @@ export interface RuntimeHealthStatus {
97
192
  components: {
98
193
  scanners: ScannerComponentHealthStatus;
99
194
  dsl?: DslComponentHealthStatus;
195
+ actions?: ActionComponentHealthStatus;
196
+ risk?: RiskComponentHealthStatus;
100
197
  };
101
198
  }
102
199
  export interface RuntimeSystemState {
@@ -109,6 +206,8 @@ export interface RuntimeSystemState {
109
206
  components: {
110
207
  scanners: ScannerSystemState;
111
208
  dsl?: DslSystemState;
209
+ actions?: ActionSystemState;
210
+ risk?: RiskSystemState;
112
211
  };
113
212
  }
114
213
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/health/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/health/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,UAAU,GACV,WAAW,GACX,UAAU,GACV,SAAS,CAAC;AAEd,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB,CAAC,MAAM,GAAG,OAAO;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB,CAClC,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,MAAM,SAAS,oBAAoB,GAAG,oBAAoB;IAE1D,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,4BAA6B,SAAQ,qBAAqB;IACzE,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,QAAQ,EAAE,yBAAyB,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,UAAU,GAAG,UAAU,CAAC;IACtC,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,kBACf,SAAQ,oBAAoB,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,8BAA8B,EAAE,CAAC;CAC5C,CAAC;IACF,SAAS,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,wBAAyB,SAAQ,qBAAqB;IACrE,SAAS,EAAE,KAAK,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cACf,SAAQ,oBAAoB,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC;QAClB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,SAAS,EAAE,OAAO,EAAE,CAAC;CACtB,CAAC;IACF,SAAS,EAAE,KAAK,CAAC;CAClB;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,qBAAqB,EAAE,UAAU,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,OAAO,qBAAqB,EAAE,YAAY,CAAC;AAEtE,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,2BAA4B,SAAQ,qBAAqB;IACxE,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,OAAO,EAAE,wBAAwB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,uBAAuB,EAAE,MAAM,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,iBACf,SAAQ,oBAAoB,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,6BAA6B,EAAE,CAAC;CAC1C,CAAC;IACF,SAAS,EAAE,SAAS,CAAC;CACtB;AAID,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEpE,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,SAAS,GACT,WAAW,GACX,MAAM,GACN,QAAQ,GACR,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,KAAK,CAAC;AAE3C,MAAM,MAAM,UAAU,GAClB,iBAAiB,GACjB,eAAe,GACf,kBAAkB,GAClB,oBAAoB,GACpB,iBAAiB,CAAC;AAEtB,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAMtD,CAAC;AAEF,4DAA4D;AAC5D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,eAAe,CAAC;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,EAAE,kBAAkB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,eACf,SAAQ,oBAAoB,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,kBAAkB,EAAE,CAAC;CAC7B,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE;QACV,QAAQ,EAAE,4BAA4B,CAAC;QACvC,GAAG,CAAC,EAAE,wBAAwB,CAAC;QAC/B,OAAO,CAAC,EAAE,2BAA2B,CAAC;QACtC,IAAI,CAAC,EAAE,yBAAyB,CAAC;KAClC,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE;QACV,QAAQ,EAAE,kBAAkB,CAAC;QAC7B,GAAG,CAAC,EAAE,cAAc,CAAC;QACrB,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAC5B,IAAI,CAAC,EAAE,eAAe,CAAC;KACxB,CAAC;CACH"}
@@ -1,2 +1,8 @@
1
- export {};
1
+ export const RISK_GATE_NAMES = {
2
+ daily_loss_halt: "Daily Loss Halt",
3
+ drawdown_halt: "Drawdown Halt",
4
+ consecutive_loss: "Consecutive Loss",
5
+ per_asset_cooldown: "Per-Asset Cooldown",
6
+ max_entries_day: "Max Entries/Day",
7
+ };
2
8
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/health/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/health/types.ts"],"names":[],"mappings":"AAgMA,MAAM,CAAC,MAAM,eAAe,GAA+B;IACzD,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,kBAAkB,EAAE,oBAAoB;IACxC,eAAe,EAAE,iBAAiB;CACnC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -27,7 +27,7 @@ export { ClosePositionAction, closePositionFactory, closePositionManifest, } fro
27
27
  export { SenpiClient } from './senpi/index.js';
28
28
  export type { McpTransport, SenpiClientConfig, CreatePositionRequest, CreatePositionOrder, CreatePositionResult, CreatePositionOrderResult, OrderDirection, OrderType, LeverageType, TimeInForce, ExitOrderType, StopLoss, TakeProfit, ListStrategiesFilters, StrategySummary, } from './senpi/index.js';
29
29
  export { createScannerRuntimeModule, createSenpiScannerProviders, emergingMoversScanner, momentumScanner, oiTrackerScanner, providerInput, prescreenerScanner, PersistencePolicy, RetentionPolicy, ScanStatus as ScannerScanStatus, SkipScan, } from './scanners/index.js';
30
- export type { ScannerId, StrategyId, InstrumentContext, Instrument, Candle, CandleResult, ParsedCandles, OiSnapshot, SmMarket, Candidate, ReadSignalsFilter as ScannerReadSignalsFilter, ProviderLogLevel, ProviderLogger, ProviderToolClient, SenpiProviderCacheTtlMs, SenpiProviderTimeouts, SenpiProviderToolNames, SenpiScannerProviderFactoryOptions, SenpiToolClient, Scanner as RuntimeScanner, ScannerDataProviders, ScannerDefinition, ScannerHooks, ProviderInputDescriptor, InstrumentsInputDescriptor, CandlesInputDescriptor, SmDataInputDescriptor, ActivePositionsInputDescriptor, ScannerInputDescriptor, ScannerInput, ScannerRegistrationSummary, ScannerRuntimeEventMap, ScannerRuntimeEventName, ScannerRuntimeModule, ScannerRuntimeModuleOptions, StrategyRegistration as ScannerStrategyRegistration, } from './scanners/index.js';
30
+ export type { ScannerId, StrategyId, InstrumentContext, Instrument, Candle, CandleResult, ParsedCandles, OiSnapshot, SmMarket, Candidate, ReadSignalsFilter as ScannerReadSignalsFilter, ProviderLogLevel, ProviderLogger, ProviderToolClient, SenpiProviderCacheTtlMs, SenpiProviderTimeouts, SenpiProviderToolNames, SenpiScannerProviderFactoryOptions, SenpiToolClient, Scanner as RuntimeScanner, ScannerDataProviders, ScannerDefinition, ScannerHooks, ProviderInputDescriptor, InstrumentsInputDescriptor, CandlesInputDescriptor, SmDataInputDescriptor, ActivePositionsInputDescriptor, ScannerInputDescriptor, ScannerInput, ExternalScannerIngestRequest, ExternalScannerIngestResult, ExternalScannerIngestSignalItem, ScannerRegistrationSummary, ScannerRuntimeEventMap, ScannerRuntimeEventName, ScannerRuntimeModule, ScannerRuntimeModuleOptions, StrategyRegistration as ScannerStrategyRegistration, } from './scanners/index.js';
31
31
  export { run } from "./runtime/run.js";
32
32
  export type { RunOptions, RuntimeHandle } from "./runtime/run.js";
33
33
  export { loadRuntimeConfig } from "./runtime/load-runtime-config.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -21,6 +21,7 @@ import { initHealth } from "./health/index.js";
21
21
  import { initRisk } from "./risk/index.js";
22
22
  import { VERSION } from "./version.js";
23
23
  import { setErrorNotifier, } from "./utils/logger.js";
24
+ import { ExternalScannerIngestError, } from "./scanners/external-scanner-receiver.js";
24
25
  /** Initialize all core features (DSL, risk, health) on the given event bus. */
25
26
  export function initCore(bus) {
26
27
  initDsl(bus);
@@ -526,6 +527,41 @@ const senpiRuntimePlugin = {
526
527
  await writeRegistry(baseStateDir, { ...registry, runtimes: next });
527
528
  respond(true, { id: targetId });
528
529
  });
530
+ api.registerGatewayMethod("senpi.ingestExternalScannerData", async (ctx) => {
531
+ const respond = ctx.respond;
532
+ try {
533
+ const { address, request } = parseGatewayExternalScannerIngestParams(ctx.params);
534
+ const runtime = getRuntimeHandleByAddressOrRespond(runtimeHandles, address, respond);
535
+ if (!runtime) {
536
+ return;
537
+ }
538
+ pluginLogger.info("[senpi-runtime] senpi.ingestExternalScannerData", {
539
+ runtimeId: runtime.runtimeId,
540
+ address,
541
+ scanner: request.scanner,
542
+ });
543
+ const result = await runtime.handle.ingestExternalScannerData(request);
544
+ respond(true, result);
545
+ }
546
+ catch (error) {
547
+ if (error instanceof ExternalScannerIngestError) {
548
+ respond(false, undefined, {
549
+ code: error.code,
550
+ message: error.message,
551
+ });
552
+ return;
553
+ }
554
+ pluginLogger.warn("[senpi-runtime] ingestExternalScannerData error", {
555
+ address: typeof ctx.params?.address === "string" ? ctx.params.address : undefined,
556
+ scanner: typeof ctx.params?.scanner === "string" ? ctx.params.scanner : undefined,
557
+ err: error,
558
+ });
559
+ respond(false, undefined, {
560
+ code: "UNAVAILABLE",
561
+ message: `Failed to ingest external scanner data: ${formatGatewayError(error)}`,
562
+ });
563
+ }
564
+ });
529
565
  api.registerGatewayMethod("senpi.listDslPositions", async (ctx) => {
530
566
  const respond = ctx.respond;
531
567
  const runtimeId = typeof ctx.params?.runtimeId === "string" ? ctx.params.runtimeId : undefined;
@@ -688,6 +724,60 @@ function getRuntimeHandleOrRespond(runtimeHandles, runtimeId, respond) {
688
724
  });
689
725
  return null;
690
726
  }
727
+ /**
728
+ * Parse the gateway request shape for `senpi.ingestExternalScannerData`.
729
+ *
730
+ * The plugin contract keeps `address` at the gateway layer because the plugin
731
+ * owns the map of running runtimes keyed by runtime id, while the runtime's
732
+ * programmatic ingest API is already scoped to one strategy wallet. This
733
+ * helper validates only the routing-critical fields (`address`, `scanner`) and
734
+ * forwards the remaining payload as-is so the runtime keeps ownership of the
735
+ * external-scanner data contract.
736
+ */
737
+ function parseGatewayExternalScannerIngestParams(params) {
738
+ const address = typeof params?.address === "string" ? params.address.trim() : "";
739
+ if (!address) {
740
+ throw new ExternalScannerIngestError("INVALID_REQUEST", "External scanner ingest requires address as a non-empty string.");
741
+ }
742
+ const scanner = typeof params?.scanner === "string" ? params.scanner.trim() : "";
743
+ if (!scanner) {
744
+ throw new ExternalScannerIngestError("INVALID_REQUEST", "External scanner ingest requires scanner as a non-empty string.");
745
+ }
746
+ return {
747
+ address,
748
+ request: {
749
+ scanner,
750
+ asset: params?.asset,
751
+ direction: params?.direction,
752
+ score: params?.score,
753
+ signal_type: params?.signal_type,
754
+ data: params?.data,
755
+ signals: params?.signals,
756
+ },
757
+ };
758
+ }
759
+ /**
760
+ * Resolve one running runtime by strategy wallet address.
761
+ *
762
+ * Runtime handles are stored by runtime id, but the external-scanner gateway
763
+ * contract routes by wallet address because the ingest payload comes from an
764
+ * operator or upstream system that knows which strategy wallet it is targeting.
765
+ * Runtime install already enforces one running runtime per wallet, so a
766
+ * case-insensitive wallet match is enough to identify the correct runtime.
767
+ */
768
+ function getRuntimeHandleByAddressOrRespond(runtimeHandles, address, respond) {
769
+ const normalizedAddress = address.toLowerCase();
770
+ for (const [runtimeId, handle] of runtimeHandles) {
771
+ if (handle.wallet.toLowerCase() === normalizedAddress) {
772
+ return { runtimeId, handle };
773
+ }
774
+ }
775
+ respond(false, undefined, {
776
+ code: "NOT_FOUND",
777
+ message: `No running runtime found for wallet address "${address}".`,
778
+ });
779
+ return null;
780
+ }
691
781
  async function collectRuntimeHealthStatuses(runtimeHandles, logger) {
692
782
  return (await Promise.all(Array.from(runtimeHandles, async ([runtimeId, handle]) => {
693
783
  try {