react-semaphor 0.1.495 → 0.1.496

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.
Files changed (124) hide show
  1. package/dist/analytics-protocol/index.cjs +1 -1
  2. package/dist/analytics-protocol/index.js +233 -218
  3. package/dist/brand-studio/index.cjs +1 -1
  4. package/dist/brand-studio/index.js +4 -4
  5. package/dist/briefings/index.cjs +1 -1
  6. package/dist/briefings/index.js +5 -5
  7. package/dist/chunks/calculated-field-identity-Cq9GwHfE.js +1266 -0
  8. package/dist/chunks/calculated-field-identity-DTfyvvLC.cjs +1 -0
  9. package/dist/chunks/{constants-BjGBVFbu.js → constants-CC3WKmqC.js} +14 -14
  10. package/dist/chunks/{constants-C-GvudXp.cjs → constants-DIuhVR6J.cjs} +1 -1
  11. package/dist/chunks/{dashboard-briefing-launcher-tYTkfNPj.js → dashboard-briefing-launcher-Bbz4cwHb.js} +9 -9
  12. package/dist/chunks/{dashboard-briefing-launcher-DyYVbfXp.cjs → dashboard-briefing-launcher-CM6LTGw5.cjs} +1 -1
  13. package/dist/chunks/{dashboard-controls-Hwo4ZnW4.cjs → dashboard-controls-B2nrczJl.cjs} +1 -1
  14. package/dist/chunks/{dashboard-controls-BR7hSzDh.js → dashboard-controls-BsgADy-S.js} +11 -11
  15. package/dist/chunks/{dashboard-date-comparison-definition-CpCZAGIz.js → dashboard-date-comparison-definition-Bqti6YAo.js} +1 -1
  16. package/dist/chunks/{dashboard-date-comparison-definition-1NBx_7QQ.cjs → dashboard-date-comparison-definition-C69F-zaC.cjs} +1 -1
  17. package/dist/chunks/{dashboard-json-FDNan6Lc.js → dashboard-json-CA-BChbt.js} +7 -7
  18. package/dist/chunks/{dashboard-json-B3CuJo_G.cjs → dashboard-json-CwRRBSSL.cjs} +1 -1
  19. package/dist/chunks/{edit-dashboard-visual-aqW4Jtrr.cjs → edit-dashboard-visual-BlS27LDw.cjs} +1 -1
  20. package/dist/chunks/{edit-dashboard-visual-DTJwFkdX.js → edit-dashboard-visual-CEiPgdkX.js} +15 -15
  21. package/dist/chunks/{editor-action-buttons-DSGiwWur.js → editor-action-buttons-6HBjjcfK.js} +6 -6
  22. package/dist/chunks/{editor-action-buttons-B3Dpnink.cjs → editor-action-buttons-kk2BNiTe.cjs} +1 -1
  23. package/dist/chunks/{field-aggregations-Cy4hBBqe.js → field-aggregations-C8kZqMTD.js} +11 -11
  24. package/dist/chunks/{field-aggregations-U54X9_Rt.cjs → field-aggregations-naKZ7S2Q.cjs} +1 -1
  25. package/dist/chunks/{index-a9nBmD-v.cjs → index-BSRwdFTN.cjs} +222 -222
  26. package/dist/chunks/{index-B9FLuTyx.cjs → index-CCa-A-Yx.cjs} +1 -1
  27. package/dist/chunks/{index-Ne0-ePdz.js → index-Cgoz65yM.js} +39098 -38334
  28. package/dist/chunks/{index-zKj-mqbS.js → index-oll4m-qi.js} +11 -11
  29. package/dist/chunks/{matrix-analytical-definition-DSRmzber.js → matrix-analytical-definition-B1xhoCak.js} +1 -1
  30. package/dist/chunks/{matrix-analytical-definition-B5oWAePu.cjs → matrix-analytical-definition-BK5y9XHH.cjs} +1 -1
  31. package/dist/chunks/{matrix-card-CxTCV9HF.js → matrix-card-BEb6hr8i.js} +2 -2
  32. package/dist/chunks/{matrix-card-BV7OPtq_.cjs → matrix-card-Ii8yYSnw.cjs} +1 -1
  33. package/dist/chunks/{matrix-control-sources-BLGlb4S9.cjs → matrix-control-sources-CdegRBcA.cjs} +1 -1
  34. package/dist/chunks/{matrix-control-sources-DYMzccBY.js → matrix-control-sources-cbYmqWNg.js} +5 -5
  35. package/dist/chunks/{matrix-definition-jy7ygO6J.cjs → matrix-definition-CSNthxru.cjs} +1 -1
  36. package/dist/chunks/{matrix-definition-Djesv_9v.js → matrix-definition-CZM5-YJX.js} +1 -1
  37. package/dist/chunks/{matrix-formatter-CuRTrMP2.cjs → matrix-formatter-C19PZAal.cjs} +1 -1
  38. package/dist/chunks/{matrix-formatter-BhkdDosE.js → matrix-formatter-CiXzpX6X.js} +27 -27
  39. package/dist/chunks/matrix-member-presentation-CQHvq18l.cjs +1 -0
  40. package/dist/chunks/matrix-member-presentation-CabW8mJc.js +105 -0
  41. package/dist/chunks/{matrix-operation-contract-4q53iAUW.js → matrix-operation-contract-0Nor-C71.js} +21 -21
  42. package/dist/chunks/{matrix-operation-contract-CbavkrJj.cjs → matrix-operation-contract-o9GXbiHw.cjs} +1 -1
  43. package/dist/chunks/{metric-comparison-CPx_2iqI.js → metric-comparison-Br8l0WkK.js} +1 -1
  44. package/dist/chunks/{metric-comparison-l2X7Reol.cjs → metric-comparison-DeiOjEm5.cjs} +1 -1
  45. package/dist/chunks/{operators-C8TxpM4C.js → operators-B3zZoskU.js} +28 -10
  46. package/dist/chunks/operators-DEfKaU_V.cjs +1 -0
  47. package/dist/chunks/{pivot-header-presentation-BDMb1Wlc.cjs → pivot-header-presentation-DRv-cSIP.cjs} +1 -1
  48. package/dist/chunks/{pivot-header-presentation-utM9JrgD.js → pivot-header-presentation-DW-ti5ek.js} +3 -3
  49. package/dist/chunks/{pivot-result-identity-Hm1sO9KE.cjs → pivot-result-identity-DEenUrMj.cjs} +1 -1
  50. package/dist/chunks/{pivot-result-identity-BDntll93.js → pivot-result-identity-sZc1RaIz.js} +1 -1
  51. package/dist/chunks/{pivot-result-lifecycle-QiOUMsYd.cjs → pivot-result-lifecycle-D81qcCcZ.cjs} +1 -1
  52. package/dist/chunks/{pivot-result-lifecycle-Cu9hRFAp.js → pivot-result-lifecycle-DJ40gdwk.js} +7 -7
  53. package/dist/chunks/{raw-temporal-DWuF9bt7.cjs → raw-temporal-DDTt2yv5.cjs} +1 -1
  54. package/dist/chunks/{raw-temporal-CknUT-Fp.js → raw-temporal-DHCZrFe7.js} +15 -15
  55. package/dist/chunks/{raw-temporal-contract-B3YGcvzw.cjs → raw-temporal-contract-BcbV56Rc.cjs} +1 -1
  56. package/dist/chunks/{raw-temporal-contract-BVcDonCB.js → raw-temporal-contract-CkvdtPYA.js} +1 -1
  57. package/dist/chunks/{report-preferences-dialog-DsjMwa3m.js → report-preferences-dialog-CVRJOCQu.js} +6 -6
  58. package/dist/chunks/{report-preferences-dialog-BP_EdVHP.cjs → report-preferences-dialog-DGEq-iBF.cjs} +1 -1
  59. package/dist/chunks/{report-runtime-context-DTxVBKqP.js → report-runtime-context-BlDpc-F-.js} +1 -1
  60. package/dist/chunks/{report-runtime-context-C-As8sq_.cjs → report-runtime-context-lSIvyKm2.cjs} +1 -1
  61. package/dist/chunks/{semantic-format-CyJWf8gZ.cjs → semantic-format--_VEin18.cjs} +1 -1
  62. package/dist/chunks/{semantic-format-BTEhH9ga.js → semantic-format-ew5zviaT.js} +2 -2
  63. package/dist/chunks/{source-entity-resolution-DXjCZPuO.js → source-entity-resolution-79Rihbk3.js} +121 -107
  64. package/dist/chunks/source-entity-resolution-DPjslVgx.cjs +1 -0
  65. package/dist/chunks/{switch-BmCGBb2F.js → switch-BmyuyM7e.js} +4736 -4697
  66. package/dist/chunks/switch-nDjQC2y3.cjs +139 -0
  67. package/dist/chunks/{temporal-bucket-contract-pW4c6N2M.cjs → temporal-bucket-contract-BYR6tj6F.cjs} +1 -1
  68. package/dist/chunks/{temporal-bucket-contract-Bhsl_j4B.js → temporal-bucket-contract-C-kKQ_W4.js} +1 -1
  69. package/dist/chunks/{token-types-DpYncMPp.js → token-types-BIYFAsGq.js} +1 -1
  70. package/dist/chunks/{token-types-CsKRtJp0.cjs → token-types-CkAGFhiW.cjs} +1 -1
  71. package/dist/chunks/{update-policy-CtLb9ish.cjs → update-policy-BCtFr2Qh.cjs} +1 -1
  72. package/dist/chunks/{update-policy-BoB26XrS.js → update-policy-CP_A1IVD.js} +2 -2
  73. package/dist/chunks/{validators-DgmJaRF4.js → validators-D-_IT-Xw.js} +1132 -1013
  74. package/dist/chunks/validators-ux2obZB9.cjs +1 -0
  75. package/dist/dashboard/index.cjs +1 -1
  76. package/dist/dashboard/index.js +1 -1
  77. package/dist/dashboard-authoring/index.cjs +3 -3
  78. package/dist/dashboard-authoring/index.js +157 -150
  79. package/dist/data-app-builder/index.cjs +1 -1
  80. package/dist/data-app-builder/index.js +2 -2
  81. package/dist/data-app-codegen/index.cjs +1 -1
  82. package/dist/data-app-codegen/index.js +2 -2
  83. package/dist/data-app-codegen-node/index.cjs +2 -2
  84. package/dist/data-app-codegen-node/index.js +33 -36
  85. package/dist/data-app-sdk/index.cjs +2 -2
  86. package/dist/data-app-sdk/index.js +232 -230
  87. package/dist/data-app-sdk-adapters/index.cjs +1 -1
  88. package/dist/data-app-sdk-adapters/index.js +3 -3
  89. package/dist/data-app-sdk-validation/index.cjs +1 -1
  90. package/dist/data-app-sdk-validation/index.js +5 -5
  91. package/dist/format-utils/index.cjs +1 -1
  92. package/dist/format-utils/index.js +26 -26
  93. package/dist/index.cjs +1 -1
  94. package/dist/index.js +15 -15
  95. package/dist/report-runtime-context/index.cjs +1 -1
  96. package/dist/report-runtime-context/index.js +2 -2
  97. package/dist/surfboard/index.cjs +1 -1
  98. package/dist/surfboard/index.js +2 -2
  99. package/dist/types/analytics-protocol.d.ts +256 -1
  100. package/dist/types/briefings.d.ts +46 -0
  101. package/dist/types/dashboard-assistant.d.ts +46 -1
  102. package/dist/types/dashboard-authoring.d.ts +131 -2
  103. package/dist/types/dashboard.d.ts +48 -0
  104. package/dist/types/data-app-builder.d.ts +23 -1
  105. package/dist/types/data-app-codegen-node.d.ts +23 -1
  106. package/dist/types/data-app-codegen.d.ts +23 -1
  107. package/dist/types/data-app-sdk-adapters.d.ts +23 -1
  108. package/dist/types/data-app-sdk-validation.d.ts +46 -1
  109. package/dist/types/data-app-sdk.d.ts +51 -1
  110. package/dist/types/index.cjs +1 -1
  111. package/dist/types/index.js +4 -4
  112. package/dist/types/main.d.ts +111 -1
  113. package/dist/types/shared.d.ts +46 -0
  114. package/dist/types/surfboard.d.ts +48 -0
  115. package/dist/types/types.d.ts +48 -0
  116. package/package.json +1 -1
  117. package/dist/chunks/calculated-field-identity-Cc-RlE-0.cjs +0 -1
  118. package/dist/chunks/calculated-field-identity-D7ygZ7oN.js +0 -1117
  119. package/dist/chunks/matrix-member-presentation-BN6VD-fr.js +0 -24
  120. package/dist/chunks/matrix-member-presentation-D82rMVDG.cjs +0 -1
  121. package/dist/chunks/operators-DrTQsJXv.cjs +0 -1
  122. package/dist/chunks/source-entity-resolution-BA8sdBbL.cjs +0 -1
  123. package/dist/chunks/switch-COujiMcB.cjs +0 -139
  124. package/dist/chunks/validators-CueUwVE4.cjs +0 -1
