@deepagents/text2sql 0.36.0 → 0.37.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/README.md +37 -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,30 @@ 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
|
+
|
|
84
103
|
## AI Model Providers
|
|
85
104
|
|
|
86
105
|
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
106
|
|
|
107
|
+
## Advanced: Composing Sandbox Extensions
|
|
108
|
+
|
|
109
|
+
`Text2Sql` takes a caller-owned `sandbox`. `sqlSandboxExtension(adaptersMap)`
|
|
110
|
+
returns a `SandboxExtension` that bundles the `sql` subcommand, transform
|
|
111
|
+
plugins, and arg-repair hook. In the simplest case, that map is
|
|
112
|
+
`{ main: adapter }`. Compose it (alongside any of your own extensions) via
|
|
113
|
+
`createBashTool` + `createRoutingSandbox` + `createVirtualSandbox`.
|
|
114
|
+
See [sqlv3.md](./sqlv3.md) for composition patterns.
|
|
115
|
+
|
|
88
116
|
## Fragments
|
|
89
117
|
|
|
90
118
|
Inject domain knowledge using fragments from `@deepagents/context` inside the
|
|
@@ -170,6 +198,9 @@ const followUp = await text2sql.chat([
|
|
|
170
198
|
]);
|
|
171
199
|
```
|
|
172
200
|
|
|
201
|
+
`toSql()` is stateless. It reads the current schema fragments, but it does not
|
|
202
|
+
write messages, titles, or usage into your context store.
|
|
203
|
+
|
|
173
204
|
## Direct SQL Generation with Extra Fragments
|
|
174
205
|
|
|
175
206
|
```typescript
|
|
@@ -195,6 +226,7 @@ Full documentation available at [januarylabs.github.io/deepagents](https://janua
|
|
|
195
226
|
|
|
196
227
|
- [Getting Started](https://januarylabs.github.io/deepagents/docs/text2sql/getting-started)
|
|
197
228
|
- [Generate SQL](https://januarylabs.github.io/deepagents/docs/text2sql/to-sql)
|
|
229
|
+
- [Caller-Owned Sandbox](https://januarylabs.github.io/deepagents/docs/text2sql/sqlv3)
|
|
198
230
|
- [Teach the System](https://januarylabs.github.io/deepagents/docs/text2sql/teach-the-system)
|
|
199
231
|
- [Build Conversations](https://januarylabs.github.io/deepagents/docs/text2sql/build-conversations)
|
|
200
232
|
- [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"}
|