@continuumdao/continuum-node-sdk 1.3.28 → 1.3.30

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 (215) hide show
  1. package/dist/agent-host-catalog.json +2 -0
  2. package/dist/core/chart/analysis/analysis-agent-view.d.ts.map +1 -1
  3. package/dist/core/chart/analysis/analysis-agent-view.js +34 -0
  4. package/dist/core/chart/analysis/analysis-agent-view.js.map +1 -1
  5. package/dist/core/chart/analysis/analysis-catalog.d.ts.map +1 -1
  6. package/dist/core/chart/analysis/analysis-catalog.js +16 -0
  7. package/dist/core/chart/analysis/analysis-catalog.js.map +1 -1
  8. package/dist/core/chart/analysis/analyze-tools.d.ts +47 -0
  9. package/dist/core/chart/analysis/analyze-tools.d.ts.map +1 -1
  10. package/dist/core/chart/analysis/analyze-tools.js +28 -9
  11. package/dist/core/chart/analysis/analyze-tools.js.map +1 -1
  12. package/dist/core/chart/analysis/bollinger-analyze-tools.d.ts +101 -0
  13. package/dist/core/chart/analysis/bollinger-analyze-tools.d.ts.map +1 -0
  14. package/dist/core/chart/analysis/bollinger-analyze-tools.js +289 -0
  15. package/dist/core/chart/analysis/bollinger-analyze-tools.js.map +1 -0
  16. package/dist/core/chart/analysis/bollinger-highlight.d.ts +29 -0
  17. package/dist/core/chart/analysis/bollinger-highlight.d.ts.map +1 -0
  18. package/dist/core/chart/analysis/bollinger-highlight.js +39 -0
  19. package/dist/core/chart/analysis/bollinger-highlight.js.map +1 -0
  20. package/dist/core/chart/analysis/candlestick-patterns-tools.d.ts +2 -0
  21. package/dist/core/chart/analysis/candlestick-patterns-tools.d.ts.map +1 -1
  22. package/dist/core/chart/analysis/candlestick-patterns-tools.js +16 -2
  23. package/dist/core/chart/analysis/candlestick-patterns-tools.js.map +1 -1
  24. package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts +1 -0
  25. package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts.map +1 -1
  26. package/dist/core/chart/analysis/chart-patterns-tools.d.ts +2 -0
  27. package/dist/core/chart/analysis/chart-patterns-tools.d.ts.map +1 -1
  28. package/dist/core/chart/analysis/chart-patterns-tools.js +2 -0
  29. package/dist/core/chart/analysis/chart-patterns-tools.js.map +1 -1
  30. package/dist/core/chart/analysis/key-fib-drawings-tools.d.ts +1 -0
  31. package/dist/core/chart/analysis/key-fib-drawings-tools.d.ts.map +1 -1
  32. package/dist/core/chart/analysis/key-fib-drawings-tools.js +48 -3
  33. package/dist/core/chart/analysis/key-fib-drawings-tools.js.map +1 -1
  34. package/dist/core/chart/analysis/key-level-drawings-tools.d.ts.map +1 -1
  35. package/dist/core/chart/analysis/key-level-drawings-tools.js +12 -1
  36. package/dist/core/chart/analysis/key-level-drawings-tools.js.map +1 -1
  37. package/dist/core/chart/analysis/moving-averages-analyze-tools.d.ts +116 -0
  38. package/dist/core/chart/analysis/moving-averages-analyze-tools.d.ts.map +1 -0
  39. package/dist/core/chart/analysis/moving-averages-analyze-tools.js +205 -0
  40. package/dist/core/chart/analysis/moving-averages-analyze-tools.js.map +1 -0
  41. package/dist/core/chart/analysis/moving-averages-highlight.d.ts +30 -0
  42. package/dist/core/chart/analysis/moving-averages-highlight.d.ts.map +1 -0
  43. package/dist/core/chart/analysis/moving-averages-highlight.js +77 -0
  44. package/dist/core/chart/analysis/moving-averages-highlight.js.map +1 -0
  45. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.d.ts +77 -0
  46. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.d.ts.map +1 -0
  47. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.js +163 -0
  48. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.js.map +1 -0
  49. package/dist/core/chart/analysis/trade-setups/build-trade-uniswap.d.ts.map +1 -1
  50. package/dist/core/chart/analysis/trade-setups/build-trade-uniswap.js +1 -0
  51. package/dist/core/chart/analysis/trade-setups/build-trade-uniswap.js.map +1 -1
  52. package/dist/core/chart/analysis/trade-setups/build-trade.d.ts +4 -1
  53. package/dist/core/chart/analysis/trade-setups/build-trade.d.ts.map +1 -1
  54. package/dist/core/chart/analysis/trade-setups/build-trade.js +36 -12
  55. package/dist/core/chart/analysis/trade-setups/build-trade.js.map +1 -1
  56. package/dist/core/chart/analysis/trade-setups/candlestick-trade-setup.d.ts +3 -3
  57. package/dist/core/chart/analysis/trade-setups/candlestick-trade-setup.d.ts.map +1 -1
  58. package/dist/core/chart/analysis/trade-setups/candlestick-trade-setup.js +12 -14
  59. package/dist/core/chart/analysis/trade-setups/candlestick-trade-setup.js.map +1 -1
  60. package/dist/core/chart/analysis/trade-setups/chart-data-purpose.d.ts +20 -0
  61. package/dist/core/chart/analysis/trade-setups/chart-data-purpose.d.ts.map +1 -0
  62. package/dist/core/chart/analysis/trade-setups/chart-data-purpose.js +207 -0
  63. package/dist/core/chart/analysis/trade-setups/chart-data-purpose.js.map +1 -0
  64. package/dist/core/chart/analysis/trade-setups/chart-pattern-trade-setup.d.ts +7 -1
  65. package/dist/core/chart/analysis/trade-setups/chart-pattern-trade-setup.d.ts.map +1 -1
  66. package/dist/core/chart/analysis/trade-setups/chart-pattern-trade-setup.js +24 -2
  67. package/dist/core/chart/analysis/trade-setups/chart-pattern-trade-setup.js.map +1 -1
  68. package/dist/core/chart/analysis/trade-setups/entry-proximity-atr.d.ts +3 -0
  69. package/dist/core/chart/analysis/trade-setups/entry-proximity-atr.d.ts.map +1 -0
  70. package/dist/core/chart/analysis/trade-setups/entry-proximity-atr.js +32 -0
  71. package/dist/core/chart/analysis/trade-setups/entry-proximity-atr.js.map +1 -0
  72. package/dist/core/chart/analysis/trade-setups/index.d.ts +3 -0
  73. package/dist/core/chart/analysis/trade-setups/index.d.ts.map +1 -1
  74. package/dist/core/chart/analysis/trade-setups/index.js +3 -0
  75. package/dist/core/chart/analysis/trade-setups/index.js.map +1 -1
  76. package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.d.ts +8 -0
  77. package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.d.ts.map +1 -1
  78. package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.js +33 -5
  79. package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.js.map +1 -1
  80. package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.d.ts +7 -0
  81. package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.d.ts.map +1 -1
  82. package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.js +47 -20
  83. package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.js.map +1 -1
  84. package/dist/core/chart/analysis/trade-setups/moving-averages-trade-setup.d.ts +110 -0
  85. package/dist/core/chart/analysis/trade-setups/moving-averages-trade-setup.d.ts.map +1 -0
  86. package/dist/core/chart/analysis/trade-setups/moving-averages-trade-setup.js +330 -0
  87. package/dist/core/chart/analysis/trade-setups/moving-averages-trade-setup.js.map +1 -0
  88. package/dist/core/chart/analysis/trade-setups/pattern-limit-entry.d.ts +10 -1
  89. package/dist/core/chart/analysis/trade-setups/pattern-limit-entry.d.ts.map +1 -1
  90. package/dist/core/chart/analysis/trade-setups/pattern-limit-entry.js +75 -34
  91. package/dist/core/chart/analysis/trade-setups/pattern-limit-entry.js.map +1 -1
  92. package/dist/core/chart/analysis/trade-setups/shared.d.ts +1 -1
  93. package/dist/core/chart/analysis/trade-setups/shared.d.ts.map +1 -1
  94. package/dist/core/chart/analysis/trade-setups/shared.js +4 -0
  95. package/dist/core/chart/analysis/trade-setups/shared.js.map +1 -1
  96. package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.d.ts +8 -0
  97. package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.d.ts.map +1 -1
  98. package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.js +9 -1
  99. package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.js.map +1 -1
  100. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.d.ts +16 -0
  101. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.d.ts.map +1 -0
  102. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.js +24 -0
  103. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.js.map +1 -0
  104. package/dist/core/chart/analysis/trade-setups/trade-entry-gates.d.ts +9 -5
  105. package/dist/core/chart/analysis/trade-setups/trade-entry-gates.d.ts.map +1 -1
  106. package/dist/core/chart/analysis/trade-setups/trade-entry-gates.js +24 -8
  107. package/dist/core/chart/analysis/trade-setups/trade-entry-gates.js.map +1 -1
  108. package/dist/core/chart/analysis/trade-setups/trade-idea-list.d.ts +21 -0
  109. package/dist/core/chart/analysis/trade-setups/trade-idea-list.d.ts.map +1 -1
  110. package/dist/core/chart/analysis/trade-setups/trade-idea-list.js +52 -0
  111. package/dist/core/chart/analysis/trade-setups/trade-idea-list.js.map +1 -1
  112. package/dist/core/chart/analysis/trade-setups/trade-idea.d.ts +20 -0
  113. package/dist/core/chart/analysis/trade-setups/trade-idea.d.ts.map +1 -1
  114. package/dist/core/chart/analysis/trade-setups/trade-idea.js +20 -0
  115. package/dist/core/chart/analysis/trade-setups/trade-idea.js.map +1 -1
  116. package/dist/core/chart/analysis/trade-setups/trade-purpose-format.d.ts +2 -0
  117. package/dist/core/chart/analysis/trade-setups/trade-purpose-format.d.ts.map +1 -1
  118. package/dist/core/chart/analysis/trade-setups/trade-purpose-format.js +5 -0
  119. package/dist/core/chart/analysis/trade-setups/trade-purpose-format.js.map +1 -1
  120. package/dist/core/chart/analysis/trade-setups/trade-setup-selection.d.ts +122 -0
  121. package/dist/core/chart/analysis/trade-setups/trade-setup-selection.d.ts.map +1 -0
  122. package/dist/core/chart/analysis/trade-setups/trade-setup-selection.js +231 -0
  123. package/dist/core/chart/analysis/trade-setups/trade-setup-selection.js.map +1 -0
  124. package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.d.ts.map +1 -1
  125. package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.js +12 -3
  126. package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.js.map +1 -1
  127. package/dist/core/chart/analysis/trend-line-menu-summary.d.ts +9 -2
  128. package/dist/core/chart/analysis/trend-line-menu-summary.d.ts.map +1 -1
  129. package/dist/core/chart/analysis/trend-line-menu-summary.js +74 -6
  130. package/dist/core/chart/analysis/trend-line-menu-summary.js.map +1 -1
  131. package/dist/core/chart/display-downsample.d.ts +1 -1
  132. package/dist/core/chart/display-downsample.d.ts.map +1 -1
  133. package/dist/core/chart/display-downsample.js +21 -0
  134. package/dist/core/chart/display-downsample.js.map +1 -1
  135. package/dist/core/chart/overlay-schemas.d.ts +3 -0
  136. package/dist/core/chart/overlay-schemas.d.ts.map +1 -1
  137. package/dist/core/chart/overlay-schemas.js +2 -0
  138. package/dist/core/chart/overlay-schemas.js.map +1 -1
  139. package/dist/core/chart/overlays.d.ts.map +1 -1
  140. package/dist/core/chart/overlays.js +21 -0
  141. package/dist/core/chart/overlays.js.map +1 -1
  142. package/dist/core/chart/prepare-core.d.ts.map +1 -1
  143. package/dist/core/chart/prepare-core.js +20 -1
  144. package/dist/core/chart/prepare-core.js.map +1 -1
  145. package/dist/core/chart/prepare-from-rows.d.ts +2 -0
  146. package/dist/core/chart/prepare-from-rows.d.ts.map +1 -1
  147. package/dist/core/chart/schemas.d.ts +9 -0
  148. package/dist/core/chart/schemas.d.ts.map +1 -1
  149. package/dist/core/chart/schemas.js +1 -1
  150. package/dist/core/chart/schemas.js.map +1 -1
  151. package/dist/core/chart-patterns/recommendation.d.ts +1 -0
  152. package/dist/core/chart-patterns/recommendation.d.ts.map +1 -1
  153. package/dist/core/chart-patterns/recommendation.js +7 -1
  154. package/dist/core/chart-patterns/recommendation.js.map +1 -1
  155. package/dist/core/chart-patterns/scan.d.ts.map +1 -1
  156. package/dist/core/chart-patterns/scan.js +4 -1
  157. package/dist/core/chart-patterns/scan.js.map +1 -1
  158. package/dist/core/chart-patterns/types.d.ts +2 -0
  159. package/dist/core/chart-patterns/types.d.ts.map +1 -1
  160. package/dist/core/mpc/schemas.d.ts +4 -0
  161. package/dist/core/mpc/schemas.d.ts.map +1 -1
  162. package/dist/core/mpc/schemas.js +3 -0
  163. package/dist/core/mpc/schemas.js.map +1 -1
  164. package/dist/core/mpc/sign-request-utils.d.ts +6 -0
  165. package/dist/core/mpc/sign-request-utils.d.ts.map +1 -1
  166. package/dist/core/mpc/sign-request-utils.js +47 -0
  167. package/dist/core/mpc/sign-request-utils.js.map +1 -1
  168. package/dist/core/mpc/sign-result-summary.d.ts.map +1 -1
  169. package/dist/core/mpc/sign-result-summary.js +5 -1
  170. package/dist/core/mpc/sign-result-summary.js.map +1 -1
  171. package/dist/core/mpc/types.d.ts +4 -0
  172. package/dist/core/mpc/types.d.ts.map +1 -1
  173. package/dist/index.d.ts +1 -1
  174. package/dist/index.d.ts.map +1 -1
  175. package/dist/index.js +1 -1
  176. package/dist/index.js.map +1 -1
  177. package/dist/mcp/agent-environment-variables.js +1 -1
  178. package/dist/mcp/agent-environment-variables.js.map +1 -1
  179. package/dist/mcp/chart.d.ts.map +1 -1
  180. package/dist/mcp/chart.js +14 -0
  181. package/dist/mcp/chart.js.map +1 -1
  182. package/dist/mcp/deferred/tool-group-map.d.ts.map +1 -1
  183. package/dist/mcp/deferred/tool-group-map.js +2 -0
  184. package/dist/mcp/deferred/tool-group-map.js.map +1 -1
  185. package/dist/mcp/defi/defi-protocol-fetch-meta.d.ts +3 -0
  186. package/dist/mcp/defi/defi-protocol-fetch-meta.d.ts.map +1 -1
  187. package/dist/mcp/defi/defi-protocol-fetch-meta.js +26 -18
  188. package/dist/mcp/defi/defi-protocol-fetch-meta.js.map +1 -1
  189. package/dist/mcp/defi/discovery.js +1 -1
  190. package/dist/mcp/defi/discovery.js.map +1 -1
  191. package/dist/mcp/defi/handler.d.ts.map +1 -1
  192. package/dist/mcp/defi/handler.js +13 -2
  193. package/dist/mcp/defi/handler.js.map +1 -1
  194. package/dist/mcp/defi/register-protocol-tools.d.ts.map +1 -1
  195. package/dist/mcp/defi/register-protocol-tools.js +4 -1
  196. package/dist/mcp/defi/register-protocol-tools.js.map +1 -1
  197. package/dist/mcp/defi/the-graph-api-key.d.ts +17 -0
  198. package/dist/mcp/defi/the-graph-api-key.d.ts.map +1 -0
  199. package/dist/mcp/defi/the-graph-api-key.js +82 -0
  200. package/dist/mcp/defi/the-graph-api-key.js.map +1 -0
  201. package/dist/mcp/defi/uniswap-v4-ohlcv-chains.d.ts +7 -0
  202. package/dist/mcp/defi/uniswap-v4-ohlcv-chains.d.ts.map +1 -0
  203. package/dist/mcp/defi/uniswap-v4-ohlcv-chains.js +11 -0
  204. package/dist/mcp/defi/uniswap-v4-ohlcv-chains.js.map +1 -0
  205. package/dist/mcp/mpc.js +2 -2
  206. package/dist/mcp/mpc.js.map +1 -1
  207. package/dist/mcp/ohlcv-session-wrapper.d.ts.map +1 -1
  208. package/dist/mcp/ohlcv-session-wrapper.js +1 -0
  209. package/dist/mcp/ohlcv-session-wrapper.js.map +1 -1
  210. package/dist/mcp/resources/chart-analysis.md +4 -1
  211. package/dist/mcp/resources/chart.md +3 -2
  212. package/dist/mcp/trade-tools.d.ts.map +1 -1
  213. package/dist/mcp/trade-tools.js +9 -1
  214. package/dist/mcp/trade-tools.js.map +1 -1
  215. package/package.json +2 -2
