@senpi/runtime 1.0.95-dev.20260408174401

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (755) hide show
  1. package/README.md +155 -0
  2. package/dist/actions/close-position/close-position.action.d.ts +16 -0
  3. package/dist/actions/close-position/close-position.action.d.ts.map +1 -0
  4. package/dist/actions/close-position/close-position.action.js +220 -0
  5. package/dist/actions/close-position/close-position.action.js.map +1 -0
  6. package/dist/actions/decision-engine.d.ts +32 -0
  7. package/dist/actions/decision-engine.d.ts.map +1 -0
  8. package/dist/actions/decision-engine.js +103 -0
  9. package/dist/actions/decision-engine.js.map +1 -0
  10. package/dist/actions/llm-decision/anthropic-llm-decision.d.ts +12 -0
  11. package/dist/actions/llm-decision/anthropic-llm-decision.d.ts.map +1 -0
  12. package/dist/actions/llm-decision/anthropic-llm-decision.js +74 -0
  13. package/dist/actions/llm-decision/anthropic-llm-decision.js.map +1 -0
  14. package/dist/actions/llm-decision/factory.d.ts +17 -0
  15. package/dist/actions/llm-decision/factory.d.ts.map +1 -0
  16. package/dist/actions/llm-decision/factory.js +29 -0
  17. package/dist/actions/llm-decision/factory.js.map +1 -0
  18. package/dist/actions/llm-decision/index.d.ts +8 -0
  19. package/dist/actions/llm-decision/index.d.ts.map +1 -0
  20. package/dist/actions/llm-decision/index.js +5 -0
  21. package/dist/actions/llm-decision/index.js.map +1 -0
  22. package/dist/actions/llm-decision/openclaw-llm-decision.d.ts +14 -0
  23. package/dist/actions/llm-decision/openclaw-llm-decision.d.ts.map +1 -0
  24. package/dist/actions/llm-decision/openclaw-llm-decision.js +58 -0
  25. package/dist/actions/llm-decision/openclaw-llm-decision.js.map +1 -0
  26. package/dist/actions/llm-decision/shared.d.ts +41 -0
  27. package/dist/actions/llm-decision/shared.d.ts.map +1 -0
  28. package/dist/actions/llm-decision/shared.js +117 -0
  29. package/dist/actions/llm-decision/shared.js.map +1 -0
  30. package/dist/actions/open-position/open-position.action.d.ts +16 -0
  31. package/dist/actions/open-position/open-position.action.d.ts.map +1 -0
  32. package/dist/actions/open-position/open-position.action.js +278 -0
  33. package/dist/actions/open-position/open-position.action.js.map +1 -0
  34. package/dist/actions/position-tracker/position-tracker.action.d.ts +14 -0
  35. package/dist/actions/position-tracker/position-tracker.action.d.ts.map +1 -0
  36. package/dist/actions/position-tracker/position-tracker.action.js +201 -0
  37. package/dist/actions/position-tracker/position-tracker.action.js.map +1 -0
  38. package/dist/actions/types.d.ts +123 -0
  39. package/dist/actions/types.d.ts.map +1 -0
  40. package/dist/actions/types.js +3 -0
  41. package/dist/actions/types.js.map +1 -0
  42. package/dist/cli/guide-commands.d.ts +27 -0
  43. package/dist/cli/guide-commands.d.ts.map +1 -0
  44. package/dist/cli/guide-commands.js +481 -0
  45. package/dist/cli/guide-commands.js.map +1 -0
  46. package/dist/cli/senpi-cli-config.d.ts +33 -0
  47. package/dist/cli/senpi-cli-config.d.ts.map +1 -0
  48. package/dist/cli/senpi-cli-config.js +130 -0
  49. package/dist/cli/senpi-cli-config.js.map +1 -0
  50. package/dist/cli/senpi-commands.d.ts +21 -0
  51. package/dist/cli/senpi-commands.d.ts.map +1 -0
  52. package/dist/cli/senpi-commands.js +471 -0
  53. package/dist/cli/senpi-commands.js.map +1 -0
  54. package/dist/cli/senpi-config-commands.d.ts +11 -0
  55. package/dist/cli/senpi-config-commands.d.ts.map +1 -0
  56. package/dist/cli/senpi-config-commands.js +113 -0
  57. package/dist/cli/senpi-config-commands.js.map +1 -0
  58. package/dist/constants/dsl/index.d.ts +62 -0
  59. package/dist/constants/dsl/index.d.ts.map +1 -0
  60. package/dist/constants/dsl/index.js +62 -0
  61. package/dist/constants/dsl/index.js.map +1 -0
  62. package/dist/context/context-builder.d.ts +14 -0
  63. package/dist/context/context-builder.d.ts.map +1 -0
  64. package/dist/context/context-builder.js +38 -0
  65. package/dist/context/context-builder.js.map +1 -0
  66. package/dist/context/index.d.ts +5 -0
  67. package/dist/context/index.d.ts.map +1 -0
  68. package/dist/context/index.js +5 -0
  69. package/dist/context/index.js.map +1 -0
  70. package/dist/context/interpolate.d.ts +6 -0
  71. package/dist/context/interpolate.d.ts.map +1 -0
  72. package/dist/context/interpolate.js +15 -0
  73. package/dist/context/interpolate.js.map +1 -0
  74. package/dist/context/providers/asset-trend.provider.d.ts +42 -0
  75. package/dist/context/providers/asset-trend.provider.d.ts.map +1 -0
  76. package/dist/context/providers/asset-trend.provider.js +90 -0
  77. package/dist/context/providers/asset-trend.provider.js.map +1 -0
  78. package/dist/context/providers/index.d.ts +5 -0
  79. package/dist/context/providers/index.d.ts.map +1 -0
  80. package/dist/context/providers/index.js +5 -0
  81. package/dist/context/providers/index.js.map +1 -0
  82. package/dist/context/providers/scanner-context.provider.d.ts +10 -0
  83. package/dist/context/providers/scanner-context.provider.d.ts.map +1 -0
  84. package/dist/context/providers/scanner-context.provider.js +20 -0
  85. package/dist/context/providers/scanner-context.provider.js.map +1 -0
  86. package/dist/context/providers/signal.provider.d.ts +11 -0
  87. package/dist/context/providers/signal.provider.d.ts.map +1 -0
  88. package/dist/context/providers/signal.provider.js +30 -0
  89. package/dist/context/providers/signal.provider.js.map +1 -0
  90. package/dist/context/providers/strategy.provider.d.ts +14 -0
  91. package/dist/context/providers/strategy.provider.d.ts.map +1 -0
  92. package/dist/context/providers/strategy.provider.js +71 -0
  93. package/dist/context/providers/strategy.provider.js.map +1 -0
  94. package/dist/context/types.d.ts +45 -0
  95. package/dist/context/types.d.ts.map +1 -0
  96. package/dist/context/types.js +18 -0
  97. package/dist/context/types.js.map +1 -0
  98. package/dist/debug.d.ts +2 -0
  99. package/dist/debug.d.ts.map +1 -0
  100. package/dist/debug.js +591 -0
  101. package/dist/debug.js.map +1 -0
  102. package/dist/dsl/config/exit-block.d.ts +11 -0
  103. package/dist/dsl/config/exit-block.d.ts.map +1 -0
  104. package/dist/dsl/config/exit-block.js +5 -0
  105. package/dist/dsl/config/exit-block.js.map +1 -0
  106. package/dist/dsl/config/index.d.ts +8 -0
  107. package/dist/dsl/config/index.d.ts.map +1 -0
  108. package/dist/dsl/config/index.js +6 -0
  109. package/dist/dsl/config/index.js.map +1 -0
  110. package/dist/dsl/config/parse-phase.d.ts +14 -0
  111. package/dist/dsl/config/parse-phase.d.ts.map +1 -0
  112. package/dist/dsl/config/parse-phase.js +78 -0
  113. package/dist/dsl/config/parse-phase.js.map +1 -0
  114. package/dist/dsl/config/parse-plugin-config.d.ts +8 -0
  115. package/dist/dsl/config/parse-plugin-config.d.ts.map +1 -0
  116. package/dist/dsl/config/parse-plugin-config.js +27 -0
  117. package/dist/dsl/config/parse-plugin-config.js.map +1 -0
  118. package/dist/dsl/config/parse-preset.d.ts +7 -0
  119. package/dist/dsl/config/parse-preset.d.ts.map +1 -0
  120. package/dist/dsl/config/parse-preset.js +99 -0
  121. package/dist/dsl/config/parse-preset.js.map +1 -0
  122. package/dist/dsl/config/parse-tiers.d.ts +7 -0
  123. package/dist/dsl/config/parse-tiers.d.ts.map +1 -0
  124. package/dist/dsl/config/parse-tiers.js +31 -0
  125. package/dist/dsl/config/parse-tiers.js.map +1 -0
  126. package/dist/dsl/config/parse-timeouts.d.ts +16 -0
  127. package/dist/dsl/config/parse-timeouts.d.ts.map +1 -0
  128. package/dist/dsl/config/parse-timeouts.js +75 -0
  129. package/dist/dsl/config/parse-timeouts.js.map +1 -0
  130. package/dist/dsl/config/raw-types.d.ts +45 -0
  131. package/dist/dsl/config/raw-types.d.ts.map +1 -0
  132. package/dist/dsl/config/raw-types.js +5 -0
  133. package/dist/dsl/config/raw-types.js.map +1 -0
  134. package/dist/dsl/config/unknown-keys.d.ts +7 -0
  135. package/dist/dsl/config/unknown-keys.d.ts.map +1 -0
  136. package/dist/dsl/config/unknown-keys.js +119 -0
  137. package/dist/dsl/config/unknown-keys.js.map +1 -0
  138. package/dist/dsl/config/validation.d.ts +21 -0
  139. package/dist/dsl/config/validation.d.ts.map +1 -0
  140. package/dist/dsl/config/validation.js +45 -0
  141. package/dist/dsl/config/validation.js.map +1 -0
  142. package/dist/dsl/constants/index.d.ts +3 -0
  143. package/dist/dsl/constants/index.d.ts.map +1 -0
  144. package/dist/dsl/constants/index.js +3 -0
  145. package/dist/dsl/constants/index.js.map +1 -0
  146. package/dist/dsl/engine/exchange-stop.d.ts +16 -0
  147. package/dist/dsl/engine/exchange-stop.d.ts.map +1 -0
  148. package/dist/dsl/engine/exchange-stop.js +20 -0
  149. package/dist/dsl/engine/exchange-stop.js.map +1 -0
  150. package/dist/dsl/engine/floors.d.ts +32 -0
  151. package/dist/dsl/engine/floors.d.ts.map +1 -0
  152. package/dist/dsl/engine/floors.js +115 -0
  153. package/dist/dsl/engine/floors.js.map +1 -0
  154. package/dist/dsl/engine/index.d.ts +7 -0
  155. package/dist/dsl/engine/index.d.ts.map +1 -0
  156. package/dist/dsl/engine/index.js +7 -0
  157. package/dist/dsl/engine/index.js.map +1 -0
  158. package/dist/dsl/engine/round.d.ts +5 -0
  159. package/dist/dsl/engine/round.d.ts.map +1 -0
  160. package/dist/dsl/engine/round.js +9 -0
  161. package/dist/dsl/engine/round.js.map +1 -0
  162. package/dist/dsl/engine/state-updates.d.ts +8 -0
  163. package/dist/dsl/engine/state-updates.d.ts.map +1 -0
  164. package/dist/dsl/engine/state-updates.js +60 -0
  165. package/dist/dsl/engine/state-updates.js.map +1 -0
  166. package/dist/dsl/engine/tick.d.ts +6 -0
  167. package/dist/dsl/engine/tick.d.ts.map +1 -0
  168. package/dist/dsl/engine/tick.js +174 -0
  169. package/dist/dsl/engine/tick.js.map +1 -0
  170. package/dist/dsl/events/bus-types.d.ts +7 -0
  171. package/dist/dsl/events/bus-types.d.ts.map +1 -0
  172. package/dist/dsl/events/bus-types.js +6 -0
  173. package/dist/dsl/events/bus-types.js.map +1 -0
  174. package/dist/dsl/events/guards.d.ts +17 -0
  175. package/dist/dsl/events/guards.d.ts.map +1 -0
  176. package/dist/dsl/events/guards.js +116 -0
  177. package/dist/dsl/events/guards.js.map +1 -0
  178. package/dist/dsl/events/handlers.d.ts +19 -0
  179. package/dist/dsl/events/handlers.d.ts.map +1 -0
  180. package/dist/dsl/events/handlers.js +387 -0
  181. package/dist/dsl/events/handlers.js.map +1 -0
  182. package/dist/dsl/events/index.d.ts +4 -0
  183. package/dist/dsl/events/index.d.ts.map +1 -0
  184. package/dist/dsl/events/index.js +4 -0
  185. package/dist/dsl/events/index.js.map +1 -0
  186. package/dist/dsl/events/initial-state.d.ts +7 -0
  187. package/dist/dsl/events/initial-state.d.ts.map +1 -0
  188. package/dist/dsl/events/initial-state.js +96 -0
  189. package/dist/dsl/events/initial-state.js.map +1 -0
  190. package/dist/dsl/events/normalize-position-opened.d.ts +10 -0
  191. package/dist/dsl/events/normalize-position-opened.d.ts.map +1 -0
  192. package/dist/dsl/events/normalize-position-opened.js +13 -0
  193. package/dist/dsl/events/normalize-position-opened.js.map +1 -0
  194. package/dist/dsl/index.d.ts +13 -0
  195. package/dist/dsl/index.d.ts.map +1 -0
  196. package/dist/dsl/index.js +37 -0
  197. package/dist/dsl/index.js.map +1 -0
  198. package/dist/dsl/monitor/create-monitor.d.ts +24 -0
  199. package/dist/dsl/monitor/create-monitor.d.ts.map +1 -0
  200. package/dist/dsl/monitor/create-monitor.js +162 -0
  201. package/dist/dsl/monitor/create-monitor.js.map +1 -0
  202. package/dist/dsl/monitor/effective-dex.d.ts +7 -0
  203. package/dist/dsl/monitor/effective-dex.d.ts.map +1 -0
  204. package/dist/dsl/monitor/effective-dex.js +11 -0
  205. package/dist/dsl/monitor/effective-dex.js.map +1 -0
  206. package/dist/dsl/monitor/exchange-sync.d.ts +16 -0
  207. package/dist/dsl/monitor/exchange-sync.d.ts.map +1 -0
  208. package/dist/dsl/monitor/exchange-sync.js +37 -0
  209. package/dist/dsl/monitor/exchange-sync.js.map +1 -0
  210. package/dist/dsl/monitor/index.d.ts +6 -0
  211. package/dist/dsl/monitor/index.d.ts.map +1 -0
  212. package/dist/dsl/monitor/index.js +5 -0
  213. package/dist/dsl/monitor/index.js.map +1 -0
  214. package/dist/dsl/monitor/market-price.d.ts +5 -0
  215. package/dist/dsl/monitor/market-price.d.ts.map +1 -0
  216. package/dist/dsl/monitor/market-price.js +24 -0
  217. package/dist/dsl/monitor/market-price.js.map +1 -0
  218. package/dist/dsl/monitor/process-one-position.d.ts +19 -0
  219. package/dist/dsl/monitor/process-one-position.d.ts.map +1 -0
  220. package/dist/dsl/monitor/process-one-position.js +438 -0
  221. package/dist/dsl/monitor/process-one-position.js.map +1 -0
  222. package/dist/dsl/notifications/formatter.d.ts +18 -0
  223. package/dist/dsl/notifications/formatter.d.ts.map +1 -0
  224. package/dist/dsl/notifications/formatter.js +69 -0
  225. package/dist/dsl/notifications/formatter.js.map +1 -0
  226. package/dist/dsl/notifications/index.d.ts +19 -0
  227. package/dist/dsl/notifications/index.d.ts.map +1 -0
  228. package/dist/dsl/notifications/index.js +90 -0
  229. package/dist/dsl/notifications/index.js.map +1 -0
  230. package/dist/dsl/plugin/index.d.ts +66 -0
  231. package/dist/dsl/plugin/index.d.ts.map +1 -0
  232. package/dist/dsl/plugin/index.js +398 -0
  233. package/dist/dsl/plugin/index.js.map +1 -0
  234. package/dist/dsl/plugin/options.d.ts +40 -0
  235. package/dist/dsl/plugin/options.d.ts.map +1 -0
  236. package/dist/dsl/plugin/options.js +5 -0
  237. package/dist/dsl/plugin/options.js.map +1 -0
  238. package/dist/dsl/types/index.d.ts +3 -0
  239. package/dist/dsl/types/index.d.ts.map +1 -0
  240. package/dist/dsl/types/index.js +3 -0
  241. package/dist/dsl/types/index.js.map +1 -0
  242. package/dist/health/index.d.ts +29 -0
  243. package/dist/health/index.d.ts.map +1 -0
  244. package/dist/health/index.js +191 -0
  245. package/dist/health/index.js.map +1 -0
  246. package/dist/health/types.d.ts +114 -0
  247. package/dist/health/types.d.ts.map +1 -0
  248. package/dist/health/types.js +2 -0
  249. package/dist/health/types.js.map +1 -0
  250. package/dist/index.d.ts +102 -0
  251. package/dist/index.d.ts.map +1 -0
  252. package/dist/index.js +772 -0
  253. package/dist/index.js.map +1 -0
  254. package/dist/leverage/max-leverage-cache.d.ts +10 -0
  255. package/dist/leverage/max-leverage-cache.d.ts.map +1 -0
  256. package/dist/leverage/max-leverage-cache.js +51 -0
  257. package/dist/leverage/max-leverage-cache.js.map +1 -0
  258. package/dist/leverage/resolve-leverage.d.ts +9 -0
  259. package/dist/leverage/resolve-leverage.d.ts.map +1 -0
  260. package/dist/leverage/resolve-leverage.js +15 -0
  261. package/dist/leverage/resolve-leverage.js.map +1 -0
  262. package/dist/risk/index.d.ts +9 -0
  263. package/dist/risk/index.d.ts.map +1 -0
  264. package/dist/risk/index.js +9 -0
  265. package/dist/risk/index.js.map +1 -0
  266. package/dist/runtime/action-registry.d.ts +12 -0
  267. package/dist/runtime/action-registry.d.ts.map +1 -0
  268. package/dist/runtime/action-registry.js +22 -0
  269. package/dist/runtime/action-registry.js.map +1 -0
  270. package/dist/runtime/auto-update/command-runner.d.ts +20 -0
  271. package/dist/runtime/auto-update/command-runner.d.ts.map +1 -0
  272. package/dist/runtime/auto-update/command-runner.js +54 -0
  273. package/dist/runtime/auto-update/command-runner.js.map +1 -0
  274. package/dist/runtime/auto-update/coordinator.d.ts +90 -0
  275. package/dist/runtime/auto-update/coordinator.d.ts.map +1 -0
  276. package/dist/runtime/auto-update/coordinator.js +336 -0
  277. package/dist/runtime/auto-update/coordinator.js.map +1 -0
  278. package/dist/runtime/auto-update/gateway-restart.d.ts +49 -0
  279. package/dist/runtime/auto-update/gateway-restart.d.ts.map +1 -0
  280. package/dist/runtime/auto-update/gateway-restart.js +105 -0
  281. package/dist/runtime/auto-update/gateway-restart.js.map +1 -0
  282. package/dist/runtime/auto-update/policy.d.ts +24 -0
  283. package/dist/runtime/auto-update/policy.d.ts.map +1 -0
  284. package/dist/runtime/auto-update/policy.js +42 -0
  285. package/dist/runtime/auto-update/policy.js.map +1 -0
  286. package/dist/runtime/auto-update/preflight.d.ts +16 -0
  287. package/dist/runtime/auto-update/preflight.d.ts.map +1 -0
  288. package/dist/runtime/auto-update/preflight.js +20 -0
  289. package/dist/runtime/auto-update/preflight.js.map +1 -0
  290. package/dist/runtime/auto-update/state-store.d.ts +29 -0
  291. package/dist/runtime/auto-update/state-store.d.ts.map +1 -0
  292. package/dist/runtime/auto-update/state-store.js +51 -0
  293. package/dist/runtime/auto-update/state-store.js.map +1 -0
  294. package/dist/runtime/auto-update/types.d.ts +105 -0
  295. package/dist/runtime/auto-update/types.d.ts.map +1 -0
  296. package/dist/runtime/auto-update/types.js +56 -0
  297. package/dist/runtime/auto-update/types.js.map +1 -0
  298. package/dist/runtime/auto-update/version-source.d.ts +23 -0
  299. package/dist/runtime/auto-update/version-source.d.ts.map +1 -0
  300. package/dist/runtime/auto-update/version-source.js +25 -0
  301. package/dist/runtime/auto-update/version-source.js.map +1 -0
  302. package/dist/runtime/build-action-scan-payload.d.ts +20 -0
  303. package/dist/runtime/build-action-scan-payload.d.ts.map +1 -0
  304. package/dist/runtime/build-action-scan-payload.js +36 -0
  305. package/dist/runtime/build-action-scan-payload.js.map +1 -0
  306. package/dist/runtime/bus.d.ts +6 -0
  307. package/dist/runtime/bus.d.ts.map +1 -0
  308. package/dist/runtime/bus.js +22 -0
  309. package/dist/runtime/bus.js.map +1 -0
  310. package/dist/runtime/create-action-context.d.ts +34 -0
  311. package/dist/runtime/create-action-context.d.ts.map +1 -0
  312. package/dist/runtime/create-action-context.js +22 -0
  313. package/dist/runtime/create-action-context.js.map +1 -0
  314. package/dist/runtime/create-actions.d.ts +30 -0
  315. package/dist/runtime/create-actions.d.ts.map +1 -0
  316. package/dist/runtime/create-actions.js +70 -0
  317. package/dist/runtime/create-actions.js.map +1 -0
  318. package/dist/runtime/create-runtime-context.d.ts +35 -0
  319. package/dist/runtime/create-runtime-context.d.ts.map +1 -0
  320. package/dist/runtime/create-runtime-context.js +35 -0
  321. package/dist/runtime/create-runtime-context.js.map +1 -0
  322. package/dist/runtime/create-scanner-module.d.ts +14 -0
  323. package/dist/runtime/create-scanner-module.d.ts.map +1 -0
  324. package/dist/runtime/create-scanner-module.js +31 -0
  325. package/dist/runtime/create-scanner-module.js.map +1 -0
  326. package/dist/runtime/create-scanner-providers-for-run.d.ts +20 -0
  327. package/dist/runtime/create-scanner-providers-for-run.d.ts.map +1 -0
  328. package/dist/runtime/create-scanner-providers-for-run.js +34 -0
  329. package/dist/runtime/create-scanner-providers-for-run.js.map +1 -0
  330. package/dist/runtime/default-state-dir.d.ts +10 -0
  331. package/dist/runtime/default-state-dir.d.ts.map +1 -0
  332. package/dist/runtime/default-state-dir.js +22 -0
  333. package/dist/runtime/default-state-dir.js.map +1 -0
  334. package/dist/runtime/env-resolve.d.ts +17 -0
  335. package/dist/runtime/env-resolve.d.ts.map +1 -0
  336. package/dist/runtime/env-resolve.js +45 -0
  337. package/dist/runtime/env-resolve.js.map +1 -0
  338. package/dist/runtime/hook-system.d.ts +7 -0
  339. package/dist/runtime/hook-system.d.ts.map +1 -0
  340. package/dist/runtime/hook-system.js +16 -0
  341. package/dist/runtime/hook-system.js.map +1 -0
  342. package/dist/runtime/index.d.ts +37 -0
  343. package/dist/runtime/index.d.ts.map +1 -0
  344. package/dist/runtime/index.js +26 -0
  345. package/dist/runtime/index.js.map +1 -0
  346. package/dist/runtime/load-runtime-config.d.ts +23 -0
  347. package/dist/runtime/load-runtime-config.d.ts.map +1 -0
  348. package/dist/runtime/load-runtime-config.js +176 -0
  349. package/dist/runtime/load-runtime-config.js.map +1 -0
  350. package/dist/runtime/map-exit-config.d.ts +11 -0
  351. package/dist/runtime/map-exit-config.d.ts.map +1 -0
  352. package/dist/runtime/map-exit-config.js +86 -0
  353. package/dist/runtime/map-exit-config.js.map +1 -0
  354. package/dist/runtime/map-strategies-registration.d.ts +14 -0
  355. package/dist/runtime/map-strategies-registration.d.ts.map +1 -0
  356. package/dist/runtime/map-strategies-registration.js +44 -0
  357. package/dist/runtime/map-strategies-registration.js.map +1 -0
  358. package/dist/runtime/map-strategies.d.ts +14 -0
  359. package/dist/runtime/map-strategies.d.ts.map +1 -0
  360. package/dist/runtime/map-strategies.js +64 -0
  361. package/dist/runtime/map-strategies.js.map +1 -0
  362. package/dist/runtime/notifications.d.ts +19 -0
  363. package/dist/runtime/notifications.d.ts.map +1 -0
  364. package/dist/runtime/notifications.js +88 -0
  365. package/dist/runtime/notifications.js.map +1 -0
  366. package/dist/runtime/parse-interval.d.ts +11 -0
  367. package/dist/runtime/parse-interval.d.ts.map +1 -0
  368. package/dist/runtime/parse-interval.js +35 -0
  369. package/dist/runtime/parse-interval.js.map +1 -0
  370. package/dist/runtime/recipe-version.d.ts +3 -0
  371. package/dist/runtime/recipe-version.d.ts.map +1 -0
  372. package/dist/runtime/recipe-version.js +3 -0
  373. package/dist/runtime/recipe-version.js.map +1 -0
  374. package/dist/runtime/reconcile-state.d.ts +37 -0
  375. package/dist/runtime/reconcile-state.d.ts.map +1 -0
  376. package/dist/runtime/reconcile-state.js +179 -0
  377. package/dist/runtime/reconcile-state.js.map +1 -0
  378. package/dist/runtime/risk-guard.d.ts +6 -0
  379. package/dist/runtime/risk-guard.d.ts.map +1 -0
  380. package/dist/runtime/risk-guard.js +14 -0
  381. package/dist/runtime/risk-guard.js.map +1 -0
  382. package/dist/runtime/run.d.ts +30 -0
  383. package/dist/runtime/run.d.ts.map +1 -0
  384. package/dist/runtime/run.js +46 -0
  385. package/dist/runtime/run.js.map +1 -0
  386. package/dist/runtime/runtime-config.d.ts +6 -0
  387. package/dist/runtime/runtime-config.d.ts.map +1 -0
  388. package/dist/runtime/runtime-config.js +5 -0
  389. package/dist/runtime/runtime-config.js.map +1 -0
  390. package/dist/runtime/runtime-schema.d.ts +1859 -0
  391. package/dist/runtime/runtime-schema.d.ts.map +1 -0
  392. package/dist/runtime/runtime-schema.js +110 -0
  393. package/dist/runtime/runtime-schema.js.map +1 -0
  394. package/dist/runtime/runtime-version.d.ts +19 -0
  395. package/dist/runtime/runtime-version.d.ts.map +1 -0
  396. package/dist/runtime/runtime-version.js +29 -0
  397. package/dist/runtime/runtime-version.js.map +1 -0
  398. package/dist/runtime/runtime.d.ts +53 -0
  399. package/dist/runtime/runtime.d.ts.map +1 -0
  400. package/dist/runtime/runtime.js +335 -0
  401. package/dist/runtime/runtime.js.map +1 -0
  402. package/dist/runtime/scanner-composition.d.ts +23 -0
  403. package/dist/runtime/scanner-composition.d.ts.map +1 -0
  404. package/dist/runtime/scanner-composition.js +168 -0
  405. package/dist/runtime/scanner-composition.js.map +1 -0
  406. package/dist/runtime/scanner-registry.d.ts +28 -0
  407. package/dist/runtime/scanner-registry.d.ts.map +1 -0
  408. package/dist/runtime/scanner-registry.js +114 -0
  409. package/dist/runtime/scanner-registry.js.map +1 -0
  410. package/dist/runtime/state-layout.d.ts +50 -0
  411. package/dist/runtime/state-layout.d.ts.map +1 -0
  412. package/dist/runtime/state-layout.js +89 -0
  413. package/dist/runtime/state-layout.js.map +1 -0
  414. package/dist/runtime/strategy-registry.d.ts +79 -0
  415. package/dist/runtime/strategy-registry.d.ts.map +1 -0
  416. package/dist/runtime/strategy-registry.js +265 -0
  417. package/dist/runtime/strategy-registry.js.map +1 -0
  418. package/dist/runtime/validate-dsl-position-tracking.d.ts +3 -0
  419. package/dist/runtime/validate-dsl-position-tracking.d.ts.map +1 -0
  420. package/dist/runtime/validate-dsl-position-tracking.js +27 -0
  421. package/dist/runtime/validate-dsl-position-tracking.js.map +1 -0
  422. package/dist/scanners/__tests__/default-engine-test-composition.d.ts +9 -0
  423. package/dist/scanners/__tests__/default-engine-test-composition.d.ts.map +1 -0
  424. package/dist/scanners/__tests__/default-engine-test-composition.js +84 -0
  425. package/dist/scanners/__tests__/default-engine-test-composition.js.map +1 -0
  426. package/dist/scanners/__tests__/fixtures/index.d.ts +3 -0
  427. package/dist/scanners/__tests__/fixtures/index.d.ts.map +1 -0
  428. package/dist/scanners/__tests__/fixtures/index.js +3 -0
  429. package/dist/scanners/__tests__/fixtures/index.js.map +1 -0
  430. package/dist/scanners/__tests__/fixtures/position-tracker-scenarios.d.ts +21 -0
  431. package/dist/scanners/__tests__/fixtures/position-tracker-scenarios.d.ts.map +1 -0
  432. package/dist/scanners/__tests__/fixtures/position-tracker-scenarios.js +199 -0
  433. package/dist/scanners/__tests__/fixtures/position-tracker-scenarios.js.map +1 -0
  434. package/dist/scanners/__tests__/fixtures/scan-results.d.ts +23 -0
  435. package/dist/scanners/__tests__/fixtures/scan-results.d.ts.map +1 -0
  436. package/dist/scanners/__tests__/fixtures/scan-results.js +128 -0
  437. package/dist/scanners/__tests__/fixtures/scan-results.js.map +1 -0
  438. package/dist/scanners/__tests__/fixtures/signals.d.ts +18 -0
  439. package/dist/scanners/__tests__/fixtures/signals.d.ts.map +1 -0
  440. package/dist/scanners/__tests__/fixtures/signals.js +84 -0
  441. package/dist/scanners/__tests__/fixtures/signals.js.map +1 -0
  442. package/dist/scanners/__tests__/test-helpers.d.ts +4 -0
  443. package/dist/scanners/__tests__/test-helpers.d.ts.map +1 -0
  444. package/dist/scanners/__tests__/test-helpers.js +23 -0
  445. package/dist/scanners/__tests__/test-helpers.js.map +1 -0
  446. package/dist/scanners/artifacts.d.ts +131 -0
  447. package/dist/scanners/artifacts.d.ts.map +1 -0
  448. package/dist/scanners/artifacts.js +72 -0
  449. package/dist/scanners/artifacts.js.map +1 -0
  450. package/dist/scanners/context-source-mapping.d.ts +4 -0
  451. package/dist/scanners/context-source-mapping.d.ts.map +1 -0
  452. package/dist/scanners/context-source-mapping.js +10 -0
  453. package/dist/scanners/context-source-mapping.js.map +1 -0
  454. package/dist/scanners/create-scanner.d.ts +13 -0
  455. package/dist/scanners/create-scanner.d.ts.map +1 -0
  456. package/dist/scanners/create-scanner.js +11 -0
  457. package/dist/scanners/create-scanner.js.map +1 -0
  458. package/dist/scanners/engine/config-validator.d.ts +7 -0
  459. package/dist/scanners/engine/config-validator.d.ts.map +1 -0
  460. package/dist/scanners/engine/config-validator.js +16 -0
  461. package/dist/scanners/engine/config-validator.js.map +1 -0
  462. package/dist/scanners/engine/data-providers.d.ts +48 -0
  463. package/dist/scanners/engine/data-providers.d.ts.map +1 -0
  464. package/dist/scanners/engine/data-providers.js +28 -0
  465. package/dist/scanners/engine/data-providers.js.map +1 -0
  466. package/dist/scanners/engine/engine.d.ts +92 -0
  467. package/dist/scanners/engine/engine.d.ts.map +1 -0
  468. package/dist/scanners/engine/engine.js +478 -0
  469. package/dist/scanners/engine/engine.js.map +1 -0
  470. package/dist/scanners/engine/index.d.ts +9 -0
  471. package/dist/scanners/engine/index.d.ts.map +1 -0
  472. package/dist/scanners/engine/index.js +7 -0
  473. package/dist/scanners/engine/index.js.map +1 -0
  474. package/dist/scanners/engine/input-resolver.d.ts +33 -0
  475. package/dist/scanners/engine/input-resolver.d.ts.map +1 -0
  476. package/dist/scanners/engine/input-resolver.js +216 -0
  477. package/dist/scanners/engine/input-resolver.js.map +1 -0
  478. package/dist/scanners/engine/lifecycle.d.ts +21 -0
  479. package/dist/scanners/engine/lifecycle.d.ts.map +1 -0
  480. package/dist/scanners/engine/lifecycle.js +2 -0
  481. package/dist/scanners/engine/lifecycle.js.map +1 -0
  482. package/dist/scanners/engine/result-builder.d.ts +30 -0
  483. package/dist/scanners/engine/result-builder.d.ts.map +1 -0
  484. package/dist/scanners/engine/result-builder.js +129 -0
  485. package/dist/scanners/engine/result-builder.js.map +1 -0
  486. package/dist/scanners/engine/strategy-registry.d.ts +48 -0
  487. package/dist/scanners/engine/strategy-registry.d.ts.map +1 -0
  488. package/dist/scanners/engine/strategy-registry.js +103 -0
  489. package/dist/scanners/engine/strategy-registry.js.map +1 -0
  490. package/dist/scanners/events.d.ts +41 -0
  491. package/dist/scanners/events.d.ts.map +1 -0
  492. package/dist/scanners/events.js +33 -0
  493. package/dist/scanners/events.js.map +1 -0
  494. package/dist/scanners/implementations/emerging-movers.d.ts +215 -0
  495. package/dist/scanners/implementations/emerging-movers.d.ts.map +1 -0
  496. package/dist/scanners/implementations/emerging-movers.js +713 -0
  497. package/dist/scanners/implementations/emerging-movers.js.map +1 -0
  498. package/dist/scanners/implementations/index.d.ts +9 -0
  499. package/dist/scanners/implementations/index.d.ts.map +1 -0
  500. package/dist/scanners/implementations/index.js +9 -0
  501. package/dist/scanners/implementations/index.js.map +1 -0
  502. package/dist/scanners/implementations/indicators.d.ts +40 -0
  503. package/dist/scanners/implementations/indicators.d.ts.map +1 -0
  504. package/dist/scanners/implementations/indicators.js +114 -0
  505. package/dist/scanners/implementations/indicators.js.map +1 -0
  506. package/dist/scanners/implementations/liquidation-watchdog.d.ts +66 -0
  507. package/dist/scanners/implementations/liquidation-watchdog.d.ts.map +1 -0
  508. package/dist/scanners/implementations/liquidation-watchdog.js +293 -0
  509. package/dist/scanners/implementations/liquidation-watchdog.js.map +1 -0
  510. package/dist/scanners/implementations/market-regime.d.ts +52 -0
  511. package/dist/scanners/implementations/market-regime.d.ts.map +1 -0
  512. package/dist/scanners/implementations/market-regime.js +205 -0
  513. package/dist/scanners/implementations/market-regime.js.map +1 -0
  514. package/dist/scanners/implementations/momentum.d.ts +21 -0
  515. package/dist/scanners/implementations/momentum.d.ts.map +1 -0
  516. package/dist/scanners/implementations/momentum.js +132 -0
  517. package/dist/scanners/implementations/momentum.js.map +1 -0
  518. package/dist/scanners/implementations/oi-tracker.d.ts +13 -0
  519. package/dist/scanners/implementations/oi-tracker.d.ts.map +1 -0
  520. package/dist/scanners/implementations/oi-tracker.js +71 -0
  521. package/dist/scanners/implementations/oi-tracker.js.map +1 -0
  522. package/dist/scanners/implementations/opportunity.d.ts +104 -0
  523. package/dist/scanners/implementations/opportunity.d.ts.map +1 -0
  524. package/dist/scanners/implementations/opportunity.js +445 -0
  525. package/dist/scanners/implementations/opportunity.js.map +1 -0
  526. package/dist/scanners/implementations/position-tracker.d.ts +120 -0
  527. package/dist/scanners/implementations/position-tracker.d.ts.map +1 -0
  528. package/dist/scanners/implementations/position-tracker.js +360 -0
  529. package/dist/scanners/implementations/position-tracker.js.map +1 -0
  530. package/dist/scanners/implementations/prescreener.d.ts +20 -0
  531. package/dist/scanners/implementations/prescreener.d.ts.map +1 -0
  532. package/dist/scanners/implementations/prescreener.js +101 -0
  533. package/dist/scanners/implementations/prescreener.js.map +1 -0
  534. package/dist/scanners/implementations/sm-flip.d.ts +43 -0
  535. package/dist/scanners/implementations/sm-flip.d.ts.map +1 -0
  536. package/dist/scanners/implementations/sm-flip.js +205 -0
  537. package/dist/scanners/implementations/sm-flip.js.map +1 -0
  538. package/dist/scanners/index.d.ts +26 -0
  539. package/dist/scanners/index.d.ts.map +1 -0
  540. package/dist/scanners/index.js +19 -0
  541. package/dist/scanners/index.js.map +1 -0
  542. package/dist/scanners/input-descriptors.d.ts +61 -0
  543. package/dist/scanners/input-descriptors.d.ts.map +1 -0
  544. package/dist/scanners/input-descriptors.js +43 -0
  545. package/dist/scanners/input-descriptors.js.map +1 -0
  546. package/dist/scanners/prepare-scanner-inputs.d.ts +12 -0
  547. package/dist/scanners/prepare-scanner-inputs.d.ts.map +1 -0
  548. package/dist/scanners/prepare-scanner-inputs.js +21 -0
  549. package/dist/scanners/prepare-scanner-inputs.js.map +1 -0
  550. package/dist/scanners/protocol/context.d.ts +95 -0
  551. package/dist/scanners/protocol/context.d.ts.map +1 -0
  552. package/dist/scanners/protocol/context.js +2 -0
  553. package/dist/scanners/protocol/context.js.map +1 -0
  554. package/dist/scanners/protocol/hooks.d.ts +18 -0
  555. package/dist/scanners/protocol/hooks.d.ts.map +1 -0
  556. package/dist/scanners/protocol/hooks.js +12 -0
  557. package/dist/scanners/protocol/hooks.js.map +1 -0
  558. package/dist/scanners/protocol/index.d.ts +5 -0
  559. package/dist/scanners/protocol/index.d.ts.map +1 -0
  560. package/dist/scanners/protocol/index.js +2 -0
  561. package/dist/scanners/protocol/index.js.map +1 -0
  562. package/dist/scanners/protocol/scanner.d.ts +47 -0
  563. package/dist/scanners/protocol/scanner.d.ts.map +1 -0
  564. package/dist/scanners/protocol/scanner.js +2 -0
  565. package/dist/scanners/protocol/scanner.js.map +1 -0
  566. package/dist/scanners/providers/adapter.d.ts +23 -0
  567. package/dist/scanners/providers/adapter.d.ts.map +1 -0
  568. package/dist/scanners/providers/adapter.js +227 -0
  569. package/dist/scanners/providers/adapter.js.map +1 -0
  570. package/dist/scanners/providers/cache.d.ts +20 -0
  571. package/dist/scanners/providers/cache.d.ts.map +1 -0
  572. package/dist/scanners/providers/cache.js +61 -0
  573. package/dist/scanners/providers/cache.js.map +1 -0
  574. package/dist/scanners/providers/client.d.ts +53 -0
  575. package/dist/scanners/providers/client.d.ts.map +1 -0
  576. package/dist/scanners/providers/client.js +174 -0
  577. package/dist/scanners/providers/client.js.map +1 -0
  578. package/dist/scanners/providers/factory.d.ts +43 -0
  579. package/dist/scanners/providers/factory.d.ts.map +1 -0
  580. package/dist/scanners/providers/factory.js +297 -0
  581. package/dist/scanners/providers/factory.js.map +1 -0
  582. package/dist/scanners/providers/types.d.ts +61 -0
  583. package/dist/scanners/providers/types.d.ts.map +1 -0
  584. package/dist/scanners/providers/types.js +6 -0
  585. package/dist/scanners/providers/types.js.map +1 -0
  586. package/dist/scanners/runtime-module.d.ts +79 -0
  587. package/dist/scanners/runtime-module.d.ts.map +1 -0
  588. package/dist/scanners/runtime-module.js +362 -0
  589. package/dist/scanners/runtime-module.js.map +1 -0
  590. package/dist/scanners/scanner-definition.d.ts +81 -0
  591. package/dist/scanners/scanner-definition.d.ts.map +1 -0
  592. package/dist/scanners/scanner-definition.js +19 -0
  593. package/dist/scanners/scanner-definition.js.map +1 -0
  594. package/dist/scanners/schema-utils.d.ts +6 -0
  595. package/dist/scanners/schema-utils.d.ts.map +1 -0
  596. package/dist/scanners/schema-utils.js +14 -0
  597. package/dist/scanners/schema-utils.js.map +1 -0
  598. package/dist/scanners/score-utils.d.ts +19 -0
  599. package/dist/scanners/score-utils.d.ts.map +1 -0
  600. package/dist/scanners/score-utils.js +47 -0
  601. package/dist/scanners/score-utils.js.map +1 -0
  602. package/dist/scanners/store/fs-utils.d.ts +12 -0
  603. package/dist/scanners/store/fs-utils.d.ts.map +1 -0
  604. package/dist/scanners/store/fs-utils.js +47 -0
  605. package/dist/scanners/store/fs-utils.js.map +1 -0
  606. package/dist/scanners/store/index.d.ts +5 -0
  607. package/dist/scanners/store/index.d.ts.map +1 -0
  608. package/dist/scanners/store/index.js +5 -0
  609. package/dist/scanners/store/index.js.map +1 -0
  610. package/dist/scanners/store/runtime-store.d.ts +50 -0
  611. package/dist/scanners/store/runtime-store.d.ts.map +1 -0
  612. package/dist/scanners/store/runtime-store.js +91 -0
  613. package/dist/scanners/store/runtime-store.js.map +1 -0
  614. package/dist/scanners/store/shared-artifact-store.d.ts +35 -0
  615. package/dist/scanners/store/shared-artifact-store.d.ts.map +1 -0
  616. package/dist/scanners/store/shared-artifact-store.js +89 -0
  617. package/dist/scanners/store/shared-artifact-store.js.map +1 -0
  618. package/dist/scanners/store/signal-store.d.ts +36 -0
  619. package/dist/scanners/store/signal-store.d.ts.map +1 -0
  620. package/dist/scanners/store/signal-store.js +135 -0
  621. package/dist/scanners/store/signal-store.js.map +1 -0
  622. package/dist/scanners/types.d.ts +115 -0
  623. package/dist/scanners/types.d.ts.map +1 -0
  624. package/dist/scanners/types.js +3 -0
  625. package/dist/scanners/types.js.map +1 -0
  626. package/dist/scripts/run-dsl-standalone-live.d.ts +48 -0
  627. package/dist/scripts/run-dsl-standalone-live.d.ts.map +1 -0
  628. package/dist/scripts/run-dsl-standalone-live.js +531 -0
  629. package/dist/scripts/run-dsl-standalone-live.js.map +1 -0
  630. package/dist/scripts/run-dsl-standalone-mock.d.ts +13 -0
  631. package/dist/scripts/run-dsl-standalone-mock.d.ts.map +1 -0
  632. package/dist/scripts/run-dsl-standalone-mock.js +264 -0
  633. package/dist/scripts/run-dsl-standalone-mock.js.map +1 -0
  634. package/dist/senpi/client.d.ts +99 -0
  635. package/dist/senpi/client.d.ts.map +1 -0
  636. package/dist/senpi/client.js +779 -0
  637. package/dist/senpi/client.js.map +1 -0
  638. package/dist/senpi/constants.d.ts +7 -0
  639. package/dist/senpi/constants.d.ts.map +1 -0
  640. package/dist/senpi/constants.js +7 -0
  641. package/dist/senpi/constants.js.map +1 -0
  642. package/dist/senpi/index.d.ts +3 -0
  643. package/dist/senpi/index.d.ts.map +1 -0
  644. package/dist/senpi/index.js +2 -0
  645. package/dist/senpi/index.js.map +1 -0
  646. package/dist/senpi/types.d.ts +162 -0
  647. package/dist/senpi/types.d.ts.map +1 -0
  648. package/dist/senpi/types.js +3 -0
  649. package/dist/senpi/types.js.map +1 -0
  650. package/dist/state/index.d.ts +3 -0
  651. package/dist/state/index.d.ts.map +1 -0
  652. package/dist/state/index.js +3 -0
  653. package/dist/state/index.js.map +1 -0
  654. package/dist/state/paths.d.ts +18 -0
  655. package/dist/state/paths.d.ts.map +1 -0
  656. package/dist/state/paths.js +51 -0
  657. package/dist/state/paths.js.map +1 -0
  658. package/dist/state/state-manager.d.ts +83 -0
  659. package/dist/state/state-manager.d.ts.map +1 -0
  660. package/dist/state/state-manager.js +380 -0
  661. package/dist/state/state-manager.js.map +1 -0
  662. package/dist/strategy/index.d.ts +2 -0
  663. package/dist/strategy/index.d.ts.map +1 -0
  664. package/dist/strategy/index.js +2 -0
  665. package/dist/strategy/index.js.map +1 -0
  666. package/dist/strategy/strategy-state.d.ts +51 -0
  667. package/dist/strategy/strategy-state.d.ts.map +1 -0
  668. package/dist/strategy/strategy-state.js +218 -0
  669. package/dist/strategy/strategy-state.js.map +1 -0
  670. package/dist/types/action.d.ts +15 -0
  671. package/dist/types/action.d.ts.map +1 -0
  672. package/dist/types/action.js +2 -0
  673. package/dist/types/action.js.map +1 -0
  674. package/dist/types/dsl/index.d.ts +286 -0
  675. package/dist/types/dsl/index.d.ts.map +1 -0
  676. package/dist/types/dsl/index.js +5 -0
  677. package/dist/types/dsl/index.js.map +1 -0
  678. package/dist/types/event-bus.d.ts +13 -0
  679. package/dist/types/event-bus.d.ts.map +1 -0
  680. package/dist/types/event-bus.js +6 -0
  681. package/dist/types/event-bus.js.map +1 -0
  682. package/dist/types/hooks.d.ts +30 -0
  683. package/dist/types/hooks.d.ts.map +1 -0
  684. package/dist/types/hooks.js +18 -0
  685. package/dist/types/hooks.js.map +1 -0
  686. package/dist/types/index.d.ts +6 -0
  687. package/dist/types/index.d.ts.map +1 -0
  688. package/dist/types/index.js +6 -0
  689. package/dist/types/index.js.map +1 -0
  690. package/dist/types/notification.d.ts +4 -0
  691. package/dist/types/notification.d.ts.map +1 -0
  692. package/dist/types/notification.js +3 -0
  693. package/dist/types/notification.js.map +1 -0
  694. package/dist/types/runtime.d.ts +18 -0
  695. package/dist/types/runtime.d.ts.map +1 -0
  696. package/dist/types/runtime.js +2 -0
  697. package/dist/types/runtime.js.map +1 -0
  698. package/dist/types/scanner.d.ts +59 -0
  699. package/dist/types/scanner.d.ts.map +1 -0
  700. package/dist/types/scanner.js +13 -0
  701. package/dist/types/scanner.js.map +1 -0
  702. package/dist/types/strategy.d.ts +106 -0
  703. package/dist/types/strategy.d.ts.map +1 -0
  704. package/dist/types/strategy.js +2 -0
  705. package/dist/types/strategy.js.map +1 -0
  706. package/dist/utils/clearing-house-staleness.d.ts +47 -0
  707. package/dist/utils/clearing-house-staleness.d.ts.map +1 -0
  708. package/dist/utils/clearing-house-staleness.js +73 -0
  709. package/dist/utils/clearing-house-staleness.js.map +1 -0
  710. package/dist/utils/logger/dsl.d.ts +8 -0
  711. package/dist/utils/logger/dsl.d.ts.map +1 -0
  712. package/dist/utils/logger/dsl.js +7 -0
  713. package/dist/utils/logger/dsl.js.map +1 -0
  714. package/dist/utils/logger.d.ts +23 -0
  715. package/dist/utils/logger.d.ts.map +1 -0
  716. package/dist/utils/logger.js +97 -0
  717. package/dist/utils/logger.js.map +1 -0
  718. package/dist/utils/perp-coin.d.ts +19 -0
  719. package/dist/utils/perp-coin.d.ts.map +1 -0
  720. package/dist/utils/perp-coin.js +40 -0
  721. package/dist/utils/perp-coin.js.map +1 -0
  722. package/dist/utils/response.d.ts +14 -0
  723. package/dist/utils/response.d.ts.map +1 -0
  724. package/dist/utils/response.js +44 -0
  725. package/dist/utils/response.js.map +1 -0
  726. package/dist/utils/retry.d.ts +19 -0
  727. package/dist/utils/retry.d.ts.map +1 -0
  728. package/dist/utils/retry.js +32 -0
  729. package/dist/utils/retry.js.map +1 -0
  730. package/dist/version.d.ts +6 -0
  731. package/dist/version.d.ts.map +1 -0
  732. package/dist/version.js +21 -0
  733. package/dist/version.js.map +1 -0
  734. package/examples/.env.example +25 -0
  735. package/examples/README.md +89 -0
  736. package/examples/scanners-consumer-quickstart.mjs +134 -0
  737. package/examples/scanners-emerging-movers-v4.mjs +287 -0
  738. package/examples/scanners-liquidation-watchdog.mjs +341 -0
  739. package/examples/scanners-live-mcp.mjs +208 -0
  740. package/examples/scanners-multi-strategy.mjs +165 -0
  741. package/examples/scanners-position-tracker-e2e.mjs +225 -0
  742. package/examples/scanners-scheduled-events.mjs +96 -0
  743. package/examples/scanners-senpi-provider-client.mjs +182 -0
  744. package/examples/scanners-single-strategy.mjs +198 -0
  745. package/examples/strategies/README.md +45 -0
  746. package/examples/strategies/dsl-showcase.yaml +63 -0
  747. package/examples/strategies/dsl.yaml +47 -0
  748. package/examples/strategies/fox-minimal-loosened.yaml +225 -0
  749. package/examples/strategies/fox-minimal.yaml +220 -0
  750. package/examples/strategies/minimal.yaml +44 -0
  751. package/examples/strategies/viper.yaml +59 -0
  752. package/examples/strategies/wolf.yaml +64 -0
  753. package/examples/yamls/sample-with-dsl-and-emerging-movers.yaml +115 -0
  754. package/openclaw.plugin.json +67 -0
  755. package/package.json +53 -0
