@continuumdao/continuum-node-sdk 1.3.20 → 1.3.22

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 (63) hide show
  1. package/dist/core/chart/chart-defaults.d.ts +4 -0
  2. package/dist/core/chart/chart-defaults.d.ts.map +1 -1
  3. package/dist/core/chart/chart-defaults.js +25 -0
  4. package/dist/core/chart/chart-defaults.js.map +1 -1
  5. package/dist/core/chart/fetch-metadata.d.ts +12 -0
  6. package/dist/core/chart/fetch-metadata.d.ts.map +1 -0
  7. package/dist/core/chart/fetch-metadata.js +87 -0
  8. package/dist/core/chart/fetch-metadata.js.map +1 -0
  9. package/dist/core/chart/fetch-result.d.ts +2 -1
  10. package/dist/core/chart/fetch-result.d.ts.map +1 -1
  11. package/dist/core/chart/fetch-result.js +43 -40
  12. package/dist/core/chart/fetch-result.js.map +1 -1
  13. package/dist/core/chart/index.d.ts +2 -0
  14. package/dist/core/chart/index.d.ts.map +1 -1
  15. package/dist/core/chart/index.js +2 -0
  16. package/dist/core/chart/index.js.map +1 -1
  17. package/dist/core/chart/live/binding-extract.d.ts +12 -0
  18. package/dist/core/chart/live/binding-extract.d.ts.map +1 -0
  19. package/dist/core/chart/live/binding-extract.js +104 -0
  20. package/dist/core/chart/live/binding-extract.js.map +1 -0
  21. package/dist/core/chart/live/index.d.ts +6 -0
  22. package/dist/core/chart/live/index.d.ts.map +1 -0
  23. package/dist/core/chart/live/index.js +6 -0
  24. package/dist/core/chart/live/index.js.map +1 -0
  25. package/dist/core/chart/live/interval.d.ts +3 -0
  26. package/dist/core/chart/live/interval.d.ts.map +1 -0
  27. package/dist/core/chart/live/interval.js +30 -0
  28. package/dist/core/chart/live/interval.js.map +1 -0
  29. package/dist/core/chart/live/merge-tick.d.ts +19 -0
  30. package/dist/core/chart/live/merge-tick.d.ts.map +1 -0
  31. package/dist/core/chart/live/merge-tick.js +89 -0
  32. package/dist/core/chart/live/merge-tick.js.map +1 -0
  33. package/dist/core/chart/live/refresh.d.ts +12 -0
  34. package/dist/core/chart/live/refresh.d.ts.map +1 -0
  35. package/dist/core/chart/live/refresh.js +47 -0
  36. package/dist/core/chart/live/refresh.js.map +1 -0
  37. package/dist/core/chart/live/schemas.d.ts +21 -0
  38. package/dist/core/chart/live/schemas.d.ts.map +1 -0
  39. package/dist/core/chart/live/schemas.js +23 -0
  40. package/dist/core/chart/live/schemas.js.map +1 -0
  41. package/dist/core/chart/prepare-from-rows.d.ts +8 -1
  42. package/dist/core/chart/prepare-from-rows.d.ts.map +1 -1
  43. package/dist/core/chart/prepare-from-rows.js +43 -19
  44. package/dist/core/chart/prepare-from-rows.js.map +1 -1
  45. package/dist/core/chart/prepare.d.ts.map +1 -1
  46. package/dist/core/chart/prepare.js +14 -2
  47. package/dist/core/chart/prepare.js.map +1 -1
  48. package/dist/core/chart/schemas.d.ts +7 -0
  49. package/dist/core/chart/schemas.d.ts.map +1 -1
  50. package/dist/core/chart/schemas.js +2 -0
  51. package/dist/core/chart/schemas.js.map +1 -1
  52. package/dist/mcp/chart.d.ts.map +1 -1
  53. package/dist/mcp/chart.js +3 -4
  54. package/dist/mcp/chart.js.map +1 -1
  55. package/dist/mcp/defi/discovery.d.ts.map +1 -1
  56. package/dist/mcp/defi/discovery.js +14 -21
  57. package/dist/mcp/defi/discovery.js.map +1 -1
  58. package/dist/mcp/defi/ohlcv-chart-workflow.d.ts +5 -0
  59. package/dist/mcp/defi/ohlcv-chart-workflow.d.ts.map +1 -0
  60. package/dist/mcp/defi/ohlcv-chart-workflow.js +16 -0
  61. package/dist/mcp/defi/ohlcv-chart-workflow.js.map +1 -0
  62. package/dist/mcp/resources/chart.md +51 -2
  63. package/package.json +2 -2
@@ -3,6 +3,7 @@ import { getProtocolModules } from '@continuumdao/ctm-mpc-defi/agent';
3
3
  import { z } from 'zod';