@@ -0,0 +1,207 @@
1
+ import { resolveOhlcvFetchContext } from '../../ohlcv-window-expectations.js';
2
+ const DATA_SOURCE_MAX_LEN = 8;
3
+ const INTERVAL_MAX_LEN = 8;
4
+ function sanitizeDataSourceCode(code) {
5
+ const cleaned = code.trim().toLowerCase().replace(/[^a-z0-9-]/g, '');
6
+ return cleaned.slice(0, DATA_SOURCE_MAX_LEN) || 'ts';
7
+ }
8
+ function sanitizeIntervalLabel(interval) {
9
+ const cleaned = interval.trim().toLowerCase().replace(/[^a-z0-9]/g, '');
10
+ return cleaned.slice(0, INTERVAL_MAX_LEN);
11
+ }
12
+ export function chartDataSourceShortCodeFromFetchToolName(toolName) {
13
+ const raw = toolName?.trim().toLowerCase() ?? '';
14
+ if (!raw) {
15
+ return undefined;
16
+ }
17
+ const base = raw.includes('__') ? raw.slice(raw.lastIndexOf('__') + 2) : raw;
18
+ if (raw.includes('hyperliquid') && base.includes('fetch_ohlcv')) {
19
+ return 'hl';
20
+ }
21
+ if (raw.includes('gmx') && base.includes('fetch_ohlcv')) {
22
+ return 'gmx';
23
+ }
24
+ if (raw.includes('uniswap') && base.includes('fetch_ohlcv')) {
25
+ return 'uni';
26
+ }
27
+ if (raw.includes('coinmarketcap') || base.includes('get_kline') || base.includes('get_crypto_ohlcv')) {
28
+ return 'cmc';
29
+ }
30
+ if (raw.includes('coingecko') || base === 'execute') {
31
+ return 'cg';
32
+ }
33
+ return undefined;
34
+ }
35
+ function ohlcvRecordFromPayload(payload) {
36
+ if (!payload || typeof payload !== 'object' || Array.isArray(payload)) {
37
+ return null;
38
+ }
39
+ const record = payload;
40
+ if (record.ohlcv && typeof record.ohlcv === 'object' && !Array.isArray(record.ohlcv)) {
41
+ return record.ohlcv;
42
+ }
43
+ if ('candles' in record ||
44
+ 'interval' in record ||
45
+ 'timeframe' in record ||
46
+ 'coin' in record ||
47
+ 'symbol' in record) {
48
+ return record;
49
+ }
50
+ return null;
51
+ }
52
+ export function chartDataSourceShortCodeFromFetchPayload(payload) {
53
+ if (!payload || typeof payload !== 'object' || Array.isArray(payload)) {
54
+ return undefined;
55
+ }
56
+ const record = payload;
57
+ const explicit = record.dataSource;
58
+ if (typeof explicit === 'string' && explicit.trim()) {
59
+ switch (explicit.trim().toLowerCase()) {
60
+ case 'protocol_ohlcv':
61
+ if (ohlcvRecordFromPayload(payload)?.coin != null) {
62
+ return 'hl';
63
+ }
64
+ return 'proto';
65
+ case 'coingecko_time_series':
66
+ return 'cg';
67
+ case 'coinmarketcap_klines':
68
+ return 'cmc';
69
+ default:
70
+ return sanitizeDataSourceCode(explicit);
71
+ }
72
+ }
73
+ const ohlcv = ohlcvRecordFromPayload(payload);
74
+ if (ohlcv?.coin != null) {
75
+ return 'hl';
76
+ }
77
+ if (typeof record.symbol === 'string' && 'candles' in record) {
78
+ return 'gmx';
79
+ }
80
+ if (Array.isArray(record.series) || Array.isArray(record.points)) {
81
+ return 'ts';
82
+ }
83
+ return undefined;
84
+ }
85
+ export function chartDataSourceShortCodeFromProtocolId(protocolId) {
86
+ const proto = protocolId?.trim().toLowerCase();
87
+ if (!proto) {
88
+ return undefined;
89
+ }
90
+ switch (proto) {
91
+ case 'hyperliquid':
92
+ case 'hl':
93
+ return 'hl';
94
+ case 'gmx':
95
+ return 'gmx';
96
+ case 'uniswap':
97
+ case 'uniswap-v4':
98
+ case 'uni':
99
+ return 'uni';
100
+ default:
101
+ return undefined;
102
+ }
103
+ }
104
+ function barCountFromFetchPayload(payload) {
105
+ if (!payload || typeof payload !== 'object' || Array.isArray(payload)) {
106
+ return undefined;
107
+ }
108
+ const record = payload;
109
+ for (const key of ['candleCount', 'barCount', 'count']) {
110
+ const raw = record[key];
111
+ if (typeof raw === 'number' && Number.isFinite(raw) && raw > 0) {
112
+ return Math.floor(raw);
113
+ }
114
+ }
115
+ const ohlcv = ohlcvRecordFromPayload(payload);
116
+ if (ohlcv) {
117
+ for (const key of ['candleCount', 'barCount', 'count']) {
118
+ const raw = ohlcv[key];
119
+ if (typeof raw === 'number' && Number.isFinite(raw) && raw > 0) {
120
+ return Math.floor(raw);
121
+ }
122
+ }
123
+ const candles = ohlcv.candles;
124
+ if (Array.isArray(candles) && candles.length > 0) {
125
+ return candles.length;
126
+ }
127
+ }
128
+ const candles = record.candles;
129
+ if (Array.isArray(candles) && candles.length > 0) {
130
+ return candles.length;
131
+ }
132
+ return undefined;
133
+ }
134
+ function intervalFromMetaAndPayload(analysisMeta, fetchPayload) {
135
+ const fromMeta = analysisMeta?.fetchContext?.interval;
136
+ if (typeof fromMeta === 'string' && fromMeta.trim()) {
137
+ return sanitizeIntervalLabel(fromMeta);
138
+ }
139
+ const ohlcv = fetchPayload != null ? ohlcvRecordFromPayload(fetchPayload) : null;
140
+ const raw = ohlcv?.interval ?? ohlcv?.timeframe;
141
+ if (typeof raw === 'string' && raw.trim()) {
142
+ return sanitizeIntervalLabel(raw);
143
+ }
144
+ if (fetchPayload && typeof fetchPayload === 'object' && !Array.isArray(fetchPayload)) {
145
+ const record = fetchPayload;
146
+ const top = record.interval ?? record.timeframe;
147
+ if (typeof top === 'string' && top.trim()) {
148
+ return sanitizeIntervalLabel(top);
149
+ }
150
+ }
151
+ return undefined;
152
+ }
153
+ export function extractChartDataPurposeContext(input) {
154
+ const dataSource = chartDataSourceShortCodeFromFetchToolName(input.fetchToolName) ??
155
+ chartDataSourceShortCodeFromFetchPayload(input.fetchPayload) ??
156
+ chartDataSourceShortCodeFromProtocolId(input.loadedProtocolId) ??
157
+ (input.fetchPayload != null ? 'ts' : undefined);
158
+ if (!dataSource) {
159
+ return undefined;
160
+ }
161
+ const interval = intervalFromMetaAndPayload(input.analysisMeta, input.fetchPayload);
162
+ const barCount = (typeof input.analysisMeta?.barCount === 'number' && input.analysisMeta.barCount > 0
163
+ ? Math.floor(input.analysisMeta.barCount)
164
+ : undefined) ?? barCountFromFetchPayload(input.fetchPayload);
165
+ const ctx = { dataSource: sanitizeDataSourceCode(dataSource) };
166
+ if (interval) {
167
+ ctx.interval = interval;
168
+ }
169
+ if (barCount != null && barCount > 0) {
170
+ ctx.barCount = barCount;
171
+ }
172
+ return ctx;
173
+ }
174
+ /** ctm1 tokens: ds=hl iv=4h n=180 */
175
+ export function formatChartDataPurposeTokens(chartData) {
176
+ if (!chartData?.dataSource) {
177
+ return [];
178
+ }
179
+ const tokens = [`ds=${sanitizeDataSourceCode(chartData.dataSource)}`];
180
+ if (chartData.interval) {
181
+ tokens.push(`iv=${sanitizeIntervalLabel(chartData.interval)}`);
182
+ }
183
+ if (chartData.barCount != null && chartData.barCount > 0) {
184
+ tokens.push(`n=${Math.floor(chartData.barCount)}`);
185
+ }
186
+ return tokens;
187
+ }
188
+ export function chartDataPurposeContextFromAnalysisMeta(meta, fetchPayload, fetchToolName, loadedProtocolId) {
189
+ if (!meta || typeof meta !== 'object' || Array.isArray(meta)) {
190
+ return extractChartDataPurposeContext({ fetchPayload, fetchToolName, loadedProtocolId });
191
+ }
192
+ const record = meta;
193
+ const barCount = typeof record.barCount === 'number' && record.barCount > 0 ? Math.floor(record.barCount) : undefined;
194
+ const fetchContext = record.fetchContext && typeof record.fetchContext === 'object' && !Array.isArray(record.fetchContext)
195
+ ? resolveOhlcvFetchContext(fetchPayload ?? record)
196
+ : resolveOhlcvFetchContext(fetchPayload ?? record);
197
+ return extractChartDataPurposeContext({
198
+ analysisMeta: {
199
+ barCount: barCount ?? 0,
200
+ fetchContext: fetchContext ?? undefined,
201
+ },
202
+ fetchPayload,
203
+ fetchToolName,
204
+ loadedProtocolId,
205
+ });
206
+ }
207
+ //# sourceMappingURL=chart-data-purpose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-data-purpose.js","sourceRoot":"","sources":["../../../../../src/core/chart/analysis/trade-setups/chart-data-purpose.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ChartPatternClassification, ChartPatternHitSummary, ChartPatternId, EnrichedChartPatternHit } from '../../../chart-patterns/types.js';
2
- import { type EntryOffsetMode, type PatternEntryPhase } from './pattern-limit-entry.js';
2
+ import { type EntryOffsetMode, type EntryProximityMode, type PatternEntryPhase } from './pattern-limit-entry.js';
3
3
  import { type TradeSetupSide, type TradeSetupStatus } from './shared.js';
