@ai-matrx/records 0.53.0 → 0.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog — @ai-matrx/records
2
2
 
3
+ ## 0.54.0
4
+
5
+ **A formula can be re-aimed through a typed door.** (lane STORE-TAILS-2's ask, published by
6
+ PUBLISH-SWEEP-2.)
7
+
8
+ `custom.field_update` has carried `expr` in its behaviour arm since lane TAILS-2 — its spec
9
+ builder reads `coalesce(p_patch -> 'expr', v_old -> 'config' -> 'expr')` — but `FieldPatch`
10
+ never named the key. So the one edit a person makes to a formula that reads the wrong
11
+ column, re-aiming it, had no typed door in this package, and the client that needed it
12
+ reached for `custom.record_update` on the Field document instead: writing a column's
13
+ definition UNDER the store's guards rather than through them.
14
+
15
+ * `FieldPatch.expr?: Record<string, unknown>` — the expression in the same shape a Rule
16
+ uses and read by the same evaluator. It belongs to the door's BEHAVIOUR arm, so it is
17
+ sent WITH the word for what the column is (`type: "formula"`, or `parity_type` / `plain`);
18
+ the settings arm has no `expr` key, so `expr` alone is not a change this door makes. The
19
+ interface says so rather than leaving a caller to find out from silence.
20
+ * Guard: `src/__tests__/real-doors.test.ts` — "`expr` on a FieldPatch moves the expression;
21
+ a re-type without one keeps it", live against the main store inside the suite's
22
+ rollback-only transaction. Both halves are asserted, because "the expression is X
23
+ afterwards" would pass on a door that ignored the patch. Every `{"field": …}` names the
24
+ column BY ITS ID, which is what `custom._field_type_parity_guard` requires — a key is "a
25
+ name rather than a column". Shown RED (the re-aimed expression still held the title
26
+ column's id) then GREEN. Suite: 100/100.
27
+
3
28
  ## 0.53.0
4
29
 
5
30
  **Archiving a table is a job, not a statement.** (lane FIX-11A, VERIFIER-11 finding F3.)
@@ -1,5 +1,5 @@
1
- import { g as Timestamp, U as Uuid, h as RecordDocument, i as RecordsResult, j as RecordRead, k as ReadRow, l as Field, m as StoredRecord, N as NewFieldDeclaration, n as FieldPatch, o as RecordRevision, p as ReadValue, q as FieldProposal, r as TableProposal, s as RecordsError, W as WriteConflict, P as PgError, t as StaleWriteDetail, u as PredictedRefusal } from '../field-ddMymGEI.cjs';
2
- export { A as ABSENCE_REASONS, v as ACTOR_VOCABULARY, w as AbsenceReason, x as Actor, y as COMPUTE_ON, z as CONTEXT_POLICIES, C as ComputeOn, e as ContextPolicy, D as DECLARABLE_FIELD_KINDS, B as DELIVERIES, E as DeclarableFieldKind, G as Delivery, H as ENTITY_TOKENS, I as EntityToken, J as FIELD_SENSITIVITIES, K as FIELD_SOURCES, L as FRESHNESS, M as FieldBehavior, c as FieldRule, d as FieldSensitivity, b as FieldSource, F as FieldTypeWord, Q as ForbiddenEnvelopeWord, V as Freshness, X as HiddenFieldNotice, Y as KERNEL_TABLES, Z as KernelTableName, _ as MERGE_FIELD_MODIFIERS, $ as MERGE_FIELD_SEMANTIC_TYPES, a0 as MERGE_FIELD_SOURCES, a1 as MergeFieldModifier, a2 as MergeFieldSemanticType, a3 as MergeFieldSource, a4 as ON_DELETE, a5 as OVERRIDE_POLICIES, O as OnDelete, a6 as OverridePolicy, a7 as PARITY_FIELD_TYPES, a8 as PER_VALUE_ACCESS_WORDS, a9 as ParityFieldType, aa as ParityFieldTypeDescriptor, ab as PerValueAccessWord, ac as ProvenancePointer, ad as RELATION_BINDINGS, ae as RELATION_CARDINALITIES, af as RELATION_FLAVORS, ag as RETIRED_ACTOR_WORDS, ah as RULE_NODE_KINDS, ai as RULE_USES, aj as RecordsErrorCode, ak as RelationBinding, f as RelationCardinality, al as RelationDisplay, R as RelationFlavor, am as RetiredActorWord, an as RuleNodeKind, ao as RuleUse, ap as STORAGE_MODES, aq as STORE_DOORS, ar as STORE_KNOBS, as as STORE_REFUSAL_CODES, S as StorageMode, at as StoreDoorName, au as StoreRefusalCode, av as TABLE_DISPLAYS, aw as TABLE_ORIGINS, ax as TABLE_TYPES, a as TableDisplay, ay as TableOrigin, T as TableType, az as VALUE_ALTERNATE_KEYS, aA as VALUE_ENVELOPE_KEYS, aB as ValueAlternate, aC as ValueAlternateKey, aD as ValueEnvelope, aE as ValueEnvelopeKey, aF as ValueSource, aG as err, aH as isRecordsErr, aI as ok } from '../field-ddMymGEI.cjs';
1
+ import { g as Timestamp, U as Uuid, h as RecordDocument, i as RecordsResult, j as RecordRead, k as ReadRow, l as Field, m as StoredRecord, N as NewFieldDeclaration, n as FieldPatch, o as RecordRevision, p as ReadValue, q as FieldProposal, r as TableProposal, s as RecordsError, W as WriteConflict, P as PgError, t as StaleWriteDetail, u as PredictedRefusal } from '../field-Ct7_iYEF.cjs';
2
+ export { A as ABSENCE_REASONS, v as ACTOR_VOCABULARY, w as AbsenceReason, x as Actor, y as COMPUTE_ON, z as CONTEXT_POLICIES, C as ComputeOn, e as ContextPolicy, D as DECLARABLE_FIELD_KINDS, B as DELIVERIES, E as DeclarableFieldKind, G as Delivery, H as ENTITY_TOKENS, I as EntityToken, J as FIELD_SENSITIVITIES, K as FIELD_SOURCES, L as FRESHNESS, M as FieldBehavior, c as FieldRule, d as FieldSensitivity, b as FieldSource, F as FieldTypeWord, Q as ForbiddenEnvelopeWord, V as Freshness, X as HiddenFieldNotice, Y as KERNEL_TABLES, Z as KernelTableName, _ as MERGE_FIELD_MODIFIERS, $ as MERGE_FIELD_SEMANTIC_TYPES, a0 as MERGE_FIELD_SOURCES, a1 as MergeFieldModifier, a2 as MergeFieldSemanticType, a3 as MergeFieldSource, a4 as ON_DELETE, a5 as OVERRIDE_POLICIES, O as OnDelete, a6 as OverridePolicy, a7 as PARITY_FIELD_TYPES, a8 as PER_VALUE_ACCESS_WORDS, a9 as ParityFieldType, aa as ParityFieldTypeDescriptor, ab as PerValueAccessWord, ac as ProvenancePointer, ad as RELATION_BINDINGS, ae as RELATION_CARDINALITIES, af as RELATION_FLAVORS, ag as RETIRED_ACTOR_WORDS, ah as RULE_NODE_KINDS, ai as RULE_USES, aj as RecordsErrorCode, ak as RelationBinding, f as RelationCardinality, al as RelationDisplay, R as RelationFlavor, am as RetiredActorWord, an as RuleNodeKind, ao as RuleUse, ap as STORAGE_MODES, aq as STORE_DOORS, ar as STORE_KNOBS, as as STORE_REFUSAL_CODES, S as StorageMode, at as StoreDoorName, au as StoreRefusalCode, av as TABLE_DISPLAYS, aw as TABLE_ORIGINS, ax as TABLE_TYPES, a as TableDisplay, ay as TableOrigin, T as TableType, az as VALUE_ALTERNATE_KEYS, aA as VALUE_ENVELOPE_KEYS, aB as ValueAlternate, aC as ValueAlternateKey, aD as ValueEnvelope, aE as ValueEnvelopeKey, aF as ValueSource, aG as err, aH as isRecordsErr, aI as ok } from '../field-Ct7_iYEF.cjs';
3
3
  import { RelationCoordinate, RecordsConfig, TableArchiveProgress, RecordFilter, ArchiveLane, ArchivedRow, Table, TableCapacity, EntityTableFacts, NewEntityFieldDeclaration, EntityFieldRights, EntityRecordRead, EntityRecordsFound, Pipeline, PipelineColumn, PipelineVerdict, PipelineMoveResult, PipelineSpec, PipelineDeclared, StageRuleOnFail, StageRuleEnforcement, StagePending, StagePendingOnBoard, PipelineGate, PipelineGatePreview, FormSummary, BookingSummary, BookingAvailability, BookingDeclared, ImportPlan, ImportPolicy, ImportOpened, ImportColumnsDeclared, ImportBatchResult, ImportFinished, ImportReport, ImportRun, InboundDeclared, InboundAddress, PortalSummary, PortalArchiveFilter, PortalArchiveAnswer, PortalTableRef, PortalCard, PortalInvitation, PortalRevocation, PortalPreviewRow, DashboardSummary, DashboardBlock, DashboardRunResult, StuckRow, CaptureSheetSummary, CaptureSheetFace, CaptureFileRef, CaptureOutcome, EnrichmentSummary, EnrichDeclared, EnrichDueRow, EnrichCell, EnrichRun, AggregateMeasure, AggregateBucket, AggregateRow, Subscription, MySubscription, SubscriptionSpec, DigestPreview, SavedViewRow, SavedViewSpecIn, DocToken, DocUnresolvedToken, DocTemplateRow, DocRenderRow, DocSignatureRow, RecordHistoryEntry, RecordScopeContext, ConversationScope, ConversationScopeContext, FieldHistoryEntry, RestorePreview, RestoreResult, CommentThreadRead, CommentWritten, AnonTokenBinding, ChecklistSpec, ChecklistDeclared, ChecklistTemplateSummary, ChecklistTemplateShape, ChecklistRunStarted, ChecklistRunStep, ChecklistRunSummary, ChecklistStepCompleted, WorkState, WorkGraph, WorkInstantiation, WorkTurn, WorkAssignmentField, WorkSlotHold, WorkInboxItem, WorkListFlavour, WorkListItem, WorkAssignment, WorkRecordState, WorkApprover, WorkChange, WorkApprovalFiled, WorkApprovalDecision, ExternalPrincipalCard, PublishBinding, ResolvedPublishBinding, MyLevel, RecordsDataSource } from '../index.cjs';
