@stndrds/schema 1.0.0-alpha.185 → 1.0.0-alpha.187

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/{filters-qNc-JmQI.d.ts → filters-DVBn5tov.d.ts} +81 -39
  2. package/dist/{filters-DVbxM2W4.d.mts → filters-HDG4kLoo.d.mts} +81 -39
  3. package/dist/{helpers-g5uHrKfE.d.mts → helpers-BjuFhbQQ.d.mts} +2 -2
  4. package/dist/{helpers-D-_4FAcR.d.ts → helpers-CSuoa3kj.d.ts} +2 -2
  5. package/dist/index.d.mts +185 -56
  6. package/dist/index.d.ts +185 -56
  7. package/dist/index.js +229 -105
  8. package/dist/index.mjs +215 -99
  9. package/dist/{types-CQTltaH_.d.ts → types-Bdlhgrf7.d.ts} +1 -1
  10. package/dist/{types-BTrwWar6.d.mts → types-C5DittlR.d.mts} +1 -1
  11. package/dist/validation/all.d.mts +3 -3
  12. package/dist/validation/all.d.ts +3 -3
  13. package/dist/validation/all.js +8 -8
  14. package/dist/validation/all.mjs +2 -2
  15. package/dist/validation/complex/currency.d.mts +2 -2
  16. package/dist/validation/complex/currency.d.ts +2 -2
  17. package/dist/validation/complex/file.d.mts +2 -2
  18. package/dist/validation/complex/file.d.ts +2 -2
  19. package/dist/validation/complex/location.d.mts +2 -2
  20. package/dist/validation/complex/location.d.ts +2 -2
  21. package/dist/validation/complex/phone.d.mts +2 -2
  22. package/dist/validation/complex/phone.d.ts +2 -2
  23. package/dist/validation/complex/relation.d.mts +2 -2
  24. package/dist/validation/complex/relation.d.ts +2 -2
  25. package/dist/validation/complex/richtext.d.mts +2 -2
  26. package/dist/validation/complex/richtext.d.ts +2 -2
  27. package/dist/validation/complex/select.d.mts +2 -2
  28. package/dist/validation/complex/select.d.ts +2 -2
  29. package/dist/validation/complex/user.d.mts +2 -2
  30. package/dist/validation/complex/user.d.ts +2 -2
  31. package/dist/validation/computed/formula.d.mts +2 -2
  32. package/dist/validation/computed/formula.d.ts +2 -2
  33. package/dist/validation/computed/rollup.d.mts +2 -2
  34. package/dist/validation/computed/rollup.d.ts +2 -2
  35. package/dist/validation/config/index.d.mts +1 -1
  36. package/dist/validation/config/index.d.ts +1 -1
  37. package/dist/validation/core/index.d.mts +3 -3
  38. package/dist/validation/core/index.d.ts +3 -3
  39. package/dist/validation/object/index.d.mts +3 -3
  40. package/dist/validation/object/index.d.ts +3 -3
  41. package/dist/validation/object/index.js +14 -14
  42. package/dist/validation/object/index.mjs +2 -2
  43. package/dist/validation/primitives/checkbox.d.mts +2 -2
  44. package/dist/validation/primitives/checkbox.d.ts +2 -2
  45. package/dist/validation/primitives/date.d.mts +2 -2
  46. package/dist/validation/primitives/date.d.ts +2 -2
  47. package/dist/validation/primitives/number.d.mts +2 -2
  48. package/dist/validation/primitives/number.d.ts +2 -2
  49. package/dist/validation/primitives/rating.d.mts +2 -2
  50. package/dist/validation/primitives/rating.d.ts +2 -2
  51. package/dist/validation/primitives/text.d.mts +2 -2
  52. package/dist/validation/primitives/text.d.ts +2 -2
  53. package/package.json +2 -2
  54. package/dist/{chunk-HG6EF4XD.js → chunk-64R5X3DF.js} +1 -1
  55. package/dist/{chunk-M7ZNKBOE.mjs → chunk-6JEQE4IP.mjs} +1 -1
