From 059b42217d3e2b487c1c01df95cd257251c421f6 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 18 Sep 2026 09:12:37 +0000 Subject: [PATCH 01/13] feat(spec)!: hold a predicate to what the engine can run; declare its fault semantics `PredicateSchema` / `PredicateInputSchema` composed the PERSISTENCE contract (`source` OR `ast`) while a predicate exists to be evaluated and the CEL engine reads `source` alone. An `ast`-only envelope and a `source` blank after trimming parsed, registered, passed `objectstack validate`, then faulted or short-circuited at evaluation time. They now compose the evaluated rule, and the field-rule triad on `FieldSchema` binds to them. The predicate contract's docblock states the fault semantics the consumers are held to: a faulting field-rule predicate refuses the SUBMIT naming the field and the rule; visibility stays fail-open at RENDER; a blank or faulting gate predicate is diagnosed, never a silent true. The evaluation helper's fallback stays freely specifiable. Claude-Session: https://claude.ai/code/session_019srGWGCBBCBHqcDoRZpQRh Co-authored-by: Claude --- packages/spec/src/data/field.zod.ts | 23 ++++++-- packages/spec/src/shared/expression.zod.ts | 69 ++++++++++++++++++++-- 2 files changed, 84 insertions(+), 8 deletions(-) diff --git a/packages/spec/src/data/field.zod.ts b/packages/spec/src/data/field.zod.ts index ab7366044d0..8b876b1003b 100644 --- a/packages/spec/src/data/field.zod.ts +++ b/packages/spec/src/data/field.zod.ts @@ -11,7 +11,7 @@ import type { KeySetGuidance } from '../shared/suggestions.zod'; import { SELECT_OPTION_EDITABILITY_GUIDANCE } from '../shared/editability-boundary'; import { MetadataProtectionFields } from '../kernel/metadata-protection.zod'; import { SystemIdentifierSchema } from '../shared/identifiers.zod'; -import { ExpressionInputSchema } from '../shared/expression.zod'; +import { ExpressionInputSchema, PredicateInputSchema } from '../shared/expression.zod'; import { FilterConditionSchema } from './filter.zod'; import { FIELD_KEY_GUIDANCE } from './authoring-key-lint'; import { DEFAULT_AUTONUMBER_FORMAT } from './autonumber-format'; @@ -1639,10 +1639,25 @@ export const FieldSchema = lazySchema(() => { * state live as the record changes (UX), and the server enforces * `requiredWhen` and ignores writes to a field whose `readonlyWhen` is TRUE * (so the rule can't be bypassed). e.g. `P\`record.status == 'paid'\``. + * + * These three are THE field-rule triad, and they are EVALUATED slots: they + * compose `PredicateInputSchema` (ADR-0136 D1), not the persistence + * `ExpressionInputSchema`, so an envelope carrying only an `ast` and a + * `source` that is blank after trimming are refused HERE, at authoring, + * instead of faulting at evaluation. A blank predicate is the triad's third + * state — not "no rule" and not "engine fault" — and refusing it at + * authoring is what keeps those two apart at runtime. + * + * What happens when one of these DOES fault (a stored rule, a column renamed + * out from under it) is contract, not renderer choice: the submit is refused + * loudly and names the field and the rule (ADR-0136 D2), while visibility + * stays fail-OPEN at render so a rule that could not run never hides a + * control and writes `null` over a column the user never saw (D3). The two + * directions are a pair; neither is safe alone. */ - visibleWhen: ExpressionInputSchema.optional().describe("Predicate (CEL) — field is shown only when TRUE (else hidden). e.g. P`record.type == 'invoice'`"), - readonlyWhen: ExpressionInputSchema.optional().describe("Predicate (CEL) — field is read-only when TRUE. e.g. P`record.status == 'paid'`"), - requiredWhen: ExpressionInputSchema.optional().describe("Predicate (CEL) — field is required when TRUE. A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17."), + visibleWhen: PredicateInputSchema.optional().describe("Predicate (CEL) — field is shown only when TRUE (else hidden). Needs a non-blank `source`: an evaluated slot is held to what the engine can run (ADR-0136 D1). A fault at RENDER is fail-open (the field shows) and refuses the SUBMIT, naming the field and this rule (D2/D3). e.g. P`record.type == 'invoice'`"), + readonlyWhen: PredicateInputSchema.optional().describe("Predicate (CEL) — field is read-only when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). e.g. P`record.status == 'paid'`"), + requiredWhen: PredicateInputSchema.optional().describe("Predicate (CEL) — field is required when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17."), /** * [REMOVED in protocol 17 — #3855] The deprecated alias of `requiredWhen`. diff --git a/packages/spec/src/shared/expression.zod.ts b/packages/spec/src/shared/expression.zod.ts index 966c718403d..a5c8b11e069 100644 --- a/packages/spec/src/shared/expression.zod.ts +++ b/packages/spec/src/shared/expression.zod.ts @@ -395,13 +395,74 @@ export type TemplateExpressionInput = z.input; -export const PredicateInputSchema = ExpressionInputSchema; +export const PredicateInputSchema = EvaluatedExpressionInputSchema; export type PredicateInput = z.input; /** From 6120437f8dc7bd913d83c41f7911fb7c2f888f04 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 18 Sep 2026 09:23:36 +0000 Subject: [PATCH 02/13] =?UTF-8?q?docs(adr):=20record=20ADR-0136=20?= =?UTF-8?q?=E2=80=94=20predicate=20fault=20semantics=20are=20contract?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The ADR-0087 D3 semantic entry for the D1 narrowing, the pin test for all three field-rule slots, and the two ADR anchors. ADR-0089 gains a pointer: it unified the `*When` family's NAME, this record decides what the family does when it cannot run. Claude-Session: https://claude.ai/code/session_019srGWGCBBCBHqcDoRZpQRh Co-authored-by: Claude --- .../0089-unify-visibility-predicate-naming.md | 10 + ...-predicate-fault-semantics-are-contract.md | 243 ++++++++++++++++++ .../field-rule-predicate-evaluated.test.ts | 135 ++++++++++ ...redicate-evaluated-slot-source-required.ts | 96 +++++++ packages/spec/src/migrations/registry.ts | 92 +++++++ packages/spec/src/shared/expression.zod.ts | 2 +- ...ckages__spec__src__data__field.zod.ts.json | 5 +- ..._spec__src__shared__expression.zod.ts.json | 7 + 8 files changed, 587 insertions(+), 3 deletions(-) create mode 100644 docs/adr/0136-predicate-fault-semantics-are-contract.md create mode 100644 packages/spec/src/data/field-rule-predicate-evaluated.test.ts create mode 100644 packages/spec/src/migrations/entries/semantic/18.field-rule-predicate-evaluated-slot-source-required.ts create mode 100644 scripts/adr-anchors/packages__spec__src__shared__expression.zod.ts.json diff --git a/docs/adr/0089-unify-visibility-predicate-naming.md b/docs/adr/0089-unify-visibility-predicate-naming.md index 9b7e348bf6b..d72f9ee9f64 100644 --- a/docs/adr/0089-unify-visibility-predicate-naming.md +++ b/docs/adr/0089-unify-visibility-predicate-naming.md @@ -8,6 +8,16 @@ --- +> **Addendum (2026-09-18, #17778) — what the `*When` family does when it cannot RUN is decided by [ADR-0136](./0136-predicate-fault-semantics-are-contract.md), not here.** +> This record unified the family under one NAME and is unchanged by that one. ADR-0136 D1 holds a +> predicate slot to what the engine can actually run (the `FieldSchema` field-rule triad composes +> `PredicateInputSchema`, so an `ast`-only envelope and a blank `source` are refused at authoring); +> D2 refuses the SUBMIT loudly on a fault, naming the field and the rule; D3 keeps visibility +> fail-OPEN at RENDER. A reader who arrived here asking what a broken `visibleWhen` does should +> read that record. + +--- + ## TL;DR One concept — *"show this only when the CEL predicate is TRUE"* — is spelled three diff --git a/docs/adr/0136-predicate-fault-semantics-are-contract.md b/docs/adr/0136-predicate-fault-semantics-are-contract.md new file mode 100644 index 00000000000..4b60d89d5e5 --- /dev/null +++ b/docs/adr/0136-predicate-fault-semantics-are-contract.md @@ -0,0 +1,243 @@ +# ADR-0136: A predicate's FAULT semantics are part of the protocol — loud at submit, fail-open at render, and a blank predicate is a declared third state + +**Status**: Accepted (2026-09-18) — **D1 implemented here** (`PredicateSchema` / `PredicateInputSchema` compose the evaluated rule; the `FieldSchema` field-rule triad binds them; ADR-0087 D3 entry `field-rule-predicate-evaluated-slot-source-required`). **D2 / D3 / D4 are declared here and delivered by consumers** — the renderer and submit path in objectui#8069, which is `pm:blocked` on this record. D4's spec-side authoring refusal for the action / visibility GATE slots is deliberately **not** in this record's PR; see [Scope boundary](#scope-boundary-what-this-record-does-not-land). +**Deciders**: ObjectStack Protocol Architects (maintainer ruling on objectui#8069, decision batch #119 item 3, 2026-09-12: 「同意」 to **A**, with **Q2 yes** and **Q3 yes**), filed as objectstack#17778 by the director seat +**Builds on**: [ADR-0058](./0058-expression-and-predicate-surface.md) (the expression & predicate surface — its D5 predicate failure tiers are the table this record writes the field-rule row of), [ADR-0089](./0089-unify-visibility-predicate-naming.md) (unified the `*When` family under one NAME; this record decides what that family does when it cannot RUN), [ADR-0087](./0087-metadata-protocol-upgrade-contract.md) (conversion-over-notification — D1 lands as a D3 semantic entry because no D2 conversion exists), [ADR-0124](./0124-server-enforces-client-is-courtesy.md) (D1 server-enforces — why a render-side direction is never the whole answer), [ADR-0078](./0078-no-silently-inert-metadata.md) (no silently-inert metadata — a predicate that cannot run is the purest case), [ADR-0049](./0049-no-unenforced-security-properties.md) (enforce-or-remove), [ADR-0032](./0032-unified-expression-layer.md) (the CEL layer these predicates are written in) +**Consumers**: `@objectstack/spec` (`shared/expression.zod.ts` — the predicate contract; `data/field.zod.ts` — the field-rule triad), `@objectstack/objectql` (`validation/rule-validator.ts` — the server-side enforcer whose three fault directions this record measured), `@objectstack/lint` (`validate-expressions.ts`, `validate-visibility-predicates.ts` — the author-time reporters), and the ObjectUI form renderer + submit path (objectui#8069) +**Surfaced by**: objectui#8069, measured on objectui `main`: `resolveFieldRuleState` evaluates `visibleWhen` / `readonlyWhen` / `requiredWhen` with fallbacks `true` / `false` / `false` when a predicate cannot be evaluated, so **one misspelled column in one predicate produces a form that shows more, locks less and demands less, all at once, with no state that says "this rule did not run"**. PR objectui#8904 named the three directions and made a blank predicate warn, and declined the producer-side narrowing — which is what this record decides. + +--- + +## TL;DR + +A field-rule predicate has always had three possible states and a protocol that +named two. The missing state is **"authored, but the engine cannot run it"** — and +because nothing named it, every layer resolved it to its own local fallback and +none of those fallbacks was the author's. + +| state | before | after this record | +|---|---|---| +| absent | no rule | no rule (unchanged) | +| authored and evaluable | the author's verdict | the author's verdict (unchanged) | +| **authored, blank** | parsed, then silently no-op'd | **refused at authoring** (D1) | +| **authored, not evaluable** | each layer's own fallback, silently | **refused at submit, loudly** (D2) | + +**Decision:** a predicate's fault semantics are **protocol**, not renderer choice. +A predicate slot accepts only what the engine can actually run (D1). A fault at +**submit** refuses the write and names the field and the rule (D2). A fault at +**render** leaves visibility **fail-open** (D3). A blank or faulting **gate** +predicate is diagnosed, never a silent `true` (D4). The evaluation **helper's** +fallback stays freely specifiable, and no part of this record changes it. + +The standing ruling this sits under, verbatim: + +> 我们的项目以objectstack 协议为准…协议不正确的应该先修改协议。 + +## Context + +### The composite was never argued — only each key, once, at introduction + +The three directions were each chosen on their own, and each is defensible alone. +`visibleWhen` fails open because hiding a control you cannot justify hiding is how +a form writes `null` over a column nobody saw. `readonlyWhen` and `requiredWhen` +fail their own ways for their own reasons. What no record ever asked is what the +three do **together**, and together they compose the one outcome none of them +would have chosen: a broken predicate makes a form simultaneously more permissive +on every axis, and says nothing. + +### The three fault directions, measured at their own ends + +Measured on `objectstack` at `03b7b8187`, reading each enforcement point rather +than inferring any cell from its neighbours: + +- **`visibleWhen` — the server never evaluates it at the FIELD level at all.** + `rule-validator.ts`'s `ConditionalFieldDef` has no such member. The renderer + falls back to VISIBLE where no host publishes a predicate scope. +- **`readonlyWhen` — the declared lock is silently WAIVED on an unevaluable + envelope.** `isReadonlyWhenLocked` has two fault arms: an unbound-ROOT fault + returns `true` ("the declared lock is not waived because it could not be + evaluated"), and **every other** fault logs `readonlyWhen for '' failed to + evaluate — change allowed through` and returns `false`. An `ast`-only or blank + envelope takes the second arm. So the fault direction here depends on *which* + fault, and the shape this record refuses lands on the permissive one. +- **`requiredWhen` — fail-open at both ends.** The server logs and `continue`s; + the form does not mark the field required. A record saves with the field empty. + +So all three refused spellings resolve to a **no-op** today. That matters for the +migration prescription: removing such a key is behaviour-preserving, which makes +it a safe default — and a dishonest one to reach for without noticing that it +records a rule that never ran. + +### The narrowing mechanism already existed + +This record introduces no new validation machinery. `EvaluatedExpressionSchema` +and `EvaluatedExpressionInputSchema` already spell "an evaluated slot is held to +what the engine can actually run", already publish one sentence for it +(`EVALUATED_EXPRESSION_SOURCE_REQUIRED`), and `FlowEdgeSchema.condition` already +composes them for exactly this defect one family over. What was missing is that +`PredicateSchema` / `PredicateInputSchema` — the aliases whose entire purpose is +to mark a slot as a predicate — composed the **persistence** contract, whose rule +is "`source` OR `ast`". The alias that means "this will be evaluated" pointed at +the schema that does not require evaluability. + +## Decision + +### D1 — A predicate slot accepts only what the engine can run + +`PredicateSchema` and `PredicateInputSchema` compose `EvaluatedExpressionSchema` / +`EvaluatedExpressionInputSchema`. An envelope carrying only an `ast`, and a +`source` that is blank after trimming (through the envelope key or the bare-string +shorthand), are refused at authoring with `EVALUATED_EXPRESSION_SOURCE_REQUIRED`. +The `FieldSchema` field-rule triad — `visibleWhen`, `readonlyWhen`, `requiredWhen` +— binds them. + +`ExpressionSchema` / `ExpressionInputSchema` are **not** narrowed: they remain the +persistence contract, and `ast` remains an optional opaque structured value there. +An `ast` **beside** a string `source` stays admitted everywhere. + +This is an accept-set narrowing and ships with an ADR-0087 D3 semantic entry +(`field-rule-predicate-evaluated-slot-source-required`), because no D2 conversion +can express it: an `ast`-only envelope carries no `source` to lower an AST back +into, and a blank `source` names no predicate to reconstruct. Which of "author the +rule" and "drop the rule" the author meant is not derivable, and the platform does +not guess. + +### D2 — A field-rule predicate that FAULTS refuses the SUBMIT, loudly + +At submit time, a field-rule predicate that cannot be evaluated refuses the write +and names **the field and the rule**. Nothing is persisted. This is the "loud but +safe" middle state, and it is the mainstream shape: a validation formula that +errors blocks the save **with** the error rather than passing. + +A rule that could not run has produced no verdict. Treating "no verdict" as the +author's verdict is the whole defect; refusing is the only answer that neither +invents a verdict nor hides that one is missing. + +A blank predicate takes this path too, wherever one is already stored — D1 keeps +new ones from being authored, and D2 is what a stored one meets. That is what +makes "blank" a declared **third** state rather than a spelling of "no rule". + +### D3 — At RENDER, visibility stays fail-OPEN + +A faulting `visibleWhen` **shows** the field. `readonlyWhen` / `requiredWhen` keep +their existing render directions for display. + +⛔ This is **not** a softening of D2, and it is not re-litigable on the grounds +that it reads inconsistent with it. The two are a **pair**: fail-open at render is +what keeps a faulting rule from hiding a control and letting the form write `null` +over a stored column the user never saw, and the submit-time refusal is what keeps +fail-open from being a silent permission grant. Neither is safe alone. Per +ADR-0124 D1 the render side was never the enforcement point anyway; D2 is where +enforcement lives. + +### D4 — A blank or faulting GATE predicate is diagnosed, never a silent `true` + +The action / visibility gate path answers a bare `true` for a blank source before +the value ever reaches the evaluator, with no diagnostic. That silence is closed by +the same declaration: a gate predicate that is blank or faulting is **diagnosed**. +A gate is a predicate, and D1's reasoning applies to it unchanged. + +### D5 — The evaluation HELPER's fallback stays freely specifiable + +No part of this record fixes a fault direction inside the shared evaluation helper. +The direction is declared at the **field-rule and gate layer**, where the author's +intent lives; the helper stays a mechanism. Two shipped strategies depend on that +freedom and a helper-level default would delete both — see the constraints below. + +## Two constraints carried verbatim, and not re-litigable + +From the objectui#8069 thread, into objectstack#17778, into this record: + +> objectui#6958 deliberately relies on visibility fail-open: a broken predicate +> must NEVER silently null a stored column. + +> Fault strategies 4 (fault → flag, `listConditional.ts`) and 5 (fault → throw, +> `evaluateCelCondition` under `throwOnError`) exist ONLY because the helper's +> fallback is freely specifiable ⇒ ⛔ no change may bake a direction into the +> helper. + +The first is why D3 is fail-open and why that direction is load-bearing rather +than a leniency. The second is why D5 exists as its own decision line instead of +being left implicit: a reader who takes D2 as "make faults throw" would delete +strategy 4, and a reader who takes D3 as "make faults fall back" would delete +strategy 5. The helper is not where either direction belongs. + +## Scope boundary — what this record does not land + +Stated explicitly so that no part of it reads as delivered when it is not +(Prime Directive #10: declared ≠ enforced is the defect this whole record is +about). + +- **D2 / D3 / D4 are consequences CONSUMERS deliver.** `packages/spec` carries no + business logic (Prime Directive #2), so the submit refusal, the render direction + and the gate diagnostic are declared here and implemented in objectui#8069. + This record is the contract they are held to. +- **D4's spec-side authoring refusal is NOT applied to the gate slots in this + record's PR.** The action / visibility gate slots — view and page `visibleWhen` / + `visibleOn` / `visibility`, action and bulk-action `visible` / `visibleWhen`, + component `visible` / `visibleWhen`, app nav `visible`, `ObjectFieldGroupSchema` + `visibleWhen`, `RowCrudActionOverride` `visibleWhen` / `disabledWhen`, the + per-OPTION `visibleWhen` and the inline-column `readonlyWhen` / `requiredWhen` + — still compose `ExpressionInputSchema`. Two reasons, and the first is the one + that matters: several of those slots carry their **own** declared fault + directions ("fail-closed", "fail-soft") which are not the field-rule triad's, + and the ruling measured its evidence on the field-rule path. Binding them all to + one rule without re-measuring each declared direction would bake a direction the + ruling did not give, which is exactly what the second constraint above forbids. + Second, `validate-visibility-predicates.ts`'s `celRefusal` currently records the + opposite position for those slots — a blank predicate there "is 'no predicate', + exactly what the author meant" — so converting them is also a behaviour change + in a second package, not a schema swap. That conversion is filed as a follow-up + with the slot inventory, and it is the one place where D4 is currently declared + ahead of its authoring-side enforcement. + +## Consequences + +**The loud state surfaces every silently-faulting stored predicate.** How many +exist in production is **unmeasured** — the loud state is what will reveal them, +and that is its purpose. It is user-visible, so the objectui half ships with a +changeset banner saying so. A repo-wide census over `examples/`, `packages/`, +`content/` and `skills/` at `03b7b8187` found **zero** field-rule predicates of +either refused spelling, against two live lit controls (15 files carrying +non-blank tagged-template predicates, 14 carrying envelope-form ones) — so there +is nothing in this repository to rewrite. + +**One stored-row edge is named rather than asserted.** +`applyConversionsToStoredItem` **is** applied to `object` (only `flow` is +skipped), but no conversion repairs either refused spelling, so a stored row +carrying one now meets a strict schema at whichever seam parses it. Which seam +that is, and whether it degrades to a warn or refuses the object, was **not +measured** on this card. It is recorded here as the open edge, and in the D3 +entry's acceptance criteria as "read the boot log for the object by name rather +than expecting a specific message". + +**ADR-0089 is extended, not reversed.** That record unified the `*When` family +under one name and is untouched by this one; this record decides what the family +does when it cannot run. A reader arriving at ADR-0089 for fault behaviour is +sent here. + +## Alternatives considered + +**Amend ADR-0089 instead of a new record.** Rejected. ADR-0089's decision is +*naming* — one concept, one spelling — and fault semantics is an orthogonal +decision that composes ADR-0058, ADR-0124 and ADR-0078 as much as it does +ADR-0089. Hanging "what happens when it faults" off a naming record would make +both harder to cite. The filing card explicitly authorized a new record if the +spec seat judged the scope larger, and it is larger. + +**Bake the direction into the evaluation helper** (one fallback, centrally). This +is the shape a reader reaches for first, and it is refused by the second +constraint above: it deletes fault strategies 4 and 5, both of which are shipped +and both of which exist only because the fallback is a parameter. + +**Make a blank predicate mean "no rule", formally.** This is the position the lint +layer currently records for the gate slots, and it is coherent. It is refused for +the field-rule triad because it makes the two failure modes indistinguishable at +exactly the moment an author needs them distinguished: "I deleted the rule" and +"the rule I wrote will not run" get the same runtime behaviour and the same +silence. Q3 = yes is the ruling on that question. + +**Narrow `ExpressionSchema` itself.** Rejected, unchanged from the flow-edge +precedent: it is the persistence contract, its docblock declares `ast` an optional +opaque value carrying no promise of becoming required, and a slot that only +*stores* an envelope has no reason to demand evaluability. diff --git a/packages/spec/src/data/field-rule-predicate-evaluated.test.ts b/packages/spec/src/data/field-rule-predicate-evaluated.test.ts new file mode 100644 index 00000000000..2f76fa60f6d --- /dev/null +++ b/packages/spec/src/data/field-rule-predicate-evaluated.test.ts @@ -0,0 +1,135 @@ +// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. + +/** + * The `FieldSchema` field-rule triad is EVALUATED (#17778, ADR-0136 D1) — all + * three of `visibleWhen` / `readonlyWhen` / `requiredWhen` compose + * `PredicateInputSchema`, which is now the evaluated rule, so an envelope the + * engine cannot evaluate is refused at authoring instead of silently doing + * nothing at evaluation time. + * + * Before this the triad was `ExpressionInputSchema` — the persistence contract, + * `source` OR `ast` — and all three slots resolved both refused spellings to a + * NO-OP, each by its own mechanism (measured at each end on `03b7b8187`): + * `visibleWhen` is never evaluated server-side at the field level at all + * (`rule-validator.ts`'s `ConditionalFieldDef` has no such member); + * `isReadonlyWhenLocked` returns LOCKED only for an unbound-ROOT fault and + * logs `change allowed through` + returns `false` for every other fault, which + * is the arm an unevaluable envelope takes; `requiredWhen` logs and SKIPS the + * check. So one unauthored predicate made a form show more, lock less and + * demand less at once, with nothing saying the rule had not run. + * + * Reproduction pins, one per spelling per slot, each asserting the issue's + * `code`, `path` and message — never `success === false` alone, which an + * unrelated refusal would satisfy just as well. Two preservation controls + * carry the other half: the persistence contract still ACCEPTS both refused + * shapes (it was deliberately not narrowed), and a real predicate parses to + * byte-identically what it parsed to before. + */ + +import { describe, expect, it } from 'vitest'; + +import { + EVALUATED_EXPRESSION_SOURCE_REQUIRED, + ExpressionInputSchema, + ExpressionSchema, +} from '../shared/expression.zod.js'; +import { FieldSchema } from './field.zod.js'; + +const AST_ONLY = { dialect: 'cel', ast: { kind: 'const', value: true } }; +const BLANK_SOURCE = { dialect: 'cel', source: ' ' }; +const BLANK_BARE = ' '; +const GOOD = { dialect: 'cel', source: "record.status == 'paid'" }; + +const FIELD = { name: 'amount', label: 'Amount', type: 'currency' } as const; + +const SLOTS = ['visibleWhen', 'readonlyWhen', 'requiredWhen'] as const; + +function issuesOf(slot: string, value: unknown) { + const result = FieldSchema.safeParse({ ...FIELD, [slot]: value }); + return result.success + ? [] + : result.error.issues.map((i) => ({ + code: i.code, + path: i.path.map(String).join('.'), + message: i.message, + })); +} + +describe('FieldSchema field-rule triad — an evaluated slot requires a non-blank `source` (#17778)', () => { + for (const slot of SLOTS) { + describe(`\`${slot}\``, () => { + it('REFUSES an `ast`-only envelope with the published sentence at the slot', () => { + // Both arms of the input union abort on this shape (the envelope arm's + // missing `source` is an aborting `invalid_type`), so it surfaces as + // the union's own issue at the SLOT, worded by the union's error map. + expect(issuesOf(slot, AST_ONLY)).toEqual([ + { code: 'invalid_union', path: slot, message: EVALUATED_EXPRESSION_SOURCE_REQUIRED }, + ]); + }); + + it('REFUSES a blank `source` INSIDE an envelope, at `source`', () => { + // The one shape the envelope arm refuses WITHOUT aborting (a `custom` + // refine), so it surfaces from the arm itself, one level deeper. + expect(issuesOf(slot, BLANK_SOURCE)).toEqual([ + { + code: 'custom', + path: `${slot}.source`, + message: EVALUATED_EXPRESSION_SOURCE_REQUIRED, + }, + ]); + }); + + it('REFUSES a blank bare-string shorthand at the slot', () => { + expect(issuesOf(slot, BLANK_BARE)).toEqual([ + { code: 'invalid_union', path: slot, message: EVALUATED_EXPRESSION_SOURCE_REQUIRED }, + ]); + }); + + it('PRESERVES a real predicate — parses, and to the same envelope as before', () => { + const result = FieldSchema.safeParse({ ...FIELD, [slot]: GOOD }); + expect(result.success).toBe(true); + expect((result as { success: true; data: Record }).data[slot]).toEqual(GOOD); + }); + + it('PRESERVES the bare-string shorthand, normalized to a `cel` envelope', () => { + const result = FieldSchema.safeParse({ ...FIELD, [slot]: "record.status == 'paid'" }); + expect(result.success).toBe(true); + expect((result as { success: true; data: Record }).data[slot]).toEqual(GOOD); + }); + + it('PRESERVES an `ast` BESIDE a string `source`', () => { + expect(FieldSchema.safeParse({ ...FIELD, [slot]: { ...GOOD, ast: { kind: 'const' } } }).success) + .toBe(true); + }); + + it('PRESERVES absence — "no rule" is not a malformed rule', () => { + expect(FieldSchema.safeParse(FIELD).success).toBe(true); + }); + }); + } + + it('CONTROL: the persistence contract was NOT narrowed and still accepts both shapes', () => { + // If this control ever goes red, the narrowing has leaked out of the + // evaluated slots and into the schema that only PERSISTS an envelope — + // which ADR-0136 D1 explicitly declines to do. + expect(ExpressionSchema.safeParse(AST_ONLY).success).toBe(true); + expect(ExpressionInputSchema.safeParse(AST_ONLY).success).toBe(true); + expect(ExpressionSchema.safeParse(BLANK_SOURCE).success).toBe(true); + expect(ExpressionInputSchema.safeParse(BLANK_SOURCE).success).toBe(true); + }); + + it('CONTROL: the per-OPTION `visibleWhen` is OUT of scope and still accepts an `ast`-only envelope', () => { + // ADR-0136's scope boundary: the option-level predicate, the inline-column + // pair and every view/page/action gate still compose + // `ExpressionInputSchema`. This pin is what makes that boundary a measured + // fact rather than a claim in prose — when the gate slots are converted, + // this expectation is the one that must be updated deliberately. + const result = FieldSchema.safeParse({ + name: 'tier', + label: 'Tier', + type: 'select', + options: [{ label: 'Gold', value: 'gold', visibleWhen: AST_ONLY }], + }); + expect(result.success).toBe(true); + }); +}); diff --git a/packages/spec/src/migrations/entries/semantic/18.field-rule-predicate-evaluated-slot-source-required.ts b/packages/spec/src/migrations/entries/semantic/18.field-rule-predicate-evaluated-slot-source-required.ts new file mode 100644 index 00000000000..0e4c0e7f6ab --- /dev/null +++ b/packages/spec/src/migrations/entries/semantic/18.field-rule-predicate-evaluated-slot-source-required.ts @@ -0,0 +1,96 @@ +// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. + +import type { SemanticMigration } from '../../types.js'; + +// No backticks in `surface` — build-upgrade-guide.ts renders it inside a code +// span already, and a nested backtick would close it. +export const entry: SemanticMigration = { + id: 'field-rule-predicate-evaluated-slot-source-required', + surface: + 'a field-rule predicate, all three slots of the triad on FieldSchema — visibleWhen, ' + + 'readonlyWhen and requiredWhen — and with them the PredicateSchema / PredicateInputSchema ' + + 'public exports every other declaration site composes, authored either as an expression ' + + 'envelope carrying only ast ({ dialect: \'cel\', ast: … } with no source), or with a source ' + + 'that is blank after trimming, through the envelope key ' + + '({ dialect: \'cel\', source: \' \' }) or the bare-string shorthand for it ' + + '(visibleWhen: \' \'). Reachable wherever an object is authored or stored: ' + + 'defineStack({ objects }) sources, an exported stack passed to objectstack validate, a ' + + 'POST /objects body, and an object row already sitting in sys_metadata', + replacement: + 'a non-blank `source` — `{ dialect: \'cel\', source: \'record.status == \\\'paid\\\'\' }`, or the ' + + 'bare string, or the `P` tagged template the examples use — if the rule was meant to gate; ' + + 'or REMOVE the key entirely if the field was meant to carry no rule. ⚠️ Unlike the ' + + 'flow-edge entry this one otherwise mirrors, removal here is BEHAVIOUR-PRESERVING and is a ' + + 'safe default: all three slots resolve BOTH refused spellings to a no-op today (measured, ' + + 'see `reason`), so deleting the key preserves exactly what the runtime already did. What ' + + 'removal does NOT preserve is the author\'s INTENT — the rule was written to gate ' + + 'something, and a removal records that it never did. Authoring the `source` is the ' + + 'repair; removal is the honest way to say the rule was abandoned. An `ast` BESIDE a string ' + + '`source` is untouched and stays admitted everywhere', + reason: + 'Card #17778, on the maintainer ruling for objectui#8069 (decision batch #119 item 3, ' + + '2026-09-12: 「同意」 to A, Q2 yes, Q3 yes) and the standing ruling ' + + '「我们的项目以objectstack 协议为准…协议不正确的应该先修改协议。」. ADR-0136 D1: a predicate is an ' + + 'EVALUATED slot by definition, so `PredicateSchema` / `PredicateInputSchema` now compose ' + + '`EvaluatedExpressionSchema` / `EvaluatedExpressionInputSchema` instead of the PERSISTENCE ' + + 'contract `ExpressionSchema` / `ExpressionInputSchema`, and the field-rule triad binds ' + + 'them. The CEL engine evaluates `source` alone (`cel-engine.ts` `evaluate`: "AST-only ' + + 'evaluation not yet supported; persist `source`"), so both refused spellings parsed, ' + + 'registered, passed `objectstack validate`, and then produced a rule that silently did ' + + 'nothing. ⚠️ The three no-op directions are NOT the same mechanism, and each was measured ' + + 'at its own end rather than inferred from the others: `visibleWhen` is never evaluated ' + + 'server-side at the FIELD level at all (`rule-validator.ts`\'s `ConditionalFieldDef` has no ' + + 'such member) and the renderer falls back to VISIBLE where no host publishes a predicate ' + + 'scope; `readonlyWhen` reaches `isReadonlyWhenLocked`, whose unbound-ROOT arm returns ' + + 'LOCKED but whose every-other-fault arm logs "change allowed through" and returns false, ' + + 'and an unevaluable envelope takes that second arm — the declared lock is silently waived; ' + + '`requiredWhen` logs and SKIPS the check. So one misspelled or unauthored predicate ' + + 'produced a form that showed more, locked less and demanded less at once, with no state ' + + 'that said "this rule did not run" — which is the composite objectui#8069 measured and ' + + 'this entry\'s ruling closes. ⚠️ No D2 conversion is possible, and that is why this needs ' + + 'a D3 entry rather than none: an `ast`-only envelope carries no `source` to derive one ' + + 'from (lowering an AST to surface syntax is the compiler direction the platform does not ' + + 'run), and a blank `source` names no predicate to reconstruct. Choosing between "author ' + + 'the rule" and "drop the rule" is an intent question only the author can answer, which is ' + + 'what this entry delegates. ⚠️ Scope of the RUNTIME half, stated so it is not read wider ' + + 'than it is: ADR-0136 D2 (a faulting field-rule predicate refuses the SUBMIT, naming the ' + + 'field and the rule) and D3 (visibility stays fail-OPEN at RENDER) are consequences ' + + 'CONSUMERS deliver — `packages/spec` carries no business logic — and the renderer half ' + + 'lands in objectui#8069. This entry is the AUTHORING refusal only. ⚠️ And one ' + + 'stored-row consequence is deliberately left UNMEASURED rather than guessed: ' + + '`applyConversionsToStoredItem` IS applied to `object` (only `flow` is skipped, ' + + '`spec/src/conversions/stored.ts` and the same skip in ' + + '`metadata/src/loaders/database-loader.ts` `rowToData`), but no conversion can repair ' + + 'either refused spelling, so a stored row carrying one now meets a strict schema at ' + + 'whichever seam parses it; which seam that is, and whether it degrades to a warn or ' + + 'refuses the object, was NOT measured on this card and is named here as the open edge ' + + 'rather than asserted. A repo-wide census over examples/, packages/, content/ and skills/ ' + + 'at 03b7b8187 found ZERO field-rule predicates of either spelling against two live lit ' + + 'controls (non-blank tagged-template predicates: 15 files; envelope-form predicates: 14 ' + + 'files), so there is nothing in THIS repository to rewrite — a repo reading, which is why ' + + 'the notification is registered here rather than skipped. ADR-0136, ADR-0087, ADR-0089, ' + + 'ADR-0058, ADR-0124.', + acceptanceCriteria: + 'Grep every authored field-rule predicate — all three of `visibleWhen`, `readonlyWhen` and ' + + '`requiredWhen` on a FIELD (not the per-OPTION `visibleWhen`, not the inline-column pair, ' + + 'and not a view/page/action gate: those slots still compose `ExpressionInputSchema` and ' + + 'are unaffected by this entry) — in `defineStack({ objects })` sources, exported stacks ' + + 'and `POST /objects` bodies, and every object row in `sys_metadata`, for an envelope with ' + + 'no `source` key and for a `source` (or bare string) that is empty after trimming. For ' + + 'each hit decide, per the `replacement` note, whether the rule was meant to gate (author ' + + 'the `source`) or was abandoned (remove the key) — removal is behaviour-preserving here, ' + + 'so it is a safe default, but it records that the rule never ran. Two proofs. (1) For a ' + + 'stack authored in config files, `objectstack validate` is clean: it locates each offender ' + + 'with the `EVALUATED_EXPRESSION_SOURCE_REQUIRED` sentence at ' + + '`objects.N.fields.N.visibleWhen` (and the two siblings) — a blank `source` inside an ' + + 'envelope surfaces as one issue at `source`, while an `ast`-only envelope and a blank ' + + 'bare string abort both arms of the input union and surface as one `invalid_union` at the ' + + 'SLOT, carrying that same sentence. There is no CLI verb that lowers a stored row back ' + + 'into a config file, so this proof does not reach an object that exists only in ' + + '`sys_metadata`. (2) For stored rows, boot the stack and confirm each object still loads ' + + 'and its form still renders: a row carrying either spelling no longer parses, and per the ' + + '`reason`\'s last note the seam that reports it was not measured on this card — so read ' + + 'the boot log for the object by name rather than expecting a specific message, and treat ' + + 'a missing object as this entry\'s signal. An object whose field rules all carry a ' + + 'non-blank `source` parses byte-identically to before.', +}; diff --git a/packages/spec/src/migrations/registry.ts b/packages/spec/src/migrations/registry.ts index 09ff2453556..4b55439a29a 100644 --- a/packages/spec/src/migrations/registry.ts +++ b/packages/spec/src/migrations/registry.ts @@ -8188,6 +8188,98 @@ const step18: MigrationStep = { + 'already multi-valued by `isMultiValueField` need no change and must read back ' + 'byte-identically.', }, + // No backticks in `surface` — build-upgrade-guide.ts renders it inside a code + // span already, and a nested backtick would close it. + { + id: 'field-rule-predicate-evaluated-slot-source-required', + surface: + 'a field-rule predicate, all three slots of the triad on FieldSchema — visibleWhen, ' + + 'readonlyWhen and requiredWhen — and with them the PredicateSchema / PredicateInputSchema ' + + 'public exports every other declaration site composes, authored either as an expression ' + + 'envelope carrying only ast ({ dialect: \'cel\', ast: … } with no source), or with a source ' + + 'that is blank after trimming, through the envelope key ' + + '({ dialect: \'cel\', source: \' \' }) or the bare-string shorthand for it ' + + '(visibleWhen: \' \'). Reachable wherever an object is authored or stored: ' + + 'defineStack({ objects }) sources, an exported stack passed to objectstack validate, a ' + + 'POST /objects body, and an object row already sitting in sys_metadata', + replacement: + 'a non-blank `source` — `{ dialect: \'cel\', source: \'record.status == \\\'paid\\\'\' }`, or the ' + + 'bare string, or the `P` tagged template the examples use — if the rule was meant to gate; ' + + 'or REMOVE the key entirely if the field was meant to carry no rule. ⚠️ Unlike the ' + + 'flow-edge entry this one otherwise mirrors, removal here is BEHAVIOUR-PRESERVING and is a ' + + 'safe default: all three slots resolve BOTH refused spellings to a no-op today (measured, ' + + 'see `reason`), so deleting the key preserves exactly what the runtime already did. What ' + + 'removal does NOT preserve is the author\'s INTENT — the rule was written to gate ' + + 'something, and a removal records that it never did. Authoring the `source` is the ' + + 'repair; removal is the honest way to say the rule was abandoned. An `ast` BESIDE a string ' + + '`source` is untouched and stays admitted everywhere', + reason: + 'Card #17778, on the maintainer ruling for objectui#8069 (decision batch #119 item 3, ' + + '2026-09-12: 「同意」 to A, Q2 yes, Q3 yes) and the standing ruling ' + + '「我们的项目以objectstack 协议为准…协议不正确的应该先修改协议。」. ADR-0136 D1: a predicate is an ' + + 'EVALUATED slot by definition, so `PredicateSchema` / `PredicateInputSchema` now compose ' + + '`EvaluatedExpressionSchema` / `EvaluatedExpressionInputSchema` instead of the PERSISTENCE ' + + 'contract `ExpressionSchema` / `ExpressionInputSchema`, and the field-rule triad binds ' + + 'them. The CEL engine evaluates `source` alone (`cel-engine.ts` `evaluate`: "AST-only ' + + 'evaluation not yet supported; persist `source`"), so both refused spellings parsed, ' + + 'registered, passed `objectstack validate`, and then produced a rule that silently did ' + + 'nothing. ⚠️ The three no-op directions are NOT the same mechanism, and each was measured ' + + 'at its own end rather than inferred from the others: `visibleWhen` is never evaluated ' + + 'server-side at the FIELD level at all (`rule-validator.ts`\'s `ConditionalFieldDef` has no ' + + 'such member) and the renderer falls back to VISIBLE where no host publishes a predicate ' + + 'scope; `readonlyWhen` reaches `isReadonlyWhenLocked`, whose unbound-ROOT arm returns ' + + 'LOCKED but whose every-other-fault arm logs "change allowed through" and returns false, ' + + 'and an unevaluable envelope takes that second arm — the declared lock is silently waived; ' + + '`requiredWhen` logs and SKIPS the check. So one misspelled or unauthored predicate ' + + 'produced a form that showed more, locked less and demanded less at once, with no state ' + + 'that said "this rule did not run" — which is the composite objectui#8069 measured and ' + + 'this entry\'s ruling closes. ⚠️ No D2 conversion is possible, and that is why this needs ' + + 'a D3 entry rather than none: an `ast`-only envelope carries no `source` to derive one ' + + 'from (lowering an AST to surface syntax is the compiler direction the platform does not ' + + 'run), and a blank `source` names no predicate to reconstruct. Choosing between "author ' + + 'the rule" and "drop the rule" is an intent question only the author can answer, which is ' + + 'what this entry delegates. ⚠️ Scope of the RUNTIME half, stated so it is not read wider ' + + 'than it is: ADR-0136 D2 (a faulting field-rule predicate refuses the SUBMIT, naming the ' + + 'field and the rule) and D3 (visibility stays fail-OPEN at RENDER) are consequences ' + + 'CONSUMERS deliver — `packages/spec` carries no business logic — and the renderer half ' + + 'lands in objectui#8069. This entry is the AUTHORING refusal only. ⚠️ And one ' + + 'stored-row consequence is deliberately left UNMEASURED rather than guessed: ' + + '`applyConversionsToStoredItem` IS applied to `object` (only `flow` is skipped, ' + + '`spec/src/conversions/stored.ts` and the same skip in ' + + '`metadata/src/loaders/database-loader.ts` `rowToData`), but no conversion can repair ' + + 'either refused spelling, so a stored row carrying one now meets a strict schema at ' + + 'whichever seam parses it; which seam that is, and whether it degrades to a warn or ' + + 'refuses the object, was NOT measured on this card and is named here as the open edge ' + + 'rather than asserted. A repo-wide census over examples/, packages/, content/ and skills/ ' + + 'at 03b7b8187 found ZERO field-rule predicates of either spelling against two live lit ' + + 'controls (non-blank tagged-template predicates: 15 files; envelope-form predicates: 14 ' + + 'files), so there is nothing in THIS repository to rewrite — a repo reading, which is why ' + + 'the notification is registered here rather than skipped. ADR-0136, ADR-0087, ADR-0089, ' + + 'ADR-0058, ADR-0124.', + acceptanceCriteria: + 'Grep every authored field-rule predicate — all three of `visibleWhen`, `readonlyWhen` and ' + + '`requiredWhen` on a FIELD (not the per-OPTION `visibleWhen`, not the inline-column pair, ' + + 'and not a view/page/action gate: those slots still compose `ExpressionInputSchema` and ' + + 'are unaffected by this entry) — in `defineStack({ objects })` sources, exported stacks ' + + 'and `POST /objects` bodies, and every object row in `sys_metadata`, for an envelope with ' + + 'no `source` key and for a `source` (or bare string) that is empty after trimming. For ' + + 'each hit decide, per the `replacement` note, whether the rule was meant to gate (author ' + + 'the `source`) or was abandoned (remove the key) — removal is behaviour-preserving here, ' + + 'so it is a safe default, but it records that the rule never ran. Two proofs. (1) For a ' + + 'stack authored in config files, `objectstack validate` is clean: it locates each offender ' + + 'with the `EVALUATED_EXPRESSION_SOURCE_REQUIRED` sentence at ' + + '`objects.N.fields.N.visibleWhen` (and the two siblings) — a blank `source` inside an ' + + 'envelope surfaces as one issue at `source`, while an `ast`-only envelope and a blank ' + + 'bare string abort both arms of the input union and surface as one `invalid_union` at the ' + + 'SLOT, carrying that same sentence. There is no CLI verb that lowers a stored row back ' + + 'into a config file, so this proof does not reach an object that exists only in ' + + '`sys_metadata`. (2) For stored rows, boot the stack and confirm each object still loads ' + + 'and its form still renders: a row carrying either spelling no longer parses, and per the ' + + '`reason`\'s last note the seam that reports it was not measured on this card — so read ' + + 'the boot log for the object by name rather than expecting a specific message, and treat ' + + 'a missing object as this entry\'s signal. An object whose field rules all carry a ' + + 'non-blank `source` parses byte-identically to before.', + }, { id: 'field-scale-precision-integer-refused', surface: 'object field `scale` / `precision` declarations (`Field.number` and friends) — ' diff --git a/packages/spec/src/shared/expression.zod.ts b/packages/spec/src/shared/expression.zod.ts index a5c8b11e069..e9063fc49cd 100644 --- a/packages/spec/src/shared/expression.zod.ts +++ b/packages/spec/src/shared/expression.zod.ts @@ -449,7 +449,7 @@ export type TemplateExpressionInput = z.input Date: Fri, 18 Sep 2026 09:27:51 +0000 Subject: [PATCH 03/13] chore(spec): changeset + regenerate the reference docs for the narrowed predicate `gen:docs` was the one artifact `check:generated` proved stale; the published reference now states `source` as required on `Predicate` / `PredicateInput`. Claude-Session: https://claude.ai/code/session_019srGWGCBBCBHqcDoRZpQRh Co-authored-by: Claude --- ...78-field-rule-predicate-fault-semantics.md | 24 +++++++++++++++++++ content/docs/references/data/field.mdx | 6 ++--- content/docs/references/data/object.mdx | 12 +++++----- content/docs/references/shared/expression.mdx | 4 ++-- content/docs/references/system/migration.mdx | 12 +++++----- 5 files changed, 41 insertions(+), 17 deletions(-) create mode 100644 .changeset/17778-field-rule-predicate-fault-semantics.md diff --git a/.changeset/17778-field-rule-predicate-fault-semantics.md b/.changeset/17778-field-rule-predicate-fault-semantics.md new file mode 100644 index 00000000000..005ae3421eb --- /dev/null +++ b/.changeset/17778-field-rule-predicate-fault-semantics.md @@ -0,0 +1,24 @@ +--- +"@objectstack/spec": minor +--- + +**BREAKING (accept-set narrows)** — a predicate slot now accepts only what the expression engine can actually run. `PredicateSchema` / `PredicateInputSchema` compose the EVALUATED rule instead of the persistence contract, and the `FieldSchema` field-rule triad — `visibleWhen`, `readonlyWhen`, `requiredWhen` — binds them (#17778, ADR-0136 D1). + +Clause-②: yes (narrowing) + +**FROM → TO.** Two spellings stop parsing on those three slots, and on any slot composing the `Predicate*` aliases: + +- `{ dialect: 'cel', ast: … }` with no `source` → **TO** `{ dialect: 'cel', source: "record.status == 'paid'" }` +- `{ dialect: 'cel', source: ' ' }`, or the bare-string shorthand `' '` → **TO** the same non-blank envelope, or the `P` tagged template the examples use + +**The one-line fix:** author the predicate's `source`, or REMOVE the key if the field was meant to carry no rule. Removal is behaviour-preserving here — all three slots resolved both refused spellings to a no-op already — so it is a safe default, but it records that the rule never ran. Authoring the `source` is the repair. + +**Why this is a break worth taking.** The CEL engine evaluates `source` alone, so both spellings parsed, registered, passed `objectstack validate`, and then produced a rule that silently did nothing — by three *different* mechanisms, each measured at its own end: a field-level `visibleWhen` is never evaluated server-side at all; `isReadonlyWhenLocked` returns LOCKED only for an unbound-ROOT fault and logs `change allowed through` for every other one, which is the arm an unevaluable envelope takes, silently waiving the declared lock; `requiredWhen` logs and SKIPS the check. One unauthored predicate therefore made a form show more, lock less and demand less at once, with no state saying the rule had not run. + +**`ExpressionSchema` / `ExpressionInputSchema` are NOT narrowed** — they remain the persistence contract (`source` OR `ast`), and an `ast` BESIDE a string `source` stays admitted everywhere. Absence is untouched: "no rule" was never a malformed rule. + +**Declared beside the narrowing, delivered by consumers.** ADR-0136 also records the fault semantics the renderer and submit path are held to: a faulting field-rule predicate refuses the SUBMIT loudly, naming the field and the rule (D2), while visibility stays fail-OPEN at RENDER so a rule that could not run never hides a control and lets the form write `null` over a column the user never saw (D3) — a pair, neither safe alone. `packages/spec` carries no business logic, so those land in the ObjectUI half. The evaluation helper's fallback stays freely specifiable (D5): fault-to-flag and fault-to-throw both exist only because it is a parameter. + +**Repo census.** Zero field-rule predicates of either refused spelling across `examples/`, `packages/`, `content/` and `skills/` at `03b7b8187`, against two live lit controls (15 files with non-blank tagged-template predicates, 14 with envelope-form ones). Nothing in this repository needed rewriting. + + diff --git a/content/docs/references/data/field.mdx b/content/docs/references/data/field.mdx index c7771ff831f..fab571a6f68 100644 --- a/content/docs/references/data/field.mdx +++ b/content/docs/references/data/field.mdx @@ -102,9 +102,9 @@ const result = CurrencyConfigSchema.parse(data); | **dimensions** | `integer` | optional | Vector dimensionality (e.g., 1536 for OpenAI embeddings) | | **trackHistory** | `boolean` | optional | Render this field's value changes as human-readable entries on the record activity timeline (ADR-0052 §5b). Opt-in per field. | | **group** | `string` | optional | Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system") | -| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). e.g. P`record.type == 'invoice'` | -| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. e.g. P`record.status == 'paid'` | -| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | +| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). Needs a non-blank `source`: an evaluated slot is held to what the engine can run (ADR-0136 D1). A fault at RENDER is fail-open (the field shows) and refuses the SUBMIT, naming the field and this rule (D2/D3). e.g. P`record.type == 'invoice'` | +| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). e.g. P`record.status == 'paid'` | +| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | | **conditionalRequired** | `never` | optional | [REMOVED] `conditionalRequired` was removed in @objectstack/spec 17 — use `requiredWhen`. Rename the key; the value (a CEL predicate) is unchanged. Run `os migrate meta --from 16` to list the mechanical edits for existing sources; apply them by hand. | | **widget** | `string` | optional | Form widget override — names a registered field component (resolved as `field:`) to render this field instead of the `type` default. Degrades to the `type` renderer when unregistered. e.g. "object-ref", "filter-condition", "recipient-picker". | | **hidden** | `boolean` | optional (default: `false`) | Hidden from default UI | diff --git a/content/docs/references/data/object.mdx b/content/docs/references/data/object.mdx index b0ae75ec582..32a522b84f2 100644 --- a/content/docs/references/data/object.mdx +++ b/content/docs/references/data/object.mdx @@ -264,9 +264,9 @@ const result = ApiMethod.parse(data); | **dimensions** | `integer` | optional | Vector dimensionality (e.g., 1536 for OpenAI embeddings) | | **trackHistory** | `boolean` | optional | Render this field's value changes as human-readable entries on the record activity timeline (ADR-0052 §5b). Opt-in per field. | | **group** | `string` | optional | Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system") | -| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). e.g. P`record.type == 'invoice'` | -| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. e.g. P`record.status == 'paid'` | -| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | +| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). Needs a non-blank `source`: an evaluated slot is held to what the engine can run (ADR-0136 D1). A fault at RENDER is fail-open (the field shows) and refuses the SUBMIT, naming the field and this rule (D2/D3). e.g. P`record.type == 'invoice'` | +| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). e.g. P`record.status == 'paid'` | +| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | | **conditionalRequired** | `never` | optional | [REMOVED] `conditionalRequired` was removed in @objectstack/spec 17 — use `requiredWhen`. Rename the key; the value (a CEL predicate) is unchanged. Run `os migrate meta --from 16` to list the mechanical edits for existing sources; apply them by hand. | | **widget** | `string` | optional | Form widget override — names a registered field component (resolved as `field:`) to render this field instead of the `type` default. Degrades to the `type` renderer when unregistered. e.g. "object-ref", "filter-condition", "recipient-picker". | | **hidden** | `boolean` | optional (default: `false`) | Hidden from default UI | @@ -597,9 +597,9 @@ const result = ApiMethod.parse(data); | **dimensions** | `integer` | optional | Vector dimensionality (e.g., 1536 for OpenAI embeddings) | | **trackHistory** | `boolean` | optional | Render this field's value changes as human-readable entries on the record activity timeline (ADR-0052 §5b). Opt-in per field. | | **group** | `string` | optional | Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system") | -| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). e.g. P`record.type == 'invoice'` | -| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. e.g. P`record.status == 'paid'` | -| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | +| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). Needs a non-blank `source`: an evaluated slot is held to what the engine can run (ADR-0136 D1). A fault at RENDER is fail-open (the field shows) and refuses the SUBMIT, naming the field and this rule (D2/D3). e.g. P`record.type == 'invoice'` | +| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). e.g. P`record.status == 'paid'` | +| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | | **conditionalRequired** | `never` | optional | [REMOVED] `conditionalRequired` was removed in @objectstack/spec 17 — use `requiredWhen`. Rename the key; the value (a CEL predicate) is unchanged. Run `os migrate meta --from 16` to list the mechanical edits for existing sources; apply them by hand. | | **widget** | `string` | optional | Form widget override — names a registered field component (resolved as `field:`) to render this field instead of the `type` default. Degrades to the `type` renderer when unregistered. e.g. "object-ref", "filter-condition", "recipient-picker". | | **hidden** | `boolean` | optional (default: `false`) | Hidden from default UI | diff --git a/content/docs/references/shared/expression.mdx b/content/docs/references/shared/expression.mdx index b8c4114d5fb..e49dfa992f7 100644 --- a/content/docs/references/shared/expression.mdx +++ b/content/docs/references/shared/expression.mdx @@ -208,7 +208,7 @@ Type: `string` | Property | Type | Required | Description | | :--- | :--- | :--- | :--- | | **dialect** | `Enum<'cel' \| 'cron' \| 'template'>` | ✅ | | -| **source** | `string` | optional | | +| **source** | `string` | ✅ | | | **ast** | `any` | optional | | | **meta** | `{ rationale?: string; generatedBy?: string }` | optional | | @@ -234,7 +234,7 @@ Type: `string` | Property | Type | Required | Description | | :--- | :--- | :--- | :--- | | **dialect** | `Enum<'cel' \| 'cron' \| 'template'>` | ✅ | | -| **source** | `string` | optional | | +| **source** | `string` | ✅ | | | **ast** | `any` | optional | | | **meta** | `{ rationale?: string; generatedBy?: string }` | optional | | diff --git a/content/docs/references/system/migration.mdx b/content/docs/references/system/migration.mdx index b77887d2689..d4317c820da 100644 --- a/content/docs/references/system/migration.mdx +++ b/content/docs/references/system/migration.mdx @@ -102,9 +102,9 @@ Add a new field to an existing object | **dimensions** | `integer` | optional | Vector dimensionality (e.g., 1536 for OpenAI embeddings) | | **trackHistory** | `boolean` | optional | Render this field's value changes as human-readable entries on the record activity timeline (ADR-0052 §5b). Opt-in per field. | | **group** | `string` | optional | Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system") | -| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). e.g. P`record.type == 'invoice'` | -| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. e.g. P`record.status == 'paid'` | -| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | +| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). Needs a non-blank `source`: an evaluated slot is held to what the engine can run (ADR-0136 D1). A fault at RENDER is fail-open (the field shows) and refuses the SUBMIT, naming the field and this rule (D2/D3). e.g. P`record.type == 'invoice'` | +| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). e.g. P`record.status == 'paid'` | +| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | | **conditionalRequired** | `never` | optional | [REMOVED] `conditionalRequired` was removed in @objectstack/spec 17 — use `requiredWhen`. Rename the key; the value (a CEL predicate) is unchanged. Run `os migrate meta --from 16` to list the mechanical edits for existing sources; apply them by hand. | | **widget** | `string` | optional | Form widget override — names a registered field component (resolved as `field:`) to render this field instead of the `type` default. Degrades to the `type` renderer when unregistered. e.g. "object-ref", "filter-condition", "recipient-picker". | | **hidden** | `boolean` | optional (default: `false`) | Hidden from default UI | @@ -522,9 +522,9 @@ Add a new field to an existing object | **dimensions** | `integer` | optional | Vector dimensionality (e.g., 1536 for OpenAI embeddings) | | **trackHistory** | `boolean` | optional | Render this field's value changes as human-readable entries on the record activity timeline (ADR-0052 §5b). Opt-in per field. | | **group** | `string` | optional | Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system") | -| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). e.g. P`record.type == 'invoice'` | -| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. e.g. P`record.status == 'paid'` | -| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | +| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). Needs a non-blank `source`: an evaluated slot is held to what the engine can run (ADR-0136 D1). A fault at RENDER is fail-open (the field shows) and refuses the SUBMIT, naming the field and this rule (D2/D3). e.g. P`record.type == 'invoice'` | +| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). e.g. P`record.status == 'paid'` | +| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | | **conditionalRequired** | `never` | optional | [REMOVED] `conditionalRequired` was removed in @objectstack/spec 17 — use `requiredWhen`. Rename the key; the value (a CEL predicate) is unchanged. Run `os migrate meta --from 16` to list the mechanical edits for existing sources; apply them by hand. | | **widget** | `string` | optional | Form widget override — names a registered field component (resolved as `field:`) to render this field instead of the `type` default. Degrades to the `type` renderer when unregistered. e.g. "object-ref", "filter-condition", "recipient-picker". | | **hidden** | `boolean` | optional (default: `false`) | Hidden from default UI | From d3c10713d0883fbb997d7596f1fa20911d1cd826 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 18 Sep 2026 09:47:54 +0000 Subject: [PATCH 04/13] fix(spec): declare what the expression author helpers actually emit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `expression()` and `cel()` (hence `F` and `P`) always set a non-blank `source`, but were declared as returning `Expression`, whose `source` is optional. Harmless while no slot required `source`; once the field-rule triad did, a `P` template written straight into `visibleWhen` became a TS2322 — the recommended authoring form for a predicate stopped type-checking in the one place predicates are written (caught by `check:skill-examples` on the docs and skills corpus, and by the examples typecheck on app-showcase). Fixed at the producer, not the call sites: the return type now states what the helper emits. Narrowing a return type removes nothing from a caller — `EvaluatedExpression` is assignable to `Expression`. Claude-Session: https://claude.ai/code/session_019srGWGCBBCBHqcDoRZpQRh Co-authored-by: Claude --- packages/spec/src/shared/expression.zod.ts | 24 +++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/packages/spec/src/shared/expression.zod.ts b/packages/spec/src/shared/expression.zod.ts index e9063fc49cd..8c4724c9342 100644 --- a/packages/spec/src/shared/expression.zod.ts +++ b/packages/spec/src/shared/expression.zod.ts @@ -469,7 +469,11 @@ export type PredicateInput = z.input; * Construct an Expression literal from a CEL source string. Used by DX * shorthand (`cel\`...\``) and by codegen tools. */ -export function expression(source: string, dialect: ExpressionDialect = 'cel', meta?: ExpressionMeta): Expression { +export function expression( + source: string, + dialect: ExpressionDialect = 'cel', + meta?: ExpressionMeta, +): EvaluatedExpression { return { dialect, source, ...(meta ? { meta } : {}) }; } @@ -508,8 +512,22 @@ function renderTemplate(strings: TemplateStringsArray, values: readonly unknown[ return out; } -/** Tagged template — produces a CEL Expression envelope. */ -export function cel(strings: TemplateStringsArray, ...values: unknown[]): Expression { +/** + * Tagged template — produces a CEL Expression envelope. + * + * Returns {@link EvaluatedExpression}, not {@link Expression}: this helper + * ALWAYS sets `source`, so the wider return type was a declaration of + * something the function cannot produce. It was harmless only while no slot + * required `source` — once the field-rule triad did (ADR-0136 D1), a + * ``P`record.status == 'paid'` `` written straight into `visibleWhen` became a + * TS2322, and the recommended authoring form for a predicate stopped + * type-checking in the one place predicates are written. Fixed at the PRODUCER + * (Prime Directive #12) rather than by rewriting the call sites: the return + * type now states what the helper emits. Narrowing a return type removes + * nothing from a caller — `EvaluatedExpression` is assignable to `Expression` + * — so every existing consumer still compiles. + */ +export function cel(strings: TemplateStringsArray, ...values: unknown[]): EvaluatedExpression { return { dialect: 'cel', source: renderTemplate(strings, values) }; } From 8f8edb093beb776cfc19064c7b42a71986a71941 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 18 Sep 2026 10:10:00 +0000 Subject: [PATCH 05/13] chore(spec): regenerate api-surface-declarations after merging origin/main The declaration-text pins main brought in #18971 move with this branch's two facts: `source` becomes required wherever the predicate contract composes, and `cel` / `expression` now declare the `EvaluatedExpression` they always emitted. Exactly 8 distinct changed lines across all six files; the line count is those two facts repeated at every composing site. Claude-Session: https://claude.ai/code/session_019srGWGCBBCBHqcDoRZpQRh Co-authored-by: Claude --- .../spec/api-surface-declarations/api.txt | 72 +-- .../spec/api-surface-declarations/data.txt | 276 ++++++------ .../spec/api-surface-declarations/root.txt | 178 ++++---- .../spec/api-surface-declarations/shared.txt | 10 +- .../spec/api-surface-declarations/system.txt | 420 +++++++++--------- packages/spec/api-surface-declarations/ui.txt | 12 +- 6 files changed, 484 insertions(+), 484 deletions(-) diff --git a/packages/spec/api-surface-declarations/api.txt b/packages/spec/api-surface-declarations/api.txt index 2ab4fe51142..a1bbb770f88 100644 --- a/packages/spec/api-surface-declarations/api.txt +++ b/packages/spec/api-surface-declarations/api.txt @@ -17447,7 +17447,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -19669,7 +19669,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19677,7 +19677,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19686,7 +19686,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19694,7 +19694,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19703,7 +19703,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19711,7 +19711,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20823,7 +20823,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20831,7 +20831,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20840,7 +20840,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20848,7 +20848,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20857,7 +20857,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20865,7 +20865,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -21978,7 +21978,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -21986,7 +21986,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -21995,7 +21995,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -22003,7 +22003,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -22012,7 +22012,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -22020,7 +22020,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -23132,7 +23132,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -23140,7 +23140,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -23149,7 +23149,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -23157,7 +23157,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -23166,7 +23166,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -23174,7 +23174,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -24640,7 +24640,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; diff --git a/packages/spec/api-surface-declarations/data.txt b/packages/spec/api-surface-declarations/data.txt index a034ec0d680..ef45a9a28c3 100644 --- a/packages/spec/api-surface-declarations/data.txt +++ b/packages/spec/api-surface-declarations/data.txt @@ -6479,7 +6479,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6488,7 +6488,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6536,7 +6536,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6669,7 +6669,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6678,7 +6678,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6726,7 +6726,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6859,7 +6859,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6868,7 +6868,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6916,7 +6916,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7049,7 +7049,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7058,7 +7058,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7106,7 +7106,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7239,7 +7239,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7248,7 +7248,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7296,7 +7296,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7429,7 +7429,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7438,7 +7438,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7486,7 +7486,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7619,7 +7619,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7628,7 +7628,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7676,7 +7676,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7809,7 +7809,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7818,7 +7818,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7866,7 +7866,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7999,7 +7999,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8008,7 +8008,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8056,7 +8056,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8189,7 +8189,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8198,7 +8198,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8246,7 +8246,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8379,7 +8379,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8388,7 +8388,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8436,7 +8436,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8569,7 +8569,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8578,7 +8578,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8626,7 +8626,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8759,7 +8759,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8768,7 +8768,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8816,7 +8816,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8949,7 +8949,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8958,7 +8958,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9006,7 +9006,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9139,7 +9139,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9148,7 +9148,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9196,7 +9196,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9329,7 +9329,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9338,7 +9338,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9386,7 +9386,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9519,7 +9519,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9528,7 +9528,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9576,7 +9576,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9732,7 +9732,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9741,7 +9741,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9789,7 +9789,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9922,7 +9922,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9931,7 +9931,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9979,7 +9979,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10112,7 +10112,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10121,7 +10121,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10169,7 +10169,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10302,7 +10302,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10311,7 +10311,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10359,7 +10359,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10498,7 +10498,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10507,7 +10507,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10555,7 +10555,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10706,7 +10706,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10715,7 +10715,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10763,7 +10763,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10911,7 +10911,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10920,7 +10920,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10968,7 +10968,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11116,7 +11116,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11125,7 +11125,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11173,7 +11173,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11306,7 +11306,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11315,7 +11315,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11363,7 +11363,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11496,7 +11496,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11505,7 +11505,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11553,7 +11553,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11686,7 +11686,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11695,7 +11695,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11743,7 +11743,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11876,7 +11876,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11885,7 +11885,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11933,7 +11933,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12066,7 +12066,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12075,7 +12075,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12123,7 +12123,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12256,7 +12256,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12265,7 +12265,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12313,7 +12313,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12446,7 +12446,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12455,7 +12455,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12503,7 +12503,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12636,7 +12636,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12645,7 +12645,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12693,7 +12693,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12826,7 +12826,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12835,7 +12835,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12883,7 +12883,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -13016,7 +13016,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -13025,7 +13025,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -13073,7 +13073,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -13206,7 +13206,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -13215,7 +13215,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -13263,7 +13263,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -13803,7 +13803,7 @@ declare const FieldSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -15800,7 +15800,7 @@ declare const ObjectExtensionSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -16526,7 +16526,7 @@ declare const ObjectSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -18753,7 +18753,7 @@ declare const ObjectSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18761,7 +18761,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18770,7 +18770,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18778,7 +18778,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18787,7 +18787,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18795,7 +18795,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19908,7 +19908,7 @@ declare const ObjectSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19916,7 +19916,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19925,7 +19925,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19933,7 +19933,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19942,7 +19942,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19950,7 +19950,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; diff --git a/packages/spec/api-surface-declarations/root.txt b/packages/spec/api-surface-declarations/root.txt index 7ebf656f6da..4cc735ab6dc 100644 --- a/packages/spec/api-surface-declarations/root.txt +++ b/packages/spec/api-surface-declarations/root.txt @@ -1859,7 +1859,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -4081,7 +4081,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4089,7 +4089,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4098,7 +4098,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4106,7 +4106,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4115,7 +4115,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4123,7 +4123,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5235,7 +5235,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5243,7 +5243,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5252,7 +5252,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5260,7 +5260,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5269,7 +5269,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5277,7 +5277,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6390,7 +6390,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6398,7 +6398,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6407,7 +6407,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6415,7 +6415,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6424,7 +6424,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6432,7 +6432,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7544,7 +7544,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7552,7 +7552,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7561,7 +7561,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7569,7 +7569,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7578,7 +7578,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7586,7 +7586,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9052,7 +9052,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -11401,7 +11401,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -23712,7 +23712,7 @@ declare const ObjectStackSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -25934,7 +25934,7 @@ declare const ObjectStackSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25942,7 +25942,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25951,7 +25951,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25959,7 +25959,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25968,7 +25968,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25976,7 +25976,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27088,7 +27088,7 @@ declare const ObjectStackSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27096,7 +27096,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27105,7 +27105,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27113,7 +27113,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27122,7 +27122,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27130,7 +27130,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28243,7 +28243,7 @@ declare const ObjectStackSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28251,7 +28251,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28260,7 +28260,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28268,7 +28268,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28277,7 +28277,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28285,7 +28285,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29397,7 +29397,7 @@ declare const ObjectStackSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29405,7 +29405,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29414,7 +29414,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29422,7 +29422,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29431,7 +29431,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29439,7 +29439,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -30905,7 +30905,7 @@ declare const ObjectStackSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -33254,7 +33254,7 @@ declare const ObjectStackSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -44830,7 +44830,7 @@ type PredicateInput = z.input; // ── PredicateInputSchema (const) ── declare const PredicateInputSchema: z.ZodUnion; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>; // ── PredicateSchema (const) ── @@ -44857,12 +44857,12 @@ declare const PredicateSchema: z.ZodObject<{ cron: "cron"; template: "template"; }>; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>; // ── RETIRED_DEFS_BY_MAJOR (const) ── @@ -45064,7 +45064,7 @@ declare function applyConversionsToStoredItem(type: string, item: T, options? declare function applyMetaMigrations(stack: Record, fromMajor: number, toMajor?: number): MigrationChainResult; // ── cel (function) ── -declare function cel(strings: TemplateStringsArray, ...values: unknown[]): Expression; +declare function cel(strings: TemplateStringsArray, ...values: unknown[]): EvaluatedExpression; // ── classifyRequiredCapability (function) ── declare function classifyRequiredCapability(token: string, isInstalled: (pkg: string) => boolean): CapabilityClassification; @@ -45186,7 +45186,7 @@ declare function expandViewContainer(object: string, container: any): ExpandedVi declare function expandViewContainerWithDiagnostics(object: string, container: any): ExpandViewResult; // ── expression (function) ── -declare function expression(source: string, dialect?: ExpressionDialect, meta?: ExpressionMeta): Expression; +declare function expression(source: string, dialect?: ExpressionDialect, meta?: ExpressionMeta): EvaluatedExpression; // ── findClosestMatches (function) ── declare function findClosestMatches(input: string, candidates: readonly string[], maxDistance?: number, maxResults?: number): string[]; diff --git a/packages/spec/api-surface-declarations/shared.txt b/packages/spec/api-surface-declarations/shared.txt index 6ab21e0a69a..5d5ca41a314 100644 --- a/packages/spec/api-surface-declarations/shared.txt +++ b/packages/spec/api-surface-declarations/shared.txt @@ -454,7 +454,7 @@ type PredicateInput = z.input; // ── PredicateInputSchema (const) ── declare const PredicateInputSchema: z.ZodUnion; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>; // ── PredicateSchema (const) ── @@ -481,12 +481,12 @@ declare const PredicateSchema: z.ZodObject<{ cron: "cron"; template: "template"; }>; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>; // ── Protection (type) ── @@ -727,13 +727,13 @@ declare function applyProtection>(item: T, ctx declare function canonicalMetaUrlType(type: string): string; // ── cel (function) ── -declare function cel(strings: TemplateStringsArray, ...values: unknown[]): Expression; +declare function cel(strings: TemplateStringsArray, ...values: unknown[]): EvaluatedExpression; // ── cron (function) ── declare function cron(strings: TemplateStringsArray, ...values: unknown[]): Expression; // ── expression (function) ── -declare function expression(source: string, dialect?: ExpressionDialect, meta?: ExpressionMeta): Expression; +declare function expression(source: string, dialect?: ExpressionDialect, meta?: ExpressionMeta): EvaluatedExpression; // ── findClosestMatches (function) ── declare function findClosestMatches(input: string, candidates: readonly string[], maxDistance?: number, maxResults?: number): string[]; diff --git a/packages/spec/api-surface-declarations/system.txt b/packages/spec/api-surface-declarations/system.txt index 4ebfda01bfb..345238b67df 100644 --- a/packages/spec/api-surface-declarations/system.txt +++ b/packages/spec/api-surface-declarations/system.txt @@ -422,7 +422,7 @@ declare const AddFieldOperation: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -1963,7 +1963,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -2599,7 +2599,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -4821,7 +4821,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4829,7 +4829,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4838,7 +4838,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4846,7 +4846,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4855,7 +4855,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4863,7 +4863,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5975,7 +5975,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5983,7 +5983,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5992,7 +5992,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6000,7 +6000,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6009,7 +6009,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6017,7 +6017,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7130,7 +7130,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7138,7 +7138,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7147,7 +7147,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7155,7 +7155,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7164,7 +7164,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7172,7 +7172,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8284,7 +8284,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8292,7 +8292,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8301,7 +8301,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8309,7 +8309,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8318,7 +8318,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8326,7 +8326,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9792,7 +9792,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -12155,7 +12155,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -12791,7 +12791,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -15013,7 +15013,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -15021,7 +15021,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -15030,7 +15030,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -15038,7 +15038,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -15047,7 +15047,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -15055,7 +15055,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -16167,7 +16167,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -16175,7 +16175,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -16184,7 +16184,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -16192,7 +16192,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -16201,7 +16201,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -16209,7 +16209,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -17322,7 +17322,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -17330,7 +17330,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -17339,7 +17339,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -17347,7 +17347,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -17356,7 +17356,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -17364,7 +17364,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18476,7 +18476,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18484,7 +18484,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18493,7 +18493,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18501,7 +18501,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18510,7 +18510,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18518,7 +18518,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19984,7 +19984,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -22946,7 +22946,7 @@ declare const CreateObjectOperation: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -25168,7 +25168,7 @@ declare const CreateObjectOperation: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25176,7 +25176,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25185,7 +25185,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25193,7 +25193,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25202,7 +25202,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25210,7 +25210,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26322,7 +26322,7 @@ declare const CreateObjectOperation: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26330,7 +26330,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26339,7 +26339,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26347,7 +26347,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26356,7 +26356,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26364,7 +26364,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27477,7 +27477,7 @@ declare const CreateObjectOperation: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27485,7 +27485,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27494,7 +27494,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27502,7 +27502,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27511,7 +27511,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27519,7 +27519,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28631,7 +28631,7 @@ declare const CreateObjectOperation: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28639,7 +28639,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28648,7 +28648,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28656,7 +28656,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28665,7 +28665,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28673,7 +28673,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -30139,7 +30139,7 @@ declare const CreateObjectOperation: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -33872,7 +33872,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -36094,7 +36094,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -36102,7 +36102,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -36111,7 +36111,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -36119,7 +36119,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -36128,7 +36128,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -36136,7 +36136,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -37248,7 +37248,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -37256,7 +37256,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -37265,7 +37265,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -37273,7 +37273,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -37282,7 +37282,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -37290,7 +37290,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -38403,7 +38403,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -38411,7 +38411,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -38420,7 +38420,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -38428,7 +38428,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -38437,7 +38437,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -38445,7 +38445,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -39557,7 +39557,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -39565,7 +39565,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -39574,7 +39574,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -39582,7 +39582,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -39591,7 +39591,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -39599,7 +39599,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -41065,7 +41065,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -43414,7 +43414,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -57524,7 +57524,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -58160,7 +58160,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -60382,7 +60382,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -60390,7 +60390,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -60399,7 +60399,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -60407,7 +60407,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -60416,7 +60416,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -60424,7 +60424,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -61536,7 +61536,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -61544,7 +61544,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -61553,7 +61553,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -61561,7 +61561,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -61570,7 +61570,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -61578,7 +61578,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -62691,7 +62691,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -62699,7 +62699,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -62708,7 +62708,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -62716,7 +62716,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -62725,7 +62725,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -62733,7 +62733,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -63845,7 +63845,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -63853,7 +63853,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -63862,7 +63862,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -63870,7 +63870,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -63879,7 +63879,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -63887,7 +63887,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -65353,7 +65353,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; diff --git a/packages/spec/api-surface-declarations/ui.txt b/packages/spec/api-surface-declarations/ui.txt index 6046c1c8b74..86dca289d0f 100644 --- a/packages/spec/api-surface-declarations/ui.txt +++ b/packages/spec/api-surface-declarations/ui.txt @@ -7646,7 +7646,7 @@ declare const FieldWidgetPropsSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; From e1978a0f3b02608d6137ac4daab928540bb52b6b Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 18 Sep 2026 10:11:08 +0000 Subject: [PATCH 06/13] test(dogfood): roster `PredicateInputSchema` as an expression-surface schema MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ADR-0136 D1 binds the `FieldSchema` field-rule triad to `PredicateInputSchema` from another file, and alias resolution in the D7 discovery scan is FILE-LOCAL — so all three surfaces dropped out of discovery and their covers went STALE, 34 positions found against a `head` floor of 37. The ledger header had written this trap down as limitation 2, naming this exact alias as latent; this change makes it live, so the roster gains it and the limitation is corrected to say so. ⛔ No floor was lowered and no ledger row was deleted: the three surfaces still exist and are still exactly what the scan looks for. The roster docblock already prescribed this repair for a new alias. Claude-Session: https://claude.ai/code/session_019srGWGCBBCBHqcDoRZpQRh Co-authored-by: Claude --- .../test/expression-conformance.ledger.ts | 17 ++++++++++++----- .../dogfood/test/expression-conformance.test.ts | 14 ++++++++++++++ 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/packages/qa/dogfood/test/expression-conformance.ledger.ts b/packages/qa/dogfood/test/expression-conformance.ledger.ts index 649188a6b47..8faa6e27e1a 100644 --- a/packages/qa/dogfood/test/expression-conformance.ledger.ts +++ b/packages/qa/dogfood/test/expression-conformance.ledger.ts @@ -45,11 +45,18 @@ import type { ConformanceRow } from '@objectstack/verify'; // Structural, not spent: no text scan can recognise a schema it has never // been told about. // 2. Alias resolution is FILE-LOCAL. An EXPORTED alias of a roster member -// used in ANOTHER file is invisible — `shared/expression.zod.ts` -// `PredicateInputSchema` (`= ExpressionInputSchema`) is one today, latent -// rather than live: measured at `a26a114d7`, its only identity hits are -// its own definition, its `z.input` type and the barrel re-export, so it -// types no slot anywhere. +// used in ANOTHER file is invisible. `shared/expression.zod.ts` +// `PredicateInputSchema` was the standing example of this, latent rather +// than live: measured at `a26a114d7` it typed no slot anywhere. ⚠️ It is +// no longer latent and it is no longer an example of the blind spot. +// ADR-0136 D1 (#17778) made it `= EvaluatedExpressionInputSchema` and +// bound the `FieldSchema` field-rule triad to it from `data/field.zod.ts` +// — another file — so the trap sprang exactly as written here: three +// STALE covers and discovery 3 short of its `head` floor, on that commit's +// first CI run. It is ON the roster now, so those three positions are +// discovered by identity and the blind spot is closed FOR THIS ALIAS. The +// limitation itself stands for the next exported alias, which is why this +// paragraph keeps it rather than deleting it. // 3. Attribution is textual and positional, not syntactic. A roster schema // reached through a call the scan cannot follow — passed as an argument to // a generic factory, spread out of another object — has no `field:` above diff --git a/packages/qa/dogfood/test/expression-conformance.test.ts b/packages/qa/dogfood/test/expression-conformance.test.ts index aaa29522187..37996b74571 100644 --- a/packages/qa/dogfood/test/expression-conformance.test.ts +++ b/packages/qa/dogfood/test/expression-conformance.test.ts @@ -98,6 +98,19 @@ const DIALECTS = new Set(['cel', 'cron', 'template', 'js', 'settings-visibility' * moved it listed it here: without this row the edge condition would have * dropped out of discovery and its `cel-interpret` cover gone STALE — measured, * on that commit's first CI run (#7327's shape, one more time). + * + * `PredicateInputSchema` (#17778) is the THIRD time, and the first where the + * ledger had written the trap down before it sprang. It is an EXPORTED alias + * — of `EvaluatedExpressionInputSchema` since ADR-0136 D1 — and alias + * resolution here is FILE-LOCAL, so the ledger header's limitation 2 recorded + * it as a latent blind spot that types no slot anywhere. ADR-0136 made it live + * by binding the `FieldSchema` field-rule triad (`visibleWhen` / `readonlyWhen` + * / `requiredWhen`) to it from ANOTHER file, and the first CI run after that + * reported all three covers STALE and discovery 3 short of its `head` floor + * (34 of 37) — the same two symptoms, one fact. ⛔ The floor was NOT lowered + * and no ledger row was deleted: the three surfaces still exist and are still + * exactly what this scan looks for, so the repair is the roster, which is what + * the paragraph above already prescribed. */ const EXPRESSION_INPUT_SCHEMAS = [ 'ExpressionInputSchema', @@ -105,6 +118,7 @@ const EXPRESSION_INPUT_SCHEMAS = [ 'SettingsVisibilityInputSchema', 'CronExpressionInputSchema', 'TemplateExpressionInputSchema', + 'PredicateInputSchema', ]; /** * A roster (or alias) name as an IDENTIFIER, anywhere on the line — #17630. From 9f30a18a9703cc147bd494e1c8de9937ed46b7fe Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 18 Sep 2026 12:45:25 +0000 Subject: [PATCH 07/13] =?UTF-8?q?revert(spec):=20drop=20the=20predicate=20?= =?UTF-8?q?narrowing=20=E2=80=94=20#18638=20owns=20every=20evaluated=20slo?= =?UTF-8?q?t?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Decision batch #160 item 1 (letter A, maintainer 「同意」 2026-09-18T11:58Z) on #19003: this PR drops its triad-slot edits, the `PredicateSchema` / `PredicateInputSchema` rebinding, the `field-rule-predicate-evaluated-slot-source-required` ledger entry and every api-surface / reference-page row that existed only because of them. Decision batch #122 item 2 (card #15811) had already ruled the same narrowing across all 36 evaluated slots — the field-rule triad named in its own census — and PR #18638 lands it under ONE ADR-0087 id. Card #17778 ruled fault semantics, not the carrier symbol; nothing ruled is lost. Reverted to the merged-main content byte-for-byte (`git checkout d8b12fca97 --` for the three sources and the field.zod anchor; empty `git diff` against that tree for each), so the aliases are again plain aliases of the persistence contract, wide, with zero slot users. KEPT, per the same ruling: the producer fix. `cel()` / `expression()` still declare the `EvaluatedExpression` they always emitted — narrowing a return type removes nothing from a caller — with the docblock rewritten so it no longer rests on a triad requirement this commit removes. ⛔ No gate weakened. The pin test and the ADR-0087 entry are removed because the behaviour they recorded no longer happens in this PR, not to get green: the entry file is deleted and `gen:migration-registry` re-emitted `registry.ts`, which is byte-identical to merged main. `check:generated` proved exactly two artifacts stale and `--fix` regenerated only those; the residue against merged main is 4 lines in api-surface-declarations, all of them the kept producer fix, and `content/docs/references/**` is byte-identical. Claude-Session: https://claude.ai/code/session_019srGWGCBBCBHqcDoRZpQRh Co-authored-by: Claude --- content/docs/references/data/field.mdx | 6 +- content/docs/references/data/object.mdx | 12 +- content/docs/references/shared/expression.mdx | 4 +- content/docs/references/system/migration.mdx | 12 +- .../spec/api-surface-declarations/api.txt | 72 +-- .../spec/api-surface-declarations/data.txt | 276 ++++++------ .../spec/api-surface-declarations/root.txt | 174 ++++---- .../spec/api-surface-declarations/shared.txt | 6 +- .../spec/api-surface-declarations/system.txt | 420 +++++++++--------- packages/spec/api-surface-declarations/ui.txt | 12 +- .../field-rule-predicate-evaluated.test.ts | 135 ------ packages/spec/src/data/field.zod.ts | 23 +- ...redicate-evaluated-slot-source-required.ts | 96 ---- packages/spec/src/migrations/registry.ts | 92 ---- packages/spec/src/shared/expression.zod.ts | 97 +--- ...ckages__spec__src__data__field.zod.ts.json | 5 +- ..._spec__src__shared__expression.zod.ts.json | 7 - 17 files changed, 525 insertions(+), 924 deletions(-) delete mode 100644 packages/spec/src/data/field-rule-predicate-evaluated.test.ts delete mode 100644 packages/spec/src/migrations/entries/semantic/18.field-rule-predicate-evaluated-slot-source-required.ts delete mode 100644 scripts/adr-anchors/packages__spec__src__shared__expression.zod.ts.json diff --git a/content/docs/references/data/field.mdx b/content/docs/references/data/field.mdx index fab571a6f68..c7771ff831f 100644 --- a/content/docs/references/data/field.mdx +++ b/content/docs/references/data/field.mdx @@ -102,9 +102,9 @@ const result = CurrencyConfigSchema.parse(data); | **dimensions** | `integer` | optional | Vector dimensionality (e.g., 1536 for OpenAI embeddings) | | **trackHistory** | `boolean` | optional | Render this field's value changes as human-readable entries on the record activity timeline (ADR-0052 §5b). Opt-in per field. | | **group** | `string` | optional | Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system") | -| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). Needs a non-blank `source`: an evaluated slot is held to what the engine can run (ADR-0136 D1). A fault at RENDER is fail-open (the field shows) and refuses the SUBMIT, naming the field and this rule (D2/D3). e.g. P`record.type == 'invoice'` | -| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). e.g. P`record.status == 'paid'` | -| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | +| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). e.g. P`record.type == 'invoice'` | +| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. e.g. P`record.status == 'paid'` | +| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | | **conditionalRequired** | `never` | optional | [REMOVED] `conditionalRequired` was removed in @objectstack/spec 17 — use `requiredWhen`. Rename the key; the value (a CEL predicate) is unchanged. Run `os migrate meta --from 16` to list the mechanical edits for existing sources; apply them by hand. | | **widget** | `string` | optional | Form widget override — names a registered field component (resolved as `field:`) to render this field instead of the `type` default. Degrades to the `type` renderer when unregistered. e.g. "object-ref", "filter-condition", "recipient-picker". | | **hidden** | `boolean` | optional (default: `false`) | Hidden from default UI | diff --git a/content/docs/references/data/object.mdx b/content/docs/references/data/object.mdx index 32a522b84f2..b0ae75ec582 100644 --- a/content/docs/references/data/object.mdx +++ b/content/docs/references/data/object.mdx @@ -264,9 +264,9 @@ const result = ApiMethod.parse(data); | **dimensions** | `integer` | optional | Vector dimensionality (e.g., 1536 for OpenAI embeddings) | | **trackHistory** | `boolean` | optional | Render this field's value changes as human-readable entries on the record activity timeline (ADR-0052 §5b). Opt-in per field. | | **group** | `string` | optional | Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system") | -| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). Needs a non-blank `source`: an evaluated slot is held to what the engine can run (ADR-0136 D1). A fault at RENDER is fail-open (the field shows) and refuses the SUBMIT, naming the field and this rule (D2/D3). e.g. P`record.type == 'invoice'` | -| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). e.g. P`record.status == 'paid'` | -| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | +| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). e.g. P`record.type == 'invoice'` | +| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. e.g. P`record.status == 'paid'` | +| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | | **conditionalRequired** | `never` | optional | [REMOVED] `conditionalRequired` was removed in @objectstack/spec 17 — use `requiredWhen`. Rename the key; the value (a CEL predicate) is unchanged. Run `os migrate meta --from 16` to list the mechanical edits for existing sources; apply them by hand. | | **widget** | `string` | optional | Form widget override — names a registered field component (resolved as `field:`) to render this field instead of the `type` default. Degrades to the `type` renderer when unregistered. e.g. "object-ref", "filter-condition", "recipient-picker". | | **hidden** | `boolean` | optional (default: `false`) | Hidden from default UI | @@ -597,9 +597,9 @@ const result = ApiMethod.parse(data); | **dimensions** | `integer` | optional | Vector dimensionality (e.g., 1536 for OpenAI embeddings) | | **trackHistory** | `boolean` | optional | Render this field's value changes as human-readable entries on the record activity timeline (ADR-0052 §5b). Opt-in per field. | | **group** | `string` | optional | Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system") | -| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). Needs a non-blank `source`: an evaluated slot is held to what the engine can run (ADR-0136 D1). A fault at RENDER is fail-open (the field shows) and refuses the SUBMIT, naming the field and this rule (D2/D3). e.g. P`record.type == 'invoice'` | -| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). e.g. P`record.status == 'paid'` | -| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | +| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). e.g. P`record.type == 'invoice'` | +| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. e.g. P`record.status == 'paid'` | +| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | | **conditionalRequired** | `never` | optional | [REMOVED] `conditionalRequired` was removed in @objectstack/spec 17 — use `requiredWhen`. Rename the key; the value (a CEL predicate) is unchanged. Run `os migrate meta --from 16` to list the mechanical edits for existing sources; apply them by hand. | | **widget** | `string` | optional | Form widget override — names a registered field component (resolved as `field:`) to render this field instead of the `type` default. Degrades to the `type` renderer when unregistered. e.g. "object-ref", "filter-condition", "recipient-picker". | | **hidden** | `boolean` | optional (default: `false`) | Hidden from default UI | diff --git a/content/docs/references/shared/expression.mdx b/content/docs/references/shared/expression.mdx index e49dfa992f7..b8c4114d5fb 100644 --- a/content/docs/references/shared/expression.mdx +++ b/content/docs/references/shared/expression.mdx @@ -208,7 +208,7 @@ Type: `string` | Property | Type | Required | Description | | :--- | :--- | :--- | :--- | | **dialect** | `Enum<'cel' \| 'cron' \| 'template'>` | ✅ | | -| **source** | `string` | ✅ | | +| **source** | `string` | optional | | | **ast** | `any` | optional | | | **meta** | `{ rationale?: string; generatedBy?: string }` | optional | | @@ -234,7 +234,7 @@ Type: `string` | Property | Type | Required | Description | | :--- | :--- | :--- | :--- | | **dialect** | `Enum<'cel' \| 'cron' \| 'template'>` | ✅ | | -| **source** | `string` | ✅ | | +| **source** | `string` | optional | | | **ast** | `any` | optional | | | **meta** | `{ rationale?: string; generatedBy?: string }` | optional | | diff --git a/content/docs/references/system/migration.mdx b/content/docs/references/system/migration.mdx index d4317c820da..b77887d2689 100644 --- a/content/docs/references/system/migration.mdx +++ b/content/docs/references/system/migration.mdx @@ -102,9 +102,9 @@ Add a new field to an existing object | **dimensions** | `integer` | optional | Vector dimensionality (e.g., 1536 for OpenAI embeddings) | | **trackHistory** | `boolean` | optional | Render this field's value changes as human-readable entries on the record activity timeline (ADR-0052 §5b). Opt-in per field. | | **group** | `string` | optional | Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system") | -| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). Needs a non-blank `source`: an evaluated slot is held to what the engine can run (ADR-0136 D1). A fault at RENDER is fail-open (the field shows) and refuses the SUBMIT, naming the field and this rule (D2/D3). e.g. P`record.type == 'invoice'` | -| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). e.g. P`record.status == 'paid'` | -| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | +| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). e.g. P`record.type == 'invoice'` | +| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. e.g. P`record.status == 'paid'` | +| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | | **conditionalRequired** | `never` | optional | [REMOVED] `conditionalRequired` was removed in @objectstack/spec 17 — use `requiredWhen`. Rename the key; the value (a CEL predicate) is unchanged. Run `os migrate meta --from 16` to list the mechanical edits for existing sources; apply them by hand. | | **widget** | `string` | optional | Form widget override — names a registered field component (resolved as `field:`) to render this field instead of the `type` default. Degrades to the `type` renderer when unregistered. e.g. "object-ref", "filter-condition", "recipient-picker". | | **hidden** | `boolean` | optional (default: `false`) | Hidden from default UI | @@ -522,9 +522,9 @@ Add a new field to an existing object | **dimensions** | `integer` | optional | Vector dimensionality (e.g., 1536 for OpenAI embeddings) | | **trackHistory** | `boolean` | optional | Render this field's value changes as human-readable entries on the record activity timeline (ADR-0052 §5b). Opt-in per field. | | **group** | `string` | optional | Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system") | -| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). Needs a non-blank `source`: an evaluated slot is held to what the engine can run (ADR-0136 D1). A fault at RENDER is fail-open (the field shows) and refuses the SUBMIT, naming the field and this rule (D2/D3). e.g. P`record.type == 'invoice'` | -| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). e.g. P`record.status == 'paid'` | -| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | +| **visibleWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is shown only when TRUE (else hidden). e.g. P`record.type == 'invoice'` | +| **readonlyWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is read-only when TRUE. e.g. P`record.status == 'paid'` | +| **requiredWhen** | `string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }` | optional | Predicate (CEL) — field is required when TRUE. A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17. | | **conditionalRequired** | `never` | optional | [REMOVED] `conditionalRequired` was removed in @objectstack/spec 17 — use `requiredWhen`. Rename the key; the value (a CEL predicate) is unchanged. Run `os migrate meta --from 16` to list the mechanical edits for existing sources; apply them by hand. | | **widget** | `string` | optional | Form widget override — names a registered field component (resolved as `field:`) to render this field instead of the `type` default. Degrades to the `type` renderer when unregistered. e.g. "object-ref", "filter-condition", "recipient-picker". | | **hidden** | `boolean` | optional (default: `false`) | Hidden from default UI | diff --git a/packages/spec/api-surface-declarations/api.txt b/packages/spec/api-surface-declarations/api.txt index a1bbb770f88..2ab4fe51142 100644 --- a/packages/spec/api-surface-declarations/api.txt +++ b/packages/spec/api-surface-declarations/api.txt @@ -17447,7 +17447,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -19669,7 +19669,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19677,7 +19677,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19686,7 +19686,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19694,7 +19694,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19703,7 +19703,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19711,7 +19711,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20823,7 +20823,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20831,7 +20831,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20840,7 +20840,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20848,7 +20848,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20857,7 +20857,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20865,7 +20865,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -21978,7 +21978,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -21986,7 +21986,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -21995,7 +21995,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -22003,7 +22003,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -22012,7 +22012,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -22020,7 +22020,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -23132,7 +23132,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -23140,7 +23140,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -23149,7 +23149,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -23157,7 +23157,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -23166,7 +23166,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -23174,7 +23174,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -24640,7 +24640,7 @@ declare const ObjectDefinitionResponseSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; diff --git a/packages/spec/api-surface-declarations/data.txt b/packages/spec/api-surface-declarations/data.txt index ef45a9a28c3..a034ec0d680 100644 --- a/packages/spec/api-surface-declarations/data.txt +++ b/packages/spec/api-surface-declarations/data.txt @@ -6479,7 +6479,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6488,7 +6488,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6536,7 +6536,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6669,7 +6669,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6678,7 +6678,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6726,7 +6726,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6859,7 +6859,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6868,7 +6868,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6916,7 +6916,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7049,7 +7049,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7058,7 +7058,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7106,7 +7106,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7239,7 +7239,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7248,7 +7248,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7296,7 +7296,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7429,7 +7429,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7438,7 +7438,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7486,7 +7486,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7619,7 +7619,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7628,7 +7628,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7676,7 +7676,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7809,7 +7809,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7818,7 +7818,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7866,7 +7866,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7999,7 +7999,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8008,7 +8008,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8056,7 +8056,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8189,7 +8189,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8198,7 +8198,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8246,7 +8246,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8379,7 +8379,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8388,7 +8388,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8436,7 +8436,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8569,7 +8569,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8578,7 +8578,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8626,7 +8626,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8759,7 +8759,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8768,7 +8768,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8816,7 +8816,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8949,7 +8949,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8958,7 +8958,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9006,7 +9006,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9139,7 +9139,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9148,7 +9148,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9196,7 +9196,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9329,7 +9329,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9338,7 +9338,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9386,7 +9386,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9519,7 +9519,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9528,7 +9528,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9576,7 +9576,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9732,7 +9732,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9741,7 +9741,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9789,7 +9789,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9922,7 +9922,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9931,7 +9931,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9979,7 +9979,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10112,7 +10112,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10121,7 +10121,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10169,7 +10169,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10302,7 +10302,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10311,7 +10311,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10359,7 +10359,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10498,7 +10498,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10507,7 +10507,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10555,7 +10555,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10706,7 +10706,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10715,7 +10715,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10763,7 +10763,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10911,7 +10911,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10920,7 +10920,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10968,7 +10968,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11116,7 +11116,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11125,7 +11125,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11173,7 +11173,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11306,7 +11306,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11315,7 +11315,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11363,7 +11363,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11496,7 +11496,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11505,7 +11505,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11553,7 +11553,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11686,7 +11686,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11695,7 +11695,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11743,7 +11743,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11876,7 +11876,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11885,7 +11885,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11933,7 +11933,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12066,7 +12066,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12075,7 +12075,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12123,7 +12123,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12256,7 +12256,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12265,7 +12265,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12313,7 +12313,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12446,7 +12446,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12455,7 +12455,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12503,7 +12503,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12636,7 +12636,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12645,7 +12645,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12693,7 +12693,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12826,7 +12826,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12835,7 +12835,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -12883,7 +12883,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -13016,7 +13016,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -13025,7 +13025,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -13073,7 +13073,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -13206,7 +13206,7 @@ declare const Field: { readonly required?: boolean | undefined; readonly visibleWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -13215,7 +13215,7 @@ declare const Field: { } | undefined; readonly readonlyWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -13263,7 +13263,7 @@ declare const Field: { readonly accept?: string[] | undefined; readonly requiredWhen?: string | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -13803,7 +13803,7 @@ declare const FieldSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -15800,7 +15800,7 @@ declare const ObjectExtensionSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -16526,7 +16526,7 @@ declare const ObjectSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -18753,7 +18753,7 @@ declare const ObjectSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18761,7 +18761,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18770,7 +18770,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18778,7 +18778,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18787,7 +18787,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18795,7 +18795,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19908,7 +19908,7 @@ declare const ObjectSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19916,7 +19916,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19925,7 +19925,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19933,7 +19933,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19942,7 +19942,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19950,7 +19950,7 @@ declare const ObjectSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; diff --git a/packages/spec/api-surface-declarations/root.txt b/packages/spec/api-surface-declarations/root.txt index 4cc735ab6dc..3010b6c9ae6 100644 --- a/packages/spec/api-surface-declarations/root.txt +++ b/packages/spec/api-surface-declarations/root.txt @@ -1859,7 +1859,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -4081,7 +4081,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4089,7 +4089,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4098,7 +4098,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4106,7 +4106,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4115,7 +4115,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4123,7 +4123,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5235,7 +5235,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5243,7 +5243,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5252,7 +5252,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5260,7 +5260,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5269,7 +5269,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5277,7 +5277,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6390,7 +6390,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6398,7 +6398,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6407,7 +6407,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6415,7 +6415,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6424,7 +6424,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6432,7 +6432,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7544,7 +7544,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7552,7 +7552,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7561,7 +7561,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7569,7 +7569,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7578,7 +7578,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7586,7 +7586,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9052,7 +9052,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -11401,7 +11401,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -23712,7 +23712,7 @@ declare const ObjectStackSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -25934,7 +25934,7 @@ declare const ObjectStackSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25942,7 +25942,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25951,7 +25951,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25959,7 +25959,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25968,7 +25968,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25976,7 +25976,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27088,7 +27088,7 @@ declare const ObjectStackSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27096,7 +27096,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27105,7 +27105,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27113,7 +27113,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27122,7 +27122,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27130,7 +27130,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28243,7 +28243,7 @@ declare const ObjectStackSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28251,7 +28251,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28260,7 +28260,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28268,7 +28268,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28277,7 +28277,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28285,7 +28285,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29397,7 +29397,7 @@ declare const ObjectStackSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29405,7 +29405,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29414,7 +29414,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29422,7 +29422,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29431,7 +29431,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29439,7 +29439,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -30905,7 +30905,7 @@ declare const ObjectStackSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -33254,7 +33254,7 @@ declare const ObjectStackSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -44830,7 +44830,7 @@ type PredicateInput = z.input; // ── PredicateInputSchema (const) ── declare const PredicateInputSchema: z.ZodUnion; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>; // ── PredicateSchema (const) ── @@ -44857,12 +44857,12 @@ declare const PredicateSchema: z.ZodObject<{ cron: "cron"; template: "template"; }>; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>; // ── RETIRED_DEFS_BY_MAJOR (const) ── diff --git a/packages/spec/api-surface-declarations/shared.txt b/packages/spec/api-surface-declarations/shared.txt index 5d5ca41a314..957c3dc9f43 100644 --- a/packages/spec/api-surface-declarations/shared.txt +++ b/packages/spec/api-surface-declarations/shared.txt @@ -454,7 +454,7 @@ type PredicateInput = z.input; // ── PredicateInputSchema (const) ── declare const PredicateInputSchema: z.ZodUnion; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>; // ── PredicateSchema (const) ── @@ -481,12 +481,12 @@ declare const PredicateSchema: z.ZodObject<{ cron: "cron"; template: "template"; }>; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>; // ── Protection (type) ── diff --git a/packages/spec/api-surface-declarations/system.txt b/packages/spec/api-surface-declarations/system.txt index 345238b67df..4ebfda01bfb 100644 --- a/packages/spec/api-surface-declarations/system.txt +++ b/packages/spec/api-surface-declarations/system.txt @@ -422,7 +422,7 @@ declare const AddFieldOperation: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -1963,7 +1963,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -2599,7 +2599,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -4821,7 +4821,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4829,7 +4829,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4838,7 +4838,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4846,7 +4846,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4855,7 +4855,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4863,7 +4863,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5975,7 +5975,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5983,7 +5983,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5992,7 +5992,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6000,7 +6000,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6009,7 +6009,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6017,7 +6017,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7130,7 +7130,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7138,7 +7138,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7147,7 +7147,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7155,7 +7155,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7164,7 +7164,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7172,7 +7172,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8284,7 +8284,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8292,7 +8292,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8301,7 +8301,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8309,7 +8309,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8318,7 +8318,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8326,7 +8326,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -9792,7 +9792,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -12155,7 +12155,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -12791,7 +12791,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -15013,7 +15013,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -15021,7 +15021,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -15030,7 +15030,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -15038,7 +15038,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -15047,7 +15047,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -15055,7 +15055,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -16167,7 +16167,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -16175,7 +16175,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -16184,7 +16184,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -16192,7 +16192,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -16201,7 +16201,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -16209,7 +16209,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -17322,7 +17322,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -17330,7 +17330,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -17339,7 +17339,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -17347,7 +17347,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -17356,7 +17356,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -17364,7 +17364,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18476,7 +18476,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18484,7 +18484,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18493,7 +18493,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18501,7 +18501,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18510,7 +18510,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -18518,7 +18518,7 @@ declare const ChangeSetSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -19984,7 +19984,7 @@ declare const ChangeSetSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -22946,7 +22946,7 @@ declare const CreateObjectOperation: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -25168,7 +25168,7 @@ declare const CreateObjectOperation: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25176,7 +25176,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25185,7 +25185,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25193,7 +25193,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25202,7 +25202,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25210,7 +25210,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26322,7 +26322,7 @@ declare const CreateObjectOperation: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26330,7 +26330,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26339,7 +26339,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26347,7 +26347,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26356,7 +26356,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26364,7 +26364,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27477,7 +27477,7 @@ declare const CreateObjectOperation: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27485,7 +27485,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27494,7 +27494,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27502,7 +27502,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27511,7 +27511,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27519,7 +27519,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28631,7 +28631,7 @@ declare const CreateObjectOperation: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28639,7 +28639,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28648,7 +28648,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28656,7 +28656,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28665,7 +28665,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28673,7 +28673,7 @@ declare const CreateObjectOperation: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -30139,7 +30139,7 @@ declare const CreateObjectOperation: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -33872,7 +33872,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -36094,7 +36094,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -36102,7 +36102,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -36111,7 +36111,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -36119,7 +36119,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -36128,7 +36128,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -36136,7 +36136,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -37248,7 +37248,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -37256,7 +37256,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -37265,7 +37265,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -37273,7 +37273,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -37282,7 +37282,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -37290,7 +37290,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -38403,7 +38403,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -38411,7 +38411,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -38420,7 +38420,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -38428,7 +38428,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -38437,7 +38437,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -38445,7 +38445,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -39557,7 +39557,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -39565,7 +39565,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -39574,7 +39574,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -39582,7 +39582,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -39591,7 +39591,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -39599,7 +39599,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -41065,7 +41065,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -43414,7 +43414,7 @@ declare const EnvironmentArtifactSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -57524,7 +57524,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -58160,7 +58160,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -60382,7 +60382,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -60390,7 +60390,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -60399,7 +60399,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -60407,7 +60407,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -60416,7 +60416,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -60424,7 +60424,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -61536,7 +61536,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -61544,7 +61544,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -61553,7 +61553,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -61561,7 +61561,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -61570,7 +61570,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -61578,7 +61578,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -62691,7 +62691,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -62699,7 +62699,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -62708,7 +62708,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -62716,7 +62716,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -62725,7 +62725,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -62733,7 +62733,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -63845,7 +63845,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -63853,7 +63853,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -63862,7 +63862,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -63870,7 +63870,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -63879,7 +63879,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -63887,7 +63887,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source: string; + source?: string | undefined; ast?: unknown; meta?: { rationale?: string | undefined; @@ -65353,7 +65353,7 @@ declare const MigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; diff --git a/packages/spec/api-surface-declarations/ui.txt b/packages/spec/api-surface-declarations/ui.txt index 86dca289d0f..6046c1c8b74 100644 --- a/packages/spec/api-surface-declarations/ui.txt +++ b/packages/spec/api-surface-declarations/ui.txt @@ -7646,7 +7646,7 @@ declare const FieldWidgetPropsSchema: z.ZodObject<{ group: z.ZodOptional; visibleWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; + source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; - source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; diff --git a/packages/spec/src/data/field-rule-predicate-evaluated.test.ts b/packages/spec/src/data/field-rule-predicate-evaluated.test.ts deleted file mode 100644 index 2f76fa60f6d..00000000000 --- a/packages/spec/src/data/field-rule-predicate-evaluated.test.ts +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. - -/** - * The `FieldSchema` field-rule triad is EVALUATED (#17778, ADR-0136 D1) — all - * three of `visibleWhen` / `readonlyWhen` / `requiredWhen` compose - * `PredicateInputSchema`, which is now the evaluated rule, so an envelope the - * engine cannot evaluate is refused at authoring instead of silently doing - * nothing at evaluation time. - * - * Before this the triad was `ExpressionInputSchema` — the persistence contract, - * `source` OR `ast` — and all three slots resolved both refused spellings to a - * NO-OP, each by its own mechanism (measured at each end on `03b7b8187`): - * `visibleWhen` is never evaluated server-side at the field level at all - * (`rule-validator.ts`'s `ConditionalFieldDef` has no such member); - * `isReadonlyWhenLocked` returns LOCKED only for an unbound-ROOT fault and - * logs `change allowed through` + returns `false` for every other fault, which - * is the arm an unevaluable envelope takes; `requiredWhen` logs and SKIPS the - * check. So one unauthored predicate made a form show more, lock less and - * demand less at once, with nothing saying the rule had not run. - * - * Reproduction pins, one per spelling per slot, each asserting the issue's - * `code`, `path` and message — never `success === false` alone, which an - * unrelated refusal would satisfy just as well. Two preservation controls - * carry the other half: the persistence contract still ACCEPTS both refused - * shapes (it was deliberately not narrowed), and a real predicate parses to - * byte-identically what it parsed to before. - */ - -import { describe, expect, it } from 'vitest'; - -import { - EVALUATED_EXPRESSION_SOURCE_REQUIRED, - ExpressionInputSchema, - ExpressionSchema, -} from '../shared/expression.zod.js'; -import { FieldSchema } from './field.zod.js'; - -const AST_ONLY = { dialect: 'cel', ast: { kind: 'const', value: true } }; -const BLANK_SOURCE = { dialect: 'cel', source: ' ' }; -const BLANK_BARE = ' '; -const GOOD = { dialect: 'cel', source: "record.status == 'paid'" }; - -const FIELD = { name: 'amount', label: 'Amount', type: 'currency' } as const; - -const SLOTS = ['visibleWhen', 'readonlyWhen', 'requiredWhen'] as const; - -function issuesOf(slot: string, value: unknown) { - const result = FieldSchema.safeParse({ ...FIELD, [slot]: value }); - return result.success - ? [] - : result.error.issues.map((i) => ({ - code: i.code, - path: i.path.map(String).join('.'), - message: i.message, - })); -} - -describe('FieldSchema field-rule triad — an evaluated slot requires a non-blank `source` (#17778)', () => { - for (const slot of SLOTS) { - describe(`\`${slot}\``, () => { - it('REFUSES an `ast`-only envelope with the published sentence at the slot', () => { - // Both arms of the input union abort on this shape (the envelope arm's - // missing `source` is an aborting `invalid_type`), so it surfaces as - // the union's own issue at the SLOT, worded by the union's error map. - expect(issuesOf(slot, AST_ONLY)).toEqual([ - { code: 'invalid_union', path: slot, message: EVALUATED_EXPRESSION_SOURCE_REQUIRED }, - ]); - }); - - it('REFUSES a blank `source` INSIDE an envelope, at `source`', () => { - // The one shape the envelope arm refuses WITHOUT aborting (a `custom` - // refine), so it surfaces from the arm itself, one level deeper. - expect(issuesOf(slot, BLANK_SOURCE)).toEqual([ - { - code: 'custom', - path: `${slot}.source`, - message: EVALUATED_EXPRESSION_SOURCE_REQUIRED, - }, - ]); - }); - - it('REFUSES a blank bare-string shorthand at the slot', () => { - expect(issuesOf(slot, BLANK_BARE)).toEqual([ - { code: 'invalid_union', path: slot, message: EVALUATED_EXPRESSION_SOURCE_REQUIRED }, - ]); - }); - - it('PRESERVES a real predicate — parses, and to the same envelope as before', () => { - const result = FieldSchema.safeParse({ ...FIELD, [slot]: GOOD }); - expect(result.success).toBe(true); - expect((result as { success: true; data: Record }).data[slot]).toEqual(GOOD); - }); - - it('PRESERVES the bare-string shorthand, normalized to a `cel` envelope', () => { - const result = FieldSchema.safeParse({ ...FIELD, [slot]: "record.status == 'paid'" }); - expect(result.success).toBe(true); - expect((result as { success: true; data: Record }).data[slot]).toEqual(GOOD); - }); - - it('PRESERVES an `ast` BESIDE a string `source`', () => { - expect(FieldSchema.safeParse({ ...FIELD, [slot]: { ...GOOD, ast: { kind: 'const' } } }).success) - .toBe(true); - }); - - it('PRESERVES absence — "no rule" is not a malformed rule', () => { - expect(FieldSchema.safeParse(FIELD).success).toBe(true); - }); - }); - } - - it('CONTROL: the persistence contract was NOT narrowed and still accepts both shapes', () => { - // If this control ever goes red, the narrowing has leaked out of the - // evaluated slots and into the schema that only PERSISTS an envelope — - // which ADR-0136 D1 explicitly declines to do. - expect(ExpressionSchema.safeParse(AST_ONLY).success).toBe(true); - expect(ExpressionInputSchema.safeParse(AST_ONLY).success).toBe(true); - expect(ExpressionSchema.safeParse(BLANK_SOURCE).success).toBe(true); - expect(ExpressionInputSchema.safeParse(BLANK_SOURCE).success).toBe(true); - }); - - it('CONTROL: the per-OPTION `visibleWhen` is OUT of scope and still accepts an `ast`-only envelope', () => { - // ADR-0136's scope boundary: the option-level predicate, the inline-column - // pair and every view/page/action gate still compose - // `ExpressionInputSchema`. This pin is what makes that boundary a measured - // fact rather than a claim in prose — when the gate slots are converted, - // this expectation is the one that must be updated deliberately. - const result = FieldSchema.safeParse({ - name: 'tier', - label: 'Tier', - type: 'select', - options: [{ label: 'Gold', value: 'gold', visibleWhen: AST_ONLY }], - }); - expect(result.success).toBe(true); - }); -}); diff --git a/packages/spec/src/data/field.zod.ts b/packages/spec/src/data/field.zod.ts index 8b876b1003b..ab7366044d0 100644 --- a/packages/spec/src/data/field.zod.ts +++ b/packages/spec/src/data/field.zod.ts @@ -11,7 +11,7 @@ import type { KeySetGuidance } from '../shared/suggestions.zod'; import { SELECT_OPTION_EDITABILITY_GUIDANCE } from '../shared/editability-boundary'; import { MetadataProtectionFields } from '../kernel/metadata-protection.zod'; import { SystemIdentifierSchema } from '../shared/identifiers.zod'; -import { ExpressionInputSchema, PredicateInputSchema } from '../shared/expression.zod'; +import { ExpressionInputSchema } from '../shared/expression.zod'; import { FilterConditionSchema } from './filter.zod'; import { FIELD_KEY_GUIDANCE } from './authoring-key-lint'; import { DEFAULT_AUTONUMBER_FORMAT } from './autonumber-format'; @@ -1639,25 +1639,10 @@ export const FieldSchema = lazySchema(() => { * state live as the record changes (UX), and the server enforces * `requiredWhen` and ignores writes to a field whose `readonlyWhen` is TRUE * (so the rule can't be bypassed). e.g. `P\`record.status == 'paid'\``. - * - * These three are THE field-rule triad, and they are EVALUATED slots: they - * compose `PredicateInputSchema` (ADR-0136 D1), not the persistence - * `ExpressionInputSchema`, so an envelope carrying only an `ast` and a - * `source` that is blank after trimming are refused HERE, at authoring, - * instead of faulting at evaluation. A blank predicate is the triad's third - * state — not "no rule" and not "engine fault" — and refusing it at - * authoring is what keeps those two apart at runtime. - * - * What happens when one of these DOES fault (a stored rule, a column renamed - * out from under it) is contract, not renderer choice: the submit is refused - * loudly and names the field and the rule (ADR-0136 D2), while visibility - * stays fail-OPEN at render so a rule that could not run never hides a - * control and writes `null` over a column the user never saw (D3). The two - * directions are a pair; neither is safe alone. */ - visibleWhen: PredicateInputSchema.optional().describe("Predicate (CEL) — field is shown only when TRUE (else hidden). Needs a non-blank `source`: an evaluated slot is held to what the engine can run (ADR-0136 D1). A fault at RENDER is fail-open (the field shows) and refuses the SUBMIT, naming the field and this rule (D2/D3). e.g. P`record.type == 'invoice'`"), - readonlyWhen: PredicateInputSchema.optional().describe("Predicate (CEL) — field is read-only when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). e.g. P`record.status == 'paid'`"), - requiredWhen: PredicateInputSchema.optional().describe("Predicate (CEL) — field is required when TRUE. Needs a non-blank `source` (ADR-0136 D1); a fault refuses the submit and names the field and this rule (D2). A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17."), + visibleWhen: ExpressionInputSchema.optional().describe("Predicate (CEL) — field is shown only when TRUE (else hidden). e.g. P`record.type == 'invoice'`"), + readonlyWhen: ExpressionInputSchema.optional().describe("Predicate (CEL) — field is read-only when TRUE. e.g. P`record.status == 'paid'`"), + requiredWhen: ExpressionInputSchema.optional().describe("Predicate (CEL) — field is required when TRUE. A TRANSITION GATE, not an invariant: the write is refused only when the merged record violates the requirement AND the pre-write record complied — so the write that flips the predicate TRUE, an INSERT born inside the gate, and a write that clears the cell are all refused, while a row that was already missing the value keeps passing unrelated edits and state moves that stay inside the gate (ADR-0113 non-regression: adding the rule to a deployed object never bricks existing rows). Need an invariant every write must satisfy instead ('X may never exceed Y') — declare a `validations[]` `script` rule, which re-checks the merged record with no exemption. Enforced by `evaluateValidationRules`. The only slot; the `conditionalRequired` alias was removed in protocol 17."), /** * [REMOVED in protocol 17 — #3855] The deprecated alias of `requiredWhen`. diff --git a/packages/spec/src/migrations/entries/semantic/18.field-rule-predicate-evaluated-slot-source-required.ts b/packages/spec/src/migrations/entries/semantic/18.field-rule-predicate-evaluated-slot-source-required.ts deleted file mode 100644 index 0e4c0e7f6ab..00000000000 --- a/packages/spec/src/migrations/entries/semantic/18.field-rule-predicate-evaluated-slot-source-required.ts +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. - -import type { SemanticMigration } from '../../types.js'; - -// No backticks in `surface` — build-upgrade-guide.ts renders it inside a code -// span already, and a nested backtick would close it. -export const entry: SemanticMigration = { - id: 'field-rule-predicate-evaluated-slot-source-required', - surface: - 'a field-rule predicate, all three slots of the triad on FieldSchema — visibleWhen, ' - + 'readonlyWhen and requiredWhen — and with them the PredicateSchema / PredicateInputSchema ' - + 'public exports every other declaration site composes, authored either as an expression ' - + 'envelope carrying only ast ({ dialect: \'cel\', ast: … } with no source), or with a source ' - + 'that is blank after trimming, through the envelope key ' - + '({ dialect: \'cel\', source: \' \' }) or the bare-string shorthand for it ' - + '(visibleWhen: \' \'). Reachable wherever an object is authored or stored: ' - + 'defineStack({ objects }) sources, an exported stack passed to objectstack validate, a ' - + 'POST /objects body, and an object row already sitting in sys_metadata', - replacement: - 'a non-blank `source` — `{ dialect: \'cel\', source: \'record.status == \\\'paid\\\'\' }`, or the ' - + 'bare string, or the `P` tagged template the examples use — if the rule was meant to gate; ' - + 'or REMOVE the key entirely if the field was meant to carry no rule. ⚠️ Unlike the ' - + 'flow-edge entry this one otherwise mirrors, removal here is BEHAVIOUR-PRESERVING and is a ' - + 'safe default: all three slots resolve BOTH refused spellings to a no-op today (measured, ' - + 'see `reason`), so deleting the key preserves exactly what the runtime already did. What ' - + 'removal does NOT preserve is the author\'s INTENT — the rule was written to gate ' - + 'something, and a removal records that it never did. Authoring the `source` is the ' - + 'repair; removal is the honest way to say the rule was abandoned. An `ast` BESIDE a string ' - + '`source` is untouched and stays admitted everywhere', - reason: - 'Card #17778, on the maintainer ruling for objectui#8069 (decision batch #119 item 3, ' - + '2026-09-12: 「同意」 to A, Q2 yes, Q3 yes) and the standing ruling ' - + '「我们的项目以objectstack 协议为准…协议不正确的应该先修改协议。」. ADR-0136 D1: a predicate is an ' - + 'EVALUATED slot by definition, so `PredicateSchema` / `PredicateInputSchema` now compose ' - + '`EvaluatedExpressionSchema` / `EvaluatedExpressionInputSchema` instead of the PERSISTENCE ' - + 'contract `ExpressionSchema` / `ExpressionInputSchema`, and the field-rule triad binds ' - + 'them. The CEL engine evaluates `source` alone (`cel-engine.ts` `evaluate`: "AST-only ' - + 'evaluation not yet supported; persist `source`"), so both refused spellings parsed, ' - + 'registered, passed `objectstack validate`, and then produced a rule that silently did ' - + 'nothing. ⚠️ The three no-op directions are NOT the same mechanism, and each was measured ' - + 'at its own end rather than inferred from the others: `visibleWhen` is never evaluated ' - + 'server-side at the FIELD level at all (`rule-validator.ts`\'s `ConditionalFieldDef` has no ' - + 'such member) and the renderer falls back to VISIBLE where no host publishes a predicate ' - + 'scope; `readonlyWhen` reaches `isReadonlyWhenLocked`, whose unbound-ROOT arm returns ' - + 'LOCKED but whose every-other-fault arm logs "change allowed through" and returns false, ' - + 'and an unevaluable envelope takes that second arm — the declared lock is silently waived; ' - + '`requiredWhen` logs and SKIPS the check. So one misspelled or unauthored predicate ' - + 'produced a form that showed more, locked less and demanded less at once, with no state ' - + 'that said "this rule did not run" — which is the composite objectui#8069 measured and ' - + 'this entry\'s ruling closes. ⚠️ No D2 conversion is possible, and that is why this needs ' - + 'a D3 entry rather than none: an `ast`-only envelope carries no `source` to derive one ' - + 'from (lowering an AST to surface syntax is the compiler direction the platform does not ' - + 'run), and a blank `source` names no predicate to reconstruct. Choosing between "author ' - + 'the rule" and "drop the rule" is an intent question only the author can answer, which is ' - + 'what this entry delegates. ⚠️ Scope of the RUNTIME half, stated so it is not read wider ' - + 'than it is: ADR-0136 D2 (a faulting field-rule predicate refuses the SUBMIT, naming the ' - + 'field and the rule) and D3 (visibility stays fail-OPEN at RENDER) are consequences ' - + 'CONSUMERS deliver — `packages/spec` carries no business logic — and the renderer half ' - + 'lands in objectui#8069. This entry is the AUTHORING refusal only. ⚠️ And one ' - + 'stored-row consequence is deliberately left UNMEASURED rather than guessed: ' - + '`applyConversionsToStoredItem` IS applied to `object` (only `flow` is skipped, ' - + '`spec/src/conversions/stored.ts` and the same skip in ' - + '`metadata/src/loaders/database-loader.ts` `rowToData`), but no conversion can repair ' - + 'either refused spelling, so a stored row carrying one now meets a strict schema at ' - + 'whichever seam parses it; which seam that is, and whether it degrades to a warn or ' - + 'refuses the object, was NOT measured on this card and is named here as the open edge ' - + 'rather than asserted. A repo-wide census over examples/, packages/, content/ and skills/ ' - + 'at 03b7b8187 found ZERO field-rule predicates of either spelling against two live lit ' - + 'controls (non-blank tagged-template predicates: 15 files; envelope-form predicates: 14 ' - + 'files), so there is nothing in THIS repository to rewrite — a repo reading, which is why ' - + 'the notification is registered here rather than skipped. ADR-0136, ADR-0087, ADR-0089, ' - + 'ADR-0058, ADR-0124.', - acceptanceCriteria: - 'Grep every authored field-rule predicate — all three of `visibleWhen`, `readonlyWhen` and ' - + '`requiredWhen` on a FIELD (not the per-OPTION `visibleWhen`, not the inline-column pair, ' - + 'and not a view/page/action gate: those slots still compose `ExpressionInputSchema` and ' - + 'are unaffected by this entry) — in `defineStack({ objects })` sources, exported stacks ' - + 'and `POST /objects` bodies, and every object row in `sys_metadata`, for an envelope with ' - + 'no `source` key and for a `source` (or bare string) that is empty after trimming. For ' - + 'each hit decide, per the `replacement` note, whether the rule was meant to gate (author ' - + 'the `source`) or was abandoned (remove the key) — removal is behaviour-preserving here, ' - + 'so it is a safe default, but it records that the rule never ran. Two proofs. (1) For a ' - + 'stack authored in config files, `objectstack validate` is clean: it locates each offender ' - + 'with the `EVALUATED_EXPRESSION_SOURCE_REQUIRED` sentence at ' - + '`objects.N.fields.N.visibleWhen` (and the two siblings) — a blank `source` inside an ' - + 'envelope surfaces as one issue at `source`, while an `ast`-only envelope and a blank ' - + 'bare string abort both arms of the input union and surface as one `invalid_union` at the ' - + 'SLOT, carrying that same sentence. There is no CLI verb that lowers a stored row back ' - + 'into a config file, so this proof does not reach an object that exists only in ' - + '`sys_metadata`. (2) For stored rows, boot the stack and confirm each object still loads ' - + 'and its form still renders: a row carrying either spelling no longer parses, and per the ' - + '`reason`\'s last note the seam that reports it was not measured on this card — so read ' - + 'the boot log for the object by name rather than expecting a specific message, and treat ' - + 'a missing object as this entry\'s signal. An object whose field rules all carry a ' - + 'non-blank `source` parses byte-identically to before.', -}; diff --git a/packages/spec/src/migrations/registry.ts b/packages/spec/src/migrations/registry.ts index 0e9ae24909e..b2d7a0d58d1 100644 --- a/packages/spec/src/migrations/registry.ts +++ b/packages/spec/src/migrations/registry.ts @@ -8188,98 +8188,6 @@ const step18: MigrationStep = { + 'already multi-valued by `isMultiValueField` need no change and must read back ' + 'byte-identically.', }, - // No backticks in `surface` — build-upgrade-guide.ts renders it inside a code - // span already, and a nested backtick would close it. - { - id: 'field-rule-predicate-evaluated-slot-source-required', - surface: - 'a field-rule predicate, all three slots of the triad on FieldSchema — visibleWhen, ' - + 'readonlyWhen and requiredWhen — and with them the PredicateSchema / PredicateInputSchema ' - + 'public exports every other declaration site composes, authored either as an expression ' - + 'envelope carrying only ast ({ dialect: \'cel\', ast: … } with no source), or with a source ' - + 'that is blank after trimming, through the envelope key ' - + '({ dialect: \'cel\', source: \' \' }) or the bare-string shorthand for it ' - + '(visibleWhen: \' \'). Reachable wherever an object is authored or stored: ' - + 'defineStack({ objects }) sources, an exported stack passed to objectstack validate, a ' - + 'POST /objects body, and an object row already sitting in sys_metadata', - replacement: - 'a non-blank `source` — `{ dialect: \'cel\', source: \'record.status == \\\'paid\\\'\' }`, or the ' - + 'bare string, or the `P` tagged template the examples use — if the rule was meant to gate; ' - + 'or REMOVE the key entirely if the field was meant to carry no rule. ⚠️ Unlike the ' - + 'flow-edge entry this one otherwise mirrors, removal here is BEHAVIOUR-PRESERVING and is a ' - + 'safe default: all three slots resolve BOTH refused spellings to a no-op today (measured, ' - + 'see `reason`), so deleting the key preserves exactly what the runtime already did. What ' - + 'removal does NOT preserve is the author\'s INTENT — the rule was written to gate ' - + 'something, and a removal records that it never did. Authoring the `source` is the ' - + 'repair; removal is the honest way to say the rule was abandoned. An `ast` BESIDE a string ' - + '`source` is untouched and stays admitted everywhere', - reason: - 'Card #17778, on the maintainer ruling for objectui#8069 (decision batch #119 item 3, ' - + '2026-09-12: 「同意」 to A, Q2 yes, Q3 yes) and the standing ruling ' - + '「我们的项目以objectstack 协议为准…协议不正确的应该先修改协议。」. ADR-0136 D1: a predicate is an ' - + 'EVALUATED slot by definition, so `PredicateSchema` / `PredicateInputSchema` now compose ' - + '`EvaluatedExpressionSchema` / `EvaluatedExpressionInputSchema` instead of the PERSISTENCE ' - + 'contract `ExpressionSchema` / `ExpressionInputSchema`, and the field-rule triad binds ' - + 'them. The CEL engine evaluates `source` alone (`cel-engine.ts` `evaluate`: "AST-only ' - + 'evaluation not yet supported; persist `source`"), so both refused spellings parsed, ' - + 'registered, passed `objectstack validate`, and then produced a rule that silently did ' - + 'nothing. ⚠️ The three no-op directions are NOT the same mechanism, and each was measured ' - + 'at its own end rather than inferred from the others: `visibleWhen` is never evaluated ' - + 'server-side at the FIELD level at all (`rule-validator.ts`\'s `ConditionalFieldDef` has no ' - + 'such member) and the renderer falls back to VISIBLE where no host publishes a predicate ' - + 'scope; `readonlyWhen` reaches `isReadonlyWhenLocked`, whose unbound-ROOT arm returns ' - + 'LOCKED but whose every-other-fault arm logs "change allowed through" and returns false, ' - + 'and an unevaluable envelope takes that second arm — the declared lock is silently waived; ' - + '`requiredWhen` logs and SKIPS the check. So one misspelled or unauthored predicate ' - + 'produced a form that showed more, locked less and demanded less at once, with no state ' - + 'that said "this rule did not run" — which is the composite objectui#8069 measured and ' - + 'this entry\'s ruling closes. ⚠️ No D2 conversion is possible, and that is why this needs ' - + 'a D3 entry rather than none: an `ast`-only envelope carries no `source` to derive one ' - + 'from (lowering an AST to surface syntax is the compiler direction the platform does not ' - + 'run), and a blank `source` names no predicate to reconstruct. Choosing between "author ' - + 'the rule" and "drop the rule" is an intent question only the author can answer, which is ' - + 'what this entry delegates. ⚠️ Scope of the RUNTIME half, stated so it is not read wider ' - + 'than it is: ADR-0136 D2 (a faulting field-rule predicate refuses the SUBMIT, naming the ' - + 'field and the rule) and D3 (visibility stays fail-OPEN at RENDER) are consequences ' - + 'CONSUMERS deliver — `packages/spec` carries no business logic — and the renderer half ' - + 'lands in objectui#8069. This entry is the AUTHORING refusal only. ⚠️ And one ' - + 'stored-row consequence is deliberately left UNMEASURED rather than guessed: ' - + '`applyConversionsToStoredItem` IS applied to `object` (only `flow` is skipped, ' - + '`spec/src/conversions/stored.ts` and the same skip in ' - + '`metadata/src/loaders/database-loader.ts` `rowToData`), but no conversion can repair ' - + 'either refused spelling, so a stored row carrying one now meets a strict schema at ' - + 'whichever seam parses it; which seam that is, and whether it degrades to a warn or ' - + 'refuses the object, was NOT measured on this card and is named here as the open edge ' - + 'rather than asserted. A repo-wide census over examples/, packages/, content/ and skills/ ' - + 'at 03b7b8187 found ZERO field-rule predicates of either spelling against two live lit ' - + 'controls (non-blank tagged-template predicates: 15 files; envelope-form predicates: 14 ' - + 'files), so there is nothing in THIS repository to rewrite — a repo reading, which is why ' - + 'the notification is registered here rather than skipped. ADR-0136, ADR-0087, ADR-0089, ' - + 'ADR-0058, ADR-0124.', - acceptanceCriteria: - 'Grep every authored field-rule predicate — all three of `visibleWhen`, `readonlyWhen` and ' - + '`requiredWhen` on a FIELD (not the per-OPTION `visibleWhen`, not the inline-column pair, ' - + 'and not a view/page/action gate: those slots still compose `ExpressionInputSchema` and ' - + 'are unaffected by this entry) — in `defineStack({ objects })` sources, exported stacks ' - + 'and `POST /objects` bodies, and every object row in `sys_metadata`, for an envelope with ' - + 'no `source` key and for a `source` (or bare string) that is empty after trimming. For ' - + 'each hit decide, per the `replacement` note, whether the rule was meant to gate (author ' - + 'the `source`) or was abandoned (remove the key) — removal is behaviour-preserving here, ' - + 'so it is a safe default, but it records that the rule never ran. Two proofs. (1) For a ' - + 'stack authored in config files, `objectstack validate` is clean: it locates each offender ' - + 'with the `EVALUATED_EXPRESSION_SOURCE_REQUIRED` sentence at ' - + '`objects.N.fields.N.visibleWhen` (and the two siblings) — a blank `source` inside an ' - + 'envelope surfaces as one issue at `source`, while an `ast`-only envelope and a blank ' - + 'bare string abort both arms of the input union and surface as one `invalid_union` at the ' - + 'SLOT, carrying that same sentence. There is no CLI verb that lowers a stored row back ' - + 'into a config file, so this proof does not reach an object that exists only in ' - + '`sys_metadata`. (2) For stored rows, boot the stack and confirm each object still loads ' - + 'and its form still renders: a row carrying either spelling no longer parses, and per the ' - + '`reason`\'s last note the seam that reports it was not measured on this card — so read ' - + 'the boot log for the object by name rather than expecting a specific message, and treat ' - + 'a missing object as this entry\'s signal. An object whose field rules all carry a ' - + 'non-blank `source` parses byte-identically to before.', - }, { id: 'field-scale-precision-integer-refused', surface: 'object field `scale` / `precision` declarations (`Field.number` and friends) — ' diff --git a/packages/spec/src/shared/expression.zod.ts b/packages/spec/src/shared/expression.zod.ts index 8c4724c9342..45eb4ac7d12 100644 --- a/packages/spec/src/shared/expression.zod.ts +++ b/packages/spec/src/shared/expression.zod.ts @@ -395,79 +395,24 @@ export type TemplateExpressionInput = z.input; -export const PredicateInputSchema = EvaluatedExpressionInputSchema; +export const PredicateInputSchema = ExpressionInputSchema; export type PredicateInput = z.input; /** * Construct an Expression literal from a CEL source string. Used by DX * shorthand (`cel\`...\``) and by codegen tools. + * + * Returns {@link EvaluatedExpression}, not {@link Expression}: `source` is a + * required parameter here and is always written to the envelope, so the wider + * return type declared a shape this function cannot produce — a `source`-less + * envelope. See {@link cel} for why a helper that over-declares its output is + * a producer-side defect rather than a harmless looseness. */ export function expression( source: string, @@ -516,16 +461,18 @@ function renderTemplate(strings: TemplateStringsArray, values: readonly unknown[ * Tagged template — produces a CEL Expression envelope. * * Returns {@link EvaluatedExpression}, not {@link Expression}: this helper - * ALWAYS sets `source`, so the wider return type was a declaration of - * something the function cannot produce. It was harmless only while no slot - * required `source` — once the field-rule triad did (ADR-0136 D1), a - * ``P`record.status == 'paid'` `` written straight into `visibleWhen` became a - * TS2322, and the recommended authoring form for a predicate stopped - * type-checking in the one place predicates are written. Fixed at the PRODUCER - * (Prime Directive #12) rather than by rewriting the call sites: the return - * type now states what the helper emits. Narrowing a return type removes - * nothing from a caller — `EvaluatedExpression` is assignable to `Expression` - * — so every existing consumer still compiles. + * ALWAYS sets `source` from the rendered template, so the wider return type + * was a declaration of something the function cannot produce. A helper that + * over-declares its output is a producer-side defect (Prime Directive #12) + * even while nothing has yet asked for the narrower shape: every slot that + * composes {@link EvaluatedExpressionInputSchema} — `FlowEdgeSchema.condition` + * today — requires a non-blank `source`, so a ``P`record.status == 'paid'` `` + * assigned straight into one is a TS2322 against a value that satisfies the + * schema at runtime. + * Fixed at the PRODUCER rather than by rewriting call sites: the return type + * now states what the helper emits. Narrowing a return type removes nothing + * from a caller — `EvaluatedExpression` is assignable to `Expression` — so + * every existing consumer still compiles. */ export function cel(strings: TemplateStringsArray, ...values: unknown[]): EvaluatedExpression { return { dialect: 'cel', source: renderTemplate(strings, values) }; diff --git a/scripts/adr-anchors/packages__spec__src__data__field.zod.ts.json b/scripts/adr-anchors/packages__spec__src__data__field.zod.ts.json index 171041ff4eb..36d077697e0 100644 --- a/scripts/adr-anchors/packages__spec__src__data__field.zod.ts.json +++ b/scripts/adr-anchors/packages__spec__src__data__field.zod.ts.json @@ -1,8 +1,7 @@ { "file": "packages/spec/src/data/field.zod.ts", "adrs": [ - "ADR-0120", - "ADR-0136" + "ADR-0120" ], - "invariant": "`UniqueScopeSchema` is the closed scope vocabulary `boolean | 'global' | 'organization'` (ADR-0120 D1). `'organization'` is the explicit synonym of field-level `true` — identical materialization, and `isUniqueDeclared` MUST count it (a word the vocabulary accepts but no driver reads is declarable-but-inert, ADR-0078). `'tenant'` and `'org'` are rejected, never aliased — the parse error names `'organization'` (§Terminology; PD #12: one contract, no dialects). The single-tenant story is D3's NULL-safe COALESCE bucket, NOT the retired 'composite degenerates to single-column' claim #5030 falsified. The field-rule triad (`visibleWhen` / `readonlyWhen` / `requiredWhen`) composes `PredicateInputSchema`, not `ExpressionInputSchema` — ADR-0136 D1 holds an evaluated slot to what the engine can run, so an `ast`-only envelope and a blank `source` are refused at authoring rather than silently no-op'd at evaluation (all three slots resolved both spellings to a no-op before: `visibleWhen` is never evaluated server-side at the field level, `isReadonlyWhenLocked`'s non-unbound-root arm waives the lock, `requiredWhen` logs and skips). ⛔ Do not revert these three to `ExpressionInputSchema`. A fault refuses the SUBMIT naming the field and the rule (D2) while visibility stays fail-OPEN at RENDER (D3) — a pair, neither safe alone. The per-OPTION `visibleWhen` and the inline-column pair deliberately still compose `ExpressionInputSchema` (ADR-0136 scope boundary)." + "invariant": "`UniqueScopeSchema` is the closed scope vocabulary `boolean | 'global' | 'organization'` (ADR-0120 D1). `'organization'` is the explicit synonym of field-level `true` — identical materialization, and `isUniqueDeclared` MUST count it (a word the vocabulary accepts but no driver reads is declarable-but-inert, ADR-0078). `'tenant'` and `'org'` are rejected, never aliased — the parse error names `'organization'` (§Terminology; PD #12: one contract, no dialects). The single-tenant story is D3's NULL-safe COALESCE bucket, NOT the retired 'composite degenerates to single-column' claim #5030 falsified." } diff --git a/scripts/adr-anchors/packages__spec__src__shared__expression.zod.ts.json b/scripts/adr-anchors/packages__spec__src__shared__expression.zod.ts.json deleted file mode 100644 index ca86a4567ca..00000000000 --- a/scripts/adr-anchors/packages__spec__src__shared__expression.zod.ts.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "file": "packages/spec/src/shared/expression.zod.ts", - "adrs": [ - "ADR-0136" - ], - "invariant": "`PredicateSchema` / `PredicateInputSchema` compose the EVALUATED rule (`EvaluatedExpressionSchema` / `EvaluatedExpressionInputSchema`), not the persistence `ExpressionSchema` / `ExpressionInputSchema` — ADR-0136 D1. A predicate exists to be evaluated and the CEL engine reads `source` alone, so an `ast`-only envelope and a `source` blank after trimming are refused at authoring with `EVALUATED_EXPRESSION_SOURCE_REQUIRED`. ⛔ Do not point these aliases back at the persistence contract to admit a stored shape: that is the exact defect ADR-0136 closed, where a predicate parsed, registered, passed `objectstack validate` and then silently no-op'd. `ExpressionSchema` / `ExpressionInputSchema` stay un-narrowed on purpose (persistence, `source` OR `ast`), and an `ast` BESIDE a string `source` stays admitted. The docblock's D2/D3/D4 fault semantics are declared here and delivered by CONSUMERS (no business logic in spec, PD #2); D5 is why no fault direction may be baked into the evaluation helper — fault-to-flag and fault-to-throw both depend on that fallback staying a parameter." -} From a1840d7d6cdc9bd52c4f22d54826875be1a8fcbb Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 18 Sep 2026 12:45:39 +0000 Subject: [PATCH 08/13] docs(adr): renumber to ADR-0137; cite the rulings the record was silent about MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `0136` is claimed by PR #18480's `0136-declared-journeys-as-priority-anchor.md`, added ~42 hours earlier. `scripts/check-adr-anchors.mjs` prescribes the NEW record taking the next free number, and renumbering an already-accepted record was ruled out — before it is referenced is the only cheap moment. `0137` re-verified free: absent from `docs/adr/` on `origin/main` (which tops out at 0135) and claimed by none of the 31 open PRs, scanned through the added-file list of each. The scan lit twice on `0136`, so the zero is a reading. Three corrections the record owed: - **Status**: this record declares and implements nothing. D1's authoring refusal is decision batch #122 item 2's, carried by PR #18638 under one ADR-0087 id; D2–D4 are consumer-delivered in objectui#8069. - **Scope boundary**: the gate-slot conversion is RULED and IN FLIGHT, not "filed as a follow-up" — the dangling sentence is gone. The record's claim that converting them "would bake a direction the ruling did not give" is true only of batch #119, and is now stated as what it is: a statement about which ruling authorizes what, not a reason the conversion should wait. - **The hand enumeration is replaced by a citation of #15811's census**, because the hand list had already rotted: it omitted `system/settings-manifest.zod.ts:424` and `:686`, both `visible: SettingsVisibilityInputSchema`. Measured through `SettingsManifestSchema.safeParse` on the built dist: all six refused spellings (`ast`-only, blank `source`, blank bare string × both slots) are ACCEPTED, while a grammar-violating source is REFUSED with `custom@visible` and `custom@specifiers.0.visible` — so the refinement is live at both slots and narrows neither arm. Claude-Session: https://claude.ai/code/session_019srGWGCBBCBHqcDoRZpQRh Co-authored-by: Claude --- .../0089-unify-visibility-predicate-naming.md | 14 +- ...predicate-fault-semantics-are-contract.md} | 150 ++++++++++++------ 2 files changed, 106 insertions(+), 58 deletions(-) rename docs/adr/{0136-predicate-fault-semantics-are-contract.md => 0137-predicate-fault-semantics-are-contract.md} (61%) diff --git a/docs/adr/0089-unify-visibility-predicate-naming.md b/docs/adr/0089-unify-visibility-predicate-naming.md index d72f9ee9f64..50d9f8802a8 100644 --- a/docs/adr/0089-unify-visibility-predicate-naming.md +++ b/docs/adr/0089-unify-visibility-predicate-naming.md @@ -8,13 +8,13 @@ --- -> **Addendum (2026-09-18, #17778) — what the `*When` family does when it cannot RUN is decided by [ADR-0136](./0136-predicate-fault-semantics-are-contract.md), not here.** -> This record unified the family under one NAME and is unchanged by that one. ADR-0136 D1 holds a -> predicate slot to what the engine can actually run (the `FieldSchema` field-rule triad composes -> `PredicateInputSchema`, so an `ast`-only envelope and a blank `source` are refused at authoring); -> D2 refuses the SUBMIT loudly on a fault, naming the field and the rule; D3 keeps visibility -> fail-OPEN at RENDER. A reader who arrived here asking what a broken `visibleWhen` does should -> read that record. +> **Addendum (2026-09-18, #17778) — what the `*When` family does when it cannot RUN is decided by [ADR-0137](./0137-predicate-fault-semantics-are-contract.md), not here.** +> This record unified the family under one NAME and is unchanged by that one. ADR-0137 D1 holds a +> predicate slot to what the engine can actually run — an `ast`-only envelope and a `source` blank +> after trimming are refused at authoring, which is the field-rule row of the rule decision batch +> #122 item 2 gave across every evaluated slot; D2 refuses the SUBMIT loudly on a fault, naming the +> field and the rule; D3 keeps visibility fail-OPEN at RENDER. A reader who arrived here asking what +> a broken `visibleWhen` does should read that record. --- diff --git a/docs/adr/0136-predicate-fault-semantics-are-contract.md b/docs/adr/0137-predicate-fault-semantics-are-contract.md similarity index 61% rename from docs/adr/0136-predicate-fault-semantics-are-contract.md rename to docs/adr/0137-predicate-fault-semantics-are-contract.md index 4b60d89d5e5..df397839aec 100644 --- a/docs/adr/0136-predicate-fault-semantics-are-contract.md +++ b/docs/adr/0137-predicate-fault-semantics-are-contract.md @@ -1,6 +1,6 @@ -# ADR-0136: A predicate's FAULT semantics are part of the protocol — loud at submit, fail-open at render, and a blank predicate is a declared third state +# ADR-0137: A predicate's FAULT semantics are part of the protocol — loud at submit, fail-open at render, and a blank predicate is a declared third state -**Status**: Accepted (2026-09-18) — **D1 implemented here** (`PredicateSchema` / `PredicateInputSchema` compose the evaluated rule; the `FieldSchema` field-rule triad binds them; ADR-0087 D3 entry `field-rule-predicate-evaluated-slot-source-required`). **D2 / D3 / D4 are declared here and delivered by consumers** — the renderer and submit path in objectui#8069, which is `pm:blocked` on this record. D4's spec-side authoring refusal for the action / visibility GATE slots is deliberately **not** in this record's PR; see [Scope boundary](#scope-boundary-what-this-record-does-not-land). +**Status**: Accepted (2026-09-18) — **this record declares; it implements nothing.** D1's authoring refusal is ruled by decision batch #122 item 2 (card #15811, [`5644350409`](https://github.com/objectstack-ai/objectstack/issues/15811#issuecomment-5644350409), 2026-09-12) and lands in PR #18638, which owns the accept-set narrowing across every evaluated slot under one ADR-0087 id — this record's own PR carries **no** schema change, by decision batch #160 item 1 (2026-09-18: 「同意」 to **A**). **D2 / D3 / D4 are declared here and delivered by consumers** — the renderer and submit path in objectui#8069, which is `pm:blocked` on this record. See [Scope boundary](#scope-boundary-what-this-record-does-not-land) for what this record does not land and who lands it. **Deciders**: ObjectStack Protocol Architects (maintainer ruling on objectui#8069, decision batch #119 item 3, 2026-09-12: 「同意」 to **A**, with **Q2 yes** and **Q3 yes**), filed as objectstack#17778 by the director seat **Builds on**: [ADR-0058](./0058-expression-and-predicate-surface.md) (the expression & predicate surface — its D5 predicate failure tiers are the table this record writes the field-rule row of), [ADR-0089](./0089-unify-visibility-predicate-naming.md) (unified the `*When` family under one NAME; this record decides what that family does when it cannot RUN), [ADR-0087](./0087-metadata-protocol-upgrade-contract.md) (conversion-over-notification — D1 lands as a D3 semantic entry because no D2 conversion exists), [ADR-0124](./0124-server-enforces-client-is-courtesy.md) (D1 server-enforces — why a render-side direction is never the whole answer), [ADR-0078](./0078-no-silently-inert-metadata.md) (no silently-inert metadata — a predicate that cannot run is the purest case), [ADR-0049](./0049-no-unenforced-security-properties.md) (enforce-or-remove), [ADR-0032](./0032-unified-expression-layer.md) (the CEL layer these predicates are written in) **Consumers**: `@objectstack/spec` (`shared/expression.zod.ts` — the predicate contract; `data/field.zod.ts` — the field-rule triad), `@objectstack/objectql` (`validation/rule-validator.ts` — the server-side enforcer whose three fault directions this record measured), `@objectstack/lint` (`validate-expressions.ts`, `validate-visibility-predicates.ts` — the author-time reporters), and the ObjectUI form renderer + submit path (objectui#8069) @@ -15,13 +15,17 @@ named two. The missing state is **"authored, but the engine cannot run it"** — because nothing named it, every layer resolved it to its own local fallback and none of those fallbacks was the author's. -| state | before | after this record | +| state | before | after this decision | |---|---|---| | absent | no rule | no rule (unchanged) | | authored and evaluable | the author's verdict | the author's verdict (unchanged) | | **authored, blank** | parsed, then silently no-op'd | **refused at authoring** (D1) | | **authored, not evaluable** | each layer's own fallback, silently | **refused at submit, loudly** (D2) | +"After this decision", not "after this PR": every row of the right-hand column is +carried by someone else — D1 by PR #18638 under decision batch #122 item 2, D2–D4 +by the consumers in objectui#8069. This record is the contract, not the landing. + **Decision:** a predicate's fault semantics are **protocol**, not renderer choice. A predicate slot accepts only what the engine can actually run (D1). A fault at **submit** refuses the write and names the field and the rule (D2). A fault at @@ -68,39 +72,64 @@ migration prescription: removing such a key is behaviour-preserving, which makes it a safe default — and a dishonest one to reach for without noticing that it records a rule that never ran. -### The narrowing mechanism already existed - -This record introduces no new validation machinery. `EvaluatedExpressionSchema` -and `EvaluatedExpressionInputSchema` already spell "an evaluated slot is held to -what the engine can actually run", already publish one sentence for it -(`EVALUATED_EXPRESSION_SOURCE_REQUIRED`), and `FlowEdgeSchema.condition` already -composes them for exactly this defect one family over. What was missing is that -`PredicateSchema` / `PredicateInputSchema` — the aliases whose entire purpose is -to mark a slot as a predicate — composed the **persistence** contract, whose rule -is "`source` OR `ast`". The alias that means "this will be evaluated" pointed at -the schema that does not require evaluability. +### The narrowing mechanism already existed, and it already has an owner + +This record introduces no validation machinery and carries none. +`EvaluatedExpressionSchema` and `EvaluatedExpressionInputSchema` already spell +"an evaluated slot is held to what the engine can actually run", already publish +one sentence for it (`EVALUATED_EXPRESSION_SOURCE_REQUIRED`), and +`FlowEdgeSchema.condition` already composes them for exactly this defect one +family over. + +Generalising that composition to the rest of the evaluated slots was ruled six +days before this record, on its own card: **decision batch #122 item 2** +(card #15811, comment +[`5644350409`](https://github.com/objectstack-ai/objectstack/issues/15811#issuecomment-5644350409), +2026-09-12, maintainer 「同意」 to **A**). Its item 1 names the population from +a measured census, the field-rule triad included: *「field / option / +grid-column `visibleWhen` / `readonlyWhen` / `requiredWhen`」*. Its item 2 keeps +`ExpressionSchema` / `ExpressionInputSchema` on "`source` OR `ast`". **PR #18638 +implements it** — one ADR-0087 id for all 36 declaring positions. + +So the authoring refusal this record's D1 states is **not this record's to +carry**, and a second carrier for it would be a second id for one migration. +`PredicateSchema` / `PredicateInputSchema` are **not** that carrier either: they +are a plain alias pair of the persistence contract with zero slot users, they +stay wide with the schema they alias (#18638's own measurement says so), and +retiring them as dead symbols is a separate question on its own measurement. ## Decision ### D1 — A predicate slot accepts only what the engine can run -`PredicateSchema` and `PredicateInputSchema` compose `EvaluatedExpressionSchema` / -`EvaluatedExpressionInputSchema`. An envelope carrying only an `ast`, and a -`source` that is blank after trimming (through the envelope key or the bare-string -shorthand), are refused at authoring with `EVALUATED_EXPRESSION_SOURCE_REQUIRED`. -The `FieldSchema` field-rule triad — `visibleWhen`, `readonlyWhen`, `requiredWhen` -— binds them. +A field-rule predicate is an EVALUATED slot by definition, so the envelope it +accepts must be one the engine can evaluate, and the CEL engine reads `source` +alone (`cel-engine.ts` `evaluate`: "AST-only evaluation not yet supported; +persist `source`"). An envelope carrying only an `ast`, and a `source` that is +blank after trimming (through the envelope key or the bare-string shorthand), are +refused at **authoring** with `EVALUATED_EXPRESSION_SOURCE_REQUIRED` rather than +parsing, registering, and faulting at evaluation time. + +⚠️ **This decision is recorded here and carried elsewhere.** It is the +field-rule row of a rule already ruled across every evaluated slot by decision +batch #122 item 2 and implemented by PR #18638 (see [the +Context](#the-narrowing-mechanism-already-existed-and-it-already-has-an-owner) +above): `EvaluatedExpressionSchema` / `EvaluatedExpressionInputSchema` compose +into the slots themselves, and **one** ADR-0087 D3 semantic entry covers the +whole population. This record's own PR changes no schema and registers no +migration id. A reader who arrives at this line asking "where is it enforced" +should read #18638's entry, not look for a second one. `ExpressionSchema` / `ExpressionInputSchema` are **not** narrowed: they remain the persistence contract, and `ast` remains an optional opaque structured value there. An `ast` **beside** a string `source` stays admitted everywhere. -This is an accept-set narrowing and ships with an ADR-0087 D3 semantic entry -(`field-rule-predicate-evaluated-slot-source-required`), because no D2 conversion -can express it: an `ast`-only envelope carries no `source` to lower an AST back -into, and a blank `source` names no predicate to reconstruct. Which of "author the -rule" and "drop the rule" the author meant is not derivable, and the platform does -not guess. +The refusal needs an ADR-0087 D3 **semantic** entry rather than a D2 conversion, +and the reason is worth keeping next to the decision: no conversion can express +it. An `ast`-only envelope carries no `source` to lower an AST back into where +the dialect has no printer, and a blank `source` names no predicate to +reconstruct. Which of "author the rule" and "drop the rule" the author meant is +not derivable, and the platform does not guess. ### D2 — A field-rule predicate that FAULTS refuses the SUBMIT, loudly @@ -168,28 +197,46 @@ Stated explicitly so that no part of it reads as delivered when it is not (Prime Directive #10: declared ≠ enforced is the defect this whole record is about). +- **This record lands no schema change at all.** Its own PR carries the record, + the ADR-0089 pointer and nothing that a runtime or an author can observe. D1's + authoring refusal is #18638's, under batch #122 item 2; the record is here + because the fault semantics D2–D4 state are what a consumer is held to, and a + consumer cannot be held to a direction no protocol states. - **D2 / D3 / D4 are consequences CONSUMERS deliver.** `packages/spec` carries no business logic (Prime Directive #2), so the submit refusal, the render direction and the gate diagnostic are declared here and implemented in objectui#8069. This record is the contract they are held to. -- **D4's spec-side authoring refusal is NOT applied to the gate slots in this - record's PR.** The action / visibility gate slots — view and page `visibleWhen` / - `visibleOn` / `visibility`, action and bulk-action `visible` / `visibleWhen`, - component `visible` / `visibleWhen`, app nav `visible`, `ObjectFieldGroupSchema` - `visibleWhen`, `RowCrudActionOverride` `visibleWhen` / `disabledWhen`, the - per-OPTION `visibleWhen` and the inline-column `readonlyWhen` / `requiredWhen` - — still compose `ExpressionInputSchema`. Two reasons, and the first is the one - that matters: several of those slots carry their **own** declared fault - directions ("fail-closed", "fail-soft") which are not the field-rule triad's, - and the ruling measured its evidence on the field-rule path. Binding them all to - one rule without re-measuring each declared direction would bake a direction the - ruling did not give, which is exactly what the second constraint above forbids. - Second, `validate-visibility-predicates.ts`'s `celRefusal` currently records the - opposite position for those slots — a blank predicate there "is 'no predicate', - exactly what the author meant" — so converting them is also a behaviour change - in a second package, not a schema swap. That conversion is filed as a follow-up - with the slot inventory, and it is the one place where D4 is currently declared - ahead of its authoring-side enforcement. +- **D4's spec-side authoring refusal for the GATE slots is RULED and IN FLIGHT — + it is not a follow-up, and it is not this record's to give or withhold.** The + action / visibility gate slots are inside decision batch #122 item 2's + population, which was drawn from the measured census on card #15811 + ([`5629834274`](https://github.com/objectstack-ai/objectstack/issues/15811#issuecomment-5629834274), + 36 declaring positions, re-derived by identity on #18638's base) and named in + the ruling as *「action `visibleWhen` / `visible` / `ActionConditionInputSchema`; + app `visible`; settings visibility; … `ui/bulk-action` visibility」*. **Cite that + census rather than re-enumerating it** — a hand list rots, and this record's + did: it omitted `system/settings-manifest.zod.ts:424` and `:686`, both + `visible: SettingsVisibilityInputSchema`, which is + `ExpressionInputSchema.superRefine(…)` — the refinement returns early on a + `source` that is absent or blank (`if (!source) return;`), so it narrows + neither the `ast`-only nor the blank-`source` arm and those two slots sit on + the persistence contract exactly like the rest. +- **What the batch #119 ruling did not give, and what that does not mean.** The + card behind this record measured its evidence on the field-rule path, and + several gate slots carry their **own** declared fault directions + ("fail-closed" on `ObjectFieldGroupSchema.visibleWhen` and + `RowCrudActionOverride.visibleWhen`, "fail-soft" on `disabledWhen`) which are + not the field-rule triad's. Converting them **on the strength of batch #119** + would bake a direction that ruling did not give. That is the whole of the + claim: it is a statement about which ruling authorizes what, not a reason the + conversion should wait. Batch #122 item 2 gave exactly that direction six days + earlier, on its own measured census, and #18638 implements it. A second + consideration is a cost, not an objection: `packages/lint`'s + `validate-visibility-predicates.ts` `celRefusal` records the opposite position + for those slots today — a blank predicate there "is 'no predicate', exactly + what the author meant" — so the conversion is a behaviour change in a second + package rather than a schema swap, and #18638 carries that cost with the + narrowing. ## Consequences @@ -198,18 +245,19 @@ exist in production is **unmeasured** — the loud state is what will reveal the and that is its purpose. It is user-visible, so the objectui half ships with a changeset banner saying so. A repo-wide census over `examples/`, `packages/`, `content/` and `skills/` at `03b7b8187` found **zero** field-rule predicates of -either refused spelling, against two live lit controls (15 files carrying +either spelling D1 refuses, against two live lit controls (15 files carrying non-blank tagged-template predicates, 14 carrying envelope-form ones) — so there -is nothing in this repository to rewrite. +is nothing in this repository for D1's landing to rewrite. **One stored-row edge is named rather than asserted.** `applyConversionsToStoredItem` **is** applied to `object` (only `flow` is skipped), but no conversion repairs either refused spelling, so a stored row -carrying one now meets a strict schema at whichever seam parses it. Which seam -that is, and whether it degrades to a warn or refuses the object, was **not -measured** on this card. It is recorded here as the open edge, and in the D3 -entry's acceptance criteria as "read the boot log for the object by name rather -than expecting a specific message". +carrying one meets a strict schema at whichever seam parses it once the refusal +lands. Which seam that is, and whether it degrades to a warn or refuses the +object, was **not measured** on this card. It is recorded here as the open edge, +and it belongs in the acceptance criteria of the ADR-0087 entry that carries the +refusal — #18638's, under batch #122 item 2 — as "read the boot log for the +object by name rather than expecting a specific message". **ADR-0089 is extended, not reversed.** That record unified the `*When` family under one name and is untouched by this one; this record decides what the family From b8805e4d53e330373e20d8717dfce95c39b2919e Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 18 Sep 2026 12:45:58 +0000 Subject: [PATCH 09/13] =?UTF-8?q?test(dogfood):=20drop=20the=20`PredicateI?= =?UTF-8?q?nputSchema`=20D7=20roster=20entry=20=E2=80=94=20re-derived?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The roster lists schemas that DECLARE an expression surface — "a slot whose accepted grammar is narrower gets its own schema and must be listed here too". `PredicateInputSchema` earned its place only while ADR-0136 D1 made it `= EvaluatedExpressionInputSchema` and bound the field-rule triad to it from another file. With that reverted it is again a plain alias of `ExpressionInputSchema` typing no slot, so it declares nothing and belongs nowhere on this roster; the ledger header's limitation 2 names it as the standing LATENT example, and leaving it rostered would make that paragraph false. Re-derived rather than assumed, twice, on this branch with the narrowing already reverted, by raising the `head` floor to 9999 through `ablation-replace.mjs` so the assertion prints the count (mutation landed and restore verified both times, `git diff HEAD` empty): roster entry PRESENT -> discovery found 37 position(s) via 'head' roster entry ABSENT -> discovery found 37 position(s) via 'head' Identical, because the three triad positions are head-matched by `ExpressionInputSchema` again. Identity grep over `packages/spec/src/**/*.zod.ts` agrees: `PredicateInputSchema` has 2 hits, its own definition and its `z.input` companion — zero slots — against a lit control of 19 files for `ExpressionInputSchema` and a dark control of 0. ⛔ Not a gate weakening. The `head` floor stays 37 and is met at 37, no ledger row is deleted and no test is skipped: the same three surfaces are discovered through the schema that types them. Both files are byte-identical to merged main. Claude-Session: https://claude.ai/code/session_019srGWGCBBCBHqcDoRZpQRh Co-authored-by: Claude --- .../test/expression-conformance.ledger.ts | 17 +++++------------ .../dogfood/test/expression-conformance.test.ts | 14 -------------- 2 files changed, 5 insertions(+), 26 deletions(-) diff --git a/packages/qa/dogfood/test/expression-conformance.ledger.ts b/packages/qa/dogfood/test/expression-conformance.ledger.ts index 8faa6e27e1a..649188a6b47 100644 --- a/packages/qa/dogfood/test/expression-conformance.ledger.ts +++ b/packages/qa/dogfood/test/expression-conformance.ledger.ts @@ -45,18 +45,11 @@ import type { ConformanceRow } from '@objectstack/verify'; // Structural, not spent: no text scan can recognise a schema it has never // been told about. // 2. Alias resolution is FILE-LOCAL. An EXPORTED alias of a roster member -// used in ANOTHER file is invisible. `shared/expression.zod.ts` -// `PredicateInputSchema` was the standing example of this, latent rather -// than live: measured at `a26a114d7` it typed no slot anywhere. ⚠️ It is -// no longer latent and it is no longer an example of the blind spot. -// ADR-0136 D1 (#17778) made it `= EvaluatedExpressionInputSchema` and -// bound the `FieldSchema` field-rule triad to it from `data/field.zod.ts` -// — another file — so the trap sprang exactly as written here: three -// STALE covers and discovery 3 short of its `head` floor, on that commit's -// first CI run. It is ON the roster now, so those three positions are -// discovered by identity and the blind spot is closed FOR THIS ALIAS. The -// limitation itself stands for the next exported alias, which is why this -// paragraph keeps it rather than deleting it. +// used in ANOTHER file is invisible — `shared/expression.zod.ts` +// `PredicateInputSchema` (`= ExpressionInputSchema`) is one today, latent +// rather than live: measured at `a26a114d7`, its only identity hits are +// its own definition, its `z.input` type and the barrel re-export, so it +// types no slot anywhere. // 3. Attribution is textual and positional, not syntactic. A roster schema // reached through a call the scan cannot follow — passed as an argument to // a generic factory, spread out of another object — has no `field:` above diff --git a/packages/qa/dogfood/test/expression-conformance.test.ts b/packages/qa/dogfood/test/expression-conformance.test.ts index 37996b74571..aaa29522187 100644 --- a/packages/qa/dogfood/test/expression-conformance.test.ts +++ b/packages/qa/dogfood/test/expression-conformance.test.ts @@ -98,19 +98,6 @@ const DIALECTS = new Set(['cel', 'cron', 'template', 'js', 'settings-visibility' * moved it listed it here: without this row the edge condition would have * dropped out of discovery and its `cel-interpret` cover gone STALE — measured, * on that commit's first CI run (#7327's shape, one more time). - * - * `PredicateInputSchema` (#17778) is the THIRD time, and the first where the - * ledger had written the trap down before it sprang. It is an EXPORTED alias - * — of `EvaluatedExpressionInputSchema` since ADR-0136 D1 — and alias - * resolution here is FILE-LOCAL, so the ledger header's limitation 2 recorded - * it as a latent blind spot that types no slot anywhere. ADR-0136 made it live - * by binding the `FieldSchema` field-rule triad (`visibleWhen` / `readonlyWhen` - * / `requiredWhen`) to it from ANOTHER file, and the first CI run after that - * reported all three covers STALE and discovery 3 short of its `head` floor - * (34 of 37) — the same two symptoms, one fact. ⛔ The floor was NOT lowered - * and no ledger row was deleted: the three surfaces still exist and are still - * exactly what this scan looks for, so the repair is the roster, which is what - * the paragraph above already prescribed. */ const EXPRESSION_INPUT_SCHEMAS = [ 'ExpressionInputSchema', @@ -118,7 +105,6 @@ const EXPRESSION_INPUT_SCHEMAS = [ 'SettingsVisibilityInputSchema', 'CronExpressionInputSchema', 'TemplateExpressionInputSchema', - 'PredicateInputSchema', ]; /** * A roster (or alias) name as an IDENTIFIER, anywhere on the line — #17630. From 89dfabbb8b37ed9382f257e3fababc8f488cc036 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 18 Sep 2026 12:45:58 +0000 Subject: [PATCH 10/13] chore(changeset): re-describe what this PR actually contains MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The entry described an accept-set narrowing this PR no longer carries. What publishes now is one producer fix: `cel` / `expression` (and the `F` / `P` aliases) declare the `EvaluatedExpression` they always emitted. No zod schema moves, `api-surface/` is unchanged, no export is added, removed or renamed, and `EvaluatedExpression` is assignable to `Expression`, so no call site changes. ⇒ `patch`, not `minor`; the BREAKING banner and the ADR-0087 disposition marker go with the narrowing that owned them. `Clause-②` is re-judged to `no`: this diff neither widens an accept set nor expands the public surface — measured, `check:api-surface` green with no removed-or-narrowed report. The record's fault semantics (ADR-0137 D2–D5) are restated as what they are: declared here, delivered by consumers, with D1's authoring refusal shipping with #18638 under that change's own ADR-0087 entry. Claude-Session: https://claude.ai/code/session_019srGWGCBBCBHqcDoRZpQRh Co-authored-by: Claude --- ...78-field-rule-predicate-fault-semantics.md | 23 +++++-------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/.changeset/17778-field-rule-predicate-fault-semantics.md b/.changeset/17778-field-rule-predicate-fault-semantics.md index 005ae3421eb..5b7fa49e2b9 100644 --- a/.changeset/17778-field-rule-predicate-fault-semantics.md +++ b/.changeset/17778-field-rule-predicate-fault-semantics.md @@ -1,24 +1,13 @@ --- -"@objectstack/spec": minor +"@objectstack/spec": patch --- -**BREAKING (accept-set narrows)** — a predicate slot now accepts only what the expression engine can actually run. `PredicateSchema` / `PredicateInputSchema` compose the EVALUATED rule instead of the persistence contract, and the `FieldSchema` field-rule triad — `visibleWhen`, `readonlyWhen`, `requiredWhen` — binds them (#17778, ADR-0136 D1). +**`cel` / `expression` (and the `F` / `P` aliases) now declare the `EvaluatedExpression` they have always emitted.** Both helpers always write a non-blank `source`, but both were declared as returning `Expression`, whose `source` is optional — a declaration of a shape neither function can produce. Fixed at the producer (#17778). -Clause-②: yes (narrowing) +Clause-②: no -**FROM → TO.** Two spellings stop parsing on those three slots, and on any slot composing the `Predicate*` aliases: +**Not a narrowing of anything an author can write.** No zod schema moves in this release entry: the accept set of every slot is unchanged, `api-surface/` is unchanged, and no export is added, removed or renamed. What changes is the return type in the published `.d.ts` of two existing exports, and narrowing a return type removes nothing from a caller — `EvaluatedExpression` is assignable to `Expression`, so every existing consumer still compiles and no call site needs editing. -- `{ dialect: 'cel', ast: … }` with no `source` → **TO** `{ dialect: 'cel', source: "record.status == 'paid'" }` -- `{ dialect: 'cel', source: ' ' }`, or the bare-string shorthand `' '` → **TO** the same non-blank envelope, or the `P` tagged template the examples use +**Why it is worth a release entry anyway.** Every slot that composes `EvaluatedExpressionInputSchema` requires a non-blank `source`, so a ``P`record.status == 'paid'` `` assigned straight into one was a TS2322 against a value the schema accepts at runtime — the recommended authoring form failing to type-check in exactly the place it is recommended. The over-wide declaration was the cause, and the producer is where it is fixed rather than at the call sites (Prime Directive #12). -**The one-line fix:** author the predicate's `source`, or REMOVE the key if the field was meant to carry no rule. Removal is behaviour-preserving here — all three slots resolved both refused spellings to a no-op already — so it is a safe default, but it records that the rule never ran. Authoring the `source` is the repair. - -**Why this is a break worth taking.** The CEL engine evaluates `source` alone, so both spellings parsed, registered, passed `objectstack validate`, and then produced a rule that silently did nothing — by three *different* mechanisms, each measured at its own end: a field-level `visibleWhen` is never evaluated server-side at all; `isReadonlyWhenLocked` returns LOCKED only for an unbound-ROOT fault and logs `change allowed through` for every other one, which is the arm an unevaluable envelope takes, silently waiving the declared lock; `requiredWhen` logs and SKIPS the check. One unauthored predicate therefore made a form show more, lock less and demand less at once, with no state saying the rule had not run. - -**`ExpressionSchema` / `ExpressionInputSchema` are NOT narrowed** — they remain the persistence contract (`source` OR `ast`), and an `ast` BESIDE a string `source` stays admitted everywhere. Absence is untouched: "no rule" was never a malformed rule. - -**Declared beside the narrowing, delivered by consumers.** ADR-0136 also records the fault semantics the renderer and submit path are held to: a faulting field-rule predicate refuses the SUBMIT loudly, naming the field and the rule (D2), while visibility stays fail-OPEN at RENDER so a rule that could not run never hides a control and lets the form write `null` over a column the user never saw (D3) — a pair, neither safe alone. `packages/spec` carries no business logic, so those land in the ObjectUI half. The evaluation helper's fallback stays freely specifiable (D5): fault-to-flag and fault-to-throw both exist only because it is a parameter. - -**Repo census.** Zero field-rule predicates of either refused spelling across `examples/`, `packages/`, `content/` and `skills/` at `03b7b8187`, against two live lit controls (15 files with non-blank tagged-template predicates, 14 with envelope-form ones). Nothing in this repository needed rewriting. - - +**The predicate fault-semantics contract is recorded, not enforced, by this release.** ADR-0137 states what a field-rule predicate does when it cannot RUN: at SUBMIT a faulting predicate refuses the write and names the field and the rule (D2); at RENDER visibility stays fail-OPEN, so a rule that could not run never hides a control and lets the form write `null` over a column the user never saw (D3); a blank or faulting GATE predicate is diagnosed, never a silent `true` (D4); and the evaluation helper's fallback stays freely specifiable (D5), because fault-to-flag and fault-to-throw both exist only because it is a parameter. Those are consequences CONSUMERS deliver — `packages/spec` carries no business logic — and they land in the ObjectUI half. D1's authoring refusal (an `ast`-only envelope and a blank `source` are refused at authoring) is ruled by decision batch #122 item 2 and ships with the evaluated-slot narrowing that owns it, under that change's own ADR-0087 entry. From 1bbe8f56243a8b2644d364198b6fdae9f5647cd2 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 18 Sep 2026 13:00:02 +0000 Subject: [PATCH 11/13] docs(adr): cite the settings `visible` pair by symbol, not by line number MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `check-adr-symbol-anchors` refuses a line number as an anchor form — a line is not an identity, and an unrelated edit rots it silently. The two slots this record names are now cited as `packages/spec/src/system/settings-manifest.zod.ts#SpecifierSchema` and `#SettingsManifestSchema`, with the refinement itself as `#SettingsVisibilityInputSchema`. Two readings, both from the gate, in order: `2 finding(s)` (line-anchor) on the first run; then `3 finding(s)` (unresolved-path) when the symbol form was written package-relative rather than repo-relative — the gate distinguishing a bad form from a bad path, which is how the second fix was aimed. Green now: `2105 anchors across 140 records resolve … 0 line anchors survive`. Claude-Session: https://claude.ai/code/session_019srGWGCBBCBHqcDoRZpQRh Co-authored-by: Claude --- docs/adr/0137-predicate-fault-semantics-are-contract.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/adr/0137-predicate-fault-semantics-are-contract.md b/docs/adr/0137-predicate-fault-semantics-are-contract.md index df397839aec..b4edf0ee4c0 100644 --- a/docs/adr/0137-predicate-fault-semantics-are-contract.md +++ b/docs/adr/0137-predicate-fault-semantics-are-contract.md @@ -215,9 +215,12 @@ about). the ruling as *「action `visibleWhen` / `visible` / `ActionConditionInputSchema`; app `visible`; settings visibility; … `ui/bulk-action` visibility」*. **Cite that census rather than re-enumerating it** — a hand list rots, and this record's - did: it omitted `system/settings-manifest.zod.ts:424` and `:686`, both + did: it omitted the settings `visible` pair, on + `packages/spec/src/system/settings-manifest.zod.ts#SpecifierSchema` and + `packages/spec/src/system/settings-manifest.zod.ts#SettingsManifestSchema`. Both are `visible: SettingsVisibilityInputSchema`, which is - `ExpressionInputSchema.superRefine(…)` — the refinement returns early on a + `packages/spec/src/system/settings-manifest.zod.ts#SettingsVisibilityInputSchema`, an + `ExpressionInputSchema.superRefine(…)` — and the refinement returns early on a `source` that is absent or blank (`if (!source) return;`), so it narrows neither the `ast`-only nor the blank-`source` arm and those two slots sit on the persistence contract exactly like the rest. From 28ebef33ba531c9e6b998555a51a1b938d3bd706 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 19 Sep 2026 08:06:48 +0000 Subject: [PATCH 12/13] chore(spec): regenerate api-surface-declarations after merging origin/main Discharges the os-regen deferral from the prior merge commit. root.txt and shared.txt now reflect main's #18638 evaluated-expression-slot narrowing (source becomes required across the composing slots) plus the drift picked up while catching this branch up to main's current tip. No hand edits. --- .../spec/api-surface-declarations/root.txt | 2469 +++++++++-------- .../spec/api-surface-declarations/shared.txt | 4 +- 2 files changed, 1259 insertions(+), 1214 deletions(-) diff --git a/packages/spec/api-surface-declarations/root.txt b/packages/spec/api-surface-declarations/root.txt index 3010b6c9ae6..27a726614a5 100644 --- a/packages/spec/api-surface-declarations/root.txt +++ b/packages/spec/api-surface-declarations/root.txt @@ -12,8 +12,8 @@ # excluded: documentation drift is `check:docs`'s axis, not this one. # # entry: . -# exported names: 212 -# declarations: 213 +# exported names: 219 +# declarations: 220 # # GENERATED — ⛔ never hand-edited. Regenerate after a real build: # pnpm --filter @objectstack/spec build && pnpm --filter @objectstack/spec gen:api-surface-declarations @@ -1365,7 +1365,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ enabled: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; disabledWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>]>>; import: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; disabledWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>]>>; edit: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; disabledWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>]>>; delete: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; disabledWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>]>>; exportCsv: z.ZodOptional; @@ -1663,7 +1663,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ default: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>>>; reference: z.ZodOptional; @@ -1729,7 +1729,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ autofill: z.ZodOptional; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>>>; inlineAmountField: z.ZodOptional; @@ -1806,7 +1806,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ allowCreate: z.ZodOptional; expression: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; returnType: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -1958,7 +1958,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ description: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; collapse: z.ZodDefault; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredPermissions: z.ZodOptional>; maxRecords: z.ZodOptional; @@ -2718,7 +2718,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ conditionalFormatting: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>; style: z.ZodRecord; }, z.core.$strict>>>; @@ -3032,7 +3032,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ value: z.ZodString; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>>>; placeholder: z.ZodOptional; @@ -3063,7 +3063,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ carryOver: z.ZodOptional; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiresFeature: z.ZodOptional>; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>]>>; requiresFeature: z.ZodOptional>; disabled: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>]>>; requiredPermissions: z.ZodOptional>; shortcut: z.ZodOptional; @@ -3517,7 +3517,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3525,7 +3525,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3544,7 +3544,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3552,7 +3552,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3601,7 +3601,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3609,7 +3609,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3619,7 +3619,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3627,7 +3627,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3728,7 +3728,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3736,7 +3736,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3755,7 +3755,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3763,7 +3763,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3812,7 +3812,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3820,7 +3820,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3830,7 +3830,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3838,7 +3838,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3942,7 +3942,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ default?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3950,7 +3950,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3987,7 +3987,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ autofill?: boolean | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -3995,7 +3995,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4004,7 +4004,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4012,7 +4012,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4046,7 +4046,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ allowCreate?: boolean | undefined; expression?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4054,7 +4054,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4081,7 +4081,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4089,7 +4089,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4098,7 +4098,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4106,7 +4106,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4115,7 +4115,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4123,7 +4123,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4162,7 +4162,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4170,7 +4170,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4179,7 +4179,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4187,7 +4187,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4199,7 +4199,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4207,7 +4207,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4216,7 +4216,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4224,7 +4224,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4236,7 +4236,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4244,7 +4244,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4253,7 +4253,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4261,7 +4261,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4273,7 +4273,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4281,7 +4281,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4290,7 +4290,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4298,7 +4298,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4335,7 +4335,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ description?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4343,7 +4343,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4528,7 +4528,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ confirmLabel?: string | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4536,7 +4536,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4763,7 +4763,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ conditionalFormatting?: { condition: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4771,7 +4771,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4888,7 +4888,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4896,7 +4896,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4915,7 +4915,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4923,7 +4923,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4972,7 +4972,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4980,7 +4980,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4990,7 +4990,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -4998,7 +4998,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5096,7 +5096,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ default?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5104,7 +5104,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5141,7 +5141,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ autofill?: boolean | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5149,7 +5149,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5158,7 +5158,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5166,7 +5166,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5200,7 +5200,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ allowCreate?: boolean | undefined; expression?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5208,7 +5208,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5235,7 +5235,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5243,7 +5243,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5252,7 +5252,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5260,7 +5260,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5269,7 +5269,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5277,7 +5277,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5316,7 +5316,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5324,7 +5324,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5333,7 +5333,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5341,7 +5341,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5353,7 +5353,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5361,7 +5361,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5370,7 +5370,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5378,7 +5378,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5390,7 +5390,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5398,7 +5398,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5407,7 +5407,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5415,7 +5415,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5427,7 +5427,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5435,7 +5435,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5444,7 +5444,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5452,7 +5452,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5489,7 +5489,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ description?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5497,7 +5497,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5682,7 +5682,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ confirmLabel?: string | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5690,7 +5690,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5917,7 +5917,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ conditionalFormatting?: { condition: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -5925,7 +5925,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6042,7 +6042,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6050,7 +6050,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6069,7 +6069,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6077,7 +6077,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6126,7 +6126,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6134,7 +6134,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6144,7 +6144,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6152,7 +6152,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6251,7 +6251,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ default?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6259,7 +6259,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6296,7 +6296,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ autofill?: boolean | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6304,7 +6304,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6313,7 +6313,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6321,7 +6321,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6355,7 +6355,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ allowCreate?: boolean | undefined; expression?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6363,7 +6363,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6390,7 +6390,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6398,7 +6398,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6407,7 +6407,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6415,7 +6415,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6424,7 +6424,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6432,7 +6432,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6471,7 +6471,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6479,7 +6479,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6488,7 +6488,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6496,7 +6496,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6508,7 +6508,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6516,7 +6516,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6525,7 +6525,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6533,7 +6533,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6545,7 +6545,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6553,7 +6553,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6562,7 +6562,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6570,7 +6570,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6582,7 +6582,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6590,7 +6590,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6599,7 +6599,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6607,7 +6607,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6644,7 +6644,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ description?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6652,7 +6652,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6837,7 +6837,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ confirmLabel?: string | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -6845,7 +6845,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7072,7 +7072,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ conditionalFormatting?: { condition: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7080,7 +7080,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7197,7 +7197,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7205,7 +7205,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7224,7 +7224,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7232,7 +7232,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7281,7 +7281,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7289,7 +7289,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7299,7 +7299,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7307,7 +7307,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7405,7 +7405,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ default?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7413,7 +7413,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7450,7 +7450,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ autofill?: boolean | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7458,7 +7458,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7467,7 +7467,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7475,7 +7475,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7509,7 +7509,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ allowCreate?: boolean | undefined; expression?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7517,7 +7517,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7544,7 +7544,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7552,7 +7552,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7561,7 +7561,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7569,7 +7569,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7578,7 +7578,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7586,7 +7586,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7625,7 +7625,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7633,7 +7633,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7642,7 +7642,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7650,7 +7650,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7662,7 +7662,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7670,7 +7670,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7679,7 +7679,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7687,7 +7687,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7699,7 +7699,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7707,7 +7707,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7716,7 +7716,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7724,7 +7724,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7736,7 +7736,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7744,7 +7744,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7753,7 +7753,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7761,7 +7761,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7798,7 +7798,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ description?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7806,7 +7806,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7991,7 +7991,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ confirmLabel?: string | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -7999,7 +7999,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8226,7 +8226,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ conditionalFormatting?: { condition: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8234,7 +8234,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8351,7 +8351,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8359,7 +8359,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8378,7 +8378,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8386,7 +8386,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8435,7 +8435,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8443,7 +8443,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8453,7 +8453,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8461,7 +8461,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -8558,7 +8558,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ enabled: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; disabledWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>]>>; import: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; disabledWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>]>>; edit: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; disabledWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>]>>; delete: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; disabledWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>]>>; exportCsv: z.ZodOptional; @@ -8856,7 +8856,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ default: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>>>; reference: z.ZodOptional; @@ -8922,7 +8922,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ autofill: z.ZodOptional; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>>>; inlineAmountField: z.ZodOptional; @@ -8999,7 +8999,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ allowCreate: z.ZodOptional; expression: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; returnType: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -9151,7 +9151,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ description: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; collapse: z.ZodDefault; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredPermissions: z.ZodOptional>; maxRecords: z.ZodOptional; @@ -9911,7 +9911,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ conditionalFormatting: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>; style: z.ZodRecord; }, z.core.$strict>>>; @@ -10225,7 +10225,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ value: z.ZodString; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>>>; placeholder: z.ZodOptional; @@ -10256,7 +10256,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ carryOver: z.ZodOptional; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiresFeature: z.ZodOptional>; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>]>>; requiresFeature: z.ZodOptional>; disabled: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>]>>; requiredPermissions: z.ZodOptional>; shortcut: z.ZodOptional; @@ -10710,7 +10710,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10718,7 +10718,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10737,7 +10737,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10745,7 +10745,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10794,7 +10794,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10802,7 +10802,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10812,7 +10812,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10820,7 +10820,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10921,7 +10921,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10929,7 +10929,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10948,7 +10948,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -10956,7 +10956,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11005,7 +11005,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11013,7 +11013,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11023,7 +11023,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11031,7 +11031,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -11205,7 +11205,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ default: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>>>; reference: z.ZodOptional; @@ -11271,7 +11271,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ autofill: z.ZodOptional; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>>>; inlineAmountField: z.ZodOptional; @@ -11348,7 +11348,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ allowCreate: z.ZodOptional; expression: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; returnType: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -11895,7 +11895,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ confirmLabel: z.ZodOptional; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredPermissions: z.ZodOptional>; maxRecords: z.ZodOptional; @@ -12331,7 +12331,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ conditionalFormatting: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>; style: z.ZodRecord; }, z.core.$strict>>>; @@ -12523,7 +12523,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ collapsed: z.ZodDefault; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibleOn: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; columns: z.ZodPipe; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibleOn: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; columns: z.ZodPipe; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredPermissions: z.ZodOptional>; maxRecords: z.ZodOptional; @@ -13569,7 +13569,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ conditionalFormatting: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>; style: z.ZodRecord; }, z.core.$strict>>>; @@ -13761,7 +13761,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ collapsed: z.ZodDefault; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibleOn: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; columns: z.ZodPipe; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibleOn: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; columns: z.ZodPipe>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>>>; placeholder: z.ZodOptional; @@ -20184,7 +20184,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ carryOver: z.ZodOptional; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiresFeature: z.ZodOptional>; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>]>>; requiresFeature: z.ZodOptional>; disabled: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>]>>; requiredPermissions: z.ZodOptional>; shortcut: z.ZodOptional; @@ -20638,7 +20638,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20646,7 +20646,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20665,7 +20665,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20673,7 +20673,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20722,7 +20722,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20730,7 +20730,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20740,7 +20740,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20748,7 +20748,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20849,7 +20849,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20857,7 +20857,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20876,7 +20876,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20884,7 +20884,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20933,7 +20933,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20941,7 +20941,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20951,7 +20951,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -20959,7 +20959,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -21720,7 +21720,7 @@ declare const ObjectStackDefinitionSchema: z.ZodObject<{ type: z.ZodLiteral<"criteria">; condition: z.ZodUnion; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>; }, z.core.$strict>>>; apis: z.ZodOptional; condition: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; description: z.ZodOptional; retryPolicy: z.ZodOptional>; joins: z.ZodOptional>; - sql: z.ZodString; }, z.core.$strict>>>; refreshKey: z.ZodOptional; @@ -23218,7 +23212,7 @@ declare const ObjectStackSchema: z.ZodObject<{ enabled: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; disabledWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>]>>; import: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; disabledWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>]>>; edit: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; disabledWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>]>>; delete: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; disabledWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>]>>; exportCsv: z.ZodOptional; @@ -23516,7 +23510,7 @@ declare const ObjectStackSchema: z.ZodObject<{ default: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>>>; reference: z.ZodOptional; @@ -23582,7 +23576,7 @@ declare const ObjectStackSchema: z.ZodObject<{ autofill: z.ZodOptional; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>>>; inlineAmountField: z.ZodOptional; @@ -23659,7 +23653,7 @@ declare const ObjectStackSchema: z.ZodObject<{ allowCreate: z.ZodOptional; expression: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; returnType: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -23811,7 +23805,7 @@ declare const ObjectStackSchema: z.ZodObject<{ description: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; collapse: z.ZodDefault; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredPermissions: z.ZodOptional>; maxRecords: z.ZodOptional; @@ -24571,7 +24565,7 @@ declare const ObjectStackSchema: z.ZodObject<{ conditionalFormatting: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>; style: z.ZodRecord; }, z.core.$strict>>>; @@ -24885,7 +24879,7 @@ declare const ObjectStackSchema: z.ZodObject<{ value: z.ZodString; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>>>; placeholder: z.ZodOptional; @@ -24916,7 +24910,7 @@ declare const ObjectStackSchema: z.ZodObject<{ carryOver: z.ZodOptional; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiresFeature: z.ZodOptional>; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>]>>; requiresFeature: z.ZodOptional>; disabled: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>]>>; requiredPermissions: z.ZodOptional>; shortcut: z.ZodOptional; @@ -25370,7 +25364,7 @@ declare const ObjectStackSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25378,7 +25372,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25397,7 +25391,7 @@ declare const ObjectStackSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25405,7 +25399,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25454,7 +25448,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25462,7 +25456,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25472,7 +25466,7 @@ declare const ObjectStackSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25480,7 +25474,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25581,7 +25575,7 @@ declare const ObjectStackSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25589,7 +25583,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25608,7 +25602,7 @@ declare const ObjectStackSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25616,7 +25610,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25665,7 +25659,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25673,7 +25667,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25683,7 +25677,7 @@ declare const ObjectStackSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25691,7 +25685,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25795,7 +25789,7 @@ declare const ObjectStackSchema: z.ZodObject<{ default?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25803,7 +25797,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25840,7 +25834,7 @@ declare const ObjectStackSchema: z.ZodObject<{ autofill?: boolean | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25848,7 +25842,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25857,7 +25851,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25865,7 +25859,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25899,7 +25893,7 @@ declare const ObjectStackSchema: z.ZodObject<{ allowCreate?: boolean | undefined; expression?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25907,7 +25901,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25934,7 +25928,7 @@ declare const ObjectStackSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25942,7 +25936,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25951,7 +25945,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25959,7 +25953,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25968,7 +25962,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -25976,7 +25970,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26015,7 +26009,7 @@ declare const ObjectStackSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26023,7 +26017,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26032,7 +26026,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26040,7 +26034,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26052,7 +26046,7 @@ declare const ObjectStackSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26060,7 +26054,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26069,7 +26063,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26077,7 +26071,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26089,7 +26083,7 @@ declare const ObjectStackSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26097,7 +26091,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26106,7 +26100,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26114,7 +26108,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26126,7 +26120,7 @@ declare const ObjectStackSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26134,7 +26128,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26143,7 +26137,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26151,7 +26145,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26188,7 +26182,7 @@ declare const ObjectStackSchema: z.ZodObject<{ description?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26196,7 +26190,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26381,7 +26375,7 @@ declare const ObjectStackSchema: z.ZodObject<{ confirmLabel?: string | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26389,7 +26383,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26616,7 +26610,7 @@ declare const ObjectStackSchema: z.ZodObject<{ conditionalFormatting?: { condition: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26624,7 +26618,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26741,7 +26735,7 @@ declare const ObjectStackSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26749,7 +26743,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26768,7 +26762,7 @@ declare const ObjectStackSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26776,7 +26770,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26825,7 +26819,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26833,7 +26827,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26843,7 +26837,7 @@ declare const ObjectStackSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26851,7 +26845,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26949,7 +26943,7 @@ declare const ObjectStackSchema: z.ZodObject<{ default?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26957,7 +26951,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -26994,7 +26988,7 @@ declare const ObjectStackSchema: z.ZodObject<{ autofill?: boolean | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27002,7 +26996,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27011,7 +27005,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27019,7 +27013,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27053,7 +27047,7 @@ declare const ObjectStackSchema: z.ZodObject<{ allowCreate?: boolean | undefined; expression?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27061,7 +27055,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27088,7 +27082,7 @@ declare const ObjectStackSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27096,7 +27090,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27105,7 +27099,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27113,7 +27107,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27122,7 +27116,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27130,7 +27124,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27169,7 +27163,7 @@ declare const ObjectStackSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27177,7 +27171,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27186,7 +27180,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27194,7 +27188,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27206,7 +27200,7 @@ declare const ObjectStackSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27214,7 +27208,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27223,7 +27217,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27231,7 +27225,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27243,7 +27237,7 @@ declare const ObjectStackSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27251,7 +27245,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27260,7 +27254,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27268,7 +27262,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27280,7 +27274,7 @@ declare const ObjectStackSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27288,7 +27282,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27297,7 +27291,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27305,7 +27299,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27342,7 +27336,7 @@ declare const ObjectStackSchema: z.ZodObject<{ description?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27350,7 +27344,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27535,7 +27529,7 @@ declare const ObjectStackSchema: z.ZodObject<{ confirmLabel?: string | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27543,7 +27537,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27770,7 +27764,7 @@ declare const ObjectStackSchema: z.ZodObject<{ conditionalFormatting?: { condition: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27778,7 +27772,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27895,7 +27889,7 @@ declare const ObjectStackSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27903,7 +27897,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27922,7 +27916,7 @@ declare const ObjectStackSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27930,7 +27924,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27979,7 +27973,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27987,7 +27981,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -27997,7 +27991,7 @@ declare const ObjectStackSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28005,7 +27999,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28104,7 +28098,7 @@ declare const ObjectStackSchema: z.ZodObject<{ default?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28112,7 +28106,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28149,7 +28143,7 @@ declare const ObjectStackSchema: z.ZodObject<{ autofill?: boolean | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28157,7 +28151,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28166,7 +28160,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28174,7 +28168,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28208,7 +28202,7 @@ declare const ObjectStackSchema: z.ZodObject<{ allowCreate?: boolean | undefined; expression?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28216,7 +28210,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28243,7 +28237,7 @@ declare const ObjectStackSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28251,7 +28245,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28260,7 +28254,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28268,7 +28262,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28277,7 +28271,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28285,7 +28279,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28324,7 +28318,7 @@ declare const ObjectStackSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28332,7 +28326,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28341,7 +28335,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28349,7 +28343,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28361,7 +28355,7 @@ declare const ObjectStackSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28369,7 +28363,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28378,7 +28372,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28386,7 +28380,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28398,7 +28392,7 @@ declare const ObjectStackSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28406,7 +28400,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28415,7 +28409,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28423,7 +28417,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28435,7 +28429,7 @@ declare const ObjectStackSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28443,7 +28437,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28452,7 +28446,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28460,7 +28454,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28497,7 +28491,7 @@ declare const ObjectStackSchema: z.ZodObject<{ description?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28505,7 +28499,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28690,7 +28684,7 @@ declare const ObjectStackSchema: z.ZodObject<{ confirmLabel?: string | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28698,7 +28692,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28925,7 +28919,7 @@ declare const ObjectStackSchema: z.ZodObject<{ conditionalFormatting?: { condition: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -28933,7 +28927,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29050,7 +29044,7 @@ declare const ObjectStackSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29058,7 +29052,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29077,7 +29071,7 @@ declare const ObjectStackSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29085,7 +29079,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29134,7 +29128,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29142,7 +29136,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29152,7 +29146,7 @@ declare const ObjectStackSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29160,7 +29154,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29258,7 +29252,7 @@ declare const ObjectStackSchema: z.ZodObject<{ default?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29266,7 +29260,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29303,7 +29297,7 @@ declare const ObjectStackSchema: z.ZodObject<{ autofill?: boolean | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29311,7 +29305,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29320,7 +29314,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29328,7 +29322,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29362,7 +29356,7 @@ declare const ObjectStackSchema: z.ZodObject<{ allowCreate?: boolean | undefined; expression?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29370,7 +29364,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29397,7 +29391,7 @@ declare const ObjectStackSchema: z.ZodObject<{ group?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29405,7 +29399,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29414,7 +29408,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; readonlyWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29422,7 +29416,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29431,7 +29425,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; requiredWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29439,7 +29433,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29478,7 +29472,7 @@ declare const ObjectStackSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29486,7 +29480,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29495,7 +29489,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29503,7 +29497,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29515,7 +29509,7 @@ declare const ObjectStackSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29523,7 +29517,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29532,7 +29526,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29540,7 +29534,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29552,7 +29546,7 @@ declare const ObjectStackSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29560,7 +29554,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29569,7 +29563,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29577,7 +29571,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29589,7 +29583,7 @@ declare const ObjectStackSchema: z.ZodObject<{ enabled?: boolean | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29597,7 +29591,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29606,7 +29600,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; disabledWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29614,7 +29608,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29651,7 +29645,7 @@ declare const ObjectStackSchema: z.ZodObject<{ description?: string | undefined; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29659,7 +29653,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29844,7 +29838,7 @@ declare const ObjectStackSchema: z.ZodObject<{ confirmLabel?: string | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -29852,7 +29846,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -30079,7 +30073,7 @@ declare const ObjectStackSchema: z.ZodObject<{ conditionalFormatting?: { condition: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -30087,7 +30081,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -30204,7 +30198,7 @@ declare const ObjectStackSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -30212,7 +30206,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -30231,7 +30225,7 @@ declare const ObjectStackSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -30239,7 +30233,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -30288,7 +30282,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -30296,7 +30290,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -30306,7 +30300,7 @@ declare const ObjectStackSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -30314,7 +30308,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -30411,7 +30405,7 @@ declare const ObjectStackSchema: z.ZodObject<{ enabled: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; disabledWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>]>>; import: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; disabledWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>]>>; edit: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; disabledWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>]>>; delete: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; disabledWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>]>>; exportCsv: z.ZodOptional; @@ -30709,7 +30703,7 @@ declare const ObjectStackSchema: z.ZodObject<{ default: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>>>; reference: z.ZodOptional; @@ -30775,7 +30769,7 @@ declare const ObjectStackSchema: z.ZodObject<{ autofill: z.ZodOptional; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>>>; inlineAmountField: z.ZodOptional; @@ -30852,7 +30846,7 @@ declare const ObjectStackSchema: z.ZodObject<{ allowCreate: z.ZodOptional; expression: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; returnType: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -31004,7 +30998,7 @@ declare const ObjectStackSchema: z.ZodObject<{ description: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; collapse: z.ZodDefault; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredPermissions: z.ZodOptional>; maxRecords: z.ZodOptional; @@ -31764,7 +31758,7 @@ declare const ObjectStackSchema: z.ZodObject<{ conditionalFormatting: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>; style: z.ZodRecord; }, z.core.$strict>>>; @@ -32078,7 +32072,7 @@ declare const ObjectStackSchema: z.ZodObject<{ value: z.ZodString; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>>>; placeholder: z.ZodOptional; @@ -32109,7 +32103,7 @@ declare const ObjectStackSchema: z.ZodObject<{ carryOver: z.ZodOptional; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiresFeature: z.ZodOptional>; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>]>>; requiresFeature: z.ZodOptional>; disabled: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>]>>; requiredPermissions: z.ZodOptional>; shortcut: z.ZodOptional; @@ -32563,7 +32557,7 @@ declare const ObjectStackSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -32571,7 +32565,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -32590,7 +32584,7 @@ declare const ObjectStackSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -32598,7 +32592,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -32647,7 +32641,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -32655,7 +32649,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -32665,7 +32659,7 @@ declare const ObjectStackSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -32673,7 +32667,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -32774,7 +32768,7 @@ declare const ObjectStackSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -32782,7 +32776,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -32801,7 +32795,7 @@ declare const ObjectStackSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -32809,7 +32803,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -32858,7 +32852,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -32866,7 +32860,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -32876,7 +32870,7 @@ declare const ObjectStackSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -32884,7 +32878,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -33058,7 +33052,7 @@ declare const ObjectStackSchema: z.ZodObject<{ default: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>>>; reference: z.ZodOptional; @@ -33124,7 +33118,7 @@ declare const ObjectStackSchema: z.ZodObject<{ autofill: z.ZodOptional; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>>>; inlineAmountField: z.ZodOptional; @@ -33201,7 +33195,7 @@ declare const ObjectStackSchema: z.ZodObject<{ allowCreate: z.ZodOptional; expression: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; returnType: z.ZodOptional; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; readonlyWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; conditionalRequired: z.ZodOptional; widget: z.ZodOptional; @@ -33748,7 +33742,7 @@ declare const ObjectStackSchema: z.ZodObject<{ confirmLabel: z.ZodOptional; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredPermissions: z.ZodOptional>; maxRecords: z.ZodOptional; @@ -34184,7 +34178,7 @@ declare const ObjectStackSchema: z.ZodObject<{ conditionalFormatting: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>; style: z.ZodRecord; }, z.core.$strict>>>; @@ -34376,7 +34370,7 @@ declare const ObjectStackSchema: z.ZodObject<{ collapsed: z.ZodDefault; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibleOn: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; columns: z.ZodPipe; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibleOn: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; columns: z.ZodPipe; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiredPermissions: z.ZodOptional>; maxRecords: z.ZodOptional; @@ -35422,7 +35416,7 @@ declare const ObjectStackSchema: z.ZodObject<{ conditionalFormatting: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>; style: z.ZodRecord; }, z.core.$strict>>>; @@ -35614,7 +35608,7 @@ declare const ObjectStackSchema: z.ZodObject<{ collapsed: z.ZodDefault; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibleOn: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; columns: z.ZodPipe; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibleOn: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; columns: z.ZodPipe>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional>; visibleWhen: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; visibility: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; dataSource: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; }, z.core.$strict>>>; placeholder: z.ZodOptional; @@ -42037,7 +42031,7 @@ declare const ObjectStackSchema: z.ZodObject<{ carryOver: z.ZodOptional; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; requiresFeature: z.ZodOptional>; visible: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>]>>; requiresFeature: z.ZodOptional>; disabled: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>]>>; requiredPermissions: z.ZodOptional>; shortcut: z.ZodOptional; @@ -42491,7 +42485,7 @@ declare const ObjectStackSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -42499,7 +42493,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -42518,7 +42512,7 @@ declare const ObjectStackSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -42526,7 +42520,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -42575,7 +42569,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -42583,7 +42577,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -42593,7 +42587,7 @@ declare const ObjectStackSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -42601,7 +42595,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -42702,7 +42696,7 @@ declare const ObjectStackSchema: z.ZodObject<{ value: string; visibleWhen?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -42710,7 +42704,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -42729,7 +42723,7 @@ declare const ObjectStackSchema: z.ZodObject<{ carryOver?: boolean | undefined; visible?: { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -42737,7 +42731,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -42786,7 +42780,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; visible?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -42794,7 +42788,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -42804,7 +42798,7 @@ declare const ObjectStackSchema: z.ZodObject<{ requiresFeature?: "organization" | "admin" | "twoFactor" | "multiOrgEnabled" | "degradedTenancy" | "oidcProvider" | "sso" | "ssoEnforced" | "deviceAuthorization" | "phoneNumber" | "phoneNumberOtp" | undefined; disabled?: boolean | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -42812,7 +42806,7 @@ declare const ObjectStackSchema: z.ZodObject<{ } | undefined; } | { dialect: "cel" | "cron" | "template"; - source?: string | undefined; + source: string; ast?: unknown; meta?: { rationale?: string | undefined; @@ -43573,7 +43567,7 @@ declare const ObjectStackSchema: z.ZodObject<{ type: z.ZodLiteral<"criteria">; condition: z.ZodUnion; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>; }, z.core.$strict>>>; apis: z.ZodOptional; condition: z.ZodOptional; - source: z.ZodOptional; ast: z.ZodOptional; meta: z.ZodOptional; generatedBy: z.ZodOptional; }, z.core.$strip>>; + source: z.ZodString; }, z.core.$strip>]>>; description: z.ZodOptional; retryPolicy: z.ZodOptional>; joins: z.ZodOptional>; - sql: z.ZodString; }, z.core.$strict>>>; refreshKey: z.ZodOptional; @@ -44865,12 +44853,24 @@ declare const PredicateSchema: z.ZodObject<{ }, z.core.$strip>>; }, z.core.$strip>; +// ── PreviousReleaseRegistries (interface) ── +interface PreviousReleaseRegistries { + conversionIds: readonly string[]; + migrationIds: readonly string[]; +} + // ── RETIRED_DEFS_BY_MAJOR (const) ── declare const RETIRED_DEFS_BY_MAJOR: Readonly>; // ── RETIRED_KEYS_BY_MAJOR (const) ── declare const RETIRED_KEYS_BY_MAJOR: Readonly>; +// ── ReleaseSurfaceDiff (interface) ── +interface ReleaseSurfaceDiff { + added: readonly string[]; + removed: readonly string[]; +} + // ── STACK_DEFINITION_KEYS (const) ── declare const STACK_DEFINITION_KEYS: readonly StackDefinitionKey[]; @@ -44929,6 +44929,10 @@ declare const SpecChangesSchema: z.ZodObject<{ removedIn: z.ZodNumber; replacement: z.ZodOptional; }, z.core.$strip>>; + surfaceScope: z.ZodOptional>; }, z.core.$strip>; // ── SpecConverted (type) ── @@ -44954,6 +44958,42 @@ declare const SpecMigratedSchema: z.ZodObject<{ rationale: z.ZodString; }, z.core.$strip>; +// ── SpecReleaseChanges (type) ── +type SpecReleaseChanges = z.infer; + +// ── SpecReleaseChangesSchema (const) ── +declare const SpecReleaseChangesSchema: z.ZodObject<{ + fromVersion: z.ZodString; + toVersion: z.ZodString; + added: z.ZodArray>; + converted: z.ZodArray>; + migrated: z.ZodArray>; + removed: z.ZodArray>; +}, z.core.$strip>; + +// ── SpecReleaseSurface (type) ── +type SpecReleaseSurface = z.infer; + +// ── SpecReleaseSurfaceSchema (const) ── +declare const SpecReleaseSurfaceSchema: z.ZodObject<{ + surface: z.ZodString; +}, z.core.$strip>; + // ── SpecSurfaceAdd (type) ── type SpecSurfaceAdd = z.infer; @@ -45000,6 +45040,8 @@ type StoredConversionOptions = Omit; interface SurfaceDiff { added?: SpecSurfaceAdd[]; removed?: SpecSurfaceRemove[]; + /** The published-version pair `added`/`removed` were diffed between. */ + scope?: SpecSurfaceScope; } // ── TemplateExpressionInputSchema (const) ── @@ -45078,6 +45120,9 @@ declare function collectConversionNotices(stack: Record, option // ── composeMigrationChain (function) ── declare function composeMigrationChain(fromMajor: number, toMajor?: number): MigrationStep[]; +// ── composeReleaseChanges (function) ── +declare function composeReleaseChanges(fromVersion: string, toVersion: string, current: SpecChanges, previous: PreviousReleaseRegistries, surfaceDiff: ReleaseSurfaceDiff): SpecReleaseChanges; + // ── composeSpecChanges (function) ── declare function composeSpecChanges(fromMajor: number, toMajor: number, surfaceDiff?: SurfaceDiff): SpecChanges; @@ -45094,7 +45139,7 @@ declare function createEvalUser(input: { }): EvalUserParsed; // ── cron (function) ── -declare function cron(strings: TemplateStringsArray, ...values: unknown[]): Expression; +declare function cron(strings: TemplateStringsArray, ...values: unknown[]): EvaluatedExpression; // ── defineAction (function) ── declare function defineAction(config: z.input): ActionParsed; @@ -45261,4 +45306,4 @@ declare function safeParsePretty(schema: T, data: unknow declare function suggestFieldType(input: string): string[]; // ── tmpl (function) ── -declare function tmpl(strings: TemplateStringsArray, ...values: unknown[]): Expression; +declare function tmpl(strings: TemplateStringsArray, ...values: unknown[]): EvaluatedExpression; diff --git a/packages/spec/api-surface-declarations/shared.txt b/packages/spec/api-surface-declarations/shared.txt index 957c3dc9f43..3169a43c67c 100644 --- a/packages/spec/api-surface-declarations/shared.txt +++ b/packages/spec/api-surface-declarations/shared.txt @@ -730,7 +730,7 @@ declare function canonicalMetaUrlType(type: string): string; declare function cel(strings: TemplateStringsArray, ...values: unknown[]): EvaluatedExpression; // ── cron (function) ── -declare function cron(strings: TemplateStringsArray, ...values: unknown[]): Expression; +declare function cron(strings: TemplateStringsArray, ...values: unknown[]): EvaluatedExpression; // ── expression (function) ── declare function expression(source: string, dialect?: ExpressionDialect, meta?: ExpressionMeta): EvaluatedExpression; @@ -811,7 +811,7 @@ declare function strictUnknownKeyError(options: StrictUnknownKeyErrorOptions): z declare function suggestFieldType(input: string): string[]; // ── tmpl (function) ── -declare function tmpl(strings: TemplateStringsArray, ...values: unknown[]): Expression; +declare function tmpl(strings: TemplateStringsArray, ...values: unknown[]): EvaluatedExpression; // ── unrecognisedMetaTypeRefusal (function) ── declare function unrecognisedMetaTypeRefusal(urlType: string): { From f11ea36be35bb0858c57d8f7aeec5777b3fec6ab Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 19 Sep 2026 08:16:28 +0000 Subject: [PATCH 13/13] docs(changeset): narrow the #17778 entry to what it delivers alone Main shipped the identical /`expression` return-type narrowing to EvaluatedExpression first, under #18638 (card #15811) -- confirmed by the merge: both sides made the same change independently, and ADR-0137's own status line says its PR carries no schema change. Re-announcing that narrowing here would duplicate #18638's own changeset entry in the same release. Drop the redundant paragraphs and keep only what #17778 alone ships: the ADR-0137 predicate fault-semantics contract and its ADR-0089 addendum. --- .changeset/17778-field-rule-predicate-fault-semantics.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.changeset/17778-field-rule-predicate-fault-semantics.md b/.changeset/17778-field-rule-predicate-fault-semantics.md index 5b7fa49e2b9..3516959bbcc 100644 --- a/.changeset/17778-field-rule-predicate-fault-semantics.md +++ b/.changeset/17778-field-rule-predicate-fault-semantics.md @@ -2,12 +2,12 @@ "@objectstack/spec": patch --- -**`cel` / `expression` (and the `F` / `P` aliases) now declare the `EvaluatedExpression` they have always emitted.** Both helpers always write a non-blank `source`, but both were declared as returning `Expression`, whose `source` is optional — a declaration of a shape neither function can produce. Fixed at the producer (#17778). +**ADR-0137 makes field-rule predicate fault semantics part of the contract** (#17778): what SUBMIT and RENDER do when a predicate cannot run. Clause-②: no -**Not a narrowing of anything an author can write.** No zod schema moves in this release entry: the accept set of every slot is unchanged, `api-surface/` is unchanged, and no export is added, removed or renamed. What changes is the return type in the published `.d.ts` of two existing exports, and narrowing a return type removes nothing from a caller — `EvaluatedExpression` is assignable to `Expression`, so every existing consumer still compiles and no call site needs editing. +**The predicate fault-semantics contract is recorded, not enforced, by this release.** ADR-0137 states what a field-rule predicate does when it cannot RUN: at SUBMIT a faulting predicate refuses the write and names the field and the rule (D2); at RENDER visibility stays fail-OPEN, so a rule that could not run never hides a control and lets the form write `null` over a column the user never saw (D3); a blank or faulting GATE predicate is diagnosed, never a silent `true` (D4); and the evaluation helper's fallback stays freely specifiable (D5), because fault-to-flag and fault-to-throw both exist only because it is a parameter. Those are consequences CONSUMERS deliver — `packages/spec` carries no business logic — and they land in the ObjectUI half. D1's authoring refusal (an `ast`-only envelope and a blank `source` are refused at authoring) is ruled by decision batch #122 item 2 and ships with the evaluated-slot narrowing that owns it, under that change's own ADR-0087 entry. -**Why it is worth a release entry anyway.** Every slot that composes `EvaluatedExpressionInputSchema` requires a non-blank `source`, so a ``P`record.status == 'paid'` `` assigned straight into one was a TS2322 against a value the schema accepts at runtime — the recommended authoring form failing to type-check in exactly the place it is recommended. The over-wide declaration was the cause, and the producer is where it is fixed rather than at the call sites (Prime Directive #12). +**ADR-0089 gains an addendum, not a reopening.** It unified the `visibleWhen` / `visibleOn` / `visibility` family under one name; ADR-0137 owns what that family does when a predicate cannot run, and ADR-0089 itself is unchanged by this release. -**The predicate fault-semantics contract is recorded, not enforced, by this release.** ADR-0137 states what a field-rule predicate does when it cannot RUN: at SUBMIT a faulting predicate refuses the write and names the field and the rule (D2); at RENDER visibility stays fail-OPEN, so a rule that could not run never hides a control and lets the form write `null` over a column the user never saw (D3); a blank or faulting GATE predicate is diagnosed, never a silent `true` (D4); and the evaluation helper's fallback stays freely specifiable (D5), because fault-to-flag and fault-to-throw both exist only because it is a parameter. Those are consequences CONSUMERS deliver — `packages/spec` carries no business logic — and they land in the ObjectUI half. D1's authoring refusal (an `ast`-only envelope and a blank `source` are refused at authoring) is ruled by decision batch #122 item 2 and ships with the evaluated-slot narrowing that owns it, under that change's own ADR-0087 entry. +**Not carried by this entry: the `cel` / `expression` return-type narrowing to `EvaluatedExpression`.** This card touched that signature too, but main shipped the identical narrowing first, under #18638 (card #15811) — see that release's own changeset for the `EvaluatedExpression` story and the TS2322 it fixes. Restating it here would announce, a second time, a fact this release has already shipped under a different entry.