@continuumdao/continuum-node-sdk 1.3.25 → 1.3.27
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.
- package/README.md +15 -1
- package/dist/agent-host-catalog.json +189 -0
- package/dist/core/agent/agent-chart-data-access-assert.d.ts +7 -0
- package/dist/core/agent/agent-chart-data-access-assert.d.ts.map +1 -0
- package/dist/core/agent/agent-chart-data-access-assert.js +27 -0
- package/dist/core/agent/agent-chart-data-access-assert.js.map +1 -0
- package/dist/core/agent/agent-chart-data-access.d.ts +11 -0
- package/dist/core/agent/agent-chart-data-access.d.ts.map +1 -0
- package/dist/core/agent/agent-chart-data-access.js +42 -0
- package/dist/core/agent/agent-chart-data-access.js.map +1 -0
- package/dist/core/agent/environment-variables.d.ts +8 -1
- package/dist/core/agent/environment-variables.d.ts.map +1 -1
- package/dist/core/agent/environment-variables.js +44 -1
- package/dist/core/agent/environment-variables.js.map +1 -1
- package/dist/core/agent/mcp-servers.d.ts +8 -1
- package/dist/core/agent/mcp-servers.d.ts.map +1 -1
- package/dist/core/agent/mcp-servers.js +50 -1
- package/dist/core/agent/mcp-servers.js.map +1 -1
- package/dist/core/agent/skills.d.ts +6 -0
- package/dist/core/agent/skills.d.ts.map +1 -1
- package/dist/core/agent/skills.js +40 -1
- package/dist/core/agent/skills.js.map +1 -1
- package/dist/core/candlestick-patterns/calibration-weights.d.ts +3 -0
- package/dist/core/candlestick-patterns/calibration-weights.d.ts.map +1 -0
- package/dist/core/candlestick-patterns/calibration-weights.js +3 -0
- package/dist/core/candlestick-patterns/calibration-weights.js.map +1 -0
- package/dist/core/candlestick-patterns/candle-settings.d.ts +50 -0
- package/dist/core/candlestick-patterns/candle-settings.d.ts.map +1 -0
- package/dist/core/candlestick-patterns/candle-settings.js +127 -0
- package/dist/core/candlestick-patterns/candle-settings.js.map +1 -0
- package/dist/core/candlestick-patterns/catalog.d.ts +7 -0
- package/dist/core/candlestick-patterns/catalog.d.ts.map +1 -0
- package/dist/core/candlestick-patterns/catalog.js +191 -0
- package/dist/core/candlestick-patterns/catalog.js.map +1 -0
- package/dist/core/candlestick-patterns/index.d.ts +7 -0
- package/dist/core/candlestick-patterns/index.d.ts.map +1 -0
- package/dist/core/candlestick-patterns/index.js +6 -0
- package/dist/core/candlestick-patterns/index.js.map +1 -0
- package/dist/core/candlestick-patterns/patterns/detect.d.ts +21 -0
- package/dist/core/candlestick-patterns/patterns/detect.d.ts.map +1 -0
- package/dist/core/candlestick-patterns/patterns/detect.js +515 -0
- package/dist/core/candlestick-patterns/patterns/detect.js.map +1 -0
- package/dist/core/candlestick-patterns/recommendation.d.ts +3 -0
- package/dist/core/candlestick-patterns/recommendation.d.ts.map +1 -0
- package/dist/core/candlestick-patterns/recommendation.js +92 -0
- package/dist/core/candlestick-patterns/recommendation.js.map +1 -0
- package/dist/core/candlestick-patterns/scan.d.ts +8 -0
- package/dist/core/candlestick-patterns/scan.d.ts.map +1 -0
- package/dist/core/candlestick-patterns/scan.js +70 -0
- package/dist/core/candlestick-patterns/scan.js.map +1 -0
- package/dist/core/candlestick-patterns/types.d.ts +47 -0
- package/dist/core/candlestick-patterns/types.d.ts.map +1 -0
- package/dist/core/candlestick-patterns/types.js +2 -0
- package/dist/core/candlestick-patterns/types.js.map +1 -0
- package/dist/core/chart/analysis/analysis-agent-view.d.ts +6 -0
- package/dist/core/chart/analysis/analysis-agent-view.d.ts.map +1 -0
- package/dist/core/chart/analysis/analysis-agent-view.js +197 -0
- package/dist/core/chart/analysis/analysis-agent-view.js.map +1 -0
- package/dist/core/chart/analysis/analysis-catalog.d.ts +18 -0
- package/dist/core/chart/analysis/analysis-catalog.d.ts.map +1 -0
- package/dist/core/chart/analysis/analysis-catalog.js +108 -0
- package/dist/core/chart/analysis/analysis-catalog.js.map +1 -0
- package/dist/core/chart/analysis/analysis-meta.d.ts +97 -0
- package/dist/core/chart/analysis/analysis-meta.d.ts.map +1 -0
- package/dist/core/chart/analysis/analysis-meta.js +86 -0
- package/dist/core/chart/analysis/analysis-meta.js.map +1 -0
- package/dist/core/chart/analysis/analyze-tools.d.ts +634 -0
- package/dist/core/chart/analysis/analyze-tools.d.ts.map +1 -0
- package/dist/core/chart/analysis/analyze-tools.js +785 -0
- package/dist/core/chart/analysis/analyze-tools.js.map +1 -0
- package/dist/core/chart/analysis/candlestick-patterns-tools.d.ts +125 -0
- package/dist/core/chart/analysis/candlestick-patterns-tools.d.ts.map +1 -0
- package/dist/core/chart/analysis/candlestick-patterns-tools.js +159 -0
- package/dist/core/chart/analysis/candlestick-patterns-tools.js.map +1 -0
- package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts +105 -0
- package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts.map +1 -0
- package/dist/core/chart/analysis/chart-patterns-drawings-tools.js +512 -0
- package/dist/core/chart/analysis/chart-patterns-drawings-tools.js.map +1 -0
- package/dist/core/chart/analysis/chart-patterns-tools.d.ts +542 -0
- package/dist/core/chart/analysis/chart-patterns-tools.d.ts.map +1 -0
- package/dist/core/chart/analysis/chart-patterns-tools.js +283 -0
- package/dist/core/chart/analysis/chart-patterns-tools.js.map +1 -0
- package/dist/core/chart/analysis/key-fib-drawings-tools.d.ts +42 -0
- package/dist/core/chart/analysis/key-fib-drawings-tools.d.ts.map +1 -0
- package/dist/core/chart/analysis/key-fib-drawings-tools.js +140 -0
- package/dist/core/chart/analysis/key-fib-drawings-tools.js.map +1 -0
- package/dist/core/chart/analysis/key-level-break-detect.d.ts +27 -0
- package/dist/core/chart/analysis/key-level-break-detect.d.ts.map +1 -0
- package/dist/core/chart/analysis/key-level-break-detect.js +156 -0
- package/dist/core/chart/analysis/key-level-break-detect.js.map +1 -0
- package/dist/core/chart/analysis/key-level-drawings-shared.d.ts +109 -0
- package/dist/core/chart/analysis/key-level-drawings-shared.d.ts.map +1 -0
- package/dist/core/chart/analysis/key-level-drawings-shared.js +335 -0
- package/dist/core/chart/analysis/key-level-drawings-shared.js.map +1 -0
- package/dist/core/chart/analysis/key-level-drawings-tools.d.ts +42 -0
- package/dist/core/chart/analysis/key-level-drawings-tools.d.ts.map +1 -0
- package/dist/core/chart/analysis/key-level-drawings-tools.js +140 -0
- package/dist/core/chart/analysis/key-level-drawings-tools.js.map +1 -0
- package/dist/core/chart/analysis/key-level-menu-summary.d.ts +84 -0
- package/dist/core/chart/analysis/key-level-menu-summary.d.ts.map +1 -0
- package/dist/core/chart/analysis/key-level-menu-summary.js +257 -0
- package/dist/core/chart/analysis/key-level-menu-summary.js.map +1 -0
- package/dist/core/chart/analysis/key-levels-dataset.d.ts +17 -0
- package/dist/core/chart/analysis/key-levels-dataset.d.ts.map +1 -0
- package/dist/core/chart/analysis/key-levels-dataset.js +44 -0
- package/dist/core/chart/analysis/key-levels-dataset.js.map +1 -0
- package/dist/core/chart/analysis/ohlcv-input.d.ts +39 -0
- package/dist/core/chart/analysis/ohlcv-input.d.ts.map +1 -0
- package/dist/core/chart/analysis/ohlcv-input.js +89 -0
- package/dist/core/chart/analysis/ohlcv-input.js.map +1 -0
- package/dist/core/chart/analysis/ohlcv-live-merge.d.ts +39 -0
- package/dist/core/chart/analysis/ohlcv-live-merge.d.ts.map +1 -0
- package/dist/core/chart/analysis/ohlcv-live-merge.js +158 -0
- package/dist/core/chart/analysis/ohlcv-live-merge.js.map +1 -0
- package/dist/core/chart/analysis/time-series-analyze-tools.d.ts +98 -0
- package/dist/core/chart/analysis/time-series-analyze-tools.d.ts.map +1 -0
- package/dist/core/chart/analysis/time-series-analyze-tools.js +343 -0
- package/dist/core/chart/analysis/time-series-analyze-tools.js.map +1 -0
- package/dist/core/chart/analysis/time-series-input.d.ts +15 -0
- package/dist/core/chart/analysis/time-series-input.d.ts.map +1 -0
- package/dist/core/chart/analysis/time-series-input.js +155 -0
- package/dist/core/chart/analysis/time-series-input.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/build-trade-uniswap.d.ts +10 -0
- package/dist/core/chart/analysis/trade-setups/build-trade-uniswap.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/build-trade-uniswap.js +128 -0
- package/dist/core/chart/analysis/trade-setups/build-trade-uniswap.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/build-trade.d.ts +46 -0
- package/dist/core/chart/analysis/trade-setups/build-trade.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/build-trade.js +288 -0
- package/dist/core/chart/analysis/trade-setups/build-trade.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/candlestick-trade-setup.d.ts +50 -0
- package/dist/core/chart/analysis/trade-setups/candlestick-trade-setup.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/candlestick-trade-setup.js +80 -0
- package/dist/core/chart/analysis/trade-setups/candlestick-trade-setup.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/chart-pattern-trade-setup.d.ts +56 -0
- package/dist/core/chart/analysis/trade-setups/chart-pattern-trade-setup.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/chart-pattern-trade-setup.js +223 -0
- package/dist/core/chart/analysis/trade-setups/chart-pattern-trade-setup.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/index.d.ts +13 -0
- package/dist/core/chart/analysis/trade-setups/index.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/index.js +13 -0
- package/dist/core/chart/analysis/trade-setups/index.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.d.ts +105 -0
- package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.js +452 -0
- package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.d.ts +110 -0
- package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.js +344 -0
- package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/momentum-trade-setup.d.ts +39 -0
- package/dist/core/chart/analysis/trade-setups/momentum-trade-setup.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/momentum-trade-setup.js +64 -0
- package/dist/core/chart/analysis/trade-setups/momentum-trade-setup.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/pattern-limit-entry.d.ts +42 -0
- package/dist/core/chart/analysis/trade-setups/pattern-limit-entry.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/pattern-limit-entry.js +395 -0
- package/dist/core/chart/analysis/trade-setups/pattern-limit-entry.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/shared.d.ts +21 -0
- package/dist/core/chart/analysis/trade-setups/shared.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/shared.js +48 -0
- package/dist/core/chart/analysis/trade-setups/shared.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/trade-consensus.d.ts +22 -0
- package/dist/core/chart/analysis/trade-setups/trade-consensus.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/trade-consensus.js +95 -0
- package/dist/core/chart/analysis/trade-setups/trade-consensus.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.d.ts +11 -0
- package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.js +13 -0
- package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/trade-entry-gates.d.ts +40 -0
- package/dist/core/chart/analysis/trade-setups/trade-entry-gates.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/trade-entry-gates.js +84 -0
- package/dist/core/chart/analysis/trade-setups/trade-entry-gates.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/trade-idea-list.d.ts +46 -0
- package/dist/core/chart/analysis/trade-setups/trade-idea-list.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/trade-idea-list.js +95 -0
- package/dist/core/chart/analysis/trade-setups/trade-idea-list.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/trade-idea.d.ts +72 -0
- package/dist/core/chart/analysis/trade-setups/trade-idea.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/trade-idea.js +182 -0
- package/dist/core/chart/analysis/trade-setups/trade-idea.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/trade-purpose-format.d.ts +43 -0
- package/dist/core/chart/analysis/trade-setups/trade-purpose-format.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/trade-purpose-format.js +183 -0
- package/dist/core/chart/analysis/trade-setups/trade-purpose-format.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.d.ts +59 -0
- package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.js +138 -0
- package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.js.map +1 -0
- package/dist/core/chart/analysis/trend-line-drawings-tools.d.ts +56 -0
- package/dist/core/chart/analysis/trend-line-drawings-tools.d.ts.map +1 -0
- package/dist/core/chart/analysis/trend-line-drawings-tools.js +271 -0
- package/dist/core/chart/analysis/trend-line-drawings-tools.js.map +1 -0
- package/dist/core/chart/analysis/trend-line-menu-summary.d.ts +38 -0
- package/dist/core/chart/analysis/trend-line-menu-summary.d.ts.map +1 -0
- package/dist/core/chart/analysis/trend-line-menu-summary.js +94 -0
- package/dist/core/chart/analysis/trend-line-menu-summary.js.map +1 -0
- package/dist/core/chart/apply-chart-drawings.d.ts +3 -0
- package/dist/core/chart/apply-chart-drawings.d.ts.map +1 -1
- package/dist/core/chart/apply-chart-drawings.js +101 -31
- package/dist/core/chart/apply-chart-drawings.js.map +1 -1
- package/dist/core/chart/chart-agent-view.d.ts +4 -0
- package/dist/core/chart/chart-agent-view.d.ts.map +1 -0
- package/dist/core/chart/chart-agent-view.js +27 -0
- package/dist/core/chart/chart-agent-view.js.map +1 -0
- package/dist/core/chart/chart-data-validation.d.ts +63 -0
- package/dist/core/chart/chart-data-validation.d.ts.map +1 -0
- package/dist/core/chart/chart-data-validation.js +320 -0
- package/dist/core/chart/chart-data-validation.js.map +1 -0
- package/dist/core/chart/chart-ohlcv-load-status.d.ts +39 -0
- package/dist/core/chart/chart-ohlcv-load-status.d.ts.map +1 -0
- package/dist/core/chart/chart-ohlcv-load-status.js +281 -0
- package/dist/core/chart/chart-ohlcv-load-status.js.map +1 -0
- package/dist/core/chart/chart-ohlcv-summary.d.ts +58 -0
- package/dist/core/chart/chart-ohlcv-summary.d.ts.map +1 -0
- package/dist/core/chart/chart-ohlcv-summary.js +118 -0
- package/dist/core/chart/chart-ohlcv-summary.js.map +1 -0
- package/dist/core/chart/chart-pattern-session-store.d.ts +39 -0
- package/dist/core/chart/chart-pattern-session-store.d.ts.map +1 -0
- package/dist/core/chart/chart-pattern-session-store.js +94 -0
- package/dist/core/chart/chart-pattern-session-store.js.map +1 -0
- package/dist/core/chart/customization-catalog.d.ts.map +1 -1
- package/dist/core/chart/customization-catalog.js +8 -2
- package/dist/core/chart/customization-catalog.js.map +1 -1
- package/dist/core/chart/display-downsample.d.ts +9 -0
- package/dist/core/chart/display-downsample.d.ts.map +1 -0
- package/dist/core/chart/display-downsample.js +79 -0
- package/dist/core/chart/display-downsample.js.map +1 -0
- package/dist/core/chart/index.d.ts +2 -1
- package/dist/core/chart/index.d.ts.map +1 -1
- package/dist/core/chart/index.js +2 -1
- package/dist/core/chart/index.js.map +1 -1
- package/dist/core/chart/levels/calculate-tools.d.ts +8 -0
- package/dist/core/chart/levels/calculate-tools.d.ts.map +1 -1
- package/dist/core/chart/levels/calculate-tools.js +9 -3
- package/dist/core/chart/levels/calculate-tools.js.map +1 -1
- package/dist/core/chart/levels/trend-lines.d.ts +3 -0
- package/dist/core/chart/levels/trend-lines.d.ts.map +1 -1
- package/dist/core/chart/levels/trend-lines.js +6 -3
- package/dist/core/chart/levels/trend-lines.js.map +1 -1
- package/dist/core/chart/live/binding-extract.d.ts.map +1 -1
- package/dist/core/chart/live/binding-extract.js +10 -1
- package/dist/core/chart/live/binding-extract.js.map +1 -1
- package/dist/core/chart/live/fetch-tick.d.ts +4 -0
- package/dist/core/chart/live/fetch-tick.d.ts.map +1 -0
- package/dist/core/chart/live/fetch-tick.js +73 -0
- package/dist/core/chart/live/fetch-tick.js.map +1 -0
- package/dist/core/chart/live/index.d.ts +1 -0
- package/dist/core/chart/live/index.d.ts.map +1 -1
- package/dist/core/chart/live/index.js +1 -0
- package/dist/core/chart/live/index.js.map +1 -1
- package/dist/core/chart/ohlcv-integrity-messages.d.ts +5 -0
- package/dist/core/chart/ohlcv-integrity-messages.d.ts.map +1 -0
- package/dist/core/chart/ohlcv-integrity-messages.js +12 -0
- package/dist/core/chart/ohlcv-integrity-messages.js.map +1 -0
- package/dist/core/chart/ohlcv-integrity.d.ts +82 -0
- package/dist/core/chart/ohlcv-integrity.d.ts.map +1 -0
- package/dist/core/chart/ohlcv-integrity.js +266 -0
- package/dist/core/chart/ohlcv-integrity.js.map +1 -0
- package/dist/core/chart/ohlcv-session-store.d.ts +38 -0
- package/dist/core/chart/ohlcv-session-store.d.ts.map +1 -0
- package/dist/core/chart/ohlcv-session-store.js +107 -0
- package/dist/core/chart/ohlcv-session-store.js.map +1 -0
- package/dist/core/chart/ohlcv-window-expectations.d.ts +77 -0
- package/dist/core/chart/ohlcv-window-expectations.d.ts.map +1 -0
- package/dist/core/chart/ohlcv-window-expectations.js +426 -0
- package/dist/core/chart/ohlcv-window-expectations.js.map +1 -0
- package/dist/core/chart/ohlcv-window.d.ts +36 -0
- package/dist/core/chart/ohlcv-window.d.ts.map +1 -0
- package/dist/core/chart/ohlcv-window.js +238 -0
- package/dist/core/chart/ohlcv-window.js.map +1 -0
- package/dist/core/chart/overlay-schemas.d.ts +545 -0
- package/dist/core/chart/overlay-schemas.d.ts.map +1 -1
- package/dist/core/chart/overlay-schemas.js +116 -1
- package/dist/core/chart/overlay-schemas.js.map +1 -1
- package/dist/core/chart/overlays.d.ts.map +1 -1
- package/dist/core/chart/overlays.js +283 -11
- package/dist/core/chart/overlays.js.map +1 -1
- package/dist/core/chart/point-normalize.d.ts.map +1 -1
- package/dist/core/chart/point-normalize.js +21 -14
- package/dist/core/chart/point-normalize.js.map +1 -1
- package/dist/core/chart/prepare-core.d.ts.map +1 -1
- package/dist/core/chart/prepare-core.js +5 -1
- package/dist/core/chart/prepare-core.js.map +1 -1
- package/dist/core/chart/prepare-from-rows.d.ts +202 -1
- package/dist/core/chart/prepare-from-rows.d.ts.map +1 -1
- package/dist/core/chart/prepare-from-rows.js +81 -11
- package/dist/core/chart/prepare-from-rows.js.map +1 -1
- package/dist/core/chart/schemas.d.ts +686 -6
- package/dist/core/chart/schemas.d.ts.map +1 -1
- package/dist/core/chart/schemas.js +49 -6
- package/dist/core/chart/schemas.js.map +1 -1
- package/dist/core/chart-patterns/atr.d.ts +15 -0
- package/dist/core/chart-patterns/atr.d.ts.map +1 -0
- package/dist/core/chart-patterns/atr.js +57 -0
- package/dist/core/chart-patterns/atr.js.map +1 -0
- package/dist/core/chart-patterns/catalog.d.ts +7 -0
- package/dist/core/chart-patterns/catalog.d.ts.map +1 -0
- package/dist/core/chart-patterns/catalog.js +221 -0
- package/dist/core/chart-patterns/catalog.js.map +1 -0
- package/dist/core/chart-patterns/confidence.d.ts +12 -0
- package/dist/core/chart-patterns/confidence.d.ts.map +1 -0
- package/dist/core/chart-patterns/confidence.js +58 -0
- package/dist/core/chart-patterns/confidence.js.map +1 -0
- package/dist/core/chart-patterns/drawing-spec.d.ts +44 -0
- package/dist/core/chart-patterns/drawing-spec.d.ts.map +1 -0
- package/dist/core/chart-patterns/drawing-spec.js +425 -0
- package/dist/core/chart-patterns/drawing-spec.js.map +1 -0
- package/dist/core/chart-patterns/geometry-to-overlay.d.ts +34 -0
- package/dist/core/chart-patterns/geometry-to-overlay.d.ts.map +1 -0
- package/dist/core/chart-patterns/geometry-to-overlay.js +401 -0
- package/dist/core/chart-patterns/geometry-to-overlay.js.map +1 -0
- package/dist/core/chart-patterns/index.d.ts +13 -0
- package/dist/core/chart-patterns/index.d.ts.map +1 -0
- package/dist/core/chart-patterns/index.js +12 -0
- package/dist/core/chart-patterns/index.js.map +1 -0
- package/dist/core/chart-patterns/interpretation.d.ts +6 -0
- package/dist/core/chart-patterns/interpretation.d.ts.map +1 -0
- package/dist/core/chart-patterns/interpretation.js +49 -0
- package/dist/core/chart-patterns/interpretation.js.map +1 -0
- package/dist/core/chart-patterns/measured-move.d.ts +3 -0
- package/dist/core/chart-patterns/measured-move.d.ts.map +1 -0
- package/dist/core/chart-patterns/measured-move.js +196 -0
- package/dist/core/chart-patterns/measured-move.js.map +1 -0
- package/dist/core/chart-patterns/pattern-enrich.d.ts +4 -0
- package/dist/core/chart-patterns/pattern-enrich.d.ts.map +1 -0
- package/dist/core/chart-patterns/pattern-enrich.js +20 -0
- package/dist/core/chart-patterns/pattern-enrich.js.map +1 -0
- package/dist/core/chart-patterns/pattern-id-aliases.d.ts +3 -0
- package/dist/core/chart-patterns/pattern-id-aliases.d.ts.map +1 -0
- package/dist/core/chart-patterns/pattern-id-aliases.js +17 -0
- package/dist/core/chart-patterns/pattern-id-aliases.js.map +1 -0
- package/dist/core/chart-patterns/pattern-menu-summary.d.ts +21 -0
- package/dist/core/chart-patterns/pattern-menu-summary.d.ts.map +1 -0
- package/dist/core/chart-patterns/pattern-menu-summary.js +68 -0
- package/dist/core/chart-patterns/pattern-menu-summary.js.map +1 -0
- package/dist/core/chart-patterns/patterns/channel.d.ts +4 -0
- package/dist/core/chart-patterns/patterns/channel.d.ts.map +1 -0
- package/dist/core/chart-patterns/patterns/channel.js +137 -0
- package/dist/core/chart-patterns/patterns/channel.js.map +1 -0
- package/dist/core/chart-patterns/patterns/cup-and-handle.d.ts +4 -0
- package/dist/core/chart-patterns/patterns/cup-and-handle.d.ts.map +1 -0
- package/dist/core/chart-patterns/patterns/cup-and-handle.js +89 -0
- package/dist/core/chart-patterns/patterns/cup-and-handle.js.map +1 -0
- package/dist/core/chart-patterns/patterns/doubles.d.ts +4 -0
- package/dist/core/chart-patterns/patterns/doubles.d.ts.map +1 -0
- package/dist/core/chart-patterns/patterns/doubles.js +163 -0
- package/dist/core/chart-patterns/patterns/doubles.js.map +1 -0
- package/dist/core/chart-patterns/patterns/flag.d.ts +4 -0
- package/dist/core/chart-patterns/patterns/flag.d.ts.map +1 -0
- package/dist/core/chart-patterns/patterns/flag.js +64 -0
- package/dist/core/chart-patterns/patterns/flag.js.map +1 -0
- package/dist/core/chart-patterns/patterns/head-and-shoulders.d.ts +5 -0
- package/dist/core/chart-patterns/patterns/head-and-shoulders.d.ts.map +1 -0
- package/dist/core/chart-patterns/patterns/head-and-shoulders.js +69 -0
- package/dist/core/chart-patterns/patterns/head-and-shoulders.js.map +1 -0
- package/dist/core/chart-patterns/patterns/inverse-head-and-shoulders.d.ts +4 -0
- package/dist/core/chart-patterns/patterns/inverse-head-and-shoulders.d.ts.map +1 -0
- package/dist/core/chart-patterns/patterns/inverse-head-and-shoulders.js +66 -0
- package/dist/core/chart-patterns/patterns/inverse-head-and-shoulders.js.map +1 -0
- package/dist/core/chart-patterns/patterns/pennant.d.ts +4 -0
- package/dist/core/chart-patterns/patterns/pennant.d.ts.map +1 -0
- package/dist/core/chart-patterns/patterns/pennant.js +66 -0
- package/dist/core/chart-patterns/patterns/pennant.js.map +1 -0
- package/dist/core/chart-patterns/patterns/trendline-breakout.d.ts +10 -0
- package/dist/core/chart-patterns/patterns/trendline-breakout.d.ts.map +1 -0
- package/dist/core/chart-patterns/patterns/trendline-breakout.js +241 -0
- package/dist/core/chart-patterns/patterns/trendline-breakout.js.map +1 -0
- package/dist/core/chart-patterns/patterns/triangles.d.ts +4 -0
- package/dist/core/chart-patterns/patterns/triangles.d.ts.map +1 -0
- package/dist/core/chart-patterns/patterns/triangles.js +113 -0
- package/dist/core/chart-patterns/patterns/triangles.js.map +1 -0
- package/dist/core/chart-patterns/patterns/utils.d.ts +20 -0
- package/dist/core/chart-patterns/patterns/utils.d.ts.map +1 -0
- package/dist/core/chart-patterns/patterns/utils.js +60 -0
- package/dist/core/chart-patterns/patterns/utils.js.map +1 -0
- package/dist/core/chart-patterns/patterns/wedge.d.ts +4 -0
- package/dist/core/chart-patterns/patterns/wedge.d.ts.map +1 -0
- package/dist/core/chart-patterns/patterns/wedge.js +88 -0
- package/dist/core/chart-patterns/patterns/wedge.js.map +1 -0
- package/dist/core/chart-patterns/recommendation.d.ts +5 -0
- package/dist/core/chart-patterns/recommendation.d.ts.map +1 -0
- package/dist/core/chart-patterns/recommendation.js +84 -0
- package/dist/core/chart-patterns/recommendation.js.map +1 -0
- package/dist/core/chart-patterns/scan.d.ts +5 -0
- package/dist/core/chart-patterns/scan.d.ts.map +1 -0
- package/dist/core/chart-patterns/scan.js +121 -0
- package/dist/core/chart-patterns/scan.js.map +1 -0
- package/dist/core/chart-patterns/smoothing.d.ts +10 -0
- package/dist/core/chart-patterns/smoothing.d.ts.map +1 -0
- package/dist/core/chart-patterns/smoothing.js +45 -0
- package/dist/core/chart-patterns/smoothing.js.map +1 -0
- package/dist/core/chart-patterns/swings.d.ts +12 -0
- package/dist/core/chart-patterns/swings.d.ts.map +1 -0
- package/dist/core/chart-patterns/swings.js +135 -0
- package/dist/core/chart-patterns/swings.js.map +1 -0
- package/dist/core/chart-patterns/trade-setup.d.ts +2 -0
- package/dist/core/chart-patterns/trade-setup.d.ts.map +1 -0
- package/dist/core/chart-patterns/trade-setup.js +2 -0
- package/dist/core/chart-patterns/trade-setup.js.map +1 -0
- package/dist/core/chart-patterns/types.d.ts +225 -0
- package/dist/core/chart-patterns/types.d.ts.map +1 -0
- package/dist/core/chart-patterns/types.js +2 -0
- package/dist/core/chart-patterns/types.js.map +1 -0
- package/dist/core/chart-patterns/volume-confirmation.d.ts +13 -0
- package/dist/core/chart-patterns/volume-confirmation.d.ts.map +1 -0
- package/dist/core/chart-patterns/volume-confirmation.js +172 -0
- package/dist/core/chart-patterns/volume-confirmation.js.map +1 -0
- package/dist/core/coinmarketcap/api-key.d.ts +8 -0
- package/dist/core/coinmarketcap/api-key.d.ts.map +1 -0
- package/dist/core/coinmarketcap/api-key.js +30 -0
- package/dist/core/coinmarketcap/api-key.js.map +1 -0
- package/dist/core/coinmarketcap/client.d.ts +8 -0
- package/dist/core/coinmarketcap/client.d.ts.map +1 -0
- package/dist/core/coinmarketcap/client.js +103 -0
- package/dist/core/coinmarketcap/client.js.map +1 -0
- package/dist/core/coinmarketcap/index.d.ts +7 -0
- package/dist/core/coinmarketcap/index.d.ts.map +1 -0
- package/dist/core/coinmarketcap/index.js +7 -0
- package/dist/core/coinmarketcap/index.js.map +1 -0
- package/dist/core/coinmarketcap/kline-fallback.d.ts +11 -0
- package/dist/core/coinmarketcap/kline-fallback.d.ts.map +1 -0
- package/dist/core/coinmarketcap/kline-fallback.js +35 -0
- package/dist/core/coinmarketcap/kline-fallback.js.map +1 -0
- package/dist/core/coinmarketcap/kline-window.d.ts +26 -0
- package/dist/core/coinmarketcap/kline-window.d.ts.map +1 -0
- package/dist/core/coinmarketcap/kline-window.js +75 -0
- package/dist/core/coinmarketcap/kline-window.js.map +1 -0
- package/dist/core/coinmarketcap/kline.d.ts +13 -0
- package/dist/core/coinmarketcap/kline.d.ts.map +1 -0
- package/dist/core/coinmarketcap/kline.js +49 -0
- package/dist/core/coinmarketcap/kline.js.map +1 -0
- package/dist/core/coinmarketcap/mcp-server-choice.d.ts +24 -0
- package/dist/core/coinmarketcap/mcp-server-choice.d.ts.map +1 -0
- package/dist/core/coinmarketcap/mcp-server-choice.js +77 -0
- package/dist/core/coinmarketcap/mcp-server-choice.js.map +1 -0
- package/dist/core/coinmarketcap/public-api.d.ts +24 -0
- package/dist/core/coinmarketcap/public-api.d.ts.map +1 -0
- package/dist/core/coinmarketcap/public-api.js +277 -0
- package/dist/core/coinmarketcap/public-api.js.map +1 -0
- package/dist/core/coinmarketcap/schemas.d.ts +231 -0
- package/dist/core/coinmarketcap/schemas.d.ts.map +1 -0
- package/dist/core/coinmarketcap/schemas.js +153 -0
- package/dist/core/coinmarketcap/schemas.js.map +1 -0
- package/dist/core/mpc/mpa-fee-status.d.ts +2 -0
- package/dist/core/mpc/mpa-fee-status.d.ts.map +1 -1
- package/dist/core/mpc/mpa-fee-status.js +8 -1
- package/dist/core/mpc/mpa-fee-status.js.map +1 -1
- package/dist/core/node-info.d.ts +3 -1
- package/dist/core/node-info.d.ts.map +1 -1
- package/dist/core/node-info.js +37 -1
- package/dist/core/node-info.js.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/mcp/agent-chart-data-access-gate.d.ts +5 -0
- package/dist/mcp/agent-chart-data-access-gate.d.ts.map +1 -0
- package/dist/mcp/agent-chart-data-access-gate.js +20 -0
- package/dist/mcp/agent-chart-data-access-gate.js.map +1 -0
- package/dist/mcp/agent-environment-variables.d.ts.map +1 -1
- package/dist/mcp/agent-environment-variables.js +13 -2
- package/dist/mcp/agent-environment-variables.js.map +1 -1
- package/dist/mcp/agent-host-catalog.d.ts +27 -0
- package/dist/mcp/agent-host-catalog.d.ts.map +1 -0
- package/dist/mcp/agent-host-catalog.js +88 -0
- package/dist/mcp/agent-host-catalog.js.map +1 -0
- package/dist/mcp/agent-mcp-servers.d.ts.map +1 -1
- package/dist/mcp/agent-mcp-servers.js +32 -3
- package/dist/mcp/agent-mcp-servers.js.map +1 -1
- package/dist/mcp/agent-skills.d.ts.map +1 -1
- package/dist/mcp/agent-skills.js +13 -1
- package/dist/mcp/agent-skills.js.map +1 -1
- package/dist/mcp/chart.d.ts.map +1 -1
- package/dist/mcp/chart.js +282 -25
- package/dist/mcp/chart.js.map +1 -1
- package/dist/mcp/coinmarketcap-public/register.d.ts +6 -0
- package/dist/mcp/coinmarketcap-public/register.d.ts.map +1 -0
- package/dist/mcp/coinmarketcap-public/register.js +99 -0
- package/dist/mcp/coinmarketcap-public/register.js.map +1 -0
- package/dist/mcp/deferred/discovery-tools.d.ts +6 -0
- package/dist/mcp/deferred/discovery-tools.d.ts.map +1 -0
- package/dist/mcp/deferred/discovery-tools.js +138 -0
- package/dist/mcp/deferred/discovery-tools.js.map +1 -0
- package/dist/mcp/deferred/optional-endpoint-groups.d.ts +12 -0
- package/dist/mcp/deferred/optional-endpoint-groups.d.ts.map +1 -0
- package/dist/mcp/deferred/optional-endpoint-groups.js +51 -0
- package/dist/mcp/deferred/optional-endpoint-groups.js.map +1 -0
- package/dist/mcp/deferred/session.d.ts +56 -0
- package/dist/mcp/deferred/session.d.ts.map +1 -0
- package/dist/mcp/deferred/session.js +242 -0
- package/dist/mcp/deferred/session.js.map +1 -0
- package/dist/mcp/deferred/tool-group-map.d.ts +23 -0
- package/dist/mcp/deferred/tool-group-map.d.ts.map +1 -0
- package/dist/mcp/deferred/tool-group-map.js +317 -0
- package/dist/mcp/deferred/tool-group-map.js.map +1 -0
- package/dist/mcp/defi/context.d.ts +2 -0
- package/dist/mcp/defi/context.d.ts.map +1 -1
- package/dist/mcp/defi/defi-protocol-fetch-meta.d.ts +30 -0
- package/dist/mcp/defi/defi-protocol-fetch-meta.d.ts.map +1 -0
- package/dist/mcp/defi/defi-protocol-fetch-meta.js +76 -0
- package/dist/mcp/defi/defi-protocol-fetch-meta.js.map +1 -0
- package/dist/mcp/defi/discovery.d.ts +2 -1
- package/dist/mcp/defi/discovery.d.ts.map +1 -1
- package/dist/mcp/defi/discovery.js +46 -6
- package/dist/mcp/defi/discovery.js.map +1 -1
- package/dist/mcp/defi/handler.d.ts.map +1 -1
- package/dist/mcp/defi/handler.js +6 -3
- package/dist/mcp/defi/handler.js.map +1 -1
- package/dist/mcp/defi/input-adapter.d.ts +6 -0
- package/dist/mcp/defi/input-adapter.d.ts.map +1 -1
- package/dist/mcp/defi/input-adapter.js +29 -12
- package/dist/mcp/defi/input-adapter.js.map +1 -1
- package/dist/mcp/defi/ohlcv-chart-workflow.d.ts +5 -1
- package/dist/mcp/defi/ohlcv-chart-workflow.d.ts.map +1 -1
- package/dist/mcp/defi/ohlcv-chart-workflow.js +28 -6
- package/dist/mcp/defi/ohlcv-chart-workflow.js.map +1 -1
- package/dist/mcp/defi/register-protocol-tools.d.ts +2 -1
- package/dist/mcp/defi/register-protocol-tools.d.ts.map +1 -1
- package/dist/mcp/defi/register-protocol-tools.js +12 -3
- package/dist/mcp/defi/register-protocol-tools.js.map +1 -1
- package/dist/mcp/defi/trade-bridge.d.ts +2 -0
- package/dist/mcp/defi/trade-bridge.d.ts.map +1 -0
- package/dist/mcp/defi/trade-bridge.js +2 -0
- package/dist/mcp/defi/trade-bridge.js.map +1 -0
- package/dist/mcp/keygen.js +1 -1
- package/dist/mcp/keygen.js.map +1 -1
- package/dist/mcp/management-signer.d.ts.map +1 -1
- package/dist/mcp/management-signer.js +1 -1
- package/dist/mcp/management-signer.js.map +1 -1
- package/dist/mcp/node.d.ts.map +1 -1
- package/dist/mcp/node.js +7 -2
- package/dist/mcp/node.js.map +1 -1
- package/dist/mcp/ohlcv-session-context.d.ts +4 -0
- package/dist/mcp/ohlcv-session-context.d.ts.map +1 -0
- package/dist/mcp/ohlcv-session-context.js +13 -0
- package/dist/mcp/ohlcv-session-context.js.map +1 -0
- package/dist/mcp/ohlcv-session-wrapper.d.ts +8 -0
- package/dist/mcp/ohlcv-session-wrapper.d.ts.map +1 -0
- package/dist/mcp/ohlcv-session-wrapper.js +138 -0
- package/dist/mcp/ohlcv-session-wrapper.js.map +1 -0
- package/dist/mcp/register.d.ts +3 -1
- package/dist/mcp/register.d.ts.map +1 -1
- package/dist/mcp/register.js +24 -5
- package/dist/mcp/register.js.map +1 -1
- package/dist/mcp/resources/agent-cron-jobs.md +25 -0
- package/dist/mcp/resources/agent-mcp-servers.md +21 -0
- package/dist/mcp/resources/chart-analysis.md +368 -0
- package/dist/mcp/resources/chart.md +71 -24
- package/dist/mcp/resources/coinmarketcap-public.md +109 -0
- package/dist/mcp/resources/keygen.md +1 -1
- package/dist/mcp/resources/trade-defaults-skill.md +69 -0
- package/dist/mcp/server/http-transport.d.ts.map +1 -1
- package/dist/mcp/server/http-transport.js +9 -2
- package/dist/mcp/server/http-transport.js.map +1 -1
- package/dist/mcp/server/index.js +3 -0
- package/dist/mcp/server/index.js.map +1 -1
- package/dist/mcp/tool-utils.d.ts.map +1 -1
- package/dist/mcp/tool-utils.js +7 -1
- package/dist/mcp/tool-utils.js.map +1 -1
- package/dist/mcp/trade-tools.d.ts +7 -0
- package/dist/mcp/trade-tools.d.ts.map +1 -0
- package/dist/mcp/trade-tools.js +201 -0
- package/dist/mcp/trade-tools.js.map +1 -0
- package/dist/schemas/extended.d.ts +30 -0
- package/dist/schemas/extended.d.ts.map +1 -1
- package/dist/schemas/extended.js +40 -0
- package/dist/schemas/extended.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { CmcKlineCandle } from './kline.js';
|
|
2
|
+
import type { KlineQueryWindow } from './kline-window.js';
|
|
3
|
+
export type KlineChartFallback = {
|
|
4
|
+
action: 'switch_ohlcv_source';
|
|
5
|
+
doNotRetry: string[];
|
|
6
|
+
nextSteps: string[];
|
|
7
|
+
};
|
|
8
|
+
export declare function isKlineDataTooStaleForWindow(candles: CmcKlineCandle[], window: KlineQueryWindow, nowSec?: number): boolean;
|
|
9
|
+
export declare function buildKlineChartFallback(candles: CmcKlineCandle[], window: KlineQueryWindow): KlineChartFallback;
|
|
10
|
+
export declare function buildKlineFallbackReason(fallback: KlineChartFallback): string;
|
|
11
|
+
//# sourceMappingURL=kline-fallback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kline-fallback.d.ts","sourceRoot":"","sources":["../../../src/core/coinmarketcap/kline-fallback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAExD,MAAM,MAAM,kBAAkB,GAAG;IAChC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,wBAAgB,4BAA4B,CAC3C,OAAO,EAAE,cAAc,EAAE,EACzB,MAAM,EAAE,gBAAgB,EACxB,MAAM,SAAgC,GACpC,OAAO,CAUT;AAED,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,cAAc,EAAE,EACzB,MAAM,EAAE,gBAAgB,GACtB,kBAAkB,CAsBpB;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAE7E"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export function isKlineDataTooStaleForWindow(candles, window, nowSec = Math.floor(Date.now() / 1000)) {
|
|
2
|
+
if (!candles.length) {
|
|
3
|
+
return true;
|
|
4
|
+
}
|
|
5
|
+
const latest = candles[candles.length - 1].time;
|
|
6
|
+
const maxAgeSec = window.lookbackDays != null
|
|
7
|
+
? window.lookbackDays * 86_400 + 86_400
|
|
8
|
+
: 2 * 86_400;
|
|
9
|
+
return nowSec - latest > maxAgeSec;
|
|
10
|
+
}
|
|
11
|
+
export function buildKlineChartFallback(candles, window) {
|
|
12
|
+
const latest = candles[candles.length - 1]?.time;
|
|
13
|
+
const latestIso = latest ? new Date(latest * 1000).toISOString() : 'none';
|
|
14
|
+
const windowLabel = window.lookbackDays != null
|
|
15
|
+
? `last ${window.lookbackDays}d`
|
|
16
|
+
: `~${window.limit} bars`;
|
|
17
|
+
return {
|
|
18
|
+
action: 'switch_ohlcv_source',
|
|
19
|
+
doNotRetry: [
|
|
20
|
+
'coinmarketcap-public__get_kline_candles',
|
|
21
|
+
'coinmarketcap-public__search_dex_tokens',
|
|
22
|
+
'coinmarketcap-public__get_dex_token_pools',
|
|
23
|
+
],
|
|
24
|
+
nextSteps: [
|
|
25
|
+
`CMC DEX k-lines are too stale for "${windowLabel}" (latest bar: ${latestIso}). Keyless k-lines often lag; do not retry CMC DEX fetches.`,
|
|
26
|
+
'Ask the operator which OHLCV source to use next (CoinGecko, CMC Pro historical, Hyperliquid/GMX DeFi, etc.). Do not auto-load catalog MCP servers.',
|
|
27
|
+
'After the operator chooses: agent_load_mcp_server → fetch OHLCV → pass full fetch JSON as toolResult to prepare_chart_from_rows or analyze_*.',
|
|
28
|
+
'See skill chart-ohlcv-sources — stop after this message; do not burn tool rounds on CMC DEX.',
|
|
29
|
+
],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export function buildKlineFallbackReason(fallback) {
|
|
33
|
+
return fallback.nextSteps.join('\n');
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=kline-fallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kline-fallback.js","sourceRoot":"","sources":["../../../src/core/coinmarketcap/kline-fallback.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,4BAA4B,CAC3C,OAAyB,EACzB,MAAwB,EACxB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAEtC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,IAAI,CAAC;IACjD,MAAM,SAAS,GACd,MAAM,CAAC,YAAY,IAAI,IAAI;QAC1B,CAAC,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM,GAAG,MAAM;QACvC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;IACf,OAAO,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,uBAAuB,CACtC,OAAyB,EACzB,MAAwB;IAExB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;IACjD,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1E,MAAM,WAAW,GAChB,MAAM,CAAC,YAAY,IAAI,IAAI;QAC1B,CAAC,CAAC,QAAQ,MAAM,CAAC,YAAY,GAAG;QAChC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,OAAO,CAAC;IAE5B,OAAO;QACN,MAAM,EAAE,qBAAqB;QAC7B,UAAU,EAAE;YACX,yCAAyC;YACzC,yCAAyC;YACzC,2CAA2C;SAC3C;QACD,SAAS,EAAE;YACV,sCAAsC,WAAW,kBAAkB,SAAS,6DAA6D;YACzI,oJAAoJ;YACpJ,+IAA+I;YAC/I,8FAA8F;SAC9F;KACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,QAA4B;IACpE,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import type { CmcKlineCandle } from './kline.js';
|
|
3
|
+
import type { CmcKlineIntervalSchema } from './schemas.js';
|
|
4
|
+
type CmcKlineInterval = z.infer<typeof CmcKlineIntervalSchema>;
|
|
5
|
+
export type KlineQueryWindow = {
|
|
6
|
+
from: number;
|
|
7
|
+
to: number;
|
|
8
|
+
limit: number;
|
|
9
|
+
lookbackDays?: number;
|
|
10
|
+
};
|
|
11
|
+
export declare function cmcIntervalToSeconds(interval: CmcKlineInterval): number;
|
|
12
|
+
export declare function resolveKlineQueryWindow(input: {
|
|
13
|
+
interval: CmcKlineInterval;
|
|
14
|
+
from?: number;
|
|
15
|
+
to?: number;
|
|
16
|
+
limit?: number;
|
|
17
|
+
lookbackDays?: number;
|
|
18
|
+
nowSec?: number;
|
|
19
|
+
}): KlineQueryWindow;
|
|
20
|
+
/** Sort ascending and keep the newest N bars (keyless API — no from/to on wire). */
|
|
21
|
+
export declare function trimKlineCandlesToRecentLimit(candles: CmcKlineCandle[], limit: number): CmcKlineCandle[];
|
|
22
|
+
export declare function klineDataStalenessWarning(candles: CmcKlineCandle[], nowSec?: number): string | undefined;
|
|
23
|
+
/** Sort ascending and keep the newest bars inside the requested window. */
|
|
24
|
+
export declare function trimKlineCandlesToWindow(candles: CmcKlineCandle[], window: KlineQueryWindow): CmcKlineCandle[];
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=kline-window.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kline-window.d.ts","sourceRoot":"","sources":["../../../src/core/coinmarketcap/kline-window.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,cAAc,CAAC;AAEzD,KAAK,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAuB/D,MAAM,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAEvE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC9C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,gBAAgB,CAsBnB;AAED,oFAAoF;AACpF,wBAAgB,6BAA6B,CAC5C,OAAO,EAAE,cAAc,EAAE,EACzB,KAAK,EAAE,MAAM,GACX,cAAc,EAAE,CAMlB;AAED,wBAAgB,yBAAyB,CACxC,OAAO,EAAE,cAAc,EAAE,EACzB,MAAM,SAAgC,GACpC,MAAM,GAAG,SAAS,CAepB;AAED,2EAA2E;AAC3E,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,cAAc,EAAE,EACzB,MAAM,EAAE,gBAAgB,GACtB,cAAc,EAAE,CAQlB"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
const INTERVAL_SEC = {
|
|
2
|
+
'1s': 1,
|
|
3
|
+
'5s': 5,
|
|
4
|
+
'30s': 30,
|
|
5
|
+
'1min': 60,
|
|
6
|
+
'3min': 180,
|
|
7
|
+
'5min': 300,
|
|
8
|
+
'15min': 900,
|
|
9
|
+
'30min': 1800,
|
|
10
|
+
'1h': 3600,
|
|
11
|
+
'2h': 7200,
|
|
12
|
+
'4h': 14_400,
|
|
13
|
+
'6h': 21_600,
|
|
14
|
+
'8h': 28_800,
|
|
15
|
+
'12h': 43_200,
|
|
16
|
+
'1d': 86_400,
|
|
17
|
+
'3d': 259_200,
|
|
18
|
+
'1w': 604_800,
|
|
19
|
+
'1m': 2_592_000,
|
|
20
|
+
};
|
|
21
|
+
export function cmcIntervalToSeconds(interval) {
|
|
22
|
+
return INTERVAL_SEC[interval];
|
|
23
|
+
}
|
|
24
|
+
export function resolveKlineQueryWindow(input) {
|
|
25
|
+
const intervalSec = cmcIntervalToSeconds(input.interval);
|
|
26
|
+
const to = input.to ?? input.nowSec ?? Math.floor(Date.now() / 1000);
|
|
27
|
+
let limit = input.limit;
|
|
28
|
+
if (input.lookbackDays != null) {
|
|
29
|
+
limit = Math.ceil((input.lookbackDays * 86_400) / intervalSec);
|
|
30
|
+
}
|
|
31
|
+
if (limit == null) {
|
|
32
|
+
limit = Math.ceil((7 * 86_400) / intervalSec);
|
|
33
|
+
}
|
|
34
|
+
limit = Math.min(Math.max(1, limit), 1000);
|
|
35
|
+
const from = input.from ?? to - limit * intervalSec;
|
|
36
|
+
return {
|
|
37
|
+
from,
|
|
38
|
+
to,
|
|
39
|
+
limit,
|
|
40
|
+
...(input.lookbackDays != null ? { lookbackDays: input.lookbackDays } : {}),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/** Sort ascending and keep the newest N bars (keyless API — no from/to on wire). */
|
|
44
|
+
export function trimKlineCandlesToRecentLimit(candles, limit) {
|
|
45
|
+
if (!candles.length) {
|
|
46
|
+
return candles;
|
|
47
|
+
}
|
|
48
|
+
const sorted = [...candles].sort((a, b) => a.time - b.time);
|
|
49
|
+
return sorted.slice(-Math.max(1, limit));
|
|
50
|
+
}
|
|
51
|
+
export function klineDataStalenessWarning(candles, nowSec = Math.floor(Date.now() / 1000)) {
|
|
52
|
+
if (!candles.length) {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
const latest = candles[candles.length - 1].time;
|
|
56
|
+
const ageHours = (nowSec - latest) / 3600;
|
|
57
|
+
if (ageHours <= 48) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
const ageDays = Math.round(ageHours / 24);
|
|
61
|
+
return (`CMC keyless DEX k-lines end at ${new Date(latest * 1000).toISOString()} ` +
|
|
62
|
+
`(~${ageDays}d ago). The keyless API does not support from/to time filters and may lag. ` +
|
|
63
|
+
'For current ETH/BTC spot OHLCV, ask the operator which source to use (CoinGecko, CMC Pro get_crypto_ohlcv_historical, DeFi venue) — see chart-ohlcv-sources.');
|
|
64
|
+
}
|
|
65
|
+
/** Sort ascending and keep the newest bars inside the requested window. */
|
|
66
|
+
export function trimKlineCandlesToWindow(candles, window) {
|
|
67
|
+
if (!candles.length) {
|
|
68
|
+
return candles;
|
|
69
|
+
}
|
|
70
|
+
const sorted = [...candles].sort((a, b) => a.time - b.time);
|
|
71
|
+
const inWindow = sorted.filter(c => c.time >= window.from && c.time <= window.to);
|
|
72
|
+
const pool = inWindow.length > 0 ? inWindow : sorted;
|
|
73
|
+
return pool.slice(-window.limit);
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=kline-window.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kline-window.js","sourceRoot":"","sources":["../../../src/core/coinmarketcap/kline-window.ts"],"names":[],"mappings":"AAMA,MAAM,YAAY,GAAqC;IACtD,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,SAAS;CACf,CAAC;AASF,MAAM,UAAU,oBAAoB,CAAC,QAA0B;IAC9D,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAOvC;IACA,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAErE,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IACxB,IAAI,KAAK,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;QAChC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACnB,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC;IAC/C,CAAC;IACD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAE3C,MAAM,IAAI,GACT,KAAK,CAAC,IAAI,IAAI,EAAE,GAAG,KAAK,GAAG,WAAW,CAAC;IAExC,OAAO;QACN,IAAI;QACJ,EAAE;QACF,KAAK;QACL,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,EAAC,YAAY,EAAE,KAAK,CAAC,YAAY,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACzE,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,6BAA6B,CAC5C,OAAyB,EACzB,KAAa;IAEb,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,yBAAyB,CACxC,OAAyB,EACzB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAEtC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,IAAI,CAAC;IACjD,MAAM,QAAQ,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;IAC1C,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC1C,OAAO,CACN,kCAAkC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,GAAG;QAC1E,KAAK,OAAO,6EAA6E;QACzF,8JAA8J,CAC9J,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,wBAAwB,CACvC,OAAyB,EACzB,MAAwB;IAExB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IACrD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type CmcKlineCandle = {
|
|
2
|
+
time: number;
|
|
3
|
+
open: number;
|
|
4
|
+
high: number;
|
|
5
|
+
low: number;
|
|
6
|
+
close: number;
|
|
7
|
+
volume?: number;
|
|
8
|
+
traders?: number;
|
|
9
|
+
};
|
|
10
|
+
/** CMC k-line tuple: `[open, high, low, close, volume, timestamp, traders]`. */
|
|
11
|
+
export declare function normalizeKlineCandleTuple(raw: unknown): CmcKlineCandle | null;
|
|
12
|
+
export declare function normalizeKlineCandles(raw: unknown): CmcKlineCandle[];
|
|
13
|
+
//# sourceMappingURL=kline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kline.d.ts","sourceRoot":"","sources":["../../../src/core/coinmarketcap/kline.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,gFAAgF;AAChF,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAmC7E;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,EAAE,CAYpE"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** CMC k-line tuple: `[open, high, low, close, volume, timestamp, traders]`. */
|
|
2
|
+
export function normalizeKlineCandleTuple(raw) {
|
|
3
|
+
if (!Array.isArray(raw) || raw.length < 6) {
|
|
4
|
+
return null;
|
|
5
|
+
}
|
|
6
|
+
const open = Number(raw[0]);
|
|
7
|
+
const high = Number(raw[1]);
|
|
8
|
+
const low = Number(raw[2]);
|
|
9
|
+
const close = Number(raw[3]);
|
|
10
|
+
const volumeRaw = raw[4];
|
|
11
|
+
const timestampRaw = raw[5];
|
|
12
|
+
const tradersRaw = raw[6];
|
|
13
|
+
if (!Number.isFinite(open) ||
|
|
14
|
+
!Number.isFinite(high) ||
|
|
15
|
+
!Number.isFinite(low) ||
|
|
16
|
+
!Number.isFinite(close)) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
const timestamp = Number(timestampRaw);
|
|
20
|
+
if (!Number.isFinite(timestamp)) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const time = timestamp > 1e12 ? Math.floor(timestamp / 1000) : Math.floor(timestamp);
|
|
24
|
+
const volume = volumeRaw == null ? undefined : Number(volumeRaw);
|
|
25
|
+
const traders = tradersRaw == null ? undefined : Number(tradersRaw);
|
|
26
|
+
return {
|
|
27
|
+
time,
|
|
28
|
+
open,
|
|
29
|
+
high,
|
|
30
|
+
low,
|
|
31
|
+
close,
|
|
32
|
+
...(volume != null && Number.isFinite(volume) ? { volume } : {}),
|
|
33
|
+
...(traders != null && Number.isFinite(traders) ? { traders } : {}),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export function normalizeKlineCandles(raw) {
|
|
37
|
+
if (!Array.isArray(raw)) {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
const candles = [];
|
|
41
|
+
for (const row of raw) {
|
|
42
|
+
const candle = normalizeKlineCandleTuple(row);
|
|
43
|
+
if (candle) {
|
|
44
|
+
candles.push(candle);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return candles;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=kline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kline.js","sourceRoot":"","sources":["../../../src/core/coinmarketcap/kline.ts"],"names":[],"mappings":"AAUA,gFAAgF;AAChF,MAAM,UAAU,yBAAyB,CAAC,GAAY;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1B,IACC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QACtB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QACtB,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QACrB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EACtB,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACpE,OAAO;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,KAAK;QACL,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,OAAO,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAC,OAAO,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACjE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAY;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACX,CAAC;IACD,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACF,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { NodeSdkConfig } from '../../config/schema.js';
|
|
2
|
+
import type { SdkResult } from '../result.js';
|
|
3
|
+
export declare const CMC_FULL_MCP_SERVER_ID = "coinmarketcap";
|
|
4
|
+
export declare const CMC_PUBLIC_MCP_SERVER_ID = "coinmarketcap-public";
|
|
5
|
+
export type CoinMarketCapMcpVariant = 'pro' | 'public' | 'none';
|
|
6
|
+
export type CoinMarketCapMcpServerChoice = {
|
|
7
|
+
serverId: typeof CMC_FULL_MCP_SERVER_ID | typeof CMC_PUBLIC_MCP_SERVER_ID | null;
|
|
8
|
+
variant: CoinMarketCapMcpVariant;
|
|
9
|
+
apiKeyConfigured: boolean;
|
|
10
|
+
proActive: boolean;
|
|
11
|
+
publicActive: boolean;
|
|
12
|
+
rationale: string;
|
|
13
|
+
/** When set, call agent_load_mcp_server with this serverId for the current chat. */
|
|
14
|
+
agentLoadMcpServer: {
|
|
15
|
+
serverId: string;
|
|
16
|
+
} | null;
|
|
17
|
+
};
|
|
18
|
+
export declare function chooseCoinMarketCapMcpServer(input: {
|
|
19
|
+
activeServerIds: readonly string[];
|
|
20
|
+
apiKeyConfigured: boolean;
|
|
21
|
+
}): CoinMarketCapMcpServerChoice;
|
|
22
|
+
/** Pick coinmarketcap vs coinmarketcap-public from active servers and Variables key. */
|
|
23
|
+
export declare function resolveCoinMarketCapMcpServer(config: NodeSdkConfig): Promise<SdkResult<CoinMarketCapMcpServerChoice>>;
|
|
24
|
+
//# sourceMappingURL=mcp-server-choice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server-choice.d.ts","sourceRoot":"","sources":["../../../src/core/coinmarketcap/mcp-server-choice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAG5C,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AACtD,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAE/D,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhE,MAAM,MAAM,4BAA4B,GAAG;IAC1C,QAAQ,EAAE,OAAO,sBAAsB,GAAG,OAAO,wBAAwB,GAAG,IAAI,CAAC;IACjF,OAAO,EAAE,uBAAuB,CAAC;IACjC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,kBAAkB,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI,CAAC;CAC9C,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IACnD,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,gBAAgB,EAAE,OAAO,CAAC;CAC1B,GAAG,4BAA4B,CA+D/B;AAED,wFAAwF;AACxF,wBAAsB,6BAA6B,CAClD,MAAM,EAAE,aAAa,GACnB,OAAO,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC,CAiBlD"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { listMcpServers } from '../agent/mcp-servers.js';
|
|
2
|
+
import { isCmcApiKeyConfigured } from './api-key.js';
|
|
3
|
+
export const CMC_FULL_MCP_SERVER_ID = 'coinmarketcap';
|
|
4
|
+
export const CMC_PUBLIC_MCP_SERVER_ID = 'coinmarketcap-public';
|
|
5
|
+
export function chooseCoinMarketCapMcpServer(input) {
|
|
6
|
+
const ids = new Set(input.activeServerIds.map(id => id.trim().toLowerCase()).filter(Boolean));
|
|
7
|
+
const proActive = ids.has(CMC_FULL_MCP_SERVER_ID);
|
|
8
|
+
const publicActive = ids.has(CMC_PUBLIC_MCP_SERVER_ID);
|
|
9
|
+
// coinmarketcap-public is the built-in continuum server for DEX klines + keyless tools.
|
|
10
|
+
// Pro key in Variables unlocks get_crypto_ohlcv_historical on the SAME server — not a reason to skip public.
|
|
11
|
+
if (publicActive) {
|
|
12
|
+
const rationale = input.apiKeyConfigured
|
|
13
|
+
? proActive
|
|
14
|
+
? 'When operator chooses CMC: coinmarketcap-public for DEX klines and get_crypto_ohlcv_historical (Pro key in Variables). Catalog coinmarketcap is optional for TA/news — not for Uniswap pool charts.'
|
|
15
|
+
: 'When operator chooses CMC: coinmarketcap-public. COINMARKETCAP_API_KEY enables get_crypto_ohlcv_historical on this server for CEX OHLCV.'
|
|
16
|
+
: 'When operator chooses CMC: coinmarketcap-public for keyless tools (DEX klines, market snapshot).';
|
|
17
|
+
return {
|
|
18
|
+
serverId: CMC_PUBLIC_MCP_SERVER_ID,
|
|
19
|
+
variant: 'public',
|
|
20
|
+
apiKeyConfigured: input.apiKeyConfigured,
|
|
21
|
+
proActive,
|
|
22
|
+
publicActive: true,
|
|
23
|
+
rationale,
|
|
24
|
+
agentLoadMcpServer: { serverId: CMC_PUBLIC_MCP_SERVER_ID },
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
if (input.apiKeyConfigured && proActive) {
|
|
28
|
+
return {
|
|
29
|
+
serverId: CMC_FULL_MCP_SERVER_ID,
|
|
30
|
+
variant: 'pro',
|
|
31
|
+
apiKeyConfigured: true,
|
|
32
|
+
proActive: true,
|
|
33
|
+
publicActive: false,
|
|
34
|
+
rationale: 'coinmarketcap-public is not active. Load catalog coinmarketcap (official CMC MCP) for Pro tools, or activate coinmarketcap-public for DEX klines.',
|
|
35
|
+
agentLoadMcpServer: { serverId: CMC_FULL_MCP_SERVER_ID },
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
if (proActive && !input.apiKeyConfigured) {
|
|
39
|
+
return {
|
|
40
|
+
serverId: null,
|
|
41
|
+
variant: 'none',
|
|
42
|
+
apiKeyConfigured: false,
|
|
43
|
+
proActive: true,
|
|
44
|
+
publicActive: false,
|
|
45
|
+
rationale: 'Catalog coinmarketcap is active but COINMARKETCAP_API_KEY is not configured. Add it via add_environment_variable, or activate coinmarketcap-public for keyless tools.',
|
|
46
|
+
agentLoadMcpServer: null,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
serverId: null,
|
|
51
|
+
variant: 'none',
|
|
52
|
+
apiKeyConfigured: input.apiKeyConfigured,
|
|
53
|
+
proActive,
|
|
54
|
+
publicActive,
|
|
55
|
+
rationale: 'Neither coinmarketcap nor coinmarketcap-public is active. Call list_mcp_servers; activate via add_mcp_server_from_catalog if needed.',
|
|
56
|
+
agentLoadMcpServer: null,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/** Pick coinmarketcap vs coinmarketcap-public from active servers and Variables key. */
|
|
60
|
+
export async function resolveCoinMarketCapMcpServer(config) {
|
|
61
|
+
const [serversResult, apiKeyConfigured] = await Promise.all([
|
|
62
|
+
listMcpServers(config),
|
|
63
|
+
isCmcApiKeyConfigured(config),
|
|
64
|
+
]);
|
|
65
|
+
if (!serversResult.ok) {
|
|
66
|
+
return serversResult;
|
|
67
|
+
}
|
|
68
|
+
const active = serversResult.data.activeServers ?? serversResult.data.servers ?? [];
|
|
69
|
+
return {
|
|
70
|
+
ok: true,
|
|
71
|
+
data: chooseCoinMarketCapMcpServer({
|
|
72
|
+
activeServerIds: active.map(row => row.id),
|
|
73
|
+
apiKeyConfigured,
|
|
74
|
+
}),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=mcp-server-choice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server-choice.js","sourceRoot":"","sources":["../../../src/core/coinmarketcap/mcp-server-choice.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { SdkResult } from '../result.js';
|
|
2
|
+
import { GetCryptoOhlcvHistoricalOutputSchema, type GetKlineCandlesOutputSchema } from './schemas.js';
|
|
3
|
+
import type { z } from 'zod';
|
|
4
|
+
type GetKlineCandlesOutput = z.infer<typeof GetKlineCandlesOutputSchema>;
|
|
5
|
+
type GetCryptoOhlcvHistoricalOutput = z.infer<typeof GetCryptoOhlcvHistoricalOutputSchema>;
|
|
6
|
+
export declare function getCryptoOhlcvHistorical(input: unknown, options?: {
|
|
7
|
+
apiKey?: string;
|
|
8
|
+
}): Promise<SdkResult<GetCryptoOhlcvHistoricalOutput>>;
|
|
9
|
+
export declare function getKlineCandles(input: unknown, options?: {
|
|
10
|
+
apiKey?: string;
|
|
11
|
+
}): Promise<SdkResult<GetKlineCandlesOutput>>;
|
|
12
|
+
export declare function searchDexTokens(input: unknown): Promise<SdkResult<unknown>>;
|
|
13
|
+
export declare function getDexToken(input: unknown): Promise<SdkResult<unknown>>;
|
|
14
|
+
export declare function getDexTokenPools(input: unknown): Promise<SdkResult<unknown>>;
|
|
15
|
+
export declare function getDexPairQuotes(input: unknown): Promise<SdkResult<unknown>>;
|
|
16
|
+
export declare function getSimplePrice(input: unknown): Promise<SdkResult<unknown>>;
|
|
17
|
+
export declare function getCryptoQuotesLatest(input: unknown): Promise<SdkResult<unknown>>;
|
|
18
|
+
export declare function getGlobalMetricsLatest(input: unknown): Promise<SdkResult<unknown>>;
|
|
19
|
+
export declare function getFearAndGreedLatest(input: unknown): Promise<SdkResult<unknown>>;
|
|
20
|
+
export declare function getFearAndGreedHistorical(input: unknown): Promise<SdkResult<unknown>>;
|
|
21
|
+
export declare function getCmc100Latest(input: unknown): Promise<SdkResult<unknown>>;
|
|
22
|
+
export declare function getAltcoinSeasonIndexLatest(input: unknown): Promise<SdkResult<unknown>>;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=public-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../../src/core/coinmarketcap/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAS5C,OAAO,EAWN,oCAAoC,EAIpC,KAAK,2BAA2B,EAChC,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAE3B,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AACzE,KAAK,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AA4B3F,wBAAsB,wBAAwB,CAC7C,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAC,GACzB,OAAO,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC,CAqCpD;AAED,wBAAsB,eAAe,CACpC,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAC,GACzB,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAuF3C;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAcjF;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAc7E;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAelF;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAclF;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAchF;AAED,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAcvF;AAED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAaxF;AAED,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAWvF;AAED,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAc3F;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAWjF;AAED,wBAAsB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAW7F"}
|