package/dist/index.d.ts CHANGED
@@ -1,15 +1,15 @@
1
- import { k as SortRule, l as FilterState, m as Timestamps, n as AttributeType, V as ViewType, o as ViewConfig, p as ConfigOverrides, j as CompletionStatus, A as Attribute, q as LocationGranularity, r as Location, e as FormulaAttribute, f as RollupAttribute, s as DocumentAttribute, d as StatusAttribute, c as SelectAttribute, b as MultiselectAttribute, t as Phone, u as Currency, D as DateAttribute, U as UserAttribute, v as DocumentSlotConfig, w as PropertySchema, x as FeatureGate, g as CheckboxAttribute, C as CurrencyAttribute, i as TextAttribute, T as TextAreaAttribute, N as NumberAttribute, P as PhoneAttribute, y as Option, h as RatingAttribute, L as LocationAttribute, F as FileAttribute, z as FormulaReturnType, R as RelationAttribute, B as BilateralConfig, S as SingleRelationAttribute, M as MultiRelationAttribute, E as RelationTarget, a as RichtextAttribute, G as RichtextFeature, H as RollupFunction, I as MigrationDefinition, O as ObjectDefinition, J as DetailViewConfig, K as DetailViewDefinition, Q as DetailViewLayout, W as SidePanelConfig, X as Field, Y as AttributeGroupField, Z as FieldGroup, _ as RelationGroup, $ as Group, a0 as TableTab, a1 as CreateMode, a2 as Tab, a3 as ListViewConfig, a4 as ListViewDefinition, a5 as FlagValueType, a6 as FeatureFlagDefinition, a7 as FlagLevel, a8 as FeatureFlagsRepository, a9 as StaticFlagDefault, aa as ResolvedFlag, ab as ViewDefinition, ac as ListViewTab, ad as FilterOperator, ae as FilterValue, af as FilterRule } from './filters-qNc-JmQI.js';
2
- export { ag as ActivityTab, ah as AdvancedFilterState, ai as AttributeGroup, aj as BaseAttribute, ak as BuiltInTransform, al as CreateDocument, am as CreateDocumentSlot, an as CreateProcessingJob, ao as CurrencyFilterValue, ap as CustomTab, aq as DEFAULT_DOCUMENT_SLOT, ar as DateFormat, as as DateValue, at as Document, au as DocumentListOptions, av as DocumentSlot, aw as DocumentWithSlots, ax as DocumentsTab, ay as ExtendedFilterRule, az as FeatureFlagsConfig, aA as FilterCombinator, aB as FilterGroup, aC as FlagOverride, aD as FormDensity, aE as FormTab, aF as FormsTab, aG as InverseSource, aH as ListViewLayout, aI as MigrationError, aJ as NO_VALUE_OPERATORS, aK as NoValueOperator, aL as NumberUnit, aM as OPERATORS_BY_TYPE, aN as ObjectAttribute, aO as ObjectRecord, aP as OptionPropertyAttribute, aQ as PhoneFilterValue, aR as ProcessingJob, aS as ProcessingJobStatus, aT as ProcessingJobType, aU as PropertyAttribute, aV as PropertyType, aW as QueryState, aX as RELATION_TARGET_ANY, aY as RESERVED_ATTRIBUTE_NAMES, aZ as RecordDocuments, a_ as RelationSource, a$ as RelativeDateValue, b0 as ReservedAttributeName, b1 as RichtextTab, b2 as SYSTEM_FIELD_NAMES, b3 as SchemaOperation, b4 as SchemaTransform, b5 as SlotStatus, b6 as SortDirection, b7 as StatusGroup, b8 as SystemFieldName, b9 as TabType, ba as TableSource, bb as TransformSource, bc as UpdateDocument, bd as UpdateDocumentSlot, be as UpdateProcessingJob, bf as ViewOperation, bg as ViewOverlay, bh as ViewTransform, bi as getRollupFilterOperators, bj as hasOptions, bk as inferInverseCardinality, bl as isAttributeSortable, bm as isBilateralRelation, bn as isDetailView, bo as isFieldGroup, bp as isListView, bq as isNoValueOperator, br as isRelationGroup, bs as isUniversalRelation } from './filters-qNc-JmQI.js';
1
+ import { k as SortRule, l as FilterState, m as Timestamps, n as AttributeType, o as DocumentLayout, V as ViewType, p as ViewConfig, q as ConfigOverrides, j as CompletionStatus, A as Attribute, r as SchemaOperation, s as LocationGranularity, t as Location, e as FormulaAttribute, f as RollupAttribute, u as DocumentAttribute, d as StatusAttribute, c as SelectAttribute, b as MultiselectAttribute, v as Phone, w as Currency, D as DateAttribute, U as UserAttribute, x as DocumentSlotConfig, y as PropertySchema, z as FeatureGate, g as CheckboxAttribute, C as CurrencyAttribute, i as TextAttribute, T as TextAreaAttribute, N as NumberAttribute, P as PhoneAttribute, B as Option, h as RatingAttribute, L as LocationAttribute, F as FileAttribute, E as FormulaReturnType, R as RelationAttribute, G as BilateralConfig, S as SingleRelationAttribute, M as MultiRelationAttribute, H as RelationTarget, a as RichtextAttribute, I as RichtextFeature, J as RollupFunction, K as MigrationDefinition, O as ObjectDefinition, Q as DetailViewConfig, W as DetailViewDefinition, X as DetailViewLayout, Y as SidePanelConfig, Z as Field, _ as AttributeGroupField, $ as FieldGroup, a0 as RelationGroup, a1 as Group, a2 as TableTab, a3 as CreateMode, a4 as Tab, a5 as ListViewConfig, a6 as ListViewDefinition, a7 as FlagValueType, a8 as FeatureFlagDefinition, a9 as FlagLevel, aa as FeatureFlagsRepository, ab as StaticFlagDefault, ac as ResolvedFlag, ad as ViewDefinition, ae as ListViewTab, af as FilterOperator, ag as FilterValue, ah as FilterRule } from './filters-DVBn5tov.js';
2
+ export { ai as ActivityTab, aj as AdvancedFilterState, ak as AttributeGroup, al as BaseAttribute, am as BuiltInTransform, an as CreateDocument, ao as CreateDocumentLink, ap as CreateDocumentSlot, aq as CreateProcessingJob, ar as CurrencyFilterValue, as as CustomTab, at as DEFAULT_DOCUMENT_SLOT, au as DateFormat, av as DateValue, aw as Document, ax as DocumentKind, ay as DocumentLayoutVariant, az as DocumentListOptions, aA as DocumentSlot, aB as DocumentWithSlots, aC as DocumentWithSubCount, aD as DocumentsTab, aE as ExtendedFilterRule, aF as FeatureFlagsConfig, aG as FilterCombinator, aH as FilterGroup, aI as FlagOverride, aJ as FolderPreset, aK as FormDensity, aL as FormTab, aM as FormsTab, aN as InverseSource, aO as ListViewLayout, aP as MAX_PRESET_DEPTH, aQ as MigrationError, aR as NO_VALUE_OPERATORS, aS as NoValueOperator, aT as NumberUnit, aU as OPERATORS_BY_TYPE, aV as ObjectAttribute, aW as ObjectRecord, aX as OptionPropertyAttribute, aY as PhoneFilterValue, aZ as PresetNode, a_ as ProcessingJob, a$ as ProcessingJobStatus, b0 as ProcessingJobType, b1 as PropertyAttribute, b2 as PropertyType, b3 as QueryState, b4 as RELATION_TARGET_ANY, b5 as RESERVED_ATTRIBUTE_NAMES, b6 as RecordDocuments, b7 as RelationSource, b8 as RelativeDateValue, b9 as ReservedAttributeName, ba as RichtextTab, bb as SYSTEM_FIELD_NAMES, bc as SlotStatus, bd as SortDirection, be as StatusGroup, bf as SystemFieldName, bg as TabType, bh as TableSource, bi as UpdateDocument, bj as UpdateDocumentSlot, bk as UpdateProcessingJob, bl as ViewOperation, bm as ViewOverlay, bn as ViewTransform, bo as getRollupFilterOperators, bp as hasOptions, bq as inferInverseCardinality, br as isAttributeSortable, bs as isBilateralRelation, bt as isDetailView, bu as isFieldGroup, bv as isListView, bw as isNoValueOperator, bx as isRelationGroup, by as isUniversalRelation } from './filters-DVBn5tov.js';
3
3
  import { MimeType, IconName, ColorId, CountryIso3, CurrencyCode } from '@stndrds/constants';
4
4
  import { Uuid, TenantId } from './utils.js';
5
5
  export { UserId, asTenantId, asUserId, deepEqual, generateId, indexBy } from './utils.js';
6
6
  import { StandardSchemaV1 } from '@standard-schema/spec';
7
7
  export { StandardSchemaV1 } from '@standard-schema/spec';
8
8
  import z from 'zod';
9
- export { V as ValidationMessages } from './types-CQTltaH_.js';
9
+ export { V as ValidationMessages } from './types-Bdlhgrf7.js';
10
10
  export { DEFAULT_VALIDATION_MESSAGES, formatZodErrors } from './validation/core/index.js';
11
11
  export { parseAttributeConfig } from './validation/config/index.js';
12
- export { c as computeRecordStatus, a as createFormAttributeValidator, v as validateDraft, b as validateDraftOrThrow, d as validateObject, e as validateObjectOrThrow } from './helpers-D-_4FAcR.js';
12
+ export { c as computeRecordStatus, a as createFormAttributeValidator, v as validateDraft, b as validateDraftOrThrow, d as validateObject, e as validateObjectOrThrow } from './helpers-CSuoa3kj.js';
13
13
 
14
14
  /**
15
15
  * Generic list options for pagination and sorting
@@ -203,6 +203,8 @@ interface DBObject extends Timestamps {
203
203
  labelExpression: string;
204
204
  system: boolean;
205
205
  metadata?: Record<string, unknown>;
206
+ /** Smart-folder layout convention for documents attached to records of this object. */
207
+ documentLayout?: DocumentLayout;
206
208
  }
207
209
  /**
208
210
  * Data for creating a new object.
@@ -217,6 +219,7 @@ interface CreateDBObject {
217
219
  labelExpression: string;
218
220
  system?: boolean;
219
221
  metadata?: Record<string, unknown>;
222
+ documentLayout?: DocumentLayout;
220
223
  }
221
224
  interface UpdateDBObject {
222
225
  label?: string;
@@ -225,6 +228,7 @@ interface UpdateDBObject {
225
228
  icon?: IconName;
226
229
  labelExpression?: string;
227
230
  metadata?: Record<string, unknown>;
231
+ documentLayout?: DocumentLayout;
228
232
  }
229
233
  /**
230
234
  * Data for upserting an object.
@@ -317,6 +321,13 @@ interface CreateObjectRecord {
317
321
  */
318
322
  createdBy?: string;
319
323
  }
324
+ /**
325
+ * Controls which records are returned based on their soft-delete state.
326
+ * - `liveOnly` (default): excludes soft-deleted records (deleted_at IS NOT NULL)
327
+ * - `archivedOnly`: returns only soft-deleted records
328
+ * - `all`: returns all records regardless of soft-delete state
329
+ */
330
+ type DeletedMode = "liveOnly" | "archivedOnly" | "all";
320
331
  /**
321
332
  * Search options for full-text search
322
333
  */
