@deepagents/text2sql 7.0.2 → 7.1.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.
- package/README.md +63 -75
- package/dist/bin/sql.js +82 -599
- package/dist/eval/src/evals/models.d.ts +12 -0
- package/dist/eval/src/evals/models.d.ts.map +1 -0
- package/dist/eval/src/evals/sql-create-context/sql-create-context.eval.d.ts +2 -0
- package/dist/eval/src/evals/sql-create-context/sql-create-context.eval.d.ts.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +920 -706
- package/dist/index.js.map +4 -4
- package/dist/lib/adapter-index.d.ts +0 -2
- package/dist/lib/adapter-index.d.ts.map +1 -1
- package/dist/lib/adapters/adapter.d.ts +23 -1
- package/dist/lib/adapters/adapter.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/bigquery-fk.d.ts +0 -11
- package/dist/lib/adapters/bigquery/bigquery-fk.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/bigquery-rows.d.ts +22 -0
- package/dist/lib/adapters/bigquery/bigquery-rows.d.ts.map +1 -0
- package/dist/lib/adapters/bigquery/bigquery.d.ts +1 -1
- package/dist/lib/adapters/bigquery/bigquery.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/constraint.bigquery.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/index.d.ts +6 -13
- package/dist/lib/adapters/bigquery/index.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/index.js +244 -51
- package/dist/lib/adapters/bigquery/index.js.map +4 -4
- package/dist/lib/adapters/bigquery/indexes.bigquery.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/row-count.bigquery.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/table.bigquery.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/view.bigquery.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/clickhouse/clickhouse-rows.d.ts +7 -0
- package/dist/lib/adapters/clickhouse/clickhouse-rows.d.ts.map +1 -0
- package/dist/lib/adapters/clickhouse/clickhouse.d.ts +1 -1
- package/dist/lib/adapters/clickhouse/clickhouse.d.ts.map +1 -1
- package/dist/lib/adapters/clickhouse/constraint.clickhouse.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/clickhouse/index.js +133 -44
- package/dist/lib/adapters/clickhouse/index.js.map +4 -4
- package/dist/lib/adapters/clickhouse/indexes.clickhouse.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/clickhouse/info.clickhouse.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/clickhouse/row-count.clickhouse.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/clickhouse/table.clickhouse.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/clickhouse/view.clickhouse.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/duckdb/duckdb.d.ts +1 -1
- package/dist/lib/adapters/duckdb/duckdb.d.ts.map +1 -1
- package/dist/lib/adapters/duckdb/duckdb.groundings.d.ts.map +1 -1
- package/dist/lib/adapters/duckdb/index.d.ts +8 -10
- package/dist/lib/adapters/duckdb/index.d.ts.map +1 -1
- package/dist/lib/adapters/duckdb/index.js +1549 -1412
- package/dist/lib/adapters/duckdb/index.js.map +4 -4
- package/dist/lib/adapters/groundings/index.js.map +1 -1
- package/dist/lib/adapters/groundings/rows.d.ts +32 -0
- package/dist/lib/adapters/groundings/rows.d.ts.map +1 -0
- package/dist/lib/adapters/mysql/column-stats.mysql.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/column-values.mysql.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/constraint.mysql.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/index.d.ts +2 -4
- package/dist/lib/adapters/mysql/index.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/index.js +230 -76
- package/dist/lib/adapters/mysql/index.js.map +4 -4
- package/dist/lib/adapters/mysql/indexes.mysql.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/info.mysql.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/mysql-rows.d.ts +11 -0
- package/dist/lib/adapters/mysql/mysql-rows.d.ts.map +1 -0
- package/dist/lib/adapters/mysql/mysql.d.ts +1 -1
- package/dist/lib/adapters/mysql/mysql.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/row-count.mysql.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/table.mysql.grounding.d.ts +3 -2
- package/dist/lib/adapters/mysql/table.mysql.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/view.mysql.grounding.d.ts +2 -2
- package/dist/lib/adapters/mysql/view.mysql.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/column-stats.postgres.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/column-values.postgres.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/constraint.postgres.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/index.d.ts +2 -4
- package/dist/lib/adapters/postgres/index.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/index.js +266 -487
- package/dist/lib/adapters/postgres/index.js.map +4 -4
- package/dist/lib/adapters/postgres/indexes.postgres.grounding.d.ts +1 -5
- package/dist/lib/adapters/postgres/indexes.postgres.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/info.postgres.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/postgres-rows.d.ts +7 -0
- package/dist/lib/adapters/postgres/postgres-rows.d.ts.map +1 -0
- package/dist/lib/adapters/postgres/postgres.d.ts +6 -1
- package/dist/lib/adapters/postgres/postgres.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/row-count.postgres.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/table.postgres.grounding.d.ts +5 -4
- package/dist/lib/adapters/postgres/table.postgres.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/view.postgres.grounding.d.ts +3 -3
- package/dist/lib/adapters/postgres/view.postgres.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/posthog/definitions.posthog.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/posthog/index.d.ts +4 -5
- package/dist/lib/adapters/posthog/index.d.ts.map +1 -1
- package/dist/lib/adapters/posthog/index.js +349 -287
- package/dist/lib/adapters/posthog/index.js.map +4 -4
- package/dist/lib/adapters/posthog/posthog.d.ts +2 -2
- package/dist/lib/adapters/posthog/posthog.d.ts.map +1 -1
- package/dist/lib/adapters/posthog/posthog.sql-policy.d.ts.map +1 -1
- package/dist/lib/adapters/posthog/schema.posthog.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/posthog/transport.d.ts.map +1 -1
- package/dist/lib/adapters/posthog/types.d.ts +16 -6
- package/dist/lib/adapters/posthog/types.d.ts.map +1 -1
- package/dist/lib/adapters/spreadsheet/index.js +117 -38
- package/dist/lib/adapters/spreadsheet/index.js.map +4 -4
- package/dist/lib/adapters/sqlite/column-stats.sqlite.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/column-values.sqlite.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/constraint.sqlite.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/index.js +136 -52
- package/dist/lib/adapters/sqlite/index.js.map +4 -4
- package/dist/lib/adapters/sqlite/indexes.sqlite.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/info.sqlite.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/row-count.sqlite.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/sqlite-rows.d.ts +41 -0
- package/dist/lib/adapters/sqlite/sqlite-rows.d.ts.map +1 -0
- package/dist/lib/adapters/sqlite/sqlite.d.ts +1 -1
- package/dist/lib/adapters/sqlite/sqlite.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/table.sqlite.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/view.sqlite.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/column-stats.sqlserver.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/column-values.sqlserver.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/constraint.sqlserver.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/index.d.ts +2 -4
- package/dist/lib/adapters/sqlserver/index.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/index.js +255 -503
- package/dist/lib/adapters/sqlserver/index.js.map +4 -4
- package/dist/lib/adapters/sqlserver/indexes.sqlserver.grounding.d.ts +1 -5
- package/dist/lib/adapters/sqlserver/indexes.sqlserver.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/info.sqlserver.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/row-count.sqlserver.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/sqlserver-rows.d.ts +7 -0
- package/dist/lib/adapters/sqlserver/sqlserver-rows.d.ts.map +1 -0
- package/dist/lib/adapters/sqlserver/sqlserver.d.ts +6 -1
- package/dist/lib/adapters/sqlserver/sqlserver.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/table.sqlserver.grounding.d.ts +5 -4
- package/dist/lib/adapters/sqlserver/table.sqlserver.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/view.sqlserver.grounding.d.ts +3 -3
- package/dist/lib/adapters/sqlserver/view.sqlserver.grounding.d.ts.map +1 -1
- package/dist/lib/agents/question.agent.d.ts.map +1 -1
- package/dist/lib/agents/sql-transform-plugins.d.ts.map +1 -1
- package/dist/lib/agents/suggestions.agents.d.ts.map +1 -1
- package/dist/lib/checkpoint.d.ts +34 -21
- package/dist/lib/checkpoint.d.ts.map +1 -1
- package/dist/lib/file-cache.d.ts +6 -1
- package/dist/lib/file-cache.d.ts.map +1 -1
- package/dist/lib/fs/columns.d.ts +14 -0
- package/dist/lib/fs/columns.d.ts.map +1 -0
- package/dist/lib/fs/mssql/mssql-fs.d.ts +4 -4
- package/dist/lib/fs/mssql/mssql-fs.d.ts.map +1 -1
- package/dist/lib/fs/postgres/postgres-fs.d.ts +4 -4
- package/dist/lib/fs/postgres/postgres-fs.d.ts.map +1 -1
- package/dist/lib/fs/sqlite/sqlite-fs.d.ts +4 -4
- package/dist/lib/fs/sqlite/sqlite-fs.d.ts.map +1 -1
- package/dist/lib/index-cache.d.ts +6 -6
- package/dist/lib/index-cache.d.ts.map +1 -1
- package/dist/lib/sql-command.d.ts +1 -4
- package/dist/lib/sql-command.d.ts.map +1 -1
- package/dist/lib/sql.d.ts +0 -5
- package/dist/lib/sql.d.ts.map +1 -1
- package/dist/lib/synthesis/decorators/deduplicated-producer.d.ts +1 -2
- package/dist/lib/synthesis/decorators/deduplicated-producer.d.ts.map +1 -1
- package/dist/lib/synthesis/decorators/filtered-producer.d.ts +0 -2
- package/dist/lib/synthesis/decorators/filtered-producer.d.ts.map +1 -1
- package/dist/lib/synthesis/decorators/validated-producer.d.ts +1 -3
- package/dist/lib/synthesis/decorators/validated-producer.d.ts.map +1 -1
- package/dist/lib/synthesis/extractors/base-contextual-extractor.d.ts.map +1 -1
- package/dist/lib/synthesis/extractors/message-extractor.d.ts.map +1 -1
- package/dist/lib/synthesis/extractors/segmented-context-extractor.d.ts.map +1 -1
- package/dist/lib/synthesis/extractors/sql-extractor.d.ts.map +1 -1
- package/dist/lib/synthesis/extractors/tool-input.d.ts +6 -0
- package/dist/lib/synthesis/extractors/tool-input.d.ts.map +1 -0
- package/dist/lib/synthesis/index.js +124 -114
- package/dist/lib/synthesis/index.js.map +4 -4
- package/dist/lib/synthesis/synthesizers/breadth-evolver.d.ts +0 -2
- package/dist/lib/synthesis/synthesizers/breadth-evolver.d.ts.map +1 -1
- package/dist/lib/synthesis/synthesizers/depth-evolver.d.ts +0 -3
- package/dist/lib/synthesis/synthesizers/depth-evolver.d.ts.map +1 -1
- package/dist/lib/synthesis/synthesizers/persona-generator.d.ts.map +1 -1
- package/dist/lib/synthesis/synthesizers/schema-synthesizer.d.ts +0 -2
- package/dist/lib/synthesis/synthesizers/schema-synthesizer.d.ts.map +1 -1
- package/dist/scripts/scripts/bigquery-test.d.ts +2 -0
- package/dist/scripts/scripts/bigquery-test.d.ts.map +1 -0
- package/package.json +4 -6
- package/dist/lib/index-lock.d.ts +0 -60
- package/dist/lib/index-lock.d.ts.map +0 -1
- package/dist/lib/prompt.d.ts +0 -2
- package/dist/lib/prompt.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-stats.sqlite.grounding.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/sqlite/column-stats.sqlite.grounding.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"column-stats.sqlite.grounding.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/sqlite/column-stats.sqlite.grounding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EACL,oBAAoB,EACpB,KAAK,0BAA0B,EAChC,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAYvD;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,oBAAoB;;gBAGtD,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,0BAA+B;cAK5C,YAAY,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;CAuEpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-values.sqlite.grounding.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/sqlite/column-values.sqlite.grounding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,KAAK,MAAM,EACX,qBAAqB,EACrB,KAAK,2BAA2B,EACjC,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"column-values.sqlite.grounding.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/sqlite/column-values.sqlite.grounding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,KAAK,MAAM,EACX,qBAAqB,EACrB,KAAK,2BAA2B,EACjC,MAAM,0CAA0C,CAAC;AAGlD;;;;;;;;GAQG;AACH,qBAAa,2BAA4B,SAAQ,qBAAqB;;gBAGxD,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,2BAAgC;cAK7C,qBAAqB,CAC5C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC;CAmDjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint.sqlite.grounding.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/sqlite/constraint.sqlite.grounding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,mBAAmB,EACnB,KAAK,yBAAyB,EAC/B,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"constraint.sqlite.grounding.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/sqlite/constraint.sqlite.grounding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,mBAAmB,EACnB,KAAK,yBAAyB,EAC/B,MAAM,uCAAuC,CAAC;AAO/C;;;;;;GAMG;AACH,qBAAa,yBAA0B,SAAQ,mBAAmB;;gBAGpD,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,yBAA8B;cAK3C,cAAc,CACrC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,EAAE,CAAC;CAwK9B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// packages/text2sql/src/lib/adapters/adapter.ts
|
|
2
2
|
import { format as formatSql } from "sql-formatter";
|
|
3
|
+
import { z } from "zod";
|
|
3
4
|
|
|
4
5
|
// packages/text2sql/src/lib/agents/exceptions.ts
|
|
5
6
|
var sqlValidationMarker = /* @__PURE__ */ Symbol("SQLValidationError");
|
|
@@ -432,6 +433,40 @@ var Adapter = class {
|
|
|
432
433
|
}
|
|
433
434
|
return decoded;
|
|
434
435
|
}
|
|
436
|
+
/**
|
|
437
|
+
* Run an introspection query and check every row against `row`, the shape
|
|
438
|
+
* the driver returns for that query. A row of any other shape throws.
|
|
439
|
+
*/
|
|
440
|
+
async runQuery(sql, row) {
|
|
441
|
+
const rows = z.array(row).safeParse(await this.queryRows(sql));
|
|
442
|
+
if (!rows.success) {
|
|
443
|
+
throw new Error(
|
|
444
|
+
`${this.constructor.name} introspection query returned rows of an unexpected shape:
|
|
445
|
+
${z.prettifyError(rows.error)}
|
|
446
|
+
SQL: ${sql.trim()}`,
|
|
447
|
+
{ cause: rows.error }
|
|
448
|
+
);
|
|
449
|
+
}
|
|
450
|
+
return rows.data;
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* The rows in a driver's execute() result: the result itself when it is an
|
|
454
|
+
* array, otherwise the first array found at one of `paths` (dot-separated,
|
|
455
|
+
* so `recordsets.0` reads `result.recordsets[0]`).
|
|
456
|
+
*/
|
|
457
|
+
rowsFrom(result, paths) {
|
|
458
|
+
if (Array.isArray(result)) return result;
|
|
459
|
+
for (const path of paths) {
|
|
460
|
+
const rows = path.split(".").reduce(
|
|
461
|
+
(value, key) => typeof value === "object" && value !== null ? Reflect.get(value, key) : void 0,
|
|
462
|
+
result
|
|
463
|
+
);
|
|
464
|
+
if (Array.isArray(rows)) return rows;
|
|
465
|
+
}
|
|
466
|
+
throw new Error(
|
|
467
|
+
`${this.constructor.name} execute() must return an array of rows or an object holding one at ${paths.map((path) => `result.${path}`).join(", ")}.`
|
|
468
|
+
);
|
|
469
|
+
}
|
|
435
470
|
/**
|
|
436
471
|
* Convert unknown database value to number.
|
|
437
472
|
* Handles number, bigint, and string types.
|
|
@@ -992,6 +1027,12 @@ var TableGrounding = class extends AbstractGrounding {
|
|
|
992
1027
|
};
|
|
993
1028
|
|
|
994
1029
|
// packages/text2sql/src/lib/adapters/sqlite/column-stats.sqlite.grounding.ts
|
|
1030
|
+
import { z as z2 } from "zod";
|
|
1031
|
+
var statsRow = z2.object({
|
|
1032
|
+
min_value: z2.unknown(),
|
|
1033
|
+
max_value: z2.unknown(),
|
|
1034
|
+
null_fraction: z2.number().nullable()
|
|
1035
|
+
});
|
|
995
1036
|
var SqliteColumnStatsGrounding = class extends ColumnStatsGrounding {
|
|
996
1037
|
#adapter;
|
|
997
1038
|
constructor(adapter, config = {}) {
|
|
@@ -1011,7 +1052,7 @@ var SqliteColumnStatsGrounding = class extends ColumnStatsGrounding {
|
|
|
1011
1052
|
AVG(CASE WHEN ${columnIdentifier} IS NULL THEN 1.0 ELSE 0.0 END) AS null_fraction
|
|
1012
1053
|
FROM ${tableIdentifier}
|
|
1013
1054
|
`;
|
|
1014
|
-
const rows = await this.#adapter.runQuery(sql);
|
|
1055
|
+
const rows = await this.#adapter.runQuery(sql, statsRow);
|
|
1015
1056
|
if (!rows.length) {
|
|
1016
1057
|
return void 0;
|
|
1017
1058
|
}
|
|
@@ -1059,6 +1100,18 @@ var SqliteColumnStatsGrounding = class extends ColumnStatsGrounding {
|
|
|
1059
1100
|
}
|
|
1060
1101
|
};
|
|
1061
1102
|
|
|
1103
|
+
// packages/text2sql/src/lib/adapters/groundings/rows.ts
|
|
1104
|
+
import { z as z3 } from "zod";
|
|
1105
|
+
var nameRow = z3.object({ name: z3.string() });
|
|
1106
|
+
var versionRow = z3.object({ version: z3.string() });
|
|
1107
|
+
var databaseRow = z3.object({ db: z3.string() });
|
|
1108
|
+
var viewDefinitionRow = z3.object({
|
|
1109
|
+
definition: z3.string().nullable()
|
|
1110
|
+
});
|
|
1111
|
+
var distinctValueRow = z3.object({ value: z3.unknown() });
|
|
1112
|
+
var textValueRow = z3.object({ value: z3.string() });
|
|
1113
|
+
var numericValue = z3.union([z3.number(), z3.bigint(), z3.string()]);
|
|
1114
|
+
|
|
1062
1115
|
// packages/text2sql/src/lib/adapters/sqlite/column-values.sqlite.grounding.ts
|
|
1063
1116
|
var SqliteColumnValuesGrounding = class extends ColumnValuesGrounding {
|
|
1064
1117
|
#adapter;
|
|
@@ -1076,7 +1129,7 @@ var SqliteColumnValuesGrounding = class extends ColumnValuesGrounding {
|
|
|
1076
1129
|
WHERE ${columnIdentifier} IS NOT NULL
|
|
1077
1130
|
LIMIT ${limit}
|
|
1078
1131
|
`;
|
|
1079
|
-
const rows = await this.#adapter.runQuery(sql);
|
|
1132
|
+
const rows = await this.#adapter.runQuery(sql, distinctValueRow);
|
|
1080
1133
|
if (!rows.length || rows.length > this.lowCardinalityLimit) {
|
|
1081
1134
|
return void 0;
|
|
1082
1135
|
}
|
|
@@ -1113,6 +1166,38 @@ var SqliteColumnValuesGrounding = class extends ColumnValuesGrounding {
|
|
|
1113
1166
|
}
|
|
1114
1167
|
};
|
|
1115
1168
|
|
|
1169
|
+
// packages/text2sql/src/lib/adapters/sqlite/sqlite-rows.ts
|
|
1170
|
+
import { z as z4 } from "zod";
|
|
1171
|
+
var sqliteInteger = z4.union([z4.number(), z4.bigint()]).transform(Number);
|
|
1172
|
+
var sqliteMasterSqlRow = z4.object({ sql: z4.string().nullable() });
|
|
1173
|
+
var tableInfoRow = z4.object({
|
|
1174
|
+
cid: sqliteInteger,
|
|
1175
|
+
name: z4.string(),
|
|
1176
|
+
type: z4.string(),
|
|
1177
|
+
notnull: sqliteInteger,
|
|
1178
|
+
dflt_value: z4.string().nullable(),
|
|
1179
|
+
pk: sqliteInteger
|
|
1180
|
+
});
|
|
1181
|
+
var foreignKeyListRow = z4.object({
|
|
1182
|
+
id: sqliteInteger,
|
|
1183
|
+
seq: sqliteInteger,
|
|
1184
|
+
table: z4.string(),
|
|
1185
|
+
from: z4.string(),
|
|
1186
|
+
to: z4.string().nullable()
|
|
1187
|
+
});
|
|
1188
|
+
var indexListRow = z4.object({
|
|
1189
|
+
seq: sqliteInteger,
|
|
1190
|
+
name: z4.string(),
|
|
1191
|
+
unique: sqliteInteger,
|
|
1192
|
+
origin: z4.string(),
|
|
1193
|
+
partial: sqliteInteger
|
|
1194
|
+
});
|
|
1195
|
+
var indexInfoRow = z4.object({
|
|
1196
|
+
seqno: sqliteInteger,
|
|
1197
|
+
cid: sqliteInteger,
|
|
1198
|
+
name: z4.string().nullable()
|
|
1199
|
+
});
|
|
1200
|
+
|
|
1116
1201
|
// packages/text2sql/src/lib/adapters/sqlite/constraint.sqlite.grounding.ts
|
|
1117
1202
|
var SqliteConstraintGrounding = class extends ConstraintGrounding {
|
|
1118
1203
|
#adapter;
|
|
@@ -1123,7 +1208,8 @@ var SqliteConstraintGrounding = class extends ConstraintGrounding {
|
|
|
1123
1208
|
async getConstraints(tableName) {
|
|
1124
1209
|
const constraints2 = [];
|
|
1125
1210
|
const columns = await this.#adapter.runQuery(
|
|
1126
|
-
`PRAGMA table_info(${this.#quoteIdentifier(tableName)})
|
|
1211
|
+
`PRAGMA table_info(${this.#quoteIdentifier(tableName)})`,
|
|
1212
|
+
tableInfoRow
|
|
1127
1213
|
);
|
|
1128
1214
|
const pkColumns = columns.filter((col) => col.pk > 0).sort((a, b) => a.pk - b.pk).map((col) => col.name);
|
|
1129
1215
|
if (pkColumns.length > 0) {
|
|
@@ -1151,7 +1237,8 @@ var SqliteConstraintGrounding = class extends ConstraintGrounding {
|
|
|
1151
1237
|
}
|
|
1152
1238
|
}
|
|
1153
1239
|
const fkRows = await this.#adapter.runQuery(
|
|
1154
|
-
`PRAGMA foreign_key_list(${this.#quoteIdentifier(tableName)})
|
|
1240
|
+
`PRAGMA foreign_key_list(${this.#quoteIdentifier(tableName)})`,
|
|
1241
|
+
foreignKeyListRow
|
|
1155
1242
|
);
|
|
1156
1243
|
const fkGroups = /* @__PURE__ */ new Map();
|
|
1157
1244
|
for (const row of fkRows) {
|
|
@@ -1166,11 +1253,13 @@ var SqliteConstraintGrounding = class extends ConstraintGrounding {
|
|
|
1166
1253
|
type: "FOREIGN_KEY",
|
|
1167
1254
|
columns: rows.map((r) => r.from),
|
|
1168
1255
|
referencedTable: rows[0].table,
|
|
1169
|
-
|
|
1256
|
+
// A key that references the parent's primary key names no columns.
|
|
1257
|
+
referencedColumns: rows.flatMap((r) => r.to === null ? [] : [r.to])
|
|
1170
1258
|
});
|
|
1171
1259
|
}
|
|
1172
1260
|
const ddlRows = await this.#adapter.runQuery(
|
|
1173
|
-
`SELECT sql FROM sqlite_master WHERE type='table' AND name=${this.#quoteIdentifier(tableName)}
|
|
1261
|
+
`SELECT sql FROM sqlite_master WHERE type='table' AND name=${this.#quoteIdentifier(tableName)}`,
|
|
1262
|
+
sqliteMasterSqlRow
|
|
1174
1263
|
);
|
|
1175
1264
|
if (ddlRows[0]?.sql) {
|
|
1176
1265
|
const columnNames = columns.map((c) => c.name);
|
|
@@ -1247,15 +1336,17 @@ var SqliteIndexesGrounding = class extends IndexesGrounding {
|
|
|
1247
1336
|
}
|
|
1248
1337
|
async getIndexes(tableName) {
|
|
1249
1338
|
const indexListRows = await this.#adapter.runQuery(
|
|
1250
|
-
`PRAGMA index_list(${this.#quoteIdentifier(tableName)})
|
|
1339
|
+
`PRAGMA index_list(${this.#quoteIdentifier(tableName)})`,
|
|
1340
|
+
indexListRow
|
|
1251
1341
|
);
|
|
1252
1342
|
const indexes2 = [];
|
|
1253
1343
|
for (const indexRow of indexListRows) {
|
|
1254
1344
|
if (!indexRow.name) continue;
|
|
1255
1345
|
const indexInfoRows = await this.#adapter.runQuery(
|
|
1256
|
-
`PRAGMA index_info(${this.#quoteIdentifier(indexRow.name)})
|
|
1346
|
+
`PRAGMA index_info(${this.#quoteIdentifier(indexRow.name)})`,
|
|
1347
|
+
indexInfoRow
|
|
1257
1348
|
);
|
|
1258
|
-
const columns = indexInfoRows.
|
|
1349
|
+
const columns = indexInfoRows.toSorted((a, b) => a.seqno - b.seqno).flatMap((row) => row.name === null ? [] : [row.name]);
|
|
1259
1350
|
if (!columns.length) continue;
|
|
1260
1351
|
indexes2.push({
|
|
1261
1352
|
name: indexRow.name,
|
|
@@ -1280,7 +1371,8 @@ var SqliteInfoGrounding = class extends InfoGrounding {
|
|
|
1280
1371
|
}
|
|
1281
1372
|
async collectInfo() {
|
|
1282
1373
|
const rows = await this.#adapter.runQuery(
|
|
1283
|
-
"SELECT sqlite_version() AS version"
|
|
1374
|
+
"SELECT sqlite_version() AS version",
|
|
1375
|
+
versionRow
|
|
1284
1376
|
);
|
|
1285
1377
|
return {
|
|
1286
1378
|
dialect: "sqlite",
|
|
@@ -1293,6 +1385,8 @@ var SqliteInfoGrounding = class extends InfoGrounding {
|
|
|
1293
1385
|
};
|
|
1294
1386
|
|
|
1295
1387
|
// packages/text2sql/src/lib/adapters/sqlite/row-count.sqlite.grounding.ts
|
|
1388
|
+
import { z as z5 } from "zod";
|
|
1389
|
+
var countRow = z5.object({ count: sqliteInteger });
|
|
1296
1390
|
var SqliteRowCountGrounding = class extends RowCountGrounding {
|
|
1297
1391
|
#adapter;
|
|
1298
1392
|
constructor(adapter, config = {}) {
|
|
@@ -1301,9 +1395,10 @@ var SqliteRowCountGrounding = class extends RowCountGrounding {
|
|
|
1301
1395
|
}
|
|
1302
1396
|
async getRowCount(tableName) {
|
|
1303
1397
|
const rows = await this.#adapter.runQuery(
|
|
1304
|
-
`SELECT COUNT(*) as count FROM ${this.#adapter.quoteIdentifier(tableName)}
|
|
1398
|
+
`SELECT COUNT(*) as count FROM ${this.#adapter.quoteIdentifier(tableName)}`,
|
|
1399
|
+
countRow
|
|
1305
1400
|
);
|
|
1306
|
-
return
|
|
1401
|
+
return rows[0]?.count;
|
|
1307
1402
|
}
|
|
1308
1403
|
};
|
|
1309
1404
|
|
|
@@ -1723,20 +1818,8 @@ var Sqlite = class extends Adapter {
|
|
|
1723
1818
|
return JSON.stringify(formatError(sql, error));
|
|
1724
1819
|
}
|
|
1725
1820
|
}
|
|
1726
|
-
|
|
1727
|
-
return
|
|
1728
|
-
}
|
|
1729
|
-
async runQuery(sql) {
|
|
1730
|
-
const result = await this.#options.execute(sql);
|
|
1731
|
-
if (Array.isArray(result)) {
|
|
1732
|
-
return result;
|
|
1733
|
-
}
|
|
1734
|
-
if (result && typeof result === "object" && "rows" in result && Array.isArray(result.rows)) {
|
|
1735
|
-
return result.rows;
|
|
1736
|
-
}
|
|
1737
|
-
throw new Error(
|
|
1738
|
-
"Sqlite adapter execute() must return an array of rows or an object with a rows array when introspecting."
|
|
1739
|
-
);
|
|
1821
|
+
async queryRows(sql) {
|
|
1822
|
+
return this.rowsFrom(await this.#options.execute(sql), ["rows"]);
|
|
1740
1823
|
}
|
|
1741
1824
|
quoteIdentifier(name) {
|
|
1742
1825
|
return `"${name.replace(/"/g, '""')}"`;
|
|
@@ -1759,45 +1842,44 @@ var SqliteTableGrounding = class extends TableGrounding {
|
|
|
1759
1842
|
this.#adapter = adapter;
|
|
1760
1843
|
}
|
|
1761
1844
|
async getAllTableNames() {
|
|
1762
|
-
const rows = await this.#adapter.runQuery(
|
|
1763
|
-
|
|
1764
|
-
|
|
1845
|
+
const rows = await this.#adapter.runQuery(
|
|
1846
|
+
`SELECT name FROM sqlite_master WHERE type='table' ORDER BY name`,
|
|
1847
|
+
nameRow
|
|
1765
1848
|
);
|
|
1849
|
+
return rows.map((row) => row.name).filter((name) => !name.startsWith("sqlite_"));
|
|
1766
1850
|
}
|
|
1767
1851
|
async getTable(tableName) {
|
|
1768
1852
|
const columns = await this.#adapter.runQuery(
|
|
1769
|
-
`PRAGMA table_info(${this.#quoteIdentifier(tableName)})
|
|
1853
|
+
`PRAGMA table_info(${this.#quoteIdentifier(tableName)})`,
|
|
1854
|
+
tableInfoRow
|
|
1770
1855
|
);
|
|
1771
1856
|
return {
|
|
1772
1857
|
name: tableName,
|
|
1773
1858
|
rawName: tableName,
|
|
1774
|
-
columns: columns.map((col) => ({
|
|
1775
|
-
name: col.name ?? "unknown",
|
|
1776
|
-
type: col.type ?? "unknown"
|
|
1777
|
-
}))
|
|
1859
|
+
columns: columns.map((col) => ({ name: col.name, type: col.type }))
|
|
1778
1860
|
};
|
|
1779
1861
|
}
|
|
1780
1862
|
async findOutgoingRelations(tableName) {
|
|
1781
1863
|
const rows = await this.#adapter.runQuery(
|
|
1782
|
-
`PRAGMA foreign_key_list(${this.#quoteIdentifier(tableName)})
|
|
1864
|
+
`PRAGMA foreign_key_list(${this.#quoteIdentifier(tableName)})`,
|
|
1865
|
+
foreignKeyListRow
|
|
1783
1866
|
);
|
|
1784
1867
|
const groups = /* @__PURE__ */ new Map();
|
|
1785
1868
|
for (const row of rows) {
|
|
1786
|
-
if (row.
|
|
1869
|
+
if (row.to === null) {
|
|
1787
1870
|
continue;
|
|
1788
1871
|
}
|
|
1789
|
-
const
|
|
1790
|
-
const existing = groups.get(id);
|
|
1872
|
+
const existing = groups.get(row.id);
|
|
1791
1873
|
if (!existing) {
|
|
1792
|
-
groups.set(id, {
|
|
1874
|
+
groups.set(row.id, {
|
|
1793
1875
|
table: tableName,
|
|
1794
|
-
from: [
|
|
1795
|
-
referenced_table:
|
|
1796
|
-
to: [
|
|
1876
|
+
from: [row.from],
|
|
1877
|
+
referenced_table: row.table,
|
|
1878
|
+
to: [row.to]
|
|
1797
1879
|
});
|
|
1798
1880
|
} else {
|
|
1799
|
-
existing.from.push(
|
|
1800
|
-
existing.to.push(
|
|
1881
|
+
existing.from.push(row.from);
|
|
1882
|
+
existing.to.push(row.to);
|
|
1801
1883
|
}
|
|
1802
1884
|
}
|
|
1803
1885
|
return Array.from(groups.values());
|
|
@@ -1886,27 +1968,29 @@ var SqliteViewGrounding = class extends ViewGrounding {
|
|
|
1886
1968
|
this.#adapter = adapter;
|
|
1887
1969
|
}
|
|
1888
1970
|
async getAllViewNames() {
|
|
1889
|
-
const rows = await this.#adapter.runQuery(
|
|
1890
|
-
|
|
1971
|
+
const rows = await this.#adapter.runQuery(
|
|
1972
|
+
`SELECT name FROM sqlite_master WHERE type='view' ORDER BY name`,
|
|
1973
|
+
nameRow
|
|
1974
|
+
);
|
|
1975
|
+
return rows.map((row) => row.name);
|
|
1891
1976
|
}
|
|
1892
1977
|
async getView(viewName) {
|
|
1893
1978
|
let definition;
|
|
1894
1979
|
if (this.includeDefinition) {
|
|
1895
1980
|
const defRows = await this.#adapter.runQuery(
|
|
1896
|
-
`SELECT sql FROM sqlite_master WHERE type='view' AND name=${this.#quoteIdentifier(viewName)}
|
|
1981
|
+
`SELECT sql FROM sqlite_master WHERE type='view' AND name=${this.#quoteIdentifier(viewName)}`,
|
|
1982
|
+
sqliteMasterSqlRow
|
|
1897
1983
|
);
|
|
1898
1984
|
definition = defRows[0]?.sql ?? void 0;
|
|
1899
1985
|
}
|
|
1900
1986
|
const columns = await this.#adapter.runQuery(
|
|
1901
|
-
`PRAGMA table_info(${this.#quoteIdentifier(viewName)})
|
|
1987
|
+
`PRAGMA table_info(${this.#quoteIdentifier(viewName)})`,
|
|
1988
|
+
tableInfoRow
|
|
1902
1989
|
);
|
|
1903
1990
|
return {
|
|
1904
1991
|
name: viewName,
|
|
1905
1992
|
definition,
|
|
1906
|
-
columns: columns.map((col) => ({
|
|
1907
|
-
name: col.name ?? "unknown",
|
|
1908
|
-
type: col.type ?? "unknown"
|
|
1909
|
-
}))
|
|
1993
|
+
columns: columns.map((col) => ({ name: col.name, type: col.type }))
|
|
1910
1994
|
};
|
|
1911
1995
|
}
|
|
1912
1996
|
#quoteIdentifier(name) {
|