@senpi/runtime 1.0.95-dev.feat-dsl-backend-int.20260416023008 → 1.0.95-dev.runtime-phase-2.20260416194608

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 (285) hide show
  1. package/README.md +72 -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 +428 -1
  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 +8 -5
  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 +8 -2
  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 +106 -6
  98. package/dist/health/index.js.map +1 -1
  99. package/dist/health/types.d.ts +102 -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 +2 -2
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +98 -1
  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 +132 -14
  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/implementations/position-tracker.d.ts.map +1 -1
  200. package/dist/scanners/implementations/position-tracker.js +3 -1
  201. package/dist/scanners/implementations/position-tracker.js.map +1 -1
  202. package/dist/scanners/index.d.ts +4 -1
  203. package/dist/scanners/index.d.ts.map +1 -1
  204. package/dist/scanners/index.js +2 -0
  205. package/dist/scanners/index.js.map +1 -1
  206. package/dist/scanners/protocol/scanner.d.ts +3 -1
  207. package/dist/scanners/protocol/scanner.d.ts.map +1 -1
  208. package/dist/scanners/providers/client.d.ts.map +1 -1
  209. package/dist/scanners/providers/client.js +0 -8
  210. package/dist/scanners/providers/client.js.map +1 -1
  211. package/dist/scanners/runtime-module.d.ts +10 -0
  212. package/dist/scanners/runtime-module.d.ts.map +1 -1
  213. package/dist/scanners/runtime-module.js +19 -3
  214. package/dist/scanners/runtime-module.js.map +1 -1
  215. package/dist/scanners/scanner-definition.d.ts +12 -1
  216. package/dist/scanners/scanner-definition.d.ts.map +1 -1
  217. package/dist/scanners/types.d.ts +3 -0
  218. package/dist/scanners/types.d.ts.map +1 -1
  219. package/dist/scanners/types.js.map +1 -1
  220. package/dist/scripts/run-dsl-standalone-live.js +1 -1
  221. package/dist/scripts/run-dsl-standalone-live.js.map +1 -1
  222. package/dist/scripts/run-dsl-standalone-mock.js +1 -1
  223. package/dist/scripts/run-dsl-standalone-mock.js.map +1 -1
  224. package/dist/senpi/client.d.ts +27 -2
  225. package/dist/senpi/client.d.ts.map +1 -1
  226. package/dist/senpi/client.js +74 -1
  227. package/dist/senpi/client.js.map +1 -1
  228. package/dist/senpi/index.d.ts +1 -1
  229. package/dist/senpi/index.d.ts.map +1 -1
  230. package/dist/senpi/types.d.ts +68 -0
  231. package/dist/senpi/types.d.ts.map +1 -1
  232. package/dist/strategy/strategy-state.d.ts +4 -1
  233. package/dist/strategy/strategy-state.d.ts.map +1 -1
  234. package/dist/strategy/strategy-state.js +7 -2
  235. package/dist/strategy/strategy-state.js.map +1 -1
  236. package/dist/tracking/constants.d.ts +24 -0
  237. package/dist/tracking/constants.d.ts.map +1 -0
  238. package/dist/tracking/constants.js +46 -0
  239. package/dist/tracking/constants.js.map +1 -0
  240. package/dist/tracking/index.d.ts +12 -0
  241. package/dist/tracking/index.d.ts.map +1 -0
  242. package/dist/tracking/index.js +8 -0
  243. package/dist/tracking/index.js.map +1 -0
  244. package/dist/tracking/tracker.d.ts +22 -0
  245. package/dist/tracking/tracker.d.ts.map +1 -0
  246. package/dist/tracking/tracker.js +44 -0
  247. package/dist/tracking/tracker.js.map +1 -0
  248. package/dist/tracking/tracking-handler.d.ts +12 -0
  249. package/dist/tracking/tracking-handler.d.ts.map +1 -0
  250. package/dist/tracking/tracking-handler.js +148 -0
  251. package/dist/tracking/tracking-handler.js.map +1 -0
  252. package/dist/tracking/transport.d.ts +35 -0
  253. package/dist/tracking/transport.d.ts.map +1 -0
  254. package/dist/tracking/transport.js +117 -0
  255. package/dist/tracking/transport.js.map +1 -0
  256. package/dist/tracking/types.d.ts +21 -0
  257. package/dist/tracking/types.d.ts.map +1 -0
  258. package/dist/tracking/types.js +6 -0
  259. package/dist/tracking/types.js.map +1 -0
  260. package/dist/types/action.d.ts +13 -2
  261. package/dist/types/action.d.ts.map +1 -1
  262. package/dist/types/dsl/index.d.ts +3 -0
  263. package/dist/types/dsl/index.d.ts.map +1 -1
  264. package/dist/types/strategy.d.ts +9 -3
  265. package/dist/types/strategy.d.ts.map +1 -1
  266. package/dist/utils/logger.d.ts +1 -0
  267. package/dist/utils/logger.d.ts.map +1 -1
  268. package/dist/utils/logger.js +19 -1
  269. package/dist/utils/logger.js.map +1 -1
  270. package/dist/utils/resolve-order-type.d.ts +5 -0
  271. package/dist/utils/resolve-order-type.d.ts.map +1 -0
  272. package/dist/utils/resolve-order-type.js +29 -0
  273. package/dist/utils/resolve-order-type.js.map +1 -0
  274. package/examples/strategies/dsl-showcase.yaml +7 -2
  275. package/examples/strategies/dsl.yaml +5 -1
  276. package/examples/strategies/fox-minimal-loosened.yaml +18 -3
  277. package/examples/strategies/fox-minimal.yaml +25 -3
  278. package/examples/strategies/minimal.yaml +4 -2
  279. package/examples/strategies/momentum/how-it-works.md +47 -0
  280. package/examples/strategies/momentum/momentum-guarded.yaml +161 -0
  281. package/examples/strategies/risk-showcase.yaml +93 -0
  282. package/examples/strategies/viper.yaml +11 -3
  283. package/examples/strategies/wolf.yaml +11 -3
  284. package/examples/yamls/sample-with-dsl-and-emerging-movers.yaml +12 -4
  285. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACvE,8EAA8E;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,oCAAoC,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EACL,uBAAuB,GAMxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGrE,OAAO,EAAE,UAAU,EAAkB,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,kCAAkC,EAAE,qCAAqC,EAAE,MAAM,mCAAmC,CAAC;AAC9H,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiBlD,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,qBAAqB,GAEtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,MAAM,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAC;AAcrD,MAAM,OAAO,OAAO;IACD,MAAM,CAAgB;IACtB,OAAO,CAAiB;IACjC,GAAG,CAAiB;IACpB,UAAU,CAAuC;IACjD,YAAY,CAAgB;IAC5B,aAAa,CAAwB;IACrC,SAAS,GAA0B,IAAI,CAAC;IAChD,uEAAuE;IAC/D,KAAK,GAAuB,IAAI,CAAC;IACjC,iBAAiB,GAA6B,IAAI,CAAC;IACnD,eAAe,GAA2B,IAAI,CAAC;IAC/C,OAAO,GAAG,KAAK,CAAC;IAChB,SAAS,GAAkB,IAAI,CAAC;IAExC,4FAA4F;IACpF,WAAW,GAAsB,EAAE,CAAC;IACpC,eAAe,GAAwB,IAAI,CAAC;IAC5C,qBAAqB,GAAG,KAAK,CAAC;IAC9B,kBAAkB,GAAyB,IAAI,CAAC;IAChD,mBAAmB,CAAuC;IAC1D,cAAc,CAAkB;IAChC,mBAAmB,CAAuB;IAElD,kGAAkG;IAC1F,oBAAoB,GAAqD,IAAI,CAAC;IAEtF,gGAAgG;IACxF,4BAA4B,GAA+B,IAAI,CAAC;IAExE,YAAY,MAAqB,EAAE,OAAuB;QACxD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,OAAO,IAAI,CAAC,iBAAiB,EAAE,eAAe,EAAE,IAAI,IAAI,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,iBAAiB,EAAE,cAAc,EAAE,IAAI,IAAI,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,MAAqB;QAC1C,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,wEAAwE;IACxE,oBAAoB,CAAC,OAAe,EAAE,UAAkB;QACtD,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAClE,CAAC;IAED,sDAAsD;IACtD,yBAAyB,CACvB,OAAe,EACf,UAAkB,EAClB,IAA+B;QAE/B,OAAO,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,yBAAyB,CAC7B,OAAqC;QAErC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1E,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;QACjG,CAAC;QAED,uEAAuE;QACvE,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CACb,YAAY,EAAE,CAAC,IAAI,MAAM,eAAe,CAAC,6BAA6B,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAClF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,WAAyB,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,KAAK,CAAC,wBAAwB,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,MAAM,GACV,UAAU,CAAC,UAAU,IAAI,IAAI;YAC7B,OAAO,UAAU,CAAC,UAAU,KAAK,QAAQ;YACzC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACxC,2BAA2B,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEjD,IAAI,CAAC,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE7C,4EAA4E;QAC5E,MAAM,cAAc,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAC3D,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,qBAAqB,CAAC;QAChF,MAAM,iBAAiB,GAAG,cAAc;YACtC,CAAC,CAAC,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;YAC7E,CAAC,CAAC,IAAI,aAAa,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/E,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEhE,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAElC,MAAM,KAAK,GAAG,YAAY;YACxB,CAAC,CAAC,IAAI,WAAW,CAAC,YAAY,CAAC;YAC/B,CAAC,CAAC,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,QAAQ;QACR,gFAAgF;QAChF,8FAA8F;QAC9F,kBAAkB;QAClB,wEAAwE;QACxE,IAAI;QACJ,MAAM,WAAW,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC;QAC9C,MAAM,aAAa,GAAG,yBAAyB,CAAC;YAC9C,GAAI,IAAI,CAAC,MAAM,CAAC,aAAqD;YACrE,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;SACxC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACnC,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;QACpD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,MAAM,SAAS,GAAG,SAAS,IAAI,KAAK;YAClC,CAAC,CAAC,eAAe,CAAC;gBACd,KAAK;gBACL,aAAa;gBACb,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC7D,QAAQ;aACT,CAAC;YACJ,CAAC,CAAC,mBAAmB,EAAE,CAAC;QAE1B,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC1C,8EAA8E;QAC9E,MAAM,kBAAkB,GAAG;YACzB,GAAG,gBAAgB;YACnB,uBAAuB,EAAE,gBAAgB,EAAE,uBAAuB;mBAC7D,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAC3E,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,oCAAoC,CACvD,IAAI,CAAC,MAAM,EACX,MAAM,CAAC,WAAW,EAClB,kBAAkB,CACnB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QAEvE,sEAAsE;QACtE,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,gEAAgE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,0EAA0E;QAC1E,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,cAAc,EAAE;YAC/D,KAAK;YACL,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW;YACX,cAAc;YACd,SAAS;YACT,aAAa;YACb,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,gBAAgB;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACpF,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE;YAC/D,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK;YACL,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW;YACX,cAAc;YACd,SAAS;YACT,aAAa;YACb,cAAc;YACd,YAAY,EAAE,IAAI,CAAC,mBAAmB;SACvC,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAE/C,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,aAAoD,CAAC;QAC7F,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,wBAAwB,GAAG,mBAAmB,EAAE,aAAa,KAAK,KAAK,CAAC;YAC9E,MAAM,kBAAkB,GAAG,mBAAmB,EAAE,qBAAqB,KAAK,IAAI,CAAC;YAC/E,IAAI,CAAC,SAAS,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC;gBAC3C,MAAM,EAAE,UAAU;gBAClB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ;gBACR,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,WAAW,EAAE,KAAK;gBAClB,cAAc,EAAE,uBAAuB,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;gBACnE,aAAa,EAAE,wBAAwB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa;gBACnE,eAAe,EAAE,kBAAkB;gBACnC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;aAC/B,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,IAAI,qCAAqC,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,4BAA4B,GAAG,kCAAkC,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE;gBAC9F,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;aAC/B,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;QAC3C,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,iBAAiB,GAAG,uBAAuB,CAAC;YAC/C,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YAC7B,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE;gBACT,QAAQ,EAAE,IAAI,CAAC,aAAa;gBAC5B,GAAG,EAAE,IAAI,CAAC,SAAS,IAAI,yBAAyB,EAAE;gBAClD,OAAO,EAAE,IAAI,CAAC,mBAAmB;gBACjC,IAAI,EAAE,SAAS;oBACb,CAAC,CAAC,wBAAwB,CAAC,SAAS,EAAE,eAAe,CAAC;oBACtD,CAAC,CAAC,SAAS;aACd;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,GAAG,CAAC,KAA6B,EAAE,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;gBAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,CAAC,EAAE,CAAC;YACN,CAAC;YACD,gCAAgC;YAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE;gBACpC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;gBAC7B,IAAI,EAAE,KAAK,CAAC,MAAM;gBAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;YACH,yEAAyE;YACzE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;YAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/C,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,MAAM,YAAY,CAAC;gBACxE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CACtB,CAAC,CAAuC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,CAC3F,CAAC;gBACF,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACzE,CAAC;QACH,CAAC,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,sBAAsB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAEzE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE;YACxC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO;YACpC,IAAI,EAAE;gBACJ,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO;gBAC5C,cAAc,EAAE,OAAO;gBACvB,MAAM,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;gBAC9B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;gBAC/C,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;aAC9C;YACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,0FAA0F;IAC1F,KAAK,CAAC,6BAA6B;QACjC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB;QAC7B,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,IAAI,GAAgC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACjE,OAAO,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACzD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBAClC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;gBACjC,CAAC,CAAC,CAAC;gBACH,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YAClC,CAAC;YACD,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI;gBAAE,MAAM;YAC/C,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,IAAI,CAAC;gBACH,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,sBAAsB,CACxE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAC9B,CAAC;gBACF,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE;oBACvE,mBAAmB;oBACnB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;iBAC7B,CAAC,CAAC;gBACH,MAAM,aAAa,GAAG,UAAU,EAAE,CAAC;gBACnC,MAAM,SAAS,GAAc;oBAC3B,IAAI,EAAE,UAAU,CAAC,kBAAkB;oBACnC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;oBAC7B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;oBAC5B,IAAI,EAAE;wBACJ,GAAI,OAA8C;wBAClD,eAAe,EAAE,aAAa;qBAC/B;oBACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;gBACxD,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC3D,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;gBAC/E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE;oBACvC,KAAK,EAAE,GAAG;oBACV,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;oBAC5B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;oBAChC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE;YACxC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO;YACpC,IAAI,EAAE;gBACJ,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACrD,cAAc,EAAE,OAAO;gBACvB,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO;aAC7C;YACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;YAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,CAAC,EAAE,CAAC;QACN,CAAC;QACD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,kBAAkB,CAAC;YAC9B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACjC,CAAC;QACD,6DAA6D;QAC7D,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC1E,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,CAAC,4BAA4B,IAAI,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,CAAC;YAC5C,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;QAC3C,CAAC;QACD,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,KAA2B;IACnD,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAAE,OAAO,WAAW,CAAC;IAC3D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAA2B;IACpD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;IAC7C,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO,UAAU,CAAC;IACjD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,wBAAwB,CAC/B,SAA+F,EAC/F,eAAuB;IAEvB,KAAK,UAAU,QAAQ;QACrB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,eAAe,EAAE;YACxD,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,KAAmB;SAC5B,CAAC,CAAC;QACH,OAAO,MAA6B,CAAC;IACvC,CAAC;IAED,OAAO;QACL,KAAK,CAAC,eAAe;YACnB,MAAM,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC7C,OAAO;gBACL,SAAS,EAAE,MAAM;gBACjB,MAAM;gBACN,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,OAAO,EAAE,MAAM,KAAK,SAAS;oBAC3B,CAAC,CAAC,yBAAyB,WAAW,GAAG;oBACzC,CAAC,CAAC,2CAA2C,WAAW,GAAG;gBAC7D,OAAO,EAAE,IAAI;gBACb,WAAW;gBACX,MAAM,EAAE;oBACN,cAAc,EAAE,KAAK,CAAC,MAAM;oBAC5B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM;oBACrD,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM;oBAC7D,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;oBACzD,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,MAAM;oBAClD,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM;oBAC5D,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM;iBACzD;gBACD,KAAK;aACN,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,cAAc;YAClB,MAAM,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC7C,OAAO;gBACL,SAAS,EAAE,MAAM;gBACjB,MAAM;gBACN,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE;oBACL,OAAO,EAAE,IAAI;oBACb,WAAW;oBACX,MAAM,EAAE,KAAK;oBACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,KAAK;iBACN;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB;IAIhC,OAAO;QACL,KAAK,CAAC,eAAe;YACnB,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,UAAU;gBAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,OAAO,EAAE,yCAAyC;gBAClD,OAAO,EAAE,KAAK;gBACd,eAAe,EAAE,CAAC;aACnB,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,cAAc;YAClB,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,UAAU;gBAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE;oBACL,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,CAAC;oBACb,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE;wBACP,OAAO,EAAE,KAAK;wBACd,QAAQ,EAAE,KAAK;wBACf,iBAAiB,EAAE,IAAI;wBACvB,kBAAkB,EAAE,IAAI;wBACxB,aAAa,EAAE,IAAI;wBACnB,UAAU,EAAE,IAAI;wBAChB,gBAAgB,EAAE,CAAC;wBACnB,gBAAgB,EAAE,CAAC;wBACnB,cAAc,EAAE,CAAC;qBAClB;oBACD,eAAe,EAAE,EAAE;oBACnB,SAAS,EAAE,EAAE;iBACd;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -18,6 +18,16 @@ export interface ScannerComposition {
18
18
  producedContextByScanner: ReadonlyMap<ScannerId, SharedArtifactContract>;
19
19
  getRunChain(scannerId: ScannerId): ScannerId[];
20
20
  }
