@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.
Files changed (149) 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 +1795 -284
  11. package/dist/index.js.map +4 -4
  12. package/dist/lib/adapters/adapter.d.ts +8 -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 +239 -33
  46. package/dist/lib/adapters/postgres/index.js.map +4 -4
  47. package/dist/lib/adapters/postgres/postgres.d.ts +1 -0
  48. package/dist/lib/adapters/postgres/postgres.d.ts.map +1 -1
  49. package/dist/lib/adapters/sqlite/column-values.sqlite.grounding.d.ts +17 -0
  50. package/dist/lib/adapters/sqlite/column-values.sqlite.grounding.d.ts.map +1 -0
  51. package/dist/lib/adapters/sqlite/constraint.sqlite.grounding.d.ts.map +1 -1
  52. package/dist/lib/adapters/sqlite/index.d.ts +4 -4
  53. package/dist/lib/adapters/sqlite/index.d.ts.map +1 -1
  54. package/dist/lib/adapters/sqlite/index.js +218 -46
  55. package/dist/lib/adapters/sqlite/index.js.map +4 -4
  56. package/dist/lib/adapters/sqlite/sqlite.d.ts +1 -0
  57. package/dist/lib/adapters/sqlite/sqlite.d.ts.map +1 -1
  58. package/dist/lib/adapters/sqlserver/column-values.sqlserver.grounding.d.ts +17 -0
  59. package/dist/lib/adapters/sqlserver/column-values.sqlserver.grounding.d.ts.map +1 -0
  60. package/dist/lib/adapters/sqlserver/index.d.ts +4 -4
  61. package/dist/lib/adapters/sqlserver/index.d.ts.map +1 -1
  62. package/dist/lib/adapters/sqlserver/index.js +185 -32
  63. package/dist/lib/adapters/sqlserver/index.js.map +4 -4
  64. package/dist/lib/adapters/sqlserver/sqlserver.d.ts +1 -0
  65. package/dist/lib/adapters/sqlserver/sqlserver.d.ts.map +1 -1
  66. package/dist/lib/agents/chat1.agent.d.ts +50 -0
  67. package/dist/lib/agents/chat1.agent.d.ts.map +1 -0
  68. package/dist/lib/agents/chat2.agent.d.ts +68 -0
  69. package/dist/lib/agents/chat2.agent.d.ts.map +1 -0
  70. package/dist/lib/agents/chat3.agent.d.ts +80 -0
  71. package/dist/lib/agents/chat3.agent.d.ts.map +1 -0
  72. package/dist/lib/agents/chat4.agent.d.ts +88 -0
  73. package/dist/lib/agents/chat4.agent.d.ts.map +1 -0
  74. package/dist/lib/agents/question.agent.d.ts +23 -0
  75. package/dist/lib/agents/question.agent.d.ts.map +1 -0
  76. package/dist/lib/agents/sql.agent.d.ts +62 -0
  77. package/dist/lib/agents/sql.agent.d.ts.map +1 -0
  78. package/dist/lib/agents/teachables.agent.d.ts +8 -9
  79. package/dist/lib/agents/teachables.agent.d.ts.map +1 -1
  80. package/dist/lib/agents/text2sql.agent.d.ts +0 -1
  81. package/dist/lib/agents/text2sql.agent.d.ts.map +1 -1
  82. package/dist/lib/checkpoint.d.ts +99 -0
  83. package/dist/lib/checkpoint.d.ts.map +1 -0
  84. package/dist/lib/instructions.js +50 -21
  85. package/dist/lib/instructions.js.map +2 -2
  86. package/dist/lib/sql.d.ts +83 -3
  87. package/dist/lib/sql.d.ts.map +1 -1
  88. package/dist/lib/syntheize.d.ts +2 -0
  89. package/dist/lib/syntheize.d.ts.map +1 -0
  90. package/dist/lib/synthesis/decorators/deduplicated-producer.d.ts +26 -0
  91. package/dist/lib/synthesis/decorators/deduplicated-producer.d.ts.map +1 -0
  92. package/dist/lib/synthesis/decorators/filtered-producer.d.ts +26 -0
  93. package/dist/lib/synthesis/decorators/filtered-producer.d.ts.map +1 -0
  94. package/dist/lib/synthesis/decorators/index.d.ts +7 -0
  95. package/dist/lib/synthesis/decorators/index.d.ts.map +1 -0
  96. package/dist/lib/synthesis/decorators/validated-producer.d.ts +33 -0
  97. package/dist/lib/synthesis/decorators/validated-producer.d.ts.map +1 -0
  98. package/dist/lib/synthesis/extractors/base-contextual-extractor.d.ts +76 -0
  99. package/dist/lib/synthesis/extractors/base-contextual-extractor.d.ts.map +1 -0
  100. package/dist/lib/synthesis/extractors/full-context-extractor.d.ts +25 -0
  101. package/dist/lib/synthesis/extractors/full-context-extractor.d.ts.map +1 -0
  102. package/dist/lib/synthesis/extractors/index.d.ts +8 -0
  103. package/dist/lib/synthesis/extractors/index.d.ts.map +1 -0
  104. package/dist/lib/synthesis/extractors/last-query-extractor.d.ts +30 -0
  105. package/dist/lib/synthesis/extractors/last-query-extractor.d.ts.map +1 -0
  106. package/dist/lib/synthesis/extractors/message-extractor.d.ts +27 -0
  107. package/dist/lib/synthesis/extractors/message-extractor.d.ts.map +1 -0
  108. package/dist/lib/synthesis/extractors/segmented-context-extractor.d.ts +48 -0
  109. package/dist/lib/synthesis/extractors/segmented-context-extractor.d.ts.map +1 -0
  110. package/dist/lib/synthesis/extractors/sql-extractor.d.ts +27 -0
  111. package/dist/lib/synthesis/extractors/sql-extractor.d.ts.map +1 -0
  112. package/dist/lib/synthesis/extractors/windowed-context-extractor.d.ts +30 -0
  113. package/dist/lib/synthesis/extractors/windowed-context-extractor.d.ts.map +1 -0
  114. package/dist/lib/synthesis/index.d.ts +6 -0
  115. package/dist/lib/synthesis/index.d.ts.map +1 -0
  116. package/dist/lib/synthesis/index.js +2069 -0
  117. package/dist/lib/synthesis/index.js.map +7 -0
  118. package/dist/lib/synthesis/synthesizers/breadth-evolver.d.ts +34 -0
  119. package/dist/lib/synthesis/synthesizers/breadth-evolver.d.ts.map +1 -0
  120. package/dist/lib/synthesis/synthesizers/depth-evolver.d.ts +41 -0
  121. package/dist/lib/synthesis/synthesizers/depth-evolver.d.ts.map +1 -0
  122. package/dist/lib/synthesis/synthesizers/index.d.ts +7 -0
  123. package/dist/lib/synthesis/synthesizers/index.d.ts.map +1 -0
  124. package/dist/lib/synthesis/synthesizers/persona-generator.d.ts +34 -0
  125. package/dist/lib/synthesis/synthesizers/persona-generator.d.ts.map +1 -0
  126. package/dist/lib/synthesis/synthesizers/schema-synthesizer.d.ts +39 -0
  127. package/dist/lib/synthesis/synthesizers/schema-synthesizer.d.ts.map +1 -0
  128. package/dist/lib/synthesis/synthesizers/styles.d.ts +8 -0
  129. package/dist/lib/synthesis/synthesizers/styles.d.ts.map +1 -0
  130. package/dist/lib/synthesis/synthesizers/teachings-generator.d.ts +32 -0
  131. package/dist/lib/synthesis/synthesizers/teachings-generator.d.ts.map +1 -0
  132. package/dist/lib/synthesis/types.d.ts +26 -0
  133. package/dist/lib/synthesis/types.d.ts.map +1 -0
  134. package/dist/lib/teach/teachables.d.ts +18 -3
  135. package/dist/lib/teach/teachables.d.ts.map +1 -1
  136. package/dist/lib/teach/teachings.d.ts +9 -2
  137. package/dist/lib/teach/teachings.d.ts.map +1 -1
  138. package/package.json +32 -15
  139. package/dist/lib/adapters/grounding.ticket.d.ts.map +0 -1
  140. package/dist/lib/adapters/groundings/grounding.d.ts.map +0 -1
  141. package/dist/lib/adapters/groundings/grounding.js.map +0 -7
  142. package/dist/lib/adapters/groundings/low-cardinality.grounding.d.ts +0 -35
  143. package/dist/lib/adapters/groundings/low-cardinality.grounding.d.ts.map +0 -1
  144. package/dist/lib/adapters/postgres/low-cardinality.postgres.grounding.d.ts +0 -14
  145. package/dist/lib/adapters/postgres/low-cardinality.postgres.grounding.d.ts.map +0 -1
  146. package/dist/lib/adapters/sqlite/low-cardinality.sqlite.grounding.d.ts +0 -14
  147. package/dist/lib/adapters/sqlite/low-cardinality.sqlite.grounding.d.ts.map +0 -1
  148. package/dist/lib/adapters/sqlserver/low-cardinality.sqlserver.grounding.d.ts +0 -14
  149. package/dist/lib/adapters/sqlserver/low-cardinality.sqlserver.grounding.d.ts.map +0 -1
