@continuumdao/continuum-node-sdk 1.3.30 → 1.3.32

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 (222) hide show
  1. package/dist/agent-host-catalog.json +7 -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 +48 -7
  4. package/dist/core/chart/analysis/analysis-agent-view.js.map +1 -1
  5. package/dist/core/chart/analysis/analysis-catalog.d.ts +19 -13
  6. package/dist/core/chart/analysis/analysis-catalog.d.ts.map +1 -1
  7. package/dist/core/chart/analysis/analysis-catalog.js +132 -106
  8. package/dist/core/chart/analysis/analysis-catalog.js.map +1 -1
  9. package/dist/core/chart/analysis/elliott-wave-drawings-tools.d.ts +31 -0
  10. package/dist/core/chart/analysis/elliott-wave-drawings-tools.d.ts.map +1 -0
  11. package/dist/core/chart/analysis/elliott-wave-drawings-tools.js +301 -0
  12. package/dist/core/chart/analysis/elliott-wave-drawings-tools.js.map +1 -0
  13. package/dist/core/chart/analysis/elliott-waves-analyze-tools.d.ts +161 -0
  14. package/dist/core/chart/analysis/elliott-waves-analyze-tools.d.ts.map +1 -0
  15. package/dist/core/chart/analysis/elliott-waves-analyze-tools.js +139 -0
  16. package/dist/core/chart/analysis/elliott-waves-analyze-tools.js.map +1 -0
  17. package/dist/core/chart/analysis/trade-setups/build-trade-uniswap-limit.d.ts +10 -0
  18. package/dist/core/chart/analysis/trade-setups/build-trade-uniswap-limit.d.ts.map +1 -0
  19. package/dist/core/chart/analysis/trade-setups/build-trade-uniswap-limit.js +123 -0
  20. package/dist/core/chart/analysis/trade-setups/build-trade-uniswap-limit.js.map +1 -0
  21. package/dist/core/chart/analysis/trade-setups/build-trade.d.ts +29 -1
  22. package/dist/core/chart/analysis/trade-setups/build-trade.d.ts.map +1 -1
  23. package/dist/core/chart/analysis/trade-setups/build-trade.js +267 -8
  24. package/dist/core/chart/analysis/trade-setups/build-trade.js.map +1 -1
  25. package/dist/core/chart/analysis/trade-setups/elliott-waves-trade-setup.d.ts +50 -0
  26. package/dist/core/chart/analysis/trade-setups/elliott-waves-trade-setup.d.ts.map +1 -0
  27. package/dist/core/chart/analysis/trade-setups/elliott-waves-trade-setup.js +116 -0
  28. package/dist/core/chart/analysis/trade-setups/elliott-waves-trade-setup.js.map +1 -0
  29. package/dist/core/chart/analysis/trade-setups/shared.d.ts +1 -1
  30. package/dist/core/chart/analysis/trade-setups/shared.d.ts.map +1 -1
  31. package/dist/core/chart/analysis/trade-setups/shared.js +2 -0
  32. package/dist/core/chart/analysis/trade-setups/shared.js.map +1 -1
  33. package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.d.ts +13 -1
  34. package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.d.ts.map +1 -1
  35. package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.js +11 -0
  36. package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.js.map +1 -1
  37. package/dist/core/chart/analysis/trade-setups/trade-idea-list.d.ts +2 -0
  38. package/dist/core/chart/analysis/trade-setups/trade-idea-list.d.ts.map +1 -1
  39. package/dist/core/chart/analysis/trade-setups/trade-idea-list.js +38 -3
  40. package/dist/core/chart/analysis/trade-setups/trade-idea-list.js.map +1 -1
  41. package/dist/core/chart/analysis/trade-setups/trade-idea.d.ts +4 -0
  42. package/dist/core/chart/analysis/trade-setups/trade-idea.d.ts.map +1 -1
  43. package/dist/core/chart/analysis/trade-setups/trade-idea.js +4 -0
  44. package/dist/core/chart/analysis/trade-setups/trade-idea.js.map +1 -1
  45. package/dist/core/chart/analysis/trade-setups/trade-purpose-format.d.ts +2 -0
  46. package/dist/core/chart/analysis/trade-setups/trade-purpose-format.d.ts.map +1 -1
  47. package/dist/core/chart/analysis/trade-setups/trade-purpose-format.js +6 -0
  48. package/dist/core/chart/analysis/trade-setups/trade-purpose-format.js.map +1 -1
  49. package/dist/core/chart/analysis/trade-setups/trade-setup-selection.d.ts +8 -1
  50. package/dist/core/chart/analysis/trade-setups/trade-setup-selection.d.ts.map +1 -1
  51. package/dist/core/chart/analysis/trade-setups/trade-setup-selection.js +13 -0
  52. package/dist/core/chart/analysis/trade-setups/trade-setup-selection.js.map +1 -1
  53. package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.d.ts +20 -0
  54. package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.d.ts.map +1 -1
  55. package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.js +54 -0
  56. package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.js.map +1 -1
  57. package/dist/core/chart/analysis/trade-setups/uniswap-tpsl-monitor.d.ts +41 -0
  58. package/dist/core/chart/analysis/trade-setups/uniswap-tpsl-monitor.d.ts.map +1 -0
  59. package/dist/core/chart/analysis/trade-setups/uniswap-tpsl-monitor.js +80 -0
  60. package/dist/core/chart/analysis/trade-setups/uniswap-tpsl-monitor.js.map +1 -0
  61. package/dist/core/chart/fetch-agent-view.d.ts +17 -0
  62. package/dist/core/chart/fetch-agent-view.d.ts.map +1 -0
  63. package/dist/core/chart/fetch-agent-view.js +39 -0
  64. package/dist/core/chart/fetch-agent-view.js.map +1 -0
  65. package/dist/core/chart/live/binding-extract.d.ts.map +1 -1
  66. package/dist/core/chart/live/binding-extract.js +34 -2
  67. package/dist/core/chart/live/binding-extract.js.map +1 -1
  68. package/dist/core/chart/live/fetch-tick.d.ts.map +1 -1
  69. package/dist/core/chart/live/fetch-tick.js +25 -1
  70. package/dist/core/chart/live/fetch-tick.js.map +1 -1
  71. package/dist/core/chart/live/index.d.ts +1 -1
  72. package/dist/core/chart/live/index.d.ts.map +1 -1
  73. package/dist/core/chart/live/index.js +1 -1
  74. package/dist/core/chart/live/index.js.map +1 -1
  75. package/dist/core/chart/live/schemas.d.ts +1 -0
  76. package/dist/core/chart/live/schemas.d.ts.map +1 -1
  77. package/dist/core/chart/live/schemas.js +1 -0
  78. package/dist/core/chart/live/schemas.js.map +1 -1
  79. package/dist/core/chart/overlay-schemas.d.ts +241 -0
  80. package/dist/core/chart/overlay-schemas.d.ts.map +1 -1
  81. package/dist/core/chart/overlay-schemas.js +63 -0
  82. package/dist/core/chart/overlay-schemas.js.map +1 -1
  83. package/dist/core/chart/overlays.d.ts.map +1 -1
  84. package/dist/core/chart/overlays.js +72 -1
  85. package/dist/core/chart/overlays.js.map +1 -1
  86. package/dist/core/chart/prepare-from-rows.d.ts +60 -0
  87. package/dist/core/chart/prepare-from-rows.d.ts.map +1 -1
  88. package/dist/core/chart/schemas.d.ts +240 -0
  89. package/dist/core/chart/schemas.d.ts.map +1 -1
  90. package/dist/core/coinmarketcap/schemas.d.ts +2 -2
  91. package/dist/core/elliott-waves/analyze.d.ts +38 -0
  92. package/dist/core/elliott-waves/analyze.d.ts.map +1 -0
  93. package/dist/core/elliott-waves/analyze.js +276 -0
  94. package/dist/core/elliott-waves/analyze.js.map +1 -0
  95. package/dist/core/elliott-waves/constants.d.ts +24 -0
  96. package/dist/core/elliott-waves/constants.d.ts.map +1 -0
  97. package/dist/core/elliott-waves/constants.js +24 -0
  98. package/dist/core/elliott-waves/constants.js.map +1 -0
  99. package/dist/core/elliott-waves/data-requirements.d.ts +22 -0
  100. package/dist/core/elliott-waves/data-requirements.d.ts.map +1 -0
  101. package/dist/core/elliott-waves/data-requirements.js +105 -0
  102. package/dist/core/elliott-waves/data-requirements.js.map +1 -0
  103. package/dist/core/elliott-waves/fibonacci-projector.d.ts +7 -0
  104. package/dist/core/elliott-waves/fibonacci-projector.d.ts.map +1 -0
  105. package/dist/core/elliott-waves/fibonacci-projector.js +20 -0
  106. package/dist/core/elliott-waves/fibonacci-projector.js.map +1 -0
  107. package/dist/core/elliott-waves/impulse-detector.d.ts +11 -0
  108. package/dist/core/elliott-waves/impulse-detector.d.ts.map +1 -0
  109. package/dist/core/elliott-waves/impulse-detector.js +294 -0
  110. package/dist/core/elliott-waves/impulse-detector.js.map +1 -0
  111. package/dist/core/elliott-waves/index.d.ts +10 -0
  112. package/dist/core/elliott-waves/index.d.ts.map +1 -0
  113. package/dist/core/elliott-waves/index.js +10 -0
  114. package/dist/core/elliott-waves/index.js.map +1 -0
  115. package/dist/core/elliott-waves/pivot-scanner.d.ts +40 -0
  116. package/dist/core/elliott-waves/pivot-scanner.d.ts.map +1 -0
  117. package/dist/core/elliott-waves/pivot-scanner.js +121 -0
  118. package/dist/core/elliott-waves/pivot-scanner.js.map +1 -0
  119. package/dist/core/elliott-waves/projection-builder.d.ts +32 -0
  120. package/dist/core/elliott-waves/projection-builder.d.ts.map +1 -0
  121. package/dist/core/elliott-waves/projection-builder.js +153 -0
  122. package/dist/core/elliott-waves/projection-builder.js.map +1 -0
  123. package/dist/core/elliott-waves/types.d.ts +117 -0
  124. package/dist/core/elliott-waves/types.d.ts.map +1 -0
  125. package/dist/core/elliott-waves/types.js +6 -0
  126. package/dist/core/elliott-waves/types.js.map +1 -0
  127. package/dist/core/elliott-waves/wave-labeler.d.ts +34 -0
  128. package/dist/core/elliott-waves/wave-labeler.d.ts.map +1 -0
  129. package/dist/core/elliott-waves/wave-labeler.js +95 -0
  130. package/dist/core/elliott-waves/wave-labeler.js.map +1 -0
  131. package/dist/core/elliott-waves/wave-math.d.ts +10 -0
  132. package/dist/core/elliott-waves/wave-math.d.ts.map +1 -0
  133. package/dist/core/elliott-waves/wave-math.js +61 -0
  134. package/dist/core/elliott-waves/wave-math.js.map +1 -0
  135. package/dist/core/mpc/broadcast-sign-result.d.ts +1 -0
  136. package/dist/core/mpc/broadcast-sign-result.d.ts.map +1 -1
  137. package/dist/core/mpc/broadcast-sign-result.js +129 -0
  138. package/dist/core/mpc/broadcast-sign-result.js.map +1 -1
  139. package/dist/core/mpc/deliver-arcus-exchange.d.ts +17 -0
  140. package/dist/core/mpc/deliver-arcus-exchange.d.ts.map +1 -0
  141. package/dist/core/mpc/deliver-arcus-exchange.js +380 -0
  142. package/dist/core/mpc/deliver-arcus-exchange.js.map +1 -0
  143. package/dist/core/mpc/deliver-hyperliquid-exchange.d.ts +13 -0
  144. package/dist/core/mpc/deliver-hyperliquid-exchange.d.ts.map +1 -0
  145. package/dist/core/mpc/deliver-hyperliquid-exchange.js +93 -0
  146. package/dist/core/mpc/deliver-hyperliquid-exchange.js.map +1 -0
  147. package/dist/core/mpc/deliver-personal-sign.d.ts +13 -0
  148. package/dist/core/mpc/deliver-personal-sign.d.ts.map +1 -0
  149. package/dist/core/mpc/deliver-personal-sign.js +17 -0
  150. package/dist/core/mpc/deliver-personal-sign.js.map +1 -0
  151. package/dist/core/mpc/deliver-uniswapx-limit-order.d.ts +6 -0
  152. package/dist/core/mpc/deliver-uniswapx-limit-order.d.ts.map +1 -0
  153. package/dist/core/mpc/deliver-uniswapx-limit-order.js +59 -0
  154. package/dist/core/mpc/deliver-uniswapx-limit-order.js.map +1 -0
  155. package/dist/core/mpc/eip712-sign-request.d.ts +8 -0
  156. package/dist/core/mpc/eip712-sign-request.d.ts.map +1 -0
  157. package/dist/core/mpc/eip712-sign-request.js +65 -0
  158. package/dist/core/mpc/eip712-sign-request.js.map +1 -0
  159. package/dist/core/mpc/trigger-sign-result.d.ts.map +1 -1
  160. package/dist/core/mpc/trigger-sign-result.js +15 -1
  161. package/dist/core/mpc/trigger-sign-result.js.map +1 -1
  162. package/dist/mcp/agent-host-catalog.d.ts +1 -1
  163. package/dist/mcp/agent-host-catalog.d.ts.map +1 -1
  164. package/dist/mcp/agent-host-catalog.js +2 -1
  165. package/dist/mcp/agent-host-catalog.js.map +1 -1
  166. package/dist/mcp/chart.d.ts.map +1 -1
  167. package/dist/mcp/chart.js +33 -4
  168. package/dist/mcp/chart.js.map +1 -1
  169. package/dist/mcp/deferred/tool-group-map.d.ts.map +1 -1
  170. package/dist/mcp/deferred/tool-group-map.js +7 -0
  171. package/dist/mcp/deferred/tool-group-map.js.map +1 -1
  172. package/dist/mcp/defi/bitquery-api-key.d.ts +16 -0
  173. package/dist/mcp/defi/bitquery-api-key.d.ts.map +1 -0
  174. package/dist/mcp/defi/bitquery-api-key.js +86 -0
  175. package/dist/mcp/defi/bitquery-api-key.js.map +1 -0
  176. package/dist/mcp/defi/catalog-adapter.d.ts +3 -2
  177. package/dist/mcp/defi/catalog-adapter.d.ts.map +1 -1
  178. package/dist/mcp/defi/catalog-adapter.js +7 -2
  179. package/dist/mcp/defi/catalog-adapter.js.map +1 -1
  180. package/dist/mcp/defi/defi-protocol-fetch-meta.d.ts.map +1 -1
  181. package/dist/mcp/defi/defi-protocol-fetch-meta.js +8 -4
  182. package/dist/mcp/defi/defi-protocol-fetch-meta.js.map +1 -1
  183. package/dist/mcp/defi/eip712-multisign.d.ts +26 -0
  184. package/dist/mcp/defi/eip712-multisign.d.ts.map +1 -0
  185. package/dist/mcp/defi/eip712-multisign.js +74 -0
  186. package/dist/mcp/defi/eip712-multisign.js.map +1 -0
  187. package/dist/mcp/defi/handler.d.ts.map +1 -1
  188. package/dist/mcp/defi/handler.js +46 -29
  189. package/dist/mcp/defi/handler.js.map +1 -1
  190. package/dist/mcp/defi/ohlcv-chart-workflow.d.ts +4 -2
  191. package/dist/mcp/defi/ohlcv-chart-workflow.d.ts.map +1 -1
  192. package/dist/mcp/defi/ohlcv-chart-workflow.js +20 -8
  193. package/dist/mcp/defi/ohlcv-chart-workflow.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 +36 -5
  196. package/dist/mcp/defi/register-protocol-tools.js.map +1 -1
  197. package/dist/mcp/defi/tool-schemas.d.ts +1 -3
  198. package/dist/mcp/defi/tool-schemas.d.ts.map +1 -1
  199. package/dist/mcp/defi/uniswap-api-key.d.ts.map +1 -1
  200. package/dist/mcp/defi/uniswap-api-key.js +3 -0
  201. package/dist/mcp/defi/uniswap-api-key.js.map +1 -1
  202. package/dist/mcp/defi/uniswap-limit-order-input.d.ts +10 -0
  203. package/dist/mcp/defi/uniswap-limit-order-input.d.ts.map +1 -0
  204. package/dist/mcp/defi/uniswap-limit-order-input.js +39 -0
  205. package/dist/mcp/defi/uniswap-limit-order-input.js.map +1 -0
  206. package/dist/mcp/defi/uniswap-quote-input.d.ts.map +1 -1
  207. package/dist/mcp/defi/uniswap-quote-input.js +45 -26
  208. package/dist/mcp/defi/uniswap-quote-input.js.map +1 -1
  209. package/dist/mcp/defi/uniswap-v4-ohlcv-chains.d.ts +2 -2
  210. package/dist/mcp/defi/uniswap-v4-ohlcv-chains.js +3 -3
  211. package/dist/mcp/defi/uniswap-v4-ohlcv-chains.js.map +1 -1
  212. package/dist/mcp/ohlcv-session-wrapper.d.ts.map +1 -1
  213. package/dist/mcp/ohlcv-session-wrapper.js +56 -2
  214. package/dist/mcp/ohlcv-session-wrapper.js.map +1 -1
  215. package/dist/mcp/resources/agent-cron-jobs.md +22 -1
  216. package/dist/mcp/resources/chart-analysis.md +37 -3
  217. package/dist/mcp/resources/chart.md +5 -2
  218. package/dist/mcp/resources/uniswap-tpsl-monitor-cron.example.md +27 -0
  219. package/dist/mcp/trade-tools.d.ts.map +1 -1
  220. package/dist/mcp/trade-tools.js +192 -4
  221. package/dist/mcp/trade-tools.js.map +1 -1
  222. package/package.json +2 -2