21
+ /**
22
+ * Builds the runtime scanner dependency graph from normalized scanner
23
+ * definitions.
24
+ *
25
+ * Composition intentionally keys off outputs metadata and declared retained
26
+ * context contracts rather than scanner implementation type. That lets
27
+ * `external_scanner` context producers participate in `depends_on` and
28
+ * action-context wiring exactly like built-in scanners once they declare
29
+ * `outputs.context=true`.
30
+ */
21
31
  export declare function buildScannerComposition(config: RuntimeConfig, definitions: ScannerDefinitionSummary[], logger?: ScannerLogger): ScannerComposition;
22
32
  export {};
23
33
  //# sourceMappingURL=scanner-composition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scanner-composition.d.ts","sourceRoot":"","sources":["../../src/runtime/scanner-composition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,KAAK,wBAAwB,GAAG,IAAI,CAClC,iBAAiB,EACjB,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CACxD,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,SAAS,CAAC;IACd,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtC,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,eAAe,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,WAAW,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IACzD,eAAe,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,SAAS,EAAE,CAAC,CAAC;IAC9D,iBAAiB,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC1C,gBAAgB,EAAE,SAAS,SAAS,EAAE,CAAC;IACvC,wBAAwB,EAAE,WAAW,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IACzE,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;CAChD;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,wBAAwB,EAAE,EACvC,MAAM,CAAC,EAAE,aAAa,GACrB,kBAAkB,CAmEpB"}