4
4
  export { ARCHIVE_LANES, ARCHIVE_LANE_LABEL, ARCHIVE_LANE_MEANS, AggregateFilter, AggregateOperation, AggregateWindow, ArchivedDoorRow, BookingWindow, CaptureField, CaptureQuestion, CaptureQueue, CaptureQueueCounts, CaptureQueueOptions, CaptureQueuePorts, CaptureQueueStore, CaptureSyncReport, ChecklistRequirement, ChecklistRequirementKind, ChecklistRoleSpec, ChecklistStepSpec, ChecklistTrigger, ChecklistTriggerKind, ChoiceOption, ChoiceOptions, CoerceOptions, Coerced, CoercedAnswers, CoercibleField, CustomFieldTableType, DEFAULT_ARCHIVE_LANE, DEFAULT_PORTAL_ARCHIVE_FILTER, DashboardBlockKind, DashboardBlockResult, DocSignatureCheck, EnrichAlternate, EnrichSource, Enrichment, EntityFieldValue, EntityRecordMatch, FIELD_KINDS, FieldKind, HistoryActor, HistoryActorKind, HistoryChange, Home, ImportColumnPlan, ImportOutcome, ImportProposal, KernelTargets, MergeField, MergeFieldProvenance, MergeFieldResolution, MergeFieldTransform, MissingBehavior, PERMISSION_LEVELS, PIPELINE_RULE_KINDS, PORTAL_ARCHIVE_FILTERS, PermissionLevel, PipelineMissingField, PipelineRule, PipelineRuleKind, PipelineStage, PortalPrincipal, PortalTableExposure, QueuedCapture, QueuedCaptureFile, QueuedCaptureState, QuietHours, REFUSALS_WORTH_REPEATING, RecordComment, RecordScopeComment, RecordScopeField, RecordScopeHistoryEntry, RecordScopeRelation, RecordScopeWithheld, RecordsActor, RecordsChangeSink, RecordsErrorSink, RecordsFilter, RecordsRealtimePort, RecordsResolverPort, RecordsResponse, RecordsTableQuery, RegisteredTable, Relation, RelationCarries, RelationProperties, RelationTarget, ResolutionTriple, Rule, RuleAnswer, RuleExpression, STAGE_RULE_ENFORCEMENT, STAGE_RULE_ON_FAIL, StageRuleWarning, SubscriptionBlock, SubscriptionCadence, WorkDueState, WorkInboxKind, WorkOrigin, WorkTemplateNode, WorkTemplateRelation, archivedByLine, archivedWhen, asPermissionLevel, atLeast, bookingPath, choiceSlug, choiceValuesOf, choicesOf, coerceTypedAnswer, coerceTypedAnswers, coercionLabel, emptyArchiveLine, emptyPortalArchiveLine, fieldKindFor, forgetAllOps, highestLevel, holdsARetiredChoice, indexedDbStore, isArchiveLane, isDecided, isOwnOp, isPortalArchiveFilter, isTheChosen, looksLikeAnId, mayDrag, measureKey, memoryStore, mintClientKey, mintOpId, openCaptureQueue, optionKey, optionLabel, portalArchiveConsequence, portalConfirmLine, portalPath, portalTitleTypedBack, publicFormPath, rememberedOpCount, sameDocument, scopeChip, stableFilterKey } from '../index.cjs';
