/** * Target-bound semantic execution contracts shared by Ask, Notebook, Preview, * Block Studio, CLI, MCP, and Chat. * * Credentials never enter these serializable contracts. Runtime adapters hold * them only in server-side connector leases. * * Acceptance: CTX-005, AGT-013, AGT-014, API-006, API-007, SEC-004. */ export declare const SEMANTIC_EXECUTION_CONTRACT_VERSION: 1; export type SemanticAdapterIdV1 = 'native' | 'metricflow-cli' | 'dbt-cloud'; export interface SemanticSnapshotRefV1 { version: 1; snapshotId: string; sourceFingerprint: string; semanticCatalogFingerprint: string; artifact?: { kind: 'semantic_manifest' | 'manifest' | 'semantic_yaml' | 'dbt_cloud_catalog'; fingerprint: string; generatedAt?: string; }; } export interface WarehouseTargetContextV1 { /** * Preferred client-facing account identifier. For Snowflake this is normally * `organization-account_name`, while accountLocator retains CURRENT_ACCOUNT(). */ account?: string; accountLocator?: string; accountName?: string; organization?: string; database?: string; schema?: string; role?: string; warehouse?: string; catalog?: string; } export interface WarehouseTargetIdentityV1 { version: 1; /** Opaque server-owned reference; never a credential or user-provided proof. */ connectionRef: string; identityFingerprint: string; driver: string; dialect: string; redactedContext: WarehouseTargetContextV1; observedAt: string; } export type SemanticCompileTargetV1 = { kind: 'native_snapshot'; semanticLayerFingerprint: string; dialect: string; } | { kind: 'metricflow_target'; dbtProjectFingerprint: string; profilesFingerprint: string; profileName: string; targetName: string; semanticManifestFingerprint: string; runtimeVersion: string; dialect: string; } | { kind: 'dbt_cloud_environment'; hostFingerprint: string; environmentId: string; semanticCatalogFingerprint: string; deploymentFingerprint?: string; dialect: string; }; export type SemanticTargetProofKind = 'semantic_source' | 'semantic_catalog' | 'adapter_target_pin' | 'dialect' | 'warehouse_context' | 'relation_contract'; export interface SemanticTargetBindingV1 { version: 1; bindingId: string; bindingFingerprint: string; adapterId: SemanticAdapterIdV1; adapterImplementationFingerprint: string; /** Opaque revision, changed when credentials are replaced; never a secret hash. */ credentialRevision: string; semanticSnapshot: SemanticSnapshotRefV1; compileTarget: SemanticCompileTargetV1; executionTarget: WarehouseTargetIdentityV1; proof: { status: 'verified'; checks: Array<{ kind: SemanticTargetProofKind; fingerprint: string; }>; }; } /** Immutable compiler-issued authority for one governed derived metric output. */ export interface SemanticAggregationCompilerReceiptV1 { version: 1; executionId: string; capabilityFingerprint: string; metricId: string; metricExpressionSql: string; operator: 'ratio'; orderedMeasureIds: string[]; physicalRelation: string; relationAliases: string[]; outputAlias: string; dimensionIds: string[]; relationshipPathIds: string[]; relationshipProofFingerprints: string[]; orderBy: Array<{ expression: string; direction: 'asc' | 'desc'; }>; compiledSqlFingerprint: string; compiledExpressionFingerprint: string; planFingerprint: string; snapshotId: string; targetFingerprint: string; receiptFingerprint: string; } export interface SemanticRuntimeMemberBindingV1 { role: 'metric' | 'dimension' | 'time_dimension' | 'filter' | 'order_by' | 'technical'; qualifiedId: string; authoringReference: string; runtimeReference: string; entityPath: string[]; } export interface ExecutableSemanticQueryPlanV1 { version: 1; executablePlanId: string; fingerprint: string; planId: string; planFingerprint: string; snapshotId: string; targetBinding: SemanticTargetBindingV1; runtimeBindings: SemanticRuntimeMemberBindingV1[]; query: { dialect: string; sql: string; renderedSqlFingerprint: string; parameters: Array<{ name: string; type: string; }>; }; lineage: { relations: string[]; requiredColumns: Array<{ relation: string; column: string; }>; assurance: 'adapter_proven' | 'parsed' | 'warehouse_preflight'; fingerprint: string; }; outputContract: { fields: string[]; grain?: string; rowBound: number; }; } export interface SemanticExecutionReceiptV1 { version: 1; receiptId: string; runId: string; snapshotId: string; planId: string; planFingerprint: string; executablePlanId: string; executablePlanFingerprint: string; targetBindingFingerprint: string; adapterId: SemanticAdapterIdV1; executionTargetFingerprint: string; runtimeBindings: SemanticRuntimeMemberBindingV1[]; compiledSqlFingerprint: string; executedSqlFingerprint?: string; parameterFingerprint: string; queryId?: string; sqlState?: string; vendorCode?: string; outcome: 'succeeded' | 'failed' | 'cancelled'; failedPhase?: 'planning' | 'compilation' | 'validation' | 'execution' | 'result_validation'; outputColumns: string[]; rowCount: number; rowBound: number; resultFingerprint?: string; timingsMs: Partial>; } export interface WarehouseTargetMismatchV1 { field: keyof WarehouseTargetContextV1 | 'driver' | 'dialect'; expected?: string; actual?: string; } export declare function createWarehouseTargetIdentity(input: { connectionRef: string; driver: string; dialect?: string; redactedContext?: WarehouseTargetContextV1; observedAt?: string; }): WarehouseTargetIdentityV1; export declare function createSemanticTargetBinding(input: Omit): SemanticTargetBindingV1; export declare function compareWarehouseTargets(expected: WarehouseTargetIdentityV1, actual: WarehouseTargetIdentityV1): WarehouseTargetMismatchV1[]; export declare function semanticExecutionFingerprint(value: unknown): string; //# sourceMappingURL=semantic-execution.d.ts.map