@deepagents/text2sql 0.3.1 → 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.
Files changed (143) hide show
  1. package/README.md +167 -0
  2. package/dist/finetune/convert-to-gguf.d.ts +18 -0
  3. package/dist/finetune/convert-to-gguf.d.ts.map +1 -0
  4. package/dist/finetune/run-finetune.d.ts +23 -0
  5. package/dist/finetune/run-finetune.d.ts.map +1 -0
  6. package/dist/finetune/run-mlx.d.ts +22 -0
  7. package/dist/finetune/run-mlx.d.ts.map +1 -0
  8. package/dist/index.d.ts +3 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +1793 -279
  11. package/dist/index.js.map +4 -4
  12. package/dist/lib/adapters/adapter.d.ts +3 -3
  13. package/dist/lib/adapters/adapter.d.ts.map +1 -1
  14. package/dist/lib/adapters/{grounding.ticket.d.ts → groundings/abstract.grounding.d.ts} +2 -2
  15. package/dist/lib/adapters/groundings/abstract.grounding.d.ts.map +1 -0
  16. package/dist/lib/adapters/groundings/column-stats.grounding.d.ts +1 -1
  17. package/dist/lib/adapters/groundings/column-stats.grounding.d.ts.map +1 -1
  18. package/dist/lib/adapters/groundings/column-values.grounding.d.ts +76 -0
  19. package/dist/lib/adapters/groundings/column-values.grounding.d.ts.map +1 -0
  20. package/dist/lib/adapters/groundings/constraint.grounding.d.ts +1 -1
  21. package/dist/lib/adapters/groundings/constraint.grounding.d.ts.map +1 -1
  22. package/dist/lib/adapters/groundings/context.d.ts +1 -1
  23. package/dist/lib/adapters/groundings/context.d.ts.map +1 -1
  24. package/dist/lib/adapters/groundings/{grounding.d.ts → index.d.ts} +8 -5
  25. package/dist/lib/adapters/groundings/index.d.ts.map +1 -0
  26. package/dist/lib/adapters/groundings/{grounding.js → index.js} +411 -206
  27. package/dist/lib/adapters/groundings/index.js.map +7 -0
  28. package/dist/lib/adapters/groundings/indexes.grounding.d.ts +1 -1
  29. package/dist/lib/adapters/groundings/indexes.grounding.d.ts.map +1 -1
  30. package/dist/lib/adapters/groundings/info.grounding.d.ts +1 -1
  31. package/dist/lib/adapters/groundings/info.grounding.d.ts.map +1 -1
  32. package/dist/lib/adapters/groundings/report.grounding.d.ts +1 -1
  33. package/dist/lib/adapters/groundings/report.grounding.d.ts.map +1 -1
  34. package/dist/lib/adapters/groundings/row-count.grounding.d.ts +1 -1
  35. package/dist/lib/adapters/groundings/row-count.grounding.d.ts.map +1 -1
  36. package/dist/lib/adapters/groundings/table.grounding.d.ts +1 -1
  37. package/dist/lib/adapters/groundings/table.grounding.d.ts.map +1 -1
  38. package/dist/lib/adapters/groundings/view.grounding.d.ts +1 -1
  39. package/dist/lib/adapters/groundings/view.grounding.d.ts.map +1 -1
  40. package/dist/lib/adapters/postgres/column-stats.postgres.grounding.d.ts.map +1 -1
  41. package/dist/lib/adapters/postgres/column-values.postgres.grounding.d.ts +17 -0
  42. package/dist/lib/adapters/postgres/column-values.postgres.grounding.d.ts.map +1 -0
  43. package/dist/lib/adapters/postgres/index.d.ts +4 -4
  44. package/dist/lib/adapters/postgres/index.d.ts.map +1 -1
  45. package/dist/lib/adapters/postgres/index.js +233 -33
  46. package/dist/lib/adapters/postgres/index.js.map +4 -4
  47. package/dist/lib/adapters/sqlite/column-values.sqlite.grounding.d.ts +17 -0
  48. package/dist/lib/adapters/sqlite/column-values.sqlite.grounding.d.ts.map +1 -0
  49. package/dist/lib/adapters/sqlite/constraint.sqlite.grounding.d.ts.map +1 -1
  50. package/dist/lib/adapters/sqlite/index.d.ts +4 -4
  51. package/dist/lib/adapters/sqlite/index.d.ts.map +1 -1
  52. package/dist/lib/adapters/sqlite/index.js +214 -46
  53. package/dist/lib/adapters/sqlite/index.js.map +4 -4
  54. package/dist/lib/adapters/sqlserver/column-values.sqlserver.grounding.d.ts +17 -0
  55. package/dist/lib/adapters/sqlserver/column-values.sqlserver.grounding.d.ts.map +1 -0
  56. package/dist/lib/adapters/sqlserver/index.d.ts +4 -4
  57. package/dist/lib/adapters/sqlserver/index.d.ts.map +1 -1
  58. package/dist/lib/adapters/sqlserver/index.js +179 -32
  59. package/dist/lib/adapters/sqlserver/index.js.map +4 -4
  60. package/dist/lib/agents/chat1.agent.d.ts +50 -0
  61. package/dist/lib/agents/chat1.agent.d.ts.map +1 -0
  62. package/dist/lib/agents/chat2.agent.d.ts +68 -0
  63. package/dist/lib/agents/chat2.agent.d.ts.map +1 -0
  64. package/dist/lib/agents/chat3.agent.d.ts +80 -0
  65. package/dist/lib/agents/chat3.agent.d.ts.map +1 -0
  66. package/dist/lib/agents/chat4.agent.d.ts +88 -0
  67. package/dist/lib/agents/chat4.agent.d.ts.map +1 -0
  68. package/dist/lib/agents/question.agent.d.ts +23 -0
  69. package/dist/lib/agents/question.agent.d.ts.map +1 -0
  70. package/dist/lib/agents/sql.agent.d.ts +62 -0
  71. package/dist/lib/agents/sql.agent.d.ts.map +1 -0
  72. package/dist/lib/agents/teachables.agent.d.ts +8 -9
  73. package/dist/lib/agents/teachables.agent.d.ts.map +1 -1
  74. package/dist/lib/agents/text2sql.agent.d.ts +0 -1
  75. package/dist/lib/agents/text2sql.agent.d.ts.map +1 -1
  76. package/dist/lib/checkpoint.d.ts +99 -0
  77. package/dist/lib/checkpoint.d.ts.map +1 -0
  78. package/dist/lib/instructions.js +50 -21
  79. package/dist/lib/instructions.js.map +2 -2
  80. package/dist/lib/sql.d.ts +83 -3
  81. package/dist/lib/sql.d.ts.map +1 -1
  82. package/dist/lib/syntheize.d.ts +2 -0
  83. package/dist/lib/syntheize.d.ts.map +1 -0
  84. package/dist/lib/synthesis/decorators/deduplicated-producer.d.ts +26 -0
  85. package/dist/lib/synthesis/decorators/deduplicated-producer.d.ts.map +1 -0
  86. package/dist/lib/synthesis/decorators/filtered-producer.d.ts +26 -0
  87. package/dist/lib/synthesis/decorators/filtered-producer.d.ts.map +1 -0
  88. package/dist/lib/synthesis/decorators/index.d.ts +7 -0
  89. package/dist/lib/synthesis/decorators/index.d.ts.map +1 -0
  90. package/dist/lib/synthesis/decorators/validated-producer.d.ts +33 -0
  91. package/dist/lib/synthesis/decorators/validated-producer.d.ts.map +1 -0
  92. package/dist/lib/synthesis/extractors/base-contextual-extractor.d.ts +76 -0
  93. package/dist/lib/synthesis/extractors/base-contextual-extractor.d.ts.map +1 -0
  94. package/dist/lib/synthesis/extractors/full-context-extractor.d.ts +25 -0
  95. package/dist/lib/synthesis/extractors/full-context-extractor.d.ts.map +1 -0
  96. package/dist/lib/synthesis/extractors/index.d.ts +8 -0
  97. package/dist/lib/synthesis/extractors/index.d.ts.map +1 -0
  98. package/dist/lib/synthesis/extractors/last-query-extractor.d.ts +30 -0
  99. package/dist/lib/synthesis/extractors/last-query-extractor.d.ts.map +1 -0
  100. package/dist/lib/synthesis/extractors/message-extractor.d.ts +27 -0
  101. package/dist/lib/synthesis/extractors/message-extractor.d.ts.map +1 -0
  102. package/dist/lib/synthesis/extractors/segmented-context-extractor.d.ts +48 -0
  103. package/dist/lib/synthesis/extractors/segmented-context-extractor.d.ts.map +1 -0
  104. package/dist/lib/synthesis/extractors/sql-extractor.d.ts +27 -0
  105. package/dist/lib/synthesis/extractors/sql-extractor.d.ts.map +1 -0
  106. package/dist/lib/synthesis/extractors/windowed-context-extractor.d.ts +30 -0
  107. package/dist/lib/synthesis/extractors/windowed-context-extractor.d.ts.map +1 -0
  108. package/dist/lib/synthesis/index.d.ts +6 -0
  109. package/dist/lib/synthesis/index.d.ts.map +1 -0
  110. package/dist/lib/synthesis/index.js +2069 -0
  111. package/dist/lib/synthesis/index.js.map +7 -0
  112. package/dist/lib/synthesis/synthesizers/breadth-evolver.d.ts +34 -0
  113. package/dist/lib/synthesis/synthesizers/breadth-evolver.d.ts.map +1 -0
  114. package/dist/lib/synthesis/synthesizers/depth-evolver.d.ts +41 -0
  115. package/dist/lib/synthesis/synthesizers/depth-evolver.d.ts.map +1 -0
  116. package/dist/lib/synthesis/synthesizers/index.d.ts +7 -0
  117. package/dist/lib/synthesis/synthesizers/index.d.ts.map +1 -0
  118. package/dist/lib/synthesis/synthesizers/persona-generator.d.ts +34 -0
  119. package/dist/lib/synthesis/synthesizers/persona-generator.d.ts.map +1 -0
  120. package/dist/lib/synthesis/synthesizers/schema-synthesizer.d.ts +39 -0
  121. package/dist/lib/synthesis/synthesizers/schema-synthesizer.d.ts.map +1 -0
  122. package/dist/lib/synthesis/synthesizers/styles.d.ts +8 -0
  123. package/dist/lib/synthesis/synthesizers/styles.d.ts.map +1 -0
  124. package/dist/lib/synthesis/synthesizers/teachings-generator.d.ts +32 -0
  125. package/dist/lib/synthesis/synthesizers/teachings-generator.d.ts.map +1 -0
  126. package/dist/lib/synthesis/types.d.ts +26 -0
  127. package/dist/lib/synthesis/types.d.ts.map +1 -0
  128. package/dist/lib/teach/teachables.d.ts +18 -3
  129. package/dist/lib/teach/teachables.d.ts.map +1 -1
  130. package/dist/lib/teach/teachings.d.ts +9 -2
  131. package/dist/lib/teach/teachings.d.ts.map +1 -1
  132. package/package.json +32 -15
  133. package/dist/lib/adapters/grounding.ticket.d.ts.map +0 -1
  134. package/dist/lib/adapters/groundings/grounding.d.ts.map +0 -1
  135. package/dist/lib/adapters/groundings/grounding.js.map +0 -7
  136. package/dist/lib/adapters/groundings/low-cardinality.grounding.d.ts +0 -35
  137. package/dist/lib/adapters/groundings/low-cardinality.grounding.d.ts.map +0 -1
  138. package/dist/lib/adapters/postgres/low-cardinality.postgres.grounding.d.ts +0 -14
  139. package/dist/lib/adapters/postgres/low-cardinality.postgres.grounding.d.ts.map +0 -1
  140. package/dist/lib/adapters/sqlite/low-cardinality.sqlite.grounding.d.ts +0 -14
  141. package/dist/lib/adapters/sqlite/low-cardinality.sqlite.grounding.d.ts.map +0 -1
  142. package/dist/lib/adapters/sqlserver/low-cardinality.sqlserver.grounding.d.ts +0 -14
  143. 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,6 @@
1
+ export * from './decorators/index.ts';
2
+ export * from './extractors/index.ts';
3
+ export * from './synthesizers/index.ts';
4
+ export * from './types.ts';
5
+ export { type QuestionComplexity } from '../agents/question.agent.ts';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -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"}