@dwlf/mcp-server 0.28.0 → 0.29.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"strategyNodeMetadata.d.ts","sourceRoot":"","sources":["../../src/data/strategyNodeMetadata.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAItB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,GAAG,cAAc,GAAG,MAAM,CAAC;IACnF,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,YAAY,EAiSxC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEhF;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,GAAG,YAAY,EAAE,CAE7F"}
1
+ {"version":3,"file":"strategyNodeMetadata.d.ts","sourceRoot":"","sources":["../../src/data/strategyNodeMetadata.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAItB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,GAAG,cAAc,GAAG,MAAM,CAAC;IACnF,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,YAAY,EA8TxC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEhF;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,GAAG,YAAY,EAAE,CAE7F"}
@@ -37,8 +37,15 @@ export const STRATEGY_NODES = [
37
37
  name: 'bufferPct',
38
38
  type: 'number',
39
39
  default: 1.0,
40
- description: 'Distance below the swing low (above the swing high for short) as a percent. Engine currently hard-codes this as ×0.99 / ×1.01.',
41
- honoredByExecutor: false,
40
+ description: 'Distance below the swing low (above the swing high for short) as a percent. Accepts fractions (0.5) and integers (2); 0 = stop exactly at the low. Default 1% (×0.99 / ×1.01).',
41
+ honoredByExecutor: true,
42
+ },
43
+ {
44
+ name: 'maxStopDistancePct',
45
+ type: 'number',
46
+ default: 0,
47
+ description: 'Optional risk gate: if the resolved stop is further from entry than this percent, the trade is SKIPPED entirely (no entry). 0 / absent = gate disabled. Use to drop stale-anchor wide stops. NOTE: a backtest showed capping reduces returns on the live universe — the cap is best treated as an executability filter (the widest stop you would actually place), not a performance optimiser.',
48
+ honoredByExecutor: true,
42
49
  },
43
50
  {
44
51
  name: 'swingSource',
@@ -56,7 +63,7 @@ export const STRATEGY_NODES = [
56
63
  honoredByExecutor: false,
57
64
  },
58
65
  ],
59
- notes: 'Post-PR#220 (2026-05-19), the swing-date filter uses `>` not `>=` so same-bar confirmations are no longer silently discarded old SLs that resolved to deep historical lows are now correctly anchored to the most recent confirmed pivot.',
66
+ notes: 'Post-PR#220 (2026-05-19), the swing-date filter uses `>` not `>=` so same-bar confirmations are no longer silently discarded. bufferPct + maxStopDistancePct configurable since PR#225/#224.',
60
67
  },
61
68
  {
62
69
  nodeType: 'sl_below_recent_cycle_low',
@@ -75,11 +82,18 @@ export const STRATEGY_NODES = [
75
82
  name: 'bufferPct',
76
83
  type: 'number',
77
84
  default: 1.0,
78
- description: 'Distance below the cycle low (above the cycle high for short) as a percent. Engine currently hard-codes this as ×0.99 / ×1.01.',
79
- honoredByExecutor: false,
85
+ description: 'Distance below the cycle low (above the cycle high for short) as a percent. Accepts fractions (0.5) and integers (2); 0 = stop exactly at the low. Default 1% (×0.99 / ×1.01).',
86
+ honoredByExecutor: true,
87
+ },
88
+ {
89
+ name: 'maxStopDistancePct',
90
+ type: 'number',
91
+ default: 0,
92
+ description: 'Optional risk gate: if the resolved stop is further from entry than this percent, the trade is SKIPPED entirely. 0 / absent = disabled. Catches absurdly deep cycle lows. See sl_below_recent_low note on treating this as an executability filter, not a performance optimiser.',
93
+ honoredByExecutor: true,
80
94
  },
81
95
  ],
82
- notes: 'Sibling to sl_below_recent_low. Use this when you specifically want DCL-anchored stops; the generic version uses bare swing lows which can include mid-cycle bounces.',
96
+ notes: 'Sibling to sl_below_recent_low. Use this when you specifically want DCL-anchored stops; the generic version uses bare swing lows which can include mid-cycle bounces. bufferPct + maxStopDistancePct configurable since PR#225/#224.',
83
97
  },
