@deepagents/text2sql 0.36.0 → 0.37.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 +46 -5
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +404 -727
- package/dist/index.js.map +4 -4
- package/dist/lib/adapter-name.d.ts +4 -0
- package/dist/lib/adapter-name.d.ts.map +1 -0
- package/dist/lib/adapters/adapter.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/index.js +35 -6
- package/dist/lib/adapters/bigquery/index.js.map +2 -2
- package/dist/lib/adapters/mysql/index.js +35 -6
- package/dist/lib/adapters/mysql/index.js.map +2 -2
- package/dist/lib/adapters/postgres/index.js +35 -6
- package/dist/lib/adapters/postgres/index.js.map +2 -2
- package/dist/lib/adapters/spreadsheet/index.js +35 -6
- package/dist/lib/adapters/spreadsheet/index.js.map +2 -2
- package/dist/lib/adapters/sqlite/index.js +35 -6
- package/dist/lib/adapters/sqlite/index.js.map +2 -2
- package/dist/lib/adapters/sqlserver/index.js +35 -6
- package/dist/lib/adapters/sqlserver/index.js.map +2 -2
- package/dist/lib/agents/exceptions.d.ts +9 -0
- package/dist/lib/agents/exceptions.d.ts.map +1 -1
- package/dist/lib/agents/sql-command.d.ts +11 -0
- package/dist/lib/agents/sql-command.d.ts.map +1 -0
- package/dist/lib/agents/sql-transform-plugins.d.ts +4 -1
- package/dist/lib/agents/sql-transform-plugins.d.ts.map +1 -1
- package/dist/lib/demo.d.ts +2 -0
- package/dist/lib/demo.d.ts.map +1 -0
- package/dist/lib/fs/index.d.ts +0 -1
- package/dist/lib/fs/index.d.ts.map +1 -1
- package/dist/lib/instructions.d.ts.map +1 -1
- package/dist/lib/sandbox.d.ts +21 -0
- package/dist/lib/sandbox.d.ts.map +1 -0
- package/dist/lib/sql.d.ts +23 -37
- package/dist/lib/sql.d.ts.map +1 -1
- package/dist/lib/synthesis/index.js +12 -0
- package/dist/lib/synthesis/index.js.map +2 -2
- package/package.json +7 -7
- package/dist/lib/agents/explainer.agent.d.ts +0 -7
- package/dist/lib/agents/explainer.agent.d.ts.map +0 -1
- package/dist/lib/agents/result-tools.d.ts +0 -69
- package/dist/lib/agents/result-tools.d.ts.map +0 -1
- package/dist/lib/fs/tracked-fs.d.ts +0 -42
- package/dist/lib/fs/tracked-fs.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -26,8 +26,14 @@ import { groq } from '@ai-sdk/groq';
|
|
|
26
26
|
import { InMemoryFs } from 'just-bash';
|
|
27
27
|
import pg from 'pg';
|
|
28
28
|
|
|
29
|
-
import {
|
|
30
|
-
|
|
29
|
+
import {
|
|
30
|
+
ContextEngine,
|
|
31
|
+
InMemoryContextStore,
|
|
32
|
+
createBashTool,
|
|
33
|
+
createRoutingSandbox,
|
|
34
|
+
createVirtualSandbox,
|
|
35
|
+
} from '@deepagents/context';
|
|
36
|
+
import { Text2Sql, sqlSandboxExtension } from '@deepagents/text2sql';
|
|
31
37
|
import {
|
|
32
38
|
Postgres,
|
|
33
39
|
columnValues,
|
|
@@ -59,12 +65,18 @@ const adapter = new Postgres({
|
|
|
59
65
|
columnValues(),
|
|
60
66
|
],
|
|
61
67
|
});
|
|
68
|
+
const sandbox = await createBashTool({
|
|
69
|
+
sandbox: await createRoutingSandbox({
|
|
70
|
+
backend: await createVirtualSandbox({ fs: new InMemoryFs() }),
|
|
71
|
+
hostExtensions: [sqlSandboxExtension({ main: adapter })],
|
|
72
|
+
}),
|
|
73
|
+
});
|
|
62
74
|
|
|
63
75
|
const text2sql = new Text2Sql({
|
|
64
76
|
version: 'v1',
|
|
65
77
|
model: groq('openai/gpt-oss-20b'),
|
|
66
|
-
|
|
67
|
-
adapter,
|
|
78
|
+
sandbox,
|
|
79
|
+
adapters: { main: adapter },
|
|
68
80
|
context: (...fragments) => {
|
|
69
81
|
const engine = new ContextEngine({
|
|
70
82
|
store,
|
|
@@ -77,14 +89,36 @@ const text2sql = new Text2Sql({
|
|
|
77
89
|
});
|
|
78
90
|
|
|
79
91
|
// Generate SQL
|
|
80
|
-
const sql = await text2sql.toSql(
|
|
92
|
+
const sql = await text2sql.toSql(
|
|
93
|
+
'Show me the top 10 customers by revenue',
|
|
94
|
+
'main',
|
|
95
|
+
);
|
|
81
96
|
console.log(sql);
|
|
82
97
|
```
|
|
83
98
|
|
|
99
|
+
The adapter-map key (`main` here) is the adapter name. Reuse that same key in
|
|
100
|
+
`text2sql.toSql(..., 'main')` and in any `sql validate <db> "..."` /
|
|
101
|
+
`sql run <db> "..."` sandbox calls.
|
|
102
|
+
|
|
103
|
+
Adapter names must match `/^[A-Za-z_][A-Za-z0-9_]*$/`. If you build adapter
|
|
104
|
+
maps dynamically, use `isValidAdapterName(name)` to check one key or
|
|
105
|
+
`validateAdapterNames(names)` to fail fast before constructing `Text2Sql` or
|
|
106
|
+
`sqlSandboxExtension`.
|
|
107
|
+
|
|
84
108
|
## AI Model Providers
|
|
85
109
|
|
|
86
110
|
Text2SQL works with any model provider supported by the [Vercel AI SDK](https://sdk.vercel.ai/docs), including OpenAI, Anthropic, Google, Groq, and more.
|
|
87
111
|
|
|
112
|
+
## Advanced: Composing Sandbox Extensions
|
|
113
|
+
|
|
114
|
+
`Text2Sql` takes a caller-owned `sandbox`. `sqlSandboxExtension(adaptersMap)`
|
|
115
|
+
returns a `SandboxExtension` that bundles the `sql` subcommand, transform
|
|
116
|
+
plugins, and arg-repair hook. In the simplest case, that map is
|
|
117
|
+
`{ main: adapter }`. Compose it (alongside any of your own extensions) via
|
|
118
|
+
`createBashTool` + `createRoutingSandbox` + `createVirtualSandbox`.
|
|
119
|
+
See [Caller-Owned Sandbox](https://januarylabs.github.io/deepagents/docs/text2sql/sqlv3)
|
|
120
|
+
for composition patterns.
|
|
121
|
+
|
|
88
122
|
## Fragments
|
|
89
123
|
|
|
90
124
|
Inject domain knowledge using fragments from `@deepagents/context` inside the
|
|
@@ -170,8 +204,14 @@ const followUp = await text2sql.chat([
|
|
|
170
204
|
]);
|
|
171
205
|
```
|
|
172
206
|
|
|
207
|
+
`toSql()` is stateless. It reads the current schema fragments, but it does not
|
|
208
|
+
write messages, titles, or usage into your context store.
|
|
209
|
+
|
|
173
210
|
## Direct SQL Generation with Extra Fragments
|
|
174
211
|
|
|
212
|
+
This lower-level helper still takes a single `adapter` because it bypasses the
|
|
213
|
+
multi-adapter `Text2Sql` wrapper entirely.
|
|
214
|
+
|
|
175
215
|
```typescript
|
|
176
216
|
import { term } from '@deepagents/context';
|
|
177
217
|
import { toSql } from '@deepagents/text2sql';
|
|
@@ -195,6 +235,7 @@ Full documentation available at [januarylabs.github.io/deepagents](https://janua
|
|
|
195
235
|
|
|
196
236
|
- [Getting Started](https://januarylabs.github.io/deepagents/docs/text2sql/getting-started)
|
|
197
237
|
- [Generate SQL](https://januarylabs.github.io/deepagents/docs/text2sql/to-sql)
|
|
238
|
+
- [Caller-Owned Sandbox](https://januarylabs.github.io/deepagents/docs/text2sql/sqlv3)
|
|
198
239
|
- [Teach the System](https://januarylabs.github.io/deepagents/docs/text2sql/teach-the-system)
|
|
199
240
|
- [Build Conversations](https://januarylabs.github.io/deepagents/docs/text2sql/build-conversations)
|
|
200
241
|
- [Grounding](https://januarylabs.github.io/deepagents/docs/text2sql/grounding)
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
export { isValidAdapterName, validateAdapterNames, } from './lib/adapter-name.ts';
|
|
1
2
|
export * from './lib/adapters/adapter.ts';
|
|
2
3
|
export * from './lib/agents/exceptions.ts';
|
|
3
|
-
export * from './lib/agents/
|
|
4
|
+
export * from './lib/agents/sql-command.ts';
|
|
5
|
+
export * from './lib/agents/sql-transform-plugins.ts';
|
|
4
6
|
export * from './lib/agents/sql.agent.ts';
|
|
5
7
|
export * from './lib/agents/suggestions.agents.ts';
|
|
6
8
|
export * from './lib/checkpoint.ts';
|
|
@@ -8,5 +10,6 @@ export * from './lib/file-cache.ts';
|
|
|
8
10
|
export * from './lib/fragments/schema.ts';
|
|
9
11
|
export * from './lib/fs/index.ts';
|
|
10
12
|
export * from './lib/instructions.ts';
|
|
13
|
+
export * from './lib/sandbox.ts';
|
|
11
14
|
export * from './lib/sql.ts';
|
|
12
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC"}
|