@@ -0,0 +1,205 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ import { createScanner } from "../create-scanner.js";
3
+ import { providerInput } from "../input-descriptors.js";
4
+ import { clamp01 } from "../score-utils.js";
5
+ import { PersistencePolicy, RetentionPolicy } from "../scanner-definition.js";
6
+ // ─── Config ─────────────────────────────────────────────────────────────────
7
+ const smFlipConfigSchema = Type.Object({
8
+ minConviction: Type.Optional(Type.Number({ minimum: 0, default: 4 })),
9
+ });
10
+ const smFlipStateSchema = Type.Object({
11
+ scans: Type.Number({ minimum: 0 }),
12
+ totalFlips: Type.Number({ minimum: 0 }),
13
+ });
14
+ // ─── Defaults ───────────────────────────────────────────────────────────────
15
+ const defaultConfig = {
16
+ minConviction: 4,
17
+ };
18
+ const defaultState = {
19
+ scans: 0,
20
+ totalFlips: 0,
21
+ };
22
+ // ─── Conviction scoring ─────────────────────────────────────────────────────
23
+ /**
24
+ * Scores smart-money conviction for a flip event.
25
+ *
26
+ * Based on Fox's sm-flip-check.py conviction algorithm:
27
+ * - pctOfTopTradersGain contribution (0-3 points)
28
+ * - traderCount concentration (0-3 points)
29
+ *
30
+ * Returns a score from 0 to 6. Fox uses minConviction=4 as default threshold.
31
+ */
32
+ export function scoreConviction(sm) {
33
+ let score = 0;
34
+ // Contribution scoring
35
+ if (sm.pctOfTopTradersGain > 0.05)
36
+ score += 3;
37
+ else if (sm.pctOfTopTradersGain > 0.02)
38
+ score += 2;
39
+ else if (sm.pctOfTopTradersGain > 0)
40
+ score += 1;
41
+ // Trader count scoring
42
+ if (sm.traderCount >= 5)
43
+ score += 3;
44
+ else if (sm.traderCount >= 3)
45
+ score += 2;
46
+ else if (sm.traderCount >= 1)
47
+ score += 1;
48
+ return score;
49
+ }
50
+ /**
51
+ * Normalizes the SM data direction string to "LONG" | "SHORT".
52
+ * SM data uses "up"/"long" for longs and "short"/"down" for shorts.
53
+ */
54
+ function normalizeSmDirection(direction) {
55
+ const lower = direction.toLowerCase();
56
+ return lower === "short" || lower === "down" ? "SHORT" : "LONG";
57
+ }
58
+ /**
59
+ * Detects whether a smart-money direction flips against a position direction.
60
+ */
61
+ export function isFlipped(positionDirection, smDirection) {
62
+ const posDir = positionDirection.toUpperCase();
63
+ const smDir = normalizeSmDirection(smDirection);
64
+ return posDir !== smDir;
65
+ }
66
+ /**
67
+ * Extracts asset and direction from a loosely-typed active position record.
68
+ * Returns null if required fields are missing or invalid.
69
+ */
70
+ function parsePosition(record) {
71
+ const asset = typeof record.coin === "string"
72
+ ? record.coin
73
+ : typeof record.asset === "string"
74
+ ? record.asset
75
+ : null;
76
+ if (!asset)
77
+ return null;
78
+ let direction = null;
79
+ if (typeof record.direction === "string") {
80
+ const d = record.direction.toUpperCase();
81
+ if (d === "LONG" || d === "SHORT")
82
+ direction = d;
83
+ }
84
+ // Hyperliquid clearinghouse uses szi (signed size): positive = long, negative = short
85
+ if (!direction &&
86
+ (typeof record.szi === "number" || typeof record.szi === "string")) {
87
+ const szi = typeof record.szi === "number" ? record.szi : parseFloat(record.szi);
88
+ if (Number.isFinite(szi) && szi !== 0) {
89
+ direction = szi > 0 ? "LONG" : "SHORT";
90
+ }
91
+ }
92
+ if (!direction && typeof record.size === "number") {
93
+ if (record.size > 0)
94
+ direction = "LONG";
95
+ else if (record.size < 0)
96
+ direction = "SHORT";
97
+ }
98
+ if (!direction)
99
+ return null;
100
+ return { asset, direction };
101
+ }
102
+ // ─── Token key helpers ──────────────────────────────────────────────────────
103
+ /** Extracts the base token symbol from an SM market (ignoring DEX qualifier). */
104
+ function smTokenKey(market) {
105
+ return market.token;
106
+ }
107
+ // ─── Scanner factory ────────────────────────────────────────────────────────
108
+ /**
109
+ * Creates the SM Flip scanner.
110
+ *
111
+ * Monitors open positions against the smart-money leaderboard and detects
112
+ * when smart-money conviction reverses direction against a held position.
113
+ * Emits high-priority FLIP_NOW signals that should trigger immediate
114
+ * position closure.
115
+ *
116
+ * Inputs:
117
+ * - smData: smart-money leaderboard from `leaderboard_get_markets`
118
+ * - activePositions: current positions from `strategy_get_clearinghouse_state`
119
+ */
120
+ export function smFlipScanner() {
121
+ return createScanner({
122
+ id: "sm-flip",
123
+ signalType: "SM_FLIP",
124
+ outputs: {
125
+ signals: true,
126
+ context: false,
127
+ },
128
+ description: "Detects smart-money conviction reversal against open positions.",
129
+ intervalSeconds: 300,
130
+ retention: RetentionPolicy.ROLLING_WINDOW,
131
+ retentionMaxRuns: 100,
132
+ persistence: PersistencePolicy.ACTIONABLE_ONLY,
133
+ inputs: [providerInput.smData(), providerInput.activePositions()],
134
+ configSchema: smFlipConfigSchema,
135
+ defaultConfig,
136
+ stateSchema: smFlipStateSchema,
137
+ defaultState,
138
+ scan: async (ctx) => {
139
+ const now = ctx.now();
140
+ const cfg = ctx.config;
141
+ const smData = ctx.inputs.smData ?? [];
142
+ const positions = ctx.inputs.activePositions ?? [];
143
+ const signals = [];
144
+ // Build a lookup map for SM data by token
145
+ const smByToken = new Map();
146
+ for (const sm of smData) {
147
+ smByToken.set(smTokenKey(sm), sm);
148
+ }
149
+ for (const posRecord of positions) {
150
+ const pos = parsePosition(posRecord);
151
+ if (!pos)
152
+ continue;
153
+ const smEntry = smByToken.get(pos.asset);
154
+ if (!smEntry)
155
+ continue;
156
+ if (!isFlipped(pos.direction, smEntry.direction))
157
+ continue;
158
+ const conviction = scoreConviction(smEntry);
159
+ if (conviction < (cfg.minConviction ?? 4))
160
+ continue;
161
+ const newSmDirection = normalizeSmDirection(smEntry.direction);
162
+ signals.push({
163
+ address: ctx.address,
164
+ scannerId: ctx.scannerId,
165
+ signalType: "FLIP_NOW",
166
+ asset: pos.asset,
167
+ direction: newSmDirection,
168
+ score: clamp01(conviction / 6),
169
+ timestamp: now,
170
+ factors: {
171
+ sm_direction_flip: true,
172
+ high_conviction: conviction >= 5,
173
+ deep_reversal: smEntry.pctOfTopTradersGain > 0.05,
174
+ },
175
+ meta: {
176
+ positionDirection: pos.direction,
177
+ smDirection: smEntry.direction,
178
+ newDirection: newSmDirection,
179
+ conviction,
180
+ traderCount: smEntry.traderCount,
181
+ pctOfTopTradersGain: smEntry.pctOfTopTradersGain,
182
+ positionAsset: pos.asset,
183
+ },
184
+ });
185
+ }
186
+ const nextState = {
187
+ scans: ctx.state.scans + 1,
188
+ totalFlips: ctx.state.totalFlips + signals.length,
189
+ };
190
+ await ctx.setState(nextState);
191
+ return {
192
+ timestamp: now,
193
+ scannedCount: positions.length,
194
+ signals,
195
+ summary: {
196
+ positionsChecked: positions.length,
197
+ smMarketsAvailable: smData.length,
198
+ flipsDetected: signals.length,
199
+ scans: nextState.scans,
200
+ },
201
+ };
202
+ },
203
+ });
204
+ }
205
+ //# sourceMappingURL=sm-flip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sm-flip.js","sourceRoot":"","sources":["../../../src/scanners/implementations/sm-flip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG9E,+EAA+E;AAE/E,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC;IACrC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;CACtE,CAAC,CAAC;AAaH,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAClC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;CACxC,CAAC,CAAC;AAEH,+EAA+E;AAE/E,MAAM,aAAa,GAAiB;IAClC,aAAa,EAAE,CAAC;CACjB,CAAC;AAEF,MAAM,YAAY,GAAgB;IAChC,KAAK,EAAE,CAAC;IACR,UAAU,EAAE,CAAC;CACd,CAAC;AAEF,+EAA+E;AAE/E;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,EAAY;IAC1C,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,uBAAuB;IACvB,IAAI,EAAE,CAAC,mBAAmB,GAAG,IAAI;QAAE,KAAK,IAAI,CAAC,CAAC;SACzC,IAAI,EAAE,CAAC,mBAAmB,GAAG,IAAI;QAAE,KAAK,IAAI,CAAC,CAAC;SAC9C,IAAI,EAAE,CAAC,mBAAmB,GAAG,CAAC;QAAE,KAAK,IAAI,CAAC,CAAC;IAEhD,uBAAuB;IACvB,IAAI,EAAE,CAAC,WAAW,IAAI,CAAC;QAAE,KAAK,IAAI,CAAC,CAAC;SAC/B,IAAI,EAAE,CAAC,WAAW,IAAI,CAAC;QAAE,KAAK,IAAI,CAAC,CAAC;SACpC,IAAI,EAAE,CAAC,WAAW,IAAI,CAAC;QAAE,KAAK,IAAI,CAAC,CAAC;IAEzC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,SAAiB;IAC7C,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,iBAAyB,EACzB,WAAmB;IAEnB,MAAM,MAAM,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAChD,OAAO,MAAM,KAAK,KAAK,CAAC;AAC1B,CAAC;AASD;;;GAGG;AACH,SAAS,aAAa,CACpB,MAAyC;IAEzC,MAAM,KAAK,GACT,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC7B,CAAC,CAAC,MAAM,CAAC,IAAI;QACb,CAAC,CAAC,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;YAChC,CAAC,CAAC,MAAM,CAAC,KAAK;YACd,CAAC,CAAC,IAAI,CAAC;IACb,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,IAAI,SAAS,GAA4B,IAAI,CAAC;IAE9C,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,OAAO;YAAE,SAAS,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,sFAAsF;IACtF,IACE,CAAC,SAAS;QACV,CAAC,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,EAClE,CAAC;QACD,MAAM,GAAG,GACP,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvE,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACtC,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QACzC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClD,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC;YAAE,SAAS,GAAG,MAAM,CAAC;aACnC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC;YAAE,SAAS,GAAG,OAAO,CAAC;IAChD,CAAC;IAED,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,CAAC;AAED,+EAA+E;AAE/E,iFAAiF;AACjF,SAAS,UAAU,CAAC,MAAgB;IAClC,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC;AAED,+EAA+E;AAE/E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,aAAa,CAA4B;QAC9C,EAAE,EAAE,SAAS;QACb,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE;YACP,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK;SACf;QACD,WAAW,EACT,iEAAiE;QACnE,eAAe,EAAE,GAAG;QACpB,SAAS,EAAE,eAAe,CAAC,cAAc;QACzC,gBAAgB,EAAE,GAAG;QACrB,WAAW,EAAE,iBAAiB,CAAC,eAAe;QAC9C,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,eAAe,EAAE,CAAC;QACjE,YAAY,EAAE,kBAAkB;QAChC,aAAa;QACb,WAAW,EAAE,iBAAiB;QAC9B,YAAY;QAEZ,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAClB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;YACvB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;YACnD,MAAM,OAAO,GAAa,EAAE,CAAC;YAE7B,0CAA0C;YAC1C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;YAC9C,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;gBACxB,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC;YAED,KAAK,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC;gBAClC,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;gBACrC,IAAI,CAAC,GAAG;oBAAE,SAAS;gBAEnB,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,CAAC,OAAO;oBAAE,SAAS;gBAEvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;oBAAE,SAAS;gBAE3D,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC5C,IAAI,UAAU,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC;oBAAE,SAAS;gBAEpD,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAE/D,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,UAAU,EAAE,UAAU;oBACtB,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,SAAS,EAAE,cAAc;oBACzB,KAAK,EAAE,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;oBAC9B,SAAS,EAAE,GAAG;oBACd,OAAO,EAAE;wBACP,iBAAiB,EAAE,IAAI;wBACvB,eAAe,EAAE,UAAU,IAAI,CAAC;wBAChC,aAAa,EAAE,OAAO,CAAC,mBAAmB,GAAG,IAAI;qBAClD;oBACD,IAAI,EAAE;wBACJ,iBAAiB,EAAE,GAAG,CAAC,SAAS;wBAChC,WAAW,EAAE,OAAO,CAAC,SAAS;wBAC9B,YAAY,EAAE,cAAc;wBAC5B,UAAU;wBACV,WAAW,EAAE,OAAO,CAAC,WAAW;wBAChC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;wBAChD,aAAa,EAAE,GAAG,CAAC,KAAK;qBACzB;iBACF,CAAC,CAAC;YACL,CAAC;YAED,MAAM,SAAS,GAAgB;gBAC7B,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC;gBAC1B,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM;aAClD,CAAC;YACF,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAE9B,OAAO;gBACL,SAAS,EAAE,GAAG;gBACd,YAAY,EAAE,SAAS,CAAC,MAAM;gBAC9B,OAAO;gBACP,OAAO,EAAE;oBACP,gBAAgB,EAAE,SAAS,CAAC,MAAM;oBAClC,kBAAkB,EAAE,MAAM,CAAC,MAAM;oBACjC,aAAa,EAAE,OAAO,CAAC,MAAM;oBAC7B,KAAK,EAAE,SAAS,CAAC,KAAK;iBACvB;aACF,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,26 @@
1
+ export { type ScannerRuntimeEventMap, type ScannerRuntimeEventName, type ScannerRunCompleteEvent, type ScannerRunErrorEvent, type ScannerRunSkipEvent, type ScannerRunStartEvent, } from "./events.js";
2
+ export { buildCompositionFromScanners, createScannerRuntimeModule, type ScannerFactory, type ScannerInput, type ScannerRuntimeModule, type ScannerRuntimeModuleOptions, } from "./runtime-module.js";
3
+ export { createScanner, type CreateScannerOptions } from "./create-scanner.js";
4
+ export { providerInput, type ActivePositionsInputDescriptor, type CandlesInputDescriptor, type InstrumentsInputDescriptor, type ProviderInputDescriptor, type ScannerInputDescriptor, type SmDataInputDescriptor, type ClearingHouseStateInputDescriptor, type DslStatesInputDescriptor, } from "./input-descriptors.js";
5
+ export type { ScannerDataProviders } from "./engine/data-providers.js";
6
+ export type { ScannerRegistrationSummary } from "./engine/engine.js";
7
+ export type { Scanner } from "./protocol/scanner.js";
8
+ export type { ScannerHooks } from "./protocol/hooks.js";
9
+ export { SkipScan } from "./protocol/hooks.js";
10
+ export { PersistencePolicy, RetentionPolicy, type ScannerDefinition, } from "./scanner-definition.js";
11
+ export { consumeSharedArtifact, btcCacheArtifact, defineSharedArtifact, oiHistoryArtifact, prescreenedArtifact, type ArtifactProviderSource, type BtcCacheArtifact, type ConsumedArtifactBinding, type OiHistoryArtifact, type PrescreenedArtifact, type PrescreenedCandidate, type SharedArtifactContract, type SharedArtifactValue, type SharedArtifactValueMap, } from "./artifacts.js";
12
+ export { type Candidate, type Instrument, type OiSnapshot, type ReadSignalsFilter, type ScanResult, ScanStatus, type ScannerId, type Signal, type StrategyId, type StrategyRegistration, } from "./types.js";
13
+ export type { Candle, CandleResult, InstrumentContext, ParsedCandles, SmMarket, } from "./types.js";
14
+ export { createSenpiScannerProviders, type SenpiScannerProviderFactoryOptions, type SenpiProviderCacheTtlMs, type SenpiProviderTimeouts, type SenpiProviderToolNames, } from "./providers/factory.js";
15
+ export type { ProviderLogLevel, ProviderLogger, ProviderToolClient, SenpiToolClient, } from "./providers/client.js";
16
+ export { emergingMoversScanner } from "./implementations/emerging-movers.js";
17
+ export { momentumScanner } from "./implementations/momentum.js";
18
+ export { oiTrackerScanner } from "./implementations/oi-tracker.js";
19
+ export { prescreenerScanner } from "./implementations/prescreener.js";
20
+ export { marketRegimeScanner } from "./implementations/market-regime.js";
21
+ export { smFlipScanner } from "./implementations/sm-flip.js";
22
+ export { opportunityScanner } from "./implementations/opportunity.js";
23
+ export { positionTrackerScanner, type PositionTrackerConfig, type PositionTrackerDelta, type PositionTrackerDeltaType, type PositionTrackerPositionSnapshot, type PositionTrackerState, normalizePositionTrackerPositions, diffPositionTrackerPositions, applyPositionTrackerDelta, } from "./implementations/position-tracker.js";
24
+ export { liquidationWatchdogScanner, type ClearingHouseState, type ClearingHousePosition, type WatchdogConfig, type WatchdogAlert, } from "./implementations/liquidation-watchdog.js";
25
+ export { marketRegimeArtifact, MarketRegime, type MarketRegimeArtifact, } from "./artifacts.js";
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanners/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export { buildCompositionFromScanners, createScannerRuntimeModule, } from "./runtime-module.js";
2
+ export { createScanner } from "./create-scanner.js";
3
+ export { providerInput, } from "./input-descriptors.js";
4
+ export { SkipScan } from "./protocol/hooks.js";
5
+ export { PersistencePolicy, RetentionPolicy, } from "./scanner-definition.js";
6
+ export { consumeSharedArtifact, btcCacheArtifact, defineSharedArtifact, oiHistoryArtifact, prescreenedArtifact, } from "./artifacts.js";
7
+ export { ScanStatus, } from "./types.js";
8
+ export { createSenpiScannerProviders, } from "./providers/factory.js";
9
+ export { emergingMoversScanner } from "./implementations/emerging-movers.js";
10
+ export { momentumScanner } from "./implementations/momentum.js";
11
+ export { oiTrackerScanner } from "./implementations/oi-tracker.js";
12
+ export { prescreenerScanner } from "./implementations/prescreener.js";
13
+ export { marketRegimeScanner } from "./implementations/market-regime.js";
14
+ export { smFlipScanner } from "./implementations/sm-flip.js";
15
+ export { opportunityScanner } from "./implementations/opportunity.js";
16
+ export { positionTrackerScanner, normalizePositionTrackerPositions, diffPositionTrackerPositions, applyPositionTrackerDelta, } from "./implementations/position-tracker.js";
17
+ export { liquidationWatchdogScanner, } from "./implementations/liquidation-watchdog.js";
18
+ export { marketRegimeArtifact, MarketRegime, } from "./artifacts.js";
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanners/index.ts"],"names":[],"mappings":"AASA,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,GAK3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAA6B,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,aAAa,GASd,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,eAAe,GAEhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,GAUpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAML,UAAU,GAKX,MAAM,YAAY,CAAC;AAQpB,OAAO,EACL,2BAA2B,GAK5B,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EACL,sBAAsB,EAMtB,iCAAiC,EACjC,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,0BAA0B,GAK3B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,YAAY,GAEb,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,61 @@
1
+ import type { ConsumedArtifactBinding, SharedArtifactContract } from "./artifacts.js";
2
+ import type { SharedArtifactKey } from "./types.js";
3
+ /** Provider-backed instruments input for one scan run. */
4
+ export interface InstrumentsInputDescriptor {
5
+ kind: "instruments";
6
+ }
7
+ /** Provider-backed candle input for one scan run. */
8
+ export interface CandlesInputDescriptor<Key extends SharedArtifactKey = SharedArtifactKey> {
9
+ kind: "candles";
10
+ /** Optional consumed context contract used to narrow the candle asset fanout. */
11
+ preferredAssetsFrom?: Key | SharedArtifactContract<Key>;
12
+ /** Optional hardcoded asset list to narrow the candle request. Takes precedence over `preferredAssetsFrom`. */
13
+ fixedAssets?: string[];
14
+ }
15
+ /** Provider-backed smart-money leaderboard input for one scan run. */
16
+ export interface SmDataInputDescriptor {
17
+ kind: "smData";
18
+ }
19
+ /** Provider-backed active-position input for one scan run. */
20
+ export interface ActivePositionsInputDescriptor {
21
+ kind: "activePositions";
22
+ }
23
+ /** Provider-backed clearinghouse state input for one scan run. */
24
+ export interface ClearingHouseStateInputDescriptor {
25
+ kind: "clearingHouseState";
26
+ }
27
+ /** Provider-backed DSL states input for one scan run. */
28
+ export interface DslStatesInputDescriptor {
29
+ kind: "dslStates";
30
+ }
31
+ /** Declarative provider-backed scanner inputs. */
32
+ export type ProviderInputDescriptor = InstrumentsInputDescriptor | CandlesInputDescriptor | SmDataInputDescriptor | ActivePositionsInputDescriptor | ClearingHouseStateInputDescriptor | DslStatesInputDescriptor;
33
+ /** Declarative scanner input descriptor covering providers and shared artifacts. */
34
+ export type ScannerInputDescriptor = ProviderInputDescriptor | ConsumedArtifactBinding;
35
+ /** Builder helpers for provider-backed scanner inputs. */
36
+ export declare const providerInput: {
37
+ /** Declares that a scanner needs the current instrument universe for each run. */
38
+ instruments(): InstrumentsInputDescriptor;
39
+ /**
40
+ * Declares that a scanner needs candle data for each run.
41
+ * `preferredAssetsFrom` lets upstream shared artifacts narrow the requested asset set.
42
+ * `fixedAssets` provides a hardcoded asset list (takes precedence over `preferredAssetsFrom`).
43
+ */
44
+ candles<Key extends SharedArtifactKey>(options?: {
45
+ preferredAssetsFrom?: Key | SharedArtifactContract<Key>;
46
+ fixedAssets?: string[];
47
+ }): CandlesInputDescriptor<Key>;
48
+ /** Declares that a scanner needs smart-money leaderboard data for each run. */
49
+ smData(): SmDataInputDescriptor;
50
+ /** Declares that a scanner needs the currently active positions for each run. */
51
+ activePositions(): ActivePositionsInputDescriptor;
52
+ /** Declares that a scanner needs clearinghouse state (margin, positions, liq prices) for each run. */
53
+ clearingHouseState(): ClearingHouseStateInputDescriptor;
54
+ /** Declares that a scanner needs DSL states for the current strategy for each run. */
55
+ dslStates(): DslStatesInputDescriptor;
56
+ };
57
+ /** Runtime guard for provider-backed input descriptors. */
58
+ export declare function isProviderInputDescriptor(input: ScannerInputDescriptor): input is ProviderInputDescriptor;
59
+ /** Runtime guard for consumed shared-artifact bindings in the inputs array. */
60
+ export declare function isConsumedArtifactBinding(input: ScannerInputDescriptor): input is ConsumedArtifactBinding;
61
+ //# sourceMappingURL=input-descriptors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-descriptors.d.ts","sourceRoot":"","sources":["../../src/scanners/input-descriptors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,0DAA0D;AAC1D,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,qDAAqD;AACrD,MAAM,WAAW,sBAAsB,CACrC,GAAG,SAAS,iBAAiB,GAAG,iBAAiB;IAEjD,IAAI,EAAE,SAAS,CAAC;IAChB,iFAAiF;IACjF,mBAAmB,CAAC,EAAE,GAAG,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACxD,+GAA+G;IAC/G,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,sEAAsE;AACtE,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,8DAA8D;AAC9D,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,kEAAkE;AAClE,MAAM,WAAW,iCAAiC;IAChD,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED,yDAAyD;AACzD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,kDAAkD;AAClD,MAAM,MAAM,uBAAuB,GAC/B,0BAA0B,GAC1B,sBAAsB,GACtB,qBAAqB,GACrB,8BAA8B,GAC9B,iCAAiC,GACjC,wBAAwB,CAAC;AAE7B,oFAAoF;AACpF,MAAM,MAAM,sBAAsB,GAC9B,uBAAuB,GACvB,uBAAuB,CAAC;AAE5B,0DAA0D;AAC1D,eAAO,MAAM,aAAa;IACxB,kFAAkF;mBACnE,0BAA0B;IAIzC;;;;OAIG;YACK,GAAG,SAAS,iBAAiB,YAC1B;QAAE,mBAAmB,CAAC,EAAE,GAAG,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC3F,sBAAsB,CAAC,GAAG,CAAC;IAO9B,+EAA+E;cACrE,qBAAqB;IAI/B,iFAAiF;uBAC9D,8BAA8B;IAIjD,sGAAsG;0BAChF,iCAAiC;IAIvD,sFAAsF;iBACzE,wBAAwB;CAGtC,CAAC;AAEF,2DAA2D;AAC3D,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,sBAAsB,GAC5B,KAAK,IAAI,uBAAuB,CAElC;AAED,+EAA+E;AAC/E,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,sBAAsB,GAC5B,KAAK,IAAI,uBAAuB,CAElC"}
@@ -0,0 +1,43 @@
1
+ /** Builder helpers for provider-backed scanner inputs. */
2
+ export const providerInput = {
3
+ /** Declares that a scanner needs the current instrument universe for each run. */
4
+ instruments() {
5
+ return { kind: "instruments" };
6
+ },
7
+ /**
8
+ * Declares that a scanner needs candle data for each run.
9
+ * `preferredAssetsFrom` lets upstream shared artifacts narrow the requested asset set.
10
+ * `fixedAssets` provides a hardcoded asset list (takes precedence over `preferredAssetsFrom`).
11
+ */
12
+ candles(options = {}) {
13
+ return {
14
+ kind: "candles",
15
+ ...options,
16
+ };
17
+ },
18
+ /** Declares that a scanner needs smart-money leaderboard data for each run. */
19
+ smData() {
20
+ return { kind: "smData" };
21
+ },
22
+ /** Declares that a scanner needs the currently active positions for each run. */
23
+ activePositions() {
24
+ return { kind: "activePositions" };
25
+ },
26
+ /** Declares that a scanner needs clearinghouse state (margin, positions, liq prices) for each run. */
27
+ clearingHouseState() {
28
+ return { kind: "clearingHouseState" };
29
+ },
30
+ /** Declares that a scanner needs DSL states for the current strategy for each run. */
31
+ dslStates() {
32
+ return { kind: "dslStates" };
33
+ },
34
+ };
35
+ /** Runtime guard for provider-backed input descriptors. */
36
+ export function isProviderInputDescriptor(input) {
37
+ return "kind" in input;
38
+ }
39
+ /** Runtime guard for consumed shared-artifact bindings in the inputs array. */
40
+ export function isConsumedArtifactBinding(input) {
41
+ return "contract" in input;
42
+ }
43
+ //# sourceMappingURL=input-descriptors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-descriptors.js","sourceRoot":"","sources":["../../src/scanners/input-descriptors.ts"],"names":[],"mappings":"AAwDA,0DAA0D;AAC1D,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,kFAAkF;IAClF,WAAW;QACT,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,OAAO,CACL,UAA+F,EAAE;QAEjG,OAAO;YACL,IAAI,EAAE,SAAS;YACf,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,MAAM;QACJ,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED,iFAAiF;IACjF,eAAe;QACb,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;IACrC,CAAC;IAED,sGAAsG;IACtG,kBAAkB;QAChB,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;IACxC,CAAC;IAED,sFAAsF;IACtF,SAAS;QACP,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC/B,CAAC;CACF,CAAC;AAEF,2DAA2D;AAC3D,MAAM,UAAU,yBAAyB,CACvC,KAA6B;IAE7B,OAAO,MAAM,IAAI,KAAK,CAAC;AACzB,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,yBAAyB,CACvC,KAA6B;IAE7B,OAAO,UAAU,IAAI,KAAK,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { Scanner } from "./protocol/scanner.js";
2
+ export type ScannerFactory<Cfg = unknown, St = unknown> = () => Scanner<Cfg, St>;
3
+ export interface PreparedScannerInput {
4
+ definition: Scanner["definition"];
5
+ factory: ScannerFactory;
6
+ }
7
+ /**
8
+ * Prepares scanner factories so callers can inspect definitions without paying
9
+ * for an extra instantiation during subsequent registration.
10
+ */
11
+ export declare function prepareScannerInputs(scanners: ScannerFactory[]): PreparedScannerInput[];
12
+ //# sourceMappingURL=prepare-scanner-inputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-scanner-inputs.d.ts","sourceRoot":"","sources":["../../src/scanners/prepare-scanner-inputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,cAAc,CAAC,GAAG,GAAG,OAAO,EAAE,EAAE,GAAG,OAAO,IAAI,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAEjF,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,EAAE,GACzB,oBAAoB,EAAE,CAgBxB"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Prepares scanner factories so callers can inspect definitions without paying
3
+ * for an extra instantiation during subsequent registration.
4
+ */
5
+ export function prepareScannerInputs(scanners) {
6
+ return scanners.map((factory) => {
7
+ const initialInstance = factory();
8
+ let firstUsePending = true;
9
+ return {
10
+ definition: initialInstance.definition,
11
+ factory: () => {
12
+ if (firstUsePending) {
13
+ firstUsePending = false;
14
+ return initialInstance;
15
+ }
16
+ return factory();
17
+ },
18
+ };
19
+ });
20
+ }
21
+ //# sourceMappingURL=prepare-scanner-inputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-scanner-inputs.js","sourceRoot":"","sources":["../../src/scanners/prepare-scanner-inputs.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAA0B;IAE1B,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,eAAe,GAAG,OAAO,EAAE,CAAC;QAClC,IAAI,eAAe,GAAG,IAAI,CAAC;QAE3B,OAAO;YACL,UAAU,EAAE,eAAe,CAAC,UAAU;YACtC,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,eAAe,EAAE,CAAC;oBACpB,eAAe,GAAG,KAAK,CAAC;oBACxB,OAAO,eAAe,CAAC;gBACzB,CAAC;gBACD,OAAO,OAAO,EAAE,CAAC;YACnB,CAAC;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,95 @@
1
+ import type { BtcCacheArtifact, MarketRegimeArtifact, OiHistoryArtifact, PrescreenedArtifact, SharedArtifactContract, SharedArtifactValue } from "../artifacts.js";
2
+ import type { ScannerDependencyPolicyMode } from "../scanner-definition.js";
3
+ import type { ScannerDefinition } from "../scanner-definition.js";
4
+ import type { ScannerRuntimeState } from "../store/runtime-store.js";
5
+ import type { CandleResult, Instrument, OiSnapshot, ScannerId, SharedArtifactKey, SmMarket } from "../types.js";
6
+ import type { ClearingHouseState } from "../implementations/liquidation-watchdog.js";
7
+ import type { DslState } from "../../types/dsl/index.js";
8
+ type ReadonlyPrimitive = bigint | boolean | null | number | string | symbol | undefined;
9
+ type ReadonlyDeepArray<Item> = ReadonlyArray<ReadonlyDeep<Item>>;
10
+ type ReadonlyDeepObject<T extends object> = {
11
+ readonly [Key in keyof T]: ReadonlyDeep<T[Key]>;
12
+ };
13
+ /**
14
+ * Recursively marks nested scan-input payloads as readonly.
15
+ * This is used for artifact-backed inputs so scanners cannot mutate shared
16
+ * market intelligence snapshots in place.
17
+ */
18
+ type ReadonlyDeep<T> = T extends ReadonlyPrimitive ? T : T extends (...args: never[]) => unknown ? T : T extends readonly (infer Item)[] ? ReadonlyDeepArray<Item> : T extends object ? ReadonlyDeepObject<T> : T;
19
+ /** Candle data indexed first by asset, then by timeframe within each candle result. */
20
+ export type CandlesByAsset = Readonly<Record<string, Readonly<CandleResult>>>;
21
+ /** Open-interest history indexed by asset name. */
22
+ export type OiHistoryByAsset = Readonly<Record<string, readonly Readonly<OiSnapshot>[]>>;
23
+ /**
24
+ * Known built-in retained-context hints kept for built-in scanner ergonomics.
25
+ * Runtime wiring remains open-keyed beyond these built-ins.
26
+ */
27
+ interface BuiltInArtifactInputHints {
28
+ readonly prescreened?: ReadonlyDeep<PrescreenedArtifact>;
29
+ readonly "oi-history"?: ReadonlyDeep<OiHistoryArtifact>;
30
+ readonly "btc-cache"?: ReadonlyDeep<BtcCacheArtifact>;
31
+ readonly "market-regime"?: ReadonlyDeep<MarketRegimeArtifact>;
32
+ }
33
+ /**
34
+ * Shared market intelligence resolved for one scan run.
35
+ * These values come from shared artifact bindings rather than direct provider needs.
36
+ */
37
+ export type ScanArtifactInputs = Readonly<Record<string, ReadonlyDeep<unknown> | undefined>> & BuiltInArtifactInputHints;
38
+ /**
39
+ * Data payload assembled by engine for one scan run.
40
+ * Top-level fields are provider-backed inputs; `artifacts` contains shared
41
+ * market intelligence. Scanners should treat this snapshot as read-only input.
42
+ */
43
+ export interface ScanInputs {
44
+ readonly instruments?: readonly Readonly<Instrument>[];
45
+ readonly candles?: CandlesByAsset;
46
+ readonly smData?: readonly Readonly<SmMarket>[];
47
+ readonly activePositions?: readonly Readonly<Record<string, unknown>>[];
48
+ readonly clearingHouseState?: Readonly<ClearingHouseState>;
49
+ readonly dslStates?: readonly Readonly<DslState>[];
50
+ readonly artifacts: ScanArtifactInputs;
51
+ }
52
+ export interface ResolvedScannerDependency {
53
+ readonly scanner: ScannerId;
54
+ readonly contextKey: string;
55
+ readonly updatedAt: number;
56
+ readonly maxAgeMs?: number;
57
+ readonly stale: boolean;
58
+ readonly onMissing?: ScannerDependencyPolicyMode;
59
+ readonly onStale?: ScannerDependencyPolicyMode;
60
+ readonly value: ReadonlyDeep<unknown>;
61
+ }
62
+ /** Optional logger surface exposed to scanners and hooks. */
63
+ export interface ScannerLogger {
64
+ debug?: (message: string, meta?: Record<string, unknown>) => void;
65
+ info?: (message: string, meta?: Record<string, unknown>) => void;
66
+ warn?: (message: string, meta?: Record<string, unknown>) => void;
67
+ error?: (message: string, meta?: Record<string, unknown>) => void;
68
+ }
69
+ /** Shared-artifact accessors available to scanners for reading and writing shared market intelligence. */
70
+ export interface SharedArtifactAccessor {
71
+ loadSharedArtifact: <Key extends SharedArtifactKey>(artifact: Key | SharedArtifactContract<Key>, opts?: {
72
+ maxAgeMs?: number;
73
+ }) => Promise<SharedArtifactValue<Key> | null>;
74
+ saveSharedArtifact: <Key extends SharedArtifactKey>(artifact: Key | SharedArtifactContract<Key>, value: SharedArtifactValue<Key>) => Promise<void>;
75
+ }
76
+ /** Context passed once during scanner bootstrap. */
77
+ export interface ScannerInitContext<Cfg = unknown, St = unknown> extends SharedArtifactAccessor {
78
+ address: string;
79
+ scannerId: ScannerId;
80
+ definition: ScannerDefinition<Cfg, St>;
81
+ runtime: ScannerRuntimeState<Cfg, St>;
82
+ config: Cfg;
83
+ state: St;
84
+ now: () => number;
85
+ logger?: ScannerLogger;
86
+ setState: (nextState: St) => Promise<void>;
87
+ }
88
+ /** Context passed on each scan run after runtime and inputs are loaded. */
89
+ export interface ScanContext<Cfg = unknown, St = unknown> extends ScannerInitContext<Cfg, St> {
90
+ runStartedAt: number;
91
+ inputs: ScanInputs;
92
+ dependencies: readonly ResolvedScannerDependency[];
93
+ }
94
+ export {};
95
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/scanners/protocol/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/scanners/protocol/context.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { ScanStatus } from "../types.js";
2
+ import type { Signal } from "../types.js";
3
+ import type { ScanContext } from "./context.js";
4
+ /** Optional pre/post scan behavior customizations for one scanner. */
5
+ export interface ScannerHooks<Cfg = unknown, St = unknown> {
6
+ beforeScan?: (ctx: ScanContext<Cfg, St>) => ScanContext<Cfg, St> | Promise<ScanContext<Cfg, St>>;
7
+ isActionable?: (signal: Signal, ctx: ScanContext<Cfg, St>) => boolean;
8
+ }
9
+ export interface SkipScanOptions {
10
+ status?: ScanStatus;
11
+ cause?: unknown;
12
+ }
13
+ /** Error used by scanner hooks or scanner code to halt one run with a status. */
14
+ export declare class SkipScan extends Error {
15
+ readonly status: ScanStatus;
16
+ constructor(message?: string, options?: SkipScanOptions);
17
+ }
18
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/scanners/protocol/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,sEAAsE;AACtE,MAAM,WAAW,YAAY,CAAC,GAAG,GAAG,OAAO,EAAE,EAAE,GAAG,OAAO;IACvD,UAAU,CAAC,EAAE,CACX,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,KACtB,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1D,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC;CACvE;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,iFAAiF;AACjF,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;gBAEhB,OAAO,SAAkB,EAAE,OAAO,GAAE,eAAoB;CAOrE"}
@@ -0,0 +1,12 @@
1
+ import { ScanStatus } from "../types.js";
2
+ /** Error used by scanner hooks or scanner code to halt one run with a status. */
3
+ export class SkipScan extends Error {
4
+ status;
5
+ constructor(message = "Scan skipped.", options = {}) {
6
+ const errorOptions = options.cause === undefined ? undefined : { cause: options.cause };
7
+ super(message, errorOptions);
8
+ this.name = "SkipScan";
9
+ this.status = options.status ?? ScanStatus.SKIPPED;
10
+ }
11
+ }
12
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/scanners/protocol/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAiBzC,iFAAiF;AACjF,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,MAAM,CAAa;IAE5B,YAAY,OAAO,GAAG,eAAe,EAAE,UAA2B,EAAE;QAClE,MAAM,YAAY,GAChB,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QACrE,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC;IACrD,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ export type { Scanner } from "./scanner.js";
2
+ export type { ScannerHooks } from "./hooks.js";
3
+ export { SkipScan, type SkipScanOptions } from "./hooks.js";
4
+ export type { CandlesByAsset, OiHistoryByAsset, ScanInputs, ScannerLogger, SharedArtifactAccessor, ScannerInitContext, ScanContext, } from "./context.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/scanners/protocol/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAC5D,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,WAAW,GACZ,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { SkipScan } from "./hooks.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scanners/protocol/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAwB,MAAM,YAAY,CAAC"}