84
98
  {
85
99
  nodeType: 'sl_percentage',
@@ -175,6 +189,19 @@ export const STRATEGY_NODES = [
175
189
  description: 'TP at 10× risk. Common for trend-following / DCL strategies aiming to ride breakouts.',
176
190
  params: [{ name: 'ratio', type: 'number', default: 10, description: 'R-multiple.', honoredByExecutor: true }],
177
191
  },
192
+ {
193
+ nodeType: 'tp_r_multiple',
194
+ category: 'takeProfit',
195
+ description: 'TP at a CUSTOM R-multiple — set any risk:reward ratio instead of the fixed 1/2/3/5/10 presets. Use when you want e.g. 1.5R, 4R, 7R.',
196
+ params: [{
197
+ name: 'ratio',
198
+ type: 'number',
199
+ default: 3,
200
+ description: 'Risk:reward multiple. Accepts fractions (1.5) and integers (4). Defaults to 3R if missing/invalid.',
201
+ honoredByExecutor: true,
202
+ }],
203
+ notes: 'Engine computes TP identically to the presets (entry ± ratio × risk); only the ratio source differs (node param vs static). Keep the presets for one-click common ratios; reach for this when you need a non-standard R:R.',
204
+ },
178
205
  {
179
206
  nodeType: 'tp_percentage',
180
207
  category: 'takeProfit',
@@ -1 +1 @@
1
- {"version":3,"file":"strategyNodeMetadata.js","sourceRoot":"","sources":["../../src/data/strategyNodeMetadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strategyNodeMetadata.js","sourceRoot":"","sources":["../../src/data/strategyNodeMetadata.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../src/tools/annotations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAmB,MAAM,cAAc,CAAC;AAE3D,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,QAqJnB"}
1
+ {"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../src/tools/annotations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAmB,MAAM,cAAc,CAAC;AA+C3D,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,QA4KnB"}
@@ -1,8 +1,50 @@
1
1
  import { z } from 'zod';
2
2
  import { normalizeSymbol } from '../client.js';
3
+ /**
4
+ * Annotation types the backend accepts. MUST stay in sync with VALID_TYPES in
5
+ * serverless-portfolio-tracker/src/db/annotationsService.js — the backend 400s
6
+ * on anything outside that list. Keep this the single source of truth on the
7
+ * MCP side and reference it from every tool that takes a `type`.
8
+ */
9
+ const ANNOTATION_TYPES = [
10
+ 'hline', 'text', 'vline', 'ray', 'trendline', 'channel', 'rectangle',
11
+ 'fib_retracement', 'fib_extension', 'pitchfork', 'measure',
12
+ 'arrow', 'brush', 'icon', 'note', 'price_alert',
13
+ 'crossline', 'timerange', 'emoji', 'fibRetracement', 'alert_line',
14
+ 'long_position', 'short_position',
15
+ ];
16
+ const ANNOTATION_ORIGINS = ['user', 'ai', 'system'];
17
+ /**
18
+ * Per-type `data` field reference, appended to the create/bulk tool docs so an
19
+ * agent can build a valid annotation in one shot instead of reverse-engineering
20
+ * shapes from list_annotations. All `time*` fields are unix-ms timestamps; all
21
+ * `price*` fields are chart prices. `color` is a hex string (e.g. "#22c55e"),
22
+ * `lineStyle` is one of "solid"|"dashed"|"dotted", `lineWidth` is a number.
23
+ * visible / locked / zIndex / groupId are TOP-LEVEL fields (not inside `data`).
24
+ */
25
+ const DATA_SHAPES = [
26
+ 'DATA SHAPES BY TYPE (times = unix-ms, prices = chart price):',
27
+ '• hline — {price, color, lineStyle, lineWidth, showPrice, label?}: horizontal price level.',
28
+ '• vline — {time, color, lineStyle, lineWidth, showTime, label?}: vertical time marker.',
29
+ '• text — {time, price, text, fontSize, color, backgroundColor?}: free text box anchored at a point. Use \\n inside `text` for multi-line — long single-line text renders too wide to read, so break it up.',
30
+ '• arrow — {time1, price1, time2, price2, text, fontSize, color, lineStyle, lineWidth}: callout/speech-bubble. The text box sits at (time1,price1); the arrowhead points to (time2,price2). Use this to label a level or zone with a pointer.',
31
+ '• trendline — {time1, price1, time2, price2, color, lineStyle, lineWidth, label?, extendLeft?, extendRight?}: line through two points.',
32
+ '• ray — {time1, price1, time2, price2, color, lineStyle, lineWidth, label?}: half-line from point 1 through point 2.',
33
+ '• rectangle — {time1, price1, time2, price2, color, fillOpacity, lineStyle, lineWidth, label?}: shaded zone between two opposite corners.',
34
+ '• channel — {time1, price1, time2, price2, priceOffset, color, lineStyle, lineWidth, fillOpacity, label?, extendLeft?, extendRight?}: parallel channel; the second rail runs priceOffset above (+) / below (−) the base line.',
35
+ '• crossline — {time, price, color, lineStyle, lineWidth, showPrice, showTime, label?}: crosshair marker at one point.',
36
+ '• emoji — {time, price, emoji, size}: emoji marker (e.g. emoji "🦊").',
37
+ '• timerange — {time1, time2, color, fillOpacity, lineStyle, lineWidth, label?}: vertical time band.',
38
+ '• fibRetracement / measure — {time1, price1, time2, price2, levels:number[], showExtensions, extendRight, color, lineStyle, lineWidth, fillOpacity, label?}: fib/measure between two swing points.',
39
+ '• fib_extension — {time1, price1, time2, price2, color, lineStyle, lineWidth, label?}: extension projection.',
40
+ '• alert_line — {price, color, lineStyle, lineWidth, showPrice, direction:"above"|"below", label?}: price-alert line.',
41
+ '• long_position / short_position — {time1, time2, entryPrice, stopPrice, targetPrice, label?}: renders an entry line, stop+target zones and a live R:R badge.',
42
+ 'ALIASES (same storage — prefer the first of each pair): text over note; emoji over icon; alert_line over price_alert; fibRetracement over fib_retracement.',
43
+ 'TIP: copy an existing shape via dwlf_list_annotations if unsure.',
44
+ ].join('\n');
3
45
  export function registerAnnotationTools(server, client) {
4
46
  // 1. List annotations
5
- server.tool('dwlf_list_annotations', 'List annotations for a symbol. Optionally filter by timeframe (e.g. daily, weekly, hourly).', {
47
+ server.tool('dwlf_list_annotations', 'List annotations for a symbol. Optionally filter by timeframe (e.g. daily, weekly, hourly). Returns each annotation with its annotationId, type, timeframe and full data — copy a data shape from here when you are unsure how to build a new one.', {
6
48
  symbol: z.string().describe('Trading symbol (e.g. BTC, TSLA)'),
7
49
  timeframe: z.string().optional().describe('Timeframe filter (e.g. "daily", "weekly", "hourly")'),
8
50
  }, async ({ symbol, timeframe }) => {
@@ -25,12 +67,12 @@ export function registerAnnotationTools(server, client) {
25
67
  }
26
68
  });
27
69
  // 2. Create annotation
28
- server.tool('dwlf_create_annotation', 'Create a chart annotation. Supported types: hline, text, trendline, rectangle, channel, long_position, short_position. The position types render an entry line, stop and target zones, and a live R:R badgedata shape: {time1, time2, entryPrice, stopPrice, targetPrice, label?}.', {
70
+ server.tool('dwlf_create_annotation', 'Create a chart annotation. `type` selects the shape; `data` carries the type-specific fields documented below. Note `arrow` is the callout/bubble-with-pointer and `text` is a plain text boxfor commentary that points at a level, use `arrow`.\n\n' + DATA_SHAPES, {
29
71
  symbol: z.string().describe('Trading symbol (e.g. BTC, TSLA)'),
30
72
  timeframe: z.string().describe('Timeframe (e.g. "daily", "weekly", "hourly")'),
31
- type: z.enum(['hline', 'text', 'trendline', 'rectangle', 'channel', 'long_position', 'short_position']).describe('Annotation type'),
32
- data: z.record(z.string(), z.unknown()).describe('Annotation data varies by type. hline: {price, color, label, lineStyle, lineWidth, showPrice}. long_position/short_position: {time1, time2, entryPrice, stopPrice, targetPrice, label?} where times are unix-ms timestamps.'),
33
- origin: z.string().optional().describe('Origin of the annotation (default: "user")'),
73
+ type: z.enum(ANNOTATION_TYPES).describe('Annotation type see the data-shape reference in the tool description for the fields each one needs.'),
74
+ data: z.record(z.string(), z.unknown()).describe('Type-specific fields. See DATA SHAPES BY TYPE in the tool description. Max 4KB serialized.'),
75
+ origin: z.enum(ANNOTATION_ORIGINS).optional().describe('Who created it: "user" (default), "ai" (agent-generated — use this for your own annotations), or "system".'),
34
76
  }, async ({ symbol, timeframe, type, data, origin }) => {
35
77
  try {
36
78
  const body = {
@@ -54,14 +96,33 @@ export function registerAnnotationTools(server, client) {
54
96
  }
55
97
  });
56
98
  // 3. Update annotation
57
- server.tool('dwlf_update_annotation', 'Update an existing annotation by ID. Merge partial data into the annotation.', {
58
- annotationId: z.string().describe('Annotation ID'),
59
- data: z.record(z.string(), z.unknown()).optional().describe('Partial annotation data to merge'),
60
- }, async ({ annotationId, data }) => {
99
+ server.tool('dwlf_update_annotation', 'Update an existing annotation. symbol + timeframe are REQUIRED (the backend needs them to locate the row). `data` is merged field-by-field into the existing data — pass only the fields you want to change (e.g. {label: "..."} or {price: 56}); sibling fields are preserved. visible/locked/zIndex/groupId can also be patched.', {
100
+ annotationId: z.string().describe('Annotation ID (e.g. ann_d604ba96a697)'),
101
+ symbol: z.string().describe('Trading symbol the annotation belongs to — required to address the row'),
102
+ timeframe: z.string().describe('Annotation timeframe (e.g. "daily", "weekly", "hourly") required to address the row'),
103
+ data: z.record(z.string(), z.unknown()).optional().describe('Partial data fields to merge (not a full replacement). E.g. {label: "Reclaim ~56"} or {color: "#ef4444"}.'),
104
+ visible: z.boolean().optional().describe('Show/hide the annotation'),
105
+ locked: z.boolean().optional().describe('Lock the annotation against edits'),
106
+ zIndex: z.number().optional().describe('Stacking order'),
107
+ groupId: z.string().nullable().optional().describe('Annotation group/workspace id'),
108
+ }, async ({ annotationId, symbol, timeframe, data, visible, locked, zIndex, groupId }) => {
61
109
  try {
62
- const body = {};
63
- if (data)
110
+ // Backend reads symbol+timeframe off the body to build the sort key,
111
+ // then treats every other top-level field as the patch.
112
+ const body = {
113
+ symbol: normalizeSymbol(symbol),
114
+ timeframe,
115
+ };
116
+ if (data !== undefined)
64
117
  body.data = data;
118
+ if (visible !== undefined)
119
+ body.visible = visible;
120
+ if (locked !== undefined)
121
+ body.locked = locked;
122
+ if (zIndex !== undefined)
123
+ body.zIndex = zIndex;
124
+ if (groupId !== undefined)
125
+ body.groupId = groupId;
65
126
  const result = await client.put(`/annotations/${annotationId}`, body);
66
127
  return {
67
128
  content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
@@ -75,7 +136,7 @@ export function registerAnnotationTools(server, client) {
75
136
  }
76
137
  });
77
138
  // 4. Delete annotation
78
- server.tool('dwlf_delete_annotation', 'Delete an annotation by ID. Backend requires the annotation\'s symbol and timeframe alongside the ID.', {
139
+ server.tool('dwlf_delete_annotation', 'Delete an annotation by ID. symbol + timeframe are required (the backend needs them to locate the row).', {
79
140
  annotationId: z.string().describe('Annotation ID'),
80
141
  symbol: z.string().describe('Trading symbol the annotation belongs to (e.g. BTC, TSLA, GDXJ)'),
81
142
  timeframe: z.string().describe('Annotation timeframe (e.g. "daily", "weekly", "hourly")'),
@@ -97,21 +158,29 @@ export function registerAnnotationTools(server, client) {
97
158
  }
98
159
  });
99
160
  // 5. Bulk create annotations
100
- server.tool('dwlf_bulk_create_annotations', 'Create multiple annotations at once. Each annotation follows the same shape as dwlf_create_annotation.', {
161
+ server.tool('dwlf_bulk_create_annotations', 'Create multiple annotations in one call (max 25). Each entry follows the same shape as dwlf_create_annotation — see its data-shape reference. Returns a per-item results array; an individual item can fail without aborting the rest.', {
101
162
  annotations: z.array(z.object({
102
163
  symbol: z.string().describe('Trading symbol'),
103
164
  timeframe: z.string().describe('Timeframe'),
104
- type: z.enum(['hline', 'text', 'trendline', 'rectangle', 'channel', 'long_position', 'short_position']).describe('Annotation type'),
105
- data: z.record(z.string(), z.unknown()).describe('Annotation data'),
106
- origin: z.string().optional().describe('Origin of the annotation'),
107
- })).describe('Array of annotation objects to create'),
165
+ type: z.enum(ANNOTATION_TYPES).describe('Annotation type'),
166
+ data: z.record(z.string(), z.unknown()).describe('Type-specific fields — see dwlf_create_annotation'),
167
+ origin: z.enum(ANNOTATION_ORIGINS).optional().describe('Origin (default "user")'),
168
+ })).min(1).max(25).describe('Annotations to create (1-25)'),
108
169
  }, async ({ annotations }) => {
109
170
  try {
110
- const normalized = annotations.map((a) => ({
111
- ...a,
112
- symbol: normalizeSymbol(a.symbol),
171
+ // Backend /annotations/bulk takes { operations: [{action, ...}] }, not a
172
+ // bare annotations array. Wrap each as a create operation.
173
+ const operations = annotations.map((a) => ({
174
+ action: 'create',
175
+ annotation: {
176
+ symbol: normalizeSymbol(a.symbol),
177
+ timeframe: a.timeframe,
178
+ type: a.type,
179
+ data: a.data,
180
+ ...(a.origin ? { origin: a.origin } : {}),
181
+ },
113
182
  }));
114
- const result = await client.post('/annotations/bulk', { annotations: normalized });
183
+ const result = await client.post('/annotations/bulk', { operations });
115
184
  return {
116
185
  content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
117
186
  };
@@ -1 +1 @@
1
- {"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../src/tools/annotations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../src/tools/annotations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAc,eAAe,EAAE,MAAM,cAAc,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG;IACvB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW;IACpE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS;IAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;IAC/C,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY;IACjE,eAAe,EAAE,gBAAgB;CACzB,CAAC;AAEX,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAU,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,WAAW,GAAG;IAClB,8DAA8D;IAC9D,4FAA4F;IAC5F,wFAAwF;IACxF,4MAA4M;IAC5M,8OAA8O;IAC9O,wIAAwI;IACxI,sHAAsH;IACtH,2IAA2I;IAC3I,+NAA+N;IAC/N,uHAAuH;IACvH,uEAAuE;IACvE,qGAAqG;IACrG,oMAAoM;IACpM,8GAA8G;IAC9G,sHAAsH;IACtH,+JAA+J;IAC/J,4JAA4J;IAC5J,kEAAkE;CACnE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,UAAU,uBAAuB,CACrC,MAAiB,EACjB,MAAkB;IAElB,sBAAsB;IACtB,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,oPAAoP,EACpP;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QAC9D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;KACjG,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAA4B;gBACtC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;aAChC,CAAC;YACF,IAAI,SAAS;gBAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAE5C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YACtD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACjE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;gBACrG,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,uBAAuB;IACvB,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,yPAAyP,GAAG,WAAW,EACvQ;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QAC9D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QAC9E,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,uGAAuG,CAAC;QAChJ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,4FAA4F,CAAC;QAC9I,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4GAA4G,CAAC;KACrK,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QAClD,IAAI,CAAC;YACH,MAAM,IAAI,GAA4B;gBACpC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;gBAC/B,SAAS;gBACT,IAAI;gBACJ,IAAI;aACL,CAAC;YACF,IAAI,MAAM;gBAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YAEjC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YACvD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;gBACrG,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,uBAAuB;IACvB,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,oUAAoU,EACpU;QACE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAC1E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;QACrG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uFAAuF,CAAC;QACvH,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2GAA2G,CAAC;QACxK,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACpE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC5E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACxD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;KACpF,EACD,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QACpF,IAAI,CAAC;YACH,qEAAqE;YACrE,wDAAwD;YACxD,MAAM,IAAI,GAA4B;gBACpC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;gBAC/B,SAAS;aACV,CAAC;YACF,IAAI,IAAI,KAAK,SAAS;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACzC,IAAI,OAAO,KAAK,SAAS;gBAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YAClD,IAAI,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YAC/C,IAAI,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YAC/C,IAAI,OAAO,KAAK,SAAS;gBAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YAElD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,gBAAgB,YAAY,EAAE,EAAE,IAAI,CAAC,CAAC;YACtE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;gBACrG,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,uBAAuB;IACvB,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,yGAAyG,EACzG;QACE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAClD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;QAC9F,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;KAC1F,EACD,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;QAC5C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,YAAY,EAAE,EAAE;gBAC/D,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;gBAC/B,SAAS;aACV,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACjE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;gBACrG,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,6BAA6B;IAC7B,MAAM,CAAC,IAAI,CACT,8BAA8B,EAC9B,wOAAwO,EACxO;QACE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC7C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC3C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC1D,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,mDAAmD,CAAC;YACrG,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;SAClF,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;KAC5D,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,yEAAyE;YACzE,2DAA2D;YAC3D,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzC,MAAM,EAAE,QAAQ;gBAChB,UAAU,EAAE;oBACV,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC;oBACjC,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1C;aACF,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,UAAU,EAAwC,CAAC,CAAC;YAC5G,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;gBACrG,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dwlf/mcp-server",
3
- "version": "0.28.0",
3
+ "version": "0.29.1",
4
4
  "description": "MCP server for DWLF market analysis platform — exposes market data, indicators, signals, strategies, backtests, portfolio, trade journal, and more as AI-accessible tools",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",