@fabric-harness/databricks 0.16.1 → 1.0.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 (101) hide show
  1. package/dist/agent.d.ts +45 -0
  2. package/dist/agent.d.ts.map +1 -0
  3. package/dist/agent.js +206 -0
  4. package/dist/agent.js.map +1 -0
  5. package/dist/ai.d.ts +19 -0
  6. package/dist/ai.d.ts.map +1 -0
  7. package/dist/ai.js +22 -0
  8. package/dist/ai.js.map +1 -0
  9. package/dist/app.d.ts +81 -0
  10. package/dist/app.d.ts.map +1 -0
  11. package/dist/app.js +87 -0
  12. package/dist/app.js.map +1 -0
  13. package/dist/client.d.ts +44 -0
  14. package/dist/client.d.ts.map +1 -0
  15. package/dist/client.js +114 -0
  16. package/dist/client.js.map +1 -0
  17. package/dist/consumption.d.ts +45 -0
  18. package/dist/consumption.d.ts.map +1 -0
  19. package/dist/consumption.js +85 -0
  20. package/dist/consumption.js.map +1 -0
  21. package/dist/cost-budget-actuals.d.ts +27 -0
  22. package/dist/cost-budget-actuals.d.ts.map +1 -0
  23. package/dist/cost-budget-actuals.js +265 -0
  24. package/dist/cost-budget-actuals.js.map +1 -0
  25. package/dist/embeddings.d.ts +18 -0
  26. package/dist/embeddings.d.ts.map +1 -0
  27. package/dist/embeddings.js +24 -0
  28. package/dist/embeddings.js.map +1 -0
  29. package/dist/feature-serving.d.ts +17 -0
  30. package/dist/feature-serving.d.ts.map +1 -0
  31. package/dist/feature-serving.js +29 -0
  32. package/dist/feature-serving.js.map +1 -0
  33. package/dist/genie.d.ts +22 -0
  34. package/dist/genie.d.ts.map +1 -0
  35. package/dist/genie.js +60 -0
  36. package/dist/genie.js.map +1 -0
  37. package/dist/governance.d.ts +70 -0
  38. package/dist/governance.d.ts.map +1 -0
  39. package/dist/governance.js +123 -0
  40. package/dist/governance.js.map +1 -0
  41. package/dist/identity.d.ts +72 -0
  42. package/dist/identity.d.ts.map +1 -0
  43. package/dist/identity.js +119 -0
  44. package/dist/identity.js.map +1 -0
  45. package/dist/index.d.ts +143 -80
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +111 -227
  48. package/dist/index.js.map +1 -1
  49. package/dist/lakebase.d.ts +49 -0
  50. package/dist/lakebase.d.ts.map +1 -0
  51. package/dist/lakebase.js +25 -0
  52. package/dist/lakebase.js.map +1 -0
  53. package/dist/lakeflow.d.ts +28 -0
  54. package/dist/lakeflow.d.ts.map +1 -0
  55. package/dist/lakeflow.js +75 -0
  56. package/dist/lakeflow.js.map +1 -0
  57. package/dist/mlflow-tracing.d.ts +111 -0
  58. package/dist/mlflow-tracing.d.ts.map +1 -0
  59. package/dist/mlflow-tracing.js +167 -0
  60. package/dist/mlflow-tracing.js.map +1 -0
  61. package/dist/mock-provider.d.ts +26 -0
  62. package/dist/mock-provider.d.ts.map +1 -0
  63. package/dist/mock-provider.js +66 -0
  64. package/dist/mock-provider.js.map +1 -0
  65. package/dist/model.d.ts +29 -0
  66. package/dist/model.d.ts.map +1 -0
  67. package/dist/model.js +50 -0
  68. package/dist/model.js.map +1 -0
  69. package/dist/persistence.d.ts +73 -0
  70. package/dist/persistence.d.ts.map +1 -0
  71. package/dist/persistence.js +82 -0
  72. package/dist/persistence.js.map +1 -0
  73. package/dist/serving-usage.d.ts +48 -0
  74. package/dist/serving-usage.d.ts.map +1 -0
  75. package/dist/serving-usage.js +100 -0
  76. package/dist/serving-usage.js.map +1 -0
  77. package/dist/sql-exec.d.ts +17 -0
  78. package/dist/sql-exec.d.ts.map +1 -0
  79. package/dist/sql-exec.js +36 -0
  80. package/dist/sql-exec.js.map +1 -0
  81. package/dist/sql-sandbox.d.ts +1 -1
  82. package/dist/sql-sandbox.d.ts.map +1 -1
  83. package/dist/sql-sandbox.js +1 -1
  84. package/dist/sql-sandbox.js.map +1 -1
  85. package/dist/telemetry-sink.d.ts +29 -0
  86. package/dist/telemetry-sink.d.ts.map +1 -0
  87. package/dist/telemetry-sink.js +129 -0
  88. package/dist/telemetry-sink.js.map +1 -0
  89. package/dist/tools.d.ts +71 -0
  90. package/dist/tools.d.ts.map +1 -0
  91. package/dist/tools.js +176 -0
  92. package/dist/tools.js.map +1 -0
  93. package/dist/vector-search.d.ts +24 -0
  94. package/dist/vector-search.d.ts.map +1 -0
  95. package/dist/vector-search.js +63 -0
  96. package/dist/vector-search.js.map +1 -0
  97. package/dist/volumes-attachment-store.d.ts +64 -0
  98. package/dist/volumes-attachment-store.d.ts.map +1 -0
  99. package/dist/volumes-attachment-store.js +172 -0
  100. package/dist/volumes-attachment-store.js.map +1 -0
  101. package/package.json +20 -3
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { DatabricksTokenProvider } from './identity.js';
2
+ /**
3
+ * Databricks Lakebase is managed Postgres. This builds a Postgres client whose **password is the
4
+ * rotating OAuth token** (from {@link databricksIdentity}) rather than a static string: `pg.Pool`
5
+ * evaluates the `password` function for every new connection, so a long-lived pool never pins a
6
+ * stale token. The returned client is structurally compatible with `PostgresClientLike` from
7
+ * `@fabric-harness/node`, so it drops straight into `new PostgresSessionStore({ client })` (and the
8
+ * Postgres cost-budget / session-memory stores) — sessions + dispatch journal live in the lakehouse.
9
+ *
10
+ * Kept decoupled from `@fabric-harness/node` on purpose: this package owns the rotating-token
11
+ * client; store assembly happens at the app / `databricks()` bundle layer where `node` is present.
12
+ */
13
+ export interface LakebaseClient {
14
+ query<T = Record<string, unknown>>(sql: string, params?: unknown[]): Promise<{
15
+ rows: T[];
16
+ }>;
17
+ end(): Promise<void>;
18
+ }
19
+ export interface LakebasePoolConfig {
20
+ host: string;
21
+ port: number;
22
+ database: string;
23
+ user: string;
24
+ /** Static password or a resolver evaluated per new connection (the rotating token path). */
25
+ password: string | (() => string | Promise<string>);
26
+ ssl?: boolean | {
27
+ rejectUnauthorized?: boolean;
28
+ };
29
+ max?: number;
30
+ }
31
+ export type LakebasePoolFactory = (config: LakebasePoolConfig) => LakebaseClient;
32
+ export interface LakebaseClientOptions {
33
+ host: string;
34
+ database: string;
35
+ user: string;
36
+ /** Rotating OAuth token (from {@link databricksIdentity}) or a static password. */
37
+ token: string | DatabricksTokenProvider;
38
+ /** Default 5432. */
39
+ port?: number;
40
+ /** Default `{ rejectUnauthorized: true }` — Lakebase requires TLS. */
41
+ ssl?: boolean | {
42
+ rejectUnauthorized?: boolean;
43
+ };
44
+ max?: number;
45
+ /** Inject a pg-like Pool factory for testing; defaults to the optional `pg` package. */
46
+ poolFactory?: LakebasePoolFactory;
47
+ }
48
+ export declare function lakebaseClient(options: LakebaseClientOptions): LakebaseClient;
49
+ //# sourceMappingURL=lakebase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lakebase.d.ts","sourceRoot":"","sources":["../src/lakebase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAI7D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,EAAE,CAAA;KAAE,CAAC,CAAC;IAC5F,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,4FAA4F;IAC5F,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,GAAG,CAAC,EAAE,OAAO,GAAG;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,kBAAkB,KAAK,cAAc,CAAC;AAEjF,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,KAAK,EAAE,MAAM,GAAG,uBAAuB,CAAC;IACxC,oBAAoB;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,GAAG,CAAC,EAAE,OAAO,GAAG;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,cAAc,CAW7E"}
@@ -0,0 +1,25 @@
1
+ import { createRequire } from 'node:module';
2
+ const require = createRequire(import.meta.url);
3
+ export function lakebaseClient(options) {
4
+ const factory = options.poolFactory ?? defaultPoolFactory();
5
+ return factory({
6
+ host: options.host,
7
+ port: options.port ?? 5432,
8
+ database: options.database,
9
+ user: options.user,
10
+ password: options.token,
11
+ ssl: options.ssl ?? { rejectUnauthorized: true },
12
+ ...(options.max !== undefined ? { max: options.max } : {}),
13
+ });
14
+ }
15
+ function defaultPoolFactory() {
16
+ let PoolCtor;
17
+ try {
18
+ PoolCtor = require('pg').Pool;
19
+ }
20
+ catch (error) {
21
+ throw new Error(`Lakebase store requires the optional "pg" package to be installed by the application. Run: pnpm add pg. ${error instanceof Error ? error.message : String(error)}`);
22
+ }
23
+ return (config) => new PoolCtor(config);
24
+ }
25
+ //# sourceMappingURL=lakebase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lakebase.js","sourceRoot":"","sources":["../src/lakebase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AA8C/C,MAAM,UAAU,cAAc,CAAC,OAA8B;IAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,IAAI,kBAAkB,EAAE,CAAC;IAC5D,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,OAAO,CAAC,KAAK;QACvB,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAChD,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB;IACzB,IAAI,QAA4D,CAAC;IACjE,IAAI,CAAC;QACH,QAAQ,GAAI,OAAO,CAAC,IAAI,CAAkE,CAAC,IAAI,CAAC;IAClG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,2GAA2G,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvL,CAAC;IACD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { ToolDef } from '@fabric-harness/sdk';
2
+ import type { DatabricksRestClient } from './client.js';
3
+ type ToolMeta = {
4
+ name?: string;
5
+ description?: string;
6
+ };
7
+ /**
8
+ * Lakeflow Declarative Pipelines (formerly DLT). These drive heavy continuous-compute consumption.
9
+ * `start`/`stop` mutate pipeline state (`effect: 'execute'`, governable); `list`/`status` are reads.
10
+ */
11
+ export declare function databricksPipelineListTool(client: DatabricksRestClient, options?: ToolMeta): ToolDef<{
12
+ maxResults?: number;
13
+ filter?: string;
14
+ }, unknown>;
15
+ export declare function databricksPipelineStatusTool(client: DatabricksRestClient, options?: ToolMeta): ToolDef<{
16
+ pipelineId: string;
17
+ }, unknown>;
18
+ export declare function databricksPipelineStartTool(client: DatabricksRestClient, options?: ToolMeta): ToolDef<{
19
+ pipelineId: string;
20
+ fullRefresh?: boolean;
21
+ }, unknown>;
22
+ export declare function databricksPipelineStopTool(client: DatabricksRestClient, options?: ToolMeta): ToolDef<{
23
+ pipelineId: string;
24
+ }, unknown>;
25
+ /** The default Lakeflow tool set added by the bundle's `lakeflow` option. */
26
+ export declare function databricksLakeflowTools(client: DatabricksRestClient): ToolDef[];
27
+ export {};
28
+ //# sourceMappingURL=lakeflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lakeflow.d.ts","sourceRoot":"","sources":["../src/lakeflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGxD,KAAK,QAAQ,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD;;;GAGG;AAEH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,oBAAoB,EAAE,OAAO,GAAE,QAAa,GAAG,OAAO,CAAC;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,CAAC,CAe3J;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,oBAAoB,EAAE,OAAO,GAAE,QAAa,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,CAAC,CAa3I;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,oBAAoB,EAAE,OAAO,GAAE,QAAa,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,OAAO,CAAC,CAejK;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,oBAAoB,EAAE,OAAO,GAAE,QAAa,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,CAAC,CAazI;AAED,6EAA6E;AAC7E,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,EAAE,CAO/E"}
@@ -0,0 +1,75 @@
1
+ const enc = encodeURIComponent;
2
+ /**
3
+ * Lakeflow Declarative Pipelines (formerly DLT). These drive heavy continuous-compute consumption.
4
+ * `start`/`stop` mutate pipeline state (`effect: 'execute'`, governable); `list`/`status` are reads.
5
+ */
6
+ export function databricksPipelineListTool(client, options = {}) {
7
+ return {
8
+ name: options.name ?? 'databricks_pipeline_list',
9
+ description: options.description ?? 'List Lakeflow Declarative Pipelines (DLT) in the workspace.',
10
+ inputSchema: {
11
+ type: 'object',
12
+ additionalProperties: false,
13
+ properties: { maxResults: { type: 'number', minimum: 1 }, filter: { type: 'string' } },
14
+ },
15
+ metadata: { effect: 'read', provider: 'databricks', service: 'lakeflow' },
16
+ execute: (input) => client.get('/api/2.0/pipelines', {
17
+ ...(input.maxResults !== undefined ? { max_results: input.maxResults } : {}),
18
+ ...(input.filter ? { filter: input.filter } : {}),
19
+ }),
20
+ };
21
+ }
22
+ export function databricksPipelineStatusTool(client, options = {}) {
23
+ return {
24
+ name: options.name ?? 'databricks_pipeline_status',
25
+ description: options.description ?? 'Get a Lakeflow pipeline, including its state and latest updates.',
26
+ inputSchema: {
27
+ type: 'object',
28
+ additionalProperties: false,
29
+ properties: { pipelineId: { type: 'string' } },
30
+ required: ['pipelineId'],
31
+ },
32
+ metadata: { effect: 'read', provider: 'databricks', service: 'lakeflow' },
33
+ execute: (input) => client.get(`/api/2.0/pipelines/${enc(input.pipelineId)}`),
34
+ };
35
+ }
36
+ export function databricksPipelineStartTool(client, options = {}) {
37
+ return {
38
+ name: options.name ?? 'databricks_pipeline_start',
39
+ description: options.description ?? 'Trigger a Lakeflow pipeline update (run). Set fullRefresh to reprocess all data.',
40
+ inputSchema: {
41
+ type: 'object',
42
+ additionalProperties: false,
43
+ properties: { pipelineId: { type: 'string' }, fullRefresh: { type: 'boolean' } },
44
+ required: ['pipelineId'],
45
+ },
46
+ metadata: { effect: 'execute', provider: 'databricks', service: 'lakeflow' },
47
+ execute: (input) => client.post(`/api/2.0/pipelines/${enc(input.pipelineId)}/updates`, {
48
+ ...(input.fullRefresh !== undefined ? { full_refresh: input.fullRefresh } : {}),
49
+ }),
50
+ };
51
+ }
52
+ export function databricksPipelineStopTool(client, options = {}) {
53
+ return {
54
+ name: options.name ?? 'databricks_pipeline_stop',
55
+ description: options.description ?? 'Stop the active update of a Lakeflow pipeline.',
56
+ inputSchema: {
57
+ type: 'object',
58
+ additionalProperties: false,
59
+ properties: { pipelineId: { type: 'string' } },
60
+ required: ['pipelineId'],
61
+ },
62
+ metadata: { effect: 'execute', provider: 'databricks', service: 'lakeflow' },
63
+ execute: (input) => client.post(`/api/2.0/pipelines/${enc(input.pipelineId)}/stop`),
64
+ };
65
+ }
66
+ /** The default Lakeflow tool set added by the bundle's `lakeflow` option. */
67
+ export function databricksLakeflowTools(client) {
68
+ return [
69
+ databricksPipelineListTool(client),
70
+ databricksPipelineStatusTool(client),
71
+ databricksPipelineStartTool(client),
72
+ databricksPipelineStopTool(client),
73
+ ];
74
+ }
75
+ //# sourceMappingURL=lakeflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lakeflow.js","sourceRoot":"","sources":["../src/lakeflow.ts"],"names":[],"mappings":"AAGA,MAAM,GAAG,GAAG,kBAAkB,CAAC;AAG/B;;;GAGG;AAEH,MAAM,UAAU,0BAA0B,CAAC,MAA4B,EAAE,UAAoB,EAAE;IAC7F,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,0BAA0B;QAChD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,6DAA6D;QACjG,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;SACvF;QACD,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE;QACzE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE;YACnD,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC;KACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAA4B,EAAE,UAAoB,EAAE;IAC/F,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,4BAA4B;QAClD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,kEAAkE;QACtG,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC9C,QAAQ,EAAE,CAAC,YAAY,CAAC;SACzB;QACD,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE;QACzE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;KAC9E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAA4B,EAAE,UAAoB,EAAE;IAC9F,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,2BAA2B;QACjD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,kFAAkF;QACtH,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;YAChF,QAAQ,EAAE,CAAC,YAAY,CAAC;SACzB;QACD,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE;QAC5E,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE;YACrF,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAA4B,EAAE,UAAoB,EAAE;IAC7F,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,0BAA0B;QAChD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,gDAAgD;QACpF,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC9C,QAAQ,EAAE,CAAC,YAAY,CAAC;SACzB;QACD,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE;QAC5E,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;KACpF,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,uBAAuB,CAAC,MAA4B;IAClE,OAAO;QACL,0BAA0B,CAAC,MAAM,CAAY;QAC7C,4BAA4B,CAAC,MAAM,CAAY;QAC/C,2BAA2B,CAAC,MAAM,CAAY;QAC9C,0BAA0B,CAAC,MAAM,CAAY;KAC9C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,111 @@
1
+ import type { FabricEvent, SubmissionTelemetrySink, TelemetrySpan } from '@fabric-harness/sdk';
2
+ import type { DatabricksRestClient } from './client.js';
3
+ /**
4
+ * MLflow trace export (v2 migration, workstream C6): one MLflow trace per
5
+ * settled submission, so agent activity shows up in the workspace's MLflow
6
+ * experiment UI next to models and evaluations.
7
+ *
8
+ * Wiring: `sink` goes into `createSubmissionRunner({ telemetry })` and
9
+ * `onEvent` fans in with the app's `onEvent` callback. A `submission_started`
10
+ * telemetry event opens a span buffer keyed by the store session id
11
+ * (`agent:<agent>:<instanceId>:<session>` — the `sessionId` stamped on
12
+ * `FabricEvent`s during the attempt); every event that matches an open buffer
13
+ * and converts via the SDK's `eventToTelemetrySpan` (i.e. carries
14
+ * `data.durationMs`) is appended as a child span. `submission_settled` builds
15
+ * the trace and POSTs it to the MLflow **V3 traces API**
16
+ * (`POST /api/3.0/mlflow/traces`), then drops the buffer.
17
+ *
18
+ * The V3 payload ({@link buildMlflowTrace}) is implemented to the published
19
+ * API spec — OTLP-shaped spans with base64 ids, unix-nano timestamps and
20
+ * typed attributes — but live verification requires a workspace: run the
21
+ * live-gated smoke test (`DATABRICKS_LIVE_TEST=1` +
22
+ * `DATABRICKS_MLFLOW_EXPERIMENT_ID`) against yours before relying on it.
23
+ *
24
+ * Both `sink.record` and `onEvent` never throw — failures (including the
25
+ * async POST) are reported through `onError`.
26
+ */
27
+ export interface MlflowTraceExporterOptions {
28
+ client: DatabricksRestClient;
29
+ /** MLflow experiment receiving the traces. */
30
+ experimentId: string;
31
+ /** Failure reporter (default console.error). */
32
+ onError?: (context: string, error: unknown) => void;
33
+ }
34
+ export interface MlflowTraceExporter {
35
+ /** Wire into `createSubmissionRunner({ telemetry })`. */
36
+ sink: SubmissionTelemetrySink;
37
+ /** Fan in with the app's `onEvent` to capture per-turn/tool spans. */
38
+ onEvent: (event: FabricEvent) => void;
39
+ }
40
+ export declare function mlflowTraceExporter(options: MlflowTraceExporterOptions): MlflowTraceExporter;
41
+ export interface MlflowTraceInput {
42
+ submissionId: string;
43
+ agent: string;
44
+ instanceId: string;
45
+ session: string;
46
+ experimentId: string;
47
+ /** Epoch ms when the submission started executing. */
48
+ startedAtMs: number;
49
+ /** Epoch ms when the submission settled. */
50
+ settledAtMs: number;
51
+ state: 'OK' | 'ERROR';
52
+ /** Child spans (from `eventToTelemetrySpan`) buffered during execution. */
53
+ spans: TelemetrySpan[];
54
+ attemptCount?: number;
55
+ tenantId?: string;
56
+ error?: string;
57
+ }
58
+ interface OtlpAttribute {
59
+ key: string;
60
+ value: {
61
+ string_value: string;
62
+ } | {
63
+ double_value: number;
64
+ } | {
65
+ int_value: string;
66
+ };
67
+ }
68
+ interface MlflowSpan {
69
+ trace_id: string;
70
+ span_id: string;
71
+ parent_span_id?: string;
72
+ name: string;
73
+ start_time_unix_nano: string;
74
+ end_time_unix_nano: string;
75
+ attributes: OtlpAttribute[];
76
+ status: {
77
+ code: 'STATUS_CODE_OK' | 'STATUS_CODE_ERROR';
78
+ message?: string;
79
+ };
80
+ }
81
+ export interface MlflowTracePayload {
82
+ trace: {
83
+ trace_info: {
84
+ trace_id: string;
85
+ trace_location: {
86
+ type: 'MLFLOW_EXPERIMENT';
87
+ mlflow_experiment: {
88
+ experiment_id: string;
89
+ };
90
+ };
91
+ request_time: string;
92
+ execution_duration: string;
93
+ state: 'OK' | 'ERROR';
94
+ trace_metadata: Record<string, string>;
95
+ tags: Record<string, string>;
96
+ };
97
+ trace_data: {
98
+ spans: MlflowSpan[];
99
+ };
100
+ };
101
+ }
102
+ /**
103
+ * Build the MLflow V3 `POST /api/3.0/mlflow/traces` payload for one settled
104
+ * submission. Pure and deterministic: trace/span ids derive from the
105
+ * submission id (+ span index) via SHA-256, so replaying the same settled
106
+ * submission produces byte-identical ids. The root span covers the whole
107
+ * submission; buffered {@link TelemetrySpan}s become its children.
108
+ */
109
+ export declare function buildMlflowTrace(input: MlflowTraceInput): MlflowTracePayload;
110
+ export {};
111
+ //# sourceMappingURL=mlflow-tracing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mlflow-tracing.d.ts","sourceRoot":"","sources":["../src/mlflow-tracing.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,uBAAuB,EACvB,aAAa,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,IAAI,EAAE,uBAAuB,CAAC;IAC9B,sEAAsE;IACtE,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CACvC;AAaD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,mBAAmB,CAoE5F;AAID,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC;IACtB,2EAA2E;IAC3E,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACpF;AAED,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,MAAM,EAAE;QAAE,IAAI,EAAE,gBAAgB,GAAG,mBAAmB,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5E;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE;QACL,UAAU,EAAE;YACV,QAAQ,EAAE,MAAM,CAAC;YACjB,cAAc,EAAE;gBACd,IAAI,EAAE,mBAAmB,CAAC;gBAC1B,iBAAiB,EAAE;oBAAE,aAAa,EAAE,MAAM,CAAA;iBAAE,CAAC;aAC9C,CAAC;YACF,YAAY,EAAE,MAAM,CAAC;YACrB,kBAAkB,EAAE,MAAM,CAAC;YAC3B,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC;YACtB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACvC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC9B,CAAC;QACF,UAAU,EAAE;YAAE,KAAK,EAAE,UAAU,EAAE,CAAA;SAAE,CAAC;KACrC,CAAC;CACH;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,kBAAkB,CAmE5E"}
@@ -0,0 +1,167 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { eventToTelemetrySpan } from '@fabric-harness/sdk';
3
+ export function mlflowTraceExporter(options) {
4
+ const onError = options.onError ??
5
+ ((context, error) => {
6
+ console.error(`[fabric-harness:mlflow-tracing] ${context}:`, error);
7
+ });
8
+ /** Open buffers keyed by store session id (`agent:<agent>:<instanceId>:<session>`). */
9
+ const buffers = new Map();
10
+ return {
11
+ sink: {
12
+ record(event) {
13
+ try {
14
+ const key = `agent:${event.agent}:${event.instanceId}:${event.session}`;
15
+ if (event.type === 'submission_started') {
16
+ buffers.set(key, {
17
+ submissionId: event.submissionId,
18
+ agent: event.agent,
19
+ instanceId: event.instanceId,
20
+ session: event.session,
21
+ startedAtMs: event.at,
22
+ attemptCount: event.attemptCount,
23
+ ...(event.tenantId !== undefined ? { tenantId: event.tenantId } : {}),
24
+ spans: [],
25
+ });
26
+ return;
27
+ }
28
+ if (event.type !== 'submission_settled')
29
+ return;
30
+ const buffer = buffers.get(key);
31
+ buffers.delete(key);
32
+ // Settlement without an observed start (exporter attached late) still
33
+ // produces a trace: derive the start from the settlement duration.
34
+ const startedAtMs = buffer?.startedAtMs ?? event.at - (event.durationMs ?? 0);
35
+ const attemptCount = event.attemptCount ?? buffer?.attemptCount;
36
+ const trace = buildMlflowTrace({
37
+ submissionId: event.submissionId,
38
+ agent: event.agent,
39
+ instanceId: event.instanceId,
40
+ session: event.session,
41
+ experimentId: options.experimentId,
42
+ startedAtMs,
43
+ settledAtMs: event.at,
44
+ state: event.outcome === 'completed' ? 'OK' : 'ERROR',
45
+ spans: buffer?.spans ?? [],
46
+ ...(attemptCount !== undefined ? { attemptCount } : {}),
47
+ ...(event.tenantId !== undefined ? { tenantId: event.tenantId } : {}),
48
+ ...(event.error !== undefined ? { error: event.error } : {}),
49
+ });
50
+ void options.client
51
+ .post('/api/3.0/mlflow/traces', trace)
52
+ .catch((error) => onError(`trace export failed for ${event.submissionId}`, error));
53
+ }
54
+ catch (error) {
55
+ onError('telemetry event handling failed', error);
56
+ }
57
+ },
58
+ },
59
+ onEvent(event) {
60
+ try {
61
+ if (!event.sessionId)
62
+ return;
63
+ const buffer = buffers.get(event.sessionId);
64
+ if (!buffer)
65
+ return;
66
+ const span = eventToTelemetrySpan(event);
67
+ if (span)
68
+ buffer.spans.push(span);
69
+ }
70
+ catch (error) {
71
+ onError('event buffering failed', error);
72
+ }
73
+ },
74
+ };
75
+ }
76
+ /**
77
+ * Build the MLflow V3 `POST /api/3.0/mlflow/traces` payload for one settled
78
+ * submission. Pure and deterministic: trace/span ids derive from the
79
+ * submission id (+ span index) via SHA-256, so replaying the same settled
80
+ * submission produces byte-identical ids. The root span covers the whole
81
+ * submission; buffered {@link TelemetrySpan}s become its children.
82
+ */
83
+ export function buildMlflowTrace(input) {
84
+ const traceBytes = sha256(input.submissionId).subarray(0, 16);
85
+ const traceIdBase64 = traceBytes.toString('base64');
86
+ const rootSpanId = spanIdFor(input.submissionId, 0);
87
+ const durationSeconds = Math.max(0, input.settledAtMs - input.startedAtMs) / 1000;
88
+ const rootSpan = {
89
+ trace_id: traceIdBase64,
90
+ span_id: rootSpanId,
91
+ name: `fabric.submission ${input.agent}`,
92
+ start_time_unix_nano: toUnixNano(input.startedAtMs),
93
+ end_time_unix_nano: toUnixNano(input.settledAtMs),
94
+ attributes: toOtlpAttributes({
95
+ 'fabric.submission_id': input.submissionId,
96
+ 'fabric.agent': input.agent,
97
+ 'fabric.instance_id': input.instanceId,
98
+ 'fabric.session': input.session,
99
+ ...(input.attemptCount !== undefined ? { 'fabric.attempt_count': input.attemptCount } : {}),
100
+ ...(input.error !== undefined ? { 'fabric.error': input.error } : {}),
101
+ }),
102
+ status: {
103
+ code: input.state === 'OK' ? 'STATUS_CODE_OK' : 'STATUS_CODE_ERROR',
104
+ ...(input.error !== undefined ? { message: input.error } : {}),
105
+ },
106
+ };
107
+ const childSpans = input.spans.map((span, index) => ({
108
+ trace_id: traceIdBase64,
109
+ span_id: spanIdFor(input.submissionId, index + 1),
110
+ parent_span_id: rootSpanId,
111
+ name: span.name,
112
+ start_time_unix_nano: toUnixNano(Date.parse(span.startedAt)),
113
+ end_time_unix_nano: toUnixNano(Date.parse(span.endedAt)),
114
+ attributes: toOtlpAttributes(span.attributes),
115
+ status: { code: 'STATUS_CODE_OK' },
116
+ }));
117
+ return {
118
+ trace: {
119
+ trace_info: {
120
+ trace_id: `tr-${traceBytes.toString('hex')}`,
121
+ trace_location: {
122
+ type: 'MLFLOW_EXPERIMENT',
123
+ mlflow_experiment: { experiment_id: input.experimentId },
124
+ },
125
+ request_time: new Date(input.startedAtMs).toISOString(),
126
+ execution_duration: `${durationSeconds.toFixed(3)}s`,
127
+ state: input.state,
128
+ trace_metadata: {
129
+ 'fabric.submission_id': input.submissionId,
130
+ 'fabric.agent': input.agent,
131
+ 'fabric.instance_id': input.instanceId,
132
+ 'fabric.session': input.session,
133
+ ...(input.attemptCount !== undefined
134
+ ? { 'fabric.attempt_count': String(input.attemptCount) }
135
+ : {}),
136
+ },
137
+ tags: {
138
+ 'fabric.agent': input.agent,
139
+ ...(input.tenantId !== undefined ? { 'fabric.tenant_id': input.tenantId } : {}),
140
+ },
141
+ },
142
+ trace_data: { spans: [rootSpan, ...childSpans] },
143
+ },
144
+ };
145
+ }
146
+ function sha256(seed) {
147
+ return createHash('sha256').update(seed).digest();
148
+ }
149
+ /** Deterministic 8-byte OTLP span id: sha-256 of `<submissionId>:span:<index>`. Index 0 is the root. */
150
+ function spanIdFor(submissionId, index) {
151
+ return sha256(`${submissionId}:span:${index}`).subarray(0, 8).toString('base64');
152
+ }
153
+ function toUnixNano(epochMs) {
154
+ return `${Math.round(epochMs)}000000`;
155
+ }
156
+ function toOtlpAttributes(attributes) {
157
+ return Object.entries(attributes).map(([key, value]) => {
158
+ if (typeof value === 'number') {
159
+ // OTLP proto3 JSON mapping: int64 serializes as a string.
160
+ return Number.isInteger(value)
161
+ ? { key, value: { int_value: String(value) } }
162
+ : { key, value: { double_value: value } };
163
+ }
164
+ return { key, value: { string_value: String(value) } };
165
+ });
166
+ }
167
+ //# sourceMappingURL=mlflow-tracing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mlflow-tracing.js","sourceRoot":"","sources":["../src/mlflow-tracing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { ModelProvider, ModelRequest, ModelResponse, ModelStreamChunk, ModelToolCall } from '@fabric-harness/sdk';
2
+ export interface MockDatabricksModelProviderOptions {
3
+ /**
4
+ * Optional prompt-to-response map. Keys are substrings matched against the
5
+ * latest user message. Values are either a plain text response or a
6
+ * `ModelResponse` object.
7
+ */
8
+ responses?: Record<string, string | ModelResponse>;
9
+ /** Optional deterministic tool calls to return when no map entry matches. */
10
+ defaultToolCalls?: ModelToolCall[];
11
+ /** Optional deterministic text response when no map entry matches. */
12
+ defaultText?: string;
13
+ }
14
+ /**
15
+ * A deterministic `ModelProvider` for Databricks agent tests and init templates.
16
+ * Returns structured responses for SQL/table-info tool calls without requiring
17
+ * real Databricks credentials.
18
+ */
19
+ export declare class MockDatabricksModelProvider implements ModelProvider {
20
+ readonly name = "mock-databricks";
21
+ private readonly options;
22
+ constructor(options?: MockDatabricksModelProviderOptions);
23
+ generate(request: ModelRequest): Promise<ModelResponse>;
24
+ stream(request: ModelRequest): AsyncIterable<ModelStreamChunk>;
25
+ }
26
+ //# sourceMappingURL=mock-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-provider.d.ts","sourceRoot":"","sources":["../src/mock-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEvH,MAAM,WAAW,kCAAkC;IACjD;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC;IACnD,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC;IACnC,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAOD;;;;GAIG;AACH,qBAAa,2BAA4B,YAAW,aAAa;IAC/D,QAAQ,CAAC,IAAI,qBAAqB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;gBAEjD,OAAO,GAAE,kCAAuC;IAItD,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAmCtD,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,aAAa,CAAC,gBAAgB,CAAC;CAkBtE"}
@@ -0,0 +1,66 @@
1
+ function estimateUsage(messages) {
2
+ const chars = messages.reduce((sum, m) => sum + m.content.length, 0);
3
+ return { totalTokens: Math.ceil(chars / 4) };
4
+ }
5
+ /**
6
+ * A deterministic `ModelProvider` for Databricks agent tests and init templates.
7
+ * Returns structured responses for SQL/table-info tool calls without requiring
8
+ * real Databricks credentials.
9
+ */
10
+ export class MockDatabricksModelProvider {
11
+ name = 'mock-databricks';
12
+ options;
13
+ constructor(options = {}) {
14
+ this.options = options;
15
+ }
16
+ async generate(request) {
17
+ const latest = [...request.messages].reverse().find((m) => m.role === 'user');
18
+ const text = latest?.content ?? '';
19
+ // Check prompt-to-response map first
20
+ if (this.options.responses) {
21
+ for (const [key, value] of Object.entries(this.options.responses)) {
22
+ if (text.toLowerCase().includes(key.toLowerCase())) {
23
+ if (typeof value === 'string') {
24
+ return {
25
+ message: { role: 'assistant', content: value },
26
+ usage: estimateUsage([...request.messages, { content: value }]) ?? { totalTokens: 0 },
27
+ };
28
+ }
29
+ return value;
30
+ }
31
+ }
32
+ }
33
+ // Return default tool calls if configured
34
+ if (this.options.defaultToolCalls && this.options.defaultToolCalls.length > 0) {
35
+ return {
36
+ toolCalls: this.options.defaultToolCalls,
37
+ usage: estimateUsage(request.messages) ?? { totalTokens: 0 },
38
+ };
39
+ }
40
+ // Fallback to default text or a generic mock response
41
+ const content = this.options.defaultText ?? `Mock Databricks response: ${text}`;
42
+ return {
43
+ message: { role: 'assistant', content },
44
+ usage: estimateUsage([...request.messages, { content }]) ?? { totalTokens: 0 },
45
+ };
46
+ }
47
+ async *stream(request) {
48
+ const response = await this.generate(request);
49
+ if (response.message?.content) {
50
+ yield { textDelta: response.message.content };
51
+ }
52
+ if (response.toolCalls) {
53
+ for (const toolCall of response.toolCalls) {
54
+ yield {
55
+ done: {
56
+ toolCalls: [toolCall],
57
+ ...(response.usage !== undefined ? { usage: response.usage } : {}),
58
+ },
59
+ };
60
+ return;
61
+ }
62
+ }
63
+ yield { done: response };
64
+ }
65
+ }
66
+ //# sourceMappingURL=mock-provider.js.map