@duckcodeailabs/dql-core 1.10.0 → 1.10.2

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.
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Versioned cross-surface contracts for analytical composition and repair.
3
+ *
4
+ * These types deliberately contain no agent or UI concepts. Ask, Notebook,
5
+ * CLI, MCP, Chat, and execution adapters exchange the same serialized shapes.
6
+ *
7
+ * Acceptance: CONTRACT-002, AGT-017, API-007, SEC-004.
8
+ */
9
+ export declare const ANALYTICAL_QUESTION_FRAME_VERSION: 2;
10
+ export declare const ANALYTICAL_FAILURE_VERSION: 1;
11
+ export type AnalyticalDimensionRole = 'group_by' | 'filter' | 'display' | 'rank_entity' | 'time_axis';
12
+ export type AnalyticalQuestionType = 'definition' | 'scalar' | 'ranking' | 'trend' | 'comparison' | 'diagnosis' | 'research';
13
+ export type AnalyticalPeriodKind = 'absolute' | 'current' | 'previous_period' | 'previous_year';
14
+ export interface AnalyticalDimensionBindingV2 {
15
+ dimensionId: string;
16
+ role: AnalyticalDimensionRole;
17
+ requestedLabel?: string;
18
+ }
19
+ export interface AnalyticalMemberBindingV2 {
20
+ dimensionId: string;
21
+ canonicalValues: unknown[];
22
+ source: 'question' | 'clarification' | 'prior_result' | 'parameter';
23
+ confidence: 'exact' | 'high' | 'medium';
24
+ sourceTurnId?: string;
25
+ }
26
+ export interface AnalyticalPeriodV2 {
27
+ id: string;
28
+ kind: AnalyticalPeriodKind;
29
+ start?: string;
30
+ end?: string;
31
+ alignToPeriodId?: string;
32
+ }
33
+ export interface AnalyticalTimeContextV2 {
34
+ timeDimensionId?: string;
35
+ timeRole?: string;
36
+ calendarId?: string;
37
+ timezone?: string;
38
+ grain?: string;
39
+ completenessPolicy?: 'partial_current' | 'latest_complete' | 'closed_period';
40
+ periods: AnalyticalPeriodV2[];
41
+ }
42
+ export interface AnalyticalComparisonV2 {
43
+ basePeriodId: string;
44
+ comparisonPeriodIds: string[];
45
+ alignment?: 'elapsed_period' | 'calendar_period' | 'fiscal_period';
46
+ outputs: Array<'value' | 'absolute_delta' | 'percent_delta'>;
47
+ zeroDenominatorPolicy: 'null' | 'not_applicable';
48
+ }
49
+ export interface AnalyticalRankingV2 {
50
+ entityDimensionId: string;
51
+ byMetricId: string;
52
+ byPeriodId?: string;
53
+ direction: 'asc' | 'desc';
54
+ limit: number;
55
+ tiePolicy: 'stable_secondary_key' | 'include_ties';
56
+ }
57
+ export interface AnalyticalRequestedOutputV2 {
58
+ id: string;
59
+ kind: 'dimension' | 'metric_value' | 'delta' | 'percent_delta' | 'rank';
60
+ metricId?: string;
61
+ periodId?: string;
62
+ }
63
+ export interface AnalyticalAmbiguityV2 {
64
+ field: string;
65
+ candidateIds: string[];
66
+ reasonCode: string;
67
+ }
68
+ export interface AnalyticalQuestionFrameV2 {
69
+ version: 2;
70
+ interpretedQuestion: string;
71
+ questionType: AnalyticalQuestionType;
72
+ metricConceptIds: string[];
73
+ entityGrainIds: string[];
74
+ dimensions: AnalyticalDimensionBindingV2[];
75
+ memberBindings: AnalyticalMemberBindingV2[];
76
+ timeContext?: AnalyticalTimeContextV2;
77
+ comparison?: AnalyticalComparisonV2;
78
+ ranking?: AnalyticalRankingV2;
79
+ requestedOutputs: AnalyticalRequestedOutputV2[];
80
+ ambiguity: AnalyticalAmbiguityV2[];
81
+ }
82
+ export type AnalyticalOperation = 'filter' | 'group' | 'trend' | 'compare' | 'rank' | 'window' | 'having';
83
+ export interface MetricCapabilityContract {
84
+ metricId: string;
85
+ semanticModelId?: string;
86
+ measureIds: string[];
87
+ primaryEntityId: string;
88
+ /** Result grain used when the question requests no grouping dimension. */
89
+ defaultResultGrainId: string;
90
+ resultGrainIds: string[];
91
+ aggregation: string;
92
+ additivity: {
93
+ entities: 'additive' | 'semi_additive' | 'non_additive';
94
+ time: 'additive' | 'semi_additive' | 'non_additive';
95
+ nonAdditiveDimensionIds?: string[];
96
+ };
97
+ dimensions: Array<{
98
+ dimensionId: string;
99
+ /** Entity grain produced/filtered by this dimension. */
100
+ entityId: string;
101
+ supportedRoles: AnalyticalDimensionRole[];
102
+ relationshipPathIds?: string[];
103
+ }>;
104
+ timeDimensions: Array<{
105
+ dimensionId: string;
106
+ role: string;
107
+ supportedGrains: string[];
108
+ defaultFor?: Array<'scalar' | 'trend' | 'comparison'>;
109
+ }>;
110
+ freshness?: {
111
+ observedThroughFieldId?: string;
112
+ defaultCompletenessPolicy?: 'partial_current' | 'latest_complete' | 'closed_period';
113
+ };
114
+ operations: AnalyticalOperation[];
115
+ supportedOutputKinds: AnalyticalRequestedOutputV2['kind'][];
116
+ /** Certified assets may further restrict the exact output aliases. */
117
+ declaredOutputIds?: string[];
118
+ executionCapabilities: Array<{
119
+ route: 'certified' | 'semantic' | 'governed_sql' | 'exploratory';
120
+ adapterId?: string;
121
+ }>;
122
+ sourceFingerprint: string;
123
+ }
124
+ export interface AnalyticalPolicyContract {
125
+ policyId: string;
126
+ sourceHash: string;
127
+ metricIds?: string[];
128
+ timeRole?: string;
129
+ calendarId?: string;
130
+ timezone?: string;
131
+ completenessPolicy?: 'partial_current' | 'latest_complete' | 'closed_period';
132
+ comparisonAlignment?: 'elapsed_period' | 'calendar_period' | 'fiscal_period';
133
+ defaultRankingPeriod?: 'current' | 'comparison';
134
+ narrativeGuidance?: string[];
135
+ }
136
+ export type AnalyticalFailureCode = 'COLUMN_NOT_FOUND' | 'RELATION_NOT_FOUND' | 'PERMISSION_DENIED' | 'AMBIGUOUS_COLUMN' | 'DIALECT_ERROR' | 'SNAPSHOT_DRIFT' | 'TIMEOUT' | 'RESULT_CONTRACT_MISMATCH' | 'COMPILATION_FAILED' | 'POLICY_DENIED';
137
+ export type AnalyticalFailurePhase = 'planning' | 'compilation' | 'validation' | 'execution' | 'result_validation';
138
+ export type AnalyticalFailureRecoverability = 'retry_same' | 'refresh_snapshot' | 'edit_dql' | 'edit_sql' | 'change_authorized_connection' | 'request_access' | 'modeling_change' | 'none';
139
+ export interface AnalyticalFailureV1 {
140
+ version: 1;
141
+ runId: string;
142
+ failureId: string;
143
+ code: AnalyticalFailureCode;
144
+ phase: AnalyticalFailurePhase;
145
+ message: string;
146
+ recoverability: AnalyticalFailureRecoverability;
147
+ failedBindings: Array<{
148
+ qualifiedId?: string;
149
+ role?: string;
150
+ reasonCode: string;
151
+ }>;
152
+ snapshotId: string;
153
+ planFingerprint?: string;
154
+ dqlFingerprint?: string;
155
+ sqlFingerprint?: string;
156
+ safeActions: string[];
157
+ }
158
+ export type AnalyticalTrustState = 'certified' | 'governed' | 'review_required';
159
+ export type AnalyticalRepairChange = 'parameter_only' | 'display_only' | 'dql_source' | 'sql_text' | 'snapshot_refresh' | 'connection_change' | 'reviewed_draft_promotion';
160
+ export interface AnalyticalRepairTrustTransition {
161
+ previous: AnalyticalTrustState;
162
+ next: AnalyticalTrustState;
163
+ requiresNewReceipt: boolean;
164
+ requiresReview: boolean;
165
+ preservesCertifiedAssetIdentity: boolean;
166
+ }
167
+ /** Strictly normalize an untrusted cross-surface analytical frame. */
168
+ export declare function normalizeAnalyticalQuestionFrameV2(value: unknown): AnalyticalQuestionFrameV2 | undefined;
169
+ /** Strictly normalize capability metadata before it becomes routing evidence. */
170
+ export declare function normalizeMetricCapabilityContract(value: unknown): MetricCapabilityContract | undefined;
171
+ /** Strictly normalize a failure returned by any DQL analytical surface. */
172
+ export declare function normalizeAnalyticalFailureV1(value: unknown): AnalyticalFailureV1 | undefined;
173
+ /** Apply the RFC 0005 trust matrix before a derived repair is exposed. */
174
+ export declare function analyticalRepairTrustTransition(input: {
175
+ previous: AnalyticalTrustState;
176
+ change: AnalyticalRepairChange;
177
+ governedValidationPassed?: boolean;
178
+ }): AnalyticalRepairTrustTransition;
179
+ //# sourceMappingURL=analytical.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytical.d.ts","sourceRoot":"","sources":["../../src/contracts/analytical.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,iCAAiC,EAAG,CAAU,CAAC;AAC5D,eAAO,MAAM,0BAA0B,EAAG,CAAU,CAAC;AAErD,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;AAEtG,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,CAAC;AAE7H,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,SAAS,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAEhG,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,uBAAuB,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,MAAM,EAAE,UAAU,GAAG,eAAe,GAAG,cAAc,GAAG,WAAW,CAAC;IACpE,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,oBAAoB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,eAAe,CAAC;IAC7E,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,eAAe,CAAC;IACnE,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,gBAAgB,GAAG,eAAe,CAAC,CAAC;IAC7D,qBAAqB,EAAE,MAAM,GAAG,gBAAgB,CAAC;CAClD;AAED,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,sBAAsB,GAAG,cAAc,CAAC;CACpD;AAED,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,GAAG,cAAc,GAAG,OAAO,GAAG,eAAe,GAAG,MAAM,CAAC;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,CAAC,CAAC;IACX,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,sBAAsB,CAAC;IACrC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,4BAA4B,EAAE,CAAC;IAC3C,cAAc,EAAE,yBAAyB,EAAE,CAAC;IAC5C,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,gBAAgB,EAAE,2BAA2B,EAAE,CAAC;IAChD,SAAS,EAAE,qBAAqB,EAAE,CAAC;CACpC;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE1G,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QACV,QAAQ,EAAE,UAAU,GAAG,eAAe,GAAG,cAAc,CAAC;QACxD,IAAI,EAAE,UAAU,GAAG,eAAe,GAAG,cAAc,CAAC;QACpD,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;KACpC,CAAC;IACF,UAAU,EAAE,KAAK,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,wDAAwD;QACxD,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,uBAAuB,EAAE,CAAC;QAC1C,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;KAChC,CAAC,CAAC;IACH,cAAc,EAAE,KAAK,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAC,CAAC;KACvD,CAAC,CAAC;IACH,SAAS,CAAC,EAAE;QACV,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,yBAAyB,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,eAAe,CAAC;KACrF,CAAC;IACF,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,oBAAoB,EAAE,2BAA2B,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5D,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,qBAAqB,EAAE,KAAK,CAAC;QAC3B,KAAK,EAAE,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,aAAa,CAAC;QACjE,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,eAAe,CAAC;IAC7E,mBAAmB,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,eAAe,CAAC;IAC7E,oBAAoB,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;IAChD,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,MAAM,qBAAqB,GAC7B,kBAAkB,GAClB,oBAAoB,GACpB,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,gBAAgB,GAChB,SAAS,GACT,0BAA0B,GAC1B,oBAAoB,GACpB,eAAe,CAAC;AAEpB,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,mBAAmB,CAAC;AAEnH,MAAM,MAAM,+BAA+B,GACvC,YAAY,GACZ,kBAAkB,GAClB,UAAU,GACV,UAAU,GACV,8BAA8B,GAC9B,gBAAgB,GAChB,iBAAiB,GACjB,MAAM,CAAC;AAEX,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,sBAAsB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,+BAA+B,CAAC;IAChD,cAAc,EAAE,KAAK,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,UAAU,GAAG,iBAAiB,CAAC;AAEhF,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,GAAG,cAAc,GAAG,YAAY,GAAG,UAAU,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,0BAA0B,CAAC;AAE3K,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,+BAA+B,EAAE,OAAO,CAAC;CAC1C;AA8BD,sEAAsE;AACtE,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,OAAO,GAAG,yBAAyB,GAAG,SAAS,CAgCxG;AAED,iFAAiF;AACjF,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,wBAAwB,GAAG,SAAS,CAsDtG;AAED,2EAA2E;AAC3E,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,SAAS,CA2C5F;AAED,0EAA0E;AAC1E,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,GAAG,+BAA+B,CAmClC"}