@stndrds/schema 1.0.0-alpha.136 → 1.0.0-alpha.138

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.
@@ -740,14 +740,14 @@ interface ObjectRecord extends Timestamps {
740
740
  */
741
741
  deletedAt?: Date | null;
742
742
  /**
743
- * User ID who created this record.
744
- * Automatically set by RecordService when userId is configured.
743
+ * Actor ID who created this record.
744
+ * Automatically set by RecordService when actorId is configured.
745
745
  * Optional for backward compatibility with existing records.
746
746
  */
747
747
  createdBy?: string;
748
748
  /**
749
- * User ID who last updated this record.
750
- * Automatically set by RecordService when userId is configured.
749
+ * Actor ID who last updated this record.
750
+ * Automatically set by RecordService when actorId is configured.
751
751
  * Optional for backward compatibility with existing records.
752
752
  */
753
753
  lastUpdatedBy?: string;
@@ -857,4 +857,4 @@ declare function isRecordComplete(objectDef: ObjectDefinition, data: Record<stri
857
857
  */
858
858
  declare function computeRecordStatus(objectDef: ObjectDefinition, data: Record<string, unknown>): CompletionStatus;
859
859
 
860
- export { type MigrationError as $, type AttributeGroupField as A, type BuiltInTransform as B, type ConfigOverrides as C, type DetailViewConfig as D, type CurrencyFilterValue as E, type FilterState as F, type Group as G, type CustomTab as H, type DocumentsTab as I, type ExtendedFilterRule as J, type FilterCombinator as K, type ListViewConfig as L, type MigrationDefinition as M, type FilterGroup as N, type ObjectDefinition as O, type FilterOperator as P, type FilterRule as Q, type RelationGroup as R, type SortRule as S, type Timestamps as T, type FilterValue as U, type ViewType as V, type FormDensity as W, type FormTab as X, type FormsTab as Y, type InverseSource as Z, type ListViewLayout as _, createFormAttributeValidator as a, NO_VALUE_OPERATORS as a0, type NoValueOperator as a1, OPERATORS_BY_TYPE as a2, type ObjectAttribute as a3, type PhoneFilterValue as a4, type QueryState as a5, RESERVED_ATTRIBUTE_NAMES as a6, type RelationSource as a7, type RelativeDateValue as a8, type ReservedAttributeName as a9, type RichtextTab as aa, SYSTEM_FIELD_NAMES as ab, type SchemaOperation as ac, type SchemaTransform as ad, type SortDirection as ae, type SystemFieldName as af, type TabType as ag, type TableSource as ah, type TransformSource as ai, type ViewOperation as aj, type ViewOverlay as ak, type ViewTransform as al, getRollupFilterOperators as am, isDetailView as an, isFieldGroup as ao, isListView as ap, isNoValueOperator as aq, isRelationGroup as ar, validateObject as b, computeRecordStatus as c, validateObjectOrThrow as d, createAttributeValidator as e, validateAttribute as f, getMissingRequiredAttributes as g, validateDraft as h, isRecordComplete as i, type ViewConfig as j, type CompletionStatus as k, type ObjectRecord as l, type DetailViewDefinition as m, type DetailViewLayout as n, type SidePanelConfig as o, type Field as p, type FieldGroup as q, type TableTab as r, type CreateMode as s, type Tab as t, type ListViewDefinition as u, validateDraftOrThrow as v, type ViewDefinition as w, type ListViewTab as x, type ActivityTab as y, type AdvancedFilterState as z };
860
+ export { type MigrationError as $, type AttributeGroupField as A, type ActivityTab as B, type ConfigOverrides as C, type DetailViewConfig as D, type AdvancedFilterState as E, type FilterState as F, type Group as G, type BuiltInTransform as H, type CurrencyFilterValue as I, type CustomTab as J, type DocumentsTab as K, type ListViewConfig as L, type MigrationDefinition as M, type ExtendedFilterRule as N, type ObjectDefinition as O, type FilterCombinator as P, type FilterGroup as Q, type RelationGroup as R, type SortRule as S, type Timestamps as T, type FilterRule as U, type ViewType as V, type FormDensity as W, type FormTab as X, type FormsTab as Y, type InverseSource as Z, type ListViewLayout as _, createFormAttributeValidator as a, NO_VALUE_OPERATORS as a0, type NoValueOperator as a1, OPERATORS_BY_TYPE as a2, type ObjectAttribute as a3, type PhoneFilterValue as a4, type QueryState as a5, RESERVED_ATTRIBUTE_NAMES as a6, type RelationSource as a7, type RelativeDateValue as a8, type ReservedAttributeName as a9, type RichtextTab as aa, SYSTEM_FIELD_NAMES as ab, type SchemaOperation as ac, type SchemaTransform as ad, type SortDirection as ae, type SystemFieldName as af, type TabType as ag, type TableSource as ah, type TransformSource as ai, type ViewOperation as aj, type ViewOverlay as ak, type ViewTransform as al, getRollupFilterOperators as am, isDetailView as an, isFieldGroup as ao, isListView as ap, isNoValueOperator as aq, isRelationGroup as ar, validateObject as b, computeRecordStatus as c, validateObjectOrThrow as d, createAttributeValidator as e, validateAttribute as f, getMissingRequiredAttributes as g, validateDraft as h, isRecordComplete as i, type ViewConfig as j, type CompletionStatus as k, type ObjectRecord as l, type DetailViewDefinition as m, type DetailViewLayout as n, type SidePanelConfig as o, type Field as p, type FieldGroup as q, type TableTab as r, type CreateMode as s, type Tab as t, type ListViewDefinition as u, validateDraftOrThrow as v, type ViewDefinition as w, type ListViewTab as x, type FilterOperator as y, type FilterValue as z };
@@ -740,14 +740,14 @@ interface ObjectRecord extends Timestamps {
740
740
  */
741
741
  deletedAt?: Date | null;
742
742
  /**
743
- * User ID who created this record.
744
- * Automatically set by RecordService when userId is configured.
743
+ * Actor ID who created this record.
744
+ * Automatically set by RecordService when actorId is configured.
745
745
  * Optional for backward compatibility with existing records.
746
746
  */
747
747
  createdBy?: string;
748
748
  /**
749
- * User ID who last updated this record.
750
- * Automatically set by RecordService when userId is configured.
749
+ * Actor ID who last updated this record.
750
+ * Automatically set by RecordService when actorId is configured.
751
751
  * Optional for backward compatibility with existing records.
752
752
  */
753
753
  lastUpdatedBy?: string;
@@ -857,4 +857,4 @@ declare function isRecordComplete(objectDef: ObjectDefinition, data: Record<stri
857
857
  */
858
858
  declare function computeRecordStatus(objectDef: ObjectDefinition, data: Record<string, unknown>): CompletionStatus;
859
859
 
860
- export { type MigrationError as $, type AttributeGroupField as A, type BuiltInTransform as B, type ConfigOverrides as C, type DetailViewConfig as D, type CurrencyFilterValue as E, type FilterState as F, type Group as G, type CustomTab as H, type DocumentsTab as I, type ExtendedFilterRule as J, type FilterCombinator as K, type ListViewConfig as L, type MigrationDefinition as M, type FilterGroup as N, type ObjectDefinition as O, type FilterOperator as P, type FilterRule as Q, type RelationGroup as R, type SortRule as S, type Timestamps as T, type FilterValue as U, type ViewType as V, type FormDensity as W, type FormTab as X, type FormsTab as Y, type InverseSource as Z, type ListViewLayout as _, createFormAttributeValidator as a, NO_VALUE_OPERATORS as a0, type NoValueOperator as a1, OPERATORS_BY_TYPE as a2, type ObjectAttribute as a3, type PhoneFilterValue as a4, type QueryState as a5, RESERVED_ATTRIBUTE_NAMES as a6, type RelationSource as a7, type RelativeDateValue as a8, type ReservedAttributeName as a9, type RichtextTab as aa, SYSTEM_FIELD_NAMES as ab, type SchemaOperation as ac, type SchemaTransform as ad, type SortDirection as ae, type SystemFieldName as af, type TabType as ag, type TableSource as ah, type TransformSource as ai, type ViewOperation as aj, type ViewOverlay as ak, type ViewTransform as al, getRollupFilterOperators as am, isDetailView as an, isFieldGroup as ao, isListView as ap, isNoValueOperator as aq, isRelationGroup as ar, validateObject as b, computeRecordStatus as c, validateObjectOrThrow as d, createAttributeValidator as e, validateAttribute as f, getMissingRequiredAttributes as g, validateDraft as h, isRecordComplete as i, type ViewConfig as j, type CompletionStatus as k, type ObjectRecord as l, type DetailViewDefinition as m, type DetailViewLayout as n, type SidePanelConfig as o, type Field as p, type FieldGroup as q, type TableTab as r, type CreateMode as s, type Tab as t, type ListViewDefinition as u, validateDraftOrThrow as v, type ViewDefinition as w, type ListViewTab as x, type ActivityTab as y, type AdvancedFilterState as z };
860
+ export { type MigrationError as $, type AttributeGroupField as A, type ActivityTab as B, type ConfigOverrides as C, type DetailViewConfig as D, type AdvancedFilterState as E, type FilterState as F, type Group as G, type BuiltInTransform as H, type CurrencyFilterValue as I, type CustomTab as J, type DocumentsTab as K, type ListViewConfig as L, type MigrationDefinition as M, type ExtendedFilterRule as N, type ObjectDefinition as O, type FilterCombinator as P, type FilterGroup as Q, type RelationGroup as R, type SortRule as S, type Timestamps as T, type FilterRule as U, type ViewType as V, type FormDensity as W, type FormTab as X, type FormsTab as Y, type InverseSource as Z, type ListViewLayout as _, createFormAttributeValidator as a, NO_VALUE_OPERATORS as a0, type NoValueOperator as a1, OPERATORS_BY_TYPE as a2, type ObjectAttribute as a3, type PhoneFilterValue as a4, type QueryState as a5, RESERVED_ATTRIBUTE_NAMES as a6, type RelationSource as a7, type RelativeDateValue as a8, type ReservedAttributeName as a9, type RichtextTab as aa, SYSTEM_FIELD_NAMES as ab, type SchemaOperation as ac, type SchemaTransform as ad, type SortDirection as ae, type SystemFieldName as af, type TabType as ag, type TableSource as ah, type TransformSource as ai, type ViewOperation as aj, type ViewOverlay as ak, type ViewTransform as al, getRollupFilterOperators as am, isDetailView as an, isFieldGroup as ao, isListView as ap, isNoValueOperator as aq, isRelationGroup as ar, validateObject as b, computeRecordStatus as c, validateObjectOrThrow as d, createAttributeValidator as e, validateAttribute as f, getMissingRequiredAttributes as g, validateDraft as h, isRecordComplete as i, type ViewConfig as j, type CompletionStatus as k, type ObjectRecord as l, type DetailViewDefinition as m, type DetailViewLayout as n, type SidePanelConfig as o, type Field as p, type FieldGroup as q, type TableTab as r, type CreateMode as s, type Tab as t, type ListViewDefinition as u, validateDraftOrThrow as v, type ViewDefinition as w, type ListViewTab as x, type FilterOperator as y, type FilterValue as z };
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { S as SortRule, F as FilterState, T as Timestamps, V as ViewType, j as ViewConfig, C as ConfigOverrides, k as CompletionStatus, l as ObjectRecord, M as MigrationDefinition, O as ObjectDefinition, D as DetailViewConfig, m as DetailViewDefinition, n as DetailViewLayout, o as SidePanelConfig, p as Field, A as AttributeGroupField, q as FieldGroup, R as RelationGroup, G as Group, r as TableTab, s as CreateMode, t as Tab, L as ListViewConfig, u as ListViewDefinition, w as ViewDefinition, x as ListViewTab } from './helpers-BiGe0rbb.mjs';
2
- export { y as ActivityTab, z as AdvancedFilterState, B as BuiltInTransform, E as CurrencyFilterValue, H as CustomTab, I as DocumentsTab, J as ExtendedFilterRule, K as FilterCombinator, N as FilterGroup, P as FilterOperator, Q as FilterRule, U as FilterValue, W as FormDensity, X as FormTab, Y as FormsTab, Z as InverseSource, _ as ListViewLayout, $ as MigrationError, a0 as NO_VALUE_OPERATORS, a1 as NoValueOperator, a2 as OPERATORS_BY_TYPE, a3 as ObjectAttribute, a4 as PhoneFilterValue, a5 as QueryState, a6 as RESERVED_ATTRIBUTE_NAMES, a7 as RelationSource, a8 as RelativeDateValue, a9 as ReservedAttributeName, aa as RichtextTab, ab as SYSTEM_FIELD_NAMES, ac as SchemaOperation, ad as SchemaTransform, ae as SortDirection, af as SystemFieldName, ag as TabType, ah as TableSource, ai as TransformSource, aj as ViewOperation, ak as ViewOverlay, al as ViewTransform, c as computeRecordStatus, a as createFormAttributeValidator, am as getRollupFilterOperators, an as isDetailView, ao as isFieldGroup, ap as isListView, aq as isNoValueOperator, ar as isRelationGroup, v as validateDraftOrThrow, b as validateObject, d as validateObjectOrThrow } from './helpers-BiGe0rbb.mjs';
1
+ import { S as SortRule, F as FilterState, T as Timestamps, V as ViewType, j as ViewConfig, C as ConfigOverrides, k as CompletionStatus, l as ObjectRecord, M as MigrationDefinition, O as ObjectDefinition, D as DetailViewConfig, m as DetailViewDefinition, n as DetailViewLayout, o as SidePanelConfig, p as Field, A as AttributeGroupField, q as FieldGroup, R as RelationGroup, G as Group, r as TableTab, s as CreateMode, t as Tab, L as ListViewConfig, u as ListViewDefinition, w as ViewDefinition, x as ListViewTab, y as FilterOperator, z as FilterValue } from './helpers-CoFQtNfq.mjs';
2
+ export { B as ActivityTab, E as AdvancedFilterState, H as BuiltInTransform, I as CurrencyFilterValue, J as CustomTab, K as DocumentsTab, N as ExtendedFilterRule, P as FilterCombinator, Q as FilterGroup, U as FilterRule, W as FormDensity, X as FormTab, Y as FormsTab, Z as InverseSource, _ as ListViewLayout, $ as MigrationError, a0 as NO_VALUE_OPERATORS, a1 as NoValueOperator, a2 as OPERATORS_BY_TYPE, a3 as ObjectAttribute, a4 as PhoneFilterValue, a5 as QueryState, a6 as RESERVED_ATTRIBUTE_NAMES, a7 as RelationSource, a8 as RelativeDateValue, a9 as ReservedAttributeName, aa as RichtextTab, ab as SYSTEM_FIELD_NAMES, ac as SchemaOperation, ad as SchemaTransform, ae as SortDirection, af as SystemFieldName, ag as TabType, ah as TableSource, ai as TransformSource, aj as ViewOperation, ak as ViewOverlay, al as ViewTransform, c as computeRecordStatus, a as createFormAttributeValidator, am as getRollupFilterOperators, an as isDetailView, ao as isFieldGroup, ap as isListView, aq as isNoValueOperator, ar as isRelationGroup, v as validateDraftOrThrow, b as validateObject, d as validateObjectOrThrow } from './helpers-CoFQtNfq.mjs';
3
3
  import { j as AttributeType, A as Attribute, k as LocationGranularity, l as Location, e as FormulaAttribute, f as RollupAttribute, d as StatusAttribute, c as SelectAttribute, b as MultiselectAttribute, m as Phone, n as Currency, D as DateAttribute, U as UserAttribute, o as DocumentAttribute, p as FeatureGate, g as CheckboxAttribute, C as CurrencyAttribute, F as FileAttribute, q as FormulaReturnType, L as LocationAttribute, O as Option, N as NumberAttribute, P as PhoneAttribute, h as RatingAttribute, R as RelationAttribute, i as TextAttribute, T as TextAreaAttribute, B as BilateralConfig, S as SingleRelationAttribute, M as MultiRelationAttribute, r as RelationTarget, a as RichtextAttribute, s as RichtextFeature, t as RollupFunction, u as FlagValueType, v as FeatureFlagDefinition, w as FlagLevel, x as FeatureFlagsRepository, y as StaticFlagDefault, z as ResolvedFlag } from './attributes-DcHM27jS.mjs';
4
4
  export { E as AttributeGroup, G as BaseAttribute, H as DateFormat, I as DateValue, J as FeatureFlagsConfig, K as FlagOverride, Q as NumberUnit, V as OptionPropertyAttribute, W as PropertyAttribute, X as PropertySchema, Y as PropertyType, Z as RELATION_TARGET_ANY, _ as StatusGroup, $ as hasOptions, a0 as inferInverseCardinality, a1 as isAttributeSortable, a2 as isBilateralRelation, a3 as isUniversalRelation } from './attributes-DcHM27jS.mjs';
5
5
  import { MimeType, IconName, ColorId, CountryIso3, CurrencyCode } from '@stndrds/constants';
@@ -296,7 +296,7 @@ interface CreateObjectRecord {
296
296
  */
297
297
  metadata?: Record<string, unknown>;
298
298
  /**
299
- * User ID who created this record.
299
+ * Actor ID who created this record.
300
300
  * Automatically set from context if available.
301
301
  */
302
302
  createdBy?: string;
@@ -538,23 +538,172 @@ interface BoundingBox {
538
538
  height: number;
539
539
  }
540
540
 
541
+ type ActorType = "user" | "agent" | "api_key" | "system";
542
+ type ActorStatus = "active" | "suspended" | "deleted";
543
+ interface ActorBase {
544
+ id: Uuid;
545
+ tenantId: TenantId;
546
+ displayName: string;
547
+ avatarUrl?: string | null;
548
+ metadata: Record<string, unknown>;
549
+ deletedAt?: Date | null;
550
+ anonymizedAt?: Date | null;
551
+ createdAt: Date;
552
+ updatedAt: Date;
553
+ }
554
+ type SubjectActorType = Exclude<ActorType, "system">;
555
+ type ActiveActorStatus = Exclude<ActorStatus, "deleted">;
556
+ type ActiveSubjectActor = {
557
+ [Type in SubjectActorType]: {
558
+ [Status in ActiveActorStatus]: {
559
+ type: Type;
560
+ status: Status;
561
+ subjectId: Uuid;
562
+ };
563
+ }[ActiveActorStatus];
564
+ }[SubjectActorType];
565
+ type DeletedSubjectActor = {
566
+ [Type in SubjectActorType]: {
567
+ type: Type;
568
+ status: "deleted";
569
+ subjectId: Uuid | null;
570
+ };
571
+ }[SubjectActorType];
572
+ type Actor = (ActorBase & ActiveSubjectActor) | (ActorBase & DeletedSubjectActor) | (ActorBase & {
573
+ type: "system";
574
+ status: ActorStatus;
575
+ subjectId?: null;
576
+ });
577
+ interface CreateActorInputBase {
578
+ displayName: string;
579
+ avatarUrl?: string | null;
580
+ metadata?: Record<string, unknown>;
581
+ }
582
+ type CreateSubjectActorInput = {
583
+ [Type in SubjectActorType]: {
584
+ type: Type;
585
+ subjectId: Uuid;
586
+ };
587
+ }[SubjectActorType];
588
+ type CreateActorInput = (CreateActorInputBase & CreateSubjectActorInput) | (CreateActorInputBase & {
589
+ type: "system";
590
+ subjectId?: null;
591
+ });
592
+ interface UpdateActorInput {
593
+ displayName?: string;
594
+ avatarUrl?: string | null;
595
+ status?: ActorStatus;
596
+ metadata?: Record<string, unknown>;
597
+ deletedAt?: Date | null;
598
+ anonymizedAt?: Date | null;
599
+ }
600
+ type AccessAction = "*" | "read" | "create" | "update" | "delete" | "manage" | "run" | "observe" | "share";
601
+ type SpecificAccessAction = Exclude<AccessAction, "*">;
602
+ type AccessActionList = ["*"] | [SpecificAccessAction, ...SpecificAccessAction[]];
603
+ type AccessResourceType = "workspace" | "object" | "record" | "attribute" | "agent" | "session" | "document" | "view" | "file" | "form";
604
+ type AccessPolicyPreset = "inherit" | "private" | "workspace_read" | "workspace_edit" | "workspace_run" | "role_based";
605
+ type PrincipalType = "actor" | "role" | "workspace";
606
+ type ActorPrincipalRef = {
607
+ principalType: "actor";
608
+ principalId: Uuid;
609
+ };
610
+ type RolePrincipalRef = {
611
+ principalType: "role";
612
+ principalId: Uuid;
613
+ };
614
+ type WorkspacePrincipalRef = {
615
+ principalType: "workspace";
616
+ principalId?: null;
617
+ };
618
+ interface ActorRoleAssignment {
619
+ id: Uuid;
620
+ tenantId: TenantId;
621
+ actorId: Uuid;
622
+ roleId: Uuid;
623
+ assignedBy?: Uuid | null;
624
+ createdAt: Date;
625
+ }
626
+ interface AssignActorRoleInput {
627
+ actorId: Uuid;
628
+ roleId: Uuid;
629
+ assignedBy?: Uuid | null;
630
+ }
631
+ interface ResourceRef {
632
+ type: AccessResourceType;
633
+ id: Uuid;
634
+ tenantId: TenantId;
635
+ objectId?: Uuid;
636
+ objectName?: string;
637
+ parentId?: Uuid;
638
+ agentId?: Uuid;
639
+ metadata?: Record<string, unknown>;
640
+ }
641
+ interface ResourceAccessBase {
642
+ id: Uuid;
643
+ tenantId: TenantId;
644
+ resourceType: AccessResourceType;
645
+ resourceId: Uuid;
646
+ actions: AccessActionList;
647
+ createdBy?: Uuid | null;
648
+ createdAt: Date;
649
+ }
650
+ type ResourceAccess = (ResourceAccessBase & ActorPrincipalRef) | (ResourceAccessBase & RolePrincipalRef) | (ResourceAccessBase & WorkspacePrincipalRef);
651
+ interface GrantResourceAccessInputBase {
652
+ resourceType: AccessResourceType;
653
+ resourceId: Uuid;
654
+ actions: AccessActionList;
655
+ createdBy?: Uuid | null;
656
+ }
657
+ type GrantResourceAccessInput = (GrantResourceAccessInputBase & ActorPrincipalRef) | (GrantResourceAccessInputBase & RolePrincipalRef) | (GrantResourceAccessInputBase & WorkspacePrincipalRef);
658
+ interface AccessPolicy {
659
+ id: Uuid;
660
+ tenantId: TenantId;
661
+ resourceType: AccessResourceType;
662
+ resourceId: Uuid;
663
+ preset: AccessPolicyPreset;
664
+ createdBy?: Uuid | null;
665
+ updatedBy?: Uuid | null;
666
+ createdAt: Date;
667
+ updatedAt: Date;
668
+ }
669
+ interface UpsertAccessPolicyInput {
670
+ resourceType: AccessResourceType;
671
+ resourceId: Uuid;
672
+ preset: AccessPolicyPreset;
673
+ actorId?: Uuid | null;
674
+ }
675
+ interface AgentExecutionPolicy {
676
+ id: Uuid;
677
+ tenantId: TenantId;
678
+ agentActorId: Uuid;
679
+ allowedTools: string[];
680
+ allowedObjectIds: Uuid[];
681
+ maxDepth: number;
682
+ maxBudgetCents?: number | null;
683
+ triggerConstraints: Record<string, unknown>;
684
+ createdBy?: Uuid | null;
685
+ updatedBy?: Uuid | null;
686
+ createdAt: Date;
687
+ updatedAt: Date;
688
+ }
689
+
541
690
  /**
542
691
  * Scope of a permission rule.
543
692
  * - `object`: Controls access to an entire object type (business data)
544
- * - `system`: Controls access to platform resources (people, workspace)
693
+ * - `system`: Controls access to platform resources (people, workspace, API keys, etc.)
545
694
  */
546
695
  type PermissionScope = "object" | "system";
547
696
  /**
548
697
  * Actions that can be performed on a resource.
549
698
  */
550
- type Action = "read" | "create" | "update" | "delete";
699
+ type Action = "read" | "create" | "update" | "delete" | "manage";
551
700
  /**
552
701
  * System resources that can be managed.
553
702
  * - `people`: User profiles, invitations, roles and permissions
554
- * - `workspace`: Object definitions, attributes, tenant settings, audit logs
703
+ * - `workspace`: Tenant settings and workspace-level configuration
555
704
  * - `architect`: Architect settings, templates, and configurations
556
705
  */
557
- type SystemResource = "people" | "workspace" | "architect";
706
+ type SystemResource = "people" | "workspace" | "architect" | "feature-flags" | "files" | "views" | "forms" | "documents" | "audit" | "api-keys";
558
707
  /**
559
708
  * Preset access levels for simplified permission configuration.
560
709
  * - `full`: All CRUD actions
@@ -685,7 +834,7 @@ interface UserRoleAssignment {
685
834
  */
686
835
  assignedAt: Date;
687
836
  /**
688
- * User profile ID of who assigned this role (for audit trail).
837
+ * Actor ID of who assigned this role (for audit trail).
689
838
  */
690
839
  assignedBy?: Uuid;
691
840
  }
@@ -718,6 +867,7 @@ interface ObjectPermissions {
718
867
  canCreate: boolean;
719
868
  canUpdate: boolean;
720
869
  canDelete: boolean;
870
+ canManage: boolean;
721
871
  }
722
872
  /**
723
873
  * Permissions for a specific system resource.
@@ -728,6 +878,7 @@ interface SystemPermissions {
728
878
  canCreate: boolean;
729
879
  canUpdate: boolean;
730
880
  canDelete: boolean;
881
+ canManage: boolean;
731
882
  }
732
883
  /**
733
884
  * Input for creating a new role.
@@ -770,8 +921,8 @@ interface AssignRoleInput {
770
921
  }
771
922
 
772
923
  /**
773
- * A permission attached to an API key.
774
- * Same format as RBAC permissions reuses PermissionScope, Action, and target.
924
+ * Legacy permission payload stored with an API key.
925
+ * Runtime authorization uses the API key actor's effective permissions.
775
926
  */
776
927
  interface ApiKeyPermission {
777
928
  scope: PermissionScope;
@@ -784,6 +935,7 @@ interface ApiKey {
784
935
  userProfileId: string | null;
785
936
  name: string;
786
937
  prefix: string;
938
+ /** Legacy metadata; not the runtime authorization source of truth. */
787
939
  permissions: ApiKeyPermission[];
788
940
  expiresAt: string | null;
789
941
  lastUsedAt: string | null;
@@ -797,20 +949,26 @@ interface ApiKeyWithSecret extends ApiKey {
797
949
  }
798
950
  /**
799
951
  * Returned by validateKey — provides everything downstream needs.
800
- * Permissions are already intersected with user RBAC for personal keys.
952
+ * Permissions come from actor-native effective permissions.
801
953
  */
802
954
  interface ApiKeyAuthContext {
803
955
  tenantId: string;
804
956
  userId: string | null;
805
957
  keyId: string;
958
+ actorId: string;
959
+ actorType: ActorType;
960
+ credentialActorId?: string;
961
+ credentialActorType?: "api_key";
806
962
  permissions: ApiKeyPermission[];
807
963
  createdBy: string;
808
964
  }
809
965
  interface CreateApiKeyInput {
810
966
  name: string;
967
+ /** Legacy metadata; assign actor roles to grant runtime access. */
811
968
  permissions: ApiKeyPermission[];
812
969
  expiresAt?: string;
813
970
  userProfileId?: string;
971
+ actorMetadata?: Record<string, unknown>;
814
972
  }
815
973
 
816
974
  /**
@@ -898,7 +1056,7 @@ type AuditAction = "record.created" | "record.updated" | "record.deleted" | "rec
898
1056
  /**
899
1057
  * Actor type - who performed the action
900
1058
  */
901
- type AuditActorType = "user" | "system";
1059
+ type AuditActorType = ActorType;
902
1060
  /**
903
1061
  * Detail of a change on a field
904
1062
  */
@@ -916,7 +1074,7 @@ interface AuditChange {
916
1074
  interface AuditLogEntry {
917
1075
  id: Uuid;
918
1076
  tenantId: Uuid;
919
- /** User profile ID of the actor (null for system actions) */
1077
+ /** actors.id of the actor (null for system actions) */
920
1078
  actorId?: string;
921
1079
  /** Denormalized email for search (in case user is deleted) */
922
1080
  actorEmail?: string;
@@ -941,6 +1099,7 @@ interface AuditLogEntry {
941
1099
  * Tenant ID is automatically set from execution context.
942
1100
  */
943
1101
  interface CreateAuditLogInput {
1102
+ /** actors.id of the actor (null for system actions) */
944
1103
  actorId?: string;
945
1104
  /** Denormalized actor email for display purposes. */
946
1105
  actorEmail?: string;
@@ -1003,7 +1162,7 @@ type AgentRunStatus = "pending" | "running" | "completed" | "failed" | "cancelle
1003
1162
  type AgentSessionStatus = "active" | "idle" | "completed" | "failed" | "cancelled" | "waiting_human" | "timeout" | "expired";
1004
1163
  type AgentSessionMode = "interactive" | "autonomous";
1005
1164
  type QuestionStatus = "pending" | "answered" | "timeout" | "cancelled";
1006
- type TriggerEventType = "record.created" | "record.updated" | "record.deleted" | "record.field_changed" | "form.submitted" | "agent.completed" | "webhook" | "schedule";
1165
+ type TriggerEventType = "record.created" | "record.updated" | "record.deleted" | "form.submitted" | "agent.completed" | "webhook" | "schedule";
1007
1166
  type AgentTriggerType = Extract<TriggerEventType, "record.created" | "record.updated" | "record.deleted">;
1008
1167
  type ProviderName = "anthropic" | "openai" | "google" | "mistral";
1009
1168
  interface ModelDefinition {
@@ -1053,15 +1212,17 @@ interface AgentTriggerDefinition {
1053
1212
  name?: string;
1054
1213
  eventType: TriggerEventType;
1055
1214
  objectId?: string;
1056
- fieldPath?: string;
1215
+ watchedFields?: string[];
1057
1216
  formDefinitionId?: string;
1058
1217
  sourceAgentId?: string;
1059
1218
  webhookPath?: string;
1060
1219
  cronExpression?: string;
1061
1220
  timezone?: string;
1062
- filter?: Record<string, unknown>;
1221
+ filter?: FilterState;
1063
1222
  inputBuilder?: string;
1223
+ debounceMs?: number;
1064
1224
  enabled: boolean;
1225
+ lastFiredAt?: Date;
1065
1226
  createdAt: Date;
1066
1227
  updatedAt: Date;
1067
1228
  }
@@ -2349,14 +2510,14 @@ interface RecordMetadata {
2349
2510
  /** Last update timestamp */
2350
2511
  updatedAt: Date;
2351
2512
  /**
2352
- * User ID who created this record.
2353
- * Automatically set by RecordService when userId is configured.
2513
+ * Actor ID who created this record.
2514
+ * Automatically set by RecordService when actorId is configured.
2354
2515
  * Optional for backward compatibility with existing records.
2355
2516
  */
2356
2517
  createdBy?: string;
2357
2518
  /**
2358
- * User ID who last updated this record.
2359
- * Automatically set by RecordService when userId is configured.
2519
+ * Actor ID who last updated this record.
2520
+ * Automatically set by RecordService when actorId is configured.
2360
2521
  * Optional for backward compatibility with existing records.
2361
2522
  */
2362
2523
  lastUpdatedBy?: string;
@@ -2458,9 +2619,9 @@ type ExtractRecordUpdateStrict<TBuilder> = TBuilder extends {
2458
2619
  */
2459
2620
  interface PolicyContext {
2460
2621
  /**
2461
- * Current user ID (required for access control)
2622
+ * Current actor ID used for ownership and record-level checks.
2462
2623
  */
2463
- userId: string;
2624
+ actorId: string;
2464
2625
  /**
2465
2626
  * Tenant ID
2466
2627
  */
@@ -2476,7 +2637,7 @@ interface PolicyContext {
2476
2637
  * Policies are applied automatically by RecordService when configured.
2477
2638
  * They provide:
2478
2639
  * - List/search filtering (inject visibility rules)
2479
- * - Record access control (check if user can read a specific record)
2640
+ * - Record access control (check if actor can read a specific record)
2480
2641
  * - Modification control (check if user can update/delete)
2481
2642
  *
2482
2643
  * @example
@@ -2485,23 +2646,23 @@ interface PolicyContext {
2485
2646
  * objectName: "notes",
2486
2647
  *
2487
2648
  * applyListFilter(ctx, options) {
2488
- * // Filter: visibility = 'shared' OR createdBy = userId
2489
- * return injectVisibilityFilter(options, ctx.userId);
2649
+ * // Filter: visibility = 'shared' OR createdBy = actorId
2650
+ * return injectVisibilityFilter(options, ctx.actorId);
2490
2651
  * },
2491
2652
  *
2492
2653
  * canAccessRecord(ctx, record) {
2493
- * return record.values.visibility === "shared" || record.createdBy === ctx.userId;
2654
+ * return record.values.visibility === "shared" || record.createdBy === ctx.actorId;
2494
2655
  * },
2495
2656
  *
2496
2657
  * canModifyRecord(ctx, record) {
2497
2658
  * if (record.values.visibility === "private") {
2498
- * return record.createdBy === ctx.userId;
2659
+ * return record.createdBy === ctx.actorId;
2499
2660
  * }
2500
2661
  * return true;
2501
2662
  * },
2502
2663
  *
2503
2664
  * canDeleteRecord(ctx, record) {
2504
- * return record.createdBy === ctx.userId;
2665
+ * return record.createdBy === ctx.actorId;
2505
2666
  * }
2506
2667
  * };
2507
2668
  * ```
@@ -2515,7 +2676,7 @@ interface RecordPolicy {
2515
2676
  * Modify list/search options before query execution.
2516
2677
  * Use this to inject visibility filters.
2517
2678
  *
2518
- * @param ctx - Policy context with userId and tenantId
2679
+ * @param ctx - Policy context with actorId and tenantId
2519
2680
  * @param options - Original list options
2520
2681
  * @returns Modified list options with injected filters
2521
2682
  */
@@ -2524,7 +2685,7 @@ interface RecordPolicy {
2524
2685
  * Check if user can access a specific record.
2525
2686
  * Called after fetching a record in getRecord().
2526
2687
  *
2527
- * @param ctx - Policy context with userId
2688
+ * @param ctx - Policy context with actorId
2528
2689
  * @param record - The fetched record
2529
2690
  * @returns true if user can access, false otherwise
2530
2691
  */
@@ -2533,7 +2694,7 @@ interface RecordPolicy {
2533
2694
  * Check if user can modify a record.
2534
2695
  * Called before updateRecord().
2535
2696
  *
2536
- * @param ctx - Policy context with userId
2697
+ * @param ctx - Policy context with actorId
2537
2698
  * @param record - The existing record
2538
2699
  * @returns true if user can modify, false otherwise
2539
2700
  */
@@ -2542,7 +2703,7 @@ interface RecordPolicy {
2542
2703
  * Check if user can delete a record.
2543
2704
  * Called before deleteRecord().
2544
2705
  *
2545
- * @param ctx - Policy context with userId
2706
+ * @param ctx - Policy context with actorId
2546
2707
  * @param record - The record to delete
2547
2708
  * @returns true if user can delete, false otherwise
2548
2709
  */
@@ -2645,6 +2806,47 @@ interface CreateSandboxExecution {
2645
2806
  expiresAt?: Date;
2646
2807
  }
2647
2808
 
2809
+ /**
2810
+ * A custom navigation item rendered in the sidebar, alongside the
2811
+ * developer-defined objects.
2812
+ *
2813
+ * Items are declared via `sidebarExtraRegistry.register(...)` and consumed
2814
+ * by `useSidebarExtras()` in `@stndrds/react`.
2815
+ */
2816
+ interface SidebarExtraItem {
2817
+ /** Stable identifier — used as React key and for deduplication. */
2818
+ id: string;
2819
+ /** Display label. */
2820
+ label: string;
2821
+ /**
2822
+ * Internal route (e.g. `/dashboard`) or absolute URL (e.g. `https://...`).
2823
+ * Absolute URLs are auto-detected and rendered as external links.
2824
+ */
2825
+ href: string;
2826
+ /** Icon name from `@stndrds/constants`. */
2827
+ icon?: IconName;
2828
+ /**
2829
+ * Display order. Lower values appear first. Items without an order
2830
+ * fall back to alphabetical (by `label`).
2831
+ */
2832
+ order?: number;
2833
+ /**
2834
+ * Forces external rendering (`target="_blank"`). When omitted, an
2835
+ * absolute `http(s)://` href is treated as external automatically.
2836
+ */
2837
+ external?: boolean;
2838
+ /**
2839
+ * Optional override for the active-state computation. When provided,
2840
+ * its return value is used directly. Otherwise:
2841
+ * - external items are never active,
2842
+ * - internal items are active when
2843
+ * `pathname === href || pathname.startsWith(href + "/")`.
2844
+ *
2845
+ * Must be pure and total — exceptions are not handled.
2846
+ */
2847
+ isActive?: (pathname: string) => boolean;
2848
+ }
2849
+
2648
2850
  /**
2649
2851
  * System attribute union type
2650
2852
  */
@@ -3004,6 +3206,20 @@ declare const SYSTEM_RESOURCES: {
3004
3206
  readonly WORKSPACE: "workspace";
3005
3207
  /** Object definitions, attributes, views, workflow definitions */
3006
3208
  readonly ARCHITECT: "architect";
3209
+ /** Runtime feature toggles */
3210
+ readonly FEATURE_FLAGS: "feature-flags";
3211
+ /** Uploaded files and file storage */
3212
+ readonly FILES: "files";
3213
+ /** Saved object views */
3214
+ readonly VIEWS: "views";
3215
+ /** Forms and form submissions */
3216
+ readonly FORMS: "forms";
3217
+ /** Documents and document slots */
3218
+ readonly DOCUMENTS: "documents";
3219
+ /** Audit log access */
3220
+ readonly AUDIT: "audit";
3221
+ /** Programmatic access keys */
3222
+ readonly API_KEYS: "api-keys";
3007
3223
  };
3008
3224
  /**
3009
3225
  * All system resources as an array (for iteration)
@@ -4288,9 +4504,16 @@ declare class ObjectBuilder<TRecord extends Record<string, unknown> = {}> implem
4288
4504
  build: () => Attribute;
4289
4505
  }>): this;
4290
4506
  /**
4291
- * Set metadata
4507
+ * Set metadata. Merges with any previously set metadata (preserves keys
4508
+ * written by other builder methods like `.order()`).
4292
4509
  */
4293
4510
  metadata(value: Record<string, unknown>): this;
4511
+ /**
4512
+ * Set the display order used by the sidebar (and any other UI that
4513
+ * surfaces objects). Lower values appear first; objects without an
4514
+ * order fall back to alphabetical order at the consumer level.
4515
+ */
4516
+ order(value: number): this;
4294
4517
  /**
4295
4518
  * Set the label expression template for displaying records
4296
4519
  * This is REQUIRED for every object.
@@ -6115,6 +6338,8 @@ interface EventDataMap {
6115
6338
  objectId: string;
6116
6339
  objectName: string;
6117
6340
  recordId: string;
6341
+ /** Snapshot of record values at the moment of deletion */
6342
+ values: Record<string, unknown>;
6118
6343
  };
6119
6344
  "record.restored": {
6120
6345
  objectId: string;
@@ -6142,6 +6367,8 @@ interface DomainEvent<T extends EventType = EventType> {
6142
6367
  userId: string | null;
6143
6368
  timestamp: string;
6144
6369
  data: EventDataMap[T];
6370
+ /** Free-form metadata propagated from write-path callers (e.g. provenance for loop guards). */
6371
+ metadata?: Record<string, unknown>;
6145
6372
  }
6146
6373
 
6147
6374
  interface FormulaResult {
@@ -6189,4 +6416,18 @@ declare function getPathDepth(segments: PathSegment[]): number;
6189
6416
  declare function getTargetAttributeName(path: string): string;
6190
6417
  declare function getRelationPath(path: string): string | null;
6191
6418
 
6192
- 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, ALL_ACTIONS, ALL_SYSTEM_RESOURCES, AccessDeniedError, type AccessLevel, type Action, ActivityTabConfig, type AddAttributeInput, type AgentConfig, type AgentContextEntry, type AgentDashboard, type AgentDefinition, type AgentEvent, type AgentExecutionConfig, 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 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, type CompactionLevel, CompletionStatus, ConcurrentModificationError, ConfigOverrides, type CreateApiKeyInput, type CreateAuditLogInput, type CreateCustomObjectInput, type CreateDBAttribute, type CreateDBForm, type CreateDBFormSubmission, type CreateDBObject, type CreateDBView, type CreateDBViewOverlay, type CreateDocument, type CreateDocumentSlot, type CreateFile, CreateMode, type CreateObjectRecord, type CreatePermissionInput, type CreateProcessingJob, 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, DateAttribute, type DefaultRoleName, DetailViewBuilder, DetailViewConfig, DetailViewDefinition, DetailViewLayout, type Document, DocumentAttribute, type DocumentListOptions, type DocumentSlot, 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, FilterState, 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, Group, GroupBuilder, IDENTITY_PROPERTIES, type InferAttributeValue, 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, ObjectBuilder, ObjectDefinition, ObjectNotFoundError, type ObjectPermissions, ObjectRecord, ObjectReferencedError, type OcrAdapter, type OcrInput, type OcrOptions, type OcrPage, type OcrResult, type OcrTextBlock, Option, PRESENTATION_PROPERTIES, type PathCardinality, type PathSegment, type PathSegmentType, type Permission, type PermissionScope, Phone, PhoneAttribute, type PolicyContext, PolicyViolationError, type ProcessingJob, type ProcessingJobStatus, type ProcessingJobType, type ProcessingStatus, ProtectedResourceError, ProtectedRoleError, type ProviderName, type QuestionResponse, type QuestionStatus, RatingAttribute, type ReasoningPartData, type RecordAgentEvent, type RecordMetadata, RecordNotFoundError, type RecordPolicy, type RecordReference, RecordReferencedError, RelationAttribute, RelationGroup, RelationGroupBuilder, type RelationOption, type RelationOptionsResponse, RelationTarget, RepositoryError, type RepositoryOperation, ResolvedFlag, type RetryPolicy, type ReverseGeocodingParams, RichtextAttribute, RichtextFeature, RichtextTabConfig, type Role, RoleNotFoundError, RollupAttribute, RollupFunction, STANDARD_SCHEMA_VENDOR, SYSTEM_ATTRIBUTES, 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, SingleRelationAttribute, type SlotMode, type SlotStatus, SortRule, type StandardSchemaIssue, type StandardSchemaResult, StaticFlagDefault, StatusAttribute, StorageError, type StorageOperation, type StorageProvider, type StreamEventCompaction, type StreamEventMessagePersisted, SyncError, type SystemAttribute, 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 UpdateDBAttribute, type UpdateDBForm, type UpdateDBFormSubmission, type UpdateDBObject, type UpdateDBView, type UpdateDBViewOverlay, type UpdateDocument, type UpdateDocumentSlot, type UpdateFile, type UpdateObjectInput, type UpdateProcessingJob, type UpdateRoleInput, type UpdateUserProfile, type UpdateViewInput, 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, checkbox, createFlagRegistry, createFlagService, createStandardSchemaProps, currency, date, detailView, document, evaluateFormula, evaluateFormulaAttribute, evaluateFormulaWithResult, extractAttributeNames, extractFormulaVariables, extractRelationNames, extractRelationReferences, file, flagRegistry, flattenRelationsForEval, form, formRegistry, formatAttributeValue, formatFormulaResult, formula, generateDefaultDetailView, generateDefaultListView, getActiveTab, getErrorMessage, getPathDepth, getRelationPath, getSystemAttributeList, getTargetAttributeName, group, hasRelationReferences, isAttributeInUseError, isDefaultRole, isEmptyObject, isFormDefinition, isFormFieldsRow, isFormFreeFieldRef, isFormHeadingRow, isFormSeparatorRow, isFormSlotFieldRef, isFormTextRow, isLabelExpression, isNotEmpty, isNotFoundError, isObjectReferencedError, isProtectedResourceError, isRecordReferencedError, isSchemaError, isStandardSchema, isValidationError, jsonFlag, listView, location, multiselect, number, numberFlag, object, parsePath, pathHasManyCardinality, phone, rating, registry, relation, relationGroup, renderLabelExpression, resetViewToDefault, richtext, rollup, select, status, stringFlag, text, textarea, toUndefinedIfEmpty, user, validateAttributeName, validateFormulaExpression, validatePath, viewRegistry };
6419
+ interface OperatorSpec {
6420
+ /** Attribute types this operator applies to. Used by both UI and evaluators. */
6421
+ appliesTo: readonly AttributeType[];
6422
+ /** In-memory evaluation. `value` is the record's value for `attr`. */
6423
+ evaluateInMemory: (value: unknown, ruleValue: FilterValue, attr: Attribute) => boolean;
6424
+ }
6425
+ declare const OPERATOR_SPECS: Record<FilterOperator, OperatorSpec>;
6426
+
6427
+ /**
6428
+ * Evaluate a `FilterState` against a flat record of values, in memory.
6429
+ * Returns false on unknown attribute or operator/type mismatch (safe-fail).
6430
+ */
6431
+ declare function evaluateFilterState(state: FilterState, values: Record<string, unknown>, attributes: Attribute[]): boolean;
6432
+
6433
+ 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, 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, type CompactionLevel, CompletionStatus, ConcurrentModificationError, ConfigOverrides, type CreateActorInput, type CreateApiKeyInput, type CreateAuditLogInput, type CreateCustomObjectInput, type CreateDBAttribute, type CreateDBForm, type CreateDBFormSubmission, type CreateDBObject, type CreateDBView, type CreateDBViewOverlay, type CreateDocument, type CreateDocumentSlot, type CreateFile, CreateMode, type CreateObjectRecord, type CreatePermissionInput, type CreateProcessingJob, 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, DateAttribute, type DefaultRoleName, DetailViewBuilder, DetailViewConfig, DetailViewDefinition, DetailViewLayout, type Document, DocumentAttribute, type DocumentListOptions, type DocumentSlot, 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, 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, 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, ObjectRecord, ObjectReferencedError, type OcrAdapter, type OcrInput, type OcrOptions, type OcrPage, type OcrResult, type OcrTextBlock, type OperatorSpec, Option, PRESENTATION_PROPERTIES, type PathCardinality, type PathSegment, type PathSegmentType, type Permission, type PermissionScope, Phone, PhoneAttribute, type PolicyContext, PolicyViolationError, type PrincipalType, type ProcessingJob, type ProcessingJobStatus, type ProcessingJobType, type ProcessingStatus, ProtectedResourceError, ProtectedRoleError, type ProviderName, type QuestionResponse, type QuestionStatus, RatingAttribute, type ReasoningPartData, type RecordAgentEvent, type RecordMetadata, RecordNotFoundError, type RecordPolicy, 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_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, type SlotStatus, SortRule, type SpecificAccessAction, type StandardSchemaIssue, type StandardSchemaResult, StaticFlagDefault, StatusAttribute, StorageError, type StorageOperation, type StorageProvider, type StreamEventCompaction, type StreamEventMessagePersisted, SyncError, type SystemAttribute, 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 UpdateDocument, type UpdateDocumentSlot, type UpdateFile, type UpdateObjectInput, type UpdateProcessingJob, 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, 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, getPathDepth, getRelationPath, getSystemAttributeList, getTargetAttributeName, group, hasRelationReferences, isAttributeInUseError, isDefaultRole, isEmptyObject, isFormDefinition, isFormFieldsRow, isFormFreeFieldRef, isFormHeadingRow, isFormSeparatorRow, isFormSlotFieldRef, isFormTextRow, isLabelExpression, isNotEmpty, isNotFoundError, isObjectReferencedError, isProtectedResourceError, isRecordReferencedError, isSchemaError, isStandardSchema, isValidationError, jsonFlag, listView, location, multiselect, number, numberFlag, object, parsePath, pathHasManyCardinality, phone, rating, registry, relation, relationGroup, renderLabelExpression, resetViewToDefault, richtext, rollup, select, status, stringFlag, text, textarea, toUndefinedIfEmpty, user, validateAttributeName, validateFormulaExpression, validatePath, viewRegistry };