import type { ToolDef } from "@fabric-harness/sdk"; import type { AccessManagementClient } from "@databricks/sdk-accessmanagement/v1"; import type { GenieClient } from "@databricks/sdk-genie/v1"; export interface DatabricksGenieAdminClients { genie: Pick; permissions: Pick; } import { type DatabricksManagedResourceStore } from "./managed-resource.js"; export interface DatabricksGenieAgentSpecV2 { version: 2; title: string; description?: string; parentPath: string; warehouseId: string; sampleQuestions?: Array<{ id?: string; question: string; }>; dataSources: DatabricksGenieDataSource[]; /** Databricks currently permits at most one text instruction. */ instructions?: string[]; examples?: DatabricksGenieSqlExample[]; sqlFunctions?: DatabricksGenieSqlFunction[]; joins?: DatabricksGenieJoinSpec[]; sqlSnippets?: DatabricksGenieSqlSnippets; benchmarks?: DatabricksGenieBenchmark[]; } export interface DatabricksGenieSqlExample { id?: string; question: string; sql: string; } export interface DatabricksGenieSqlFunction { id?: string; identifier: string; } export interface DatabricksGenieJoinSide { identifier: string; alias?: string; } export interface DatabricksGenieJoinSpec { id?: string; left: DatabricksGenieJoinSide; right: DatabricksGenieJoinSide; sql: string; } export interface DatabricksGenieSqlSnippet { id?: string; sql: string; displayName?: string; alias?: string; synonyms?: string[]; } export interface DatabricksGenieSqlSnippets { filters?: DatabricksGenieSqlSnippet[]; expressions?: DatabricksGenieSqlSnippet[]; measures?: DatabricksGenieSqlSnippet[]; } export interface DatabricksGenieBenchmark { id?: string; question: string; sql: string; } export interface DatabricksGenieSqlPolicyInput { sql: string; purpose: "example" | "join" | "filter" | "expression" | "measure" | "benchmark"; declaredDataSources: string[]; } export interface DatabricksGenieSqlPolicyResult { resources: string[]; } export type DatabricksGenieSqlPolicy = (input: DatabricksGenieSqlPolicyInput) => DatabricksGenieSqlPolicyResult | Promise; export interface DatabricksGenieDataSource { kind?: "table" | "metric-view"; table: string; description?: string; columns?: DatabricksGenieColumnSpec[]; } export interface DatabricksGenieColumnSpec { name: string; description?: string; synonyms?: string[]; exclude?: boolean; getExampleValues?: boolean; enableFormatAssistance?: boolean; enableEntityMatching?: boolean; } export interface DatabricksGenieAgent { agentId: string; title: string; description?: string; parentPath?: string; warehouseId?: string; etag?: string; serializedSpace?: string; fingerprint: string; } export interface DatabricksGenieAgentPage { agents: DatabricksGenieAgent[]; nextPageToken?: string; } export type DatabricksGeniePermissionLevel = "CAN_VIEW" | "CAN_RUN" | "CAN_EDIT" | "CAN_MANAGE"; export interface DatabricksGeniePermissionChange { permissionLevel: DatabricksGeniePermissionLevel; userName?: string; groupName?: string; servicePrincipalName?: string; } export interface DatabricksGeniePermissions { objectId?: string; objectType?: string; accessControlList: DatabricksGenieAccessControl[]; } export interface DatabricksGenieAccessControl { userName?: string; groupName?: string; servicePrincipalName?: string; displayName?: string; allPermissions: Array<{ permissionLevel?: string; inherited?: boolean; inheritedFromObject?: string[]; }>; } export interface DatabricksGenieExport { exportedAt: string; agent: DatabricksGenieAgent; serializedSpace: string; } export interface DatabricksGenieOwnershipContext { principal: string; toolCallId: string; } export interface DatabricksGenieAdminOptions { managedResourceStore?: DatabricksManagedResourceStore; } export interface DatabricksGenieAuthoringToolOptions { managedResourceStore: DatabricksManagedResourceStore; principal: string; destructive?: boolean; /** Required before SQL-bearing fields are admitted to model-facing create/update schemas. */ sqlPolicy?: DatabricksGenieSqlPolicy; } export interface DatabricksGenieAgentUpdate { expectedFingerprint: string; set: { spec?: DatabricksGenieAgentSpecV2; title?: string; description?: string; parentPath?: string; warehouseId?: string; }; /** The management API has no general field mask; only description supports explicit clearing. */ remove?: Array<"description">; } export declare class DatabricksGenieAdmin { private readonly clients; private readonly options; constructor(clients: DatabricksGenieAdminClients, options?: DatabricksGenieAdminOptions); list(options?: { pageSize?: number; pageToken?: string; signal?: AbortSignal; }): Promise; get(agentId: string, options?: { includeConfiguration?: boolean; signal?: AbortSignal; }): Promise; create(spec: DatabricksGenieAgentSpecV2, options?: { ownership?: DatabricksGenieOwnershipContext; signal?: AbortSignal; }): Promise; update(agentId: string, update: DatabricksGenieAgentUpdate, options?: { ownership?: DatabricksGenieOwnershipContext; signal?: AbortSignal; }): Promise; private waitForFingerprint; delete(agentId: string, options?: { signal?: AbortSignal; }): Promise; private waitUntilTrashed; permissions(agentId: string, options?: { signal?: AbortSignal; }): Promise; updatePermissions(agentId: string, changes: DatabricksGeniePermissionChange[], options?: { signal?: AbortSignal; }): Promise; export(agentId: string, options?: { signal?: AbortSignal; }): Promise; /** Raw export import is intentionally typed-client-only; no model ToolDef accepts serialized space. */ import(exported: DatabricksGenieExport, options?: { title?: string; description?: string; parentPath?: string; warehouseId?: string; ownership?: DatabricksGenieOwnershipContext; signal?: AbortSignal; }): Promise; private recordOwnership; } export declare function databricksGenieAdmin(client: DatabricksGenieAdminClients, options?: DatabricksGenieAdminOptions): DatabricksGenieAdmin; export declare function databricksGenieAuthoringTools(client: DatabricksGenieAdminClients, options: DatabricksGenieAuthoringToolOptions): ToolDef[]; export declare function normalizeDatabricksGenieAgentSpec(spec: DatabricksGenieAgentSpecV2): Promise; export declare function validateDatabricksGenieSqlReferences(spec: DatabricksGenieAgentSpecV2, policy: DatabricksGenieSqlPolicy): Promise; export declare function serializeDatabricksGenieAgentSpec(spec: DatabricksGenieAgentSpecV2): Promise; //# sourceMappingURL=genie-authoring.d.ts.map