@@ -340,6 +351,11 @@ interface SearchOptions extends ListOptions {
340
351
  * elsewhere in the application).
341
352
  */
342
353
  constrainToIds?: string[] | null;
354
+ /**
355
+ * Controls which records are returned based on soft-delete state.
356
+ * Defaults to `liveOnly` when omitted.
357
+ */
358
+ deletedMode?: DeletedMode;
343
359
  }
344
360
  /**
345
361
  * Global search options (standalone, not extending ListOptions)
@@ -353,6 +369,8 @@ interface GlobalSearchOptions {
353
369
  objectNames?: string[];
354
370
  /** See {@link SearchOptions.semanticRatio}. */
355
371
  semanticRatio?: number;
372
+ /** Soft-delete visibility mode. Default: "liveOnly" */
373
+ deletedMode?: DeletedMode;
356
374
  }
357
375
  /**
358
376
  * Global search grouped options
@@ -364,6 +382,8 @@ interface GlobalSearchGroupedOptions {
364
382
  limit?: number;
365
383
  /** See {@link SearchOptions.semanticRatio}. */
366
384
  semanticRatio?: number;
385
+ /** Soft-delete visibility mode. Default: "liveOnly" */
386
+ deletedMode?: DeletedMode;
367
387
  }
368
388
  /**
369
389
  * Global search result item
@@ -378,6 +398,8 @@ interface GlobalSearchResultItem {
378
398
  completionStatus: CompletionStatus;
379
399
  createdAt: Date;
380
400
  updatedAt: Date;
401
+ /** Present when the record is soft-deleted (deletedMode: archivedOnly or all). */
402
+ deletedAt?: Date | null;
381
403
  }
382
404
  /**
383
405
  * Global search grouped result
@@ -731,15 +753,19 @@ interface AgentExecutionPolicy {
731
753
  type PermissionScope = "object" | "system";
732
754
  /**
733
755
  * Actions that can be performed on a resource.
756
+ *
757
+ * `observe` is intentionally excluded from `ALL_ACTIONS` ("full" preset) — it
758
+ * is only meaningful for runnable resources (agent sessions) where it grants
759
+ * read-only visibility on the run timeline without implying CRUD.
734
760
  */
735
- type Action = "read" | "create" | "update" | "delete" | "manage";
761
+ type Action = "read" | "create" | "update" | "delete" | "manage" | "observe";
736
762
  /**
737
763
  * System resources that can be managed.
738
764
  * - `people`: User profiles, invitations, roles and permissions
739
765
  * - `workspace`: Tenant settings and workspace-level configuration
740
766
  * - `architect`: Architect settings, templates, and configurations
741
767
  */
742
- type SystemResource = "people" | "workspace" | "architect" | "feature-flags" | "files" | "views" | "forms" | "documents" | "audit" | "api-keys";
768
+ type SystemResource = "people" | "workspace" | "architect" | "feature-flags" | "files" | "views" | "forms" | "documents" | "audit" | "api-keys" | "session";
743
769
  /**
744
770
  * Preset access levels for simplified permission configuration.
745
771
  * - `full`: All CRUD actions
@@ -1088,7 +1114,7 @@ type AuditResourceType = "record" | "object" | "attribute" | "user" | "role" | "
1088
1114
  /**
1089
1115
  * Actions that can be audited
1090
1116
  */
1091
- type AuditAction = "record.created" | "record.updated" | "record.deleted" | "record.restored" | "object.created" | "object.updated" | "object.deleted" | "attribute.created" | "attribute.updated" | "attribute.deleted" | "user.created" | "user.invited" | "user.updated" | "user.deleted" | "user.login" | "user.logout" | "role.created" | "role.updated" | "role.deleted" | "role.assigned" | "role.revoked" | "settings.updated" | "file.uploaded" | "file.updated" | "file.deleted";
1117
+ type AuditAction = "record.created" | "record.updated" | "record.deleted" | "record.restored" | "record.purged" | "object.created" | "object.updated" | "object.deleted" | "attribute.created" | "attribute.updated" | "attribute.deleted" | "user.created" | "user.invited" | "user.updated" | "user.deleted" | "user.login" | "user.logout" | "role.created" | "role.updated" | "role.deleted" | "role.assigned" | "role.revoked" | "settings.updated" | "file.uploaded" | "file.updated" | "file.deleted";
1092
1118
  /**
1093
1119
  * Actor type - who performed the action
1094
1120
  */