5
5
 
@@ -1,5 +1,5 @@
1
- import { g as Timestamp, U as Uuid, h as RecordDocument, i as RecordsResult, j as RecordRead, k as ReadRow, l as Field, m as StoredRecord, N as NewFieldDeclaration, n as FieldPatch, o as RecordRevision, p as ReadValue, q as FieldProposal, r as TableProposal, s as RecordsError, W as WriteConflict, P as PgError, t as StaleWriteDetail, u as PredictedRefusal } from '../field-ddMymGEI.js';
2
- export { A as ABSENCE_REASONS, v as ACTOR_VOCABULARY, w as AbsenceReason, x as Actor, y as COMPUTE_ON, z as CONTEXT_POLICIES, C as ComputeOn, e as ContextPolicy, D as DECLARABLE_FIELD_KINDS, B as DELIVERIES, E as DeclarableFieldKind, G as Delivery, H as ENTITY_TOKENS, I as EntityToken, J as FIELD_SENSITIVITIES, K as FIELD_SOURCES, L as FRESHNESS, M as FieldBehavior, c as FieldRule, d as FieldSensitivity, b as FieldSource, F as FieldTypeWord, Q as ForbiddenEnvelopeWord, V as Freshness, X as HiddenFieldNotice, Y as KERNEL_TABLES, Z as KernelTableName, _ as MERGE_FIELD_MODIFIERS, $ as MERGE_FIELD_SEMANTIC_TYPES, a0 as MERGE_FIELD_SOURCES, a1 as MergeFieldModifier, a2 as MergeFieldSemanticType, a3 as MergeFieldSource, a4 as ON_DELETE, a5 as OVERRIDE_POLICIES, O as OnDelete, a6 as OverridePolicy, a7 as PARITY_FIELD_TYPES, a8 as PER_VALUE_ACCESS_WORDS, a9 as ParityFieldType, aa as ParityFieldTypeDescriptor, ab as PerValueAccessWord, ac as ProvenancePointer, ad as RELATION_BINDINGS, ae as RELATION_CARDINALITIES, af as RELATION_FLAVORS, ag as RETIRED_ACTOR_WORDS, ah as RULE_NODE_KINDS, ai as RULE_USES, aj as RecordsErrorCode, ak as RelationBinding, f as RelationCardinality, al as RelationDisplay, R as RelationFlavor, am as RetiredActorWord, an as RuleNodeKind, ao as RuleUse, ap as STORAGE_MODES, aq as STORE_DOORS, ar as STORE_KNOBS, as as STORE_REFUSAL_CODES, S as StorageMode, at as StoreDoorName, au as StoreRefusalCode, av as TABLE_DISPLAYS, aw as TABLE_ORIGINS, ax as TABLE_TYPES, a as TableDisplay, ay as TableOrigin, T as TableType, az as VALUE_ALTERNATE_KEYS, aA as VALUE_ENVELOPE_KEYS, aB as ValueAlternate, aC as ValueAlternateKey, aD as ValueEnvelope, aE as ValueEnvelopeKey, aF as ValueSource, aG as err, aH as isRecordsErr, aI as ok } from '../field-ddMymGEI.js';
1
+ import { g as Timestamp, U as Uuid, h as RecordDocument, i as RecordsResult, j as RecordRead, k as ReadRow, l as Field, m as StoredRecord, N as NewFieldDeclaration, n as FieldPatch, o as RecordRevision, p as ReadValue, q as FieldProposal, r as TableProposal, s as RecordsError, W as WriteConflict, P as PgError, t as StaleWriteDetail, u as PredictedRefusal } from '../field-Ct7_iYEF.js';
2
+ export { A as ABSENCE_REASONS, v as ACTOR_VOCABULARY, w as AbsenceReason, x as Actor, y as COMPUTE_ON, z as CONTEXT_POLICIES, C as ComputeOn, e as ContextPolicy, D as DECLARABLE_FIELD_KINDS, B as DELIVERIES, E as DeclarableFieldKind, G as Delivery, H as ENTITY_TOKENS, I as EntityToken, J as FIELD_SENSITIVITIES, K as FIELD_SOURCES, L as FRESHNESS, M as FieldBehavior, c as FieldRule, d as FieldSensitivity, b as FieldSource, F as FieldTypeWord, Q as ForbiddenEnvelopeWord, V as Freshness, X as HiddenFieldNotice, Y as KERNEL_TABLES, Z as KernelTableName, _ as MERGE_FIELD_MODIFIERS, $ as MERGE_FIELD_SEMANTIC_TYPES, a0 as MERGE_FIELD_SOURCES, a1 as MergeFieldModifier, a2 as MergeFieldSemanticType, a3 as MergeFieldSource, a4 as ON_DELETE, a5 as OVERRIDE_POLICIES, O as OnDelete, a6 as OverridePolicy, a7 as PARITY_FIELD_TYPES, a8 as PER_VALUE_ACCESS_WORDS, a9 as ParityFieldType, aa as ParityFieldTypeDescriptor, ab as PerValueAccessWord, ac as ProvenancePointer, ad as RELATION_BINDINGS, ae as RELATION_CARDINALITIES, af as RELATION_FLAVORS, ag as RETIRED_ACTOR_WORDS, ah as RULE_NODE_KINDS, ai as RULE_USES, aj as RecordsErrorCode, ak as RelationBinding, f as RelationCardinality, al as RelationDisplay, R as RelationFlavor, am as RetiredActorWord, an as RuleNodeKind, ao as RuleUse, ap as STORAGE_MODES, aq as STORE_DOORS, ar as STORE_KNOBS, as as STORE_REFUSAL_CODES, S as StorageMode, at as StoreDoorName, au as StoreRefusalCode, av as TABLE_DISPLAYS, aw as TABLE_ORIGINS, ax as TABLE_TYPES, a as TableDisplay, ay as TableOrigin, T as TableType, az as VALUE_ALTERNATE_KEYS, aA as VALUE_ENVELOPE_KEYS, aB as ValueAlternate, aC as ValueAlternateKey, aD as ValueEnvelope, aE as ValueEnvelopeKey, aF as ValueSource, aG as err, aH as isRecordsErr, aI as ok } from '../field-Ct7_iYEF.js';
3
3
  import { RelationCoordinate, RecordsConfig, TableArchiveProgress, RecordFilter, ArchiveLane, ArchivedRow, Table, TableCapacity, EntityTableFacts, NewEntityFieldDeclaration, EntityFieldRights, EntityRecordRead, EntityRecordsFound, Pipeline, PipelineColumn, PipelineVerdict, PipelineMoveResult, PipelineSpec, PipelineDeclared, StageRuleOnFail, StageRuleEnforcement, StagePending, StagePendingOnBoard, PipelineGate, PipelineGatePreview, FormSummary, BookingSummary, BookingAvailability, BookingDeclared, ImportPlan, ImportPolicy, ImportOpened, ImportColumnsDeclared, ImportBatchResult, ImportFinished, ImportReport, ImportRun, InboundDeclared, InboundAddress, PortalSummary, PortalArchiveFilter, PortalArchiveAnswer, PortalTableRef, PortalCard, PortalInvitation, PortalRevocation, PortalPreviewRow, DashboardSummary, DashboardBlock, DashboardRunResult, StuckRow, CaptureSheetSummary, CaptureSheetFace, CaptureFileRef, CaptureOutcome, EnrichmentSummary, EnrichDeclared, EnrichDueRow, EnrichCell, EnrichRun, AggregateMeasure, AggregateBucket, AggregateRow, Subscription, MySubscription, SubscriptionSpec, DigestPreview, SavedViewRow, SavedViewSpecIn, DocToken, DocUnresolvedToken, DocTemplateRow, DocRenderRow, DocSignatureRow, RecordHistoryEntry, RecordScopeContext, ConversationScope, ConversationScopeContext, FieldHistoryEntry, RestorePreview, RestoreResult, CommentThreadRead, CommentWritten, AnonTokenBinding, ChecklistSpec, ChecklistDeclared, ChecklistTemplateSummary, ChecklistTemplateShape, ChecklistRunStarted, ChecklistRunStep, ChecklistRunSummary, ChecklistStepCompleted, WorkState, WorkGraph, WorkInstantiation, WorkTurn, WorkAssignmentField, WorkSlotHold, WorkInboxItem, WorkListFlavour, WorkListItem, WorkAssignment, WorkRecordState, WorkApprover, WorkChange, WorkApprovalFiled, WorkApprovalDecision, ExternalPrincipalCard, PublishBinding, ResolvedPublishBinding, MyLevel, RecordsDataSource } from '../index.js';
