@deepagents/text2sql 0.30.0 → 0.31.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/dist/index.js +18 -2
- package/dist/index.js.map +3 -3
- package/dist/lib/adapters/adapter.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/index.js +62 -5
- package/dist/lib/adapters/bigquery/index.js.map +3 -3
- package/dist/lib/adapters/groundings/abstract.grounding.d.ts +23 -0
- package/dist/lib/adapters/groundings/abstract.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/groundings/index.js +48 -5
- package/dist/lib/adapters/groundings/index.js.map +2 -2
- package/dist/lib/adapters/groundings/table.grounding.d.ts +9 -1
- package/dist/lib/adapters/groundings/table.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/groundings/view.grounding.d.ts +7 -1
- package/dist/lib/adapters/groundings/view.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/index.js +62 -5
- package/dist/lib/adapters/mysql/index.js.map +3 -3
- package/dist/lib/adapters/postgres/index.js +62 -5
- package/dist/lib/adapters/postgres/index.js.map +3 -3
- package/dist/lib/adapters/spreadsheet/index.js +57 -4
- package/dist/lib/adapters/spreadsheet/index.js.map +3 -3
- package/dist/lib/adapters/sqlite/index.js +62 -5
- package/dist/lib/adapters/sqlite/index.js.map +3 -3
- package/dist/lib/adapters/sqlserver/index.js +62 -5
- package/dist/lib/adapters/sqlserver/index.js.map +3 -3
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/lib/adapters/adapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/lib/adapters/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -328,7 +328,18 @@ var Adapter = class {
|
|
|
328
328
|
fragments.push(this.#viewToFragment(v));
|
|
329
329
|
}
|
|
330
330
|
const tableMap = new Map(ctx.tables.map((t) => [t.name, t]));
|
|
331
|
+
const tableColumnSets = new Map(
|
|
332
|
+
ctx.tables.map((t) => [t.name, new Set(t.columns.map((c) => c.name))])
|
|
333
|
+
);
|
|
331
334
|
for (const rel of ctx.relationships) {
|
|
335
|
+
const sourceColumns = tableColumnSets.get(rel.table);
|
|
336
|
+
const targetColumns = tableColumnSets.get(rel.referenced_table);
|
|
337
|
+
if (sourceColumns && rel.from.some((column2) => !sourceColumns.has(column2))) {
|
|
338
|
+
continue;
|
|
339
|
+
}
|
|
340
|
+
if (targetColumns && rel.to.some((column2) => !targetColumns.has(column2))) {
|
|
341
|
+
continue;
|
|
342
|
+
}
|
|
332
343
|
const sourceTable = tableMap.get(rel.table);
|
|
333
344
|
const targetTable = tableMap.get(rel.referenced_table);
|
|
334
345
|
fragments.push(
|
|
@@ -383,7 +394,10 @@ var Adapter = class {
|
|
|
383
394
|
stats: col.stats
|
|
384
395
|
})
|
|
385
396
|
);
|
|
386
|
-
const
|
|
397
|
+
const presentColumns = new Set(t.columns.map((c) => c.name));
|
|
398
|
+
const indexFragments = (t.indexes ?? []).filter(
|
|
399
|
+
(idx) => idx.columns.every((column2) => presentColumns.has(column2))
|
|
400
|
+
).map(
|
|
387
401
|
(idx) => index({
|
|
388
402
|
name: idx.name,
|
|
389
403
|
columns: idx.columns,
|
|
@@ -393,6 +407,8 @@ var Adapter = class {
|
|
|
393
407
|
);
|
|
394
408
|
const constraintFragments = (t.constraints ?? []).filter(
|
|
395
409
|
(c) => c.type === "CHECK" || c.type === "UNIQUE" && (c.columns?.length ?? 0) > 1
|
|
410
|
+
).filter(
|
|
411
|
+
(c) => !c.columns?.length || c.columns.every((column2) => presentColumns.has(column2))
|
|
396
412
|
).map(
|
|
397
413
|
(c) => constraint({
|
|
398
414
|
name: c.name,
|
|
@@ -586,6 +602,21 @@ var Adapter = class {
|
|
|
586
602
|
};
|
|
587
603
|
|
|
588
604
|
// packages/text2sql/src/lib/adapters/groundings/abstract.grounding.ts
|
|
605
|
+
function filterColumns(columns, filter) {
|
|
606
|
+
if (Array.isArray(filter)) {
|
|
607
|
+
return columns.filter((col) => filter.includes(col.name));
|
|
608
|
+
}
|
|
609
|
+
if (filter instanceof RegExp) {
|
|
610
|
+
return columns.filter((col) => filter.test(col.name));
|
|
611
|
+
}
|
|
612
|
+
return columns.filter((col) => filter(col.name));
|
|
613
|
+
}
|
|
614
|
+
function applyColumnFilter(entity, columnsConfig) {
|
|
615
|
+
if (!columnsConfig) return entity;
|
|
616
|
+
const filter = columnsConfig[entity.name];
|
|
617
|
+
if (!filter) return entity;
|
|
618
|
+
return { ...entity, columns: filterColumns(entity.columns, filter) };
|
|
619
|
+
}
|
|
589
620
|
var AbstractGrounding = class {
|
|
590
621
|
/**
|
|
591
622
|
* Grounding identifier for debugging/logging.
|
|
@@ -787,11 +818,13 @@ var RowCountGrounding = class extends AbstractGrounding {
|
|
|
787
818
|
// packages/text2sql/src/lib/adapters/groundings/table.grounding.ts
|
|
788
819
|
var TableGrounding = class extends AbstractGrounding {
|
|
789
820
|
#filter;
|
|
821
|
+
#columns;
|
|
790
822
|
#forward;
|
|
791
823
|
#backward;
|
|
792
824
|
constructor(config = {}) {
|
|
793
825
|
super("table");
|
|
794
826
|
this.#filter = config.filter;
|
|
827
|
+
this.#columns = config.columns;
|
|
795
828
|
this.#forward = config.forward;
|
|
796
829
|
this.#backward = config.backward;
|
|
797
830
|
}
|
|
@@ -805,7 +838,9 @@ var TableGrounding = class extends AbstractGrounding {
|
|
|
805
838
|
const backward = this.#backward;
|
|
806
839
|
if (!forward && !backward) {
|
|
807
840
|
const tables3 = await Promise.all(
|
|
808
|
-
seedTables.map(
|
|
841
|
+
seedTables.map(
|
|
842
|
+
async (name) => applyColumnFilter(await this.getTable(name), this.#columns)
|
|
843
|
+
)
|
|
809
844
|
);
|
|
810
845
|
ctx.tables.push(...tables3);
|
|
811
846
|
return;
|
|
@@ -829,11 +864,15 @@ var TableGrounding = class extends AbstractGrounding {
|
|
|
829
864
|
if (forwardVisited.has(name)) continue;
|
|
830
865
|
forwardVisited.add(name);
|
|
831
866
|
if (!tables2[name]) {
|
|
832
|
-
tables2[name] =
|
|
867
|
+
tables2[name] = applyColumnFilter(
|
|
868
|
+
await this.getTable(name),
|
|
869
|
+
this.#columns
|
|
870
|
+
);
|
|
833
871
|
}
|
|
834
872
|
if (depth < forwardLimit) {
|
|
835
873
|
const rels = await this.findOutgoingRelations(name);
|
|
836
874
|
for (const rel of rels) {
|
|
875
|
+
if (!this.isRelationshipVisible(rel)) continue;
|
|
837
876
|
this.addRelationship(rel, allRelationships, seenRelationships);
|
|
838
877
|
if (!forwardVisited.has(rel.referenced_table)) {
|
|
839
878
|
forwardQueue.push({ name: rel.referenced_table, depth: depth + 1 });
|
|
@@ -849,11 +888,15 @@ var TableGrounding = class extends AbstractGrounding {
|
|
|
849
888
|
if (backwardVisited.has(name)) continue;
|
|
850
889
|
backwardVisited.add(name);
|
|
851
890
|
if (!tables2[name]) {
|
|
852
|
-
tables2[name] =
|
|
891
|
+
tables2[name] = applyColumnFilter(
|
|
892
|
+
await this.getTable(name),
|
|
893
|
+
this.#columns
|
|
894
|
+
);
|
|
853
895
|
}
|
|
854
896
|
if (depth < backwardLimit) {
|
|
855
897
|
const rels = await this.findIncomingRelations(name);
|
|
856
898
|
for (const rel of rels) {
|
|
899
|
+
if (!this.isRelationshipVisible(rel)) continue;
|
|
857
900
|
this.addRelationship(rel, allRelationships, seenRelationships);
|
|
858
901
|
if (!backwardVisited.has(rel.table)) {
|
|
859
902
|
backwardQueue.push({ name: rel.table, depth: depth + 1 });
|
|
@@ -893,6 +936,16 @@ var TableGrounding = class extends AbstractGrounding {
|
|
|
893
936
|
all.push(rel);
|
|
894
937
|
}
|
|
895
938
|
}
|
|
939
|
+
isRelationshipVisible(rel) {
|
|
940
|
+
return this.areColumnsVisible(rel.from, this.#columns?.[rel.table]) && this.areColumnsVisible(rel.to, this.#columns?.[rel.referenced_table]);
|
|
941
|
+
}
|
|
942
|
+
areColumnsVisible(names, filter) {
|
|
943
|
+
if (!filter) return true;
|
|
944
|
+
return filterColumns(
|
|
945
|
+
names.map((name) => ({ name })),
|
|
946
|
+
filter
|
|
947
|
+
).length === names.length;
|
|
948
|
+
}
|
|
896
949
|
};
|
|
897
950
|
|
|
898
951
|
// packages/text2sql/src/lib/adapters/bigquery/bigquery.ts
|
|
@@ -1604,10 +1657,12 @@ var BigQueryTableGrounding = class extends TableGrounding {
|
|
|
1604
1657
|
// packages/text2sql/src/lib/adapters/groundings/view.grounding.ts
|
|
1605
1658
|
var ViewGrounding = class extends AbstractGrounding {
|
|
1606
1659
|
#filter;
|
|
1660
|
+
#columns;
|
|
1607
1661
|
includeDefinition;
|
|
1608
1662
|
constructor(config = {}) {
|
|
1609
1663
|
super("view");
|
|
1610
1664
|
this.#filter = config.filter;
|
|
1665
|
+
this.#columns = config.columns;
|
|
1611
1666
|
this.includeDefinition = config.includeDefinition ?? true;
|
|
1612
1667
|
}
|
|
1613
1668
|
/**
|
|
@@ -1617,7 +1672,9 @@ var ViewGrounding = class extends AbstractGrounding {
|
|
|
1617
1672
|
async execute(ctx) {
|
|
1618
1673
|
const viewNames = await this.applyFilter();
|
|
1619
1674
|
const views2 = await Promise.all(
|
|
1620
|
-
viewNames.map(
|
|
1675
|
+
viewNames.map(
|
|
1676
|
+
async (name) => applyColumnFilter(await this.getView(name), this.#columns)
|
|
1677
|
+
)
|
|
1621
1678
|
);
|
|
1622
1679
|
ctx.views.push(...views2);
|
|
1623
1680
|
}
|