@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.
- 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/app.d.ts +81 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +87 -0
- package/dist/app.js.map +1 -0
- package/dist/client.d.ts +44 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +114 -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 +70 -0
- package/dist/governance.d.ts.map +1 -0
- package/dist/governance.js +123 -0
- package/dist/governance.js.map +1 -0
- package/dist/identity.d.ts +72 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +119 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +143 -80
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +111 -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/mlflow-tracing.d.ts +111 -0
- package/dist/mlflow-tracing.d.ts.map +1 -0
- package/dist/mlflow-tracing.js +167 -0
- package/dist/mlflow-tracing.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/persistence.d.ts +73 -0
- package/dist/persistence.d.ts.map +1 -0
- package/dist/persistence.js +82 -0
- package/dist/persistence.js.map +1 -0
- package/dist/serving-usage.d.ts +48 -0
- package/dist/serving-usage.d.ts.map +1 -0
- package/dist/serving-usage.js +100 -0
- package/dist/serving-usage.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/telemetry-sink.d.ts +29 -0
- package/dist/telemetry-sink.d.ts.map +1 -0
- package/dist/telemetry-sink.js +129 -0
- package/dist/telemetry-sink.js.map +1 -0
- 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/dist/volumes-attachment-store.d.ts +64 -0
- package/dist/volumes-attachment-store.d.ts.map +1 -0
- package/dist/volumes-attachment-store.js +172 -0
- package/dist/volumes-attachment-store.js.map +1 -0
- package/package.json +20 -3
package/dist/agent.d.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { AgentProfile, AgentTriggers, DefinedAgent, JsonObject, ModelProvider, SandboxBackend, Schema, Skill, ToolDef } from '@fabric-harness/sdk';
|
|
2
|
+
import type { CapabilityPolicy, CostLimit, ApprovalOptions } from '@fabric-harness/sdk';
|
|
3
|
+
import type { DatabricksBundle, DatabricksBundleConfig } from './index.js';
|
|
4
|
+
export interface DatabricksAgentOptions {
|
|
5
|
+
name?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
instructions?: string;
|
|
8
|
+
input?: Schema<JsonObject>;
|
|
9
|
+
output?: Schema<unknown>;
|
|
10
|
+
model?: string;
|
|
11
|
+
target?: 'node' | 'temporal-worker';
|
|
12
|
+
skills?: Skill[];
|
|
13
|
+
triggers?: AgentTriggers;
|
|
14
|
+
databricks: DatabricksBundleConfig;
|
|
15
|
+
modelProvider?: ModelProvider;
|
|
16
|
+
tools?: ToolDef[] | string[];
|
|
17
|
+
sandbox?: SandboxBackend;
|
|
18
|
+
profile?: AgentProfile;
|
|
19
|
+
policy?: CapabilityPolicy;
|
|
20
|
+
costBudget?: CostLimit;
|
|
21
|
+
approvals?: ApprovalOptions;
|
|
22
|
+
}
|
|
23
|
+
export interface DefineDatabricksAgentOptions {
|
|
24
|
+
name?: string;
|
|
25
|
+
description?: string;
|
|
26
|
+
instructions?: string;
|
|
27
|
+
input?: Schema<JsonObject>;
|
|
28
|
+
output?: Schema<unknown>;
|
|
29
|
+
model?: string;
|
|
30
|
+
target?: 'node' | 'temporal-worker';
|
|
31
|
+
skills?: Skill[];
|
|
32
|
+
triggers?: AgentTriggers;
|
|
33
|
+
databricks?: DatabricksBundleConfig;
|
|
34
|
+
modelProvider?: ModelProvider;
|
|
35
|
+
tools?: ToolDef[] | string[];
|
|
36
|
+
sandbox?: SandboxBackend;
|
|
37
|
+
profile?: AgentProfile;
|
|
38
|
+
policy?: CapabilityPolicy;
|
|
39
|
+
costBudget?: CostLimit;
|
|
40
|
+
approvals?: ApprovalOptions;
|
|
41
|
+
}
|
|
42
|
+
export declare function databricksAgent(options: DatabricksAgentOptions): DefinedAgent<JsonObject, unknown>;
|
|
43
|
+
export declare function defineDatabricksAgent(options?: DefineDatabricksAgentOptions): DefinedAgent<JsonObject, unknown>;
|
|
44
|
+
export declare function resolveToolRefs(bundle: DatabricksBundle, refs: string[]): ToolDef[];
|
|
45
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAiB,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACxL,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAExF,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAI3E,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACpC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,sBAAsB,CAAC;IACnC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACpC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAuGD,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAElG;AAED,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,4BAA4B,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAuE/G;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAgCnF"}
|
package/dist/agent.js
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { agent } from '@fabric-harness/sdk/strict';
|
|
2
|
+
import { databricks } from './index.js';
|
|
3
|
+
function resolveTools(bundle, tools) {
|
|
4
|
+
if (!tools)
|
|
5
|
+
return [];
|
|
6
|
+
const stringTools = tools.filter((t) => typeof t === 'string');
|
|
7
|
+
const toolDefs = tools.filter((t) => typeof t !== 'string');
|
|
8
|
+
if (stringTools.length > 0) {
|
|
9
|
+
const resolved = resolveToolRefs(bundle, stringTools);
|
|
10
|
+
return [...resolved, ...toolDefs];
|
|
11
|
+
}
|
|
12
|
+
return toolDefs;
|
|
13
|
+
}
|
|
14
|
+
function mergeProfile(options) {
|
|
15
|
+
const profile = options?.profile;
|
|
16
|
+
if (!profile)
|
|
17
|
+
return {};
|
|
18
|
+
return {
|
|
19
|
+
...(profile.name !== undefined ? { name: profile.name } : {}),
|
|
20
|
+
...(profile.description !== undefined ? { description: profile.description } : {}),
|
|
21
|
+
...(profile.instructions !== undefined ? { instructions: profile.instructions } : {}),
|
|
22
|
+
...(profile.model !== undefined ? { model: profile.model } : {}),
|
|
23
|
+
...(profile.skills !== undefined ? { skills: profile.skills } : {}),
|
|
24
|
+
...(profile.tools !== undefined ? { tools: profile.tools } : {}),
|
|
25
|
+
...(profile.policy !== undefined ? { policy: profile.policy } : {}),
|
|
26
|
+
...(profile.costBudget !== undefined ? { costBudget: profile.costBudget } : {}),
|
|
27
|
+
...(profile.approvals !== undefined ? { approvals: profile.approvals } : {}),
|
|
28
|
+
...(profile.sandbox !== undefined ? { sandbox: profile.sandbox } : {}),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function mergeOptions(options) {
|
|
32
|
+
const profile = mergeProfile(options);
|
|
33
|
+
return {
|
|
34
|
+
...profile,
|
|
35
|
+
...options,
|
|
36
|
+
...(profile.skills || options.skills ? { skills: [...(profile.skills ?? []), ...(options.skills ?? [])] } : {}),
|
|
37
|
+
...(profile.tools || options.tools ? { tools: [...(profile.tools ?? []), ...(options.tools ?? [])] } : {}),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Shared run body for both `databricksAgent` and `defineDatabricksAgent`. Threads the bundle's
|
|
42
|
+
* UC-principal model provider through by default — env-driven agents get the Databricks
|
|
43
|
+
* foundation model unless an explicit provider is supplied (or `--mock` overrides it upstream).
|
|
44
|
+
*/
|
|
45
|
+
async function runWithBundle(context, bundle, options) {
|
|
46
|
+
const extraTools = resolveTools(bundle, options.tools);
|
|
47
|
+
const agent = await context.init({
|
|
48
|
+
modelProvider: options.modelProvider ?? bundle.modelProvider,
|
|
49
|
+
tools: [...bundle.tools, ...extraTools],
|
|
50
|
+
policy: bundle.policy,
|
|
51
|
+
...(bundle.store ? { store: bundle.store } : {}),
|
|
52
|
+
...(options.skills ? { skills: options.skills } : {}),
|
|
53
|
+
...(options.sandbox ? { sandbox: options.sandbox } : {}),
|
|
54
|
+
});
|
|
55
|
+
const session = await agent.session();
|
|
56
|
+
const question = context.input?.question ?? 'What would you like to know?';
|
|
57
|
+
return session.prompt(question);
|
|
58
|
+
}
|
|
59
|
+
function buildAgentDefinition(options) {
|
|
60
|
+
const merged = mergeOptions(options);
|
|
61
|
+
const bundle = databricks(merged.databricks);
|
|
62
|
+
const def = {
|
|
63
|
+
run: (context) => runWithBundle(context, bundle, {
|
|
64
|
+
...(merged.modelProvider ? { modelProvider: merged.modelProvider } : {}),
|
|
65
|
+
...(merged.tools ? { tools: merged.tools } : {}),
|
|
66
|
+
...(merged.skills ? { skills: merged.skills } : {}),
|
|
67
|
+
...(merged.sandbox ? { sandbox: merged.sandbox } : {}),
|
|
68
|
+
}),
|
|
69
|
+
};
|
|
70
|
+
if (merged.name !== undefined)
|
|
71
|
+
def.name = merged.name;
|
|
72
|
+
if (merged.description !== undefined)
|
|
73
|
+
def.description = merged.description;
|
|
74
|
+
if (merged.instructions !== undefined)
|
|
75
|
+
def.instructions = merged.instructions;
|
|
76
|
+
if (merged.input !== undefined)
|
|
77
|
+
def.input = merged.input;
|
|
78
|
+
if (merged.output !== undefined)
|
|
79
|
+
def.output = merged.output;
|
|
80
|
+
if (merged.model !== undefined)
|
|
81
|
+
def.model = merged.model;
|
|
82
|
+
if (merged.target !== undefined)
|
|
83
|
+
def.target = merged.target;
|
|
84
|
+
if (merged.skills !== undefined)
|
|
85
|
+
def.skills = merged.skills;
|
|
86
|
+
if (merged.triggers !== undefined)
|
|
87
|
+
def.triggers = merged.triggers;
|
|
88
|
+
if (merged.policy !== undefined)
|
|
89
|
+
def.policy = merged.policy;
|
|
90
|
+
if (merged.costBudget !== undefined)
|
|
91
|
+
def.costBudget = merged.costBudget;
|
|
92
|
+
if (merged.approvals !== undefined)
|
|
93
|
+
def.approvals = merged.approvals;
|
|
94
|
+
return def;
|
|
95
|
+
}
|
|
96
|
+
export function databricksAgent(options) {
|
|
97
|
+
return agent(buildAgentDefinition(options));
|
|
98
|
+
}
|
|
99
|
+
export function defineDatabricksAgent(options) {
|
|
100
|
+
const merged = options ? mergeOptions(options) : {};
|
|
101
|
+
const def = {
|
|
102
|
+
run: async (context) => {
|
|
103
|
+
// If explicit databricks config is provided, use it directly
|
|
104
|
+
if (merged.databricks) {
|
|
105
|
+
const bundle = databricks(merged.databricks);
|
|
106
|
+
return runWithBundle(context, bundle, {
|
|
107
|
+
...(merged.modelProvider ? { modelProvider: merged.modelProvider } : {}),
|
|
108
|
+
...(merged.tools ? { tools: merged.tools } : {}),
|
|
109
|
+
...(merged.skills ? { skills: merged.skills } : {}),
|
|
110
|
+
...(merged.sandbox ? { sandbox: merged.sandbox } : {}),
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
// Otherwise, read from env (or use a dummy config in mock mode)
|
|
114
|
+
const env = context.env ?? {};
|
|
115
|
+
const host = env.DATABRICKS_HOST;
|
|
116
|
+
if (!host && env.FABRIC_MOCK !== '1') {
|
|
117
|
+
throw new Error('Missing DATABRICKS_HOST environment variable. Set it or pass an explicit databricks config.');
|
|
118
|
+
}
|
|
119
|
+
const token = env.DATABRICKS_TOKEN;
|
|
120
|
+
const clientId = env.DATABRICKS_CLIENT_ID;
|
|
121
|
+
const clientSecret = env.DATABRICKS_CLIENT_SECRET;
|
|
122
|
+
if (!token && !(clientId && clientSecret) && env.FABRIC_MOCK !== '1') {
|
|
123
|
+
throw new Error('Missing Databricks credentials. Set DATABRICKS_TOKEN or both DATABRICKS_CLIENT_ID and DATABRICKS_CLIENT_SECRET.');
|
|
124
|
+
}
|
|
125
|
+
// In real mode the relevant fields are guaranteed by the guards above; in mock mode this
|
|
126
|
+
// principal is discarded (FABRIC_MOCK overrides it below), so empty-string fallbacks are safe.
|
|
127
|
+
const principal = token
|
|
128
|
+
? { kind: 'pat', token }
|
|
129
|
+
: { kind: 'service-principal', host: host ?? '', clientId: clientId ?? '', clientSecret: clientSecret ?? '' };
|
|
130
|
+
const config = {
|
|
131
|
+
host: host ?? 'https://mock.databricks.com',
|
|
132
|
+
principal: env.FABRIC_MOCK === '1' ? { kind: 'pat', token: 'mock-token' } : principal,
|
|
133
|
+
...(env.DATABRICKS_MODEL ? { model: env.DATABRICKS_MODEL } : {}),
|
|
134
|
+
...(env.DATABRICKS_WAREHOUSE_ID ? { warehouseId: env.DATABRICKS_WAREHOUSE_ID } : {}),
|
|
135
|
+
...(env.FABRIC_MOCK === '1' ? { warehouseId: 'mock-warehouse-id' } : {}),
|
|
136
|
+
};
|
|
137
|
+
const bundle = databricks(config);
|
|
138
|
+
// Default to the bundle's UC-principal Databricks foundation model so env-driven agents
|
|
139
|
+
// actually consume the Databricks serving endpoint. `--mock` overrides this upstream
|
|
140
|
+
// (see packages/node/src/run.ts), and an explicit modelProvider still wins.
|
|
141
|
+
return runWithBundle(context, bundle, {
|
|
142
|
+
...(merged.modelProvider ? { modelProvider: merged.modelProvider } : {}),
|
|
143
|
+
...(merged.tools ? { tools: merged.tools } : {}),
|
|
144
|
+
...(merged.skills ? { skills: merged.skills } : {}),
|
|
145
|
+
...(merged.sandbox ? { sandbox: merged.sandbox } : {}),
|
|
146
|
+
});
|
|
147
|
+
},
|
|
148
|
+
};
|
|
149
|
+
if (merged.name !== undefined)
|
|
150
|
+
def.name = merged.name;
|
|
151
|
+
if (merged.description !== undefined)
|
|
152
|
+
def.description = merged.description;
|
|
153
|
+
if (merged.instructions !== undefined)
|
|
154
|
+
def.instructions = merged.instructions;
|
|
155
|
+
if (merged.input !== undefined)
|
|
156
|
+
def.input = merged.input;
|
|
157
|
+
if (merged.output !== undefined)
|
|
158
|
+
def.output = merged.output;
|
|
159
|
+
if (merged.model !== undefined)
|
|
160
|
+
def.model = merged.model;
|
|
161
|
+
if (merged.target !== undefined)
|
|
162
|
+
def.target = merged.target;
|
|
163
|
+
if (merged.skills !== undefined)
|
|
164
|
+
def.skills = merged.skills;
|
|
165
|
+
if (merged.triggers !== undefined)
|
|
166
|
+
def.triggers = merged.triggers;
|
|
167
|
+
if (merged.policy !== undefined)
|
|
168
|
+
def.policy = merged.policy;
|
|
169
|
+
if (merged.costBudget !== undefined)
|
|
170
|
+
def.costBudget = merged.costBudget;
|
|
171
|
+
if (merged.approvals !== undefined)
|
|
172
|
+
def.approvals = merged.approvals;
|
|
173
|
+
return agent(def);
|
|
174
|
+
}
|
|
175
|
+
export function resolveToolRefs(bundle, refs) {
|
|
176
|
+
const toolMap = new Map();
|
|
177
|
+
for (const tool of bundle.tools) {
|
|
178
|
+
toolMap.set(tool.name, tool);
|
|
179
|
+
}
|
|
180
|
+
const shortNameMap = {
|
|
181
|
+
'sql': 'databricks_sql',
|
|
182
|
+
'tables': 'databricks_unity_catalog_tables',
|
|
183
|
+
'table-info': 'databricks_table_info',
|
|
184
|
+
'search': 'search',
|
|
185
|
+
'ai-query': 'databricks_ai_query',
|
|
186
|
+
'genie': 'databricks_genie_ask',
|
|
187
|
+
'lakeflow-list': 'databricks_pipeline_list',
|
|
188
|
+
'lakeflow-status': 'databricks_pipeline_status',
|
|
189
|
+
'lakeflow-start': 'databricks_pipeline_start',
|
|
190
|
+
'lakeflow-stop': 'databricks_pipeline_stop',
|
|
191
|
+
'consumption': 'databricks_consumption',
|
|
192
|
+
'feature-lookup': 'databricks_feature_lookup',
|
|
193
|
+
};
|
|
194
|
+
const result = [];
|
|
195
|
+
for (const ref of refs) {
|
|
196
|
+
const fullName = shortNameMap[ref] ?? ref;
|
|
197
|
+
const tool = toolMap.get(fullName);
|
|
198
|
+
if (!tool) {
|
|
199
|
+
const available = [...toolMap.keys()].join(', ');
|
|
200
|
+
throw new Error(`Unknown tool reference "${ref}". Available tools: ${available}`);
|
|
201
|
+
}
|
|
202
|
+
result.push(tool);
|
|
203
|
+
}
|
|
204
|
+
return result;
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/ai.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ToolDef } from '@fabric-harness/sdk';
|
|
2
|
+
import type { DatabricksRestClient } from './client.js';
|
|
3
|
+
export interface DatabricksAiQueryToolOptions {
|
|
4
|
+
warehouseId: string;
|
|
5
|
+
name?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
pollIntervalMs?: number;
|
|
8
|
+
timeoutMs?: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* `ai_query(endpoint, request)` — run model inference inside the SQL warehouse against a serving
|
|
12
|
+
* endpoint. Drives both serving and SQL-warehouse consumption. Uses named SQL parameters, so the
|
|
13
|
+
* endpoint and request are never string-interpolated into SQL.
|
|
14
|
+
*/
|
|
15
|
+
export declare function databricksAiQueryTool(client: DatabricksRestClient, options: DatabricksAiQueryToolOptions): ToolDef<{
|
|
16
|
+
endpoint: string;
|
|
17
|
+
request: string;
|
|
18
|
+
}, unknown>;
|
|
19
|
+
//# sourceMappingURL=ai.d.ts.map
|
package/dist/ai.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGxD,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,CAAC,CAoBlK"}
|
package/dist/ai.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { runStatement } from './sql-exec.js';
|
|
2
|
+
/**
|
|
3
|
+
* `ai_query(endpoint, request)` — run model inference inside the SQL warehouse against a serving
|
|
4
|
+
* endpoint. Drives both serving and SQL-warehouse consumption. Uses named SQL parameters, so the
|
|
5
|
+
* endpoint and request are never string-interpolated into SQL.
|
|
6
|
+
*/
|
|
7
|
+
export function databricksAiQueryTool(client, options) {
|
|
8
|
+
const poll = { intervalMs: options.pollIntervalMs ?? 2000, timeoutMs: options.timeoutMs ?? 120_000 };
|
|
9
|
+
return {
|
|
10
|
+
name: options.name ?? 'databricks_ai_query',
|
|
11
|
+
description: options.description ?? 'Run model inference inside the SQL warehouse via ai_query() against a Databricks serving endpoint.',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
type: 'object',
|
|
14
|
+
additionalProperties: false,
|
|
15
|
+
properties: { endpoint: { type: 'string' }, request: { type: 'string' } },
|
|
16
|
+
required: ['endpoint', 'request'],
|
|
17
|
+
},
|
|
18
|
+
metadata: { effect: 'execute', provider: 'databricks', service: 'ai-functions' },
|
|
19
|
+
execute: (input) => runStatement(client, options.warehouseId, 'SELECT ai_query(:endpoint, :request) AS result', [{ name: 'endpoint', value: input.endpoint }, { name: 'request', value: input.request }], poll),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=ai.js.map
|
package/dist/ai.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAU7C;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA4B,EAAE,OAAqC;IACvG,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO,EAAE,CAAC;IACrG,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,qBAAqB;QAC3C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,oGAAoG;QACxI,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACzE,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;SAClC;QACD,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE;QAChF,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAC9B,MAAM,EACN,OAAO,CAAC,WAAW,EACnB,gDAAgD,EAChD,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EACxF,IAAI,CACL;KACF,CAAC;AACJ,CAAC"}
|
package/dist/app.d.ts
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { FabricActor, FabricPrincipal, ModelProvider } from '@fabric-harness/sdk';
|
|
2
|
+
import { DatabricksRestClient } from './client.js';
|
|
3
|
+
import type { DatabricksPrincipal, DatabricksTokenProvider } from './identity.js';
|
|
4
|
+
import type { DatabricksPersistence } from './persistence.js';
|
|
5
|
+
import type { DatabricksTelemetry } from './telemetry-sink.js';
|
|
6
|
+
import type { LakebasePoolFactory } from './lakebase.js';
|
|
7
|
+
/**
|
|
8
|
+
* Production preset for agents hosted on Databricks Apps (v2, workstream C5).
|
|
9
|
+
*
|
|
10
|
+
* One call resolves the runtime from the standard app environment: the app's
|
|
11
|
+
* service principal (client-credentials OAuth), the workspace REST client and
|
|
12
|
+
* serving-endpoint model provider, Lakebase-backed persistence for sessions +
|
|
13
|
+
* submissions + conversation streams, and submission-keyed telemetry — all
|
|
14
|
+
* running as one governed identity that Unity Catalog enforces.
|
|
15
|
+
*
|
|
16
|
+
* ```ts
|
|
17
|
+
* const app = databricksApp();
|
|
18
|
+
* await startDevServer({ port: Number(process.env.DATABRICKS_APP_PORT ?? 8000), ...(await app.serverOptions()) });
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export interface DatabricksAppOptions {
|
|
22
|
+
/** Environment source. Default `process.env`. */
|
|
23
|
+
env?: Record<string, string | undefined>;
|
|
24
|
+
/** Acting identity. Default: the app service principal from the environment. */
|
|
25
|
+
principal?: DatabricksPrincipal;
|
|
26
|
+
/** Workspace host. Default `DATABRICKS_HOST`. */
|
|
27
|
+
host?: string;
|
|
28
|
+
/** Default serving endpoint for the model provider. Default `DATABRICKS_SERVING_ENDPOINT`. */
|
|
29
|
+
model?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Lakebase connection. Defaults from the app's database resource
|
|
32
|
+
* environment (`DATABRICKS_LAKEBASE_HOST`/`DATABASE`/`USER`, falling back
|
|
33
|
+
* to `PGHOST`/`PGDATABASE`/`PGUSER`); the password is always the rotating
|
|
34
|
+
* OAuth token. Set `false` to run without durable persistence.
|
|
35
|
+
*/
|
|
36
|
+
lakebase?: false | {
|
|
37
|
+
host?: string;
|
|
38
|
+
database?: string;
|
|
39
|
+
user?: string;
|
|
40
|
+
port?: number;
|
|
41
|
+
ssl?: boolean | {
|
|
42
|
+
rejectUnauthorized?: boolean;
|
|
43
|
+
};
|
|
44
|
+
poolFactory?: LakebasePoolFactory;
|
|
45
|
+
};
|
|
46
|
+
/** Unity Catalog principal name, when it differs from the client id. */
|
|
47
|
+
ucPrincipal?: string;
|
|
48
|
+
/** Submission-keyed telemetry into Lakebase. Default: on when Lakebase resolves. */
|
|
49
|
+
telemetry?: boolean;
|
|
50
|
+
fetchImpl?: typeof fetch;
|
|
51
|
+
}
|
|
52
|
+
export interface DatabricksAppRuntime {
|
|
53
|
+
identity: DatabricksTokenProvider;
|
|
54
|
+
/** Governed identity the app executes as; stamp into actors/submissions. */
|
|
55
|
+
principal: FabricPrincipal;
|
|
56
|
+
actor: FabricActor;
|
|
57
|
+
client: DatabricksRestClient;
|
|
58
|
+
modelProvider: ModelProvider;
|
|
59
|
+
persistence?: DatabricksPersistence;
|
|
60
|
+
telemetry?: DatabricksTelemetry;
|
|
61
|
+
/**
|
|
62
|
+
* The durable-store slice of `startDevServer` options (submission store +
|
|
63
|
+
* conversation stream store on Lakebase), with schema ensured. Empty when
|
|
64
|
+
* Lakebase is disabled.
|
|
65
|
+
*/
|
|
66
|
+
serverOptions(): Promise<{
|
|
67
|
+
submissionStore?: import('@fabric-harness/sdk').AgentSubmissionStore;
|
|
68
|
+
conversationStreamStore?: import('@fabric-harness/sdk').ConversationStreamStore;
|
|
69
|
+
}>;
|
|
70
|
+
/**
|
|
71
|
+
* Per-request on-behalf-of identity from Databricks Apps forwarded
|
|
72
|
+
* headers, or `undefined` when the request carries no user token.
|
|
73
|
+
*/
|
|
74
|
+
onBehalfOf(headers: Headers | Record<string, string | string[] | undefined>): {
|
|
75
|
+
identity: DatabricksTokenProvider;
|
|
76
|
+
actor: FabricActor;
|
|
77
|
+
} | undefined;
|
|
78
|
+
close(): Promise<void>;
|
|
79
|
+
}
|
|
80
|
+
export declare function databricksApp(options?: DatabricksAppOptions): DatabricksAppRuntime;
|
|
81
|
+
//# sourceMappingURL=app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAOnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGlF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,gFAAgF;IAChF,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8FAA8F;IAC9F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,GAAG;YAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QAAC,WAAW,CAAC,EAAE,mBAAmB,CAAA;KAAE,CAAC;IAC3K,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,uBAAuB,CAAC;IAClC,4EAA4E;IAC5E,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC;;;;OAIG;IACH,aAAa,IAAI,OAAO,CAAC;QACvB,eAAe,CAAC,EAAE,OAAO,qBAAqB,EAAE,oBAAoB,CAAC;QACrE,uBAAuB,CAAC,EAAE,OAAO,qBAAqB,EAAE,uBAAuB,CAAC;KACjF,CAAC,CAAC;IACH;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG;QAAE,QAAQ,EAAE,uBAAuB,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,GAAG,SAAS,CAAC;IACpJ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,oBAAoB,CA2FtF"}
|
package/dist/app.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { DatabricksRestClient } from './client.js';
|
|
2
|
+
import { appServicePrincipalFromEnv, databricksIdentity, fabricPrincipalFor, onBehalfOfFromHeaders, } from './identity.js';
|
|
3
|
+
import { databricksFoundationModelProvider } from './model.js';
|
|
4
|
+
import { databricksPersistence } from './persistence.js';
|
|
5
|
+
import { databricksTelemetry } from './telemetry-sink.js';
|
|
6
|
+
export function databricksApp(options = {}) {
|
|
7
|
+
const env = options.env ?? (typeof process !== 'undefined' ? process.env : {});
|
|
8
|
+
const principal = options.principal ?? appServicePrincipalFromEnv(env);
|
|
9
|
+
if (!principal) {
|
|
10
|
+
throw new Error('databricksApp() could not resolve an identity: pass `principal` or set DATABRICKS_HOST + DATABRICKS_CLIENT_ID + DATABRICKS_CLIENT_SECRET (the Databricks Apps runtime provides these).');
|
|
11
|
+
}
|
|
12
|
+
const host = options.host ??
|
|
13
|
+
(principal.kind === 'service-principal' ? principal.host : undefined) ??
|
|
14
|
+
(env.DATABRICKS_HOST ? (env.DATABRICKS_HOST.includes('://') ? env.DATABRICKS_HOST : `https://${env.DATABRICKS_HOST}`) : undefined);
|
|
15
|
+
if (!host) {
|
|
16
|
+
throw new Error('databricksApp() requires a workspace host: pass `host` or set DATABRICKS_HOST.');
|
|
17
|
+
}
|
|
18
|
+
const identity = databricksIdentity(principal);
|
|
19
|
+
const fabricPrincipal = fabricPrincipalFor(principal, {
|
|
20
|
+
asAppPrincipal: true,
|
|
21
|
+
...(options.ucPrincipal ? { ucPrincipal: options.ucPrincipal } : {}),
|
|
22
|
+
});
|
|
23
|
+
const actor = { principal: fabricPrincipal };
|
|
24
|
+
const client = new DatabricksRestClient({ host, token: identity, ...(options.fetchImpl ? { fetchImpl: options.fetchImpl } : {}) });
|
|
25
|
+
const model = options.model ?? env.DATABRICKS_SERVING_ENDPOINT;
|
|
26
|
+
const modelProvider = databricksFoundationModelProvider({
|
|
27
|
+
host,
|
|
28
|
+
token: identity,
|
|
29
|
+
...(model ? { defaultModel: model } : {}),
|
|
30
|
+
...(options.fetchImpl ? { fetchImpl: options.fetchImpl } : {}),
|
|
31
|
+
});
|
|
32
|
+
let persistence;
|
|
33
|
+
if (options.lakebase !== false) {
|
|
34
|
+
const lakebase = options.lakebase === undefined ? {} : options.lakebase;
|
|
35
|
+
const lakebaseHost = lakebase.host ?? env.DATABRICKS_LAKEBASE_HOST ?? env.PGHOST;
|
|
36
|
+
const database = lakebase.database ?? env.DATABRICKS_LAKEBASE_DATABASE ?? env.PGDATABASE;
|
|
37
|
+
const user = lakebase.user ??
|
|
38
|
+
env.DATABRICKS_LAKEBASE_USER ??
|
|
39
|
+
env.PGUSER ??
|
|
40
|
+
(principal.kind === 'service-principal' ? principal.clientId : undefined);
|
|
41
|
+
if (lakebaseHost && database && user) {
|
|
42
|
+
persistence = databricksPersistence({
|
|
43
|
+
lakebase: {
|
|
44
|
+
host: lakebaseHost,
|
|
45
|
+
database,
|
|
46
|
+
user,
|
|
47
|
+
token: identity,
|
|
48
|
+
...(lakebase.port !== undefined ? { port: lakebase.port } : env.PGPORT ? { port: Number(env.PGPORT) } : {}),
|
|
49
|
+
...(lakebase.ssl !== undefined ? { ssl: lakebase.ssl } : {}),
|
|
50
|
+
...(lakebase.poolFactory ? { poolFactory: lakebase.poolFactory } : {}),
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
else if (options.lakebase !== undefined) {
|
|
55
|
+
throw new Error('databricksApp({ lakebase }) is missing connection details: provide host/database/user or the DATABRICKS_LAKEBASE_* (or PG*) environment variables from the app database resource.');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const telemetry = persistence && options.telemetry !== false ? databricksTelemetry({ client: persistence.client }) : undefined;
|
|
59
|
+
return {
|
|
60
|
+
identity,
|
|
61
|
+
principal: fabricPrincipal,
|
|
62
|
+
actor,
|
|
63
|
+
client,
|
|
64
|
+
modelProvider,
|
|
65
|
+
...(persistence ? { persistence } : {}),
|
|
66
|
+
...(telemetry ? { telemetry } : {}),
|
|
67
|
+
async serverOptions() {
|
|
68
|
+
if (!persistence)
|
|
69
|
+
return {};
|
|
70
|
+
const { submissionStore, conversationStreamStore } = await persistence.connectAll();
|
|
71
|
+
return { submissionStore, conversationStreamStore };
|
|
72
|
+
},
|
|
73
|
+
onBehalfOf(headers) {
|
|
74
|
+
const user = onBehalfOfFromHeaders(headers);
|
|
75
|
+
if (!user)
|
|
76
|
+
return undefined;
|
|
77
|
+
return {
|
|
78
|
+
identity: databricksIdentity(user),
|
|
79
|
+
actor: { principal: fabricPrincipalFor(user), onBehalfOf: user.label ?? 'user' },
|
|
80
|
+
};
|
|
81
|
+
},
|
|
82
|
+
async close() {
|
|
83
|
+
await persistence?.close();
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=app.js.map
|
package/dist/app.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export interface DatabricksClientOptions {
|
|
2
|
+
host: string;
|
|
3
|
+
token: string | (() => string | Promise<string>);
|
|
4
|
+
fetchImpl?: typeof fetch;
|
|
5
|
+
/**
|
|
6
|
+
* Retries *after* the initial request for transient failures (429/5xx/network). Default 3, i.e.
|
|
7
|
+
* up to 4 total attempts. This is a best-effort transport-level retry, NOT an idempotency
|
|
8
|
+
* mechanism: non-idempotent POSTs (e.g. `/sql/statements`, `/jobs/run-now`) can duplicate work if
|
|
9
|
+
* a request actually reached the server before failing. Set `maxRetries: 0` to disable, or use
|
|
10
|
+
* Databricks' own idempotency tokens where the API supports them.
|
|
11
|
+
*/
|
|
12
|
+
maxRetries?: number;
|
|
13
|
+
/** Base backoff in ms (exponential per attempt; `Retry-After` honored when present). Default 500. */
|
|
14
|
+
retryBaseDelayMs?: number;
|
|
15
|
+
/** Abort signal forwarded to every request. */
|
|
16
|
+
signal?: AbortSignal;
|
|
17
|
+
/**
|
|
18
|
+
* Extra headers resolved per attempt — e.g. on-behalf-of propagation
|
|
19
|
+
* (forwarding a user's access token or workspace OBO headers) without
|
|
20
|
+
* rebuilding the client. Never logged.
|
|
21
|
+
*/
|
|
22
|
+
extraHeaders?: Record<string, string> | (() => Record<string, string> | Promise<Record<string, string>>);
|
|
23
|
+
}
|
|
24
|
+
export declare class DatabricksRestClient {
|
|
25
|
+
private readonly host;
|
|
26
|
+
private readonly token;
|
|
27
|
+
private readonly fetchImpl;
|
|
28
|
+
private readonly maxRetries;
|
|
29
|
+
private readonly retryBaseDelayMs;
|
|
30
|
+
private readonly signal;
|
|
31
|
+
private readonly extraHeaders;
|
|
32
|
+
constructor(options: DatabricksClientOptions);
|
|
33
|
+
get<T>(path: string, query?: Record<string, string | number | boolean | undefined>): Promise<T>;
|
|
34
|
+
post<T>(path: string, body?: unknown, query?: Record<string, string | number | boolean | undefined>): Promise<T>;
|
|
35
|
+
request<T>(method: string, path: string, body?: unknown, query?: Record<string, string | number | boolean | undefined>): Promise<T>;
|
|
36
|
+
}
|
|
37
|
+
export declare function createDatabricksClient(options: DatabricksClientOptions): DatabricksRestClient;
|
|
38
|
+
export interface DatabricksWaitOptions {
|
|
39
|
+
pollIntervalMs?: number;
|
|
40
|
+
timeoutMs?: number;
|
|
41
|
+
}
|
|
42
|
+
export declare function waitForDatabricksRun(client: DatabricksRestClient, runId: number, options?: DatabricksWaitOptions): Promise<Record<string, unknown>>;
|
|
43
|
+
export declare function waitForDatabricksStatement(client: DatabricksRestClient, statementId: string, options?: DatabricksWaitOptions): Promise<Record<string, unknown>>;
|
|
44
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qGAAqG;IACrG,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CAC1G;AAeD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0C;gBAE3D,OAAO,EAAE,uBAAuB;IAU5C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI/F,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1G,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CA2C9I;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,oBAAoB,CAE7F;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAS7J;AAED,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CASzK"}
|