@deepagents/text2sql 5.0.0 → 6.0.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.
- package/CLICKHOUSE-DEPLOYMENT.md +181 -0
- package/README.md +26 -4
- package/dist/bin/sql.js +33 -51
- package/dist/index.js +56 -289
- package/dist/index.js.map +4 -4
- package/dist/lib/adapters/adapter.d.ts +8 -1
- package/dist/lib/adapters/adapter.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/bigquery.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/bigquery.sql-policy.d.ts +9 -0
- package/dist/lib/adapters/bigquery/bigquery.sql-policy.d.ts.map +1 -0
- package/dist/lib/adapters/bigquery/index.d.ts +1 -0
- package/dist/lib/adapters/bigquery/index.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/index.js +303 -259
- package/dist/lib/adapters/bigquery/index.js.map +4 -4
- package/dist/lib/adapters/clickhouse/clickhouse.d.ts +22 -0
- package/dist/lib/adapters/clickhouse/clickhouse.d.ts.map +1 -0
- package/dist/lib/adapters/clickhouse/clickhouse.sql-policy.d.ts +8 -0
- package/dist/lib/adapters/clickhouse/clickhouse.sql-policy.d.ts.map +1 -0
- package/dist/lib/adapters/clickhouse/constraint.clickhouse.grounding.d.ts +8 -0
- package/dist/lib/adapters/clickhouse/constraint.clickhouse.grounding.d.ts.map +1 -0
- package/dist/lib/adapters/clickhouse/index.d.ts +33 -0
- package/dist/lib/adapters/clickhouse/index.d.ts.map +1 -0
- package/dist/lib/adapters/clickhouse/index.js +1544 -0
- package/dist/lib/adapters/clickhouse/index.js.map +7 -0
- package/dist/lib/adapters/clickhouse/indexes.clickhouse.grounding.d.ts +8 -0
- package/dist/lib/adapters/clickhouse/indexes.clickhouse.grounding.d.ts.map +1 -0
- package/dist/lib/adapters/clickhouse/info.clickhouse.grounding.d.ts +8 -0
- package/dist/lib/adapters/clickhouse/info.clickhouse.grounding.d.ts.map +1 -0
- package/dist/lib/adapters/clickhouse/row-count.clickhouse.grounding.d.ts +8 -0
- package/dist/lib/adapters/clickhouse/row-count.clickhouse.grounding.d.ts.map +1 -0
- package/dist/lib/adapters/clickhouse/table.clickhouse.grounding.d.ts +11 -0
- package/dist/lib/adapters/clickhouse/table.clickhouse.grounding.d.ts.map +1 -0
- package/dist/lib/adapters/clickhouse/view.clickhouse.grounding.d.ts +9 -0
- package/dist/lib/adapters/clickhouse/view.clickhouse.grounding.d.ts.map +1 -0
- package/dist/lib/adapters/groundings/abstract.grounding.d.ts +11 -16
- package/dist/lib/adapters/groundings/abstract.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/groundings/index.js +16 -0
- package/dist/lib/adapters/groundings/index.js.map +2 -2
- package/dist/lib/adapters/groundings/table.grounding.d.ts +1 -0
- package/dist/lib/adapters/groundings/table.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/groundings/view.grounding.d.ts +1 -0
- package/dist/lib/adapters/groundings/view.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/index.d.ts +1 -0
- package/dist/lib/adapters/mysql/index.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/index.js +317 -259
- package/dist/lib/adapters/mysql/index.js.map +4 -4
- package/dist/lib/adapters/mysql/mysql.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/mysql.sql-policy.d.ts +11 -0
- package/dist/lib/adapters/mysql/mysql.sql-policy.d.ts.map +1 -0
- package/dist/lib/adapters/parser-sql-policy.d.ts +23 -0
- package/dist/lib/adapters/parser-sql-policy.d.ts.map +1 -0
- package/dist/lib/adapters/postgres/index.d.ts +1 -0
- package/dist/lib/adapters/postgres/index.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/index.js +323 -259
- package/dist/lib/adapters/postgres/index.js.map +4 -4
- package/dist/lib/adapters/postgres/postgres.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/postgres.sql-policy.d.ts +10 -0
- package/dist/lib/adapters/postgres/postgres.sql-policy.d.ts.map +1 -0
- package/dist/lib/adapters/spreadsheet/index.js +301 -259
- package/dist/lib/adapters/spreadsheet/index.js.map +4 -4
- package/dist/lib/adapters/spreadsheet/parser.d.ts.map +1 -1
- package/dist/lib/adapters/sql-policy.d.ts +19 -0
- package/dist/lib/adapters/sql-policy.d.ts.map +1 -0
- package/dist/lib/adapters/sqlite/index.d.ts +1 -0
- package/dist/lib/adapters/sqlite/index.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/index.js +303 -259
- package/dist/lib/adapters/sqlite/index.js.map +4 -4
- package/dist/lib/adapters/sqlite/sqlite.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/sqlite.sql-policy.d.ts +8 -0
- package/dist/lib/adapters/sqlite/sqlite.sql-policy.d.ts.map +1 -0
- package/dist/lib/adapters/sqlserver/index.d.ts +1 -0
- package/dist/lib/adapters/sqlserver/index.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/index.js +310 -259
- package/dist/lib/adapters/sqlserver/index.js.map +4 -4
- package/dist/lib/adapters/sqlserver/sqlserver.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/sqlserver.sql-policy.d.ts +11 -0
- package/dist/lib/adapters/sqlserver/sqlserver.sql-policy.d.ts.map +1 -0
- package/dist/lib/agents/exceptions.d.ts +1 -1
- package/dist/lib/agents/sql.agent.d.ts.map +1 -1
- package/dist/lib/sql-scope-error.d.ts +3 -0
- package/dist/lib/sql-scope-error.d.ts.map +1 -0
- package/dist/lib/synthesis/index.js +32 -38
- package/dist/lib/synthesis/index.js.map +4 -4
- package/package.json +29 -23
- package/dist/lib/adapters/runtime-scope.d.ts +0 -16
- package/dist/lib/adapters/runtime-scope.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlserver.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/sqlserver/sqlserver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,KAAK,eAAe,EACpB,KAAK,WAAW,EAKhB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlserver.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/sqlserver/sqlserver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,KAAK,eAAe,EACpB,KAAK,WAAW,EAKhB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AAGvB,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAoFF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;;;;;EA0B/D;AAED,qBAAa,SAAU,SAAQ,OAAO;;IAEpC,SAAkB,SAAS,EAAE,WAAW,EAAE,CAAC;IAC3C,SAAkB,aAAa,SAAS;IACxC,SAAkB,aAAa,WAAiC;IAChE,SAAkB,iBAAiB,iBAAiB;gBAExC,OAAO,EAAE,uBAAuB;IAY7B,WAAW,CAAC,GAAG,EAAE,MAAM;IAIvB,YAAY,CAAC,GAAG,EAAE,MAAM;IAgBxB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAIhD,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIrC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI7B,oBAAoB,CAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,EAC7B,KAAK,EAAE,MAAM,GACZ,MAAM;CAgfV"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ParserSqlPolicyAnalyzer } from '../parser-sql-policy.ts';
|
|
2
|
+
export declare class SqlServerSqlPolicyAnalyzer extends ParserSqlPolicyAnalyzer {
|
|
3
|
+
protected readonly dialects: readonly ["transactsql"];
|
|
4
|
+
protected readonly readOnlyPolicy: {
|
|
5
|
+
readonly blockSelectInto: true;
|
|
6
|
+
readonly blockServerQualifiedRelations: true;
|
|
7
|
+
readonly blockTableHints: true;
|
|
8
|
+
readonly blockedFunctions: readonly ["FN_GET_AUDIT_FILE", "OPENDATASOURCE", "OPENQUERY", "OPENROWSET"];
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=sqlserver.sql-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlserver.sql-policy.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/sqlserver/sqlserver.sql-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,qBAAa,0BAA2B,SAAQ,uBAAuB;IACrE,SAAS,CAAC,QAAQ,CAAC,QAAQ,2BAA4B;IACvD,mBAA4B,cAAc;;;;;MAU/B;CACZ"}
|
|
@@ -30,7 +30,7 @@ export declare class UnanswerableSQLError extends Error {
|
|
|
30
30
|
static isInstance(error: unknown): error is UnanswerableSQLError;
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
|
-
* Error thrown when a query falls outside the grounded
|
|
33
|
+
* Error thrown when a query falls outside the grounded SQL scope.
|
|
34
34
|
*/
|
|
35
35
|
export declare class SQLScopeError extends Error {
|
|
36
36
|
[sqlScopeMarker]: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.agent.d.ts","sourceRoot":"","sources":["../../../src/lib/agents/sql.agent.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAEL,KAAK,eAAe,EAWrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"sql.agent.d.ts","sourceRoot":"","sources":["../../../src/lib/agents/sql.agent.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAEL,KAAK,eAAe,EAWrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAItD,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,8BAA8B;IAC9B,KAAK,EAAE,UAAU,CAAC;IAClB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AA8ND,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAgLvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-scope-error.d.ts","sourceRoot":"","sources":["../../src/lib/sql-scope-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,OAAO,GACb,oBAAoB,CAatB"}
|
|
@@ -33,6 +33,8 @@ var FilteredProducer = class extends PairProducer {
|
|
|
33
33
|
this.producer = producer;
|
|
34
34
|
this.options = options;
|
|
35
35
|
}
|
|
36
|
+
producer;
|
|
37
|
+
options;
|
|
36
38
|
/**
|
|
37
39
|
* Produces pairs filtered by success status, table usage, and custom predicates.
|
|
38
40
|
* @returns Pairs matching all configured filter criteria
|
|
@@ -88,6 +90,8 @@ var DeduplicatedProducer = class extends PairProducer {
|
|
|
88
90
|
this.producer = producer;
|
|
89
91
|
this.options = options;
|
|
90
92
|
}
|
|
93
|
+
producer;
|
|
94
|
+
options;
|
|
91
95
|
/**
|
|
92
96
|
* Produces pairs with duplicates removed based on the configured strategy.
|
|
93
97
|
* @returns Unique pairs after deduplication
|
|
@@ -143,6 +147,9 @@ var ValidatedProducer = class extends PairProducer {
|
|
|
143
147
|
this.adapter = adapter;
|
|
144
148
|
this.options = options;
|
|
145
149
|
}
|
|
150
|
+
producer;
|
|
151
|
+
adapter;
|
|
152
|
+
options;
|
|
146
153
|
/**
|
|
147
154
|
* Produces pairs with SQL validation applied, optionally executing queries.
|
|
148
155
|
* @returns Validated pairs with error/rowCount metadata attached
|
|
@@ -868,6 +875,8 @@ var BreadthEvolver = class extends PairProducer {
|
|
|
868
875
|
this.options = options;
|
|
869
876
|
this.#limit = pLimit(this.options.concurrency ?? 4);
|
|
870
877
|
}
|
|
878
|
+
source;
|
|
879
|
+
options;
|
|
871
880
|
#limit;
|
|
872
881
|
/**
|
|
873
882
|
* Batch pairs within each chunk for concurrent processing.
|
|
@@ -917,10 +926,10 @@ import {
|
|
|
917
926
|
} from "@deepagents/context";
|
|
918
927
|
|
|
919
928
|
// packages/text2sql/src/lib/agents/exceptions.ts
|
|
920
|
-
var sqlValidationMarker = Symbol("SQLValidationError");
|
|
921
|
-
var unanswerableSqlMarker = Symbol("UnanswerableSQLError");
|
|
922
|
-
var sqlScopeMarker = Symbol("SQLScopeError");
|
|
923
|
-
var sqlReadOnlyMarker = Symbol("SQLReadOnlyError");
|
|
929
|
+
var sqlValidationMarker = /* @__PURE__ */ Symbol("SQLValidationError");
|
|
930
|
+
var unanswerableSqlMarker = /* @__PURE__ */ Symbol("UnanswerableSQLError");
|
|
931
|
+
var sqlScopeMarker = /* @__PURE__ */ Symbol("SQLScopeError");
|
|
932
|
+
var sqlReadOnlyMarker = /* @__PURE__ */ Symbol("SQLReadOnlyError");
|
|
924
933
|
var SQLValidationError = class _SQLValidationError extends Error {
|
|
925
934
|
[sqlValidationMarker];
|
|
926
935
|
constructor(message) {
|
|
@@ -1000,18 +1009,15 @@ import {
|
|
|
1000
1009
|
workflow
|
|
1001
1010
|
} from "@deepagents/context";
|
|
1002
1011
|
|
|
1003
|
-
// packages/text2sql/src/lib/
|
|
1004
|
-
|
|
1005
|
-
var { Parser: Parser3 } = nodeSqlParser3;
|
|
1006
|
-
var parser3 = new Parser3();
|
|
1007
|
-
function buildScopeParseErrorPayload(sql, dialect, error) {
|
|
1012
|
+
// packages/text2sql/src/lib/sql-scope-error.ts
|
|
1013
|
+
function buildScopeParseErrorPayload(sql, parserDialect, error) {
|
|
1008
1014
|
const parserError = error instanceof Error ? error.message : String(error ?? "Unknown error");
|
|
1009
1015
|
return {
|
|
1010
1016
|
error: `SQL scope analysis failed before validation/execution: ${parserError}`,
|
|
1011
1017
|
error_type: "SQL_SCOPE_PARSE_ERROR",
|
|
1012
1018
|
suggestion: "Rewrite the query into simpler SQL that can be analyzed safely, or extend parser coverage for this dialect feature.",
|
|
1013
1019
|
sql_attempted: sql,
|
|
1014
|
-
parser_dialect:
|
|
1020
|
+
parser_dialect: parserDialect,
|
|
1015
1021
|
parser_error: parserError
|
|
1016
1022
|
};
|
|
1017
1023
|
}
|
|
@@ -1020,13 +1026,6 @@ function buildScopeParseErrorPayload(sql, dialect, error) {
|
|
|
1020
1026
|
var RETRY_TEMPERATURES = [0, 0.2, 0.3];
|
|
1021
1027
|
var SQL_AGENT_ROLE = "Expert SQL query generator.";
|
|
1022
1028
|
var SQL_AGENT_OBJECTIVE = "Generate precise SQL grounded in provided schema.";
|
|
1023
|
-
var FORMATTER_SCOPE_DIALECTS = /* @__PURE__ */ new Map([
|
|
1024
|
-
["sqlite", "sqlite"],
|
|
1025
|
-
["postgresql", "postgresql"],
|
|
1026
|
-
["bigquery", "bigquery"],
|
|
1027
|
-
["transactsql", "transactsql"],
|
|
1028
|
-
["mysql", "mysql"]
|
|
1029
|
-
]);
|
|
1030
1029
|
var SQL_AGENT_POLICIES = [
|
|
1031
1030
|
fragment5(
|
|
1032
1031
|
"schema_mapping",
|
|
@@ -1232,26 +1231,6 @@ function extractSql(output) {
|
|
|
1232
1231
|
const match = output.match(/```sql\n?([\s\S]*?)```/);
|
|
1233
1232
|
return match ? match[1].trim() : output.trim();
|
|
1234
1233
|
}
|
|
1235
|
-
function scopeDialectFor(adapter) {
|
|
1236
|
-
const dialect = FORMATTER_SCOPE_DIALECTS.get(adapter.formatterLanguage);
|
|
1237
|
-
if (!dialect) {
|
|
1238
|
-
throw new TypeError(
|
|
1239
|
-
`No scope dialect mapping for formatter language "${adapter.formatterLanguage}".`
|
|
1240
|
-
);
|
|
1241
|
-
}
|
|
1242
|
-
return dialect;
|
|
1243
|
-
}
|
|
1244
|
-
function fencedMarkdownParseError(sql, adapter) {
|
|
1245
|
-
return new SQLValidationError(
|
|
1246
|
-
JSON.stringify(
|
|
1247
|
-
buildScopeParseErrorPayload(
|
|
1248
|
-
sql,
|
|
1249
|
-
scopeDialectFor(adapter),
|
|
1250
|
-
new Error("SQL response was fenced markdown, not executable SQL.")
|
|
1251
|
-
)
|
|
1252
|
-
)
|
|
1253
|
-
);
|
|
1254
|
-
}
|
|
1255
1234
|
async function toSql(options) {
|
|
1256
1235
|
const { maxRetries = 3 } = options;
|
|
1257
1236
|
return withRetry(
|
|
@@ -1333,7 +1312,17 @@ Question: ${options.input}
|
|
|
1333
1312
|
}
|
|
1334
1313
|
const sql = options.adapter.format(extractedSql);
|
|
1335
1314
|
if (rawSql.trimStart().startsWith("```") && extractedSql === rawSql.trim()) {
|
|
1336
|
-
throw
|
|
1315
|
+
throw new SQLValidationError(
|
|
1316
|
+
JSON.stringify(
|
|
1317
|
+
buildScopeParseErrorPayload(
|
|
1318
|
+
sql,
|
|
1319
|
+
options.adapter.formatterLanguage,
|
|
1320
|
+
new Error(
|
|
1321
|
+
"SQL response was fenced markdown, not executable SQL."
|
|
1322
|
+
)
|
|
1323
|
+
)
|
|
1324
|
+
)
|
|
1325
|
+
);
|
|
1337
1326
|
}
|
|
1338
1327
|
const validationError = await options.adapter.validate(sql);
|
|
1339
1328
|
if (validationError) {
|
|
@@ -1565,6 +1554,9 @@ var DepthEvolver = class extends PairProducer {
|
|
|
1565
1554
|
this.options = options;
|
|
1566
1555
|
this.#limit = pLimit2(this.options?.concurrency ?? 4);
|
|
1567
1556
|
}
|
|
1557
|
+
source;
|
|
1558
|
+
adapter;
|
|
1559
|
+
options;
|
|
1568
1560
|
#limit;
|
|
1569
1561
|
/**
|
|
1570
1562
|
* Yields evolved pairs as each completes (streaming pattern).
|
|
@@ -1898,6 +1890,8 @@ var SchemaSynthesizer = class extends PairProducer {
|
|
|
1898
1890
|
this.#personas = this.options.personas ?? [void 0];
|
|
1899
1891
|
this.#limit = pLimit3(this.options.concurrency ?? 5);
|
|
1900
1892
|
}
|
|
1893
|
+
adapter;
|
|
1894
|
+
options;
|
|
1901
1895
|
#complexities = [];
|
|
1902
1896
|
#personas = [];
|
|
1903
1897
|
#limit;
|