@superatomai/sdk-node 0.0.68 → 0.0.70

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/dist/index.mjs CHANGED
@@ -3499,7 +3499,7 @@ function convertTopToLimit(query) {
3499
3499
  let modifiedQuery = query.replace(/\bSELECT\s+TOP\s+\(?\d+\)?\s*/gi, "SELECT ");
3500
3500
  return modifiedQuery;
3501
3501
  }
3502
- function ensureQueryLimit(query, defaultLimit = 10, maxLimit = 100, dbType) {
3502
+ function ensureQueryLimit(query, defaultLimit = 10, maxLimit = 10, dbType) {
3503
3503
  if (!query || query.trim().length === 0) {
3504
3504
  return query;
3505
3505
  }
@@ -6131,7 +6131,7 @@ Fixed SQL query:`;
6131
6131
  {
6132
6132
  model: this.getModelForTask("simple"),
6133
6133
  maxTokens: 2048,
6134
- temperature: 0.1,
6134
+ temperature: 0,
6135
6135
  apiKey: this.getApiKey(apiKey)
6136
6136
  }
6137
6137
  );
@@ -6377,12 +6377,13 @@ ${executedToolsText}`);
6377
6377
  },
6378
6378
  apiKey
6379
6379
  );
6380
+ const limitedFixedQuery = ensureQueryLimit(fixedQueryStr, this.defaultLimit, 10);
6380
6381
  if (typeof currentQuery === "string") {
6381
- currentQuery = fixedQueryStr;
6382
+ currentQuery = limitedFixedQuery;
6382
6383
  } else {
6383
- currentQuery = { ...currentQuery, sql: fixedQueryStr };
6384
+ currentQuery = { ...currentQuery, sql: limitedFixedQuery };
6384
6385
  }
6385
- currentQueryStr = fixedQueryStr;
6386
+ currentQueryStr = limitedFixedQuery;
6386
6387
  logger.info(`[${this.getProviderName()}] LLM provided fixed query for answer component, retrying...`);
6387
6388
  } catch (fixError) {
6388
6389
  const fixErrorMsg = fixError instanceof Error ? fixError.message : String(fixError);
@@ -6418,7 +6419,7 @@ ${executedToolsText}`);
6418
6419
  {
6419
6420
  model: this.getModelForTask("complex"),
6420
6421
  maxTokens: 8192,
6421
- temperature: 0.2,
6422
+ temperature: 0,
6422
6423
  apiKey: this.getApiKey(apiKey),
6423
6424
  partial: partialCallback
6424
6425
  },
@@ -6561,6 +6562,26 @@ ${executedToolsText}`);
6561
6562
  }
6562
6563
  }
6563
6564
  }
6565
+ if (cleanedProps.query) {
6566
+ if (typeof cleanedProps.query === "string") {
6567
+ cleanedProps.query = ensureQueryLimit(
6568
+ cleanedProps.query,
6569
+ this.defaultLimit,
6570
+ 10
6571
+ // maxLimit - enforce maximum of 10 rows for component queries
6572
+ );
6573
+ } else if (cleanedProps.query?.sql) {
6574
+ cleanedProps.query = {
6575
+ ...cleanedProps.query,
6576
+ sql: ensureQueryLimit(
6577
+ cleanedProps.query.sql,
6578
+ this.defaultLimit,
6579
+ 10
6580
+ // maxLimit - enforce maximum of 10 rows for component queries
6581
+ )
6582
+ };
6583
+ }
6584
+ }
6564
6585
  if (cleanedProps.query && cleanedProps.externalTool) {
6565
6586
  logger.info(`[${this.getProviderName()}] Both query and externalTool exist, keeping both - frontend will decide`);
6566
6587
  }
@@ -6681,11 +6702,12 @@ ${executedToolsText}`);
6681
6702
  );
6682
6703
  if (fixedQueryStr && fixedQueryStr !== currentQueryStr) {
6683
6704
  logger.info(`[${this.getProviderName()}] Received fixed query for ${component.name}, retrying...`);
6684
- currentQueryStr = fixedQueryStr;
6705
+ const limitedFixedQuery = ensureQueryLimit(fixedQueryStr, this.defaultLimit, 10);
6706
+ currentQueryStr = limitedFixedQuery;
6685
6707
  if (typeof currentQuery === "string") {
6686
- currentQuery = fixedQueryStr;
6708
+ currentQuery = limitedFixedQuery;
6687
6709
  } else {
6688
- currentQuery = { ...currentQuery, sql: fixedQueryStr };
6710
+ currentQuery = { ...currentQuery, sql: limitedFixedQuery };
6689
6711
  }
6690
6712
  } else {
6691
6713
  logger.warn(`[${this.getProviderName()}] LLM returned same or empty query, stopping retries`);
@@ -6813,7 +6835,7 @@ ${executedToolsText}`);
6813
6835
  {
6814
6836
  model: this.getModelForTask("simple"),
6815
6837
  maxTokens: 1500,
6816
- temperature: 0.2,
6838
+ temperature: 0,
6817
6839
  apiKey: this.getApiKey(apiKey)
6818
6840
  },
6819
6841
  true
@@ -6886,7 +6908,7 @@ ${executedToolsText}`);
6886
6908
  {
6887
6909
  model: this.getModelForTask("complex"),
6888
6910
  maxTokens: 8192,
6889
- temperature: 0.2,
6911
+ temperature: 0,
6890
6912
  apiKey: this.getApiKey(apiKey)
6891
6913
  },
6892
6914
  true
@@ -7207,7 +7229,7 @@ ${executedToolsText}`);
7207
7229
  let sql = toolInput.sql;
7208
7230
  const params = toolInput.params || {};
7209
7231
  const reasoning = toolInput.reasoning;
7210
- sql = ensureQueryLimit(sql, 10, 100);
7232
+ sql = ensureQueryLimit(sql, 10, 10);
7211
7233
  const queryKey = sql.toLowerCase().replace(/\s+/g, " ").trim();
7212
7234
  const attempts = (queryAttempts.get(queryKey) || 0) + 1;
7213
7235
  queryAttempts.set(queryKey, attempts);
@@ -7471,7 +7493,7 @@ ${errorMsg}
7471
7493
  {
7472
7494
  model: this.getModelForTask("complex"),
7473
7495
  maxTokens: 4e3,
7474
- temperature: 0.7,
7496
+ temperature: 0,
7475
7497
  apiKey: this.getApiKey(apiKey),
7476
7498
  partial: wrappedStreamCallback
7477
7499
  // Pass the wrapped streaming callback to LLM
@@ -7881,7 +7903,7 @@ ${errorMsg}
7881
7903
  {
7882
7904
  model: this.getModelForTask("simple"),
7883
7905
  maxTokens: 1200,
7884
- temperature: 0.7,
7906
+ temperature: 0,
7885
7907
  apiKey: this.getApiKey(apiKey)
7886
7908
  },
7887
7909
  true