@fabric-harness/databricks 0.16.1 → 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.
- package/dist/agent.d.ts +45 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +206 -0
- package/dist/agent.js.map +1 -0
- package/dist/ai.d.ts +19 -0
- package/dist/ai.d.ts.map +1 -0
- package/dist/ai.js +22 -0
- package/dist/ai.js.map +1 -0
- package/dist/client.d.ts +37 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +110 -0
- package/dist/client.js.map +1 -0
- package/dist/consumption.d.ts +45 -0
- package/dist/consumption.d.ts.map +1 -0
- package/dist/consumption.js +85 -0
- package/dist/consumption.js.map +1 -0
- package/dist/cost-budget-actuals.d.ts +27 -0
- package/dist/cost-budget-actuals.d.ts.map +1 -0
- package/dist/cost-budget-actuals.js +265 -0
- package/dist/cost-budget-actuals.js.map +1 -0
- package/dist/embeddings.d.ts +18 -0
- package/dist/embeddings.d.ts.map +1 -0
- package/dist/embeddings.js +24 -0
- package/dist/embeddings.js.map +1 -0
- package/dist/feature-serving.d.ts +17 -0
- package/dist/feature-serving.d.ts.map +1 -0
- package/dist/feature-serving.js +29 -0
- package/dist/feature-serving.js.map +1 -0
- package/dist/genie.d.ts +22 -0
- package/dist/genie.d.ts.map +1 -0
- package/dist/genie.js +60 -0
- package/dist/genie.js.map +1 -0
- package/dist/governance.d.ts +66 -0
- package/dist/governance.d.ts.map +1 -0
- package/dist/governance.js +111 -0
- package/dist/governance.js.map +1 -0
- package/dist/identity.d.ts +38 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +56 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +131 -80
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +105 -227
- package/dist/index.js.map +1 -1
- package/dist/lakebase.d.ts +49 -0
- package/dist/lakebase.d.ts.map +1 -0
- package/dist/lakebase.js +25 -0
- package/dist/lakebase.js.map +1 -0
- package/dist/lakeflow.d.ts +28 -0
- package/dist/lakeflow.d.ts.map +1 -0
- package/dist/lakeflow.js +75 -0
- package/dist/lakeflow.js.map +1 -0
- package/dist/mock-provider.d.ts +26 -0
- package/dist/mock-provider.d.ts.map +1 -0
- package/dist/mock-provider.js +66 -0
- package/dist/mock-provider.js.map +1 -0
- package/dist/model.d.ts +29 -0
- package/dist/model.d.ts.map +1 -0
- package/dist/model.js +50 -0
- package/dist/model.js.map +1 -0
- package/dist/sql-exec.d.ts +17 -0
- package/dist/sql-exec.d.ts.map +1 -0
- package/dist/sql-exec.js +36 -0
- package/dist/sql-exec.js.map +1 -0
- package/dist/sql-sandbox.d.ts +1 -1
- package/dist/sql-sandbox.d.ts.map +1 -1
- package/dist/sql-sandbox.js +1 -1
- package/dist/sql-sandbox.js.map +1 -1
- package/dist/tools.d.ts +71 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +176 -0
- package/dist/tools.js.map +1 -0
- package/dist/vector-search.d.ts +24 -0
- package/dist/vector-search.d.ts.map +1 -0
- package/dist/vector-search.js +63 -0
- package/dist/vector-search.js.map +1 -0
- package/package.json +14 -2
package/dist/index.js
CHANGED
|
@@ -1,234 +1,112 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
},
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
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
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
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"}
|
package/dist/lakebase.js
ADDED
|
@@ -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"}
|
package/dist/lakeflow.js
ADDED
|
@@ -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"}
|