@deepagents/text2sql 6.0.0 → 6.1.2

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 (43) hide show
  1. package/README.md +7 -1
  2. package/dist/bin/sql.js +1 -0
  3. package/dist/index.js +6 -1
  4. package/dist/index.js.map +2 -2
  5. package/dist/lib/adapters/adapter.d.ts +2 -1
  6. package/dist/lib/adapters/adapter.d.ts.map +1 -1
  7. package/dist/lib/adapters/bigquery/index.js +6 -1
  8. package/dist/lib/adapters/bigquery/index.js.map +2 -2
  9. package/dist/lib/adapters/clickhouse/index.js +6 -1
  10. package/dist/lib/adapters/clickhouse/index.js.map +2 -2
  11. package/dist/lib/adapters/groundings/context.d.ts +3 -0
  12. package/dist/lib/adapters/groundings/context.d.ts.map +1 -1
  13. package/dist/lib/adapters/groundings/index.js +1 -0
  14. package/dist/lib/adapters/groundings/index.js.map +2 -2
  15. package/dist/lib/adapters/mysql/index.js +6 -1
  16. package/dist/lib/adapters/mysql/index.js.map +2 -2
  17. package/dist/lib/adapters/postgres/index.js +6 -1
  18. package/dist/lib/adapters/postgres/index.js.map +2 -2
  19. package/dist/lib/adapters/posthog/definitions.posthog.grounding.d.ts +19 -0
  20. package/dist/lib/adapters/posthog/definitions.posthog.grounding.d.ts.map +1 -0
  21. package/dist/lib/adapters/posthog/index.d.ts +22 -0
  22. package/dist/lib/adapters/posthog/index.d.ts.map +1 -0
  23. package/dist/lib/adapters/posthog/index.js +1317 -0
  24. package/dist/lib/adapters/posthog/index.js.map +7 -0
  25. package/dist/lib/adapters/posthog/info.posthog.grounding.d.ts +7 -0
  26. package/dist/lib/adapters/posthog/info.posthog.grounding.d.ts.map +1 -0
  27. package/dist/lib/adapters/posthog/posthog.d.ts +24 -0
  28. package/dist/lib/adapters/posthog/posthog.d.ts.map +1 -0
  29. package/dist/lib/adapters/posthog/posthog.sql-policy.d.ts +8 -0
  30. package/dist/lib/adapters/posthog/posthog.sql-policy.d.ts.map +1 -0
  31. package/dist/lib/adapters/posthog/schema.posthog.grounding.d.ts +16 -0
  32. package/dist/lib/adapters/posthog/schema.posthog.grounding.d.ts.map +1 -0
  33. package/dist/lib/adapters/posthog/transport.d.ts +16 -0
  34. package/dist/lib/adapters/posthog/transport.d.ts.map +1 -0
  35. package/dist/lib/adapters/posthog/types.d.ts +97 -0
  36. package/dist/lib/adapters/posthog/types.d.ts.map +1 -0
  37. package/dist/lib/adapters/spreadsheet/index.js +6 -1
  38. package/dist/lib/adapters/spreadsheet/index.js.map +2 -2
  39. package/dist/lib/adapters/sqlite/index.js +6 -1
  40. package/dist/lib/adapters/sqlite/index.js.map +2 -2
  41. package/dist/lib/adapters/sqlserver/index.js +6 -1
  42. package/dist/lib/adapters/sqlserver/index.js.map +2 -2
  43. package/package.json +11 -5
package/README.md CHANGED
@@ -5,7 +5,7 @@ AI-powered natural language to SQL. Ask questions in plain English, get executab
5
5
  ## Features
6
6
 
7
7
  - **Natural Language to SQL** - Convert questions to validated, executable queries
8
- - **Multi-Database Support** - PostgreSQL, SQLite, SQL Server, MySQL/MariaDB, BigQuery, and ClickHouse adapters
8
+ - **Multi-Database Support** - PostgreSQL, SQLite, SQL Server, MySQL/MariaDB, BigQuery, ClickHouse, and PostHog HogQL adapters
9
9
  - **Schema-Aware** - Automatic introspection of tables, relationships, indexes, and constraints
