@deepagents/text2sql 0.10.2 → 0.12.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 (109) hide show
  1. package/README.md +32 -41
  2. package/dist/index.d.ts +4 -7
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +3321 -2661
  5. package/dist/index.js.map +4 -4
  6. package/dist/lib/adapters/adapter.d.ts +13 -1
  7. package/dist/lib/adapters/adapter.d.ts.map +1 -1
  8. package/dist/lib/adapters/groundings/abstract.grounding.d.ts +19 -3
  9. package/dist/lib/adapters/groundings/abstract.grounding.d.ts.map +1 -1
  10. package/dist/lib/adapters/groundings/column-stats.grounding.d.ts +1 -2
  11. package/dist/lib/adapters/groundings/column-stats.grounding.d.ts.map +1 -1
  12. package/dist/lib/adapters/groundings/column-values.grounding.d.ts +1 -2
  13. package/dist/lib/adapters/groundings/column-values.grounding.d.ts.map +1 -1
  14. package/dist/lib/adapters/groundings/constraint.grounding.d.ts +1 -1
  15. package/dist/lib/adapters/groundings/constraint.grounding.d.ts.map +1 -1
  16. package/dist/lib/adapters/groundings/index.js +1952 -272
  17. package/dist/lib/adapters/groundings/index.js.map +4 -4
  18. package/dist/lib/adapters/groundings/indexes.grounding.d.ts +1 -1
  19. package/dist/lib/adapters/groundings/indexes.grounding.d.ts.map +1 -1
  20. package/dist/lib/adapters/groundings/info.grounding.d.ts +1 -1
  21. package/dist/lib/adapters/groundings/info.grounding.d.ts.map +1 -1
  22. package/dist/lib/adapters/groundings/report.grounding.d.ts +1 -1
  23. package/dist/lib/adapters/groundings/report.grounding.d.ts.map +1 -1
  24. package/dist/lib/adapters/groundings/row-count.grounding.d.ts +1 -1
  25. package/dist/lib/adapters/groundings/row-count.grounding.d.ts.map +1 -1
  26. package/dist/lib/adapters/groundings/table.grounding.d.ts +3 -3
  27. package/dist/lib/adapters/groundings/table.grounding.d.ts.map +1 -1
  28. package/dist/lib/adapters/groundings/view.grounding.d.ts +1 -1
  29. package/dist/lib/adapters/groundings/view.grounding.d.ts.map +1 -1
  30. package/dist/lib/adapters/mysql/index.js +2354 -439
  31. package/dist/lib/adapters/mysql/index.js.map +4 -4
  32. package/dist/lib/adapters/postgres/index.js +2415 -500
  33. package/dist/lib/adapters/postgres/index.js.map +4 -4
  34. package/dist/lib/adapters/spreadsheet/index.js +324 -272
  35. package/dist/lib/adapters/spreadsheet/index.js.map +4 -4
  36. package/dist/lib/adapters/sqlite/index.js +2337 -422
  37. package/dist/lib/adapters/sqlite/index.js.map +4 -4
  38. package/dist/lib/adapters/sqlserver/index.js +2413 -498
  39. package/dist/lib/adapters/sqlserver/index.js.map +4 -4
  40. package/dist/lib/agents/developer.agent.d.ts +33 -23
  41. package/dist/lib/agents/developer.agent.d.ts.map +1 -1
  42. package/dist/lib/agents/explainer.agent.d.ts +4 -5
  43. package/dist/lib/agents/explainer.agent.d.ts.map +1 -1
  44. package/dist/lib/agents/question.agent.d.ts.map +1 -1
  45. package/dist/lib/agents/result-tools.d.ts +34 -0
  46. package/dist/lib/agents/result-tools.d.ts.map +1 -0
  47. package/dist/lib/agents/sql.agent.d.ts +4 -4
  48. package/dist/lib/agents/sql.agent.d.ts.map +1 -1
  49. package/dist/lib/agents/teachables.agent.d.ts +2 -2
  50. package/dist/lib/agents/teachables.agent.d.ts.map +1 -1
  51. package/dist/lib/agents/text2sql.agent.d.ts +0 -74
  52. package/dist/lib/agents/text2sql.agent.d.ts.map +1 -1
  53. package/dist/lib/checkpoint.d.ts +1 -1
  54. package/dist/lib/checkpoint.d.ts.map +1 -1
  55. package/dist/lib/fragments/schema.d.ts +214 -0
  56. package/dist/lib/fragments/schema.d.ts.map +1 -0
  57. package/dist/lib/instructions.d.ts +10 -2
  58. package/dist/lib/instructions.d.ts.map +1 -1
  59. package/dist/lib/sql.d.ts +14 -104
  60. package/dist/lib/sql.d.ts.map +1 -1
  61. package/dist/lib/synthesis/extractors/base-contextual-extractor.d.ts +8 -9
  62. package/dist/lib/synthesis/extractors/base-contextual-extractor.d.ts.map +1 -1
  63. package/dist/lib/synthesis/extractors/last-query-extractor.d.ts.map +1 -1
  64. package/dist/lib/synthesis/extractors/message-extractor.d.ts +1 -2
  65. package/dist/lib/synthesis/extractors/message-extractor.d.ts.map +1 -1
  66. package/dist/lib/synthesis/extractors/segmented-context-extractor.d.ts +0 -6
  67. package/dist/lib/synthesis/extractors/segmented-context-extractor.d.ts.map +1 -1
  68. package/dist/lib/synthesis/extractors/sql-extractor.d.ts.map +1 -1
  69. package/dist/lib/synthesis/index.js +2489 -1112
  70. package/dist/lib/synthesis/index.js.map +4 -4
  71. package/dist/lib/synthesis/synthesizers/breadth-evolver.d.ts.map +1 -1
  72. package/dist/lib/synthesis/synthesizers/depth-evolver.d.ts.map +1 -1
  73. package/dist/lib/synthesis/synthesizers/persona-generator.d.ts +7 -17
  74. package/dist/lib/synthesis/synthesizers/persona-generator.d.ts.map +1 -1
  75. package/dist/lib/synthesis/synthesizers/schema-synthesizer.d.ts +2 -2
  76. package/dist/lib/synthesis/synthesizers/schema-synthesizer.d.ts.map +1 -1
  77. package/dist/lib/synthesis/synthesizers/teachings-generator.d.ts +8 -20
  78. package/dist/lib/synthesis/synthesizers/teachings-generator.d.ts.map +1 -1
  79. package/package.json +9 -14
  80. package/dist/lib/agents/chat1.agent.d.ts +0 -50
  81. package/dist/lib/agents/chat1.agent.d.ts.map +0 -1
  82. package/dist/lib/agents/chat2.agent.d.ts +0 -68
  83. package/dist/lib/agents/chat2.agent.d.ts.map +0 -1
  84. package/dist/lib/agents/chat3.agent.d.ts +0 -80
  85. package/dist/lib/agents/chat3.agent.d.ts.map +0 -1
  86. package/dist/lib/agents/chat4.agent.d.ts +0 -88
  87. package/dist/lib/agents/chat4.agent.d.ts.map +0 -1
  88. package/dist/lib/history/history.d.ts +0 -41
  89. package/dist/lib/history/history.d.ts.map +0 -1
  90. package/dist/lib/history/memory.history.d.ts +0 -5
  91. package/dist/lib/history/memory.history.d.ts.map +0 -1
  92. package/dist/lib/history/sqlite.history.d.ts +0 -15
  93. package/dist/lib/history/sqlite.history.d.ts.map +0 -1
  94. package/dist/lib/instructions.js +0 -415
  95. package/dist/lib/instructions.js.map +0 -7
  96. package/dist/lib/memory/memory.prompt.d.ts +0 -3
  97. package/dist/lib/memory/memory.prompt.d.ts.map +0 -1
  98. package/dist/lib/memory/memory.store.d.ts +0 -5
  99. package/dist/lib/memory/memory.store.d.ts.map +0 -1
  100. package/dist/lib/memory/sqlite.store.d.ts +0 -14
  101. package/dist/lib/memory/sqlite.store.d.ts.map +0 -1
  102. package/dist/lib/memory/store.d.ts +0 -40
  103. package/dist/lib/memory/store.d.ts.map +0 -1
  104. package/dist/lib/teach/teachables.d.ts +0 -648
  105. package/dist/lib/teach/teachables.d.ts.map +0 -1
  106. package/dist/lib/teach/teachings.d.ts +0 -11
  107. package/dist/lib/teach/teachings.d.ts.map +0 -1
  108. package/dist/lib/teach/xml.d.ts +0 -6
  109. package/dist/lib/teach/xml.d.ts.map +0 -1
