@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.
Files changed (44) hide show
  1. package/README.md +37 -5
  2. package/dist/index.d.ts +4 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +404 -727
  5. package/dist/index.js.map +4 -4
  6. package/dist/lib/adapter-name.d.ts +4 -0
  7. package/dist/lib/adapter-name.d.ts.map +1 -0
  8. package/dist/lib/adapters/adapter.d.ts.map +1 -1
  9. package/dist/lib/adapters/bigquery/index.js +35 -6
  10. package/dist/lib/adapters/bigquery/index.js.map +2 -2
  11. package/dist/lib/adapters/mysql/index.js +35 -6
  12. package/dist/lib/adapters/mysql/index.js.map +2 -2
  13. package/dist/lib/adapters/postgres/index.js +35 -6
  14. package/dist/lib/adapters/postgres/index.js.map +2 -2
  15. package/dist/lib/adapters/spreadsheet/index.js +35 -6
  16. package/dist/lib/adapters/spreadsheet/index.js.map +2 -2
  17. package/dist/lib/adapters/sqlite/index.js +35 -6
  18. package/dist/lib/adapters/sqlite/index.js.map +2 -2
  19. package/dist/lib/adapters/sqlserver/index.js +35 -6
  20. package/dist/lib/adapters/sqlserver/index.js.map +2 -2
  21. package/dist/lib/agents/exceptions.d.ts +9 -0
  22. package/dist/lib/agents/exceptions.d.ts.map +1 -1
  23. package/dist/lib/agents/sql-command.d.ts +11 -0
  24. package/dist/lib/agents/sql-command.d.ts.map +1 -0
  25. package/dist/lib/agents/sql-transform-plugins.d.ts +4 -1
  26. package/dist/lib/agents/sql-transform-plugins.d.ts.map +1 -1
  27. package/dist/lib/demo.d.ts +2 -0
  28. package/dist/lib/demo.d.ts.map +1 -0
  29. package/dist/lib/fs/index.d.ts +0 -1
  30. package/dist/lib/fs/index.d.ts.map +1 -1
  31. package/dist/lib/instructions.d.ts.map +1 -1
  32. package/dist/lib/sandbox.d.ts +21 -0
  33. package/dist/lib/sandbox.d.ts.map +1 -0
  34. package/dist/lib/sql.d.ts +23 -37
  35. package/dist/lib/sql.d.ts.map +1 -1
  36. package/dist/lib/synthesis/index.js +12 -0
  37. package/dist/lib/synthesis/index.js.map +2 -2
  38. package/package.json +7 -7
  39. package/dist/lib/agents/explainer.agent.d.ts +0 -7
  40. package/dist/lib/agents/explainer.agent.d.ts.map +0 -1
  41. package/dist/lib/agents/result-tools.d.ts +0 -69
  42. package/dist/lib/agents/result-tools.d.ts.map +0 -1
  43. package/dist/lib/fs/tracked-fs.d.ts +0 -42
  44. 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 { ContextEngine, InMemoryContextStore } from '@deepagents/context';
30
- import { Text2Sql } from '@deepagents/text2sql';
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
- filesystem: new InMemoryFs(),
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('Show me the top 10 customers by revenue');
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/result-tools.ts';
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
@@ -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,8BAA8B,CAAC;AAC7C,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,cAAc,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"}