@@ -1865,6 +1891,13 @@ declare const SchemaErrorCode: {
1865
1891
  readonly FORBIDDEN: "SCHEMA_FORBIDDEN";
1866
1892
  readonly ACCESS_DENIED: "SCHEMA_ACCESS_DENIED";
1867
1893
  readonly SYNC_FAILED: "SCHEMA_SYNC_FAILED";
1894
+ readonly SYNC_CONFLICT: "SCHEMA_SYNC_CONFLICT";
1895
+ readonly SYNC_CASCADE: "SCHEMA_SYNC_CASCADE";
1896
+ readonly ORPHAN_SYSTEM_ATTRIBUTE: "SCHEMA_ORPHAN_SYSTEM_ATTRIBUTE";
1897
+ readonly SYSTEM_ENTITY_IMMUTABLE: "SCHEMA_SYSTEM_ENTITY_IMMUTABLE";
1898
+ readonly DESTRUCTIVE_NOT_ALLOWED: "SCHEMA_DESTRUCTIVE_NOT_ALLOWED";
1899
+ readonly MIGRATION_TIMEOUT: "SCHEMA_MIGRATION_TIMEOUT";
1900
+ readonly CHANGE_TYPE_NOT_SUPPORTED: "SCHEMA_CHANGE_TYPE_NOT_SUPPORTED";
1868
1901
  readonly DUPLICATE_OBJECT: "SCHEMA_DUPLICATE_OBJECT";
1869
1902
  readonly DUPLICATE_ATTRIBUTE: "SCHEMA_DUPLICATE_ATTRIBUTE";
1870
1903
  readonly CONFLICT: "SCHEMA_CONFLICT";
@@ -1962,6 +1995,89 @@ declare class SyncError extends SchemaError {
1962
1995
  readonly cause?: Error;
1963
1996
  constructor(objectName: string, message: string, cause?: Error);
1964
1997
  }
1998
+ /**
1999
+ * Thrown when code tries to mutate a system entity at runtime.
2000
+ * System entities are declared in code and immutable at runtime.
2001
+ * HTTP status: 403 Forbidden.
2002
+ */
2003
+ declare class SystemEntityImmutableError extends SchemaError {
2004
+ readonly entityType: string;
2005
+ readonly entityName: string;
2006
+ constructor(entityType: string, entityName: string);
2007
+ }
2008
+ interface SyncConflictParams {
2009
+ objectName: string;
2010
+ attributeName?: string;
2011
+ reason: string;
2012
+ }
2013
+ /**
2014
+ * Thrown at boot when an auto-promote cannot proceed due to incompatible types
2015
+ * or constraints. The dev must resolve manually (relax constraints, migrate
2016
+ * values, or rename).
2017
+ */
2018
+ declare class SyncConflictError extends SchemaError {
2019
+ readonly objectName: string;
2020
+ readonly attributeName?: string;
2021
+ readonly reason: string;
2022
+ constructor(params: SyncConflictParams);
2023
+ }
2024
+ /**
2025
+ * Thrown at boot when an object is being demoted but still has system attributes
2026
+ * declared in code. The dev forgot to remove those attributes too, or kept the
2027
+ * object inconsistently.
2028
+ */
2029
+ declare class SyncCascadeError extends SchemaError {
2030
+ readonly objectName: string;
2031
+ readonly conflictingAttributes: string[];
2032
+ constructor(objectName: string, conflictingAttributes: string[]);
2033
+ }
2034
+ /**
2035
+ * Thrown at boot when an attribute is system:true but its object parent is
2036
+ * system:false. This invariant should never be violated — if seen, it's a bug
2037
+ * in the boot reconciliation logic or in a manual DB mutation.
2038
+ */
2039
+ declare class OrphanSystemAttributeError extends SchemaError {
2040
+ readonly objectName: string;
2041
+ readonly attributeName: string;
2042
+ constructor(objectName: string, attributeName: string);
2043
+ }
2044
+ /**
2045
+ * Thrown at boot when destructive operations (remove_attribute, remove_object)
2046
+ * are detected without the explicit STANDARDS_ALLOW_DESTRUCTIVE_SYNC=1 env var.
2047
+ * HTTP status: 500 (boot fail, should never surface to HTTP).
2048
+ *
2049
+ * NOTE — Wiring status (L2 — 2026-05-17): defined but not thrown by the
2050
+ * current sync.ts. Sync uses STANDARDS_ALLOW_DESTRUCTIVE_SYNC env var to gate
2051
+ * destructive ops; without the flag, attributes/objects are demoted to runtime
2052
+ * (L1 default, data preserved), not deleted. This error class is reserved for
2053
+ * L3a CLI which will throw it when CI detects unauthorized destructive deployments.
2054
+ */
2055
+ declare class DestructiveSyncNotAllowedError extends SchemaError {
2056
+ readonly operations: SchemaOperation[];
2057
+ constructor(operations: SchemaOperation[]);
2058
+ }
2059
+ /**
2060
+ * Thrown at boot when applying a migration in batches exceeds the maximum
2061
+ * allowed duration (default 5 min, configurable via STANDARDS_MIGRATION_MAX_DURATION_MS).
2062
+ * HTTP status: 500 (boot fail).
2063
+ */
2064
+ declare class MigrationTimeoutError extends SchemaError {
2065
+ readonly objectName: string;
2066
+ readonly migrated: number;
2067
+ readonly total: number;
2068
+ readonly maxDurationMs: number;
2069
+ constructor(objectName: string, migrated: number, total: number, maxDurationMs: number);
2070
+ }
2071
+ /**
2072
+ * Thrown when the runtime admin API is called to change an attribute's type.
2073
+ * Type changes must be declared in code via `.migration(N, m => m.changeType(...))`.
2074
+ * HTTP status: 400 Bad Request.
2075
+ */
2076
+ declare class ChangeTypeNotSupportedError extends SchemaError {
2077
+ readonly objectName: string;
2078
+ readonly attributeName: string;
2079
+ constructor(objectName: string, attributeName: string);
2080
+ }
1965
2081
  /**
1966
2082
  * Error thrown when attempting to create a duplicate resource
1967
2083
  */
@@ -2468,8 +2584,8 @@ type AttributeValueMap = {
2468
2584
  user: string;
2469
2585
  relation: string;
2470
2586
  rating: number;
2471
- /** Document ID(s) - string if single, string[] if multiple */
2472
- document: string | string[];
2587
+ /** Document IDs always an array (documents are always-multi by construction). */
2588
+ document: string[];
2473
2589
  };
2474
2590
  /**
2475
2591
  * Infer status value from options (union of option values)
@@ -2494,12 +2610,10 @@ type InferMultiselectValue<A extends MultiselectAttribute> = A["options"] extend
2494
2610
  *
2495
2611
  * Phantom brand carrying typed props into the type system without changing
2496
2612
  * the runtime attribute shape. `TProps` is `{ [propName]?: value | null }`
2497
- * inferred from the builders passed to .qualifyWith(). `TMultiple` tracks
2498
- * whether .multiple() was called.
2613
+ * inferred from the builders passed to .qualifyWith().
2499
2614
  */
2500
- interface QualifiedDocumentBrand<TProps extends Record<string, unknown>, TMultiple extends boolean> {
2615
+ interface QualifiedDocumentBrand<TProps extends Record<string, unknown>> {
2501
2616
  readonly __qualifiedDocumentProps: TProps;
2502
- readonly __qualifiedDocumentMultiple: TMultiple;
2503
2617
  }
2504
2618
  /**
2505
2619
  * @internal — used by DocumentAttributeBuilder.qualifyWith().
@@ -2527,13 +2641,10 @@ type InferQualifiedProps<TBuilders extends readonly unknown[]> = {
2527
2641
  * Uses a flat lookup table + 3 special cases for option-based attributes
2528
2642
  * This avoids deep conditional nesting that causes TS2589 on large objects
2529
2643
  */
2530
- type InferAttributeValue<A extends Attribute> = A extends DocumentAttribute & QualifiedDocumentBrand<infer TProps, infer TMultiple> ? TMultiple extends true ? Array<{
2644
+ type InferAttributeValue<A extends Attribute> = A extends DocumentAttribute & QualifiedDocumentBrand<infer TProps> ? Array<{
2531
2645
  id: string;
2532
2646
  props: TProps;
2533
- }> : {
2534
- id: string;
2535
- props: TProps;
2536
- } : A extends StatusAttribute ? InferStatusValue<A> : A extends SelectAttribute ? InferSelectValue<A> : A extends MultiselectAttribute ? InferMultiselectValue<A> : A["type"] extends keyof AttributeValueMap ? AttributeValueMap[A["type"]] : unknown;
2647
+ }> : A extends StatusAttribute ? InferStatusValue<A> : A extends SelectAttribute ? InferSelectValue<A> : A extends MultiselectAttribute ? InferMultiselectValue<A> : A["type"] extends keyof AttributeValueMap ? AttributeValueMap[A["type"]] : unknown;
2537
2648
  /**
2538
2649
  * Base type for custom attribute values added via UI
2539
2650
  * Supports all possible attribute value types
@@ -3256,6 +3367,8 @@ declare const SYSTEM_RESOURCES: {
3256
3367
  readonly AUDIT: "audit";
3257
3368
  /** Programmatic access keys */
3258
3369
  readonly API_KEYS: "api-keys";
3370
+ /** Agent session visibility — required for an agent actor to read its own sessions */
3371
+ readonly SESSION: "session";
3259
3372
  };
3260
3373
  /**
3261
3374
  * All system resources as an array (for iteration)
@@ -3370,7 +3483,21 @@ declare abstract class BaseAttributeBuilder<TAttr extends Attribute> implements
3370
3483
  * @internal
3371
3484
  */
3372
3485
  protected asPhantomState<TBuilder>(this: BaseAttributeBuilder<TAttr>): TBuilder;
3373
- system(): this;
3486
+ /**
3487
+ * Marks this attribute as runtime-only (system: false).
3488
+ *
3489
+ * ⚠️ ADVANCED USE ONLY. In production schemas, attributes declared in code are
3490
+ * automatically system:true (immutable at runtime). Use .runtime() ONLY for:
3491
+ * - Test fixtures (`*.test.ts`, `tests/`)
3492
+ * - Seed data (`seeds/`)
3493
+ * - Dev fixtures (`fixtures/`)
3494
+ *
3495
+ * Calling .runtime() in production code creates an attribute that:
3496
+ * - Can be modified or deleted by end users via the admin UI
3497
+ * - Is not part of your code contract
3498
+ * - Will be picked up by `standards diff` as runtime drift
3499
+ */
3500
+ runtime(): this;
3374
3501
  disabled(): this;
3375
3502
  hidden(): this;
3376
3503
  placeholder(value: string): this;
@@ -4151,24 +4278,17 @@ declare function rollup<TName extends string>(config: TypedBuilderConfig<TName>)
4151
4278
  * - Agent-compatible processing (for example OCR)
4152
4279
  * - Field-level constraints
4153
4280
  *
4154
- * @example Single document
4155
- * ```typescript
4156
- * document({ name: "identityDocument", label: "Pièce d'identité" })
4157
- * .autoProcess()
4158
- * .required()
4159
- * ```
4160
- *
4161
- * @example Multiple documents
4281
+ * @example
4162
4282
  * ```typescript
4163
4283
  * document({ name: "contracts", label: "Contrats" })
4164
- * .multiple()
4284
+ * .autoProcess()
4165
4285
  * .maxDocuments(10)
4166
4286
  * ```
4167
4287
  */
4168
- declare class DocumentAttributeBuilder<TName extends string, TRequired extends boolean = false, TProps extends Record<string, unknown> = never, TMultiple extends boolean = false> extends BaseAttributeBuilder<DocumentAttribute> {
4288
+ declare class DocumentAttributeBuilder<TName extends string, TRequired extends boolean = false, TProps extends Record<string, unknown> = never> extends BaseAttributeBuilder<DocumentAttribute> {
4169
4289
  readonly _types: {
4170
4290
  name: TName;
4171
- attribute: [TProps] extends [never] ? DocumentAttribute : DocumentAttribute & QualifiedDocumentBrand<TProps, TMultiple>;
4291
+ attribute: [TProps] extends [never] ? DocumentAttribute : DocumentAttribute & QualifiedDocumentBrand<TProps>;
4172
4292
  required: TRequired;
4173
4293
  };
4174
4294
  /**
@@ -4176,25 +4296,17 @@ declare class DocumentAttributeBuilder<TName extends string, TRequired extends b
4176
4296
  * @see TextAttributeBuilder.$infer for documentation
4177
4297
  */
4178
4298
  readonly $infer: {
4179
- /** The runtime value type for this attribute (document ID or array of IDs) */
4180
- value: [TProps] extends [never] ? string | string[] : TMultiple extends true ? Array<{
4181
- id: string;
4182
- props: TProps;
4183
- }> : {
4299
+ /** The runtime value type for this attribute (always an array of document IDs) */
4300
+ value: [TProps] extends [never] ? string[] : Array<{
4184
4301
  id: string;
4185
4302
  props: TProps;
4186
- };
4303
+ }>;
4187
4304
  /** The full attribute definition type */
4188
4305
  definition: DocumentAttribute;
4189
4306
  };
4190
4307
  constructor(name: TName, label: string);
4191
4308
  /**
4192
- * Allow multiple documents.
4193
- * Value becomes string[] instead of string (or Array<{ id; props }> when qualified).
4194
- */
4195
- multiple(): DocumentAttributeBuilder<TName, TRequired, TProps, true>;
4196
- /**
4197
- * Maximum number of documents (only applies when multiple: true).
4309
+ * Maximum number of documents.
4198
4310
  */
4199
4311
  maxDocuments(count: number): this;
4200
4312
  /**
@@ -4233,21 +4345,20 @@ declare class DocumentAttributeBuilder<TName extends string, TRequired extends b
4233
4345
  *
4234
4346
  * @example
4235
4347
  * document({ name: "contracts", label: "Contracts" })
4236
- * .multiple()
4237
4348
  * .qualifyWith(
4238
4349
  * select({ name: "kind", label: "Kind" }).options([...]),
4239
4350
  * number({ name: "amount", label: "Amount" }).min(0),
4240
4351
  * )
4241
4352
  */
4242
- qualifyWith<const TBuilders extends readonly PropertyAttributeBuilder[]>(...builders: TBuilders): DocumentAttributeBuilder<TName, TRequired, InferQualifiedProps<TBuilders>, TMultiple>;
4353
+ qualifyWith<const TBuilders extends readonly PropertyAttributeBuilder[]>(...builders: TBuilders): DocumentAttributeBuilder<TName, TRequired, InferQualifiedProps<TBuilders>>;
4243
4354
  /**
4244
4355
  * Mark this attribute as required.
4245
4356
  */
4246
- required(): DocumentAttributeBuilder<TName, true, TProps, TMultiple>;
4357
+ required(): DocumentAttributeBuilder<TName, true, TProps>;
4247
4358
  /**
4248
4359
  * Mark this attribute as optional (undo required).
4249
4360
  */
4250
- optional(): DocumentAttributeBuilder<TName, false, TProps, TMultiple>;
4361
+ optional(): DocumentAttributeBuilder<TName, false, TProps>;
4251
4362
  }
4252
4363
  /**
4253
4364
  * Create a document attribute.
@@ -4397,7 +4508,7 @@ declare class MigrationBuilder {
4397
4508
  */
4398
4509
  updateConfig(name: string, config: Partial<Record<string, unknown>>): this;
4399
4510
  /**
4400
- * Produce the final MigrationDefinition with auto-generated reverse operations.
4511
+ * Produce the final MigrationDefinition.
4401
4512
  */
4402
4513
  build(): MigrationDefinition;
4403
4514
  }
@@ -4466,7 +4577,6 @@ type AddAttribute<TRecord extends Record<string, unknown>, TName extends string,
4466
4577
  * import type { ExtractRecord } from "@stndrds/schema";
4467
4578
  *
4468
4579
  * const PRODUCT = object({ name: "products", label: "Product" })
4469
- * .system()
4470
4580
  * .attribute(text({ name: "name", label: "Name" }).required())
4471
4581
  * .attribute(number({ name: "price", label: "Price" }).decimal(2))
4472
4582
  * .attribute(
@@ -4552,10 +4662,20 @@ declare class ObjectBuilder<TRecord extends Record<string, unknown> = {}> implem
4552
4662
  */
4553
4663
  icon(value: IconName): this;
4554
4664
  /**
4555
- * Mark as system/native object (defined in code, protected)
4556
- * System objects cannot be deleted/modified by clients
4665
+ * Marks this object as runtime-only (system: false).
4666
+ *
4667
+ * ⚠️ ADVANCED USE ONLY. In production schemas, objects declared in code are
4668
+ * automatically system:true (immutable at runtime). Use .runtime() ONLY for:
4669
+ * - Test fixtures (`*.test.ts`, `tests/`)
4670
+ * - Seed data (`seeds/`)
4671
+ * - Dev fixtures (`fixtures/`)
4672
+ *
4673
+ * Calling .runtime() in production code creates an object that:
4674
+ * - Can be modified or deleted by end users via the admin UI
4675
+ * - Is not part of your code contract
4676
+ * - Will be picked up by `standards diff` as runtime drift
4557
4677
  */
4558
- system(): this;
4678
+ runtime(): this;
4559
4679
  /**
4560
4680
  * Add an attribute to the object with type accumulation
4561
4681
  *
@@ -4605,6 +4725,11 @@ declare class ObjectBuilder<TRecord extends Record<string, unknown> = {}> implem
4605
4725
  * ```
4606
4726
  */
4607
4727
  labelExpression(template: string): this;
4728
+ /**
4729
+ * Attach a document layout convention to this object. Defines named variant
4730
+ * sub-folders and installable preset structures inside a record's drive.
4731
+ */
4732
+ documentLayout(layout: DocumentLayout): this;
4608
4733
  /**
4609
4734
  * Declare a schema migration for this object.
4610
4735
  *
@@ -4642,9 +4767,8 @@ declare class ObjectBuilder<TRecord extends Record<string, unknown> = {}> implem
4642
4767
  * import { object, text, number } from "@stndrds/schema";
4643
4768
  * import type { ExtractRecord } from "@stndrds/schema";
4644
4769
  *
4645
- * // Define object with fluent API
4770
+ * // Define object with fluent API (system:true by default — immutable at runtime)
4646
4771
  * const PRODUCT = object({ name: "products", label: "Product" })
4647
- * .system()
4648
4772
  * .attribute(text({ name: "name", label: "Name" }).required())
4649
4773
  * .attribute(number({ name: "price", label: "Price" }));
4650
4774
  *
@@ -6029,8 +6153,8 @@ declare class NativeObjectRegistryClass {
6029
6153
  * @example
6030
6154
  * ```typescript
6031
6155
  * // No .build() needed - registry auto-builds!
6156
+ * // Objects are system:true by default (immutable at runtime).
6032
6157
  * const PRODUCT = object({ id: "obj-product", name: "products", label: "Product" })
6033
- * .system()
6034
6158
  * .attribute(text({ id: "attr-name", name: "name", label: "Name" }));
6035
6159
  *
6036
6160
  * registry.register(PRODUCT); // ← Auto-builds here
@@ -6375,7 +6499,7 @@ declare const formRegistry: FormRegistry;
6375
6499
  * Event types emitted by write paths.
6376
6500
  * New types are added as handlers are implemented.
6377
6501
  */
6378
- type EventType = "record.created" | "record.updated" | "record.deleted" | "record.restored" | "form.submitted" | "schema.attribute.created" | "schema.attribute.updated" | "schema.attribute.deleted" | "schema.object.created" | "schema.object.deleted" | "tenant.created";
6502
+ type EventType = "record.created" | "record.updated" | "record.deleted" | "record.restored" | "record.purged" | "form.submitted" | "schema.attribute.created" | "schema.attribute.updated" | "schema.attribute.deleted" | "schema.object.created" | "schema.object.deleted" | "tenant.created";
6379
6503
  /**
6380
6504
  * Typed payload map — each event type has a specific data shape.
6381
6505
  */
@@ -6409,6 +6533,11 @@ interface EventDataMap {
6409
6533
  objectName: string;
6410
6534
  recordId: string;
6411
6535
  };
6536
+ "record.purged": {
6537
+ objectId: string;
6538
+ objectName: string;
6539
+ recordId: string;
6540
+ };
6412
6541
  "form.submitted": {
6413
6542
  formId: string;
6414
6543
  formName: string;
@@ -6550,4 +6679,4 @@ interface QualifiedRuleValidationContext {
6550
6679
  }
6551
6680
  declare function validateQualifiedRule(rule: FilterRule, context: QualifiedRuleValidationContext): void;
6552
6681
 
6553
- export { type AIAvailableModel, type AIBatchQuestion, type AIBatchQuestionAnswer, type AIBatchQuestionOption, type AIChatMessage, type AIChatMessagePart, type AIChatMessagePartType, type AICompactionSummary, type AIMemoryEntry, type AIMemoryType, type AIMessageRole, type AIProviderMetrics, type AIQuestion, type AIQuestionAnswer, type AIQuestionOption, type AIQuestionType, type AITodoItem, type AITodoList, type AITodoStatus, type AIToolCall, type AIToolCallStatus, type AIUsageMetrics, ALLOWED_PROPERTY_TYPES, ALL_ACTIONS, ALL_SYSTEM_RESOURCES, type AccessAction, type AccessActionList, AccessDeniedError, type AccessLevel, type AccessPolicy, type AccessPolicyPreset, type AccessResourceType, type Action, ActivityTabConfig, type Actor, type ActorRoleAssignment, type ActorStatus, type ActorType, type AddAttributeInput, type AgentConfig, type AgentContextEntry, type AgentDashboard, type AgentDefinition, type AgentEvent, type AgentExecutionConfig, type AgentExecutionPolicy, type AgentMessageAttachment, type AgentMessagePart, type AgentQuestion, type AgentRun, type AgentRunStatus, type AgentSchedule, type AgentSession, type AgentSessionMessage, type AgentSessionMode, type AgentSessionStatus, type AgentToolCall, type AgentTriggerDefinition, type AgentTriggerType, type ApiKey, type ApiKeyAuthContext, type ApiKeyPermission, type ApiKeyWithSecret, type AssignActorRoleInput, type AssignRoleInput, Attribute, AttributeGroupField, AttributeInUseError, AttributeNotFoundError, AttributeType, type AttributeUsage, type AuditAction, type AuditActorType, type AuditChange, type AuditListOptions, type AuditLogEntry, type AuditResourceType, type AuditServiceOptions, type AuditSortField, BEHAVIOR_PROPERTIES, BilateralConfig, type BoundingBox, type BuilderConfig, CheckboxAttribute, CompletionStatus, ConcurrentModificationError, ConfigOverrides, type CountMode, type CreateActorInput, type CreateApiKeyInput, type CreateAuditLogInput, type CreateCustomObjectInput, type CreateDBAttribute, type CreateDBForm, type CreateDBFormSubmission, type CreateDBObject, type CreateDBView, type CreateDBViewOverlay, type CreateFile, CreateMode, type CreateObjectRecord, type CreatePermissionInput, type CreateRoleInput, type CreateSandboxExecution, type CreateUserProfile, type CreateViewInput, type CriticConfig, Currency, CurrencyAttribute, type CustomAttributeValue, CustomTabConfig, type DBAttribute, type DBForm, type DBFormSubmission, type DBObject, type DBView, type DBViewOverlay, DB_COLUMN_FIELDS, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DOCUMENT_SYSTEM_ATTRIBUTES, DateAttribute, type DefaultRoleName, DetailViewBuilder, DetailViewConfig, DetailViewDefinition, DetailViewLayout, DocumentAttribute, DocumentSlotConfig, DocumentSlotValidationError, DocumentsTabConfig, type DomainEvent, DuplicateError, EMPTY_VALUE_PLACEHOLDER, type EffectivePermissions, type EventDataMap, type EventType, type ExtractRecord, type ExtractRecordInput, type ExtractRecordInputStrict, type ExtractRecordStrict, type ExtractRecordUpdate, type ExtractRecordUpdateStrict, FORM_FORBIDDEN_ATTRIBUTE_TYPES, FeatureFlagDefinition, FeatureFlagsRepository, FeatureGate, Field, FieldGroup, type File, FileAttribute, type FileListOptions, type FileVisibility, FilterOperator, FilterRule, FilterState, FilterValue, FlagLevel, FlagRegistry, FlagService, FlagValueType, ForbiddenError, FormBuilder, type FormDefinition, type FormFieldRef, type FormFieldsRow, type FormFreeFieldRef, type FormHeadingRow, FormRegistry, type FormRow, FormRowBuilder, type FormSeparatorRow, type FormSlot, type FormSlotFieldRef, type FormStatus, type FormStep, FormStepBuilder, type FormSubmission, type FormSubmissionStatus, type FormSubmittedAgentEvent, type FormTextRow, FormulaAttribute, type FormulaResult, FormulaReturnType, type GeocodingAdapter, type GeocodingAutocompleteParams, type GeocodingParams, type GeocodingSuggestion, type GlobalSearchGroupedOptions, type GlobalSearchGroupedResult, type GlobalSearchOptions, type GlobalSearchResultItem, type GrantResourceAccessInput, Group, GroupBuilder, IDENTITY_PROPERTIES, type InferAttributeValue, type InferQualifiedProps, InvalidPathError, type InviteUserInput, type ListOptions, ListViewBuilder, ListViewConfig, ListViewDefinition, ListViewTab, ListViewTabConfigBuilder, Location, LocationAttribute, LocationGranularity, MaxDepthExceededError, MemoryNotFoundError, type MentionEntityType, type MentionReference, type MentionedContext, type MentionedEntityContext, MigrationDefinition, type ModelDefinition, MultiRelationAttribute, MultiselectAttribute, NoopGeocodingAdapter, NotFoundError, NotImplementedError, NumberAttribute, OPERATOR_SPECS, ObjectBuilder, ObjectDefinition, ObjectNotFoundError, type ObjectPermissions, ObjectReferencedError, type OcrAdapter, type OcrInput, type OcrOptions, type OcrPage, type OcrResult, type OcrTextBlock, type OperatorSpec, Option, PRESENTATION_PROPERTIES, type PageInfo, type PageOptions, type PageResponse, type ParsedAttribute, type PathCardinality, type PathSegment, type PathSegmentType, type Permission, type PermissionScope, Phone, PhoneAttribute, type PrincipalType, PropertySchema, ProtectedResourceError, ProtectedRoleError, type ProviderName, QUALIFIED_SEPARATOR, type QualifiedDocumentBrand, type QuestionResponse, type QuestionStatus, RatingAttribute, type ReasoningPartData, type RecordAgentEvent, type RecordMetadata, RecordNotFoundError, type RecordReference, RecordReferencedError, RelationAttribute, RelationGroup, RelationGroupBuilder, type RelationOption, type RelationOptionsResponse, RelationTarget, RepositoryError, type RepositoryOperation, ResolvedFlag, type ResourceAccess, type ResourceRef, type RetryPolicy, type ReverseGeocodingParams, RichtextAttribute, RichtextFeature, RichtextTabConfig, type Role, RoleNotFoundError, RollupAttribute, RollupFunction, STANDARD_SCHEMA_VENDOR, SYSTEM_ATTRIBUTES, SYSTEM_ATTRIBUTE_I18N_KEYS, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, type SandboxExecution, type SandboxExecutionInput, type SandboxExecutionResult, type SandboxExecutionStatus, type SandboxMode, type SandboxTrigger, SchemaError, SchemaErrorCode, type SchemaResolver, type SearchOptions, SelectAttribute, SidePanelConfig, type SidebarExtraItem, SingleRelationAttribute, type SlotMode, SortRule, type SpecificAccessAction, type StandardSchemaIssue, type StandardSchemaResult, StaticFlagDefault, StatusAttribute, StorageError, type StorageOperation, type StorageProvider, type StreamEventCompactionEnd, type StreamEventCompactionFailed, type StreamEventCompactionStart, type StreamEventMessagePersisted, SyncError, type SystemAttribute, type SystemAttributeI18nKey, type SystemFields, type SystemPermissions, type SystemResource, Tab, TabBuilder, TableTab, TableTabConfig, TenantId, TextAreaAttribute, TextAttribute, type TextPartData, type ThinkingPartData, type TimeoutPolicy, Timestamps, type ToolPartData, type ToolPartState, type TriggerEventType, USER_STATUSES, type UpdateActorInput, type UpdateDBAttribute, type UpdateDBForm, type UpdateDBFormSubmission, type UpdateDBObject, type UpdateDBView, type UpdateDBViewOverlay, type UpdateFile, type UpdateObjectInput, type UpdateRoleInput, type UpdateUserProfile, type UpdateViewInput, type UpsertAccessPolicyInput, type UpsertDBAttribute, type UpsertDBObject, type UpsertDBView, UserAttribute, type UserProfile, type UserRoleAssignment, type UserStatus, Uuid, ValidationError, type ValidationErrorDetail, ViewConfig, ViewDefinition, ViewType, type WithCustomAttributes$1 as WithCustomAttributes, accessLevelToActions, actionsToAccessLevel, applyPipes, booleanFlag, buildPropertySchema, buildQualifiedAttribute, checkbox, createFlagRegistry, createFlagService, createStandardSchemaProps, currency, date, detailView, document, evaluateFilterState, evaluateFormula, evaluateFormulaAttribute, evaluateFormulaWithResult, extractAttributeNames, extractFormulaVariables, extractRelationNames, extractRelationReferences, file, flagRegistry, flattenRelationsForEval, form, formRegistry, formatAttributeValue, formatFormulaResult, formula, generateDefaultDetailView, generateDefaultListView, getActiveTab, getErrorMessage, getOperatorPolarity, getPathDepth, getRelationPath, getSystemAttributeI18nKey, getSystemAttributeList, getTargetAttributeName, group, hasRelationReferences, isAttributeInUseError, isDefaultRole, isDocumentAttribute, isEmptyObject, isFormDefinition, isFormFieldsRow, isFormFreeFieldRef, isFormHeadingRow, isFormSeparatorRow, isFormSlotFieldRef, isFormTextRow, isLabelExpression, isNotEmpty, isNotFoundError, isObjectReferencedError, isProtectedResourceError, isRecordReferencedError, isSchemaError, isStandardSchema, isValidationError, jsonFlag, listView, location, matchesMime, multiselect, normaliseDocumentSlots, normalizeForEdgeRpc, number, numberFlag, object, parsePath, parseQualifiedAttribute, pathHasManyCardinality, phone, rating, registry, relation, relationGroup, renderLabelExpression, resetViewToDefault, richtext, rollup, select, status, stringFlag, text, textarea, toUndefinedIfEmpty, user, validateAttributeName, validateFormulaExpression, validatePath, validateQualifiedRule, validateSlotAgainstConfig, viewRegistry };
6682
+ export { type AIAvailableModel, type AIBatchQuestion, type AIBatchQuestionAnswer, type AIBatchQuestionOption, type AIChatMessage, type AIChatMessagePart, type AIChatMessagePartType, type AICompactionSummary, type AIMemoryEntry, type AIMemoryType, type AIMessageRole, type AIProviderMetrics, type AIQuestion, type AIQuestionAnswer, type AIQuestionOption, type AIQuestionType, type AITodoItem, type AITodoList, type AITodoStatus, type AIToolCall, type AIToolCallStatus, type AIUsageMetrics, ALLOWED_PROPERTY_TYPES, ALL_ACTIONS, ALL_SYSTEM_RESOURCES, type AccessAction, type AccessActionList, AccessDeniedError, type AccessLevel, type AccessPolicy, type AccessPolicyPreset, type AccessResourceType, type Action, ActivityTabConfig, type Actor, type ActorRoleAssignment, type ActorStatus, type ActorType, type AddAttributeInput, type AgentConfig, type AgentContextEntry, type AgentDashboard, type AgentDefinition, type AgentEvent, type AgentExecutionConfig, type AgentExecutionPolicy, type AgentMessageAttachment, type AgentMessagePart, type AgentQuestion, type AgentRun, type AgentRunStatus, type AgentSchedule, type AgentSession, type AgentSessionMessage, type AgentSessionMode, type AgentSessionStatus, type AgentToolCall, type AgentTriggerDefinition, type AgentTriggerType, type ApiKey, type ApiKeyAuthContext, type ApiKeyPermission, type ApiKeyWithSecret, type AssignActorRoleInput, type AssignRoleInput, Attribute, AttributeGroupField, AttributeInUseError, AttributeNotFoundError, AttributeType, type AttributeUsage, type AuditAction, type AuditActorType, type AuditChange, type AuditListOptions, type AuditLogEntry, type AuditResourceType, type AuditServiceOptions, type AuditSortField, BEHAVIOR_PROPERTIES, BilateralConfig, type BoundingBox, type BuilderConfig, ChangeTypeNotSupportedError, CheckboxAttribute, CompletionStatus, ConcurrentModificationError, ConfigOverrides, type CountMode, type CreateActorInput, type CreateApiKeyInput, type CreateAuditLogInput, type CreateCustomObjectInput, type CreateDBAttribute, type CreateDBForm, type CreateDBFormSubmission, type CreateDBObject, type CreateDBView, type CreateDBViewOverlay, type CreateFile, CreateMode, type CreateObjectRecord, type CreatePermissionInput, type CreateRoleInput, type CreateSandboxExecution, type CreateUserProfile, type CreateViewInput, type CriticConfig, Currency, CurrencyAttribute, type CustomAttributeValue, CustomTabConfig, type DBAttribute, type DBForm, type DBFormSubmission, type DBObject, type DBView, type DBViewOverlay, DB_COLUMN_FIELDS, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DOCUMENT_SYSTEM_ATTRIBUTES, DateAttribute, type DefaultRoleName, type DeletedMode, DestructiveSyncNotAllowedError, DetailViewBuilder, DetailViewConfig, DetailViewDefinition, DetailViewLayout, DocumentAttribute, DocumentLayout, DocumentSlotConfig, DocumentSlotValidationError, DocumentsTabConfig, type DomainEvent, DuplicateError, EMPTY_VALUE_PLACEHOLDER, type EffectivePermissions, type EventDataMap, type EventType, type ExtractRecord, type ExtractRecordInput, type ExtractRecordInputStrict, type ExtractRecordStrict, type ExtractRecordUpdate, type ExtractRecordUpdateStrict, FORM_FORBIDDEN_ATTRIBUTE_TYPES, FeatureFlagDefinition, FeatureFlagsRepository, FeatureGate, Field, FieldGroup, type File, FileAttribute, type FileListOptions, type FileVisibility, FilterOperator, FilterRule, FilterState, FilterValue, FlagLevel, FlagRegistry, FlagService, FlagValueType, ForbiddenError, FormBuilder, type FormDefinition, type FormFieldRef, type FormFieldsRow, type FormFreeFieldRef, type FormHeadingRow, FormRegistry, type FormRow, FormRowBuilder, type FormSeparatorRow, type FormSlot, type FormSlotFieldRef, type FormStatus, type FormStep, FormStepBuilder, type FormSubmission, type FormSubmissionStatus, type FormSubmittedAgentEvent, type FormTextRow, FormulaAttribute, type FormulaResult, FormulaReturnType, type GeocodingAdapter, type GeocodingAutocompleteParams, type GeocodingParams, type GeocodingSuggestion, type GlobalSearchGroupedOptions, type GlobalSearchGroupedResult, type GlobalSearchOptions, type GlobalSearchResultItem, type GrantResourceAccessInput, Group, GroupBuilder, IDENTITY_PROPERTIES, type InferAttributeValue, type InferQualifiedProps, InvalidPathError, type InviteUserInput, type ListOptions, ListViewBuilder, ListViewConfig, ListViewDefinition, ListViewTab, ListViewTabConfigBuilder, Location, LocationAttribute, LocationGranularity, MaxDepthExceededError, MemoryNotFoundError, type MentionEntityType, type MentionReference, type MentionedContext, type MentionedEntityContext, MigrationDefinition, MigrationTimeoutError, type ModelDefinition, MultiRelationAttribute, MultiselectAttribute, NoopGeocodingAdapter, NotFoundError, NotImplementedError, NumberAttribute, OPERATOR_SPECS, ObjectBuilder, ObjectDefinition, ObjectNotFoundError, type ObjectPermissions, ObjectReferencedError, type OcrAdapter, type OcrInput, type OcrOptions, type OcrPage, type OcrResult, type OcrTextBlock, type OperatorSpec, Option, OrphanSystemAttributeError, PRESENTATION_PROPERTIES, type PageInfo, type PageOptions, type PageResponse, type ParsedAttribute, type PathCardinality, type PathSegment, type PathSegmentType, type Permission, type PermissionScope, Phone, PhoneAttribute, type PrincipalType, PropertySchema, ProtectedResourceError, ProtectedRoleError, type ProviderName, QUALIFIED_SEPARATOR, type QualifiedDocumentBrand, type QuestionResponse, type QuestionStatus, RatingAttribute, type ReasoningPartData, type RecordAgentEvent, type RecordMetadata, RecordNotFoundError, type RecordReference, RecordReferencedError, RelationAttribute, RelationGroup, RelationGroupBuilder, type RelationOption, type RelationOptionsResponse, RelationTarget, RepositoryError, type RepositoryOperation, ResolvedFlag, type ResourceAccess, type ResourceRef, type RetryPolicy, type ReverseGeocodingParams, RichtextAttribute, RichtextFeature, RichtextTabConfig, type Role, RoleNotFoundError, RollupAttribute, RollupFunction, STANDARD_SCHEMA_VENDOR, SYSTEM_ATTRIBUTES, SYSTEM_ATTRIBUTE_I18N_KEYS, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, type SandboxExecution, type SandboxExecutionInput, type SandboxExecutionResult, type SandboxExecutionStatus, type SandboxMode, type SandboxTrigger, SchemaError, SchemaErrorCode, SchemaOperation, type SchemaResolver, type SearchOptions, SelectAttribute, SidePanelConfig, type SidebarExtraItem, SingleRelationAttribute, type SlotMode, SortRule, type SpecificAccessAction, type StandardSchemaIssue, type StandardSchemaResult, StaticFlagDefault, StatusAttribute, StorageError, type StorageOperation, type StorageProvider, type StreamEventCompactionEnd, type StreamEventCompactionFailed, type StreamEventCompactionStart, type StreamEventMessagePersisted, SyncCascadeError, SyncConflictError, SyncError, type SystemAttribute, type SystemAttributeI18nKey, SystemEntityImmutableError, type SystemFields, type SystemPermissions, type SystemResource, Tab, TabBuilder, TableTab, TableTabConfig, TenantId, TextAreaAttribute, TextAttribute, type TextPartData, type ThinkingPartData, type TimeoutPolicy, Timestamps, type ToolPartData, type ToolPartState, type TriggerEventType, USER_STATUSES, type UpdateActorInput, type UpdateDBAttribute, type UpdateDBForm, type UpdateDBFormSubmission, type UpdateDBObject, type UpdateDBView, type UpdateDBViewOverlay, type UpdateFile, type UpdateObjectInput, type UpdateRoleInput, type UpdateUserProfile, type UpdateViewInput, type UpsertAccessPolicyInput, type UpsertDBAttribute, type UpsertDBObject, type UpsertDBView, UserAttribute, type UserProfile, type UserRoleAssignment, type UserStatus, Uuid, ValidationError, type ValidationErrorDetail, ViewConfig, ViewDefinition, ViewType, type WithCustomAttributes$1 as WithCustomAttributes, accessLevelToActions, actionsToAccessLevel, applyPipes, booleanFlag, buildPropertySchema, buildQualifiedAttribute, checkbox, createFlagRegistry, createFlagService, createStandardSchemaProps, currency, date, detailView, document, evaluateFilterState, evaluateFormula, evaluateFormulaAttribute, evaluateFormulaWithResult, extractAttributeNames, extractFormulaVariables, extractRelationNames, extractRelationReferences, file, flagRegistry, flattenRelationsForEval, form, formRegistry, formatAttributeValue, formatFormulaResult, formula, generateDefaultDetailView, generateDefaultListView, getActiveTab, getErrorMessage, getOperatorPolarity, getPathDepth, getRelationPath, getSystemAttributeI18nKey, getSystemAttributeList, getTargetAttributeName, group, hasRelationReferences, isAttributeInUseError, isDefaultRole, isDocumentAttribute, isEmptyObject, isFormDefinition, isFormFieldsRow, isFormFreeFieldRef, isFormHeadingRow, isFormSeparatorRow, isFormSlotFieldRef, isFormTextRow, isLabelExpression, isNotEmpty, isNotFoundError, isObjectReferencedError, isProtectedResourceError, isRecordReferencedError, isSchemaError, isStandardSchema, isValidationError, jsonFlag, listView, location, matchesMime, multiselect, normaliseDocumentSlots, normalizeForEdgeRpc, number, numberFlag, object, parsePath, parseQualifiedAttribute, pathHasManyCardinality, phone, rating, registry, relation, relationGroup, renderLabelExpression, resetViewToDefault, richtext, rollup, select, status, stringFlag, text, textarea, toUndefinedIfEmpty, user, validateAttributeName, validateFormulaExpression, validatePath, validateQualifiedRule, validateSlotAgainstConfig, viewRegistry };