@fabric-harness/databricks 0.15.0 → 0.18.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 (77) 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/client.d.ts +37 -0
  10. package/dist/client.d.ts.map +1 -0
  11. package/dist/client.js +110 -0
  12. package/dist/client.js.map +1 -0
  13. package/dist/consumption.d.ts +45 -0
  14. package/dist/consumption.d.ts.map +1 -0
  15. package/dist/consumption.js +85 -0
  16. package/dist/consumption.js.map +1 -0
  17. package/dist/cost-budget-actuals.d.ts +27 -0
  18. package/dist/cost-budget-actuals.d.ts.map +1 -0
  19. package/dist/cost-budget-actuals.js +265 -0
  20. package/dist/cost-budget-actuals.js.map +1 -0
  21. package/dist/embeddings.d.ts +18 -0
  22. package/dist/embeddings.d.ts.map +1 -0
  23. package/dist/embeddings.js +24 -0
  24. package/dist/embeddings.js.map +1 -0
  25. package/dist/feature-serving.d.ts +17 -0
  26. package/dist/feature-serving.d.ts.map +1 -0
  27. package/dist/feature-serving.js +29 -0
  28. package/dist/feature-serving.js.map +1 -0
  29. package/dist/genie.d.ts +22 -0
  30. package/dist/genie.d.ts.map +1 -0
  31. package/dist/genie.js +60 -0
  32. package/dist/genie.js.map +1 -0
  33. package/dist/governance.d.ts +66 -0
  34. package/dist/governance.d.ts.map +1 -0
  35. package/dist/governance.js +111 -0
  36. package/dist/governance.js.map +1 -0
  37. package/dist/identity.d.ts +38 -0
  38. package/dist/identity.d.ts.map +1 -0
  39. package/dist/identity.js +56 -0
  40. package/dist/identity.js.map +1 -0
  41. package/dist/index.d.ts +131 -80
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +105 -227
  44. package/dist/index.js.map +1 -1
  45. package/dist/lakebase.d.ts +49 -0
  46. package/dist/lakebase.d.ts.map +1 -0
  47. package/dist/lakebase.js +25 -0
  48. package/dist/lakebase.js.map +1 -0
  49. package/dist/lakeflow.d.ts +28 -0
  50. package/dist/lakeflow.d.ts.map +1 -0
  51. package/dist/lakeflow.js +75 -0
  52. package/dist/lakeflow.js.map +1 -0
  53. package/dist/mock-provider.d.ts +26 -0
  54. package/dist/mock-provider.d.ts.map +1 -0
  55. package/dist/mock-provider.js +66 -0
  56. package/dist/mock-provider.js.map +1 -0
  57. package/dist/model.d.ts +29 -0
  58. package/dist/model.d.ts.map +1 -0
  59. package/dist/model.js +50 -0
  60. package/dist/model.js.map +1 -0
  61. package/dist/sql-exec.d.ts +17 -0
  62. package/dist/sql-exec.d.ts.map +1 -0
  63. package/dist/sql-exec.js +36 -0
  64. package/dist/sql-exec.js.map +1 -0
  65. package/dist/sql-sandbox.d.ts +1 -1
  66. package/dist/sql-sandbox.d.ts.map +1 -1
  67. package/dist/sql-sandbox.js +1 -1
  68. package/dist/sql-sandbox.js.map +1 -1
  69. package/dist/tools.d.ts +71 -0
  70. package/dist/tools.d.ts.map +1 -0
  71. package/dist/tools.js +176 -0
  72. package/dist/tools.js.map +1 -0
  73. package/dist/vector-search.d.ts +24 -0
  74. package/dist/vector-search.d.ts.map +1 -0
  75. package/dist/vector-search.js +63 -0
  76. package/dist/vector-search.js.map +1 -0
  77. package/package.json +14 -2