@@ -13898,10 +13898,17 @@ export declare function isExactNumericValue(value: unknown): value is ExactNumer
13898
13898
  /** Null expansion means all detail, not the browser's default depth. */
13899
13899
  export declare function isMatrixPathExpanded(path: MatrixPath, expansion: MatrixExpansion | null): boolean;
13900
13900
 
13901
+ /** Null checks carry no values but still constrain the option list. */
13902
+ export declare function isNullCheckPredicate(predicate: Pick<NativePredicateSemantics, 'operation'>): boolean;
13903
+
13904
+ export declare function isOverridableOptionDependencyReason(reason: unknown): reason is (typeof OVERRIDABLE_OPTION_DEPENDENCY_REASONS)[number];
13905
+
13901
13906
  export declare function isSemaphorAnalyzeResultFieldName(value: string): value is SemaphorAnalyzeResultFieldName;
13902
13907
 
13903
13908
  export declare function isSemaphorDataAppCodegenSummary(value: unknown): value is SemaphorDataAppCodegenSummary;
13904
13909
 
13910
+ export declare function isSemaphorOptionMatchValue(value: unknown): value is SemaphorOptionMatchValue;
13911
+
13905
13912
  /**
13906
13913
  * Classifies persisted selected-entity metadata. This is structural metadata
13907
13914
  * handling; it does not inspect or parse authored SQL.
@@ -60110,6 +60117,10 @@ export declare const matrixWindowSchema: z.ZodEffects<z.ZodObject<{
60110
60117
  }[];
60111
60118
  }>;
60112
60119
 
60120
+ /** Upper bound on exact values one relevance check may submit. Values beyond
60121
+ * it stay `unknown`; a truncated list is never evidence of absence. */
60122
+ export declare const MAX_OPTION_MATCH_VALUES = 200;
60123
+
60113
60124
  export declare function mergeSemaphorSourcesByIdentity<TSource extends SemaphorSourceRef>(sources: readonly TSource[]): TSource[];
