@deepagents/text2sql 0.22.0 → 0.24.0

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 (40) hide show
  1. package/dist/index.js +24 -19
  2. package/dist/index.js.map +3 -3
  3. package/dist/lib/adapters/bigquery/bigquery-fk.d.ts +25 -0
  4. package/dist/lib/adapters/bigquery/bigquery-fk.d.ts.map +1 -0
  5. package/dist/lib/adapters/bigquery/constraint.bigquery.grounding.d.ts +3 -1
  6. package/dist/lib/adapters/bigquery/constraint.bigquery.grounding.d.ts.map +1 -1
  7. package/dist/lib/adapters/bigquery/index.d.ts.map +1 -1
  8. package/dist/lib/adapters/bigquery/index.js +356 -201
  9. package/dist/lib/adapters/bigquery/index.js.map +4 -4
  10. package/dist/lib/adapters/bigquery/indexes.bigquery.grounding.d.ts +6 -7
  11. package/dist/lib/adapters/bigquery/indexes.bigquery.grounding.d.ts.map +1 -1
  12. package/dist/lib/adapters/bigquery/info.bigquery.grounding.d.ts.map +1 -1
  13. package/dist/lib/adapters/bigquery/row-count.bigquery.grounding.d.ts +5 -7
  14. package/dist/lib/adapters/bigquery/row-count.bigquery.grounding.d.ts.map +1 -1
  15. package/dist/lib/adapters/bigquery/table.bigquery.grounding.d.ts +2 -0
  16. package/dist/lib/adapters/bigquery/table.bigquery.grounding.d.ts.map +1 -1
  17. package/dist/lib/adapters/bigquery/view.bigquery.grounding.d.ts +2 -2
  18. package/dist/lib/adapters/bigquery/view.bigquery.grounding.d.ts.map +1 -1
  19. package/dist/lib/adapters/groundings/column-values.grounding.d.ts +4 -0
  20. package/dist/lib/adapters/groundings/column-values.grounding.d.ts.map +1 -1
  21. package/dist/lib/adapters/groundings/context.d.ts +2 -0
  22. package/dist/lib/adapters/groundings/context.d.ts.map +1 -1
  23. package/dist/lib/adapters/groundings/index.js +10 -4
  24. package/dist/lib/adapters/groundings/index.js.map +2 -2
  25. package/dist/lib/adapters/mysql/index.js +10 -4
  26. package/dist/lib/adapters/mysql/index.js.map +2 -2
  27. package/dist/lib/adapters/postgres/index.js +10 -4
  28. package/dist/lib/adapters/postgres/index.js.map +2 -2
  29. package/dist/lib/adapters/spreadsheet/index.js +10 -4
  30. package/dist/lib/adapters/spreadsheet/index.js.map +2 -2
  31. package/dist/lib/adapters/sqlite/index.js +10 -4
  32. package/dist/lib/adapters/sqlite/index.js.map +2 -2
  33. package/dist/lib/adapters/sqlserver/index.js +10 -4
  34. package/dist/lib/adapters/sqlserver/index.js.map +2 -2
  35. package/dist/lib/agents/developer.agent.d.ts +1 -1
  36. package/dist/lib/sql.d.ts +5 -3
  37. package/dist/lib/sql.d.ts.map +1 -1
  38. package/dist/lib/synthesis/index.js +1 -1
  39. package/dist/lib/synthesis/index.js.map +1 -1
  40. package/package.json +8 -6
package/dist/index.js CHANGED
@@ -98,7 +98,8 @@ function createGroundingContext() {
98
98
  tables: [],
99
99
  views: [],
100
100
  relationships: [],
101
- info: void 0
101
+ info: void 0,
102
+ cache: /* @__PURE__ */ new Map()
102
103
  };
103
104
  }
104
105
 
@@ -516,8 +517,8 @@ var sqlValidationMarker = Symbol("SQLValidationError");
516
517
  var unanswerableSqlMarker = Symbol("UnanswerableSQLError");
