@duckcodeailabs/dql-cli 1.6.33 → 1.7.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 (84) hide show
  1. package/dist/apps-api.d.ts +9 -0
  2. package/dist/apps-api.d.ts.map +1 -1
  3. package/dist/apps-api.js +111 -13
  4. package/dist/apps-api.js.map +1 -1
  5. package/dist/args.d.ts +4 -0
  6. package/dist/args.d.ts.map +1 -1
  7. package/dist/args.js +7 -0
  8. package/dist/args.js.map +1 -1
  9. package/dist/assets/dql-notebook/assets/index-2Tszpipm.js +5914 -0
  10. package/dist/assets/dql-notebook/assets/index-dSyhu_eU.css +1 -0
  11. package/dist/assets/dql-notebook/index.html +2 -2
  12. package/dist/block-invocation.d.ts +31 -0
  13. package/dist/block-invocation.d.ts.map +1 -0
  14. package/dist/block-invocation.js +82 -0
  15. package/dist/block-invocation.js.map +1 -0
  16. package/dist/block-studio-import.d.ts +2 -0
  17. package/dist/block-studio-import.d.ts.map +1 -1
  18. package/dist/block-studio-import.js.map +1 -1
  19. package/dist/commands/agent.d.ts +1 -1
  20. package/dist/commands/agent.d.ts.map +1 -1
  21. package/dist/commands/agent.js +16 -6
  22. package/dist/commands/agent.js.map +1 -1
  23. package/dist/commands/app.d.ts +1 -2
  24. package/dist/commands/app.d.ts.map +1 -1
  25. package/dist/commands/app.js +6 -9
  26. package/dist/commands/app.js.map +1 -1
  27. package/dist/commands/compile.js +1 -1
  28. package/dist/commands/compile.js.map +1 -1
  29. package/dist/commands/init.d.ts.map +1 -1
  30. package/dist/commands/init.js +65 -92
  31. package/dist/commands/init.js.map +1 -1
  32. package/dist/commands/migrate.d.ts +87 -0
  33. package/dist/commands/migrate.d.ts.map +1 -1
  34. package/dist/commands/migrate.js +812 -3
  35. package/dist/commands/migrate.js.map +1 -1
  36. package/dist/commands/model.d.ts +4 -0
  37. package/dist/commands/model.d.ts.map +1 -0
  38. package/dist/commands/model.js +219 -0
  39. package/dist/commands/model.js.map +1 -0
  40. package/dist/commands/new.d.ts.map +1 -1
  41. package/dist/commands/new.js +28 -4
  42. package/dist/commands/new.js.map +1 -1
  43. package/dist/commands/parse.d.ts.map +1 -1
  44. package/dist/commands/parse.js +32 -0
  45. package/dist/commands/parse.js.map +1 -1
  46. package/dist/commands/sync.d.ts.map +1 -1
  47. package/dist/commands/sync.js +23 -7
  48. package/dist/commands/sync.js.map +1 -1
  49. package/dist/index.js +19 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/llm/answer-loop-tools.d.ts +2 -5
  52. package/dist/llm/answer-loop-tools.d.ts.map +1 -1
  53. package/dist/llm/answer-loop-tools.js +346 -40
  54. package/dist/llm/answer-loop-tools.js.map +1 -1
  55. package/dist/llm/providers/dql-agent-provider.d.ts +13 -1
  56. package/dist/llm/providers/dql-agent-provider.d.ts.map +1 -1
  57. package/dist/llm/providers/dql-agent-provider.js +145 -37
  58. package/dist/llm/providers/dql-agent-provider.js.map +1 -1
  59. package/dist/llm/tools.d.ts +7 -0
  60. package/dist/llm/tools.d.ts.map +1 -1
  61. package/dist/llm/tools.js +65 -2
  62. package/dist/llm/tools.js.map +1 -1
  63. package/dist/llm/types.d.ts +13 -3
  64. package/dist/llm/types.d.ts.map +1 -1
  65. package/dist/local-runtime.d.ts +122 -7
  66. package/dist/local-runtime.d.ts.map +1 -1
  67. package/dist/local-runtime.js +4329 -298
  68. package/dist/local-runtime.js.map +1 -1
  69. package/dist/metricflow.d.ts +2 -0
  70. package/dist/metricflow.d.ts.map +1 -1
  71. package/dist/metricflow.js +10 -0
  72. package/dist/metricflow.js.map +1 -1
  73. package/dist/mixed-source-sql.d.ts +53 -0
  74. package/dist/mixed-source-sql.d.ts.map +1 -0
  75. package/dist/mixed-source-sql.js +311 -0
  76. package/dist/mixed-source-sql.js.map +1 -0
  77. package/dist/notebook-datasets.d.ts +120 -0
  78. package/dist/notebook-datasets.d.ts.map +1 -0
  79. package/dist/notebook-datasets.js +484 -0
  80. package/dist/notebook-datasets.js.map +1 -0
  81. package/dist/package.json +10 -10
  82. package/package.json +10 -10
  83. package/dist/assets/dql-notebook/assets/index-B6x1cRJo.js +0 -5698
  84. package/dist/assets/dql-notebook/assets/index-D9Owd4EN.css +0 -1