4
4
  export { ARCHIVE_LANES, ARCHIVE_LANE_LABEL, ARCHIVE_LANE_MEANS, AggregateFilter, AggregateOperation, AggregateWindow, ArchivedDoorRow, BookingWindow, CaptureField, CaptureQuestion, CaptureQueue, CaptureQueueCounts, CaptureQueueOptions, CaptureQueuePorts, CaptureQueueStore, CaptureSyncReport, ChecklistRequirement, ChecklistRequirementKind, ChecklistRoleSpec, ChecklistStepSpec, ChecklistTrigger, ChecklistTriggerKind, ChoiceOption, ChoiceOptions, CoerceOptions, Coerced, CoercedAnswers, CoercibleField, CustomFieldTableType, DEFAULT_ARCHIVE_LANE, DEFAULT_PORTAL_ARCHIVE_FILTER, DashboardBlockKind, DashboardBlockResult, DocSignatureCheck, EnrichAlternate, EnrichSource, Enrichment, EntityFieldValue, EntityRecordMatch, FIELD_KINDS, FieldKind, HistoryActor, HistoryActorKind, HistoryChange, Home, ImportColumnPlan, ImportOutcome, ImportProposal, KernelTargets, MergeField, MergeFieldProvenance, MergeFieldResolution, MergeFieldTransform, MissingBehavior, PERMISSION_LEVELS, PIPELINE_RULE_KINDS, PORTAL_ARCHIVE_FILTERS, PermissionLevel, PipelineMissingField, PipelineRule, PipelineRuleKind, PipelineStage, PortalPrincipal, PortalTableExposure, QueuedCapture, QueuedCaptureFile, QueuedCaptureState, QuietHours, REFUSALS_WORTH_REPEATING, RecordComment, RecordScopeComment, RecordScopeField, RecordScopeHistoryEntry, RecordScopeRelation, RecordScopeWithheld, RecordsActor, RecordsChangeSink, RecordsErrorSink, RecordsFilter, RecordsRealtimePort, RecordsResolverPort, RecordsResponse, RecordsTableQuery, RegisteredTable, Relation, RelationCarries, RelationProperties, RelationTarget, ResolutionTriple, Rule, RuleAnswer, RuleExpression, STAGE_RULE_ENFORCEMENT, STAGE_RULE_ON_FAIL, StageRuleWarning, SubscriptionBlock, SubscriptionCadence, WorkDueState, WorkInboxKind, WorkOrigin, WorkTemplateNode, WorkTemplateRelation, archivedByLine, archivedWhen, asPermissionLevel, atLeast, bookingPath, choiceSlug, choiceValuesOf, choicesOf, coerceTypedAnswer, coerceTypedAnswers, coercionLabel, emptyArchiveLine, emptyPortalArchiveLine, fieldKindFor, forgetAllOps, highestLevel, holdsARetiredChoice, indexedDbStore, isArchiveLane, isDecided, isOwnOp, isPortalArchiveFilter, isTheChosen, looksLikeAnId, mayDrag, measureKey, memoryStore, mintClientKey, mintOpId, openCaptureQueue, optionKey, optionLabel, portalArchiveConsequence, portalConfirmLine, portalPath, portalTitleTypedBack, publicFormPath, rememberedOpCount, sameDocument, scopeChip, stableFilterKey } from '../index.js';
5
5
 