1
+ {"version":3,"file":"scanner-composition.d.ts","sourceRoot":"","sources":["../../src/runtime/scanner-composition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,KAAK,wBAAwB,GAAG,IAAI,CAClC,iBAAiB,EACjB,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CACxD,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,SAAS,CAAC;IACd,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtC,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,eAAe,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,WAAW,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IACzD,eAAe,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,SAAS,EAAE,CAAC,CAAC;IAC9D,iBAAiB,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC1C,gBAAgB,EAAE,SAAS,SAAS,EAAE,CAAC;IACvC,wBAAwB,EAAE,WAAW,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IACzE,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;CAChD;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,wBAAwB,EAAE,EACvC,MAAM,CAAC,EAAE,aAAa,GACrB,kBAAkB,CAmEpB"}
@@ -1,4 +1,14 @@
1
1
  import { isConsumedArtifactBinding } from "../scanners/input-descriptors.js";
2
+ /**
3
+ * Builds the runtime scanner dependency graph from normalized scanner
4
+ * definitions.
5
+ *
6
+ * Composition intentionally keys off outputs metadata and declared retained
7
+ * context contracts rather than scanner implementation type. That lets
8
+ * `external_scanner` context producers participate in `depends_on` and
9
+ * action-context wiring exactly like built-in scanners once they declare
10
+ * `outputs.context=true`.
11
+ */
2
12
  export function buildScannerComposition(config, definitions, logger) {
3
13
  const nodes = new Map();
4
14
  const producedContextByScanner = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"scanner-composition.js","sourceRoot":"","sources":["../../src/runtime/scanner-composition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanner-composition.js","sourceRoot":"","sources":["../../src/runtime/scanner-composition.ts"],"names":[],"mappings":"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"}
@@ -2,15 +2,51 @@
2
2
  * Scanner type registry: map type string to Scanner factory.
3
3
  */
4
4
  import type { Scanner } from "../scanners/protocol/scanner.js";
5
+ import { RetentionPolicy, type ScannerOutputs } from "../scanners/scanner-definition.js";
5
6
  export type ScannerFactory = () => Scanner<any, any>;
7
+ /**
8
+ * Recipe-authored scanner options that only apply when the runtime is building
9
+ * a dynamic `external_scanner`.
10
+ *
11
+ * Built-in scanners already encode their outputs and retention behavior in code,
12
+ * so the registry only needs YAML-level config overrides for them. External
13
+ * scanners are different: their outputs and retention are declared directly in
14
+ * the runtime recipe, so the registry must receive that metadata and pass it
15
+ * into the synthesized scanner definition.
16
+ */
17
+ export interface RuntimeScannerFactoryOptions {
18
+ outputs?: ScannerOutputs;
19
+ retention?: RetentionPolicy | `${RetentionPolicy}`;
20
+ retentionMaxRuns?: number;
21
+ }
6
22
  /** Registers one scanner factory under a runtime type alias. */
7
23
  declare function register(type: string, factory: ScannerFactory): void;
8
24
  /** Returns the scanner factory currently associated with one runtime type alias. */
9
25
  declare function get(type: string): ScannerFactory | undefined;
26
+ /**
27
+ * Returns a stable, alphabetically sorted list of every registered scanner
28
+ * type alias. Used for error messages so operators who mistype a scanner
29
+ * `type:` in YAML see the full set of supported values without having to
30
+ * consult documentation.
31
+ */
32
+ declare function listTypes(): string[];
33
+ /**
34
+ * Builds the canonical "unknown scanner type" error message including the full
35
+ * list of registered types. Centralized so every call site (scanner registry
36
+ * factory creation, runtime startup validation) renders the same operator
37
+ * guidance.
38
+ */
39
+ declare function formatUnknownScannerTypeError(type: string): string;
10
40
  /**
11
41
  * Create a scanner factory for the given type, with YAML name as the runtime id.
12
42
  * The returned factory builds a fresh scanner instance for each registration and
13
43
  * shallow-merges any YAML-level config overrides onto the scanner's default config.
44
+ *
45
+ * Why the external-scanner branch exists:
46
+ * built-in scanners start from a fixed code definition and then accept YAML
47
+ * overrides, but `external_scanner` is authored from recipe data itself. The
48
+ * registry therefore has to synthesize a scanner definition from YAML for that
49
+ * type instead of instantiating a built-in scanner and patching it afterward.
14
50
  */
15
51
  declare function createScanner(type: string, yamlName: string, configOverrides?: unknown, dependsOn?: Array<{
16
52
  scanner: string;
@@ -18,10 +54,12 @@ declare function createScanner(type: string, yamlName: string, configOverrides?:
18
54
  max_age?: string;
19
55
  on_missing?: "fail" | "skip" | "degrade";
20
56
  on_stale?: "fail" | "skip" | "degrade";
21
- }>): ScannerFactory;
57
+ }>, options?: RuntimeScannerFactoryOptions): ScannerFactory;
22
58
  export declare const ScannerRegistry: {
23
59
  register: typeof register;
24
60
  get: typeof get;
61
+ listTypes: typeof listTypes;
62
+ formatUnknownScannerTypeError: typeof formatUnknownScannerTypeError;
25
63
  createScanner: typeof createScanner;
26
64
  };
27
65
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"scanner-registry.d.ts","sourceRoot":"","sources":["../../src/runtime/scanner-registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAc/D,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAIrD,gEAAgE;AAChE,iBAAS,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAE7D;AAED,oFAAoF;AACpF,iBAAS,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAErD;AAED;;;;GAIG;AACH,iBAAS,aAAa,CACpB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,OAAO,EACzB,SAAS,CAAC,EAAE,KAAK,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACxC,CAAC,GACD,cAAc,CAqBhB;AAoFD,eAAO,MAAM,eAAe;;;;CAI3B,CAAC"}
1
+ {"version":3,"file":"scanner-registry.d.ts","sourceRoot":"","sources":["../../src/runtime/scanner-registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EACL,eAAe,EAEf,KAAK,cAAc,EACpB,MAAM,mCAAmC,CAAC;AAc3C,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAErD;;;;;;;;;GASG;AACH,MAAM,WAAW,4BAA4B;IAC3C,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,SAAS,CAAC,EAAE,eAAe,GAAG,GAAG,eAAe,EAAE,CAAC;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAID,gEAAgE;AAChE,iBAAS,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAE7D;AAED,oFAAoF;AACpF,iBAAS,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAErD;AAED;;;;;GAKG;AACH,iBAAS,SAAS,IAAI,MAAM,EAAE,CAE7B;AAED;;;;;GAKG;AACH,iBAAS,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED;;;;;;;;;;GAUG;AACH,iBAAS,aAAa,CACpB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,OAAO,EACzB,SAAS,CAAC,EAAE,KAAK,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACxC,CAAC,EACF,OAAO,CAAC,EAAE,4BAA4B,GACrC,cAAc,CAgChB;AA8JD,eAAO,MAAM,eAAe;;;;;;CAM3B,CAAC"}
@@ -1,7 +1,9 @@
1
1
  /**
2
2
  * Scanner type registry: map type string to Scanner factory.
3
3
  */
4
+ import { RetentionPolicy, } from "../scanners/scanner-definition.js";
4
5
  import { emergingMoversScanner } from "../scanners/implementations/emerging-movers.js";
6
+ import { externalScanner } from "../scanners/implementations/external-scanner.js";
5
7
  import { momentumScanner } from "../scanners/implementations/momentum.js";
6
8
  import { oiTrackerScanner } from "../scanners/implementations/oi-tracker.js";
7
9
  import { prescreenerScanner } from "../scanners/implementations/prescreener.js";
@@ -20,15 +22,49 @@ function register(type, factory) {
20
22
  function get(type) {
21
23
  return registry.get(type);
22
24
  }
25
+ /**
26
+ * Returns a stable, alphabetically sorted list of every registered scanner
27
+ * type alias. Used for error messages so operators who mistype a scanner
28
+ * `type:` in YAML see the full set of supported values without having to
29
+ * consult documentation.
30
+ */
31
+ function listTypes() {
32
+ return Array.from(registry.keys()).sort();
33
+ }
34
+ /**
35
+ * Builds the canonical "unknown scanner type" error message including the full
36
+ * list of registered types. Centralized so every call site (scanner registry
37
+ * factory creation, runtime startup validation) renders the same operator
38
+ * guidance.
39
+ */
40
+ function formatUnknownScannerTypeError(type) {
41
+ const supported = listTypes().join(", ");
42
+ return `Unknown scanner type: '${type}'. Supported types: ${supported}.`;
43
+ }
23
44
  /**
24
45
  * Create a scanner factory for the given type, with YAML name as the runtime id.
25
46
  * The returned factory builds a fresh scanner instance for each registration and
26
47
  * shallow-merges any YAML-level config overrides onto the scanner's default config.
48
+ *
49
+ * Why the external-scanner branch exists:
50
+ * built-in scanners start from a fixed code definition and then accept YAML
51
+ * overrides, but `external_scanner` is authored from recipe data itself. The
52
+ * registry therefore has to synthesize a scanner definition from YAML for that
53
+ * type instead of instantiating a built-in scanner and patching it afterward.
27
54
  */
28
- function createScanner(type, yamlName, configOverrides, dependsOn) {
55
+ function createScanner(type, yamlName, configOverrides, dependsOn, options) {
56
+ if (type === "external_scanner") {
57
+ return () => externalScanner({
58
+ id: yamlName,
59
+ outputs: options?.outputs ?? { signals: true, context: false },
60
+ retention: coerceRetentionPolicy(options?.retention),
61
+ retentionMaxRuns: options?.retentionMaxRuns,
62
+ config: normalizeExternalScannerConfig(configOverrides),
63
+ });
64
+ }
29
65
  const factory = registry.get(type);
30
66
  if (!factory) {
31
- throw new Error(`Unknown scanner type: ${type}`);
67
+ throw new Error(formatUnknownScannerTypeError(type));
32
68
  }
33
69
  return () => {
34
70
  const scanner = factory();
@@ -91,6 +127,46 @@ function mergeConfigOverrides(defaultConfig, overrides) {
91
127
  function isRecord(value) {
92
128
  return value !== null && typeof value === "object" && !Array.isArray(value);
93
129
  }
130
+ /**
131
+ * Narrows external-scanner config overrides to the field-schema shape the
132
+ * external scanner implementation expects.
133
+ *
134
+ * The runtime schema already validates `config.fields`, but the registry still
135
+ * normalizes the value here so the scanner factory always receives a stable
136
+ * object shape rather than raw unknown YAML data.
137
+ */
138
+ function normalizeExternalScannerConfig(configOverrides) {
139
+ if (!isRecord(configOverrides) || !isRecord(configOverrides.fields)) {
140
+ return { fields: {} };
141
+ }
142
+ return structuredClone(configOverrides);
143
+ }
144
+ /**
145
+ * Converts recipe-level retention strings into the scanner-layer enum used by
146
+ * the engine and signal store.
147
+ *
148
+ * Built-in scanners carry enum values directly in code. External scanners load
149
+ * retention from YAML, so the registry performs the translation where the
150
+ * runtime config is turned into a concrete scanner definition.
151
+ *
152
+ * This helper is only part of the real `createScanner("external_scanner", ...)`
153
+ * construction path. It is intentionally separate from the placeholder
154
+ * `register("external_scanner", ...)` entry below, so the placeholder's sample
155
+ * `outputs` and `config` values do not affect retention for actual
156
+ * recipe-authored external scanners.
157
+ */
158
+ function coerceRetentionPolicy(value) {
159
+ if (!value) {
160
+ return undefined;
161
+ }
162
+ if (value === RetentionPolicy.LAST_ONLY) {
163
+ return RetentionPolicy.LAST_ONLY;
164
+ }
165
+ if (value === RetentionPolicy.ROLLING_WINDOW) {
166
+ return RetentionPolicy.ROLLING_WINDOW;
167
+ }
168
+ return undefined;
169
+ }
94
170
  register("emerging_movers", emergingMoversScanner);
95
171
  register("emerging-movers", emergingMoversScanner);
96
172
  register("momentum", momentumScanner);
@@ -106,9 +182,36 @@ register("sm-flip", smFlipScanner);
106
182
  register("opportunity", opportunityScanner);
107
183
  register("position_tracker", positionTrackerScanner);
108
184
  register("position-tracker", positionTrackerScanner);
185
+ /**
186
+ * Register `external_scanner` as a known runtime type so startup validation via
187
+ * `ScannerRegistry.get()` succeeds before the registry later synthesizes the
188
+ * real recipe-specific scanner through `createScanner()`.
189
+ *
190
+ * The placeholder values here are not used for runtime registrations; they only
191
+ * make the type visible to the registry's static lookup path. Real runtime
192
+ * construction happens in `createScanner()`, which receives the recipe's actual
193
+ * `outputs`, `retention`, and `config`.
194
+ *
195
+ * This distinction matters because startup currently uses `get()` only to check
196
+ * whether a scanner type is known. If a future call path ever instantiates an
197
+ * external scanner via `ScannerRegistry.get("external_scanner")?.()` instead of
198
+ * going through `createScanner()`, it would incorrectly inherit these
199
+ * placeholder sample values.
200
+ */
201
+ register("external_scanner", () => externalScanner({
202
+ id: "external",
203
+ outputs: { signals: true, context: false },
204
+ config: {
205
+ fields: {
206
+ value: { type: "string" },
207
+ },
208
+ },
209
+ }));
109
210
  export const ScannerRegistry = {
110
211
  register,
111
212
  get,
213
+ listTypes,
214
+ formatUnknownScannerTypeError,
112
215
  createScanner,
113
216
  };
114
217
  //# sourceMappingURL=scanner-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scanner-registry.js","sourceRoot":"","sources":["../../src/runtime/scanner-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanner-registry.js","sourceRoot":"","sources":["../../src/runtime/scanner-registry.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,8 @@ export interface StateLayout {
15
15
  scannerRoot: string;
16
16
  /** Root passed to StateManager / DslPlugin (same as `root`; they add `<wallet>/dsl-*` internally). */
17
17
  dslRoot: string;
18
+ /** Root for action-layer persisted state (`strategies/<wallet>/actions/...`). */
19
+ actionRoot: string;
18
20
  }
19
21
  /**
20
22
  * Build the per-runtime state directory path.
@@ -1 +1 @@
1
- {"version":3,"file":"state-layout.d.ts","sourceRoot":"","sources":["../../src/runtime/state-layout.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,+GAA+G;IAC/G,WAAW,EAAE,MAAM,CAAC;IACpB,sGAAsG;IACtG,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpG;AAED,2CAA2C;AAC3C,eAAO,MAAM,mBAAmB,6BAAuB,CAAC;AAExD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,WAAW,CAMrE;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAajB;AAID;;;GAGG;AACH,wBAAsB,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAgClF"}
1
+ {"version":3,"file":"state-layout.d.ts","sourceRoot":"","sources":["../../src/runtime/state-layout.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,+GAA+G;IAC/G,WAAW,EAAE,MAAM,CAAC;IACpB,sGAAsG;IACtG,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpG;AAED,2CAA2C;AAC3C,eAAO,MAAM,mBAAmB,6BAAuB,CAAC;AAExD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,WAAW,CAOrE;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAajB;AAID;;;GAGG;AACH,wBAAsB,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAgClF"}
@@ -25,6 +25,7 @@ export function buildStateLayout(runtimeStateDir) {
25
25
  root: runtimeStateDir,
26
26
  scannerRoot: runtimeStateDir,
27
27
  dslRoot: runtimeStateDir,
28
+ actionRoot: runtimeStateDir,
28
29
  };
29
30
  }
30
31
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"state-layout.js","sourceRoot":"","sources":["../../src/runtime/state-layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-layout.js","sourceRoot":"","sources":["../../src/runtime/state-layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Config-load validation for action `decision_prompt` placeholder wiring.
3
+ *
4
+ * At runtime, `interpolatePrompt()` replaces every `{{word}}` token in an
5
+ * action's `decision_prompt` using the record produced by the context
6
+ * builder plus the action's `params`. A placeholder that does not resolve is
7
+ * left in the rendered prompt as literal `{{foo}}`, which reaches the LLM
8
+ * and silently degrades the decision quality. Those typos would otherwise
9
+ * only be discovered on the first signal in production.
10
+ *
11
+ * This validator runs post-Zod in `loadRuntimeConfig` so it can rely on the
12
+ * parsed schema shape and fail fast with a message that names the action,
13
+ * the unresolved placeholders, and the set of names the runtime actually
14
+ * provides to the interpolator.
15
+ */
16
+ import type { RuntimeConfig } from "./runtime-schema.js";
17
+ /**
18
+ * Throws when any action's `decision_prompt` references a `{{placeholder}}`
19
+ * that is not provided by its declared context entries or params.
20
+ *
21
+ * The error lists every unresolved placeholder per action plus the names
22
+ * that would have resolved, so operators can tell whether the fix is a
23
+ * typo, a missing context entry, or a missing param.
24
+ *
25
+ * Actions without a `decision_prompt` are skipped because nothing is
26
+ * interpolated. Actions with a prompt that contains no `{{placeholder}}`
27
+ * tokens are also skipped.
28
+ */
29
+ export declare function assertActionPromptPlaceholdersResolvable(config: RuntimeConfig): void;
30
+ //# sourceMappingURL=validate-action-prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-action-prompts.d.ts","sourceRoot":"","sources":["../../src/runtime/validate-action-prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAiB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAwExE;;;;;;;;;;;GAWG;AACH,wBAAgB,wCAAwC,CACtD,MAAM,EAAE,aAAa,GACpB,IAAI,CAkCN"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Config-load validation for action `decision_prompt` placeholder wiring.
3
+ *
4
+ * At runtime, `interpolatePrompt()` replaces every `{{word}}` token in an
5
+ * action's `decision_prompt` using the record produced by the context
6
+ * builder plus the action's `params`. A placeholder that does not resolve is
7
+ * left in the rendered prompt as literal `{{foo}}`, which reaches the LLM
8
+ * and silently degrades the decision quality. Those typos would otherwise
9
+ * only be discovered on the first signal in production.
10
+ *
11
+ * This validator runs post-Zod in `loadRuntimeConfig` so it can rely on the
12
+ * parsed schema shape and fail fast with a message that names the action,
13
+ * the unresolved placeholders, and the set of names the runtime actually
14
+ * provides to the interpolator.
15
+ */
16
+ /**
17
+ * Same regex used by `src/context/interpolate.ts` so the validator resolves
18
+ * exactly the placeholders the runtime tries to resolve — no more, no less.
19
+ * `\w+` intentionally excludes dashes and dots.
20
+ */
21
+ const PLACEHOLDER_REGEX = /\{\{(\w+)\}\}/g;
22
+ /**
23
+ * Maps one action-context entry to the key the `contextEntryKey()` helper
24
+ * and `ContextBuilder` use as the result key in the resolved context record.
25
+ *
26
+ * This mirrors `src/context/types.ts#contextEntryKey`. It is duplicated here
27
+ * instead of imported so the validator stays self-contained inside the
28
+ * runtime config-load path and never picks up runtime state or side effects.
29
+ */
30
+ function resolvedKeyForContextEntry(entry) {
31
+ switch (entry.type) {
32
+ case "signal":
33
+ return `signal_${entry.scanner}`;
34
+ case "context":
35
+ return `context_${entry.scanner}`;
36
+ case "strategy":
37
+ return `strategy_${entry.value}`;
38
+ case "asset-trend":
39
+ return `asset_trend_${entry.value}`;
40
+ default:
41
+ return null;
42
+ }
43
+ }
44
+ /**
45
+ * Builds the full set of placeholder names the interpolator can resolve for
46
+ * one action. Callers use this both to validate and to produce the
47
+ * "Available: …" hint in the error message.
48
+ */
49
+ function buildResolvableNames(action) {
50
+ const names = new Set();
51
+ for (const entry of (action.context ?? [])) {
52
+ const key = resolvedKeyForContextEntry(entry);
53
+ if (key)
54
+ names.add(key);
55
+ }
56
+ for (const paramKey of Object.keys(action.params ?? {})) {
57
+ names.add(paramKey);
58
+ }
59
+ return names;
60
+ }
61
+ /**
62
+ * Extracts the deduplicated set of `{{word}}` tokens from a decision prompt.
63
+ */
64
+ function extractPlaceholders(prompt) {
65
+ const found = new Set();
66
+ for (const match of prompt.matchAll(PLACEHOLDER_REGEX)) {
67
+ found.add(match[1]);
68
+ }
69
+ return found;
70
+ }
71
+ /**
72
+ * Throws when any action's `decision_prompt` references a `{{placeholder}}`
73
+ * that is not provided by its declared context entries or params.
74
+ *
75
+ * The error lists every unresolved placeholder per action plus the names
76
+ * that would have resolved, so operators can tell whether the fix is a
77
+ * typo, a missing context entry, or a missing param.
78
+ *
79
+ * Actions without a `decision_prompt` are skipped because nothing is
80
+ * interpolated. Actions with a prompt that contains no `{{placeholder}}`
81
+ * tokens are also skipped.
82
+ */
83
+ export function assertActionPromptPlaceholdersResolvable(config) {
84
+ const actions = config.actions ?? [];
85
+ const errors = [];
86
+ actions.forEach((action, index) => {
87
+ const prompt = action.decision_prompt;
88
+ if (typeof prompt !== "string" || prompt.length === 0)
89
+ return;
90
+ const placeholders = extractPlaceholders(prompt);
91
+ if (placeholders.size === 0)
92
+ return;
93
+ const resolvable = buildResolvableNames(action);
94
+ const unresolved = Array.from(placeholders).filter((name) => !resolvable.has(name));
95
+ if (unresolved.length === 0)
96
+ return;
97
+ const available = Array.from(resolvable).sort().join(", ") || "(none)";
98
+ const unresolvedLabel = unresolved
99
+ .sort()
100
+ .map((name) => `{{${name}}}`)
101
+ .join(", ");
102
+ errors.push(` • actions.${index} '${action.name}': unresolved ${unresolvedLabel}. Available: ${available}.`);
103
+ });
104
+ if (errors.length === 0)
105
+ return;
106
+ throw new Error(`Action decision_prompt references names with no matching context entry or param. ` +
107
+ `Every {{placeholder}} must be provided by a declared 'context' entry (signal_<scanner>, context_<scanner>, strategy_<value>, asset_trend_<value>) or by 'params':\n` +
108
+ errors.join("\n"));
109
+ }
110
+ //# sourceMappingURL=validate-action-prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-action-prompts.js","sourceRoot":"","sources":["../../src/runtime/validate-action-prompts.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,14 @@
1
+ import { type ScannerOutputs } from "../scanner-definition.js";
2
+ import type { Scanner } from "../protocol/scanner.js";
3
+ import type { Signal } from "../types.js";
1
4
  export declare function createTempDir(prefix: string): Promise<string>;
2
5
  export declare function removeDir(path: string): Promise<void>;
3
6
  export declare function listFilesRecursive(root: string): Promise<string[]>;
7
+ export interface BuildPushDrivenTestScannerOptions {
8
+ id?: string;
9
+ outputs?: ScannerOutputs;
10
+ scan?: Scanner<Record<string, never>, Record<string, never>>["scan"];
11
+ }
12
+ export declare function makeTestSignal(scannerId: string, score?: number, asset?: string): Signal;
13
+ export declare function buildPushDrivenTestScanner(options?: BuildPushDrivenTestScannerOptions): Scanner<Record<string, never>, Record<string, never>>;
4
14
  //# sourceMappingURL=test-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../../../src/scanners/__tests__/test-helpers.ts"],"names":[],"mappings":"AAIA,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3D;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAcxE"}
1
+ {"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../../../src/scanners/__tests__/test-helpers.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3D;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAcxE;AAED,MAAM,WAAW,iCAAiC;IAChD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;CACtE;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,SAAM,EACX,KAAK,SAAQ,GACZ,MAAM,CAYR;AAED,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,iCAAsC,GAC9C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAoCvD"}