@continuumdao/continuum-node-sdk 1.3.25 → 1.3.28

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 (586) hide show
  1. package/README.md +15 -1
  2. package/dist/agent-host-catalog.json +189 -0
  3. package/dist/core/agent/agent-chart-data-access-assert.d.ts +7 -0
  4. package/dist/core/agent/agent-chart-data-access-assert.d.ts.map +1 -0
  5. package/dist/core/agent/agent-chart-data-access-assert.js +27 -0
  6. package/dist/core/agent/agent-chart-data-access-assert.js.map +1 -0
  7. package/dist/core/agent/agent-chart-data-access.d.ts +11 -0
  8. package/dist/core/agent/agent-chart-data-access.d.ts.map +1 -0
  9. package/dist/core/agent/agent-chart-data-access.js +42 -0
  10. package/dist/core/agent/agent-chart-data-access.js.map +1 -0
  11. package/dist/core/agent/environment-variables.d.ts +8 -1
  12. package/dist/core/agent/environment-variables.d.ts.map +1 -1
  13. package/dist/core/agent/environment-variables.js +44 -1
  14. package/dist/core/agent/environment-variables.js.map +1 -1
  15. package/dist/core/agent/mcp-servers.d.ts +8 -1
  16. package/dist/core/agent/mcp-servers.d.ts.map +1 -1
  17. package/dist/core/agent/mcp-servers.js +50 -1
  18. package/dist/core/agent/mcp-servers.js.map +1 -1
  19. package/dist/core/agent/skills.d.ts +6 -0
  20. package/dist/core/agent/skills.d.ts.map +1 -1
  21. package/dist/core/agent/skills.js +40 -1
  22. package/dist/core/agent/skills.js.map +1 -1
  23. package/dist/core/candlestick-patterns/calibration-weights.d.ts +3 -0
  24. package/dist/core/candlestick-patterns/calibration-weights.d.ts.map +1 -0
  25. package/dist/core/candlestick-patterns/calibration-weights.js +3 -0
  26. package/dist/core/candlestick-patterns/calibration-weights.js.map +1 -0
  27. package/dist/core/candlestick-patterns/candle-settings.d.ts +50 -0
  28. package/dist/core/candlestick-patterns/candle-settings.d.ts.map +1 -0
  29. package/dist/core/candlestick-patterns/candle-settings.js +127 -0
  30. package/dist/core/candlestick-patterns/candle-settings.js.map +1 -0
  31. package/dist/core/candlestick-patterns/catalog.d.ts +7 -0
  32. package/dist/core/candlestick-patterns/catalog.d.ts.map +1 -0
  33. package/dist/core/candlestick-patterns/catalog.js +191 -0
  34. package/dist/core/candlestick-patterns/catalog.js.map +1 -0
  35. package/dist/core/candlestick-patterns/index.d.ts +7 -0
  36. package/dist/core/candlestick-patterns/index.d.ts.map +1 -0
  37. package/dist/core/candlestick-patterns/index.js +6 -0
  38. package/dist/core/candlestick-patterns/index.js.map +1 -0
  39. package/dist/core/candlestick-patterns/patterns/detect.d.ts +21 -0
  40. package/dist/core/candlestick-patterns/patterns/detect.d.ts.map +1 -0
  41. package/dist/core/candlestick-patterns/patterns/detect.js +515 -0
  42. package/dist/core/candlestick-patterns/patterns/detect.js.map +1 -0
  43. package/dist/core/candlestick-patterns/recommendation.d.ts +3 -0
  44. package/dist/core/candlestick-patterns/recommendation.d.ts.map +1 -0
  45. package/dist/core/candlestick-patterns/recommendation.js +92 -0
  46. package/dist/core/candlestick-patterns/recommendation.js.map +1 -0
  47. package/dist/core/candlestick-patterns/scan.d.ts +8 -0
  48. package/dist/core/candlestick-patterns/scan.d.ts.map +1 -0
  49. package/dist/core/candlestick-patterns/scan.js +70 -0
  50. package/dist/core/candlestick-patterns/scan.js.map +1 -0
  51. package/dist/core/candlestick-patterns/types.d.ts +47 -0
  52. package/dist/core/candlestick-patterns/types.d.ts.map +1 -0
  53. package/dist/core/candlestick-patterns/types.js +2 -0
  54. package/dist/core/candlestick-patterns/types.js.map +1 -0
  55. package/dist/core/chart/analysis/analysis-agent-view.d.ts +6 -0
  56. package/dist/core/chart/analysis/analysis-agent-view.d.ts.map +1 -0
  57. package/dist/core/chart/analysis/analysis-agent-view.js +224 -0
  58. package/dist/core/chart/analysis/analysis-agent-view.js.map +1 -0
  59. package/dist/core/chart/analysis/analysis-catalog.d.ts +18 -0
  60. package/dist/core/chart/analysis/analysis-catalog.d.ts.map +1 -0
  61. package/dist/core/chart/analysis/analysis-catalog.js +108 -0
  62. package/dist/core/chart/analysis/analysis-catalog.js.map +1 -0
  63. package/dist/core/chart/analysis/analysis-meta.d.ts +97 -0
  64. package/dist/core/chart/analysis/analysis-meta.d.ts.map +1 -0
  65. package/dist/core/chart/analysis/analysis-meta.js +86 -0
  66. package/dist/core/chart/analysis/analysis-meta.js.map +1 -0
  67. package/dist/core/chart/analysis/analyze-tools.d.ts +668 -0
  68. package/dist/core/chart/analysis/analyze-tools.d.ts.map +1 -0
  69. package/dist/core/chart/analysis/analyze-tools.js +859 -0
  70. package/dist/core/chart/analysis/analyze-tools.js.map +1 -0
  71. package/dist/core/chart/analysis/candlestick-highlight.d.ts +55 -0
  72. package/dist/core/chart/analysis/candlestick-highlight.d.ts.map +1 -0
  73. package/dist/core/chart/analysis/candlestick-highlight.js +71 -0
  74. package/dist/core/chart/analysis/candlestick-highlight.js.map +1 -0
  75. package/dist/core/chart/analysis/candlestick-patterns-tools.d.ts +164 -0
  76. package/dist/core/chart/analysis/candlestick-patterns-tools.d.ts.map +1 -0
  77. package/dist/core/chart/analysis/candlestick-patterns-tools.js +205 -0
  78. package/dist/core/chart/analysis/candlestick-patterns-tools.js.map +1 -0
  79. package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts +105 -0
  80. package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts.map +1 -0
  81. package/dist/core/chart/analysis/chart-patterns-drawings-tools.js +512 -0
  82. package/dist/core/chart/analysis/chart-patterns-drawings-tools.js.map +1 -0
  83. package/dist/core/chart/analysis/chart-patterns-tools.d.ts +542 -0
  84. package/dist/core/chart/analysis/chart-patterns-tools.d.ts.map +1 -0
  85. package/dist/core/chart/analysis/chart-patterns-tools.js +283 -0
  86. package/dist/core/chart/analysis/chart-patterns-tools.js.map +1 -0
  87. package/dist/core/chart/analysis/key-fib-drawings-tools.d.ts +42 -0
  88. package/dist/core/chart/analysis/key-fib-drawings-tools.d.ts.map +1 -0
  89. package/dist/core/chart/analysis/key-fib-drawings-tools.js +140 -0
  90. package/dist/core/chart/analysis/key-fib-drawings-tools.js.map +1 -0
  91. package/dist/core/chart/analysis/key-level-break-detect.d.ts +27 -0
  92. package/dist/core/chart/analysis/key-level-break-detect.d.ts.map +1 -0
  93. package/dist/core/chart/analysis/key-level-break-detect.js +156 -0
  94. package/dist/core/chart/analysis/key-level-break-detect.js.map +1 -0
  95. package/dist/core/chart/analysis/key-level-drawings-shared.d.ts +109 -0
  96. package/dist/core/chart/analysis/key-level-drawings-shared.d.ts.map +1 -0
  97. package/dist/core/chart/analysis/key-level-drawings-shared.js +335 -0
  98. package/dist/core/chart/analysis/key-level-drawings-shared.js.map +1 -0
  99. package/dist/core/chart/analysis/key-level-drawings-tools.d.ts +42 -0
  100. package/dist/core/chart/analysis/key-level-drawings-tools.d.ts.map +1 -0
  101. package/dist/core/chart/analysis/key-level-drawings-tools.js +140 -0
  102. package/dist/core/chart/analysis/key-level-drawings-tools.js.map +1 -0
  103. package/dist/core/chart/analysis/key-level-menu-summary.d.ts +84 -0
  104. package/dist/core/chart/analysis/key-level-menu-summary.d.ts.map +1 -0
  105. package/dist/core/chart/analysis/key-level-menu-summary.js +257 -0
  106. package/dist/core/chart/analysis/key-level-menu-summary.js.map +1 -0
  107. package/dist/core/chart/analysis/key-levels-dataset.d.ts +17 -0
  108. package/dist/core/chart/analysis/key-levels-dataset.d.ts.map +1 -0
  109. package/dist/core/chart/analysis/key-levels-dataset.js +44 -0
  110. package/dist/core/chart/analysis/key-levels-dataset.js.map +1 -0
  111. package/dist/core/chart/analysis/momentum-highlight.d.ts +31 -0
  112. package/dist/core/chart/analysis/momentum-highlight.d.ts.map +1 -0
  113. package/dist/core/chart/analysis/momentum-highlight.js +59 -0
  114. package/dist/core/chart/analysis/momentum-highlight.js.map +1 -0
  115. package/dist/core/chart/analysis/ohlcv-input.d.ts +39 -0
  116. package/dist/core/chart/analysis/ohlcv-input.d.ts.map +1 -0
  117. package/dist/core/chart/analysis/ohlcv-input.js +89 -0
  118. package/dist/core/chart/analysis/ohlcv-input.js.map +1 -0
  119. package/dist/core/chart/analysis/ohlcv-live-merge.d.ts +39 -0
  120. package/dist/core/chart/analysis/ohlcv-live-merge.d.ts.map +1 -0
  121. package/dist/core/chart/analysis/ohlcv-live-merge.js +158 -0
  122. package/dist/core/chart/analysis/ohlcv-live-merge.js.map +1 -0
  123. package/dist/core/chart/analysis/range-volatility-highlight.d.ts +31 -0
  124. package/dist/core/chart/analysis/range-volatility-highlight.d.ts.map +1 -0
  125. package/dist/core/chart/analysis/range-volatility-highlight.js +53 -0
  126. package/dist/core/chart/analysis/range-volatility-highlight.js.map +1 -0
  127. package/dist/core/chart/analysis/time-series-analyze-tools.d.ts +98 -0
  128. package/dist/core/chart/analysis/time-series-analyze-tools.d.ts.map +1 -0
  129. package/dist/core/chart/analysis/time-series-analyze-tools.js +343 -0
  130. package/dist/core/chart/analysis/time-series-analyze-tools.js.map +1 -0
  131. package/dist/core/chart/analysis/time-series-input.d.ts +15 -0
  132. package/dist/core/chart/analysis/time-series-input.d.ts.map +1 -0
  133. package/dist/core/chart/analysis/time-series-input.js +155 -0
  134. package/dist/core/chart/analysis/time-series-input.js.map +1 -0
  135. package/dist/core/chart/analysis/trade-setups/build-trade-uniswap.d.ts +10 -0
  136. package/dist/core/chart/analysis/trade-setups/build-trade-uniswap.d.ts.map +1 -0
  137. package/dist/core/chart/analysis/trade-setups/build-trade-uniswap.js +128 -0
  138. package/dist/core/chart/analysis/trade-setups/build-trade-uniswap.js.map +1 -0
  139. package/dist/core/chart/analysis/trade-setups/build-trade.d.ts +46 -0
  140. package/dist/core/chart/analysis/trade-setups/build-trade.d.ts.map +1 -0
  141. package/dist/core/chart/analysis/trade-setups/build-trade.js +298 -0
  142. package/dist/core/chart/analysis/trade-setups/build-trade.js.map +1 -0
  143. package/dist/core/chart/analysis/trade-setups/candlestick-trade-setup.d.ts +48 -0
  144. package/dist/core/chart/analysis/trade-setups/candlestick-trade-setup.d.ts.map +1 -0
  145. package/dist/core/chart/analysis/trade-setups/candlestick-trade-setup.js +76 -0
  146. package/dist/core/chart/analysis/trade-setups/candlestick-trade-setup.js.map +1 -0
  147. package/dist/core/chart/analysis/trade-setups/chart-pattern-trade-setup.d.ts +56 -0
  148. package/dist/core/chart/analysis/trade-setups/chart-pattern-trade-setup.d.ts.map +1 -0
  149. package/dist/core/chart/analysis/trade-setups/chart-pattern-trade-setup.js +223 -0
  150. package/dist/core/chart/analysis/trade-setups/chart-pattern-trade-setup.js.map +1 -0
  151. package/dist/core/chart/analysis/trade-setups/index.d.ts +13 -0
  152. package/dist/core/chart/analysis/trade-setups/index.d.ts.map +1 -0
  153. package/dist/core/chart/analysis/trade-setups/index.js +13 -0
  154. package/dist/core/chart/analysis/trade-setups/index.js.map +1 -0
  155. package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.d.ts +105 -0
  156. package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.d.ts.map +1 -0
  157. package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.js +452 -0
  158. package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.js.map +1 -0
  159. package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.d.ts +110 -0
  160. package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.d.ts.map +1 -0
  161. package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.js +344 -0
  162. package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.js.map +1 -0
  163. package/dist/core/chart/analysis/trade-setups/momentum-trade-setup.d.ts +39 -0
  164. package/dist/core/chart/analysis/trade-setups/momentum-trade-setup.d.ts.map +1 -0
  165. package/dist/core/chart/analysis/trade-setups/momentum-trade-setup.js +68 -0
  166. package/dist/core/chart/analysis/trade-setups/momentum-trade-setup.js.map +1 -0
  167. package/dist/core/chart/analysis/trade-setups/pattern-limit-entry.d.ts +42 -0
  168. package/dist/core/chart/analysis/trade-setups/pattern-limit-entry.d.ts.map +1 -0
  169. package/dist/core/chart/analysis/trade-setups/pattern-limit-entry.js +395 -0
  170. package/dist/core/chart/analysis/trade-setups/pattern-limit-entry.js.map +1 -0
  171. package/dist/core/chart/analysis/trade-setups/range-volatility-trade-setup.d.ts +52 -0
  172. package/dist/core/chart/analysis/trade-setups/range-volatility-trade-setup.d.ts.map +1 -0
  173. package/dist/core/chart/analysis/trade-setups/range-volatility-trade-setup.js +119 -0
  174. package/dist/core/chart/analysis/trade-setups/range-volatility-trade-setup.js.map +1 -0
  175. package/dist/core/chart/analysis/trade-setups/shared.d.ts +21 -0
  176. package/dist/core/chart/analysis/trade-setups/shared.d.ts.map +1 -0
  177. package/dist/core/chart/analysis/trade-setups/shared.js +48 -0
  178. package/dist/core/chart/analysis/trade-setups/shared.js.map +1 -0
  179. package/dist/core/chart/analysis/trade-setups/trade-consensus.d.ts +22 -0
  180. package/dist/core/chart/analysis/trade-setups/trade-consensus.d.ts.map +1 -0
  181. package/dist/core/chart/analysis/trade-setups/trade-consensus.js +95 -0
  182. package/dist/core/chart/analysis/trade-setups/trade-consensus.js.map +1 -0
  183. package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.d.ts +11 -0
  184. package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.d.ts.map +1 -0
  185. package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.js +13 -0
  186. package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.js.map +1 -0
  187. package/dist/core/chart/analysis/trade-setups/trade-entry-gates.d.ts +40 -0
  188. package/dist/core/chart/analysis/trade-setups/trade-entry-gates.d.ts.map +1 -0
  189. package/dist/core/chart/analysis/trade-setups/trade-entry-gates.js +84 -0
  190. package/dist/core/chart/analysis/trade-setups/trade-entry-gates.js.map +1 -0
  191. package/dist/core/chart/analysis/trade-setups/trade-idea-list.d.ts +46 -0
  192. package/dist/core/chart/analysis/trade-setups/trade-idea-list.d.ts.map +1 -0
  193. package/dist/core/chart/analysis/trade-setups/trade-idea-list.js +98 -0
  194. package/dist/core/chart/analysis/trade-setups/trade-idea-list.js.map +1 -0
  195. package/dist/core/chart/analysis/trade-setups/trade-idea.d.ts +76 -0
  196. package/dist/core/chart/analysis/trade-setups/trade-idea.d.ts.map +1 -0
  197. package/dist/core/chart/analysis/trade-setups/trade-idea.js +187 -0
  198. package/dist/core/chart/analysis/trade-setups/trade-idea.js.map +1 -0
  199. package/dist/core/chart/analysis/trade-setups/trade-purpose-format.d.ts +43 -0
  200. package/dist/core/chart/analysis/trade-setups/trade-purpose-format.d.ts.map +1 -0
  201. package/dist/core/chart/analysis/trade-setups/trade-purpose-format.js +183 -0
  202. package/dist/core/chart/analysis/trade-setups/trade-purpose-format.js.map +1 -0
  203. package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.d.ts +59 -0
  204. package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.d.ts.map +1 -0
  205. package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.js +138 -0
  206. package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.js.map +1 -0
  207. package/dist/core/chart/analysis/trend-line-drawings-tools.d.ts +56 -0
  208. package/dist/core/chart/analysis/trend-line-drawings-tools.d.ts.map +1 -0
  209. package/dist/core/chart/analysis/trend-line-drawings-tools.js +271 -0
  210. package/dist/core/chart/analysis/trend-line-drawings-tools.js.map +1 -0
  211. package/dist/core/chart/analysis/trend-line-menu-summary.d.ts +38 -0
  212. package/dist/core/chart/analysis/trend-line-menu-summary.d.ts.map +1 -0
  213. package/dist/core/chart/analysis/trend-line-menu-summary.js +94 -0
  214. package/dist/core/chart/analysis/trend-line-menu-summary.js.map +1 -0
  215. package/dist/core/chart/apply-chart-drawings.d.ts +3 -0
  216. package/dist/core/chart/apply-chart-drawings.d.ts.map +1 -1
  217. package/dist/core/chart/apply-chart-drawings.js +101 -31
  218. package/dist/core/chart/apply-chart-drawings.js.map +1 -1
  219. package/dist/core/chart/chart-agent-view.d.ts +4 -0
  220. package/dist/core/chart/chart-agent-view.d.ts.map +1 -0
  221. package/dist/core/chart/chart-agent-view.js +27 -0
  222. package/dist/core/chart/chart-agent-view.js.map +1 -0
  223. package/dist/core/chart/chart-data-validation.d.ts +63 -0
  224. package/dist/core/chart/chart-data-validation.d.ts.map +1 -0
  225. package/dist/core/chart/chart-data-validation.js +320 -0
  226. package/dist/core/chart/chart-data-validation.js.map +1 -0
  227. package/dist/core/chart/chart-ohlcv-load-status.d.ts +39 -0
  228. package/dist/core/chart/chart-ohlcv-load-status.d.ts.map +1 -0
  229. package/dist/core/chart/chart-ohlcv-load-status.js +281 -0
  230. package/dist/core/chart/chart-ohlcv-load-status.js.map +1 -0
  231. package/dist/core/chart/chart-ohlcv-summary.d.ts +58 -0
  232. package/dist/core/chart/chart-ohlcv-summary.d.ts.map +1 -0
  233. package/dist/core/chart/chart-ohlcv-summary.js +118 -0
  234. package/dist/core/chart/chart-ohlcv-summary.js.map +1 -0
  235. package/dist/core/chart/chart-pattern-session-store.d.ts +39 -0
  236. package/dist/core/chart/chart-pattern-session-store.d.ts.map +1 -0
  237. package/dist/core/chart/chart-pattern-session-store.js +94 -0
  238. package/dist/core/chart/chart-pattern-session-store.js.map +1 -0
  239. package/dist/core/chart/customization-catalog.d.ts.map +1 -1
  240. package/dist/core/chart/customization-catalog.js +8 -2
  241. package/dist/core/chart/customization-catalog.js.map +1 -1
  242. package/dist/core/chart/display-downsample.d.ts +9 -0
  243. package/dist/core/chart/display-downsample.d.ts.map +1 -0
  244. package/dist/core/chart/display-downsample.js +79 -0
  245. package/dist/core/chart/display-downsample.js.map +1 -0
  246. package/dist/core/chart/index.d.ts +2 -1
  247. package/dist/core/chart/index.d.ts.map +1 -1
  248. package/dist/core/chart/index.js +2 -1
  249. package/dist/core/chart/index.js.map +1 -1
  250. package/dist/core/chart/levels/calculate-tools.d.ts +8 -0
  251. package/dist/core/chart/levels/calculate-tools.d.ts.map +1 -1
  252. package/dist/core/chart/levels/calculate-tools.js +9 -3
  253. package/dist/core/chart/levels/calculate-tools.js.map +1 -1
  254. package/dist/core/chart/levels/trend-lines.d.ts +3 -0
  255. package/dist/core/chart/levels/trend-lines.d.ts.map +1 -1
  256. package/dist/core/chart/levels/trend-lines.js +6 -3
  257. package/dist/core/chart/levels/trend-lines.js.map +1 -1
  258. package/dist/core/chart/live/binding-extract.d.ts.map +1 -1
  259. package/dist/core/chart/live/binding-extract.js +10 -1
  260. package/dist/core/chart/live/binding-extract.js.map +1 -1
  261. package/dist/core/chart/live/fetch-tick.d.ts +4 -0
  262. package/dist/core/chart/live/fetch-tick.d.ts.map +1 -0
  263. package/dist/core/chart/live/fetch-tick.js +73 -0
  264. package/dist/core/chart/live/fetch-tick.js.map +1 -0
  265. package/dist/core/chart/live/index.d.ts +1 -0
  266. package/dist/core/chart/live/index.d.ts.map +1 -1
  267. package/dist/core/chart/live/index.js +1 -0
  268. package/dist/core/chart/live/index.js.map +1 -1
  269. package/dist/core/chart/ohlcv-integrity-messages.d.ts +5 -0
  270. package/dist/core/chart/ohlcv-integrity-messages.d.ts.map +1 -0
  271. package/dist/core/chart/ohlcv-integrity-messages.js +12 -0
  272. package/dist/core/chart/ohlcv-integrity-messages.js.map +1 -0
  273. package/dist/core/chart/ohlcv-integrity.d.ts +82 -0
  274. package/dist/core/chart/ohlcv-integrity.d.ts.map +1 -0
  275. package/dist/core/chart/ohlcv-integrity.js +266 -0
  276. package/dist/core/chart/ohlcv-integrity.js.map +1 -0
  277. package/dist/core/chart/ohlcv-session-store.d.ts +38 -0
  278. package/dist/core/chart/ohlcv-session-store.d.ts.map +1 -0
  279. package/dist/core/chart/ohlcv-session-store.js +107 -0
  280. package/dist/core/chart/ohlcv-session-store.js.map +1 -0
  281. package/dist/core/chart/ohlcv-window-expectations.d.ts +77 -0
  282. package/dist/core/chart/ohlcv-window-expectations.d.ts.map +1 -0
  283. package/dist/core/chart/ohlcv-window-expectations.js +426 -0
  284. package/dist/core/chart/ohlcv-window-expectations.js.map +1 -0
  285. package/dist/core/chart/ohlcv-window.d.ts +36 -0
  286. package/dist/core/chart/ohlcv-window.d.ts.map +1 -0
  287. package/dist/core/chart/ohlcv-window.js +238 -0
  288. package/dist/core/chart/ohlcv-window.js.map +1 -0
  289. package/dist/core/chart/overlay-schemas.d.ts +545 -0
  290. package/dist/core/chart/overlay-schemas.d.ts.map +1 -1
  291. package/dist/core/chart/overlay-schemas.js +116 -1
  292. package/dist/core/chart/overlay-schemas.js.map +1 -1
  293. package/dist/core/chart/overlays.d.ts.map +1 -1
  294. package/dist/core/chart/overlays.js +283 -11
  295. package/dist/core/chart/overlays.js.map +1 -1
  296. package/dist/core/chart/point-normalize.d.ts.map +1 -1
  297. package/dist/core/chart/point-normalize.js +21 -14
  298. package/dist/core/chart/point-normalize.js.map +1 -1
  299. package/dist/core/chart/prepare-core.d.ts.map +1 -1
  300. package/dist/core/chart/prepare-core.js +5 -1
  301. package/dist/core/chart/prepare-core.js.map +1 -1
  302. package/dist/core/chart/prepare-from-rows.d.ts +202 -1
  303. package/dist/core/chart/prepare-from-rows.d.ts.map +1 -1
  304. package/dist/core/chart/prepare-from-rows.js +81 -11
  305. package/dist/core/chart/prepare-from-rows.js.map +1 -1
  306. package/dist/core/chart/schemas.d.ts +686 -6
  307. package/dist/core/chart/schemas.d.ts.map +1 -1
  308. package/dist/core/chart/schemas.js +49 -6
  309. package/dist/core/chart/schemas.js.map +1 -1
  310. package/dist/core/chart-patterns/atr.d.ts +15 -0
  311. package/dist/core/chart-patterns/atr.d.ts.map +1 -0
  312. package/dist/core/chart-patterns/atr.js +57 -0
  313. package/dist/core/chart-patterns/atr.js.map +1 -0
  314. package/dist/core/chart-patterns/catalog.d.ts +7 -0
  315. package/dist/core/chart-patterns/catalog.d.ts.map +1 -0
  316. package/dist/core/chart-patterns/catalog.js +221 -0
  317. package/dist/core/chart-patterns/catalog.js.map +1 -0
  318. package/dist/core/chart-patterns/confidence.d.ts +12 -0
  319. package/dist/core/chart-patterns/confidence.d.ts.map +1 -0
  320. package/dist/core/chart-patterns/confidence.js +58 -0
  321. package/dist/core/chart-patterns/confidence.js.map +1 -0
  322. package/dist/core/chart-patterns/drawing-spec.d.ts +44 -0
  323. package/dist/core/chart-patterns/drawing-spec.d.ts.map +1 -0
  324. package/dist/core/chart-patterns/drawing-spec.js +425 -0
  325. package/dist/core/chart-patterns/drawing-spec.js.map +1 -0
  326. package/dist/core/chart-patterns/geometry-to-overlay.d.ts +34 -0
  327. package/dist/core/chart-patterns/geometry-to-overlay.d.ts.map +1 -0
  328. package/dist/core/chart-patterns/geometry-to-overlay.js +401 -0
  329. package/dist/core/chart-patterns/geometry-to-overlay.js.map +1 -0
  330. package/dist/core/chart-patterns/index.d.ts +13 -0
  331. package/dist/core/chart-patterns/index.d.ts.map +1 -0
  332. package/dist/core/chart-patterns/index.js +12 -0
  333. package/dist/core/chart-patterns/index.js.map +1 -0
  334. package/dist/core/chart-patterns/interpretation.d.ts +6 -0
  335. package/dist/core/chart-patterns/interpretation.d.ts.map +1 -0
  336. package/dist/core/chart-patterns/interpretation.js +49 -0
  337. package/dist/core/chart-patterns/interpretation.js.map +1 -0
  338. package/dist/core/chart-patterns/measured-move.d.ts +3 -0
  339. package/dist/core/chart-patterns/measured-move.d.ts.map +1 -0
  340. package/dist/core/chart-patterns/measured-move.js +196 -0
  341. package/dist/core/chart-patterns/measured-move.js.map +1 -0
  342. package/dist/core/chart-patterns/pattern-enrich.d.ts +4 -0
  343. package/dist/core/chart-patterns/pattern-enrich.d.ts.map +1 -0
  344. package/dist/core/chart-patterns/pattern-enrich.js +20 -0
  345. package/dist/core/chart-patterns/pattern-enrich.js.map +1 -0
  346. package/dist/core/chart-patterns/pattern-id-aliases.d.ts +3 -0
  347. package/dist/core/chart-patterns/pattern-id-aliases.d.ts.map +1 -0
  348. package/dist/core/chart-patterns/pattern-id-aliases.js +17 -0
  349. package/dist/core/chart-patterns/pattern-id-aliases.js.map +1 -0
  350. package/dist/core/chart-patterns/pattern-menu-summary.d.ts +21 -0
  351. package/dist/core/chart-patterns/pattern-menu-summary.d.ts.map +1 -0
  352. package/dist/core/chart-patterns/pattern-menu-summary.js +68 -0
  353. package/dist/core/chart-patterns/pattern-menu-summary.js.map +1 -0
  354. package/dist/core/chart-patterns/patterns/channel.d.ts +4 -0
  355. package/dist/core/chart-patterns/patterns/channel.d.ts.map +1 -0
  356. package/dist/core/chart-patterns/patterns/channel.js +137 -0
  357. package/dist/core/chart-patterns/patterns/channel.js.map +1 -0
  358. package/dist/core/chart-patterns/patterns/cup-and-handle.d.ts +4 -0
  359. package/dist/core/chart-patterns/patterns/cup-and-handle.d.ts.map +1 -0
  360. package/dist/core/chart-patterns/patterns/cup-and-handle.js +89 -0
  361. package/dist/core/chart-patterns/patterns/cup-and-handle.js.map +1 -0
  362. package/dist/core/chart-patterns/patterns/doubles.d.ts +4 -0
  363. package/dist/core/chart-patterns/patterns/doubles.d.ts.map +1 -0
  364. package/dist/core/chart-patterns/patterns/doubles.js +163 -0
  365. package/dist/core/chart-patterns/patterns/doubles.js.map +1 -0
  366. package/dist/core/chart-patterns/patterns/flag.d.ts +4 -0
  367. package/dist/core/chart-patterns/patterns/flag.d.ts.map +1 -0
  368. package/dist/core/chart-patterns/patterns/flag.js +64 -0
  369. package/dist/core/chart-patterns/patterns/flag.js.map +1 -0
  370. package/dist/core/chart-patterns/patterns/head-and-shoulders.d.ts +5 -0
  371. package/dist/core/chart-patterns/patterns/head-and-shoulders.d.ts.map +1 -0
  372. package/dist/core/chart-patterns/patterns/head-and-shoulders.js +69 -0
  373. package/dist/core/chart-patterns/patterns/head-and-shoulders.js.map +1 -0
  374. package/dist/core/chart-patterns/patterns/inverse-head-and-shoulders.d.ts +4 -0
  375. package/dist/core/chart-patterns/patterns/inverse-head-and-shoulders.d.ts.map +1 -0
  376. package/dist/core/chart-patterns/patterns/inverse-head-and-shoulders.js +66 -0
  377. package/dist/core/chart-patterns/patterns/inverse-head-and-shoulders.js.map +1 -0
  378. package/dist/core/chart-patterns/patterns/pennant.d.ts +4 -0
  379. package/dist/core/chart-patterns/patterns/pennant.d.ts.map +1 -0
  380. package/dist/core/chart-patterns/patterns/pennant.js +66 -0
  381. package/dist/core/chart-patterns/patterns/pennant.js.map +1 -0
  382. package/dist/core/chart-patterns/patterns/trendline-breakout.d.ts +10 -0
  383. package/dist/core/chart-patterns/patterns/trendline-breakout.d.ts.map +1 -0
  384. package/dist/core/chart-patterns/patterns/trendline-breakout.js +241 -0
  385. package/dist/core/chart-patterns/patterns/trendline-breakout.js.map +1 -0
  386. package/dist/core/chart-patterns/patterns/triangles.d.ts +4 -0
  387. package/dist/core/chart-patterns/patterns/triangles.d.ts.map +1 -0
  388. package/dist/core/chart-patterns/patterns/triangles.js +113 -0
  389. package/dist/core/chart-patterns/patterns/triangles.js.map +1 -0
  390. package/dist/core/chart-patterns/patterns/utils.d.ts +20 -0
  391. package/dist/core/chart-patterns/patterns/utils.d.ts.map +1 -0
  392. package/dist/core/chart-patterns/patterns/utils.js +60 -0
  393. package/dist/core/chart-patterns/patterns/utils.js.map +1 -0
  394. package/dist/core/chart-patterns/patterns/wedge.d.ts +4 -0
  395. package/dist/core/chart-patterns/patterns/wedge.d.ts.map +1 -0
  396. package/dist/core/chart-patterns/patterns/wedge.js +88 -0
  397. package/dist/core/chart-patterns/patterns/wedge.js.map +1 -0
  398. package/dist/core/chart-patterns/recommendation.d.ts +5 -0
  399. package/dist/core/chart-patterns/recommendation.d.ts.map +1 -0
  400. package/dist/core/chart-patterns/recommendation.js +84 -0
  401. package/dist/core/chart-patterns/recommendation.js.map +1 -0
  402. package/dist/core/chart-patterns/scan.d.ts +5 -0
  403. package/dist/core/chart-patterns/scan.d.ts.map +1 -0
  404. package/dist/core/chart-patterns/scan.js +121 -0
  405. package/dist/core/chart-patterns/scan.js.map +1 -0
  406. package/dist/core/chart-patterns/smoothing.d.ts +10 -0
  407. package/dist/core/chart-patterns/smoothing.d.ts.map +1 -0
  408. package/dist/core/chart-patterns/smoothing.js +45 -0
  409. package/dist/core/chart-patterns/smoothing.js.map +1 -0
  410. package/dist/core/chart-patterns/swings.d.ts +12 -0
  411. package/dist/core/chart-patterns/swings.d.ts.map +1 -0
  412. package/dist/core/chart-patterns/swings.js +135 -0
  413. package/dist/core/chart-patterns/swings.js.map +1 -0
  414. package/dist/core/chart-patterns/trade-setup.d.ts +2 -0
  415. package/dist/core/chart-patterns/trade-setup.d.ts.map +1 -0
  416. package/dist/core/chart-patterns/trade-setup.js +2 -0
  417. package/dist/core/chart-patterns/trade-setup.js.map +1 -0
  418. package/dist/core/chart-patterns/types.d.ts +225 -0
  419. package/dist/core/chart-patterns/types.d.ts.map +1 -0
  420. package/dist/core/chart-patterns/types.js +2 -0
  421. package/dist/core/chart-patterns/types.js.map +1 -0
  422. package/dist/core/chart-patterns/volume-confirmation.d.ts +13 -0
  423. package/dist/core/chart-patterns/volume-confirmation.d.ts.map +1 -0
  424. package/dist/core/chart-patterns/volume-confirmation.js +172 -0
  425. package/dist/core/chart-patterns/volume-confirmation.js.map +1 -0
  426. package/dist/core/coinmarketcap/api-key.d.ts +8 -0
  427. package/dist/core/coinmarketcap/api-key.d.ts.map +1 -0
  428. package/dist/core/coinmarketcap/api-key.js +30 -0
  429. package/dist/core/coinmarketcap/api-key.js.map +1 -0
  430. package/dist/core/coinmarketcap/client.d.ts +8 -0
  431. package/dist/core/coinmarketcap/client.d.ts.map +1 -0
  432. package/dist/core/coinmarketcap/client.js +103 -0
  433. package/dist/core/coinmarketcap/client.js.map +1 -0
  434. package/dist/core/coinmarketcap/index.d.ts +7 -0
  435. package/dist/core/coinmarketcap/index.d.ts.map +1 -0
  436. package/dist/core/coinmarketcap/index.js +7 -0
  437. package/dist/core/coinmarketcap/index.js.map +1 -0
  438. package/dist/core/coinmarketcap/kline-fallback.d.ts +11 -0
  439. package/dist/core/coinmarketcap/kline-fallback.d.ts.map +1 -0
  440. package/dist/core/coinmarketcap/kline-fallback.js +35 -0
  441. package/dist/core/coinmarketcap/kline-fallback.js.map +1 -0
  442. package/dist/core/coinmarketcap/kline-window.d.ts +26 -0
  443. package/dist/core/coinmarketcap/kline-window.d.ts.map +1 -0
  444. package/dist/core/coinmarketcap/kline-window.js +75 -0
  445. package/dist/core/coinmarketcap/kline-window.js.map +1 -0
  446. package/dist/core/coinmarketcap/kline.d.ts +13 -0
  447. package/dist/core/coinmarketcap/kline.d.ts.map +1 -0
  448. package/dist/core/coinmarketcap/kline.js +49 -0
  449. package/dist/core/coinmarketcap/kline.js.map +1 -0
  450. package/dist/core/coinmarketcap/mcp-server-choice.d.ts +24 -0
  451. package/dist/core/coinmarketcap/mcp-server-choice.d.ts.map +1 -0
  452. package/dist/core/coinmarketcap/mcp-server-choice.js +77 -0
  453. package/dist/core/coinmarketcap/mcp-server-choice.js.map +1 -0
  454. package/dist/core/coinmarketcap/public-api.d.ts +24 -0
  455. package/dist/core/coinmarketcap/public-api.d.ts.map +1 -0
  456. package/dist/core/coinmarketcap/public-api.js +277 -0
  457. package/dist/core/coinmarketcap/public-api.js.map +1 -0
  458. package/dist/core/coinmarketcap/schemas.d.ts +231 -0
  459. package/dist/core/coinmarketcap/schemas.d.ts.map +1 -0
  460. package/dist/core/coinmarketcap/schemas.js +153 -0
  461. package/dist/core/coinmarketcap/schemas.js.map +1 -0
  462. package/dist/core/mpc/mpa-fee-status.d.ts +2 -0
  463. package/dist/core/mpc/mpa-fee-status.d.ts.map +1 -1
  464. package/dist/core/mpc/mpa-fee-status.js +8 -1
  465. package/dist/core/mpc/mpa-fee-status.js.map +1 -1
  466. package/dist/core/node-info.d.ts +3 -1
  467. package/dist/core/node-info.d.ts.map +1 -1
  468. package/dist/core/node-info.js +37 -1
  469. package/dist/core/node-info.js.map +1 -1
  470. package/dist/index.d.ts +6 -4
  471. package/dist/index.d.ts.map +1 -1
  472. package/dist/index.js +6 -4
  473. package/dist/index.js.map +1 -1
  474. package/dist/mcp/agent-chart-data-access-gate.d.ts +5 -0
  475. package/dist/mcp/agent-chart-data-access-gate.d.ts.map +1 -0
  476. package/dist/mcp/agent-chart-data-access-gate.js +20 -0
  477. package/dist/mcp/agent-chart-data-access-gate.js.map +1 -0
  478. package/dist/mcp/agent-environment-variables.d.ts.map +1 -1
  479. package/dist/mcp/agent-environment-variables.js +13 -2
  480. package/dist/mcp/agent-environment-variables.js.map +1 -1
  481. package/dist/mcp/agent-host-catalog.d.ts +27 -0
  482. package/dist/mcp/agent-host-catalog.d.ts.map +1 -0
  483. package/dist/mcp/agent-host-catalog.js +88 -0
  484. package/dist/mcp/agent-host-catalog.js.map +1 -0
  485. package/dist/mcp/agent-mcp-servers.d.ts.map +1 -1
  486. package/dist/mcp/agent-mcp-servers.js +32 -3
  487. package/dist/mcp/agent-mcp-servers.js.map +1 -1
  488. package/dist/mcp/agent-skills.d.ts.map +1 -1
  489. package/dist/mcp/agent-skills.js +13 -1
  490. package/dist/mcp/agent-skills.js.map +1 -1
  491. package/dist/mcp/chart.d.ts.map +1 -1
  492. package/dist/mcp/chart.js +282 -25
  493. package/dist/mcp/chart.js.map +1 -1
  494. package/dist/mcp/coinmarketcap-public/register.d.ts +6 -0
  495. package/dist/mcp/coinmarketcap-public/register.d.ts.map +1 -0
  496. package/dist/mcp/coinmarketcap-public/register.js +99 -0
  497. package/dist/mcp/coinmarketcap-public/register.js.map +1 -0
  498. package/dist/mcp/deferred/discovery-tools.d.ts +6 -0
  499. package/dist/mcp/deferred/discovery-tools.d.ts.map +1 -0
  500. package/dist/mcp/deferred/discovery-tools.js +138 -0
  501. package/dist/mcp/deferred/discovery-tools.js.map +1 -0
  502. package/dist/mcp/deferred/optional-endpoint-groups.d.ts +12 -0
  503. package/dist/mcp/deferred/optional-endpoint-groups.d.ts.map +1 -0
  504. package/dist/mcp/deferred/optional-endpoint-groups.js +51 -0
  505. package/dist/mcp/deferred/optional-endpoint-groups.js.map +1 -0
  506. package/dist/mcp/deferred/session.d.ts +56 -0
  507. package/dist/mcp/deferred/session.d.ts.map +1 -0
  508. package/dist/mcp/deferred/session.js +242 -0
  509. package/dist/mcp/deferred/session.js.map +1 -0
  510. package/dist/mcp/deferred/tool-group-map.d.ts +23 -0
  511. package/dist/mcp/deferred/tool-group-map.d.ts.map +1 -0
  512. package/dist/mcp/deferred/tool-group-map.js +317 -0
  513. package/dist/mcp/deferred/tool-group-map.js.map +1 -0
  514. package/dist/mcp/defi/context.d.ts +2 -0
  515. package/dist/mcp/defi/context.d.ts.map +1 -1
  516. package/dist/mcp/defi/defi-protocol-fetch-meta.d.ts +30 -0
  517. package/dist/mcp/defi/defi-protocol-fetch-meta.d.ts.map +1 -0
  518. package/dist/mcp/defi/defi-protocol-fetch-meta.js +76 -0
  519. package/dist/mcp/defi/defi-protocol-fetch-meta.js.map +1 -0
  520. package/dist/mcp/defi/discovery.d.ts +2 -1
  521. package/dist/mcp/defi/discovery.d.ts.map +1 -1
  522. package/dist/mcp/defi/discovery.js +46 -6
  523. package/dist/mcp/defi/discovery.js.map +1 -1
  524. package/dist/mcp/defi/handler.d.ts.map +1 -1
  525. package/dist/mcp/defi/handler.js +6 -3
  526. package/dist/mcp/defi/handler.js.map +1 -1
  527. package/dist/mcp/defi/input-adapter.d.ts +6 -0
  528. package/dist/mcp/defi/input-adapter.d.ts.map +1 -1
  529. package/dist/mcp/defi/input-adapter.js +29 -12
  530. package/dist/mcp/defi/input-adapter.js.map +1 -1
  531. package/dist/mcp/defi/ohlcv-chart-workflow.d.ts +5 -1
  532. package/dist/mcp/defi/ohlcv-chart-workflow.d.ts.map +1 -1
  533. package/dist/mcp/defi/ohlcv-chart-workflow.js +28 -6
  534. package/dist/mcp/defi/ohlcv-chart-workflow.js.map +1 -1
  535. package/dist/mcp/defi/register-protocol-tools.d.ts +2 -1
  536. package/dist/mcp/defi/register-protocol-tools.d.ts.map +1 -1
  537. package/dist/mcp/defi/register-protocol-tools.js +12 -3
  538. package/dist/mcp/defi/register-protocol-tools.js.map +1 -1
  539. package/dist/mcp/defi/trade-bridge.d.ts +2 -0
  540. package/dist/mcp/defi/trade-bridge.d.ts.map +1 -0
  541. package/dist/mcp/defi/trade-bridge.js +2 -0
  542. package/dist/mcp/defi/trade-bridge.js.map +1 -0
  543. package/dist/mcp/keygen.js +1 -1
  544. package/dist/mcp/keygen.js.map +1 -1
  545. package/dist/mcp/management-signer.d.ts.map +1 -1
  546. package/dist/mcp/management-signer.js +1 -1
  547. package/dist/mcp/management-signer.js.map +1 -1
  548. package/dist/mcp/node.d.ts.map +1 -1
  549. package/dist/mcp/node.js +7 -2
  550. package/dist/mcp/node.js.map +1 -1
  551. package/dist/mcp/ohlcv-session-context.d.ts +4 -0
  552. package/dist/mcp/ohlcv-session-context.d.ts.map +1 -0
  553. package/dist/mcp/ohlcv-session-context.js +13 -0
  554. package/dist/mcp/ohlcv-session-context.js.map +1 -0
  555. package/dist/mcp/ohlcv-session-wrapper.d.ts +8 -0
  556. package/dist/mcp/ohlcv-session-wrapper.d.ts.map +1 -0
  557. package/dist/mcp/ohlcv-session-wrapper.js +138 -0
  558. package/dist/mcp/ohlcv-session-wrapper.js.map +1 -0
  559. package/dist/mcp/register.d.ts +3 -1
  560. package/dist/mcp/register.d.ts.map +1 -1
  561. package/dist/mcp/register.js +24 -5
  562. package/dist/mcp/register.js.map +1 -1
  563. package/dist/mcp/resources/agent-cron-jobs.md +25 -0
  564. package/dist/mcp/resources/agent-mcp-servers.md +21 -0
  565. package/dist/mcp/resources/chart-analysis.md +368 -0
  566. package/dist/mcp/resources/chart.md +71 -24
  567. package/dist/mcp/resources/coinmarketcap-public.md +109 -0
  568. package/dist/mcp/resources/keygen.md +1 -1
  569. package/dist/mcp/resources/trade-defaults-skill.md +69 -0
  570. package/dist/mcp/server/http-transport.d.ts.map +1 -1
  571. package/dist/mcp/server/http-transport.js +9 -2
  572. package/dist/mcp/server/http-transport.js.map +1 -1
  573. package/dist/mcp/server/index.js +3 -0
  574. package/dist/mcp/server/index.js.map +1 -1
  575. package/dist/mcp/tool-utils.d.ts.map +1 -1
  576. package/dist/mcp/tool-utils.js +7 -1
  577. package/dist/mcp/tool-utils.js.map +1 -1
  578. package/dist/mcp/trade-tools.d.ts +7 -0
  579. package/dist/mcp/trade-tools.d.ts.map +1 -0
  580. package/dist/mcp/trade-tools.js +201 -0
  581. package/dist/mcp/trade-tools.js.map +1 -0
  582. package/dist/schemas/extended.d.ts +30 -0
  583. package/dist/schemas/extended.d.ts.map +1 -1
  584. package/dist/schemas/extended.js +40 -0
  585. package/dist/schemas/extended.js.map +1 -1
  586. package/package.json +4 -4