@@ -4182,6 +4182,25 @@ interface FieldPatch {
4182
4182
  * them changed — a roll-up is always `read`.
4183
4183
  */
4184
4184
  compute_on?: ComputeOn;
4185
+ /**
4186
+ * FLD-11 / REC-15. RE-AIMING A WORKED-OUT COLUMN: the expression, in the same
4187
+ * shape a Rule uses and read by the same evaluator — `{"op":"concat","args":
4188
+ * [{"field":"note"}]}`. Every `{"field": …}` in it names a live Field of this
4189
+ * organization, or `custom._field_document_for` refuses the whole patch by
4190
+ * name and writes nothing.
4191
+ *
4192
+ * `custom.field_update` carries this in its BEHAVIOUR arm — the arm a type
4193
+ * word opens — so send it WITH the word for what the column is
4194
+ * (`type: "formula"`, or `parity_type` / `plain`). The door's spec builder
4195
+ * reads `coalesce(p_patch -> 'expr', v_old -> 'config' -> 'expr')`, so a
4196
+ * re-type that does not carry one deliberately keeps the expression the
4197
+ * column already had; the settings arm has no `expr` key at all, so `expr`
4198
+ * alone is not a change this door makes. `STORE-TAILS-2` asked for the field
4199
+ * because the one client that needed to re-aim an existing formula had no
4200
+ * typed way to say it and reached for `custom.record_update`, which writes the
4201
+ * Field document under the guards rather than through them.
4202
+ */
4203
+ expr?: Record<string, unknown>;
4185
4204
  }
4186
4205
 
4187
4206
  export { MERGE_FIELD_SEMANTIC_TYPES as $, ABSENCE_REASONS as A, DELIVERIES as B, type ComputeOn as C, DECLARABLE_FIELD_KINDS as D, type DeclarableFieldKind as E, type FieldTypeWord as F, type Delivery as G, ENTITY_TOKENS as H, type EntityToken as I, FIELD_SENSITIVITIES as J, FIELD_SOURCES as K, FRESHNESS as L, type FieldBehavior as M, type NewFieldDeclaration as N, type OnDelete as O, type PgError as P, type ForbiddenEnvelopeWord as Q, type RelationFlavor as R, type StorageMode as S, type TableType as T, type Uuid as U, type Freshness as V, type WriteConflict as W, type HiddenFieldNotice as X, KERNEL_TABLES as Y, type KernelTableName as Z, MERGE_FIELD_MODIFIERS as _, type TableDisplay as a, MERGE_FIELD_SOURCES as a0, type MergeFieldModifier as a1, type MergeFieldSemanticType as a2, type MergeFieldSource as a3, ON_DELETE as a4, OVERRIDE_POLICIES as a5, type OverridePolicy as a6, PARITY_FIELD_TYPES as a7, PER_VALUE_ACCESS_WORDS as a8, type ParityFieldType as a9, VALUE_ENVELOPE_KEYS as aA, type ValueAlternate as aB, type ValueAlternateKey as aC, type ValueEnvelope as aD, type ValueEnvelopeKey as aE, type ValueSource as aF, err as aG, isRecordsErr as aH, ok as aI, type ParityFieldTypeDescriptor as aa, type PerValueAccessWord as ab, type ProvenancePointer as ac, RELATION_BINDINGS as ad, RELATION_CARDINALITIES as ae, RELATION_FLAVORS as af, RETIRED_ACTOR_WORDS as ag, RULE_NODE_KINDS as ah, RULE_USES as ai, type RecordsErrorCode as aj, type RelationBinding as ak, type RelationDisplay as al, type RetiredActorWord as am, type RuleNodeKind as an, type RuleUse as ao, STORAGE_MODES as ap, STORE_DOORS as aq, STORE_KNOBS as ar, STORE_REFUSAL_CODES as as, type StoreDoorName as at, type StoreRefusalCode as au, TABLE_DISPLAYS as av, TABLE_ORIGINS as aw, TABLE_TYPES as ax, type TableOrigin as ay, VALUE_ALTERNATE_KEYS as az, type FieldSource as b, type FieldRule as c, type FieldSensitivity as d, type ContextPolicy as e, type RelationCardinality as f, type Timestamp as g, type RecordDocument as h, type RecordsResult as i, type RecordRead as j, type ReadRow as k, type Field as l, type StoredRecord as m, type FieldPatch as n, type RecordRevision as o, type ReadValue as p, type FieldProposal as q, type TableProposal as r, type RecordsError as s, type StaleWriteDetail as t, type PredictedRefusal as u, ACTOR_VOCABULARY as v, type AbsenceReason as w, type Actor as x, COMPUTE_ON as y, CONTEXT_POLICIES as z };
@@ -4182,6 +4182,25 @@ interface FieldPatch {
4182
4182
  * them changed — a roll-up is always `read`.
4183
4183
  */
4184
4184
  compute_on?: ComputeOn;
4185
+ /**
4186
+ * FLD-11 / REC-15. RE-AIMING A WORKED-OUT COLUMN: the expression, in the same
4187
+ * shape a Rule uses and read by the same evaluator — `{"op":"concat","args":
4188
+ * [{"field":"note"}]}`. Every `{"field": …}` in it names a live Field of this
4189
+ * organization, or `custom._field_document_for` refuses the whole patch by
4190
+ * name and writes nothing.
4191
+ *
4192
+ * `custom.field_update` carries this in its BEHAVIOUR arm — the arm a type
4193
+ * word opens — so send it WITH the word for what the column is
4194
+ * (`type: "formula"`, or `parity_type` / `plain`). The door's spec builder
4195
+ * reads `coalesce(p_patch -> 'expr', v_old -> 'config' -> 'expr')`, so a
4196
+ * re-type that does not carry one deliberately keeps the expression the
4197
+ * column already had; the settings arm has no `expr` key at all, so `expr`
4198
+ * alone is not a change this door makes. `STORE-TAILS-2` asked for the field
4199
+ * because the one client that needed to re-aim an existing formula had no
4200
+ * typed way to say it and reached for `custom.record_update`, which writes the
4201
+ * Field document under the guards rather than through them.
4202
+ */
4203
+ expr?: Record<string, unknown>;
4185
4204
  }
4186
4205
 