package/dist/index.js CHANGED
@@ -1,234 +1,112 @@
1
- import { redactText } from '@fabric-harness/sdk';
2
- export class DatabricksRestClient {
3
- host;
4
- token;
5
- fetchImpl;
6
- constructor(options) {
7
- this.host = options.host.replace(/\/$/, '');
8
- this.token = options.token;
9
- this.fetchImpl = options.fetchImpl ?? fetch;
10
- }
11
- get(path, query) {
12
- return this.request('GET', path, undefined, query);
13
- }
14
- post(path, body, query) {
15
- return this.request('POST', path, body, query);
16
- }
17
- async request(method, path, body, query = {}) {
18
- const token = typeof this.token === 'function' ? await this.token() : this.token;
19
- const url = new URL(`${this.host}${path.startsWith('/') ? path : `/${path}`}`);
20
- for (const [key, value] of Object.entries(query))
21
- if (value !== undefined)
22
- url.searchParams.set(key, String(value));
23
- const response = await this.fetchImpl(url, {
24
- method,
25
- headers: {
26
- authorization: `Bearer ${token}`,
27
- ...(body !== undefined ? { 'content-type': 'application/json' } : {}),
28
- },
29
- ...(body !== undefined ? { body: JSON.stringify(body) } : {}),
1
+ import { createSearchTool } from '@fabric-harness/sdk';
2
+ import { DatabricksRestClient } from './client.js';
3
+ import { databricksSqlTool, databricksTableInfoTool, databricksWorkspaceSource, unityCatalogTablesTool } from './tools.js';
4
+ import { databricksIdentity } from './identity.js';
5
+ import { databricksFoundationModelProvider, registerDatabricksModelProvider } from './model.js';
6
+ import { databricksGovernancePolicy, withGovernanceTools } from './governance.js';
7
+ import { lakebaseClient } from './lakebase.js';
8
+ import { databricksEmbeddings } from './embeddings.js';
9
+ import { databricksVectorSearch } from './vector-search.js';
10
+ import { databricksAiQueryTool } from './ai.js';
11
+ import { databricksGenieTool } from './genie.js';
12
+ import { databricksLakeflowTools } from './lakeflow.js';
13
+ import { databricksConsumption, databricksConsumptionTool } from './consumption.js';
14
+ import { databricksFeatureLookupTool } from './feature-serving.js';
15
+ import { databricksActualCostSource, databricksTenantCostLimit } from './cost-budget-actuals.js';
16
+ // REST client + wait helpers (client.ts) and tool factories + workspace source (tools.ts).
17
+ export { DatabricksRestClient, createDatabricksClient, waitForDatabricksRun, waitForDatabricksStatement } from './client.js';
18
+ export { databricksSqlTool, databricksRunJobTool, databricksNotebookTool, databricksMlflowLogMetricTool, databricksMlflowLogParamTool, unityCatalogTablesTool, databricksTableInfoTool, databricksWorkspaceSource } from './tools.js';
19
+ export { databricksFoundationModelProvider, registerDatabricksModelProvider } from './model.js';
20
+ export { databricksIdentity } from './identity.js';
21
+ export { withGovernance, withGovernanceTools, databricksApprovalRules, databricksGovernancePolicy } from './governance.js';
22
+ export { lakebaseClient } from './lakebase.js';
23
+ export { databricksEmbeddings } from './embeddings.js';
24
+ export { databricksVectorSearch } from './vector-search.js';
25
+ export { databricksAiQueryTool } from './ai.js';
26
+ export { databricksGenieTool } from './genie.js';
27
+ export { databricksLakeflowTools, databricksPipelineListTool, databricksPipelineStatusTool, databricksPipelineStartTool, databricksPipelineStopTool } from './lakeflow.js';
28
+ export { databricksConsumption, databricksConsumptionTool } from './consumption.js';
29
+ export { databricksActualCostSource, databricksTenantCostLimit } from './cost-budget-actuals.js';
30
+ export { databricksFeatureLookupTool } from './feature-serving.js';
31
+ export { databricksAgent, defineDatabricksAgent, resolveToolRefs } from './agent.js';
32
+ export { MockDatabricksModelProvider } from './mock-provider.js';
33
+ /**
34
+ * One-call wiring for a Databricks-native agent: model serving, a UC principal threaded through
35
+ * model + data + state, governed tools, an approval/egress policy, and (optionally) Lakebase-backed
36
+ * durable state. Also registers `databricks/*` + `mosaic-ai/*` model refs. Everything is layered on
37
+ * Unity Catalog — never a replacement for it.
38
+ */
39
+ export function databricks(config) {
40
+ registerDatabricksModelProvider();
41
+ const identity = databricksIdentity(config.principal);
42
+ const client = new DatabricksRestClient({ host: config.host, token: identity, ...(config.fetchImpl ? { fetchImpl: config.fetchImpl } : {}) });
43
+ let embeddings;
44
+ let retriever;
45
+ let searchTool;
46
+ if (config.vectorSearch) {
47
+ if (config.vectorSearch.embeddingEndpoint)
48
+ embeddings = databricksEmbeddings({ client, endpoint: config.vectorSearch.embeddingEndpoint });
49
+ retriever = databricksVectorSearch({
50
+ client,
51
+ index: config.vectorSearch.index,
52
+ textColumn: config.vectorSearch.textColumn,
53
+ ...(config.vectorSearch.columns ? { columns: config.vectorSearch.columns } : {}),
54
+ ...(config.vectorSearch.idColumn ? { idColumn: config.vectorSearch.idColumn } : {}),
55
+ ...(config.vectorSearch.queryType ? { queryType: config.vectorSearch.queryType } : {}),
56
+ ...(embeddings ? { embeddings } : {}),
57
+ });
58
+ searchTool = createSearchTool(retriever, {
59
+ ...(config.vectorSearch.searchToolName ? { name: config.vectorSearch.searchToolName } : {}),
60
+ metadata: { provider: 'databricks', service: 'vector-search' },
30
61
  });
31
- if (!response.ok) {
32
- const text = redactText(await response.text(), { additionalSecrets: [token] });
33
- throw new Error(`databricks: ${response.status} ${response.statusText}: ${text.slice(0, 500)}`);
34
- }
35
- if (response.status === 204)
36
- return undefined;
37
- return await response.json();
38
- }
39
- }
40
- export function createDatabricksClient(options) {
41
- return new DatabricksRestClient(options);
42
- }
43
- export async function waitForDatabricksRun(client, runId, options = {}) {
44
- const deadline = Date.now() + (options.timeoutMs ?? 600_000);
45
- const interval = options.pollIntervalMs ?? 5_000;
46
- let current = await client.get('/api/2.1/jobs/runs/get', { run_id: runId });
47
- while (!isTerminalDatabricksRunState(current) && Date.now() < deadline) {
48
- await new Promise((resolve) => setTimeout(resolve, interval));
49
- current = await client.get('/api/2.1/jobs/runs/get', { run_id: runId });
50
- }
51
- return current;
52
- }
53
- export async function waitForDatabricksStatement(client, statementId, options = {}) {
54
- const deadline = Date.now() + (options.timeoutMs ?? 300_000);
55
- const interval = options.pollIntervalMs ?? 2_000;
56
- let current = await client.get(`/api/2.0/sql/statements/${encodeURIComponent(statementId)}`);
57
- while (!isTerminalDatabricksStatementState(current) && Date.now() < deadline) {
58
- await new Promise((resolve) => setTimeout(resolve, interval));
59
- current = await client.get(`/api/2.0/sql/statements/${encodeURIComponent(statementId)}`);
60
62
  }
61
- return current;
62
- }
63
- export function databricksSqlTool(client, options) {
64
- return {
65
- name: options.name ?? 'databricks_sql',
66
- description: options.description ?? 'Run a SQL statement on a Databricks SQL Warehouse.',
67
- inputSchema: {
68
- type: 'object',
69
- additionalProperties: false,
70
- properties: {
71
- statement: { type: 'string' },
72
- catalog: { type: 'string' },
73
- schema: { type: 'string' },
74
- },
75
- required: ['statement'],
76
- },
77
- metadata: { effect: 'execute', provider: 'databricks', service: 'sql' },
78
- execute: (input) => client.post('/api/2.0/sql/statements', {
79
- warehouse_id: options.warehouseId,
80
- statement: input.statement,
81
- wait_timeout: options.waitTimeout ?? '30s',
82
- disposition: options.disposition ?? 'INLINE',
83
- ...(input.catalog ? { catalog: input.catalog } : {}),
84
- ...(input.schema ? { schema: input.schema } : {}),
85
- }),
63
+ const rawTools = [
64
+ ...(config.warehouseId ? [databricksSqlTool(client, { warehouseId: config.warehouseId })] : []),
65
+ unityCatalogTablesTool(client),
66
+ databricksTableInfoTool(client),
67
+ ...(searchTool ? [searchTool] : []),
68
+ ...(config.aiFunctions && config.warehouseId ? [databricksAiQueryTool(client, { warehouseId: config.warehouseId })] : []),
69
+ ...(config.genie ? [databricksGenieTool(client, { spaceId: config.genie.spaceId })] : []),
70
+ ...(config.lakeflow ? databricksLakeflowTools(client) : []),
71
+ ...(config.consumption && config.warehouseId ? [databricksConsumptionTool(client, { warehouseId: config.warehouseId })] : []),
72
+ ...(config.featureServing ? [databricksFeatureLookupTool(client, { endpoint: config.featureServing.endpoint })] : []),
73
+ ...(config.tools ?? []),
74
+ ];
75
+ const tools = withGovernanceTools(rawTools, {
76
+ principal: config.governance?.principalLabel ?? principalLabel(config.principal),
77
+ ...(config.governance?.onLineage ? { onLineage: config.governance.onLineage } : {}),
78
+ ...(config.governance?.catalogs ? { catalogs: config.governance.catalogs } : {}),
79
+ });
80
+ const policy = databricksGovernancePolicy({
81
+ tools,
82
+ host: config.host,
83
+ ...(config.governance?.stewardAudience ? { stewardAudience: config.governance.stewardAudience } : {}),
84
+ ...(config.governance?.approvalServices ? { approvalServices: config.governance.approvalServices } : {}),
85
+ ...(config.governance?.approvalTtlSeconds !== undefined ? { ttlSeconds: config.governance.approvalTtlSeconds } : {}),
86
+ });
87
+ const bundle = {
88
+ identity,
89
+ modelProvider: databricksFoundationModelProvider({ host: config.host, token: identity, ...(config.model ? { defaultModel: config.model } : {}) }),
90
+ client,
91
+ tools,
92
+ policy,
93
+ workspaceSource: (rootPath, options) => databricksWorkspaceSource(client, rootPath, options ?? {}),
94
+ ...(retriever ? { retriever } : {}),
95
+ ...(embeddings ? { embeddings } : {}),
96
+ ...(config.consumption && config.warehouseId ? { consumption: databricksConsumption(client, { warehouseId: config.warehouseId }) } : {}),
86
97
  };
87
- }
88
- export function databricksRunJobTool(client, options = {}) {
89
- return {
90
- name: options.name ?? 'databricks_run_job',
91
- description: options.description ?? 'Trigger an existing Databricks job by job id.',
92
- inputSchema: {
93
- type: 'object',
94
- additionalProperties: false,
95
- properties: {
96
- jobId: { type: 'number' },
97
- notebookParams: { type: 'object', additionalProperties: true },
98
- pythonParams: { type: 'array', items: { type: 'string' } },
99
- jarParams: { type: 'array', items: { type: 'string' } },
100
- },
101
- required: ['jobId'],
102
- },
103
- metadata: { effect: 'execute', provider: 'databricks', service: 'jobs' },
104
- execute: (input) => client.post('/api/2.1/jobs/run-now', {
105
- job_id: input.jobId,
106
- ...(input.notebookParams ? { notebook_params: input.notebookParams } : {}),
107
- ...(input.pythonParams ? { python_params: input.pythonParams } : {}),
108
- ...(input.jarParams ? { jar_params: input.jarParams } : {}),
109
- }),
110
- };
111
- }
112
- export function databricksNotebookTool(client, options = {}) {
113
- return {
114
- name: options.name ?? 'databricks_run_notebook',
115
- description: options.description ?? 'Submit a one-off Databricks notebook run.',
116
- inputSchema: {
117
- type: 'object',
118
- additionalProperties: false,
119
- properties: {
120
- notebookPath: { type: 'string' },
121
- baseParameters: { type: 'object', additionalProperties: true },
122
- runName: { type: 'string' },
123
- },
124
- required: ['notebookPath'],
125
- },
126
- metadata: { effect: 'execute', provider: 'databricks', service: 'jobs' },
127
- execute: (input) => client.post('/api/2.1/jobs/runs/submit', {
128
- run_name: input.runName ?? `fabric-harness:${input.notebookPath}`,
129
- ...(options.existingClusterId ? { existing_cluster_id: options.existingClusterId } : {}),
130
- notebook_task: {
131
- notebook_path: input.notebookPath,
132
- ...(input.baseParameters ? { base_parameters: input.baseParameters } : {}),
133
- },
134
- }),
135
- };
136
- }
137
- export function databricksMlflowLogMetricTool(client, options = {}) {
138
- return {
139
- name: options.name ?? 'databricks_mlflow_log_metric',
140
- description: options.description ?? 'Log a metric to an MLflow run hosted in Databricks.',
141
- inputSchema: {
142
- type: 'object',
143
- additionalProperties: false,
144
- properties: {
145
- runId: { type: 'string' },
146
- key: { type: 'string' },
147
- value: { type: 'number' },
148
- step: { type: 'number' },
149
- timestamp: { type: 'number' },
150
- },
151
- required: ['runId', 'key', 'value'],
152
- },
153
- metadata: { effect: 'write', provider: 'databricks', service: 'mlflow' },
154
- execute: (input) => client.post('/api/2.0/mlflow/runs/log-metric', {
155
- run_id: input.runId,
156
- key: input.key,
157
- value: input.value,
158
- timestamp: input.timestamp ?? Date.now(),
159
- ...(input.step !== undefined ? { step: input.step } : {}),
160
- }),
161
- };
162
- }
163
- export function databricksMlflowLogParamTool(client, options = {}) {
164
- return {
165
- name: options.name ?? 'databricks_mlflow_log_param',
166
- description: options.description ?? 'Log a parameter to an MLflow run hosted in Databricks.',
167
- inputSchema: {
168
- type: 'object',
169
- additionalProperties: false,
170
- properties: { runId: { type: 'string' }, key: { type: 'string' }, value: { type: 'string' } },
171
- required: ['runId', 'key', 'value'],
172
- },
173
- metadata: { effect: 'write', provider: 'databricks', service: 'mlflow' },
174
- execute: (input) => client.post('/api/2.0/mlflow/runs/log-parameter', { run_id: input.runId, key: input.key, value: input.value }),
175
- };
176
- }
177
- export function unityCatalogTablesTool(client, options = {}) {
178
- return {
179
- name: options.name ?? 'databricks_unity_catalog_tables',
180
- description: options.description ?? 'List Unity Catalog tables in a catalog and schema.',
181
- inputSchema: {
182
- type: 'object',
183
- additionalProperties: false,
184
- properties: { catalog: { type: 'string' }, schema: { type: 'string' } },
185
- required: ['catalog', 'schema'],
186
- },
187
- metadata: { effect: 'read', provider: 'databricks', service: 'unity-catalog' },
188
- execute: (input) => client.get('/api/2.1/unity-catalog/tables', { catalog_name: input.catalog, schema_name: input.schema }),
189
- };
190
- }
191
- export function databricksWorkspaceSource(client, rootPath, options = {}) {
192
- const include = options.include ?? (() => true);
193
- return {
194
- name: options.name ?? `databricks-workspace:${rootPath}`,
195
- async *entries() {
196
- yield* walkWorkspace(client, rootPath, rootPath, include, options.recursive ?? true, options.format ?? 'SOURCE');
197
- },
198
- };
199
- }
200
- async function* walkWorkspace(client, root, current, include, recursive, format) {
201
- const listing = await client.get('/api/2.0/workspace/list', { path: current });
202
- for (const object of listing.objects ?? []) {
203
- if (object.object_type === 'DIRECTORY') {
204
- if (recursive)
205
- yield* walkWorkspace(client, root, object.path, include, recursive, format);
206
- continue;
207
- }
208
- const relative = object.path.slice(root.length).replace(/^\/+/, '');
209
- if (!relative || !include(relative))
210
- continue;
211
- const exported = await client.get('/api/2.0/workspace/export', { path: object.path, format });
212
- yield { path: relative, content: exported.content ? base64ToBytes(exported.content) : new Uint8Array() };
98
+ if (config.lakebase) {
99
+ const lakebase = lakebaseClient({ ...config.lakebase, token: identity });
100
+ bundle.lakebase = lakebase;
101
+ if (config.sessionStoreFactory)
102
+ bundle.store = config.sessionStoreFactory(lakebase);
213
103
  }
104
+ return bundle;
214
105
  }
215
- function isTerminalDatabricksRunState(run) {
216
- const state = run.state;
217
- const lifeCycle = state?.life_cycle_state;
218
- return lifeCycle === 'TERMINATED' || lifeCycle === 'SKIPPED' || lifeCycle === 'INTERNAL_ERROR';
219
- }
220
- function isTerminalDatabricksStatementState(statement) {
221
- const status = statement.status;
222
- const state = status?.state;
223
- return state === 'SUCCEEDED' || state === 'FAILED' || state === 'CANCELED' || state === 'CLOSED';
224
- }
225
- function base64ToBytes(value) {
226
- if (typeof Buffer !== 'undefined')
227
- return new Uint8Array(Buffer.from(value, 'base64'));
228
- const binary = atob(value);
229
- const bytes = new Uint8Array(binary.length);
230
- for (let i = 0; i < binary.length; i += 1)
231
- bytes[i] = binary.charCodeAt(i);
232
- return bytes;
106
+ function principalLabel(principal) {
107
+ if (principal.kind === 'service-principal')
108
+ return `sp:${principal.clientId}`;
109
+ // pat / on-behalf-of: prefer an explicit label (e.g. the channel actor / user id) over the bare kind.
110
+ return principal.label ?? principal.kind;
233
111
  }
234
112
  //# sourceMappingURL=index.js.map
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,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"}