@@ -0,0 +1,92 @@
1
+ import { CALIBRATION_WEIGHTS } from './calibration-weights.js';
2
+ import { getPatternCatalogEntry } from './catalog.js';
3
+ function weightFor(id, baseWeight) {
4
+ return CALIBRATION_WEIGHTS[id] ?? baseWeight;
5
+ }
6
+ export function buildPatternRecommendation(hits) {
7
+ if (!hits.length) {
8
+ return {
9
+ recommendation: 'hold',
10
+ recommendationConfidence: 0.1,
11
+ rationale: 'No candlestick patterns detected on the focus bar. Standalone patterns are weak signals (~50–55% hit rate); combine with trend context.',
12
+ primaryPattern: null,
13
+ };
14
+ }
15
+ const weighted = hits.map(hit => {
16
+ const entry = getPatternCatalogEntry(hit.id);
17
+ const base = entry ? weightFor(hit.id, entry.baseWeight) : hit.confidence;
18
+ return { ...hit, score: base * (Math.abs(hit.signal) / 100) };
19
+ });
20
+ const primary = weighted.reduce((best, cur) => (cur.score > best.score ? cur : best));
21
+ let bullish = 0;
22
+ let bearish = 0;
23
+ let neutral = 0;
24
+ for (const hit of weighted) {
25
+ if (hit.direction === 'bullish') {
26
+ bullish += hit.score;
27
+ }
28
+ else if (hit.direction === 'bearish') {
29
+ bearish += hit.score;
30
+ }
31
+ else {
32
+ neutral += hit.score;
33
+ }
34
+ }
35
+ let recommendation = 'hold';
36
+ let recommendationConfidence = 0.2;
37
+ const directionalOnly = weighted.filter(h => h.direction !== 'neutral');
38
+ if (directionalOnly.length === 0) {
39
+ recommendation = 'hold';
40
+ recommendationConfidence = Math.min(0.35, neutral > 0 ? 0.3 : 0.15);
41
+ }
42
+ else if (bullish > bearish * 1.2) {
43
+ recommendation = 'buy';
44
+ recommendationConfidence = scoreToConfidence(bullish, bearish, directionalOnly.length);
45
+ }
46
+ else if (bearish > bullish * 1.2) {
47
+ recommendation = 'sell';
48
+ recommendationConfidence = scoreToConfidence(bearish, bullish, directionalOnly.length);
49
+ }
50
+ else {
51
+ recommendation = 'hold';
52
+ recommendationConfidence = Math.min(0.4, Math.max(bullish, bearish));
53
+ }
54
+ const primaryPattern = {
55
+ id: primary.id,
56
+ name: primary.name,
57
+ description: primary.description,
58
+ };
59
+ const directionWord = recommendation === 'buy' ? 'bullish' : recommendation === 'sell' ? 'bearish' : 'neutral/indecision';
60
+ const confLabel = recommendationConfidence >= 0.75
61
+ ? 'high'
62
+ : recommendationConfidence >= 0.5
63
+ ? 'moderate'
64
+ : 'low';
65
+ let rationale = `${primary.name} detected — ${primary.description} Overall ${directionWord} bias; ${confLabel} confidence.`;
66
+ if (weighted.length > 1) {
67
+ rationale += ` ${weighted.length} patterns matched on the focus bar.`;
68
+ }
69
+ if (recommendation === 'hold' && directionalOnly.length === 0) {
70
+ rationale =
71
+ `${primary.name} detected — ${primary.description} Indecision pattern; hold recommended with low confidence.`;
72
+ }
73
+ rationale +=
74
+ ' Standalone candlestick patterns are historically ~50–55% accurate; use as a filter with trend context.';
75
+ return {
76
+ recommendation,
77
+ recommendationConfidence: Math.round(recommendationConfidence * 1000) / 1000,
78
+ rationale,
79
+ primaryPattern,
80
+ };
81
+ }
82
+ function scoreToConfidence(leading, opposing, directionalCount) {
83
+ let confidence = Math.min(0.95, leading / (leading + opposing + 0.25));
84
+ if (leading >= 0.7) {
85
+ confidence = Math.max(confidence, 0.75);
86
+ }
87
+ if (directionalCount >= 2 && leading >= 0.5) {
88
+ confidence = Math.min(0.95, confidence + 0.1);
89
+ }
90
+ return confidence;
91
+ }
92
+ //# sourceMappingURL=recommendation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recommendation.js","sourceRoot":"","sources":["../../../src/core/candlestick-patterns/recommendation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAC,sBAAsB,EAAC,MAAM,cAAc,CAAC;AAGpD,SAAS,SAAS,CAAC,EAAa,EAAE,UAAkB;IACnD,OAAO,mBAAmB,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAkB;IAC5D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO;YACN,cAAc,EAAE,MAAM;YACtB,wBAAwB,EAAE,GAAG;YAC7B,SAAS,EACR,yIAAyI;YAC1I,cAAc,EAAE,IAAI;SACpB,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC/B,MAAM,KAAK,GAAG,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;QAC1E,OAAO,EAAC,GAAG,GAAG,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,EAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtF,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC;QACtB,CAAC;aAAM,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC;QACtB,CAAC;aAAM,CAAC;YACP,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC;QACtB,CAAC;IACF,CAAC;IAED,IAAI,cAAc,GAA4B,MAAM,CAAC;IACrD,IAAI,wBAAwB,GAAG,GAAG,CAAC;IAEnC,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IACxE,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,cAAc,GAAG,MAAM,CAAC;QACxB,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;SAAM,IAAI,OAAO,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC;QACpC,cAAc,GAAG,KAAK,CAAC;QACvB,wBAAwB,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACxF,CAAC;SAAM,IAAI,OAAO,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC;QACpC,cAAc,GAAG,MAAM,CAAC;QACxB,wBAAwB,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACxF,CAAC;SAAM,CAAC;QACP,cAAc,GAAG,MAAM,CAAC;QACxB,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,cAAc,GAAG;QACtB,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;KAChC,CAAC;IAEF,MAAM,aAAa,GAClB,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACrG,MAAM,SAAS,GACd,wBAAwB,IAAI,IAAI;QAC/B,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,wBAAwB,IAAI,GAAG;YAChC,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,KAAK,CAAC;IAEX,IAAI,SAAS,GAAG,GAAG,OAAO,CAAC,IAAI,eAAe,OAAO,CAAC,WAAW,YAAY,aAAa,UAAU,SAAS,cAAc,CAAC;IAC5H,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,SAAS,IAAI,IAAI,QAAQ,CAAC,MAAM,qCAAqC,CAAC;IACvE,CAAC;IACD,IAAI,cAAc,KAAK,MAAM,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/D,SAAS;YACR,GAAG,OAAO,CAAC,IAAI,eAAe,OAAO,CAAC,WAAW,4DAA4D,CAAC;IAChH,CAAC;IACD,SAAS;QACR,yGAAyG,CAAC;IAE3G,OAAO;QACN,cAAc;QACd,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,GAAG,IAAI;QAC5E,SAAS;QACT,cAAc;KACd,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe,EAAE,QAAgB,EAAE,gBAAwB;IACrF,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;IACvE,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;QACpB,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,gBAAgB,IAAI,CAAC,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;QAC7C,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,GAAG,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,UAAU,CAAC;AACnB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { OhlcBar, PatternHit, PatternId } from './types.js';
2
+ export declare function scanCandlestickPatterns(bars: OhlcBar[], options?: {
3
+ patternIds?: PatternId[];
4
+ barIndex?: number;
5
+ }): PatternHit[];
6
+ export declare function directionFromSignal(tradeBias: 'bullish' | 'bearish' | 'neutral' | 'signal', signal: number): 'bullish' | 'bearish' | 'neutral';
7
+ export declare function filterPatternIds(names?: string[]): PatternId[] | undefined;
8
+ //# sourceMappingURL=scan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../src/core/candlestick-patterns/scan.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAC,MAAM,YAAY,CAAC;AAE/D,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,OAAO,EAAE,EACf,OAAO,CAAC,EAAE;IAAC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAC,GACrD,UAAU,EAAE,CAyCd;AAED,wBAAgB,mBAAmB,CAClC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,EACvD,MAAM,EAAE,MAAM,GACZ,SAAS,GAAG,SAAS,GAAG,SAAS,CAiBnC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS,CAY1E"}
@@ -0,0 +1,70 @@
1
+ import { getPatternCatalogEntry, PATTERN_CATALOG, resolvePatternId } from './catalog.js';
2
+ import { DETECTORS } from './patterns/detect.js';
3
+ import { barsToSeries } from './candle-settings.js';
4
+ export function scanCandlestickPatterns(bars, options) {
5
+ if (!bars.length) {
6
+ return [];
7
+ }
8
+ const series = barsToSeries(bars);
9
+ const ids = options?.patternIds ??
10
+ PATTERN_CATALOG.map(e => e.id);
11
+ const targetIndex = options?.barIndex ?? bars.length - 1;
12
+ const hits = [];
13
+ for (const id of ids) {
14
+ const entry = getPatternCatalogEntry(id);
15
+ const detect = DETECTORS[id];
16
+ if (!entry || !detect) {
17
+ continue;
18
+ }
19
+ const signals = detect(series);
20
+ const signal = signals[targetIndex] ?? 0;
21
+ if (signal === 0) {
22
+ continue;
23
+ }
24
+ const direction = directionFromSignal(entry.tradeBias, signal);
25
+ const confidence = Math.min(0.95, entry.baseWeight * (Math.abs(signal) / 100));
26
+ hits.push({
27
+ id,
28
+ name: entry.name,
29
+ description: entry.description,
30
+ taLibName: entry.taLibName,
31
+ signal,
32
+ direction,
33
+ confidence,
34
+ barIndex: targetIndex,
35
+ });
36
+ }
37
+ return hits.sort((a, b) => b.confidence - a.confidence);
38
+ }
39
+ export function directionFromSignal(tradeBias, signal) {
40
+ if (tradeBias === 'bullish') {
41
+ return 'bullish';
42
+ }
43
+ if (tradeBias === 'bearish') {
44
+ return 'bearish';
45
+ }
46
+ if (tradeBias === 'neutral') {
47
+ return 'neutral';
48
+ }
49
+ if (signal > 0) {
50
+ return 'bullish';
51
+ }
52
+ if (signal < 0) {
53
+ return 'bearish';
54
+ }
55
+ return 'neutral';
56
+ }
57
+ export function filterPatternIds(names) {
58
+ if (!names?.length) {
59
+ return undefined;
60
+ }
61
+ const resolved = [];
62
+ for (const name of names) {
63
+ const id = resolvePatternId(name);
64
+ if (id) {
65
+ resolved.push(id);
66
+ }
67
+ }
68
+ return resolved.length ? resolved : undefined;
69
+ }
70
+ //# sourceMappingURL=scan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/core/candlestick-patterns/scan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { ChartTime } from '../chart/schemas.js';
2
+ export type OhlcBar = {
3
+ open: number;
4
+ high: number;
5
+ low: number;
6
+ close: number;
7
+ time?: ChartTime;
8
+ };
9
+ export type OhlcSeries = {
10
+ open: number[];
11
+ high: number[];
12
+ low: number[];
13
+ close: number[];
14
+ };
15
+ export type PatternSignal = -100 | -80 | 0 | 80 | 100;
16
+ export type TradeBias = 'bullish' | 'bearish' | 'neutral' | 'signal';
17
+ export type PatternId = 'doji' | 'spinning_top' | 'hammer' | 'hanging_man' | 'shooting_star' | 'inverted_hammer' | 'marubozu' | 'long_legged_doji' | 'dragonfly_doji' | 'gravestone_doji' | 'engulfing' | 'harami' | 'piercing' | 'dark_cloud_cover' | 'morning_star' | 'evening_star' | 'three_white_soldiers' | 'three_black_crows';
18
+ export type PatternCatalogEntry = {
19
+ id: PatternId;
20
+ name: string;
21
+ description: string;
22
+ taLibName: string;
23
+ tradeBias: TradeBias;
24
+ baseWeight: number;
25
+ lookback: number;
26
+ };
27
+ export type PatternHit = {
28
+ id: PatternId;
29
+ name: string;
30
+ description: string;
31
+ taLibName: string;
32
+ signal: number;
33
+ direction: 'bullish' | 'bearish' | 'neutral';
34
+ confidence: number;
35
+ barIndex: number;
36
+ };
37
+ export type PatternRecommendation = {
38
+ recommendation: 'buy' | 'sell' | 'hold';
39
+ recommendationConfidence: number;
40
+ rationale: string;
41
+ primaryPattern: {
42
+ id: PatternId;
43
+ name: string;
44
+ description: string;
45
+ } | null;
46
+ };
47
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/candlestick-patterns/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAEnD,MAAM,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;AAEtD,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAErE,MAAM,MAAM,SAAS,GAClB,MAAM,GACN,cAAc,GACd,QAAQ,GACR,aAAa,GACb,eAAe,GACf,iBAAiB,GACjB,UAAU,GACV,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,GACjB,WAAW,GACX,QAAQ,GACR,UAAU,GACV,kBAAkB,GAClB,cAAc,GACd,cAAc,GACd,sBAAsB,GACtB,mBAAmB,CAAC;AAEvB,MAAM,MAAM,mBAAmB,GAAG;IACjC,EAAE,EAAE,SAAS,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACxB,EAAE,EAAE,SAAS,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IACnC,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,wBAAwB,EAAE,MAAM,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE;QAAC,EAAE,EAAE,SAAS,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI,CAAC;CAC1E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/candlestick-patterns/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ /** Agent-facing analysis payload — omits heavy geometry; UI keeps full structuredContent. */
2
+ export declare function slimAnalysisOutputForAgent(data: {
3
+ analysis: Record<string, unknown>;
4
+ meta?: Record<string, unknown>;
5
+ }): Record<string, unknown>;
6
+ //# sourceMappingURL=analysis-agent-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analysis-agent-view.d.ts","sourceRoot":"","sources":["../../../../src/core/chart/analysis/analysis-agent-view.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAChD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkP1B"}
@@ -0,0 +1,224 @@
1
+ /** Agent-facing analysis payload — omits heavy geometry; UI keeps full structuredContent. */
2
+ export function slimAnalysisOutputForAgent(data) {
3
+ const analysis = data.analysis;
4
+ const patternMenu = Array.isArray(analysis.patternMenu)
5
+ ? analysis.patternMenu.map(entry => ({
6
+ index: entry.index,
7
+ patternNumber: typeof entry.index === 'number' ? entry.index + 1 : undefined,
8
+ id: entry.id,
9
+ name: entry.name,
10
+ confidence: entry.confidence,
11
+ classification: entry.classification,
12
+ drawable: entry.drawable,
13
+ isPrimary: entry.isPrimary,
14
+ isHighestConfidence: entry.isHighestConfidence,
15
+ barSpan: entry.barSpan,
16
+ keyLevels: entry.keyLevels,
17
+ measuredMove: entry.measuredMove,
18
+ }))
19
+ : undefined;
20
+ const trendLineMenu = Array.isArray(analysis.trendLineMenu)
21
+ ? analysis.trendLineMenu.map(entry => ({
22
+ index: entry.index,
23
+ trendLineNumber: entry.trendLineNumber,
24
+ kind: entry.kind,
25
+ score: entry.score,
26
+ touchCount: entry.touchCount,
27
+ isPrimary: entry.isPrimary,
28
+ barSpan: entry.barSpan,
29
+ anchors: entry.anchors,
30
+ }))
31
+ : undefined;
32
+ const levelMenu = Array.isArray(analysis.levelMenu)
33
+ ? analysis.levelMenu.map(entry => ({
34
+ index: entry.index,
35
+ levelNumber: entry.levelNumber,
36
+ kind: entry.kind,
37
+ swingKind: entry.swingKind,
38
+ isRoleFlipped: entry.isRoleFlipped,
39
+ price: entry.price,
40
+ strength: entry.strength,
41
+ touchCount: entry.touchCount,
42
+ distancePct: entry.distancePct,
43
+ isPrimary: entry.isPrimary,
44
+ isNearestSupport: entry.isNearestSupport,
45
+ isNearestResistance: entry.isNearestResistance,
46
+ }))
47
+ : undefined;
48
+ const fibPairs = Array.isArray(analysis.fibPairs)
49
+ ? analysis.fibPairs.map(entry => ({
50
+ pairNumber: entry.pairNumber,
51
+ pairKind: entry.pairKind,
52
+ concentricRank: entry.concentricRank,
53
+ lowLevelNumber: entry.lowLevelNumber,
54
+ highLevelNumber: entry.highLevelNumber,
55
+ low: entry.low,
56
+ high: entry.high,
57
+ closeAboveMid: entry.closeAboveMid,
58
+ chartFibTrend: entry.chartFibTrend,
59
+ retracement618: entry.retracement618,
60
+ isPrimaryTradePair: entry.isPrimaryTradePair,
61
+ }))
62
+ : undefined;
63
+ const primaryTrendRow = trendLineMenu?.find(entry => entry.isPrimary === true);
64
+ const primaryLevelRow = levelMenu?.find(entry => entry.isPrimary === true);
65
+ const primaryMenuRow = patternMenu?.find(entry => entry.isPrimary === true);
66
+ const highestMenuRow = patternMenu?.find(entry => entry.isHighestConfidence === true);
67
+ const trendSelectionHint = primaryTrendRow?.trendLineNumber != null
68
+ ? `Primary (highest score)=menu #${primaryTrendRow.trendLineNumber}. Use apply_trend_line_drawings with trendLineNumber.`
69
+ : undefined;
70
+ const primaryFibPair = analysis.primaryFibPair;
71
+ const levelSelectionHint = primaryLevelRow?.levelNumber != null && !primaryFibPair
72
+ ? `Primary (highest strength)=menu #${primaryLevelRow.levelNumber}. Use apply_key_level_drawings with levelNumber (horizontal line only).`
73
+ : undefined;
74
+ const fibSelectionHint = primaryFibPair?.pairNumber != null
75
+ ? `Outer Fib range=pair #${primaryFibPair.pairNumber} (levels #${primaryFibPair.lowLevelNumber}–#${primaryFibPair.highLevelNumber}). Use apply_key_fib_drawings with fibPairNumber.`
76
+ : undefined;
77
+ const selectionHint = primaryMenuRow?.patternNumber != null
78
+ ? `Primary (most recent)=menu #${primaryMenuRow.patternNumber}${highestMenuRow?.patternNumber != null &&
79
+ highestMenuRow.patternNumber !== primaryMenuRow.patternNumber
80
+ ? `; highest confidence=menu #${highestMenuRow.patternNumber}`
81
+ : highestMenuRow?.patternNumber != null
82
+ ? ' (same row as primary)'
83
+ : ''}. Default apply without patternNumber uses primary (selectionMode=primary).`
84
+ : undefined;
85
+ const slimPattern = (hit) => {
86
+ if (!hit || typeof hit !== 'object') {
87
+ return hit ?? null;
88
+ }
89
+ const rawBarSpan = hit.barSpan;
90
+ const barSpan = rawBarSpan &&
91
+ typeof rawBarSpan.fromTimeSec === 'number' &&
92
+ typeof rawBarSpan.toTimeSec === 'number'
93
+ ? {
94
+ fromTimeSec: rawBarSpan.fromTimeSec,
95
+ toTimeSec: rawBarSpan.toTimeSec,
96
+ barCount: typeof rawBarSpan.barCount === 'number'
97
+ ? rawBarSpan.barCount
98
+ : typeof rawBarSpan.fromIndex === 'number' &&
99
+ typeof rawBarSpan.toIndex === 'number'
100
+ ? rawBarSpan.toIndex - rawBarSpan.fromIndex + 1
101
+ : undefined,
102
+ }
103
+ : undefined;
104
+ return {
105
+ id: hit.id,
106
+ name: hit.name,
107
+ classification: hit.classification,
108
+ confidence: hit.confidence,
109
+ interpretation: hit.interpretation,
110
+ completionState: hit.completionState,
111
+ drawable: hit.drawable,
112
+ ...(barSpan?.barCount != null ? { barSpan } : {}),
113
+ ...(Array.isArray(hit.keyLevels) ? { keyLevels: hit.keyLevels } : {}),
114
+ ...(hit.measuredMove && typeof hit.measuredMove === 'object'
115
+ ? { measuredMove: hit.measuredMove }
116
+ : {}),
117
+ };
118
+ };
119
+ return {
120
+ agentView: 'slim',
121
+ analysis: {
122
+ summary: analysis.summary,
123
+ classification: analysis.classification,
124
+ interpretation: analysis.interpretation,
125
+ rationale: analysis.rationale,
126
+ primaryPattern: slimPattern(analysis.primaryPattern),
127
+ highestConfidencePattern: slimPattern(analysis.highestConfidencePattern),
128
+ ...(patternMenu ? { patternMenu } : {}),
129
+ pattern: slimPattern(analysis.pattern),
130
+ patternCount: Array.isArray(analysis.patterns) ? analysis.patterns.length : 0,
131
+ ...(selectionHint ? { selectionHint } : {}),
132
+ ...(patternMenu?.length ?
133
+ {
134
+ presentationHint: 'When presenting patternMenu to the operator, each row MUST include barSpan UTC window (from→to) and every keyLevels entry (label @ price, time when set). Copy from patternMenu below — do not omit dates/times.',
135
+ }
136
+ : {}),
137
+ ...(analysis.chartPatternTradeSetup && typeof analysis.chartPatternTradeSetup === 'object'
138
+ ? { chartPatternTradeSetup: analysis.chartPatternTradeSetup }
139
+ : {}),
140
+ ...(analysis.candlestickTradeSetup && typeof analysis.candlestickTradeSetup === 'object'
141
+ ? { candlestickTradeSetup: analysis.candlestickTradeSetup }
142
+ : {}),
143
+ ...(analysis.candlestickHighlight && typeof analysis.candlestickHighlight === 'object'
144
+ ? { candlestickHighlight: analysis.candlestickHighlight }
145
+ : {}),
146
+ ...(analysis.keyLevelsTradeSetup && typeof analysis.keyLevelsTradeSetup === 'object'
147
+ ? { keyLevelsTradeSetup: analysis.keyLevelsTradeSetup }
148
+ : {}),
149
+ ...(analysis.keyLevelFibTradeSetup && typeof analysis.keyLevelFibTradeSetup === 'object'
150
+ ? { keyLevelFibTradeSetup: analysis.keyLevelFibTradeSetup }
151
+ : {}),
152
+ ...(analysis.primaryFibPair && typeof analysis.primaryFibPair === 'object'
153
+ ? { primaryFibPair: analysis.primaryFibPair }
154
+ : {}),
155
+ ...(analysis.momentumTradeSetup && typeof analysis.momentumTradeSetup === 'object'
156
+ ? { momentumTradeSetup: analysis.momentumTradeSetup }
157
+ : {}),
158
+ ...(analysis.momentumHighlight && typeof analysis.momentumHighlight === 'object'
159
+ ? { momentumHighlight: analysis.momentumHighlight }
160
+ : {}),
161
+ ...(analysis.rangeVolatilityTradeSetup && typeof analysis.rangeVolatilityTradeSetup === 'object'
162
+ ? { rangeVolatilityTradeSetup: analysis.rangeVolatilityTradeSetup }
163
+ : {}),
164
+ ...(analysis.rangeVolatilityHighlight && typeof analysis.rangeVolatilityHighlight === 'object'
165
+ ? { rangeVolatilityHighlight: analysis.rangeVolatilityHighlight }
166
+ : {}),
167
+ ...(analysis.rangeHigh != null && analysis.rangeLow != null
168
+ ? {
169
+ rangeHigh: analysis.rangeHigh,
170
+ rangeLow: analysis.rangeLow,
171
+ rangePct: analysis.rangePct,
172
+ atr: analysis.atr,
173
+ atrPct: analysis.atrPct,
174
+ compression: analysis.compression,
175
+ recentRangePct: analysis.recentRangePct,
176
+ priorRangePct: analysis.priorRangePct,
177
+ ...(analysis.fibRange && typeof analysis.fibRange === 'object'
178
+ ? { fibRange: analysis.fibRange }
179
+ : {}),
180
+ }
181
+ : {}),
182
+ ...(analysis.trendStructureTradeSetup && typeof analysis.trendStructureTradeSetup === 'object'
183
+ ? { trendStructureTradeSetup: analysis.trendStructureTradeSetup }
184
+ : {}),
185
+ bias: analysis.bias,
186
+ structure: analysis.structure,
187
+ swingHigh: analysis.swingHigh,
188
+ swingLow: analysis.swingLow,
189
+ phases: analysis.phases,
190
+ ...(trendLineMenu ? { trendLineMenu } : {}),
191
+ ...(levelMenu ? { levelMenu } : {}),
192
+ ...(fibPairs ? { fibPairs } : {}),
193
+ ...(trendSelectionHint ? { trendSelectionHint } : {}),
194
+ ...(levelSelectionHint ? { levelSelectionHint } : {}),
195
+ ...(fibSelectionHint ? { fibSelectionHint } : {}),
196
+ ...(trendLineMenu?.length ?
197
+ {
198
+ trendPresentationHint: 'When presenting trendLineMenu, each row MUST include barSpan UTC window, touchCount, score, and anchor prices. Use Draw trend buttons or apply_trend_line_drawings.',
199
+ }
200
+ : {}),
201
+ ...(levelMenu?.length && !fibPairs?.length ?
202
+ {
203
+ levelPresentationHint: 'When presenting levelMenu, each row MUST include positional kind (Support/Resistance or Broken …), swingKind when flipped, price, strength, touchCount, distancePct, and nearest badges. Draw level applies horizontal line only (no Fib).',
204
+ }
205
+ : {}),
206
+ ...(fibPairs?.length ?
207
+ {
208
+ fibPresentationHint: 'When presenting fibPairs, include pairNumber, leg level numbers, 0.618 retrace, and concentric rank. Draw with apply_key_fib_drawings and fibPairNumber (never level-only apply). Analysis does not update the chart.',
209
+ }
210
+ : {}),
211
+ applyHint: patternMenu?.length ?
212
+ 'Use the numbered Draw pattern buttons in the chat UI (structured chart.pattern.apply action). Bare "1" also works. Never claim the chart updated without apply_chart_pattern_drawings.'
213
+ : trendLineMenu?.length ?
214
+ 'Use the numbered Draw trend buttons in the chat UI (structured chart.trend.apply action) or apply_trend_line_drawings with trendLineNumber. Never claim the chart updated without apply_trend_line_drawings.'
215
+ : fibPairs?.length ?
216
+ 'Use apply_key_fib_drawings with fibPairNumber from fibPairs when the operator asks to draw. Never call apply on analyze alone — analysis does not update the chart.'
217
+ : levelMenu?.length ?
218
+ 'Use the numbered Draw level buttons in the chat UI (structured chart.key.apply action) or apply_key_level_drawings with levelNumber (line only). Never claim the chart updated without apply_key_level_drawings.'
219
+ : undefined,
220
+ },
221
+ ...(data.meta ? { meta: data.meta } : {}),
222
+ };
223
+ }
224
+ //# sourceMappingURL=analysis-agent-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analysis-agent-view.js","sourceRoot":"","sources":["../../../../src/core/chart/analysis/analysis-agent-view.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export type ChartAnalysisDataKind = 'ohlcv' | 'time_series';
2
+ export type ChartAnalysisCatalog = {
3
+ analyses: Array<{
4
+ id: string;
5
+ label: string;
6
+ description: string;
7
+ analyzeTool: string;
8
+ dataKind: ChartAnalysisDataKind;
9
+ optionalSkill?: string;
10
+ relatedDrawing?: {
11
+ calculateTool: string;
12
+ applyField: string;
13
+ };
14
+ }>;
15
+ exampleUserPhrases: string[];
16
+ };
17
+ export declare function listChartAnalysisOptions(): ChartAnalysisCatalog;
18
+ //# sourceMappingURL=analysis-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analysis-catalog.d.ts","sourceRoot":"","sources":["../../../../src/core/chart/analysis/analysis-catalog.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,aAAa,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAAG;IAClC,QAAQ,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,qBAAqB,CAAC;QAChC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAC,CAAC;KAC7D,CAAC,CAAC;IACH,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,wBAAgB,wBAAwB,IAAI,oBAAoB,CA8G/D"}
@@ -0,0 +1,108 @@
1
+ export function listChartAnalysisOptions() {
2
+ return {
3
+ analyses: [
4
+ {
5
+ id: 'trend_structure',
6
+ label: 'Trend structure',
7
+ description: 'Swing phases, higher-high / lower-low structure, bias, key swings',
8
+ analyzeTool: 'analyze_trend_structure',
9
+ dataKind: 'ohlcv',
10
+ optionalSkill: 'chart-analysis-trend',
11
+ relatedDrawing: { calculateTool: 'calculate_trend_lines', applyField: 'trendLines' },
12
+ },
13
+ {
14
+ id: 'key_levels',
15
+ label: 'Key levels (level to level)',
16
+ description: 'Closest support below and resistance above last close; bounce/rejection trade (no Fib targets)',
17
+ analyzeTool: 'analyze_key_levels',
18
+ dataKind: 'ohlcv',
19
+ optionalSkill: 'chart-analysis-levels',
20
+ relatedDrawing: { calculateTool: 'calculate_key_levels', applyField: 'horizontalLevels' },
21
+ },
22
+ {
23
+ id: 'key_level_fibonacci',
24
+ label: 'Key level Fibonacci',
25
+ description: 'Outer concentric swing range; 0.618 retracement entry and range-leg targets',
26
+ analyzeTool: 'analyze_key_level_fibonacci',
27
+ dataKind: 'ohlcv',
28
+ optionalSkill: 'chart-analysis-levels',
29
+ relatedDrawing: { calculateTool: 'calculate_key_levels', applyField: 'horizontalLevels' },
30
+ },
31
+ {
32
+ id: 'momentum',
33
+ label: 'Momentum',
34
+ description: 'RSI and MACD readings, overbought/oversold flags, crossover state',
35
+ analyzeTool: 'analyze_momentum',
36
+ dataKind: 'ohlcv',
37
+ optionalSkill: 'chart-analysis-momentum',
38
+ },
39
+ {
40
+ id: 'range_volatility',
41
+ label: 'Range / volatility',
42
+ description: 'Price range bounds, compression vs expansion, ATR-style stats',
43
+ analyzeTool: 'analyze_range_volatility',
44
+ dataKind: 'ohlcv',
45
+ optionalSkill: 'chart-analysis-range',
46
+ },
47
+ {
48
+ id: 'candlestick_patterns',
49
+ label: 'Candlestick patterns',
50
+ description: 'TA-Lib-style pattern recognition (doji, hammer, engulfing, etc.) with buy/sell/hold and confidence',
51
+ analyzeTool: 'analyze_candlestick_patterns',
52
+ dataKind: 'ohlcv',
53
+ optionalSkill: 'chart-analysis-patterns',
54
+ },
55
+ {
56
+ id: 'chart_patterns',
57
+ label: 'Classic chart patterns',
58
+ description: 'Multi-bar geometry patterns (H&S, doubles, triangles, cup & handle, etc.) with 5-level classification and interpretation',
59
+ analyzeTool: 'analyze_chart_patterns',
60
+ dataKind: 'ohlcv',
61
+ optionalSkill: 'chart-analysis-classic-patterns',
62
+ relatedDrawing: {
63
+ calculateTool: 'calculate_chart_pattern_drawings',
64
+ applyField: 'patternOverlay',
65
+ },
66
+ },
67
+ {
68
+ id: 'time_series_trend',
69
+ label: 'Time-series trend',
70
+ description: 'Direction bias, slope, and value peaks/troughs on line-only metrics',
71
+ analyzeTool: 'analyze_time_series_trend',
72
+ dataKind: 'time_series',
73
+ optionalSkill: 'chart-analysis-time-series',
74
+ },
75
+ {
76
+ id: 'time_series_momentum',
77
+ label: 'Time-series momentum',
78
+ description: 'RSI and rate-of-change on line-only metrics (TVL, fees, index levels)',
79
+ analyzeTool: 'analyze_time_series_momentum',
80
+ dataKind: 'time_series',
81
+ optionalSkill: 'chart-analysis-time-series',
82
+ },
83
+ {
84
+ id: 'time_series_stats',
85
+ label: 'Time-series stats',
86
+ description: 'Min/max/mean, period change %, return volatility, compression',
87
+ analyzeTool: 'analyze_time_series_stats',
88
+ dataKind: 'time_series',
89
+ optionalSkill: 'chart-analysis-time-series',
90
+ },
91
+ ],
92
+ exampleUserPhrases: [
93
+ 'interpret this chart',
94
+ 'analyze ETH',
95
+ 'what does the price action mean',
96
+ 'trend analysis',
97
+ 'run momentum analysis',
98
+ 'candlestick patterns',
99
+ 'hammer or doji on this chart',
100
+ 'chart patterns',
101
+ 'head and shoulders',
102
+ 'cup and handle',
103
+ 'analyze TVL trend',
104
+ 'which analysis can you do',
105
+ ],
106
+ };
107
+ }
108
+ //# sourceMappingURL=analysis-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analysis-catalog.js","sourceRoot":"","sources":["../../../../src/core/chart/analysis/analysis-catalog.ts"],"names":[],"mappings":"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"}