@deepagents/text2sql 0.35.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 +121 -40
- 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 +8 -8
- 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
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
declare const sqlValidationMarker: unique symbol;
|
|
2
2
|
declare const unanswerableSqlMarker: unique symbol;
|
|
3
3
|
declare const sqlScopeMarker: unique symbol;
|
|
4
|
+
declare const sqlReadOnlyMarker: unique symbol;
|
|
4
5
|
export type SQLScopeErrorType = 'OUT_OF_SCOPE' | 'SQL_SCOPE_PARSE_ERROR';
|
|
5
6
|
export interface SQLScopeErrorPayload {
|
|
6
7
|
error: string;
|
|
@@ -38,5 +39,13 @@ export declare class SQLScopeError extends Error {
|
|
|
38
39
|
constructor(payload: SQLScopeErrorPayload);
|
|
39
40
|
static isInstance(error: unknown): error is SQLScopeError;
|
|
40
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Error thrown when a query is not read-only (does not start with SELECT or WITH).
|
|
44
|
+
*/
|
|
45
|
+
export declare class SQLReadOnlyError extends Error {
|
|
46
|
+
[sqlReadOnlyMarker]: true;
|
|
47
|
+
constructor(message: string);
|
|
48
|
+
static isInstance(error: unknown): error is SQLReadOnlyError;
|
|
49
|
+
}
|
|
41
50
|
export {};
|
|
42
51
|
//# sourceMappingURL=exceptions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../../src/lib/agents/exceptions.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,mBAAmB,eAA+B,CAAC;AACzD,QAAA,MAAM,qBAAqB,eAAiC,CAAC;AAC7D,QAAA,MAAM,cAAc,eAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../../src/lib/agents/exceptions.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,mBAAmB,eAA+B,CAAC;AACzD,QAAA,MAAM,qBAAqB,eAAiC,CAAC;AAC7D,QAAA,MAAM,cAAc,eAA0B,CAAC;AAC/C,QAAA,MAAM,iBAAiB,eAA6B,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG,uBAAuB,CAAC;AAEzE,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,iBAAiB,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC;gBAEhB,OAAO,EAAE,MAAM;IAM3B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB;CAK/D;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC;gBAElB,OAAO,EAAE,MAAM;IAM3B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB;CAMjE;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;gBAE1B,OAAO,EAAE,oBAAoB;IAQzC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa;CAG1D;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC;gBAEd,OAAO,EAAE,MAAM;IAM3B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB;CAK7D"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Adapter } from '../adapters/adapter.ts';
|
|
2
|
+
export interface SqlCommandOptions {
|
|
3
|
+
/** Directory under which `sql run` writes result JSON files. Default: `/sql`. */
|
|
4
|
+
outputDir?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function createSqlCommand(adapters: Record<string, Adapter>, { outputDir }?: SqlCommandOptions): {
|
|
7
|
+
command: import("@deepagents/context").ExtensionCommand;
|
|
8
|
+
repair: (raw: string) => string;
|
|
9
|
+
};
|
|
10
|
+
export type { SqlCommandOptions as CreateSqlCommandOptions };
|
|
11
|
+
//# sourceMappingURL=sql-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-command.d.ts","sourceRoot":"","sources":["../../../src/lib/agents/sql-command.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAKtD,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuCD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,EAAE,SAAkB,EAAE,GAAE,iBAAsB;;;EA+G/C;AAED,YAAY,EAAE,iBAAiB,IAAI,uBAAuB,EAAE,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import type { CommandResult } from 'bash-tool';
|
|
1
2
|
import type { TransformContext, TransformPlugin, TransformResult } from 'just-bash';
|
|
2
|
-
|
|
3
|
+
import { BashException } from '@deepagents/context';
|
|
4
|
+
export declare class SqlProxyViolationError extends BashException {
|
|
3
5
|
constructor();
|
|
6
|
+
format(): CommandResult;
|
|
4
7
|
}
|
|
5
8
|
export interface SqlProxyEnforcementMetadata {
|
|
6
9
|
inspected: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-transform-plugins.d.ts","sourceRoot":"","sources":["../../../src/lib/agents/sql-transform-plugins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,gBAAgB,EAChB,eAAe,EACf,eAAe,EAEhB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"sql-transform-plugins.d.ts","sourceRoot":"","sources":["../../../src/lib/agents/sql-transform-plugins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAGV,gBAAgB,EAChB,eAAe,EACf,eAAe,EAEhB,MAAM,WAAW,CAAC;AAKnB,OAAO,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;AAwCtE,qBAAa,sBAAuB,SAAQ,aAAa;;IAMvD,MAAM,IAAI,aAAa;CAGxB;AAoyBD,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,qBAAa,yBAA0B,YAAW,eAAe,CAAC,2BAA2B,CAAC;IAC5F,IAAI,SAA2B;IAE/B,SAAS,CACP,OAAO,EAAE,gBAAgB,GACxB,eAAe,CAAC,2BAA2B,CAAC;CAehD;AA+BD,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,OAAO,CAAC;CACpB;AAiID,qBAAa,wBAAyB,YAAW,eAAe,CAAC,0BAA0B,CAAC;IAC1F,IAAI,SAA0B;IAE9B,SAAS,CACP,OAAO,EAAE,gBAAgB,GACxB,eAAe,CAAC,0BAA0B,CAAC;CAK/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo.d.ts","sourceRoot":"","sources":["../../src/lib/demo.ts"],"names":[],"mappings":""}
|
package/dist/lib/fs/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/fs/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/fs/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/lib/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EAYrB,MAAM,qBAAqB,CAAC;AAE7B,wBAAgB,UAAU,IAAI,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/lib/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EAYrB,MAAM,qBAAqB,CAAC;AAE7B,wBAAgB,UAAU,IAAI,eAAe,EAAE,CA8T9C"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { SandboxExtension } from '@deepagents/context';
|
|
2
|
+
import type { Adapter } from './adapters/adapter.ts';
|
|
3
|
+
import { type SqlCommandOptions } from './agents/sql-command.ts';
|
|
4
|
+
export interface SqlSandboxExtensionOptions extends SqlCommandOptions {
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Returns the SQL subcommand, transform plugins, and argument-repair hook as
|
|
8
|
+
* a composable {@link SandboxExtension}. Pass it via `hostExtensions` to
|
|
9
|
+
* `createRoutingSandbox`, layered over whichever backend you're using
|
|
10
|
+
* (`createVirtualSandbox`, `createDockerSandbox`, etc.).
|
|
11
|
+
*
|
|
12
|
+
* The LLM routes queries to a specific database via a positional name:
|
|
13
|
+
* `sql run <db> "SELECT ..."` / `sql validate <db> "SELECT ..."`.
|
|
14
|
+
*
|
|
15
|
+
* @param adapters Named map of database adapters. Keys must match
|
|
16
|
+
* `/^[A-Za-z_][A-Za-z0-9_]*$/` and are used as the `<db>` argument.
|
|
17
|
+
* @param options `outputDir` overrides where `sql run` writes result files
|
|
18
|
+
* (default `/sql`). Useful on backends where `/` is not writable.
|
|
19
|
+
*/
|
|
20
|
+
export declare function sqlSandboxExtension(adapters: Record<string, Adapter>, options?: SqlSandboxExtensionOptions): SandboxExtension;
|
|
21
|
+
//# sourceMappingURL=sandbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/lib/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,yBAAyB,CAAC;AAMjC,MAAM,WAAW,0BAA2B,SAAQ,iBAAiB;CAAG;AAExE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,GAAE,0BAA+B,GACvC,gBAAgB,CAYlB"}
|
package/dist/lib/sql.d.ts
CHANGED
|
@@ -1,47 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type IFileSystem } from 'just-bash';
|
|
1
|
+
import type { StreamTextTransform, Tool, ToolSet } from 'ai';
|
|
3
2
|
import { type AgentModel } from '@deepagents/agent';
|
|
4
|
-
import { type ChatMessage, ContextEngine, type ContextFragment } from '@deepagents/context';
|
|
3
|
+
import { type AgentSandbox, type ChatMessage, ContextEngine, type ContextFragment } from '@deepagents/context';
|
|
5
4
|
import type { Adapter } from './adapters/adapter.ts';
|
|
6
5
|
import { type ExtractedPair, type PairProducer } from './synthesis/types.ts';
|
|
7
6
|
export type RenderingTools = Record<string, Tool<unknown, never>>;
|
|
7
|
+
export interface Text2SqlConfig {
|
|
8
|
+
adapters: Record<string, Adapter>;
|
|
9
|
+
sandbox: AgentSandbox;
|
|
10
|
+
context: (...fragments: ContextFragment[]) => ContextEngine;
|
|
11
|
+
version: string;
|
|
12
|
+
tools?: RenderingTools;
|
|
13
|
+
model: AgentModel;
|
|
14
|
+
transform?: StreamTextTransform<ToolSet> | StreamTextTransform<ToolSet>[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Text2Sql — the caller owns the sandbox. Build one by passing
|
|
18
|
+
* `hostExtensions: [sqlSandboxExtension({ main: adapter }), ...yourOwnExtensions]`
|
|
19
|
+
* to `createRoutingSandbox`, layered over whichever backend you want
|
|
20
|
+
* (virtual, Docker, Agent OS), then wrap with `createBashTool`. For file
|
|
21
|
+
* event tracking, wrap the fs in `ObservedFs` before passing to the
|
|
22
|
+
* backend and attach `drainFileEvents: () => observed.drain()` to the
|
|
23
|
+
* resulting sandbox.
|
|
24
|
+
*/
|
|
8
25
|
export declare class Text2Sql {
|
|
9
26
|
#private;
|
|
10
|
-
constructor(config:
|
|
11
|
-
|
|
12
|
-
context: (...fragments: ContextFragment[]) => ContextEngine;
|
|
13
|
-
version: string;
|
|
14
|
-
tools?: RenderingTools;
|
|
15
|
-
model: AgentModel;
|
|
16
|
-
transform?: StreamTextTransform<ToolSet> | StreamTextTransform<ToolSet>[];
|
|
17
|
-
filesystem: IFileSystem;
|
|
18
|
-
});
|
|
19
|
-
toSql(input: string): Promise<string>;
|
|
20
|
-
/**
|
|
21
|
-
* Introspect the database schema and return context fragments.
|
|
22
|
-
* Results are cached to avoid repeated introspection.
|
|
23
|
-
*/
|
|
27
|
+
constructor(config: Text2SqlConfig);
|
|
28
|
+
toSql(input: string, adapterName: string): Promise<string>;
|
|
24
29
|
index(): Promise<ContextFragment[]>;
|
|
25
|
-
|
|
26
|
-
* Generate training data pairs using a producer factory.
|
|
27
|
-
* The factory receives the configured adapter, so users don't need to pass it manually.
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* // Generate questions for existing SQL
|
|
31
|
-
* const pairs = await text2sql.toPairs(
|
|
32
|
-
* (adapter) => new SqlExtractor(sqls, adapter, { validateSql: true })
|
|
33
|
-
* );
|
|
34
|
-
*
|
|
35
|
-
* @example
|
|
36
|
-
* // Extract from chat history with validation
|
|
37
|
-
* const pairs = await text2sql.toPairs(
|
|
38
|
-
* (adapter) => new ValidatedProducer(
|
|
39
|
-
* new MessageExtractor(messages),
|
|
40
|
-
* adapter
|
|
41
|
-
* )
|
|
42
|
-
* );
|
|
43
|
-
*/
|
|
44
|
-
toPairs<T extends PairProducer>(factory: (adapter: Adapter) => T): Promise<ExtractedPair[]>;
|
|
30
|
+
toPairs<T extends PairProducer>(adapterName: string, factory: (adapter: Adapter) => T): Promise<ExtractedPair[]>;
|
|
45
31
|
chat(messages: ChatMessage[], options?: {
|
|
46
32
|
abortSignal?: AbortSignal;
|
|
47
33
|
generateTitle?: boolean;
|
package/dist/lib/sql.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/lib/sql.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/lib/sql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,aAAa,EACb,KAAK,eAAe,EAKrB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAIrD,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE7E,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,CAAC,GAAG,SAAS,EAAE,eAAe,EAAE,KAAK,aAAa,CAAC;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;CAC3E;AAED;;;;;;;;GAQG;AACH,qBAAa,QAAQ;;gBAMP,MAAM,EAAE,cAAc;IA6BrB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY1D,KAAK,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAmCnC,OAAO,CAAC,CAAC,SAAS,YAAY,EACzC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC,GAC/B,OAAO,CAAC,aAAa,EAAE,CAAC;IAMd,IAAI,CACf,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,WAAW,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE;CA2BnE"}
|
|
@@ -920,6 +920,7 @@ import {
|
|
|
920
920
|
var sqlValidationMarker = Symbol("SQLValidationError");
|
|
921
921
|
var unanswerableSqlMarker = Symbol("UnanswerableSQLError");
|
|
922
922
|
var sqlScopeMarker = Symbol("SQLScopeError");
|
|
923
|
+
var sqlReadOnlyMarker = Symbol("SQLReadOnlyError");
|
|
923
924
|
var SQLValidationError = class _SQLValidationError extends Error {
|
|
924
925
|
[sqlValidationMarker];
|
|
925
926
|
constructor(message) {
|
|
@@ -957,6 +958,17 @@ var SQLScopeError = class _SQLScopeError extends Error {
|
|
|
957
958
|
return error instanceof _SQLScopeError && error[sqlScopeMarker] === true;
|
|
958
959
|
}
|
|
959
960
|
};
|
|
961
|
+
var SQLReadOnlyError = class _SQLReadOnlyError extends Error {
|
|
962
|
+
[sqlReadOnlyMarker];
|
|
963
|
+
constructor(message) {
|
|
964
|
+
super(message);
|
|
965
|
+
this.name = "SQLReadOnlyError";
|
|
966
|
+
this[sqlReadOnlyMarker] = true;
|
|
967
|
+
}
|
|
968
|
+
static isInstance(error) {
|
|
969
|
+
return error instanceof _SQLReadOnlyError && error[sqlReadOnlyMarker] === true;
|
|
970
|
+
}
|
|
971
|
+
};
|
|
960
972
|
|
|
961
973
|
// packages/text2sql/src/lib/agents/sql.agent.ts
|
|
962
974
|
import { groq as groq5 } from "@ai-sdk/groq";
|