tradeblocks-mcp 2.2.0 → 2.2.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tradeblocks-mcp",
3
- "version": "2.2.0",
3
+ "version": "2.2.2",
4
4
  "description": "MCP server for options trade analysis",
5
5
  "author": "David Romeo <davidmromeo@gmail.com>",
6
6
  "type": "module",
package/server/index.js CHANGED
@@ -3186,8 +3186,8 @@ var CLOSE_KNOWN_FIELDS = /* @__PURE__ */ new Set([
3186
3186
  var STATIC_FIELDS = /* @__PURE__ */ new Set([
3187
3187
  ...DAILY_STATIC_FIELDS
3188
3188
  ]);
3189
- function buildVixJoins() {
3190
- return VIX_TABLE_ALIASES.map((alias) => `LEFT JOIN market.daily ${alias} ON ${alias}.date = d.date AND ${alias}.ticker = '${VIX_TICKER_FOR_ALIAS[alias]}'`).join("\n ");
3189
+ function buildVixJoins(baseAlias = "d") {
3190
+ return VIX_TABLE_ALIASES.map((alias) => `LEFT JOIN market.daily ${alias} ON ${alias}.date = ${baseAlias}.date AND ${alias}.ticker = '${VIX_TICKER_FOR_ALIAS[alias]}'`).join("\n ");
3191
3191
  }
3192
3192
  function buildVixSelectCols() {
3193
3193
  return VIX_FIELD_MAPPINGS.map((m) => `${m.tableAlias}."${m.sourceCol}" AS "${m.alias}"`).join(", ");
@@ -3296,22 +3296,28 @@ function buildOutcomeQuery(tradeDatesOrKeys) {
3296
3296
  if (tradeDatesOrKeys.length === 0) {
3297
3297
  return { sql: `SELECT * FROM market.daily WHERE 1=0`, params: [] };
3298
3298
  }
3299
- const dailyCloseCols = [...DAILY_CLOSE_FIELDS].map((f) => `d."${f}"`).join(", ");
3300
3299
  const vixCloseCols = VIX_FIELD_MAPPINGS.filter((m) => m.timing === "close").map((m) => `${m.tableAlias}."${m.sourceCol}" AS "${m.alias}"`).join(", ");
3301
3300
  const derivedCloseCols = [...DERIVED_CLOSE_FIELDS].map((f) => `cd."${f}"`).join(", ");
3302
- const vixJoins = buildVixJoins();
3303
3301
  if (typeof tradeDatesOrKeys[0] === "string") {
3304
- const tradeDates = tradeDatesOrKeys;
3305
- const placeholders = tradeDates.map((_, i) => `$${i + 1}`).join(", ");
3306
- const sql2 = `SELECT d.date, ${dailyCloseCols}, ${vixCloseCols}, ${derivedCloseCols}
3307
- FROM market.daily d
3308
- ${vixJoins}
3309
- LEFT JOIN market._context_derived cd ON cd.date = d.date
3310
- WHERE d.ticker = $${tradeDates.length + 1}
3311
- AND d.date IN (${placeholders})`;
3312
- return { sql: sql2, params: [...tradeDates, DEFAULT_MARKET_TICKER] };
3302
+ return buildOutcomeQueryForDates(tradeDatesOrKeys, vixCloseCols, derivedCloseCols);
3313
3303
  }
3314
- const tradeKeys = tradeDatesOrKeys;
3304
+ return buildOutcomeQueryForKeys(tradeDatesOrKeys, vixCloseCols, derivedCloseCols);
3305
+ }
3306
+ function buildOutcomeQueryForDates(tradeDates, vixCloseCols, derivedCloseCols) {
3307
+ const a = "d";
3308
+ const dailyCloseCols = [...DAILY_CLOSE_FIELDS].map((f) => `${a}."${f}"`).join(", ");
3309
+ const placeholders = tradeDates.map((_, i) => `$${i + 1}`).join(", ");
3310
+ const sql = `SELECT ${a}.date, ${dailyCloseCols}, ${vixCloseCols}, ${derivedCloseCols}
3311
+ FROM market.daily ${a}
3312
+ ${buildVixJoins(a)}
3313
+ LEFT JOIN market._context_derived cd ON cd.date = ${a}.date
3314
+ WHERE ${a}.ticker = $${tradeDates.length + 1}
3315
+ AND ${a}.date IN (${placeholders})`;
3316
+ return { sql, params: [...tradeDates, DEFAULT_MARKET_TICKER] };
3317
+ }
3318
+ function buildOutcomeQueryForKeys(tradeKeys, vixCloseCols, derivedCloseCols) {
3319
+ const a = "m";
3320
+ const dailyCloseCols = [...DAILY_CLOSE_FIELDS].map((f) => `${a}."${f}"`).join(", ");
3315
3321
  const normalizedKeys = tradeKeys.map((k) => ({
3316
3322
  date: k.date,
3317
3323
  ticker: k.ticker || DEFAULT_MARKET_TICKER
@@ -3324,13 +3330,13 @@ function buildOutcomeQuery(tradeDatesOrKeys) {
3324
3330
  const sql = `WITH requested(ticker, date) AS (
3325
3331
  VALUES ${valuePlaceholders.join(", ")}
3326
3332
  )
3327
- SELECT m.ticker, m.date, ${dailyCloseCols}, ${vixCloseCols}, ${derivedCloseCols}
3328
- FROM market.daily m
3329
- ${vixJoins.replace(/d\.date/g, "m.date")}
3330
- LEFT JOIN market._context_derived cd ON cd.date = m.date
3333
+ SELECT ${a}.ticker, ${a}.date, ${dailyCloseCols}, ${vixCloseCols}, ${derivedCloseCols}
3334
+ FROM market.daily ${a}
3335
+ ${buildVixJoins(a)}
3336
+ LEFT JOIN market._context_derived cd ON cd.date = ${a}.date
3331
3337
  JOIN requested
3332
- ON m.ticker = requested.ticker
3333
- AND m.date = requested.date`;
3338
+ ON ${a}.ticker = requested.ticker
3339
+ AND ${a}.date = requested.date`;
3334
3340
  return { sql, params: values };
3335
3341
  }
3336
3342