4187
4206
  export { MERGE_FIELD_SEMANTIC_TYPES as $, ABSENCE_REASONS as A, DELIVERIES as B, type ComputeOn as C, DECLARABLE_FIELD_KINDS as D, type DeclarableFieldKind as E, type FieldTypeWord as F, type Delivery as G, ENTITY_TOKENS as H, type EntityToken as I, FIELD_SENSITIVITIES as J, FIELD_SOURCES as K, FRESHNESS as L, type FieldBehavior as M, type NewFieldDeclaration as N, type OnDelete as O, type PgError as P, type ForbiddenEnvelopeWord as Q, type RelationFlavor as R, type StorageMode as S, type TableType as T, type Uuid as U, type Freshness as V, type WriteConflict as W, type HiddenFieldNotice as X, KERNEL_TABLES as Y, type KernelTableName as Z, MERGE_FIELD_MODIFIERS as _, type TableDisplay as a, MERGE_FIELD_SOURCES as a0, type MergeFieldModifier as a1, type MergeFieldSemanticType as a2, type MergeFieldSource as a3, ON_DELETE as a4, OVERRIDE_POLICIES as a5, type OverridePolicy as a6, PARITY_FIELD_TYPES as a7, PER_VALUE_ACCESS_WORDS as a8, type ParityFieldType as a9, VALUE_ENVELOPE_KEYS as aA, type ValueAlternate as aB, type ValueAlternateKey as aC, type ValueEnvelope as aD, type ValueEnvelopeKey as aE, type ValueSource as aF, err as aG, isRecordsErr as aH, ok as aI, type ParityFieldTypeDescriptor as aa, type PerValueAccessWord as ab, type ProvenancePointer as ac, RELATION_BINDINGS as ad, RELATION_CARDINALITIES as ae, RELATION_FLAVORS as af, RETIRED_ACTOR_WORDS as ag, RULE_NODE_KINDS as ah, RULE_USES as ai, type RecordsErrorCode as aj, type RelationBinding as ak, type RelationDisplay as al, type RetiredActorWord as am, type RuleNodeKind as an, type RuleUse as ao, STORAGE_MODES as ap, STORE_DOORS as aq, STORE_KNOBS as ar, STORE_REFUSAL_CODES as as, type StoreDoorName as at, type StoreRefusalCode as au, TABLE_DISPLAYS as av, TABLE_ORIGINS as aw, TABLE_TYPES as ax, type TableOrigin as ay, VALUE_ALTERNATE_KEYS as az, type FieldSource as b, type FieldRule as c, type FieldSensitivity as d, type ContextPolicy as e, type RelationCardinality as f, type Timestamp as g, type RecordDocument as h, type RecordsResult as i, type RecordRead as j, type ReadRow as k, type Field as l, type StoredRecord as m, type FieldPatch as n, type RecordRevision as o, type ReadValue as p, type FieldProposal as q, type TableProposal as r, type RecordsError as s, type StaleWriteDetail as t, type PredictedRefusal as u, ACTOR_VOCABULARY as v, type AbsenceReason as w, type Actor as x, COMPUTE_ON as y, CONTEXT_POLICIES as z };
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { U as Uuid, g as Timestamp, k as ReadRow, h as RecordDocument, T as TableType, a as TableDisplay, S as StorageMode, ay as TableOrigin, m as StoredRecord, l as Field, a9 as ParityFieldType, ao as RuleUse, an as RuleNodeKind, R as RelationFlavor, O as OnDelete, ak as RelationBinding, f as RelationCardinality, a3 as MergeFieldSource, a2 as MergeFieldSemanticType, a1 as MergeFieldModifier, a6 as OverridePolicy, G as Delivery, V as Freshness, x as Actor, P as PgError } from './field-ddMymGEI.cjs';
2
- export { A as ABSENCE_REASONS, v as ACTOR_VOCABULARY, w as AbsenceReason, y as COMPUTE_ON, z as CONTEXT_POLICIES, C as ComputeOn, e as ContextPolicy, D as DECLARABLE_FIELD_KINDS, B as DELIVERIES, E as DeclarableFieldKind, H as ENTITY_TOKENS, I as EntityToken, J as FIELD_SENSITIVITIES, K as FIELD_SOURCES, L as FRESHNESS, M as FieldBehavior, n as FieldPatch, q as FieldProposal, c as FieldRule, d as FieldSensitivity, b as FieldSource, F as FieldTypeWord, Q as ForbiddenEnvelopeWord, X as HiddenFieldNotice, Y as KERNEL_TABLES, Z as KernelTableName, _ as MERGE_FIELD_MODIFIERS, $ as MERGE_FIELD_SEMANTIC_TYPES, a0 as MERGE_FIELD_SOURCES, N as NewFieldDeclaration, a4 as ON_DELETE, a5 as OVERRIDE_POLICIES, a7 as PARITY_FIELD_TYPES, a8 as PER_VALUE_ACCESS_WORDS, aa as ParityFieldTypeDescriptor, ab as PerValueAccessWord, u as PredictedRefusal, ac as ProvenancePointer, ad as RELATION_BINDINGS, ae as RELATION_CARDINALITIES, af as RELATION_FLAVORS, ag as RETIRED_ACTOR_WORDS, ah as RULE_NODE_KINDS, ai as RULE_USES, p as ReadValue, j as RecordRead, o as RecordRevision, s as RecordsError, aj as RecordsErrorCode, i as RecordsResult, al as RelationDisplay, am as RetiredActorWord, ap as STORAGE_MODES, aq as STORE_DOORS, ar as STORE_KNOBS, as as STORE_REFUSAL_CODES, t as StaleWriteDetail, at as StoreDoorName, au as StoreRefusalCode, av as TABLE_DISPLAYS, aw as TABLE_ORIGINS, ax as TABLE_TYPES, r as TableProposal, az as VALUE_ALTERNATE_KEYS, aA as VALUE_ENVELOPE_KEYS, aB as ValueAlternate, aC as ValueAlternateKey, aD as ValueEnvelope, aE as ValueEnvelopeKey, aF as ValueSource, W as WriteConflict, aG as err, aH as isRecordsErr, aI as ok } from './field-ddMymGEI.cjs';
1
+ import { U as Uuid, g as Timestamp, k as ReadRow, h as RecordDocument, T as TableType, a as TableDisplay, S as StorageMode, ay as TableOrigin, m as StoredRecord, l as Field, a9 as ParityFieldType, ao as RuleUse, an as RuleNodeKind, R as RelationFlavor, O as OnDelete, ak as RelationBinding, f as RelationCardinality, a3 as MergeFieldSource, a2 as MergeFieldSemanticType, a1 as MergeFieldModifier, a6 as OverridePolicy, G as Delivery, V as Freshness, x as Actor, P as PgError } from './field-Ct7_iYEF.cjs';
2
+ export { A as ABSENCE_REASONS, v as ACTOR_VOCABULARY, w as AbsenceReason, y as COMPUTE_ON, z as CONTEXT_POLICIES, C as ComputeOn, e as ContextPolicy, D as DECLARABLE_FIELD_KINDS, B as DELIVERIES, E as DeclarableFieldKind, H as ENTITY_TOKENS, I as EntityToken, J as FIELD_SENSITIVITIES, K as FIELD_SOURCES, L as FRESHNESS, M as FieldBehavior, n as FieldPatch, q as FieldProposal, c as FieldRule, d as FieldSensitivity, b as FieldSource, F as FieldTypeWord, Q as ForbiddenEnvelopeWord, X as HiddenFieldNotice, Y as KERNEL_TABLES, Z as KernelTableName, _ as MERGE_FIELD_MODIFIERS, $ as MERGE_FIELD_SEMANTIC_TYPES, a0 as MERGE_FIELD_SOURCES, N as NewFieldDeclaration, a4 as ON_DELETE, a5 as OVERRIDE_POLICIES, a7 as PARITY_FIELD_TYPES, a8 as PER_VALUE_ACCESS_WORDS, aa as ParityFieldTypeDescriptor, ab as PerValueAccessWord, u as PredictedRefusal, ac as ProvenancePointer, ad as RELATION_BINDINGS, ae as RELATION_CARDINALITIES, af as RELATION_FLAVORS, ag as RETIRED_ACTOR_WORDS, ah as RULE_NODE_KINDS, ai as RULE_USES, p as ReadValue, j as RecordRead, o as RecordRevision, s as RecordsError, aj as RecordsErrorCode, i as RecordsResult, al as RelationDisplay, am as RetiredActorWord, ap as STORAGE_MODES, aq as STORE_DOORS, ar as STORE_KNOBS, as as STORE_REFUSAL_CODES, t as StaleWriteDetail, at as StoreDoorName, au as StoreRefusalCode, av as TABLE_DISPLAYS, aw as TABLE_ORIGINS, ax as TABLE_TYPES, r as TableProposal, az as VALUE_ALTERNATE_KEYS, aA as VALUE_ENVELOPE_KEYS, aB as ValueAlternate, aC as ValueAlternateKey, aD as ValueEnvelope, aE as ValueEnvelopeKey, aF as ValueSource, W as WriteConflict, aG as err, aH as isRecordsErr, aI as ok } from './field-Ct7_iYEF.cjs';
3
3
 