4
4
  import { resolveChainRegistryEntry } from '../../core/registry/networks.js';
5
5
  import { markProtocolLoaded } from './register-protocol-tools.js';
6
+ import { defiOhlcvChartWorkflowReminder, defiProtocolFetchOhlcvToolName, } from './ohlcv-chart-workflow.js';
6
7
  import { isUniswapApiKeyConfigured, UNISWAP_API_KEY_ENV, UNISWAP_API_KEY_SIGNUP_URL, } from './uniswap-api-key.js';
7
8
  const protocolIdSchema = z.object({
8
9
  protocolId: z.string().min(1),
@@ -52,6 +53,7 @@ export function registerDefiDiscoveryTools(server, config, defiContext) {
52
53
  advisoryTools: z.array(z.string()),
53
54
  skillPreview: z.string().optional(),
54
55
  skillHint: z.string().optional(),
56
+ chartWorkflow: z.string().optional(),
55
57
  uniswapApiKeyConfigured: z.boolean().optional(),
56
58
  uniswapApiKeyEnvVar: z.string().optional(),
57
59
  uniswapApiKeySignupUrl: z.string().optional(),
@@ -72,13 +74,17 @@ export function registerDefiDiscoveryTools(server, config, defiContext) {
72
74
  uniswapApiKeySignupUrl: UNISWAP_API_KEY_SIGNUP_URL,
73
75
  }
74
76
  : {};
75
- if (defiContext.isLoaded(protocolId)) {
77
+ const fetchOhlcvTool = defiProtocolFetchOhlcvToolName(protocolId);
78
+ const chartWorkflow = fetchOhlcvTool
79
+ ? defiOhlcvChartWorkflowReminder(protocolId, fetchOhlcvTool)
80
+ : undefined;
81
+ const buildPayload = (toolNames) => {
76
82
  const advisor = getProtocolSupportAdvisor(protocolId);
77
83
  const skill = getProtocolSkill(protocolId);
78
- const payload = {
84
+ return {
79
85
  loaded: true,
80
86
  protocolId,
81
- toolNames: defiContext.getToolNames(protocolId),
87
+ toolNames,
82
88
  tokenFilter: advisor?.tokenFilter,
83
89
  advisoryTools: [
84
90
  'get_defi_protocol_supported_chains',
@@ -89,32 +95,19 @@ export function registerDefiDiscoveryTools(server, config, defiContext) {
89
95
  skillHint: skill
90
96
  ? 'Call get_defi_protocol_skill for full SKILL.md workflow guidance.'
91
97
  : undefined,
98
+ ...(chartWorkflow ? { chartWorkflow } : {}),
92
99
  ...uniswapExtras,
93
100
  };
101
+ };
102
+ if (defiContext.isLoaded(protocolId)) {
103
+ const payload = buildPayload(defiContext.getToolNames(protocolId));
94
104
  return {
95
105
  content: [{ type: 'text', text: JSON.stringify(payload) }],
96
106
  structuredContent: payload,
97
107
  };
98
108
  }
99
109
  const toolNames = markProtocolLoaded(defiContext, protocolId);
100
- const advisor = getProtocolSupportAdvisor(protocolId);
101
- const skill = getProtocolSkill(protocolId);
102
- const payload = {
103
- loaded: true,
104
- protocolId,
105
- toolNames,
106
- tokenFilter: advisor?.tokenFilter,
107
- advisoryTools: [
108
- 'get_defi_protocol_supported_chains',
109
- 'get_defi_protocol_supported_tokens',
110
- 'get_defi_protocol_skill',
111
- ],
112
- skillPreview: skill?.slice(0, 500),
113
- skillHint: skill
114
- ? 'Call get_defi_protocol_skill for full SKILL.md workflow guidance.'
115
- : undefined,
116
- ...uniswapExtras,
117
- };
110
+ const payload = buildPayload(toolNames);
118
111
  void server.server.sendToolListChanged?.().catch(() => undefined);
119
112
  return {
120
113
  content: [{ type: 'text', text: JSON.stringify(payload) }],
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../../src/mcp/defi/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../../src/mcp/defi/discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** First fetch_ohlcv tool for a protocol, if any. */
2
+ export declare function defiProtocolFetchOhlcvToolName(protocolId: string): string | undefined;
3
+ /** Injected on load_defi_protocol so dynamic protocol load carries chart rules in the same tool result. */
4
+ export declare function defiOhlcvChartWorkflowReminder(protocolId: string, fetchTool: string): string;
5
+ //# sourceMappingURL=ohlcv-chart-workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ohlcv-chart-workflow.d.ts","sourceRoot":"","sources":["../../../src/mcp/defi/ohlcv-chart-workflow.ts"],"names":[],"mappings":"AAEA,qDAAqD;AACrD,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAErF;AAED,2GAA2G;AAC3G,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAQ5F"}
@@ -0,0 +1,16 @@
1
+ import { getToolsForProtocol } from './catalog-adapter.js';
2
+ /** First fetch_ohlcv tool for a protocol, if any. */
3
+ export function defiProtocolFetchOhlcvToolName(protocolId) {
4
+ return getToolsForProtocol(protocolId).find(t => t.name.includes('fetch_ohlcv'))?.name;
5
+ }
6
+ /** Injected on load_defi_protocol so dynamic protocol load carries chart rules in the same tool result. */
7
+ export function defiOhlcvChartWorkflowReminder(protocolId, fetchTool) {
8
+ return [
9
+ `Charting ${protocolId} OHLCV (required when the operator asks to chart/graph/plot):`,
10
+ `1. Call ${fetchTool} for candle rows.`,
11
+ '2. Same agent turn — call continuum__prepare_chart_from_rows with the full fetch JSON as toolResult and a descriptive title (asset + interval + window).',
12
+ 'Fetching candles does not render a chart. The UI only draws continuum/chart/v1 from the prepare_chart_from_rows MCP result — not assistant markdown.',
13
+ 'Also see node skills chart-defaults and chart-periods (initialLoad). Full protocol detail: get_defi_protocol_skill.',
14
+ ].join('\n');
15
+ }
16
+ //# sourceMappingURL=ohlcv-chart-workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ohlcv-chart-workflow.js","sourceRoot":"","sources":["../../../src/mcp/defi/ohlcv-chart-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,sBAAsB,CAAC;AAEzD,qDAAqD;AACrD,MAAM,UAAU,8BAA8B,CAAC,UAAkB;IAChE,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC;AACxF,CAAC;AAED,2GAA2G;AAC3G,MAAM,UAAU,8BAA8B,CAAC,UAAkB,EAAE,SAAiB;IACnF,OAAO;QACN,YAAY,UAAU,+DAA+D;QACrF,WAAW,SAAS,mBAAmB;QACvC,0JAA0J;QAC1J,sJAAsJ;QACtJ,qHAAqH;KACrH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC"}
@@ -20,13 +20,30 @@ Each object in **`series[].data`** is normalized before charting. **`prepare_cha
20
20
  |--------|------------|---------------------|
21
21
  | CoinGecko / agent | `time` (Unix **seconds**) | numbers |
22
22
  | Hyperliquid `fetch_ohlcv` | `timestampMs` | strings → coerced |
23
- | GMX `fetch_ohlcv` | `timestampMs` | strings (no volume on row) |
23
+ | GMX `fetch_ohlcv` | `timestampMs` | strings (no volume on row); top-level `{ symbol, timeframe, candles }` |
24
24
  | Binance `get_klines` (JSON) | `openTime` (ms) | strings → coerced |
25
25
  | Bybit `getMarketKline` | tuple `[startTime, …]` or `{ startTime, open, … }` | strings → coerced |
26
26
  | Bitget REST / MCP | tuple `[ts, o,h,l,c,vol,…]` or `{ timestamp, … }` | strings → coerced |
27
27
  | CoinMarketCap OHLCV API | `{ time_open, quote: { USD: { … } } }` | numbers; nested `quote` flattened |
28
28
  | Uniswap subgraph (`PoolHourData` / `PoolDayData`) | `periodStartUnix` | `open`/`high`/`low`/`close`, optional `volumeUSD` |
29
29
 
30
+ ### Generic OHLCV engine (adding a new source)
31
+
32
+ SDK charting is **vendor-agnostic** after fetch:
33
+
34
+ 1. **`extractOhlcvBarsFromUnknown`** — pulls a bar array from any MCP/tool JSON (nested wrappers, stringified JSON, `{ prices, total_volumes }` spot series). Walks unknown wrapper keys up to depth 6; prefers known keys (`result`, `candles`, `ohlcv`, `klines`, …).
35
+ 2. **`normalizeCandleRow`** (`point-normalize.ts`) — single source of truth per bar: time fields (`time`, `timestampMs`, `timestamp`, `openTime`, `t`, `periodStartUnix`, …), OHLC aliases (`o`/`h`/`l`/`c`, `price_*`), nested CMC `quote.USD`, numeric strings → numbers, ms → sec.
36
+ 3. **`prepare_chart_from_rows`** / **`prepareChart`** — sort, dedupe, trim, optional volume histogram (only when volume present), default EMA/RSI overlays.
37
+
38
+ **Volume optional:** rows without `volume` / `v` / tuple index 5 chart as **candles only** (warning in `meta.warnings`; volume pane omitted). GMX is an example.
39
+
40
+ **New fetch tool checklist:**
41
+
42
+ - Return bars as an array of objects or OHLC tuples, anywhere in the JSON tree (or add a known wrapper key to `NESTED_BAR_KEYS` in `fetch-result.ts` if you want it prioritized).
43
+ - Prefer `{ title, label, …bars… }` on the fetch payload for chart titles; otherwise `extractChartMetadataFromFetchPayload` infers from common DeFi shapes.
44
+ - Add one **`extractOhlcvBarsFromUnknown` + `prepareChartFromRows`** test with a sample row from your API.
45
+ - Optional: extend **`mapOhlcFieldAliases`** / **`flattenVendorCandleRow`** in `point-normalize.ts` only when the row shape is genuinely new (not covered by existing time/OHLC fields).
46
+
30
47
  - **`ctm_uniswap_v4_*`** MCP tools do **not** return candles — only quotes, swaps, and LP. Pool OHLCV comes from a **subgraph** or third-party indexer; map `poolHourDatas` into **`series[0].data`**.
31
48
  - Times in **milliseconds** (>1e12) are converted to **seconds** automatically.
32
49
  - **`open` / `high` / `low` / `close` / `volume`** may be numbers or numeric strings.
@@ -261,7 +278,39 @@ First bar: close ≥ open → green volume. Second: close < open → red volume.
261
278
  - **`priceScaleId`**: `"left"` | `"right"` — use different scales for unlike units.
262
279
  - **`overlay`**: `true` — draw line/area on the main price pane.
263
280
 
264
- When the user asks to graph, plot, or chart data, call **`prepare_chart`** after assembling series — do not rely on markdown tables alone.
281
+ When the user asks to graph, plot, or chart data, call **`prepare_chart_from_rows`** (or **`prepare_chart`**) after assembling series — do not rely on markdown tables alone.
282
+
283
+ **Where charts appear:** the node app renders charts under the **MCP result** row for `prepare_chart` / `prepare_chart_from_rows`, not inside the assistant text bubble. A prose reply like “chart prepared” without a successful chart tool result means nothing was rendered.
284
+
285
+ **Hyperliquid / DeFi `fetch_ohlcv`:** returns `{ ohlcv: { coin, interval, candles: [...] } }`. After `fetch_ohlcv`, call `prepare_chart_from_rows` with the **full fetch JSON** as `toolResult` and a descriptive `title`. The node auto-binds the last OHLCV fetch when `prepare_chart_from_rows` is called with only a title.
286
+
287
+ ## Live updates (agent chat + DeFi dialogs)
288
+
289
+ When `prepare_chart_from_rows` receives a fetch payload the SDK recognizes (Hyperliquid `ohlcv`, GMX flat `{ symbol, timeframe, candles }`, CoinGecko market chart), the output may include optional **`live`**:
290
+
291
+ ```json
292
+ {
293
+ "kind": "continuum/chart/v1",
294
+ "chart": { "...": "..." },
295
+ "live": {
296
+ "providerId": "hyperliquid.allMids",
297
+ "bucketSec": 3600,
298
+ "pollMs": 4000,
299
+ "maxPoints": 400,
300
+ "params": { "coin": "ETH", "interval": "1h" }
301
+ }
302
+ }
303
+ ```
304
+
305
+ The node app polls a **tick adapter** registered for `providerId` every `pollMs` (default **4000**). Each tick is `{ timeMs, price, volume? }`. The SDK merges it into the last OHLCV bar (or appends on bucket rollover) and recomputes overlays locally — **no full OHLCV refetch** on each poll.
306
+
307
+ | `providerId` | Tick source |
308
+ |--------------|-------------|
309
+ | `hyperliquid.allMids` | Hyperliquid `allMids` for `params.coin` |
310
+ | `gmx.markPrice` | GMX index mark USD for `params.symbol` |
311
+ | `coingecko.simple` | CoinGecko simple price for `params.coinId` |
312
+
313
+ **Static charts:** KeyGen chart attachments and charts without `live` are never polled. **`prepare_chart`** alone does not attach `live` — pass the original fetch JSON via **`prepare_chart_from_rows`** (`toolResult`) so binding can be inferred.
265
314
 
266
315
  ## KeyGen orchestration (sub-agents)
267
316
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@continuumdao/continuum-node-sdk",
3
- "version": "1.3.20",
3
+ "version": "1.3.22",
4
4
  "description": "JSON SDK for the Continuum node client management API",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/ContinuumDAO/continuum-node-sdk#readme",
@@ -40,7 +40,7 @@
40
40
  "sync-vendor-defi": "bash scripts/sync-vendor-defi.sh"
41
41
  },
42
42
  "dependencies": {
43
- "@continuumdao/ctm-mpc-defi": "^0.2.17",
43
+ "@continuumdao/ctm-mpc-defi": "^0.2.19",
44
44
  "@curvefi/api": "^2.69.2",
45
45
  "@modelcontextprotocol/sdk": "^1.29.0",
46
46
  "express": "^5.2.1",