60114
60125
 
60115
60126
  export declare type MetricComparisonConfig = {
@@ -60269,6 +60280,34 @@ declare type MonthAlignedFiscalCalendar = {
60269
60280
  yearStartMonth: number;
60270
60281
  };
60271
60282
 
60283
+ export declare const NATIVE_PREDICATE_OPERATIONS: readonly ["=", "!=", ">", "<", ">=", "<=", "like", "not like", "between", "not between", "in", "not in", "is null", "is not null"];
60284
+
60285
+ export declare type NativePredicateOperation = (typeof NATIVE_PREDICATE_OPERATIONS)[number];
60286
+
60287
+ /**
60288
+ * Predicate semantics a dashboard transport wants executed verbatim. This is
60289
+ * a closed contract: only the keys below survive, so a native filter value
60290
+ * crossing a JSON boundary can never carry identity (field name, qualified
60291
+ * name, owning entity, datatype, source context, calculated expression). The
60292
+ * server rebuilds identity from grounding and re-applies the same contract.
60293
+ */
60294
+ export declare type NativePredicateSemantics = {
60295
+ operation: NativePredicateOperation;
60296
+ values: unknown[];
60297
+ valueType?: 'string' | 'number' | 'date' | 'boolean';
60298
+ temporalBucket?: unknown;
60299
+ relativeMeta?: unknown;
60300
+ temporalPrecision?: unknown;
60301
+ };
60302
+
60303
+ /**
60304
+ * The allowlisted keys of a native filter value, unvalidated. This is what a
60305
+ * client transport sends: it never decides whether a predicate is executable,
60306
+ * so nothing is dropped on the way to the server, and it never carries a key
60307
+ * outside the contract. Returns undefined only for a non-object value.
60308
+ */
60309
+ export declare type NativePredicateSemanticsCandidate = Partial<Record<keyof NativePredicateSemantics, unknown>>;
60310
+
60272
60311
  export declare function normalizeAnalyticsCatalogDataType(value: unknown): AnalyticsCatalogDataType;
60273
60312
 
60274
60313
  export declare function normalizeAnalyticsCatalogName(value: unknown): string;
@@ -60299,8 +60338,36 @@ export declare const nullableScalarSchema: z.ZodUnion<[z.ZodNumber, z.ZodString,
60299
60338
 
60300
60339
  declare type Operator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'startsWith' | 'endsWith' | 'like' | 'not like' | 'in' | 'not in' | 'between' | 'not between' | 'isNull' | 'isNotNull';
60301
60340
 
60341
+ /**
60342
+ * Reasons a viewer may browse around with a labeled override. Everything
60343
+ * else (auth, execution, malformed metadata, unsupported semantics) stays an
60344
+ * error that an override cannot bypass.
60345
+ */
60346
+ export declare const OVERRIDABLE_OPTION_DEPENDENCY_REASONS: readonly ["missing_dependency", "missing_relationship", "population_required", "ambiguous_relationship"];
60347
+
60302
60348
  export declare function parseMatrixRuntimeInputs(input: unknown): MatrixRuntimeInputs;
60303
60349
 
60350
+ /**
60351
+ * Builds validated predicate semantics from a native filter value or a
60352
+ * transported candidate. Returns undefined when the operation or cardinality
60353
+ * is not executable; the server reports that as a typed outcome rather than
60354
+ * dropping the candidate.
60355
+ */
60356
+ export declare function parseNativePredicateSemantics(value: unknown): NativePredicateSemantics | undefined;
60357
+
60358
+ /**
60359
+ * The one structural rule for `matchValues` on every transport: a non-empty
60360
+ * list of scalar values within the bound. Both the intent validator and the
60361
+ * standard body parser use it, so the two transports cannot drift.
60362
+ */
60363
+ export declare function parseOptionMatchValues(raw: unknown): {
60364
+ ok: true;
60365
+ values: SemaphorOptionMatchValue[];
60366
+ } | {
60367
+ ok: false;
60368
+ error: string;
60369
+ };
60370
+
60304
60371
  /** Strictly parses one raw temporal descriptor at a result boundary. */
60305
60372
  export declare function parseRawTemporalValueMetadata(input: unknown): RawTemporalValueMetadata;
60306
60373
 
@@ -60315,6 +60382,14 @@ export declare function parseSemaphorQualifiedSourcePath(input: {
60315
60382
  capabilities: Pick<SemaphorConnectionCapabilities, 'prefixLevels'>;
60316
60383
  }): SemaphorSourceCoordinateInput;
60317
60384
 
60385
+ /**
60386
+ * The unqualified, unquoted leaf of a persisted identifier path such as
60387
+ * `schema.table.column`, `"Column Name"`, `` `col` `` or `[col]`. Persisted
60388
+ * filter names and columns carry dialect quoting; consumers that need the
60389
+ * bare column name use this instead of hand-rolled string surgery.
60390
+ */
60391
+ export declare function persistedIdentifierLeafName(value: string | null | undefined): string;
60392
+
60318
60393
  declare type PhysicalResolutionCapabilities = Pick<SemaphorConnectionCapabilities, 'dialect' | 'prefixLevels'>;
60319
60394
 
60320
60395
  export declare function preferSemaphorFieldRefMetadata(current: SemaphorFieldRef, next: SemaphorFieldRef): SemaphorFieldRef;
@@ -61917,6 +61992,8 @@ declare const presentationFields: {
61917
61992
  }>>;
61918
61993
  };
61919
61994
 
61995
+ export declare function projectNativePredicateSemantics(value: unknown): NativePredicateSemanticsCandidate | undefined;
61996
+
61920
61997
  export declare const RAW_TEMPORAL_CONTRACT_ERROR_CODES: {
61921
61998
  readonly invalidMetadata: "invalid_raw_temporal_metadata";
61922
61999
  };
@@ -65081,6 +65158,15 @@ export declare type SemaphorInputOptionsIntent = SemaphorInputOptionSource & {
65081
65158
  dependencies?: SemaphorOptionDependencies;
65082
65159
  search?: string;
65083
65160
  limit?: number;
65161
+ /**
65162
+ * Authoritative selected-value relevance check: return only options whose
65163
+ * value is one of these exact raw values, under the same dependency and
65164
+ * population context, with no search or paging. Bounded by
65165
+ * `MAX_OPTION_MATCH_VALUES`. The result's `match.complete` says whether
65166
+ * absence from the returned options proves no match. Scalars only; see
65167
+ * `parseOptionMatchValues`.
65168
+ */
65169
+ matchValues?: Array<string | number | boolean>;
65084
65170
  inputs?: SemaphorInputBinding[];
65085
65171
  derivedFields?: SemaphorDerivedFieldDefinition[];
65086
65172
  };
@@ -65097,6 +65183,9 @@ export declare type SemaphorInputOptionSource = {
65097
65183
 
65098
65184
  export declare type SemaphorInputOptionsResult = SemaphorAnalyticsResultBase & {
65099
65185
  kind: 'inputOptions';
65186
+ dependencyOutcomes?: SemaphorOptionDependencyOutcome[];
65187
+ /** Present when the intent carried `matchValues`. */
65188
+ match?: SemaphorOptionMatchResult;
65100
65189
  options: Array<{
65101
65190
  label: string;
65102
65191
  value: unknown;
@@ -65107,6 +65196,29 @@ export declare type SemaphorInputOptionsResult = SemaphorAnalyticsResultBase & {
65107
65196
 
65108
65197
  export declare const semaphorInputOptionsResultSchema: z.ZodObject<{
65109
65198
  kind: z.ZodLiteral<"inputOptions">;
65199
+ dependencyOutcomes: z.ZodOptional<z.ZodArray<z.ZodObject<{
65200
+ inputId: z.ZodString;
65201
+ status: z.ZodEnum<["applied", "inactive", "skipped", "overridden", "error"]>;
65202
+ reason: z.ZodOptional<z.ZodEnum<["unrelated", "population_required", "missing_dependency", "missing_relationship", "ambiguous_relationship", "invalid_metadata", "unsupported_dependency", "override_not_eligible"]>>;
65203
+ }, "strip", z.ZodTypeAny, {
65204
+ status: "applied" | "inactive" | "skipped" | "overridden" | "error";
65205
+ inputId: string;
65206
+ reason?: "unrelated" | "population_required" | "missing_dependency" | "missing_relationship" | "ambiguous_relationship" | "invalid_metadata" | "unsupported_dependency" | "override_not_eligible" | undefined;
65207
+ }, {
65208
+ status: "applied" | "inactive" | "skipped" | "overridden" | "error";
65209
+ inputId: string;
65210
+ reason?: "unrelated" | "population_required" | "missing_dependency" | "missing_relationship" | "ambiguous_relationship" | "invalid_metadata" | "unsupported_dependency" | "override_not_eligible" | undefined;
65211
+ }>, "many">>;
65212
+ match: z.ZodOptional<z.ZodObject<{
65213
+ complete: z.ZodBoolean;
65214
+ reason: z.ZodOptional<z.ZodEnum<["unsupported", "truncated"]>>;
65215
+ }, "strip", z.ZodTypeAny, {
65216
+ complete: boolean;
65217
+ reason?: "unsupported" | "truncated" | undefined;
65218
+ }, {
65219
+ complete: boolean;
65220
+ reason?: "unsupported" | "truncated" | undefined;
65221
+ }>>;
65110
65222
  options: z.ZodArray<z.ZodEffects<z.ZodObject<z.ZodRawShape, "passthrough", z.ZodTypeAny, z.objectOutputType<z.ZodRawShape, z.ZodTypeAny, "passthrough">, z.objectInputType<z.ZodRawShape, z.ZodTypeAny, "passthrough">>, z.objectOutputType<z.ZodRawShape, z.ZodTypeAny, "passthrough">, z.objectInputType<z.ZodRawShape, z.ZodTypeAny, "passthrough">>, "many">;
65111
65223
  intentId: z.ZodOptional<z.ZodString>;
65112
65224
  queryPath: z.ZodEnum<["query_spec", "sql", "sql_python"]>;
@@ -65138,6 +65250,29 @@ export declare const semaphorInputOptionsResultSchema: z.ZodObject<{
65138
65250
  }, z.ZodTypeAny, "passthrough">>>;
65139
65251
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
65140
65252
  kind: z.ZodLiteral<"inputOptions">;
65253
+ dependencyOutcomes: z.ZodOptional<z.ZodArray<z.ZodObject<{
65254
+ inputId: z.ZodString;
65255
+ status: z.ZodEnum<["applied", "inactive", "skipped", "overridden", "error"]>;
65256
+ reason: z.ZodOptional<z.ZodEnum<["unrelated", "population_required", "missing_dependency", "missing_relationship", "ambiguous_relationship", "invalid_metadata", "unsupported_dependency", "override_not_eligible"]>>;
65257
+ }, "strip", z.ZodTypeAny, {
65258
+ status: "applied" | "inactive" | "skipped" | "overridden" | "error";
65259
+ inputId: string;
65260
+ reason?: "unrelated" | "population_required" | "missing_dependency" | "missing_relationship" | "ambiguous_relationship" | "invalid_metadata" | "unsupported_dependency" | "override_not_eligible" | undefined;
65261
+ }, {
65262
+ status: "applied" | "inactive" | "skipped" | "overridden" | "error";
65263
+ inputId: string;
65264
+ reason?: "unrelated" | "population_required" | "missing_dependency" | "missing_relationship" | "ambiguous_relationship" | "invalid_metadata" | "unsupported_dependency" | "override_not_eligible" | undefined;
65265
+ }>, "many">>;
65266
+ match: z.ZodOptional<z.ZodObject<{
65267
+ complete: z.ZodBoolean;
65268
+ reason: z.ZodOptional<z.ZodEnum<["unsupported", "truncated"]>>;
65269
+ }, "strip", z.ZodTypeAny, {
65270
+ complete: boolean;
65271
+ reason?: "unsupported" | "truncated" | undefined;
65272
+ }, {
65273
+ complete: boolean;
65274
+ reason?: "unsupported" | "truncated" | undefined;
65275
+ }>>;
65141
65276
  options: z.ZodArray<z.ZodEffects<z.ZodObject<z.ZodRawShape, "passthrough", z.ZodTypeAny, z.objectOutputType<z.ZodRawShape, z.ZodTypeAny, "passthrough">, z.objectInputType<z.ZodRawShape, z.ZodTypeAny, "passthrough">>, z.objectOutputType<z.ZodRawShape, z.ZodTypeAny, "passthrough">, z.objectInputType<z.ZodRawShape, z.ZodTypeAny, "passthrough">>, "many">;
65142
65277
  intentId: z.ZodOptional<z.ZodString>;
65143
65278
  queryPath: z.ZodEnum<["query_spec", "sql", "sql_python"]>;
@@ -65169,6 +65304,29 @@ export declare const semaphorInputOptionsResultSchema: z.ZodObject<{
65169
65304
  }, z.ZodTypeAny, "passthrough">>>;
65170
65305
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
65171
65306
  kind: z.ZodLiteral<"inputOptions">;
65307
+ dependencyOutcomes: z.ZodOptional<z.ZodArray<z.ZodObject<{
65308
+ inputId: z.ZodString;
65309
+ status: z.ZodEnum<["applied", "inactive", "skipped", "overridden", "error"]>;
65310
+ reason: z.ZodOptional<z.ZodEnum<["unrelated", "population_required", "missing_dependency", "missing_relationship", "ambiguous_relationship", "invalid_metadata", "unsupported_dependency", "override_not_eligible"]>>;
65311
+ }, "strip", z.ZodTypeAny, {
65312
+ status: "applied" | "inactive" | "skipped" | "overridden" | "error";
65313
+ inputId: string;
65314
+ reason?: "unrelated" | "population_required" | "missing_dependency" | "missing_relationship" | "ambiguous_relationship" | "invalid_metadata" | "unsupported_dependency" | "override_not_eligible" | undefined;
65315
+ }, {
65316
+ status: "applied" | "inactive" | "skipped" | "overridden" | "error";
65317
+ inputId: string;
65318
+ reason?: "unrelated" | "population_required" | "missing_dependency" | "missing_relationship" | "ambiguous_relationship" | "invalid_metadata" | "unsupported_dependency" | "override_not_eligible" | undefined;
65319
+ }>, "many">>;
65320
+ match: z.ZodOptional<z.ZodObject<{
65321
+ complete: z.ZodBoolean;
65322
+ reason: z.ZodOptional<z.ZodEnum<["unsupported", "truncated"]>>;
65323
+ }, "strip", z.ZodTypeAny, {
65324
+ complete: boolean;
65325
+ reason?: "unsupported" | "truncated" | undefined;
65326
+ }, {
65327
+ complete: boolean;
65328
+ reason?: "unsupported" | "truncated" | undefined;
65329
+ }>>;
65172
65330
  options: z.ZodArray<z.ZodEffects<z.ZodObject<z.ZodRawShape, "passthrough", z.ZodTypeAny, z.objectOutputType<z.ZodRawShape, z.ZodTypeAny, "passthrough">, z.objectInputType<z.ZodRawShape, z.ZodTypeAny, "passthrough">>, z.objectOutputType<z.ZodRawShape, z.ZodTypeAny, "passthrough">, z.objectInputType<z.ZodRawShape, z.ZodTypeAny, "passthrough">>, "many">;
65173
65331
  intentId: z.ZodOptional<z.ZodString>;
65174
65332
  queryPath: z.ZodEnum<["query_spec", "sql", "sql_python"]>;
@@ -65454,11 +65612,78 @@ export declare type SemaphorOperationIntent = {
65454
65612
  };
65455
65613
 
65456
65614
  export declare type SemaphorOptionDependencies = {
65457
- mode?: 'independent' | 'explicit';
65615
+ /** Omitted mode means independent for protocol callers. Dashboard authoring
65616
+ * normalizes omission separately through `resolveDashboardOptionDependencies`. */
65617
+ mode?: SemaphorOptionDependencyMode;
65458
65618
  includeInputIds?: string[];
65459
65619
  excludeInputIds?: string[];
65620
+ /**
65621
+ * Ephemeral browse override: explicit dependencies the viewer asked to
65622
+ * browse without. Only valid in explicit mode, only for ids in
65623
+ * `includeInputIds`, and only honored by the server when that dependency
65624
+ * would otherwise fail with an overridable reason (see
65625
+ * `OVERRIDABLE_OPTION_DEPENDENCY_REASONS`). Never persisted, never applied
65626
+ * to card predicates; it lives in one browse request and its cache identity.
65627
+ */
65628
+ omitInputIds?: string[];
65629
+ };
65630
+
65631
+ export declare type SemaphorOptionDependencyMode = 'independent' | 'explicit' | 'all_applicable';
65632
+
65633
+ /** Per-candidate classification of an option query's dependencies. Describes
65634
+ * which viewer selections constrained the option list; it never substitutes
65635
+ * for execution success or failure. */
65636
+ export declare type SemaphorOptionDependencyOutcome = {
65637
+ inputId: string;
65638
+ status: SemaphorOptionDependencyOutcomeStatus;
65639
+ reason?: SemaphorOptionDependencyOutcomeReason;
65640
+ };
65641
+
65642
+ export declare type SemaphorOptionDependencyOutcomeReason = 'unrelated' | 'population_required' | 'missing_dependency' | 'missing_relationship' | 'ambiguous_relationship' | 'invalid_metadata' | 'unsupported_dependency' | 'override_not_eligible';
65643
+
65644
+ export declare const semaphorOptionDependencyOutcomeSchema: z.ZodObject<{
65645
+ inputId: z.ZodString;
65646
+ status: z.ZodEnum<["applied", "inactive", "skipped", "overridden", "error"]>;
65647
+ reason: z.ZodOptional<z.ZodEnum<["unrelated", "population_required", "missing_dependency", "missing_relationship", "ambiguous_relationship", "invalid_metadata", "unsupported_dependency", "override_not_eligible"]>>;
65648
+ }, "strip", z.ZodTypeAny, {
65649
+ status: "applied" | "inactive" | "skipped" | "overridden" | "error";
65650
+ inputId: string;
65651
+ reason?: "unrelated" | "population_required" | "missing_dependency" | "missing_relationship" | "ambiguous_relationship" | "invalid_metadata" | "unsupported_dependency" | "override_not_eligible" | undefined;
65652
+ }, {
65653
+ status: "applied" | "inactive" | "skipped" | "overridden" | "error";
65654
+ inputId: string;
65655
+ reason?: "unrelated" | "population_required" | "missing_dependency" | "missing_relationship" | "ambiguous_relationship" | "invalid_metadata" | "unsupported_dependency" | "override_not_eligible" | undefined;
65656
+ }>;
65657
+
65658
+ export declare type SemaphorOptionDependencyOutcomeStatus = 'applied' | 'inactive' | 'skipped' | 'overridden' | 'error';
65659
+
65660
+ export declare type SemaphorOptionDependencyValidationProfile = 'protocol' | 'dashboard';
65661
+
65662
+ export declare type SemaphorOptionMatchResult = {
65663
+ /** True only when every submitted value was evaluated by a complete exact
65664
+ * check; only then may absence be read as `no_match`. */
65665
+ complete: boolean;
65666
+ reason?: 'unsupported' | 'truncated';
65460
65667
  };
65461
65668
 
65669
+ export declare const semaphorOptionMatchResultSchema: z.ZodObject<{
65670
+ complete: z.ZodBoolean;
65671
+ reason: z.ZodOptional<z.ZodEnum<["unsupported", "truncated"]>>;
65672
+ }, "strip", z.ZodTypeAny, {
65673
+ complete: boolean;
65674
+ reason?: "unsupported" | "truncated" | undefined;
65675
+ }, {
65676
+ complete: boolean;
65677
+ reason?: "unsupported" | "truncated" | undefined;
65678
+ }>;
65679
+
65680
+ /**
65681
+ * A raw value a relevance check may submit. NULL is deliberately excluded:
65682
+ * an `in` predicate cannot express "is null", so a null selection can never
65683
+ * be proven present or absent by this check and stays unknown on the client.
65684
+ */
65685
+ export declare type SemaphorOptionMatchValue = string | number | boolean;
65686
+
65462
65687
  export declare type SemaphorOptionPopulation = {
65463
65688
  kind: 'option_source';
65464
65689
  baseSource?: never;
@@ -68181,6 +68406,24 @@ declare interface TimeDrillStep {
68181
68406
 
68182
68407
  declare type TimeGranularity = SemaphorTimeGrain;
68183
68408
 
68409
+ /**
68410
+ * Semantics of a native filter value the caller already trusts structurally.
68411
+ * Throws only for programming errors (an unknown operation on a typed filter
68412
+ * value); JSON callers must use `parseNativePredicateSemantics`.
68413
+ */
68414
+ export declare function toNativePredicateSemantics(filter: {
68415
+ operation: string;
68416
+ values: unknown[];
68417
+ } & Record<string, unknown>): NativePredicateSemantics;
68418
+
68419
+ /**
68420
+ * Maps a dashboard filter operation (the `TFilterValue.operation` vocabulary)
68421
+ * to the shared input operator. Null checks have no input operator; callers
68422
+ * that carry the native predicate keep the original operation and only use
68423
+ * this mapping to describe the binding.
68424
+ */
68425
+ export declare function toSemaphorInputOperatorFromFilterOperation(operation: string | null | undefined): SemaphorInputOperator | undefined;
68426
+
68184
68427
  /**
68185
68428
  * Validates the atomic column boundary for an activated canonical producer.
68186
68429
  * Expected keys come from the producer's typed field/output mapping; this
@@ -68223,6 +68466,18 @@ export declare function validateSemaphorDerivedFieldDefinition(definition: Semap
68223
68466
 
68224
68467
  export declare function validateSemaphorOperationIntent(intent: SemaphorOperationIntent): SemaphorAnalyticsValidationResult;
68225
68468
 
68469
+ /**
68470
+ * Validates an option dependency policy object. The `protocol` profile is the
68471
+ * SDK contract: omitted mode stays independent and include/exclude lists are
68472
+ * only checked for shape. The `dashboard` profile adds the authored-policy
68473
+ * rules from the dashboard filter option dependencies plan: a mode is
68474
+ * required, independent carries no ID lists, explicit needs at least one
68475
+ * unique included ID and no exclusions, and all_applicable carries no include
68476
+ * list. Dependency ID declarations against `inputs` are validated by the
68477
+ * intent validator, not here.
68478
+ */
68479
+ export declare function validateSemaphorOptionDependencies(value: unknown, profile?: SemaphorOptionDependencyValidationProfile): SemaphorValidationResult;
68480
+
68226
68481
  export declare function validateSemaphorResultCalculation(calculation: SemaphorResultCalculation): SemaphorValidationResult;
68227
68482
 
68228
68483
  export declare function validateTemporalBucketMetadata(metadata: unknown): TemporalBucketMetadataValidationResult;
@@ -7491,6 +7491,16 @@ declare type DashboardFilterExcludedCardApplication = {
7491
7491
  cardId: string;
7492
7492
  };
7493
7493
 
7494
+ /**
7495
+ * Persisted policy for which peer selections narrow a filter's option list.
7496
+ * Omitted means All applicable for dashboards; see
7497
+ * `resolveDashboardOptionDependencies`.
7498
+ */
7499
+ declare type DashboardFilterOptionDependencies = SemaphorOptionDependencies;
7500
+
7501
+ /** Persisted population that fixes relevance for fact-bridged cascades. */
7502
+ declare type DashboardFilterOptionPopulation = SemaphorOptionPopulation;
7503
+
7494
7504
  /** Persisted label/value option definition for a mapped dashboard filter. */
7495
7505
  declare type DashboardFilterOptionSource = SemaphorInputOptionSource;
7496
7506
 
@@ -8075,6 +8085,8 @@ declare type EmbeddedFilterDashboardInput = FilterDashboardInputBase & {
8075
8085
  filter: TFilter;
8076
8086
  filterReference?: never;
8077
8087
  optionSource?: DashboardFilterOptionSource;
8088
+ optionDependencies?: DashboardFilterOptionDependencies;
8089
+ optionPopulation?: DashboardFilterOptionPopulation;
8078
8090
  application?: DashboardFilterApplication;
8079
8091
  };
8080
8092
 
@@ -13918,6 +13930,8 @@ declare type ReferencedFilterDashboardInput = FilterDashboardInputBase & {
13918
13930
  filterId: string;
13919
13931
  };
13920
13932
  optionSource?: DashboardFilterOptionSource;
13933
+ optionDependencies?: DashboardFilterOptionDependencies;
13934
+ optionPopulation?: DashboardFilterOptionPopulation;
13921
13935
  application?: DashboardFilterApplication;
13922
13936
  };
13923
13937
 
@@ -14116,6 +14130,38 @@ declare type SemaphorInputOptionSource = {
14116
14130
  disambiguationFields?: SemaphorFieldRef[];
14117
14131
  };
14118
14132
 
14133
+ declare type SemaphorOptionDependencies = {
14134
+ /** Omitted mode means independent for protocol callers. Dashboard authoring
14135
+ * normalizes omission separately through `resolveDashboardOptionDependencies`. */
14136
+ mode?: SemaphorOptionDependencyMode;
14137
+ includeInputIds?: string[];
14138
+ excludeInputIds?: string[];
14139
+ /**
14140
+ * Ephemeral browse override: explicit dependencies the viewer asked to
14141
+ * browse without. Only valid in explicit mode, only for ids in
14142
+ * `includeInputIds`, and only honored by the server when that dependency
14143
+ * would otherwise fail with an overridable reason (see
14144
+ * `OVERRIDABLE_OPTION_DEPENDENCY_REASONS`). Never persisted, never applied
14145
+ * to card predicates; it lives in one browse request and its cache identity.
14146
+ */
14147
+ omitInputIds?: string[];
14148
+ };
14149
+
14150
+ declare type SemaphorOptionDependencyMode = 'independent' | 'explicit' | 'all_applicable';
14151
+
14152
+ declare type SemaphorOptionPopulation = {
14153
+ kind: 'option_source';
14154
+ baseSource?: never;
14155
+ } | {
14156
+ kind: 'related_population';
14157
+ baseSource: SemaphorSourceRef;
14158
+ relationshipHint?: SemaphorRelationshipHint;
14159
+ };
14160
+
14161
+ declare type SemaphorRelationshipHint = {
14162
+ relationshipIds?: string[];
14163
+ };
14164
+
14119
14165
  declare type SemaphorScalarValueFormat = {
14120
14166
  type: 'number' | 'currency' | 'percent' | 'percentage' | 'scientific';
14121
14167
  minimumFractionDigits?: number;
@@ -10989,6 +10989,15 @@ declare type SemaphorInputOptionsIntent = SemaphorInputOptionSource & {
10989
10989
  dependencies?: SemaphorOptionDependencies;
10990
10990
  search?: string;
10991
10991
  limit?: number;
10992
+ /**
10993
+ * Authoritative selected-value relevance check: return only options whose
10994
+ * value is one of these exact raw values, under the same dependency and
10995
+ * population context, with no search or paging. Bounded by
10996
+ * `MAX_OPTION_MATCH_VALUES`. The result's `match.complete` says whether
10997
+ * absence from the returned options proves no match. Scalars only; see
10998
+ * `parseOptionMatchValues`.
10999
+ */
11000
+ matchValues?: Array<string | number | boolean>;
10992
11001
  inputs?: SemaphorInputBinding[];
10993
11002
  derivedFields?: SemaphorDerivedFieldDefinition[];
10994
11003
  };
@@ -11005,6 +11014,9 @@ declare type SemaphorInputOptionSource = {
11005
11014
 
11006
11015
  declare type SemaphorInputOptionsResult = SemaphorAnalyticsResultBase & {
11007
11016
  kind: 'inputOptions';
11017
+ dependencyOutcomes?: SemaphorOptionDependencyOutcome[];
11018
+ /** Present when the intent carried `matchValues`. */
11019
+ match?: SemaphorOptionMatchResult;
11008
11020
  options: Array<{
11009
11021
  label: string;
11010
11022
  value: unknown;
@@ -11065,9 +11077,42 @@ declare type SemaphorMetricResult = SemaphorAnalyticsResultBase & {
11065
11077
  };
11066
11078
 
11067
11079
  declare type SemaphorOptionDependencies = {
11068
- mode?: 'independent' | 'explicit';
11080
+ /** Omitted mode means independent for protocol callers. Dashboard authoring
11081
+ * normalizes omission separately through `resolveDashboardOptionDependencies`. */
11082
+ mode?: SemaphorOptionDependencyMode;
11069
11083
  includeInputIds?: string[];
11070
11084
  excludeInputIds?: string[];
11085
+ /**
11086
+ * Ephemeral browse override: explicit dependencies the viewer asked to
11087
+ * browse without. Only valid in explicit mode, only for ids in
11088
+ * `includeInputIds`, and only honored by the server when that dependency
11089
+ * would otherwise fail with an overridable reason (see
11090
+ * `OVERRIDABLE_OPTION_DEPENDENCY_REASONS`). Never persisted, never applied
11091
+ * to card predicates; it lives in one browse request and its cache identity.
11092
+ */
11093
+ omitInputIds?: string[];
11094
+ };
11095
+
11096
+ declare type SemaphorOptionDependencyMode = 'independent' | 'explicit' | 'all_applicable';
11097
+
11098
+ /** Per-candidate classification of an option query's dependencies. Describes
11099
+ * which viewer selections constrained the option list; it never substitutes
11100
+ * for execution success or failure. */
11101
+ declare type SemaphorOptionDependencyOutcome = {
11102
+ inputId: string;
11103
+ status: SemaphorOptionDependencyOutcomeStatus;
11104
+ reason?: SemaphorOptionDependencyOutcomeReason;
11105
+ };
11106
+
11107
+ declare type SemaphorOptionDependencyOutcomeReason = 'unrelated' | 'population_required' | 'missing_dependency' | 'missing_relationship' | 'ambiguous_relationship' | 'invalid_metadata' | 'unsupported_dependency' | 'override_not_eligible';
11108
+
11109
+ declare type SemaphorOptionDependencyOutcomeStatus = 'applied' | 'inactive' | 'skipped' | 'overridden' | 'error';
11110
+
11111
+ declare type SemaphorOptionMatchResult = {
11112
+ /** True only when every submitted value was evaluated by a complete exact
11113
+ * check; only then may absence be read as `no_match`. */
11114
+ complete: boolean;
11115
+ reason?: 'unsupported' | 'truncated';
11071
11116
  };
11072
11117
 
11073
11118
  declare type SemaphorOptionPopulation = {