4
4
  /**
5
5
  * THE TWO LANES THE ARCHIVED-ITEMS LAW NAMES (Arman, 2026-09-09) — the same
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { U as Uuid, g as Timestamp, k as ReadRow, h as RecordDocument, T as TableType, a as TableDisplay, S as StorageMode, ay as TableOrigin, m as StoredRecord, l as Field, a9 as ParityFieldType, ao as RuleUse, an as RuleNodeKind, R as RelationFlavor, O as OnDelete, ak as RelationBinding, f as RelationCardinality, a3 as MergeFieldSource, a2 as MergeFieldSemanticType, a1 as MergeFieldModifier, a6 as OverridePolicy, G as Delivery, V as Freshness, x as Actor, P as PgError } from './field-ddMymGEI.js';
2
- export { A as ABSENCE_REASONS, v as ACTOR_VOCABULARY, w as AbsenceReason, y as COMPUTE_ON, z as CONTEXT_POLICIES, C as ComputeOn, e as ContextPolicy, D as DECLARABLE_FIELD_KINDS, B as DELIVERIES, E as DeclarableFieldKind, H as ENTITY_TOKENS, I as EntityToken, J as FIELD_SENSITIVITIES, K as FIELD_SOURCES, L as FRESHNESS, M as FieldBehavior, n as FieldPatch, q as FieldProposal, c as FieldRule, d as FieldSensitivity, b as FieldSource, F as FieldTypeWord, Q as ForbiddenEnvelopeWord, X as HiddenFieldNotice, Y as KERNEL_TABLES, Z as KernelTableName, _ as MERGE_FIELD_MODIFIERS, $ as MERGE_FIELD_SEMANTIC_TYPES, a0 as MERGE_FIELD_SOURCES, N as NewFieldDeclaration, a4 as ON_DELETE, a5 as OVERRIDE_POLICIES, a7 as PARITY_FIELD_TYPES, a8 as PER_VALUE_ACCESS_WORDS, aa as ParityFieldTypeDescriptor, ab as PerValueAccessWord, u as PredictedRefusal, ac as ProvenancePointer, ad as RELATION_BINDINGS, ae as RELATION_CARDINALITIES, af as RELATION_FLAVORS, ag as RETIRED_ACTOR_WORDS, ah as RULE_NODE_KINDS, ai as RULE_USES, p as ReadValue, j as RecordRead, o as RecordRevision, s as RecordsError, aj as RecordsErrorCode, i as RecordsResult, al as RelationDisplay, am as RetiredActorWord, ap as STORAGE_MODES, aq as STORE_DOORS, ar as STORE_KNOBS, as as STORE_REFUSAL_CODES, t as StaleWriteDetail, at as StoreDoorName, au as StoreRefusalCode, av as TABLE_DISPLAYS, aw as TABLE_ORIGINS, ax as TABLE_TYPES, r as TableProposal, az as VALUE_ALTERNATE_KEYS, aA as VALUE_ENVELOPE_KEYS, aB as ValueAlternate, aC as ValueAlternateKey, aD as ValueEnvelope, aE as ValueEnvelopeKey, aF as ValueSource, W as WriteConflict, aG as err, aH as isRecordsErr, aI as ok } from './field-ddMymGEI.js';
1
+ import { U as Uuid, g as Timestamp, k as ReadRow, h as RecordDocument, T as TableType, a as TableDisplay, S as StorageMode, ay as TableOrigin, m as StoredRecord, l as Field, a9 as ParityFieldType, ao as RuleUse, an as RuleNodeKind, R as RelationFlavor, O as OnDelete, ak as RelationBinding, f as RelationCardinality, a3 as MergeFieldSource, a2 as MergeFieldSemanticType, a1 as MergeFieldModifier, a6 as OverridePolicy, G as Delivery, V as Freshness, x as Actor, P as PgError } from './field-Ct7_iYEF.js';
2
+ export { A as ABSENCE_REASONS, v as ACTOR_VOCABULARY, w as AbsenceReason, y as COMPUTE_ON, z as CONTEXT_POLICIES, C as ComputeOn, e as ContextPolicy, D as DECLARABLE_FIELD_KINDS, B as DELIVERIES, E as DeclarableFieldKind, H as ENTITY_TOKENS, I as EntityToken, J as FIELD_SENSITIVITIES, K as FIELD_SOURCES, L as FRESHNESS, M as FieldBehavior, n as FieldPatch, q as FieldProposal, c as FieldRule, d as FieldSensitivity, b as FieldSource, F as FieldTypeWord, Q as ForbiddenEnvelopeWord, X as HiddenFieldNotice, Y as KERNEL_TABLES, Z as KernelTableName, _ as MERGE_FIELD_MODIFIERS, $ as MERGE_FIELD_SEMANTIC_TYPES, a0 as MERGE_FIELD_SOURCES, N as NewFieldDeclaration, a4 as ON_DELETE, a5 as OVERRIDE_POLICIES, a7 as PARITY_FIELD_TYPES, a8 as PER_VALUE_ACCESS_WORDS, aa as ParityFieldTypeDescriptor, ab as PerValueAccessWord, u as PredictedRefusal, ac as ProvenancePointer, ad as RELATION_BINDINGS, ae as RELATION_CARDINALITIES, af as RELATION_FLAVORS, ag as RETIRED_ACTOR_WORDS, ah as RULE_NODE_KINDS, ai as RULE_USES, p as ReadValue, j as RecordRead, o as RecordRevision, s as RecordsError, aj as RecordsErrorCode, i as RecordsResult, al as RelationDisplay, am as RetiredActorWord, ap as STORAGE_MODES, aq as STORE_DOORS, ar as STORE_KNOBS, as as STORE_REFUSAL_CODES, t as StaleWriteDetail, at as StoreDoorName, au as StoreRefusalCode, av as TABLE_DISPLAYS, aw as TABLE_ORIGINS, ax as TABLE_TYPES, r as TableProposal, az as VALUE_ALTERNATE_KEYS, aA as VALUE_ENVELOPE_KEYS, aB as ValueAlternate, aC as ValueAlternateKey, aD as ValueEnvelope, aE as ValueEnvelopeKey, aF as ValueSource, W as WriteConflict, aG as err, aH as isRecordsErr, aI as ok } from './field-Ct7_iYEF.js';
3
3
 
4
4
  /**
5
5
  * THE TWO LANES THE ARCHIVED-ITEMS LAW NAMES (Arman, 2026-09-09) — the same
@@ -4399,6 +4399,25 @@ interface FieldPatch {
4399
4399
  * them changed — a roll-up is always `read`.
4400
4400
  */