package/README.md CHANGED
@@ -7,9 +7,8 @@ AI-powered natural language to SQL. Ask questions in plain English, get executab
7
7
  - **Natural Language to SQL** - Convert questions to validated, executable queries
8
8
  - **Multi-Database Support** - PostgreSQL, SQLite, and SQL Server adapters
9
9
  - **Schema-Aware** - Automatic introspection of tables, relationships, indexes, and constraints
10
- - **Domain Knowledge** - Teach business terms, guardrails, and query patterns via teachables
11
- - **Conversational** - Multi-turn conversations with history and user memory
12
- - **Explainable** - Convert SQL back to plain English explanations
10
+ - **Domain Knowledge** - Inject business terms, guardrails, and query patterns via fragments
11
+ - **Conversational** - Multi-turn conversations with context persistence
13
12
  - **Safe by Default** - Read-only queries, validation, and configurable guardrails
14
13
 
15
14
  ## Installation
@@ -23,9 +22,11 @@ Requires Node.js LTS (20+).
23
22
  ## Quick Start
24
23
 
25
24
  ```typescript
25
+ import { groq } from '@ai-sdk/groq';
26
26
  import pg from 'pg';
27
27
 
28
- import { InMemoryHistory, Text2Sql } from '@deepagents/text2sql';
28
+ import { InMemoryContextStore } from '@deepagents/context';
29
+ import { Text2Sql } from '@deepagents/text2sql';
29
30
  import {
30
31
  Postgres,
31
32
  constraints,
@@ -42,6 +43,7 @@ const pool = new pg.Pool({
42
43
 
43
44
  const text2sql = new Text2Sql({
44
45
  version: 'v1',
46
+ model: groq('gpt-oss-20b'),
45
47
  adapter: new Postgres({
46
48
  execute: async (sql) => {
47
49
  const result = await pool.query(sql);
@@ -56,7 +58,7 @@ const text2sql = new Text2Sql({
56
58
  lowCardinality(),
57
59
  ],
58
60
  }),
59
- history: new InMemoryHistory(),
61
+ store: new InMemoryContextStore(),
60
62
  });
61
63
 
62
64
  // Generate SQL
@@ -68,34 +70,36 @@ console.log(sql);
68
70
 
69
71
  Text2SQL works with any model provider supported by the [Vercel AI SDK](https://sdk.vercel.ai/docs), including OpenAI, Anthropic, Google, Groq, and more.
70
72
 
71
- ## Teachables
73
+ ## Fragments
72
74
 
73
- Inject domain knowledge to improve query accuracy:
75
+ Inject domain knowledge using fragments from `@deepagents/context` to improve query accuracy. Pass instructions via the constructor:
74
76
 
75
77
  ```typescript