@@ -31,5 +31,7 @@ export interface MetricFlowCompileResult {
31
31
  }
32
32
  export declare function resolveDbtProjectRoot(projectRoot: string, configuredPath?: string): string;
33
33
  export declare function hasDbtSemanticManifest(projectRoot: string, configuredPath?: string): boolean;
34
+ /** Check whether the configured MetricFlow executable is callable. */
35
+ export declare function hasMetricFlowCli(): boolean;
34
36
  export declare function compileMetricFlowQuery(request: MetricFlowQueryRequest): MetricFlowCompileResult;
35
37
  //# sourceMappingURL=metricflow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metricflow.d.ts","sourceRoot":"","sources":["../src/metricflow.ts"],"names":[],"mappings":"AAIA,qBAAa,0BAA2B,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnG,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1F;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAE5F;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,GAAG,uBAAuB,CA0C/F"}
1
+ {"version":3,"file":"metricflow.d.ts","sourceRoot":"","sources":["../src/metricflow.ts"],"names":[],"mappings":"AAIA,qBAAa,0BAA2B,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnG,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1F;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAE5F;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,IAAI,OAAO,CAQ1C;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,GAAG,uBAAuB,CA0C/F"}
@@ -13,6 +13,16 @@ export function resolveDbtProjectRoot(projectRoot, configuredPath) {
13
13
  export function hasDbtSemanticManifest(projectRoot, configuredPath) {
14
14
  return existsSync(join(resolveDbtProjectRoot(projectRoot, configuredPath), 'target', 'semantic_manifest.json'));
15
15
  }
16
+ /** Check whether the configured MetricFlow executable is callable. */
17
+ export function hasMetricFlowCli() {
18
+ const bin = process.env.DQL_METRICFLOW_BIN || process.env.METRICFLOW_BIN || 'mf';
19
+ const result = spawnSync(bin, ['--version'], {
20
+ encoding: 'utf-8',
21
+ env: process.env,
22
+ timeout: 3000,
23
+ });
24
+ return !result.error && result.status === 0;
25
+ }
16
26
  export function compileMetricFlowQuery(request) {
17
27
  const dbtRoot = resolveDbtProjectRoot(request.projectRoot, request.dbtProjectPath);
18
28
  if (!existsSync(join(dbtRoot, 'target', 'semantic_manifest.json'))) {
@@ -1 +1 @@
1
- {"version":3,"file":"metricflow.js","sourceRoot":"","sources":["../src/metricflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IACnD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAqBD,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE,cAAuB;IAChF,OAAO,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,WAAmB,EAAE,cAAuB;IACjF,OAAO,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,QAAQ,EAAE,wBAAwB,CAAC,CAAC,CAAC;AAClH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAA+B;IACpE,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACnF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,wBAAwB,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,0BAA0B,CAClC,+HAA+H,CAChI,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC;IACjF,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE;QAClC,GAAG,EAAE,OAAO;QACZ,QAAQ,EAAE,OAAO;QACjB,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,IAAK,MAAM,CAAC,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9D,MAAM,IAAI,0BAA0B,CAClC,mJAAmJ,CACpJ,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;IACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,MAAM,MAAM,MAAM,IAAI,MAAM,IAAI,WAAW,EAAE,CAAC,CAAC;IACtG,CAAC;IAED,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO;QACL,GAAG;QACH,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACvB,MAAM;QACN,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,OAA+B;IAC1D,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,KAAK,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,iBAAiB,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,SAAS;QAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAuD;IAChF,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAChC,IAAI,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE;YAAE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACnE,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxB,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC;oBACvB,CAAC,CAAC,CAAC,iBAAiB,MAAM,CAAC,SAAS,WAAW,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9D,CAAC,CAAC,CAAC,iBAAiB,MAAM,CAAC,SAAS,aAAa,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtF,KAAK,YAAY;gBACf,OAAO,CAAC,iBAAiB,MAAM,CAAC,SAAS,YAAY,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvE,KAAK,IAAI;gBACP,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,MAAM,CAAC,SAAS,aAAa,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClH,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,MAAM,CAAC,SAAS,iBAAiB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtH,KAAK,IAAI;gBACP,OAAO,CAAC,iBAAiB,MAAM,CAAC,SAAS,WAAW,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtE,KAAK,KAAK;gBACR,OAAO,CAAC,iBAAiB,MAAM,CAAC,SAAS,YAAY,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvE,KAAK,IAAI;gBACP,OAAO,CAAC,iBAAiB,MAAM,CAAC,SAAS,WAAW,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtE,KAAK,KAAK;gBACR,OAAO,CAAC,iBAAiB,MAAM,CAAC,SAAS,YAAY,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvE;gBACE,OAAO,EAAE,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACtD,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACzB,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"metricflow.js","sourceRoot":"","sources":["../src/metricflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ export interface MixedSourceSqlPlan {
2
+ datasetId?: string;
3
+ datasetName?: string;
4
+ localDataset: string;
5
+ localAlias: string;
6
+ localKey: string;
7
+ warehouseKey: string;
8
+ warehouseExpression: string;
9
+ warehouseSql: string;
10
+ warehouseRelations?: string[];
11
+ }
12
+ export interface MixedSourceDatasetCandidate {
13
+ id: string;
14
+ name: string;
15
+ alias: string;
16
+ columns: Array<{
17
+ name: string;
18
+ flags?: string[];
19
+ }>;
20
+ }
21
+ export interface MixedSourceSchemaTable {
22
+ relation: string;
23
+ columns: Array<{
24
+ name: string;
25
+ }>;
26
+ source?: string;
27
+ }
28
+ /**
29
+ * Resolve an explicitly named notebook dataset without turning general customer
30
+ * language into a file guess. The singular/plural allowance is intentionally
31
+ * limited to names ending in csv/dataset so `customer_csv` can safely match the
32
+ * registered `customers_csv` alias.
33
+ */
34
+ export declare function findMentionedNotebookDataset<T extends Pick<MixedSourceDatasetCandidate, 'id' | 'name' | 'alias'>>(question: string, datasets: T[]): T | undefined;
35
+ /** Build the two-engine notebook handoff once the SQL fallback has authored the
36
+ * warehouse extraction. The SQL remains warehouse-only; the returned keys are
37
+ * used by the UI to stage and create the local join cell after user confirmation.
38
+ */
39
+ export declare function planMixedSourceNotebookSql(sql: string, dataset: MixedSourceDatasetCandidate, schemaTables: MixedSourceSchemaTable[]): MixedSourceSqlPlan | null;
40
+ /**
41
+ * Deterministic last-mile fallback for an explicitly named warehouse entity.
42
+ * It is used only after certified and semantic coverage have missed. Selecting
43
+ * the whole validated row keeps requested business detail columns without
44
+ * inventing column names, and the staging endpoint applies the hard row limit.
45
+ */
46
+ export declare function buildMixedSourceWarehouseFallbackSql(question: string, dataset: MixedSourceDatasetCandidate, schemaTables: MixedSourceSchemaTable[]): string | undefined;
47
+ /**
48
+ * Extract the common OSS notebook pattern where a warehouse query directly
49
+ * joins one registered local dataset. The result is deliberately conservative:
50
+ * ambiguous joins return null so the user is asked instead of receiving unsafe SQL.
51
+ */
52
+ export declare function planMixedSourceSql(sql: string, datasetAliases: string[]): MixedSourceSqlPlan | null;
53
+ //# sourceMappingURL=mixed-source-sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mixed-source-sql.d.ts","sourceRoot":"","sources":["../src/mixed-source-sql.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,SAAS,IAAI,CAAC,2BAA2B,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,EAC/G,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,EAAE,GACZ,CAAC,GAAG,SAAS,CAcf;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,2BAA2B,EACpC,YAAY,EAAE,sBAAsB,EAAE,GACrC,kBAAkB,GAAG,IAAI,CAgC3B;AAED;;;;;GAKG;AACH,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,2BAA2B,EACpC,YAAY,EAAE,sBAAsB,EAAE,GACrC,MAAM,GAAG,SAAS,CAmEpB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,kBAAkB,GAAG,IAAI,CAmCnG"}
@@ -0,0 +1,311 @@
1
+ /**
2
+ * Resolve an explicitly named notebook dataset without turning general customer
3
+ * language into a file guess. The singular/plural allowance is intentionally
4
+ * limited to names ending in csv/dataset so `customer_csv` can safely match the
5
+ * registered `customers_csv` alias.
6
+ */
7
+ export function findMentionedNotebookDataset(question, datasets) {
8
+ const questionTokens = new Set(identifierTokens(question));
9
+ const exact = datasets.filter((dataset) => [dataset.alias, dataset.name].some((value) => {
10
+ const tokens = identifierTokens(value);
11
+ return tokens.length > 0 && tokens.every((token) => questionTokens.has(token));
12
+ }));
13
+ if (exact.length === 1)
14
+ return exact[0];
15
+ const normalizedQuestion = normalizeDatasetMention(question);
16
+ const fuzzy = datasets.filter((dataset) => [dataset.alias, dataset.name].some((value) => {
17
+ const normalized = normalizeDatasetMention(value);
18
+ return normalized.length >= 6 && normalizedQuestion.includes(normalized);
19
+ }));
20
+ return fuzzy.length === 1 ? fuzzy[0] : undefined;
21
+ }
22
+ /** Build the two-engine notebook handoff once the SQL fallback has authored the
23
+ * warehouse extraction. The SQL remains warehouse-only; the returned keys are
24
+ * used by the UI to stage and create the local join cell after user confirmation.
25
+ */
26
+ export function planMixedSourceNotebookSql(sql, dataset, schemaTables) {
27
+ const direct = planMixedSourceSql(sql, [dataset.alias]);
28
+ if (direct)
29
+ return {
30
+ ...direct,
31
+ datasetId: dataset.id,
32
+ datasetName: dataset.name,
33
+ warehouseRelations: extractWarehouseRelations(direct.warehouseSql),
34
+ };
35
+ if (relationPattern(dataset.alias).test(sql))
36
+ return null;
37
+ const referenced = schemaTables
38
+ .map((table) => ({ table, match: relationPattern(table.relation).exec(sql) }))
39
+ .filter((item) => Boolean(item.match))
40
+ .sort((a, b) => (a.match.index ?? 0) - (b.match.index ?? 0));
41
+ for (const { table } of referenced) {
42
+ const pair = bestJoinKeyPair(table, dataset);
43
+ if (!pair)
44
+ continue;
45
+ const qualifier = relationAlias(sql, table.relation);
46
+ const expression = qualifier ? `${qualifier}.${pair.warehouseKey}` : pair.warehouseKey;
47
+ return {
48
+ datasetId: dataset.id,
49
+ datasetName: dataset.name,
50
+ localDataset: dataset.alias,
51
+ localAlias: dataset.alias,
52
+ localKey: pair.localKey,
53
+ warehouseKey: pair.warehouseKey,
54
+ warehouseExpression: expression,
55
+ warehouseSql: ensureSelectedJoinKey(sql, expression, pair.warehouseKey),
56
+ warehouseRelations: extractWarehouseRelations(sql),
57
+ };
58
+ }
59
+ return null;
60
+ }
61
+ /**
62
+ * Deterministic last-mile fallback for an explicitly named warehouse entity.
63
+ * It is used only after certified and semantic coverage have missed. Selecting
64
+ * the whole validated row keeps requested business detail columns without
65
+ * inventing column names, and the staging endpoint applies the hard row limit.
66
+ */
67
+ export function buildMixedSourceWarehouseFallbackSql(question, dataset, schemaTables) {
68
+ const usableTables = deduplicateSchemaRelations(schemaTables).filter((table) => normalizeDatasetMention(table.relation) !== normalizeDatasetMention(dataset.alias));
69
+ const scoredMentions = usableTables
70
+ .map((table) => ({ table, score: tableMentionScore(question, table.relation) }))
71
+ .filter((item) => item.score > 0)
72
+ .sort((a, b) => b.score - a.score);
73
+ const qualifiedMentions = scoredMentions.filter((item) => item.score >= 1_000);
74
+ const mentioned = qualifiedMentions.length > 0 ? qualifiedMentions : scoredMentions;
75
+ const rankedRoots = (mentioned.length > 0 ? mentioned : usableTables.map((table) => ({ table, score: 0 }))).flatMap(({ table, score }) => {
76
+ const pair = bestJoinKeyPair(table, dataset);
77
+ if (!pair)
78
+ return [];
79
+ return [{ table, score: score + 500 - table.relation.length }];
80
+ }).sort((a, b) => b.score - a.score);
81
+ const root = rankedRoots[0]?.table;
82
+ if (!root)
83
+ return undefined;
84
+ const requestedTables = mentioned
85
+ .map((item) => item.table)
86
+ .filter((table) => table.relation !== root.relation);
87
+ const joined = [{ table: root, alias: 'warehouse' }];
88
+ const joins = [];
89
+ let remaining = [...requestedTables];
90
+ while (remaining.length > 0) {
91
+ let next;
92
+ let nextIndex = -1;
93
+ for (let index = 0; index < remaining.length && !next; index += 1) {
94
+ const candidate = remaining[index];
95
+ for (const left of joined) {
96
+ const pair = bestWarehouseJoinKeyPair(left.table, candidate);
97
+ if (!pair)
98
+ continue;
99
+ nextIndex = index;
100
+ next = {
101
+ table: candidate,
102
+ alias: `warehouse_${joined.length}`,
103
+ leftAlias: left.alias,
104
+ leftKey: pair.leftKey,
105
+ rightKey: pair.rightKey,
106
+ };
107
+ break;
108
+ }
109
+ }
110
+ if (!next)
111
+ break;
112
+ joins.push(next);
113
+ joined.push({ table: next.table, alias: next.alias });
114
+ remaining.splice(nextIndex, 1);
115
+ }
116
+ const selectedNames = new Set(root.columns.map((column) => column.name.toLowerCase()));
117
+ const extraSelections = joins.flatMap((join) => join.table.columns
118
+ .filter((column) => column.name !== join.rightKey)
119
+ .map((column) => {
120
+ const duplicate = selectedNames.has(column.name.toLowerCase());
121
+ selectedNames.add(column.name.toLowerCase());
122
+ const output = duplicate ? `${relationBaseName(join.table.relation)}_${column.name}` : column.name;
123
+ return ` ${join.alias}.${quoteIdentifier(column.name)} AS ${quoteIdentifier(output)}`;
124
+ }));
125
+ const selections = [' warehouse.*', ...extraSelections];
126
+ return [
127
+ 'SELECT',
128
+ selections.join(',\n'),
129
+ `FROM ${root.relation} AS warehouse`,
130
+ ...joins.map((join) => `LEFT JOIN ${join.table.relation} AS ${join.alias}\n ON ${join.leftAlias}.${quoteIdentifier(join.leftKey)} = ${join.alias}.${quoteIdentifier(join.rightKey)}`),
131
+ ].join('\n');
132
+ }
133
+ /**
134
+ * Extract the common OSS notebook pattern where a warehouse query directly
135
+ * joins one registered local dataset. The result is deliberately conservative:
136
+ * ambiguous joins return null so the user is asked instead of receiving unsafe SQL.
137
+ */
138
+ export function planMixedSourceSql(sql, datasetAliases) {
139
+ for (const localDataset of datasetAliases) {
140
+ const relation = escapeRegExp(localDataset);
141
+ const joinPattern = new RegExp(`\\s+(?:(?:inner|left|right|full|cross)\\s+)?join\\s+(?:["\\x60])?${relation}(?:["\\x60])?`
142
+ + `(?:\\s+(?:as\\s+)?((?!on\\b)[a-zA-Z_][a-zA-Z0-9_$]*))?\\s+on\\s+`
143
+ + `([\\s\\S]*?)(?=\\s+(?:(?:inner|left|right|full|cross)\\s+)?join\\b|\\s+where\\b|\\s+group\\s+by\\b|\\s+order\\s+by\\b|\\s+limit\\b|$)`, 'i');
144
+ const join = joinPattern.exec(sql);
145
+ if (!join)
146
+ continue;
147
+ const localAlias = join[1] || localDataset;
148
+ const equality = findLocalEquality(join[2], localAlias, localDataset);
149
+ if (!equality)
150
+ return null;
151
+ const warehouseSqlWithoutJoin = `${sql.slice(0, join.index)} ${sql.slice(join.index + join[0].length)}`
152
+ .replace(/\s+/g, ' ')
153
+ .trim();
154
+ if (relationPattern(localDataset).test(warehouseSqlWithoutJoin))
155
+ return null;
156
+ const warehouseKey = lastIdentifier(equality.warehouseExpression);
157
+ if (!warehouseKey)
158
+ return null;
159
+ const warehouseSql = ensureSelectedJoinKey(warehouseSqlWithoutJoin, equality.warehouseExpression, warehouseKey);
160
+ return {
161
+ localDataset,
162
+ localAlias,
163
+ localKey: equality.localKey,
164
+ warehouseKey,
165
+ warehouseExpression: equality.warehouseExpression,
166
+ warehouseSql,
167
+ };
168
+ }
169
+ return null;
170
+ }
171
+ function findLocalEquality(predicate, localAlias, localDataset) {
172
+ const localQualifiers = new Set([localAlias, localDataset].map(normalizeIdentifier));
173
+ for (const condition of predicate.split(/\s+and\s+/i)) {
174
+ const match = condition.trim().match(/^([a-zA-Z_][\w$]*\s*\.\s*["\x60]?[a-zA-Z_][\w$]*["\x60]?)\s*=\s*([a-zA-Z_][\w$]*\s*\.\s*["\x60]?[a-zA-Z_][\w$]*["\x60]?)$/i);
175
+ if (!match)
176
+ continue;
177
+ const left = qualifiedIdentifier(match[1]);
178
+ const right = qualifiedIdentifier(match[2]);
179
+ if (left && localQualifiers.has(left.qualifier)) {
180
+ return { localKey: left.column, warehouseExpression: match[2].replace(/\s+/g, '') };
181
+ }
182
+ if (right && localQualifiers.has(right.qualifier)) {
183
+ return { localKey: right.column, warehouseExpression: match[1].replace(/\s+/g, '') };
184
+ }
185
+ }
186
+ return null;
187
+ }
188
+ function ensureSelectedJoinKey(sql, expression, outputName) {
189
+ const select = sql.match(/^\s*select\s+([\s\S]*?)\s+from\s+/i);
190
+ if (!select || select[1].includes('*') || normalizeSql(select[1]).includes(normalizeSql(expression)))
191
+ return sql;
192
+ const replacement = `SELECT ${select[1].trim()}, ${expression} AS "${outputName.replace(/"/g, '""')}" FROM `;
193
+ return `${replacement}${sql.slice(select.index + select[0].length)}`;
194
+ }
195
+ function qualifiedIdentifier(value) {
196
+ const match = value.replace(/\s+/g, '').match(/^([^.]*)\.(.*)$/);
197
+ if (!match)
198
+ return null;
199
+ return { qualifier: normalizeIdentifier(match[1]), column: normalizeIdentifier(match[2]) };
200
+ }
201
+ function lastIdentifier(value) {
202
+ return normalizeIdentifier(value.split('.').pop() ?? '');
203
+ }
204
+ function normalizeIdentifier(value) {
205
+ return value.replace(/^["\x60]|["\x60]$/g, '').toLowerCase();
206
+ }
207
+ function bestJoinKeyPair(table, dataset) {
208
+ const entityTokens = identifierTokens(dataset.alias)
209
+ .filter((token) => token !== 'csv' && token !== 'dataset' && token !== 'data')
210
+ .map(singularToken);
211
+ const pairs = table.columns.flatMap((warehouse) => dataset.columns.map((local) => {
212
+ const warehouseName = normalizeIdentifier(warehouse.name);
213
+ const localName = normalizeIdentifier(local.name);
214
+ let score = 0;
215
+ if (warehouseName === localName)
216
+ score = 100;
217
+ else if (localName === 'id' && warehouseName.endsWith('_id')) {
218
+ const owner = singularToken(warehouseName.slice(0, -3));
219
+ score = entityTokens.includes(owner) ? 96 : 55;
220
+ }
221
+ else if (warehouseName === 'id' && localName.endsWith('_id'))
222
+ score = 80;
223
+ else if (canonicalKey(warehouseName) === canonicalKey(localName))
224
+ score = 90;
225
+ if (local.flags?.includes('identifier'))
226
+ score += 4;
227
+ return { warehouseKey: warehouse.name, localKey: local.name, score };
228
+ }));
229
+ const best = pairs.sort((a, b) => b.score - a.score)[0];
230
+ return best && best.score >= 70 ? best : undefined;
231
+ }
232
+ function bestWarehouseJoinKeyPair(left, right) {
233
+ const rightByName = new Map(right.columns.map((column) => [column.name.toLowerCase(), column.name]));
234
+ const candidates = left.columns.flatMap((column) => {
235
+ const key = column.name.toLowerCase();
236
+ const rightKey = rightByName.get(key);
237
+ if (!rightKey || !/(^id$|_id$|^key$|_key$)/i.test(key))
238
+ return [];
239
+ return [{ leftKey: column.name, rightKey, score: key === 'id' ? 80 : 100 }];
240
+ });
241
+ return candidates.sort((a, b) => b.score - a.score)[0];
242
+ }
243
+ function tableMentionScore(question, relation) {
244
+ const questionText = identifierTokens(question).map(singularToken).join(' ');
245
+ const tokens = identifierTokens(relation).map(singularToken);
246
+ if (tokens.length === 0)
247
+ return 0;
248
+ const suffix = tokens.slice(-2).join(' ');
249
+ if (suffix && questionText.includes(suffix))
250
+ return 1_000 + suffix.length;
251
+ const tableName = tokens[tokens.length - 1];
252
+ return tableName.length > 2 && new RegExp(`(?:^| )${escapeRegExp(tableName)}(?: |$)`).test(questionText)
253
+ ? 400 + tableName.length
254
+ : 0;
255
+ }
256
+ function deduplicateSchemaRelations(tables) {
257
+ const bySuffix = new Map();
258
+ for (const table of tables) {
259
+ const tokens = identifierTokens(table.relation);
260
+ const key = tokens.slice(-2).join('.');
261
+ const current = bySuffix.get(key);
262
+ if (!current || table.relation.length < current.relation.length)
263
+ bySuffix.set(key, table);
264
+ }
265
+ return [...bySuffix.values()];
266
+ }
267
+ function relationBaseName(relation) {
268
+ return normalizeIdentifier(relation.split('.').pop() ?? 'source');
269
+ }
270
+ function quoteIdentifier(value) {
271
+ return `"${value.replace(/"/g, '""')}"`;
272
+ }
273
+ function extractWarehouseRelations(sql) {
274
+ const relations = [];
275
+ const pattern = /\b(?:from|join)\s+([a-zA-Z_][a-zA-Z0-9_$]*(?:\.[a-zA-Z_][a-zA-Z0-9_$]*){0,2})/gi;
276
+ for (const match of sql.matchAll(pattern)) {
277
+ if (!relations.includes(match[1]))
278
+ relations.push(match[1]);
279
+ }
280
+ return relations;
281
+ }
282
+ function relationAlias(sql, relation) {
283
+ const escaped = escapeRegExp(relation);
284
+ const match = sql.match(new RegExp(`\\b(?:from|join)\\s+(?:["\\x60])?${escaped}(?:["\\x60])?(?:\\s+(?:as\\s+)?([a-zA-Z_][a-zA-Z0-9_$]*))?`, 'i'));
285
+ const alias = match?.[1];
286
+ return alias && !/^(where|join|left|right|inner|full|cross|group|order|limit)$/i.test(alias)
287
+ ? alias
288
+ : undefined;
289
+ }
290
+ function identifierTokens(value) {
291
+ return value.toLowerCase().match(/[a-z0-9]+/g) ?? [];
292
+ }
293
+ function singularToken(value) {
294
+ return value.endsWith('ies') ? `${value.slice(0, -3)}y` : value.endsWith('s') ? value.slice(0, -1) : value;
295
+ }
296
+ function normalizeDatasetMention(value) {
297
+ return identifierTokens(value).map(singularToken).join('');
298
+ }
299
+ function canonicalKey(value) {
300
+ return value.replace(/[^a-z0-9]/g, '').replace(/identifier$/, 'id');
301
+ }
302
+ function normalizeSql(value) {
303
+ return value.replace(/["\x60\s]/g, '').toLowerCase();
304
+ }
305
+ function relationPattern(alias) {
306
+ return new RegExp(`(?:^|[^a-zA-Z0-9_])(?:["\\x60])?${escapeRegExp(alias)}(?:["\\x60])?(?=$|[^a-zA-Z0-9_])`, 'i');
307
+ }
308
+ function escapeRegExp(value) {
309
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
310
+ }
311
+ //# sourceMappingURL=mixed-source-sql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mixed-source-sql.js","sourceRoot":"","sources":["../src/mixed-source-sql.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import type { ConnectionConfig, QueryExecutor } from "@duckcodeailabs/dql-connectors";
2
+ export type DatasetStorageMode = "local" | "project" | "staged";
3
+ export type DatasetTrustState = "local_ad_hoc" | "project_controlled" | "governed_snapshot" | "review_required";
4
+ export interface DatasetColumn {
5
+ name: string;
6
+ type: string;
7
+ nullable?: boolean;
8
+ nullCount?: number;
9
+ distinctCount?: number;
10
+ sampleValues?: unknown[];
11
+ flags?: Array<"identifier" | "date" | "measure" | "null_heavy" | "sensitive">;
12
+ }
13
+ export interface DatasetProfile {
14
+ rowCount: number;
15
+ sampledRows: number;
16
+ columns: DatasetColumn[];
17
+ duplicateRows?: number;
18
+ warnings: string[];
19
+ preview: Array<Record<string, unknown>>;
20
+ }
21
+ export interface DatasetLineage {
22
+ connectionName?: string;
23
+ query?: string;
24
+ blockPath?: string;
25
+ semanticMetrics?: string[];
26
+ semanticDimensions?: string[];
27
+ filters?: Record<string, unknown>;
28
+ parameters?: Record<string, unknown>;
29
+ extractedAt?: string;
30
+ rowCount?: number;
31
+ byteCount?: number;
32
+ sourceFingerprint?: string;
33
+ resultFingerprint?: string;
34
+ }
35
+ export interface DatasetSource {
36
+ id: string;
37
+ name: string;
38
+ alias: string;
39
+ description?: string;
40
+ owner?: string;
41
+ tags: string[];
42
+ sourcePath: string;
43
+ storageMode: DatasetStorageMode;
44
+ format: "csv" | "parquet" | "json";
45
+ fileFingerprint: string;
46
+ sizeBytes: number;
47
+ modifiedAt: string;
48
+ importedAt: string;
49
+ refreshedAt: string;
50
+ profile: DatasetProfile;
51
+ trustState: DatasetTrustState;
52
+ linked?: boolean;
53
+ pinned?: boolean;
54
+ expiresAt?: string;
55
+ lineage?: DatasetLineage;
56
+ schemaDrift?: {
57
+ detectedAt: string;
58
+ added: string[];
59
+ removed: string[];
60
+ changed: Array<{
61
+ column: string;
62
+ before: string;
63
+ after: string;
64
+ }>;
65
+ };
66
+ schemaOverrides?: Record<string, string>;
67
+ }
68
+ export interface ImportDatasetInput {
69
+ filename?: string;
70
+ sourcePath?: string;
71
+ /** Base64 encoded file contents. File bodies are never placed in AI context. */
72
+ contentBase64?: string;
73
+ /** Multipart uploads arrive as bytes without JSON/base64 expansion. */
74
+ content?: Buffer;
75
+ storageMode?: "local" | "project";
76
+ link?: boolean;
77
+ name?: string;
78
+ alias?: string;
79
+ description?: string;
80
+ owner?: string;
81
+ tags?: string[];
82
+ }
83
+ export declare class NotebookDatasetWorkspace {
84
+ readonly projectRoot: string;
85
+ private readonly executor;
86
+ readonly localRoot: string;
87
+ readonly datasetRoot: string;
88
+ readonly stagedRoot: string;
89
+ readonly databasePath: string;
90
+ readonly localConnection: ConnectionConfig;
91
+ constructor(projectRoot: string, executor: QueryExecutor, moduleSearchPaths?: string[]);
92
+ list(): DatasetSource[];
93
+ get(id: string): DatasetSource | undefined;
94
+ initialize(): Promise<void>;
95
+ import(input: ImportDatasetInput): Promise<{
96
+ dataset: DatasetSource;
97
+ duplicate: boolean;
98
+ }>;
99
+ refresh(id: string): Promise<DatasetSource>;
100
+ rename(id: string, name: string, alias?: string): DatasetSource;
101
+ updateSchema(id: string, overrides: Record<string, string>): Promise<DatasetSource>;
102
+ pin(id: string, pinned: boolean): DatasetSource;
103
+ remove(id: string): void;
104
+ stageRows(input: {
105
+ name: string;
106
+ rows: Array<Record<string, unknown>>;
107
+ lineage: DatasetLineage;
108
+ expiresInDays?: number;
109
+ }): Promise<DatasetSource>;
110
+ registerView(dataset: DatasetSource): Promise<void>;
111
+ private inspect;
112
+ private require;
113
+ private absolutePath;
114
+ private upsert;
115
+ private readLocalRegistry;
116
+ private writeLocalRegistry;
117
+ private readProjectRegistry;
118
+ private writeProjectRegistry;
119
+ }
120
+ //# sourceMappingURL=notebook-datasets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notebook-datasets.d.ts","sourceRoot":"","sources":["../src/notebook-datasets.ts"],"names":[],"mappings":"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"}