10
10
  - **Domain Knowledge** - Inject business terms, guardrails, and query patterns via fragments
11
11
  - **Conversational** - Multi-turn conversations with context persistence
@@ -25,6 +25,7 @@ npm install mssql # SQL Server
25
25
  npm install mysql2 # MySQL / MariaDB
26
26
  npm install @google-cloud/bigquery # BigQuery
27
27
  npm install @clickhouse/client # ClickHouse, or use your preferred client
28
+ # PostHog uses native fetch and needs no additional client package
28
29
  ```
29
30
 
30
31
  Requires Node.js LTS
@@ -296,6 +297,10 @@ withhold extension, file, remote-query, and routine execution capabilities; and
296
297
  configure dialect-appropriate statement timeouts, byte/result limits, and
297
298
  compute/memory limits.
298
299
 
300
+ The PostHog adapter does not pass HogQL through the local SQL parser. It asks
301
+ PostHog to parse each query with `HogQLMetadata`, checks the returned base-table
302
+ names against grounded schema, and only then sends a `HogQLQuery` for execution.
303
+
299
304
  ## Fragments
300
305
 
301
306
  Inject domain knowledge by setting fragments on the `ContextEngine` you build
@@ -542,6 +547,7 @@ Full documentation available at [januarylabs.github.io/deepagents](https://janua
542
547
  - [MySQL / MariaDB](https://januarylabs.github.io/deepagents/docs/text2sql/mysql)
543
548
  - [BigQuery](https://januarylabs.github.io/deepagents/docs/text2sql/bigquery)
544
549
  - [ClickHouse](https://januarylabs.github.io/deepagents/docs/text2sql/clickhouse)
550
+ - [PostHog](https://januarylabs.github.io/deepagents/docs/text2sql/posthog)
545
551
 
546
552
  ## Repository
547
553
 
package/dist/bin/sql.js CHANGED
@@ -214,6 +214,7 @@ function createGroundingContext(options = {}) {
214
214
  views: [],
215
215
  relationships: [],
216
216
  info: void 0,
217
+ fragments: [],
217
218
  cache: /* @__PURE__ */ new Map(),
218
219
  onProgress: timestampProgress(options.onProgress)
219
220
  };
package/dist/index.js CHANGED
@@ -185,6 +185,7 @@ function createGroundingContext(options = {}) {
185
185
  views: [],
186
186
  relationships: [],
187
187
  info: void 0,
188
+ fragments: [],
188
189
  cache: /* @__PURE__ */ new Map(),
189
190
  onProgress: timestampProgress(options.onProgress)
190
191
  };
@@ -286,6 +287,7 @@ var Adapter = class {
286
287
  this.#relationshipToFragment(rel, sourceTable, targetTable)
287
288
  );
288
289
  }
290
+ fragments.push(...ctx.fragments ?? []);
289
291
  return fragments;
290
292
  }
291
293
  /**
@@ -437,6 +439,9 @@ var Adapter = class {
437
439
  return this.validateImpl(decoded);
438
440
  }
439
441
  async execute(sql) {
442
+ return this.executeImpl(await this.enforceExecutionPolicy(sql));
443
+ }
444
+ async enforceExecutionPolicy(sql) {
440
445
  const decoded = this.#decodeShellEscapes(sql);
441
446
  const violation = await this.#analyzePolicy(decoded);
442
447
  if (violation?.kind === "read-only") {
@@ -445,7 +450,7 @@ var Adapter = class {
445
450
  if (violation?.kind === "scope") {
446
451
  throw new SQLScopeError(violation.payload);
447
452
  }
448
- return this.executeImpl(decoded);
453
+ return decoded;
449
454
  }
450
455
  /**
451
456
  * Convert unknown database value to number.