4
4
  export type ChartPatternTradeSetup = {
5
5
  status: TradeSetupStatus;
@@ -29,10 +29,16 @@ export declare function sanitizeChartPatternTradeSetupForOutput(setup: ChartPatt
29
29
  export declare function buildChartPatternTradeSetupFromHit(hit: EnrichedChartPatternHit, lastClose: number, patternNumber: number, options?: {
30
30
  minConfidence?: number;
31
31
  entryProximityPct?: number;
32
+ entryProximityMode?: EntryProximityMode;
33
+ entryProximityAtrPeriod?: number;
34
+ bars?: Record<string, unknown>[];
32
35
  }): ChartPatternTradeSetup;
33
36
  export declare function buildChartPatternTradeSetupFromSummary(summary: ChartPatternHitSummary, lastClose: number, patternNumber: number, completionState?: 'forming' | 'completed', options?: {
34
37
  minConfidence?: number;
35
38
  entryProximityPct?: number;
39
+ entryProximityMode?: EntryProximityMode;
40
+ entryProximityAtrPeriod?: number;
41
+ bars?: Record<string, unknown>[];
36
42
  }): ChartPatternTradeSetup;
37
43
  export declare function normalizeChartPatternTradeSetup(setup: ChartPatternTradeSetup): {
38
44
  status: TradeSetupStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"chart-pattern-trade-setup.d.ts","sourceRoot":"","sources":["../../../../../src/core/chart/analysis/trade-setups/chart-pattern-trade-setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,0BAA0B,EAC1B,sBAAsB,EACtB,cAAc,EACd,uBAAuB,EACvB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACN,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAEtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,gBAAgB,EAErB,MAAM,aAAa,CAAC;AAGrB,MAAM,MAAM,sBAAsB,GAAG;IACpC,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,cAAc,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,0BAA0B,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IAC1C,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAmKF,+EAA+E;AAC/E,wBAAgB,uCAAuC,CACtD,KAAK,EAAE,sBAAsB,GAAG,IAAI,GAAG,SAAS,GAC9C,sBAAsB,GAAG,IAAI,CAmB/B;AAED,wBAAgB,kCAAkC,CACjD,GAAG,EAAE,uBAAuB,EAC5B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAC,GAC5D,sBAAsB,CA0BxB;AAED,wBAAgB,sCAAsC,CACrD,OAAO,EAAE,sBAAsB,EAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,SAAS,GAAG,WAAW,EACzC,OAAO,CAAC,EAAE;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAC,GAC5D,sBAAsB,CAyBxB;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,sBAAsB,GAAG;IAC/E,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IACxC,MAAM,CAAC,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IACzC,YAAY,CAAC,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAoBA"}
1
+ {"version":3,"file":"chart-pattern-trade-setup.d.ts","sourceRoot":"","sources":["../../../../../src/core/chart/analysis/trade-setups/chart-pattern-trade-setup.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { buildPatternKeyLevels } from '../../../chart-patterns/pattern-menu-summary.js';
2
2
  import { resolvePatternLimitLevels, } from './pattern-limit-entry.js';
3
+ import { entryProximityAtrFromOhlcvRows } from './entry-proximity-atr.js';
4
+ import { tradeDeskConfig } from './trade-desk-defaults.js';
3
5
  import { isFiniteTradePrice, } from './shared.js';
4
6
  import { tradeSetupPurposeCode } from './trade-purpose-format.js';
5
7
  function sideFromClassification(classification, measuredDirection) {
@@ -156,12 +158,22 @@ export function buildChartPatternTradeSetupFromHit(hit, lastClose, patternNumber
156
158
  const keyLevels = buildPatternKeyLevels(hit);
157
159
  const measured = hit.measuredMove;
158
160
  const classificationSide = sideFromClassification(hit.classification, measured?.direction);
161
+ const desk = tradeDeskConfig({
162
+ entryProximityPct: options?.entryProximityPct,
163
+ entryProximityMode: options?.entryProximityMode,
164
+ entryProximityAtrPeriod: options?.entryProximityAtrPeriod,
165
+ });
166
+ const entryProximityAtr = desk.entryProximityMode === 'atr'
167
+ ? entryProximityAtrFromOhlcvRows(options?.bars, desk.entryProximityAtrPeriod)
168
+ : null;
159
169
  const resolved = resolvePatternLimitLevels({
160
170
  patternId: hit.id,
161
171
  lastClose,
162
172
  keyLevels,
163
173
  classificationSide,
164
- entryProximityPct: options?.entryProximityPct,
174
+ entryProximityPct: desk.entryProximityPct,
175
+ entryProximityMode: desk.entryProximityMode,
176
+ entryProximityAtr,
165
177
  });
166
178
  return buildFromResolvedResult({
167
179
  patternId: hit.id,
@@ -179,12 +191,22 @@ export function buildChartPatternTradeSetupFromHit(hit, lastClose, patternNumber
179
191
  export function buildChartPatternTradeSetupFromSummary(summary, lastClose, patternNumber, completionState, options) {
180
192
  const measured = summary.measuredMove;
181
193
  const classificationSide = sideFromClassification(summary.classification, measured?.direction);
194
+ const desk = tradeDeskConfig({
195
+ entryProximityPct: options?.entryProximityPct,
196
+ entryProximityMode: options?.entryProximityMode,
197
+ entryProximityAtrPeriod: options?.entryProximityAtrPeriod,
198
+ });
199
+ const entryProximityAtr = desk.entryProximityMode === 'atr'
200
+ ? entryProximityAtrFromOhlcvRows(options?.bars, desk.entryProximityAtrPeriod)
201
+ : null;
182
202
  const resolved = resolvePatternLimitLevels({
183
203
  patternId: summary.id,
184
204
  lastClose,
185
205
  keyLevels: summary.keyLevels,
186
206
  classificationSide,
187
- entryProximityPct: options?.entryProximityPct,
207
+ entryProximityPct: desk.entryProximityPct,
208
+ entryProximityMode: desk.entryProximityMode,
209
+ entryProximityAtr,
188
210
  });
189
211
  return buildFromResolvedResult({
190
212
  patternId: summary.id,
@@ -1 +1 @@
1
- {"version":3,"file":"chart-pattern-trade-setup.js","sourceRoot":"","sources":["../../../../../src/core/chart/analysis/trade-setups/chart-pattern-trade-setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chart-pattern-trade-setup.js","sourceRoot":"","sources":["../../../../../src/core/chart/analysis/trade-setups/chart-pattern-trade-setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Latest finite ATR from OHLCV rows (Wilder-style SMA of TR). */
2
+ export declare function entryProximityAtrFromOhlcvRows(bars: Record<string, unknown>[] | undefined, period?: number): number | null;
3
+ //# sourceMappingURL=entry-proximity-atr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry-proximity-atr.d.ts","sourceRoot":"","sources":["../../../../../src/core/chart/analysis/trade-setups/entry-proximity-atr.ts"],"names":[],"mappings":"AAKA,kEAAkE;AAClE,wBAAgB,8BAA8B,CAC7C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,SAAS,EAC3C,MAAM,SAAqC,GACzC,MAAM,GAAG,IAAI,CA0Bf"}
@@ -0,0 +1,32 @@
1
+ import { averageTrueRangeSeries } from '../../../chart-patterns/atr.js';
2
+ import { coerceFiniteNumber } from '../../point-normalize.js';
3
+ import { DEFAULT_ENTRY_PROXIMITY_ATR_PERIOD } from './trade-desk-defaults.js';
4
+ /** Latest finite ATR from OHLCV rows (Wilder-style SMA of TR). */
5
+ export function entryProximityAtrFromOhlcvRows(bars, period = DEFAULT_ENTRY_PROXIMITY_ATR_PERIOD) {
6
+ if (!bars?.length || period < 1) {
7
+ return null;
8
+ }
9
+ const normalized = [];
10
+ for (let i = 0; i < bars.length; i++) {
11
+ const close = coerceFiniteNumber(bars[i].close);
12
+ const high = coerceFiniteNumber(bars[i].high);
13
+ const low = coerceFiniteNumber(bars[i].low);
14
+ const time = coerceFiniteNumber(bars[i].time);
15
+ if (close == null || high == null || low == null || time == null) {
16
+ continue;
17
+ }
18
+ normalized.push({ index: i, time, timeSec: time, open: close, high, low, close });
19
+ }
20
+ if (!normalized.length) {
21
+ return null;
22
+ }
23
+ const series = averageTrueRangeSeries(normalized, period);
24
+ for (let i = series.length - 1; i >= 0; i--) {
25
+ const v = series[i];
26
+ if (v != null && Number.isFinite(v) && v > 0) {
27
+ return v;
28
+ }
29
+ }
30
+ return null;
31
+ }
32
+ //# sourceMappingURL=entry-proximity-atr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry-proximity-atr.js","sourceRoot":"","sources":["../../../../../src/core/chart/analysis/trade-setups/entry-proximity-atr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,gCAAgC,CAAC;AAEtE,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAC,kCAAkC,EAAC,MAAM,0BAA0B,CAAC;AAE5E,kEAAkE;AAClE,MAAM,UAAU,8BAA8B,CAC7C,IAA2C,EAC3C,MAAM,GAAG,kCAAkC;IAE3C,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YAClE,SAAS;QACV,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAC,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,MAAM,GAAG,sBAAsB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1D,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,CAAC,CAAC;QACV,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -2,10 +2,13 @@ export * from './shared.js';
2
2
  export * from './chart-pattern-trade-setup.js';
3
3
  export * from './pattern-limit-entry.js';
4
4
  export * from './trade-entry-gates.js';
5
+ export * from './chart-data-purpose.js';
5
6
  export * from './trade-purpose-format.js';
6
7
  export * from './candlestick-trade-setup.js';
7
8
  export * from './key-levels-trade-setup.js';
8
9
  export * from './momentum-trade-setup.js';
10
+ export * from './bollinger-trade-setup.js';
11
+ export * from './trade-setup-selection.js';
9
12
  export * from './trade-idea.js';
10
13
  export * from './build-trade.js';
11
14
  export * from './trade-consensus.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/chart/analysis/trade-setups/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/chart/analysis/trade-setups/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC"}
@@ -2,10 +2,13 @@ export * from './shared.js';
2
2
  export * from './chart-pattern-trade-setup.js';
3
3
  export * from './pattern-limit-entry.js';
4
4
  export * from './trade-entry-gates.js';
5
+ export * from './chart-data-purpose.js';
5
6
  export * from './trade-purpose-format.js';
6
7
  export * from './candlestick-trade-setup.js';
7
8
  export * from './key-levels-trade-setup.js';
8
9
  export * from './momentum-trade-setup.js';
10
+ export * from './bollinger-trade-setup.js';
11
+ export * from './trade-setup-selection.js';
9
12
  export * from './trade-idea.js';
10
13
  export * from './build-trade.js';
11
14
  export * from './trade-consensus.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/chart/analysis/trade-setups/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/chart/analysis/trade-setups/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { KeyLevelFibPair, KeyLevelMenuEntry } from '../key-level-menu-summary.js';
2
2
  import type { EntryOffsetMode, PatternEntryPhase } from './pattern-limit-entry.js';
3
3
  import type { TradeSetupSide, TradeSetupStatus } from './shared.js';
4
+ import { type EntryProximityMode } from './trade-desk-defaults.js';
4
5
  export type KeyLevelFibPriceRegime = 'inside_range' | 'above_range' | 'below_range';
5
6
  export type KeyLevelFibTargetSource = 'retrace_618' | 'range_leg' | 'fib_extension';
6
7
  export type KeyLevelFibInsideSubRegime = 'upper_half' | 'lower_half';
@@ -34,6 +35,8 @@ export type KeyLevelFibBreakRetestAlternative = {
34
35
  higherTimeframeAdvisory?: string;
35
36
  unclearReason?: string;
36
37
  entryProximityPct: number;
38
+ entryProximityMode?: EntryProximityMode;
39
+ atrAtLastBar?: number;
37
40
  entryOffsetPct: number;
38
41
  invalidationOffsetPct: number;
39
42
  alternateBreakCandidates: Array<{
@@ -59,6 +62,8 @@ export type KeyLevelFibRetraceTradeSetup = {
59
62
  framing: 'retrace' | 'break';
60
63
  entryOffsetMode: EntryOffsetMode;
61
64
  entryProximityPct: number;
65
+ entryProximityMode?: EntryProximityMode;
66
+ atrAtLastBar?: number;
62
67
  entryOffsetPct: number;
63
68
  invalidationOffsetPct: number;
64
69
  fibPairNumber: number;
@@ -97,9 +102,12 @@ export declare function buildKeyLevelFibRetraceTradeSetup(input: {
97
102
  minConfidence?: number;
98
103
  breakMinConfidence?: number;
99
104
  entryProximityPct?: number;
105
+ entryProximityMode?: EntryProximityMode;
106
+ entryProximityAtrPeriod?: number;
100
107
  entryOffsetPct?: number;
101
108
  invalidationOffsetPct?: number;
102
109
  /** trade-defaults skill may prefer long over the desk default short (upper half). */
103
110
  defaultSidePreference?: 'long' | 'short';
111
+ fibPairNumber?: number;
104
112
  }): KeyLevelFibRetraceTradeSetup | null;
105
113
  //# sourceMappingURL=key-level-fib-retrace-trade-setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"key-level-fib-retrace-trade-setup.d.ts","sourceRoot":"","sources":["../../../../../src/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-level-fib-retrace-trade-setup.d.ts","sourceRoot":"","sources":["../../../../../src/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,8 @@ import { chartFibTrendForRange } from '../key-level-drawings-shared.js';
3
3
  import { alternateBreakCandidatesForSkill, detectKeyLevelBreaks, pickStrongestBreakCandidate, } from '../key-level-break-detect.js';
4
4
  import { isFiniteTradePrice } from './shared.js';
5
5
  import { assessTradeSetupEntryActionability } from './trade-entry-gates.js';
6
- import { tradeDeskDefaultPcts } from './trade-desk-defaults.js';
6
+ import { entryProximityAtrFromOhlcvRows } from './entry-proximity-atr.js';
7
+ import { tradeDeskConfig, } from './trade-desk-defaults.js';
7
8
  import { tradeSetupPurposeCode } from './trade-purpose-format.js';
8
9
  const HTF_ADVISORY = 'Target uses Fibonacci extension — re-run analyze_key_level_fibonacci on a higher timeframe for structural confirmation.';
9
10
  function resolvePriceRegime(close, pair) {
@@ -108,6 +109,8 @@ function validateFibTradeSetup(input) {
108
109
  side: input.side,
109
110
  entryOffsetMode: input.entryOffsetMode,
110
111
  entryProximityPct: input.entryProximityPct,
112
+ entryProximityMode: input.entryProximityMode,
113
+ entryProximityAtr: input.entryProximityAtr,
111
114
  entryOffsetPct: input.entryOffsetPct,
112
115
  skipProximityGate: input.skipProximityGate,
113
116
  });
@@ -133,9 +136,10 @@ function validateFibTradeSetup(input) {
133
136
  return {
134
137
  status,
135
138
  ...(unclearReason ? { unclearReason } : {}),
136
- deskPcts: tradeDeskDefaultPcts({
139
+ deskPcts: tradeDeskConfig({
137
140
  entryProximityPct: input.entryProximityPct,
138
141
  entryOffsetPct: input.entryOffsetPct,
142
+ entryProximityMode: input.entryProximityMode,
139
143
  }),
140
144
  };
141
145
  }
@@ -209,6 +213,8 @@ function materializeFibSideVariant(plan, validateInput) {
209
213
  confidence: validateInput.confidence,
210
214
  minConfidence: validateInput.minConfidence,
211
215
  entryProximityPct: validateInput.deskSeed.entryProximityPct,
216
+ entryProximityMode: validateInput.deskSeed.entryProximityMode,
217
+ entryProximityAtr: validateInput.entryProximityAtr,
212
218
  entryOffsetPct: validateInput.deskSeed.entryOffsetPct,
213
219
  unclearDefault: validateInput.unclearDefault,
214
220
  });
@@ -224,6 +230,10 @@ function materializeFibSideVariant(plan, validateInput) {
224
230
  invalidationPrice: plan.invalidationPrice,
225
231
  invalidationLabel: plan.invalidationLabel,
226
232
  entryProximityPct: validation.deskPcts.entryProximityPct,
233
+ entryProximityMode: validation.deskPcts.entryProximityMode,
234
+ ...(validateInput.entryProximityAtr != null
235
+ ? { atrAtLastBar: validateInput.entryProximityAtr }
236
+ : {}),
227
237
  entryOffsetPct: validation.deskPcts.entryOffsetPct,
228
238
  invalidationOffsetPct: validation.deskPcts.invalidationOffsetPct,
229
239
  };
@@ -239,11 +249,13 @@ export function applyKeyLevelFibSideVariant(setup, side) {
239
249
  confidence: setup.confidence,
240
250
  minConfidence: 0.35,
241
251
  entryOffsetMode: setup.entryOffsetMode,
242
- deskSeed: tradeDeskDefaultPcts({
252
+ deskSeed: tradeDeskConfig({
243
253
  entryProximityPct: setup.entryProximityPct,
244
254
  entryOffsetPct: setup.entryOffsetPct,
245
255
  invalidationOffsetPct: setup.invalidationOffsetPct,
256
+ entryProximityMode: setup.entryProximityMode,
246
257
  }),
258
+ entryProximityAtr: setup.atrAtLastBar ?? null,
247
259
  unclearDefault: setup.unclearReason ?? 'Fib side variant is not actionable at last close.',
248
260
  });
249
261
  return {
@@ -258,7 +270,9 @@ export function buildKeyLevelFibRetraceTradeSetup(input) {
258
270
  if (!isFiniteTradePrice(close)) {
259
271
  return null;
260
272
  }
261
- const pair = pickOuterConcentricFibPair(input.fibPairs);
273
+ const pair = (input.fibPairNumber != null
274
+ ? input.fibPairs.find(p => p.pairNumber === input.fibPairNumber)
275
+ : undefined) ?? pickOuterConcentricFibPair(input.fibPairs);
262
276
  if (!pair || pair.low >= pair.high) {
263
277
  return null;
264
278
  }
@@ -274,11 +288,16 @@ export function buildKeyLevelFibRetraceTradeSetup(input) {
274
288
  const confidence = Math.min(1, legStrength / 120);
275
289
  const priceRegime = resolvePriceRegime(close, pair);
276
290
  const bars = input.bars ?? [];
277
- const deskSeed = tradeDeskDefaultPcts({
291
+ const deskSeed = tradeDeskConfig({
278
292
  entryProximityPct: input.entryProximityPct,
279
293
  entryOffsetPct: input.entryOffsetPct,
280
294
  invalidationOffsetPct: input.invalidationOffsetPct,
295
+ entryProximityMode: input.entryProximityMode,
296
+ entryProximityAtrPeriod: input.entryProximityAtrPeriod,
281
297
  });
298
+ const entryProximityAtr = deskSeed.entryProximityMode === 'atr'
299
+ ? entryProximityAtrFromOhlcvRows(bars, deskSeed.entryProximityAtrPeriod)
300
+ : null;
282
301
  const base = {
283
302
  source: 'concentric_range',
284
303
  priceRegime,
@@ -310,6 +329,8 @@ export function buildKeyLevelFibRetraceTradeSetup(input) {
310
329
  confidence,
311
330
  minConfidence,
312
331
  entryProximityPct: deskSeed.entryProximityPct,
332
+ entryProximityMode: deskSeed.entryProximityMode,
333
+ entryProximityAtr,
313
334
  entryOffsetPct: deskSeed.entryOffsetPct,
314
335
  unclearDefault: 'Fib range extension setup is not actionable at last close.',
315
336
  });
@@ -334,6 +355,8 @@ export function buildKeyLevelFibRetraceTradeSetup(input) {
334
355
  framing: 'break',
335
356
  entryOffsetMode: 'retest',
336
357
  entryProximityPct: validation.deskPcts.entryProximityPct,
358
+ entryProximityMode: validation.deskPcts.entryProximityMode,
359
+ ...(entryProximityAtr != null ? { atrAtLastBar: entryProximityAtr } : {}),
337
360
  entryOffsetPct: validation.deskPcts.entryOffsetPct,
338
361
  invalidationOffsetPct: validation.deskPcts.invalidationOffsetPct,
339
362
  side: 'long',
@@ -369,6 +392,8 @@ export function buildKeyLevelFibRetraceTradeSetup(input) {
369
392
  confidence,
370
393
  minConfidence,
371
394
  entryProximityPct: deskSeed.entryProximityPct,
395
+ entryProximityMode: deskSeed.entryProximityMode,
396
+ entryProximityAtr,
372
397
  entryOffsetPct: deskSeed.entryOffsetPct,
373
398
  unclearDefault: 'Fib inverted extension setup is not actionable at last close.',
374
399
  });
@@ -395,6 +420,8 @@ export function buildKeyLevelFibRetraceTradeSetup(input) {
395
420
  framing: 'break',
396
421
  entryOffsetMode: 'retest',
397
422
  entryProximityPct: validation.deskPcts.entryProximityPct,
423
+ entryProximityMode: validation.deskPcts.entryProximityMode,
424
+ ...(entryProximityAtr != null ? { atrAtLastBar: entryProximityAtr } : {}),
398
425
  entryOffsetPct: validation.deskPcts.entryOffsetPct,
399
426
  invalidationOffsetPct: validation.deskPcts.invalidationOffsetPct,
400
427
  side: 'short',
@@ -430,6 +457,7 @@ export function buildKeyLevelFibRetraceTradeSetup(input) {
430
457
  minConfidence,
431
458
  entryOffsetMode: 'bounce',
432
459
  deskSeed,
460
+ entryProximityAtr,
433
461
  unclearDefault: 'Fib 0.618 retrace setup is not actionable at last close.',
434
462
  });
435
463
  return {