@@ -0,0 +1,32 @@
1
+ import type { AgentModel } from '@deepagents/agent';
2
+ import type { Adapter } from '../../adapters/adapter.ts';
3
+ import type { Teachables } from '../../teach/teachables.ts';
4
+ export interface TeachingsGeneratorOptions {
5
+ context?: string;
6
+ model?: AgentModel;
7
+ }
8
+ /**
9
+ * TeachingsGenerator - Generate domain-specific teachings from database schema.
10
+ *
11
+ * Analyzes the schema to generate teachings that improve SQL generation accuracy.
12
+ * Teachings include domain vocabulary, SQL patterns, guardrails, and examples
13
+ * that help the SQL generator understand the domain and produce semantically
14
+ * correct queries.
15
+ */
16
+ export declare class TeachingsGenerator {
17
+ private adapter;
18
+ private options?;
19
+ /**
20
+ * @param adapter - Database adapter for schema introspection
21
+ * @param options - Generation options including context and model
22
+ */
23
+ constructor(adapter: Adapter, options?: TeachingsGeneratorOptions | undefined);
24
+ /**
25
+ * Generates domain-specific teachings by analyzing the database schema.
26
+ * Retries on transient generation errors up to maxRetries attempts.
27
+ * @param maxRetries - Maximum retry attempts for transient failures
28
+ * @returns Array of teachings including vocabulary, patterns, and guardrails
29
+ */
30
+ generate(maxRetries?: number): Promise<Teachables[]>;
31
+ }
32
+ //# sourceMappingURL=teachings-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teachings-generator.d.ts","sourceRoot":"","sources":["../../../../src/lib/synthesis/synthesizers/teachings-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AACD;;;;;;;GAOG;AACH,qBAAa,kBAAkB;IAM3B,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO,CAAC;IANlB;;;OAGG;gBAEO,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,yBAAyB,YAAA;IAG7C;;;;;OAKG;IACG,QAAQ,CAAC,UAAU,SAAI,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CA4BtD"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * A question/SQL pair extracted or synthesized for training data.
3
+ */
4
+ export interface ExtractedPair {
5
+ question: string;
6
+ sql: string;
7
+ context?: string[];
8
+ success: boolean;
9
+ }
10
+ /**
11
+ * Interface for all pair producers (extractors and synthesizers).
12
+ * Implementations encapsulate their specific inputs and logic.
13
+ */
14
+ export declare abstract class PairProducer<T extends ExtractedPair = ExtractedPair> {
15
+ /**
16
+ * Produce question/SQL pairs.
17
+ */
18
+ abstract produce(): AsyncGenerator<T[], void, unknown>;
19
+ protected from(producer: PairProducer<ExtractedPair> | ExtractedPair[]): AsyncGenerator<ExtractedPair[], void, unknown>;
20
+ toPairs(): Promise<T[]>;
21
+ }
22
+ /**
23
+ * Entry point for producing pairs from any source.
24
+ */
25
+ export declare function toPairs<T extends ExtractedPair>(producer: PairProducer<T>): Promise<T[]>;
26
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/synthesis/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,8BAAsB,YAAY,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa;IACxE;;OAEG;IACH,QAAQ,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC;IAEtD,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,aAAa,CAAC,GAAG,aAAa,EAAE;IAQ/D,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;CAG/B;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,CAAC,SAAS,aAAa,EACnD,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,CAAC,EAAE,CAAC,CAMd"}
@@ -1,6 +1,9 @@
1
1
  export interface Teachables {
2
- type: 'term' | 'hint' | 'guardrail' | 'explain' | 'example' | 'clarification' | 'workflow' | 'quirk' | 'styleGuide' | 'analogy' | 'glossary' | 'user_profile' | 'identity' | 'persona' | 'alias' | 'preference' | 'context' | 'correction';
3
- format: () => string;
2
+ type: GeneratedTeachable['type'] | 'user_profile';
3
+ /** Serialize to GeneratedTeachable for storage */
4
+ encode: () => GeneratedTeachable;
5
+ /** Render to XML string for prompts */
6
+ decode: () => string;
4
7
  }
