@deepagents/text2sql 0.3.0 → 0.6.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 +167 -0
- package/dist/finetune/convert-to-gguf.d.ts +18 -0
- package/dist/finetune/convert-to-gguf.d.ts.map +1 -0
- package/dist/finetune/run-finetune.d.ts +23 -0
- package/dist/finetune/run-finetune.d.ts.map +1 -0
- package/dist/finetune/run-mlx.d.ts +22 -0
- package/dist/finetune/run-mlx.d.ts.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1795 -284
- package/dist/index.js.map +4 -4
- package/dist/lib/adapters/adapter.d.ts +8 -3
- package/dist/lib/adapters/adapter.d.ts.map +1 -1
- package/dist/lib/adapters/{grounding.ticket.d.ts → groundings/abstract.grounding.d.ts} +2 -2
- package/dist/lib/adapters/groundings/abstract.grounding.d.ts.map +1 -0
- package/dist/lib/adapters/groundings/column-stats.grounding.d.ts +1 -1
- package/dist/lib/adapters/groundings/column-stats.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/groundings/column-values.grounding.d.ts +76 -0
- package/dist/lib/adapters/groundings/column-values.grounding.d.ts.map +1 -0
- package/dist/lib/adapters/groundings/constraint.grounding.d.ts +1 -1
- package/dist/lib/adapters/groundings/constraint.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/groundings/context.d.ts +1 -1
- package/dist/lib/adapters/groundings/context.d.ts.map +1 -1
- package/dist/lib/adapters/groundings/{grounding.d.ts → index.d.ts} +8 -5
- package/dist/lib/adapters/groundings/index.d.ts.map +1 -0
- package/dist/lib/adapters/groundings/{grounding.js → index.js} +411 -206
- package/dist/lib/adapters/groundings/index.js.map +7 -0
- package/dist/lib/adapters/groundings/indexes.grounding.d.ts +1 -1
- package/dist/lib/adapters/groundings/indexes.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/groundings/info.grounding.d.ts +1 -1
- package/dist/lib/adapters/groundings/info.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/groundings/report.grounding.d.ts +1 -1
- package/dist/lib/adapters/groundings/report.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/groundings/row-count.grounding.d.ts +1 -1
- package/dist/lib/adapters/groundings/row-count.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/groundings/table.grounding.d.ts +1 -1
- package/dist/lib/adapters/groundings/table.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/groundings/view.grounding.d.ts +1 -1
- package/dist/lib/adapters/groundings/view.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/column-stats.postgres.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/column-values.postgres.grounding.d.ts +17 -0
- package/dist/lib/adapters/postgres/column-values.postgres.grounding.d.ts.map +1 -0
- package/dist/lib/adapters/postgres/index.d.ts +4 -4
- package/dist/lib/adapters/postgres/index.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/index.js +239 -33
- package/dist/lib/adapters/postgres/index.js.map +4 -4
- package/dist/lib/adapters/postgres/postgres.d.ts +1 -0
- package/dist/lib/adapters/postgres/postgres.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/column-values.sqlite.grounding.d.ts +17 -0
- package/dist/lib/adapters/sqlite/column-values.sqlite.grounding.d.ts.map +1 -0
- package/dist/lib/adapters/sqlite/constraint.sqlite.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/index.d.ts +4 -4
- package/dist/lib/adapters/sqlite/index.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/index.js +218 -46
- package/dist/lib/adapters/sqlite/index.js.map +4 -4
- package/dist/lib/adapters/sqlite/sqlite.d.ts +1 -0
- package/dist/lib/adapters/sqlite/sqlite.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/column-values.sqlserver.grounding.d.ts +17 -0
- package/dist/lib/adapters/sqlserver/column-values.sqlserver.grounding.d.ts.map +1 -0
- package/dist/lib/adapters/sqlserver/index.d.ts +4 -4
- package/dist/lib/adapters/sqlserver/index.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/index.js +185 -32
- package/dist/lib/adapters/sqlserver/index.js.map +4 -4
- package/dist/lib/adapters/sqlserver/sqlserver.d.ts +1 -0
- package/dist/lib/adapters/sqlserver/sqlserver.d.ts.map +1 -1
- package/dist/lib/agents/chat1.agent.d.ts +50 -0
- package/dist/lib/agents/chat1.agent.d.ts.map +1 -0
- package/dist/lib/agents/chat2.agent.d.ts +68 -0
- package/dist/lib/agents/chat2.agent.d.ts.map +1 -0
- package/dist/lib/agents/chat3.agent.d.ts +80 -0
- package/dist/lib/agents/chat3.agent.d.ts.map +1 -0
- package/dist/lib/agents/chat4.agent.d.ts +88 -0
- package/dist/lib/agents/chat4.agent.d.ts.map +1 -0
- package/dist/lib/agents/question.agent.d.ts +23 -0
- package/dist/lib/agents/question.agent.d.ts.map +1 -0
- package/dist/lib/agents/sql.agent.d.ts +62 -0
- package/dist/lib/agents/sql.agent.d.ts.map +1 -0
- package/dist/lib/agents/teachables.agent.d.ts +8 -9
- package/dist/lib/agents/teachables.agent.d.ts.map +1 -1
- package/dist/lib/agents/text2sql.agent.d.ts +0 -1
- package/dist/lib/agents/text2sql.agent.d.ts.map +1 -1
- package/dist/lib/checkpoint.d.ts +99 -0
- package/dist/lib/checkpoint.d.ts.map +1 -0
- package/dist/lib/instructions.js +50 -21
- package/dist/lib/instructions.js.map +2 -2
- package/dist/lib/sql.d.ts +83 -3
- package/dist/lib/sql.d.ts.map +1 -1
- package/dist/lib/syntheize.d.ts +2 -0
- package/dist/lib/syntheize.d.ts.map +1 -0
- package/dist/lib/synthesis/decorators/deduplicated-producer.d.ts +26 -0
- package/dist/lib/synthesis/decorators/deduplicated-producer.d.ts.map +1 -0
- package/dist/lib/synthesis/decorators/filtered-producer.d.ts +26 -0
- package/dist/lib/synthesis/decorators/filtered-producer.d.ts.map +1 -0
- package/dist/lib/synthesis/decorators/index.d.ts +7 -0
- package/dist/lib/synthesis/decorators/index.d.ts.map +1 -0
- package/dist/lib/synthesis/decorators/validated-producer.d.ts +33 -0
- package/dist/lib/synthesis/decorators/validated-producer.d.ts.map +1 -0
- package/dist/lib/synthesis/extractors/base-contextual-extractor.d.ts +76 -0
- package/dist/lib/synthesis/extractors/base-contextual-extractor.d.ts.map +1 -0
- package/dist/lib/synthesis/extractors/full-context-extractor.d.ts +25 -0
- package/dist/lib/synthesis/extractors/full-context-extractor.d.ts.map +1 -0
- package/dist/lib/synthesis/extractors/index.d.ts +8 -0
- package/dist/lib/synthesis/extractors/index.d.ts.map +1 -0
- package/dist/lib/synthesis/extractors/last-query-extractor.d.ts +30 -0
- package/dist/lib/synthesis/extractors/last-query-extractor.d.ts.map +1 -0
- package/dist/lib/synthesis/extractors/message-extractor.d.ts +27 -0
- package/dist/lib/synthesis/extractors/message-extractor.d.ts.map +1 -0
- package/dist/lib/synthesis/extractors/segmented-context-extractor.d.ts +48 -0
- package/dist/lib/synthesis/extractors/segmented-context-extractor.d.ts.map +1 -0
- package/dist/lib/synthesis/extractors/sql-extractor.d.ts +27 -0
- package/dist/lib/synthesis/extractors/sql-extractor.d.ts.map +1 -0
- package/dist/lib/synthesis/extractors/windowed-context-extractor.d.ts +30 -0
- package/dist/lib/synthesis/extractors/windowed-context-extractor.d.ts.map +1 -0
- package/dist/lib/synthesis/index.d.ts +6 -0
- package/dist/lib/synthesis/index.d.ts.map +1 -0
- package/dist/lib/synthesis/index.js +2069 -0
- package/dist/lib/synthesis/index.js.map +7 -0
- package/dist/lib/synthesis/synthesizers/breadth-evolver.d.ts +34 -0
- package/dist/lib/synthesis/synthesizers/breadth-evolver.d.ts.map +1 -0
- package/dist/lib/synthesis/synthesizers/depth-evolver.d.ts +41 -0
- package/dist/lib/synthesis/synthesizers/depth-evolver.d.ts.map +1 -0
- package/dist/lib/synthesis/synthesizers/index.d.ts +7 -0
- package/dist/lib/synthesis/synthesizers/index.d.ts.map +1 -0
- package/dist/lib/synthesis/synthesizers/persona-generator.d.ts +34 -0
- package/dist/lib/synthesis/synthesizers/persona-generator.d.ts.map +1 -0
- package/dist/lib/synthesis/synthesizers/schema-synthesizer.d.ts +39 -0
- package/dist/lib/synthesis/synthesizers/schema-synthesizer.d.ts.map +1 -0
- package/dist/lib/synthesis/synthesizers/styles.d.ts +8 -0
- package/dist/lib/synthesis/synthesizers/styles.d.ts.map +1 -0
- package/dist/lib/synthesis/synthesizers/teachings-generator.d.ts +32 -0
- package/dist/lib/synthesis/synthesizers/teachings-generator.d.ts.map +1 -0
- package/dist/lib/synthesis/types.d.ts +26 -0
- package/dist/lib/synthesis/types.d.ts.map +1 -0
- package/dist/lib/teach/teachables.d.ts +18 -3
- package/dist/lib/teach/teachables.d.ts.map +1 -1
- package/dist/lib/teach/teachings.d.ts +9 -2
- package/dist/lib/teach/teachings.d.ts.map +1 -1
- package/package.json +32 -15
- package/dist/lib/adapters/grounding.ticket.d.ts.map +0 -1
- package/dist/lib/adapters/groundings/grounding.d.ts.map +0 -1
- package/dist/lib/adapters/groundings/grounding.js.map +0 -7
- package/dist/lib/adapters/groundings/low-cardinality.grounding.d.ts +0 -35
- package/dist/lib/adapters/groundings/low-cardinality.grounding.d.ts.map +0 -1
- package/dist/lib/adapters/postgres/low-cardinality.postgres.grounding.d.ts +0 -14
- package/dist/lib/adapters/postgres/low-cardinality.postgres.grounding.d.ts.map +0 -1
- package/dist/lib/adapters/sqlite/low-cardinality.sqlite.grounding.d.ts +0 -14
- package/dist/lib/adapters/sqlite/low-cardinality.sqlite.grounding.d.ts.map +0 -1
- package/dist/lib/adapters/sqlserver/low-cardinality.sqlserver.grounding.d.ts +0 -14
- package/dist/lib/adapters/sqlserver/low-cardinality.sqlserver.grounding.d.ts.map +0 -1
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type ExtractedPair, PairProducer } from '../types.ts';
|
|
2
|
+
export interface FilteredProducerOptions {
|
|
3
|
+
successOnly?: boolean;
|
|
4
|
+
tables?: string[];
|
|
5
|
+
filter?: (pair: ExtractedPair) => boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* FilteredProducer - Filter pairs from another producer.
|
|
9
|
+
*
|
|
10
|
+
* Wraps another PairProducer and filters the output based on criteria.
|
|
11
|
+
*/
|
|
12
|
+
export declare class FilteredProducer extends PairProducer {
|
|
13
|
+
private producer;
|
|
14
|
+
private options;
|
|
15
|
+
/**
|
|
16
|
+
* @param producer - Source producer to filter
|
|
17
|
+
* @param options - Filter configuration
|
|
18
|
+
*/
|
|
19
|
+
constructor(producer: PairProducer, options?: FilteredProducerOptions);
|
|
20
|
+
/**
|
|
21
|
+
* Produces pairs filtered by success status, table usage, and custom predicates.
|
|
22
|
+
* @returns Pairs matching all configured filter criteria
|
|
23
|
+
*/
|
|
24
|
+
produce(): AsyncGenerator<ExtractedPair[]>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=filtered-producer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filtered-producer.d.ts","sourceRoot":"","sources":["../../../../src/lib/synthesis/decorators/filtered-producer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC;CAC3C;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAM9C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,OAAO;IANjB;;;OAGG;gBAEO,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,uBAA4B;IAK/C;;;OAGG;IACI,OAAO,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC;CA2BlD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { FilteredProducer } from './filtered-producer.ts';
|
|
2
|
+
export type { FilteredProducerOptions } from './filtered-producer.ts';
|
|
3
|
+
export { DeduplicatedProducer } from './deduplicated-producer.ts';
|
|
4
|
+
export type { DeduplicatedProducerOptions } from './deduplicated-producer.ts';
|
|
5
|
+
export { ValidatedProducer } from './validated-producer.ts';
|
|
6
|
+
export type { ValidatedPair, ValidatedProducerOptions, } from './validated-producer.ts';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/synthesis/decorators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EACV,aAAa,EACb,wBAAwB,GACzB,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Adapter } from '../../adapters/adapter.ts';
|
|
2
|
+
import { type ExtractedPair, PairProducer } from '../types.ts';
|
|
3
|
+
export interface ValidatedProducerOptions {
|
|
4
|
+
execute?: boolean;
|
|
5
|
+
removeInvalid?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface ValidatedPair extends ExtractedPair {
|
|
8
|
+
rowCount?: number;
|
|
9
|
+
error?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* ValidatedProducer - Validate SQL from another producer.
|
|
13
|
+
*
|
|
14
|
+
* Wraps another PairProducer and validates each SQL query,
|
|
15
|
+
* optionally executing to attach results.
|
|
16
|
+
*/
|
|
17
|
+
export declare class ValidatedProducer extends PairProducer<ValidatedPair> {
|
|
18
|
+
private producer;
|
|
19
|
+
private adapter;
|
|
20
|
+
private options;
|
|
21
|
+
/**
|
|
22
|
+
* @param producer - Source producer to validate
|
|
23
|
+
* @param adapter - Database adapter for SQL validation
|
|
24
|
+
* @param options - Validation configuration
|
|
25
|
+
*/
|
|
26
|
+
constructor(producer: PairProducer, adapter: Adapter, options?: ValidatedProducerOptions);
|
|
27
|
+
/**
|
|
28
|
+
* Produces pairs with SQL validation applied, optionally executing queries.
|
|
29
|
+
* @returns Validated pairs with error/rowCount metadata attached
|
|
30
|
+
*/
|
|
31
|
+
produce(): AsyncGenerator<ValidatedPair[]>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=validated-producer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validated-producer.d.ts","sourceRoot":"","sources":["../../../../src/lib/synthesis/decorators/validated-producer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AACD;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,YAAY,CAAC,aAAa,CAAC;IAO9D,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;IARjB;;;;OAIG;gBAEO,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,wBAA6B;IAKhD;;;OAGG;IACI,OAAO,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC;CAwClD"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { type UIMessage } from 'ai';
|
|
2
|
+
import type { Adapter } from '../../adapters/adapter.ts';
|
|
3
|
+
import { type ExtractedPair, PairProducer } from '../types.ts';
|
|
4
|
+
export interface DbQueryInput {
|
|
5
|
+
sql: string;
|
|
6
|
+
reasoning?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface SqlWithContext {
|
|
9
|
+
sql: string;
|
|
10
|
+
success: boolean;
|
|
11
|
+
conversationContext: string[];
|
|
12
|
+
}
|
|
13
|
+
export interface BaseContextualExtractorOptions {
|
|
14
|
+
includeFailures?: boolean;
|
|
15
|
+
toolName?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const contextResolverAgent: import("@deepagents/agent").Agent<{
|
|
18
|
+
question: string;
|
|
19
|
+
}, {
|
|
20
|
+
conversation: string;
|
|
21
|
+
sql: string;
|
|
22
|
+
introspection?: string;
|
|
23
|
+
}, {
|
|
24
|
+
conversation: string;
|
|
25
|
+
sql: string;
|
|
26
|
+
introspection?: string;
|
|
27
|
+
}>;
|
|
28
|
+
export declare function getMessageText(message: UIMessage): string;
|
|
29
|
+
export declare function formatConversation(messages: string[]): string;
|
|
30
|
+
/**
|
|
31
|
+
* Abstract base class for contextual extractors using Template Pattern.
|
|
32
|
+
*
|
|
33
|
+
* The `produce()` method defines the algorithm skeleton:
|
|
34
|
+
* 1. Iterate through messages
|
|
35
|
+
* 2. Call `onUserMessage()` hook for user messages
|
|
36
|
+
* 3. Extract SQL from assistant messages using `getContextSnapshot()` hook
|
|
37
|
+
* 4. Resolve questions using LLM
|
|
38
|
+
*
|
|
39
|
+
* Subclasses implement the hooks to customize context management.
|
|
40
|
+
*/
|
|
41
|
+
export declare abstract class BaseContextualExtractor extends PairProducer {
|
|
42
|
+
protected messages: UIMessage[];
|
|
43
|
+
protected adapter: Adapter;
|
|
44
|
+
protected options: BaseContextualExtractorOptions;
|
|
45
|
+
protected context: string[];
|
|
46
|
+
protected results: SqlWithContext[];
|
|
47
|
+
constructor(messages: UIMessage[], adapter: Adapter, options?: BaseContextualExtractorOptions);
|
|
48
|
+
/**
|
|
49
|
+
* Template method - defines the extraction algorithm skeleton.
|
|
50
|
+
* Subclasses customize behavior via hooks, not by overriding this method.
|
|
51
|
+
*/
|
|
52
|
+
produce(): AsyncGenerator<ExtractedPair[]>;
|
|
53
|
+
/**
|
|
54
|
+
* Core extraction loop - iterates through messages and calls hooks.
|
|
55
|
+
*/
|
|
56
|
+
private extractSqlsWithContext;
|
|
57
|
+
/**
|
|
58
|
+
* Extract SQL from assistant message parts.
|
|
59
|
+
*/
|
|
60
|
+
private extractFromAssistant;
|
|
61
|
+
/**
|
|
62
|
+
* Resolve extracted SQL contexts into standalone questions using LLM.
|
|
63
|
+
*/
|
|
64
|
+
protected resolveQuestions(introspection: string): AsyncGenerator<ExtractedPair[]>;
|
|
65
|
+
/**
|
|
66
|
+
* Hook called when a user message is encountered.
|
|
67
|
+
* Subclasses implement this to decide how to update context.
|
|
68
|
+
*/
|
|
69
|
+
protected abstract onUserMessage(text: string): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Hook called when extracting SQL to get the current context snapshot.
|
|
72
|
+
* Subclasses implement this to decide what context to include.
|
|
73
|
+
*/
|
|
74
|
+
protected abstract getContextSnapshot(): string[];
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=base-contextual-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-contextual-extractor.d.ts","sourceRoot":"","sources":["../../../../src/lib/synthesis/extractors/base-contextual-extractor.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,SAAS,EAIf,MAAM,IAAI,CAAC;AAMZ,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,8BAA8B;IAC7C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AACD,eAAO,MAAM,oBAAoB;cACnB,MAAM;;kBACF,MAAM;SAAO,MAAM;oBAAkB,MAAM;;kBAA3C,MAAM;SAAO,MAAM;oBAAkB,MAAM;EA8C3D,CAAC;AAEH,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAGzD;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAE7D;AAED;;;;;;;;;;GAUG;AACH,8BAAsB,uBAAwB,SAAQ,YAAY;IAK9D,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE;IAC/B,SAAS,CAAC,OAAO,EAAE,OAAO;IAC1B,SAAS,CAAC,OAAO,EAAE,8BAA8B;IANnD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;IACjC,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,CAAM;gBAG7B,QAAQ,EAAE,SAAS,EAAE,EACrB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,8BAAmC;IAKxD;;;OAGG;IACI,OAAO,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC;IAsBjD;;OAEG;YACW,sBAAsB;IAmBpC;;OAEG;YACW,oBAAoB;IAsDlC;;OAEG;cACc,gBAAgB,CAC/B,aAAa,EAAE,MAAM,GACpB,cAAc,CAAC,aAAa,EAAE,CAAC;IA2BlC;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE7D;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,IAAI,MAAM,EAAE;CAClD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { UIMessage } from 'ai';
|
|
2
|
+
import type { Adapter } from '../../adapters/adapter.ts';
|
|
3
|
+
import { BaseContextualExtractor, type BaseContextualExtractorOptions } from './base-contextual-extractor.ts';
|
|
4
|
+
export type FullContextExtractorOptions = BaseContextualExtractorOptions;
|
|
5
|
+
/**
|
|
6
|
+
* Extracts SQL pairs with full conversation context.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const extractor = new FullContextExtractor(messages, adapter);
|
|
11
|
+
* const pairs = await extractor.produce();
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare class FullContextExtractor extends BaseContextualExtractor {
|
|
15
|
+
constructor(messages: UIMessage[], adapter: Adapter, options?: FullContextExtractorOptions);
|
|
16
|
+
/**
|
|
17
|
+
* Add user message to context (keeps all messages).
|
|
18
|
+
*/
|
|
19
|
+
protected onUserMessage(text: string): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Return all context accumulated so far.
|
|
22
|
+
*/
|
|
23
|
+
protected getContextSnapshot(): string[];
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=full-context-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"full-context-extractor.d.ts","sourceRoot":"","sources":["../../../../src/lib/synthesis/extractors/full-context-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEpC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,EACpC,MAAM,gCAAgC,CAAC;AAExC,MAAM,MAAM,2BAA2B,GAAG,8BAA8B,CAAC;AAEzE;;;;;;;;GAQG;AACH,qBAAa,oBAAqB,SAAQ,uBAAuB;gBAE7D,QAAQ,EAAE,SAAS,EAAE,EACrB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,2BAAgC;IAK3C;;OAEG;cACa,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D;;OAEG;IACH,SAAS,CAAC,kBAAkB,IAAI,MAAM,EAAE;CAGzC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './message-extractor.ts';
|
|
2
|
+
export * from './sql-extractor.ts';
|
|
3
|
+
export * from './base-contextual-extractor.ts';
|
|
4
|
+
export * from './full-context-extractor.ts';
|
|
5
|
+
export * from './windowed-context-extractor.ts';
|
|
6
|
+
export * from './segmented-context-extractor.ts';
|
|
7
|
+
export * from './last-query-extractor.ts';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/synthesis/extractors/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { UIMessage } from 'ai';
|
|
2
|
+
import type { Adapter } from '../../adapters/adapter.ts';
|
|
3
|
+
import type { ExtractedPair } from '../types.ts';
|
|
4
|
+
import { BaseContextualExtractor, type BaseContextualExtractorOptions } from './base-contextual-extractor.ts';
|
|
5
|
+
export type LastQueryExtractorOptions = BaseContextualExtractorOptions;
|
|
6
|
+
/**
|
|
7
|
+
* Extracts only the last SQL query with its resolved question.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const extractor = new LastQueryExtractor(messages, adapter);
|
|
12
|
+
* const pairs = await toPairs(extractor); // Returns array with at most 1 pair
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare class LastQueryExtractor extends BaseContextualExtractor {
|
|
16
|
+
constructor(messages: UIMessage[], adapter: Adapter, options?: LastQueryExtractorOptions);
|
|
17
|
+
/**
|
|
18
|
+
* Add user message to context (keeps all messages).
|
|
19
|
+
*/
|
|
20
|
+
protected onUserMessage(text: string): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Return all context accumulated so far.
|
|
23
|
+
*/
|
|
24
|
+
protected getContextSnapshot(): string[];
|
|
25
|
+
/**
|
|
26
|
+
* Override to only resolve the LAST query instead of all queries.
|
|
27
|
+
*/
|
|
28
|
+
protected resolveQuestions(introspection: string): AsyncGenerator<ExtractedPair[]>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=last-query-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"last-query-extractor.d.ts","sourceRoot":"","sources":["../../../../src/lib/synthesis/extractors/last-query-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAIpC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,EAGpC,MAAM,gCAAgC,CAAC;AAExC,MAAM,MAAM,yBAAyB,GAAG,8BAA8B,CAAC;AAEvE;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,SAAQ,uBAAuB;gBAE3D,QAAQ,EAAE,SAAS,EAAE,EACrB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,yBAA8B;IAKzC;;OAEG;cACa,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D;;OAEG;IACH,SAAS,CAAC,kBAAkB,IAAI,MAAM,EAAE;IAIxC;;OAEG;cACuB,gBAAgB,CACxC,aAAa,EAAE,MAAM,GACpB,cAAc,CAAC,aAAa,EAAE,CAAC;CAyBnC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type UIMessage } from 'ai';
|
|
2
|
+
import { type ExtractedPair, PairProducer } from '../types.ts';
|
|
3
|
+
export interface MessageExtractorOptions {
|
|
4
|
+
includeFailures?: boolean;
|
|
5
|
+
toolName?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* MessageExtractor - Extract pairs from chat history by parsing tool calls.
|
|
9
|
+
*
|
|
10
|
+
* Deterministic extraction: parses db_query tool calls and pairs them
|
|
11
|
+
* with the preceding user message.
|
|
12
|
+
*/
|
|
13
|
+
export declare class MessageExtractor extends PairProducer {
|
|
14
|
+
private messages;
|
|
15
|
+
private options;
|
|
16
|
+
/**
|
|
17
|
+
* @param messages - Chat history to extract pairs from
|
|
18
|
+
* @param options - Extraction configuration
|
|
19
|
+
*/
|
|
20
|
+
constructor(messages: UIMessage[], options?: MessageExtractorOptions);
|
|
21
|
+
/**
|
|
22
|
+
* Extracts question-SQL pairs by parsing tool calls and pairing with user messages.
|
|
23
|
+
* @returns Pairs extracted from db_query tool invocations
|
|
24
|
+
*/
|
|
25
|
+
produce(): AsyncGenerator<ExtractedPair[]>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=message-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-extractor.d.ts","sourceRoot":"","sources":["../../../../src/lib/synthesis/extractors/message-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAGf,MAAM,IAAI,CAAC;AAEZ,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM/D,MAAM,WAAW,uBAAuB;IACtC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AACD;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAM9C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,OAAO;IANjB;;;OAGG;gBAEO,QAAQ,EAAE,SAAS,EAAE,EACrB,OAAO,GAAE,uBAA4B;IAK/C;;;OAGG;IACI,OAAO,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC;CAwDlD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { UIMessage } from 'ai';
|
|
2
|
+
import type { Adapter } from '../../adapters/adapter.ts';
|
|
3
|
+
import { BaseContextualExtractor, type BaseContextualExtractorOptions } from './base-contextual-extractor.ts';
|
|
4
|
+
export type SegmentedContextExtractorOptions = BaseContextualExtractorOptions;
|
|
5
|
+
/**
|
|
6
|
+
* Extracts SQL pairs with topic-aware context segmentation.
|
|
7
|
+
*
|
|
8
|
+
* When a topic change is detected:
|
|
9
|
+
* 1. The triggering message is resolved to standalone form using LLM
|
|
10
|
+
* 2. Context is reset
|
|
11
|
+
* 3. The resolved message becomes the start of the new context
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const extractor = new SegmentedContextExtractor(messages, adapter);
|
|
16
|
+
* const pairs = await extractor.produce();
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare class SegmentedContextExtractor extends BaseContextualExtractor {
|
|
20
|
+
constructor(messages: UIMessage[], adapter: Adapter, options?: SegmentedContextExtractorOptions);
|
|
21
|
+
/**
|
|
22
|
+
* Handle user message with topic change detection.
|
|
23
|
+
* If topic changes, resolve the message to standalone form before resetting.
|
|
24
|
+
*
|
|
25
|
+
* Note: We capture context snapshot before async LLM calls to prevent race conditions
|
|
26
|
+
* where context might be modified during the async operation.
|
|
27
|
+
*/
|
|
28
|
+
protected onUserMessage(text: string): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Return all context in current topic segment.
|
|
31
|
+
*/
|
|
32
|
+
protected getContextSnapshot(): string[];
|
|
33
|
+
/**
|
|
34
|
+
* Detect if a new message represents a topic change using LLM.
|
|
35
|
+
* @param newMessage - The new user message to check
|
|
36
|
+
* @param contextSnapshot - Snapshot of context captured before this async call
|
|
37
|
+
*/
|
|
38
|
+
private detectTopicChange;
|
|
39
|
+
/**
|
|
40
|
+
* Resolve a context-dependent message into a standalone question.
|
|
41
|
+
* Called when topic change is detected to preserve the meaning of
|
|
42
|
+
* the triggering message before context is reset.
|
|
43
|
+
* @param text - The user message to resolve
|
|
44
|
+
* @param contextSnapshot - Snapshot of context captured before this async call
|
|
45
|
+
*/
|
|
46
|
+
private resolveToStandalone;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=segmented-context-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segmented-context-extractor.d.ts","sourceRoot":"","sources":["../../../../src/lib/synthesis/extractors/segmented-context-extractor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAMpC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,EAGpC,MAAM,gCAAgC,CAAC;AAExC,MAAM,MAAM,gCAAgC,GAAG,8BAA8B,CAAC;AAyD9E;;;;;;;;;;;;;GAaG;AACH,qBAAa,yBAA0B,SAAQ,uBAAuB;gBAElE,QAAQ,EAAE,SAAS,EAAE,EACrB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,gCAAqC;IAKhD;;;;;;OAMG;cACa,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB1D;;OAEG;IACH,SAAS,CAAC,kBAAkB,IAAI,MAAM,EAAE;IAIxC;;;;OAIG;YACW,iBAAiB;IAgB/B;;;;;;OAMG;YACW,mBAAmB;CAelC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Adapter } from '../../adapters/adapter.ts';
|
|
2
|
+
import { type ExtractedPair, PairProducer } from '../types.ts';
|
|
3
|
+
export interface SqlExtractorOptions {
|
|
4
|
+
validateSql?: boolean;
|
|
5
|
+
skipInvalid?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* SqlExtractor - Generate questions for existing SQL queries.
|
|
9
|
+
*
|
|
10
|
+
* Given a list of SQL queries, uses an LLM to generate the natural
|
|
11
|
+
* language questions they answer.
|
|
12
|
+
*/
|
|
13
|
+
export declare class SqlExtractor extends PairProducer {
|
|
14
|
+
#private;
|
|
15
|
+
/**
|
|
16
|
+
* @param sql - SQL query or queries to generate questions for
|
|
17
|
+
* @param adapter - Database adapter for validation and schema introspection
|
|
18
|
+
* @param options - Extraction configuration
|
|
19
|
+
*/
|
|
20
|
+
constructor(sql: string[] | string, adapter: Adapter, options?: SqlExtractorOptions);
|
|
21
|
+
/**
|
|
22
|
+
* Generates natural language questions for each SQL query using an LLM.
|
|
23
|
+
* @returns Pairs with generated questions and original SQL
|
|
24
|
+
*/
|
|
25
|
+
produce(): AsyncGenerator<ExtractedPair[]>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=sql-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-extractor.d.ts","sourceRoot":"","sources":["../../../../src/lib/synthesis/extractors/sql-extractor.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAgDD;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,YAAY;;IAK5C;;;;OAIG;gBAED,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EACtB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,mBAAwB;IAQnC;;;OAGG;IACI,OAAO,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC;CAiClD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { UIMessage } from 'ai';
|
|
2
|
+
import type { Adapter } from '../../adapters/adapter.ts';
|
|
3
|
+
import { BaseContextualExtractor, type BaseContextualExtractorOptions } from './base-contextual-extractor.ts';
|
|
4
|
+
export interface WindowedContextExtractorOptions extends BaseContextualExtractorOptions {
|
|
5
|
+
windowSize: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Extracts SQL pairs with a sliding window of conversation context.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const extractor = new WindowedContextExtractor(messages, adapter, {
|
|
13
|
+
* windowSize: 5,
|
|
14
|
+
* });
|
|
15
|
+
* const pairs = await extractor.produce();
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare class WindowedContextExtractor extends BaseContextualExtractor {
|
|
19
|
+
private windowSize;
|
|
20
|
+
constructor(messages: UIMessage[], adapter: Adapter, options: WindowedContextExtractorOptions);
|
|
21
|
+
/**
|
|
22
|
+
* Add user message to context (keeps all, windowing happens on snapshot).
|
|
23
|
+
*/
|
|
24
|
+
protected onUserMessage(text: string): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Return only the last N messages based on window size.
|
|
27
|
+
*/
|
|
28
|
+
protected getContextSnapshot(): string[];
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=windowed-context-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"windowed-context-extractor.d.ts","sourceRoot":"","sources":["../../../../src/lib/synthesis/extractors/windowed-context-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEpC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,EACpC,MAAM,gCAAgC,CAAC;AAExC,MAAM,WAAW,+BACf,SAAQ,8BAA8B;IACtC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,wBAAyB,SAAQ,uBAAuB;IACnE,OAAO,CAAC,UAAU,CAAS;gBAGzB,QAAQ,EAAE,SAAS,EAAE,EACrB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,+BAA+B;IAM1C;;OAEG;cACa,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D;;OAEG;IACH,SAAS,CAAC,kBAAkB,IAAI,MAAM,EAAE;CAMzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/synthesis/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC"}
|