@@ -0,0 +1,301 @@
1
+ import { z } from 'zod';
2
+ import { extractLiveBindingFromFetchPayload } from '../live/binding-extract.js';
3
+ import { validateOhlcvBarsFromToolResult } from '../ohlcv-window.js';
4
+ import { attachChartLoadMeta } from '../chart-ohlcv-load-status.js';
5
+ import { runOhlcvIntegrityPipeline, rejectApplyPatternDrawingsWithoutChartContext } from '../ohlcv-integrity.js';
6
+ import { prepareChart } from '../prepare.js';
7
+ import { AGENT_CHART_DISPLAY_MAX_POINTS } from '../schemas.js';
8
+ import { prepareOhlcvBarsForAnalysis } from './ohlcv-live-merge.js';
9
+ import { missingOhlcvBarsReason, preprocessOhlcvToolInput } from './ohlcv-input.js';
10
+ const elliottAnalysisPickSchema = z
11
+ .object({
12
+ drawableWaves: z.object({}).passthrough().optional(),
13
+ waveMenu: z.array(z.object({}).passthrough()).optional(),
14
+ })
15
+ .passthrough();
16
+ function parseJsonObject(value) {
17
+ if (typeof value !== 'string') {
18
+ return value;
19
+ }
20
+ const trimmed = value.trim();
21
+ if (!trimmed.startsWith('{') && !trimmed.startsWith('[')) {
22
+ return value;
23
+ }
24
+ try {
25
+ return JSON.parse(trimmed);
26
+ }
27
+ catch {
28
+ return value;
29
+ }
30
+ }
31
+ function normalizeAnalysisInput(analysis) {
32
+ const parsed = parseJsonObject(analysis);
33
+ if (typeof parsed !== 'object' || parsed == null) {
34
+ return parsed;
35
+ }
36
+ const record = parsed;
37
+ if (record.drawableWaves == null && typeof record.analysis === 'object' && record.analysis != null) {
38
+ return record.analysis;
39
+ }
40
+ return parsed;
41
+ }
42
+ function preprocessApplyElliottWaveDrawingsInput(raw) {
43
+ const base = preprocessOhlcvToolInput(raw);
44
+ if (typeof base !== 'object' || base == null) {
45
+ return base;
46
+ }
47
+ const input = { ...base };
48
+ if (input.analysis != null) {
49
+ input.analysis = normalizeAnalysisInput(input.analysis);
50
+ }
51
+ return input;
52
+ }
53
+ export const ApplyElliottWaveDrawingsInputSchema = z.preprocess(preprocessApplyElliottWaveDrawingsInput, z
54
+ .object({
55
+ title: z.string().trim().min(1).max(256).optional(),
56
+ label: z.string().trim().min(1).max(128).optional(),
57
+ toolResult: z.unknown().optional(),
58
+ rows: z.array(z.unknown()).min(1).optional(),
59
+ prepareReplay: z.unknown().optional(),
60
+ live: z.unknown().optional(),
61
+ waveMenuNumber: z.number().int().min(1).max(64).optional(),
62
+ removeElliottWaves: z.boolean().optional(),
63
+ analysis: elliottAnalysisPickSchema.optional(),
64
+ drawableWaves: z.object({}).passthrough().optional(),
65
+ })
66
+ .strict());
67
+ function waveChartPoint(raw) {
68
+ const price = raw.price;
69
+ if (!Number.isFinite(price)) {
70
+ return null;
71
+ }
72
+ const timeRaw = raw.timeSec ?? raw.time;
73
+ if (typeof timeRaw !== 'number' || !Number.isFinite(timeRaw)) {
74
+ return null;
75
+ }
76
+ return { time: timeRaw, price };
77
+ }
78
+ function normalizeDrawableWaveSet(raw) {
79
+ const waves = raw.waves.flatMap(w => {
80
+ if (w.isInProgress) {
81
+ return [];
82
+ }
83
+ const pointA = waveChartPoint(w.pointA);
84
+ const pointB = waveChartPoint(w.pointB);
85
+ if (!pointA || !pointB) {
86
+ return [];
87
+ }
88
+ if (pointA.time === pointB.time && Math.abs(pointA.price - pointB.price) < 1e-9) {
89
+ return [];
90
+ }
91
+ return [
92
+ {
93
+ ...w,
94
+ pointA: { timeSec: pointA.time, price: pointA.price },
95
+ pointB: { timeSec: pointB.time, price: pointB.price },
96
+ },
97
+ ];
98
+ });
99
+ if (!waves.length && !(raw.levels?.length)) {
100
+ return null;
101
+ }
102
+ return {
103
+ ...raw,
104
+ waves,
105
+ markers: [],
106
+ };
107
+ }
108
+ export function drawableWavesToOverlay(drawable) {
109
+ const normalized = normalizeDrawableWaveSet(drawable);
110
+ if (!normalized) {
111
+ return null;
112
+ }
113
+ return {
114
+ type: 'elliott_waves',
115
+ patternName: normalized.patternName,
116
+ waves: normalized.waves.map(w => ({
117
+ label: w.label,
118
+ pointA: { time: w.pointA.timeSec, price: w.pointA.price },
119
+ pointB: { time: w.pointB.timeSec, price: w.pointB.price },
120
+ kind: w.kind,
121
+ isInProgress: false,
122
+ })),
123
+ levels: normalized.levels.map(l => ({
124
+ price: l.price,
125
+ label: l.label,
126
+ kind: l.kind,
127
+ role: l.role,
128
+ })),
129
+ clipToBarSpan: normalized.clipToBarSpan,
130
+ id: 'elliott_waves_primary',
131
+ };
132
+ }
133
+ export const CalculateElliottWaveDrawingsOutputSchema = z
134
+ .object({
135
+ elliottWavesOverlay: z.object({}).passthrough(),
136
+ drawableWaves: z.object({}).passthrough(),
137
+ waveMenuNumber: z.number().int(),
138
+ })
139
+ .strict();
140
+ function resolveDrawableWaves(input) {
141
+ if (input.drawableWaves && typeof input.drawableWaves === 'object') {
142
+ return input.drawableWaves;
143
+ }
144
+ const analysis = input.analysis;
145
+ if (!analysis) {
146
+ return null;
147
+ }
148
+ if (analysis.drawableWaves && typeof analysis.drawableWaves === 'object') {
149
+ return analysis.drawableWaves;
150
+ }
151
+ return null;
152
+ }
153
+ function stripDrawingOverlays(replay) {
154
+ const drawingTypes = new Set([
155
+ 'horizontal_levels',
156
+ 'pivot_levels',
157
+ 'fibonacci',
158
+ 'trend_lines',
159
+ 'chart_pattern',
160
+ 'elliott_waves',
161
+ ]);
162
+ return {
163
+ ...replay,
164
+ overlays: (replay.overlays ?? []).filter(o => !drawingTypes.has(o.type)),
165
+ };
166
+ }
167
+ function indicatorOverlaysFromReplay(replay) {
168
+ return (replay.overlays?.filter(o => o.type !== 'horizontal_levels' &&
169
+ o.type !== 'pivot_levels' &&
170
+ o.type !== 'fibonacci' &&
171
+ o.type !== 'trend_lines' &&
172
+ o.type !== 'chart_pattern' &&
173
+ o.type !== 'elliott_waves') ?? []);
174
+ }
175
+ export function calculateElliottWaveDrawings(input) {
176
+ const parsed = ApplyElliottWaveDrawingsInputSchema.safeParse(input);
177
+ if (!parsed.success) {
178
+ return { ok: false, reason: parsed.error.message };
179
+ }
180
+ const drawable = resolveDrawableWaves({
181
+ analysis: parsed.data.analysis,
182
+ drawableWaves: parsed.data.drawableWaves,
183
+ });
184
+ if (!drawable || !drawable.waves.length) {
185
+ return {
186
+ ok: false,
187
+ reason: 'No Elliott wave geometry to draw. Pass analysis from analyze_elliott_waves with drawableWaves or bound analysis.drawableWaves.',
188
+ };
189
+ }
190
+ const waveMenuNumber = parsed.data.waveMenuNumber ?? 1;
191
+ const overlay = drawableWavesToOverlay(drawable);
192
+ if (!overlay) {
193
+ return {
194
+ ok: false,
195
+ reason: 'elliott_waves produced no drawable geometry after normalizing wave points.',
196
+ };
197
+ }
198
+ return {
199
+ ok: true,
200
+ data: {
201
+ elliottWavesOverlay: overlay,
202
+ drawableWaves: drawable,
203
+ waveMenuNumber,
204
+ },
205
+ };
206
+ }
207
+ export async function applyElliottWaveDrawings(input) {
208
+ const parsed = ApplyElliottWaveDrawingsInputSchema.safeParse(input);
209
+ if (!parsed.success) {
210
+ return { ok: false, reason: parsed.error.message };
211
+ }
212
+ const chartContext = rejectApplyPatternDrawingsWithoutChartContext(parsed.data);
213
+ if (!chartContext.ok) {
214
+ return chartContext;
215
+ }
216
+ const prepared = await prepareOhlcvBarsForAnalysis({
217
+ ...parsed.data,
218
+ allowRowsOnly: Boolean(parsed.data.prepareReplay),
219
+ mergeLive: false,
220
+ });
221
+ if (!prepared.ok) {
222
+ return prepared;
223
+ }
224
+ const rawBars = prepared.data.bars;
225
+ if (!rawBars.length) {
226
+ return {
227
+ ok: false,
228
+ reason: missingOhlcvBarsReason(parsed.data) +
229
+ ' Use the same fetch JSON as the original chart — do not substitute analysis JSON or market snapshot.',
230
+ };
231
+ }
232
+ if (parsed.data.toolResult != null) {
233
+ const windowCheck = validateOhlcvBarsFromToolResult(rawBars, parsed.data.toolResult, parsed.data.title);
234
+ if (!windowCheck.ok) {
235
+ return windowCheck;
236
+ }
237
+ }
238
+ const integrity = runOhlcvIntegrityPipeline(rawBars, {
239
+ toolResult: parsed.data.toolResult,
240
+ rows: parsed.data.rows,
241
+ allowRowsOnly: Boolean(parsed.data.prepareReplay),
242
+ });
243
+ if (!integrity.ok) {
244
+ return integrity;
245
+ }
246
+ let baseReplay = parsed.data.prepareReplay ?? {};
247
+ const indicatorOverlays = indicatorOverlaysFromReplay(baseReplay);
248
+ let mergedOverlays = [...indicatorOverlays];
249
+ if (parsed.data.removeElliottWaves) {
250
+ baseReplay = stripDrawingOverlays(baseReplay);
251
+ }
252
+ else {
253
+ const calc = calculateElliottWaveDrawings(parsed.data);
254
+ if (!calc.ok) {
255
+ return calc;
256
+ }
257
+ const overlay = calc.data.elliottWavesOverlay;
258
+ baseReplay = stripDrawingOverlays(baseReplay);
259
+ mergedOverlays = [...indicatorOverlays, overlay];
260
+ }
261
+ const nextTitle = parsed.data.title?.trim() || 'Chart';
262
+ const skipDefaults = baseReplay.skipDefaultOverlays === true ||
263
+ baseReplay.usedDefaultOverlays === true ||
264
+ indicatorOverlays.length > 0;
265
+ const chartResult = prepareChart({
266
+ title: nextTitle,
267
+ bars: rawBars,
268
+ ...(mergedOverlays.length ? { overlays: mergedOverlays } : {}),
269
+ options: {
270
+ maxPoints: AGENT_CHART_DISPLAY_MAX_POINTS,
271
+ ...(skipDefaults ? { skipDefaultOverlays: true } : {}),
272
+ },
273
+ });
274
+ if (!chartResult.ok) {
275
+ return chartResult;
276
+ }
277
+ const live = parsed.data.live != null
278
+ ? parsed.data.live
279
+ : parsed.data.toolResult != null
280
+ ? extractLiveBindingFromFetchPayload(parsed.data.toolResult, {
281
+ maxPoints: AGENT_CHART_DISPLAY_MAX_POINTS,
282
+ })
283
+ : undefined;
284
+ return {
285
+ ok: true,
286
+ data: attachChartLoadMeta({
287
+ ...chartResult.data,
288
+ prepareReplay: {
289
+ ...baseReplay,
290
+ overlays: mergedOverlays,
291
+ ...(skipDefaults ? { skipDefaultOverlays: true, usedDefaultOverlays: true } : {}),
292
+ },
293
+ ...(live ? { live } : {}),
294
+ }, rawBars, {
295
+ toolResult: parsed.data.toolResult,
296
+ title: parsed.data.title ?? nextTitle,
297
+ ohlcvFingerprint: integrity.data.fingerprint ?? prepared.data.fingerprint ?? undefined,
298
+ }),
299
+ };
300
+ }
301
+ //# sourceMappingURL=elliott-wave-drawings-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elliott-wave-drawings-tools.js","sourceRoot":"","sources":["../../../../src/core/chart/analysis/elliott-wave-drawings-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ import { z } from 'zod';
2
+ import type { SdkResult } from '../../result.js';
3
+ export declare const AnalyzeElliottWavesInputSchema: z.ZodPreprocess<z.ZodObject<{
4
+ toolResult: z.ZodOptional<z.ZodUnknown>;
5
+ rows: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
6
+ title: z.ZodOptional<z.ZodString>;
7
+ label: z.ZodOptional<z.ZodString>;
8
+ mergeLive: z.ZodOptional<z.ZodBoolean>;
9
+ liveTick: z.ZodOptional<z.ZodObject<{
10
+ timeMs: z.ZodNumber;
11
+ price: z.ZodNumber;
12
+ volume: z.ZodOptional<z.ZodNumber>;
13
+ }, z.core.$strict>>;
14
+ allowRowsOnly: z.ZodOptional<z.ZodBoolean>;
15
+ waveMenuNumber: z.ZodOptional<z.ZodNumber>;
16
+ entryProximityPct: z.ZodOptional<z.ZodNumber>;
17
+ entryProximityMode: z.ZodOptional<z.ZodEnum<{
18
+ price: "price";
19
+ atr: "atr";
20
+ }>>;
21
+ entryProximityAtrPeriod: z.ZodOptional<z.ZodNumber>;
22
+ entryOffsetPct: z.ZodOptional<z.ZodNumber>;
23
+ invalidationOffsetPct: z.ZodOptional<z.ZodNumber>;
24
+ }, z.core.$strict>>;
25
+ export declare const AnalyzeElliottWavesOutputSchema: z.ZodObject<{
26
+ analysis: z.ZodObject<{
27
+ dataStatus: z.ZodEnum<{
28
+ ok: "ok";
29
+ insufficient_data: "insufficient_data";
30
+ }>;
31
+ dataGuidance: z.ZodString;
32
+ effectiveDegree: z.ZodEnum<{
33
+ minor: "minor";
34
+ intermediate: "intermediate";
35
+ primary: "primary";
36
+ }>;
37
+ minBarsRequired: z.ZodNumber;
38
+ trendDirection: z.ZodEnum<{
39
+ up: "up";
40
+ down: "down";
41
+ }>;
42
+ patternType: z.ZodEnum<{
43
+ corrective: "corrective";
44
+ impulse: "impulse";
45
+ diagonal: "diagonal";
46
+ }>;
47
+ confirmedWaveCount: z.ZodNumber;
48
+ inProgressWave: z.ZodOptional<z.ZodString>;
49
+ interpretation: z.ZodString;
50
+ confidence: z.ZodNumber;
51
+ waveMenu: z.ZodArray<z.ZodObject<{
52
+ index: z.ZodNumber;
53
+ waveMenuNumber: z.ZodNumber;
54
+ degree: z.ZodEnum<{
55
+ minor: "minor";
56
+ intermediate: "intermediate";
57
+ primary: "primary";
58
+ }>;
59
+ patternType: z.ZodEnum<{
60
+ corrective: "corrective";
61
+ impulse: "impulse";
62
+ diagonal: "diagonal";
63
+ }>;
64
+ labels: z.ZodArray<z.ZodString>;
65
+ barSpan: z.ZodObject<{
66
+ fromTimeSec: z.ZodNumber;
67
+ toTimeSec: z.ZodNumber;
68
+ }, z.core.$strict>;
69
+ confidence: z.ZodNumber;
70
+ isPrimary: z.ZodBoolean;
71
+ keyLevels: z.ZodArray<z.ZodObject<{
72
+ price: z.ZodNumber;
73
+ label: z.ZodString;
74
+ role: z.ZodEnum<{
75
+ target: "target";
76
+ invalidation: "invalidation";
77
+ pivot: "pivot";
78
+ }>;
79
+ }, z.core.$strict>>;
80
+ invalidation: z.ZodOptional<z.ZodObject<{
81
+ price: z.ZodNumber;
82
+ label: z.ZodString;
83
+ }, z.core.$strict>>;
84
+ }, z.core.$strict>>;
85
+ keyLevels: z.ZodArray<z.ZodObject<{
86
+ price: z.ZodNumber;
87
+ label: z.ZodString;
88
+ role: z.ZodEnum<{
89
+ target: "target";
90
+ invalidation: "invalidation";
91
+ pivot: "pivot";
92
+ }>;
93
+ }, z.core.$strict>>;
94
+ lastClose: z.ZodNumber;
95
+ elliottWaveTradeSetup: z.ZodObject<{}, z.core.$loose>;
96
+ drawableWaves: z.ZodObject<{}, z.core.$loose>;
97
+ }, z.core.$strict>;
98
+ meta: z.ZodObject<{
99
+ barCount: z.ZodNumber;
100
+ title: z.ZodOptional<z.ZodString>;
101
+ ohlcvSummary: z.ZodOptional<z.ZodObject<{
102
+ barCount: z.ZodNumber;
103
+ timeStartSec: z.ZodNumber;
104
+ timeEndSec: z.ZodNumber;
105
+ low: z.ZodNumber;
106
+ high: z.ZodNumber;
107
+ lastClose: z.ZodNumber;
108
+ }, z.core.$strict>>;
109
+ ohlcvFingerprint: z.ZodOptional<z.ZodObject<{
110
+ version: z.ZodLiteral<1>;
111
+ barCount: z.ZodNumber;
112
+ timeStartSec: z.ZodNumber;
113
+ timeEndSec: z.ZodNumber;
114
+ low: z.ZodNumber;
115
+ high: z.ZodNumber;
116
+ lastClose: z.ZodNumber;
117
+ digest: z.ZodString;
118
+ }, z.core.$strict>>;
119
+ fetchContext: z.ZodOptional<z.ZodObject<{
120
+ interval: z.ZodNullable<z.ZodString>;
121
+ intervalSec: z.ZodNullable<z.ZodNumber>;
122
+ lookbackDays: z.ZodNullable<z.ZodNumber>;
123
+ lookbackHours: z.ZodNullable<z.ZodNumber>;
124
+ lookbackLabel: z.ZodNullable<z.ZodString>;
125
+ coin: z.ZodNullable<z.ZodString>;
126
+ declaredBarCount: z.ZodNullable<z.ZodNumber>;
127
+ windowExpectedBarCount: z.ZodNullable<z.ZodNumber>;
128
+ expectedBarCount: z.ZodNullable<z.ZodNumber>;
129
+ }, z.core.$strict>>;
130
+ windowExpectation: z.ZodOptional<z.ZodObject<{
131
+ interval: z.ZodNullable<z.ZodString>;
132
+ intervalSec: z.ZodNullable<z.ZodNumber>;
133
+ lookbackLabel: z.ZodNullable<z.ZodString>;
134
+ expectedBarCount: z.ZodNullable<z.ZodNumber>;
135
+ minBarCount: z.ZodNullable<z.ZodNumber>;
136
+ sources: z.ZodArray<z.ZodString>;
137
+ }, z.core.$strict>>;
138
+ liveMerge: z.ZodOptional<z.ZodObject<{
139
+ attempted: z.ZodBoolean;
140
+ merged: z.ZodBoolean;
141
+ livePrice: z.ZodOptional<z.ZodNumber>;
142
+ liveTickTimeMs: z.ZodOptional<z.ZodNumber>;
143
+ priorLastClose: z.ZodOptional<z.ZodNumber>;
144
+ barRolledOver: z.ZodOptional<z.ZodBoolean>;
145
+ skippedReason: z.ZodOptional<z.ZodString>;
146
+ }, z.core.$strict>>;
147
+ patternsScanned: z.ZodOptional<z.ZodNumber>;
148
+ dataPolicy: z.ZodString;
149
+ warnings: z.ZodOptional<z.ZodArray<z.ZodString>>;
150
+ sessionBind: z.ZodOptional<z.ZodObject<{
151
+ ohlcvDigest: z.ZodString;
152
+ title: z.ZodOptional<z.ZodString>;
153
+ reuseInput: z.ZodObject<{
154
+ title: z.ZodOptional<z.ZodString>;
155
+ ohlcvDigest: z.ZodString;
156
+ }, z.core.$strict>;
157
+ }, z.core.$strict>>;
158
+ }, z.core.$strict>;
159
+ }, z.core.$strict>;
160
+ export declare function analyzeElliottWavesTool(input: unknown): Promise<SdkResult<z.infer<typeof AnalyzeElliottWavesOutputSchema>>>;
161
+ //# sourceMappingURL=elliott-waves-analyze-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elliott-waves-analyze-tools.d.ts","sourceRoot":"","sources":["../../../../src/core/chart/analysis/elliott-waves-analyze-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AA2B/C,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;mBAA0D,CAAC;AAyBtG,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA+BlC,CAAC;AAEX,wBAAsB,uBAAuB,CAC5C,KAAK,EAAE,OAAO,GACZ,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC,CAAC,CAwErE"}
@@ -0,0 +1,139 @@
1
+ import { z } from 'zod';
2
+ import { analyzeElliottWaves } from '../../elliott-waves/analyze.js';
3
+ import { runOhlcvIntegrityPipeline } from '../ohlcv-integrity.js';
4
+ import { buildOhlcvAnalysisMeta, OhlcvAnalysisMetaSchema } from './analysis-meta.js';
5
+ import { prepareOhlcvBarsForAnalysis } from './ohlcv-live-merge.js';
6
+ import { preprocessOhlcvToolInput, missingOhlcvBarsReason } from './ohlcv-input.js';
7
+ import { ohlcvToolRejectIfLineOnly } from './time-series-analyze-tools.js';
8
+ import { ChartLiveTickSchema } from '../live/schemas.js';
9
+ import { buildElliottWaveTradeSetup } from './trade-setups/elliott-waves-trade-setup.js';
10
+ import { tradeDeskUniversalInputSchema } from './trade-setups/trade-desk-universal-input.js';
11
+ import { THRESHOLDS } from '../../elliott-waves/constants.js';
12
+ const barsInputSchema = z
13
+ .object({
14
+ toolResult: z.unknown().optional(),
15
+ rows: z.array(z.unknown()).min(1).optional(),
16
+ title: z.string().trim().min(1).max(256).optional(),
17
+ label: z.string().trim().min(1).max(128).optional(),
18
+ mergeLive: z.boolean().optional(),
19
+ liveTick: ChartLiveTickSchema.optional(),
20
+ allowRowsOnly: z.boolean().optional(),
21
+ /** 1-based waveMenu # for trade re-bind (default primary #1). */
22
+ waveMenuNumber: z.number().int().min(1).max(64).optional(),
23
+ })
24
+ .merge(tradeDeskUniversalInputSchema)
25
+ .strict();
26
+ export const AnalyzeElliottWavesInputSchema = z.preprocess(preprocessOhlcvToolInput, barsInputSchema);
27
+ const waveMenuEntrySchema = z
28
+ .object({
29
+ index: z.number().int(),
30
+ waveMenuNumber: z.number().int(),
31
+ degree: z.enum(['minor', 'intermediate', 'primary']),
32
+ patternType: z.enum(['impulse', 'diagonal', 'corrective']),
33
+ labels: z.array(z.string()),
34
+ barSpan: z.object({ fromTimeSec: z.number(), toTimeSec: z.number() }).strict(),
35
+ confidence: z.number(),
36
+ isPrimary: z.boolean(),
37
+ keyLevels: z.array(z
38
+ .object({
39
+ price: z.number(),
40
+ label: z.string(),
41
+ role: z.enum(['target', 'invalidation', 'pivot']),
42
+ })
43
+ .strict()),
44
+ invalidation: z.object({ price: z.number(), label: z.string() }).strict().optional(),
45
+ })
46
+ .strict();
47
+ export const AnalyzeElliottWavesOutputSchema = z
48
+ .object({
49
+ analysis: z
50
+ .object({
51
+ dataStatus: z.enum(['ok', 'insufficient_data']),
52
+ dataGuidance: z.string(),
53
+ effectiveDegree: z.enum(['minor', 'intermediate', 'primary']),
54
+ minBarsRequired: z.number().int(),
55
+ trendDirection: z.enum(['up', 'down']),
56
+ patternType: z.enum(['impulse', 'diagonal', 'corrective']),
57
+ confirmedWaveCount: z.number().int(),
58
+ inProgressWave: z.string().optional(),
59
+ interpretation: z.string(),
60
+ confidence: z.number(),
61
+ waveMenu: z.array(waveMenuEntrySchema),
62
+ keyLevels: z.array(z
63
+ .object({
64
+ price: z.number(),
65
+ label: z.string(),
66
+ role: z.enum(['target', 'invalidation', 'pivot']),
67
+ })
68
+ .strict()),
69
+ lastClose: z.number(),
70
+ elliottWaveTradeSetup: z.object({}).passthrough(),
71
+ drawableWaves: z.object({}).passthrough(),
72
+ })
73
+ .strict(),
74
+ meta: OhlcvAnalysisMetaSchema,
75
+ })
76
+ .strict();
77
+ export async function analyzeElliottWavesTool(input) {
78
+ const parsed = AnalyzeElliottWavesInputSchema.safeParse(input);
79
+ if (!parsed.success) {
80
+ return { ok: false, reason: parsed.error.message };
81
+ }
82
+ const lineReject = ohlcvToolRejectIfLineOnly(parsed.data);
83
+ if (lineReject) {
84
+ return lineReject;
85
+ }
86
+ const prepared = await prepareOhlcvBarsForAnalysis(parsed.data);
87
+ if (!prepared.ok) {
88
+ return prepared;
89
+ }
90
+ const { bars, liveMerge, fingerprint } = prepared.data;
91
+ if (!bars.length) {
92
+ return { ok: false, reason: missingOhlcvBarsReason(parsed.data) };
93
+ }
94
+ const integrity = runOhlcvIntegrityPipeline(bars, parsed.data);
95
+ if (!integrity.ok) {
96
+ return integrity;
97
+ }
98
+ if (bars.length < THRESHOLDS.absoluteMinBars) {
99
+ return {
100
+ ok: false,
101
+ reason: `Need at least ${THRESHOLDS.absoluteMinBars} OHLCV bars for Elliott wave analysis (got ${bars.length}). ` +
102
+ missingOhlcvBarsReason(parsed.data),
103
+ };
104
+ }
105
+ const meta = buildOhlcvAnalysisMeta(bars, {
106
+ title: parsed.data.title,
107
+ toolResult: parsed.data.toolResult,
108
+ liveMerge,
109
+ ohlcvFingerprint: fingerprint,
110
+ });
111
+ const interval = typeof meta.fetchContext?.interval === 'string' ? meta.fetchContext.interval : undefined;
112
+ const result = analyzeElliottWaves({ bars, interval });
113
+ const waveMenuNumber = parsed.data.waveMenuNumber ?? 1;
114
+ const elliottWaveTradeSetup = buildElliottWaveTradeSetup(result, waveMenuNumber);
115
+ return {
116
+ ok: true,
117
+ data: {
118
+ analysis: {
119
+ dataStatus: result.dataStatus,
120
+ dataGuidance: result.dataGuidance,
121
+ effectiveDegree: result.effectiveDegree,
122
+ minBarsRequired: result.minBarsRequired,
123
+ trendDirection: result.trendDirection,
124
+ patternType: result.patternType,
125
+ confirmedWaveCount: result.confirmedWaveCount,
126
+ ...(result.inProgressWave ? { inProgressWave: result.inProgressWave } : {}),
127
+ interpretation: result.interpretation,
128
+ confidence: result.confidence,
129
+ waveMenu: result.waveMenu,
130
+ keyLevels: result.keyLevels,
131
+ lastClose: result.lastClose,
132
+ elliottWaveTradeSetup,
133
+ drawableWaves: result.drawableWaves,
134
+ },
135
+ meta,
136
+ },
137
+ };
138
+ }
139
+ //# sourceMappingURL=elliott-waves-analyze-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elliott-waves-analyze-tools.js","sourceRoot":"","sources":["../../../../src/core/chart/analysis/elliott-waves-analyze-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { NodeSdkConfig } from '../../../../config/schema.js';
2
+ import type { SdkResult } from '../../../result.js';
3
+ import type { DefiProtocolContext } from '../../../../mcp/defi/context.js';
4
+ import type { TradeIdea } from './trade-idea.js';
5
+ import type { BuildTradeFromTradeIdeaInput } from './build-trade.js';
6
+ export declare function buildUniswapLimitOrderFromTradeIdea(config: NodeSdkConfig, defiContext: DefiProtocolContext, idea: TradeIdea, input: BuildTradeFromTradeIdeaInput): Promise<SdkResult<{
7
+ requestId: string;
8
+ mappedTool: string;
9
+ }>>;
10
+ //# sourceMappingURL=build-trade-uniswap-limit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-trade-uniswap-limit.d.ts","sourceRoot":"","sources":["../../../../../src/core/chart/analysis/trade-setups/build-trade-uniswap-limit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,iCAAiC,CAAC;AAEzE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAC,4BAA4B,EAAC,MAAM,kBAAkB,CAAC;AAgCnE,wBAAsB,mCAAmC,CACxD,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,mBAAmB,EAChC,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,4BAA4B,GACjC,OAAO,CAAC,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC,CAyG7D"}