5
8
  export type GeneratedTeachable = {
6
9
  type: 'term';
@@ -541,7 +544,7 @@ export declare function identity(input: {
541
544
  export declare function persona(input: {
542
545
  name: string;
543
546
  role: string;
544
- tone: string;
547
+ tone?: string;
545
548
  }): Teachables;
546
549
  /**
547
550
  * Define user-specific term meanings and vocabulary.
@@ -610,6 +613,18 @@ export declare function correction(subject: string, clarification: string): Teac
610
613
  export declare function teachable(tag: string, ...teachables: Teachables[]): Teachables;
611
614
  export declare function toInstructions(tag: string, ...teachables: Teachables[]): string;
612
615
  export declare function toTeachables(generated: GeneratedTeachable[]): Teachables[];
616
+ /**
617
+ * Convert Teachables back to GeneratedTeachable format for storage.
618
+ *
619
+ * @param teachables - Array of Teachables to convert
620
+ * @returns Array of GeneratedTeachable objects suitable for storage
621
+ *
622
+ * @example
623
+ * const teachings = [term('NPL', 'non-performing loan'), hint('Always filter by status')];
624
+ * const forStorage = fromTeachables(teachings);
625
+ * // [{ type: 'term', name: 'NPL', definition: 'non-performing loan' }, { type: 'hint', text: 'Always filter by status' }]
626
+ */
627
+ export declare function fromTeachables(teachables: Teachables[]): GeneratedTeachable[];
613
628
  /**
614
629
  * Default export containing all system teachable factory functions.
615
630
  * Excludes user-specific teachables (identity, alias, preference, context, correction).
@@ -1 +1 @@
1
- {"version":3,"file":"teachables.d.ts","sourceRoot":"","sources":["../../../src/lib/teach/teachables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"teachables.d.ts","sourceRoot":"","sources":["../../../src/lib/teach/teachables.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,11 @@
1
1
  import { type Teachables } from './teachables.ts';
2
- declare const _default: Teachables[];
3
- export default _default;
2
+ export interface TeachingsOptions {
3
+ /**
4
+ * Controls date/time clarification behavior:
5
+ * - 'strict': Ask for clarification when date range is missing (production default)
6
+ * - false: Skip date clarifications, assume all matching data (useful for evals/benchmarks)
7
+ */
8
+ date?: 'strict' | false;
9
+ }
10
+ export declare function guidelines(options?: TeachingsOptions): Teachables[];
4
11
  //# sourceMappingURL=teachings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"teachings.d.ts","sourceRoot":"","sources":["../../../src/lib/teach/teachings.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EAMhB,MAAM,iBAAiB,CAAC;wBAiFpB,UAAU,EAAE;AA/EjB,wBA+EkB"}
1
+ {"version":3,"file":"teachings.d.ts","sourceRoot":"","sources":["../../../src/lib/teach/teachings.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EAMhB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;CACzB;AAED,wBAAgB,UAAU,CAAC,OAAO,GAAE,gBAAqB,GAAG,UAAU,EAAE,CAwJvE"}
package/package.json CHANGED
@@ -1,11 +1,17 @@
1
1
  {
2
2
  "name": "@deepagents/text2sql",
3
- "version": "0.3.0",
4
- "type": "module",
5
- "scripts": {
6
- "eval": "evalite",
7
- "eval:dev": "evalite watch"
3
+ "version": "0.6.0",
4
+ "license": "MIT",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/JanuaryLabs/deepagents",
8
+ "directory": "packages/text2sql"
9
+ },
10
+ "bugs": {
11
+ "url": "https://github.com/JanuaryLabs/deepagents/issues"
8
12
  },
13
+ "homepage": "https://github.com/JanuaryLabs/deepagents#readme",
14
+ "type": "module",
9
15
  "main": "./dist/index.js",
10
16
  "module": "./dist/index.js",
11
17
  "types": "./dist/index.d.ts",
@@ -24,10 +30,10 @@
24
30
  "default": "./dist/lib/instructions.js"
25
31
  },
26
32
  "./grounding": {
27
- "development": "./src/lib/adapters/groundings/grounding.ts",
28
- "types": "./dist/lib/adapters/groundings/grounding.d.ts",
29
- "import": "./dist/lib/adapters/groundings/grounding.js",
30
- "default": "./dist/lib/adapters/groundings/grounding.js"
33
+ "development": "./src/lib/adapters/groundings/index.ts",
34
+ "types": "./dist/lib/adapters/groundings/index.d.ts",
35
+ "import": "./dist/lib/adapters/groundings/index.js",
36
+ "default": "./dist/lib/adapters/groundings/index.js"
31
37
  },
32
38
  "./sqlite": {
33
39
  "development": "./src/lib/adapters/sqlite/index.ts",
@@ -46,6 +52,12 @@
46
52
  "types": "./dist/lib/adapters/sqlserver/index.d.ts",
47
53
  "import": "./dist/lib/adapters/sqlserver/index.js",
48
54
  "default": "./dist/lib/adapters/sqlserver/index.js"
55
+ },
56
+ "./synthesis": {
57
+ "development": "./src/lib/synthesis/index.ts",
58
+ "types": "./dist/lib/synthesis/index.d.ts",
59
+ "import": "./dist/lib/synthesis/index.js",
60
+ "default": "./dist/lib/synthesis/index.js"
49
61
  }
50
62
  },
51
63
  "files": [
@@ -58,15 +70,20 @@
58
70
  },
59
71
  "dependencies": {
60
72
  "@ai-sdk/groq": "2.0.26",
61
- "@deepagents/agent": "0.3.0",
73
+ "@deepagents/agent": "0.6.0",
74
+ "@deepagents/toolbox": "0.6.0",
62
75
  "ai": "^5.0.102",
63
76
  "autoevals": "^0.0.131",
64
77
  "dedent": "1.7.0",
65
- "zod": "^3.25.76 || ^4.0.0",
66
- "evalite": "beta",
67
- "@deepagents/toolbox": "0.3.0",
68
- "pluralize": "^8.0.0",
78
+ "evalite": "^0.19.0",
69
79
  "openai": "5.12.2",
70
- "uuid": "^13.0.0"
80
+ "p-limit": "^6.2.0",
81
+ "pluralize": "^8.0.0",
82
+ "uuid": "^13.0.0",
83
+ "zod": "^3.25.76 || ^4.0.0",
84
+ "chalk": "^5.6.0",
85
+ "@ai-sdk/openai": "2.0.76",
86
+ "nano-spawn": "^1.0.3",
87
+ "p-retry": "^7.1.1"
71
88
  }
72
89
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"grounding.ticket.d.ts","sourceRoot":"","sources":["../../../src/lib/adapters/grounding.ticket.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;AAE1E,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AACD,MAAM,MAAM,mBAAmB,GAC3B,WAAW,GACX,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,CAAC;AAE/C,8BAAsB,iBAAiB;IACrC,GAAG,EAAE,MAAM,CAAC;gBACA,GAAG,EAAE,MAAM;IAIvB,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC;CACtE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"grounding.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/groundings/grounding.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/lib/adapters/groundings/context.ts", "../../../../src/lib/adapters/groundings/table.grounding.ts", "../../../../src/lib/adapters/grounding.ticket.ts", "../../../../src/lib/adapters/groundings/column-stats.grounding.ts", "../../../../src/lib/adapters/groundings/low-cardinality.grounding.ts", "../../../../src/lib/adapters/groundings/info.grounding.ts", "../../../../src/lib/adapters/groundings/view.grounding.ts", "../../../../src/lib/adapters/groundings/report.grounding.ts"],
4
- "sourcesContent": ["import type { AdapterInfo, ColumnStats, Relationship, Table } from '../adapter.ts';\nimport type { View } from './view.grounding.ts';\n\n/**\n * Column type for grounding operations.\n * Common interface between Table.columns and View.columns.\n */\nexport interface Column {\n name: string;\n type: string;\n kind?: 'LowCardinality';\n values?: string[];\n stats?: ColumnStats;\n}\n\n/**\n * Entity with columns (Table or View).\n */\nexport interface ColumnContainer {\n name: string;\n columns: Column[];\n}\n\n/**\n * Shared context object passed to all groundings.\n * Groundings read from and write to this context.\n */\nexport interface GroundingContext {\n /** Tables discovered by TableGrounding */\n tables: Table[];\n\n /** Views discovered by ViewGrounding */\n views: View[];\n\n /** Relationships discovered by TableGrounding */\n relationships: Relationship[];\n\n /** Database info collected by InfoGrounding */\n info?: AdapterInfo;\n\n /** Business context report generated by ReportGrounding */\n report?: string;\n}\n\n/**\n * Create a new empty grounding context.\n */\nexport function createGroundingContext(): GroundingContext {\n return {\n tables: [],\n views: [],\n relationships: [],\n info: undefined,\n };\n}\n", "import pluralize from 'pluralize';\n\nimport type { Filter, Relationship, Table } from '../adapter.ts';\nimport { AbstractGrounding } from '../grounding.ticket.ts';\nimport type { GroundingContext } from './context.ts';\n\n/**\n * Configuration for TableGrounding.\n */\nexport interface TableGroundingConfig {\n /** Filter to select seed tables */\n filter?: Filter;\n /**\n * Traverse forward (child\uFFFDparent) following FK direction.\n * - true: unlimited depth\n * - number: maximum depth\n * - false/undefined: no forward traversal\n */\n forward?: boolean | number;\n /**\n * Traverse backward (parent\uFFFDchild) finding tables that reference us.\n * - true: unlimited depth\n * - number: maximum depth\n * - false/undefined: no backward traversal\n */\n backward?: boolean | number;\n}\n\n/**\n * Abstract base class for table grounding.\n *\n * The `execute()` method implements a BFS traversal algorithm that discovers\n * tables and relationships. Subclasses implement the database-specific hooks:\n * - `getAllTableNames()` - list all tables\n * - `getTable()` - get table metadata\n * - `findOutgoingRelations()` - find FKs FROM a table\n * - `findIncomingRelations()` - find FKs TO a table\n */\nexport abstract class TableGrounding extends AbstractGrounding {\n #filter?: Filter;\n #forward?: boolean | number;\n #backward?: boolean | number;\n\n constructor(config: TableGroundingConfig = {}) {\n super('tables');\n this.#filter = config.filter;\n this.#forward = config.forward;\n this.#backward = config.backward;\n }\n\n /** Get all table names in the database */\n protected abstract getAllTableNames(): Promise<string[]>;\n\n /** Get full table metadata for a single table */\n protected abstract getTable(tableName: string): Promise<Table>;\n\n /** Find FKs FROM this table (outgoing relationships) */\n protected abstract findOutgoingRelations(\n tableName: string,\n ): Promise<Relationship[]>;\n\n /** Find FKs TO this table (incoming relationships) */\n protected abstract findIncomingRelations(\n tableName: string,\n ): Promise<Relationship[]>;\n\n /**\n * Execute the grounding process.\n * Writes discovered tables and relationships to the context.\n */\n async execute(ctx: GroundingContext) {\n const seedTables = await this.applyFilter();\n const forward = this.#forward;\n const backward = this.#backward;\n\n // No traversal at all - just add the seed tables\n if (!forward && !backward) {\n const tables = await Promise.all(\n seedTables.map((name) => this.getTable(name)),\n );\n ctx.tables.push(...tables);\n return () => this.#describeTables(tables);\n }\n\n const tables: Record<string, Table> = {};\n const allRelationships: Relationship[] = [];\n const seenRelationships = new Set<string>();\n\n // Track depth separately for forward/backward using BFS\n const forwardQueue: Array<{ name: string; depth: number }> = [];\n const backwardQueue: Array<{ name: string; depth: number }> = [];\n const forwardVisited = new Set<string>();\n const backwardVisited = new Set<string>();\n\n // Initialize queues with seed tables at depth 0\n for (const name of seedTables) {\n if (forward) forwardQueue.push({ name, depth: 0 });\n if (backward) backwardQueue.push({ name, depth: 0 });\n }\n\n // Process forward (child\u2192parent)\n const forwardLimit = forward === true ? Infinity : forward || 0;\n while (forwardQueue.length > 0) {\n const item = forwardQueue.shift();\n if (!item) break;\n const { name, depth } = item;\n\n if (forwardVisited.has(name)) continue;\n forwardVisited.add(name);\n\n if (!tables[name]) {\n tables[name] = await this.getTable(name);\n }\n\n if (depth < forwardLimit) {\n const rels = await this.findOutgoingRelations(name);\n for (const rel of rels) {\n this.addRelationship(rel, allRelationships, seenRelationships);\n if (!forwardVisited.has(rel.referenced_table)) {\n forwardQueue.push({ name: rel.referenced_table, depth: depth + 1 });\n }\n }\n }\n }\n\n // Process backward (parent\u2192child)\n const backwardLimit = backward === true ? Infinity : backward || 0;\n while (backwardQueue.length > 0) {\n const item = backwardQueue.shift();\n if (!item) break;\n const { name, depth } = item;\n\n if (backwardVisited.has(name)) continue;\n backwardVisited.add(name);\n\n if (!tables[name]) {\n tables[name] = await this.getTable(name);\n }\n\n if (depth < backwardLimit) {\n const rels = await this.findIncomingRelations(name);\n for (const rel of rels) {\n this.addRelationship(rel, allRelationships, seenRelationships);\n if (!backwardVisited.has(rel.table)) {\n backwardQueue.push({ name: rel.table, depth: depth + 1 });\n }\n }\n }\n }\n\n // Write to context\n const tablesList = Object.values(tables);\n ctx.tables.push(...tablesList);\n ctx.relationships.push(...allRelationships);\n return () => this.#describeTables(tablesList);\n }\n\n /**\n * Apply the filter to get seed table names.\n * If filter is an explicit array, skip querying all table names.\n */\n protected async applyFilter(): Promise<string[]> {\n const filter = this.#filter;\n if (Array.isArray(filter)) {\n return filter;\n }\n const names = await this.getAllTableNames();\n if (!filter) {\n return names;\n }\n if (filter instanceof RegExp) {\n return names.filter((name) => filter.test(name));\n }\n return names.filter(filter);\n }\n\n /**\n * Add a relationship to the collection, deduplicating by key.\n */\n protected addRelationship(\n rel: Relationship,\n all: Relationship[],\n seen: Set<string>,\n ): void {\n const key = `${rel.table}:${rel.from.join(',')}:${rel.referenced_table}:${rel.to.join(',')}`;\n if (!seen.has(key)) {\n seen.add(key);\n all.push(rel);\n }\n }\n\n #describeTables(tables: Table[]): string {\n if (!tables.length) {\n return 'Schema unavailable.';\n }\n\n return tables\n .map((table) => {\n const rowCountInfo =\n table.rowCount != null\n ? ` [rows: ${table.rowCount}${table.sizeHint ? `, size: ${table.sizeHint}` : ''}]`\n : '';\n // Get primary key columns from constraints\n const pkConstraint = table.constraints?.find((c) => c.type === 'PRIMARY_KEY');\n const pkColumns = new Set(pkConstraint?.columns ?? []);\n\n const columns = table.columns\n .map((column) => {\n const annotations: string[] = [];\n const isPrimaryKey = pkColumns.has(column.name);\n if (isPrimaryKey) {\n annotations.push('PK');\n }\n if (column.isIndexed && !isPrimaryKey) {\n annotations.push('Indexed');\n }\n if (column.kind === 'LowCardinality' && column.values?.length) {\n annotations.push(`LowCardinality: ${column.values.join(', ')}`);\n }\n if (column.stats) {\n const statParts: string[] = [];\n if (column.stats.min != null || column.stats.max != null) {\n const minText = column.stats.min ?? 'n/a';\n const maxText = column.stats.max ?? 'n/a';\n statParts.push(`range ${minText} \u2192 ${maxText}`);\n }\n if (\n column.stats.nullFraction != null &&\n Number.isFinite(column.stats.nullFraction)\n ) {\n const percent =\n Math.round(column.stats.nullFraction * 1000) / 10;\n statParts.push(`null\u2248${percent}%`);\n }\n if (statParts.length) {\n annotations.push(statParts.join(', '));\n }\n }\n const annotationText = annotations.length\n ? ` [${annotations.join(', ')}]`\n : '';\n return ` - ${column.name} (${column.type})${annotationText}`;\n })\n .join('\\n');\n const indexes = table.indexes?.length\n ? `\\n Indexes:\\n${table.indexes\n .map((index) => {\n const props: string[] = [];\n if (index.unique) {\n props.push('UNIQUE');\n }\n if (index.type) {\n props.push(index.type);\n }\n const propsText = props.length ? ` (${props.join(', ')})` : '';\n const columnsText = index.columns?.length\n ? index.columns.join(', ')\n : 'expression';\n return ` - ${index.name}${propsText}: ${columnsText}`;\n })\n .join('\\n')}`\n : '';\n return `- Table: ${table.name}${rowCountInfo}\\n Columns:\\n${columns}${indexes}`;\n })\n .join('\\n\\n');\n }\n\n #formatTableLabel = (tableName: string) => {\n const base = tableName.split('.').pop() ?? tableName;\n return base.replace(/_/g, ' ');\n };\n\n #describeRelationships = (tables: Table[], relationships: Relationship[]) => {\n if (!relationships.length) {\n return 'None detected';\n }\n\n const tableMap = new Map(tables.map((table) => [table.name, table]));\n\n return relationships\n .map((relationship) => {\n const sourceLabel = this.#formatTableLabel(relationship.table);\n const targetLabel = this.#formatTableLabel(\n relationship.referenced_table,\n );\n const singularSource = pluralize.singular(sourceLabel);\n const pluralSource = pluralize.plural(sourceLabel);\n const singularTarget = pluralize.singular(targetLabel);\n const pluralTarget = pluralize.plural(targetLabel);\n const sourceTable = tableMap.get(relationship.table);\n const targetTable = tableMap.get(relationship.referenced_table);\n const sourceCount = sourceTable?.rowCount;\n const targetCount = targetTable?.rowCount;\n const ratio =\n sourceCount != null && targetCount != null && targetCount > 0\n ? sourceCount / targetCount\n : null;\n\n let cardinality = 'each';\n if (ratio != null) {\n if (ratio > 5) {\n cardinality = `many-to-one (\u2248${sourceCount} vs ${targetCount})`;\n } else if (ratio < 1.2 && ratio > 0.8) {\n cardinality = `roughly 1:1 (${sourceCount} vs ${targetCount})`;\n } else if (ratio < 0.2) {\n cardinality = `one-to-many (${sourceCount} vs ${targetCount})`;\n }\n }\n const mappings = relationship.from\n .map((fromCol, idx) => {\n const targetCol =\n relationship.to[idx] ?? relationship.to[0] ?? fromCol;\n return `${relationship.table}.${fromCol} -> ${relationship.referenced_table}.${targetCol}`;\n })\n .join(', ');\n\n return `- ${relationship.table} (${relationship.from.join(', ')}) -> ${relationship.referenced_table} (${relationship.to.join(', ')}) [${cardinality}]`;\n })\n .join('\\n');\n };\n}\n", "import type { Adapter } from './adapter.ts';\nimport type { GroundingContext } from './groundings/context.ts';\n\n/**\n * Filter type for table names.\n * - string[]: explicit list of table names\n * - RegExp: pattern to match table names\n * - function: predicate to filter table names\n */\nexport type Filter = string[] | RegExp | ((tableName: string) => boolean);\n\nexport interface AdapterInfo {\n dialect: string;\n version?: string;\n database?: string;\n details?: Record<string, unknown>;\n}\nexport type AdapterInfoProvider =\n | AdapterInfo\n | (() => Promise<AdapterInfo> | AdapterInfo);\n\nexport abstract class AbstractGrounding {\n tag: string;\n constructor(tag: string) {\n this.tag = tag;\n }\n\n abstract execute(ctx: GroundingContext): Promise<() => string | null>;\n}\n\nclass SampleDataGrounding {\n // this will fetch sample data for tables matching the filter\n}\nclass ExampleQueryGrounding {\n // this will create example queries for tables matching the filter\n}\nclass FunctionGrounding {\n #filter: Filter;\n #adapter: Adapter;\n constructor(adapter: Adapter, filter: Filter) {\n this.#filter = filter;\n this.#adapter = adapter;\n }\n}\n", "import type { ColumnStats } from '../adapter.ts';\nimport { AbstractGrounding } from '../grounding.ticket.ts';\nimport type { Column, ColumnContainer, GroundingContext } from './context.ts';\n\n/**\n * Configuration for ColumnStatsGrounding.\n */\nexport interface ColumnStatsGroundingConfig {\n // Future: filter which tables/columns to collect stats for\n}\n\n/**\n * Abstract base class for column statistics grounding.\n *\n * Reads tables and views from the context and annotates their columns\n * with statistics (min, max, nullFraction).\n *\n * Subclasses implement database-specific hooks:\n * - `collectStats()` - collect min/max/nullFraction for a column\n */\nexport abstract class ColumnStatsGrounding extends AbstractGrounding {\n constructor(config: ColumnStatsGroundingConfig = {}) {\n super('column_stats');\n }\n\n /**\n * Collect min/max/nullFraction statistics for a column.\n * Return undefined to skip this column.\n */\n protected abstract collectStats(\n tableName: string,\n column: Column,\n ): Promise<ColumnStats | undefined>;\n\n /**\n * Execute the grounding process.\n * Annotates columns in ctx.tables and ctx.views with statistics.\n */\n async execute(ctx: GroundingContext) {\n // Process both tables and views\n const allContainers: ColumnContainer[] = [...ctx.tables, ...ctx.views];\n for (const container of allContainers) {\n for (const column of container.columns) {\n // Collect min/max/nullFraction\n try {\n const stats = await this.collectStats(container.name, column);\n if (stats) {\n column.stats = stats;\n }\n } catch (error) {\n // Skip on error\n console.warn(\n 'Error collecting stats for',\n container.name,\n column.name,\n error,\n );\n }\n }\n }\n return () => this.#describe();\n }\n\n #describe() {\n return null;\n }\n}\n", "import { AbstractGrounding } from '../grounding.ticket.ts';\nimport type { Column, ColumnContainer, GroundingContext } from './context.ts';\n\nexport type { Column, ColumnContainer };\n\n/**\n * Configuration for LowCardinalityGrounding.\n */\nexport interface LowCardinalityGroundingConfig {\n // Future: filter which tables/columns to collect low cardinality values for\n}\n\n/**\n * Abstract base class for low cardinality column grounding.\n *\n * Reads tables and views from the context and annotates their columns\n * with low cardinality values (columns with few distinct values).\n *\n * Subclasses implement database-specific hooks:\n * - `collectLowCardinality()` - collect distinct values for low cardinality columns\n */\nexport abstract class LowCardinalityGrounding extends AbstractGrounding {\n constructor(config: LowCardinalityGroundingConfig = {}) {\n super('low_cardinality');\n }\n\n /**\n * Collect distinct values for low cardinality columns.\n * Return undefined if column has too many distinct values.\n */\n protected abstract collectLowCardinality(\n tableName: string,\n column: Column,\n ): Promise<{ kind: 'LowCardinality'; values: string[] } | undefined>;\n\n /**\n * Execute the grounding process.\n * Annotates columns in ctx.tables and ctx.views with low cardinality values.\n */\n async execute(ctx: GroundingContext) {\n // Process both tables and views\n const allContainers: ColumnContainer[] = [...ctx.tables, ...ctx.views];\n for (const container of allContainers) {\n for (const column of container.columns) {\n // Collect low cardinality values\n try {\n const lowCard = await this.collectLowCardinality(\n container.name,\n column,\n );\n if (lowCard) {\n column.kind = lowCard.kind;\n column.values = lowCard.values;\n }\n } catch (error) {\n // Skip on error\n console.warn(\n 'Error collecting low cardinality values for',\n container.name,\n column.name,\n error,\n );\n }\n }\n }\n return () => this.#describe();\n }\n\n #describe() {\n return null;\n }\n}\n", "import type { AdapterInfo } from '../adapter.ts';\nimport { AbstractGrounding } from '../grounding.ticket.ts';\nimport type { GroundingContext } from './context.ts';\n\n/**\n * Configuration for InfoGrounding.\n */\nexport interface InfoGroundingConfig {\n // Future: options to control what info to collect\n}\n\n/**\n * Abstract base class for database info grounding.\n *\n * Collects database dialect, version, and connection info.\n *\n * Subclasses implement the database-specific hook:\n * - `collectInfo()` - collect database info\n */\nexport abstract class InfoGrounding extends AbstractGrounding {\n constructor(config: InfoGroundingConfig = {}) {\n super('dialect_info');\n }\n\n /**\n * Collect database dialect, version, and other info.\n */\n protected abstract collectInfo(): Promise<AdapterInfo>;\n\n /**\n * Execute the grounding process.\n * Writes database info to ctx.info.\n */\n async execute(ctx: GroundingContext) {\n ctx.info = await this.collectInfo();\n const lines = [`Dialect: ${ctx.info.dialect ?? 'unknown'}`];\n if (ctx.info.version) {\n lines.push(`Version: ${ctx.info.version}`);\n }\n if (ctx.info.database) {\n lines.push(`Database: ${ctx.info.database}`);\n }\n if (ctx.info.details && Object.keys(ctx.info.details).length) {\n lines.push(`Details: ${JSON.stringify(ctx.info.details)}`);\n }\n return () => lines.join('\\n');\n }\n}\n", "import type { ColumnStats, Filter } from '../adapter.ts';\nimport { AbstractGrounding } from '../grounding.ticket.ts';\nimport type { GroundingContext } from './context.ts';\n\n/**\n * Represents a database view with its metadata.\n */\nexport interface View {\n name: string;\n schema?: string;\n rawName?: string;\n /** The SQL definition of the view (CREATE VIEW statement or query) */\n definition?: string;\n columns: {\n name: string;\n type: string;\n /** Low cardinality marker */\n kind?: 'LowCardinality';\n /** Distinct values for low cardinality columns */\n values?: string[];\n /** Column statistics (min, max, nullFraction) */\n stats?: ColumnStats;\n }[];\n}\n\n/**\n * Configuration for ViewGrounding.\n */\nexport interface ViewGroundingConfig {\n /** Filter to select views */\n filter?: Filter;\n}\n\n/**\n * Abstract base class for view grounding\n *\n * The `execute()` method implements the algorithm that discovers views.\n * Subclasses implement the database-specific hooks:\n * - `getAllViewNames()` - list all views\n * - `getView()` - get view metadata\n */\nexport abstract class ViewGrounding extends AbstractGrounding {\n #filter?: Filter;\n\n constructor(config: ViewGroundingConfig = {}) {\n super('views');\n this.#filter = config.filter;\n }\n\n /** Get all view names in the database */\n protected abstract getAllViewNames(): Promise<string[]>;\n\n /** Get full view metadata for a single view */\n protected abstract getView(viewName: string): Promise<View>;\n\n /**\n * Execute the grounding process.\n * Writes discovered views to the context.\n */\n async execute(ctx: GroundingContext) {\n const viewNames = await this.applyFilter();\n const views = await Promise.all(\n viewNames.map((name) => this.getView(name)),\n );\n ctx.views.push(...views);\n return () => this.#describe(views);\n }\n\n #describe(views: View[]): string {\n if (!views.length) {\n return 'No views available.';\n }\n\n return views\n .map((view) => {\n const columns = view.columns\n .map((column) => {\n const annotations: string[] = [];\n if (column.kind === 'LowCardinality' && column.values?.length) {\n annotations.push(`LowCardinality: ${column.values.join(', ')}`);\n }\n if (column.stats) {\n const statParts: string[] = [];\n if (column.stats.min != null || column.stats.max != null) {\n const minText = column.stats.min ?? 'n/a';\n const maxText = column.stats.max ?? 'n/a';\n statParts.push(`range ${minText} \u2192 ${maxText}`);\n }\n if (\n column.stats.nullFraction != null &&\n Number.isFinite(column.stats.nullFraction)\n ) {\n const percent =\n Math.round(column.stats.nullFraction * 1000) / 10;\n statParts.push(`null\u2248${percent}%`);\n }\n if (statParts.length) {\n annotations.push(statParts.join(', '));\n }\n }\n const annotationText = annotations.length\n ? ` [${annotations.join(', ')}]`\n : '';\n return ` - ${column.name} (${column.type})${annotationText}`;\n })\n .join('\\n');\n\n const definition = view.definition\n ? `\\n Definition: ${view.definition.length > 200 ? view.definition.slice(0, 200) + '...' : view.definition}`\n : '';\n\n return `- View: ${view.name}${definition}\\n Columns:\\n${columns}`;\n })\n .join('\\n\\n');\n }\n\n /**\n * Apply the filter to get view names.\n * If filter is an explicit array, skip querying all view names.\n */\n protected async applyFilter(): Promise<string[]> {\n const filter = this.#filter;\n if (Array.isArray(filter)) {\n return filter;\n }\n const names = await this.getAllViewNames();\n if (!filter) {\n return names;\n }\n if (filter instanceof RegExp) {\n return names.filter((name) => filter.test(name));\n }\n return names.filter(filter);\n }\n}\n", "import { groq } from '@ai-sdk/groq';\nimport { tool } from 'ai';\nimport dedent from 'dedent';\nimport z from 'zod';\n\nimport {\n type AgentModel,\n agent,\n generate,\n toState,\n user,\n} from '@deepagents/agent';\n\nimport type { Adapter } from '../adapter.ts';\nimport { AbstractGrounding } from '../grounding.ticket.ts';\nimport type { GroundingContext } from './context.ts';\n\n/**\n * Cache interface for storing generated reports.\n */\nexport interface ReportCache {\n get(): Promise<string | null>;\n set(value: string): Promise<void>;\n}\n\n/**\n * Configuration for ReportGrounding.\n */\nexport interface ReportGroundingConfig {\n /** LLM model to use for generating the report */\n model?: AgentModel;\n /** Optional cache for storing generated reports */\n cache?: ReportCache;\n /** Force regeneration even if cached */\n forceRefresh?: boolean;\n}\n\n/**\n * Grounding that generates a business context report about the database.\n *\n * Uses an LLM agent to:\n * 1. Query COUNT(*) for each table\n * 2. Query SELECT * LIMIT 3 for sample data\n * 3. Generate a 400-600 word business context report\n *\n * The report helps downstream agents understand what the database represents.\n */\nexport class ReportGrounding extends AbstractGrounding {\n #adapter: Adapter;\n #model: AgentModel;\n #cache?: ReportCache;\n #forceRefresh: boolean;\n\n constructor(adapter: Adapter, config: ReportGroundingConfig={}) {\n super('business_context');\n this.#adapter = adapter;\n this.#model = config.model ?? groq('openai/gpt-oss-20b');\n this.#cache = config.cache;\n this.#forceRefresh = config.forceRefresh ?? false;\n }\n\n async execute(ctx: GroundingContext): Promise<() => string | null> {\n // Check cache first (unless forcing refresh)\n if (!this.#forceRefresh && this.#cache) {\n const cached = await this.#cache.get();\n if (cached) {\n ctx.report = cached;\n return () => cached;\n }\n }\n\n // Generate report using LLM\n const report = await this.#generateReport();\n ctx.report = report;\n\n // Cache the result\n if (this.#cache) {\n await this.#cache.set(report);\n }\n\n return () => report;\n }\n\n async #generateReport(): Promise<string> {\n const reportAgent = agent<unknown, { adapter: Adapter }>({\n name: 'db-report-agent',\n model: this.#model,\n prompt: () => dedent`\n <identity>\n You are a database analyst expert. Your job is to understand what\n a database represents and provide business context about it.\n You have READ-ONLY access to the database.\n </identity>\n\n <instructions>\n Write a business context that helps another agent answer questions accurately.\n\n For EACH table, do queries ONE AT A TIME:\n 1. SELECT COUNT(*) to get row count\n 2. SELECT * LIMIT 3 to see sample data\n\n Then write a report with:\n - What business this database is for\n - For each table: purpose, row count, and example of what the data looks like\n\n Include concrete examples like \"Track prices are $0.99\",\n \"Customer names like 'Lu\u00EDs Gon\u00E7alves'\", etc.\n\n Keep it 400-600 words, conversational style.\n </instructions>\n `,\n tools: {\n query_database: tool({\n description:\n 'Execute a SELECT query to explore the database and gather insights.',\n inputSchema: z.object({\n sql: z.string().describe('The SELECT query to execute'),\n purpose: z\n .string()\n .describe(\n 'What insight you are trying to gather with this query',\n ),\n }),\n execute: ({ sql }, options) => {\n const state = toState<{ adapter: Adapter }>(options);\n return state.adapter.execute(sql);\n },\n }),\n },\n });\n\n const { text } = await generate(\n reportAgent,\n [\n user(\n 'Please analyze the database and write a contextual report about what this database represents.',\n ),\n ],\n { adapter: this.#adapter },\n );\n\n return text;\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["tables"]
7
- }
@@ -1,35 +0,0 @@
1
- import { AbstractGrounding } from '../grounding.ticket.ts';
2
- import type { Column, ColumnContainer, GroundingContext } from './context.ts';
3
- export type { Column, ColumnContainer };
4
- /**
5
- * Configuration for LowCardinalityGrounding.
6
- */
7
- export interface LowCardinalityGroundingConfig {
8
- }
9
- /**
10
- * Abstract base class for low cardinality column grounding.
11
- *
12
- * Reads tables and views from the context and annotates their columns
13
- * with low cardinality values (columns with few distinct values).
14
- *
15
- * Subclasses implement database-specific hooks:
16
- * - `collectLowCardinality()` - collect distinct values for low cardinality columns
17
- */
18
- export declare abstract class LowCardinalityGrounding extends AbstractGrounding {
19
- #private;
20
- constructor(config?: LowCardinalityGroundingConfig);
21
- /**
22
- * Collect distinct values for low cardinality columns.
23
- * Return undefined if column has too many distinct values.
24
- */
25
- protected abstract collectLowCardinality(tableName: string, column: Column): Promise<{
26
- kind: 'LowCardinality';
27
- values: string[];
28
- } | undefined>;
29
- /**
30
- * Execute the grounding process.
31
- * Annotates columns in ctx.tables and ctx.views with low cardinality values.
32
- */
33
- execute(ctx: GroundingContext): Promise<() => null>;
34
- }
35
- //# sourceMappingURL=low-cardinality.grounding.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"low-cardinality.grounding.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/groundings/low-cardinality.grounding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE9E,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,6BAA6B;CAE7C;AAED;;;;;;;;GAQG;AACH,8BAAsB,uBAAwB,SAAQ,iBAAiB;;gBACzD,MAAM,GAAE,6BAAkC;IAItD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,IAAI,EAAE,gBAAgB,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;IAEpE;;;OAGG;IACG,OAAO,CAAC,GAAG,EAAE,gBAAgB;CAgCpC"}
@@ -1,14 +0,0 @@
1
- import type { Adapter } from '../adapter.ts';
2
- import { type Column, LowCardinalityGrounding, type LowCardinalityGroundingConfig } from '../groundings/low-cardinality.grounding.ts';
3
- /**
4
- * PostgreSQL implementation of LowCardinalityGrounding.
5
- */
6
- export declare class PostgresLowCardinalityGrounding extends LowCardinalityGrounding {
7
- #private;
8
- constructor(adapter: Adapter, config?: LowCardinalityGroundingConfig);
9
- protected collectLowCardinality(tableName: string, column: Column): Promise<{
10
- kind: 'LowCardinality';
11
- values: string[];
12
- } | undefined>;
13
- }
14
- //# sourceMappingURL=low-cardinality.postgres.grounding.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"low-cardinality.postgres.grounding.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/postgres/low-cardinality.postgres.grounding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,KAAK,MAAM,EACX,uBAAuB,EACvB,KAAK,6BAA6B,EACnC,MAAM,4CAA4C,CAAC;AAIpD;;GAEG;AACH,qBAAa,+BAAgC,SAAQ,uBAAuB;;gBAG9D,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,6BAAkC;cAK/C,qBAAqB,CAC5C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,IAAI,EAAE,gBAAgB,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;CAiCrE"}
@@ -1,14 +0,0 @@
1
- import type { Adapter } from '../adapter.ts';
2
- import { type Column, LowCardinalityGrounding, type LowCardinalityGroundingConfig } from '../groundings/low-cardinality.grounding.ts';
3
- /**
4
- * SQLite implementation of LowCardinalityGrounding.
5
- */
6
- export declare class SqliteLowCardinalityGrounding extends LowCardinalityGrounding {
7
- #private;
8
- constructor(adapter: Adapter, config?: LowCardinalityGroundingConfig);
9
- protected collectLowCardinality(tableName: string, column: Column): Promise<{
10
- kind: 'LowCardinality';
11
- values: string[];
12
- } | undefined>;
13
- }
14
- //# sourceMappingURL=low-cardinality.sqlite.grounding.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"low-cardinality.sqlite.grounding.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/sqlite/low-cardinality.sqlite.grounding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,KAAK,MAAM,EACX,uBAAuB,EACvB,KAAK,6BAA6B,EACnC,MAAM,4CAA4C,CAAC;AAIpD;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,uBAAuB;;gBAG5D,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,6BAAkC;cAK/C,qBAAqB,CAC5C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,IAAI,EAAE,gBAAgB,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;CAyDrE"}
@@ -1,14 +0,0 @@
1
- import type { Adapter } from '../adapter.ts';
2
- import { type Column, LowCardinalityGrounding, type LowCardinalityGroundingConfig } from '../groundings/low-cardinality.grounding.ts';
3
- /**
4
- * SQL Server implementation of LowCardinalityGrounding.
5
- */
6
- export declare class SqlServerLowCardinalityGrounding extends LowCardinalityGrounding {
7
- #private;
8
- constructor(adapter: Adapter, config?: LowCardinalityGroundingConfig);
9
- protected collectLowCardinality(tableName: string, column: Column): Promise<{
10
- kind: 'LowCardinality';
11
- values: string[];
12
- } | undefined>;
13
- }
14
- //# sourceMappingURL=low-cardinality.sqlserver.grounding.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"low-cardinality.sqlserver.grounding.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/sqlserver/low-cardinality.sqlserver.grounding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,KAAK,MAAM,EACX,uBAAuB,EACvB,KAAK,6BAA6B,EACnC,MAAM,4CAA4C,CAAC;AAIpD;;GAEG;AACH,qBAAa,gCAAiC,SAAQ,uBAAuB;;gBAG/D,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,6BAAkC;cAK/C,qBAAqB,CAC5C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,IAAI,EAAE,gBAAgB,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;CAgCrE"}