517
518
  var SQLValidationError = class _SQLValidationError extends Error {
518
519
  [sqlValidationMarker];
519
- constructor(message2) {
520
- super(message2);
520
+ constructor(message) {
521
+ super(message);
521
522
  this.name = "SQLValidationError";
522
523
  this[sqlValidationMarker] = true;
523
524
  }
@@ -527,8 +528,8 @@ var SQLValidationError = class _SQLValidationError extends Error {
527
528
  };
528
529
  var UnanswerableSQLError = class _UnanswerableSQLError extends Error {
529
530
  [unanswerableSqlMarker];
530
- constructor(message2) {
531
- super(message2);
531
+ constructor(message) {
532
+ super(message);
532
533
  this.name = "UnanswerableSQLError";
533
534
  this[unanswerableSqlMarker] = true;
534
535
  }
@@ -1449,7 +1450,7 @@ import {
1449
1450
  user as user2,
1450
1451
  workflow
1451
1452
  } from "@deepagents/context";
1452
- var RETRY_TEMPERATURES = [0, 0.4, 0.8];
1453
+ var RETRY_TEMPERATURES = [0, 0.2, 0.3];
1453
1454
  var SQL_AGENT_ROLE = "Expert SQL query generator.";
1454
1455
  var SQL_AGENT_OBJECTIVE = "Generate precise SQL grounded in provided schema.";
1455
1456
  var SQL_AGENT_POLICIES = [
@@ -1785,11 +1786,11 @@ function isModelUnavailableError(error) {
1785
1786
  if (!APICallError.isInstance(error)) {
1786
1787
  return false;
1787
1788
  }
1788
- const message2 = error.message.toLowerCase();
1789
+ const message = error.message.toLowerCase();
1789
1790
  const responseBody = (error.responseBody ?? "").toLowerCase();
1790
- const is404ModelError = error.statusCode === 404 && (message2.includes("model") || responseBody.includes("model_not_found"));
1791
+ const is404ModelError = error.statusCode === 404 && (message.includes("model") || responseBody.includes("model_not_found"));
1791
1792
  const errorCode = typeof error.data === "object" && error.data !== null && "error" in error.data && typeof error.data.error === "object" && error.data.error !== null && "code" in error.data.error && typeof error.data.error.code === "string" ? error.data.error.code.toLowerCase() : void 0;
1792
- return is404ModelError || errorCode === "model_not_found" || responseBody.includes('"code":"model_not_found"') || message2.includes("model") && message2.includes("does not exist or you do not have access to it");
1793
+ return is404ModelError || errorCode === "model_not_found" || responseBody.includes('"code":"model_not_found"') || message.includes("model") && message.includes("does not exist or you do not have access to it");
1793
1794
  }
1794
1795
  async function withRetry(computation, options = { retries: 3 }) {
1795
1796
  const errors = [];
@@ -5226,8 +5227,9 @@ import "@deepagents/agent";
5226
5227
  import {
5227
5228
  agent as agent2,
5228
5229
  assistant,
5230
+ chatMessageToUIMessage,
5229
5231
  errorRecoveryGuardrail,
5230
- message
5232
+ toMessageFragment
5231
5233
  } from "@deepagents/context";
5232
5234
  var Text2Sql = class {
5233
5235
  #config;
@@ -5291,7 +5293,7 @@ var Text2Sql = class {
5291
5293
  const producer = factory(this.#config.adapter);
5292
5294
  return producer.toPairs();
5293
5295
  }
5294
- async chat(messages) {
5296
+ async chat(messages, options) {
5295
5297
  if (messages.length === 0) {
5296
5298
  throw new Error("messages must not be empty");
5297
5299
  }
@@ -5300,17 +5302,20 @@ var Text2Sql = class {
5300
5302
  ...guidelines(this.#config.teachingsOptions),
5301
5303
  ...await this.index()
5302
5304
  );
5303
- const lastMessage = messages[messages.length - 1];
5305
+ const lastItem = messages[messages.length - 1];
5306
+ const lastFragment = toMessageFragment(lastItem);
5307
+ const lastUIMessage = chatMessageToUIMessage(lastItem);
5304
5308
  let assistantMsgId;
5305
- if (lastMessage.role === "assistant") {
5306
- context.set(message(lastMessage));
5309
+ if (lastUIMessage.role === "assistant") {
5310
+ context.set(lastFragment);
5307
5311
  await context.save({ branch: false });
5308
- assistantMsgId = lastMessage.id;
5312
+ assistantMsgId = lastUIMessage.id;
5309
5313
  } else {
5310
- context.set(message(lastMessage));
5314
+ context.set(lastFragment);
5311
5315
  await context.save();
5312
5316
  assistantMsgId = generateId();
5313
5317
  }
5318
+ const uiMessages = messages.map(chatMessageToUIMessage);
5314
5319
  const { mounts: skillMounts } = context.getSkillMounts();
5315
5320
  const { tools: tools2 } = await createResultTools({
5316
5321
  adapter: this.#config.adapter,
@@ -5330,7 +5335,7 @@ var Text2Sql = class {
5330
5335
  });
5331
5336
  const result = await chatAgent.stream(
5332
5337
  {},
5333
- { transform: this.#config.transform }
5338
+ { abortSignal: options?.abortSignal, transform: this.#config.transform }
5334
5339
  );
5335
5340
  const uiStream = result.toUIMessageStream({
5336
5341
  onError: (error) => this.#formatError(error),
@@ -5338,7 +5343,7 @@ var Text2Sql = class {
5338
5343
  sendFinish: true,
5339
5344
  sendReasoning: true,
5340
5345
  sendSources: true,
5341
- originalMessages: messages,
5346
+ originalMessages: uiMessages,
5342
5347
  generateMessageId: () => assistantMsgId,
5343
5348
  messageMetadata: ({ part }) => {
5344
5349
  if (part.type === "finish-step") {
@@ -5357,7 +5362,7 @@ var Text2Sql = class {
5357
5362
  }
5358
5363
  });
5359
5364
  return createUIMessageStream({
5360
- originalMessages: messages,
5365
+ originalMessages: uiMessages,
5361
5366
  generateId: () => assistantMsgId,
5362
5367
  onStepFinish: async ({ responseMessage }) => {
5363
5368
  context.set(assistant({ ...responseMessage, id: assistantMsgId }));