76
- import {
77
- example,
78
- guardrail,
79
- hint,
80
- term,
81
- } from '@deepagents/text2sql/instructions';
82
-
83
- text2sql.instruct(
84
- term('MRR', 'monthly recurring revenue'),
85
- hint('Always exclude test accounts with email ending in @test.com'),
86
- guardrail({
87
- rule: 'Never expose individual salaries',
88
- reason: 'Confidential HR data',
89
- action: 'Aggregate by department instead',
90
- }),
91
- example({
92
- question: 'show me churned customers',
93
- answer: `SELECT * FROM customers WHERE status = 'churned' ORDER BY churned_at DESC`,
94
- }),
95
- );
78
+ import { example, guardrail, hint, term } from '@deepagents/context';
79
+
80
+ const text2sql = new Text2Sql({
81
+ // ... other config
82
+ instructions: [
83
+ term('MRR', 'monthly recurring revenue'),
84
+ hint('Always exclude test accounts with email ending in @test.com'),
85
+ guardrail({
86
+ rule: 'Never expose individual salaries',
87
+ reason: 'Confidential HR data',
88
+ action: 'Aggregate by department instead',
89
+ }),
90
+ example({
91
+ question: 'show me churned customers',
92
+ answer: `SELECT * FROM customers WHERE status = 'churned' ORDER BY churned_at DESC`,
93
+ }),
94
+ ],
95
+ });
96
96
  ```
97
97
 
98
- 10 teachable types available: `term`, `hint`, `guardrail`, `example`, `explain`, `clarification`, `workflow`, `quirk`, `styleGuide`, `analogy`.
98
+ **Domain fragments** (11 types): `term`, `hint`, `guardrail`, `example`, `explain`, `clarification`, `workflow`, `quirk`, `styleGuide`, `analogy`, `glossary`.
99
+
100
+ **User fragments** (6 types): `identity`, `persona`, `alias`, `preference`, `userContext`, `correction`.
101
+
102
+ See [@deepagents/context](../context/README.md) for full fragment documentation.
99
103
 
100
104
  ## Grounding
101
105
 
@@ -136,19 +140,6 @@ const followUp = await text2sql.chat(
136
140
  );
137
141
  ```
138
142
 
139
- ## Explain Queries
140
-
141
- Convert SQL to plain English:
142
-
143
- ```typescript
144
- const explanation = await text2sql.explain(`
145
- SELECT department, AVG(salary)
146
- FROM employees
147
- GROUP BY department
148
- `);
149
- // "This query calculates the average salary for each department..."
150
- ```
151
-
152
143
  ## Documentation
153
144
 
154
145
  Full documentation available at [januarylabs.github.io/deepagents](https://januarylabs.github.io/deepagents/docs/text2sql):
package/dist/index.d.ts CHANGED
@@ -1,15 +1,12 @@
1
1
  export * from './lib/adapters/adapter.ts';
2
2
  export * from './lib/agents/developer.agent.ts';
3
+ export * from './lib/agents/result-tools.ts';
4
+ export * from './lib/agents/sql.agent.ts';
3
5
  export * from './lib/agents/suggestions.agents.ts';
4
6
  export * from './lib/agents/text2sql.agent.ts';
5
7
  export * from './lib/checkpoint.ts';
6
8
  export * from './lib/file-cache.ts';
7
- export * from './lib/history/history.ts';
8
- export * from './lib/history/memory.history.ts';
9
- export * from './lib/history/sqlite.history.ts';
10
- export * from './lib/memory/memory.store.ts';
11
- export * from './lib/memory/sqlite.store.ts';
12
- export * from './lib/memory/store.ts';
9
+ export * from './lib/fragments/schema.ts';
10
+ export * from './lib/instructions.ts';
13
11
  export * from './lib/sql.ts';
14
- export * from './lib/teach/teachings.ts';
15
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC"}