4401
4401
  compute_on?: ComputeOn;
4402
+ /**
4403
+ * FLD-11 / REC-15. RE-AIMING A WORKED-OUT COLUMN: the expression, in the same
4404
+ * shape a Rule uses and read by the same evaluator — `{"op":"concat","args":
4405
+ * [{"field":"note"}]}`. Every `{"field": …}` in it names a live Field of this
4406
+ * organization, or `custom._field_document_for` refuses the whole patch by
4407
+ * name and writes nothing.
4408
+ *
4409
+ * `custom.field_update` carries this in its BEHAVIOUR arm — the arm a type
4410
+ * word opens — so send it WITH the word for what the column is
4411
+ * (`type: "formula"`, or `parity_type` / `plain`). The door's spec builder
4412
+ * reads `coalesce(p_patch -> 'expr', v_old -> 'config' -> 'expr')`, so a
4413
+ * re-type that does not carry one deliberately keeps the expression the
4414
+ * column already had; the settings arm has no `expr` key at all, so `expr`
4415
+ * alone is not a change this door makes. `STORE-TAILS-2` asked for the field
4416
+ * because the one client that needed to re-aim an existing formula had no
4417
+ * typed way to say it and reached for `custom.record_update`, which writes the
4418
+ * Field document under the guards rather than through them.
4419
+ */
4420
+ expr?: Record<string, unknown>;
4402
4421
  }
4403
4422
 
4404
4423
  /** One option, as `_choices` names it and as `optionsOf` returns it. */
@@ -4399,6 +4399,25 @@ interface FieldPatch {
4399
4399
  * them changed — a roll-up is always `read`.
4400
4400
  */
4401
4401
  compute_on?: ComputeOn;
4402
+ /**
4403
+ * FLD-11 / REC-15. RE-AIMING A WORKED-OUT COLUMN: the expression, in the same
4404
+ * shape a Rule uses and read by the same evaluator — `{"op":"concat","args":
4405
+ * [{"field":"note"}]}`. Every `{"field": …}` in it names a live Field of this
4406
+ * organization, or `custom._field_document_for` refuses the whole patch by
4407
+ * name and writes nothing.
4408
+ *
4409
+ * `custom.field_update` carries this in its BEHAVIOUR arm — the arm a type
4410
+ * word opens — so send it WITH the word for what the column is
4411
+ * (`type: "formula"`, or `parity_type` / `plain`). The door's spec builder
4412
+ * reads `coalesce(p_patch -> 'expr', v_old -> 'config' -> 'expr')`, so a
4413
+ * re-type that does not carry one deliberately keeps the expression the
4414
+ * column already had; the settings arm has no `expr` key at all, so `expr`
4415
+ * alone is not a change this door makes. `STORE-TAILS-2` asked for the field
4416
+ * because the one client that needed to re-aim an existing formula had no
4417
+ * typed way to say it and reached for `custom.record_update`, which writes the
4418
+ * Field document under the guards rather than through them.
4419
+ */
4420
+ expr?: Record<string, unknown>;
4402
4421
  }
4403
4422
 
4404
4423
  /** One option, as `_choices` names it and as `optionsOf` returns it. */
@@ -1,4 +1,4 @@
1
- import { T as TableType, a as TableDisplay, S as StorageMode, F as FieldTypeWord, b as FieldSource, C as ComputeOn, c as FieldRule, d as FieldSensitivity, e as ContextPolicy, R as RelationFlavor, f as RelationCardinality, O as OnDelete } from '../field-ddMymGEI.cjs';
1
+ import { T as TableType, a as TableDisplay, S as StorageMode, F as FieldTypeWord, b as FieldSource, C as ComputeOn, c as FieldRule, d as FieldSensitivity, e as ContextPolicy, R as RelationFlavor, f as RelationCardinality, O as OnDelete } from '../field-Ct7_iYEF.cjs';
2
2
 
3
3
  /**
4
4
  * Who the data belongs to. A test organization is created under this name — the
@@ -1,4 +1,4 @@
1
- import { T as TableType, a as TableDisplay, S as StorageMode, F as FieldTypeWord, b as FieldSource, C as ComputeOn, c as FieldRule, d as FieldSensitivity, e as ContextPolicy, R as RelationFlavor, f as RelationCardinality, O as OnDelete } from '../field-ddMymGEI.js';
1
+ import { T as TableType, a as TableDisplay, S as StorageMode, F as FieldTypeWord, b as FieldSource, C as ComputeOn, c as FieldRule, d as FieldSensitivity, e as ContextPolicy, R as RelationFlavor, f as RelationCardinality, O as OnDelete } from '../field-Ct7_iYEF.js';
2
2
 
3
3
  /**
4
4
  * Who the data belongs to. A test organization is created under this name — the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-matrx/records",
3
- "version": "0.53.0",
3
+ "version": "0.54.0",
4
4
  "description": "The headless client of the AI Matrx record store: the Table / Field / Rule / Record / Relation / Home types, the closed vocabularies and refusal codes read from the store itself, the typed calls over the store's doors and nothing else, the merge-field declaration, a validation mirror that predicts only what the store's own triggers refuse, and the never-throw result envelope. Zero React, zero DOM in the root and /core.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",